@fuf-stack/uniform 0.10.3 → 0.11.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 (105) hide show
  1. package/dist/CheckboxGroup/index.cjs +4 -3
  2. package/dist/CheckboxGroup/index.cjs.map +1 -1
  3. package/dist/CheckboxGroup/index.js +3 -2
  4. package/dist/Controller/index.cjs +9 -0
  5. package/dist/Controller/index.cjs.map +1 -0
  6. package/dist/Controller/index.d.cts +4 -0
  7. package/dist/Controller/index.d.ts +4 -0
  8. package/dist/Controller/index.js +9 -0
  9. package/dist/Controller/index.js.map +1 -0
  10. package/dist/FieldArray/index.cjs +3 -3
  11. package/dist/FieldArray/index.js +2 -2
  12. package/dist/Form/index.cjs +3 -3
  13. package/dist/Form/index.js +2 -2
  14. package/dist/Input/index.cjs +4 -3
  15. package/dist/Input/index.cjs.map +1 -1
  16. package/dist/Input/index.js +3 -2
  17. package/dist/RadioGroup/index.cjs +4 -3
  18. package/dist/RadioGroup/index.cjs.map +1 -1
  19. package/dist/RadioGroup/index.d.cts +3 -2
  20. package/dist/RadioGroup/index.d.ts +3 -2
  21. package/dist/RadioGroup/index.js +3 -2
  22. package/dist/{RadioGroup-D_kiBt0M.d.cts → RadioGroup-DcmL1H1w.d.cts} +45 -4
  23. package/dist/{RadioGroup-D_kiBt0M.d.ts → RadioGroup-DcmL1H1w.d.ts} +45 -4
  24. package/dist/Select/index.cjs +4 -3
  25. package/dist/Select/index.cjs.map +1 -1
  26. package/dist/Select/index.js +3 -2
  27. package/dist/SubmitButton/index.cjs +3 -3
  28. package/dist/SubmitButton/index.js +2 -2
  29. package/dist/Switch/index.cjs +4 -3
  30. package/dist/Switch/index.cjs.map +1 -1
  31. package/dist/Switch/index.js +3 -2
  32. package/dist/TextArea/index.cjs +4 -3
  33. package/dist/TextArea/index.cjs.map +1 -1
  34. package/dist/TextArea/index.js +3 -2
  35. package/dist/{chunk-XJULYTGW.js → chunk-2X4PRJ7K.js} +93 -53
  36. package/dist/chunk-2X4PRJ7K.js.map +1 -0
  37. package/dist/{chunk-2OVE7FAF.cjs → chunk-4DP5IMTU.cjs} +3 -3
  38. package/dist/{chunk-2OVE7FAF.cjs.map → chunk-4DP5IMTU.cjs.map} +1 -1
  39. package/dist/{chunk-OX2WPUIY.js → chunk-4F2PNEJZ.js} +5 -3
  40. package/dist/chunk-4F2PNEJZ.js.map +1 -0
  41. package/dist/{chunk-AWAGKOHK.js → chunk-4FDD5XNY.js} +5 -3
  42. package/dist/chunk-4FDD5XNY.js.map +1 -0
  43. package/dist/{chunk-YQH5YPBW.cjs → chunk-7RYAD5OS.cjs} +4 -4
  44. package/dist/{chunk-YQH5YPBW.cjs.map → chunk-7RYAD5OS.cjs.map} +1 -1
  45. package/dist/{chunk-TCL7YWB6.cjs → chunk-BKX5WAKS.cjs} +7 -5
  46. package/dist/chunk-BKX5WAKS.cjs.map +1 -0
  47. package/dist/{chunk-R3Q52RLG.cjs → chunk-D6NOYVFK.cjs} +7 -5
  48. package/dist/chunk-D6NOYVFK.cjs.map +1 -0
  49. package/dist/{chunk-5S7YSUSV.js → chunk-J4IZIB6S.js} +5 -3
  50. package/dist/chunk-J4IZIB6S.js.map +1 -0
  51. package/dist/{chunk-JM2PZT2K.js → chunk-JFJSEJ4F.js} +3 -3
  52. package/dist/chunk-JFJSEJ4F.js.map +1 -0
  53. package/dist/chunk-KOKIM2ND.js +9 -0
  54. package/dist/chunk-KOKIM2ND.js.map +1 -0
  55. package/dist/{chunk-3HCROPXY.cjs → chunk-MFFQUEAY.cjs} +7 -5
  56. package/dist/chunk-MFFQUEAY.cjs.map +1 -0
  57. package/dist/{chunk-D3E4GLA2.js → chunk-OYSI3IRJ.js} +2 -2
  58. package/dist/{chunk-R4ILETYI.js → chunk-PGQLFSIL.js} +5 -1
  59. package/dist/chunk-PGQLFSIL.js.map +1 -0
  60. package/dist/{chunk-G5H3WD7X.cjs → chunk-QGEY2AVG.cjs} +6 -6
  61. package/dist/chunk-QGEY2AVG.cjs.map +1 -0
  62. package/dist/{chunk-TYJNJH65.js → chunk-R6U3M5P5.js} +5 -3
  63. package/dist/chunk-R6U3M5P5.js.map +1 -0
  64. package/dist/{chunk-OBNBG56H.cjs → chunk-SRAFHMB2.cjs} +7 -5
  65. package/dist/chunk-SRAFHMB2.cjs.map +1 -0
  66. package/dist/{chunk-ZZCZS4QM.js → chunk-U4IDHTW5.js} +2 -2
  67. package/dist/chunk-VQWKXSHW.cjs +9 -0
  68. package/dist/chunk-VQWKXSHW.cjs.map +1 -0
  69. package/dist/{chunk-6QXNSRCS.js → chunk-WLYFBQVU.js} +5 -3
  70. package/dist/chunk-WLYFBQVU.js.map +1 -0
  71. package/dist/{chunk-Z7ETEIY7.cjs → chunk-WPWPZNSG.cjs} +7 -3
  72. package/dist/chunk-WPWPZNSG.cjs.map +1 -0
  73. package/dist/{chunk-QKF4FL3X.cjs → chunk-ZBCEV3W6.cjs} +96 -56
  74. package/dist/chunk-ZBCEV3W6.cjs.map +1 -0
  75. package/dist/{chunk-F23KFEVZ.cjs → chunk-ZQ75EBWB.cjs} +7 -5
  76. package/dist/chunk-ZQ75EBWB.cjs.map +1 -0
  77. package/dist/hooks/index.cjs +4 -2
  78. package/dist/hooks/index.cjs.map +1 -1
  79. package/dist/hooks/index.d.cts +3 -2
  80. package/dist/hooks/index.d.ts +3 -2
  81. package/dist/hooks/index.js +3 -1
  82. package/dist/index.cjs +17 -11
  83. package/dist/index.cjs.map +1 -1
  84. package/dist/index.d.cts +3 -2
  85. package/dist/index.d.ts +3 -2
  86. package/dist/index.js +17 -11
  87. package/package.json +14 -8
  88. package/dist/chunk-3HCROPXY.cjs.map +0 -1
  89. package/dist/chunk-5S7YSUSV.js.map +0 -1
  90. package/dist/chunk-6QXNSRCS.js.map +0 -1
  91. package/dist/chunk-AWAGKOHK.js.map +0 -1
  92. package/dist/chunk-F23KFEVZ.cjs.map +0 -1
  93. package/dist/chunk-G5H3WD7X.cjs.map +0 -1
  94. package/dist/chunk-JM2PZT2K.js.map +0 -1
  95. package/dist/chunk-OBNBG56H.cjs.map +0 -1
  96. package/dist/chunk-OX2WPUIY.js.map +0 -1
  97. package/dist/chunk-QKF4FL3X.cjs.map +0 -1
  98. package/dist/chunk-R3Q52RLG.cjs.map +0 -1
  99. package/dist/chunk-R4ILETYI.js.map +0 -1
  100. package/dist/chunk-TCL7YWB6.cjs.map +0 -1
  101. package/dist/chunk-TYJNJH65.js.map +0 -1
  102. package/dist/chunk-XJULYTGW.js.map +0 -1
  103. package/dist/chunk-Z7ETEIY7.cjs.map +0 -1
  104. /package/dist/{chunk-D3E4GLA2.js.map → chunk-OYSI3IRJ.js.map} +0 -0
  105. /package/dist/{chunk-ZZCZS4QM.js.map → chunk-U4IDHTW5.js.map} +0 -0
