@fuf-stack/uniform 0.14.5 → 0.16.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 (180) hide show
  1. package/dist/CheckboxGroup/index.cjs +7 -6
  2. package/dist/CheckboxGroup/index.cjs.map +1 -1
  3. package/dist/CheckboxGroup/index.d.cts +2 -2
  4. package/dist/CheckboxGroup/index.d.ts +2 -2
  5. package/dist/CheckboxGroup/index.js +6 -5
  6. package/dist/{CheckboxGroup-o-qWkWe1.d.cts → CheckboxGroup-fAdey3Td.d.cts} +1 -1
  7. package/dist/{CheckboxGroup-o-qWkWe1.d.ts → CheckboxGroup-fAdey3Td.d.ts} +1 -1
  8. package/dist/Controller/index.cjs +4 -2
  9. package/dist/Controller/index.cjs.map +1 -1
  10. package/dist/Controller/index.d.cts +7 -3
  11. package/dist/Controller/index.d.ts +7 -3
  12. package/dist/Controller/index.js +7 -5
  13. package/dist/Controller-8Nqugui5.d.cts +37 -0
  14. package/dist/Controller-8Nqugui5.d.ts +37 -0
  15. package/dist/FieldArray/index.cjs +6 -5
  16. package/dist/FieldArray/index.cjs.map +1 -1
  17. package/dist/FieldArray/index.d.cts +5 -3
  18. package/dist/FieldArray/index.d.ts +5 -3
  19. package/dist/FieldArray/index.js +5 -4
  20. package/dist/FieldArray-AqM2XKIh.d.cts +151 -0
  21. package/dist/FieldArray-AqM2XKIh.d.ts +151 -0
  22. package/dist/Form/index.cjs +5 -4
  23. package/dist/Form/index.cjs.map +1 -1
  24. package/dist/Form/index.js +4 -3
  25. package/dist/Grid/index.cjs +1 -0
  26. package/dist/Grid/index.cjs.map +1 -1
  27. package/dist/Grid/index.js +1 -0
  28. package/dist/Input/index.cjs +7 -6
  29. package/dist/Input/index.cjs.map +1 -1
  30. package/dist/Input/index.d.cts +2 -2
  31. package/dist/Input/index.d.ts +2 -2
  32. package/dist/Input/index.js +6 -5
  33. package/dist/{Input-IkWP4cWg.d.cts → Input-B_wjhY9e.d.cts} +1 -1
  34. package/dist/{Input-IkWP4cWg.d.ts → Input-B_wjhY9e.d.ts} +1 -1
  35. package/dist/RadioGroup/index.cjs +7 -6
  36. package/dist/RadioGroup/index.cjs.map +1 -1
  37. package/dist/RadioGroup/index.d.cts +2 -2
  38. package/dist/RadioGroup/index.d.ts +2 -2
  39. package/dist/RadioGroup/index.js +6 -5
  40. package/dist/{RadioGroup-1J39ASHa.d.cts → RadioGroup-Dxd2FPQj.d.cts} +1 -1
  41. package/dist/{RadioGroup-1J39ASHa.d.ts → RadioGroup-Dxd2FPQj.d.ts} +1 -1
  42. package/dist/Select/index.cjs +7 -6
  43. package/dist/Select/index.cjs.map +1 -1
  44. package/dist/Select/index.d.cts +2 -2
  45. package/dist/Select/index.d.ts +2 -2
  46. package/dist/Select/index.js +6 -5
  47. package/dist/{Select-BhS4z0Pj.d.cts → Select-JRwrSDew.d.cts} +1 -1
  48. package/dist/{Select-BhS4z0Pj.d.ts → Select-JRwrSDew.d.ts} +1 -1
  49. package/dist/SubmitButton/index.cjs +5 -4
  50. package/dist/SubmitButton/index.cjs.map +1 -1
  51. package/dist/SubmitButton/index.js +4 -3
  52. package/dist/Switch/index.cjs +7 -6
  53. package/dist/Switch/index.cjs.map +1 -1
  54. package/dist/Switch/index.d.cts +2 -2
  55. package/dist/Switch/index.d.ts +2 -2
  56. package/dist/Switch/index.js +6 -5
  57. package/dist/{Switch-Fdldj8LV.d.cts → Switch-mdolzzEc.d.cts} +1 -1
  58. package/dist/{Switch-Fdldj8LV.d.ts → Switch-mdolzzEc.d.ts} +1 -1
  59. package/dist/TextArea/index.cjs +7 -6
  60. package/dist/TextArea/index.cjs.map +1 -1
  61. package/dist/TextArea/index.d.cts +2 -2
  62. package/dist/TextArea/index.d.ts +2 -2
  63. package/dist/TextArea/index.js +6 -5
  64. package/dist/{TextArea-B-sKvTkd.d.cts → TextArea-DNpInDsW.d.cts} +1 -1
  65. package/dist/{TextArea-B-sKvTkd.d.ts → TextArea-DNpInDsW.d.ts} +1 -1
  66. package/dist/{chunk-QCVTB2NI.js → chunk-3QBYSFDX.js} +10 -9
  67. package/dist/chunk-3QBYSFDX.js.map +1 -0
  68. package/dist/chunk-4DAZAO6Y.cjs +59 -0
  69. package/dist/chunk-4DAZAO6Y.cjs.map +1 -0
  70. package/dist/{chunk-BS52M4SZ.js → chunk-5YDNHSEU.js} +47 -41
  71. package/dist/chunk-5YDNHSEU.js.map +1 -0
  72. package/dist/chunk-7ROOJK7G.cjs +110 -0
  73. package/dist/chunk-7ROOJK7G.cjs.map +1 -0
  74. package/dist/{chunk-WKM2D7LF.js → chunk-ASPOGQPS.js} +2 -5
  75. package/dist/chunk-ASPOGQPS.js.map +1 -0
  76. package/dist/{chunk-XCZKNTFT.cjs → chunk-BDVAK232.cjs} +23 -24
  77. package/dist/chunk-BDVAK232.cjs.map +1 -0
  78. package/dist/chunk-CESGUF6F.cjs +63 -0
  79. package/dist/chunk-CESGUF6F.cjs.map +1 -0
  80. package/dist/chunk-CRTRMMJ7.js +59 -0
  81. package/dist/chunk-CRTRMMJ7.js.map +1 -0
  82. package/dist/{chunk-VP7WDLJM.js → chunk-DS7GUNDT.js} +17 -14
  83. package/dist/chunk-DS7GUNDT.js.map +1 -0
  84. package/dist/chunk-ECDLVJLZ.js +246 -0
  85. package/dist/chunk-ECDLVJLZ.js.map +1 -0
  86. package/dist/{chunk-GN5NJ6ZU.js → chunk-GNDW3TAU.js} +3 -6
  87. package/dist/chunk-GNDW3TAU.js.map +1 -0
  88. package/dist/{chunk-VZ5MMFIF.cjs → chunk-H65I56SI.cjs} +4 -7
  89. package/dist/chunk-H65I56SI.cjs.map +1 -0
  90. package/dist/chunk-HCQJGNWT.cjs +246 -0
  91. package/dist/chunk-HCQJGNWT.cjs.map +1 -0
  92. package/dist/chunk-IBQCNI5H.js +372 -0
  93. package/dist/chunk-IBQCNI5H.js.map +1 -0
  94. package/dist/chunk-IUVEFLF3.cjs +133 -0
  95. package/dist/chunk-IUVEFLF3.cjs.map +1 -0
  96. package/dist/{chunk-Y3SFF6RN.cjs → chunk-KIAIGPG7.cjs} +11 -10
  97. package/dist/chunk-KIAIGPG7.cjs.map +1 -0
  98. package/dist/{chunk-QW44EUAH.js → chunk-MEK7YR46.js} +10 -10
  99. package/dist/chunk-MEK7YR46.js.map +1 -0
  100. package/dist/{chunk-OHJYXA6R.cjs → chunk-OE5IW4ZG.cjs} +4 -7
  101. package/dist/chunk-OE5IW4ZG.cjs.map +1 -0
  102. package/dist/chunk-PHGFXKPU.cjs +51 -0
  103. package/dist/chunk-PHGFXKPU.cjs.map +1 -0
  104. package/dist/{chunk-PZ4LZQI4.cjs → chunk-Q23XGBJ5.cjs} +18 -15
  105. package/dist/chunk-Q23XGBJ5.cjs.map +1 -0
  106. package/dist/{chunk-DDZMDOSG.js → chunk-STU7SBQX.js} +25 -23
  107. package/dist/chunk-STU7SBQX.js.map +1 -0
  108. package/dist/{chunk-BZAPTLMC.js → chunk-T4N6TMUL.js} +49 -49
  109. package/dist/chunk-T4N6TMUL.js.map +1 -0
  110. package/dist/chunk-TJESSWIB.cjs +372 -0
  111. package/dist/chunk-TJESSWIB.cjs.map +1 -0
  112. package/dist/chunk-UAV6PVB4.js +63 -0
  113. package/dist/chunk-UAV6PVB4.js.map +1 -0
  114. package/dist/{chunk-BYKOCVCK.js → chunk-WKJN5A2E.js} +22 -23
  115. package/dist/chunk-WKJN5A2E.js.map +1 -0
  116. package/dist/{chunk-XJZAS7NG.cjs → chunk-WRIXKFKW.cjs} +25 -23
  117. package/dist/chunk-WRIXKFKW.cjs.map +1 -0
  118. package/dist/{chunk-RBIX6EWU.cjs → chunk-Y7MJBI4A.cjs} +11 -11
  119. package/dist/chunk-Y7MJBI4A.cjs.map +1 -0
  120. package/dist/chunk-ZI22WT2P.js +51 -0
  121. package/dist/chunk-ZI22WT2P.js.map +1 -0
  122. package/dist/helpers/index.cjs +9 -2
  123. package/dist/helpers/index.cjs.map +1 -1
  124. package/dist/helpers/index.d.cts +67 -4
  125. package/dist/helpers/index.d.ts +67 -4
  126. package/dist/helpers/index.js +10 -3
  127. package/dist/hooks/index.cjs +6 -3
  128. package/dist/hooks/index.cjs.map +1 -1
  129. package/dist/hooks/index.d.cts +3 -2
  130. package/dist/hooks/index.d.ts +3 -2
  131. package/dist/hooks/index.js +7 -4
  132. package/dist/index.cjs +25 -16
  133. package/dist/index.cjs.map +1 -1
  134. package/dist/index.d.cts +11 -10
  135. package/dist/index.d.ts +11 -10
  136. package/dist/index.js +31 -22
  137. package/dist/partials/FieldCopyTestIdButton/index.cjs +1 -0
  138. package/dist/partials/FieldCopyTestIdButton/index.cjs.map +1 -1
  139. package/dist/partials/FieldCopyTestIdButton/index.js +1 -0
  140. package/dist/partials/FieldValidationError/index.cjs +3 -3
  141. package/dist/partials/FieldValidationError/index.js +2 -2
  142. package/package.json +18 -20
  143. package/dist/FieldArray-DD9z-xZ3.d.cts +0 -37
  144. package/dist/FieldArray-DD9z-xZ3.d.ts +0 -37
  145. package/dist/chunk-BBB4FEY6.cjs +0 -22
  146. package/dist/chunk-BBB4FEY6.cjs.map +0 -1
  147. package/dist/chunk-BS52M4SZ.js.map +0 -1
  148. package/dist/chunk-BYKOCVCK.js.map +0 -1
  149. package/dist/chunk-BZAPTLMC.js.map +0 -1
  150. package/dist/chunk-DDZMDOSG.js.map +0 -1
  151. package/dist/chunk-EKE5URXQ.cjs +0 -104
  152. package/dist/chunk-EKE5URXQ.cjs.map +0 -1
  153. package/dist/chunk-GN5NJ6ZU.js.map +0 -1
  154. package/dist/chunk-HOETR36J.cjs +0 -299
  155. package/dist/chunk-HOETR36J.cjs.map +0 -1
  156. package/dist/chunk-HZP3EXGR.cjs +0 -241
  157. package/dist/chunk-HZP3EXGR.cjs.map +0 -1
  158. package/dist/chunk-IUNDGVMC.js +0 -241
  159. package/dist/chunk-IUNDGVMC.js.map +0 -1
  160. package/dist/chunk-KOKIM2ND.js +0 -9
  161. package/dist/chunk-KOKIM2ND.js.map +0 -1
  162. package/dist/chunk-OHJYXA6R.cjs.map +0 -1
  163. package/dist/chunk-PZ4LZQI4.cjs.map +0 -1
  164. package/dist/chunk-QCVTB2NI.js.map +0 -1
  165. package/dist/chunk-QW44EUAH.js.map +0 -1
  166. package/dist/chunk-RBIX6EWU.cjs.map +0 -1
  167. package/dist/chunk-V46BHM2U.js +0 -22
  168. package/dist/chunk-V46BHM2U.js.map +0 -1
  169. package/dist/chunk-VP7WDLJM.js.map +0 -1
  170. package/dist/chunk-VQWKXSHW.cjs +0 -9
  171. package/dist/chunk-VQWKXSHW.cjs.map +0 -1
  172. package/dist/chunk-VZ5MMFIF.cjs.map +0 -1
  173. package/dist/chunk-WKM2D7LF.js.map +0 -1
  174. package/dist/chunk-XCZKNTFT.cjs.map +0 -1
  175. package/dist/chunk-XJWEUCV3.cjs +0 -133
  176. package/dist/chunk-XJWEUCV3.cjs.map +0 -1
  177. package/dist/chunk-XJZAS7NG.cjs.map +0 -1
  178. package/dist/chunk-Y3SFF6RN.cjs.map +0 -1
  179. package/dist/chunk-Y53IHK6B.js +0 -299
  180. package/dist/chunk-Y53IHK6B.js.map +0 -1
