@jigowatts/jigowatts-ui 2.1.2 → 2.3.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 (111) hide show
  1. package/README.md +28 -0
  2. package/dist/assets/index11.css +1 -1
  3. package/dist/assets/index17.css +1 -1
  4. package/dist/assets/index19.css +1 -1
  5. package/dist/assets/index2.css +1 -1
  6. package/dist/assets/index20.css +1 -1
  7. package/dist/assets/index21.css +1 -1
  8. package/dist/assets/index25.css +1 -1
  9. package/dist/assets/index28.css +1 -1
  10. package/dist/assets/index33.css +1 -1
  11. package/dist/assets/index4.css +1 -1
  12. package/dist/assets/index6.css +1 -1
  13. package/dist/components/Button/index.cjs.js +1 -1
  14. package/dist/components/Button/index.cjs.js.map +1 -1
  15. package/dist/components/Button/index.d.ts +2 -22
  16. package/dist/components/Button/index.es.js +7 -13
  17. package/dist/components/Button/index.es.js.map +1 -1
  18. package/dist/components/ErrorMessage/index.cjs.js +1 -1
  19. package/dist/components/ErrorMessage/index.es.js +2 -2
  20. package/dist/components/Input/index.cjs.js +1 -1
  21. package/dist/components/Input/index.es.js +17 -17
  22. package/dist/components/InputController/index.cjs.js +1 -1
  23. package/dist/components/InputController/index.cjs.js.map +1 -1
  24. package/dist/components/InputController/index.es.js +44 -43
  25. package/dist/components/InputController/index.es.js.map +1 -1
  26. package/dist/components/Label/index.cjs.js +1 -1
  27. package/dist/components/Label/index.es.js +1 -1
  28. package/dist/components/LabeledContent/index.cjs.js +1 -1
  29. package/dist/components/LabeledContent/index.es.js +6 -6
  30. package/dist/components/LoadingOverlay/index.cjs.js +1 -1
  31. package/dist/components/LoadingOverlay/index.cjs.js.map +1 -1
  32. package/dist/components/LoadingOverlay/index.es.js +10 -4
  33. package/dist/components/LoadingOverlay/index.es.js.map +1 -1
  34. package/dist/components/PageSizeSelector/index.cjs.js +1 -1
  35. package/dist/components/PageSizeSelector/index.es.js +1 -1
  36. package/dist/components/Pagination/index.cjs.js +2 -2
  37. package/dist/components/Pagination/index.es.js +15 -15
  38. package/dist/components/PasswordInputController/index.cjs.js +1 -1
  39. package/dist/components/PasswordInputController/index.cjs.js.map +1 -1
  40. package/dist/components/PasswordInputController/index.es.js +25 -25
  41. package/dist/components/PasswordInputController/index.es.js.map +1 -1
  42. package/dist/components/RadioButton/index.cjs.js +1 -1
  43. package/dist/components/RadioButton/index.es.js +1 -1
  44. package/dist/components/RadioButton/index.test.cjs.js +1 -1
  45. package/dist/components/RadioButton/index.test.es.js +1 -1
  46. package/dist/components/ScrollableDialog/index.cjs.js +1 -1
  47. package/dist/components/ScrollableDialog/index.cjs.js.map +1 -1
  48. package/dist/components/ScrollableDialog/index.es.js +12 -12
  49. package/dist/components/ScrollableDialog/index.es.js.map +1 -1
  50. package/dist/components/SearchForm/index.cjs.js +1 -1
  51. package/dist/components/SearchForm/index.cjs.js.map +1 -1
  52. package/dist/components/SearchForm/index.es.js +37 -43
  53. package/dist/components/SearchForm/index.es.js.map +1 -1
  54. package/dist/components/SelectBox/index.cjs.js +1 -1
  55. package/dist/components/SelectBox/index.es.js +1 -1
  56. package/dist/components/SelectBox/index.test.cjs.js +1 -1
  57. package/dist/components/SelectBox/index.test.es.js +1 -1
  58. package/dist/components/SelectBoxController/index.cjs.js +1 -1
  59. package/dist/components/SelectBoxController/index.cjs.js.map +1 -1
  60. package/dist/components/SelectBoxController/index.es.js +24 -24
  61. package/dist/components/SelectBoxController/index.es.js.map +1 -1
  62. package/dist/components/SideMenu/index.cjs.js +1 -1
  63. package/dist/components/SideMenu/index.es.js +28 -28
  64. package/dist/components/SubMenu/index.test.cjs.js +1 -1
  65. package/dist/components/SubMenu/index.test.cjs.js.map +1 -1
  66. package/dist/components/SubMenu/index.test.es.js +13 -13
  67. package/dist/components/SubMenu/index.test.es.js.map +1 -1
  68. package/dist/components/Tabs/index.cjs.js +1 -1
  69. package/dist/components/Tabs/index.cjs.js.map +1 -1
  70. package/dist/components/Tabs/index.es.js +16 -16
  71. package/dist/components/Tabs/index.es.js.map +1 -1
  72. package/dist/components/Textarea/index.cjs.js +1 -1
  73. package/dist/components/Textarea/index.es.js +8 -8
  74. package/dist/components/TwoFaDialog/index.cjs.js +3 -3
  75. package/dist/components/TwoFaDialog/index.cjs.js.map +1 -1
  76. package/dist/components/TwoFaDialog/index.es.js +139 -139
  77. package/dist/components/TwoFaDialog/index.es.js.map +1 -1
  78. package/dist/components/TwoFaLabel/index.cjs.js +1 -1
  79. package/dist/components/TwoFaLabel/index.cjs.js.map +1 -1
  80. package/dist/components/TwoFaLabel/index.es.js +32 -20
  81. package/dist/components/TwoFaLabel/index.es.js.map +1 -1
  82. package/dist/{index-CogWL0bN.js → index-CqVxO31c.js} +10 -10
  83. package/dist/{index-CogWL0bN.js.map → index-CqVxO31c.js.map} +1 -1
  84. package/dist/index-DNu4-rkL.cjs +2 -0
  85. package/dist/{index-SHLzSoKB.cjs.map → index-DNu4-rkL.cjs.map} +1 -1
  86. package/dist/{index-BM3CSrls.cjs → index-c8cvlwzF.cjs} +2 -2
  87. package/dist/{index-BM3CSrls.cjs.map → index-c8cvlwzF.cjs.map} +1 -1
  88. package/dist/index-omG0Vz2u.js +51 -0
  89. package/dist/{index-D7VNQwOv.js.map → index-omG0Vz2u.js.map} +1 -1
  90. package/dist/index.cjs.js +1 -1
  91. package/dist/index.d.ts +1 -0
  92. package/dist/index.es.js +82 -76
  93. package/dist/index.es.js.map +1 -1
  94. package/dist/theme/index.cjs.js +2 -0
  95. package/dist/theme/index.cjs.js.map +1 -0
  96. package/dist/theme/index.d.ts +86 -0
  97. package/dist/theme/index.es.js +123 -0
  98. package/dist/theme/index.es.js.map +1 -0
  99. package/dist/theme/index.test.cjs.js +2 -0
  100. package/dist/theme/index.test.cjs.js.map +1 -0
  101. package/dist/theme/index.test.d.ts +1 -0
  102. package/dist/theme/index.test.es.js +41 -0
  103. package/dist/theme/index.test.es.js.map +1 -0
  104. package/dist/theme/themeStoryUtils.cjs.js +54 -0
  105. package/dist/theme/themeStoryUtils.cjs.js.map +1 -0
  106. package/dist/theme/themeStoryUtils.d.ts +195 -0
  107. package/dist/theme/themeStoryUtils.es.js +172 -0
  108. package/dist/theme/themeStoryUtils.es.js.map +1 -0
  109. package/package.json +14 -9
  110. package/dist/index-D7VNQwOv.js +0 -51
  111. package/dist/index-SHLzSoKB.cjs +0 -2