@@ -1,4 +1,7 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2
+
3
+ var _chunkVQWKXSHWcjs = require('./chunk-VQWKXSHW.cjs');
4
+
2
5
 
3
6
  var _chunkJU5RT22Ycjs = require('./chunk-JU5RT22Y.cjs');
4
7
 
@@ -6,16 +9,16 @@ var _chunkJU5RT22Ycjs = require('./chunk-JU5RT22Y.cjs');
6
9
  var _chunkOHJYXA6Rcjs = require('./chunk-OHJYXA6R.cjs');
7
10
 
8
11
 
9
- var _chunkZ7ETEIY7cjs = require('./chunk-Z7ETEIY7.cjs');
12
+ var _chunkWPWPZNSGcjs = require('./chunk-WPWPZNSG.cjs');
10
13
 
11
14
 
12
15
  var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
13
16
 
14
17
  // src/RadioGroup/RadioGroup.tsx
15
- var _reacthookform = require('react-hook-form');
16
18
  var _radio = require('@nextui-org/radio');
17
19
  var _pixelutils = require('@fuf-stack/pixel-utils');
18
20
  var _pixels = require('@fuf-stack/pixels');
21
+ var _Tabs = require('@fuf-stack/pixels/Tabs'); var _Tabs2 = _interopRequireDefault(_Tabs);
19
22
 
20
23
  // src/RadioGroup/Variants/RadioBox.tsx
21
24
 
@@ -104,14 +107,21 @@ var radioGroupVariants = _pixelutils.tv.call(void 0, {
104
107
  itemBase: "",
105
108
  itemBaseActive: "bg-opacity-50",
106
109
  // optional if a button group is used
107
- itemControl: "",
110
+ itemControl: "bg-focus group-data-[invalid=true]:bg-danger",
108
111
  itemDescription: "",
109
112
  itemLabel: "text-sm",
110
113
  itemLabelWrapper: "",
111
- itemWrapper: "",
114
+ itemWrapper: 'group-data-[invalid=true]:!border-danger [&:not(group-data-[invalid="true"]):not(group-data-[selected="false"])]:border-focus',
115
+ // TODO: get rid of !.
112
116
  // See NextUI styles for group-data condition, e.g.: https://github.com/nextui-org/nextui/blob/main/packages/core/theme/src/components/select.ts
113
- label: "text-sm text-foreground subpixel-antialiased group-data-[invalid=true]:!text-danger",
114
- wrapper: ""
117
+ label: "text-sm text-foreground subpixel-antialiased group-data-[invalid=true]:text-danger",
118
+ wrapper: "",
119
+ // Tabs
120
+ tabList: "",
121
+ tab: "",
122
+ tabContent: "",
123
+ cursor: "",
124
+ panel: ""
115
125
  }
116
126
  });
117
127
  var RadioGroup = ({
@@ -124,14 +134,14 @@ var RadioGroup = ({
124
134
  testId: _testId = void 0,
125
135
  variant = "default"
126
136
  }) => {
127
- const { control, debugMode, getFieldState, getValues } = _chunkZ7ETEIY7cjs.useFormContext.call(void 0, );
137
+ const { control, debugMode, getFieldState, getValues } = _chunkWPWPZNSGcjs.useFormContext.call(void 0, );
128
138
  const { error, invalid, required, testId } = getFieldState(name, _testId);
129
139
  const showTestIdCopyButton = debugMode === "debug-testids";
130
140
  const showLabel = label || showTestIdCopyButton;
131
141
  const variants = radioGroupVariants();
132
142
  const classNames = _pixelutils.variantsToClassNames.call(void 0, variants, className, "base");
133
143
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
134
- _reacthookform.Controller,
144
+ _chunkVQWKXSHWcjs.Controller,
135
145
  {
136
146
  control,
137
147
  disabled,
@@ -144,60 +154,90 @@ var RadioGroup = ({
144
154
  description: classNames.itemDescription,
145
155
  label: classNames.itemLabel,
146
156
  labelWrapper: classNames.itemLabelWrapper,
147
- wrapper: classNames.itemWrapper
157
+ wrapper: classNames.itemWrapper,
158
+ tabList: classNames.tabList,
159
+ tab: classNames.tab,
160
+ tabContent: classNames.tabContent,
161
+ cursor: classNames.cursor,
162
+ panel: classNames.panel
148
163
  };
149
164
  switch (variant) {
150
165
  case "radioBox":
151
- RadioComponents = options.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
152
- RadioBox,
153
- {
154
- classNames: itemClassNames,
155
- "data-testid": _chunkBBB4FEY6cjs.slugify.call(void 0,
156
- `${testId}_option_${option.testId || option.value}`
157
- ),
158
- description: option.description,
159
- icon: option.icon,
160
- isDisabled: isDisabled || option.disabled,
161
- onChange,
162
- value: option.value,
163
- children: option.label ? option.label : option.value
164
- },
165
- option.value
166
- ));
166
+ RadioComponents = options.map((option) => {
167
+ if ("value" in option) {
168
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
169
+ RadioBox,
170
+ {
171
+ classNames: itemClassNames,
172
+ "data-testid": _chunkBBB4FEY6cjs.slugify.call(void 0,
173
+ `${testId}_option_${option.testId || option.value}`
174
+ ),
175
+ description: option.description,
176
+ icon: option.icon,
177
+ isDisabled: isDisabled || option.disabled,
178
+ onChange,
179
+ value: option.value,
180
+ children: option.label ? option.label : option.value
181
+ },
182
+ option.value
183
+ );
184
+ }
185
+ return null;
186
+ });
167
187
  break;
168
188
  case "radioButton":
169
- RadioComponents = options.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
170
- RadioButton,
189
+ RadioComponents = options.map((option) => {
190
+ if ("value" in option) {
191
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
192
+ RadioButton,
193
+ {
194
+ className: _pixelutils.cn.call(void 0, classNames.itemBase, {
195
+ [classNames.itemBaseActive]: getValues()[name] !== option.value
196
+ }),
197
+ isDisabled: isDisabled || option.disabled,
198
+ testID: _chunkBBB4FEY6cjs.slugify.call(void 0,
199
+ `${testId}_option_${option.testId || option.value}`
200
+ ),
201
+ onChange,
202
+ value: option.value,
203
+ children: option.label ? option.label : option.value
204
+ },
205
+ option.value
206
+ );
207
+ }
208
+ return null;
209
+ });
210
+ break;
211
+ case "tabs":
212
+ RadioComponents = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
213
+ _Tabs2.default,
171
214
  {
172
- className: _pixelutils.cn.call(void 0, classNames.itemBase, {
173
- [classNames.itemBaseActive]: getValues()[name] !== option.value
174
- }),
175
- isDisabled: isDisabled || option.disabled,
176
- testID: _chunkBBB4FEY6cjs.slugify.call(void 0,
177
- `${testId}_option_${option.testId || option.value}`
178
- ),
179
- onChange,
180
- value: option.value,
181
- children: option.label ? option.label : option.value
182
- },
183
- option.value
184
- ));
215
+ fullWidth: false,
216
+ tabs: options,
217
+ onSelectionChange: onChange
218
+ }
219
+ );
185
220
  break;
