{"version":3,"sources":["../src/index.ts","../src/hooks/use-boolean.tsx","../src/hooks/use-string.tsx","../src/hooks/use-number.tsx","../src/hooks/use-array.tsx","../src/hooks/use-object.tsx"],"sourcesContent":["export * from './hooks/use-boolean';\nexport * from './hooks/use-string';\nexport * from './hooks/use-number';\nexport * from './hooks/use-array';\nexport * from './hooks/use-object';\n","import { useState, useCallback, Dispatch, SetStateAction } from 'react';\n\n/**\n * A custom hook that provides a boolean state with utility functions to manipulate it.\n *\n * @param {boolean} [initialValue=false] - The initial value of the boolean state (default `false`).\n * @returns {[\n *   value: boolean,\n *   setValue: Dispatch<SetStateAction<boolean>>,\n *   setTrue: () => void,\n *   setFalse: () => void,\n *   toggle: () => void,\n *   reset: () => void\n * ]}\n * An array/tuple containing:\n * - `value`: The current boolean state.\n * - `setValue`: A function to set the state.\n * - `setTrue`: A function to set the state to true.\n * - `setFalse`: A function to set the state to false.\n * - `toggle`: A function to toggle the state.\n * - `reset`: A function to reset the state to the initial value.\n */\nexport const useBoolean = (\n  initialValue: boolean = false\n): [\n  value: boolean,\n  setValue: Dispatch<SetStateAction<boolean>>,\n  setTrue: () => void,\n  setFalse: () => void,\n  toggle: () => void,\n  reset: () => void\n] => {\n  const [value, setValue] = useState<boolean>(initialValue);\n\n  const setTrue = useCallback(() => setValue(true), []);\n  const setFalse = useCallback(() => setValue(false), []);\n  const toggle = useCallback(() => setValue((prev) => !prev), []);\n  const reset = useCallback(() => setValue(initialValue), [initialValue]);\n\n  return [value, setValue, setTrue, setFalse, toggle, reset] as const;\n};\n","import { useState, useCallback } from 'react';\n\n/**\n * A custom hook that provides a string state with utility functions to manipulate it.\n *\n * @param {string} [initialValue=''] - The initial value of the string state (default `''`).\n * @returns {[\n *   value: string,\n *   setValue: React.Dispatch<React.SetStateAction<string>>,\n *   transform: (type: StringTransformType) => void,\n *   reset: () => void\n * ]}\n * An array/tuple containing:\n * - `value`: The current string state.\n * - `setValue`: A function to set the state.\n * - `transform`: A function to transform the string state based on the specified type.\n * - `reset`: A function to reset the state to the initial value.\n */\nexport type StringTransformType = 'lowercase' | 'uppercase' | 'capitalize' | 'pascal-case' | 'camel-case' | 'kebab-case' | 'snake-case';\n\nexport const useString = (\n  initialValue: string = ''\n): [value: string, setValue: React.Dispatch<React.SetStateAction<string>>, transform: (type: StringTransformType) => void, reset: () => void] => {\n  const [value, setValue] = useState<string>(initialValue);\n\n  const transform = useCallback((type: StringTransformType) => {\n    switch (type) {\n      case 'lowercase':\n        setValue((prev) => prev.toLowerCase());\n        break;\n      case 'uppercase':\n        setValue((prev) => prev.toUpperCase());\n        break;\n      case 'capitalize':\n        setValue((prev) => prev.charAt(0).toUpperCase() + prev.slice(1));\n        break;\n      case 'pascal-case':\n        setValue((prev) =>\n          prev\n            .split(/[-_\\s]+/)\n            .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n            .join('')\n        );\n        break;\n      case 'camel-case':\n        setValue((prev) =>\n          prev\n            .split(/[-_\\s]+/)\n            .map((word, index) => (index === 0 ? word.toLowerCase() : word.charAt(0).toUpperCase() + word.slice(1)))\n            .join('')\n        );\n        break;\n      case 'kebab-case':\n        setValue((prev) => prev.toLowerCase().replace(/[\\s_]+/g, '-'));\n        break;\n      case 'snake-case':\n        setValue((prev) => prev.toLowerCase().replace(/[\\s-]+/g, '_'));\n        break;\n      default:\n        break;\n    }\n  }, []);\n\n  const reset = useCallback(() => {\n    setValue(initialValue);\n  }, [initialValue]);\n\n  return [value, setValue, transform, reset] as const;\n};\n","import { useState, useCallback } from 'react';\n\n/**\n * A custom hook that provides a number state with utility functions to manipulate it.\n *\n * @param {number} [initialValue=0] - The initial value of the number state (default `0`).\n * @returns {[\n *   value: number,\n *   setValue: React.Dispatch<React.SetStateAction<number>>,\n *   increment: (step?: number) => void,\n *   decrement: (step?: number) => void,\n *   multiply: (factor: number) => void,\n *   divide: (divisor: number) => void,\n *   reset: () => void,\n *   setMin: (min: number) => void\n *   setMax: (max: number) => void\n * ]}\n * An array/tuple containing:\n * - `value`: The current number state.\n * - `setValue`: A function to set the state.\n * - `increment`: A function to increment the state by a given step.\n * - `decrement`: A function to decrement the state by a given step.\n * - `multiply`: A function to multiply the state by a given factor.\n * - `divide`: A function to divide the state by a given divisor.\n * - `reset`: A function to reset the state to the initial value.\n * - `setMin`: A function to set the state to the maximum of the current state and a given minimum value.\n * - `setMax`: A function to set the state to the minimum of the current state and a given maximum value.\n */\nexport const useNumber = (\n  initialValue: number = 0\n): [\n  value: number,\n  setValue: React.Dispatch<React.SetStateAction<number>>,\n  increment: (step?: number) => void,\n  decrement: (step?: number) => void,\n  multiply: (factor: number) => void,\n  divide: (divisor: number) => void,\n  reset: () => void,\n  setMin: (min: number) => void,\n  setMax: (max: number) => void\n] => {\n  const [value, setValue] = useState<number>(initialValue);\n\n  const increment = useCallback((step: number = 1) => {\n    setValue((prev) => prev + step);\n  }, []);\n\n  const decrement = useCallback((step: number = 1) => {\n    setValue((prev) => prev - step);\n  }, []);\n\n  const multiply = useCallback((factor: number) => {\n    setValue((prev) => prev * factor);\n  }, []);\n\n  const divide = useCallback((divisor: number) => {\n    if (divisor === 0) return;\n    setValue((prev) => prev / divisor);\n  }, []);\n\n  const reset = useCallback(() => {\n    setValue(initialValue);\n  }, [initialValue]);\n\n  const setMin = useCallback((min: number) => {\n    setValue((prev) => Math.max(prev, min));\n  }, []);\n\n  const setMax = useCallback((max: number) => {\n    setValue((prev) => Math.min(prev, max));\n  }, []);\n\n  return [value, setValue, increment, decrement, multiply, divide, reset, setMin, setMax] as const;\n};\n","import { useState, useCallback } from 'react';\n\n/**\n * A custom hook that provides an array state with utility functions to manipulate it.\n *\n * @template T - The type of elements in the array.\n * @param {T[]} [initialValue=[]] - The initial value of the array state (default `[]`).\n * @returns {[\n *   value: T[],\n *   setValue: React.Dispatch<React.SetStateAction<T[]>>,\n *   push: (item: T) => void,\n *   pop: () => void,\n *   shift: () => void,\n *   unshift: (item: T) => void,\n *   clear: () => void,\n *   reset: () => void\n * ]}\n * An array/tuple containing:\n * - `value`: The current array state.\n * - `setValue`: A function to set the state.\n * - `push`: A function to add an item to the end of the array.\n * - `pop`: A function to remove the last item from the array.\n * - `shift`: A function to remove the first item from the array.\n * - `unshift`: A function to add an item to the beginning of the array.\n * - `clear`: A function to clear the array.\n * - `reset`: A function to reset the array to the initial value.\n */\nexport const useArray = <T,>(\n  initialValue: T[] = []\n): [\n  value: T[],\n  setValue: React.Dispatch<React.SetStateAction<T[]>>,\n  push: (item: T) => void,\n  pop: () => void,\n  shift: () => void,\n  unshift: (item: T) => void,\n  clear: () => void,\n  reset: () => void\n] => {\n  const [value, setValue] = useState<T[]>(initialValue);\n\n  const push = useCallback((item: T) => {\n    setValue((prev) => [...prev, item]);\n  }, []);\n\n  const pop = useCallback(() => {\n    setValue((prev) => prev.slice(0, -1));\n  }, []);\n\n  const shift = useCallback(() => {\n    setValue((prev) => prev.slice(1));\n  }, []);\n\n  const unshift = useCallback((item: T) => {\n    setValue((prev) => [item, ...prev]);\n  }, []);\n\n  const clear = useCallback(() => {\n    setValue([]);\n  }, []);\n\n  const reset = useCallback(() => {\n    setValue(initialValue);\n  }, [initialValue]);\n\n  return [value, setValue, push, pop, shift, unshift, clear, reset] as const;\n};\n","import { useState, useCallback } from 'react';\n\n/**\n * A custom hook that provides an object state with utility functions to manipulate it.\n *\n * @template T - The type of the object.\n * @param {T} initialValue - The initial value of the object state.\n * @returns {[\n *   value: T,\n *   setValue: React.Dispatch<React.SetStateAction<T>>,\n *   setProperty: <K extends keyof T>(key: K, newValue: T[K]) => void,\n *   removeProperty: <K extends keyof T>(key: K) => void,\n *   clear: () => void,\n *   reset: () => void,\n *   merge: (newObject: Partial<T>) => void\n * ]}\n * An array/tuple containing:\n * - `value`: The current object state.\n * - `setValue`: A function to set the state.\n * - `setProperty`: A function to set a property of the object.\n * - `removeProperty`: A function to remove a property from the object.\n * - `clear`: A function to clear the object.\n * - `reset`: A function to reset the object to the initial value.\n * - `merge`: A function to merge a new object into the current state.\n */\nexport const useObject = <T extends object>(\n  initialValue: T\n): [\n  value: T,\n  setValue: React.Dispatch<React.SetStateAction<T>>,\n  setProperty: <K extends keyof T>(key: K, newValue: T[K]) => void,\n  removeProperty: <K extends keyof T>(key: K) => void,\n  clear: () => void,\n  reset: () => void,\n  merge: (newObject: Partial<T>) => void\n] => {\n  const [value, setValue] = useState<T>(initialValue);\n\n  const setProperty = useCallback(<K extends keyof T>(key: K, newValue: T[K]) => {\n    setValue((prev) => ({\n      ...prev,\n      [key]: newValue,\n    }));\n  }, []);\n\n  const removeProperty = useCallback(<K extends keyof T>(key: K) => {\n    setValue((prev) => {\n      const newValue = { ...prev };\n      delete newValue[key];\n      return newValue;\n    });\n  }, []);\n\n  const clear = useCallback(() => {\n    setValue({} as T);\n  }, []);\n\n  const reset = useCallback(() => {\n    setValue(initialValue);\n  }, [initialValue]);\n\n  const merge = useCallback((newObject: Partial<T>) => {\n    setValue((prev) => ({\n      ...prev,\n      ...newObject,\n    }));\n  }, []);\n\n  return [value, setValue, setProperty, removeProperty, clear, reset, merge] as const;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,mBAAgE;AAsBzD,IAAM,aAAa,CACxB,eAAwB,UAQrB;AACH,QAAM,CAAC,OAAO,QAAQ,QAAI,uBAAkB,YAAY;AAExD,QAAM,cAAU,0BAAY,MAAM,SAAS,IAAI,GAAG,CAAC,CAAC;AACpD,QAAM,eAAW,0BAAY,MAAM,SAAS,KAAK,GAAG,CAAC,CAAC;AACtD,QAAM,aAAS,0BAAY,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;AAC9D,QAAM,YAAQ,0BAAY,MAAM,SAAS,YAAY,GAAG,CAAC,YAAY,CAAC;AAEtE,SAAO,CAAC,OAAO,UAAU,SAAS,UAAU,QAAQ,KAAK;AAC3D;;;ACxCA,IAAAA,gBAAsC;AAoB/B,IAAM,YAAY,CACvB,eAAuB,OACwH;AAC/I,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAiB,YAAY;AAEvD,QAAM,gBAAY,2BAAY,CAAC,SAA8B;AAC3D,YAAQ,MAAM;AAAA,MACZ,KAAK;AACH,iBAAS,CAAC,SAAS,KAAK,YAAY,CAAC;AACrC;AAAA,MACF,KAAK;AACH,iBAAS,CAAC,SAAS,KAAK,YAAY,CAAC;AACrC;AAAA,MACF,KAAK;AACH,iBAAS,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC;AAC/D;AAAA,MACF,KAAK;AACH;AAAA,UAAS,CAAC,SACR,KACG,MAAM,SAAS,EACf,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAC,EAC1D,KAAK,EAAE;AAAA,QACZ;AACA;AAAA,MACF,KAAK;AACH;AAAA,UAAS,CAAC,SACR,KACG,MAAM,SAAS,EACf,IAAI,CAAC,MAAM,UAAW,UAAU,IAAI,KAAK,YAAY,IAAI,KAAK,OAAO,CAAC,EAAE,YAAY,IAAI,KAAK,MAAM,CAAC,CAAE,EACtG,KAAK,EAAE;AAAA,QACZ;AACA;AAAA,MACF,KAAK;AACH,iBAAS,CAAC,SAAS,KAAK,YAAY,EAAE,QAAQ,WAAW,GAAG,CAAC;AAC7D;AAAA,MACF,KAAK;AACH,iBAAS,CAAC,SAAS,KAAK,YAAY,EAAE,QAAQ,WAAW,GAAG,CAAC;AAC7D;AAAA,MACF;AACE;AAAA,IACJ;AAAA,EACF,GAAG,CAAC,CAAC;AAEL,QAAM,YAAQ,2BAAY,MAAM;AAC9B,aAAS,YAAY;AAAA,EACvB,GAAG,CAAC,YAAY,CAAC;AAEjB,SAAO,CAAC,OAAO,UAAU,WAAW,KAAK;AAC3C;;;ACpEA,IAAAC,gBAAsC;AA4B/B,IAAM,YAAY,CACvB,eAAuB,MAWpB;AACH,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAiB,YAAY;AAEvD,QAAM,gBAAY,2BAAY,CAAC,OAAe,MAAM;AAClD,aAAS,CAAC,SAAS,OAAO,IAAI;AAAA,EAChC,GAAG,CAAC,CAAC;AAEL,QAAM,gBAAY,2BAAY,CAAC,OAAe,MAAM;AAClD,aAAS,CAAC,SAAS,OAAO,IAAI;AAAA,EAChC,GAAG,CAAC,CAAC;AAEL,QAAM,eAAW,2BAAY,CAAC,WAAmB;AAC/C,aAAS,CAAC,SAAS,OAAO,MAAM;AAAA,EAClC,GAAG,CAAC,CAAC;AAEL,QAAM,aAAS,2BAAY,CAAC,YAAoB;AAC9C,QAAI,YAAY,EAAG;AACnB,aAAS,CAAC,SAAS,OAAO,OAAO;AAAA,EACnC,GAAG,CAAC,CAAC;AAEL,QAAM,YAAQ,2BAAY,MAAM;AAC9B,aAAS,YAAY;AAAA,EACvB,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,aAAS,2BAAY,CAAC,QAAgB;AAC1C,aAAS,CAAC,SAAS,KAAK,IAAI,MAAM,GAAG,CAAC;AAAA,EACxC,GAAG,CAAC,CAAC;AAEL,QAAM,aAAS,2BAAY,CAAC,QAAgB;AAC1C,aAAS,CAAC,SAAS,KAAK,IAAI,MAAM,GAAG,CAAC;AAAA,EACxC,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,OAAO,UAAU,WAAW,WAAW,UAAU,QAAQ,OAAO,QAAQ,MAAM;AACxF;;;ACzEA,IAAAC,gBAAsC;AA2B/B,IAAM,WAAW,CACtB,eAAoB,CAAC,MAUlB;AACH,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAc,YAAY;AAEpD,QAAM,WAAO,2BAAY,CAAC,SAAY;AACpC,aAAS,CAAC,SAAS,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,EACpC,GAAG,CAAC,CAAC;AAEL,QAAM,UAAM,2BAAY,MAAM;AAC5B,aAAS,CAAC,SAAS,KAAK,MAAM,GAAG,EAAE,CAAC;AAAA,EACtC,GAAG,CAAC,CAAC;AAEL,QAAM,YAAQ,2BAAY,MAAM;AAC9B,aAAS,CAAC,SAAS,KAAK,MAAM,CAAC,CAAC;AAAA,EAClC,GAAG,CAAC,CAAC;AAEL,QAAM,cAAU,2BAAY,CAAC,SAAY;AACvC,aAAS,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;AAAA,EACpC,GAAG,CAAC,CAAC;AAEL,QAAM,YAAQ,2BAAY,MAAM;AAC9B,aAAS,CAAC,CAAC;AAAA,EACb,GAAG,CAAC,CAAC;AAEL,QAAM,YAAQ,2BAAY,MAAM;AAC9B,aAAS,YAAY;AAAA,EACvB,GAAG,CAAC,YAAY,CAAC;AAEjB,SAAO,CAAC,OAAO,UAAU,MAAM,KAAK,OAAO,SAAS,OAAO,KAAK;AAClE;;;AClEA,IAAAC,gBAAsC;AAyB/B,IAAM,YAAY,CACvB,iBASG;AACH,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAY,YAAY;AAElD,QAAM,kBAAc,2BAAY,CAAoB,KAAQ,aAAmB;AAC7E,aAAS,CAAC,UAAU;AAAA,MAClB,GAAG;AAAA,MACH,CAAC,GAAG,GAAG;AAAA,IACT,EAAE;AAAA,EACJ,GAAG,CAAC,CAAC;AAEL,QAAM,qBAAiB,2BAAY,CAAoB,QAAW;AAChE,aAAS,CAAC,SAAS;AACjB,YAAM,WAAW,EAAE,GAAG,KAAK;AAC3B,aAAO,SAAS,GAAG;AACnB,aAAO;AAAA,IACT,CAAC;AAAA,EACH,GAAG,CAAC,CAAC;AAEL,QAAM,YAAQ,2BAAY,MAAM;AAC9B,aAAS,CAAC,CAAM;AAAA,EAClB,GAAG,CAAC,CAAC;AAEL,QAAM,YAAQ,2BAAY,MAAM;AAC9B,aAAS,YAAY;AAAA,EACvB,GAAG,CAAC,YAAY,CAAC;AAEjB,QAAM,YAAQ,2BAAY,CAAC,cAA0B;AACnD,aAAS,CAAC,UAAU;AAAA,MAClB,GAAG;AAAA,MACH,GAAG;AAAA,IACL,EAAE;AAAA,EACJ,GAAG,CAAC,CAAC;AAEL,SAAO,CAAC,OAAO,UAAU,aAAa,gBAAgB,OAAO,OAAO,KAAK;AAC3E;","names":["import_react","import_react","import_react","import_react"]}