@@ -0,0 +1,123 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { createTheme as m, ThemeProvider as y } from "@mui/material/styles";
3
+ import { createContext as u, useContext as p, useMemo as T } from "react";
4
+ const F = {
5
+ palette: {
6
+ primary: { main: "#6672E8", contrastText: "#FFFFFF" },
7
+ secondary: { main: "#00AD79", contrastText: "#FFFFFF" },
8
+ thirdly: { main: "#1E2D50", contrastText: "#FFFFFF" },
9
+ normal: { main: "#808181", contrastText: "#FFFFFF" },
10
+ negative: { main: "#CA0000", contrastText: "#FFFFFF" }
11
+ },
12
+ semantic: {
13
+ surface: {
14
+ base: "#FFFFFF",
15
+ subtle: "#F7F8FA",
16
+ border: "#CCCCCC"
17
+ },
18
+ text: {
19
+ primary: "#000000",
20
+ secondary: "#363636",
21
+ muted: "#808181"
22
+ },
23
+ overlay: {
24
+ background: "rgba(0, 0, 0, 0.5)"
25
+ },
26
+ loader: {
27
+ color: "#071D2E"
28
+ },
29
+ pagination: {
30
+ selected: "#071D2E",
31
+ contrastText: "#FFFFFF"
32
+ },
33
+ input: {
34
+ border: "#C4C4C4",
35
+ placeholder: "#C4C4C4"
36
+ },
37
+ radio: {
38
+ checked: "#354E57"
39
+ },
40
+ interaction: {
41
+ primaryHover: "rgba(100, 113, 232, 0.2)"
42
+ }
43
+ },
44
+ muiTheme: m({
45
+ palette: {
46
+ primary: { main: "#6672E8", contrastText: "#FFFFFF" },
47
+ secondary: { main: "#00AD79", contrastText: "#FFFFFF" },
48
+ thirdly: { main: "#1E2D50", contrastText: "#FFFFFF" },
49
+ normal: { main: "#808181", contrastText: "#FFFFFF" },
50
+ negative: { main: "#CA0000", contrastText: "#FFFFFF" }
51
+ }
52
+ })
53
+ }, o = (t) => typeof t == "object" && t !== null && !Array.isArray(t), i = (t, a) => {
54
+ if (!a)
55
+ return t;
56
+ if (!o(t) || !o(a))
57
+ return a ?? t;
58
+ const r = { ...t };
59
+ for (const [c, e] of Object.entries(a)) {
60
+ if (e === void 0)
61
+ continue;
62
+ const l = r[c];
63
+ o(l) && o(e) ? r[c] = i(l, e) : r[c] = e;
64
+ }
65
+ return r;
66
+ }, x = (t) => m({
67
+ palette: {
68
+ primary: t.primary,
69
+ secondary: t.secondary,
70
+ thirdly: t.thirdly,
71
+ normal: t.normal,
72
+ negative: t.negative
73
+ }
74
+ }), s = (t) => {
75
+ const a = i(F.palette, t == null ? void 0 : t.palette), r = i(F.semantic, t == null ? void 0 : t.semantic);
76
+ return {
77
+ palette: a,
78
+ semantic: r,
79
+ muiTheme: x(a)
80
+ };
81
+ }, d = s(), g = u(
82
+ d
83
+ ), C = () => p(g), w = (t) => ({
84
+ display: "contents",
85
+ "--jigowatts-color-primary": t.palette.primary.main,
86
+ "--jigowatts-color-primary-contrast": t.palette.primary.contrastText,
87
+ "--jigowatts-color-secondary": t.palette.secondary.main,
88
+ "--jigowatts-color-secondary-contrast": t.palette.secondary.contrastText,
89
+ "--jigowatts-color-thirdly": t.palette.thirdly.main,
90
+ "--jigowatts-color-thirdly-contrast": t.palette.thirdly.contrastText,
91
+ "--jigowatts-color-normal": t.palette.normal.main,
92
+ "--jigowatts-color-normal-contrast": t.palette.normal.contrastText,
93
+ "--jigowatts-color-negative": t.palette.negative.main,
94
+ "--jigowatts-color-negative-contrast": t.palette.negative.contrastText,
95
+ "--jigowatts-color-surface": t.semantic.surface.base,
96
+ "--jigowatts-color-surface-subtle": t.semantic.surface.subtle,
97
+ "--jigowatts-color-border": t.semantic.surface.border,
98
+ "--jigowatts-color-text": t.semantic.text.primary,
99
+ "--jigowatts-color-text-secondary": t.semantic.text.secondary,
100
+ "--jigowatts-color-text-muted": t.semantic.text.muted,
101
+ "--jigowatts-color-overlay": t.semantic.overlay.background,
102
+ "--jigowatts-color-loader": t.semantic.loader.color,
103
+ "--jigowatts-color-pagination-selected": t.semantic.pagination.selected,
104
+ "--jigowatts-color-pagination-contrast-text": t.semantic.pagination.contrastText,
105
+ "--jigowatts-color-input-border": t.semantic.input.border,
106
+ "--jigowatts-color-input-placeholder": t.semantic.input.placeholder,
107
+ "--jigowatts-color-radio-checked": t.semantic.radio.checked,
108
+ "--jigowatts-color-primary-hover": t.semantic.interaction.primaryHover
109
+ }), b = ({ children: t, theme: a }) => {
110
+ const r = T(
111
+ () => a ? s(a) : d,
112
+ [a]
113
+ );
114
+ return /* @__PURE__ */ n(g.Provider, { value: r, children: /* @__PURE__ */ n(y, { theme: r.muiTheme, children: /* @__PURE__ */ n("div", { style: w(r), children: t }) }) });
115
+ }, h = s;
116
+ export {
117
+ b as JigowattsThemeProvider,
118
+ b as ThemeProvider,
119
+ h as createJigowattsTheme,
120
+ d as defaultJigowattsTheme,
121
+ C as useJigowattsTheme
122
+ };
123
+ //# sourceMappingURL=index.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../../src/theme/index.tsx"],"sourcesContent":["import {\n createTheme,\n type PaletteColor,\n type PaletteColorOptions,\n type PaletteOptions,\n ThemeProvider as MuiThemeProvider,\n type Theme,\n} from \"@mui/material/styles\";\nimport {\n createContext,\n type CSSProperties,\n type ReactNode,\n useContext,\n useMemo,\n} from \"react\";\n\ndeclare module \"@mui/material/styles\" {\n interface Palette {\n thirdly: PaletteColor;\n normal: PaletteColor;\n negative: PaletteColor;\n }\n interface PaletteOptions {\n thirdly?: PaletteColorOptions;\n normal?: PaletteColorOptions;\n negative?: PaletteColorOptions;\n }\n}\n\ndeclare module \"@mui/material/Button\" {\n interface ButtonPropsColorOverrides {\n thirdly: true;\n normal: true;\n negative: true;\n }\n}\n\ntype DeepPartial<T> = {\n [K in keyof T]?: T[K] extends Record<string, unknown>\n ? DeepPartial<T[K]>\n : T[K];\n};\n\nexport type JigowattsPaletteColor = {\n main: string;\n contrastText: string;\n};\n\nexport type JigowattsPalette = {\n primary: JigowattsPaletteColor;\n secondary: JigowattsPaletteColor;\n thirdly: JigowattsPaletteColor;\n normal: JigowattsPaletteColor;\n negative: JigowattsPaletteColor;\n};\n\nexport type JigowattsSemanticTheme = {\n surface: {\n base: string;\n subtle: string;\n border: string;\n };\n text: {\n primary: string;\n secondary: string;\n muted: string;\n };\n overlay: {\n background: string;\n };\n loader: {\n color: string;\n };\n pagination: {\n selected: string;\n contrastText: string;\n };\n input: {\n border: string;\n placeholder: string;\n };\n radio: {\n checked: string;\n };\n interaction: {\n primaryHover: string;\n };\n};\n\nexport type JigowattsThemeOptions = {\n palette?: DeepPartial<JigowattsPalette>;\n semantic?: DeepPartial<JigowattsSemanticTheme>;\n};\n\nexport type JigowattsTheme = {\n palette: JigowattsPalette;\n semantic: JigowattsSemanticTheme;\n muiTheme: Theme;\n};\n\nconst defaultThemeValues: JigowattsTheme = {\n palette: {\n primary: { main: \"#6672E8\", contrastText: \"#FFFFFF\" },\n secondary: { main: \"#00AD79\", contrastText: \"#FFFFFF\" },\n thirdly: { main: \"#1E2D50\", contrastText: \"#FFFFFF\" },\n normal: { main: \"#808181\", contrastText: \"#FFFFFF\" },\n negative: { main: \"#CA0000\", contrastText: \"#FFFFFF\" },\n },\n semantic: {\n surface: {\n base: \"#FFFFFF\",\n subtle: \"#F7F8FA\",\n border: \"#CCCCCC\",\n },\n text: {\n primary: \"#000000\",\n secondary: \"#363636\",\n muted: \"#808181\",\n },\n overlay: {\n background: \"rgba(0, 0, 0, 0.5)\",\n },\n loader: {\n color: \"#071D2E\",\n },\n pagination: {\n selected: \"#071D2E\",\n contrastText: \"#FFFFFF\",\n },\n input: {\n border: \"#C4C4C4\",\n placeholder: \"#C4C4C4\",\n },\n radio: {\n checked: \"#354E57\",\n },\n interaction: {\n primaryHover: \"rgba(100, 113, 232, 0.2)\",\n },\n },\n muiTheme: createTheme({\n palette: {\n primary: { main: \"#6672E8\", contrastText: \"#FFFFFF\" },\n secondary: { main: \"#00AD79\", contrastText: \"#FFFFFF\" },\n thirdly: { main: \"#1E2D50\", contrastText: \"#FFFFFF\" },\n normal: { main: \"#808181\", contrastText: \"#FFFFFF\" },\n negative: { main: \"#CA0000\", contrastText: \"#FFFFFF\" },\n },\n }),\n};\n\nconst isPlainObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === \"object\" && value !== null && !Array.isArray(value);\n\nconst deepMerge = <T,>(base: T, override?: DeepPartial<T>): T => {\n if (!override) {\n return base;\n }\n\n if (!isPlainObject(base) || !isPlainObject(override)) {\n return (override as T) ?? base;\n }\n\n const result: Record<string, unknown> = { ...base };\n\n for (const [key, value] of Object.entries(override)) {\n if (value === undefined) {\n continue;\n }\n\n const current = result[key];\n if (isPlainObject(current) && isPlainObject(value)) {\n result[key] = deepMerge(current, value);\n } else {\n result[key] = value;\n }\n }\n\n return result as T;\n};\n\nconst createMuiThemeFromPalette = (palette: JigowattsPalette): Theme =>\n createTheme({\n palette: {\n primary: palette.primary,\n secondary: palette.secondary,\n ...{\n thirdly: palette.thirdly,\n normal: palette.normal,\n negative: palette.negative,\n },\n } as PaletteOptions,\n });\n\nconst createResolvedTheme = (\n options?: JigowattsThemeOptions,\n): JigowattsTheme => {\n const palette = deepMerge(defaultThemeValues.palette, options?.palette);\n const semantic = deepMerge(defaultThemeValues.semantic, options?.semantic);\n\n return {\n palette,\n semantic,\n muiTheme: createMuiThemeFromPalette(palette),\n };\n};\n\nexport const defaultJigowattsTheme = createResolvedTheme();\n\nconst JigowattsThemeContext = createContext<JigowattsTheme>(\n defaultJigowattsTheme,\n);\n\nexport const useJigowattsTheme = () => useContext(JigowattsThemeContext);\n\nconst getCssVariables = (theme: JigowattsTheme): CSSProperties =>\n ({\n display: \"contents\",\n \"--jigowatts-color-primary\": theme.palette.primary.main,\n \"--jigowatts-color-primary-contrast\": theme.palette.primary.contrastText,\n \"--jigowatts-color-secondary\": theme.palette.secondary.main,\n \"--jigowatts-color-secondary-contrast\":\n theme.palette.secondary.contrastText,\n \"--jigowatts-color-thirdly\": theme.palette.thirdly.main,\n \"--jigowatts-color-thirdly-contrast\": theme.palette.thirdly.contrastText,\n \"--jigowatts-color-normal\": theme.palette.normal.main,\n \"--jigowatts-color-normal-contrast\": theme.palette.normal.contrastText,\n \"--jigowatts-color-negative\": theme.palette.negative.main,\n \"--jigowatts-color-negative-contrast\": theme.palette.negative.contrastText,\n \"--jigowatts-color-surface\": theme.semantic.surface.base,\n \"--jigowatts-color-surface-subtle\": theme.semantic.surface.subtle,\n \"--jigowatts-color-border\": theme.semantic.surface.border,\n \"--jigowatts-color-text\": theme.semantic.text.primary,\n \"--jigowatts-color-text-secondary\": theme.semantic.text.secondary,\n \"--jigowatts-color-text-muted\": theme.semantic.text.muted,\n \"--jigowatts-color-overlay\": theme.semantic.overlay.background,\n \"--jigowatts-color-loader\": theme.semantic.loader.color,\n \"--jigowatts-color-pagination-selected\": theme.semantic.pagination.selected,\n \"--jigowatts-color-pagination-contrast-text\":\n theme.semantic.pagination.contrastText,\n \"--jigowatts-color-input-border\": theme.semantic.input.border,\n \"--jigowatts-color-input-placeholder\": theme.semantic.input.placeholder,\n \"--jigowatts-color-radio-checked\": theme.semantic.radio.checked,\n \"--jigowatts-color-primary-hover\": theme.semantic.interaction.primaryHover,\n }) as CSSProperties;\n\nexport type ThemeProviderProps = {\n children: ReactNode;\n theme?: JigowattsThemeOptions;\n};\n\nexport const ThemeProvider = ({ children, theme }: ThemeProviderProps) => {\n const resolvedTheme = useMemo(\n () => (theme ? createResolvedTheme(theme) : defaultJigowattsTheme),\n [theme],\n );\n\n return (\n <JigowattsThemeContext.Provider value={resolvedTheme}>\n <MuiThemeProvider theme={resolvedTheme.muiTheme}>\n <div style={getCssVariables(resolvedTheme)}>{children}</div>\n </MuiThemeProvider>\n </JigowattsThemeContext.Provider>\n );\n};\n\nexport { ThemeProvider as JigowattsThemeProvider };\n\nexport const createJigowattsTheme = createResolvedTheme;\n"],"names":["defaultThemeValues","createTheme","isPlainObject","value","deepMerge","base","override","result","key","current","createMuiThemeFromPalette","palette","createResolvedTheme","options","semantic","defaultJigowattsTheme","JigowattsThemeContext","createContext","useJigowattsTheme","useContext","getCssVariables","theme","ThemeProvider","children","resolvedTheme","useMemo","MuiThemeProvider","jsx","createJigowattsTheme"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),t=require("../react.esm-DGuy6Rn3.cjs"),s=require("./index.cjs.js"),o=()=>{const r=s.useJigowattsTheme();return e.jsx("span",{children:r.palette.primary.main})};describe("ThemeProvider",()=>{it("uses default colors when no override is provided",()=>{t.render(e.jsx(s.ThemeProvider,{children:e.jsx(o,{})})),expect(t.screen.getByText("#6672E8")).toBeInTheDocument()}),it("merges partial overrides and exposes css variables",()=>{const{container:r}=t.render(e.jsx(s.ThemeProvider,{theme:{palette:{primary:{main:"#123456",contrastText:"#abcdef"}},semantic:{surface:{base:"#f0f0f0"}}},children:e.jsx(o,{})}));expect(t.screen.getByText("#123456")).toBeInTheDocument();const i=r.firstElementChild;expect(i).toHaveStyle("--jigowatts-color-primary: #123456"),expect(i).toHaveStyle("--jigowatts-color-surface: #f0f0f0")})});
2
+ //# sourceMappingURL=index.test.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.cjs.js","sources":["../../src/theme/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\nimport {\n ThemeProvider,\n useJigowattsTheme,\n} from \".\";\n\nconst ThemeProbe = () => {\n const theme = useJigowattsTheme();\n\n return <span>{theme.palette.primary.main}</span>;\n};\n\ndescribe(\"ThemeProvider\", () => {\n it(\"uses default colors when no override is provided\", () => {\n render(\n <ThemeProvider>\n <ThemeProbe />\n </ThemeProvider>,\n );\n\n expect(screen.getByText(\"#6672E8\")).toBeInTheDocument();\n });\n\n it(\"merges partial overrides and exposes css variables\", () => {\n const { container } = render(\n <ThemeProvider\n theme={{\n palette: {\n primary: { main: \"#123456\", contrastText: \"#abcdef\" },\n },\n semantic: {\n surface: {\n base: \"#f0f0f0\",\n },\n },\n }}\n >\n <ThemeProbe />\n </ThemeProvider>,\n );\n\n expect(screen.getByText(\"#123456\")).toBeInTheDocument();\n const wrapper = container.firstElementChild as HTMLElement;\n\n expect(wrapper).toHaveStyle(\n \"--jigowatts-color-primary: #123456\",\n );\n expect(wrapper).toHaveStyle(\n \"--jigowatts-color-surface: #f0f0f0\",\n );\n });\n});\n"],"names":["ThemeProbe","theme","useJigowattsTheme","jsx","render","ThemeProvider","screen","container","wrapper"],"mappings":"qHAOMA,EAAa,IAAM,CACvB,MAAMC,EAAQC,EAAAA,kBAAA,EAEd,OAAOC,EAAAA,IAAC,OAAA,CAAM,SAAAF,EAAM,QAAQ,QAAQ,KAAK,CAC3C,EAEA,SAAS,gBAAiB,IAAM,CAC9B,GAAG,mDAAoD,IAAM,CAC3DG,EAAAA,OACED,EAAAA,IAACE,EAAAA,cAAA,CACC,SAAAF,EAAAA,IAACH,EAAA,CAAA,CAAW,CAAA,CACd,CAAA,EAGF,OAAOM,EAAAA,OAAO,UAAU,SAAS,CAAC,EAAE,kBAAA,CACtC,CAAC,EAED,GAAG,qDAAsD,IAAM,CAC7D,KAAM,CAAE,UAAAC,GAAcH,EAAAA,OACpBD,EAAAA,IAACE,EAAAA,cAAA,CACC,MAAO,CACL,QAAS,CACP,QAAS,CAAE,KAAM,UAAW,aAAc,SAAA,CAAU,EAEtD,SAAU,CACR,QAAS,CACP,KAAM,SAAA,CACR,CACF,EAGF,eAACL,EAAA,CAAA,CAAW,CAAA,CAAA,CACd,EAGF,OAAOM,EAAAA,OAAO,UAAU,SAAS,CAAC,EAAE,kBAAA,EACpC,MAAME,EAAUD,EAAU,kBAE1B,OAAOC,CAAO,EAAE,YACd,oCAAA,EAEF,OAAOA,CAAO,EAAE,YACd,oCAAA,CAEJ,CAAC,CACH,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,41 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { r as o, s } from "../react.esm-BBESb8eI.js";
3
+ import { ThemeProvider as a, useJigowattsTheme as c } from "./index.es.js";
4
+ const i = () => {
5
+ const t = c();
6
+ return /* @__PURE__ */ e("span", { children: t.palette.primary.main });
7
+ };
8
+ describe("ThemeProvider", () => {
9
+ it("uses default colors when no override is provided", () => {
10
+ o(
11
+ /* @__PURE__ */ e(a, { children: /* @__PURE__ */ e(i, {}) })
12
+ ), expect(s.getByText("#6672E8")).toBeInTheDocument();
13
+ }), it("merges partial overrides and exposes css variables", () => {
14
+ const { container: t } = o(
15
+ /* @__PURE__ */ e(
16
+ a,
17
+ {
18
+ theme: {
19
+ palette: {
20
+ primary: { main: "#123456", contrastText: "#abcdef" }
21
+ },
22
+ semantic: {
23
+ surface: {
24
+ base: "#f0f0f0"
25
+ }
26
+ }
27
+ },
28
+ children: /* @__PURE__ */ e(i, {})
29
+ }
30
+ )
31
+ );
32
+ expect(s.getByText("#123456")).toBeInTheDocument();
33
+ const r = t.firstElementChild;
34
+ expect(r).toHaveStyle(
35
+ "--jigowatts-color-primary: #123456"
36
+ ), expect(r).toHaveStyle(
37
+ "--jigowatts-color-surface: #f0f0f0"
38
+ );
39
+ });
40
+ });
41
+ //# sourceMappingURL=index.test.es.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.es.js","sources":["../../src/theme/index.test.tsx"],"sourcesContent":["import { render, screen } from \"@testing-library/react\";\n\nimport {\n ThemeProvider,\n useJigowattsTheme,\n} from \".\";\n\nconst ThemeProbe = () => {\n const theme = useJigowattsTheme();\n\n return <span>{theme.palette.primary.main}</span>;\n};\n\ndescribe(\"ThemeProvider\", () => {\n it(\"uses default colors when no override is provided\", () => {\n render(\n <ThemeProvider>\n <ThemeProbe />\n </ThemeProvider>,\n );\n\n expect(screen.getByText(\"#6672E8\")).toBeInTheDocument();\n });\n\n it(\"merges partial overrides and exposes css variables\", () => {\n const { container } = render(\n <ThemeProvider\n theme={{\n palette: {\n primary: { main: \"#123456\", contrastText: \"#abcdef\" },\n },\n semantic: {\n surface: {\n base: \"#f0f0f0\",\n },\n },\n }}\n >\n <ThemeProbe />\n </ThemeProvider>,\n );\n\n expect(screen.getByText(\"#123456\")).toBeInTheDocument();\n const wrapper = container.firstElementChild as HTMLElement;\n\n expect(wrapper).toHaveStyle(\n \"--jigowatts-color-primary: #123456\",\n );\n expect(wrapper).toHaveStyle(\n \"--jigowatts-color-surface: #f0f0f0\",\n );\n });\n});\n"],"names":["ThemeProbe","theme","useJigowattsTheme","jsx","render","ThemeProvider","screen","container","wrapper"],"mappings":";;;AAOA,MAAMA,IAAa,MAAM;AACvB,QAAMC,IAAQC,EAAA;AAEd,SAAO,gBAAAC,EAAC,QAAA,EAAM,UAAAF,EAAM,QAAQ,QAAQ,MAAK;AAC3C;AAEA,SAAS,iBAAiB,MAAM;AAC9B,KAAG,oDAAoD,MAAM;AAC3D,IAAAG;AAAA,MACE,gBAAAD,EAACE,GAAA,EACC,UAAA,gBAAAF,EAACH,GAAA,CAAA,CAAW,EAAA,CACd;AAAA,IAAA,GAGF,OAAOM,EAAO,UAAU,SAAS,CAAC,EAAE,kBAAA;AAAA,EACtC,CAAC,GAED,GAAG,sDAAsD,MAAM;AAC7D,UAAM,EAAE,WAAAC,MAAcH;AAAA,MACpB,gBAAAD;AAAA,QAACE;AAAA,QAAA;AAAA,UACC,OAAO;AAAA,YACL,SAAS;AAAA,cACP,SAAS,EAAE,MAAM,WAAW,cAAc,UAAA;AAAA,YAAU;AAAA,YAEtD,UAAU;AAAA,cACR,SAAS;AAAA,gBACP,MAAM;AAAA,cAAA;AAAA,YACR;AAAA,UACF;AAAA,UAGF,4BAACL,GAAA,CAAA,CAAW;AAAA,QAAA;AAAA,MAAA;AAAA,IACd;AAGF,WAAOM,EAAO,UAAU,SAAS,CAAC,EAAE,kBAAA;AACpC,UAAME,IAAUD,EAAU;AAE1B,WAAOC,CAAO,EAAE;AAAA,MACd;AAAA,IAAA,GAEF,OAAOA,CAAO,EAAE;AAAA,MACd;AAAA,IAAA;AAAA,EAEJ,CAAC;AACH,CAAC;"}
@@ -0,0 +1,54 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),t=require("./index.cjs.js"),a={primary:t.defaultJigowattsTheme.palette.primary.main,secondary:t.defaultJigowattsTheme.palette.secondary.main,thirdly:t.defaultJigowattsTheme.palette.thirdly.main,negative:t.defaultJigowattsTheme.palette.negative.main,surface:t.defaultJigowattsTheme.semantic.surface.base,subtleSurface:t.defaultJigowattsTheme.semantic.surface.subtle,border:t.defaultJigowattsTheme.semantic.surface.border,loader:t.defaultJigowattsTheme.semantic.loader.color,overlay:t.defaultJigowattsTheme.semantic.overlay.background,text:t.defaultJigowattsTheme.semantic.text.primary,textSecondary:t.defaultJigowattsTheme.semantic.text.secondary,inputBorder:t.defaultJigowattsTheme.semantic.input.border,inputPlaceholder:t.defaultJigowattsTheme.semantic.input.placeholder,radioChecked:t.defaultJigowattsTheme.semantic.radio.checked,paginationSelected:t.defaultJigowattsTheme.semantic.pagination.selected,paginationContrastText:t.defaultJigowattsTheme.semantic.pagination.contrastText,primaryHover:t.defaultJigowattsTheme.semantic.interaction.primaryHover},n={primary:a.primary,secondary:a.secondary,thirdly:a.thirdly,negative:a.negative},d={surface:a.surface,subtleSurface:a.subtleSurface,border:a.border,loader:a.loader,overlay:a.overlay,text:a.text,textSecondary:a.textSecondary,inputBorder:a.inputBorder,inputPlaceholder:a.inputPlaceholder,radioChecked:a.radioChecked,paginationSelected:a.paginationSelected,paginationContrastText:a.paginationContrastText,primaryHover:a.primaryHover},r=e=>({palette:{primary:{main:e.primary,contrastText:"#FFFFFF"},secondary:{main:e.secondary,contrastText:"#FFFFFF"},thirdly:{main:e.thirdly,contrastText:"#FFFFFF"},normal:{main:"#808181",contrastText:"#FFFFFF"},negative:{main:e.negative,contrastText:"#FFFFFF"}},semantic:{surface:{base:e.surface,subtle:e.subtleSurface,border:e.border},text:{primary:e.text,secondary:e.textSecondary,inverse:"#FFFFFF",muted:"#808181"},overlay:{background:e.overlay},loader:{color:e.loader},pagination:{selected:e.paginationSelected,contrastText:e.paginationContrastText},input:{border:e.inputBorder,placeholder:e.inputPlaceholder},radio:{checked:e.radioChecked},interaction:{primaryHover:e.primaryHover}}}),c={primary:{control:{type:"text"}},secondary:{control:{type:"text"}},thirdly:{control:{type:"text"}},negative:{control:{type:"text"}}},l={surface:{control:{type:"text"}},subtleSurface:{control:{type:"text"}},border:{control:{type:"text"}},loader:{control:{type:"text"}},overlay:{control:{type:"text"}},text:{control:{type:"text"}},textSecondary:{control:{type:"text"}},inputBorder:{control:{type:"text"}},inputPlaceholder:{control:{type:"text"}},radioChecked:{control:{type:"text"}},paginationSelected:{control:{type:"text"}},paginationContrastText:{control:{type:"text"}},primaryHover:{control:{type:"text"}}},s=`
2
+ .theme-preview-card {
3
+ padding: 20px;
4
+ border-radius: 20px;
5
+ background: var(--jigowatts-color-surface, white);
6
+ box-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
7
+ }
8
+
9
+ .theme-token-label {
10
+ font-size: 13px;
11
+ font-weight: 700;
12
+ letter-spacing: 0.02em;
13
+ text-transform: capitalize;
14
+ }
15
+
16
+ .theme-token-note {
17
+ font-size: 12px;
18
+ line-height: 1.4;
19
+ opacity: 0.85;
20
+ }
21
+
22
+ .theme-visual-surface {
23
+ border-radius: 16px;
24
+ padding: 16px;
25
+ background: var(--jigowatts-color-surface, white);
26
+ border: 1px solid var(--jigowatts-color-border, #e5e7eb);
27
+ }
28
+
29
+ .theme-visual-surface-subtle {
30
+ border-radius: 16px;
31
+ padding: 16px;
32
+ background: var(--jigowatts-color-surface-subtle, #f7f8fa);
33
+ border: 1px solid var(--jigowatts-color-border, #e5e7eb);
34
+ }
35
+
36
+ .theme-text-sample {
37
+ display: grid;
38
+ gap: 8px;
39
+ }
40
+
41
+ .theme-token-pills {
42
+ display: flex;
43
+ flex-wrap: wrap;
44
+ gap: 8px;
45
+ }
46
+
47
+ .theme-token-pill {
48
+ padding: 8px 12px;
49
+ border-radius: 9999px;
50
+ font-size: 13px;
51
+ font-weight: 700;
52
+ }
53
+ `,p=({themeState:e,children:o})=>i.jsx(t.ThemeProvider,{theme:r(e),children:o}),u={padding:20,borderRadius:20,background:"var(--jigowatts-color-surface, white)",boxShadow:"0 20px 50px rgba(15, 23, 42, 0.08)"};exports.ThemeStoryProvider=p;exports.createThemeOptions=r;exports.defaultPaletteThemeState=n;exports.defaultSemanticThemeState=d;exports.defaultThemeState=a;exports.themeArgTypesPalette=c;exports.themeArgTypesSemantic=l;exports.themeCardStyle=u;exports.themePreviewStyles=s;
54
+ //# sourceMappingURL=themeStoryUtils.cjs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themeStoryUtils.cjs.js","sources":["../../src/theme/themeStoryUtils.tsx"],"sourcesContent":["import type { CSSProperties, ReactNode } from \"react\";\n\nimport { defaultJigowattsTheme, ThemeProvider } from \".\";\n\nexport type ThemeState = {\n primary: string;\n secondary: string;\n thirdly: string;\n negative: string;\n surface: string;\n subtleSurface: string;\n border: string;\n loader: string;\n overlay: string;\n text: string;\n textSecondary: string;\n inputBorder: string;\n inputPlaceholder: string;\n radioChecked: string;\n paginationSelected: string;\n paginationContrastText: string;\n primaryHover: string;\n};\n\nexport const defaultThemeState: ThemeState = {\n primary: defaultJigowattsTheme.palette.primary.main,\n secondary: defaultJigowattsTheme.palette.secondary.main,\n thirdly: defaultJigowattsTheme.palette.thirdly.main,\n negative: defaultJigowattsTheme.palette.negative.main,\n surface: defaultJigowattsTheme.semantic.surface.base,\n subtleSurface: defaultJigowattsTheme.semantic.surface.subtle,\n border: defaultJigowattsTheme.semantic.surface.border,\n loader: defaultJigowattsTheme.semantic.loader.color,\n overlay: defaultJigowattsTheme.semantic.overlay.background,\n text: defaultJigowattsTheme.semantic.text.primary,\n textSecondary: defaultJigowattsTheme.semantic.text.secondary,\n inputBorder: defaultJigowattsTheme.semantic.input.border,\n inputPlaceholder: defaultJigowattsTheme.semantic.input.placeholder,\n radioChecked: defaultJigowattsTheme.semantic.radio.checked,\n paginationSelected: defaultJigowattsTheme.semantic.pagination.selected,\n paginationContrastText:\n defaultJigowattsTheme.semantic.pagination.contrastText,\n primaryHover: defaultJigowattsTheme.semantic.interaction.primaryHover,\n};\n\nexport const defaultPaletteThemeState = {\n primary: defaultThemeState.primary,\n secondary: defaultThemeState.secondary,\n thirdly: defaultThemeState.thirdly,\n negative: defaultThemeState.negative,\n} satisfies Pick<ThemeState, \"primary\" | \"secondary\" | \"thirdly\" | \"negative\">;\n\nexport const defaultSemanticThemeState = {\n surface: defaultThemeState.surface,\n subtleSurface: defaultThemeState.subtleSurface,\n border: defaultThemeState.border,\n loader: defaultThemeState.loader,\n overlay: defaultThemeState.overlay,\n text: defaultThemeState.text,\n textSecondary: defaultThemeState.textSecondary,\n inputBorder: defaultThemeState.inputBorder,\n inputPlaceholder: defaultThemeState.inputPlaceholder,\n radioChecked: defaultThemeState.radioChecked,\n paginationSelected: defaultThemeState.paginationSelected,\n paginationContrastText: defaultThemeState.paginationContrastText,\n primaryHover: defaultThemeState.primaryHover,\n} satisfies Omit<\n ThemeState,\n \"primary\" | \"secondary\" | \"thirdly\" | \"negative\"\n>;\n\nexport const createThemeOptions = (themeState: ThemeState) => ({\n palette: {\n primary: { main: themeState.primary, contrastText: \"#FFFFFF\" },\n secondary: { main: themeState.secondary, contrastText: \"#FFFFFF\" },\n thirdly: { main: themeState.thirdly, contrastText: \"#FFFFFF\" },\n normal: { main: \"#808181\", contrastText: \"#FFFFFF\" },\n negative: { main: themeState.negative, contrastText: \"#FFFFFF\" },\n },\n semantic: {\n surface: {\n base: themeState.surface,\n subtle: themeState.subtleSurface,\n border: themeState.border,\n },\n text: {\n primary: themeState.text,\n secondary: themeState.textSecondary,\n inverse: \"#FFFFFF\",\n muted: \"#808181\",\n },\n overlay: {\n background: themeState.overlay,\n },\n loader: {\n color: themeState.loader,\n },\n pagination: {\n selected: themeState.paginationSelected,\n contrastText: themeState.paginationContrastText,\n },\n input: {\n border: themeState.inputBorder,\n placeholder: themeState.inputPlaceholder,\n },\n radio: {\n checked: themeState.radioChecked,\n },\n interaction: {\n primaryHover: themeState.primaryHover,\n },\n },\n});\n\nexport const themeArgTypesPalette = {\n primary: { control: { type: \"text\" } },\n secondary: { control: { type: \"text\" } },\n thirdly: { control: { type: \"text\" } },\n negative: { control: { type: \"text\" } },\n} as const;\n\nexport const themeArgTypesSemantic = {\n surface: { control: { type: \"text\" } },\n subtleSurface: { control: { type: \"text\" } },\n border: { control: { type: \"text\" } },\n loader: { control: { type: \"text\" } },\n overlay: { control: { type: \"text\" } },\n text: { control: { type: \"text\" } },\n textSecondary: { control: { type: \"text\" } },\n inputBorder: { control: { type: \"text\" } },\n inputPlaceholder: { control: { type: \"text\" } },\n radioChecked: { control: { type: \"text\" } },\n paginationSelected: { control: { type: \"text\" } },\n paginationContrastText: { control: { type: \"text\" } },\n primaryHover: { control: { type: \"text\" } },\n} as const;\n\nexport const themePreviewStyles = `\n .theme-preview-card {\n padding: 20px;\n border-radius: 20px;\n background: var(--jigowatts-color-surface, white);\n box-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);\n }\n\n .theme-token-label {\n font-size: 13px;\n font-weight: 700;\n letter-spacing: 0.02em;\n text-transform: capitalize;\n }\n\n .theme-token-note {\n font-size: 12px;\n line-height: 1.4;\n opacity: 0.85;\n }\n\n .theme-visual-surface {\n border-radius: 16px;\n padding: 16px;\n background: var(--jigowatts-color-surface, white);\n border: 1px solid var(--jigowatts-color-border, #e5e7eb);\n }\n\n .theme-visual-surface-subtle {\n border-radius: 16px;\n padding: 16px;\n background: var(--jigowatts-color-surface-subtle, #f7f8fa);\n border: 1px solid var(--jigowatts-color-border, #e5e7eb);\n }\n\n .theme-text-sample {\n display: grid;\n gap: 8px;\n }\n\n .theme-token-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .theme-token-pill {\n padding: 8px 12px;\n border-radius: 9999px;\n font-size: 13px;\n font-weight: 700;\n }\n`;\n\nexport const ThemeStoryProvider = ({\n themeState,\n children,\n}: {\n themeState: ThemeState;\n children: ReactNode;\n}) => <ThemeProvider theme={createThemeOptions(themeState)}>{children}</ThemeProvider>;\n\nexport const themeCardStyle = {\n padding: 20,\n borderRadius: 20,\n background: \"var(--jigowatts-color-surface, white)\",\n boxShadow: \"0 20px 50px rgba(15, 23, 42, 0.08)\",\n} as CSSProperties;\n"],"names":["defaultThemeState","defaultJigowattsTheme","defaultPaletteThemeState","defaultSemanticThemeState","createThemeOptions","themeState","themeArgTypesPalette","themeArgTypesSemantic","themePreviewStyles","ThemeStoryProvider","children","ThemeProvider","themeCardStyle"],"mappings":"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"}
@@ -0,0 +1,195 @@
1
+ import { CSSProperties, ReactNode } from 'react';
2
+
3
+ export type ThemeState = {
4
+ primary: string;
5
+ secondary: string;
6
+ thirdly: string;
7
+ negative: string;
8
+ surface: string;
9
+ subtleSurface: string;
10
+ border: string;
11
+ loader: string;
12
+ overlay: string;
13
+ text: string;
14
+ textSecondary: string;
15
+ inputBorder: string;
16
+ inputPlaceholder: string;
17
+ radioChecked: string;
18
+ paginationSelected: string;
19
+ paginationContrastText: string;
20
+ primaryHover: string;
21
+ };
22
+ export declare const defaultThemeState: ThemeState;
23
+ export declare const defaultPaletteThemeState: {
24
+ primary: string;
25
+ secondary: string;
26
+ thirdly: string;
27
+ negative: string;
28
+ };
29
+ export declare const defaultSemanticThemeState: {
30
+ surface: string;
31
+ subtleSurface: string;
32
+ border: string;
33
+ loader: string;
34
+ overlay: string;
35
+ text: string;
36
+ textSecondary: string;
37
+ inputBorder: string;
38
+ inputPlaceholder: string;
39
+ radioChecked: string;
40
+ paginationSelected: string;
41
+ paginationContrastText: string;
42
+ primaryHover: string;
43
+ };
44
+ export declare const createThemeOptions: (themeState: ThemeState) => {
45
+ palette: {
46
+ primary: {
47
+ main: string;
48
+ contrastText: string;
49
+ };
50
+ secondary: {
51
+ main: string;
52
+ contrastText: string;
53
+ };
54
+ thirdly: {
55
+ main: string;
56
+ contrastText: string;
57
+ };
58
+ normal: {
59
+ main: string;
60
+ contrastText: string;
61
+ };
62
+ negative: {
63
+ main: string;
64
+ contrastText: string;
65
+ };
66
+ };
67
+ semantic: {
68
+ surface: {
69
+ base: string;
70
+ subtle: string;
71
+ border: string;
72
+ };
73
+ text: {
74
+ primary: string;
75
+ secondary: string;
76
+ inverse: string;
77
+ muted: string;
78
+ };
79
+ overlay: {
80
+ background: string;
81
+ };
82
+ loader: {
83
+ color: string;
84
+ };
85
+ pagination: {
86
+ selected: string;
87
+ contrastText: string;
88
+ };
89
+ input: {
90
+ border: string;
91
+ placeholder: string;
92
+ };
93
+ radio: {
94
+ checked: string;
95
+ };
96
+ interaction: {
97
+ primaryHover: string;
98
+ };
99
+ };
100
+ };
101
+ export declare const themeArgTypesPalette: {
102
+ readonly primary: {
103
+ readonly control: {
104
+ readonly type: "text";
105
+ };
106
+ };
107
+ readonly secondary: {
108
+ readonly control: {
109
+ readonly type: "text";
110
+ };
111
+ };
112
+ readonly thirdly: {
113
+ readonly control: {
114
+ readonly type: "text";
115
+ };
116
+ };
117
+ readonly negative: {
118
+ readonly control: {
119
+ readonly type: "text";
120
+ };
121
+ };
122
+ };
123
+ export declare const themeArgTypesSemantic: {
124
+ readonly surface: {
125
+ readonly control: {
126
+ readonly type: "text";
127
+ };
128
+ };
129
+ readonly subtleSurface: {
130
+ readonly control: {
131
+ readonly type: "text";
132
+ };
133
+ };
134
+ readonly border: {
135
+ readonly control: {
136
+ readonly type: "text";
137
+ };
138
+ };
139
+ readonly loader: {
140
+ readonly control: {
141
+ readonly type: "text";
142
+ };
143
+ };
144
+ readonly overlay: {
145
+ readonly control: {
146
+ readonly type: "text";
147
+ };
148
+ };
149
+ readonly text: {
150
+ readonly control: {
151
+ readonly type: "text";
152
+ };
153
+ };
154
+ readonly textSecondary: {
155
+ readonly control: {
156
+ readonly type: "text";
157
+ };
158
+ };
159
+ readonly inputBorder: {
160
+ readonly control: {
161
+ readonly type: "text";
162
+ };
163
+ };
164
+ readonly inputPlaceholder: {
165
+ readonly control: {
166
+ readonly type: "text";
167
+ };
168
+ };
169
+ readonly radioChecked: {
170
+ readonly control: {
171
+ readonly type: "text";
172
+ };
173
+ };
174
+ readonly paginationSelected: {
175
+ readonly control: {
176
+ readonly type: "text";
177
+ };
178
+ };
179
+ readonly paginationContrastText: {
180
+ readonly control: {
181
+ readonly type: "text";
182
+ };
183
+ };
184
+ readonly primaryHover: {
185
+ readonly control: {
186
+ readonly type: "text";
187
+ };
188
+ };
189
+ };
190
+ export declare const themePreviewStyles = "\n .theme-preview-card {\n padding: 20px;\n border-radius: 20px;\n background: var(--jigowatts-color-surface, white);\n box-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);\n }\n\n .theme-token-label {\n font-size: 13px;\n font-weight: 700;\n letter-spacing: 0.02em;\n text-transform: capitalize;\n }\n\n .theme-token-note {\n font-size: 12px;\n line-height: 1.4;\n opacity: 0.85;\n }\n\n .theme-visual-surface {\n border-radius: 16px;\n padding: 16px;\n background: var(--jigowatts-color-surface, white);\n border: 1px solid var(--jigowatts-color-border, #e5e7eb);\n }\n\n .theme-visual-surface-subtle {\n border-radius: 16px;\n padding: 16px;\n background: var(--jigowatts-color-surface-subtle, #f7f8fa);\n border: 1px solid var(--jigowatts-color-border, #e5e7eb);\n }\n\n .theme-text-sample {\n display: grid;\n gap: 8px;\n }\n\n .theme-token-pills {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n\n .theme-token-pill {\n padding: 8px 12px;\n border-radius: 9999px;\n font-size: 13px;\n font-weight: 700;\n }\n";
191
+ export declare const ThemeStoryProvider: ({ themeState, children, }: {
192
+ themeState: ThemeState;
193
+ children: ReactNode;
194
+ }) => import("react/jsx-runtime").JSX.Element;
195
+ export declare const themeCardStyle: CSSProperties;
@@ -0,0 +1,172 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ import { defaultJigowattsTheme as t, ThemeProvider as n } from "./index.es.js";
3
+ const r = {
4
+ primary: t.palette.primary.main,
5
+ secondary: t.palette.secondary.main,
6
+ thirdly: t.palette.thirdly.main,
7
+ negative: t.palette.negative.main,
8
+ surface: t.semantic.surface.base,
9
+ subtleSurface: t.semantic.surface.subtle,
10
+ border: t.semantic.surface.border,
11
+ loader: t.semantic.loader.color,
12
+ overlay: t.semantic.overlay.background,
13
+ text: t.semantic.text.primary,
14
+ textSecondary: t.semantic.text.secondary,
15
+ inputBorder: t.semantic.input.border,
16
+ inputPlaceholder: t.semantic.input.placeholder,
17
+ radioChecked: t.semantic.radio.checked,
18
+ paginationSelected: t.semantic.pagination.selected,
19
+ paginationContrastText: t.semantic.pagination.contrastText,
20
+ primaryHover: t.semantic.interaction.primaryHover
21
+ }, p = {
22
+ primary: r.primary,
23
+ secondary: r.secondary,
24
+ thirdly: r.thirdly,
25
+ negative: r.negative
26
+ }, l = {
27
+ surface: r.surface,
28
+ subtleSurface: r.subtleSurface,
29
+ border: r.border,
30
+ loader: r.loader,
31
+ overlay: r.overlay,
32
+ text: r.text,
33
+ textSecondary: r.textSecondary,
34
+ inputBorder: r.inputBorder,
35
+ inputPlaceholder: r.inputPlaceholder,
36
+ radioChecked: r.radioChecked,
37
+ paginationSelected: r.paginationSelected,
38
+ paginationContrastText: r.paginationContrastText,
39
+ primaryHover: r.primaryHover
40
+ }, i = (e) => ({
41
+ palette: {
42
+ primary: { main: e.primary, contrastText: "#FFFFFF" },
43
+ secondary: { main: e.secondary, contrastText: "#FFFFFF" },
44
+ thirdly: { main: e.thirdly, contrastText: "#FFFFFF" },
45
+ normal: { main: "#808181", contrastText: "#FFFFFF" },
46
+ negative: { main: e.negative, contrastText: "#FFFFFF" }
47
+ },
48
+ semantic: {
49
+ surface: {
50
+ base: e.surface,
51
+ subtle: e.subtleSurface,
52
+ border: e.border
53
+ },
54
+ text: {
55
+ primary: e.text,
56
+ secondary: e.textSecondary,
57
+ inverse: "#FFFFFF",
58
+ muted: "#808181"
59
+ },
60
+ overlay: {
61
+ background: e.overlay
62
+ },
63
+ loader: {
64
+ color: e.loader
65
+ },
66
+ pagination: {
67
+ selected: e.paginationSelected,
68
+ contrastText: e.paginationContrastText
69
+ },
70
+ input: {
71
+ border: e.inputBorder,
72
+ placeholder: e.inputPlaceholder
73
+ },
74
+ radio: {
75
+ checked: e.radioChecked
76
+ },
77
+ interaction: {
78
+ primaryHover: e.primaryHover
79
+ }
80
+ }
81
+ }), s = {
82
+ primary: { control: { type: "text" } },
83
+ secondary: { control: { type: "text" } },
84
+ thirdly: { control: { type: "text" } },
85
+ negative: { control: { type: "text" } }
86
+ }, x = {
87
+ surface: { control: { type: "text" } },
88
+ subtleSurface: { control: { type: "text" } },
89
+ border: { control: { type: "text" } },
90
+ loader: { control: { type: "text" } },
91
+ overlay: { control: { type: "text" } },
92
+ text: { control: { type: "text" } },
93
+ textSecondary: { control: { type: "text" } },
94
+ inputBorder: { control: { type: "text" } },
95
+ inputPlaceholder: { control: { type: "text" } },
96
+ radioChecked: { control: { type: "text" } },
97
+ paginationSelected: { control: { type: "text" } },
98
+ paginationContrastText: { control: { type: "text" } },
99
+ primaryHover: { control: { type: "text" } }
100
+ }, y = `
101
+ .theme-preview-card {
102
+ padding: 20px;
103
+ border-radius: 20px;
104
+ background: var(--jigowatts-color-surface, white);
105
+ box-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
106
+ }
107
+
108
+ .theme-token-label {
109
+ font-size: 13px;
110
+ font-weight: 700;
111
+ letter-spacing: 0.02em;
112
+ text-transform: capitalize;
113
+ }
114
+
115
+ .theme-token-note {
116
+ font-size: 12px;
117
+ line-height: 1.4;
118
+ opacity: 0.85;
119
+ }
120
+
121
+ .theme-visual-surface {
122
+ border-radius: 16px;
123
+ padding: 16px;
124
+ background: var(--jigowatts-color-surface, white);
125
+ border: 1px solid var(--jigowatts-color-border, #e5e7eb);
126
+ }
127
+
128
+ .theme-visual-surface-subtle {
129
+ border-radius: 16px;
130
+ padding: 16px;
131
+ background: var(--jigowatts-color-surface-subtle, #f7f8fa);
132
+ border: 1px solid var(--jigowatts-color-border, #e5e7eb);
133
+ }
134
+
135
+ .theme-text-sample {
136
+ display: grid;
137
+ gap: 8px;
138
+ }
139
+
140
+ .theme-token-pills {
141
+ display: flex;
142
+ flex-wrap: wrap;
143
+ gap: 8px;
144
+ }
145
+
146
+ .theme-token-pill {
147
+ padding: 8px 12px;
148
+ border-radius: 9999px;
149
+ font-size: 13px;
150
+ font-weight: 700;
151
+ }
152
+ `, u = ({
153
+ themeState: e,
154
+ children: a
155
+ }) => /* @__PURE__ */ o(n, { theme: i(e), children: a }), m = {
156
+ padding: 20,
157
+ borderRadius: 20,
158
+ background: "var(--jigowatts-color-surface, white)",
159
+ boxShadow: "0 20px 50px rgba(15, 23, 42, 0.08)"
160
+ };
161
+ export {
162
+ u as ThemeStoryProvider,
163
+ i as createThemeOptions,
164
+ p as defaultPaletteThemeState,
165
+ l as defaultSemanticThemeState,
166
+ r as defaultThemeState,
167
+ s as themeArgTypesPalette,
168
+ x as themeArgTypesSemantic,
169
+ m as themeCardStyle,
170
+ y as themePreviewStyles
171
+ };
172
+ //# sourceMappingURL=themeStoryUtils.es.js.map