186
221
  default:
187
- RadioComponents = options.map((option) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
188
- _radio.Radio,
189
- {
190
- classNames: itemClassNames,
191
- "data-testid": _chunkBBB4FEY6cjs.slugify.call(void 0,
192
- `${testId}_option_${option.testId || option.value}`
193
- ),
194
- isDisabled: isDisabled || option.disabled,
195
- onChange,
196
- value: option.value,
197
- children: option.label ? option.label : option.value
198
- },
199
- option.value
200
- ));
222
+ RadioComponents = options.map((option) => {
223
+ if ("value" in option) {
224
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
225
+ _radio.Radio,
226
+ {
227
+ classNames: itemClassNames,
228
+ "data-testid": _chunkBBB4FEY6cjs.slugify.call(void 0,
229
+ `${testId}_option_${option.testId || option.value}`
230
+ ),
231
+ isDisabled: isDisabled || option.disabled,
232
+ onChange,
233
+ value: option.value,
234
+ children: option.label ? option.label : option.value
235
+ },
236
+ option.value
237
+ );
238
+ }
239
+ return null;
240
+ });
201
241
  }
202
242
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
203
243
  _radio.RadioGroup,
@@ -236,4 +276,4 @@ var RadioGroup_default2 = RadioGroup_default;
236
276
 
237
277
 
238
278
  exports.RadioGroup_default = RadioGroup_default; exports.RadioGroup_default2 = RadioGroup_default2;
