@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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Installation
4
4
 
5
- ```sh
5
+ ```bash
6
6
  pnpm add @yamada-ui/utils
7
7
  # or
8
8
  yarn add @yamada-ui/utils
@@ -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));
@@ -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
- rgb = [
208
- v,
209
- p,
210
- q
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})`);
@@ -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
- rgb = [
206
- v,
207
- p,
208
- q
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})`);
@@ -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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"}
@@ -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.6",
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.10",
37
- "@vitest/browser-playwright": "^4.1.10",
38
- "playwright": "^1.61.0",
39
- "react": "^19.2.7",
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": {