@xanui/core 1.2.8 → 1.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/AppRoot/Renderar.js.map +1 -1
  2. package/AppRoot/Renderar.mjs.map +1 -1
  3. package/AppRoot/index.js.map +1 -1
  4. package/AppRoot/index.mjs.map +1 -1
  5. package/Tag/cssPropList.js.map +1 -1
  6. package/Tag/cssPropList.mjs.map +1 -1
  7. package/Tag/index.js.map +1 -1
  8. package/Tag/index.mjs.map +1 -1
  9. package/Tag/useTagProps.js +1 -1
  10. package/Tag/useTagProps.js.map +1 -1
  11. package/Tag/useTagProps.mjs +1 -1
  12. package/Tag/useTagProps.mjs.map +1 -1
  13. package/Transition/index.js.map +1 -1
  14. package/Transition/index.mjs.map +1 -1
  15. package/Transition/variants.js.map +1 -1
  16. package/Transition/variants.mjs.map +1 -1
  17. package/breakpoint/BreakpointProvider.js.map +1 -1
  18. package/breakpoint/BreakpointProvider.mjs.map +1 -1
  19. package/breakpoint/useBreakpoint.js.map +1 -1
  20. package/breakpoint/useBreakpoint.mjs.map +1 -1
  21. package/breakpoint/useBreakpointProps.js.map +1 -1
  22. package/breakpoint/useBreakpointProps.mjs.map +1 -1
  23. package/css/aliases.js.map +1 -1
  24. package/css/aliases.mjs.map +1 -1
  25. package/css/getProps.js +10 -24
  26. package/css/getProps.js.map +1 -1
  27. package/css/getProps.mjs +10 -24
  28. package/css/getProps.mjs.map +1 -1
  29. package/css/getValue.js +10 -11
  30. package/css/getValue.js.map +1 -1
  31. package/css/getValue.mjs +10 -11
  32. package/css/getValue.mjs.map +1 -1
  33. package/css/index.js.map +1 -1
  34. package/css/index.mjs.map +1 -1
  35. package/hooks/useAnimation.js.map +1 -1
  36. package/hooks/useAnimation.mjs.map +1 -1
  37. package/hooks/useColorTemplate.d.ts +8 -6
  38. package/hooks/useColorTemplate.js +42 -31
  39. package/hooks/useColorTemplate.js.map +1 -1
  40. package/hooks/useColorTemplate.mjs +42 -31
  41. package/hooks/useColorTemplate.mjs.map +1 -1
  42. package/hooks/useInterface.js.map +1 -1
  43. package/hooks/useInterface.mjs.map +1 -1
  44. package/hooks/usePortal.js.map +1 -1
  45. package/hooks/usePortal.mjs.map +1 -1
  46. package/hooks/useScrollbar.js.map +1 -1
  47. package/hooks/useScrollbar.mjs.map +1 -1
  48. package/index.d.ts +1 -2
  49. package/index.js +1 -1
  50. package/index.mjs +1 -1
  51. package/package.json +1 -1
  52. package/readme.md +109 -109
  53. package/theme/ThemeCssVars.js +1 -1
  54. package/theme/ThemeCssVars.js.map +1 -1
  55. package/theme/ThemeCssVars.mjs +1 -1
  56. package/theme/ThemeCssVars.mjs.map +1 -1
  57. package/theme/ThemeDefaultOptions.js +84 -8
  58. package/theme/ThemeDefaultOptions.js.map +1 -1
  59. package/theme/ThemeDefaultOptions.mjs +84 -8
  60. package/theme/ThemeDefaultOptions.mjs.map +1 -1
  61. package/theme/ThemeProvider.js +2 -2
  62. package/theme/ThemeProvider.js.map +1 -1
  63. package/theme/ThemeProvider.mjs +2 -2
  64. package/theme/ThemeProvider.mjs.map +1 -1
  65. package/theme/core.js.map +1 -1
  66. package/theme/core.mjs.map +1 -1
  67. package/theme/createTheme.js +9 -15
  68. package/theme/createTheme.js.map +1 -1
  69. package/theme/createTheme.mjs +9 -15
  70. package/theme/createTheme.mjs.map +1 -1
  71. package/theme/createThemeSwitcher.js.map +1 -1
  72. package/theme/createThemeSwitcher.mjs.map +1 -1
  73. package/theme/index.js.map +1 -1
  74. package/theme/index.mjs.map +1 -1
  75. package/theme/types.d.ts +35 -35
  76. package/theme/createColorScale.d.ts +0 -17
  77. package/theme/createColorScale.js +0 -55
  78. package/theme/createColorScale.js.map +0 -1
  79. package/theme/createColorScale.mjs +0 -55
  80. package/theme/createColorScale.mjs.map +0 -1