239
- //# sourceMappingURL=chunk-QKF4FL3X.cjs.map
279
+ //# sourceMappingURL=chunk-ZBCEV3W6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-ZBCEV3W6.cjs","../src/RadioGroup/RadioGroup.tsx","../src/RadioGroup/Variants/RadioBox.tsx","../src/RadioGroup/Variants/RadioButton.tsx","../src/RadioGroup/index.ts"],"names":["jsx","cn"],"mappings":"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","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-ZBCEV3W6.cjs","sourcesContent":[null,"import type { TVClassName, TVProps } from '@fuf-stack/pixel-utils';\nimport type { TabOptions } from '@fuf-stack/pixels/Tabs';\nimport type { ReactElement, ReactNode } from 'react';\n\nimport { RadioGroup as NextRadioGroup, Radio } from '@nextui-org/radio';\n\nimport { cn, tv, variantsToClassNames } from '@fuf-stack/pixel-utils';\nimport { ButtonGroup } from '@fuf-stack/pixels';\nimport Tabs from '@fuf-stack/pixels/Tabs';\n\nimport { Controller } from '../Controller';\nimport { slugify } from '../helpers';\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\nimport { RadioBox } from './Variants/RadioBox';\nimport { RadioButton } from './Variants/RadioButton';\n\nexport const radioGroupVariants = tv({\n slots: {\n base: 'group', // Needs group for group-data condition\n buttonGroup:\n 'rounded-xl group-data-[invalid=true]:border group-data-[invalid=true]:border-danger', // optional if a button group is used\n itemBase: '',\n itemBaseActive: 'bg-opacity-50', // optional if a button group is used\n itemControl: 'bg-focus group-data-[invalid=true]:bg-danger',\n itemDescription: '',\n itemLabel: 'text-sm',\n itemLabelWrapper: '',\n itemWrapper:\n 'group-data-[invalid=true]:!border-danger [&:not(group-data-[invalid=\"true\"]):not(group-data-[selected=\"false\"])]:border-focus', // TODO: get rid of !.\n // See NextUI styles for group-data condition, e.g.: https://github.com/nextui-org/nextui/blob/main/packages/core/theme/src/components/select.ts\n label:\n 'text-sm text-foreground subpixel-antialiased group-data-[invalid=true]:text-danger',\n wrapper: '',\n // Tabs\n tabList: '',\n tab: '',\n tabContent: '',\n cursor: '',\n panel: '',\n },\n});\n\ntype VariantProps = TVProps<typeof radioGroupVariants>;\ntype ClassName = TVClassName<typeof radioGroupVariants>;\n\nexport interface RadioGroupOption {\n /** Description of the value. Works with variant radioBox. */\n description?: React.ReactNode;\n /** disables the option */\n disabled?: boolean;\n /** option label */\n label?: React.ReactNode;\n /** option icon */\n icon?: ReactNode;\n /** HTML data-testid attribute of the option */\n testId?: string;\n /** option value */\n value: string;\n}\n\nexport interface RadioGroupProps<\n V extends 'default' | 'radioBox' | 'radioButton' | 'tabs',\n> extends VariantProps {\n /** CSS class name */\n className?: ClassName;\n /** Determines if the Buttons are disabled or not. */\n disabled?: boolean;\n /** determines orientation of the Buttons. */\n inline?: boolean;\n /** Label displayed next to the RadioButton. */\n label?: ReactNode;\n /** Name the RadioButtons are registered at in HTML forms (react-hook-form). */\n name: string;\n /** Radio button configuration. */\n options: V extends 'default' | 'radioBox' | 'radioButton'\n ? RadioGroupOption[]\n : TabOptions[];\n /** Id to grab element in internal tests. */\n testId?: string;\n /** How the RadioGroup should look like. */\n variant?: V;\n}\n\n/**\n * RadioGroup component based on [NextUI RadioGroup](https://nextui.org/docs/components/radio-group)\n */\nconst RadioGroup = ({\n className = undefined,\n disabled = false,\n inline = false,\n label = undefined,\n name,\n options,\n testId: _testId = undefined,\n variant = 'default',\n}: RadioGroupProps<\n 'default' | 'radioBox' | 'radioButton' | 'tabs'\n>): ReactElement => {\n const { control, debugMode, getFieldState, getValues } = useFormContext();\n\n const { error, invalid, required, testId } = getFieldState(name, _testId);\n\n const showTestIdCopyButton = debugMode === 'debug-testids';\n const showLabel = label || showTestIdCopyButton;\n\n const variants = radioGroupVariants();\n const classNames = variantsToClassNames(variants, className, 'base');\n\n return (\n <Controller\n control={control}\n disabled={disabled}\n name={name}\n render={({ field: { onChange, disabled: isDisabled, onBlur, ref } }) => {\n let RadioComponents: ReactNode;\n\n const itemClassNames = {\n base: classNames.itemBase,\n control: classNames.itemControl,\n description: classNames.itemDescription,\n label: classNames.itemLabel,\n labelWrapper: classNames.itemLabelWrapper,\n wrapper: classNames.itemWrapper,\n tabList: classNames.tabList,\n tab: classNames.tab,\n tabContent: classNames.tabContent,\n cursor: classNames.cursor,\n panel: classNames.panel,\n };\n\n switch (variant) {\n case 'radioBox':\n RadioComponents = options.map((option) => {\n if ('value' in option) {\n return (\n <RadioBox\n classNames={itemClassNames}\n data-testid={slugify(\n `${testId}_option_${option.testId || option.value}`,\n )}\n description={option.description}\n icon={option.icon}\n isDisabled={isDisabled || option.disabled}\n key={option.value}\n onChange={onChange}\n value={option.value}\n >\n {option.label ? option.label : option.value}\n </RadioBox>\n );\n }\n return null;\n });\n break;\n case 'radioButton':\n RadioComponents = options.map((option) => {\n if ('value' in option) {\n return (\n <RadioButton\n className={cn(classNames.itemBase, {\n [classNames.itemBaseActive]:\n getValues()[name] !== option.value,\n })}\n isDisabled={isDisabled || option.disabled}\n key={option.value}\n testID={slugify(\n `${testId}_option_${option.testId || option.value}`,\n )}\n onChange={onChange}\n value={option.value}\n // TODO: how to do the classNames properly (make selected option darker with same color)\n >\n {option.label ? option.label : option.value}\n </RadioButton>\n );\n }\n return null;\n });\n break;\n\n case 'tabs':\n RadioComponents = (\n <Tabs\n fullWidth={false}\n tabs={options as TabOptions[]}\n onSelectionChange={onChange}\n />\n );\n break;\n default:\n RadioComponents = options.map((option) => {\n if ('value' in option) {\n return (\n <Radio\n classNames={itemClassNames}\n data-testid={slugify(\n `${testId}_option_${option.testId || option.value}`,\n )}\n isDisabled={isDisabled || option.disabled}\n key={option.value}\n onChange={onChange}\n value={option.value}\n >\n {option.label ? option.label : option.value}\n </Radio>\n );\n }\n return null;\n });\n }\n\n return (\n <NextRadioGroup\n classNames={classNames}\n // See NextUI styles for group-data condition (data-invalid), e.g.: https://github.com/nextui-org/nextui/blob/main/packages/components/select/src/use-select.ts\n data-invalid={invalid}\n data-required={required}\n data-testid={testId}\n errorMessage={error && <FieldValidationError error={error} />}\n isDisabled={isDisabled}\n isInvalid={invalid}\n isRequired={required}\n label={\n showLabel && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label>\n {label}\n {showTestIdCopyButton && (\n <FieldCopyTestIdButton testId={testId} />\n )}\n </label>\n )\n }\n name={name}\n orientation={inline ? 'horizontal' : 'vertical'}\n onBlur={onBlur}\n onChange={onChange}\n ref={ref}\n >\n {variant === 'radioButton' ? (\n <ButtonGroup className={classNames.buttonGroup}>\n {RadioComponents}\n </ButtonGroup>\n ) : (\n RadioComponents\n )}\n </NextRadioGroup>\n );\n }}\n />\n );\n};\n\nexport default RadioGroup;\n","import type { RadioProps as NextRadioProps } from '@nextui-org/radio';\nimport type { ReactNode } from 'react';\n\nimport { useRadio } from '@nextui-org/radio';\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\ninterface RadioProps extends NextRadioProps {\n /** icon for the option */\n icon?: ReactNode;\n}\n\nexport const RadioBox = ({ icon = undefined, ...props }: RadioProps) => {\n const {\n children,\n Component,\n description,\n getBaseProps,\n getControlProps,\n getInputProps,\n getLabelProps,\n getLabelWrapperProps,\n getWrapperProps,\n isDisabled,\n } = useRadio(props);\n\n return (\n <Component\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...getBaseProps()}\n className={cn(\n 'group inline-flex flex-auto cursor-pointer items-center justify-between gap-4 rounded-lg border-2 border-default p-4 hover:bg-content2 data-[selected=true]:border-focus',\n {\n // disabled styles\n 'pointer-events-none opacity-disabled': isDisabled,\n },\n )}\n >\n <VisuallyHidden>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <input {...getInputProps()} />\n </VisuallyHidden>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <span {...getWrapperProps()}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <span {...getControlProps()} />\n </span>\n {icon}\n <div\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...getLabelWrapperProps()}\n className={cn(getLabelWrapperProps().className, 'grow')}\n >\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n {children && <span {...getLabelProps()}>{children}</span>}\n {description && (\n <span className=\"text-small text-foreground opacity-70\">\n {description}\n </span>\n )}\n </div>\n </Component>\n );\n};\n\nexport default RadioBox;\n","import { cn } from '@fuf-stack/pixel-utils';\nimport { Button } from '@fuf-stack/pixels';\n\ninterface RadioButtonProps {\n /** label of the value. */\n children: React.ReactNode;\n /** CSS class name */\n className?: string;\n /** disables the option */\n isDisabled?: boolean;\n /** HTML data-testid attribute of the option */\n testID?: string;\n /** Callback function. Executed if the option is clicked. */\n onChange: (...event: unknown[]) => void;\n /** value of the option. */\n value: string;\n}\n\nexport const RadioButton = ({\n children,\n className = undefined,\n isDisabled = false,\n onChange,\n testID = undefined,\n value,\n}: RadioButtonProps) => {\n return (\n <Button\n className={cn(className)}\n testId={testID}\n disabled={isDisabled}\n key={`index_${value}`}\n onClick={() => {\n return onChange(value);\n }}\n >\n {children}\n </Button>\n );\n};\n\nexport default RadioButton;\n","import RadioGroup from './RadioGroup';\n\nexport type { RadioGroupProps } from './RadioGroup';\n\nexport { RadioGroup };\n\nexport default RadioGroup;\n"]}
@@ -1,15 +1,17 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
+ var _chunkVQWKXSHWcjs = require('./chunk-VQWKXSHW.cjs');
4
+
5
+
3
6
  var _chunkJU5RT22Ycjs = require('./chunk-JU5RT22Y.cjs');
