@shohojdhara/atomix 0.3.14 → 0.4.0
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 +20 -0
- package/build-tools/EXAMPLES.md +372 -0
- package/build-tools/README.md +242 -0
- package/build-tools/__tests__/error-handler.test.js +230 -0
- package/build-tools/__tests__/index.test.js +141 -0
- package/build-tools/__tests__/rollup-plugin.test.js +194 -0
- package/build-tools/__tests__/utils.test.js +161 -0
- package/build-tools/__tests__/vite-plugin.test.js +129 -0
- package/build-tools/__tests__/webpack-loader.test.js +190 -0
- package/build-tools/error-handler.js +308 -0
- package/build-tools/index.d.ts +44 -0
- package/build-tools/index.js +88 -0
- package/build-tools/package.json +50 -0
- package/build-tools/rollup-plugin.js +236 -0
- package/build-tools/types.d.ts +163 -0
- package/build-tools/utils.js +203 -0
- package/build-tools/vite-plugin.js +161 -0
- package/build-tools/webpack-loader.js +123 -0
- package/dist/atomix.css +21044 -2618
- package/dist/atomix.css.map +1 -1
- package/dist/atomix.min.css +77 -3
- package/dist/atomix.min.css.map +1 -1
- package/dist/build-tools/EXAMPLES.md +372 -0
- package/dist/build-tools/README.md +242 -0
- package/dist/build-tools/__tests__/error-handler.test.js +230 -0
- package/dist/build-tools/__tests__/index.test.js +141 -0
- package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
- package/dist/build-tools/__tests__/utils.test.js +161 -0
- package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
- package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
- package/dist/build-tools/error-handler.js +308 -0
- package/dist/build-tools/index.d.ts +44 -0
- package/dist/build-tools/index.js +88 -0
- package/dist/build-tools/package.json +50 -0
- package/dist/build-tools/rollup-plugin.js +236 -0
- package/dist/build-tools/types.d.ts +163 -0
- package/dist/build-tools/utils.js +203 -0
- package/dist/build-tools/vite-plugin.js +161 -0
- package/dist/build-tools/webpack-loader.js +123 -0
- package/dist/charts.d.ts +1 -1
- package/dist/charts.js +86 -57
- package/dist/charts.js.map +1 -1
- package/dist/core.d.ts +1 -1
- package/dist/core.js +136 -112
- package/dist/core.js.map +1 -1
- package/dist/forms.d.ts +2 -5
- package/dist/forms.js +140 -128
- package/dist/forms.js.map +1 -1
- package/dist/heavy.d.ts +1 -1
- package/dist/heavy.js +136 -112
- package/dist/heavy.js.map +1 -1
- package/dist/index.d.ts +152 -78
- package/dist/index.esm.js +346 -340
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +359 -353
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/layout.js.map +1 -1
- package/dist/theme.d.ts +9 -9
- package/dist/theme.js.map +1 -1
- package/package.json +23 -8
- package/scripts/atomix-cli.js +170 -73
- package/scripts/cli/__tests__/README.md +81 -0
- package/scripts/cli/__tests__/basic.test.js +115 -0
- package/scripts/cli/__tests__/component-generator.test.js +332 -0
- package/scripts/cli/__tests__/integration.test.js +327 -0
- package/scripts/cli/__tests__/test-setup.js +133 -0
- package/scripts/cli/__tests__/token-manager.test.js +251 -0
- package/scripts/cli/__tests__/utils.test.js +161 -0
- package/scripts/cli/component-generator.js +253 -299
- package/scripts/cli/dependency-checker.js +355 -0
- package/scripts/cli/interactive-init.js +46 -5
- package/scripts/cli/template-manager.js +0 -2
- package/scripts/cli/templates/common-templates.js +636 -0
- package/scripts/cli/templates/composable-templates.js +148 -126
- package/scripts/cli/templates/index.js +23 -16
- package/scripts/cli/templates/project-templates.js +151 -23
- package/scripts/cli/templates/react-templates.js +280 -210
- package/scripts/cli/templates/scss-templates.js +90 -91
- package/scripts/cli/templates/testing-templates.js +206 -27
- package/scripts/cli/templates/testing-utils.js +278 -0
- package/scripts/cli/templates/types-templates.js +70 -56
- package/scripts/cli/theme-bridge.js +8 -2
- package/scripts/cli/token-manager.js +318 -206
- package/scripts/cli/utils.js +0 -1
- package/src/components/Accordion/Accordion.stories.tsx +358 -850
- package/src/components/Accordion/Accordion.test.tsx +70 -50
- package/src/components/Accordion/Accordion.tsx +99 -94
- package/src/components/AtomixGlass/AtomixGlass.test.tsx +1 -1
- package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
- package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
- package/src/components/AtomixGlass/GlassFilter.tsx +9 -16
- package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
- package/src/components/AtomixGlass/glass-utils.ts +6 -5
- package/src/components/AtomixGlass/shader-utils.ts +133 -52
- package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
- package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
- package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
- package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
- package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
- package/src/components/AtomixGlass/stories/Playground.stories.tsx +51 -36
- package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +2 -2
- package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
- package/src/components/Avatar/Avatar.stories.tsx +195 -0
- package/src/components/Avatar/Avatar.tsx +58 -56
- package/src/components/Badge/Badge.stories.tsx +122 -352
- package/src/components/Badge/Badge.test.tsx +41 -41
- package/src/components/Badge/Badge.tsx +64 -62
- package/src/components/Block/Block.stories.tsx +30 -11
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +142 -23
- package/src/components/Breadcrumb/Breadcrumb.tsx +62 -60
- package/src/components/Button/Button.stories.tsx +454 -1126
- package/src/components/Button/Button.test.tsx +123 -0
- package/src/components/Button/Button.tsx +88 -60
- package/src/components/Button/ButtonGroup.stories.tsx +376 -215
- package/src/components/Button/ButtonGroup.tsx +4 -15
- package/src/components/Callout/Callout.stories.tsx +316 -568
- package/src/components/Card/Card.stories.tsx +292 -81
- package/src/components/Card/Card.tsx +30 -14
- package/src/components/Chart/AreaChart.tsx +1 -1
- package/src/components/Chart/CandlestickChart.tsx +23 -16
- package/src/components/Chart/Chart.stories.tsx +153 -16
- package/src/components/Chart/Chart.tsx +40 -44
- package/src/components/Chart/ChartRenderer.tsx +39 -12
- package/src/components/Chart/ChartToolbar.tsx +21 -5
- package/src/components/Chart/DonutChart.tsx +1 -1
- package/src/components/Chart/FunnelChart.tsx +4 -1
- package/src/components/Chart/GaugeChart.tsx +3 -1
- package/src/components/Chart/HeatmapChart.tsx +50 -37
- package/src/components/Chart/LineChart.tsx +3 -2
- package/src/components/Chart/MultiAxisChart.tsx +24 -16
- package/src/components/Chart/RadarChart.tsx +19 -17
- package/src/components/Chart/ScatterChart.tsx +29 -21
- package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +152 -66
- package/src/components/ColorModeToggle/ColorModeToggle.tsx +15 -3
- package/src/components/Countdown/Countdown.stories.tsx +114 -7
- package/src/components/DataTable/DataTable.stories.tsx +349 -144
- package/src/components/DataTable/DataTable.test.tsx +26 -148
- package/src/components/DataTable/DataTable.tsx +485 -456
- package/src/components/DatePicker/DatePicker.stories.tsx +310 -1066
- package/src/components/DatePicker/DatePicker.tsx +31 -26
- package/src/components/Dropdown/Dropdown.stories.tsx +153 -36
- package/src/components/Dropdown/Dropdown.tsx +313 -299
- package/src/components/EdgePanel/EdgePanel.stories.tsx +221 -25
- package/src/components/EdgePanel/EdgePanel.tsx +1 -3
- package/src/components/Footer/Footer.stories.tsx +396 -327
- package/src/components/Footer/Footer.tsx +130 -128
- package/src/components/Footer/FooterLink.tsx +2 -2
- package/src/components/Form/Checkbox.stories.tsx +140 -6
- package/src/components/Form/Checkbox.test.tsx +63 -0
- package/src/components/Form/Checkbox.tsx +122 -78
- package/src/components/Form/Form.stories.tsx +110 -19
- package/src/components/Form/FormGroup.stories.tsx +127 -4
- package/src/components/Form/Input.stories.tsx +22 -39
- package/src/components/Form/Input.test.tsx +38 -44
- package/src/components/Form/Radio.stories.tsx +146 -17
- package/src/components/Form/Radio.tsx +68 -66
- package/src/components/Form/Select.stories.tsx +140 -8
- package/src/components/Form/Select.tsx +184 -182
- package/src/components/Form/Textarea.stories.tsx +149 -6
- package/src/components/Form/Textarea.test.tsx +27 -32
- package/src/components/Hero/Hero.stories.tsx +372 -38
- package/src/components/Hero/Hero.tsx +201 -55
- package/src/components/Icon/index.ts +7 -1
- package/src/components/List/List.stories.tsx +141 -3
- package/src/components/List/List.tsx +19 -23
- package/src/components/Modal/Modal.stories.tsx +183 -43
- package/src/components/Modal/Modal.tsx +130 -127
- package/src/components/Navigation/Menu/MegaMenu.tsx +70 -70
- package/src/components/Navigation/Nav/NavDropdown.tsx +1 -5
- package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +128 -28
- package/src/components/Navigation/SideMenu/SideMenu.tsx +5 -7
- package/src/components/Navigation/SideMenu/SideMenuItem.tsx +4 -5
- package/src/components/Pagination/Pagination.stories.tsx +7 -4
- package/src/components/Pagination/Pagination.tsx +199 -202
- package/src/components/PhotoViewer/PhotoViewer.tsx +4 -1
- package/src/components/Popover/Popover.stories.tsx +354 -97
- package/src/components/Popover/Popover.tsx +41 -37
- package/src/components/Progress/Progress.stories.tsx +160 -7
- package/src/components/River/River.stories.tsx +3 -2
- package/src/components/SectionIntro/SectionIntro.stories.tsx +239 -47
- package/src/components/Slider/Slider.stories.tsx +12 -4
- package/src/components/Spinner/Spinner.stories.tsx +104 -8
- package/src/components/Spinner/Spinner.test.tsx +23 -23
- package/src/components/Spinner/Spinner.tsx +43 -46
- package/src/components/Steps/Steps.stories.tsx +173 -42
- package/src/components/Tabs/Tabs.stories.tsx +141 -12
- package/src/components/Tabs/Tabs.tsx +74 -72
- package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
- package/src/components/Todo/Todo.stories.tsx +198 -9
- package/src/components/Toggle/Toggle.stories.tsx +137 -36
- package/src/components/Toggle/Toggle.test.tsx +65 -70
- package/src/components/Toggle/Toggle.tsx +4 -1
- package/src/components/Tooltip/Tooltip.stories.tsx +194 -100
- package/src/components/Tooltip/Tooltip.tsx +104 -106
- package/src/components/Upload/Upload.stories.tsx +241 -150
- package/src/components/Upload/Upload.tsx +287 -283
- package/src/components/VideoPlayer/VideoPlayer.tsx +6 -1
- package/src/components/index.ts +13 -2
- package/src/layouts/Grid/Grid.stories.tsx +9 -3
- package/src/layouts/MasonryGrid/MasonryGrid.tsx +5 -1
- package/src/lib/README.md +2 -2
- package/src/lib/__tests__/theme-tools.test.ts +219 -0
- package/src/lib/composables/index.ts +2 -2
- package/src/lib/composables/shared-mouse-tracker.ts +13 -14
- package/src/lib/composables/useAtomixGlass.ts +126 -97
- package/src/lib/composables/useChartExport.ts +3 -8
- package/src/lib/composables/useDataTable.ts +72 -43
- package/src/lib/composables/useHero.ts +58 -14
- package/src/lib/composables/useHeroBackgroundSlider.ts +2 -9
- package/src/lib/composables/useInput.ts +10 -8
- package/src/lib/composables/useSideMenu.ts +6 -5
- package/src/lib/composables/useTooltip.ts +1 -2
- package/src/lib/composables/useVideoPlayer.ts +44 -35
- package/src/lib/config/index.ts +154 -154
- package/src/lib/constants/components.ts +9 -32
- package/src/lib/constants/cssVariables.ts +29 -29
- package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +2 -6
- package/src/lib/hooks/index.ts +1 -1
- package/src/lib/hooks/useComponentCustomization.ts +11 -17
- package/src/lib/hooks/usePerformanceMonitor.ts +6 -7
- package/src/lib/patterns/__tests__/slots.test.ts +1 -1
- package/src/lib/patterns/index.ts +1 -1
- package/src/lib/patterns/slots.tsx +8 -13
- package/src/lib/storybook/InteractiveDemo.tsx +13 -18
- package/src/lib/storybook/PreviewContainer.tsx +1 -1
- package/src/lib/storybook/VariantsGrid.tsx +3 -7
- package/src/lib/storybook/index.ts +1 -1
- package/src/lib/theme/adapters/cssVariableMapper.ts +47 -74
- package/src/lib/theme/adapters/index.ts +3 -9
- package/src/lib/theme/adapters/themeAdapter.ts +41 -26
- package/src/lib/theme/config/index.ts +1 -1
- package/src/lib/theme/config/types.ts +2 -2
- package/src/lib/theme/config/validator.ts +10 -5
- package/src/lib/theme/constants/constants.ts +2 -2
- package/src/lib/theme/constants/index.ts +1 -2
- package/src/lib/theme/core/__tests__/createTheme.test.ts +20 -22
- package/src/lib/theme/core/composeTheme.ts +32 -26
- package/src/lib/theme/core/createTheme.ts +1 -1
- package/src/lib/theme/core/createThemeObject.ts +308 -301
- package/src/lib/theme/core/index.ts +3 -3
- package/src/lib/theme/devtools/CLI.ts +107 -105
- package/src/lib/theme/devtools/Comparator.tsx +50 -32
- package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +50 -48
- package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +257 -63
- package/src/lib/theme/devtools/Inspector.tsx +75 -60
- package/src/lib/theme/devtools/LiveEditor.tsx +97 -76
- package/src/lib/theme/devtools/Preview.tsx +150 -106
- package/src/lib/theme/devtools/ThemeValidator.ts +29 -21
- package/src/lib/theme/devtools/index.ts +3 -9
- package/src/lib/theme/devtools/useHistory.ts +23 -21
- package/src/lib/theme/errors/errors.ts +12 -11
- package/src/lib/theme/errors/index.ts +2 -7
- package/src/lib/theme/generators/generateCSS.ts +9 -13
- package/src/lib/theme/generators/generateCSSNested.ts +1 -6
- package/src/lib/theme/generators/generateCSSVariables.ts +673 -630
- package/src/lib/theme/generators/index.ts +1 -4
- package/src/lib/theme/i18n/index.ts +1 -1
- package/src/lib/theme/i18n/rtl.ts +13 -13
- package/src/lib/theme/index.ts +7 -16
- package/src/lib/theme/runtime/ThemeApplicator.ts +4 -4
- package/src/lib/theme/runtime/ThemeContext.tsx +1 -1
- package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +19 -23
- package/src/lib/theme/runtime/ThemeProvider.tsx +230 -239
- package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +1 -1
- package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +24 -29
- package/src/lib/theme/runtime/index.ts +2 -5
- package/src/lib/theme/runtime/useTheme.ts +18 -18
- package/src/lib/theme/runtime/useThemeTokens.ts +22 -22
- package/src/lib/theme/test/testTheme.ts +15 -16
- package/src/lib/theme/tokens/index.ts +2 -7
- package/src/lib/theme/tokens/tokens.ts +25 -24
- package/src/lib/theme/types.ts +428 -411
- package/src/lib/theme/utils/__tests__/themeValidation.test.ts +3 -3
- package/src/lib/theme/utils/componentTheming.ts +18 -18
- package/src/lib/theme/utils/domUtils.ts +277 -289
- package/src/lib/theme/utils/index.ts +1 -2
- package/src/lib/theme/utils/injectCSS.ts +10 -14
- package/src/lib/theme/utils/naming.ts +20 -16
- package/src/lib/theme/utils/themeHelpers.ts +10 -12
- package/src/lib/theme/utils/themeUtils.ts +85 -86
- package/src/lib/theme/utils/themeValidation.ts +82 -33
- package/src/lib/theme-tools.ts +8 -6
- package/src/lib/types/components.ts +172 -71
- package/src/lib/types/partProps.ts +1 -1
- package/src/lib/utils/__tests__/csv.test.ts +45 -0
- package/src/lib/utils/componentUtils.ts +8 -12
- package/src/lib/utils/csv.ts +19 -0
- package/src/lib/utils/dataTableExport.ts +2 -15
- package/src/lib/utils/fontPreloader.ts +10 -19
- package/src/lib/utils/icons.ts +4 -1
- package/src/lib/utils/index.ts +2 -6
- package/src/lib/utils/memoryMonitor.ts +10 -8
- package/src/lib/utils/themeNaming.ts +2 -2
- package/src/styles/01-settings/_index.scss +1 -1
- package/src/styles/01-settings/_settings.accordion.scss +28 -7
- package/src/styles/01-settings/_settings.colors.scss +11 -11
- package/src/styles/01-settings/_settings.design-tokens.scss +61 -50
- package/src/styles/01-settings/_settings.navbar.scss +1 -1
- package/src/styles/01-settings/_settings.spacing.scss +3 -4
- package/src/styles/01-settings/_settings.tooltip.scss +1 -1
- package/src/styles/01-settings/_settings.typography.scss +4 -4
- package/src/styles/02-tools/_tools.button.scss +51 -21
- package/src/styles/02-tools/_tools.utility-api.scss +38 -12
- package/src/styles/03-generic/_generic.root.scss +4 -3
- package/src/styles/06-components/_components.accordion.scss +56 -14
- package/src/styles/06-components/_components.atomix-glass.scss +13 -9
- package/src/styles/06-components/_components.button.scss +16 -4
- package/src/styles/06-components/_components.callout.scss +27 -21
- package/src/styles/06-components/_components.card.scss +5 -14
- package/src/styles/06-components/_components.chart.scss +22 -19
- package/src/styles/06-components/_components.checkbox.scss +25 -17
- package/src/styles/06-components/_components.color-mode-toggle.scss +3 -1
- package/src/styles/06-components/_components.edge-panel.scss +9 -2
- package/src/styles/06-components/_components.footer.scss +1 -1
- package/src/styles/06-components/_components.side-menu.scss +5 -5
- package/src/styles/06-components/_components.toggle.scss +18 -0
- package/src/styles/06-components/_index.scss +1 -1
- package/src/styles/06-components/old.chart.styles.scss +0 -2
- package/src/styles/99-utilities/_index.scss +2 -0
- package/src/styles/99-utilities/_utilities.border.scss +69 -27
- package/src/styles/99-utilities/_utilities.display.scss +1 -1
- package/src/styles/99-utilities/_utilities.opacity.scss +10 -0
- package/src/styles/99-utilities/_utilities.position.scss +16 -9
- package/src/styles/99-utilities/_utilities.scss +2 -0
- package/src/styles/99-utilities/_utilities.sizes.scss +47 -18
- package/src/styles/99-utilities/_utilities.spacing.scss +118 -66
- package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
- package/src/styles/99-utilities/_utilities.text.scss +67 -46
- package/themes/dark-complementary/README.md +98 -0
- package/themes/dark-complementary/index.scss +158 -0
- package/themes/default-light/README.md +81 -0
- package/themes/default-light/index.scss +154 -0
- package/themes/high-contrast/README.md +105 -0
- package/themes/high-contrast/index.scss +172 -0
- package/themes/test-theme/README.md +38 -0
- package/themes/test-theme/index.scss +47 -0
- package/scripts/cli/templates-original-backup.js +0 -1655
- package/scripts/cli/templates_backup.js +0 -684
- package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
- package/src/lib/composables/useButton.ts +0 -93
- package/src/lib/composables/useCheckbox.ts +0 -70
|
@@ -3,17 +3,19 @@ import { DesignTokensCustomizer } from './DesignTokensCustomizer';
|
|
|
3
3
|
import { useState } from 'react';
|
|
4
4
|
|
|
5
5
|
// Enhanced preview components
|
|
6
|
-
const PreviewContainer = ({
|
|
7
|
-
title
|
|
8
|
-
description
|
|
6
|
+
const PreviewContainer = ({
|
|
7
|
+
title,
|
|
8
|
+
description,
|
|
9
|
+
children,
|
|
10
|
+
}: {
|
|
11
|
+
title?: string;
|
|
12
|
+
description?: string;
|
|
9
13
|
children: React.ReactNode;
|
|
10
14
|
}) => (
|
|
11
15
|
<div className="story-preview-container">
|
|
12
16
|
{title && <h3 className="story-preview-title">{title}</h3>}
|
|
13
17
|
{description && <p className="story-preview-description">{description}</p>}
|
|
14
|
-
<div className="story-preview-content">
|
|
15
|
-
{children}
|
|
16
|
-
</div>
|
|
18
|
+
<div className="story-preview-content">{children}</div>
|
|
17
19
|
</div>
|
|
18
20
|
);
|
|
19
21
|
|
|
@@ -24,10 +26,10 @@ const meta: Meta<typeof DesignTokensCustomizer> = {
|
|
|
24
26
|
layout: 'fullscreen',
|
|
25
27
|
docs: {
|
|
26
28
|
description: {
|
|
27
|
-
component: 'Interactive design tokens customization tool for real-time theme adjustments.'
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
29
|
+
component: 'Interactive design tokens customization tool for real-time theme adjustments.',
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
},
|
|
31
33
|
};
|
|
32
34
|
|
|
33
35
|
export default meta;
|
|
@@ -36,8 +38,8 @@ type Story = StoryObj<typeof DesignTokensCustomizer>;
|
|
|
36
38
|
// Basic Usage
|
|
37
39
|
export const Default: Story = {
|
|
38
40
|
render: () => (
|
|
39
|
-
<PreviewContainer
|
|
40
|
-
title="Design Tokens Customizer"
|
|
41
|
+
<PreviewContainer
|
|
42
|
+
title="Design Tokens Customizer"
|
|
41
43
|
description="Interactive tool for customizing design tokens in real-time"
|
|
42
44
|
>
|
|
43
45
|
<DesignTokensCustomizer />
|
|
@@ -46,10 +48,10 @@ export const Default: Story = {
|
|
|
46
48
|
parameters: {
|
|
47
49
|
docs: {
|
|
48
50
|
description: {
|
|
49
|
-
story: 'The default design tokens customizer with all standard controls and features.'
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
51
|
+
story: 'The default design tokens customizer with all standard controls and features.',
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
},
|
|
53
55
|
};
|
|
54
56
|
|
|
55
57
|
// With Custom Configuration
|
|
@@ -59,36 +61,36 @@ export const WithCustomConfig: Story = {
|
|
|
59
61
|
colors: {
|
|
60
62
|
primary: '#667eea',
|
|
61
63
|
secondary: '#764ba2',
|
|
62
|
-
accent: '#f093fb'
|
|
64
|
+
accent: '#f093fb',
|
|
63
65
|
},
|
|
64
66
|
spacing: {
|
|
65
67
|
small: '8px',
|
|
66
68
|
medium: '16px',
|
|
67
|
-
large: '24px'
|
|
69
|
+
large: '24px',
|
|
68
70
|
},
|
|
69
71
|
typography: {
|
|
70
72
|
fontFamily: 'Inter, sans-serif',
|
|
71
73
|
fontSize: '16px',
|
|
72
|
-
fontWeight: '400'
|
|
73
|
-
}
|
|
74
|
+
fontWeight: '400',
|
|
75
|
+
},
|
|
74
76
|
};
|
|
75
|
-
|
|
77
|
+
|
|
76
78
|
return (
|
|
77
|
-
<PreviewContainer
|
|
78
|
-
title="Custom Configuration"
|
|
79
|
+
<PreviewContainer
|
|
80
|
+
title="Custom Configuration"
|
|
79
81
|
description="Design tokens customizer with predefined custom configuration"
|
|
80
82
|
>
|
|
81
83
|
<DesignTokensCustomizer initialConfig={customConfig} />
|
|
82
84
|
</PreviewContainer>
|
|
83
85
|
);
|
|
84
|
-
}
|
|
86
|
+
},
|
|
85
87
|
};
|
|
86
88
|
|
|
87
89
|
// Theme Preview Mode
|
|
88
90
|
export const ThemePreview: Story = {
|
|
89
91
|
render: () => (
|
|
90
|
-
<PreviewContainer
|
|
91
|
-
title="Theme Preview Mode"
|
|
92
|
+
<PreviewContainer
|
|
93
|
+
title="Theme Preview Mode"
|
|
92
94
|
description="Customizer with live theme preview components"
|
|
93
95
|
>
|
|
94
96
|
<div className="theme-preview-layout">
|
|
@@ -119,19 +121,19 @@ export const ThemePreview: Story = {
|
|
|
119
121
|
viewports: {
|
|
120
122
|
desktop: {
|
|
121
123
|
name: 'Desktop',
|
|
122
|
-
styles: { width: '1200px', height: '800px' }
|
|
123
|
-
}
|
|
124
|
+
styles: { width: '1200px', height: '800px' },
|
|
125
|
+
},
|
|
124
126
|
},
|
|
125
|
-
defaultViewport: 'desktop'
|
|
126
|
-
}
|
|
127
|
-
}
|
|
127
|
+
defaultViewport: 'desktop',
|
|
128
|
+
},
|
|
129
|
+
},
|
|
128
130
|
};
|
|
129
131
|
|
|
130
132
|
// Compact Mode
|
|
131
133
|
export const Compact: Story = {
|
|
132
134
|
render: () => (
|
|
133
|
-
<PreviewContainer
|
|
134
|
-
title="Compact Mode"
|
|
135
|
+
<PreviewContainer
|
|
136
|
+
title="Compact Mode"
|
|
135
137
|
description="Space-efficient customizer for smaller screens"
|
|
136
138
|
>
|
|
137
139
|
<DesignTokensCustomizer compact={true} />
|
|
@@ -142,26 +144,26 @@ export const Compact: Story = {
|
|
|
142
144
|
viewports: {
|
|
143
145
|
mobile: {
|
|
144
146
|
name: 'Mobile',
|
|
145
|
-
styles: { width: '375px', height: '667px' }
|
|
146
|
-
}
|
|
147
|
+
styles: { width: '375px', height: '667px' },
|
|
148
|
+
},
|
|
147
149
|
},
|
|
148
|
-
defaultViewport: 'mobile'
|
|
149
|
-
}
|
|
150
|
-
}
|
|
150
|
+
defaultViewport: 'mobile',
|
|
151
|
+
},
|
|
152
|
+
},
|
|
151
153
|
};
|
|
152
154
|
|
|
153
155
|
// With Export Options
|
|
154
156
|
export const WithExport: Story = {
|
|
155
157
|
render: () => {
|
|
156
158
|
const [exportData, setExportData] = useState('');
|
|
157
|
-
|
|
159
|
+
|
|
158
160
|
const handleExport = (tokens: any) => {
|
|
159
161
|
setExportData(JSON.stringify(tokens, null, 2));
|
|
160
162
|
};
|
|
161
|
-
|
|
163
|
+
|
|
162
164
|
return (
|
|
163
|
-
<PreviewContainer
|
|
164
|
-
title="With Export Options"
|
|
165
|
+
<PreviewContainer
|
|
166
|
+
title="With Export Options"
|
|
165
167
|
description="Customizer with export functionality for sharing themes"
|
|
166
168
|
>
|
|
167
169
|
<div className="export-workflow">
|
|
@@ -170,7 +172,7 @@ export const WithExport: Story = {
|
|
|
170
172
|
<div className="export-output">
|
|
171
173
|
<h4>Exported Theme Data:</h4>
|
|
172
174
|
<pre>{exportData}</pre>
|
|
173
|
-
<button
|
|
175
|
+
<button
|
|
174
176
|
onClick={() => navigator.clipboard.writeText(exportData)}
|
|
175
177
|
className="copy-button"
|
|
176
178
|
>
|
|
@@ -181,14 +183,14 @@ export const WithExport: Story = {
|
|
|
181
183
|
</div>
|
|
182
184
|
</PreviewContainer>
|
|
183
185
|
);
|
|
184
|
-
}
|
|
186
|
+
},
|
|
185
187
|
};
|
|
186
188
|
|
|
187
189
|
// Interactive Tutorial
|
|
188
190
|
export const InteractiveTutorial: Story = {
|
|
189
191
|
render: () => (
|
|
190
|
-
<PreviewContainer
|
|
191
|
-
title="Interactive Tutorial"
|
|
192
|
+
<PreviewContainer
|
|
193
|
+
title="Interactive Tutorial"
|
|
192
194
|
description="Guided tour of the design tokens customizer features"
|
|
193
195
|
>
|
|
194
196
|
<div className="tutorial-container">
|
|
@@ -209,5 +211,5 @@ export const InteractiveTutorial: Story = {
|
|
|
209
211
|
<DesignTokensCustomizer />
|
|
210
212
|
</div>
|
|
211
213
|
</PreviewContainer>
|
|
212
|
-
)
|
|
213
|
-
};
|
|
214
|
+
),
|
|
215
|
+
};
|
|
@@ -35,7 +35,15 @@ type ColorFormat = 'hex' | 'rgb' | 'rgba' | 'hsl' | 'hsla';
|
|
|
35
35
|
/**
|
|
36
36
|
* Token category for organization
|
|
37
37
|
*/
|
|
38
|
-
type TokenCategory =
|
|
38
|
+
type TokenCategory =
|
|
39
|
+
| 'colors'
|
|
40
|
+
| 'typography'
|
|
41
|
+
| 'spacing'
|
|
42
|
+
| 'shadows'
|
|
43
|
+
| 'borders'
|
|
44
|
+
| 'transitions'
|
|
45
|
+
| 'zindex'
|
|
46
|
+
| 'breakpoints';
|
|
39
47
|
|
|
40
48
|
/**
|
|
41
49
|
* Design Tokens Customizer Component
|
|
@@ -120,13 +128,12 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
120
128
|
case 'rgba':
|
|
121
129
|
return `rgba(${r}, ${g}, ${b}, ${a})`;
|
|
122
130
|
case 'hsl':
|
|
123
|
-
case 'hsla':
|
|
124
|
-
{
|
|
131
|
+
case 'hsla': {
|
|
125
132
|
const hsl = rgbToHsl(r, g, b);
|
|
126
133
|
return format === 'hsl'
|
|
127
134
|
? `hsl(${hsl.h}, ${hsl.s}%, ${hsl.l}%)`
|
|
128
135
|
: `hsla(${hsl.h}, ${hsl.s}%, ${hsl.l}%, ${a})`;
|
|
129
|
-
|
|
136
|
+
}
|
|
130
137
|
default:
|
|
131
138
|
return color;
|
|
132
139
|
}
|
|
@@ -149,9 +156,15 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
149
156
|
s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
|
|
150
157
|
|
|
151
158
|
switch (max) {
|
|
152
|
-
case r:
|
|
153
|
-
|
|
154
|
-
|
|
159
|
+
case r:
|
|
160
|
+
h = ((g - b) / d + (g < b ? 6 : 0)) / 6;
|
|
161
|
+
break;
|
|
162
|
+
case g:
|
|
163
|
+
h = ((b - r) / d + 2) / 6;
|
|
164
|
+
break;
|
|
165
|
+
case b:
|
|
166
|
+
h = ((r - g) / d + 4) / 6;
|
|
167
|
+
break;
|
|
155
168
|
}
|
|
156
169
|
}
|
|
157
170
|
|
|
@@ -200,7 +213,7 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
200
213
|
if (!file) return;
|
|
201
214
|
|
|
202
215
|
const reader = new FileReader();
|
|
203
|
-
reader.onload =
|
|
216
|
+
reader.onload = e => {
|
|
204
217
|
try {
|
|
205
218
|
const content = e.target?.result as string;
|
|
206
219
|
const parsedTokens = JSON.parse(content);
|
|
@@ -220,92 +233,264 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
220
233
|
label: 'Colors',
|
|
221
234
|
tokens: [
|
|
222
235
|
// Base colors
|
|
223
|
-
'primary',
|
|
236
|
+
'primary',
|
|
237
|
+
'secondary',
|
|
238
|
+
'success',
|
|
239
|
+
'info',
|
|
240
|
+
'warning',
|
|
241
|
+
'error',
|
|
242
|
+
'light',
|
|
243
|
+
'dark',
|
|
224
244
|
// RGB versions
|
|
225
|
-
'primary-rgb',
|
|
245
|
+
'primary-rgb',
|
|
246
|
+
'secondary-rgb',
|
|
247
|
+
'success-rgb',
|
|
248
|
+
'info-rgb',
|
|
249
|
+
'warning-rgb',
|
|
250
|
+
'error-rgb',
|
|
251
|
+
'light-rgb',
|
|
252
|
+
'dark-rgb',
|
|
226
253
|
// Gray scale
|
|
227
|
-
'gray-1',
|
|
254
|
+
'gray-1',
|
|
255
|
+
'gray-2',
|
|
256
|
+
'gray-3',
|
|
257
|
+
'gray-4',
|
|
258
|
+
'gray-5',
|
|
259
|
+
'gray-6',
|
|
260
|
+
'gray-7',
|
|
261
|
+
'gray-8',
|
|
262
|
+
'gray-9',
|
|
263
|
+
'gray-10',
|
|
228
264
|
// Primary scale
|
|
229
|
-
'primary-1',
|
|
265
|
+
'primary-1',
|
|
266
|
+
'primary-2',
|
|
267
|
+
'primary-3',
|
|
268
|
+
'primary-4',
|
|
269
|
+
'primary-5',
|
|
270
|
+
'primary-6',
|
|
271
|
+
'primary-7',
|
|
272
|
+
'primary-8',
|
|
273
|
+
'primary-9',
|
|
274
|
+
'primary-10',
|
|
230
275
|
// Text emphasis
|
|
231
|
-
'primary-text-emphasis',
|
|
232
|
-
'
|
|
233
|
-
'
|
|
276
|
+
'primary-text-emphasis',
|
|
277
|
+
'secondary-text-emphasis',
|
|
278
|
+
'tertiary-text-emphasis',
|
|
279
|
+
'disabled-text-emphasis',
|
|
280
|
+
'invert-text-emphasis',
|
|
281
|
+
'brand-text-emphasis',
|
|
282
|
+
'error-text-emphasis',
|
|
283
|
+
'success-text-emphasis',
|
|
284
|
+
'warning-text-emphasis',
|
|
285
|
+
'info-text-emphasis',
|
|
286
|
+
'light-text-emphasis',
|
|
287
|
+
'dark-text-emphasis',
|
|
234
288
|
// Background subtle
|
|
235
|
-
'primary-bg-subtle',
|
|
236
|
-
'
|
|
237
|
-
'
|
|
289
|
+
'primary-bg-subtle',
|
|
290
|
+
'secondary-bg-subtle',
|
|
291
|
+
'tertiary-bg-subtle',
|
|
292
|
+
'invert-bg-subtle',
|
|
293
|
+
'brand-bg-subtle',
|
|
294
|
+
'error-bg-subtle',
|
|
295
|
+
'success-bg-subtle',
|
|
296
|
+
'warning-bg-subtle',
|
|
297
|
+
'info-bg-subtle',
|
|
298
|
+
'light-bg-subtle',
|
|
299
|
+
'dark-bg-subtle',
|
|
238
300
|
// Border subtle
|
|
239
|
-
'primary-border-subtle',
|
|
240
|
-
'
|
|
301
|
+
'primary-border-subtle',
|
|
302
|
+
'secondary-border-subtle',
|
|
303
|
+
'success-border-subtle',
|
|
304
|
+
'error-border-subtle',
|
|
305
|
+
'warning-border-subtle',
|
|
306
|
+
'info-border-subtle',
|
|
307
|
+
'brand-border-subtle',
|
|
308
|
+
'light-border-subtle',
|
|
309
|
+
'dark-border-subtle',
|
|
241
310
|
// Hover states
|
|
242
|
-
'primary-hover',
|
|
243
|
-
'
|
|
311
|
+
'primary-hover',
|
|
312
|
+
'secondary-hover',
|
|
313
|
+
'light-hover',
|
|
314
|
+
'dark-hover',
|
|
315
|
+
'error-hover',
|
|
316
|
+
'success-hover',
|
|
317
|
+
'warning-hover',
|
|
318
|
+
'info-hover',
|
|
244
319
|
// Gradients
|
|
245
|
-
'primary-gradient',
|
|
246
|
-
'
|
|
320
|
+
'primary-gradient',
|
|
321
|
+
'secondary-gradient',
|
|
322
|
+
'light-gradient',
|
|
323
|
+
'dark-gradient',
|
|
324
|
+
'success-gradient',
|
|
325
|
+
'info-gradient',
|
|
326
|
+
'warning-gradient',
|
|
327
|
+
'error-gradient',
|
|
328
|
+
'gradient',
|
|
247
329
|
],
|
|
248
330
|
},
|
|
249
331
|
typography: {
|
|
250
332
|
label: 'Typography',
|
|
251
333
|
tokens: [
|
|
252
|
-
'font-sans-serif',
|
|
253
|
-
'
|
|
254
|
-
'
|
|
255
|
-
'
|
|
256
|
-
'
|
|
257
|
-
'
|
|
258
|
-
'
|
|
259
|
-
'
|
|
260
|
-
'
|
|
261
|
-
'
|
|
334
|
+
'font-sans-serif',
|
|
335
|
+
'font-monospace',
|
|
336
|
+
'body-font-family',
|
|
337
|
+
'body-font-size',
|
|
338
|
+
'body-font-weight',
|
|
339
|
+
'body-line-height',
|
|
340
|
+
'body-color',
|
|
341
|
+
'body-bg',
|
|
342
|
+
'heading-color',
|
|
343
|
+
'font-size-xl',
|
|
344
|
+
'font-size-2xl',
|
|
345
|
+
'display-1',
|
|
346
|
+
'font-weight-light',
|
|
347
|
+
'font-weight-normal',
|
|
348
|
+
'font-weight-medium',
|
|
349
|
+
'font-weight-semibold',
|
|
350
|
+
'font-weight-bold',
|
|
351
|
+
'font-weight-heavy',
|
|
352
|
+
'font-weight-black',
|
|
353
|
+
'line-height-base',
|
|
354
|
+
'line-height-sm',
|
|
355
|
+
'line-height-lg',
|
|
356
|
+
'letter-spacing-h1',
|
|
357
|
+
'letter-spacing-h2',
|
|
358
|
+
'letter-spacing-h3',
|
|
359
|
+
'letter-spacing-h4',
|
|
360
|
+
'letter-spacing-h5',
|
|
361
|
+
'letter-spacing-h6',
|
|
362
|
+
'link-color',
|
|
363
|
+
'link-color-rgb',
|
|
364
|
+
'link-decoration',
|
|
365
|
+
'link-hover-color',
|
|
366
|
+
'link-hover-color-rgb',
|
|
367
|
+
'highlight-bg',
|
|
368
|
+
'code-color',
|
|
262
369
|
],
|
|
263
370
|
},
|
|
264
371
|
spacing: {
|
|
265
372
|
label: 'Spacing',
|
|
266
373
|
tokens: [
|
|
267
|
-
'spacing-0',
|
|
268
|
-
'spacing-
|
|
269
|
-
'spacing-
|
|
270
|
-
'spacing-
|
|
271
|
-
'spacing-
|
|
374
|
+
'spacing-0',
|
|
375
|
+
'spacing-1',
|
|
376
|
+
'spacing-px-6',
|
|
377
|
+
'spacing-2',
|
|
378
|
+
'spacing-px-10',
|
|
379
|
+
'spacing-3',
|
|
380
|
+
'spacing-px-14',
|
|
381
|
+
'spacing-4',
|
|
382
|
+
'spacing-5',
|
|
383
|
+
'spacing-px-22',
|
|
384
|
+
'spacing-6',
|
|
385
|
+
'spacing-7',
|
|
386
|
+
'spacing-px-30',
|
|
387
|
+
'spacing-8',
|
|
388
|
+
'spacing-9',
|
|
389
|
+
'spacing-10',
|
|
390
|
+
'spacing-11',
|
|
391
|
+
'spacing-12',
|
|
392
|
+
'spacing-14',
|
|
393
|
+
'spacing-16',
|
|
394
|
+
'spacing-20',
|
|
395
|
+
'spacing-24',
|
|
396
|
+
'spacing-28',
|
|
397
|
+
'spacing-32',
|
|
398
|
+
'spacing-36',
|
|
399
|
+
'spacing-40',
|
|
400
|
+
'spacing-44',
|
|
401
|
+
'spacing-48',
|
|
402
|
+
'spacing-52',
|
|
403
|
+
'spacing-56',
|
|
404
|
+
'spacing-60',
|
|
405
|
+
'spacing-64',
|
|
406
|
+
'spacing-72',
|
|
407
|
+
'spacing-80',
|
|
408
|
+
'spacing-90',
|
|
409
|
+
'spacing-200',
|
|
272
410
|
],
|
|
273
411
|
},
|
|
274
412
|
shadows: {
|
|
275
413
|
label: 'Shadows',
|
|
276
414
|
tokens: [
|
|
277
|
-
'box-shadow',
|
|
415
|
+
'box-shadow',
|
|
416
|
+
'box-shadow-xs',
|
|
417
|
+
'box-shadow-sm',
|
|
418
|
+
'box-shadow-lg',
|
|
419
|
+
'box-shadow-xl',
|
|
420
|
+
'box-shadow-inset',
|
|
278
421
|
],
|
|
279
422
|
},
|
|
280
423
|
borders: {
|
|
281
424
|
label: 'Borders',
|
|
282
425
|
tokens: [
|
|
283
|
-
'border-width',
|
|
284
|
-
'border-
|
|
285
|
-
'border-
|
|
286
|
-
'
|
|
287
|
-
'
|
|
426
|
+
'border-width',
|
|
427
|
+
'border-style',
|
|
428
|
+
'border-color',
|
|
429
|
+
'border-color-translucent',
|
|
430
|
+
'border-radius',
|
|
431
|
+
'border-radius-sm',
|
|
432
|
+
'border-radius-lg',
|
|
433
|
+
'border-radius-xl',
|
|
434
|
+
'border-radius-xxl',
|
|
435
|
+
'border-radius-2xl',
|
|
436
|
+
'border-radius-3xl',
|
|
437
|
+
'border-radius-4xl',
|
|
438
|
+
'border-radius-pill',
|
|
439
|
+
'focus-border-color',
|
|
440
|
+
'focus-ring-width',
|
|
441
|
+
'focus-ring-offset',
|
|
442
|
+
'focus-ring-opacity',
|
|
443
|
+
'form-valid-color',
|
|
444
|
+
'form-valid-border-color',
|
|
445
|
+
'form-invalid-color',
|
|
446
|
+
'form-invalid-border-color',
|
|
288
447
|
],
|
|
289
448
|
},
|
|
290
449
|
transitions: {
|
|
291
450
|
label: 'Transitions',
|
|
292
451
|
tokens: [
|
|
293
|
-
'transition-duration-fast',
|
|
294
|
-
'
|
|
295
|
-
'transition-
|
|
452
|
+
'transition-duration-fast',
|
|
453
|
+
'transition-duration-base',
|
|
454
|
+
'transition-duration-slow',
|
|
455
|
+
'transition-duration-slower',
|
|
456
|
+
'easing-base',
|
|
457
|
+
'easing-ease-in-out',
|
|
458
|
+
'easing-ease-out',
|
|
459
|
+
'easing-ease-in',
|
|
460
|
+
'easing-ease-linear',
|
|
461
|
+
'transition-fast',
|
|
462
|
+
'transition-base',
|
|
463
|
+
'transition-slow',
|
|
296
464
|
],
|
|
297
465
|
},
|
|
298
466
|
zindex: {
|
|
299
467
|
label: 'Z-Index',
|
|
300
468
|
tokens: [
|
|
301
|
-
'z-n1',
|
|
302
|
-
'z-
|
|
469
|
+
'z-n1',
|
|
470
|
+
'z-0',
|
|
471
|
+
'z-1',
|
|
472
|
+
'z-2',
|
|
473
|
+
'z-3',
|
|
474
|
+
'z-4',
|
|
475
|
+
'z-5',
|
|
476
|
+
'z-dropdown',
|
|
477
|
+
'z-sticky',
|
|
478
|
+
'z-fixed',
|
|
479
|
+
'z-modal',
|
|
480
|
+
'z-popover',
|
|
481
|
+
'z-tooltip',
|
|
482
|
+
'z-drawer',
|
|
303
483
|
],
|
|
304
484
|
},
|
|
305
485
|
breakpoints: {
|
|
306
486
|
label: 'Breakpoints',
|
|
307
487
|
tokens: [
|
|
308
|
-
'breakpoint-xs',
|
|
488
|
+
'breakpoint-xs',
|
|
489
|
+
'breakpoint-sm',
|
|
490
|
+
'breakpoint-md',
|
|
491
|
+
'breakpoint-lg',
|
|
492
|
+
'breakpoint-xl',
|
|
493
|
+
'breakpoint-xxl',
|
|
309
494
|
],
|
|
310
495
|
},
|
|
311
496
|
};
|
|
@@ -315,10 +500,7 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
315
500
|
<div className="customizer-header">
|
|
316
501
|
<h2>Interactive Theme Customizer</h2>
|
|
317
502
|
<div className="customizer-controls">
|
|
318
|
-
<select
|
|
319
|
-
value={colorFormat}
|
|
320
|
-
onChange={(e) => setColorFormat(e.target.value as ColorFormat)}
|
|
321
|
-
>
|
|
503
|
+
<select value={colorFormat} onChange={e => setColorFormat(e.target.value as ColorFormat)}>
|
|
322
504
|
<option value="hex">HEX</option>
|
|
323
505
|
<option value="rgb">RGB</option>
|
|
324
506
|
<option value="rgba">RGBA</option>
|
|
@@ -357,11 +539,23 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
357
539
|
<div className="customizer-editor">
|
|
358
540
|
<h3>{tokenCategories[activeCategory].label}</h3>
|
|
359
541
|
<div className="tokens-grid">
|
|
360
|
-
{tokenCategories[activeCategory].tokens.map(
|
|
542
|
+
{tokenCategories[activeCategory].tokens.map(tokenKey => {
|
|
361
543
|
const value = tokens[tokenKey as keyof DesignTokens] || '';
|
|
362
|
-
const isColor =
|
|
363
|
-
|
|
364
|
-
|
|
544
|
+
const isColor =
|
|
545
|
+
tokenKey.includes('color') ||
|
|
546
|
+
tokenKey.includes('bg') ||
|
|
547
|
+
tokenKey.includes('gradient') ||
|
|
548
|
+
[
|
|
549
|
+
'primary',
|
|
550
|
+
'secondary',
|
|
551
|
+
'success',
|
|
552
|
+
'info',
|
|
553
|
+
'warning',
|
|
554
|
+
'error',
|
|
555
|
+
'light',
|
|
556
|
+
'dark',
|
|
557
|
+
].includes(tokenKey) ||
|
|
558
|
+
tokenKey.match(/^(gray|primary|red|green|blue|yellow)-\d+$/);
|
|
365
559
|
|
|
366
560
|
return (
|
|
367
561
|
<div key={tokenKey} className="token-item">
|
|
@@ -371,12 +565,12 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
371
565
|
<input
|
|
372
566
|
type="color"
|
|
373
567
|
value={value.startsWith('#') ? value : convertColorFormat(value, 'hex')}
|
|
374
|
-
onChange={
|
|
568
|
+
onChange={e => updateToken(tokenKey as keyof DesignTokens, e.target.value)}
|
|
375
569
|
/>
|
|
376
570
|
<input
|
|
377
571
|
type="text"
|
|
378
572
|
value={convertColorFormat(value, colorFormat)}
|
|
379
|
-
onChange={
|
|
573
|
+
onChange={e => {
|
|
380
574
|
const converted = convertColorFormat(e.target.value, 'hex');
|
|
381
575
|
updateToken(tokenKey as keyof DesignTokens, converted);
|
|
382
576
|
}}
|
|
@@ -386,7 +580,7 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
386
580
|
<input
|
|
387
581
|
type="text"
|
|
388
582
|
value={value}
|
|
389
|
-
onChange={
|
|
583
|
+
onChange={e => updateToken(tokenKey as keyof DesignTokens, e.target.value)}
|
|
390
584
|
/>
|
|
391
585
|
)}
|
|
392
586
|
</div>
|
|
@@ -563,4 +757,4 @@ export const DesignTokensCustomizer: React.FC<DesignTokensCustomizerProps> = ({
|
|
|
563
757
|
`}</style>
|
|
564
758
|
</div>
|
|
565
759
|
);
|
|
566
|
-
};
|
|
760
|
+
};
|