@xanui/core 1.3.12 → 1.3.14

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 (102) hide show
  1. package/AppRoot/AppRootProvider.cjs.map +1 -1
  2. package/AppRoot/AppRootProvider.js.map +1 -1
  3. package/AppRoot/Renderar.cjs.map +1 -1
  4. package/AppRoot/Renderar.js.map +1 -1
  5. package/AppRoot/index.cjs +2 -2
  6. package/AppRoot/index.cjs.map +1 -1
  7. package/AppRoot/index.js +2 -2
  8. package/AppRoot/index.js.map +1 -1
  9. package/Document/index.cjs.map +1 -1
  10. package/Document/index.js.map +1 -1
  11. package/Iframe/index.cjs.map +1 -1
  12. package/Iframe/index.js.map +1 -1
  13. package/Portal/index.cjs.map +1 -1
  14. package/Portal/index.js.map +1 -1
  15. package/Tag/ServerStyleTag.cjs.map +1 -1
  16. package/Tag/ServerStyleTag.js.map +1 -1
  17. package/Tag/cssPropList.cjs.map +1 -1
  18. package/Tag/cssPropList.js.map +1 -1
  19. package/Tag/index.cjs.map +1 -1
  20. package/Tag/index.js.map +1 -1
  21. package/Tag/useTagProps.cjs.map +1 -1
  22. package/Tag/useTagProps.js.map +1 -1
  23. package/Transition/index.cjs.map +1 -1
  24. package/Transition/index.js.map +1 -1
  25. package/Transition/variants.cjs.map +1 -1
  26. package/Transition/variants.js.map +1 -1
  27. package/animate/easing.cjs.map +1 -1
  28. package/animate/easing.js.map +1 -1
  29. package/animate/index.cjs.map +1 -1
  30. package/animate/index.js.map +1 -1
  31. package/breakpoint/BreakpointProvider.cjs.map +1 -1
  32. package/breakpoint/BreakpointProvider.js.map +1 -1
  33. package/breakpoint/useBreakpoint.cjs.map +1 -1
  34. package/breakpoint/useBreakpoint.js.map +1 -1
  35. package/breakpoint/useBreakpointProps.cjs.map +1 -1
  36. package/breakpoint/useBreakpointProps.js.map +1 -1
  37. package/cookie.cjs.map +1 -1
  38. package/cookie.js.map +1 -1
  39. package/css/CSSCacheProvider.cjs.map +1 -1
  40. package/css/CSSCacheProvider.js.map +1 -1
  41. package/css/aliases.cjs.map +1 -1
  42. package/css/aliases.js.map +1 -1
  43. package/css/getProps.cjs +1 -1
  44. package/css/getProps.cjs.map +1 -1
  45. package/css/getProps.js +1 -1
  46. package/css/getProps.js.map +1 -1
  47. package/css/getValue.cjs +7 -7
  48. package/css/getValue.cjs.map +1 -1
  49. package/css/getValue.js +7 -7
  50. package/css/getValue.js.map +1 -1
  51. package/css/index.cjs.map +1 -1
  52. package/css/index.js.map +1 -1
  53. package/hooks/useColorTemplate.cjs +10 -10
  54. package/hooks/useColorTemplate.cjs.map +1 -1
  55. package/hooks/useColorTemplate.js +10 -10
  56. package/hooks/useColorTemplate.js.map +1 -1
  57. package/hooks/useInView.cjs +32 -0
  58. package/hooks/useInView.cjs.map +1 -0
  59. package/hooks/useInView.d.ts +15 -0
  60. package/hooks/useInView.js +30 -0
  61. package/hooks/useInView.js.map +1 -0
  62. package/hooks/useInterface.cjs.map +1 -1
  63. package/hooks/useInterface.js.map +1 -1
  64. package/hooks/useMergeRefs.cjs.map +1 -1
  65. package/hooks/useMergeRefs.js.map +1 -1
  66. package/hooks/useTransition.cjs.map +1 -1
  67. package/hooks/useTransition.js.map +1 -1
  68. package/hooks/useTransitionGroup.cjs.map +1 -1
  69. package/hooks/useTransitionGroup.js.map +1 -1
  70. package/index.cjs +10 -0
  71. package/index.cjs.map +1 -1
  72. package/index.d.ts +3 -2
  73. package/index.js +2 -1
  74. package/index.js.map +1 -1
  75. package/package.json +1 -1
  76. package/readme.md +109 -109
  77. package/theme/ThemeCssVars.cjs +4 -4
  78. package/theme/ThemeCssVars.cjs.map +1 -1
  79. package/theme/ThemeCssVars.js +4 -4
  80. package/theme/ThemeCssVars.js.map +1 -1
  81. package/theme/ThemeDefaultOptions.cjs +19 -18
  82. package/theme/ThemeDefaultOptions.cjs.map +1 -1
  83. package/theme/ThemeDefaultOptions.js +19 -18
  84. package/theme/ThemeDefaultOptions.js.map +1 -1
  85. package/theme/ThemeProvider.cjs +4 -4
  86. package/theme/ThemeProvider.cjs.map +1 -1
  87. package/theme/ThemeProvider.js +4 -4
  88. package/theme/ThemeProvider.js.map +1 -1
  89. package/theme/core.cjs +14 -4
  90. package/theme/core.cjs.map +1 -1
  91. package/theme/core.d.ts +9 -1
  92. package/theme/core.js +15 -5
  93. package/theme/core.js.map +1 -1
  94. package/theme/index.cjs +8 -0
  95. package/theme/index.cjs.map +1 -1
  96. package/theme/index.js +1 -1
  97. package/theme/index.js.map +1 -1
  98. package/theme/oklch.cjs +89 -89
  99. package/theme/oklch.cjs.map +1 -1
  100. package/theme/oklch.js +89 -89
  101. package/theme/oklch.js.map +1 -1
  102. package/theme/types.d.ts +6 -6