4
7
 
5
8
 
6
9
  var _chunkOHJYXA6Rcjs = require('./chunk-OHJYXA6R.cjs');
7
10
 
8
11
 
9
- var _chunkZ7ETEIY7cjs = require('./chunk-Z7ETEIY7.cjs');
12
+ var _chunkWPWPZNSGcjs = require('./chunk-WPWPZNSG.cjs');
10
13
 
11
14
  // src/Input/Input.tsx
12
- var _reacthookform = require('react-hook-form');
13
15
  var _input = require('@nextui-org/input');
14
16
  var _pixelutils = require('@fuf-stack/pixel-utils');
15
17
  var _jsxruntime = require('react/jsx-runtime');
@@ -24,12 +26,12 @@ var Input = ({
24
26
  testId: _testId = void 0,
25
27
  type = void 0
26
28
  }) => {
27
- const { control, debugMode, getFieldState } = _chunkZ7ETEIY7cjs.useFormContext.call(void 0, );
29
+ const { control, debugMode, getFieldState } = _chunkWPWPZNSGcjs.useFormContext.call(void 0, );
28
30
  const { error, invalid, required, testId } = getFieldState(name, _testId);
29
31
  const showTestIdCopyButton = debugMode === "debug-testids";
30
32
  const showLabel = label || showTestIdCopyButton;
31
33
  return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
32
- _reacthookform.Controller,
34
+ _chunkVQWKXSHWcjs.Controller,
33
35
  {
34
36
  control,
35
37
  disabled,
@@ -82,4 +84,4 @@ var Input_default2 = Input_default;
82
84
 
83
85
 
84
86
  exports.Input_default = Input_default; exports.Input_default2 = Input_default2;
85
- //# sourceMappingURL=chunk-F23KFEVZ.cjs.map
87
+ //# sourceMappingURL=chunk-ZQ75EBWB.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-ZQ75EBWB.cjs","../src/Input/Input.tsx","../src/Input/index.ts"],"names":["Input_default"],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACA;ACXA,0CAAmC;AAEnC,oDAAmB;AAgEgB,+CAAA;AAjCnC,IAAM,MAAA,EAAQ,CAAC;AAAA,EACb,UAAA,EAAY,KAAA,CAAA;AAAA,EACZ,SAAA,EAAW,KAAA;AAAA,EACX,WAAA,EAAa,KAAA,CAAA;AAAA,EACb,MAAA,EAAQ,KAAA,CAAA;AAAA,EACR,IAAA;AAAA,EACA,YAAA,EAAc,GAAA;AAAA,EACd,aAAA,EAAe,KAAA,CAAA;AAAA,EACf,MAAA,EAAQ,QAAA,EAAU,KAAA,CAAA;AAAA,EAClB,KAAA,EAAO,KAAA;AACT,CAAA,EAAA,GAAkB;AAChB,EAAA,MAAM,EAAE,OAAA,EAAS,SAAA,EAAW,cAAc,EAAA,EAAI,8CAAA,CAAe;AAC7D,EAAA,MAAM,EAAE,KAAA,EAAO,OAAA,EAAS,QAAA,EAAU,OAAO,EAAA,EAAI,aAAA,CAAc,IAAA,EAAM,OAAO,CAAA;AAExE,EAAA,MAAM,qBAAA,EAAuB,UAAA,IAAc,eAAA;AAC3C,EAAA,MAAM,UAAA,EAAY,MAAA,GAAS,oBAAA;AAE3B,EAAA,uBACE,6BAAA;AAAA,IAAC,4BAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,QAAA;AAAA,MACA,IAAA;AAAA,MACA,MAAA,EAAQ,CAAC;AAAA,QACP,KAAA,EAAO,EAAE,QAAA,EAAU,UAAA,EAAY,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,IAAI;AAAA,MAC9D,CAAA,EAAA,GAAM;AACJ,QAAA,uBACE,6BAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,4BAAA,SAAY,CAAA;AAAA,YACvB,UAAA,EAAY;AAAA,cACV,YAAA,EAAc;AAAA,YAChB,CAAA;AAAA,YACA,aAAA,EAAa,MAAA;AAAA,YACb,UAAA;AAAA,YACA,YAAA,EAAc,MAAA,mBAAS,6BAAA,8CAAC,EAAA,EAAqB,MAAA,CAAc,CAAA;AAAA,YAC3D,UAAA;AAAA,YACA,SAAA,EAAW,OAAA;AAAA,YACX,UAAA,EAAY,QAAA;AAAA,YACZ,KAAA,EACE,UAAA,mBACE,8BAAA,oBAAA,EAAA,EACG,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,cACA,qBAAA,mBACC,6BAAA,+CAAC,EAAA,EAAsB,OAAA,CAAgB;AAAA,YAAA,EAAA,CAE3C,CAAA;AAAA,YAGJ,cAAA,EAAe,SAAA;AAAA,YACf,IAAA;AAAA,YACA,MAAA;AAAA,YACA,QAAA,EACE,KAAA,IAAS,SAAA,EACL,CAAC,CAAA,EAAA,GAAM;AACL,cAAA,QAAA,CAAS,MAAA,CAAO,CAAA,CAAE,MAAA,CAAO,KAAK,CAAC,CAAA;AAAA,YACjC,EAAA,EACA,QAAA;AAAA,YAEN,WAAA;AAAA,YACA,MAAA,EAAO,IAAA;AAAA,YACP,GAAA;AAAA,YACA,YAAA;AAAA,YACA,IAAA;AAAA,YACA,KAAA;AAAA,YACA,OAAA,EAAQ;AAAA,UAAA;AAAA,QACV,CAAA;AAAA,MAEJ;AAAA,IAAA;AAAA,EACF,CAAA;AAEJ,CAAA;AAEA,IAAO,cAAA,EAAQ,KAAA;AD5Bf;AACA;AEzEA,IAAOA,eAAAA,EAAQ,aAAA;AF2Ef;AACA;AACE;AACA;AACF,+EAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/chunk-ZQ75EBWB.cjs","sourcesContent":[null,"import type { ReactNode } from 'react';\n\nimport { Input as NextInput } from '@nextui-org/input';\n\nimport { cn } from '@fuf-stack/pixel-utils';\n\nimport { Controller } from '../Controller';\nimport { 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 /** 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 /** input type */\n type?: 'number' | 'password';\n}\n\n/**\n * Input component based on [NextUI Input](https://nextui.org/docs/components/input)\n */\nconst Input = ({\n className = undefined,\n disabled = false,\n endContent = undefined,\n label = undefined,\n name,\n placeholder = ' ',\n startContent = undefined,\n testId: _testId = undefined,\n type = undefined,\n}: InputProps) => {\n const { control, debugMode, getFieldState } = useFormContext();\n const { error, invalid, required, testId } = getFieldState(name, _testId);\n\n const showTestIdCopyButton = debugMode === 'debug-testids';\n const showLabel = label || showTestIdCopyButton;\n\n return (\n <Controller\n control={control}\n disabled={disabled}\n name={name}\n render={({\n field: { disabled: isDisabled, onChange, onBlur, value, ref },\n }) => {\n return (\n <NextInput\n className={cn(className)}\n classNames={{\n inputWrapper: 'group-data-[focus=true]:border-focus',\n }}\n data-testid={testId}\n endContent={endContent}\n errorMessage={error && <FieldValidationError error={error} />}\n isDisabled={isDisabled}\n isInvalid={invalid}\n isRequired={required}\n label={\n showLabel && (\n <>\n {label}\n {showTestIdCopyButton && (\n <FieldCopyTestIdButton testId={testId} />\n )}\n </>\n )\n }\n labelPlacement=\"outside\"\n name={name}\n onBlur={onBlur}\n onChange={\n type === 'number'\n ? (e) => {\n onChange(Number(e.target.value));\n }\n : onChange\n }\n placeholder={placeholder}\n radius=\"sm\"\n ref={ref}\n startContent={startContent}\n type={type}\n value={value}\n variant=\"bordered\"\n />\n );\n }}\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"]}
@@ -1,10 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
3
 
4
- var _chunkZ7ETEIY7cjs = require('../chunk-Z7ETEIY7.cjs');
4
+
5
+ var _chunkWPWPZNSGcjs = require('../chunk-WPWPZNSG.cjs');
5
6
  require('../chunk-BBB4FEY6.cjs');
6
7
 
7
8
 
8
9
 
9
- exports.recursiveFieldKeySearch = _chunkZ7ETEIY7cjs.recursiveFieldKeySearch; exports.useFormContext = _chunkZ7ETEIY7cjs.useFormContext;
10
+
11
+ exports.recursiveFieldKeySearch = _chunkWPWPZNSGcjs.recursiveFieldKeySearch; exports.useFieldArray = _chunkWPWPZNSGcjs.useFieldArray; exports.useFormContext = _chunkWPWPZNSGcjs.useFormContext;
10
12
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/hooks/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACF,uIAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/hooks/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/hooks/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACA;AACA;AACF,yDAA8B;AAC9B,iCAA8B;AAC9B;AACE;AACA;AACA;AACF,gMAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/hooks/index.cjs"}
@@ -1,8 +1,9 @@
1
+ import * as react_hook_form from 'react-hook-form';
2
+ import { FieldError } from 'react-hook-form';
3
+ export { useFieldArray } from 'react-hook-form';
1
4
  import * as _fuf_stack_veto from '@fuf-stack/veto';
2
5
  import { VetoSchema } from '@fuf-stack/veto';
3
6
  import { D as DebugModeSettings } from '../FormContext-ldCpxKnY.cjs';
4
- import * as react_hook_form from 'react-hook-form';
5
- import { FieldError } from 'react-hook-form';
6
7
 
7
8
  /** Recursive search to check whether a field is required or optional */
8
9
  declare const recursiveFieldKeySearch: (schema: VetoSchema, path: string[]) => boolean | null;
@@ -1,8 +1,9 @@
1
+ import * as react_hook_form from 'react-hook-form';
2
+ import { FieldError } from 'react-hook-form';
3
+ export { useFieldArray } from 'react-hook-form';
1
4
  import * as _fuf_stack_veto from '@fuf-stack/veto';
2
5
  import { VetoSchema } from '@fuf-stack/veto';
3
6
  import { D as DebugModeSettings } from '../FormContext-ldCpxKnY.js';
4
- import * as react_hook_form from 'react-hook-form';
5
- import { FieldError } from 'react-hook-form';
6
7
 
7
8
  /** Recursive search to check whether a field is required or optional */
8
9
  declare const recursiveFieldKeySearch: (schema: VetoSchema, path: string[]) => boolean | null;
@@ -1,10 +1,12 @@
1
1
  import {
2
2
  recursiveFieldKeySearch,
3
+ useFieldArray,
3
4
  useFormContext
4
- } from "../chunk-R4ILETYI.js";
5
+ } from "../chunk-PGQLFSIL.js";
5
6
  import "../chunk-V46BHM2U.js";
6
7
  export {
7
8
  recursiveFieldKeySearch,
9
+ useFieldArray,
8
10
  useFormContext
9
11
  };
10
12
  //# sourceMappingURL=index.js.map
package/dist/index.cjs CHANGED
@@ -1,33 +1,36 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk2OVE7FAFcjs = require('./chunk-2OVE7FAF.cjs');
3
+ var _chunkSRAFHMB2cjs = require('./chunk-SRAFHMB2.cjs');
4
4
 
5
5
 
6
- var _chunkR3Q52RLGcjs = require('./chunk-R3Q52RLG.cjs');
6
+ var _chunk4DP5IMTUcjs = require('./chunk-4DP5IMTU.cjs');
7
7
 
8
8
 
9
- var _chunkTCL7YWB6cjs = require('./chunk-TCL7YWB6.cjs');
9
+ var _chunkD6NOYVFKcjs = require('./chunk-D6NOYVFK.cjs');
10
10
 
11
11
 
12
- var _chunk3HCROPXYcjs = require('./chunk-3HCROPXY.cjs');
12
+ var _chunkBKX5WAKScjs = require('./chunk-BKX5WAKS.cjs');
13
13
 
14
14
 
15
- var _chunkG5H3WD7Xcjs = require('./chunk-G5H3WD7X.cjs');
15
+ var _chunkMFFQUEAYcjs = require('./chunk-MFFQUEAY.cjs');
16
16
 
17
17
 
18
- var _chunkYQH5YPBWcjs = require('./chunk-YQH5YPBW.cjs');
18
+ var _chunkQGEY2AVGcjs = require('./chunk-QGEY2AVG.cjs');
19
+
20
+
21
+ var _chunk7RYAD5OScjs = require('./chunk-7RYAD5OS.cjs');
19
22
 
20
23
 
21
24
  var _chunk6GN255GPcjs = require('./chunk-6GN255GP.cjs');
22
25
 
23
26
 
24
- var _chunkF23KFEVZcjs = require('./chunk-F23KFEVZ.cjs');
27
+ var _chunkZQ75EBWBcjs = require('./chunk-ZQ75EBWB.cjs');
25
28
 
26
29
 
27
- var _chunkQKF4FL3Xcjs = require('./chunk-QKF4FL3X.cjs');
30
+ var _chunkZBCEV3W6cjs = require('./chunk-ZBCEV3W6.cjs');
28
31
 
29
32
 
30
- var _chunkOBNBG56Hcjs = require('./chunk-OBNBG56H.cjs');
33
+ var _chunkVQWKXSHWcjs = require('./chunk-VQWKXSHW.cjs');
31
34
 
32
35
 
33
36
  var _chunkJU5RT22Ycjs = require('./chunk-JU5RT22Y.cjs');
@@ -37,7 +40,8 @@ var _chunkOHJYXA6Rcjs = require('./chunk-OHJYXA6R.cjs');
37
40
 
38
41
 
39
42
 
40
- var _chunkZ7ETEIY7cjs = require('./chunk-Z7ETEIY7.cjs');
43
+
44
+ var _chunkWPWPZNSGcjs = require('./chunk-WPWPZNSG.cjs');
41
45
 
42
46
 
43
47
  var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
@@ -57,5 +61,7 @@ var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
57
61
 
58
62
 
59
63
 
60
- exports.CheckboxGroup = _chunk3HCROPXYcjs.CheckboxGroup_default; exports.FieldArray = _chunkG5H3WD7Xcjs.FieldArray_default; exports.FieldCopyTestIdButton = _chunkJU5RT22Ycjs.FieldCopyTestIdButton_default; exports.FieldValidationError = _chunkOHJYXA6Rcjs.FieldValidationError_default; exports.Form = _chunkYQH5YPBWcjs.Form_default; exports.Grid = _chunk6GN255GPcjs.Grid_default; exports.Input = _chunkF23KFEVZcjs.Input_default; exports.RadioGroup = _chunkQKF4FL3Xcjs.RadioGroup_default; exports.Select = _chunkOBNBG56Hcjs.Select_default; exports.SubmitButton = _chunk2OVE7FAFcjs.SubmitButton_default; exports.Switch = _chunkR3Q52RLGcjs.Switch_default; exports.TextArea = _chunkTCL7YWB6cjs.TextArea_default; exports.recursiveFieldKeySearch = _chunkZ7ETEIY7cjs.recursiveFieldKeySearch; exports.slugify = _chunkBBB4FEY6cjs.slugify; exports.useFormContext = _chunkZ7ETEIY7cjs.useFormContext;
64
+
65
+
66
+ exports.CheckboxGroup = _chunkMFFQUEAYcjs.CheckboxGroup_default; exports.Controller = _chunkVQWKXSHWcjs.Controller; exports.FieldArray = _chunkQGEY2AVGcjs.FieldArray_default; exports.FieldCopyTestIdButton = _chunkJU5RT22Ycjs.FieldCopyTestIdButton_default; exports.FieldValidationError = _chunkOHJYXA6Rcjs.FieldValidationError_default; exports.Form = _chunk7RYAD5OScjs.Form_default; exports.Grid = _chunk6GN255GPcjs.Grid_default; exports.Input = _chunkZQ75EBWBcjs.Input_default; exports.RadioGroup = _chunkZBCEV3W6cjs.RadioGroup_default; exports.Select = _chunkSRAFHMB2cjs.Select_default; exports.SubmitButton = _chunk4DP5IMTUcjs.SubmitButton_default; exports.Switch = _chunkD6NOYVFKcjs.Switch_default; exports.TextArea = _chunkBKX5WAKScjs.TextArea_default; exports.recursiveFieldKeySearch = _chunkWPWPZNSGcjs.recursiveFieldKeySearch; exports.slugify = _chunkBBB4FEY6cjs.slugify; exports.useFieldArray = _chunkWPWPZNSGcjs.useFieldArray; exports.useFormContext = _chunkWPWPZNSGcjs.useFormContext;
61
67
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,s3BAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/index.cjs"}
1
+ {"version":3,"sources":["/home/runner/work/uniform/uniform/packages/uniform/dist/index.cjs"],"names":[],"mappings":"AAAA;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACF,wDAA6B;AAC7B;AACE;AACF,wDAA6B;AAC7B;AACE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACF,k+BAAC","file":"/home/runner/work/uniform/uniform/packages/uniform/dist/index.cjs"}
package/dist/index.d.cts CHANGED
@@ -1,3 +1,4 @@
1
+ export { Controller, ControllerProps, useFieldArray } from 'react-hook-form';
1
2
  export { C as CheckboxGroup, b as CheckboxGroupOption, a as CheckboxGroupProps } from './CheckboxGroup-o-qWkWe1.cjs';
2
3
  export { F as FieldArray, c as FieldArrayFieldChildren, b as FieldArrayHideOption, a as FieldArrayProps } from './FieldArray-DUvn98Fe.cjs';
3
4
  export { F as Form, a as FormProps } from './Form-D0grgL6G.cjs';
@@ -7,7 +8,7 @@ export { recursiveFieldKeySearch, useFormContext } from './hooks/index.cjs';
7
8
  export { I as Input, a as InputProps } from './Input-B6dNQiiD.cjs';
8
9
  export { F as FieldCopyTestIdButton, a as FieldCopyTestIdButtonProps } from './FieldCopyTestIdButton-DnbovhMk.cjs';
9
10
  export { F as FieldValidationError, a as FieldValidationErrorProps } from './FieldValidationError-DAT12Ess.cjs';
10
- export { R as RadioGroup, a as RadioGroupProps } from './RadioGroup-D_kiBt0M.cjs';
11
+ export { R as RadioGroup, a as RadioGroupProps } from './RadioGroup-DcmL1H1w.cjs';
11
12
  export { S as Select, a as SelectProps } from './Select-BhS4z0Pj.cjs';
12
13
  export { S as SubmitButton, a as SubmitButtonProps } from './SubmitButton-BEp_zzwf.cjs';
13
14
  export { S as Switch, a as SwitchProps } from './Switch-Fdldj8LV.cjs';
@@ -16,10 +17,10 @@ import 'react/jsx-runtime';
16
17
  import 'tailwind-variants/dist/config.js';
17
18
  import 'tailwind-variants';
18
19
  import '@fuf-stack/pixel-utils';
19
- import 'react-hook-form';
20
20
  import '@fuf-stack/veto';
21
21
  import 'react';
22
22
  import './FormContext-ldCpxKnY.cjs';
23
23
  import 'slug';
24
+ import '@fuf-stack/pixels/Tabs';
24
25
  import 'react-select';
25
26
  import '@fuf-stack/pixels';
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { Controller, ControllerProps, useFieldArray } from 'react-hook-form';
1
2
  export { C as CheckboxGroup, b as CheckboxGroupOption, a as CheckboxGroupProps } from './CheckboxGroup-o-qWkWe1.js';
2
3
  export { F as FieldArray, c as FieldArrayFieldChildren, b as FieldArrayHideOption, a as FieldArrayProps } from './FieldArray-DUvn98Fe.js';
3
4
  export { F as Form, a as FormProps } from './Form-DX5NTR-H.js';
@@ -7,7 +8,7 @@ export { recursiveFieldKeySearch, useFormContext } from './hooks/index.js';
7
8
  export { I as Input, a as InputProps } from './Input-B6dNQiiD.js';
8
9
  export { F as FieldCopyTestIdButton, a as FieldCopyTestIdButtonProps } from './FieldCopyTestIdButton-DnbovhMk.js';
9
10
  export { F as FieldValidationError, a as FieldValidationErrorProps } from './FieldValidationError-DAT12Ess.js';
10
- export { R as RadioGroup, a as RadioGroupProps } from './RadioGroup-D_kiBt0M.js';
11
+ export { R as RadioGroup, a as RadioGroupProps } from './RadioGroup-DcmL1H1w.js';
11
12
  export { S as Select, a as SelectProps } from './Select-BhS4z0Pj.js';
12
13
  export { S as SubmitButton, a as SubmitButtonProps } from './SubmitButton-BEp_zzwf.js';
13
14
  export { S as Switch, a as SwitchProps } from './Switch-Fdldj8LV.js';
@@ -16,10 +17,10 @@ import 'react/jsx-runtime';
16
17
  import 'tailwind-variants/dist/config.js';
17
18
  import 'tailwind-variants';
18
19
  import '@fuf-stack/pixel-utils';
19
- import 'react-hook-form';
20
20
  import '@fuf-stack/veto';
21
21
  import 'react';
22
22
  import './FormContext-ldCpxKnY.js';
23
23
  import 'slug';
24
+ import '@fuf-stack/pixels/Tabs';
24
25
  import 'react-select';
25
26
  import '@fuf-stack/pixels';
package/dist/index.js CHANGED
@@ -1,33 +1,36 @@
1
+ import {
2
+ Select_default
3
+ } from "./chunk-4FDD5XNY.js";
1
4
  import {
2
5
  SubmitButton_default
3
- } from "./chunk-ZZCZS4QM.js";
6
+ } from "./chunk-U4IDHTW5.js";
4
7
  import {
5
8
  Switch_default
6
- } from "./chunk-5S7YSUSV.js";
9
+ } from "./chunk-J4IZIB6S.js";
7
10
  import {
8
11
  TextArea_default
9
- } from "./chunk-6QXNSRCS.js";
12
+ } from "./chunk-WLYFBQVU.js";
10
13
  import {
11
14
  CheckboxGroup_default
12
- } from "./chunk-TYJNJH65.js";
15
+ } from "./chunk-R6U3M5P5.js";
13
16
  import {
14
17
  FieldArray_default
15
- } from "./chunk-JM2PZT2K.js";
18
+ } from "./chunk-JFJSEJ4F.js";
16
19
  import {
17
20
  Form_default
18
- } from "./chunk-D3E4GLA2.js";
21
+ } from "./chunk-OYSI3IRJ.js";
19
22
  import {
20
23
  Grid_default
21
24
  } from "./chunk-PDCEKC3G.js";
