@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +1 -1
- package/dist/components/ui/accessibility-demo.d.ts +259 -0
- package/dist/components/ui/accessibility-demo.esm.js +265 -0
- package/dist/components/ui/accessibility-demo.js +265 -0
- package/dist/components/ui/advanced-component-architecture-demo.d.ts +718 -0
- package/dist/components/ui/advanced-component-architecture-demo.esm.js +860 -0
- package/dist/components/ui/advanced-component-architecture-demo.js +860 -0
- package/dist/components/ui/advanced-transition-system-demo.d.ts +660 -0
- package/dist/components/ui/advanced-transition-system-demo.esm.js +624 -0
- package/dist/components/ui/advanced-transition-system-demo.js +624 -0
- package/dist/components/ui/advanced-transition-system.d.ts +391 -0
- package/dist/components/ui/advanced-transition-system.esm.js +351 -0
- package/dist/components/ui/advanced-transition-system.js +351 -0
- package/dist/components/ui/animation/animated-container.d.ts +162 -0
- package/dist/components/ui/animation/animated-container.esm.js +143 -0
- package/dist/components/ui/animation/animated-container.js +143 -0
- package/dist/components/ui/animation/index.d.ts +9 -0
- package/dist/components/ui/animation/index.esm.js +19 -0
- package/dist/components/ui/animation/index.js +19 -0
- package/dist/components/ui/animation/staggered-container.d.ts +64 -0
- package/dist/components/ui/animation/staggered-container.esm.js +59 -0
- package/dist/components/ui/animation/staggered-container.js +59 -0
- package/dist/components/ui/animation-demo.d.ts +238 -0
- package/dist/components/ui/animation-demo.esm.js +218 -0
- package/dist/components/ui/animation-demo.js +218 -0
- package/dist/components/ui/badge.d.ts +28 -0
- package/dist/components/ui/badge.esm.js +30 -0
- package/dist/components/ui/badge.js +30 -0
- package/dist/components/ui/battery-conscious-animation-demo.d.ts +561 -0
- package/dist/components/ui/battery-conscious-animation-demo.esm.js +533 -0
- package/dist/components/ui/battery-conscious-animation-demo.js +533 -0
- package/dist/components/ui/border-radius-shadow-demo.d.ts +183 -0
- package/dist/components/ui/border-radius-shadow-demo.esm.js +176 -0
- package/dist/components/ui/border-radius-shadow-demo.js +176 -0
- package/dist/components/ui/button.d.ts +33 -0
- package/dist/components/ui/button.esm.js +30 -0
- package/dist/components/ui/button.js +30 -0
- package/dist/components/ui/card.d.ts +205 -0
- package/dist/components/ui/card.esm.js +182 -0
- package/dist/components/ui/card.js +182 -0
- package/dist/components/ui/checkbox.d.ts +26 -0
- package/dist/components/ui/checkbox.esm.js +30 -0
- package/dist/components/ui/checkbox.js +30 -0
- package/dist/components/ui/color-preview.d.ts +402 -0
- package/dist/components/ui/color-preview.esm.js +388 -0
- package/dist/components/ui/color-preview.js +388 -0
- package/dist/components/ui/data-display/chart.d.ts +646 -0
- package/dist/components/ui/data-display/chart.esm.js +625 -0
- package/dist/components/ui/data-display/chart.js +625 -0
- package/dist/components/ui/data-display/data-grid-simple.d.ts +73 -0
- package/dist/components/ui/data-display/data-grid-simple.esm.js +76 -0
- package/dist/components/ui/data-display/data-grid-simple.js +76 -0
- package/dist/components/ui/data-display/data-grid.d.ts +670 -0
- package/dist/components/ui/data-display/data-grid.esm.js +667 -0
- package/dist/components/ui/data-display/data-grid.js +667 -0
- package/dist/components/ui/data-display/list.d.ts +448 -0
- package/dist/components/ui/data-display/list.esm.js +448 -0
- package/dist/components/ui/data-display/list.js +448 -0
- package/dist/components/ui/data-display/table.d.ts +472 -0
- package/dist/components/ui/data-display/table.esm.js +474 -0
- package/dist/components/ui/data-display/table.js +474 -0
- package/dist/components/ui/data-display/timeline.d.ts +433 -0
- package/dist/components/ui/data-display/timeline.esm.js +436 -0
- package/dist/components/ui/data-display/timeline.js +436 -0
- package/dist/components/ui/data-display/tree.d.ts +594 -0
- package/dist/components/ui/data-display/tree.esm.js +570 -0
- package/dist/components/ui/data-display/tree.js +570 -0
- package/dist/components/ui/data-display/types.d.ts +534 -0
- package/dist/components/ui/data-display/types.esm.js +511 -0
- package/dist/components/ui/data-display/types.js +511 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +735 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +699 -0
- package/dist/components/ui/enterprise-mobile-experience-demo.js +699 -0
- package/dist/components/ui/enterprise-mobile-experience.d.ts +461 -0
- package/dist/components/ui/enterprise-mobile-experience.esm.js +413 -0
- package/dist/components/ui/enterprise-mobile-experience.js +413 -0
- package/dist/components/ui/feedback/alert.d.ts +154 -0
- package/dist/components/ui/feedback/alert.esm.js +150 -0
- package/dist/components/ui/feedback/alert.js +150 -0
- package/dist/components/ui/feedback/progress.d.ts +288 -0
- package/dist/components/ui/feedback/progress.esm.js +269 -0
- package/dist/components/ui/feedback/progress.js +269 -0
- package/dist/components/ui/feedback/skeleton.d.ts +182 -0
- package/dist/components/ui/feedback/skeleton.esm.js +175 -0
- package/dist/components/ui/feedback/skeleton.js +175 -0
- package/dist/components/ui/feedback/toast.d.ts +277 -0
- package/dist/components/ui/feedback/toast.esm.js +256 -0
- package/dist/components/ui/feedback/toast.js +256 -0
- package/dist/components/ui/feedback/types.d.ts +123 -0
- package/dist/components/ui/feedback/types.esm.js +125 -0
- package/dist/components/ui/feedback/types.js +125 -0
- package/dist/components/ui/font-preview.d.ts +282 -0
- package/dist/components/ui/font-preview.esm.js +286 -0
- package/dist/components/ui/font-preview.js +286 -0
- package/dist/components/ui/form-demo.d.ts +544 -0
- package/dist/components/ui/form-demo.esm.js +516 -0
- package/dist/components/ui/form-demo.js +516 -0
- package/dist/components/ui/hardware-acceleration-demo.d.ts +540 -0
- package/dist/components/ui/hardware-acceleration-demo.esm.js +497 -0
- package/dist/components/ui/hardware-acceleration-demo.js +497 -0
- package/dist/components/ui/input.d.ts +33 -0
- package/dist/components/ui/input.esm.js +32 -0
- package/dist/components/ui/input.js +32 -0
- package/dist/components/ui/label.d.ts +13 -0
- package/dist/components/ui/label.esm.js +16 -0
- package/dist/components/ui/label.js +16 -0
- package/dist/components/ui/layout-demo.d.ts +352 -0
- package/dist/components/ui/layout-demo.esm.js +342 -0
- package/dist/components/ui/layout-demo.js +342 -0
- package/dist/components/ui/layouts/adaptive-layout.d.ts +132 -0
- package/dist/components/ui/layouts/adaptive-layout.esm.js +120 -0
- package/dist/components/ui/layouts/adaptive-layout.js +120 -0
- package/dist/components/ui/layouts/desktop-layout.d.ts +219 -0
- package/dist/components/ui/layouts/desktop-layout.esm.js +204 -0
- package/dist/components/ui/layouts/desktop-layout.js +204 -0
- package/dist/components/ui/layouts/index.d.ts +5 -0
- package/dist/components/ui/layouts/index.esm.js +10 -0
- package/dist/components/ui/layouts/index.js +10 -0
- package/dist/components/ui/layouts/mobile-layout.d.ts +158 -0
- package/dist/components/ui/layouts/mobile-layout.esm.js +152 -0
- package/dist/components/ui/layouts/mobile-layout.js +152 -0
- package/dist/components/ui/layouts/tablet-layout.d.ts +192 -0
- package/dist/components/ui/layouts/tablet-layout.esm.js +183 -0
- package/dist/components/ui/layouts/tablet-layout.js +183 -0
- package/dist/components/ui/mobile-form-validation.d.ts +439 -0
- package/dist/components/ui/mobile-form-validation.esm.js +418 -0
- package/dist/components/ui/mobile-form-validation.js +418 -0
- package/dist/components/ui/mobile-input-demo.d.ts +197 -0
- package/dist/components/ui/mobile-input-demo.esm.js +195 -0
- package/dist/components/ui/mobile-input-demo.js +195 -0
- package/dist/components/ui/mobile-input.d.ts +273 -0
- package/dist/components/ui/mobile-input.esm.js +216 -0
- package/dist/components/ui/mobile-input.js +216 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +628 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +621 -0
- package/dist/components/ui/mobile-skeleton-loading-demo.js +621 -0
- package/dist/components/ui/navigation/breadcrumb.d.ts +149 -0
- package/dist/components/ui/navigation/breadcrumb.esm.js +155 -0
- package/dist/components/ui/navigation/breadcrumb.js +155 -0
- package/dist/components/ui/navigation/index.d.ts +25 -0
- package/dist/components/ui/navigation/index.esm.js +14 -0
- package/dist/components/ui/navigation/index.js +14 -0
- package/dist/components/ui/navigation/menu.d.ts +366 -0
- package/dist/components/ui/navigation/menu.esm.js +360 -0
- package/dist/components/ui/navigation/menu.js +360 -0
- package/dist/components/ui/navigation/navigation-demo.d.ts +169 -0
- package/dist/components/ui/navigation/navigation-demo.esm.js +317 -0
- package/dist/components/ui/navigation/navigation-demo.js +317 -0
- package/dist/components/ui/navigation/pagination.d.ts +261 -0
- package/dist/components/ui/navigation/pagination.esm.js +260 -0
- package/dist/components/ui/navigation/pagination.js +260 -0
- package/dist/components/ui/navigation/sidebar.d.ts +375 -0
- package/dist/components/ui/navigation/sidebar.esm.js +369 -0
- package/dist/components/ui/navigation/sidebar.js +369 -0
- package/dist/components/ui/navigation/stepper.d.ts +294 -0
- package/dist/components/ui/navigation/stepper.esm.js +292 -0
- package/dist/components/ui/navigation/stepper.js +292 -0
- package/dist/components/ui/navigation/tabs.d.ts +196 -0
- package/dist/components/ui/navigation/tabs.esm.js +194 -0
- package/dist/components/ui/navigation/tabs.js +194 -0
- package/dist/components/ui/navigation/types.d.ts +293 -0
- package/dist/components/ui/navigation/types.esm.js +298 -0
- package/dist/components/ui/navigation/types.js +298 -0
- package/dist/components/ui/overlay/backdrop.d.ts +79 -0
- package/dist/components/ui/overlay/backdrop.esm.js +80 -0
- package/dist/components/ui/overlay/backdrop.js +80 -0
- package/dist/components/ui/overlay/focus-manager.d.ts +141 -0
- package/dist/components/ui/overlay/focus-manager.esm.js +141 -0
- package/dist/components/ui/overlay/focus-manager.js +141 -0
- package/dist/components/ui/overlay/index.d.ts +27 -0
- package/dist/components/ui/overlay/index.esm.js +16 -0
- package/dist/components/ui/overlay/index.js +16 -0
- package/dist/components/ui/overlay/modal.d.ts +262 -0
- package/dist/components/ui/overlay/modal.esm.js +266 -0
- package/dist/components/ui/overlay/modal.js +266 -0
- package/dist/components/ui/overlay/overlay-manager.d.ts +107 -0
- package/dist/components/ui/overlay/overlay-manager.esm.js +105 -0
- package/dist/components/ui/overlay/overlay-manager.js +105 -0
- package/dist/components/ui/overlay/popover.d.ts +450 -0
- package/dist/components/ui/overlay/popover.esm.js +446 -0
- package/dist/components/ui/overlay/popover.js +446 -0
- package/dist/components/ui/overlay/portal.d.ts +75 -0
- package/dist/components/ui/overlay/portal.esm.js +79 -0
- package/dist/components/ui/overlay/portal.js +79 -0
- package/dist/components/ui/overlay/tooltip.d.ts +298 -0
- package/dist/components/ui/overlay/tooltip.esm.js +288 -0
- package/dist/components/ui/overlay/tooltip.js +288 -0
- package/dist/components/ui/overlay/types.d.ts +194 -0
- package/dist/components/ui/overlay/types.esm.js +195 -0
- package/dist/components/ui/overlay/types.js +195 -0
- package/dist/components/ui/performance-demo.d.ts +583 -0
- package/dist/components/ui/performance-demo.esm.js +549 -0
- package/dist/components/ui/performance-demo.js +549 -0
- package/dist/components/ui/semantic-input-system-demo.d.ts +490 -0
- package/dist/components/ui/semantic-input-system-demo.esm.js +465 -0
- package/dist/components/ui/semantic-input-system-demo.js +465 -0
- package/dist/components/ui/theme-customizer.d.ts +378 -0
- package/dist/components/ui/theme-customizer.esm.js +354 -0
- package/dist/components/ui/theme-customizer.js +354 -0
- package/dist/components/ui/theme-preview.d.ts +305 -0
- package/dist/components/ui/theme-preview.esm.js +258 -0
- package/dist/components/ui/theme-preview.js +258 -0
- package/dist/components/ui/theme-switcher.d.ts +259 -0
- package/dist/components/ui/theme-switcher.esm.js +238 -0
- package/dist/components/ui/theme-switcher.js +238 -0
- package/dist/components/ui/theme-toggle.d.ts +34 -0
- package/dist/components/ui/theme-toggle.esm.js +38 -0
- package/dist/components/ui/theme-toggle.js +38 -0
- package/dist/components/ui/token-demo.d.ts +188 -0
- package/dist/components/ui/token-demo.esm.js +183 -0
- package/dist/components/ui/token-demo.js +183 -0
- package/dist/components/ui/touch-demo.d.ts +455 -0
- package/dist/components/ui/touch-demo.esm.js +433 -0
- package/dist/components/ui/touch-demo.js +433 -0
- package/dist/components/ui/touch-friendly-interface-demo.d.ts +512 -0
- package/dist/components/ui/touch-friendly-interface-demo.esm.js +481 -0
- package/dist/components/ui/touch-friendly-interface-demo.js +481 -0
- package/dist/components/ui/touch-friendly-interface.d.ts +292 -0
- package/dist/components/ui/touch-friendly-interface.esm.js +272 -0
- package/dist/components/ui/touch-friendly-interface.js +272 -0
- package/dist/hooks/index.d.ts +161 -0
- package/dist/hooks/index.esm.js +190 -0
- package/dist/hooks/index.js +190 -0
- package/dist/hooks/use-accessibility-support.d.ts +516 -0
- package/dist/hooks/use-accessibility-support.esm.js +488 -0
- package/dist/hooks/use-accessibility-support.js +488 -0
- package/dist/hooks/use-adaptive-layout.d.ts +287 -0
- package/dist/hooks/use-adaptive-layout.esm.js +266 -0
- package/dist/hooks/use-adaptive-layout.js +266 -0
- package/dist/hooks/use-advanced-patterns.d.ts +292 -0
- package/dist/hooks/use-advanced-patterns.esm.js +279 -0
- package/dist/hooks/use-advanced-patterns.js +279 -0
- package/dist/hooks/use-advanced-transition-system.d.ts +390 -0
- package/dist/hooks/use-advanced-transition-system.esm.js +352 -0
- package/dist/hooks/use-advanced-transition-system.js +352 -0
- package/dist/hooks/use-animation-profile.d.ts +285 -0
- package/dist/hooks/use-animation-profile.esm.js +259 -0
- package/dist/hooks/use-animation-profile.js +259 -0
- package/dist/hooks/use-battery-animations.d.ts +382 -0
- package/dist/hooks/use-battery-animations.esm.js +359 -0
- package/dist/hooks/use-battery-animations.js +359 -0
- package/dist/hooks/use-battery-conscious-loading.d.ts +473 -0
- package/dist/hooks/use-battery-conscious-loading.esm.js +432 -0
- package/dist/hooks/use-battery-conscious-loading.js +432 -0
- package/dist/hooks/use-battery-optimization.d.ts +328 -0
- package/dist/hooks/use-battery-optimization.esm.js +307 -0
- package/dist/hooks/use-battery-optimization.js +307 -0
- package/dist/hooks/use-battery-status.d.ts +297 -0
- package/dist/hooks/use-battery-status.esm.js +277 -0
- package/dist/hooks/use-battery-status.js +277 -0
- package/dist/hooks/use-component-performance.d.ts +342 -0
- package/dist/hooks/use-component-performance.esm.js +329 -0
- package/dist/hooks/use-component-performance.js +329 -0
- package/dist/hooks/use-device-loading-states.d.ts +456 -0
- package/dist/hooks/use-device-loading-states.esm.js +416 -0
- package/dist/hooks/use-device-loading-states.js +416 -0
- package/dist/hooks/use-device.d.ts +104 -0
- package/dist/hooks/use-device.esm.js +99 -0
- package/dist/hooks/use-device.js +99 -0
- package/dist/hooks/use-enterprise-mobile-experience.d.ts +486 -0
- package/dist/hooks/use-enterprise-mobile-experience.esm.js +439 -0
- package/dist/hooks/use-enterprise-mobile-experience.js +439 -0
- package/dist/hooks/use-form-feedback.d.ts +401 -0
- package/dist/hooks/use-form-feedback.esm.js +360 -0
- package/dist/hooks/use-form-feedback.js +360 -0
- package/dist/hooks/use-form-performance.d.ts +511 -0
- package/dist/hooks/use-form-performance.esm.js +478 -0
- package/dist/hooks/use-form-performance.js +478 -0
- package/dist/hooks/use-frame-rate.d.ts +249 -0
- package/dist/hooks/use-frame-rate.esm.js +232 -0
- package/dist/hooks/use-frame-rate.js +232 -0
- package/dist/hooks/use-gestures.d.ts +336 -0
- package/dist/hooks/use-gestures.esm.js +314 -0
- package/dist/hooks/use-gestures.js +314 -0
- package/dist/hooks/use-hardware-acceleration.d.ts +339 -0
- package/dist/hooks/use-hardware-acceleration.esm.js +313 -0
- package/dist/hooks/use-hardware-acceleration.js +313 -0
- package/dist/hooks/use-input-accessibility.d.ts +451 -0
- package/dist/hooks/use-input-accessibility.esm.js +417 -0
- package/dist/hooks/use-input-accessibility.js +417 -0
- package/dist/hooks/use-input-performance.d.ts +503 -0
- package/dist/hooks/use-input-performance.esm.js +471 -0
- package/dist/hooks/use-input-performance.js +471 -0
- package/dist/hooks/use-layout-performance.d.ts +317 -0
- package/dist/hooks/use-layout-performance.esm.js +298 -0
- package/dist/hooks/use-layout-performance.js +298 -0
- package/dist/hooks/use-loading-accessibility.d.ts +532 -0
- package/dist/hooks/use-loading-accessibility.esm.js +495 -0
- package/dist/hooks/use-loading-accessibility.js +495 -0
- package/dist/hooks/use-loading-performance.d.ts +471 -0
- package/dist/hooks/use-loading-performance.esm.js +449 -0
- package/dist/hooks/use-loading-performance.js +449 -0
- package/dist/hooks/use-memory-usage.d.ts +285 -0
- package/dist/hooks/use-memory-usage.esm.js +268 -0
- package/dist/hooks/use-memory-usage.js +268 -0
- package/dist/hooks/use-mobile-form-layout.d.ts +462 -0
- package/dist/hooks/use-mobile-form-layout.esm.js +427 -0
- package/dist/hooks/use-mobile-form-layout.js +427 -0
- package/dist/hooks/use-mobile-form-validation.d.ts +516 -0
- package/dist/hooks/use-mobile-form-validation.esm.js +451 -0
- package/dist/hooks/use-mobile-form-validation.js +451 -0
- package/dist/hooks/use-mobile-keyboard-optimization.d.ts +469 -0
- package/dist/hooks/use-mobile-keyboard-optimization.esm.js +431 -0
- package/dist/hooks/use-mobile-keyboard-optimization.js +431 -0
- package/dist/hooks/use-mobile-layout.d.ts +300 -0
- package/dist/hooks/use-mobile-layout.esm.js +280 -0
- package/dist/hooks/use-mobile-layout.js +280 -0
- package/dist/hooks/use-mobile-optimization.d.ts +404 -0
- package/dist/hooks/use-mobile-optimization.esm.js +378 -0
- package/dist/hooks/use-mobile-optimization.js +378 -0
- package/dist/hooks/use-mobile-skeleton.d.ts +399 -0
- package/dist/hooks/use-mobile-skeleton.esm.js +369 -0
- package/dist/hooks/use-mobile-skeleton.js +369 -0
- package/dist/hooks/use-mobile-touch.d.ts +412 -0
- package/dist/hooks/use-mobile-touch.esm.js +379 -0
- package/dist/hooks/use-mobile-touch.js +379 -0
- package/dist/hooks/use-performance-throttling.d.ts +346 -0
- package/dist/hooks/use-performance-throttling.esm.js +324 -0
- package/dist/hooks/use-performance-throttling.js +324 -0
- package/dist/hooks/use-performance.d.ts +314 -0
- package/dist/hooks/use-performance.esm.js +278 -0
- package/dist/hooks/use-performance.js +278 -0
- package/dist/hooks/use-reusable-architecture.d.ts +412 -0
- package/dist/hooks/use-reusable-architecture.esm.js +385 -0
- package/dist/hooks/use-reusable-architecture.js +385 -0
- package/dist/hooks/use-semantic-input-types.d.ts +354 -0
- package/dist/hooks/use-semantic-input-types.esm.js +315 -0
- package/dist/hooks/use-semantic-input-types.js +315 -0
- package/dist/hooks/use-semantic-input.d.ts +563 -0
- package/dist/hooks/use-semantic-input.esm.js +513 -0
- package/dist/hooks/use-semantic-input.js +513 -0
- package/dist/hooks/use-tablet-layout.d.ts +382 -0
- package/dist/hooks/use-tablet-layout.esm.js +355 -0
- package/dist/hooks/use-tablet-layout.js +355 -0
- package/dist/hooks/use-touch-friendly-input.d.ts +520 -0
- package/dist/hooks/use-touch-friendly-input.esm.js +480 -0
- package/dist/hooks/use-touch-friendly-input.js +480 -0
- package/dist/hooks/use-touch-friendly-interface.d.ts +329 -0
- package/dist/hooks/use-touch-friendly-interface.esm.js +299 -0
- package/dist/hooks/use-touch-friendly-interface.js +299 -0
- package/dist/hooks/use-touch-optimization.d.ts +373 -0
- package/dist/hooks/use-touch-optimization.esm.js +348 -0
- package/dist/hooks/use-touch-optimization.js +348 -0
- package/dist/index.esm.js +2 -2
- package/dist/index.js +2 -2
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.esm.js +6 -0
- package/dist/lib/utils.js +6 -0
- package/dist/plugins/theme-css-generator.d.ts +345 -0
- package/dist/plugins/theme-css-generator.esm.js +305 -0
- package/dist/plugins/theme-css-generator.js +305 -0
- package/dist/styles.css +1 -1
- package/dist/themes/ThemeContext.d.ts +27 -0
- package/dist/themes/ThemeContext.esm.js +31 -0
- package/dist/themes/ThemeContext.js +31 -0
- package/dist/themes/ThemeProvider.d.ts +222 -0
- package/dist/themes/ThemeProvider.esm.js +229 -0
- package/dist/themes/ThemeProvider.js +229 -0
- package/dist/themes/accessibility/index.d.ts +7 -0
- package/dist/themes/accessibility/index.esm.js +27 -0
- package/dist/themes/accessibility/index.js +27 -0
- package/dist/themes/accessibility.d.ts +259 -0
- package/dist/themes/accessibility.esm.js +220 -0
- package/dist/themes/accessibility.js +220 -0
- package/dist/themes/aria-patterns.d.ts +418 -0
- package/dist/themes/aria-patterns.esm.js +384 -0
- package/dist/themes/aria-patterns.js +384 -0
- package/dist/themes/base-themes.d.ts +34 -0
- package/dist/themes/base-themes.esm.js +52 -0
- package/dist/themes/base-themes.js +52 -0
- package/dist/themes/colorManager.d.ts +327 -0
- package/dist/themes/colorManager.esm.js +362 -0
- package/dist/themes/colorManager.js +362 -0
- package/dist/themes/examples/dark-theme.d.ts +139 -0
- package/dist/themes/examples/dark-theme.esm.js +124 -0
- package/dist/themes/examples/dark-theme.js +124 -0
- package/dist/themes/examples/minimal-theme.d.ts +93 -0
- package/dist/themes/examples/minimal-theme.esm.js +86 -0
- package/dist/themes/examples/minimal-theme.js +86 -0
- package/dist/themes/focus-management.d.ts +699 -0
- package/dist/themes/focus-management.esm.js +642 -0
- package/dist/themes/focus-management.js +642 -0
- package/dist/themes/fontLoader.d.ts +163 -0
- package/dist/themes/fontLoader.esm.js +192 -0
- package/dist/themes/fontLoader.js +192 -0
- package/dist/themes/high-contrast.d.ts +619 -0
- package/dist/themes/high-contrast.esm.js +573 -0
- package/dist/themes/high-contrast.js +573 -0
- package/dist/themes/index.d.ts +11 -0
- package/dist/themes/index.esm.js +19 -0
- package/dist/themes/index.js +19 -0
- package/dist/themes/inheritance.d.ts +160 -0
- package/dist/themes/inheritance.esm.js +219 -0
- package/dist/themes/inheritance.js +219 -0
- package/dist/themes/keyboard-navigation.d.ts +550 -0
- package/dist/themes/keyboard-navigation.esm.js +521 -0
- package/dist/themes/keyboard-navigation.js +521 -0
- package/dist/themes/motion-reduction.d.ts +660 -0
- package/dist/themes/motion-reduction.esm.js +602 -0
- package/dist/themes/motion-reduction.js +602 -0
- package/dist/themes/navigation.d.ts +232 -0
- package/dist/themes/navigation.esm.js +238 -0
- package/dist/themes/navigation.js +238 -0
- package/dist/themes/screen-reader.d.ts +645 -0
- package/dist/themes/screen-reader.esm.js +580 -0
- package/dist/themes/screen-reader.js +580 -0
- package/dist/themes/systemThemeDetector.d.ts +148 -0
- package/dist/themes/systemThemeDetector.esm.js +174 -0
- package/dist/themes/systemThemeDetector.js +174 -0
- package/dist/themes/themeCSSUpdater.d.ts +229 -0
- package/dist/themes/themeCSSUpdater.esm.js +250 -0
- package/dist/themes/themeCSSUpdater.js +250 -0
- package/dist/themes/themePersistence.d.ts +192 -0
- package/dist/themes/themePersistence.esm.js +217 -0
- package/dist/themes/themePersistence.js +217 -0
- package/dist/themes/themes/stan-design.d.ts +678 -0
- package/dist/themes/themes/stan-design.esm.js +518 -0
- package/dist/themes/themes/stan-design.js +518 -0
- package/dist/themes/types.d.ts +454 -0
- package/dist/themes/types.esm.js +446 -0
- package/dist/themes/types.js +446 -0
- package/dist/themes/useSystemTheme.d.ts +43 -0
- package/dist/themes/useSystemTheme.esm.js +48 -0
- package/dist/themes/useSystemTheme.js +48 -0
- package/dist/themes/useTheme.d.ts +20 -0
- package/dist/themes/useTheme.esm.js +87 -0
- package/dist/themes/useTheme.js +87 -0
- package/dist/themes/validation.d.ts +406 -0
- package/dist/themes/validation.esm.js +411 -0
- package/dist/themes/validation.js +411 -0
- package/dist/tokens/index.d.ts +25 -0
- package/dist/tokens/index.esm.js +23 -0
- package/dist/tokens/index.js +23 -0
- package/dist/tokens/tokenExporter.d.ts +336 -0
- package/dist/tokens/tokenExporter.esm.js +371 -0
- package/dist/tokens/tokenExporter.js +371 -0
- package/dist/tokens/tokenGenerator.d.ts +250 -0
- package/dist/tokens/tokenGenerator.esm.js +267 -0
- package/dist/tokens/tokenGenerator.js +267 -0
- package/dist/tokens/tokenManager.d.ts +194 -0
- package/dist/tokens/tokenManager.esm.js +235 -0
- package/dist/tokens/tokenManager.js +235 -0
- package/dist/tokens/tokenValidator.d.ts +488 -0
- package/dist/tokens/tokenValidator.esm.js +497 -0
- package/dist/tokens/tokenValidator.js +497 -0
- package/dist/tokens/types.d.ts +78 -0
- package/dist/tokens/types.esm.js +64 -0
- package/dist/tokens/types.js +64 -0
- package/dist/utils/bundle-analyzer.d.ts +260 -0
- package/dist/utils/bundle-analyzer.esm.js +242 -0
- package/dist/utils/bundle-analyzer.js +242 -0
- package/dist/utils/bundle-splitting.d.ts +483 -0
- package/dist/utils/bundle-splitting.esm.js +458 -0
- package/dist/utils/bundle-splitting.js +458 -0
- package/dist/utils/lazy-loading.d.ts +437 -0
- package/dist/utils/lazy-loading.esm.js +415 -0
- package/dist/utils/lazy-loading.js +415 -0
- package/dist/utils/performance-monitor.d.ts +513 -0
- package/dist/utils/performance-monitor.esm.js +472 -0
- package/dist/utils/performance-monitor.js +472 -0
- package/dist/utils/tree-shaking.d.ts +274 -0
- package/dist/utils/tree-shaking.esm.js +266 -0
- package/dist/utils/tree-shaking.js +266 -0
- package/package.json +1 -1
- package/src/index.ts +2 -2
- package/src/themes/accessibility/index.ts +1 -1
- package/src/themes/focus-management.ts +3 -3
- package/src/themes/keyboard-navigation.ts +3 -3
package/dist/index.esm.js
CHANGED
|
@@ -136,7 +136,7 @@ export { ARIA_SORT_VALUES } from './themes/aria-patterns';
|
|
|
136
136
|
export { ARIA_ORIENTATION_VALUES } from './themes/aria-patterns';
|
|
137
137
|
export { ARIAUtils } from './themes/aria-patterns';
|
|
138
138
|
export { ColorManager } from './themes/colorManager';
|
|
139
|
-
export {
|
|
139
|
+
export { AccessibilityFocusManager } from './themes/focus-management';
|
|
140
140
|
export { FocusTrap } from './themes/focus-management';
|
|
141
141
|
export { FocusRestoration } from './themes/focus-management';
|
|
142
142
|
export { FocusNavigation } from './themes/focus-management';
|
|
@@ -146,7 +146,7 @@ export { HighContrastThemeManager } from './themes/high-contrast';
|
|
|
146
146
|
export { KEY_CODES } from './themes/keyboard-navigation';
|
|
147
147
|
export { NAVIGATION_PATTERNS } from './themes/keyboard-navigation';
|
|
148
148
|
export { KeyboardNavigationManager } from './themes/keyboard-navigation';
|
|
149
|
-
export {
|
|
149
|
+
export { KeyboardFocusManager } from './themes/keyboard-navigation';
|
|
150
150
|
export { MotionReductionManager } from './themes/motion-reduction';
|
|
151
151
|
export { MotionReductionUtils } from './themes/motion-reduction';
|
|
152
152
|
export { MotionReductionHooks } from './themes/motion-reduction';
|
package/dist/index.js
CHANGED
|
@@ -136,7 +136,7 @@ export { ARIA_SORT_VALUES } from './themes/aria-patterns';
|
|
|
136
136
|
export { ARIA_ORIENTATION_VALUES } from './themes/aria-patterns';
|
|
137
137
|
export { ARIAUtils } from './themes/aria-patterns';
|
|
138
138
|
export { ColorManager } from './themes/colorManager';
|
|
139
|
-
export {
|
|
139
|
+
export { AccessibilityFocusManager } from './themes/focus-management';
|
|
140
140
|
export { FocusTrap } from './themes/focus-management';
|
|
141
141
|
export { FocusRestoration } from './themes/focus-management';
|
|
142
142
|
export { FocusNavigation } from './themes/focus-management';
|
|
@@ -146,7 +146,7 @@ export { HighContrastThemeManager } from './themes/high-contrast';
|
|
|
146
146
|
export { KEY_CODES } from './themes/keyboard-navigation';
|
|
147
147
|
export { NAVIGATION_PATTERNS } from './themes/keyboard-navigation';
|
|
148
148
|
export { KeyboardNavigationManager } from './themes/keyboard-navigation';
|
|
149
|
-
export {
|
|
149
|
+
export { KeyboardFocusManager } from './themes/keyboard-navigation';
|
|
150
150
|
export { MotionReductionManager } from './themes/motion-reduction';
|
|
151
151
|
export { MotionReductionUtils } from './themes/motion-reduction';
|
|
152
152
|
export { MotionReductionHooks } from './themes/motion-reduction';
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
export default function themeCSSGenerator(): Plugin {
|
|
2
|
+
let config: any
|
|
3
|
+
|
|
4
|
+
// Helper function to safely convert values to strings
|
|
5
|
+
const valueToString = (value: any): string => {
|
|
6
|
+
if (Array.isArray(value)) {
|
|
7
|
+
return value.join(', ')
|
|
8
|
+
}
|
|
9
|
+
if (typeof value === 'object' && value !== null) {
|
|
10
|
+
return JSON.stringify(value)
|
|
11
|
+
}
|
|
12
|
+
return String(value)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Helper function to create CSS variable name
|
|
16
|
+
const createCSSVarName = (path: string[]): string => {
|
|
17
|
+
return `--cs-${path.join('-').replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`)}`
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
// Generate @font-face declarations from font configuration
|
|
21
|
+
const generateFontFaces = (themeObj: MultiThemeConfig): string => {
|
|
22
|
+
let css = ''
|
|
23
|
+
|
|
24
|
+
if (!themeObj.fonts) return css
|
|
25
|
+
|
|
26
|
+
Object.entries(themeObj.fonts).forEach(([, fontConfig]) => {
|
|
27
|
+
if (fontConfig.source?.type === 'custom' && fontConfig.source.files?.woff2) {
|
|
28
|
+
const { family, source, weights, display } = fontConfig
|
|
29
|
+
|
|
30
|
+
if (weights && Array.isArray(weights) && weights.length > 0) {
|
|
31
|
+
const minWeight = Math.min(...weights)
|
|
32
|
+
const maxWeight = Math.max(...weights)
|
|
33
|
+
|
|
34
|
+
css += `\n@font-face {\n`
|
|
35
|
+
css += ` font-family: '${family}';\n`
|
|
36
|
+
css += ` src: url('${source.files.woff2}') format('woff2-variations');\n`
|
|
37
|
+
css += ` font-weight: ${minWeight} ${maxWeight};\n`
|
|
38
|
+
css += ` font-display: ${display || 'swap'};\n`
|
|
39
|
+
css += `}\n`
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
return css
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// NEW: Extract breakpoints from anywhere in the theme object
|
|
48
|
+
const extractBreakpoints = (obj: any): any => {
|
|
49
|
+
let breakpoints: any = {}
|
|
50
|
+
|
|
51
|
+
const searchForBreakpoints = (currentObj: any, currentPath: string[] = []) => {
|
|
52
|
+
if (typeof currentObj !== 'object' || currentObj === null) {
|
|
53
|
+
return
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
Object.entries(currentObj).forEach(([key, value]) => {
|
|
57
|
+
if (key === 'breakpoints' && typeof value === 'object' && value !== null) {
|
|
58
|
+
// Found breakpoints, extract them
|
|
59
|
+
Object.entries(value).forEach(([bpKey, bpValue]) => {
|
|
60
|
+
if (typeof bpValue === 'string' || typeof bpValue === 'number') {
|
|
61
|
+
breakpoints[bpKey] = bpValue
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
} else if (typeof value === 'object' && value !== null) {
|
|
65
|
+
// Recursively search deeper
|
|
66
|
+
searchForBreakpoints(value, [...currentPath, key])
|
|
67
|
+
}
|
|
68
|
+
})
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
searchForBreakpoints(obj)
|
|
72
|
+
return breakpoints
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// NEW: Generate breakpoint CSS variables and @custom-media queries
|
|
76
|
+
const generateBreakpointVariables = (breakpoints: any): string => {
|
|
77
|
+
let css = ''
|
|
78
|
+
if (Object.keys(breakpoints).length === 0) { return css }
|
|
79
|
+
|
|
80
|
+
css += ` /* Breakpoint Variables */\n`
|
|
81
|
+
Object.entries(breakpoints).forEach(([key, value]) => {
|
|
82
|
+
css += ` --cs-breakpoints-${key}: ${value};\n`
|
|
83
|
+
})
|
|
84
|
+
css += '\n'
|
|
85
|
+
|
|
86
|
+
// NEW: Generate @custom-media queries for use in media queries
|
|
87
|
+
css += ` /* Custom Media Queries for Breakpoints */\n`
|
|
88
|
+
Object.entries(breakpoints).forEach(([key, value]) => {
|
|
89
|
+
css += ` @custom-media --bp-${key} (min-width: ${value});\n`
|
|
90
|
+
})
|
|
91
|
+
css += '\n'
|
|
92
|
+
|
|
93
|
+
return css
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// Recursively generate CSS variables from theme object
|
|
97
|
+
const generateCSSVariables = (obj: any, path: string[] = []): string => {
|
|
98
|
+
let css = ''
|
|
99
|
+
|
|
100
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
101
|
+
return css
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
Object.entries(obj).forEach(([key, value]) => {
|
|
105
|
+
const currentPath = [...path, key]
|
|
106
|
+
|
|
107
|
+
if (typeof value === 'string' || typeof value === 'number') {
|
|
108
|
+
// Generate CSS variable for primitive values
|
|
109
|
+
const cssVarName = createCSSVarName(currentPath)
|
|
110
|
+
css += ` ${cssVarName}: ${value};\n`
|
|
111
|
+
} else if (Array.isArray(value)) {
|
|
112
|
+
// Handle arrays (like font weights, tags)
|
|
113
|
+
const cssVarName = createCSSVarName(currentPath)
|
|
114
|
+
css += ` ${cssVarName}: ${valueToString(value)};\n`
|
|
115
|
+
} else if (typeof value === 'object' && value !== null) {
|
|
116
|
+
// Recursively process nested objects
|
|
117
|
+
css += generateCSSVariables(value, currentPath)
|
|
118
|
+
}
|
|
119
|
+
})
|
|
120
|
+
|
|
121
|
+
return css
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Generate CSS from theme object using structured traversal
|
|
125
|
+
const generateSingleThemeCSS = (themeName: string, themeObj: MultiThemeConfig): string => {
|
|
126
|
+
// Always generate light + dark mode CSS
|
|
127
|
+
return generateLightDarkCSS(themeName, themeObj)
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// Generate light and dark mode CSS
|
|
131
|
+
const generateLightDarkCSS = (themeName: string, themeObj: MultiThemeConfig): string => {
|
|
132
|
+
let css = `/* ${themeName} Theme - Light & Dark Modes */\n`
|
|
133
|
+
|
|
134
|
+
// Generate @font-face declarations
|
|
135
|
+
css += generateFontFaces(themeObj)
|
|
136
|
+
|
|
137
|
+
// NEW: Extract breakpoints from anywhere in the theme
|
|
138
|
+
const breakpoints = extractBreakpoints(themeObj)
|
|
139
|
+
|
|
140
|
+
// Generate light mode variables (default)
|
|
141
|
+
css += `:root {\n`
|
|
142
|
+
css += ` /* Light Mode Variables */\n`
|
|
143
|
+
|
|
144
|
+
// NEW: Generate breakpoint variables first
|
|
145
|
+
css += generateBreakpointVariables(breakpoints)
|
|
146
|
+
|
|
147
|
+
// Generate all other CSS variables
|
|
148
|
+
css += generateCSSVariables(themeObj)
|
|
149
|
+
css += '}\n\n'
|
|
150
|
+
|
|
151
|
+
// Generate dark mode variables
|
|
152
|
+
css += `.dark {\n`
|
|
153
|
+
css += ` /* Dark Mode Variables */\n`
|
|
154
|
+
|
|
155
|
+
if (themeObj.modes?.dark?.colors && Object.keys(themeObj.modes.dark.colors).length > 0) {
|
|
156
|
+
// Use custom dark mode colors if defined
|
|
157
|
+
css += generateDarkModeColors(themeObj.modes.dark.colors)
|
|
158
|
+
} else {
|
|
159
|
+
// Generate automatic dark mode by adapting colors
|
|
160
|
+
css += generateDarkModeVariables(themeObj)
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
css += '}\n'
|
|
164
|
+
return css
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Generate dark mode colors from explicit color definitions
|
|
168
|
+
const generateDarkModeColors = (darkColors: any): string => {
|
|
169
|
+
let css = ''
|
|
170
|
+
|
|
171
|
+
Object.entries(darkColors).forEach(([colorKey, colorValue]) => {
|
|
172
|
+
if (typeof colorValue === 'object' && colorValue !== null) {
|
|
173
|
+
// Handle nested color objects (like surface, text, etc.)
|
|
174
|
+
Object.entries(colorValue).forEach(([subKey, subValue]) => {
|
|
175
|
+
if (typeof subValue === 'string' || typeof subValue === 'number') {
|
|
176
|
+
css += ` --cs-colors-${colorKey}-${subKey}: ${subValue};\n`
|
|
177
|
+
}
|
|
178
|
+
})
|
|
179
|
+
} else if (typeof colorValue === 'string' || typeof colorValue === 'number') {
|
|
180
|
+
// Handle direct color values
|
|
181
|
+
css += ` --cs-colors-${colorKey}: ${colorValue};\n`
|
|
182
|
+
}
|
|
183
|
+
})
|
|
184
|
+
|
|
185
|
+
return css
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Generate dark mode variables by adapting light mode colors
|
|
189
|
+
const generateDarkModeVariables = (themeObj: MultiThemeConfig): string => {
|
|
190
|
+
// Create a dark variant of the theme by adapting colors
|
|
191
|
+
const darkTheme = adaptThemeForDarkMode(themeObj)
|
|
192
|
+
|
|
193
|
+
// Generate CSS variables only for the properties that exist in the dark theme
|
|
194
|
+
let css = ''
|
|
195
|
+
|
|
196
|
+
if (darkTheme.colors) {
|
|
197
|
+
// Generate CSS variables for colors
|
|
198
|
+
Object.entries(darkTheme.colors).forEach(([colorKey, colorValue]) => {
|
|
199
|
+
if (typeof colorValue === 'object' && colorValue !== null) {
|
|
200
|
+
// Handle nested color objects (like surface, text, etc.)
|
|
201
|
+
Object.entries(colorValue).forEach(([subKey, subValue]) => {
|
|
202
|
+
if (typeof subValue === 'string' || typeof subValue === 'number') {
|
|
203
|
+
css += ` --cs-colors-${colorKey}-${subKey}: ${subValue};\n`
|
|
204
|
+
}
|
|
205
|
+
})
|
|
206
|
+
} else if (typeof colorValue === 'string' || typeof colorValue === 'number') {
|
|
207
|
+
// Handle direct color values
|
|
208
|
+
css += ` --cs-colors-${colorKey}: ${colorValue};\n`
|
|
209
|
+
}
|
|
210
|
+
})
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
// Add some basic dark mode variables for testing
|
|
214
|
+
css += ` --cs-colors-surface-background: #0f172a;\n`
|
|
215
|
+
css += ` --cs-colors-surface-surface: #1e293b;\n`
|
|
216
|
+
css += ` --cs-colors-surface-border: #334155;\n`
|
|
217
|
+
css += ` --cs-colors-surface-divider: #475569;\n`
|
|
218
|
+
css += ` --cs-colors-text-primary: #f8fafc;\n`
|
|
219
|
+
css += ` --cs-colors-text-secondary: #cbd5e1;\n`
|
|
220
|
+
css += ` --cs-colors-text-muted: #94a3b8;\n`
|
|
221
|
+
|
|
222
|
+
return css
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Adapt theme for dark mode
|
|
226
|
+
const adaptThemeForDarkMode = (_themeObj: MultiThemeConfig): Partial<MultiThemeConfig> => {
|
|
227
|
+
// This would implement your dark mode color adaptation logic
|
|
228
|
+
// You can use the existing ColorManager or implement custom logic
|
|
229
|
+
return {
|
|
230
|
+
colors: {
|
|
231
|
+
surface: {
|
|
232
|
+
background: '#0f172a', // Dark background
|
|
233
|
+
surface: '#1e293b', // Dark surface
|
|
234
|
+
border: '#334155', // Dark border
|
|
235
|
+
divider: '#475569' // Dark divider
|
|
236
|
+
},
|
|
237
|
+
text: {
|
|
238
|
+
primary: '#f8fafc', // Light text
|
|
239
|
+
secondary: '#cbd5e1', // Muted text
|
|
240
|
+
muted: '#94a3b8', // Muted text
|
|
241
|
+
inverse: '#0f172a', // Dark text for light backgrounds
|
|
242
|
+
onPrimary: '#0f172a', // Text on primary color
|
|
243
|
+
onSecondary: '#0f172a', // Text on secondary color
|
|
244
|
+
onSurface: '#f8fafc' // Text on surface
|
|
245
|
+
}
|
|
246
|
+
// ... other color adaptations
|
|
247
|
+
} as any // Type assertion to bypass strict typing for now
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Generate CSS for all themes using structured approach
|
|
252
|
+
const generateAllThemesCSS = () => {
|
|
253
|
+
try {
|
|
254
|
+
// Create themes directory if it doesn't exist
|
|
255
|
+
const themesDir = resolve(config.root, 'src/styles/themes')
|
|
256
|
+
if (!existsSync(themesDir)) {
|
|
257
|
+
mkdirSync(themesDir, { recursive: true })
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
let indexCSS = '/* Theme Index - Import all themes */\n'
|
|
261
|
+
let defaultThemeCSS = '/* Default Theme Variables (Coach-Stan) */\n'
|
|
262
|
+
|
|
263
|
+
// Use defaultThemes instead of hardcoded themeFiles
|
|
264
|
+
for (const [themeKey, themeObj] of Object.entries(defaultThemes)) {
|
|
265
|
+
try {
|
|
266
|
+
// Generate CSS for this specific theme
|
|
267
|
+
const themeCSS = generateSingleThemeCSS(themeObj.meta.name, themeObj)
|
|
268
|
+
|
|
269
|
+
// Write individual theme file
|
|
270
|
+
const themeFileName = `${themeKey}.css`
|
|
271
|
+
const themeOutputPath = resolve(themesDir, themeFileName)
|
|
272
|
+
writeFileSync(themeOutputPath, themeCSS, 'utf-8')
|
|
273
|
+
|
|
274
|
+
\n`
|
|
275
|
+
|
|
276
|
+
// Set stan-design theme as default
|
|
277
|
+
if (themeKey === 'stan-design') {
|
|
278
|
+
defaultThemeCSS += themeCSS
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
} catch (error) {
|
|
282
|
+
console.error(`❌ Error processing ${themeKey}:`, error)
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Write theme index file
|
|
287
|
+
const indexPath = resolve(config.root, 'src/styles/themes/index.css')
|
|
288
|
+
writeFileSync(indexPath, indexCSS, 'utf-8')
|
|
289
|
+
|
|
290
|
+
// Write default theme file (for backward compatibility)
|
|
291
|
+
const defaultPath = resolve(config.root, 'src/styles/generated-theme-variables.css')
|
|
292
|
+
writeFileSync(defaultPath, defaultThemeCSS, 'utf-8')
|
|
293
|
+
|
|
294
|
+
console.log('✅ Theme CSS Generator: Generated all dual-mode theme files successfully')
|
|
295
|
+
|
|
296
|
+
} catch (error) {
|
|
297
|
+
console.error('❌ Theme CSS Generator Error:', error)
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// Main function to generate theme CSS
|
|
302
|
+
const generateThemeCSS = () => {
|
|
303
|
+
try {
|
|
304
|
+
// Check if themes directory exists
|
|
305
|
+
const themesSourceDir = resolve(config.root, 'src/themes/themes')
|
|
306
|
+
|
|
307
|
+
if (!existsSync(themesSourceDir)) {
|
|
308
|
+
console.warn('⚠️ Theme CSS Generator: themes/themes/ directory not found')
|
|
309
|
+
return
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
// Generate CSS for all themes
|
|
313
|
+
generateAllThemesCSS()
|
|
314
|
+
|
|
315
|
+
} catch (error) {
|
|
316
|
+
console.error('❌ Theme CSS Generator Error:', error)
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
return {
|
|
321
|
+
name: 'theme-css-generator',
|
|
322
|
+
|
|
323
|
+
configResolved(resolvedConfig) {
|
|
324
|
+
config = resolvedConfig
|
|
325
|
+
},
|
|
326
|
+
|
|
327
|
+
buildStart() {
|
|
328
|
+
generateThemeCSS()
|
|
329
|
+
},
|
|
330
|
+
|
|
331
|
+
handleHotUpdate({ file }) {
|
|
332
|
+
// Use defaultThemes keys instead of hardcoded file paths
|
|
333
|
+
const themeKeys = Object.keys(defaultThemes)
|
|
334
|
+
const shouldRegenerate = themeKeys.some(themeKey =>
|
|
335
|
+
file.includes(`themes/${themeKey}.ts`) ||
|
|
336
|
+
file.includes('inheritance.ts') ||
|
|
337
|
+
file.includes('types.ts')
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
if (shouldRegenerate) {
|
|
341
|
+
generateThemeCSS()
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|