feat(02-03): install Schedule-X stack + CSS token layer + main.tsx imports

- Install @schedule-x/{calendar,react,theme-default,event-modal,events-service}@4.x
- Install temporal-polyfill@0.3.2 and lucide-react@1.17.0
- Create src/styles/tokens.css: all color/spacing/typography/breakpoint tokens
  plus --sx-color-* Schedule-X overrides mapped to project tokens
- Create src/styles/tokens.ts: TypeScript mirror of token values for inline styles
- Create src/styles/index.css: imports tokens.css + minimal global reset
- Update main.tsx: Temporal polyfill first, then SX theme CSS, then styles/index.css
This commit is contained in:
Lucas Berger
2026-06-05 09:42:34 -04:00
parent 6dc5d77f60
commit 0911a2330a
6 changed files with 367 additions and 0 deletions
+109
View File
@@ -56,18 +56,39 @@ importers:
apps/pwa:
dependencies:
'@schedule-x/calendar':
specifier: 4.6.0
version: 4.6.0(@preact/signals@2.9.1(preact@10.29.2))(preact@10.29.2)(temporal-polyfill@0.3.2)
'@schedule-x/event-modal':
specifier: 4.6.0
version: 4.6.0(@preact/signals@2.9.1(preact@10.29.2))(preact@10.29.2)
'@schedule-x/events-service':
specifier: 4.6.0
version: 4.6.0
'@schedule-x/react':
specifier: 4.1.0
version: 4.1.0(@schedule-x/calendar@4.6.0(@preact/signals@2.9.1(preact@10.29.2))(preact@10.29.2)(temporal-polyfill@0.3.2))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
'@schedule-x/theme-default':
specifier: 4.6.0
version: 4.6.0
'@tanstack/react-query':
specifier: 5.101.0
version: 5.101.0(react@19.2.7)
ical.js:
specifier: 2.2.1
version: 2.2.1
lucide-react:
specifier: 1.17.0
version: 1.17.0(react@19.2.7)
react:
specifier: ^19.0.0
version: 19.2.7
react-dom:
specifier: ^19.0.0
version: 19.2.7(react@19.2.7)
temporal-polyfill:
specifier: 0.3.2
version: 0.3.2
zustand:
specifier: 5.0.14
version: 5.0.14(@types/react@19.2.16)(react@19.2.7)
@@ -730,6 +751,14 @@ packages:
'@oxc-project/types@0.133.0':
resolution: {integrity: sha512-KzkdCd6Uxqnf6l3HOw1xfatAlUURA0g14cvBYFyJ5SaNOQbOUvBr9PKArcPcrNIeRsBdgcUzOGrhKveVpvOIGA==}
'@preact/signals-core@1.14.2':
resolution: {integrity: sha512-RZHdBj9ZF4n40Rp4jS052EHHjBWf96P9oNdXPfhQTovCuWY9iQn3Gq+gOTJSgBO9A/JBuPfMOWsSX/lIU9Pc/A==}
'@preact/signals@2.9.1':
resolution: {integrity: sha512-xVqN8mJjbSN5IB/8Ubmd9NN+Ew6zJswoRxrjZbH3YsgkMshFeO6d8zxEFpHRTq9GJZx7cnPs2CnCpFqtGXGNsw==}
peerDependencies:
preact: '>= 10.25.0 || >=11.0.0-0'
'@rolldown/binding-android-arm64@1.0.3':
resolution: {integrity: sha512-454rs7jHngixp/NMxd5srYD57OnzSlZ/eFTETjORQHLwJG1lRtmNOJcBerZlfu4GjKqeq8aCCIQrMdHyhI51Hw==}
engines: {node: ^20.19.0 || >=22.12.0}
@@ -831,6 +860,32 @@ packages:
'@rolldown/pluginutils@1.0.1':
resolution: {integrity: sha512-2j9bGt5Jh8hj+vPtgzPtl72j0yRxHAyumoo6TNfAjsLB04UtpSvPbPcDcBMxz7n+9CYB0c1GxQFxYRg2jimqGw==}
'@schedule-x/calendar@4.6.0':
resolution: {integrity: sha512-8Rf5bUf0DVphJB2BaudtG4IHkw21wgMJiiuk5o+7SIOq6YH4hkVJo+Kk12pWSfp2KTZ9mnnUuLV+szBVhiEPlg==}
peerDependencies:
'@preact/signals': ^2.0.2
preact: ^10.19.2
temporal-polyfill: 0.3.0
'@schedule-x/event-modal@4.6.0':
resolution: {integrity: sha512-ZWtOxXa84GPiY0aYkKfauJMT/VDnVZTQjyQRdqHoIxr9Bt4D6eebBamBO/KxbcdQfc2vERs+2WJPTvNnTqTOlw==}
peerDependencies:
'@preact/signals': ^2.0.2
preact: ^10.19.2
'@schedule-x/events-service@4.6.0':
resolution: {integrity: sha512-czUSPdanESNYgckCxId3weoL3omSG6FKuJMYMefCyzx/NFBxJM83b6PKQQ+pJeRnPuyax+KNKFc/DQFCC05YLA==}
'@schedule-x/react@4.1.0':
resolution: {integrity: sha512-l2hn1kdTModk4Lbt+nEr/VAcuNMA+w+hAAtgz8VLOj5UeieM7PWoK+cDapzPHCjUKisCSPd8QZfAX966Ma82kQ==}
peerDependencies:
'@schedule-x/calendar': ^3.1.0 || ^4.0.0
react: ^16.7.0 || ^17 || ^18 || ^19
react-dom: ^16.7.0 || ^17 || ^18 || ^19
'@schedule-x/theme-default@4.6.0':
resolution: {integrity: sha512-SM3bcvROJeG7ScH14lBIHZSTOBTR8h+oTswbpx1gpscddUfQfAnu7cFW4OJJI+ii+Si1IdTd4T3+rrnKd4HDDg==}
'@standard-schema/spec@1.1.0':
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
@@ -1337,6 +1392,11 @@ packages:
resolution: {integrity: sha512-DqC6n3QQ77zdFpCMASA1a3Jlb64Hv2N2DciFGkO/4L9+q/IpIAuRlKOvCXabtRW6cQf8usbmM6BE/TOPysCdIA==}
engines: {bun: '>=1.0.0', deno: '>=1.30.0', node: '>=8.0.0'}
lucide-react@1.17.0:
resolution: {integrity: sha512-9FA9evdox/JQL5PT57fdA1x/yg8T7knJ98+zjTL3UfKza6pflQUUh3XtaQIHKvnsJw1lmsEyHVlt5jchYxOQ5w==}
peerDependencies:
react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0
lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
@@ -1400,6 +1460,9 @@ packages:
resolution: {integrity: sha512-FfR8sjd4em2T6fb3I2MwAJU7HWVMr9zba+enmQeeWFfCbm+UOC/0X4DS8XtpUTMwWMGbjKYP7xjfNekzyGmB3A==}
engines: {node: ^10 || ^12 || >=14}
preact@10.29.2:
resolution: {integrity: sha512-7tNmwg/7mzzAoB/8kSg6Hl37JraAZw3Z3A0JSY7VXlZwo82Xn0G7wKbNNs2qoF4ZEEsQGTwDAroNdqKs1ofJxQ==}
pretty-format@27.5.1:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
@@ -1488,6 +1551,12 @@ packages:
symbol-tree@3.2.4:
resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==}
temporal-polyfill@0.3.2:
resolution: {integrity: sha512-TzHthD/heRK947GNiSu3Y5gSPpeUDH34+LESnfsq8bqpFhsB79HFBX8+Z834IVX68P3EUyRPZK5bL/1fh437Eg==}
temporal-spec@0.3.1:
resolution: {integrity: sha512-B4TUhezh9knfSIMwt7RVggApDRJZo73uZdj8AacL2mZ8RP5KtLianh2MXxL06GN9ESYiIsiuoLQhgVfwe55Yhw==}
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
@@ -2139,6 +2208,13 @@ snapshots:
'@oxc-project/types@0.133.0': {}
'@preact/signals-core@1.14.2': {}
'@preact/signals@2.9.1(preact@10.29.2)':
dependencies:
'@preact/signals-core': 1.14.2
preact: 10.29.2
'@rolldown/binding-android-arm64@1.0.3':
optional: true
@@ -2192,6 +2268,27 @@ snapshots:
'@rolldown/pluginutils@1.0.1': {}
'@schedule-x/calendar@4.6.0(@preact/signals@2.9.1(preact@10.29.2))(preact@10.29.2)(temporal-polyfill@0.3.2)':
dependencies:
'@preact/signals': 2.9.1(preact@10.29.2)
preact: 10.29.2
temporal-polyfill: 0.3.2
'@schedule-x/event-modal@4.6.0(@preact/signals@2.9.1(preact@10.29.2))(preact@10.29.2)':
dependencies:
'@preact/signals': 2.9.1(preact@10.29.2)
preact: 10.29.2
'@schedule-x/events-service@4.6.0': {}
'@schedule-x/react@4.1.0(@schedule-x/calendar@4.6.0(@preact/signals@2.9.1(preact@10.29.2))(preact@10.29.2)(temporal-polyfill@0.3.2))(react-dom@19.2.7(react@19.2.7))(react@19.2.7)':
dependencies:
'@schedule-x/calendar': 4.6.0(@preact/signals@2.9.1(preact@10.29.2))(preact@10.29.2)(temporal-polyfill@0.3.2)
react: 19.2.7
react-dom: 19.2.7(react@19.2.7)
'@schedule-x/theme-default@4.6.0': {}
'@standard-schema/spec@1.1.0': {}
'@tanstack/query-core@5.101.0': {}
@@ -2652,6 +2749,10 @@ snapshots:
lru.min@1.1.4: {}
lucide-react@1.17.0(react@19.2.7):
dependencies:
react: 19.2.7
lz-string@1.5.0: {}
magic-string@0.30.21:
@@ -2706,6 +2807,8 @@ snapshots:
picocolors: 1.1.1
source-map-js: 1.2.1
preact@10.29.2: {}
pretty-format@27.5.1:
dependencies:
ansi-regex: 5.0.1
@@ -2790,6 +2893,12 @@ snapshots:
symbol-tree@3.2.4: {}
temporal-polyfill@0.3.2:
dependencies:
temporal-spec: 0.3.1
temporal-spec@0.3.1: {}
tinybench@2.9.0: {}
tinyexec@1.2.4: {}