22
25
  import {
23
26
  Input_default
24
- } from "./chunk-OX2WPUIY.js";
27
+ } from "./chunk-4F2PNEJZ.js";
25
28
  import {
26
29
  RadioGroup_default
27
- } from "./chunk-XJULYTGW.js";
30
+ } from "./chunk-2X4PRJ7K.js";
28
31
  import {
29
- Select_default
30
- } from "./chunk-AWAGKOHK.js";
32
+ Controller
33
+ } from "./chunk-KOKIM2ND.js";
31
34
  import {
32
35
  FieldCopyTestIdButton_default
33
36
  } from "./chunk-2CRY7VDQ.js";
@@ -36,13 +39,15 @@ import {
36
39
  } from "./chunk-WKM2D7LF.js";
37
40
  import {
38
41
  recursiveFieldKeySearch,
42
+ useFieldArray,
39
43
  useFormContext
40
- } from "./chunk-R4ILETYI.js";
44
+ } from "./chunk-PGQLFSIL.js";
41
45
  import {
42
46
  slugify
43
47
  } from "./chunk-V46BHM2U.js";
44
48
  export {
45
49
  CheckboxGroup_default as CheckboxGroup,
50
+ Controller,
46
51
  FieldArray_default as FieldArray,
47
52
  FieldCopyTestIdButton_default as FieldCopyTestIdButton,
48
53
  FieldValidationError_default as FieldValidationError,
@@ -56,6 +61,7 @@ export {
56
61
  TextArea_default as TextArea,
57
62
  recursiveFieldKeySearch,
58
63
  slugify,
64
+ useFieldArray,
59
65
  useFormContext
60
66
  };
61
67
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuf-stack/uniform",
3
- "version": "0.10.3",
3
+ "version": "0.11.0",
4
4
  "description": "fuf react form library",
5
5
  "author": "Hannes Tiede",
6
6
  "homepage": "https://github.com/fuf-stack/uniform#readme",
@@ -21,6 +21,11 @@
21
21
  "import": "./dist/CheckboxGroup/index.js",
22
22
  "require": "./dist/CheckboxGroup/index.cjs"
23
23
  },