@@ -1,299 +0,0 @@
1
- import {
2
- FieldCopyTestIdButton_default
3
- } from "./chunk-2CRY7VDQ.js";
4
- import {
5
- FieldValidationError_default
6
- } from "./chunk-WKM2D7LF.js";
7
- import {
8
- useFieldArray,
9
- useFormContext
10
- } from "./chunk-BZAPTLMC.js";
11
- import {
12
- slugify
13
- } from "./chunk-V46BHM2U.js";
14
-
15
- // src/FieldArray/FieldArray.tsx
16
- import {
17
- closestCenter,
18
- DndContext,
19
- KeyboardSensor,
20
- PointerSensor,
21
- useSensor,
22
- useSensors
23
- } from "@dnd-kit/core";
24
- import {
25
- restrictToVerticalAxis,
26
- restrictToWindowEdges
27
- } from "@dnd-kit/modifiers";
28
- import {
29
- SortableContext,
30
- verticalListSortingStrategy
31
- } from "@dnd-kit/sortable";
32
- import { useInput as useInput2 } from "@nextui-org/input";
33
- import { Button as Button2 } from "@fuf-stack/pixels";
34
-
35
- // src/FieldArray/FieldArrayField.tsx
36
- import { FaAngleDown, FaAngleUp, FaGripLines } from "react-icons/fa";
37
- import { useSortable } from "@dnd-kit/sortable";
38
- import { CSS } from "@dnd-kit/utilities";
39
- import { useInput } from "@nextui-org/input";
40
- import { Button } from "@fuf-stack/pixels";
41
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
42
- var FieldArrayField = ({
43
- children,
44
- className = void 0,
45
- field,
46
- fields,
47
- hideButtons = [],
48
- id,
49
- index,
50
- insert,
51
- lastNotDeletable = true,
52
- move,
53
- moveField,
54
- name,
55
- remove,
56
- testId = void 0
57
- }) => {
58
- const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ id });
59
- const style = {
60
- transform: CSS.Translate.toString(transform),
61
- transition
62
- };
63
- const { getFieldState, trigger } = useFormContext();
64
- const { error, invalid } = getFieldState(`${name}`, void 0);
65
- const { getHelperWrapperProps, getErrorMessageProps } = useInput({
66
- isInvalid: invalid,
67
- errorMessage: JSON.stringify(error),
68
- labelPlacement: "inside",
69
- placeholder: " ",
70
- classNames: { helperWrapper: "block" }
71
- });
72
- return /* @__PURE__ */ jsxs(Fragment, { children: [
73
- /* @__PURE__ */ jsxs(
74
- "li",
75
- {
76
- ref: setNodeRef,
77
- style,
78
- className,
79
- onBlur: () => trigger(`${name}.${index}`),
80
- children: [
81
- !hideButtons.includes("move") && !hideButtons.includes("all") && /* @__PURE__ */ jsxs("div", { className: "mr-6 flex flex-row items-center", children: [
82
- moveField.includes("drag-drop") && /* @__PURE__ */ jsx(
83
- "div",
84
- {
85
- className: "mr-2 text-base text-xl",
86
- "data-testid": slugify(`${name}_${index}_movebutton`),
87
- ...attributes,
88
- ...listeners,
89
- children: /* @__PURE__ */ jsx(FaGripLines, {})
90
- }
91
- ),
92
- moveField.includes("button") && /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
93
- /* @__PURE__ */ jsx(
94
- Button,
95
- {
96
- testId: `${name}.${index}.up`,
97
- disabled: index === 0,
98
- onClick: () => move(index, index - 1),
99
- className: "flex rounded-b-none rounded-t-md border border-gray-300 px-2 py-2 shadow-sm",
100
- children: /* @__PURE__ */ jsx(FaAngleUp, {})
101
- }
102
- ),
103
- /* @__PURE__ */ jsx(
104
- Button,
105
- {
106
- testId: `${name}.${index}.down`,
107
- disabled: index === fields.length - 1,
108
- onClick: () => move(index, index + 1),
109
- className: "flex rounded-b-md rounded-t-none border border-gray-300 px-2 py-2 shadow-sm",
110
- children: /* @__PURE__ */ jsx(FaAngleDown, {})
111
- }
112
- )
113
- ] })
114
- ] }),
115
- /* @__PURE__ */ jsxs("div", { className: "w-full", children: [
116
- /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center", children: [
117
- /* @__PURE__ */ jsx("div", { className: "flex-grow", "data-testid": testId, children }),
118
- !hideButtons.includes("remove") && !hideButtons.includes("all") && (lastNotDeletable && fields.length === 1 ? null : /* @__PURE__ */ jsx(Button, { onClick: () => remove(index), className: "ml-1", children: /* @__PURE__ */ jsx(
119
- "svg",
120
- {
121
- className: "h-4 w-4",
122
- xmlns: "http://www.w3.org/2000/svg",
123
- viewBox: "0 0 20 20",
124
- fill: "currentColor",
125
- "aria-hidden": "true",
126
- children: /* @__PURE__ */ jsx(
127
- "path",
128
- {
129
- fillRule: "evenodd",
130
- d: "M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z",
131
- clipRule: "evenodd"
132
- }
133
- )
134
- }
135
- ) }))
136
- ] }),
137
- !hideButtons.includes("insert") && !hideButtons.includes("all") && index !== fields.length - 1 ? /* @__PURE__ */ jsx(
138
- Button,
139
- {
140
- className: "text-xs font-medium",
141
- testId: `add-harbor-button-${index}`,
142
- onClick: () => {
143
- insert(index + 1, {});
144
- },
145
- children: "insert"
146
- }
147
- ) : null
148
- ] }, `rest-${field.id}`)
149
- ]
150
- }
151
- ),
152
- error && typeof error[index] !== "undefined" && // // @ts-expect-error rhf incompatibility
153
- // error[Number(index)]?._errors && ( // TODO: was String(). Check if Number is correct. (same below in FieldValidationError)
154
- // eslint-disable-next-line react/jsx-props-no-spreading
155
- /* @__PURE__ */ jsx("div", { ...getHelperWrapperProps(), children: /* @__PURE__ */ jsx("div", { ...getErrorMessageProps(), children: /* @__PURE__ */ jsx(
156
- FieldValidationError_default,
157
- {
158
- error: error[Number(index)]?._errors
159
- }
160
- ) }) })
161
- ] });
162
- };
163
- var FieldArrayField_default = FieldArrayField;
164
-
165
- // src/FieldArray/FieldArray.tsx
166
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
167
- var FieldArray = ({
168
- children,
169
- elementInitialValue = void 0,
170
- hideButtons = [],
171
- label: _label = void 0,
172
- lastElementNotDeletable = true,
173
- name,
174
- testId: _testId = void 0,
175
- moveField = ["button"]
176
- }) => {
177
- const {
178
- control,
179
- debugMode,
180
- getValues,
181
- getFieldState,
182
- trigger
183
- // watch
184
- } = useFormContext();
185
- const { fields, append, remove, insert, move } = useFieldArray({
186
- control,
187
- name
188
- });
189
- const { error, testId, invalid, required } = getFieldState(name, _testId);
190
- const { label, getLabelProps, getHelperWrapperProps, getErrorMessageProps } = useInput2({
191
- isInvalid: invalid,
192
- isRequired: required,
193
- errorMessage: JSON.stringify(error),
194
- label: _label,
195
- labelPlacement: "inside",
196
- placeholder: " ",
197
- classNames: { helperWrapper: "block" }
198
- });
199
- if (lastElementNotDeletable && fields.length === 0) {
200
- append(elementInitialValue);
201
- }
202
- const sensors = useSensors(
203
- useSensor(PointerSensor),
204
- useSensor(KeyboardSensor)
205
- );
206
- const handleDragEnd = (event) => {
207
- const { active, over } = event;
208
- if (active.id !== over?.id) {
209
- const oldIndex = fields.findIndex((field) => field.id === active.id);
210
- const newIndex = fields.findIndex((field) => field.id === over?.id);
211
- move(oldIndex, newIndex);
212
- }
213
- };
214
- const showTestIdCopyButton = debugMode === "debug-testids";
215
- const showLabel = label || showTestIdCopyButton;
216
- return /* @__PURE__ */ jsx2(
217
- DndContext,
218
- {
219
- sensors,
220
- collisionDetection: closestCenter,
221
- onDragEnd: handleDragEnd,
222
- modifiers: [restrictToVerticalAxis, restrictToWindowEdges],
223
- children: /* @__PURE__ */ jsx2(
224
- SortableContext,
225
- {
226
- items: fields.map((field) => field.id),
227
- strategy: verticalListSortingStrategy,
228
- children: /* @__PURE__ */ jsxs2("ul", { "data-testid": testId, onBlur: () => trigger(`${name}`), children: [
229
- showLabel && // eslint-disable-next-line jsx-a11y/label-has-associated-control
230
- /* @__PURE__ */ jsx2(
231
- "label",
232
- {
233
- ...getLabelProps(),
234
- className: `${getLabelProps().className} !pointer-events-auto !static !z-0 -mb-1 ml-1 !inline-block`,
235
- children: label
236
- }
237
- ),
238
- showTestIdCopyButton && /* @__PURE__ */ jsx2(FieldCopyTestIdButton_default, { testId }),
239
- fields.map((field, index) => {
240
- const duplicate = (i) => {
241
- const values = getValues(name);
242
- insert(i + 1, { ...values[i], id: null });
243
- };
244
- return /* @__PURE__ */ jsx2(
245
- FieldArrayField_default,
246
- {
247
- className: "mb-3 mt-5 flex flex-row items-center",
248
- field,
249
- fields,
250
- hideButtons,
251
- id: field.id,
252
- index,
253
- insert,
254
- lastNotDeletable: lastElementNotDeletable,
255
- move,
256
- moveField,
257
- name,
258
- remove,
259
- testId: `${testId}_${index}`,
260
- children: children({
261
- duplicate,
262
- index,
263
- insert,
264
- length: fields.length,
265
- move,
266
- name: `${name}.${index}`,
267
- remove
268
- })
269
- },
270
- field.id
271
- );
272
- }),
273
- !hideButtons.includes("add") && !hideButtons.includes("all") && /* @__PURE__ */ jsx2(
274
- Button2,
275
- {
276
- testId: `${testId}_append`,
277
- size: "sm",
278
- onClick: () => append(elementInitialValue),
279
- children: "Add"
280
- }
281
- ),
282
- error?._errors && // eslint-disable-next-line react/jsx-props-no-spreading
283
- /* @__PURE__ */ jsx2("div", { ...getHelperWrapperProps(), children: /* @__PURE__ */ jsx2("div", { ...getErrorMessageProps(), children: /* @__PURE__ */ jsx2(FieldValidationError_default, { error: error?._errors }) }) })
284
- ] })
285
- }
286
- )
287
- }
288
- );
289
- };
290
- var FieldArray_default = FieldArray;
291
-
292
- // src/FieldArray/index.ts
293
- var FieldArray_default2 = FieldArray_default;
294
-
295
- export {
296
- FieldArray_default,
297
- FieldArray_default2
298
- };
299
- //# sourceMappingURL=chunk-Y53IHK6B.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/FieldArray/FieldArray.tsx","../src/FieldArray/FieldArrayField.tsx","../src/FieldArray/index.ts"],"sourcesContent":["import type { DragEndEvent } from '@dnd-kit/core';\nimport type { JSX } from 'react';\nimport type {\n FieldValues,\n UseFieldArrayInsert,\n UseFieldArrayMove,\n UseFieldArrayRemove,\n} from 'react-hook-form';\n\nimport {\n closestCenter,\n DndContext,\n KeyboardSensor,\n PointerSensor,\n useSensor,\n useSensors,\n} from '@dnd-kit/core';\nimport {\n restrictToVerticalAxis,\n restrictToWindowEdges,\n} from '@dnd-kit/modifiers';\nimport {\n SortableContext,\n verticalListSortingStrategy,\n} from '@dnd-kit/sortable';\nimport { useInput } from '@nextui-org/input';\n\nimport { Button } from '@fuf-stack/pixels';\n\nimport { useFieldArray, useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\nimport FieldArrayField from './FieldArrayField';\n\nexport type FieldArrayHideOption = 'add' | 'remove' | 'move' | 'insert' | 'all';\nexport type FieldArrayFieldChildren = (args: {\n duplicate: (i: number) => void;\n index: number;\n insert: UseFieldArrayInsert<FieldValues, string>;\n length: number;\n move: UseFieldArrayMove;\n name: string;\n remove: UseFieldArrayRemove;\n}) => JSX.Element;\n\nexport type MoveField = 'drag-drop' | 'button';\n\nexport interface FieldArrayProps {\n /** function that renders the children with provided Properties. */\n children: FieldArrayFieldChildren;\n /* The initial value of a filed that is created in the array */\n elementInitialValue?: unknown;\n /** Hide a set of buttons. */\n hideButtons?: FieldArrayHideOption[];\n /** label of the FieldArray. */\n label?: React.ReactNode;\n /** stops user from deleting all items. */\n lastElementNotDeletable?: boolean;\n /** name the FieldArray is registered in RHF */\n name: string;\n /** ID for test purposes. */\n testId?: string;\n /* how the fields can be moved */\n moveField?: MoveField[];\n}\n\n/**\n * FieldArray component using react-hook-form\n */\nconst FieldArray = ({\n children,\n elementInitialValue = undefined,\n hideButtons = [],\n label: _label = undefined,\n lastElementNotDeletable = true,\n name,\n testId: _testId = undefined,\n moveField = ['button'],\n}: FieldArrayProps) => {\n const {\n control,\n debugMode,\n getValues,\n getFieldState,\n trigger,\n // watch\n } = useFormContext();\n\n const { fields, append, remove, insert, move } = useFieldArray({\n control,\n name,\n });\n\n const { error, testId, invalid, required } = getFieldState(name, _testId);\n\n // TODO: what about input props?\n const { label, getLabelProps, getHelperWrapperProps, getErrorMessageProps } =\n useInput({\n isInvalid: invalid,\n isRequired: required,\n errorMessage: JSON.stringify(error),\n label: _label,\n labelPlacement: 'inside',\n placeholder: ' ',\n classNames: { helperWrapper: 'block' },\n });\n\n if (lastElementNotDeletable && fields.length === 0) {\n append(elementInitialValue); // TODO: Check if this breaks something\n }\n\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor),\n );\n\n const handleDragEnd = (event: DragEndEvent) => {\n const { active, over } = event;\n\n if (active.id !== over?.id) {\n const oldIndex = fields.findIndex((field) => field.id === active.id);\n const newIndex = fields.findIndex((field) => field.id === over?.id);\n move(oldIndex, newIndex);\n }\n };\n\n const showTestIdCopyButton = debugMode === 'debug-testids';\n const showLabel = label || showTestIdCopyButton;\n\n return (\n <DndContext\n sensors={sensors}\n collisionDetection={closestCenter}\n onDragEnd={handleDragEnd}\n modifiers={[restrictToVerticalAxis, restrictToWindowEdges]}\n >\n <SortableContext\n items={fields.map((field) => field.id)}\n strategy={verticalListSortingStrategy}\n >\n <ul data-testid={testId} onBlur={() => trigger(`${name}`)}>\n {showLabel && (\n // eslint-disable-next-line jsx-a11y/label-has-associated-control\n <label\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...getLabelProps()}\n className={`${getLabelProps().className} !pointer-events-auto !static !z-0 -mb-1 ml-1 !inline-block`}\n >\n {label}\n </label>\n )}\n {showTestIdCopyButton && <FieldCopyTestIdButton testId={testId} />}\n\n {fields.map((field, index) => {\n const duplicate = (i: number) => {\n const values = getValues(name);\n insert(i + 1, { ...values[i], id: null });\n };\n\n return (\n <FieldArrayField\n className=\"mb-3 mt-5 flex flex-row items-center\"\n field={field}\n fields={fields}\n hideButtons={hideButtons}\n id={field.id}\n index={index}\n insert={insert}\n key={field.id}\n lastNotDeletable={lastElementNotDeletable}\n move={move}\n moveField={moveField}\n name={name}\n remove={remove}\n testId={`${testId}_${index}`}\n >\n {children({\n duplicate,\n index,\n insert,\n length: fields.length,\n move,\n name: `${name}.${index}`,\n remove,\n })}\n </FieldArrayField>\n );\n })}\n\n {!hideButtons.includes('add') && !hideButtons.includes('all') && (\n <Button\n testId={`${testId}_append`}\n size=\"sm\"\n onClick={() => append(elementInitialValue)} // TODO: Check if this breaks something\n >\n Add\n </Button>\n )}\n {/* @ts-expect-error rhf incompatibility */}\n {error?._errors && (\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div {...getHelperWrapperProps()}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <div {...getErrorMessageProps()}>\n {/* @ts-expect-error rhf incompatibility */}\n <FieldValidationError error={error?._errors} />\n </div>\n </div>\n )}\n </ul>\n </SortableContext>\n </DndContext>\n );\n};\n\nexport default FieldArray;\n","import type {\n FieldValues,\n UseFieldArrayInsert,\n UseFieldArrayMove,\n UseFieldArrayRemove,\n} from 'react-hook-form';\nimport type { FieldArrayHideOption, MoveField } from './FieldArray';\n\n// import { useEffect } from 'react';\nimport { FaAngleDown, FaAngleUp, FaGripLines } from 'react-icons/fa';\n\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { useInput } from '@nextui-org/input';\n\nimport { Button } from '@fuf-stack/pixels';\n\nimport { slugify } from '../helpers';\nimport { useFormContext } from '../hooks';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\ninterface FieldArrayFieldProps {\n children: React.ReactNode;\n className?: string;\n field: Record<'id', string>;\n fields: Record<'id', string>[];\n hideButtons?: FieldArrayHideOption[];\n id: string | number;\n index: number;\n insert: UseFieldArrayInsert<FieldValues, string>;\n lastNotDeletable?: boolean;\n move: UseFieldArrayMove;\n moveField: MoveField[];\n testId?: string;\n name: string;\n remove: UseFieldArrayRemove;\n}\n\n/**\n * FieldArrayField component using react-hook-form\n */\nconst FieldArrayField = ({\n children,\n className = undefined,\n field,\n fields,\n hideButtons = [],\n id,\n index,\n insert,\n lastNotDeletable = true,\n move,\n moveField,\n name,\n remove,\n testId = undefined,\n}: FieldArrayFieldProps) => {\n const { attributes, listeners, setNodeRef, transform, transition } =\n useSortable({ id });\n\n const style = {\n transform: CSS.Translate.toString(transform),\n transition,\n };\n\n const { getFieldState, trigger } = useFormContext();\n const { error, invalid } = getFieldState(`${name}`, undefined);\n\n // TODO: what about input props? and label props? Do we need a label?\n const { getHelperWrapperProps, getErrorMessageProps } = useInput({\n isInvalid: invalid,\n errorMessage: JSON.stringify(error),\n labelPlacement: 'inside',\n placeholder: ' ',\n classNames: { helperWrapper: 'block' },\n });\n\n return (\n <>\n <li\n ref={setNodeRef}\n style={style}\n className={className}\n onBlur={() => trigger(`${name}.${index}`)}\n >\n {/** Start Button up/down */}\n {!hideButtons.includes('move') && !hideButtons.includes('all') && (\n <div className=\"mr-6 flex flex-row items-center\">\n {moveField.includes('drag-drop') && (\n <div\n className=\"mr-2 text-base text-xl\"\n data-testid={slugify(`${name}_${index}_movebutton`)}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...attributes}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...listeners}\n >\n <FaGripLines />\n </div>\n )}\n {moveField.includes('button') && (\n <div className=\"flex flex-col\">\n <Button\n testId={`${name}.${index}.up`}\n disabled={index === 0}\n onClick={() => move(index, index - 1)}\n className=\"flex rounded-b-none rounded-t-md border border-gray-300 px-2 py-2 shadow-sm\"\n >\n <FaAngleUp />\n </Button>\n <Button\n testId={`${name}.${index}.down`}\n disabled={index === fields.length - 1}\n onClick={() => move(index, index + 1)}\n className=\"flex rounded-b-md rounded-t-none border border-gray-300 px-2 py-2 shadow-sm\"\n >\n <FaAngleDown />\n </Button>\n </div>\n )}\n </div>\n )}\n {/** End Button up/down */}\n <div key={`rest-${field.id}`} className=\"w-full\">\n <div className=\"mb-2 flex items-center\">\n {/** RENDER CHILDREN */}\n <div className=\"flex-grow\" data-testid={testId}>\n {children}\n </div>\n {!hideButtons.includes('remove') &&\n !hideButtons.includes('all') &&\n (lastNotDeletable && fields.length === 1 ? null : (\n <Button onClick={() => remove(index)} className=\"ml-1\">\n <svg\n className=\"h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n </Button>\n ))}\n </div>\n\n {!hideButtons.includes('insert') &&\n !hideButtons.includes('all') &&\n index !== fields.length - 1 ? (\n <Button\n className=\"text-xs font-medium\"\n testId={`add-harbor-button-${index}`}\n onClick={() => {\n insert(index + 1, {});\n }}\n >\n insert\n </Button>\n ) : null}\n </div>\n </li>\n {error && typeof error[index] !== 'undefined' && (\n // // @ts-expect-error rhf incompatibility\n // error[Number(index)]?._errors && ( // TODO: was String(). Check if Number is correct. (same below in FieldValidationError)\n // eslint-disable-next-line react/jsx-props-no-spreading\n <div {...getHelperWrapperProps()}>\n {/* eslint-disable-next-line react/jsx-props-no-spreading */}\n <div {...getErrorMessageProps()}>\n <FieldValidationError\n /* @ts-expect-error rhf incompatibility */\n error={error[Number(index)]?._errors}\n />\n </div>\n </div>\n )}\n </>\n );\n};\nexport default FieldArrayField;\n","import FieldArray from './FieldArray';\n\nexport type {\n FieldArrayProps,\n FieldArrayHideOption,\n FieldArrayFieldChildren,\n} from './FieldArray';\n\nexport { FieldArray };\n\nexport default FieldArray;\n"],"mappings":"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","names":["useInput","Button","jsx","jsxs","useInput","Button","FieldArray_default"]}