@@ -1,55 +0,0 @@
1
- 'use strict';Object.defineProperty(exports,'__esModule',{value:true});function createColorScale(hex) {
2
- const clamp = (v) => Math.min(255, Math.max(0, Math.round(v)));
3
- const hexToRgb = (hex) => {
4
- let h = hex.replace("#", "");
5
- if (h.length === 3)
6
- h = h.split("").map(c => c + c).join("");
7
- const n = parseInt(h, 16);
8
- return { r: (n >> 16) & 255, g: (n >> 8) & 255, b: n & 255 };
9
- };
10
- const rgbToHex = ({ r, g, b }) => `#${[r, g, b].map(v => clamp(v).toString(16).padStart(2, "0")).join("")}`;
11
- const mix = (a, b, w) => ({
12
- r: clamp(a.r * (1 - w) + b.r * w),
13
- g: clamp(a.g * (1 - w) + b.g * w),
14
- b: clamp(a.b * (1 - w) + b.b * w),
15
- });
16
- const luminance = ({ r, g, b }) => (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
17
- const base = hexToRgb(hex);
18
- const lum = luminance(base);
19
- const isLight = lum > 0.6;
20
- const textRgb = isLight
21
- ? { r: 0, g: 0, b: 0 }
22
- : { r: 255, g: 255, b: 255 };
23
- // Determine mode
24
- let mode = "other";
25
- if (lum < 0.15)
26
- mode = "black";
27
- else if (lum > 0.9)
28
- mode = "white";
29
- let rgbW = { r: 255, g: 255, b: 255 };
30
- let rgbB = { r: 0, g: 0, b: 0 };
31
- let scale = {
32
- mode,
33
- // core
34
- base: rgbToHex(base),
35
- // lighter variants
36
- light: rgbToHex(mix(base, rgbW, 0.15)),
37
- lighter: rgbToHex(mix(base, rgbW, 0.35)),
38
- // darker variants
39
- dark: rgbToHex(mix(base, rgbB, 0.15)),
40
- darker: rgbToHex(mix(base, rgbB, 0.35)),
41
- // soft backgrounds
42
- soft: rgbToHex(mix(base, rgbW, 0.85)),
43
- softer: rgbToHex(mix(base, rgbW, 0.92)),
44
- // text colors
45
- text: isLight ? "#000000" : "#FFFFFF",
46
- subtext: rgbToHex(mix(textRgb, base, 0.35)), // muted but readable
47
- };
48
- if (mode === "white") {
49
- scale = Object.assign(Object.assign({}, scale), { light: rgbToHex(mix(base, rgbB, 0.20)), lighter: rgbToHex(mix(base, rgbB, 0.30)), dark: rgbToHex(mix(base, rgbB, 0.08)), darker: rgbToHex(mix(base, rgbB, 0.12)), soft: rgbToHex(mix(base, rgbB, 0.08)), softer: rgbToHex(mix(base, rgbB, 0.12)) });
50
- }
51
- else if (mode === "black") {
52
- scale = Object.assign(Object.assign({}, scale), { light: rgbToHex(mix(base, rgbW, 0.20)), lighter: rgbToHex(mix(base, rgbW, 0.30)), dark: rgbToHex(mix(base, rgbW, 0.08)), darker: rgbToHex(mix(base, rgbW, 0.12)), soft: rgbToHex(mix(base, rgbW, 0.08)), softer: rgbToHex(mix(base, rgbW, 0.12)) });
53
- }
54
- return scale;
55
- }exports.default=createColorScale;//# sourceMappingURL=createColorScale.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createColorScale.js","sources":["../../src/theme/createColorScale.ts"],"sourcesContent":["export type ColorScale = {\r\n mode: \"black\" | \"white\" | \"other\"; // semantic color mode\r\n base: string;\r\n light: string;\r\n lighter: string;\r\n dark: string;\r\n darker: string;\r\n soft: string;\r\n softer: string;\r\n divider: string;\r\n text: string;\r\n subtext: string;\r\n};\r\n\r\nfunction createColorScale(hex: string): ColorScale {\r\n type RGB = { r: number; g: number; b: number };\r\n\r\n const clamp = (v: number): number =>\r\n Math.min(255, Math.max(0, Math.round(v)));\r\n\r\n const hexToRgb = (hex: string): RGB => {\r\n let h = hex.replace(\"#\", \"\");\r\n if (h.length === 3) h = h.split(\"\").map(c => c + c).join(\"\");\r\n const n = parseInt(h, 16);\r\n return { r: (n >> 16) & 255, g: (n >> 8) & 255, b: n & 255 };\r\n };\r\n\r\n const rgbToHex = ({ r, g, b }: RGB): string =>\r\n `#${[r, g, b].map(v => clamp(v).toString(16).padStart(2, \"0\")).join(\"\")}`;\r\n\r\n const mix = (a: RGB, b: RGB, w: number): RGB => ({\r\n r: clamp(a.r * (1 - w) + b.r * w),\r\n g: clamp(a.g * (1 - w) + b.g * w),\r\n b: clamp(a.b * (1 - w) + b.b * w),\r\n });\r\n\r\n const luminance = ({ r, g, b }: RGB): number =>\r\n (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;\r\n\r\n const base = hexToRgb(hex);\r\n const lum = luminance(base);\r\n const isLight = lum > 0.6;\r\n\r\n const textRgb: RGB = isLight\r\n ? { r: 0, g: 0, b: 0 }\r\n : { r: 255, g: 255, b: 255 };\r\n\r\n // Determine mode\r\n let mode: \"black\" | \"white\" | \"other\" = \"other\";\r\n if (lum < 0.15) mode = \"black\";\r\n else if (lum > 0.9) mode = \"white\";\r\n\r\n let rgbW = { r: 255, g: 255, b: 255 }\r\n let rgbB = { r: 0, g: 0, b: 0 }\r\n\r\n let scale: any = {\r\n mode,\r\n\r\n // core\r\n base: rgbToHex(base),\r\n\r\n // lighter variants\r\n light: rgbToHex(mix(base, rgbW, 0.15)),\r\n lighter: rgbToHex(mix(base, rgbW, 0.35)),\r\n\r\n // darker variants\r\n dark: rgbToHex(mix(base, rgbB, 0.15)),\r\n darker: rgbToHex(mix(base, rgbB, 0.35)),\r\n\r\n // soft backgrounds\r\n soft: rgbToHex(mix(base, rgbW, 0.85)),\r\n softer: rgbToHex(mix(base, rgbW, 0.92)),\r\n\r\n // text colors\r\n text: isLight ? \"#000000\" : \"#FFFFFF\",\r\n subtext: rgbToHex(mix(textRgb, base, 0.35)), // muted but readable\r\n };\r\n\r\n if (mode === \"white\") {\r\n scale = {\r\n ...scale,\r\n\r\n light: rgbToHex(mix(base, rgbB, 0.20)),\r\n lighter: rgbToHex(mix(base, rgbB, 0.30)),\r\n\r\n dark: rgbToHex(mix(base, rgbB, 0.08)),\r\n darker: rgbToHex(mix(base, rgbB, 0.12)),\r\n\r\n soft: rgbToHex(mix(base, rgbB, 0.08)),\r\n softer: rgbToHex(mix(base, rgbB, 0.12)),\r\n\r\n }\r\n } else if (mode === \"black\") {\r\n scale = {\r\n ...scale,\r\n\r\n light: rgbToHex(mix(base, rgbW, 0.20)),\r\n lighter: rgbToHex(mix(base, rgbW, 0.30)),\r\n\r\n dark: rgbToHex(mix(base, rgbW, 0.08)),\r\n darker: rgbToHex(mix(base, rgbW, 0.12)),\r\n\r\n soft: rgbToHex(mix(base, rgbW, 0.08)),\r\n softer: rgbToHex(mix(base, rgbW, 0.12)),\r\n\r\n }\r\n }\r\n\r\n return scale\r\n}\r\n\r\nexport default createColorScale;\r\n"],"names":[],"mappings":"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"}
@@ -1,55 +0,0 @@
1
- function createColorScale(hex) {
2
- const clamp = (v) => Math.min(255, Math.max(0, Math.round(v)));
3
- const hexToRgb = (hex) => {
4
- let h = hex.replace("#", "");
5
- if (h.length === 3)
6
- h = h.split("").map(c => c + c).join("");
7
- const n = parseInt(h, 16);
8
- return { r: (n >> 16) & 255, g: (n >> 8) & 255, b: n & 255 };
9
- };
10
- const rgbToHex = ({ r, g, b }) => `#${[r, g, b].map(v => clamp(v).toString(16).padStart(2, "0")).join("")}`;
11
- const mix = (a, b, w) => ({
12
- r: clamp(a.r * (1 - w) + b.r * w),
13
- g: clamp(a.g * (1 - w) + b.g * w),
14
- b: clamp(a.b * (1 - w) + b.b * w),
15
- });
16
- const luminance = ({ r, g, b }) => (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;
17
- const base = hexToRgb(hex);
18
- const lum = luminance(base);
19
- const isLight = lum > 0.6;
20
- const textRgb = isLight
21
- ? { r: 0, g: 0, b: 0 }
22
- : { r: 255, g: 255, b: 255 };
23
- // Determine mode
24
- let mode = "other";
25
- if (lum < 0.15)
26
- mode = "black";
27
- else if (lum > 0.9)
28
- mode = "white";
29
- let rgbW = { r: 255, g: 255, b: 255 };
30
- let rgbB = { r: 0, g: 0, b: 0 };
31
- let scale = {
32
- mode,
33
- // core
34
- base: rgbToHex(base),
35
- // lighter variants
36
- light: rgbToHex(mix(base, rgbW, 0.15)),
37
- lighter: rgbToHex(mix(base, rgbW, 0.35)),
38
- // darker variants
39
- dark: rgbToHex(mix(base, rgbB, 0.15)),
40
- darker: rgbToHex(mix(base, rgbB, 0.35)),
41
- // soft backgrounds
42
- soft: rgbToHex(mix(base, rgbW, 0.85)),
43
- softer: rgbToHex(mix(base, rgbW, 0.92)),
44
- // text colors
45
- text: isLight ? "#000000" : "#FFFFFF",
46
- subtext: rgbToHex(mix(textRgb, base, 0.35)), // muted but readable
47
- };
48
- if (mode === "white") {
49
- scale = Object.assign(Object.assign({}, scale), { light: rgbToHex(mix(base, rgbB, 0.20)), lighter: rgbToHex(mix(base, rgbB, 0.30)), dark: rgbToHex(mix(base, rgbB, 0.08)), darker: rgbToHex(mix(base, rgbB, 0.12)), soft: rgbToHex(mix(base, rgbB, 0.08)), softer: rgbToHex(mix(base, rgbB, 0.12)) });
50
- }
51
- else if (mode === "black") {
52
- scale = Object.assign(Object.assign({}, scale), { light: rgbToHex(mix(base, rgbW, 0.20)), lighter: rgbToHex(mix(base, rgbW, 0.30)), dark: rgbToHex(mix(base, rgbW, 0.08)), darker: rgbToHex(mix(base, rgbW, 0.12)), soft: rgbToHex(mix(base, rgbW, 0.08)), softer: rgbToHex(mix(base, rgbW, 0.12)) });
53
- }
54
- return scale;
55
- }export{createColorScale as default};//# sourceMappingURL=createColorScale.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"createColorScale.mjs","sources":["../../src/theme/createColorScale.ts"],"sourcesContent":["export type ColorScale = {\r\n mode: \"black\" | \"white\" | \"other\"; // semantic color mode\r\n base: string;\r\n light: string;\r\n lighter: string;\r\n dark: string;\r\n darker: string;\r\n soft: string;\r\n softer: string;\r\n divider: string;\r\n text: string;\r\n subtext: string;\r\n};\r\n\r\nfunction createColorScale(hex: string): ColorScale {\r\n type RGB = { r: number; g: number; b: number };\r\n\r\n const clamp = (v: number): number =>\r\n Math.min(255, Math.max(0, Math.round(v)));\r\n\r\n const hexToRgb = (hex: string): RGB => {\r\n let h = hex.replace(\"#\", \"\");\r\n if (h.length === 3) h = h.split(\"\").map(c => c + c).join(\"\");\r\n const n = parseInt(h, 16);\r\n return { r: (n >> 16) & 255, g: (n >> 8) & 255, b: n & 255 };\r\n };\r\n\r\n const rgbToHex = ({ r, g, b }: RGB): string =>\r\n `#${[r, g, b].map(v => clamp(v).toString(16).padStart(2, \"0\")).join(\"\")}`;\r\n\r\n const mix = (a: RGB, b: RGB, w: number): RGB => ({\r\n r: clamp(a.r * (1 - w) + b.r * w),\r\n g: clamp(a.g * (1 - w) + b.g * w),\r\n b: clamp(a.b * (1 - w) + b.b * w),\r\n });\r\n\r\n const luminance = ({ r, g, b }: RGB): number =>\r\n (0.2126 * r + 0.7152 * g + 0.0722 * b) / 255;\r\n\r\n const base = hexToRgb(hex);\r\n const lum = luminance(base);\r\n const isLight = lum > 0.6;\r\n\r\n const textRgb: RGB = isLight\r\n ? { r: 0, g: 0, b: 0 }\r\n : { r: 255, g: 255, b: 255 };\r\n\r\n // Determine mode\r\n let mode: \"black\" | \"white\" | \"other\" = \"other\";\r\n if (lum < 0.15) mode = \"black\";\r\n else if (lum > 0.9) mode = \"white\";\r\n\r\n let rgbW = { r: 255, g: 255, b: 255 }\r\n let rgbB = { r: 0, g: 0, b: 0 }\r\n\r\n let scale: any = {\r\n mode,\r\n\r\n // core\r\n base: rgbToHex(base),\r\n\r\n // lighter variants\r\n light: rgbToHex(mix(base, rgbW, 0.15)),\r\n lighter: rgbToHex(mix(base, rgbW, 0.35)),\r\n\r\n // darker variants\r\n dark: rgbToHex(mix(base, rgbB, 0.15)),\r\n darker: rgbToHex(mix(base, rgbB, 0.35)),\r\n\r\n // soft backgrounds\r\n soft: rgbToHex(mix(base, rgbW, 0.85)),\r\n softer: rgbToHex(mix(base, rgbW, 0.92)),\r\n\r\n // text colors\r\n text: isLight ? \"#000000\" : \"#FFFFFF\",\r\n subtext: rgbToHex(mix(textRgb, base, 0.35)), // muted but readable\r\n };\r\n\r\n if (mode === \"white\") {\r\n scale = {\r\n ...scale,\r\n\r\n light: rgbToHex(mix(base, rgbB, 0.20)),\r\n lighter: rgbToHex(mix(base, rgbB, 0.30)),\r\n\r\n dark: rgbToHex(mix(base, rgbB, 0.08)),\r\n darker: rgbToHex(mix(base, rgbB, 0.12)),\r\n\r\n soft: rgbToHex(mix(base, rgbB, 0.08)),\r\n softer: rgbToHex(mix(base, rgbB, 0.12)),\r\n\r\n }\r\n } else if (mode === \"black\") {\r\n scale = {\r\n ...scale,\r\n\r\n light: rgbToHex(mix(base, rgbW, 0.20)),\r\n lighter: rgbToHex(mix(base, rgbW, 0.30)),\r\n\r\n dark: rgbToHex(mix(base, rgbW, 0.08)),\r\n darker: rgbToHex(mix(base, rgbW, 0.12)),\r\n\r\n soft: rgbToHex(mix(base, rgbW, 0.08)),\r\n softer: rgbToHex(mix(base, rgbW, 0.12)),\r\n\r\n }\r\n }\r\n\r\n return scale\r\n}\r\n\r\nexport default createColorScale;\r\n"],"names":[],"mappings":"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"}