@impulse-ui-native/theme 2.5.0 → 2.7.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.
Files changed (63) hide show
  1. package/README.md +23 -0
  2. package/dist/hooks/index.d.mts +5 -1
  3. package/dist/hooks/use-colors.hook.d.mts +5 -1
  4. package/dist/hooks/use-components-tokens.hook.d.mts +5 -1
  5. package/dist/hooks/use-theme.hook.d.mts +5 -1
  6. package/dist/hooks/use-themed-styles.d.mts +5 -1
  7. package/dist/index.d.mts +5 -1
  8. package/dist/providers/index.d.mts +5 -1
  9. package/dist/providers/theme.provider.d.mts +5 -1
  10. package/dist/providers/theme.provider.js +12 -11
  11. package/dist/providers/theme.provider.js.map +1 -1
  12. package/dist/theme/create-button-tokens.d.mts +5 -1
  13. package/dist/theme/create-checkbox-tokens.d.mts +23 -0
  14. package/dist/theme/create-checkbox-tokens.js +63 -0
  15. package/dist/theme/create-checkbox-tokens.js.map +1 -0
  16. package/dist/theme/create-control-tokens.d.mts +5 -1
  17. package/dist/theme/create-control-tokens.js +30 -3
  18. package/dist/theme/create-control-tokens.js.map +1 -1
  19. package/dist/theme/create-data-state-tokens.d.mts +5 -1
  20. package/dist/theme/create-datetime-picker.d.mts +5 -1
  21. package/dist/theme/create-flyout-tokens.d.mts +5 -1
  22. package/dist/theme/create-icon-button-tokens.d.mts +5 -1
  23. package/dist/theme/create-radio-tokens.d.mts +23 -0
  24. package/dist/theme/create-radio-tokens.js +63 -0
  25. package/dist/theme/create-radio-tokens.js.map +1 -0
  26. package/dist/theme/create-select-tokens.d.mts +5 -1
  27. package/dist/theme/create-skeleton-tokens.d.mts +5 -1
  28. package/dist/theme/create-stepper-tokens.d.mts +5 -1
  29. package/dist/theme/create-switch-tokens.d.mts +23 -0
  30. package/dist/theme/create-switch-tokens.js +76 -0
  31. package/dist/theme/create-switch-tokens.js.map +1 -0
  32. package/dist/theme/create-tag-tokens.d.mts +5 -1
  33. package/dist/theme/create-textarea-tokens.d.mts +23 -0
  34. package/dist/theme/create-textarea-tokens.js +28 -0
  35. package/dist/theme/create-textarea-tokens.js.map +1 -0
  36. package/dist/theme/create-time-picker-tokens.d.mts +5 -1
  37. package/dist/theme/dark.theme.d.mts +5 -1
  38. package/dist/theme/index.d.mts +5 -1
  39. package/dist/theme/index.js.map +1 -1
  40. package/dist/theme/light.theme.d.mts +5 -1
  41. package/dist/theme/tokens.theme.d.mts +5 -1
  42. package/dist/theme/tokens.theme.js +8 -0
  43. package/dist/theme/tokens.theme.js.map +1 -1
  44. package/dist/types/checkbox-tokens.types.d.mts +25 -0
  45. package/dist/types/checkbox-tokens.types.js +1 -0
  46. package/dist/types/checkbox-tokens.types.js.map +1 -0
  47. package/dist/types/control-tokes.types.d.mts +8 -5
  48. package/dist/types/index.d.mts +5 -1
  49. package/dist/types/index.js +4 -0
  50. package/dist/types/index.js.map +1 -1
  51. package/dist/types/radio-tokens.types.d.mts +25 -0
  52. package/dist/types/radio-tokens.types.js +1 -0
  53. package/dist/types/radio-tokens.types.js.map +1 -0
  54. package/dist/types/switch-tokens.types.d.mts +32 -0
  55. package/dist/types/switch-tokens.types.js +1 -0
  56. package/dist/types/switch-tokens.types.js.map +1 -0
  57. package/dist/types/textarea-tokens.types.d.mts +17 -0
  58. package/dist/types/textarea-tokens.types.js +1 -0
  59. package/dist/types/textarea-tokens.types.js.map +1 -0
  60. package/dist/types/theme-provider.types.d.mts +8 -0
  61. package/dist/utils/index.d.mts +5 -1
  62. package/dist/utils/style.utils.d.mts +5 -1
  63. package/package.json +4 -4
