@yamada-ui/utils 2.0.0-next-20250710072846 → 2.0.1-dev-20251017110502

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 (54) hide show
  1. package/README.md +0 -2
  2. package/dist/cjs/_virtual/rolldown_runtime.cjs +1 -6
  3. package/dist/cjs/array.cjs.map +1 -1
  4. package/dist/cjs/assertion.cjs +4 -0
  5. package/dist/cjs/assertion.cjs.map +1 -1
  6. package/dist/cjs/calc.cjs.map +1 -1
  7. package/dist/cjs/color.cjs +2 -1
  8. package/dist/cjs/color.cjs.map +1 -1
  9. package/dist/cjs/dom.cjs +10 -12
  10. package/dist/cjs/dom.cjs.map +1 -1
  11. package/dist/cjs/event.cjs +15 -9
  12. package/dist/cjs/event.cjs.map +1 -1
  13. package/dist/cjs/function.cjs +9 -9
  14. package/dist/cjs/function.cjs.map +1 -1
  15. package/dist/cjs/i18n.cjs.map +1 -1
  16. package/dist/cjs/index.cjs +2 -0
  17. package/dist/cjs/module.cjs.map +1 -1
  18. package/dist/cjs/number.cjs +1 -3
  19. package/dist/cjs/number.cjs.map +1 -1
  20. package/dist/cjs/object.cjs +1 -2
  21. package/dist/cjs/object.cjs.map +1 -1
  22. package/dist/cjs/string.cjs +3 -4
  23. package/dist/cjs/string.cjs.map +1 -1
  24. package/dist/esm/array.js.map +1 -1
  25. package/dist/esm/assertion.js +4 -1
  26. package/dist/esm/assertion.js.map +1 -1
  27. package/dist/esm/calc.js.map +1 -1
  28. package/dist/esm/color.js.map +1 -1
  29. package/dist/esm/dom.js +10 -13
  30. package/dist/esm/dom.js.map +1 -1
  31. package/dist/esm/event.js +15 -9
  32. package/dist/esm/event.js.map +1 -1
  33. package/dist/esm/function.js +9 -9
  34. package/dist/esm/function.js.map +1 -1
  35. package/dist/esm/i18n.js.map +1 -1
  36. package/dist/esm/index.js +3 -3
  37. package/dist/esm/module.js.map +1 -1
  38. package/dist/esm/number.js +1 -3
  39. package/dist/esm/number.js.map +1 -1
  40. package/dist/esm/object.js +1 -2
  41. package/dist/esm/object.js.map +1 -1
  42. package/dist/esm/string.js +4 -5
  43. package/dist/esm/string.js.map +1 -1
  44. package/dist/types/assertion.d.ts +6 -5
  45. package/dist/types/color.d.ts +1 -1
  46. package/dist/types/dom.d.ts +2 -1
  47. package/dist/types/function.d.ts +3 -3
  48. package/dist/types/index.d.ts +4 -4
  49. package/dist/types/index.types.d.ts +6 -2
  50. package/dist/types/module.d.ts +1 -1
  51. package/dist/types/object.d.ts +2 -2
  52. package/package.json +6 -3
  53. package/dist/cjs/index.types.cjs +0 -0
  54. package/dist/esm/index.types.js +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"object.js","names":["obj: Y","keys: M[] | readonly M[]","result: Dict","funcOrKeys?: ((key: string) => boolean) | M[] | readonly M[]","picked: Dict","omitted: Dict","func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean","target: any","source: any","options: mergeOptions","targetValue: any","obj: any","objOrArray: Y","callBack: (value: any) => any","obj: Dict | undefined","path: number | string","fallback?: any","func: typeof getObject","obj: Dict","obj: T","key?: string"],"sources":["../../src/object.ts"],"sourcesContent":["import type { Dict } from \"./index.types\"\nimport {\n isArray,\n isFunction,\n isObject,\n isString,\n isUndefined,\n} from \"./assertion\"\n\nexport function omitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n): Omit<Y, M> {\n if (!keys.length) return obj\n\n const result: Dict = {}\n\n Object.keys(obj).forEach((key) => {\n if (keys.includes(key as M)) return\n\n result[key] = obj[key]\n })\n\n return result as Omit<Y, M>\n}\n\nexport function pickObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n): { [D in M]: Y[D] } {\n if (!keys.length) return {} as { [D in M]: Y[D] }\n\n const result = {} as { [D in M]: Y[D] }\n\n keys.forEach((key) => {\n if (key in obj) result[key] = obj[key]\n })\n\n return result\n}\n\nexport function splitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n funcOrKeys?: M[] | readonly M[],\n): [{ [D in M]: Y[D] }, Omit<Y, M>]\n\nexport function splitObject<Y extends Dict, M extends Dict>(\n obj: Dict,\n funcOrKeys?: (key: string) => boolean,\n): [Y, M]\n\nexport function splitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n funcOrKeys?: ((key: string) => boolean) | M[] | readonly M[],\n) {\n const picked: Dict = {}\n const omitted: Dict = {}\n\n for (const [key, value] of Object.entries(obj)) {\n if (\n isFunction(funcOrKeys) ? funcOrKeys(key) : funcOrKeys?.includes(key as M)\n ) {\n picked[key] = value\n } else {\n omitted[key] = value\n }\n }\n\n return [picked, omitted] as [{ [D in M]: Y[D] }, Omit<Y, M>]\n}\n\nexport function filterObject<Y extends Dict, M extends Dict>(\n obj: Y,\n func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean,\n): M {\n const result: Dict = {}\n\n Object.entries(obj).forEach(([key, value]) => {\n const shouldPass = func(key, value, obj)\n\n if (shouldPass) result[key] = value\n })\n\n return result as M\n}\n\nexport function filterUndefined<Y extends Dict>(obj: Y): Y {\n return filterObject(obj, (_, val) => val !== null && val !== undefined)\n}\n\nexport interface mergeOptions {\n debug?: boolean\n mergeArray?: boolean\n shouldProcess?: (value: any) => boolean\n}\n\nexport function merge<Y extends Dict>(\n target: any,\n source: any,\n options: mergeOptions = { mergeArray: false, shouldProcess: () => true },\n): Y {\n let result = Object.assign({}, target)\n\n if (isObject(source) && options.shouldProcess?.(source)) {\n if (isObject(target)) {\n for (const [sourceKey, sourceValue] of Object.entries(source)) {\n const targetValue: any = target[sourceKey]\n\n if (options.shouldProcess(sourceValue)) {\n if (\n options.mergeArray &&\n isArray(sourceValue) &&\n isArray(targetValue)\n ) {\n result[sourceKey] = targetValue.concat(...sourceValue)\n } else if (\n !isFunction(sourceValue) &&\n isObject(sourceValue) &&\n target.hasOwnProperty(sourceKey)\n ) {\n result[sourceKey] = merge(targetValue, sourceValue, options)\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n }\n } else {\n result = source\n }\n }\n\n return result as Y\n}\n\nexport interface FlattenObjectOptions {\n maxDepth?: number\n separator?: string\n shouldProcess?: (value: any) => boolean\n}\n\nexport function flattenObject<Y extends Dict>(\n obj: any,\n {\n maxDepth = Infinity,\n separator = \".\",\n shouldProcess = () => true,\n }: FlattenObjectOptions = {},\n): Y {\n if (!isObject(obj) && !isArray(obj)) return obj\n\n return Object.entries(obj).reduce<any>((result, [key, value]) => {\n if (isObject(value) && shouldProcess(value) && maxDepth > 1) {\n Object.entries(\n flattenObject(value, {\n maxDepth: maxDepth - 1,\n separator,\n shouldProcess,\n }),\n ).forEach(([childKey, childValue]) => {\n result[`${key}${separator}${childKey}`] = childValue\n })\n } else {\n result[key] = value\n }\n\n return result\n }, {}) as Y\n}\n\nexport function objectKeys<Y extends object>(obj: Y): (keyof Y)[] {\n return Object.keys(obj) as (keyof Y)[]\n}\n\nexport function replaceObject<Y = any>(\n objOrArray: Y,\n callBack: (value: any) => any,\n): Y {\n if (isArray(objOrArray)) {\n return objOrArray.map(callBack) as Y\n } else if (isObject(objOrArray)) {\n return Object.entries(objOrArray).reduce<Dict>((obj, [key, value]) => {\n obj[key] = callBack(value)\n\n return obj\n }, {}) as Y\n } else {\n return callBack(objOrArray)\n }\n}\n\nexport function getObject(\n obj: Dict | undefined,\n path: number | string,\n fallback?: any,\n) {\n const keys = isString(path)\n ? path.split(/\\[(.*?)\\]|\\./).filter(Boolean)\n : [path]\n\n for (const key of keys) {\n if (!obj) break\n\n obj = obj[key]\n }\n\n return obj === undefined ? fallback : obj\n}\n\nexport function memoizeObject(func: typeof getObject) {\n const cache = new WeakMap()\n\n function memoizedFunc<Y>(\n obj: Dict,\n path: number | string,\n fallback?: any,\n ): Y {\n if (isUndefined(obj)) return func(obj, path, fallback)\n\n if (!cache.has(obj)) cache.set(obj, new Map())\n\n const map = cache.get(obj)\n\n if (map.has(path)) return map.get(path)\n\n const value = func(obj, path, fallback)\n\n map.set(path, value)\n\n return value as Y\n }\n\n return memoizedFunc\n}\n\nexport const getMemoizedObject = memoizeObject(getObject)\n\nexport function wrapWithKey<T>(obj: T, key?: string) {\n if (key) {\n return { [key]: obj }\n } else {\n return obj\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"object.js","names":["result: Dict","picked: Dict","omitted: Dict","targetValue: any"],"sources":["../../src/object.ts"],"sourcesContent":["import type { Dict } from \"./index.types\"\nimport {\n isArray,\n isFunction,\n isObject,\n isString,\n isUndefined,\n} from \"./assertion\"\n\nexport function omitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n): Omit<Y, M> {\n if (!keys.length) return obj\n\n const result: Dict = {}\n\n Object.keys(obj).forEach((key) => {\n if (keys.includes(key as M)) return\n\n result[key] = obj[key]\n })\n\n return result as Omit<Y, M>\n}\n\nexport function pickObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n keys: M[] | readonly M[],\n): { [D in M]: Y[D] } {\n if (!keys.length) return {} as { [D in M]: Y[D] }\n\n const result = {} as { [D in M]: Y[D] }\n\n keys.forEach((key) => {\n if (key in obj) result[key] = obj[key]\n })\n\n return result\n}\n\nexport function splitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n funcOrKeys?: M[] | readonly M[],\n): [{ [D in M]: Y[D] }, Omit<Y, M>]\n\nexport function splitObject<Y extends Dict, M extends Dict>(\n obj: Dict,\n funcOrKeys?: (key: string) => boolean,\n): [Y, M]\n\nexport function splitObject<Y extends Dict, M extends keyof Y>(\n obj: Y,\n funcOrKeys?: ((key: string) => boolean) | M[] | readonly M[],\n) {\n const picked: Dict = {}\n const omitted: Dict = {}\n\n for (const [key, value] of Object.entries(obj)) {\n if (\n isFunction(funcOrKeys) ? funcOrKeys(key) : funcOrKeys?.includes(key as M)\n ) {\n picked[key] = value\n } else {\n omitted[key] = value\n }\n }\n\n return [picked, omitted] as [{ [D in M]: Y[D] }, Omit<Y, M>]\n}\n\nexport function filterObject<Y extends Dict, M extends Dict>(\n obj: Y,\n func: (key: keyof Y, value: Y[keyof Y], obj: Y) => boolean,\n): M {\n const result: Dict = {}\n\n Object.entries(obj).forEach(([key, value]) => {\n const shouldPass = func(key, value, obj)\n\n if (shouldPass) result[key] = value\n })\n\n return result as M\n}\n\nexport function filterUndefined<Y extends Dict>(obj: Y): Y {\n return filterObject(obj, (_, val) => val !== null && val !== undefined)\n}\n\nexport interface mergeOptions {\n debug?: boolean\n mergeArray?: boolean\n shouldProcess?: (value: any) => boolean\n}\n\nexport function merge<Y extends Dict>(\n target: any,\n source: any,\n options: mergeOptions = { mergeArray: false, shouldProcess: () => true },\n): Y {\n let result = Object.assign({}, target)\n\n if (isObject(source) && options.shouldProcess?.(source)) {\n if (isObject(target)) {\n for (const [sourceKey, sourceValue] of Object.entries(source)) {\n const targetValue: any = target[sourceKey]\n\n if (options.shouldProcess(sourceValue)) {\n if (\n options.mergeArray &&\n isArray(sourceValue) &&\n isArray(targetValue)\n ) {\n result[sourceKey] = targetValue.concat(...sourceValue)\n } else if (\n !isFunction(sourceValue) &&\n isObject(sourceValue) &&\n target.hasOwnProperty(sourceKey)\n ) {\n result[sourceKey] = merge(targetValue, sourceValue, options)\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n } else {\n Object.assign(result, { [sourceKey]: sourceValue })\n }\n }\n } else {\n result = source\n }\n }\n\n return result as Y\n}\n\nexport interface FlattenObjectOptions {\n maxDepth?: number\n separator?: string\n shouldProcess?: (value: any) => boolean\n}\n\nexport function flattenObject<Y extends Dict>(\n obj: any,\n {\n maxDepth = Infinity,\n separator = \".\",\n shouldProcess = () => true,\n }: FlattenObjectOptions = {},\n): Y {\n if (!isObject(obj) && !isArray(obj)) return obj\n\n return Object.entries(obj).reduce<any>((result, [key, value]) => {\n if (isObject(value) && shouldProcess(value) && maxDepth > 1) {\n Object.entries(\n flattenObject(value, {\n maxDepth: maxDepth - 1,\n separator,\n shouldProcess,\n }),\n ).forEach(([childKey, childValue]) => {\n result[`${key}${separator}${childKey}`] = childValue\n })\n } else {\n result[key] = value\n }\n\n return result\n }, {}) as Y\n}\n\nexport function objectKeys<Y extends object>(obj: Y): (keyof Y)[] {\n return Object.keys(obj) as (keyof Y)[]\n}\n\nexport function replaceObject<Y = any>(\n objOrArray: Y,\n callBack: (value: any) => any,\n): Y {\n if (isArray(objOrArray)) {\n return objOrArray.map(callBack) as Y\n } else if (isObject(objOrArray)) {\n return Object.entries(objOrArray).reduce<Dict>((obj, [key, value]) => {\n obj[key] = callBack(value)\n\n return obj\n }, {}) as Y\n } else {\n return callBack(objOrArray)\n }\n}\n\nexport function getObject(\n obj: Dict | undefined,\n path: number | string,\n fallback?: any,\n) {\n const keys = isString(path)\n ? path.split(/\\[(.*?)\\]|\\./).filter(Boolean)\n : [path]\n\n for (const key of keys) {\n if (!obj) break\n\n obj = obj[key]\n }\n\n return obj === undefined ? fallback : obj\n}\n\nexport function memoizeObject(func: typeof getObject) {\n const cache = new WeakMap()\n\n function memoizedFunc<Y>(\n obj: Dict,\n path: number | string,\n fallback?: any,\n ): Y {\n if (isUndefined(obj)) return func(obj, path, fallback)\n\n if (!cache.has(obj)) cache.set(obj, new Map())\n\n const map = cache.get(obj)\n\n if (map.has(path)) return map.get(path)\n\n const value = func(obj, path, fallback)\n\n map.set(path, value)\n\n return value as Y\n }\n\n return memoizedFunc\n}\n\nexport const getMemoizedObject = memoizeObject(getObject)\n\nexport function wrapWithKey<Y>(obj: Y, key?: string) {\n if (key) {\n return { [key]: obj }\n } else {\n return obj\n }\n}\n"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { isString, isUndefined } from "./assertion.js";
1
+ import { isString } from "./assertion.js";
2
2
 
3
3
  //#region src/string.ts
4
4
  function cx(...classNames) {
5
- return classNames.filter((className) => !isUndefined(className)).map((className) => className.trim()).join(" ");
5
+ return classNames.filter((className) => !!className).map((className) => className.trim()).join(" ");
6
6
  }
7
7
  function escape(value, replaceValue = "") {
8
8
  return value.replace(/\s+/g, replaceValue);
@@ -57,10 +57,9 @@ function isSize(value) {
57
57
  function transformSize(token, value, omitTokens = null) {
58
58
  if (!token) return void 0;
59
59
  let resolvedSizeMap = sizeMap;
60
- if (omitTokens) resolvedSizeMap = sizeMap.filter((size$1) => !omitTokens.includes(size$1));
60
+ if (omitTokens) resolvedSizeMap = sizeMap.filter((size) => !omitTokens.includes(size));
61
61
  const index = resolvedSizeMap.indexOf(token);
62
- const size = resolvedSizeMap[index + value];
63
- return size ?? token;
62
+ return resolvedSizeMap[index + value] ?? token;
64
63
  }
65
64
  function toCamelCase(value) {
66
65
  return value.replace(/[_-](.)/g, (_, val) => val.toUpperCase()).replace(/^(.)/, (_, val) => val.toLowerCase());
@@ -1 +1 @@
1
- {"version":3,"file":"string.js","names":["value: string","sizeMap: AnyString[]","value: any","token: string | undefined","value: number","omitTokens: null | string[]","size","value: AnyString","block: string","element?: string","modifier?: string"],"sources":["../../src/string.ts"],"sourcesContent":["import type { AnyString } from \"./index.types\"\nimport { isString, isUndefined } from \"./assertion\"\n\nexport function cx(...classNames: (string | undefined)[]) {\n return classNames\n .filter((className) => !isUndefined(className))\n .map((className) => className.trim())\n .join(\" \")\n}\n\nexport function escape(value: string, replaceValue = \"\"): string {\n return value.replace(/\\s+/g, replaceValue)\n}\n\nexport function antonym(value: string): string {\n switch (value) {\n case \"top\":\n return \"bottom\"\n\n case \"bottom\":\n return \"top\"\n\n case \"left\":\n return \"right\"\n\n case \"right\":\n return \"left\"\n\n case \"start\":\n return \"end\"\n\n case \"end\":\n return \"start\"\n\n case \"x\":\n return \"y\"\n\n case \"y\":\n return \"x\"\n\n case \"enter\":\n return \"exit\"\n\n case \"exit\":\n return \"enter\"\n\n case \"vertical\":\n return \"horizontal\"\n\n case \"horizontal\":\n return \"vertical\"\n\n case \"up\":\n return \"down\"\n\n case \"down\":\n return \"up\"\n\n case \"block\":\n return \"inline\"\n\n case \"inline\":\n return \"block\"\n\n default:\n return value\n }\n}\n\nconst sizeMap: AnyString[] = [\n \"9xs\",\n \"8xs\",\n \"7xs\",\n \"6xs\",\n \"5xs\",\n \"4xs\",\n \"3xs\",\n \"2xs\",\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\",\n \"2xl\",\n \"3xl\",\n \"4xl\",\n \"5xl\",\n \"6xl\",\n \"7xl\",\n \"8xl\",\n \"9xl\",\n]\n\nexport function isSize(value: any): boolean {\n return isString(value) && sizeMap.includes(value)\n}\n\nexport function transformSize<Y = string>(\n token: string | undefined,\n value: number,\n omitTokens: null | string[] = null,\n): undefined | Y {\n if (!token) return undefined\n\n let resolvedSizeMap = sizeMap\n\n if (omitTokens)\n resolvedSizeMap = sizeMap.filter((size) => !omitTokens.includes(size))\n\n const index = resolvedSizeMap.indexOf(token)\n const size = resolvedSizeMap[index + value]\n\n return (size ?? token) as Y\n}\n\nexport function toCamelCase(value: AnyString): string {\n return value\n .replace(/[_-](.)/g, (_, val) => val.toUpperCase())\n .replace(/^(.)/, (_, val) => val.toLowerCase())\n}\n\nexport function toPascalCase(value: AnyString): string {\n return value\n .replace(/[_-](.)/g, (_, val) => val.toUpperCase())\n .replace(/^(.)/, (_, val) => val.toUpperCase())\n}\n\nexport function toKebabCase(value: AnyString): string {\n return value\n .replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, \"$1-$2\")\n .toLowerCase()\n .replace(/^-/, \"\")\n}\n\nexport function toTitleCase(value: AnyString): string {\n return value\n .replace(/([A-Z])/g, \" $1\")\n .replace(/[_-](.)/g, (_, val) => ` ${val.toUpperCase()}`)\n .replace(/^./, (str) => str.toUpperCase())\n .trim()\n}\n\nexport function bem(block: string, element?: string, modifier?: string) {\n let className = block\n\n if (element) className += `__${element}`\n if (modifier) className += `--${modifier}`\n\n return className\n}\n"],"mappings":";;;AAGA,SAAgB,GAAG,GAAG,YAAoC;AACxD,QAAO,WACJ,OAAO,CAAC,eAAe,YAAY,UAAU,CAAC,CAC9C,IAAI,CAAC,cAAc,UAAU,MAAM,CAAC,CACpC,KAAK,IAAI;AACb;AAED,SAAgB,OAAOA,OAAe,eAAe,IAAY;AAC/D,QAAO,MAAM,QAAQ,QAAQ,aAAa;AAC3C;AAED,SAAgB,QAAQA,OAAuB;AAC7C,SAAQ,OAAR;EACE,KAAK,MACH,QAAO;EAET,KAAK,SACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,MACH,QAAO;EAET,KAAK,IACH,QAAO;EAET,KAAK,IACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,WACH,QAAO;EAET,KAAK,aACH,QAAO;EAET,KAAK,KACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,SACH,QAAO;EAET,QACE,QAAO;CACV;AACF;AAED,MAAMC,UAAuB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AAED,SAAgB,OAAOC,OAAqB;AAC1C,QAAO,SAAS,MAAM,IAAI,QAAQ,SAAS,MAAM;AAClD;AAED,SAAgB,cACdC,OACAC,OACAC,aAA8B,MACf;AACf,MAAK,MAAO;CAEZ,IAAI,kBAAkB;AAEtB,KAAI,WACF,mBAAkB,QAAQ,OAAO,CAACC,YAAU,WAAW,SAASA,OAAK,CAAC;CAExE,MAAM,QAAQ,gBAAgB,QAAQ,MAAM;CAC5C,MAAM,OAAO,gBAAgB,QAAQ;AAErC,QAAQ,QAAQ;AACjB;AAED,SAAgB,YAAYC,OAA0B;AACpD,QAAO,MACJ,QAAQ,YAAY,CAAC,GAAG,QAAQ,IAAI,aAAa,CAAC,CAClD,QAAQ,QAAQ,CAAC,GAAG,QAAQ,IAAI,aAAa,CAAC;AAClD;AAED,SAAgB,aAAaA,OAA0B;AACrD,QAAO,MACJ,QAAQ,YAAY,CAAC,GAAG,QAAQ,IAAI,aAAa,CAAC,CAClD,QAAQ,QAAQ,CAAC,GAAG,QAAQ,IAAI,aAAa,CAAC;AAClD;AAED,SAAgB,YAAYA,OAA0B;AACpD,QAAO,MACJ,QAAQ,gCAAgC,QAAQ,CAChD,aAAa,CACb,QAAQ,MAAM,GAAG;AACrB;AAED,SAAgB,YAAYA,OAA0B;AACpD,QAAO,MACJ,QAAQ,YAAY,MAAM,CAC1B,QAAQ,YAAY,CAAC,GAAG,SAAS,GAAG,IAAI,aAAa,GAAG,CACxD,QAAQ,MAAM,CAAC,QAAQ,IAAI,aAAa,CAAC,CACzC,MAAM;AACV;AAED,SAAgB,IAAIC,OAAeC,SAAkBC,UAAmB;CACtE,IAAI,YAAY;AAEhB,KAAI,QAAS,eAAc,IAAI;AAC/B,KAAI,SAAU,eAAc,IAAI;AAEhC,QAAO;AACR"}
1
+ {"version":3,"file":"string.js","names":["sizeMap: AnyString[]"],"sources":["../../src/string.ts"],"sourcesContent":["import type { AnyString } from \"./index.types\"\nimport { isString } from \"./assertion\"\n\nexport function cx(...classNames: (string | undefined)[]) {\n return classNames\n .filter((className) => !!className)\n .map((className) => className!.trim())\n .join(\" \")\n}\n\nexport function escape(value: string, replaceValue = \"\"): string {\n return value.replace(/\\s+/g, replaceValue)\n}\n\nexport function antonym(value: string): string {\n switch (value) {\n case \"top\":\n return \"bottom\"\n\n case \"bottom\":\n return \"top\"\n\n case \"left\":\n return \"right\"\n\n case \"right\":\n return \"left\"\n\n case \"start\":\n return \"end\"\n\n case \"end\":\n return \"start\"\n\n case \"x\":\n return \"y\"\n\n case \"y\":\n return \"x\"\n\n case \"enter\":\n return \"exit\"\n\n case \"exit\":\n return \"enter\"\n\n case \"vertical\":\n return \"horizontal\"\n\n case \"horizontal\":\n return \"vertical\"\n\n case \"up\":\n return \"down\"\n\n case \"down\":\n return \"up\"\n\n case \"block\":\n return \"inline\"\n\n case \"inline\":\n return \"block\"\n\n default:\n return value\n }\n}\n\nconst sizeMap: AnyString[] = [\n \"9xs\",\n \"8xs\",\n \"7xs\",\n \"6xs\",\n \"5xs\",\n \"4xs\",\n \"3xs\",\n \"2xs\",\n \"xs\",\n \"sm\",\n \"md\",\n \"lg\",\n \"xl\",\n \"2xl\",\n \"3xl\",\n \"4xl\",\n \"5xl\",\n \"6xl\",\n \"7xl\",\n \"8xl\",\n \"9xl\",\n]\n\nexport function isSize(value: any): boolean {\n return isString(value) && sizeMap.includes(value)\n}\n\nexport function transformSize<Y = string>(\n token: string | undefined,\n value: number,\n omitTokens: null | string[] = null,\n): undefined | Y {\n if (!token) return undefined\n\n let resolvedSizeMap = sizeMap\n\n if (omitTokens)\n resolvedSizeMap = sizeMap.filter((size) => !omitTokens.includes(size))\n\n const index = resolvedSizeMap.indexOf(token)\n const size = resolvedSizeMap[index + value]\n\n return (size ?? token) as Y\n}\n\nexport function toCamelCase(value: AnyString): string {\n return value\n .replace(/[_-](.)/g, (_, val) => val.toUpperCase())\n .replace(/^(.)/, (_, val) => val.toLowerCase())\n}\n\nexport function toPascalCase(value: AnyString): string {\n return value\n .replace(/[_-](.)/g, (_, val) => val.toUpperCase())\n .replace(/^(.)/, (_, val) => val.toUpperCase())\n}\n\nexport function toKebabCase(value: AnyString): string {\n return value\n .replace(/([a-z0-9]|(?=[A-Z]))([A-Z])/g, \"$1-$2\")\n .toLowerCase()\n .replace(/^-/, \"\")\n}\n\nexport function toTitleCase(value: AnyString): string {\n return value\n .replace(/([A-Z])/g, \" $1\")\n .replace(/[_-](.)/g, (_, val) => ` ${val.toUpperCase()}`)\n .replace(/^./, (str) => str.toUpperCase())\n .trim()\n}\n\nexport function bem(block: string, element?: string, modifier?: string) {\n let className = block\n\n if (element) className += `__${element}`\n if (modifier) className += `--${modifier}`\n\n return className\n}\n"],"mappings":";;;AAGA,SAAgB,GAAG,GAAG,YAAoC;AACxD,QAAO,WACJ,QAAQ,cAAc,CAAC,CAAC,UAAU,CAClC,KAAK,cAAc,UAAW,MAAM,CAAC,CACrC,KAAK,IAAI;;AAGd,SAAgB,OAAO,OAAe,eAAe,IAAY;AAC/D,QAAO,MAAM,QAAQ,QAAQ,aAAa;;AAG5C,SAAgB,QAAQ,OAAuB;AAC7C,SAAQ,OAAR;EACE,KAAK,MACH,QAAO;EAET,KAAK,SACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,MACH,QAAO;EAET,KAAK,IACH,QAAO;EAET,KAAK,IACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,WACH,QAAO;EAET,KAAK,aACH,QAAO;EAET,KAAK,KACH,QAAO;EAET,KAAK,OACH,QAAO;EAET,KAAK,QACH,QAAO;EAET,KAAK,SACH,QAAO;EAET,QACE,QAAO;;;AAIb,MAAMA,UAAuB;CAC3B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,SAAgB,OAAO,OAAqB;AAC1C,QAAO,SAAS,MAAM,IAAI,QAAQ,SAAS,MAAM;;AAGnD,SAAgB,cACd,OACA,OACA,aAA8B,MACf;AACf,KAAI,CAAC,MAAO,QAAO;CAEnB,IAAI,kBAAkB;AAEtB,KAAI,WACF,mBAAkB,QAAQ,QAAQ,SAAS,CAAC,WAAW,SAAS,KAAK,CAAC;CAExE,MAAM,QAAQ,gBAAgB,QAAQ,MAAM;AAG5C,QAFa,gBAAgB,QAAQ,UAErB;;AAGlB,SAAgB,YAAY,OAA0B;AACpD,QAAO,MACJ,QAAQ,aAAa,GAAG,QAAQ,IAAI,aAAa,CAAC,CAClD,QAAQ,SAAS,GAAG,QAAQ,IAAI,aAAa,CAAC;;AAGnD,SAAgB,aAAa,OAA0B;AACrD,QAAO,MACJ,QAAQ,aAAa,GAAG,QAAQ,IAAI,aAAa,CAAC,CAClD,QAAQ,SAAS,GAAG,QAAQ,IAAI,aAAa,CAAC;;AAGnD,SAAgB,YAAY,OAA0B;AACpD,QAAO,MACJ,QAAQ,gCAAgC,QAAQ,CAChD,aAAa,CACb,QAAQ,MAAM,GAAG;;AAGtB,SAAgB,YAAY,OAA0B;AACpD,QAAO,MACJ,QAAQ,YAAY,MAAM,CAC1B,QAAQ,aAAa,GAAG,QAAQ,IAAI,IAAI,aAAa,GAAG,CACxD,QAAQ,OAAO,QAAQ,IAAI,aAAa,CAAC,CACzC,MAAM;;AAGX,SAAgB,IAAI,OAAe,SAAkB,UAAmB;CACtE,IAAI,YAAY;AAEhB,KAAI,QAAS,cAAa,KAAK;AAC/B,KAAI,SAAU,cAAa,KAAK;AAEhC,QAAO"}
@@ -11,13 +11,14 @@ declare function isBoolean(value: any): value is boolean;
11
11
  declare function isUndefined(value: any): value is undefined;
12
12
  declare function isNull(value: any): value is null;
13
13
  declare function isRegExp(value: any): value is RegExp;
14
- declare function isObject<T extends Dict>(value: any): value is T;
15
- declare function isArray<T extends any[]>(value: any): value is T;
14
+ declare function isObject<Y extends Dict>(value: any): value is Y;
15
+ declare function isDate(value: any): value is Date;
16
+ declare function isArray<Y extends any[]>(value: any): value is Y;
16
17
  declare function isEmpty(value: any): boolean;
17
18
  declare function isEmptyObject(value: any): boolean;
18
- declare function isFunction<T extends Function = Function>(value: any): value is T;
19
+ declare function isFunction<Y extends Function = Function>(value: any): value is Y;
19
20
  declare function isUnit(value: any): boolean;
20
- declare function cast<T>(value: any): T;
21
+ declare function cast<Y>(value: any): Y;
21
22
  //#endregion
22
- export { cast, is, isArray, isBoolean, isBooleanish, isEmpty, isEmptyObject, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isRegExp, isString, isUndefined, isUnit };
23
+ export { cast, is, isArray, isBoolean, isBooleanish, isDate, isEmpty, isEmptyObject, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isRegExp, isString, isUndefined, isUnit };
23
24
  //# sourceMappingURL=assertion.d.ts.map
@@ -2,7 +2,7 @@
2
2
  type ColorFormat = "hex" | "hexa" | "hsl" | "hsla" | "rgb" | "rgba";
3
3
  declare const SEMANTIC_COLOR_SCHEMES: readonly ["mono", "primary", "secondary", "info", "success", "warning", "danger", "error", "link"];
4
4
  declare const DEFAULT_COLOR_SCHEMES: readonly ["gray", "red", "rose", "pink", "flashy", "orange", "amber", "yellow", "lime", "green", "emerald", "teal", "cyan", "sky", "blue", "indigo", "violet", "purple", "fuchsia"];
5
- declare const COLOR_SCHEMES: ("link" | "error" | "mono" | "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "gray" | "red" | "rose" | "pink" | "flashy" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia")[];
5
+ declare const COLOR_SCHEMES: ("mono" | "primary" | "secondary" | "info" | "success" | "warning" | "danger" | "error" | "link" | "gray" | "red" | "rose" | "pink" | "flashy" | "orange" | "amber" | "yellow" | "lime" | "green" | "emerald" | "teal" | "cyan" | "sky" | "blue" | "indigo" | "violet" | "purple" | "fuchsia")[];
6
6
  declare const TONES: readonly [50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950];
7
7
  declare function convertColor(color: string, fallback?: string): (format: ColorFormat) => string | undefined;
8
8
  declare function calcFormat(color: string): ColorFormat;
@@ -45,6 +45,7 @@ declare function isTabbableElement(el: HTMLElement | null): el is HTMLElement;
45
45
  declare function contains(parent?: EventTarget | HTMLElement | null, child?: EventTarget | HTMLElement | null): boolean;
46
46
  declare function getPx(value: number | string | undefined): number;
47
47
  declare function getTabIndex(node: HTMLElement | SVGElement): number;
48
+ declare function isTruthyDataAttr(condition: any): boolean;
48
49
  declare function dataAttr(condition: any): string | undefined;
49
50
  type Booleanish = "false" | "true" | boolean;
50
51
  declare function ariaAttr(condition: any): Booleanish | undefined;
@@ -57,5 +58,5 @@ declare function setStyle(el: HTMLElement | null | undefined, style: Partial<CSS
57
58
  }>): () => void;
58
59
  declare function scrollLock(el: Document | Element | Node | null | undefined | Window): (() => void) | undefined;
59
60
  //#endregion
60
- export { ariaAttr, contains, createdDom, dataAttr, getActiveElement, getDocument, getDocumentElement, getFirstFocusableElement, getFirstTabbableElement, getFocusableElements, getLastTabbableElement, getNextTabbableElement, getNodeName, getParentNode, getPlatform, getPx, getTabIndex, getTabbableElementEdges, getTabbableElements, getUserAgent, getWindow, isActiveElement, isAndroid, isApple, isChrome, isDisabledElement, isDocument, isEditableElement, isFirefox, isFocusableElement, isFrame, isHTMLElement, isHiddenElement, isIPad, isIPhone, isInputElement, isIos, isMac, isNode, isSafari, isShadowRoot, isTabbableElement, isTouchDevice, isVisibleElement, isVisualViewport, isWebKit, isWindow, platform, scrollLock, setAttribute, setStyle, userAgent, uuid, vendor };
61
+ export { ariaAttr, contains, createdDom, dataAttr, getActiveElement, getDocument, getDocumentElement, getFirstFocusableElement, getFirstTabbableElement, getFocusableElements, getLastTabbableElement, getNextTabbableElement, getNodeName, getParentNode, getPlatform, getPx, getTabIndex, getTabbableElementEdges, getTabbableElements, getUserAgent, getWindow, isActiveElement, isAndroid, isApple, isChrome, isDisabledElement, isDocument, isEditableElement, isFirefox, isFocusableElement, isFrame, isHTMLElement, isHiddenElement, isIPad, isIPhone, isInputElement, isIos, isMac, isNode, isSafari, isShadowRoot, isTabbableElement, isTouchDevice, isTruthyDataAttr, isVisibleElement, isVisualViewport, isWebKit, isWindow, platform, scrollLock, setAttribute, setStyle, userAgent, uuid, vendor };
61
62
  //# sourceMappingURL=dom.d.ts.map
@@ -1,8 +1,8 @@
1
1
  //#region src/function.d.ts
2
2
  declare const noop: () => void;
3
- declare function runIfFn<T, U extends any[]>(valOrFunc: ((...funcArgs: U) => T) | T, ...args: U): T;
4
- declare function handlerAll<T extends (event: any, ...args: any[]) => void>(...funcs: (null | T | undefined)[]): (event: T extends ((event: infer R, ...args: any[]) => any) ? R : never, ...args: T extends ((event: any, ...args: infer R) => any) ? R : never) => void;
5
- declare function fnAll<T extends (...args: any[]) => any>(...funcs: (null | T | undefined)[]): (...args: T extends ((...args: infer R) => any) ? R : never) => void;
3
+ declare function runIfFn<Y, U extends any[]>(valOrFn: ((...args: U) => Y) | Y, ...args: U): Y;
4
+ declare function handlerAll<Y extends (ev: any, ...args: any[]) => void>(...fns: (null | undefined | Y)[]): (ev: Y extends ((ev: infer R, ...args: any[]) => any) ? R : never, ...args: Y extends ((ev: any, ...args: infer R) => any) ? R : never) => void;
5
+ declare function fnAll<Y extends (...args: any[]) => any>(...fns: (null | undefined | Y)[]): (...args: Y extends ((...args: infer R) => any) ? R : never) => void;
6
6
  //#endregion
7
7
  export { fnAll, handlerAll, noop, runIfFn };
8
8
  //# sourceMappingURL=function.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import { filterEmpty, toArray } from "./array.js";
2
- import { AnyString, Booleanish, Dict, Length, Merge, Path, Primitive, Value } from "./index.types.js";
3
- import { cast, is, isArray, isBoolean, isBooleanish, isEmpty, isEmptyObject, isFunction, isNotNumber, isNull, isNumber, isNumeric, isObject, isRegExp, isString, isUndefined, isUnit } from "./assertion.js";
2
+ import { AnyString, Booleanish, DeepMerge, DeepPartial, Dict, FunctionOrValue, Length, Merge, Path, Prettify, Primitive, Value } from "./index.types.js";
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 { Operand, 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";
6
- import { ariaAttr, contains, createdDom, dataAttr, getActiveElement, getDocument, getDocumentElement, getFirstFocusableElement, getFirstTabbableElement, getFocusableElements, getLastTabbableElement, getNextTabbableElement, getNodeName, getParentNode, getPlatform, getPx, getTabIndex, getTabbableElementEdges, getTabbableElements, getUserAgent, getWindow, isActiveElement, isAndroid, isApple, isChrome, isDisabledElement, isDocument, isEditableElement, isFirefox, isFocusableElement, isFrame, isHTMLElement, isHiddenElement, isIPad, isIPhone, isInputElement, isIos, isMac, isNode, isSafari, isShadowRoot, isTabbableElement, isTouchDevice, isVisibleElement, isVisualViewport, isWebKit, isWindow, platform, scrollLock, setAttribute, setStyle, userAgent, uuid, vendor } from "./dom.js";
6
+ import { ariaAttr, contains, createdDom, dataAttr, getActiveElement, getDocument, getDocumentElement, getFirstFocusableElement, getFirstTabbableElement, getFocusableElements, getLastTabbableElement, getNextTabbableElement, getNodeName, getParentNode, getPlatform, getPx, getTabIndex, getTabbableElementEdges, getTabbableElements, getUserAgent, getWindow, isActiveElement, isAndroid, isApple, isChrome, isDisabledElement, isDocument, isEditableElement, isFirefox, isFocusableElement, isFrame, isHTMLElement, isHiddenElement, isIPad, isIPhone, isInputElement, isIos, isMac, isNode, isSafari, isShadowRoot, isTabbableElement, isTouchDevice, isTruthyDataAttr, isVisibleElement, isVisualViewport, isWebKit, isWindow, platform, scrollLock, setAttribute, setStyle, userAgent, uuid, vendor } from "./dom.js";
7
7
  import { AnyPointerEvent, EventMap, EventType, Point, addDomEvent, focusTransfer, focusTrap, getEventPoint, getEventWindow, isMouseEvent, isMultiTouchEvent, isTouchEvent, pointFromMouse, pointFromTouch } from "./event.js";
8
8
  import { fnAll, handlerAll, noop, runIfFn } from "./function.js";
9
9
  import { isRtl } from "./i18n.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, filterObject, filterUndefined, flattenObject, getMemoizedObject, getObject, memoizeObject, merge, mergeOptions, objectKeys, omitObject, pickObject, replaceObject, splitObject, wrapWithKey } from "./object.js";
13
13
  import { antonym, bem, cx, escape, isSize, toCamelCase, toKebabCase, toPascalCase, toTitleCase, transformSize } from "./string.js";
14
- export { AnyPointerEvent, AnyString, Booleanish, COLOR_SCHEMES, ColorFormat, DEFAULT_COLOR_SCHEMES, Dict, EventMap, EventType, FlattenObjectOptions, Length, Merge, Operand, Path, Point, Primitive, SEMANTIC_COLOR_SCHEMES, TONES, Value, addDomEvent, alphaToHex, antonym, ariaAttr, bem, calc, calcFormat, cast, clampNumber, contains, convertColor, countDecimal, createdDom, cx, dataAttr, escape, 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, 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, isUndefined, isUnit, isVisibleElement, isVisualViewport, isWebKit, isWindow, memoizeObject, merge, mergeOptions, 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, wrapWithKey };
14
+ export { AnyPointerEvent, AnyString, Booleanish, COLOR_SCHEMES, ColorFormat, DEFAULT_COLOR_SCHEMES, DeepMerge, DeepPartial, Dict, EventMap, EventType, FlattenObjectOptions, FunctionOrValue, Length, Merge, Operand, Path, Point, Prettify, Primitive, SEMANTIC_COLOR_SCHEMES, TONES, Value, addDomEvent, alphaToHex, antonym, ariaAttr, bem, calc, calcFormat, cast, clampNumber, contains, convertColor, countDecimal, createdDom, cx, dataAttr, escape, 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, memoizeObject, merge, mergeOptions, 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, wrapWithKey };
@@ -6,10 +6,14 @@ type Value<Y extends Dict, M extends string> = M extends `${infer D}.${infer H}`
6
6
  interface Dict<Y = any> {
7
7
  [key: string]: Y;
8
8
  }
9
+ type Prettify<Y> = { [M in keyof Y]: Y[M] } & {};
10
+ type FunctionOrValue<Y, M> = ((props: Y) => M) | M;
9
11
  type AnyString = string & {};
10
12
  type Booleanish<Y> = Y extends "false" | "true" ? boolean : Y;
11
- type Length<T extends any[]> = T["length"];
13
+ type Length<Y extends any[]> = Y["length"];
12
14
  type Merge<Y, M> = M & Omit<Y, keyof M>;
15
+ type DeepMerge<Y, M> = Y extends any[] | Date | Function | 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
+ type DeepPartial<Y> = Y extends any[] | Date | Function | Primitive ? Y : { [P in keyof Y]?: DeepPartial<Y[P]> };
13
17
  //#endregion
14
- export { AnyString, Booleanish, Dict, Length, Merge, Path, Primitive, Value };
18
+ export { AnyString, Booleanish, DeepMerge, DeepPartial, Dict, FunctionOrValue, Length, Merge, Path, Prettify, Primitive, Value };
15
19
  //# sourceMappingURL=index.types.d.ts.map
@@ -1,5 +1,5 @@
1
1
  //#region src/module.d.ts
2
- declare function interopDefault<T>(module: T): T;
2
+ declare function interopDefault<Y>(module: Y): Y;
3
3
  //#endregion
4
4
  export { interopDefault };
5
5
  //# sourceMappingURL=module.d.ts.map
@@ -28,8 +28,8 @@ declare function replaceObject<Y = any>(objOrArray: Y, callBack: (value: any) =>
28
28
  declare function getObject(obj: Dict | undefined, path: number | string, fallback?: any): any;
29
29
  declare function memoizeObject(func: typeof getObject): <Y>(obj: Dict, path: number | string, fallback?: any) => Y;
30
30
  declare const getMemoizedObject: <Y>(obj: Dict, path: number | string, fallback?: any) => Y;
31
- declare function wrapWithKey<T>(obj: T, key?: string): T | {
32
- [key]: T;
31
+ declare function wrapWithKey<Y>(obj: Y, key?: string): Y | {
32
+ [key]: Y;
33
33
  };
34
34
  //#endregion
35
35
  export { FlattenObjectOptions, filterObject, filterUndefined, flattenObject, getMemoizedObject, getObject, memoizeObject, merge, mergeOptions, objectKeys, omitObject, pickObject, replaceObject, splitObject, wrapWithKey };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@yamada-ui/utils",
3
3
  "type": "module",
4
- "version": "2.0.0-next-20250710072846",
4
+ "version": "2.0.1-dev-20251017110502",
5
5
  "description": "The utilities for Yamada UI projects",
6
6
  "keywords": [
7
7
  "utils",
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "devDependencies": {
36
36
  "clean-package": "2.2.0",
37
- "react": "^19.1.0"
37
+ "react": "^19.2.0"
38
38
  },
39
39
  "peerDependencies": {
40
40
  "react": ">=19"
@@ -56,11 +56,14 @@
56
56
  "./package.json": "./package.json"
57
57
  },
58
58
  "scripts": {
59
- "clean": "rimraf dist .turbo .eslintcache",
59
+ "clean": "rimraf node_modules dist trace coverage .turbo .eslintcache",
60
60
  "build": "tsdown",
61
61
  "test": "vitest",
62
+ "test:coverage": "vitest run --coverage",
62
63
  "test:dev": "vitest --watch --ui",
63
64
  "typecheck": "tsc --noEmit",
65
+ "typetrace": "tsc --noEmit --generateTrace ./trace --incremental false",
66
+ "typeanalyze": "npx analyze-trace ./trace --expandTypes=false",
64
67
  "lint": "eslint . --max-warnings=0 --cache",
65
68
  "format": "prettier . --ignore-path ../../.prettierignore --check --cache"
66
69
  }
File without changes
File without changes