@fuf-stack/uniform 0.21.5 → 0.22.0

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 (125) hide show
  1. package/dist/CheckboxGroup/index.cjs +6 -4
  2. package/dist/CheckboxGroup/index.cjs.map +1 -1
  3. package/dist/CheckboxGroup/index.js +5 -3
  4. package/dist/FieldArray/index.cjs +6 -4
  5. package/dist/FieldArray/index.cjs.map +1 -1
  6. package/dist/FieldArray/index.js +5 -3
  7. package/dist/Form/index.cjs +5 -3
  8. package/dist/Form/index.cjs.map +1 -1
  9. package/dist/Form/index.js +4 -2
  10. package/dist/Input/index.cjs +6 -4
  11. package/dist/Input/index.cjs.map +1 -1
  12. package/dist/Input/index.d.cts +3 -2
  13. package/dist/Input/index.d.ts +3 -2
  14. package/dist/Input/index.js +5 -3
  15. package/dist/{Input-oubBKJSg.d.cts → Input-DsBWaOSk.d.ts} +5 -7
  16. package/dist/{Input-oubBKJSg.d.ts → Input-qD-RcDl4.d.cts} +5 -7
  17. package/dist/RadioBoxes/index.cjs +6 -4
  18. package/dist/RadioBoxes/index.cjs.map +1 -1
  19. package/dist/RadioBoxes/index.js +5 -3
  20. package/dist/RadioGroup/index.cjs +6 -4
  21. package/dist/RadioGroup/index.cjs.map +1 -1
  22. package/dist/RadioGroup/index.js +5 -3
  23. package/dist/RadioTabs/index.cjs +6 -4
  24. package/dist/RadioTabs/index.cjs.map +1 -1
  25. package/dist/RadioTabs/index.js +5 -3
  26. package/dist/Select/index.cjs +6 -4
  27. package/dist/Select/index.cjs.map +1 -1
  28. package/dist/Select/index.js +5 -3
  29. package/dist/SubmitButton/index.cjs +5 -3
  30. package/dist/SubmitButton/index.cjs.map +1 -1
  31. package/dist/SubmitButton/index.js +4 -2
  32. package/dist/Switch/index.cjs +6 -4
  33. package/dist/Switch/index.cjs.map +1 -1
  34. package/dist/Switch/index.js +5 -3
  35. package/dist/TextArea/index.cjs +6 -4
  36. package/dist/TextArea/index.cjs.map +1 -1
  37. package/dist/TextArea/index.d.cts +2 -2
  38. package/dist/TextArea/index.d.ts +2 -2
  39. package/dist/TextArea/index.js +5 -3
  40. package/dist/{TextArea-DNpInDsW.d.cts → TextArea-DnFGyl4a.d.cts} +3 -1
  41. package/dist/{TextArea-DNpInDsW.d.ts → TextArea-DnFGyl4a.d.ts} +3 -1
  42. package/dist/{chunk-X4BLYZLW.cjs → chunk-2EYP66KF.cjs} +26 -19
  43. package/dist/chunk-2EYP66KF.cjs.map +1 -0
  44. package/dist/{chunk-QHBFRUXJ.js → chunk-3BE3GUCZ.js} +2 -2
  45. package/dist/{chunk-PYYWIAGC.js → chunk-7QWLAPOT.js} +2 -2
  46. package/dist/{chunk-PYYWIAGC.js.map → chunk-7QWLAPOT.js.map} +1 -1
  47. package/dist/{chunk-BLUXOGQ5.js → chunk-DPOGZE5O.js} +2 -2
  48. package/dist/{chunk-EV2JYVMO.js → chunk-EPY6UDD3.js} +26 -19
  49. package/dist/chunk-EPY6UDD3.js.map +1 -0
  50. package/dist/chunk-G5UX55XC.js +37 -0
  51. package/dist/chunk-G5UX55XC.js.map +1 -0
  52. package/dist/{chunk-WAP6L4MW.cjs → chunk-GKAVSIH3.cjs} +6 -6
  53. package/dist/{chunk-WAP6L4MW.cjs.map → chunk-GKAVSIH3.cjs.map} +1 -1
  54. package/dist/chunk-I2PJDXWB.cjs +102 -0
  55. package/dist/chunk-I2PJDXWB.cjs.map +1 -0
  56. package/dist/{chunk-NF2XBX5E.cjs → chunk-IAMV2JNU.cjs} +6 -6
  57. package/dist/{chunk-NF2XBX5E.cjs.map → chunk-IAMV2JNU.cjs.map} +1 -1
  58. package/dist/{chunk-3HBHQT6M.js → chunk-IZFO7YMQ.js} +5 -5
  59. package/dist/chunk-KMDTMBYI.js +102 -0
  60. package/dist/chunk-KMDTMBYI.js.map +1 -0
  61. package/dist/{chunk-LH6YZ2O5.cjs → chunk-NMYLBRT5.cjs} +9 -9
  62. package/dist/{chunk-LH6YZ2O5.cjs.map → chunk-NMYLBRT5.cjs.map} +1 -1
  63. package/dist/{chunk-HRDUEFZG.js → chunk-NR5MV234.js} +5 -5
  64. package/dist/{chunk-LSNARJIH.js → chunk-O7DOVGO2.js} +5 -5
  65. package/dist/{chunk-NS3JN77D.js → chunk-P3PJSG5J.js} +5 -5
  66. package/dist/{chunk-BK4ZFMD3.cjs → chunk-PL44Y7AM.cjs} +3 -3
  67. package/dist/{chunk-BK4ZFMD3.cjs.map → chunk-PL44Y7AM.cjs.map} +1 -1
  68. package/dist/{chunk-ZNZ5ZB3A.cjs → chunk-QTROOQ53.cjs} +7 -7
  69. package/dist/{chunk-ZNZ5ZB3A.cjs.map → chunk-QTROOQ53.cjs.map} +1 -1
  70. package/dist/{chunk-SQWCZMAR.cjs → chunk-SGXLTMB5.cjs} +6 -6
  71. package/dist/{chunk-SQWCZMAR.cjs.map → chunk-SGXLTMB5.cjs.map} +1 -1
  72. package/dist/{chunk-IE7LRIBW.cjs → chunk-SHB3Z5GN.cjs} +29 -11
  73. package/dist/chunk-SHB3Z5GN.cjs.map +1 -0
  74. package/dist/{chunk-Z7AMEDDV.js → chunk-TCYPTU4E.js} +5 -5
  75. package/dist/chunk-TSB65253.cjs +37 -0
  76. package/dist/chunk-TSB65253.cjs.map +1 -0
  77. package/dist/{chunk-IH622HTJ.cjs → chunk-U3XAM5F4.cjs} +6 -6
  78. package/dist/{chunk-IH622HTJ.cjs.map → chunk-U3XAM5F4.cjs.map} +1 -1
  79. package/dist/{chunk-45LTWIGZ.cjs → chunk-UOTSJ55B.cjs} +6 -6
  80. package/dist/{chunk-45LTWIGZ.cjs.map → chunk-UOTSJ55B.cjs.map} +1 -1
  81. package/dist/{chunk-G5UTMDGM.js → chunk-WRNAIS4U.js} +5 -5
  82. package/dist/{chunk-AQBZLE53.js → chunk-X2PR2IOK.js} +5 -5
  83. package/dist/{chunk-FJZFJWOX.cjs → chunk-XALYGZ3R.cjs} +4 -4
  84. package/dist/{chunk-FJZFJWOX.cjs.map → chunk-XALYGZ3R.cjs.map} +1 -1
  85. package/dist/{chunk-6ON3SM45.js → chunk-XDHY7DXJ.js} +30 -12
  86. package/dist/chunk-XDHY7DXJ.js.map +1 -0
  87. package/dist/{chunk-OHEPPLIL.cjs → chunk-Y6EAPURV.cjs} +2 -2
  88. package/dist/chunk-Y6EAPURV.cjs.map +1 -0
  89. package/dist/hooks/index.cjs +10 -2
  90. package/dist/hooks/index.cjs.map +1 -1
  91. package/dist/hooks/index.d.cts +2 -0
  92. package/dist/hooks/index.d.ts +2 -0
  93. package/dist/hooks/index.js +10 -2
  94. package/dist/hooks/useInputValueDebounce/index.cjs +9 -0
  95. package/dist/hooks/useInputValueDebounce/index.cjs.map +1 -0
  96. package/dist/hooks/useInputValueDebounce/index.d.cts +90 -0
  97. package/dist/hooks/useInputValueDebounce/index.d.ts +90 -0
  98. package/dist/hooks/useInputValueDebounce/index.js +9 -0
  99. package/dist/hooks/useInputValueDebounce/index.js.map +1 -0
  100. package/dist/hooks/useInputValueTransform/index.cjs +8 -0
  101. package/dist/hooks/useInputValueTransform/index.cjs.map +1 -0
  102. package/dist/hooks/useInputValueTransform/index.d.cts +116 -0
  103. package/dist/hooks/useInputValueTransform/index.d.ts +116 -0
  104. package/dist/hooks/useInputValueTransform/index.js +8 -0
  105. package/dist/hooks/useInputValueTransform/index.js.map +1 -0
  106. package/dist/index.cjs +23 -15
  107. package/dist/index.cjs.map +1 -1
  108. package/dist/index.d.cts +4 -2
  109. package/dist/index.d.ts +4 -2
  110. package/dist/index.js +24 -16
  111. package/package.json +11 -1
  112. package/dist/chunk-6ON3SM45.js.map +0 -1
  113. package/dist/chunk-EV2JYVMO.js.map +0 -1
  114. package/dist/chunk-IE7LRIBW.cjs.map +0 -1
  115. package/dist/chunk-OHEPPLIL.cjs.map +0 -1
  116. package/dist/chunk-X4BLYZLW.cjs.map +0 -1
  117. /package/dist/{chunk-QHBFRUXJ.js.map → chunk-3BE3GUCZ.js.map} +0 -0
  118. /package/dist/{chunk-BLUXOGQ5.js.map → chunk-DPOGZE5O.js.map} +0 -0
  119. /package/dist/{chunk-3HBHQT6M.js.map → chunk-IZFO7YMQ.js.map} +0 -0
  120. /package/dist/{chunk-HRDUEFZG.js.map → chunk-NR5MV234.js.map} +0 -0
  121. /package/dist/{chunk-LSNARJIH.js.map → chunk-O7DOVGO2.js.map} +0 -0
  122. /package/dist/{chunk-NS3JN77D.js.map → chunk-P3PJSG5J.js.map} +0 -0
  123. /package/dist/{chunk-Z7AMEDDV.js.map → chunk-TCYPTU4E.js.map} +0 -0
  124. /package/dist/{chunk-G5UTMDGM.js.map → chunk-WRNAIS4U.js.map} +0 -0
  125. /package/dist/{chunk-AQBZLE53.js.map → chunk-X2PR2IOK.js.map} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"sources":["/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-X4BLYZLW.cjs","../src/Input/Input.tsx","../src/Input/index.ts"],"names":["Input_default"],"mappings":"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","file":"/home/runner/work/pixels/pixels/packages/uniform/dist/chunk-X4BLYZLW.cjs","sourcesContent":[null,"import type { ReactNode } from 'react';\n\nimport { Input as HeroInput } from '@heroui/input';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nimport { useController, useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface InputProps {\n /** CSS class name */\n className?: string;\n /** input field is disabled */\n disabled?: boolean;\n /** added content to the end of the input Field. */\n endContent?: ReactNode;\n /** form field label (set to false to disable label) */\n label?: string | false;\n /** form field name */\n name: string;\n /** form field placeholder */\n placeholder?: string;\n /** size of the input */\n size?: 'sm' | 'md' | 'lg';\n /** content added to the start of the input field */\n startContent?: ReactNode;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n /** allows disentangled display and form values for a field */\n transformValue?: {\n /** transforms the formValue of the field to the display value of the field */\n displayValue: (value: string | number) => string | number;\n /** transforms the displayValue of the field to the form value of the field */\n formValue: (value: string) => string | number;\n };\n /** input type */\n type?: 'number' | 'password';\n}\n\n/**\n * Input component based on [HeroUI Input](https://www.heroui.com//docs/components/input)\n */\nconst Input = ({\n className = undefined,\n disabled = false,\n endContent = undefined,\n label = undefined,\n name,\n placeholder = ' ',\n size = undefined,\n startContent = undefined,\n testId: _testId = undefined,\n transformValue = undefined,\n type = undefined,\n}: InputProps) => {\n const { control, debugMode, getFieldState } = useFormContext();\n const { error, invalid, required, testId } = getFieldState(name, _testId);\n\n const { field } = useController({\n control,\n disabled,\n name,\n });\n\n const { disabled: isDisabled, onChange, onBlur, value, ref } = field;\n\n const showTestIdCopyButton = debugMode === 'debug-testids';\n const showLabel = label || showTestIdCopyButton;\n\n /**\n * Determines the display value for the input field:\n * 1. If transformValue.displayValue is provided, applies the transform to the current value\n * (useful for formatting like adding currency symbols, date formatting, etc.)\n * 2. Falls back to the raw value if no transform is provided\n * 3. Ensures a defined value by using empty string as fallback (prevents uncontrolled input warnings)\n *\n * Examples:\n * - With transform: value \"1000\" → displayValue \"$1,000\"\n * - Without transform: value \"1000\" → displayValue \"1000\"\n * - Undefined value: value undefined → displayValue \"\"\n */\n const displayValue = transformValue?.displayValue\n ? transformValue.displayValue(value ?? '')\n : (value ?? '');\n\n /**\n * Handles input value changes with special processing:\n * 1. For number inputs:\n * - Preserves empty string (prevents NaN in the form state)\n * - Converts non-empty values to numbers\n * Example: \"\" → \"\" (empty stays empty)\n * \"42\" → 42 (converts to number)\n *\n * 2. For text inputs with transformValue.formValue:\n * - Applies custom transform before updating form state\n * - Useful for converting display format to storage format\n * Example: \"$1,000\" → \"1000\" (strips formatting)\n *\n * 3. For regular text inputs:\n * - Passes through the raw input value\n * Example: \"hello\" → \"hello\" (no transformation)\n *\n * @param e The input change event\n */\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n if (type === 'number') {\n onChange(inputValue === '' ? '' : Number(inputValue));\n } else {\n onChange(\n transformValue?.formValue\n ? transformValue.formValue(inputValue)\n : inputValue,\n );\n }\n };\n\n return (\n <HeroInput\n className={cn(className)}\n classNames={{\n inputWrapper: 'bg-content1 group-data-[focus=true]:border-focus',\n }}\n data-testid={testId}\n endContent={endContent}\n errorMessage={\n error && <FieldValidationError error={error} testId={testId} />\n }\n isDisabled={isDisabled}\n isInvalid={invalid}\n isRequired={required}\n label={\n showLabel && (\n <>\n {label}\n {showTestIdCopyButton && <FieldCopyTestIdButton testId={testId} />}\n </>\n )\n }\n labelPlacement=\"outside\"\n name={name}\n onBlur={onBlur}\n onChange={handleChange}\n placeholder={placeholder}\n radius=\"sm\"\n ref={ref}\n size={size}\n startContent={startContent}\n type={type}\n // @ts-expect-error number is ok here\n value={displayValue}\n variant=\"bordered\"\n />\n );\n};\n\nexport default Input;\n","import Input from './Input';\n\nexport type { InputProps } from './Input';\n\nexport { Input };\n\nexport default Input;\n"]}