package/theme/oklch.js CHANGED
@@ -66,119 +66,119 @@ function formatOklch(color, alpha = 1) {
66
66
  function clamp(v, min = 0, max = 1) {
67
67
  return Math.min(max, Math.max(min, v));
68
68
  }
69
- function createDarkThemePalette(input) {
70
- const base = toOKLCH(input);
71
- const isNeutral = base.c < 0.03;
72
- const isDarkEnough = base.l < 0.2;
73
- const isNearBlack = isNeutral && isDarkEnough;
74
- const safeC = Math.min(base.c, 0.22);
75
- const main = {
76
- l: base.l,
77
- c: safeC,
69
+ const SCALE = {
70
+ subtle: 0.18,
71
+ surface: 0.09,
72
+ elevated: -0.1,
73
+ emphasis: -0.18
74
+ };
75
+ function shift(base, amount) {
76
+ return {
77
+ l: clamp(base.l + amount),
78
+ c: base.c,
78
79
  h: base.h
79
80
  };
80
- if (isNearBlack) {
81
- const neutralHue = 0;
82
- const safeC = Math.min(base.c, 0.25);
83
- const step = (i) => {
84
- const offset = (i - 3) * 0.09;
85
- const l = clamp(base.l + offset);
86
- return { l, c: safeC, h: base.h };
87
- };
88
- return {
89
- main: formatOklch(main),
90
- light: formatOklch(step(3.5)),
91
- lighter: formatOklch(step(4.5)),
92
- dark: formatOklch(step(2.5)),
93
- darker: formatOklch(step(1.5)),
94
- contrast: formatOklch({ l: 0.96, c: 0, h: neutralHue }),
95
- muted: formatOklch({ l: 0.85, c: 0, h: neutralHue }),
96
- divider: formatOklch({
97
- l: 0.3,
98
- c: 0,
99
- h: 0
100
- }),
101
- ghost: formatOklch({ l: 0.96, c: 0, h: neutralHue }, 0.16)
102
- };
103
- }
104
- return createPalette(input, "dark");
81
+ }
82
+ function createDarkThemePalette(input) {
83
+ const raw = toOKLCH(input);
84
+ const base = {
85
+ l: clamp(raw.l, 0.05, 0.95),
86
+ c: Math.min(raw.c, 0.22),
87
+ h: raw.h,
88
+ };
89
+ base.c;
90
+ return {
91
+ base: formatOklch(base),
92
+ surface: formatOklch(shift(base, SCALE.surface)),
93
+ subtle: formatOklch(shift(base, SCALE.subtle)),
94
+ elevated: formatOklch(shift(base, SCALE.elevated)),
95
+ emphasis: formatOklch(shift(base, SCALE.emphasis)),
96
+ contrast: formatOklch({
97
+ l: 0.94,
98
+ c: 0.01,
99
+ h: base.h
100
+ }),
101
+ muted: formatOklch({
102
+ l: 0.72,
103
+ c: 0.015,
104
+ h: base.h
105
+ }),
106
+ divider: formatOklch({
107
+ l: 0.40,
108
+ c: 0,
109
+ h: 0
110
+ }),
111
+ ghost: formatOklch(shift(base, SCALE.emphasis), 0.14)
112
+ };
105
113
  }
106
114
  function createLightThemePalette(input) {
107
- const base = toOKLCH(input);
108
- const isNearWhite = base.l > 0.98 && base.c < 0.01;
109
- const main = formatOklch(base);
110
- if (isNearWhite) {
111
- const neutralHue = 0;
112
- const safeC = Math.min(base.c, 0.25);
113
- const step = (i) => {
114
- const offset = (i - 3) * 0.09;
115
- const l = clamp(base.l - offset);
116
- return { l, c: safeC, h: base.h };
117
- };
118
- return {
119
- main,
120
- light: formatOklch(step(4)),
121
- lighter: formatOklch(step(3.5)),
122
- dark: formatOklch(step(5.5)),
123
- darker: formatOklch(step(6.5)),
124
- contrast: formatOklch({
125
- l: 0.12,
126
- c: 0,
127
- h: neutralHue
128
- }),
129
- muted: formatOklch({
130
- l: 0.50,
131
- c: 0,
132
- h: neutralHue
133
- }),
134
- divider: formatOklch({
135
- l: 0.80,
136
- c: 0,
137
- h: neutralHue
138
- }),
139
- ghost: formatOklch({ l: 0.12, c: 0, h: neutralHue }, 0.12)
140
- };
141
- }
142
- return createPalette(input, "light");
115
+ const raw = toOKLCH(input);
116
+ const base = {
117
+ l: clamp(raw.l, 0.05, 0.95),
118
+ c: Math.min(raw.c, 0.22),
119
+ h: raw.h,
120
+ };
121
+ return {
122
+ base: formatOklch(base),
123
+ surface: formatOklch(shift(base, SCALE.surface)),
124
+ subtle: formatOklch(shift(base, SCALE.subtle)),
125
+ elevated: formatOklch(shift(base, SCALE.elevated)),
126
+ emphasis: formatOklch(shift(base, SCALE.emphasis)),
127
+ contrast: formatOklch({
128
+ l: 0.20,
129
+ c: 0,
130
+ h: 0
131
+ }),
132
+ muted: formatOklch({
133
+ l: 0.50,
134
+ c: 0.015,
135
+ h: base.h
136
+ }),
137
+ divider: formatOklch({
138
+ l: 0.88,
139
+ c: 0,
140
+ h: 0
141
+ }),
142
+ ghost: formatOklch(shift(base, SCALE.emphasis), 0.2)
143
+ };
143
144
  }
144
145
  function createPalette(input, mode = "light") {
145
146
  const base = toOKLCH(input);
146
147
  const isDark = mode === "dark";
147
148
  const isLightColor = base.l > 0.75;
148
149
  const safeC = Math.min(base.c, 0.25);
149
- const step = (i) => {
150
- const offset = (i - 3) * 0.09;
151
- const l = isDark ? clamp(base.l + offset) : clamp(base.l - offset);
152
- return { l, c: safeC, h: base.h };
153
- };
154
150
  const main = {
155
151
  l: base.l,
156
152
  c: safeC,
157
153
  h: base.h
158
154
  };
159
155
  const contrast = {
160
- l: !isLightColor ? 0.96 : 0.12,
156
+ l: isLightColor ? 0.1 : 0.95,
161
157
  c: 0.02,
162
158
  h: base.h
163
159
  };
164
160
  return {
165
- main: formatOklch(main),
166
- light: formatOklch(step(isDark ? 4 : 2)),
167
- lighter: formatOklch(step(isDark ? 5 : 1)),
168
- dark: formatOklch(step(isDark ? 2 : 4)),
169
- darker: formatOklch(step(isDark ? 1 : 5)),
170
- ghost: formatOklch(main, isDark ? 0.12 : 0.18),
161
+ base: formatOklch(main),
162
+ surface: formatOklch(shift(base, SCALE.surface)),
163
+ subtle: formatOklch(shift(base, SCALE.subtle)),
164
+ elevated: formatOklch(shift(base, SCALE.elevated)),
165
+ emphasis: formatOklch(shift(base, SCALE.emphasis)),
166
+ ghost: formatOklch({
167
+ l: base.l,
168
+ c: safeC * 0.45,
169
+ h: base.h
170
+ }, isDark ? 0.14 : 0.18),
171
171
  contrast: formatOklch(contrast),
172
172
  muted: formatOklch({
173
- l: clamp(contrast.l - (isDark ? 0.05 : 0.025)),
174
- c: clamp(contrast.c - 0.01),
175
- h: contrast.h
173
+ l: isDark ? 0.72 : 0.50,
174
+ c: 0.015,
175
+ h: base.h
176
176
  }),
177
177
  divider: formatOklch({
178
- l: clamp(contrast.l - (isDark ? 0.65 : 0.2)),
179
- c: clamp(contrast.c + (isDark ? 0 : .02)),
180
- h: contrast.h
181
- }),
178
+ l: clamp(main.l + (isDark ? -0.15 : 0.15)),
179
+ c: Math.min(main.c * 0.15, 0.02),
180
+ h: main.h
181
+ })
182
182
  };
183
183
  }
184
184
  /* ---------------- PARSERS ---------------- */
@@ -1 +1 @@
1
- {"version":3,"file":"oklch.js","sources":["../../src/theme/oklch.ts"],"sourcesContent":["type OKLCH = {\n l: number;\n c: number;\n h: number;\n};\n\ntype ColorRole = {\n main: string;\n light: string;\n lighter: string;\n dark: string;\n darker: string;\n contrast: string;\n muted: string;\n divider: string;\n ghost: string;\n};\n\n/* ---------------- PARSERS ---------------- */\n\nexport function toOKLCH(input: string): OKLCH {\n if (input.startsWith(\"oklch\")) {\n const values = input.match(/[\\d.]+/g);\n if (!values || values.length < 3) {\n throw new Error(\"Invalid OKLCH format\");\n }\n\n let [l, c, h] = values.map(Number);\n\n return {\n l: l > 1 ? l / 100 : l,\n c,\n h,\n };\n }\n\n const rgb = parseToRgb(input);\n const lab = rgbToOklab(rgb.r, rgb.g, rgb.b);\n return oklabToOklch(lab.L, lab.a, lab.b);\n}\n\nfunction parseToRgb(input: string) {\n input = input.trim().toLowerCase();\n\n if (input.startsWith(\"#\")) return parseHex(input);\n if (input.startsWith(\"rgb\")) return parseRgb(input);\n if (input.startsWith(\"hsl\")) return parseHsl(input);\n\n throw new Error(\"Unsupported format\");\n}\n\n/* ---------------- CORE MATH ---------------- */\n\nfunction srgbToLinear(c: number) {\n return c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\n}\n\nfunction rgbToOklab(r: number, g: number, b: number) {\n r = srgbToLinear(r);\n g = srgbToLinear(g);\n b = srgbToLinear(b);\n\n const l = 0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b;\n const m = 0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b;\n const s = 0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b;\n\n const l_ = Math.cbrt(l);\n const m_ = Math.cbrt(m);\n const s_ = Math.cbrt(s);\n\n return {\n L: 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_,\n a: 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_,\n b: 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_,\n };\n}\n\nfunction oklabToOklch(L: number, a: number, b: number): OKLCH {\n const c = Math.sqrt(a * a + b * b);\n let h = Math.atan2(b, a) * (180 / Math.PI);\n\n if (h < 0) h += 360;\n\n return { l: L, c, h };\n}\n\n/* ---------------- FORMAT ---------------- */\n\nfunction formatOklch(color: OKLCH, alpha = 1): string {\n const l = (color.l * 100).toFixed(2) + \"%\";\n const c = color.c.toFixed(4);\n const h = color.h.toFixed(2);\n\n return alpha === 1\n ? `oklch(${l} ${c} ${h})`\n : `oklch(${l} ${c} ${h} / ${alpha})`;\n}\n\n/* ---------------- UTILS ---------------- */\n\nfunction clamp(v: number, min = 0, max = 1) {\n return Math.min(max, Math.max(min, v));\n}\n\nexport function createDarkThemePalette(input: string): ColorRole {\n const base = toOKLCH(input);\n\n const isNeutral = base.c < 0.03;\n const isDarkEnough = base.l < 0.2;\n const isNearBlack = isNeutral && isDarkEnough;\n const safeC = Math.min(base.c, 0.22);\n\n const main: OKLCH = {\n l: base.l,\n c: safeC,\n h: base.h\n };\n\n if (isNearBlack) {\n const neutralHue = 0;\n const safeC = Math.min(base.c, 0.25);\n\n const step = (i: number): OKLCH => {\n const offset = (i - 3) * 0.09;\n const l = clamp(base.l + offset)\n return { l, c: safeC, h: base.h };\n };\n\n return {\n main: formatOklch(main),\n light: formatOklch(step(3.5)),\n lighter: formatOklch(step(4.5)),\n dark: formatOklch(step(2.5)),\n darker: formatOklch(step(1.5)),\n contrast: formatOklch({ l: 0.96, c: 0, h: neutralHue }),\n muted: formatOklch({ l: 0.85, c: 0, h: neutralHue }),\n divider: formatOklch({\n l: 0.3,\n c: 0,\n h: 0\n }),\n ghost: formatOklch({ l: 0.96, c: 0, h: neutralHue }, 0.16)\n };\n }\n\n return createPalette(input, \"dark\")\n}\n\nexport function createLightThemePalette(input: string): ColorRole {\n const base = toOKLCH(input);\n\n const isNearWhite = base.l > 0.98 && base.c < 0.01;\n const main = formatOklch(base);\n if (isNearWhite) {\n const neutralHue = 0;\n const safeC = Math.min(base.c, 0.25);\n\n const step = (i: number): OKLCH => {\n const offset = (i - 3) * 0.09;\n const l = clamp(base.l - offset);\n return { l, c: safeC, h: base.h };\n };\n\n return {\n main,\n light: formatOklch(step(4)),\n lighter: formatOklch(step(3.5)),\n dark: formatOklch(step(5.5)),\n darker: formatOklch(step(6.5)),\n contrast: formatOklch({\n l: 0.12,\n c: 0,\n h: neutralHue\n }),\n muted: formatOklch({\n l: 0.50,\n c: 0,\n h: neutralHue\n }),\n divider: formatOklch({\n l: 0.80,\n c: 0,\n h: neutralHue\n }),\n ghost: formatOklch(\n { l: 0.12, c: 0, h: neutralHue },\n 0.12\n )\n };\n }\n\n return createPalette(input, \"light\");\n}\n\nexport function createPalette(input: string, mode: \"light\" | \"dark\" = \"light\"): ColorRole {\n const base = toOKLCH(input);\n const isDark = mode === \"dark\";\n const isLightColor = base.l > 0.75;\n const safeC = Math.min(base.c, 0.25);\n\n const step = (i: number): OKLCH => {\n const offset = (i - 3) * 0.09;\n const l = isDark ? clamp(base.l + offset) : clamp(base.l - offset);\n return { l, c: safeC, h: base.h };\n };\n\n const main: OKLCH = {\n l: base.l,\n c: safeC,\n h: base.h\n };\n\n const contrast = {\n l: !isLightColor ? 0.96 : 0.12,\n c: 0.02,\n h: base.h\n }\n\n return {\n main: formatOklch(main),\n light: formatOklch(step(isDark ? 4 : 2)),\n lighter: formatOklch(step(isDark ? 5 : 1)),\n dark: formatOklch(step(isDark ? 2 : 4)),\n darker: formatOklch(step(isDark ? 1 : 5)),\n ghost: formatOklch(main, isDark ? 0.12 : 0.18),\n\n contrast: formatOklch(contrast),\n\n muted: formatOklch({\n l: clamp(contrast.l - (isDark ? 0.05 : 0.025)),\n c: clamp(contrast.c - 0.01),\n h: contrast.h\n }),\n\n divider: formatOklch({\n l: clamp(contrast.l - (isDark ? 0.65 : 0.2)),\n c: clamp(contrast.c + (isDark ? 0 : .02)),\n h: contrast.h\n }),\n };\n}\n/* ---------------- PARSERS ---------------- */\n\nfunction parseHex(hex: string) {\n hex = hex.replace(\"#\", \"\").trim();\n\n if (hex.length === 3) {\n hex = hex.split(\"\").map(c => c + c).join(\"\");\n }\n\n const num = parseInt(hex, 16);\n\n return {\n r: ((num >> 16) & 255) / 255,\n g: ((num >> 8) & 255) / 255,\n b: (num & 255) / 255,\n };\n}\n\nfunction parseRgb(input: string) {\n const values = input.match(/[\\d.]+/g);\n if (!values || values.length < 3) {\n throw new Error(\"Invalid RGB format\");\n }\n\n const [r, g, b] = values.map(Number);\n\n return {\n r: r / 255,\n g: g / 255,\n b: b / 255,\n };\n}\n\nfunction parseHsl(input: string) {\n const values = input.match(/[\\d.]+/g);\n if (!values || values.length < 3) {\n throw new Error(\"Invalid HSL format\");\n }\n\n let [h, s, l] = values.map(Number);\n\n h /= 360;\n s /= 100;\n l /= 100;\n\n const hue2rgb = (p: number, q: number, t: number) => {\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n };\n\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n\n return {\n r: hue2rgb(p, q, h + 1 / 3),\n g: hue2rgb(p, q, h),\n b: hue2rgb(p, q, h - 1 / 3),\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oklch.js","sources":["../../src/theme/oklch.ts"],"sourcesContent":["type OKLCH = {\r\n l: number;\r\n c: number;\r\n h: number;\r\n};\r\n\r\ntype ColorRole = {\r\n base: string;\r\n surface: string;\r\n subtle: string;\r\n elevated: string;\r\n emphasis: string;\r\n contrast: string;\r\n muted: string;\r\n ghost: string;\r\n divider: string;\r\n};\r\n\r\n/* ---------------- PARSERS ---------------- */\r\n\r\nexport function toOKLCH(input: string): OKLCH {\r\n if (input.startsWith(\"oklch\")) {\r\n const values = input.match(/[\\d.]+/g);\r\n if (!values || values.length < 3) {\r\n throw new Error(\"Invalid OKLCH format\");\r\n }\r\n\r\n let [l, c, h] = values.map(Number);\r\n\r\n return {\r\n l: l > 1 ? l / 100 : l,\r\n c,\r\n h,\r\n };\r\n }\r\n\r\n const rgb = parseToRgb(input);\r\n const lab = rgbToOklab(rgb.r, rgb.g, rgb.b);\r\n return oklabToOklch(lab.L, lab.a, lab.b);\r\n}\r\n\r\nfunction parseToRgb(input: string) {\r\n input = input.trim().toLowerCase();\r\n\r\n if (input.startsWith(\"#\")) return parseHex(input);\r\n if (input.startsWith(\"rgb\")) return parseRgb(input);\r\n if (input.startsWith(\"hsl\")) return parseHsl(input);\r\n\r\n throw new Error(\"Unsupported format\");\r\n}\r\n\r\n/* ---------------- CORE MATH ---------------- */\r\n\r\nfunction srgbToLinear(c: number) {\r\n return c <= 0.04045 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4);\r\n}\r\n\r\nfunction rgbToOklab(r: number, g: number, b: number) {\r\n r = srgbToLinear(r);\r\n g = srgbToLinear(g);\r\n b = srgbToLinear(b);\r\n\r\n const l = 0.4122214708 * r + 0.5363325363 * g + 0.0514459929 * b;\r\n const m = 0.2119034982 * r + 0.6806995451 * g + 0.1073969566 * b;\r\n const s = 0.0883024619 * r + 0.2817188376 * g + 0.6299787005 * b;\r\n\r\n const l_ = Math.cbrt(l);\r\n const m_ = Math.cbrt(m);\r\n const s_ = Math.cbrt(s);\r\n\r\n return {\r\n L: 0.2104542553 * l_ + 0.793617785 * m_ - 0.0040720468 * s_,\r\n a: 1.9779984951 * l_ - 2.428592205 * m_ + 0.4505937099 * s_,\r\n b: 0.0259040371 * l_ + 0.7827717662 * m_ - 0.808675766 * s_,\r\n };\r\n}\r\n\r\nfunction oklabToOklch(L: number, a: number, b: number): OKLCH {\r\n const c = Math.sqrt(a * a + b * b);\r\n let h = Math.atan2(b, a) * (180 / Math.PI);\r\n\r\n if (h < 0) h += 360;\r\n\r\n return { l: L, c, h };\r\n}\r\n\r\n/* ---------------- FORMAT ---------------- */\r\n\r\nfunction formatOklch(color: OKLCH, alpha = 1): string {\r\n const l = (color.l * 100).toFixed(2) + \"%\";\r\n const c = color.c.toFixed(4);\r\n const h = color.h.toFixed(2);\r\n\r\n return alpha === 1\r\n ? `oklch(${l} ${c} ${h})`\r\n : `oklch(${l} ${c} ${h} / ${alpha})`;\r\n}\r\n\r\n/* ---------------- UTILS ---------------- */\r\n\r\nfunction clamp(v: number, min = 0, max = 1) {\r\n return Math.min(max, Math.max(min, v));\r\n}\r\n\r\n\r\nconst SCALE = {\r\n subtle: 0.18,\r\n surface: 0.09,\r\n elevated: -0.10,\r\n emphasis: -0.18\r\n}\r\n\r\nfunction shift(base: OKLCH, amount: number): OKLCH {\r\n return {\r\n l: clamp(base.l + amount),\r\n c: base.c,\r\n h: base.h\r\n };\r\n}\r\n\r\n\r\nexport function createDarkThemePalette(input: string): ColorRole {\r\n const raw = toOKLCH(input);\r\n\r\n const base: OKLCH = {\r\n l: clamp(raw.l, 0.05, 0.95),\r\n c: Math.min(raw.c, 0.22),\r\n h: raw.h,\r\n };\r\n\r\n const safeC = base.c;\r\n\r\n return {\r\n base: formatOklch(base),\r\n\r\n surface: formatOklch(shift(base, SCALE.surface)),\r\n subtle: formatOklch(shift(base, SCALE.subtle)),\r\n\r\n elevated: formatOklch(shift(base, SCALE.elevated)),\r\n emphasis: formatOklch(shift(base, SCALE.emphasis)),\r\n\r\n contrast: formatOklch({\r\n l: 0.94,\r\n c: 0.01,\r\n h: base.h\r\n }),\r\n\r\n muted: formatOklch({\r\n l: 0.72,\r\n c: 0.015,\r\n h: base.h\r\n }),\r\n\r\n divider: formatOklch({\r\n l: 0.40,\r\n c: 0,\r\n h: 0\r\n }),\r\n\r\n ghost: formatOklch(shift(base, SCALE.emphasis), 0.14)\r\n };\r\n}\r\n\r\nexport function createLightThemePalette(input: string): ColorRole {\r\n const raw = toOKLCH(input);\r\n\r\n const base: OKLCH = {\r\n l: clamp(raw.l, 0.05, 0.95),\r\n c: Math.min(raw.c, 0.22),\r\n h: raw.h,\r\n };\r\n\r\n return {\r\n base: formatOklch(base),\r\n\r\n surface: formatOklch(shift(base, SCALE.surface)),\r\n subtle: formatOklch(shift(base, SCALE.subtle)),\r\n\r\n elevated: formatOklch(shift(base, SCALE.elevated)),\r\n emphasis: formatOklch(shift(base, SCALE.emphasis)),\r\n\r\n contrast: formatOklch({\r\n l: 0.20,\r\n c: 0,\r\n h: 0\r\n }),\r\n\r\n muted: formatOklch({\r\n l: 0.50,\r\n c: 0.015,\r\n h: base.h\r\n }),\r\n\r\n divider: formatOklch({\r\n l: 0.88,\r\n c: 0,\r\n h: 0\r\n }),\r\n\r\n ghost: formatOklch(shift(base, SCALE.emphasis), 0.2)\r\n };\r\n}\r\n\r\nexport function createPalette(input: string, mode: \"light\" | \"dark\" = \"light\"): ColorRole {\r\n const base = toOKLCH(input);\r\n const isDark = mode === \"dark\";\r\n const isLightColor = base.l > 0.75;\r\n const safeC = Math.min(base.c, 0.25);\r\n\r\n const main: OKLCH = {\r\n l: base.l,\r\n c: safeC,\r\n h: base.h\r\n };\r\n\r\n const contrast = {\r\n l: isLightColor ? 0.1 : 0.95,\r\n c: 0.02,\r\n h: base.h\r\n }\r\n\r\n return {\r\n\r\n base: formatOklch(main),\r\n\r\n surface: formatOklch(shift(base, SCALE.surface)),\r\n subtle: formatOklch(shift(base, SCALE.subtle)),\r\n\r\n elevated: formatOklch(shift(base, SCALE.elevated)),\r\n emphasis: formatOklch(shift(base, SCALE.emphasis)),\r\n\r\n ghost: formatOklch({\r\n l: base.l,\r\n c: safeC * 0.45,\r\n h: base.h\r\n }, isDark ? 0.14 : 0.18),\r\n\r\n contrast: formatOklch(contrast),\r\n\r\n muted: formatOklch({\r\n l: isDark ? 0.72 : 0.50,\r\n c: 0.015,\r\n h: base.h\r\n }),\r\n\r\n divider: formatOklch({\r\n l: clamp(main.l + (isDark ? -0.15 : 0.15)),\r\n c: Math.min(main.c * 0.15, 0.02),\r\n h: main.h\r\n })\r\n };\r\n}\r\n/* ---------------- PARSERS ---------------- */\r\n\r\nfunction parseHex(hex: string) {\r\n hex = hex.replace(\"#\", \"\").trim();\r\n\r\n if (hex.length === 3) {\r\n hex = hex.split(\"\").map(c => c + c).join(\"\");\r\n }\r\n\r\n const num = parseInt(hex, 16);\r\n\r\n return {\r\n r: ((num >> 16) & 255) / 255,\r\n g: ((num >> 8) & 255) / 255,\r\n b: (num & 255) / 255,\r\n };\r\n}\r\n\r\nfunction parseRgb(input: string) {\r\n const values = input.match(/[\\d.]+/g);\r\n if (!values || values.length < 3) {\r\n throw new Error(\"Invalid RGB format\");\r\n }\r\n\r\n const [r, g, b] = values.map(Number);\r\n\r\n return {\r\n r: r / 255,\r\n g: g / 255,\r\n b: b / 255,\r\n };\r\n}\r\n\r\nfunction parseHsl(input: string) {\r\n const values = input.match(/[\\d.]+/g);\r\n if (!values || values.length < 3) {\r\n throw new Error(\"Invalid HSL format\");\r\n }\r\n\r\n let [h, s, l] = values.map(Number);\r\n\r\n h /= 360;\r\n s /= 100;\r\n l /= 100;\r\n\r\n const hue2rgb = (p: number, q: number, t: number) => {\r\n if (t < 0) t += 1;\r\n if (t > 1) t -= 1;\r\n if (t < 1 / 6) return p + (q - p) * 6 * t;\r\n if (t < 1 / 2) return q;\r\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\r\n return p;\r\n };\r\n\r\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\r\n const p = 2 * l - q;\r\n\r\n return {\r\n r: hue2rgb(p, q, h + 1 / 3),\r\n g: hue2rgb(p, q, h),\r\n b: hue2rgb(p, q, h - 1 / 3),\r\n };\r\n}\r\n"],"names":[],"mappings":"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"}
package/theme/types.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { GlobalCSS, BreakpointKeys } from '../css/types.js';
2
+ import { THEME_MODE } from './core.js';
2
3
 
3
4
  type ObjectType = {
4
5
  [key: string]: any;
@@ -9,7 +10,7 @@ type ThemeTypographyItem = {
9
10
  lineHeight: number;
10
11
  fontWeight: number;
11
12
  };
12
- type ThemeColorKeys = "surface" | "primary" | "accent" | "info" | "success" | "warning" | "danger";
13
+ type ThemeColorKeys = "default" | "primary" | "accent" | "info" | "success" | "warning" | "danger";
13
14
  type ThemeColorOption = {
14
15
  main: string;
15
16
  light: string;
@@ -21,10 +22,9 @@ type ThemeColorOption = {
21
22
  ghost: string;
22
23
  };
23
24
  type ThemeInterface<T = any> = (defaultProps: T, theme: ThemeOptions) => T;
24
- type ThemeMode = "dark" | "light";
25
25
  type ThemeOptions = {
26
26
  name: string;
27
- mode?: ThemeMode;
27
+ mode?: THEME_MODE;
28
28
  rtl: boolean;
29
29
  globalStyle: GlobalCSS;
30
30
  breakpoints: {
@@ -38,7 +38,7 @@ type ThemeOptions = {
38
38
  };
39
39
  type ThemeOptionInput = {
40
40
  name?: string;
41
- mode?: ThemeMode;
41
+ mode?: THEME_MODE;
42
42
  rtl?: boolean;
43
43
  globalStyle?: GlobalCSS;
44
44
  shadow?: string[];
@@ -47,6 +47,6 @@ type ThemeOptionInput = {
47
47
  typography?: Record<BaseTypographyKeys, ThemeTypographyItem>;
48
48
  };
49
49
  type TypographyRefTypes = "h1" | "h2" | "h3" | "h4" | "h5" | "h6" | "big" | "text" | "button" | "small";
50
- type ColorsRefTypes = "surface" | "surface.main" | "surface.light" | "surface.lighter" | "surface.dark" | "surface.darker" | "surface.contrast" | "surface.muted" | "surface.divider" | "surface.ghost" | "primary" | "primary.main" | "primary.light" | "primary.lighter" | "primary.dark" | "primary.darker" | "primary.contrast" | "primary.muted" | "primary.divider" | "primary.ghost" | "accent" | "accent.main" | "accent.light" | "accent.lighter" | "accent.dark" | "accent.darker" | "accent.contrast" | "accent.muted" | "accent.divider" | "accent.ghost" | "success" | "success.main" | "success.light" | "success.lighter" | "success.dark" | "success.darker" | "success.contrast" | "success.muted" | "success.divider" | "success.ghost" | "info" | "info.main" | "info.light" | "info.lighter" | "info.dark" | "info.darker" | "info.contrast" | "info.muted" | "info.divider" | "info.ghost" | "warning" | "warning.main" | "warning.light" | "warning.lighter" | "warning.dark" | "warning.darker" | "warning.contrast" | "warning.muted" | "warning.divider" | "warning.ghost" | "danger" | "danger.main" | "danger.light" | "danger.lighter" | "danger.dark" | "danger.darker" | "danger.contrast" | "danger.muted" | "danger.divider" | "danger.ghost";
50
+ type ColorsRefTypes = "default" | "default.base" | "default.surface" | "default.subtle" | "default.elevated" | "default.emphasis" | "default.contrast" | "default.muted" | "default.divider" | "default.ghost" | "primary" | "primary.base" | "primary.surface" | "primary.subtle" | "primary.elevated" | "primary.emphasis" | "primary.contrast" | "primary.muted" | "primary.divider" | "primary.ghost" | "accent" | "accent.base" | "accent.surface" | "accent.subtle" | "accent.elevated" | "accent.emphasis" | "accent.contrast" | "accent.muted" | "accent.divider" | "accent.ghost" | "success" | "success.base" | "success.surface" | "success.subtle" | "success.elevated" | "success.emphasis" | "success.contrast" | "success.muted" | "success.divider" | "success.ghost" | "info" | "info.base" | "info.surface" | "info.subtle" | "info.elevated" | "info.emphasis" | "info.contrast" | "info.muted" | "info.divider" | "info.ghost" | "warning" | "warning.base" | "warning.surface" | "warning.subtle" | "warning.elevated" | "warning.emphasis" | "warning.contrast" | "warning.muted" | "warning.divider" | "warning.ghost" | "danger" | "danger.base" | "danger.surface" | "danger.subtle" | "danger.elevated" | "danger.emphasis" | "danger.contrast" | "danger.muted" | "danger.divider" | "danger.ghost";
51
51
 
52
- export type { BaseTypographyKeys, ColorsRefTypes, ObjectType, ThemeColorKeys, ThemeColorOption, ThemeInterface, ThemeMode, ThemeOptionInput, ThemeOptions, ThemeTypographyItem, TypographyRefTypes };
52
+ export type { BaseTypographyKeys, ColorsRefTypes, ObjectType, ThemeColorKeys, ThemeColorOption, ThemeInterface, ThemeOptionInput, ThemeOptions, ThemeTypographyItem, TypographyRefTypes };