@yamada-ui/utils 2.1.6 → 2.1.7-dev-20260926123523
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/README.md +1 -1
- package/dist/cjs/_virtual/_rolldown/runtime.cjs +1 -1
- package/dist/cjs/color.cjs +6 -10
- package/dist/cjs/color.cjs.map +1 -1
- package/dist/esm/color.js +6 -10
- package/dist/esm/color.js.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.types.d.ts +2 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -15,7 +15,7 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
15
15
|
}
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
|
|
19
19
|
value: mod,
|
|
20
20
|
enumerable: true
|
|
21
21
|
}) : target, mod));
|
package/dist/cjs/color.cjs
CHANGED
|
@@ -132,9 +132,7 @@ function parseToHsv(color, fallback) {
|
|
|
132
132
|
case g:
|
|
133
133
|
h = 60 * ((r - b) / delta) + 300;
|
|
134
134
|
break;
|
|
135
|
-
case b:
|
|
136
|
-
h = 60 * ((g - r) / delta) + 60;
|
|
137
|
-
break;
|
|
135
|
+
case b: h = 60 * ((g - r) / delta) + 60;
|
|
138
136
|
}
|
|
139
137
|
return [
|
|
140
138
|
h,
|
|
@@ -203,13 +201,11 @@ function hsvTo([h, s, v, a], fallback) {
|
|
|
203
201
|
v
|
|
204
202
|
];
|
|
205
203
|
break;
|
|
206
|
-
case 5:
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
];
|
|
212
|
-
break;
|
|
204
|
+
case 5: rgb = [
|
|
205
|
+
v,
|
|
206
|
+
p,
|
|
207
|
+
q
|
|
208
|
+
];
|
|
213
209
|
}
|
|
214
210
|
let color = `rgb(${rgb.map((v) => Math.round(v * 255)).join(", ")})`;
|
|
215
211
|
if (require_assertion.isNumber(a)) color = color.replace(/\)$/, `, ${a})`);
|
package/dist/cjs/color.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.cjs","names":["c","isNumber"],"sources":["../../src/color.ts"],"sourcesContent":["import * as c from \"color2k\"\nimport { isNumber } from \"./assertion\"\n\nexport type ColorFormat = \"hex\" | \"hexa\" | \"hsl\" | \"hsla\" | \"rgb\" | \"rgba\"\n\nexport const SEMANTIC_COLOR_SCHEMES = [\n \"mono\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"error\",\n \"link\",\n] as const\n\nexport const DEFAULT_COLOR_SCHEMES = [\n \"gray\",\n \"red\",\n \"rose\",\n \"pink\",\n \"flashy\",\n \"orange\",\n \"amber\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"emerald\",\n \"teal\",\n \"cyan\",\n \"sky\",\n \"blue\",\n \"indigo\",\n \"violet\",\n \"purple\",\n \"fuchsia\",\n] as const\n\nexport const COLOR_SCHEMES = [\n ...SEMANTIC_COLOR_SCHEMES,\n ...DEFAULT_COLOR_SCHEMES,\n]\n\nexport const TONES = [\n 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950,\n] as const\n\nexport function convertColor(\n color: string,\n fallback: string,\n): {\n (format: ColorFormat): string\n}\nexport function convertColor(\n color: string,\n fallback?: string,\n): {\n (format: ColorFormat): string | undefined\n}\nexport function convertColor(color: string, fallback?: string) {\n return function (format: ColorFormat) {\n try {\n const alpha = format.endsWith(\"a\")\n\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n if (format.startsWith(\"hex\")) {\n let hexa = c.toHex(color)\n\n if (alpha) {\n if (hexa.length === 7) hexa += \"ff\"\n } else {\n hexa = hexa.replace(/^#([0-9a-fA-F]{6})[0-9a-fA-F]{2}$/, \"#$1\")\n }\n\n return hexa\n } else if (format.startsWith(\"hsl\")) {\n let hsla = c.toHsla(color)\n\n if (!alpha) {\n hsla = hsla.replace(/hsla/, \"hsl\")\n hsla = hsla.replace(/,\\s*\\d+(\\.\\d+)?\\)$/, \")\")\n }\n\n return hsla\n } else {\n let rgba = c.toRgba(color)\n\n if (!alpha) {\n rgba = rgba.replace(/rgba/, \"rgb\")\n rgba = rgba.replace(/,\\s*\\d+(\\.\\d+)?\\)$/, \")\")\n }\n\n return rgba\n }\n } catch {\n if (fallback) return convertColor(fallback)(format)\n }\n }\n}\n\nexport function calcFormat(color: string): ColorFormat {\n if (color.startsWith(\"hsl\") || color.startsWith(\"rgb\"))\n return color.split(\"(\")[0] as ColorFormat\n else return color.length === 9 ? \"hexa\" : \"hex\"\n}\n\nexport function getAlpha(color: string) {\n return c.parseToRgba(color)[3]\n}\n\nexport function alphaToHex(a: number) {\n if (0 > a) a = 0\n if (1 < a) a = 1\n\n return Math.round(a * 255)\n .toString(16)\n .padStart(2, \"0\")\n}\n\nexport function parseToRgba(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToRgba(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToRgba(color: string, fallback?: string) {\n try {\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n return c.parseToRgba(color)\n } catch {\n if (fallback) return c.parseToRgba(fallback)\n }\n}\n\nexport function parseToHsla(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToHsla(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToHsla(color: string, fallback?: string) {\n try {\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n return c.parseToHsla(color)\n } catch {\n if (fallback) return c.parseToHsla(fallback)\n }\n}\n\nexport function parseToHsv(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToHsv(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToHsv(color: string, fallback?: string) {\n const rgba = parseToRgba(color, fallback)\n\n if (!rgba) return undefined\n\n let [r, g, b, a] = rgba\n\n r = r / 255\n g = g / 255\n b = b / 255\n\n const [min, max] = [Math.min(r, g, b), Math.max(r, g, b)]\n const delta = max - min\n\n let [h, v, s] = [0, max, max == 0 ? 0 : delta / max]\n\n switch (min) {\n case max:\n h = 0\n break\n\n case r:\n h = 60 * ((b - g) / delta) + 180\n break\n\n case g:\n h = 60 * ((r - b) / delta) + 300\n break\n\n case b:\n h = 60 * ((g - r) / delta) + 60\n break\n }\n\n return [h, s, v, a]\n}\n\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n return convertColor(c.rgba(r, g, b, a), fallback)(format)\n }\n}\n\nexport function hslaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function hslaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function hslaTo(\n [h, s, l, a]: [number, number, number, number],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n return convertColor(c.hsla(h, s, l, a), fallback)(format)\n }\n}\n\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n h = h / 60\n\n let rgb: [number, number, number] = [v, v, v]\n\n let i = Math.floor(h)\n let f = h - i\n let p = v * (1 - s)\n let q = v * (1 - s * f)\n let t = v * (1 - s * (1 - f))\n\n switch (i) {\n case 0:\n case 6:\n rgb = [v, t, p]\n break\n\n case 1:\n rgb = [q, v, p]\n break\n\n case 2:\n rgb = [p, v, t]\n break\n\n case 3:\n rgb = [p, q, v]\n break\n\n case 4:\n rgb = [t, p, v]\n break\n\n case 5:\n rgb = [v, p, q]\n break\n }\n\n let color = `rgb(${rgb.map((v) => Math.round(v * 255)).join(\", \")})`\n\n if (isNumber(a)) color = color.replace(/\\)$/, `, ${a})`)\n\n return convertColor(color, fallback)(format)\n }\n}\n\nexport function sameColor(\n color: string | undefined,\n comparison: string | undefined,\n) {\n if (!color) return false\n if (!comparison) return false\n\n const a = parseToRgba(color) ?? []\n const b = parseToRgba(comparison) ?? []\n\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3]\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"color.cjs","names":["c","isNumber"],"sources":["../../src/color.ts"],"sourcesContent":["import * as c from \"color2k\"\nimport { isNumber } from \"./assertion\"\n\nexport type ColorFormat = \"hex\" | \"hexa\" | \"hsl\" | \"hsla\" | \"rgb\" | \"rgba\"\n\nexport const SEMANTIC_COLOR_SCHEMES = [\n \"mono\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"error\",\n \"link\",\n] as const\n\nexport const DEFAULT_COLOR_SCHEMES = [\n \"gray\",\n \"red\",\n \"rose\",\n \"pink\",\n \"flashy\",\n \"orange\",\n \"amber\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"emerald\",\n \"teal\",\n \"cyan\",\n \"sky\",\n \"blue\",\n \"indigo\",\n \"violet\",\n \"purple\",\n \"fuchsia\",\n] as const\n\nexport const COLOR_SCHEMES = [\n ...SEMANTIC_COLOR_SCHEMES,\n ...DEFAULT_COLOR_SCHEMES,\n]\n\nexport const TONES = [\n 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950,\n] as const\n\nexport function convertColor(\n color: string,\n fallback: string,\n): {\n (format: ColorFormat): string\n}\nexport function convertColor(\n color: string,\n fallback?: string,\n): {\n (format: ColorFormat): string | undefined\n}\nexport function convertColor(color: string, fallback?: string) {\n return function (format: ColorFormat) {\n try {\n const alpha = format.endsWith(\"a\")\n\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n if (format.startsWith(\"hex\")) {\n let hexa = c.toHex(color)\n\n if (alpha) {\n if (hexa.length === 7) hexa += \"ff\"\n } else {\n hexa = hexa.replace(/^#([0-9a-fA-F]{6})[0-9a-fA-F]{2}$/, \"#$1\")\n }\n\n return hexa\n } else if (format.startsWith(\"hsl\")) {\n let hsla = c.toHsla(color)\n\n if (!alpha) {\n hsla = hsla.replace(/hsla/, \"hsl\")\n hsla = hsla.replace(/,\\s*\\d+(\\.\\d+)?\\)$/, \")\")\n }\n\n return hsla\n } else {\n let rgba = c.toRgba(color)\n\n if (!alpha) {\n rgba = rgba.replace(/rgba/, \"rgb\")\n rgba = rgba.replace(/,\\s*\\d+(\\.\\d+)?\\)$/, \")\")\n }\n\n return rgba\n }\n } catch {\n if (fallback) return convertColor(fallback)(format)\n }\n }\n}\n\nexport function calcFormat(color: string): ColorFormat {\n if (color.startsWith(\"hsl\") || color.startsWith(\"rgb\"))\n return color.split(\"(\")[0] as ColorFormat\n else return color.length === 9 ? \"hexa\" : \"hex\"\n}\n\nexport function getAlpha(color: string) {\n return c.parseToRgba(color)[3]\n}\n\nexport function alphaToHex(a: number) {\n if (0 > a) a = 0\n if (1 < a) a = 1\n\n return Math.round(a * 255)\n .toString(16)\n .padStart(2, \"0\")\n}\n\nexport function parseToRgba(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToRgba(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToRgba(color: string, fallback?: string) {\n try {\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n return c.parseToRgba(color)\n } catch {\n if (fallback) return c.parseToRgba(fallback)\n }\n}\n\nexport function parseToHsla(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToHsla(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToHsla(color: string, fallback?: string) {\n try {\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n return c.parseToHsla(color)\n } catch {\n if (fallback) return c.parseToHsla(fallback)\n }\n}\n\nexport function parseToHsv(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToHsv(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToHsv(color: string, fallback?: string) {\n const rgba = parseToRgba(color, fallback)\n\n if (!rgba) return undefined\n\n let [r, g, b, a] = rgba\n\n r = r / 255\n g = g / 255\n b = b / 255\n\n const [min, max] = [Math.min(r, g, b), Math.max(r, g, b)]\n const delta = max - min\n\n let [h, v, s] = [0, max, max == 0 ? 0 : delta / max]\n\n switch (min) {\n case max:\n h = 0\n break\n\n case r:\n h = 60 * ((b - g) / delta) + 180\n break\n\n case g:\n h = 60 * ((r - b) / delta) + 300\n break\n\n case b:\n h = 60 * ((g - r) / delta) + 60\n break\n }\n\n return [h, s, v, a]\n}\n\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n return convertColor(c.rgba(r, g, b, a), fallback)(format)\n }\n}\n\nexport function hslaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function hslaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function hslaTo(\n [h, s, l, a]: [number, number, number, number],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n return convertColor(c.hsla(h, s, l, a), fallback)(format)\n }\n}\n\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n h = h / 60\n\n let rgb: [number, number, number] = [v, v, v]\n\n let i = Math.floor(h)\n let f = h - i\n let p = v * (1 - s)\n let q = v * (1 - s * f)\n let t = v * (1 - s * (1 - f))\n\n switch (i) {\n case 0:\n case 6:\n rgb = [v, t, p]\n break\n\n case 1:\n rgb = [q, v, p]\n break\n\n case 2:\n rgb = [p, v, t]\n break\n\n case 3:\n rgb = [p, q, v]\n break\n\n case 4:\n rgb = [t, p, v]\n break\n\n case 5:\n rgb = [v, p, q]\n break\n }\n\n let color = `rgb(${rgb.map((v) => Math.round(v * 255)).join(\", \")})`\n\n if (isNumber(a)) color = color.replace(/\\)$/, `, ${a})`)\n\n return convertColor(color, fallback)(format)\n }\n}\n\nexport function sameColor(\n color: string | undefined,\n comparison: string | undefined,\n) {\n if (!color) return false\n if (!comparison) return false\n\n const a = parseToRgba(color) ?? []\n const b = parseToRgba(comparison) ?? []\n\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3]\n}\n"],"mappings":"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"}
|
package/dist/esm/color.js
CHANGED
|
@@ -130,9 +130,7 @@ function parseToHsv(color, fallback) {
|
|
|
130
130
|
case g:
|
|
131
131
|
h = 60 * ((r - b) / delta) + 300;
|
|
132
132
|
break;
|
|
133
|
-
case b:
|
|
134
|
-
h = 60 * ((g - r) / delta) + 60;
|
|
135
|
-
break;
|
|
133
|
+
case b: h = 60 * ((g - r) / delta) + 60;
|
|
136
134
|
}
|
|
137
135
|
return [
|
|
138
136
|
h,
|
|
@@ -201,13 +199,11 @@ function hsvTo([h, s, v, a], fallback) {
|
|
|
201
199
|
v
|
|
202
200
|
];
|
|
203
201
|
break;
|
|
204
|
-
case 5:
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
];
|
|
210
|
-
break;
|
|
202
|
+
case 5: rgb = [
|
|
203
|
+
v,
|
|
204
|
+
p,
|
|
205
|
+
q
|
|
206
|
+
];
|
|
211
207
|
}
|
|
212
208
|
let color = `rgb(${rgb.map((v) => Math.round(v * 255)).join(", ")})`;
|
|
213
209
|
if (isNumber(a)) color = color.replace(/\)$/, `, ${a})`);
|
package/dist/esm/color.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.js","names":[],"sources":["../../src/color.ts"],"sourcesContent":["import * as c from \"color2k\"\nimport { isNumber } from \"./assertion\"\n\nexport type ColorFormat = \"hex\" | \"hexa\" | \"hsl\" | \"hsla\" | \"rgb\" | \"rgba\"\n\nexport const SEMANTIC_COLOR_SCHEMES = [\n \"mono\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"error\",\n \"link\",\n] as const\n\nexport const DEFAULT_COLOR_SCHEMES = [\n \"gray\",\n \"red\",\n \"rose\",\n \"pink\",\n \"flashy\",\n \"orange\",\n \"amber\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"emerald\",\n \"teal\",\n \"cyan\",\n \"sky\",\n \"blue\",\n \"indigo\",\n \"violet\",\n \"purple\",\n \"fuchsia\",\n] as const\n\nexport const COLOR_SCHEMES = [\n ...SEMANTIC_COLOR_SCHEMES,\n ...DEFAULT_COLOR_SCHEMES,\n]\n\nexport const TONES = [\n 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950,\n] as const\n\nexport function convertColor(\n color: string,\n fallback: string,\n): {\n (format: ColorFormat): string\n}\nexport function convertColor(\n color: string,\n fallback?: string,\n): {\n (format: ColorFormat): string | undefined\n}\nexport function convertColor(color: string, fallback?: string) {\n return function (format: ColorFormat) {\n try {\n const alpha = format.endsWith(\"a\")\n\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n if (format.startsWith(\"hex\")) {\n let hexa = c.toHex(color)\n\n if (alpha) {\n if (hexa.length === 7) hexa += \"ff\"\n } else {\n hexa = hexa.replace(/^#([0-9a-fA-F]{6})[0-9a-fA-F]{2}$/, \"#$1\")\n }\n\n return hexa\n } else if (format.startsWith(\"hsl\")) {\n let hsla = c.toHsla(color)\n\n if (!alpha) {\n hsla = hsla.replace(/hsla/, \"hsl\")\n hsla = hsla.replace(/,\\s*\\d+(\\.\\d+)?\\)$/, \")\")\n }\n\n return hsla\n } else {\n let rgba = c.toRgba(color)\n\n if (!alpha) {\n rgba = rgba.replace(/rgba/, \"rgb\")\n rgba = rgba.replace(/,\\s*\\d+(\\.\\d+)?\\)$/, \")\")\n }\n\n return rgba\n }\n } catch {\n if (fallback) return convertColor(fallback)(format)\n }\n }\n}\n\nexport function calcFormat(color: string): ColorFormat {\n if (color.startsWith(\"hsl\") || color.startsWith(\"rgb\"))\n return color.split(\"(\")[0] as ColorFormat\n else return color.length === 9 ? \"hexa\" : \"hex\"\n}\n\nexport function getAlpha(color: string) {\n return c.parseToRgba(color)[3]\n}\n\nexport function alphaToHex(a: number) {\n if (0 > a) a = 0\n if (1 < a) a = 1\n\n return Math.round(a * 255)\n .toString(16)\n .padStart(2, \"0\")\n}\n\nexport function parseToRgba(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToRgba(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToRgba(color: string, fallback?: string) {\n try {\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n return c.parseToRgba(color)\n } catch {\n if (fallback) return c.parseToRgba(fallback)\n }\n}\n\nexport function parseToHsla(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToHsla(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToHsla(color: string, fallback?: string) {\n try {\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n return c.parseToHsla(color)\n } catch {\n if (fallback) return c.parseToHsla(fallback)\n }\n}\n\nexport function parseToHsv(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToHsv(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToHsv(color: string, fallback?: string) {\n const rgba = parseToRgba(color, fallback)\n\n if (!rgba) return undefined\n\n let [r, g, b, a] = rgba\n\n r = r / 255\n g = g / 255\n b = b / 255\n\n const [min, max] = [Math.min(r, g, b), Math.max(r, g, b)]\n const delta = max - min\n\n let [h, v, s] = [0, max, max == 0 ? 0 : delta / max]\n\n switch (min) {\n case max:\n h = 0\n break\n\n case r:\n h = 60 * ((b - g) / delta) + 180\n break\n\n case g:\n h = 60 * ((r - b) / delta) + 300\n break\n\n case b:\n h = 60 * ((g - r) / delta) + 60\n break\n }\n\n return [h, s, v, a]\n}\n\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n return convertColor(c.rgba(r, g, b, a), fallback)(format)\n }\n}\n\nexport function hslaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function hslaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function hslaTo(\n [h, s, l, a]: [number, number, number, number],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n return convertColor(c.hsla(h, s, l, a), fallback)(format)\n }\n}\n\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n h = h / 60\n\n let rgb: [number, number, number] = [v, v, v]\n\n let i = Math.floor(h)\n let f = h - i\n let p = v * (1 - s)\n let q = v * (1 - s * f)\n let t = v * (1 - s * (1 - f))\n\n switch (i) {\n case 0:\n case 6:\n rgb = [v, t, p]\n break\n\n case 1:\n rgb = [q, v, p]\n break\n\n case 2:\n rgb = [p, v, t]\n break\n\n case 3:\n rgb = [p, q, v]\n break\n\n case 4:\n rgb = [t, p, v]\n break\n\n case 5:\n rgb = [v, p, q]\n break\n }\n\n let color = `rgb(${rgb.map((v) => Math.round(v * 255)).join(\", \")})`\n\n if (isNumber(a)) color = color.replace(/\\)$/, `, ${a})`)\n\n return convertColor(color, fallback)(format)\n }\n}\n\nexport function sameColor(\n color: string | undefined,\n comparison: string | undefined,\n) {\n if (!color) return false\n if (!comparison) return false\n\n const a = parseToRgba(color) ?? []\n const b = parseToRgba(comparison) ?? []\n\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3]\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"color.js","names":[],"sources":["../../src/color.ts"],"sourcesContent":["import * as c from \"color2k\"\nimport { isNumber } from \"./assertion\"\n\nexport type ColorFormat = \"hex\" | \"hexa\" | \"hsl\" | \"hsla\" | \"rgb\" | \"rgba\"\n\nexport const SEMANTIC_COLOR_SCHEMES = [\n \"mono\",\n \"primary\",\n \"secondary\",\n \"info\",\n \"success\",\n \"warning\",\n \"danger\",\n \"error\",\n \"link\",\n] as const\n\nexport const DEFAULT_COLOR_SCHEMES = [\n \"gray\",\n \"red\",\n \"rose\",\n \"pink\",\n \"flashy\",\n \"orange\",\n \"amber\",\n \"yellow\",\n \"lime\",\n \"green\",\n \"emerald\",\n \"teal\",\n \"cyan\",\n \"sky\",\n \"blue\",\n \"indigo\",\n \"violet\",\n \"purple\",\n \"fuchsia\",\n] as const\n\nexport const COLOR_SCHEMES = [\n ...SEMANTIC_COLOR_SCHEMES,\n ...DEFAULT_COLOR_SCHEMES,\n]\n\nexport const TONES = [\n 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950,\n] as const\n\nexport function convertColor(\n color: string,\n fallback: string,\n): {\n (format: ColorFormat): string\n}\nexport function convertColor(\n color: string,\n fallback?: string,\n): {\n (format: ColorFormat): string | undefined\n}\nexport function convertColor(color: string, fallback?: string) {\n return function (format: ColorFormat) {\n try {\n const alpha = format.endsWith(\"a\")\n\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n if (format.startsWith(\"hex\")) {\n let hexa = c.toHex(color)\n\n if (alpha) {\n if (hexa.length === 7) hexa += \"ff\"\n } else {\n hexa = hexa.replace(/^#([0-9a-fA-F]{6})[0-9a-fA-F]{2}$/, \"#$1\")\n }\n\n return hexa\n } else if (format.startsWith(\"hsl\")) {\n let hsla = c.toHsla(color)\n\n if (!alpha) {\n hsla = hsla.replace(/hsla/, \"hsl\")\n hsla = hsla.replace(/,\\s*\\d+(\\.\\d+)?\\)$/, \")\")\n }\n\n return hsla\n } else {\n let rgba = c.toRgba(color)\n\n if (!alpha) {\n rgba = rgba.replace(/rgba/, \"rgb\")\n rgba = rgba.replace(/,\\s*\\d+(\\.\\d+)?\\)$/, \")\")\n }\n\n return rgba\n }\n } catch {\n if (fallback) return convertColor(fallback)(format)\n }\n }\n}\n\nexport function calcFormat(color: string): ColorFormat {\n if (color.startsWith(\"hsl\") || color.startsWith(\"rgb\"))\n return color.split(\"(\")[0] as ColorFormat\n else return color.length === 9 ? \"hexa\" : \"hex\"\n}\n\nexport function getAlpha(color: string) {\n return c.parseToRgba(color)[3]\n}\n\nexport function alphaToHex(a: number) {\n if (0 > a) a = 0\n if (1 < a) a = 1\n\n return Math.round(a * 255)\n .toString(16)\n .padStart(2, \"0\")\n}\n\nexport function parseToRgba(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToRgba(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToRgba(color: string, fallback?: string) {\n try {\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n return c.parseToRgba(color)\n } catch {\n if (fallback) return c.parseToRgba(fallback)\n }\n}\n\nexport function parseToHsla(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToHsla(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToHsla(color: string, fallback?: string) {\n try {\n if (/^[0-9a-fA-F]{6}$/.test(color)) color = \"#\" + color\n\n return c.parseToHsla(color)\n } catch {\n if (fallback) return c.parseToHsla(fallback)\n }\n}\n\nexport function parseToHsv(\n color: string,\n fallback: string,\n): [number, number, number, number]\nexport function parseToHsv(\n color: string,\n fallback?: string,\n): [number, number, number, number] | undefined\nexport function parseToHsv(color: string, fallback?: string) {\n const rgba = parseToRgba(color, fallback)\n\n if (!rgba) return undefined\n\n let [r, g, b, a] = rgba\n\n r = r / 255\n g = g / 255\n b = b / 255\n\n const [min, max] = [Math.min(r, g, b), Math.max(r, g, b)]\n const delta = max - min\n\n let [h, v, s] = [0, max, max == 0 ? 0 : delta / max]\n\n switch (min) {\n case max:\n h = 0\n break\n\n case r:\n h = 60 * ((b - g) / delta) + 180\n break\n\n case g:\n h = 60 * ((r - b) / delta) + 300\n break\n\n case b:\n h = 60 * ((g - r) / delta) + 60\n break\n }\n\n return [h, s, v, a]\n}\n\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function rgbaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n return convertColor(c.rgba(r, g, b, a), fallback)(format)\n }\n}\n\nexport function hslaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function hslaTo(\n [r, g, b, a]: [number, number, number, number],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function hslaTo(\n [h, s, l, a]: [number, number, number, number],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n return convertColor(c.hsla(h, s, l, a), fallback)(format)\n }\n}\n\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback: string,\n): {\n (format?: ColorFormat): string\n}\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback?: string,\n): {\n (format?: ColorFormat): string | undefined\n}\nexport function hsvTo(\n [h, s, v, a]: [number, number, number, number?],\n fallback?: string,\n): (format?: ColorFormat) => string | undefined {\n return function (format: ColorFormat = \"hex\") {\n h = h / 60\n\n let rgb: [number, number, number] = [v, v, v]\n\n let i = Math.floor(h)\n let f = h - i\n let p = v * (1 - s)\n let q = v * (1 - s * f)\n let t = v * (1 - s * (1 - f))\n\n switch (i) {\n case 0:\n case 6:\n rgb = [v, t, p]\n break\n\n case 1:\n rgb = [q, v, p]\n break\n\n case 2:\n rgb = [p, v, t]\n break\n\n case 3:\n rgb = [p, q, v]\n break\n\n case 4:\n rgb = [t, p, v]\n break\n\n case 5:\n rgb = [v, p, q]\n break\n }\n\n let color = `rgb(${rgb.map((v) => Math.round(v * 255)).join(\", \")})`\n\n if (isNumber(a)) color = color.replace(/\\)$/, `, ${a})`)\n\n return convertColor(color, fallback)(format)\n }\n}\n\nexport function sameColor(\n color: string | undefined,\n comparison: string | undefined,\n) {\n if (!color) return false\n if (!comparison) return false\n\n const a = parseToRgba(color) ?? []\n const b = parseToRgba(comparison) ?? []\n\n return a[0] === b[0] && a[1] === b[1] && a[2] === b[2] && a[3] === b[3]\n}\n"],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { filterEmpty, toArray } from "./array.js";
|
|
2
|
-
import { AnyString, Booleanish, DeepMerge, DeepPartial, Dict, FunctionOrValue, Length, Merge, Path, Prettify, Primitive, Value } from "./index.types.js";
|
|
2
|
+
import { AnyString, Booleanish, DeepMerge, DeepPartial, Dict, FunctionOf, FunctionOrValue, Length, Merge, Path, Prettify, Primitive, Value } from "./index.types.js";
|
|
3
3
|
import { cast, is, isArray, isBoolean, isBooleanish, isDate, isEmpty, isEmptyObject, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isRegExp, isString, isUndefined, isUnit } from "./assertion.js";
|
|
4
4
|
import { calc } from "./calc.js";
|
|
5
5
|
import { COLOR_SCHEMES, ColorFormat, DEFAULT_COLOR_SCHEMES, SEMANTIC_COLOR_SCHEMES, TONES, alphaToHex, calcFormat, convertColor, getAlpha, hslaTo, hsvTo, parseToHsla, parseToHsv, parseToRgba, rgbaTo, sameColor } from "./color.js";
|
|
@@ -11,4 +11,4 @@ import { interopDefault } from "./module.js";
|
|
|
11
11
|
import { clampNumber, countDecimal, percentToValue, roundNumberToStep, toNumber, toPrecision, valueToPercent } from "./number.js";
|
|
12
12
|
import { FlattenObjectOptions, MergeOptions, extractFlatObject, extractObject, filterObject, filterUndefined, flattenObject, getMemoizedObject, getObject, memoizeObject, merge, objectKeys, omitObject, pickObject, replaceObject, splitObject, wrapWithKey } from "./object.js";
|
|
13
13
|
import { antonym, bem, cx, escape, isSize, match, toCamelCase, toKebabCase, toPascalCase, toTitleCase, transformSize } from "./string.js";
|
|
14
|
-
export { AnyPointerEvent, type AnyString, type Booleanish, COLOR_SCHEMES, ColorFormat, DEFAULT_COLOR_SCHEMES, type DeepMerge, type DeepPartial, type Dict, EventMap, EventType, FlattenObjectOptions, type FunctionOrValue, type Length, type Merge, MergeOptions, type Path, Point, type Prettify, type Primitive, SEMANTIC_COLOR_SCHEMES, TONES, type Value, addDomEvent, alphaToHex, antonym, ariaAttr, bem, calc, calcFormat, cast, clampNumber, contains, convertColor, countDecimal, createdDom, cx, dataAttr, escape, extractFlatObject, extractObject, filterEmpty, filterObject, filterUndefined, flattenObject, fnAll, focusTransfer, focusTrap, getActiveElement, getAlpha, getDocument, getDocumentElement, getEventPoint, getEventWindow, getFirstFocusableElement, getFirstTabbableElement, getFocusableElements, getLastTabbableElement, getMemoizedObject, getNextTabbableElement, getNodeName, getObject, getParentNode, getPlatform, getPx, getTabIndex, getTabbableElementEdges, getTabbableElements, getUserAgent, getWindow, handlerAll, hslaTo, hsvTo, interopDefault, is, isActiveElement, isAndroid, isApple, isArray, isBoolean, isBooleanish, isChrome, isDate, isDisabledElement, isDocument, isEditableElement, isEmpty, isEmptyObject, isFirefox, isFocusableElement, isFrame, isFunction, isHTMLElement, isHiddenElement, isIPad, isIPhone, isInputElement, isIos, isMac, isMouseEvent, isMultiTouchEvent, isNode, isNotNumber, isNull, isNumber, isNumeric, isObject, isRegExp, isRtl, isSafari, isShadowRoot, isSize, isString, isTabbableElement, isTouchDevice, isTouchEvent, isTruthyDataAttr, isUndefined, isUnit, isVisibleElement, isVisualViewport, isWebKit, isWindow, match, memoizeObject, merge, noop, objectKeys, omitObject, parseToHsla, parseToHsv, parseToRgba, percentToValue, pickObject, platform, pointFromMouse, pointFromTouch, replaceObject, rgbaTo, roundNumberToStep, runIfFn, sameColor, scrollLock, setAttribute, setStyle, splitObject, toArray, toCamelCase, toKebabCase, toNumber, toPascalCase, toPrecision, toTitleCase, transformSize, userAgent, uuid, valueToPercent, vendor, wait, wrapWithKey };
|
|
14
|
+
export { AnyPointerEvent, type AnyString, type Booleanish, COLOR_SCHEMES, ColorFormat, DEFAULT_COLOR_SCHEMES, type DeepMerge, type DeepPartial, type Dict, EventMap, EventType, FlattenObjectOptions, type FunctionOf, type FunctionOrValue, type Length, type Merge, MergeOptions, type Path, Point, type Prettify, type Primitive, SEMANTIC_COLOR_SCHEMES, TONES, type Value, addDomEvent, alphaToHex, antonym, ariaAttr, bem, calc, calcFormat, cast, clampNumber, contains, convertColor, countDecimal, createdDom, cx, dataAttr, escape, extractFlatObject, extractObject, filterEmpty, filterObject, filterUndefined, flattenObject, fnAll, focusTransfer, focusTrap, getActiveElement, getAlpha, getDocument, getDocumentElement, getEventPoint, getEventWindow, getFirstFocusableElement, getFirstTabbableElement, getFocusableElements, getLastTabbableElement, getMemoizedObject, getNextTabbableElement, getNodeName, getObject, getParentNode, getPlatform, getPx, getTabIndex, getTabbableElementEdges, getTabbableElements, getUserAgent, getWindow, handlerAll, hslaTo, hsvTo, interopDefault, is, isActiveElement, isAndroid, isApple, isArray, isBoolean, isBooleanish, isChrome, isDate, isDisabledElement, isDocument, isEditableElement, isEmpty, isEmptyObject, isFirefox, isFocusableElement, isFrame, isFunction, isHTMLElement, isHiddenElement, isIPad, isIPhone, isInputElement, isIos, isMac, isMouseEvent, isMultiTouchEvent, isNode, isNotNumber, isNull, isNumber, isNumeric, isObject, isRegExp, isRtl, isSafari, isShadowRoot, isSize, isString, isTabbableElement, isTouchDevice, isTouchEvent, isTruthyDataAttr, isUndefined, isUnit, isVisibleElement, isVisualViewport, isWebKit, isWindow, match, memoizeObject, merge, noop, objectKeys, omitObject, parseToHsla, parseToHsv, parseToRgba, percentToValue, pickObject, platform, pointFromMouse, pointFromTouch, replaceObject, rgbaTo, roundNumberToStep, runIfFn, sameColor, scrollLock, setAttribute, setStyle, splitObject, toArray, toCamelCase, toKebabCase, toNumber, toPascalCase, toPrecision, toTitleCase, transformSize, userAgent, uuid, valueToPercent, vendor, wait, wrapWithKey };
|
|
@@ -8,6 +8,7 @@ interface Dict<Y = any> {
|
|
|
8
8
|
}
|
|
9
9
|
type Prettify<Y> = { [M in keyof Y]: Y[M]; } & {};
|
|
10
10
|
type FunctionOrValue<Y, M> = ((props: Y) => M) | M;
|
|
11
|
+
type FunctionOf<Y> = Extract<Y, (...args: any[]) => any>;
|
|
11
12
|
type AnyString = string & {};
|
|
12
13
|
type Booleanish<Y> = Y extends "false" | "true" ? boolean : Y;
|
|
13
14
|
type Length<Y extends any[]> = Y["length"];
|
|
@@ -15,5 +16,5 @@ type Merge<Y, M> = M & Omit<Y, keyof M>;
|
|
|
15
16
|
type DeepMerge<Y, M> = Y extends any[] | Primitive ? M : Y extends object ? M extends object ? { [D in keyof M | keyof Y]: D extends keyof M ? D extends keyof Y ? DeepMerge<Y[D], M[D]> : M[D] : D extends keyof Y ? Y[D] : never; } : M : M;
|
|
16
17
|
type DeepPartial<Y> = Y extends any[] | Primitive ? Y : { [P in keyof Y]?: DeepPartial<Y[P]>; };
|
|
17
18
|
//#endregion
|
|
18
|
-
export { AnyString, Booleanish, DeepMerge, DeepPartial, Dict, FunctionOrValue, Length, Merge, Path, Prettify, Primitive, Value };
|
|
19
|
+
export { AnyString, Booleanish, DeepMerge, DeepPartial, Dict, FunctionOf, FunctionOrValue, Length, Merge, Path, Prettify, Primitive, Value };
|
|
19
20
|
//# sourceMappingURL=index.types.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yamada-ui/utils",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.7-dev-20260926123523",
|
|
5
5
|
"description": "The utilities for Yamada UI projects",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"utils",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"color2k": "^2.0.4"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@vitest/browser": "^4.1.
|
|
37
|
-
"@vitest/browser-playwright": "^4.1.
|
|
38
|
-
"playwright": "^1.
|
|
39
|
-
"react": "^19.
|
|
36
|
+
"@vitest/browser": "^4.1.11",
|
|
37
|
+
"@vitest/browser-playwright": "^4.1.11",
|
|
38
|
+
"playwright": "^1.63.0",
|
|
39
|
+
"react": "^19.3.0",
|
|
40
40
|
"@yamada-ui/workspace": "1.0.0"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|