@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.9 → 0.2.10
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.esm.js +30 -24
- package/dist/components/ui/accessibility-demo.js +30 -24
- package/dist/components/ui/advanced-component-architecture-demo.esm.js +235 -179
- package/dist/components/ui/advanced-component-architecture-demo.js +235 -179
- package/dist/components/ui/advanced-transition-system-demo.esm.js +110 -64
- package/dist/components/ui/advanced-transition-system-demo.js +110 -64
- package/dist/components/ui/advanced-transition-system.esm.js +166 -122
- package/dist/components/ui/advanced-transition-system.js +166 -122
- package/dist/components/ui/animation/animated-container.esm.js +52 -29
- package/dist/components/ui/animation/animated-container.js +52 -29
- package/dist/components/ui/animation/staggered-container.esm.js +18 -9
- package/dist/components/ui/animation/staggered-container.js +18 -9
- package/dist/components/ui/animation-demo.esm.js +67 -35
- package/dist/components/ui/animation-demo.js +67 -35
- package/dist/components/ui/badge.esm.js +9 -6
- package/dist/components/ui/badge.js +9 -6
- package/dist/components/ui/battery-conscious-animation-demo.esm.js +122 -87
- package/dist/components/ui/battery-conscious-animation-demo.js +122 -87
- package/dist/components/ui/border-radius-shadow-demo.esm.js +23 -12
- package/dist/components/ui/border-radius-shadow-demo.js +23 -12
- package/dist/components/ui/button.esm.js +8 -2
- package/dist/components/ui/button.js +8 -2
- package/dist/components/ui/card.esm.js +33 -8
- package/dist/components/ui/card.js +33 -8
- package/dist/components/ui/checkbox.esm.js +3 -3
- package/dist/components/ui/checkbox.js +3 -3
- package/dist/components/ui/color-preview.esm.js +68 -45
- package/dist/components/ui/color-preview.js +68 -45
- package/dist/components/ui/data-display/chart.esm.js +112 -84
- package/dist/components/ui/data-display/chart.js +112 -84
- package/dist/components/ui/data-display/data-grid-simple.esm.js +1 -1
- package/dist/components/ui/data-display/data-grid-simple.js +1 -1
- package/dist/components/ui/data-display/data-grid.esm.js +80 -67
- package/dist/components/ui/data-display/data-grid.js +80 -67
- package/dist/components/ui/data-display/list.esm.js +53 -45
- package/dist/components/ui/data-display/list.js +53 -45
- package/dist/components/ui/data-display/table.esm.js +62 -54
- package/dist/components/ui/data-display/table.js +62 -54
- package/dist/components/ui/data-display/timeline.esm.js +39 -34
- package/dist/components/ui/data-display/timeline.js +39 -34
- package/dist/components/ui/data-display/tree.esm.js +116 -84
- package/dist/components/ui/data-display/tree.js +116 -84
- package/dist/components/ui/data-display/types.esm.js +389 -364
- package/dist/components/ui/data-display/types.js +389 -364
- package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +120 -70
- package/dist/components/ui/enterprise-mobile-experience-demo.js +120 -70
- package/dist/components/ui/enterprise-mobile-experience.esm.js +124 -73
- package/dist/components/ui/enterprise-mobile-experience.js +124 -73
- package/dist/components/ui/feedback/alert.esm.js +22 -15
- package/dist/components/ui/feedback/alert.js +22 -15
- package/dist/components/ui/feedback/progress.esm.js +47 -24
- package/dist/components/ui/feedback/progress.js +47 -24
- package/dist/components/ui/feedback/skeleton.esm.js +39 -29
- package/dist/components/ui/feedback/skeleton.js +39 -29
- package/dist/components/ui/feedback/toast.esm.js +62 -38
- package/dist/components/ui/feedback/toast.js +62 -38
- package/dist/components/ui/feedback/types.esm.js +83 -83
- package/dist/components/ui/feedback/types.js +83 -83
- package/dist/components/ui/font-preview.esm.js +41 -39
- package/dist/components/ui/font-preview.js +41 -39
- package/dist/components/ui/form-demo.esm.js +150 -113
- package/dist/components/ui/form-demo.js +150 -113
- package/dist/components/ui/hardware-acceleration-demo.esm.js +137 -87
- package/dist/components/ui/hardware-acceleration-demo.js +137 -87
- package/dist/components/ui/input.esm.js +4 -1
- package/dist/components/ui/input.js +4 -1
- package/dist/components/ui/layout-demo.esm.js +81 -56
- package/dist/components/ui/layout-demo.js +81 -56
- package/dist/components/ui/layouts/adaptive-layout.esm.js +27 -8
- package/dist/components/ui/layouts/adaptive-layout.js +27 -8
- package/dist/components/ui/layouts/desktop-layout.esm.js +39 -19
- package/dist/components/ui/layouts/desktop-layout.js +39 -19
- package/dist/components/ui/layouts/mobile-layout.esm.js +19 -9
- package/dist/components/ui/layouts/mobile-layout.js +19 -9
- package/dist/components/ui/layouts/tablet-layout.esm.js +28 -14
- package/dist/components/ui/layouts/tablet-layout.js +28 -14
- package/dist/components/ui/mobile-form-validation.esm.js +120 -87
- package/dist/components/ui/mobile-form-validation.js +120 -87
- package/dist/components/ui/mobile-input-demo.esm.js +19 -13
- package/dist/components/ui/mobile-input-demo.js +19 -13
- package/dist/components/ui/mobile-input.esm.js +185 -120
- package/dist/components/ui/mobile-input.js +185 -120
- package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +128 -111
- package/dist/components/ui/mobile-skeleton-loading-demo.js +128 -111
- package/dist/components/ui/navigation/breadcrumb.esm.js +17 -14
- package/dist/components/ui/navigation/breadcrumb.js +17 -14
- package/dist/components/ui/navigation/index.esm.js +23 -1
- package/dist/components/ui/navigation/index.js +23 -1
- package/dist/components/ui/navigation/menu.esm.js +49 -35
- package/dist/components/ui/navigation/menu.js +49 -35
- package/dist/components/ui/navigation/navigation-demo.esm.js +81 -74
- package/dist/components/ui/navigation/navigation-demo.js +81 -74
- package/dist/components/ui/navigation/pagination.esm.js +62 -50
- package/dist/components/ui/navigation/pagination.js +62 -50
- package/dist/components/ui/navigation/sidebar.esm.js +56 -42
- package/dist/components/ui/navigation/sidebar.js +56 -42
- package/dist/components/ui/navigation/stepper.esm.js +34 -23
- package/dist/components/ui/navigation/stepper.js +34 -23
- package/dist/components/ui/navigation/tabs.esm.js +32 -21
- package/dist/components/ui/navigation/tabs.js +32 -21
- package/dist/components/ui/navigation/types.esm.js +196 -195
- package/dist/components/ui/navigation/types.js +196 -195
- package/dist/components/ui/overlay/backdrop.esm.js +17 -16
- package/dist/components/ui/overlay/backdrop.js +17 -16
- package/dist/components/ui/overlay/focus-manager.esm.js +21 -19
- package/dist/components/ui/overlay/focus-manager.js +21 -19
- package/dist/components/ui/overlay/index.esm.js +22 -2
- package/dist/components/ui/overlay/index.js +22 -2
- package/dist/components/ui/overlay/modal.esm.js +38 -34
- package/dist/components/ui/overlay/modal.js +38 -34
- package/dist/components/ui/overlay/overlay-manager.esm.js +25 -20
- package/dist/components/ui/overlay/overlay-manager.js +25 -20
- package/dist/components/ui/overlay/popover.esm.js +74 -58
- package/dist/components/ui/overlay/popover.js +74 -58
- package/dist/components/ui/overlay/portal.esm.js +7 -7
- package/dist/components/ui/overlay/portal.js +7 -7
- package/dist/components/ui/overlay/tooltip.esm.js +54 -39
- package/dist/components/ui/overlay/tooltip.js +54 -39
- package/dist/components/ui/overlay/types.esm.js +132 -131
- package/dist/components/ui/overlay/types.js +132 -131
- package/dist/components/ui/performance-demo.esm.js +135 -88
- package/dist/components/ui/performance-demo.js +135 -88
- package/dist/components/ui/semantic-input-system-demo.esm.js +117 -80
- package/dist/components/ui/semantic-input-system-demo.js +117 -80
- package/dist/components/ui/theme-customizer.esm.js +84 -52
- package/dist/components/ui/theme-customizer.js +84 -52
- package/dist/components/ui/theme-preview.esm.js +95 -43
- package/dist/components/ui/theme-preview.js +95 -43
- package/dist/components/ui/theme-switcher.esm.js +70 -44
- package/dist/components/ui/theme-switcher.js +70 -44
- package/dist/components/ui/theme-toggle.esm.js +3 -3
- package/dist/components/ui/theme-toggle.js +3 -3
- package/dist/components/ui/token-demo.esm.js +33 -21
- package/dist/components/ui/token-demo.js +33 -21
- package/dist/components/ui/touch-demo.esm.js +102 -73
- package/dist/components/ui/touch-demo.js +102 -73
- package/dist/components/ui/touch-friendly-interface-demo.esm.js +102 -64
- package/dist/components/ui/touch-friendly-interface-demo.js +102 -64
- package/dist/components/ui/touch-friendly-interface.esm.js +85 -61
- package/dist/components/ui/touch-friendly-interface.js +85 -61
- package/dist/hooks/use-accessibility-support.esm.js +115 -85
- package/dist/hooks/use-accessibility-support.js +115 -85
- package/dist/hooks/use-adaptive-layout.esm.js +56 -33
- package/dist/hooks/use-adaptive-layout.js +56 -33
- package/dist/hooks/use-advanced-patterns.esm.js +57 -42
- package/dist/hooks/use-advanced-patterns.js +57 -42
- package/dist/hooks/use-advanced-transition-system.esm.js +112 -71
- package/dist/hooks/use-advanced-transition-system.js +112 -71
- package/dist/hooks/use-animation-profile.esm.js +63 -34
- package/dist/hooks/use-animation-profile.js +63 -34
- package/dist/hooks/use-battery-animations.esm.js +80 -55
- package/dist/hooks/use-battery-animations.js +80 -55
- package/dist/hooks/use-battery-conscious-loading.esm.js +166 -123
- package/dist/hooks/use-battery-conscious-loading.js +166 -123
- package/dist/hooks/use-battery-optimization.esm.js +78 -55
- package/dist/hooks/use-battery-optimization.js +78 -55
- package/dist/hooks/use-battery-status.esm.js +73 -51
- package/dist/hooks/use-battery-status.js +73 -51
- package/dist/hooks/use-component-performance.esm.js +62 -47
- package/dist/hooks/use-component-performance.js +62 -47
- package/dist/hooks/use-device-loading-states.esm.js +152 -109
- package/dist/hooks/use-device-loading-states.js +152 -109
- package/dist/hooks/use-device.esm.js +25 -14
- package/dist/hooks/use-device.js +25 -14
- package/dist/hooks/use-enterprise-mobile-experience.esm.js +137 -88
- package/dist/hooks/use-enterprise-mobile-experience.js +137 -88
- package/dist/hooks/use-form-feedback.esm.js +124 -81
- package/dist/hooks/use-form-feedback.js +124 -81
- package/dist/hooks/use-form-performance.esm.js +127 -92
- package/dist/hooks/use-form-performance.js +127 -92
- package/dist/hooks/use-frame-rate.esm.js +56 -37
- package/dist/hooks/use-frame-rate.js +56 -37
- package/dist/hooks/use-gestures.esm.js +96 -72
- package/dist/hooks/use-gestures.js +96 -72
- package/dist/hooks/use-hardware-acceleration.esm.js +65 -37
- package/dist/hooks/use-hardware-acceleration.js +65 -37
- package/dist/hooks/use-input-accessibility.esm.js +157 -119
- package/dist/hooks/use-input-accessibility.js +157 -119
- package/dist/hooks/use-input-performance.esm.js +139 -104
- package/dist/hooks/use-input-performance.js +139 -104
- package/dist/hooks/use-layout-performance.esm.js +50 -29
- package/dist/hooks/use-layout-performance.js +50 -29
- package/dist/hooks/use-loading-accessibility.esm.js +209 -169
- package/dist/hooks/use-loading-accessibility.js +209 -169
- package/dist/hooks/use-loading-performance.esm.js +117 -93
- package/dist/hooks/use-loading-performance.js +117 -93
- package/dist/hooks/use-memory-usage.esm.js +57 -38
- package/dist/hooks/use-memory-usage.js +57 -38
- package/dist/hooks/use-mobile-form-layout.esm.js +111 -74
- package/dist/hooks/use-mobile-form-layout.js +111 -74
- package/dist/hooks/use-mobile-form-validation.esm.js +211 -144
- package/dist/hooks/use-mobile-form-validation.js +211 -144
- package/dist/hooks/use-mobile-keyboard-optimization.esm.js +154 -113
- package/dist/hooks/use-mobile-keyboard-optimization.js +154 -113
- package/dist/hooks/use-mobile-layout.esm.js +73 -51
- package/dist/hooks/use-mobile-layout.js +73 -51
- package/dist/hooks/use-mobile-optimization.esm.js +72 -44
- package/dist/hooks/use-mobile-optimization.js +72 -44
- package/dist/hooks/use-mobile-skeleton.esm.js +97 -64
- package/dist/hooks/use-mobile-skeleton.js +97 -64
- package/dist/hooks/use-mobile-touch.esm.js +128 -93
- package/dist/hooks/use-mobile-touch.js +128 -93
- package/dist/hooks/use-performance-throttling.esm.js +72 -48
- package/dist/hooks/use-performance-throttling.js +72 -48
- package/dist/hooks/use-performance.esm.js +90 -52
- package/dist/hooks/use-performance.js +90 -52
- package/dist/hooks/use-reusable-architecture.esm.js +94 -65
- package/dist/hooks/use-reusable-architecture.js +94 -65
- package/dist/hooks/use-semantic-input-types.esm.js +166 -124
- package/dist/hooks/use-semantic-input-types.js +166 -124
- package/dist/hooks/use-semantic-input.esm.js +178 -126
- package/dist/hooks/use-semantic-input.js +178 -126
- package/dist/hooks/use-tablet-layout.esm.js +67 -38
- package/dist/hooks/use-tablet-layout.js +67 -38
- package/dist/hooks/use-touch-friendly-input.esm.js +193 -149
- package/dist/hooks/use-touch-friendly-input.js +193 -149
- package/dist/hooks/use-touch-friendly-interface.esm.js +99 -67
- package/dist/hooks/use-touch-friendly-interface.js +99 -67
- package/dist/hooks/use-touch-optimization.esm.js +99 -72
- package/dist/hooks/use-touch-optimization.js +99 -72
- package/dist/index.esm.js +289 -280
- package/dist/index.js +289 -280
- package/dist/lib/utils.esm.js +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/plugins/theme-css-generator.esm.js +104 -55
- package/dist/plugins/theme-css-generator.js +104 -55
- package/dist/provider.esm.js +4 -4
- package/dist/provider.js +4 -4
- package/dist/styles.css +1 -1
- package/dist/theme.esm.js +633 -468
- package/dist/theme.js +633 -468
- package/dist/themes/ThemeContext.esm.js +15 -15
- package/dist/themes/ThemeContext.js +15 -15
- package/dist/themes/ThemeProvider.esm.js +25 -22
- package/dist/themes/ThemeProvider.js +25 -22
- package/dist/themes/accessibility.esm.js +147 -108
- package/dist/themes/accessibility.js +147 -108
- package/dist/themes/aria-patterns.esm.js +198 -162
- package/dist/themes/aria-patterns.js +198 -162
- package/dist/themes/base-themes.esm.js +14 -11
- package/dist/themes/base-themes.js +14 -11
- package/dist/themes/colorManager.esm.js +101 -83
- package/dist/themes/colorManager.js +101 -83
- package/dist/themes/examples/dark-theme.esm.js +133 -103
- package/dist/themes/examples/dark-theme.js +133 -103
- package/dist/themes/examples/minimal-theme.esm.js +83 -61
- package/dist/themes/examples/minimal-theme.js +83 -61
- package/dist/themes/focus-management.esm.js +202 -143
- package/dist/themes/focus-management.js +202 -143
- package/dist/themes/fontLoader.esm.js +28 -19
- package/dist/themes/fontLoader.js +28 -19
- package/dist/themes/high-contrast.esm.js +152 -104
- package/dist/themes/high-contrast.js +152 -104
- package/dist/themes/inheritance.esm.js +35 -27
- package/dist/themes/inheritance.js +35 -27
- package/dist/themes/keyboard-navigation.esm.js +152 -123
- package/dist/themes/keyboard-navigation.js +152 -123
- package/dist/themes/motion-reduction.esm.js +193 -133
- package/dist/themes/motion-reduction.js +193 -133
- package/dist/themes/navigation.esm.js +146 -146
- package/dist/themes/navigation.js +146 -146
- package/dist/themes/screen-reader.esm.js +159 -94
- package/dist/themes/screen-reader.js +159 -94
- package/dist/themes/systemThemeDetector.esm.js +42 -34
- package/dist/themes/systemThemeDetector.js +42 -34
- package/dist/themes/themeCSSUpdater.esm.js +21 -9
- package/dist/themes/themeCSSUpdater.js +21 -9
- package/dist/themes/themePersistence.esm.js +68 -47
- package/dist/themes/themePersistence.js +68 -47
- package/dist/themes/themes/stan-design.esm.js +633 -468
- package/dist/themes/themes/stan-design.js +633 -468
- package/dist/themes/types.esm.js +301 -287
- package/dist/themes/types.js +301 -287
- package/dist/themes/useSystemTheme.esm.js +4 -4
- package/dist/themes/useSystemTheme.js +4 -4
- package/dist/themes/useTheme.esm.js +4 -4
- package/dist/themes/useTheme.js +4 -4
- package/dist/themes/validation.esm.js +128 -77
- package/dist/themes/validation.js +128 -77
- package/dist/tokens/index.esm.js +15 -4
- package/dist/tokens/index.js +15 -4
- package/dist/tokens/tokenExporter.esm.js +87 -61
- package/dist/tokens/tokenExporter.js +87 -61
- package/dist/tokens/tokenGenerator.esm.js +86 -77
- package/dist/tokens/tokenGenerator.js +86 -77
- package/dist/tokens/tokenManager.esm.js +64 -51
- package/dist/tokens/tokenManager.js +64 -51
- package/dist/tokens/tokenValidator.esm.js +193 -147
- package/dist/tokens/tokenValidator.js +193 -147
- package/dist/tokens/types.esm.js +49 -35
- package/dist/tokens/types.js +49 -35
- package/dist/utils/bundle-analyzer.esm.js +83 -65
- package/dist/utils/bundle-analyzer.js +83 -65
- package/dist/utils/bundle-splitting.esm.js +142 -117
- package/dist/utils/bundle-splitting.js +142 -117
- package/dist/utils/lazy-loading.esm.js +132 -106
- package/dist/utils/lazy-loading.js +132 -106
- package/dist/utils/performance-monitor.esm.js +170 -129
- package/dist/utils/performance-monitor.js +170 -129
- package/dist/utils/tree-shaking.esm.js +69 -61
- package/dist/utils/tree-shaking.js +69 -61
- package/package.json +1 -1
- package/src/index.ts +146 -146
|
@@ -1,37 +1,46 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ThemeTokens, TokenExportOptions } from './types';
|
|
2
2
|
|
|
3
3
|
export class TokenExporter {
|
|
4
4
|
/**
|
|
5
5
|
* Exports tokens in the specified format
|
|
6
6
|
*/
|
|
7
|
-
static exportTokens(tokens, options)
|
|
8
|
-
|
|
9
|
-
case '
|
|
10
|
-
|
|
11
|
-
case '
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
static exportTokens(tokens: ThemeTokens, options: TokenExportOptions): string {
|
|
8
|
+
switch (options.format) {
|
|
9
|
+
case 'json':
|
|
10
|
+
return this.exportAsJSON(tokens, options);
|
|
11
|
+
case 'css':
|
|
12
|
+
return this.exportAsCSS(tokens, options);
|
|
13
|
+
case 'scss':
|
|
14
|
+
return this.exportAsSCSS(tokens, options);
|
|
15
|
+
case 'js':
|
|
16
|
+
return this.exportAsJS(tokens, options);
|
|
17
|
+
case 'ts':
|
|
18
|
+
return this.exportAsTS(tokens, options);
|
|
19
|
+
default:
|
|
20
|
+
throw new Error(`Unsupported export format: ${options.format}`);
|
|
14
21
|
}
|
|
15
22
|
}
|
|
16
23
|
|
|
17
24
|
/**
|
|
18
25
|
* Exports tokens as JSON
|
|
19
26
|
*/
|
|
20
|
-
private static exportAsJSON(tokens, options)
|
|
27
|
+
private static exportAsJSON(tokens: ThemeTokens, options: TokenExportOptions): string {
|
|
28
|
+
const exportData = options.includeMetadata ? tokens : tokens.tokens;
|
|
21
29
|
return JSON.stringify(exportData, null, 2);
|
|
22
30
|
}
|
|
23
31
|
|
|
24
32
|
/**
|
|
25
33
|
* Exports tokens as CSS custom properties
|
|
26
34
|
*/
|
|
27
|
-
private static exportAsCSS(tokens, options)
|
|
35
|
+
private static exportAsCSS(tokens: ThemeTokens, options: TokenExportOptions): string {
|
|
36
|
+
let css = '';
|
|
28
37
|
|
|
29
38
|
if (options.includeComments) {
|
|
30
39
|
css += `/* ${tokens.theme} Design Tokens - v${tokens.version} */\n`;
|
|
31
|
-
css += `/* Generated on).toISOString()} */\n\n`;
|
|
40
|
+
css += `/* Generated on: ${new Date().toISOString()} */\n\n`;
|
|
32
41
|
}
|
|
33
42
|
|
|
34
|
-
css += `;
|
|
43
|
+
css += `:root {\n`;
|
|
35
44
|
|
|
36
45
|
// Export color tokens
|
|
37
46
|
if (tokens.tokens.color) {
|
|
@@ -70,18 +79,19 @@ export class TokenExporter {
|
|
|
70
79
|
/**
|
|
71
80
|
* Exports color tokens as CSS custom properties
|
|
72
81
|
*/
|
|
73
|
-
private static exportColorTokensAsCSS(colorTokens, indent)
|
|
82
|
+
private static exportColorTokensAsCSS(colorTokens: any, indent: number): string {
|
|
83
|
+
let css = '';
|
|
74
84
|
const spaces = ' '.repeat(indent);
|
|
75
85
|
|
|
76
|
-
Object.entries(colorTokens).forEach(([category, categoryTokens], any]) => {
|
|
86
|
+
Object.entries(colorTokens).forEach(([category, categoryTokens]: [string, any]) => {
|
|
77
87
|
if (typeof categoryTokens === 'object' && categoryTokens.value) {
|
|
78
88
|
// Single token
|
|
79
|
-
css += `${spaces}--color-${category}};\n`;
|
|
89
|
+
css += `${spaces}--color-${category}: ${categoryTokens.value};\n`;
|
|
80
90
|
} else if (typeof categoryTokens === 'object') {
|
|
81
91
|
// Token group
|
|
82
|
-
Object.entries(categoryTokens).forEach(([shade, token], any]) => {
|
|
92
|
+
Object.entries(categoryTokens).forEach(([shade, token]: [string, any]) => {
|
|
83
93
|
if (token && typeof token === 'object' && token.value) {
|
|
84
|
-
css += `${spaces}--color-${category}-${shade}};\n`;
|
|
94
|
+
css += `${spaces}--color-${category}-${shade}: ${token.value};\n`;
|
|
85
95
|
}
|
|
86
96
|
});
|
|
87
97
|
}
|
|
@@ -93,13 +103,14 @@ export class TokenExporter {
|
|
|
93
103
|
/**
|
|
94
104
|
* Exports font tokens as CSS custom properties
|
|
95
105
|
*/
|
|
96
|
-
private static exportFontTokensAsCSS(fontTokens, indent)
|
|
106
|
+
private static exportFontTokensAsCSS(fontTokens: any, indent: number): string {
|
|
107
|
+
let css = '';
|
|
97
108
|
const spaces = ' '.repeat(indent);
|
|
98
109
|
|
|
99
|
-
Object.entries(fontTokens).forEach(([name, token], any]) => {
|
|
110
|
+
Object.entries(fontTokens).forEach(([name, token]: [string, any]) => {
|
|
100
111
|
if (token && typeof token === 'object' && token.value) {
|
|
101
112
|
const cssVarName = this.getFontCSSVarName(name, token.type);
|
|
102
|
-
css += `${spaces}--font-${cssVarName}};\n`;
|
|
113
|
+
css += `${spaces}--font-${cssVarName}: ${token.value};\n`;
|
|
103
114
|
}
|
|
104
115
|
});
|
|
105
116
|
|
|
@@ -109,7 +120,8 @@ export class TokenExporter {
|
|
|
109
120
|
/**
|
|
110
121
|
* Gets the CSS variable name for font tokens
|
|
111
122
|
*/
|
|
112
|
-
private static getFontCSSVarName(name, type
|
|
123
|
+
private static getFontCSSVarName(name: string, type: string): string {
|
|
124
|
+
if (type === 'fontFamily') {
|
|
113
125
|
return name;
|
|
114
126
|
}
|
|
115
127
|
if (type === 'fontSize') {
|
|
@@ -127,12 +139,13 @@ export class TokenExporter {
|
|
|
127
139
|
/**
|
|
128
140
|
* Exports spacing tokens as CSS custom properties
|
|
129
141
|
*/
|
|
130
|
-
private static exportSpacingTokensAsCSS(spacingTokens, indent)
|
|
142
|
+
private static exportSpacingTokensAsCSS(spacingTokens: any, indent: number): string {
|
|
143
|
+
let css = '';
|
|
131
144
|
const spaces = ' '.repeat(indent);
|
|
132
145
|
|
|
133
|
-
Object.entries(spacingTokens).forEach(([scale, token], any]) => {
|
|
146
|
+
Object.entries(spacingTokens).forEach(([scale, token]: [string, any]) => {
|
|
134
147
|
if (token && typeof token === 'object' && token.value) {
|
|
135
|
-
css += `${spaces}--spacing-${scale}}px;\n`;
|
|
148
|
+
css += `${spaces}--spacing-${scale}: ${token.value}px;\n`;
|
|
136
149
|
}
|
|
137
150
|
});
|
|
138
151
|
|
|
@@ -142,12 +155,13 @@ export class TokenExporter {
|
|
|
142
155
|
/**
|
|
143
156
|
* Exports shadow tokens as CSS custom properties
|
|
144
157
|
*/
|
|
145
|
-
private static exportShadowTokensAsCSS(shadowTokens, indent)
|
|
158
|
+
private static exportShadowTokensAsCSS(shadowTokens: any, indent: number): string {
|
|
159
|
+
let css = '';
|
|
146
160
|
const spaces = ' '.repeat(indent);
|
|
147
161
|
|
|
148
|
-
Object.entries(shadowTokens).forEach(([elevation, token], any]) => {
|
|
162
|
+
Object.entries(shadowTokens).forEach(([elevation, token]: [string, any]) => {
|
|
149
163
|
if (token && typeof token === 'object' && token.value) {
|
|
150
|
-
css += `${spaces}--shadow-${elevation}};\n`;
|
|
164
|
+
css += `${spaces}--shadow-${elevation}: ${token.value};\n`;
|
|
151
165
|
}
|
|
152
166
|
});
|
|
153
167
|
|
|
@@ -157,12 +171,13 @@ export class TokenExporter {
|
|
|
157
171
|
/**
|
|
158
172
|
* Exports transition tokens as CSS custom properties
|
|
159
173
|
*/
|
|
160
|
-
private static exportTransitionTokensAsCSS(transitionTokens, indent)
|
|
174
|
+
private static exportTransitionTokensAsCSS(transitionTokens: any, indent: number): string {
|
|
175
|
+
let css = '';
|
|
161
176
|
const spaces = ' '.repeat(indent);
|
|
162
177
|
|
|
163
|
-
Object.entries(transitionTokens).forEach(([name, token], any]) => {
|
|
178
|
+
Object.entries(transitionTokens).forEach(([name, token]: [string, any]) => {
|
|
164
179
|
if (token && typeof token === 'object' && token.value) {
|
|
165
|
-
css += `${spaces}--transition-${name}};\n`;
|
|
180
|
+
css += `${spaces}--transition-${name}: ${token.value};\n`;
|
|
166
181
|
}
|
|
167
182
|
});
|
|
168
183
|
|
|
@@ -172,12 +187,13 @@ export class TokenExporter {
|
|
|
172
187
|
/**
|
|
173
188
|
* Exports breakpoint tokens as CSS custom properties
|
|
174
189
|
*/
|
|
175
|
-
private static exportBreakpointTokensAsCSS(breakpointTokens, indent)
|
|
190
|
+
private static exportBreakpointTokensAsCSS(breakpointTokens: any, indent: number): string {
|
|
191
|
+
let css = '';
|
|
176
192
|
const spaces = ' '.repeat(indent);
|
|
177
193
|
|
|
178
|
-
Object.entries(breakpointTokens).forEach(([name, token], any]) => {
|
|
194
|
+
Object.entries(breakpointTokens).forEach(([name, token]: [string, any]) => {
|
|
179
195
|
if (token && typeof token === 'object' && token.value) {
|
|
180
|
-
css += `${spaces}--breakpoint-${name}}px;\n`;
|
|
196
|
+
css += `${spaces}--breakpoint-${name}: ${token.value}px;\n`;
|
|
181
197
|
}
|
|
182
198
|
});
|
|
183
199
|
|
|
@@ -187,11 +203,12 @@ export class TokenExporter {
|
|
|
187
203
|
/**
|
|
188
204
|
* Exports tokens as SCSS variables
|
|
189
205
|
*/
|
|
190
|
-
private static exportAsSCSS(tokens, options)
|
|
206
|
+
private static exportAsSCSS(tokens: ThemeTokens, options: TokenExportOptions): string {
|
|
207
|
+
let scss = '';
|
|
191
208
|
|
|
192
209
|
if (options.includeComments) {
|
|
193
210
|
scss += `// ${tokens.theme} Design Tokens - v${tokens.version}\n`;
|
|
194
|
-
scss += `// Generated on).toISOString()}\n\n`;
|
|
211
|
+
scss += `// Generated on: ${new Date().toISOString()}\n\n`;
|
|
195
212
|
}
|
|
196
213
|
|
|
197
214
|
// Export color tokens
|
|
@@ -230,17 +247,18 @@ export class TokenExporter {
|
|
|
230
247
|
/**
|
|
231
248
|
* Exports color tokens as SCSS variables
|
|
232
249
|
*/
|
|
233
|
-
private static exportColorTokensAsSCSS(colorTokens)
|
|
250
|
+
private static exportColorTokensAsSCSS(colorTokens: any): string {
|
|
251
|
+
let scss = '\n// Color Tokens\n';
|
|
234
252
|
|
|
235
|
-
Object.entries(colorTokens).forEach(([category, categoryTokens], any]) => {
|
|
253
|
+
Object.entries(colorTokens).forEach(([category, categoryTokens]: [string, any]) => {
|
|
236
254
|
if (typeof categoryTokens === 'object' && categoryTokens.value) {
|
|
237
255
|
// Single token
|
|
238
|
-
scss += `$color-${category}};\n`;
|
|
256
|
+
scss += `$color-${category}: ${categoryTokens.value};\n`;
|
|
239
257
|
} else if (typeof categoryTokens === 'object') {
|
|
240
258
|
// Token group
|
|
241
|
-
Object.entries(categoryTokens).forEach(([shade, token], any]) => {
|
|
259
|
+
Object.entries(categoryTokens).forEach(([shade, token]: [string, any]) => {
|
|
242
260
|
if (token && typeof token === 'object' && token.value) {
|
|
243
|
-
scss += `$color-${category}-${shade}};\n`;
|
|
261
|
+
scss += `$color-${category}-${shade}: ${token.value};\n`;
|
|
244
262
|
}
|
|
245
263
|
});
|
|
246
264
|
}
|
|
@@ -252,12 +270,13 @@ export class TokenExporter {
|
|
|
252
270
|
/**
|
|
253
271
|
* Exports font tokens as SCSS variables
|
|
254
272
|
*/
|
|
255
|
-
private static exportFontTokensAsSCSS(fontTokens)
|
|
273
|
+
private static exportFontTokensAsSCSS(fontTokens: any): string {
|
|
274
|
+
let scss = '\n// Font Tokens\n';
|
|
256
275
|
|
|
257
|
-
Object.entries(fontTokens).forEach(([name, token], any]) => {
|
|
276
|
+
Object.entries(fontTokens).forEach(([name, token]: [string, any]) => {
|
|
258
277
|
if (token && typeof token === 'object' && token.value) {
|
|
259
278
|
const scssVarName = this.getFontSCSSVarName(name, token.type);
|
|
260
|
-
scss += `$font-${scssVarName}};\n`;
|
|
279
|
+
scss += `$font-${scssVarName}: ${token.value};\n`;
|
|
261
280
|
}
|
|
262
281
|
});
|
|
263
282
|
|
|
@@ -267,7 +286,8 @@ export class TokenExporter {
|
|
|
267
286
|
/**
|
|
268
287
|
* Gets the SCSS variable name for font tokens
|
|
269
288
|
*/
|
|
270
|
-
private static getFontSCSSVarName(name, type
|
|
289
|
+
private static getFontSCSSVarName(name: string, type: string): string {
|
|
290
|
+
if (type === 'fontFamily') {
|
|
271
291
|
return name;
|
|
272
292
|
}
|
|
273
293
|
if (type === 'fontSize') {
|
|
@@ -285,11 +305,12 @@ export class TokenExporter {
|
|
|
285
305
|
/**
|
|
286
306
|
* Exports spacing tokens as SCSS variables
|
|
287
307
|
*/
|
|
288
|
-
private static exportSpacingTokensAsSCSS(spacingTokens)
|
|
308
|
+
private static exportSpacingTokensAsSCSS(spacingTokens: any): string {
|
|
309
|
+
let scss = '\n// Spacing Tokens\n';
|
|
289
310
|
|
|
290
|
-
Object.entries(spacingTokens).forEach(([scale, token], any]) => {
|
|
311
|
+
Object.entries(spacingTokens).forEach(([scale, token]: [string, any]) => {
|
|
291
312
|
if (token && typeof token === 'object' && token.value) {
|
|
292
|
-
scss += `$spacing-${scale}}px;\n`;
|
|
313
|
+
scss += `$spacing-${scale}: ${token.value}px;\n`;
|
|
293
314
|
}
|
|
294
315
|
});
|
|
295
316
|
|
|
@@ -299,11 +320,12 @@ export class TokenExporter {
|
|
|
299
320
|
/**
|
|
300
321
|
* Exports shadow tokens as SCSS variables
|
|
301
322
|
*/
|
|
302
|
-
private static exportShadowTokensAsSCSS(shadowTokens)
|
|
323
|
+
private static exportShadowTokensAsSCSS(shadowTokens: any): string {
|
|
324
|
+
let scss = '\n// Shadow Tokens\n';
|
|
303
325
|
|
|
304
|
-
Object.entries(shadowTokens).forEach(([elevation, token], any]) => {
|
|
326
|
+
Object.entries(shadowTokens).forEach(([elevation, token]: [string, any]) => {
|
|
305
327
|
if (token && typeof token === 'object' && token.value) {
|
|
306
|
-
scss += `$shadow-${elevation}};\n`;
|
|
328
|
+
scss += `$shadow-${elevation}: ${token.value};\n`;
|
|
307
329
|
}
|
|
308
330
|
});
|
|
309
331
|
|
|
@@ -313,11 +335,12 @@ export class TokenExporter {
|
|
|
313
335
|
/**
|
|
314
336
|
* Exports transition tokens as SCSS variables
|
|
315
337
|
*/
|
|
316
|
-
private static exportTransitionTokensAsSCSS(transitionTokens)
|
|
338
|
+
private static exportTransitionTokensAsSCSS(transitionTokens: any): string {
|
|
339
|
+
let scss = '\n// Transition Tokens\n';
|
|
317
340
|
|
|
318
|
-
Object.entries(transitionTokens).forEach(([name, token], any]) => {
|
|
341
|
+
Object.entries(transitionTokens).forEach(([name, token]: [string, any]) => {
|
|
319
342
|
if (token && typeof token === 'object' && token.value) {
|
|
320
|
-
scss += `$transition-${name}};\n`;
|
|
343
|
+
scss += `$transition-${name}: ${token.value};\n`;
|
|
321
344
|
}
|
|
322
345
|
});
|
|
323
346
|
|
|
@@ -327,11 +350,12 @@ export class TokenExporter {
|
|
|
327
350
|
/**
|
|
328
351
|
* Exports breakpoint tokens as SCSS variables
|
|
329
352
|
*/
|
|
330
|
-
private static exportBreakpointTokensAsSCSS(breakpointTokens)
|
|
353
|
+
private static exportBreakpointTokensAsSCSS(breakpointTokens: any): string {
|
|
354
|
+
let scss = '\n// Breakpoint Tokens\n';
|
|
331
355
|
|
|
332
|
-
Object.entries(breakpointTokens).forEach(([name, token], any]) => {
|
|
356
|
+
Object.entries(breakpointTokens).forEach(([name, token]: [string, any]) => {
|
|
333
357
|
if (token && typeof token === 'object' && token.value) {
|
|
334
|
-
scss += `$breakpoint-${name}}px;\n`;
|
|
358
|
+
scss += `$breakpoint-${name}: ${token.value}px;\n`;
|
|
335
359
|
}
|
|
336
360
|
});
|
|
337
361
|
|
|
@@ -341,12 +365,13 @@ export class TokenExporter {
|
|
|
341
365
|
/**
|
|
342
366
|
* Exports tokens as JavaScript object
|
|
343
367
|
*/
|
|
344
|
-
private static exportAsJS(tokens, options)
|
|
368
|
+
private static exportAsJS(tokens: ThemeTokens, options: TokenExportOptions): string {
|
|
369
|
+
const exportData = options.includeMetadata ? tokens : tokens.tokens;
|
|
345
370
|
let js = '';
|
|
346
371
|
|
|
347
372
|
if (options.includeComments) {
|
|
348
373
|
js += `// ${tokens.theme} Design Tokens - v${tokens.version}\n`;
|
|
349
|
-
js += `// Generated on).toISOString()}\n\n`;
|
|
374
|
+
js += `// Generated on: ${new Date().toISOString()}\n\n`;
|
|
350
375
|
}
|
|
351
376
|
|
|
352
377
|
js += `module.exports = ${JSON.stringify(exportData, null, 2)};\n`;
|
|
@@ -356,16 +381,17 @@ export class TokenExporter {
|
|
|
356
381
|
/**
|
|
357
382
|
* Exports tokens as TypeScript object
|
|
358
383
|
*/
|
|
359
|
-
private static exportAsTS(tokens, options)
|
|
384
|
+
private static exportAsTS(tokens: ThemeTokens, options: TokenExportOptions): string {
|
|
385
|
+
const exportData = options.includeMetadata ? tokens : tokens.tokens;
|
|
360
386
|
let ts = '';
|
|
361
387
|
|
|
362
388
|
if (options.includeComments) {
|
|
363
389
|
ts += `// ${tokens.theme} Design Tokens - v${tokens.version}\n`;
|
|
364
|
-
ts += `// Generated on).toISOString()}\n\n`;
|
|
390
|
+
ts += `// Generated on: ${new Date().toISOString()}\n\n`;
|
|
365
391
|
}
|
|
366
392
|
|
|
367
393
|
ts += `export const tokens = ${JSON.stringify(exportData, null, 2)} as const;\n`;
|
|
368
|
-
ts +=
|
|
394
|
+
ts += `export type Tokens = typeof tokens;\n`;
|
|
369
395
|
return ts;
|
|
370
396
|
}
|
|
371
397
|
}
|