24
+ "./Controller": {
25
+ "types": "./dist/Controller/index.d.ts",
26
+ "import": "./dist/Controller/index.js",
27
+ "require": "./dist/Controller/index.cjs"
28
+ },
24
29
  "./FieldArray": {
25
30
  "types": "./dist/FieldArray/index.d.ts",
26
31
  "import": "./dist/FieldArray/index.js",
@@ -118,17 +123,18 @@
118
123
  "@nextui-org/switch": "2.0.34",
119
124
  "@nextui-org/system": "2.2.6",
120
125
  "@nextui-org/theme": "2.2.11",
121
- "@react-aria/visually-hidden": "3.8.17",
122
- "framer-motion": "11.11.11",
126
+ "@react-aria/visually-hidden": "3.8.18",
127
+ "framer-motion": "11.11.17",
123
128
  "react-icons": "5.3.0",
124
129
  "react-hook-form": "7.53.2",
125
130
  "react-select": "5.8.3",
126
131
  "slug": "9.1.0",
127
- "@fuf-stack/pixel-utils": "0.3.1",
128
- "@fuf-stack/pixels": "0.27.2",
129
- "@fuf-stack/veto": "0.5.0"
132
+ "@fuf-stack/pixel-utils": "0.4.0",
133
+ "@fuf-stack/veto": "0.5.0",
134
+ "@fuf-stack/pixels": "0.28.0"
130
135
  },
131
136
  "devDependencies": {
137
+ "@testing-library/react-hooks": "8.0.1",
132
138
  "@types/debug": "4.1.12",
133
139
  "@types/react": "18.3.12",
134
140
  "@types/react-dom": "18.3.1",
@@ -137,8 +143,8 @@
137
143
  "react-dom": "18.3.1",
138
144
  "@repo/storybook-config": "0.0.1",
139
145
  "@repo/tailwind-config": "0.0.1",
140
- "@repo/tsup-config": "0.0.1",
141
- "@repo/vite-config": "0.0.1"
146
+ "@repo/vite-config": "0.0.1",
147
+ "@repo/tsup-config": "0.0.1"
142
148
  },
143
149
  "scripts": {
144
150
  "build": "tsup --config node_modules/@repo/tsup-config/config.ts",