package/README.md CHANGED
@@ -51,3 +51,26 @@ export function App() {
51
51
  ```
52
52
 
53
53
  Theme overrides are deep partials, so only the tokens you want to change need to be supplied.
54
+
55
+ Component-token overrides can be supplied as a deep-partial object or as a
56
+ callback that receives the resolved primitive theme:
57
+
58
+ ```tsx
59
+ <ThemeProvider
60
+ components={(theme) => ({
61
+ button: {
62
+ borderRadius: theme.radii.lg,
63
+ variants: {
64
+ filled: {
65
+ backgroundColor: theme.colors.accent.value,
66
+ },
67
+ },
68
+ },
69
+ })}
70
+ >
71
+ {/* application */}
72
+ </ThemeProvider>
73
+ ```
74
+
75
+ Component overrides are merged with the generated defaults, so unspecified
76
+ tokens retain their theme-derived values.
@@ -8,8 +8,10 @@ export { useTheme } from './use-theme.hook.mjs';
8
8
  export { useThemedStyles } from './use-themed-styles.mjs';
9
9
  import '../types/tokens.types.mjs';
10
10
  import '../types/theme-provider.types.mjs';
11
- import '../types/buttons-tokens.types.mjs';
11
+ import '../types/checkbox-tokens.types.mjs';
12
12
  import '../types/components.types.mjs';
13
+ import '../types/radio-tokens.types.mjs';
14
+ import '../types/buttons-tokens.types.mjs';
13
15
  import '../types/control-tokes.types.mjs';
14
16
  import '../types/data-state-tokens.types.mjs';
15
17
  import '../types/datetime-picker-tokens.types.mjs';
@@ -19,7 +21,9 @@ import '../types/pressable-tokens.types.mjs';
19
21
  import '../types/select-tokens.types.mjs';
20
22
  import '../types/skeleton-tokens.types.mjs';
21
23
  import '../types/stepper-tokens.types.mjs';
24
+ import '../types/switch-tokens.types.mjs';
22
25
  import '../types/tag-tokens.types.mjs';
26
+ import '../types/textarea-tokens.types.mjs';
23
27
  import '../types/time-picker-token.types.mjs';
24
28
  import '../types/border.types.mjs';
25
29
  import 'react-native';
@@ -1,6 +1,8 @@
1
1
  import { ThemeColors } from '../types/theme-provider.types.mjs';
2
- import '../types/buttons-tokens.types.mjs';
2
+ import '../types/checkbox-tokens.types.mjs';
3
3
  import '../types/components.types.mjs';
4
+ import '../types/radio-tokens.types.mjs';
5
+ import '../types/buttons-tokens.types.mjs';
4
6
  import '../types/control-tokes.types.mjs';
5
7
  import '../types/data-state-tokens.types.mjs';
6
8
  import '../types/datetime-picker-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -1,6 +1,8 @@
1
1
  import { ComponentsTokens } from '../types/theme-provider.types.mjs';
2
- import '../types/buttons-tokens.types.mjs';
2
+ import '../types/checkbox-tokens.types.mjs';
3
3
  import '../types/components.types.mjs';
4
+ import '../types/radio-tokens.types.mjs';
5
+ import '../types/buttons-tokens.types.mjs';
4
6
  import '../types/control-tokes.types.mjs';
5
7
  import '../types/data-state-tokens.types.mjs';
6
8
  import '../types/datetime-picker-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -1,6 +1,8 @@
1
1
  import { AppTheme } from '../types/theme-provider.types.mjs';
2
- import '../types/buttons-tokens.types.mjs';
2
+ import '../types/checkbox-tokens.types.mjs';
3
3
  import '../types/components.types.mjs';
4
+ import '../types/radio-tokens.types.mjs';
5
+ import '../types/buttons-tokens.types.mjs';
4
6
  import '../types/control-tokes.types.mjs';
5
7
  import '../types/data-state-tokens.types.mjs';
6
8
  import '../types/datetime-picker-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -1,7 +1,9 @@
1
1
  import { StyleSheet } from 'react-native';
2
2
  import { AppTheme } from '../types/theme-provider.types.mjs';
3
- import '../types/buttons-tokens.types.mjs';
3
+ import '../types/checkbox-tokens.types.mjs';
4
4
  import '../types/components.types.mjs';
5
+ import '../types/radio-tokens.types.mjs';
6
+ import '../types/buttons-tokens.types.mjs';
5
7
  import '../types/control-tokes.types.mjs';
6
8
  import '../types/data-state-tokens.types.mjs';
7
9
  import '../types/datetime-picker-tokens.types.mjs';
@@ -11,7 +13,9 @@ import '../types/pressable-tokens.types.mjs';
11
13
  import '../types/select-tokens.types.mjs';
12
14
  import '../types/skeleton-tokens.types.mjs';
13
15
  import '../types/stepper-tokens.types.mjs';
16
+ import '../types/switch-tokens.types.mjs';
14
17
  import '../types/tag-tokens.types.mjs';
18
+ import '../types/textarea-tokens.types.mjs';
15
19
  import '../types/time-picker-token.types.mjs';
16
20
  import '../types/tokens.types.mjs';
17
21
 
package/dist/index.d.mts CHANGED
@@ -24,16 +24,20 @@ export { AppTheme, ColorPair, ColorScheme, ComponentsThemes, ComponentsTokens, E
24
24
  export { BorderSize, BorderSizeKey, FontFamily, FontSize, FontWeight, FontWeightItalic, FontWeightKeys, FontWeightNormal, FontWeightValue, LetterSpacingKey, LetterSpacings, LineHeight, NeutralColor, NeutralColorKey, Radii, RadiiBlob, RadiiConditional, RadiiDrawn, RadiusBlobKey, RadiusConditionalKey, RadiusDrawnKey, RadiusKey, Space, SpaceSizesKey, TypographyKey } from './types/tokens.types.mjs';
25
25
  export { TypographyPresetKey, TypographyProps } from './types/typography.types.mjs';
26
26
  export { ButtonSizeTokens, ButtonTokens, ButtonVariantTokens, IconButtonSizeTokens, IconButtonTokens, IconButtonVariantTokens } from './types/buttons-tokens.types.mjs';
27
+ export { CheckboxSizeTokens, CheckboxTokens, CheckboxVariantTokens } from './types/checkbox-tokens.types.mjs';
27
28
  export { TagColor, TagColorTokens, TagSizeTokens, TagTokens, TagVariantTokens } from './types/tag-tokens.types.mjs';
28
- export { ControlAddonTokens, ControlContainerSizeTokens, ControlContainerTokens, ControlContainerVariantTokens, ControlErrorTokens, ControlInputSizeTokens, ControlInputTokens, ControlInputVariantTokens, ControlLabelTokens } from './types/control-tokes.types.mjs';
29
+ export { ControlAddonTokens, ControlAddonVariantTokens, ControlContainerSizeTokens, ControlContainerTokens, ControlContainerVariantTokens, ControlErrorTokens, ControlInputSizeTokens, ControlInputTokens, ControlInputVariantTokens, ControlLabelTokens } from './types/control-tokes.types.mjs';
29
30
  export { SelectOptionTokens, SelectTokens } from './types/select-tokens.types.mjs';
30
31
  export { DatePickerFlyoutTokens, DatetimePickerCalendarTokens, DatetimePickerDayTokens, DatetimePickerFlyoutActionsTokens, DatetimePickerFlyoutTokens, DatetimePickerQuickDateOptionsTokens, DatetimePickerTokens, DatetimePickerVisibleDateSelectTokens, DatetimeRangePickerFlyoutTokens } from './types/datetime-picker-tokens.types.mjs';
31
32
  export { TimePickerColumnTokens, TimePickerColumnsTokens, TimePickerFlyoutTokens, TimePickerTokens } from './types/time-picker-token.types.mjs';
32
33
  export { FlyoutHandleTokens, FlyoutTitleTokens, FlyoutTokens } from './types/flyout-tokens.types.mjs';
33
34
  export { IconTokens } from './types/icon-tokens.types.mjs';
34
35
  export { PressableTokens } from './types/pressable-tokens.types.mjs';
36
+ export { RadioSizeTokens, RadioTokens, RadioVariantTokens } from './types/radio-tokens.types.mjs';
35
37
  export { SkeletonBoneTokens, SkeletonTextTokens, SkeletonTokens } from './types/skeleton-tokens.types.mjs';
36
38
  export { StepperNavigationTokens, StepperTokens } from './types/stepper-tokens.types.mjs';
39
+ export { SwitchSizeTokens, SwitchTokens, SwitchVariantTokens } from './types/switch-tokens.types.mjs';
40
+ export { TextareaSizeTokens, TextareaTokens } from './types/textarea-tokens.types.mjs';
37
41
  export { DataStateActionsFooterTokens, DataStateContentTokens, DataStateDetailsTokens, DataStateLoadingTokens, DataStateTokens } from './types/data-state-tokens.types.mjs';
38
42
  export { createStyleKey, extractStyleProps, getShadowStyle } from './utils/style.utils.mjs';
39
43
  import 'react-native';
@@ -3,8 +3,10 @@ import 'react';
3
3
  import 'react/jsx-runtime';
4
4
  import '@impulse-ui-native/core';
5
5
  import '../types/theme-provider.types.mjs';
6
- import '../types/buttons-tokens.types.mjs';
6
+ import '../types/checkbox-tokens.types.mjs';
7
7
  import '../types/components.types.mjs';
8
+ import '../types/radio-tokens.types.mjs';
9
+ import '../types/buttons-tokens.types.mjs';
8
10
  import '../types/control-tokes.types.mjs';
9
11
  import '../types/data-state-tokens.types.mjs';
10
12
  import '../types/datetime-picker-tokens.types.mjs';
@@ -14,6 +16,8 @@ import '../types/pressable-tokens.types.mjs';
14
16
  import '../types/select-tokens.types.mjs';
15
17
  import '../types/skeleton-tokens.types.mjs';
16
18
  import '../types/stepper-tokens.types.mjs';
19
+ import '../types/switch-tokens.types.mjs';
17
20
  import '../types/tag-tokens.types.mjs';
21
+ import '../types/textarea-tokens.types.mjs';
18
22
  import '../types/time-picker-token.types.mjs';
19
23
  import '../types/tokens.types.mjs';
@@ -3,8 +3,10 @@ import { PropsWithChildren } from 'react';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import { DeepPartial } from '@impulse-ui-native/core';
5
5
  import { ColorScheme, PrimitiveThemeTokens, ComponentsTokens, AppTheme } from '../types/theme-provider.types.mjs';
6
- import '../types/buttons-tokens.types.mjs';
6
+ import '../types/checkbox-tokens.types.mjs';
7
7
  import '../types/components.types.mjs';
8
+ import '../types/radio-tokens.types.mjs';
9
+ import '../types/buttons-tokens.types.mjs';
8
10
  import '../types/control-tokes.types.mjs';
9
11
  import '../types/data-state-tokens.types.mjs';
10
12
  import '../types/datetime-picker-tokens.types.mjs';
@@ -14,7 +16,9 @@ import '../types/pressable-tokens.types.mjs';
14
16
  import '../types/select-tokens.types.mjs';
15
17
  import '../types/skeleton-tokens.types.mjs';
16
18
  import '../types/stepper-tokens.types.mjs';
19
+ import '../types/switch-tokens.types.mjs';
17
20
  import '../types/tag-tokens.types.mjs';
21
+ import '../types/textarea-tokens.types.mjs';
18
22
  import '../types/time-picker-token.types.mjs';
19
23
  import '../types/tokens.types.mjs';
20
24
 
@@ -1,25 +1,26 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
- import {
3
- createContext,
4
- memo,
5
- useContext,
6
- useMemo
7
- } from "react";
2
+ import { createContext, memo, useContext, useMemo } from "react";
8
3
  import { merge } from "@impulse-ui-native/core";
9
4
  import { createComponentsTokens, DarkTheme, LightTheme } from "../theme";
10
5
  const ThemeContext = createContext(void 0);
11
6
  const ThemeProvider = memo(function ThemeProvider2(props) {
12
- const scheme = props?.scheme ?? "light";
7
+ const {
8
+ children,
9
+ components: componentsOverride,
10
+ scheme = "light",
11
+ theme: themeOverride
12
+ } = props;
13
13
  const context = useMemo(() => {
14
14
  const baseTheme = scheme === "light" ? LightTheme : DarkTheme;
15
- const customBaseTheme = props.theme?.[scheme];
15
+ const customBaseTheme = themeOverride?.[scheme];
16
16
  const theme = merge(baseTheme, customBaseTheme);
17
+ const customComponents = typeof componentsOverride === "function" ? componentsOverride(theme) : componentsOverride;
17
18
  return {
18
19
  ...theme,
19
- components: createComponentsTokens(theme)
20
+ components: merge(createComponentsTokens(theme), customComponents)
20
21
  };
21
- }, [scheme, props.theme?.light, props.theme?.dark, props.components]);
22
- return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: context, children: props.children });
22
+ }, [scheme, themeOverride, componentsOverride]);
23
+ return /* @__PURE__ */ jsx(ThemeContext.Provider, { value: context, children });
23
24
  });
24
25
  function useThemeContext() {
25
26
  const context = useContext(ThemeContext);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/providers/theme.provider.tsx"],"sourcesContent":["import {\r\n createContext,\r\n memo,\r\n PropsWithChildren,\r\n useContext,\r\n useMemo,\r\n} from \"react\";\r\n\r\nimport { DeepPartial, merge } from \"@impulse-ui-native/core\";\r\n\r\nimport { createComponentsTokens, DarkTheme, LightTheme } from \"../theme\";\r\nimport {\r\n AppTheme,\r\n ColorScheme,\r\n ComponentsTokens,\r\n PrimitiveThemeTokens,\r\n} from \"../types\";\r\n\r\nconst ThemeContext = createContext<AppTheme | undefined>(undefined);\r\n\r\ninterface ThemeProviderProps {\r\n scheme?: ColorScheme;\r\n theme?: DeepPartial<{\r\n light: PrimitiveThemeTokens;\r\n dark: PrimitiveThemeTokens;\r\n }>;\r\n components?:\r\n | ((theme: PrimitiveThemeTokens) => DeepPartial<ComponentsTokens>)\r\n | DeepPartial<ComponentsTokens>;\r\n}\r\n\r\nexport const ThemeProvider = memo(function ThemeProvider(\r\n props: PropsWithChildren<ThemeProviderProps>,\r\n) {\r\n const scheme = props?.scheme ?? \"light\";\r\n\r\n const context = useMemo<AppTheme>(() => {\r\n const baseTheme = scheme === \"light\" ? LightTheme : DarkTheme;\r\n const customBaseTheme = props.theme?.[scheme];\r\n const theme = merge(baseTheme, customBaseTheme);\r\n\r\n return {\r\n ...theme,\r\n components: createComponentsTokens(theme),\r\n };\r\n }, [scheme, props.theme?.light, props.theme?.dark, props.components]);\r\n\r\n return (\r\n <ThemeContext.Provider value={context}>\r\n {props.children}\r\n </ThemeContext.Provider>\r\n );\r\n});\r\n\r\nexport function useThemeContext() {\r\n const context = useContext(ThemeContext);\r\n\r\n if (!context) {\r\n throw new Error(\"useThemeContext must be used within a ThemeProvider\");\r\n }\r\n\r\n return context;\r\n}\r\n"],"mappings":"AAgDI;AAhDJ;AAAA,EACE;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAEP,SAAsB,aAAa;AAEnC,SAAS,wBAAwB,WAAW,kBAAkB;AAQ9D,MAAM,eAAe,cAAoC,MAAS;AAa3D,MAAM,gBAAgB,KAAK,SAASA,eACzC,OACA;AACA,QAAM,SAAS,OAAO,UAAU;AAEhC,QAAM,UAAU,QAAkB,MAAM;AACtC,UAAM,YAAY,WAAW,UAAU,aAAa;AACpD,UAAM,kBAAkB,MAAM,QAAQ,MAAM;AAC5C,UAAM,QAAQ,MAAM,WAAW,eAAe;AAE9C,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY,uBAAuB,KAAK;AAAA,IAC1C;AAAA,EACF,GAAG,CAAC,QAAQ,MAAM,OAAO,OAAO,MAAM,OAAO,MAAM,MAAM,UAAU,CAAC;AAEpE,SACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,SAC3B,gBAAM,UACT;AAEJ,CAAC;AAEM,SAAS,kBAAkB;AAChC,QAAM,UAAU,WAAW,YAAY;AAEvC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AAEA,SAAO;AACT;","names":["ThemeProvider"]}
1
+ {"version":3,"sources":["../../src/providers/theme.provider.tsx"],"sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport { createContext, memo, useContext, useMemo } from \"react\";\n\nimport type { DeepPartial } from \"@impulse-ui-native/core\";\nimport { merge } from \"@impulse-ui-native/core\";\n\nimport type {\n AppTheme,\n ColorScheme,\n ComponentsTokens,\n PrimitiveThemeTokens,\n} from \"../types\";\nimport { createComponentsTokens, DarkTheme, LightTheme } from \"../theme\";\n\nconst ThemeContext = createContext<AppTheme | undefined>(undefined);\n\ninterface ThemeProviderProps {\n scheme?: ColorScheme;\n theme?: DeepPartial<{\n light: PrimitiveThemeTokens;\n dark: PrimitiveThemeTokens;\n }>;\n components?:\n | ((theme: PrimitiveThemeTokens) => DeepPartial<ComponentsTokens>)\n | DeepPartial<ComponentsTokens>;\n}\n\nexport const ThemeProvider = memo(function ThemeProvider(\n props: PropsWithChildren<ThemeProviderProps>,\n) {\n const {\n children,\n components: componentsOverride,\n scheme = \"light\",\n theme: themeOverride,\n } = props;\n\n const context = useMemo<AppTheme>(() => {\n const baseTheme = scheme === \"light\" ? LightTheme : DarkTheme;\n const customBaseTheme = themeOverride?.[scheme];\n const theme = merge(baseTheme, customBaseTheme);\n const customComponents =\n typeof componentsOverride === \"function\"\n ? componentsOverride(theme)\n : componentsOverride;\n\n return {\n ...theme,\n components: merge(createComponentsTokens(theme), customComponents),\n };\n }, [scheme, themeOverride, componentsOverride]);\n\n return (\n <ThemeContext.Provider value={context}>{children}</ThemeContext.Provider>\n );\n});\n\nexport function useThemeContext() {\n const context = useContext(ThemeContext);\n\n if (!context) {\n throw new Error(\"useThemeContext must be used within a ThemeProvider\");\n }\n\n return context;\n}\n"],"mappings":"AAqDI;AApDJ,SAAS,eAAe,MAAM,YAAY,eAAe;AAGzD,SAAS,aAAa;AAQtB,SAAS,wBAAwB,WAAW,kBAAkB;AAE9D,MAAM,eAAe,cAAoC,MAAS;AAa3D,MAAM,gBAAgB,KAAK,SAASA,eACzC,OACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA,YAAY;AAAA,IACZ,SAAS;AAAA,IACT,OAAO;AAAA,EACT,IAAI;AAEJ,QAAM,UAAU,QAAkB,MAAM;AACtC,UAAM,YAAY,WAAW,UAAU,aAAa;AACpD,UAAM,kBAAkB,gBAAgB,MAAM;AAC9C,UAAM,QAAQ,MAAM,WAAW,eAAe;AAC9C,UAAM,mBACJ,OAAO,uBAAuB,aAC1B,mBAAmB,KAAK,IACxB;AAEN,WAAO;AAAA,MACL,GAAG;AAAA,MACH,YAAY,MAAM,uBAAuB,KAAK,GAAG,gBAAgB;AAAA,IACnE;AAAA,EACF,GAAG,CAAC,QAAQ,eAAe,kBAAkB,CAAC;AAE9C,SACE,oBAAC,aAAa,UAAb,EAAsB,OAAO,SAAU,UAAS;AAErD,CAAC;AAEM,SAAS,kBAAkB;AAChC,QAAM,UAAU,WAAW,YAAY;AAEvC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI,MAAM,qDAAqD;AAAA,EACvE;AAEA,SAAO;AACT;","names":["ThemeProvider"]}
@@ -1,7 +1,9 @@
1
1
  import { PrimitiveThemeTokens } from '../types/theme-provider.types.mjs';
2
2
  import { ButtonTokens } from '../types/buttons-tokens.types.mjs';
3
- import '../types/control-tokes.types.mjs';
3
+ import '../types/checkbox-tokens.types.mjs';
4
4
  import '../types/components.types.mjs';
5
+ import '../types/radio-tokens.types.mjs';
6
+ import '../types/control-tokes.types.mjs';
5
7
  import '../types/data-state-tokens.types.mjs';
6
8
  import '../types/datetime-picker-tokens.types.mjs';
7
9
  import '../types/flyout-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -0,0 +1,23 @@
1
+ import { PrimitiveThemeTokens } from '../types/theme-provider.types.mjs';
2
+ import { CheckboxTokens } from '../types/checkbox-tokens.types.mjs';
3
+ import '../types/radio-tokens.types.mjs';
4
+ import '../types/components.types.mjs';
5
+ import '../types/buttons-tokens.types.mjs';
6
+ import '../types/control-tokes.types.mjs';
7
+ import '../types/data-state-tokens.types.mjs';
8
+ import '../types/datetime-picker-tokens.types.mjs';
9
+ import '../types/flyout-tokens.types.mjs';
10
+ import '../types/icon-tokens.types.mjs';
11
+ import '../types/pressable-tokens.types.mjs';
12
+ import '../types/select-tokens.types.mjs';
13
+ import '../types/skeleton-tokens.types.mjs';
14
+ import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
16
+ import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
18
+ import '../types/time-picker-token.types.mjs';
19
+ import '../types/tokens.types.mjs';
20
+
21
+ declare function createCheckboxTokens(tokens: PrimitiveThemeTokens): CheckboxTokens;
22
+
23
+ export { createCheckboxTokens };
@@ -0,0 +1,63 @@
1
+ function createCheckboxTokens(tokens) {
2
+ const primary = tokens.colors.primary.value;
3
+ const primaryContrast = tokens.colors.primary.contrast;
4
+ const secondary = tokens.colors.secondary.value;
5
+ const secondaryContrast = tokens.colors.secondary.contrast;
6
+ return {
7
+ borderWidth: tokens.borderSize.md,
8
+ borderRadius: tokens.radii.sm,
9
+ uncheckedBackgroundColor: "transparent",
10
+ uncheckedBorderColor: tokens.colors.border.strong.value,
11
+ disabledBackgroundColor: tokens.colors.neutral["3"],
12
+ disabledBorderColor: tokens.colors.neutral["5"],
13
+ disabledColor: tokens.colors.text.disabled,
14
+ sizes: {
15
+ small: {
16
+ size: 20,
17
+ iconSize: 14,
18
+ hitSlop: 12
19
+ },
20
+ medium: {
21
+ size: 24,
22
+ iconSize: 18,
23
+ hitSlop: 10
24
+ },
25
+ large: {
26
+ size: 28,
27
+ iconSize: 22,
28
+ hitSlop: 8
29
+ }
30
+ },
31
+ variants: {
32
+ filled: {
33
+ backgroundColor: primary,
34
+ borderColor: primary,
35
+ color: primaryContrast
36
+ },
37
+ outlined: {
38
+ backgroundColor: "transparent",
39
+ borderColor: primary,
40
+ color: primary
41
+ },
42
+ soft: {
43
+ backgroundColor: secondary,
44
+ borderColor: secondary,
45
+ color: secondaryContrast
46
+ },
47
+ ghost: {
48
+ backgroundColor: "transparent",
49
+ borderColor: "transparent",
50
+ color: primary
51
+ },
52
+ plain: {
53
+ backgroundColor: "transparent",
54
+ borderColor: "transparent",
55
+ color: primary
56
+ }
57
+ }
58
+ };
59
+ }
60
+ export {
61
+ createCheckboxTokens
62
+ };
63
+ //# sourceMappingURL=create-checkbox-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/theme/create-checkbox-tokens.ts"],"sourcesContent":["import type { CheckboxTokens, PrimitiveThemeTokens } from \"../types\";\n\nexport function createCheckboxTokens(\n tokens: PrimitiveThemeTokens,\n): CheckboxTokens {\n const primary = tokens.colors.primary.value;\n const primaryContrast = tokens.colors.primary.contrast;\n const secondary = tokens.colors.secondary.value;\n const secondaryContrast = tokens.colors.secondary.contrast;\n\n return {\n borderWidth: tokens.borderSize.md,\n borderRadius: tokens.radii.sm,\n uncheckedBackgroundColor: \"transparent\",\n uncheckedBorderColor: tokens.colors.border.strong.value,\n disabledBackgroundColor: tokens.colors.neutral[\"3\"],\n disabledBorderColor: tokens.colors.neutral[\"5\"],\n disabledColor: tokens.colors.text.disabled,\n\n sizes: {\n small: {\n size: 20,\n iconSize: 14,\n hitSlop: 12,\n },\n medium: {\n size: 24,\n iconSize: 18,\n hitSlop: 10,\n },\n large: {\n size: 28,\n iconSize: 22,\n hitSlop: 8,\n },\n },\n\n variants: {\n filled: {\n backgroundColor: primary,\n borderColor: primary,\n color: primaryContrast,\n },\n outlined: {\n backgroundColor: \"transparent\",\n borderColor: primary,\n color: primary,\n },\n soft: {\n backgroundColor: secondary,\n borderColor: secondary,\n color: secondaryContrast,\n },\n ghost: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n color: primary,\n },\n plain: {\n backgroundColor: \"transparent\",\n borderColor: \"transparent\",\n color: primary,\n },\n },\n };\n}\n"],"mappings":"AAEO,SAAS,qBACd,QACgB;AAChB,QAAM,UAAU,OAAO,OAAO,QAAQ;AACtC,QAAM,kBAAkB,OAAO,OAAO,QAAQ;AAC9C,QAAM,YAAY,OAAO,OAAO,UAAU;AAC1C,QAAM,oBAAoB,OAAO,OAAO,UAAU;AAElD,SAAO;AAAA,IACL,aAAa,OAAO,WAAW;AAAA,IAC/B,cAAc,OAAO,MAAM;AAAA,IAC3B,0BAA0B;AAAA,IAC1B,sBAAsB,OAAO,OAAO,OAAO,OAAO;AAAA,IAClD,yBAAyB,OAAO,OAAO,QAAQ,GAAG;AAAA,IAClD,qBAAqB,OAAO,OAAO,QAAQ,GAAG;AAAA,IAC9C,eAAe,OAAO,OAAO,KAAK;AAAA,IAElC,OAAO;AAAA,MACL,OAAO;AAAA,QACL,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,MACX;AAAA,MACA,OAAO;AAAA,QACL,MAAM;AAAA,QACN,UAAU;AAAA,QACV,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IAEA,UAAU;AAAA,MACR,QAAQ;AAAA,QACN,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,MACA,UAAU;AAAA,QACR,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,MACA,MAAM;AAAA,QACJ,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,MACA,OAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,MACA,OAAO;AAAA,QACL,iBAAiB;AAAA,QACjB,aAAa;AAAA,QACb,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1,7 +1,9 @@
1
1
  import { PrimitiveThemeTokens } from '../types/theme-provider.types.mjs';
2
2
  import { ControlAddonTokens, ControlContainerTokens, ControlErrorTokens, ControlInputTokens, ControlLabelTokens } from '../types/control-tokes.types.mjs';
3
- import '../types/buttons-tokens.types.mjs';
3
+ import '../types/checkbox-tokens.types.mjs';
4
4
  import '../types/components.types.mjs';
5
+ import '../types/radio-tokens.types.mjs';
6
+ import '../types/buttons-tokens.types.mjs';
5
7
  import '../types/data-state-tokens.types.mjs';
6
8
  import '../types/datetime-picker-tokens.types.mjs';
7
9
  import '../types/flyout-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -1,10 +1,37 @@
1
1
  function createControlAddonTokens(tokens) {
2
+ const DefaultIconColor = tokens.colors.text.primary;
3
+ const DisabledIconColor = tokens.colors.text.disabled;
4
+ const SoftIconColor = tokens.colors.accent.contrast;
2
5
  return {
3
6
  marginHorizontal: tokens.space.xxs,
4
7
  hitSlop: tokens.space.sm,
5
- iconColor: tokens.colors.text.secondary,
6
- errorIconColor: tokens.colors.feedback.error.value,
7
- disabledIconColor: tokens.colors.text.disabled
8
+ variants: {
9
+ filled: {
10
+ iconColor: DefaultIconColor,
11
+ errorIconColor: DefaultIconColor,
12
+ disabledIconColor: DisabledIconColor
13
+ },
14
+ outlined: {
15
+ iconColor: DefaultIconColor,
16
+ errorIconColor: DefaultIconColor,
17
+ disabledIconColor: DisabledIconColor
18
+ },
19
+ soft: {
20
+ iconColor: SoftIconColor,
21
+ errorIconColor: SoftIconColor,
22
+ disabledIconColor: DisabledIconColor
23
+ },
24
+ ghost: {
25
+ iconColor: DefaultIconColor,
26
+ errorIconColor: DefaultIconColor,
27
+ disabledIconColor: DisabledIconColor
28
+ },
29
+ plain: {
30
+ iconColor: DefaultIconColor,
31
+ errorIconColor: DefaultIconColor,
32
+ disabledIconColor: DisabledIconColor
33
+ }
34
+ }
8
35
  };
9
36
  }
10
37
  function createControlContainerTokens(tokens) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/theme/create-control-tokens.ts"],"sourcesContent":["import {\r\n ControlAddonTokens,\r\n ControlContainerTokens,\r\n ControlErrorTokens,\r\n ControlInputTokens,\r\n ControlLabelTokens,\r\n PrimitiveThemeTokens,\r\n} from \"../types\";\r\n\r\nexport function createControlAddonTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlAddonTokens {\r\n return {\r\n marginHorizontal: tokens.space.xxs,\r\n hitSlop: tokens.space.sm,\r\n\r\n iconColor: tokens.colors.text.secondary,\r\n errorIconColor: tokens.colors.feedback.error.value,\r\n disabledIconColor: tokens.colors.text.disabled,\r\n };\r\n}\r\n\r\nexport function createControlContainerTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlContainerTokens {\r\n const ErrorColor = tokens.colors.feedback.error.value;\r\n const TransparentColor = \"transparent\";\r\n\r\n return {\r\n borderWidth: tokens.borderSize.sm,\r\n borderRadius: tokens.radii.sm,\r\n disabledOpacity: 0.7,\r\n\r\n sizes: {\r\n small: {\r\n height: 32,\r\n paddingHorizontal: tokens.space.xs,\r\n },\r\n medium: {\r\n height: 40,\r\n paddingHorizontal: tokens.space.xs,\r\n },\r\n large: {\r\n height: 48,\r\n paddingHorizontal: tokens.space.xs,\r\n },\r\n },\r\n\r\n variants: {\r\n filled: {\r\n backgroundColor: tokens.colors.surface.secondary.value,\r\n borderColor: TransparentColor,\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: tokens.colors.neutral[\"2\"],\r\n disabledBorderColor: TransparentColor,\r\n },\r\n\r\n outlined: {\r\n backgroundColor: TransparentColor,\r\n borderColor: tokens.colors.neutral[\"5\"],\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: TransparentColor,\r\n disabledBorderColor: tokens.colors.neutral[\"5\"],\r\n },\r\n\r\n soft: {\r\n backgroundColor: tokens.colors.accent.value,\r\n borderColor: TransparentColor,\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: tokens.colors.neutral[\"2\"],\r\n disabledBorderColor: TransparentColor,\r\n },\r\n\r\n ghost: {\r\n backgroundColor: TransparentColor,\r\n borderColor: TransparentColor,\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: TransparentColor,\r\n disabledBorderColor: TransparentColor,\r\n },\r\n\r\n plain: {\r\n backgroundColor: TransparentColor,\r\n borderColor: TransparentColor,\r\n\r\n errorBorderColor: ErrorColor,\r\n\r\n disabledBackgroundColor: TransparentColor,\r\n disabledBorderColor: TransparentColor,\r\n },\r\n },\r\n };\r\n}\r\n\r\nexport function createControlErrorTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlErrorTokens {\r\n return {\r\n marginTop: tokens.space.xxs,\r\n color: tokens.colors.feedback.error.value,\r\n fontSize: tokens.fontSize.xs,\r\n };\r\n}\r\n\r\nexport function createControlInputTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlInputTokens {\r\n return {\r\n flex: 1,\r\n fontFamily: tokens.fontFamily.normal[400],\r\n paddingHorizontal: tokens.space.xxs,\r\n\r\n sizes: {\r\n small: {\r\n fontSize: tokens.fontSize.xs,\r\n },\r\n medium: {\r\n fontSize: tokens.fontSize.xsm,\r\n },\r\n large: {\r\n fontSize: tokens.fontSize.sm,\r\n },\r\n },\r\n\r\n variants: {\r\n filled: {\r\n color: tokens.colors.text.primary,\r\n placeholderColor: tokens.colors.text.disabled,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.text.primary,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n\r\n outlined: {\r\n color: tokens.colors.text.primary,\r\n placeholderColor: tokens.colors.text.disabled,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.text.primary,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n\r\n soft: {\r\n color: tokens.colors.accent.contrast,\r\n placeholderColor: tokens.colors.accent.contrast,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.accent.contrast,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n\r\n ghost: {\r\n color: tokens.colors.text.primary,\r\n placeholderColor: tokens.colors.text.disabled,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.text.primary,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n\r\n plain: {\r\n color: tokens.colors.text.primary,\r\n placeholderColor: tokens.colors.text.disabled,\r\n\r\n disabledColor: tokens.colors.text.disabled,\r\n disabledPlaceholderColor: tokens.colors.text.disabled,\r\n\r\n errorColor: tokens.colors.text.primary,\r\n errorPlaceholderColor: tokens.colors.feedback.error.value,\r\n },\r\n },\r\n };\r\n}\r\n\r\nexport function createControlLabelTokens(\r\n tokens: PrimitiveThemeTokens,\r\n): ControlLabelTokens {\r\n return {\r\n marginBottom: tokens.space.xxs,\r\n fontSize: tokens.fontSize.xsm,\r\n\r\n color: tokens.colors.text.secondary,\r\n disabledColor: tokens.colors.text.disabled,\r\n errorColor: tokens.colors.feedback.error.value,\r\n };\r\n}\r\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/theme/create-control-tokens.ts"],"sourcesContent":["import {\n ControlAddonTokens,\n ControlContainerTokens,\n ControlErrorTokens,\n ControlInputTokens,\n ControlLabelTokens,\n PrimitiveThemeTokens,\n} from \"../types\";\n\nexport function createControlAddonTokens(\n tokens: PrimitiveThemeTokens,\n): ControlAddonTokens {\n const DefaultIconColor = tokens.colors.text.primary;\n const DisabledIconColor = tokens.colors.text.disabled;\n const SoftIconColor = tokens.colors.accent.contrast;\n\n return {\n marginHorizontal: tokens.space.xxs,\n hitSlop: tokens.space.sm,\n variants: {\n filled: {\n iconColor: DefaultIconColor,\n errorIconColor: DefaultIconColor,\n disabledIconColor: DisabledIconColor,\n },\n outlined: {\n iconColor: DefaultIconColor,\n errorIconColor: DefaultIconColor,\n disabledIconColor: DisabledIconColor,\n },\n soft: {\n iconColor: SoftIconColor,\n errorIconColor: SoftIconColor,\n disabledIconColor: DisabledIconColor,\n },\n ghost: {\n iconColor: DefaultIconColor,\n errorIconColor: DefaultIconColor,\n disabledIconColor: DisabledIconColor,\n },\n plain: {\n iconColor: DefaultIconColor,\n errorIconColor: DefaultIconColor,\n disabledIconColor: DisabledIconColor,\n },\n },\n };\n}\n\nexport function createControlContainerTokens(\n tokens: PrimitiveThemeTokens,\n): ControlContainerTokens {\n const ErrorColor = tokens.colors.feedback.error.value;\n const TransparentColor = \"transparent\";\n\n return {\n borderWidth: tokens.borderSize.sm,\n borderRadius: tokens.radii.sm,\n disabledOpacity: 0.7,\n\n sizes: {\n small: {\n height: 32,\n paddingHorizontal: tokens.space.xs,\n },\n medium: {\n height: 40,\n paddingHorizontal: tokens.space.xs,\n },\n large: {\n height: 48,\n paddingHorizontal: tokens.space.xs,\n },\n },\n\n variants: {\n filled: {\n backgroundColor: tokens.colors.surface.secondary.value,\n borderColor: TransparentColor,\n\n errorBorderColor: ErrorColor,\n\n disabledBackgroundColor: tokens.colors.neutral[\"2\"],\n disabledBorderColor: TransparentColor,\n },\n\n outlined: {\n backgroundColor: TransparentColor,\n borderColor: tokens.colors.neutral[\"5\"],\n\n errorBorderColor: ErrorColor,\n\n disabledBackgroundColor: TransparentColor,\n disabledBorderColor: tokens.colors.neutral[\"5\"],\n },\n\n soft: {\n backgroundColor: tokens.colors.accent.value,\n borderColor: TransparentColor,\n\n errorBorderColor: ErrorColor,\n\n disabledBackgroundColor: tokens.colors.neutral[\"2\"],\n disabledBorderColor: TransparentColor,\n },\n\n ghost: {\n backgroundColor: TransparentColor,\n borderColor: TransparentColor,\n\n errorBorderColor: ErrorColor,\n\n disabledBackgroundColor: TransparentColor,\n disabledBorderColor: TransparentColor,\n },\n\n plain: {\n backgroundColor: TransparentColor,\n borderColor: TransparentColor,\n\n errorBorderColor: ErrorColor,\n\n disabledBackgroundColor: TransparentColor,\n disabledBorderColor: TransparentColor,\n },\n },\n };\n}\n\nexport function createControlErrorTokens(\n tokens: PrimitiveThemeTokens,\n): ControlErrorTokens {\n return {\n marginTop: tokens.space.xxs,\n color: tokens.colors.feedback.error.value,\n fontSize: tokens.fontSize.xs,\n };\n}\n\nexport function createControlInputTokens(\n tokens: PrimitiveThemeTokens,\n): ControlInputTokens {\n return {\n flex: 1,\n fontFamily: tokens.fontFamily.normal[400],\n paddingHorizontal: tokens.space.xxs,\n\n sizes: {\n small: {\n fontSize: tokens.fontSize.xs,\n },\n medium: {\n fontSize: tokens.fontSize.xsm,\n },\n large: {\n fontSize: tokens.fontSize.sm,\n },\n },\n\n variants: {\n filled: {\n color: tokens.colors.text.primary,\n placeholderColor: tokens.colors.text.disabled,\n\n disabledColor: tokens.colors.text.disabled,\n disabledPlaceholderColor: tokens.colors.text.disabled,\n\n errorColor: tokens.colors.text.primary,\n errorPlaceholderColor: tokens.colors.feedback.error.value,\n },\n\n outlined: {\n color: tokens.colors.text.primary,\n placeholderColor: tokens.colors.text.disabled,\n\n disabledColor: tokens.colors.text.disabled,\n disabledPlaceholderColor: tokens.colors.text.disabled,\n\n errorColor: tokens.colors.text.primary,\n errorPlaceholderColor: tokens.colors.feedback.error.value,\n },\n\n soft: {\n color: tokens.colors.accent.contrast,\n placeholderColor: tokens.colors.accent.contrast,\n\n disabledColor: tokens.colors.text.disabled,\n disabledPlaceholderColor: tokens.colors.text.disabled,\n\n errorColor: tokens.colors.accent.contrast,\n errorPlaceholderColor: tokens.colors.feedback.error.value,\n },\n\n ghost: {\n color: tokens.colors.text.primary,\n placeholderColor: tokens.colors.text.disabled,\n\n disabledColor: tokens.colors.text.disabled,\n disabledPlaceholderColor: tokens.colors.text.disabled,\n\n errorColor: tokens.colors.text.primary,\n errorPlaceholderColor: tokens.colors.feedback.error.value,\n },\n\n plain: {\n color: tokens.colors.text.primary,\n placeholderColor: tokens.colors.text.disabled,\n\n disabledColor: tokens.colors.text.disabled,\n disabledPlaceholderColor: tokens.colors.text.disabled,\n\n errorColor: tokens.colors.text.primary,\n errorPlaceholderColor: tokens.colors.feedback.error.value,\n },\n },\n };\n}\n\nexport function createControlLabelTokens(\n tokens: PrimitiveThemeTokens,\n): ControlLabelTokens {\n return {\n marginBottom: tokens.space.xxs,\n fontSize: tokens.fontSize.xsm,\n\n color: tokens.colors.text.secondary,\n disabledColor: tokens.colors.text.disabled,\n errorColor: tokens.colors.feedback.error.value,\n };\n}\n"],"mappings":"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","names":[]}
@@ -1,7 +1,9 @@
1
1
  import { PrimitiveThemeTokens } from '../types/theme-provider.types.mjs';
2
2
  import { DataStateTokens } from '../types/data-state-tokens.types.mjs';
3
- import '../types/buttons-tokens.types.mjs';
3
+ import '../types/checkbox-tokens.types.mjs';
4
4
  import '../types/components.types.mjs';
5
+ import '../types/radio-tokens.types.mjs';
6
+ import '../types/buttons-tokens.types.mjs';
5
7
  import '../types/control-tokes.types.mjs';
6
8
  import '../types/datetime-picker-tokens.types.mjs';
7
9
  import '../types/flyout-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -1,7 +1,9 @@
1
1
  import { PrimitiveThemeTokens } from '../types/theme-provider.types.mjs';
2
2
  import { DatetimePickerTokens } from '../types/datetime-picker-tokens.types.mjs';
3
- import '../types/buttons-tokens.types.mjs';
3
+ import '../types/checkbox-tokens.types.mjs';
4
4
  import '../types/components.types.mjs';
5
+ import '../types/radio-tokens.types.mjs';
6
+ import '../types/buttons-tokens.types.mjs';
5
7
  import '../types/control-tokes.types.mjs';
6
8
  import '../types/data-state-tokens.types.mjs';
7
9
  import '../types/flyout-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -1,7 +1,9 @@
1
1
  import { PrimitiveThemeTokens } from '../types/theme-provider.types.mjs';
2
2
  import { FlyoutTokens } from '../types/flyout-tokens.types.mjs';
3
- import '../types/buttons-tokens.types.mjs';
3
+ import '../types/checkbox-tokens.types.mjs';
4
4
  import '../types/components.types.mjs';
5
+ import '../types/radio-tokens.types.mjs';
6
+ import '../types/buttons-tokens.types.mjs';
5
7
  import '../types/control-tokes.types.mjs';
6
8
  import '../types/data-state-tokens.types.mjs';
7
9
  import '../types/datetime-picker-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -1,7 +1,9 @@
1
1
  import { PrimitiveThemeTokens } from '../types/theme-provider.types.mjs';
2
2
  import { IconButtonTokens } from '../types/buttons-tokens.types.mjs';
3
- import '../types/control-tokes.types.mjs';
3
+ import '../types/checkbox-tokens.types.mjs';
4
4
  import '../types/components.types.mjs';
5
+ import '../types/radio-tokens.types.mjs';
6
+ import '../types/control-tokes.types.mjs';
5
7
  import '../types/data-state-tokens.types.mjs';
6
8
  import '../types/datetime-picker-tokens.types.mjs';
7
9
  import '../types/flyout-tokens.types.mjs';
@@ -10,7 +12,9 @@ import '../types/pressable-tokens.types.mjs';
10
12
  import '../types/select-tokens.types.mjs';
11
13
  import '../types/skeleton-tokens.types.mjs';
12
14
  import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
13
16
  import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
14
18
  import '../types/time-picker-token.types.mjs';
15
19
  import '../types/tokens.types.mjs';
16
20
 
@@ -0,0 +1,23 @@
1
+ import { PrimitiveThemeTokens } from '../types/theme-provider.types.mjs';
2
+ import { RadioTokens } from '../types/radio-tokens.types.mjs';
3
+ import '../types/checkbox-tokens.types.mjs';
4
+ import '../types/components.types.mjs';
5
+ import '../types/buttons-tokens.types.mjs';
6
+ import '../types/control-tokes.types.mjs';
7
+ import '../types/data-state-tokens.types.mjs';
8
+ import '../types/datetime-picker-tokens.types.mjs';
9
+ import '../types/flyout-tokens.types.mjs';
10
+ import '../types/icon-tokens.types.mjs';
11
+ import '../types/pressable-tokens.types.mjs';
12
+ import '../types/select-tokens.types.mjs';
13
+ import '../types/skeleton-tokens.types.mjs';
14
+ import '../types/stepper-tokens.types.mjs';
15
+ import '../types/switch-tokens.types.mjs';
16
+ import '../types/tag-tokens.types.mjs';
17
+ import '../types/textarea-tokens.types.mjs';
18
+ import '../types/time-picker-token.types.mjs';
19
+ import '../types/tokens.types.mjs';
20
+
21
+ declare function createRadioTokens(tokens: PrimitiveThemeTokens): RadioTokens;
22
+
23
+ export { createRadioTokens };