@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.
- package/AppRoot/Renderar.js.map +1 -1
- package/AppRoot/Renderar.mjs.map +1 -1
- package/AppRoot/index.js.map +1 -1
- package/AppRoot/index.mjs.map +1 -1
- package/Tag/cssPropList.js.map +1 -1
- package/Tag/cssPropList.mjs.map +1 -1
- package/Tag/index.js.map +1 -1
- package/Tag/index.mjs.map +1 -1
- package/Tag/useTagProps.js +1 -1
- package/Tag/useTagProps.js.map +1 -1
- package/Tag/useTagProps.mjs +1 -1
- package/Tag/useTagProps.mjs.map +1 -1
- package/Transition/index.js.map +1 -1
- package/Transition/index.mjs.map +1 -1
- package/Transition/variants.js.map +1 -1
- package/Transition/variants.mjs.map +1 -1
- package/breakpoint/BreakpointProvider.js.map +1 -1
- package/breakpoint/BreakpointProvider.mjs.map +1 -1
- package/breakpoint/useBreakpoint.js.map +1 -1
- package/breakpoint/useBreakpoint.mjs.map +1 -1
- package/breakpoint/useBreakpointProps.js.map +1 -1
- package/breakpoint/useBreakpointProps.mjs.map +1 -1
- package/css/aliases.js.map +1 -1
- package/css/aliases.mjs.map +1 -1
- package/css/getProps.js +10 -24
- package/css/getProps.js.map +1 -1
- package/css/getProps.mjs +10 -24
- package/css/getProps.mjs.map +1 -1
- package/css/getValue.js +10 -11
- package/css/getValue.js.map +1 -1
- package/css/getValue.mjs +10 -11
- package/css/getValue.mjs.map +1 -1
- package/css/index.js.map +1 -1
- package/css/index.mjs.map +1 -1
- package/hooks/useAnimation.js.map +1 -1
- package/hooks/useAnimation.mjs.map +1 -1
- package/hooks/useColorTemplate.d.ts +8 -6
- package/hooks/useColorTemplate.js +42 -31
- package/hooks/useColorTemplate.js.map +1 -1
- package/hooks/useColorTemplate.mjs +42 -31
- package/hooks/useColorTemplate.mjs.map +1 -1
- package/hooks/useInterface.js.map +1 -1
- package/hooks/useInterface.mjs.map +1 -1
- package/hooks/usePortal.js.map +1 -1
- package/hooks/usePortal.mjs.map +1 -1
- package/hooks/useScrollbar.js.map +1 -1
- package/hooks/useScrollbar.mjs.map +1 -1
- package/index.d.ts +1 -2
- package/index.js +1 -1
- package/index.mjs +1 -1
- package/package.json +1 -1
- package/readme.md +109 -109
- package/theme/ThemeCssVars.js +1 -1
- package/theme/ThemeCssVars.js.map +1 -1
- package/theme/ThemeCssVars.mjs +1 -1
- package/theme/ThemeCssVars.mjs.map +1 -1
- package/theme/ThemeDefaultOptions.js +84 -8
- package/theme/ThemeDefaultOptions.js.map +1 -1
- package/theme/ThemeDefaultOptions.mjs +84 -8
- package/theme/ThemeDefaultOptions.mjs.map +1 -1
- package/theme/ThemeProvider.js +2 -2
- package/theme/ThemeProvider.js.map +1 -1
- package/theme/ThemeProvider.mjs +2 -2
- package/theme/ThemeProvider.mjs.map +1 -1
- package/theme/core.js.map +1 -1
- package/theme/core.mjs.map +1 -1
- package/theme/createTheme.js +9 -15
- package/theme/createTheme.js.map +1 -1
- package/theme/createTheme.mjs +9 -15
- package/theme/createTheme.mjs.map +1 -1
- package/theme/createThemeSwitcher.js.map +1 -1
- package/theme/createThemeSwitcher.mjs.map +1 -1
- package/theme/index.js.map +1 -1
- package/theme/index.mjs.map +1 -1
- package/theme/types.d.ts +35 -35
- package/theme/createColorScale.d.ts +0 -17
- package/theme/createColorScale.js +0 -55
- package/theme/createColorScale.js.map +0 -1
- package/theme/createColorScale.mjs +0 -55
- 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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"}
|