@fuf-stack/uniform 0.4.0 → 0.5.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 (73) hide show
  1. package/dist/FieldArray/index.cjs +13 -0
  2. package/dist/FieldArray/index.cjs.map +1 -0
  3. package/dist/FieldArray/index.d.cts +8 -0
  4. package/dist/FieldArray/index.d.ts +8 -0
  5. package/dist/FieldArray/index.js +13 -0
  6. package/dist/FieldArray/index.js.map +1 -0
  7. package/dist/FieldArray-DUvn98Fe.d.cts +27 -0
  8. package/dist/FieldArray-DUvn98Fe.d.ts +27 -0
  9. package/dist/Input/index.cjs +3 -3
  10. package/dist/Input/index.js +2 -2
  11. package/dist/RadioGroup/index.cjs +13 -0
  12. package/dist/RadioGroup/index.cjs.map +1 -0
  13. package/dist/RadioGroup/index.d.cts +7 -0
  14. package/dist/RadioGroup/index.d.ts +7 -0
  15. package/dist/RadioGroup/index.js +13 -0
  16. package/dist/RadioGroup/index.js.map +1 -0
  17. package/dist/RadioGroup-BU4K9cnS.d.cts +40 -0
  18. package/dist/RadioGroup-BU4K9cnS.d.ts +40 -0
  19. package/dist/Select/index.cjs +13 -0
  20. package/dist/Select/index.cjs.map +1 -0
  21. package/dist/Select/index.d.cts +8 -0
  22. package/dist/Select/index.d.ts +8 -0
  23. package/dist/Select/index.js +13 -0
  24. package/dist/Select/index.js.map +1 -0
  25. package/dist/Select-Mp6Y00dT.d.cts +40 -0
  26. package/dist/Select-Mp6Y00dT.d.ts +40 -0
  27. package/dist/Switch/index.cjs +13 -0
  28. package/dist/Switch/index.cjs.map +1 -0
  29. package/dist/Switch/index.d.cts +7 -0
  30. package/dist/Switch/index.d.ts +7 -0
  31. package/dist/Switch/index.js +13 -0
  32. package/dist/Switch/index.js.map +1 -0
  33. package/dist/Switch-DmjDKgKs.d.cts +20 -0
  34. package/dist/Switch-DmjDKgKs.d.ts +20 -0
  35. package/dist/TextArea/index.cjs +13 -0
  36. package/dist/TextArea/index.cjs.map +1 -0
  37. package/dist/TextArea/index.d.cts +8 -0
  38. package/dist/TextArea/index.d.ts +8 -0
  39. package/dist/TextArea/index.js +13 -0
  40. package/dist/TextArea/index.js.map +1 -0
  41. package/dist/TextArea-B-sKvTkd.d.cts +25 -0
  42. package/dist/TextArea-B-sKvTkd.d.ts +25 -0
  43. package/dist/{chunk-OYXZQOGU.js → chunk-2Z3YMYNN.js} +4 -4
  44. package/dist/chunk-4IT2WVQK.cjs +76 -0
  45. package/dist/chunk-4IT2WVQK.cjs.map +1 -0
  46. package/dist/chunk-6NZVSPFX.js +76 -0
  47. package/dist/chunk-6NZVSPFX.js.map +1 -0
  48. package/dist/chunk-BIJVBXOG.js +205 -0
  49. package/dist/chunk-BIJVBXOG.js.map +1 -0
  50. package/dist/chunk-CRKMTDKU.js +239 -0
  51. package/dist/chunk-CRKMTDKU.js.map +1 -0
  52. package/dist/chunk-EXYTFHEJ.js +81 -0
  53. package/dist/chunk-EXYTFHEJ.js.map +1 -0
  54. package/dist/chunk-I22ICCUC.cjs +205 -0
  55. package/dist/chunk-I22ICCUC.cjs.map +1 -0
  56. package/dist/chunk-I26DVRVR.js +287 -0
  57. package/dist/chunk-I26DVRVR.js.map +1 -0
  58. package/dist/chunk-NVJKXQ5W.cjs +239 -0
  59. package/dist/chunk-NVJKXQ5W.cjs.map +1 -0
  60. package/dist/chunk-OS4SMYPO.cjs +287 -0
  61. package/dist/chunk-OS4SMYPO.cjs.map +1 -0
  62. package/dist/{chunk-2CKPLOCK.cjs → chunk-VO7ZM3KY.cjs} +4 -4
  63. package/dist/chunk-XY7ZZARS.cjs +81 -0
  64. package/dist/chunk-XY7ZZARS.cjs.map +1 -0
  65. package/dist/hooks/index.d.cts +2 -2
  66. package/dist/hooks/index.d.ts +2 -2
  67. package/dist/index.cjs +24 -4
  68. package/dist/index.d.cts +7 -1
  69. package/dist/index.d.ts +7 -1
  70. package/dist/index.js +26 -6
  71. package/package.json +38 -13
  72. /package/dist/{chunk-OYXZQOGU.js.map → chunk-2Z3YMYNN.js.map} +0 -0
  73. /package/dist/{chunk-2CKPLOCK.cjs.map → chunk-VO7ZM3KY.cjs.map} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/FieldArray/FieldArray.tsx","../src/FieldArray/FieldArrayField.tsx","../src/FieldArray/index.ts"],"names":["useEffect","useInput","Button","jsx","jsxs","FieldArray_default"],"mappings":"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","sourcesContent":["import type { DragEndEvent } from '@dnd-kit/core';\nimport type {\n FieldValues,\n UseFieldArrayInsert,\n UseFieldArrayMove,\n UseFieldArrayRemove,\n} from 'react-hook-form';\n\nimport { useEffect } from 'react';\nimport { useFieldArray } 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 { 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 = (\n name: string,\n index: number,\n length: number,\n move: UseFieldArrayMove,\n insert: UseFieldArrayInsert<FieldValues, string>,\n remove: UseFieldArrayRemove,\n duplicate: (i: number) => void,\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 /** 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 lastNotDeletable?: 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 hideButtons = [],\n label: _label = undefined,\n lastNotDeletable = true,\n name,\n testId: _testId = undefined,\n moveField = ['button'],\n}: FieldArrayProps) => {\n const { control, getValues, getFieldState, register, trigger, 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 register(`${name}._errors`);\n\n const formValues = watch();\n\n useEffect(() => {\n trigger(`${name}._errors`);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(formValues)]);\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 (lastNotDeletable && fields.length === 0) {\n append({});\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 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}>\n {label && (\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 <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 id={field.id}\n key={field.id}\n testId={`${testId}_${index}`}\n className=\"mb-3 mt-5 flex flex-row items-center\"\n field={field}\n fields={fields}\n hideButtons={hideButtons}\n index={index}\n insert={insert}\n lastNotDeletable={lastNotDeletable}\n move={move}\n moveField={moveField}\n name={name}\n remove={remove}\n >\n {children(\n `${name}[${index}]`,\n index,\n fields.length,\n move,\n insert,\n remove,\n duplicate,\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({})}\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\nimport { 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, register, watch, 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 // TODO: Check if this is a current issue: _error gets kicked out of the formValidation if no other errors exist. validationError exists, but the structure changes.\n register(`${name}.${index}._errors`);\n\n const formValues = watch();\n useEffect(() => {\n trigger(`${name}.${index}._errors`);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(formValues)]);\n\n return (\n <>\n <li ref={setNodeRef} style={style} className={className}>\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 &&\n 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 {/* @ts-expect-error rhf incompatibility */}\n <FieldValidationError error={error[Number(index)]?._errors} />\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"]}
@@ -1,12 +1,12 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
3
+ var _chunkHT3LKDHXcjs = require('./chunk-HT3LKDHX.cjs');
4
4
 
5
5
 
6
- var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
6
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
7
7
 
8
8
 
9
- var _chunkHT3LKDHXcjs = require('./chunk-HT3LKDHX.cjs');
9
+ var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
10
10
 
11
11
  // src/Input/Input.tsx
12
12
  var _reacthookform = require('react-hook-form');
@@ -78,4 +78,4 @@ var Input_default2 = Input_default;
78
78
 
79
79
 
80
80
  exports.Input_default = Input_default; exports.Input_default2 = Input_default2;
81
- //# sourceMappingURL=chunk-2CKPLOCK.cjs.map
81
+ //# sourceMappingURL=chunk-VO7ZM3KY.cjs.map
@@ -0,0 +1,81 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunkHT3LKDHXcjs = require('./chunk-HT3LKDHX.cjs');
4
+
5
+
6
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
7
+
8
+
9
+ var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
10
+
11
+ // src/Switch/Switch.tsx
12
+ var _reacthookform = require('react-hook-form');
13
+ var _input = require('@nextui-org/input');
14
+ var _switch = require('@nextui-org/switch');
15
+ var _jsxruntime = require('react/jsx-runtime');
16
+ var Switch = ({
17
+ className,
18
+ disabled = false,
19
+ label: _label = void 0,
20
+ name,
21
+ testId: _testId = void 0
22
+ }) => {
23
+ const { control, getFieldState } = _chunkWQRM7G4Ccjs.useFormContext.call(void 0, );
24
+ const { error, required, testId, invalid } = getFieldState(name, _testId);
25
+ const { label, getInputProps, getHelperWrapperProps, getErrorMessageProps } = _input.useInput.call(void 0, {
26
+ errorMessage: JSON.stringify(error),
27
+ isInvalid: invalid,
28
+ isRequired: required,
29
+ label: _label,
30
+ labelPlacement: "outside",
31
+ placeholder: " "
32
+ });
33
+ return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
34
+ _reacthookform.Controller,
35
+ {
36
+ name,
37
+ control,
38
+ disabled,
39
+ render: ({
40
+ field: { disabled: isDisabled, value, ref, onBlur, onChange }
41
+ }) => /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
42
+ /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
43
+ _switch.Switch,
44
+ {
45
+ "aria-describedby": getInputProps()["aria-describedby"],
46
+ required,
47
+ isSelected: !!value,
48
+ className,
49
+ classNames: {
50
+ label: `text-bold block text-ellipsis text-small ${invalid ? "text-danger" : ""}`
51
+ },
52
+ "data-testid": testId,
53
+ isDisabled,
54
+ value,
55
+ onChange,
56
+ onBlur,
57
+ name,
58
+ ref,
59
+ children: [
60
+ label,
61
+ !!required && !!_label && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "!text-danger", children: " *" }),
62
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHT3LKDHXcjs.FieldCopyTestIdButton_default, { testId })
63
+ ]
64
+ }
65
+ ),
66
+ error && // eslint-disable-next-line react/jsx-props-no-spreading
67
+ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...getHelperWrapperProps(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ...getErrorMessageProps(), children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkQTL5FREEcjs.FieldValidationError_default, { error }) }) })
68
+ ] })
69
+ }
70
+ );
71
+ };
72
+ var Switch_default = Switch;
73
+
74
+ // src/Switch/index.ts
75
+ var Switch_default2 = Switch_default;
76
+
77
+
78
+
79
+
80
+ exports.Switch_default = Switch_default; exports.Switch_default2 = Switch_default2;
81
+ //# sourceMappingURL=chunk-XY7ZZARS.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/Switch/Switch.tsx","../src/Switch/index.ts"],"names":["Switch_default"],"mappings":";;;;;;;;;;;AAAA,SAAS,kBAAkB;AAE3B,SAAS,gBAAgB;AACzB,SAAS,UAAU,kBAAkB;AAkD7B,mBAmBM,KAlBJ,YADF;AA5BR,IAAM,SAAS,CAAC;AAAA,EACd;AAAA,EACA,WAAW;AAAA,EACX,OAAO,SAAS;AAAA,EAChB;AAAA,EACA,QAAQ,UAAU;AACpB,MAAmB;AACjB,QAAM,EAAE,SAAS,cAAc,IAAI,eAAe;AAClD,QAAM,EAAE,OAAO,UAAU,QAAQ,QAAQ,IAAI,cAAc,MAAM,OAAO;AAExE,QAAM,EAAE,OAAO,eAAe,uBAAuB,qBAAqB,IACxE,SAAS;AAAA,IACP,cAAc,KAAK,UAAU,KAAK;AAAA,IAClC,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,gBAAgB;AAAA,IAChB,aAAa;AAAA,EACf,CAAC;AAEH,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,QAAQ,CAAC;AAAA,QACP,OAAO,EAAE,UAAU,YAAY,OAAO,KAAK,QAAQ,SAAS;AAAA,MAC9D,MACE,iCACE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,oBAAkB,cAAc,EAAE,kBAAkB;AAAA,YACpD;AAAA,YACA,YAAY,CAAC,CAAC;AAAA,YACd;AAAA,YACA,YAAY;AAAA,cACV,OAAO,4CAA4C,UAAU,gBAAgB,EAAE;AAAA,YACjF;AAAA,YACA,eAAa;AAAA,YACb;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YAEC;AAAA;AAAA,cACA,CAAC,CAAC,YAAY,CAAC,CAAC,UACf,oBAAC,UAAK,WAAU,gBAAgB,gBAAU;AAAA,cAE5C,oBAAC,iCAAsB,QAAgB;AAAA;AAAA;AAAA,QACzC;AAAA,QACC;AAAA,QAEC,oBAAC,SAAK,GAAG,sBAAsB,GAE7B,8BAAC,SAAK,GAAG,qBAAqB,GAC5B,8BAAC,gCAAqB,OAAc,GACtC,GACF;AAAA,SAEJ;AAAA;AAAA,EAEJ;AAEJ;AAEA,IAAO,iBAAQ;;;ACrFf,IAAOA,kBAAQ","sourcesContent":["import { Controller } from 'react-hook-form';\n\nimport { useInput } from '@nextui-org/input';\nimport { Switch as NextSwitch } from '@nextui-org/switch';\n\nimport { useFormContext } from '../hooks';\nimport { FieldCopyTestIdButton } from '../partials/FieldCopyTestIdButton';\nimport { FieldValidationError } from '../partials/FieldValidationError';\n\nexport interface SwitchProps {\n /** CSS class name */\n className: string;\n /** whether the select should be disabled */\n disabled?: boolean;\n /** component displayed next to the switch. */\n label: React.ReactNode;\n /** name the field is registered under */\n name: string;\n /** HTML data-testid attribute used in e2e tests */\n testId?: string;\n}\n\n/**\n * Switch component based on [NextUI Switch](https://nextui.org/docs/components/switch)\n */\nconst Switch = ({\n className,\n disabled = false,\n label: _label = undefined,\n name,\n testId: _testId = undefined,\n}: SwitchProps) => {\n const { control, getFieldState } = useFormContext();\n const { error, required, testId, invalid } = getFieldState(name, _testId);\n\n const { label, getInputProps, getHelperWrapperProps, getErrorMessageProps } =\n useInput({\n errorMessage: JSON.stringify(error),\n isInvalid: invalid,\n isRequired: required,\n label: _label,\n labelPlacement: 'outside',\n placeholder: ' ',\n });\n\n return (\n <Controller\n name={name}\n control={control}\n disabled={disabled}\n render={({\n field: { disabled: isDisabled, value, ref, onBlur, onChange },\n }) => (\n <>\n <NextSwitch\n aria-describedby={getInputProps()['aria-describedby']}\n required={required}\n isSelected={!!value}\n className={className}\n classNames={{\n label: `text-bold block text-ellipsis text-small ${invalid ? 'text-danger' : ''}`,\n }}\n data-testid={testId}\n isDisabled={isDisabled}\n value={value}\n onChange={onChange}\n onBlur={onBlur}\n name={name}\n ref={ref}\n >\n {label}\n {!!required && !!_label && (\n <span className=\"!text-danger\">{' \\u002A'}</span>\n )}\n <FieldCopyTestIdButton testId={testId} />\n </NextSwitch>\n {error && (\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 error={error} />\n </div>\n </div>\n )}\n </>\n )}\n />\n );\n};\n\nexport default Switch;\n","import Switch from './Switch';\n\nexport type { SwitchProps } from './Switch';\n\nexport { Switch };\n\nexport default Switch;\n"]}
@@ -18,8 +18,8 @@ declare const useFormContext: () => {
18
18
  };
19
19
  validation: {
20
20
  schema: _fuf_stack_veto_dist_types_d_DhQiwhXl.a;
21
- validate: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => _fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<any>;
22
- validateAsync: <InputType_1 extends _fuf_stack_veto.VetoInput>(input: InputType_1) => Promise<_fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<any>>;
21
+ validate: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => _fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<_fuf_stack_veto.vInfer<VetoSchema>>;
22
+ validateAsync: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => Promise<_fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<_fuf_stack_veto.vInfer<VetoSchema>>>;
23
23
  } | undefined;
24
24
  formState: react_hook_form.FormState<react_hook_form.FieldValues>;
25
25
  watch: react_hook_form.UseFormWatch<react_hook_form.FieldValues>;
@@ -18,8 +18,8 @@ declare const useFormContext: () => {
18
18
  };
19
19
  validation: {
20
20
  schema: _fuf_stack_veto_dist_types_d_DhQiwhXl.a;
21
- validate: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => _fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<any>;
22
- validateAsync: <InputType_1 extends _fuf_stack_veto.VetoInput>(input: InputType_1) => Promise<_fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<any>>;
21
+ validate: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => _fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<_fuf_stack_veto.vInfer<VetoSchema>>;
22
+ validateAsync: <InputType extends _fuf_stack_veto.VetoInput>(input: InputType) => Promise<_fuf_stack_veto.VetoError | _fuf_stack_veto.VetoSuccess<_fuf_stack_veto.vInfer<VetoSchema>>>;
23
23
  } | undefined;
24
24
  formState: react_hook_form.FormState<react_hook_form.FieldValues>;
25
25
  watch: react_hook_form.UseFormWatch<react_hook_form.FieldValues>;
package/dist/index.cjs CHANGED
@@ -1,20 +1,38 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
+ var _chunk4IT2WVQKcjs = require('./chunk-4IT2WVQK.cjs');
4
+
5
+
6
+ var _chunkOS4SMYPOcjs = require('./chunk-OS4SMYPO.cjs');
7
+
8
+
3
9
  var _chunkBNTEIMNYcjs = require('./chunk-BNTEIMNY.cjs');
4
10
 
5
11
 
6
12
  var _chunk6GN255GPcjs = require('./chunk-6GN255GP.cjs');
7
13
 
8
14
 
9
- var _chunk2CKPLOCKcjs = require('./chunk-2CKPLOCK.cjs');
15
+ var _chunkVO7ZM3KYcjs = require('./chunk-VO7ZM3KY.cjs');
10
16
 
11
17
 
12
- var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
18
+ var _chunkI22ICCUCcjs = require('./chunk-I22ICCUC.cjs');
19
+
20
+
21
+ var _chunkNVJKXQ5Wcjs = require('./chunk-NVJKXQ5W.cjs');
13
22
 
14
23
 
15
24
  var _chunkAGAYQTFDcjs = require('./chunk-AGAYQTFD.cjs');
16
25
 
17
26
 
27
+ var _chunkXY7ZZARScjs = require('./chunk-XY7ZZARS.cjs');
28
+
29
+
30
+ var _chunkHT3LKDHXcjs = require('./chunk-HT3LKDHX.cjs');
31
+
32
+
33
+ var _chunkQTL5FREEcjs = require('./chunk-QTL5FREE.cjs');
34
+
35
+
18
36
 
19
37
  var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
20
38
 
@@ -22,7 +40,6 @@ var _chunkWQRM7G4Ccjs = require('./chunk-WQRM7G4C.cjs');
22
40
  var _chunkBBB4FEY6cjs = require('./chunk-BBB4FEY6.cjs');
23
41
 
24
42
 
25
- var _chunkHT3LKDHXcjs = require('./chunk-HT3LKDHX.cjs');
26
43
 
27
44
 
28
45
 
@@ -33,5 +50,8 @@ var _chunkHT3LKDHXcjs = require('./chunk-HT3LKDHX.cjs');
33
50
 
34
51
 
35
52
 
36
- exports.FieldCopyTestIdButton = _chunkHT3LKDHXcjs.FieldCopyTestIdButton_default; exports.FieldValidationError = _chunkQTL5FREEcjs.FieldValidationError_default; exports.Form = _chunkBNTEIMNYcjs.Form_default; exports.Grid = _chunk6GN255GPcjs.Grid_default; exports.Input = _chunk2CKPLOCKcjs.Input_default; exports.SubmitButton = _chunkAGAYQTFDcjs.SubmitButton_default; exports.recursiveFieldKeySearch = _chunkWQRM7G4Ccjs.recursiveFieldKeySearch; exports.slugify = _chunkBBB4FEY6cjs.slugify; exports.useFormContext = _chunkWQRM7G4Ccjs.useFormContext;
53
+
54
+
55
+
56
+ exports.FieldArray = _chunkOS4SMYPOcjs.FieldArray_default; exports.FieldCopyTestIdButton = _chunkHT3LKDHXcjs.FieldCopyTestIdButton_default; exports.FieldValidationError = _chunkQTL5FREEcjs.FieldValidationError_default; exports.Form = _chunkBNTEIMNYcjs.Form_default; exports.Grid = _chunk6GN255GPcjs.Grid_default; exports.Input = _chunkVO7ZM3KYcjs.Input_default; exports.RadioGroup = _chunkI22ICCUCcjs.RadioGroup_default; exports.Select = _chunkNVJKXQ5Wcjs.Select_default; exports.SubmitButton = _chunkAGAYQTFDcjs.SubmitButton_default; exports.Switch = _chunkXY7ZZARScjs.Switch_default; exports.TextArea = _chunk4IT2WVQKcjs.TextArea_default; exports.recursiveFieldKeySearch = _chunkWQRM7G4Ccjs.recursiveFieldKeySearch; exports.slugify = _chunkBBB4FEY6cjs.slugify; exports.useFormContext = _chunkWQRM7G4Ccjs.useFormContext;
37
57
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -1,3 +1,4 @@
1
+ export { F as FieldArray, c as FieldArrayFieldChildren, b as FieldArrayHideOption, a as FieldArrayProps } from './FieldArray-DUvn98Fe.cjs';
1
2
  export { F as Form, a as FormProps } from './Form-Bv0R3QNk.cjs';
2
3
  export { G as Grid, a as GridProps } from './Grid-DF3L9NF3.cjs';
3
4
  export { slugify } from './helpers/index.cjs';
@@ -5,11 +6,16 @@ export { recursiveFieldKeySearch, useFormContext } from './hooks/index.cjs';
5
6
  export { I as Input, a as InputProps } from './Input-B6dNQiiD.cjs';
6
7
  export { F as FieldCopyTestIdButton, a as FieldCopyTestIdButtonProps } from './FieldCopyTestIdButton-D-z1usqE.cjs';
7
8
  export { F as FieldValidationError, a as FieldValidationErrorProps } from './FieldValidationError-BSXedjCA.cjs';
9
+ export { R as RadioGroup, a as RadioGroupProps } from './RadioGroup-BU4K9cnS.cjs';
10
+ export { S as Select, a as SelectProps } from './Select-Mp6Y00dT.cjs';
8
11
  export { S as SubmitButton, a as SubmitButtonProps } from './SubmitButton-BEp_zzwf.cjs';
12
+ export { S as Switch, a as SwitchProps } from './Switch-DmjDKgKs.cjs';
13
+ export { T as TextArea, a as TextAreaProps } from './TextArea-B-sKvTkd.cjs';
9
14
  import 'react/jsx-runtime';
15
+ import 'react-hook-form';
10
16
  import '@fuf-stack/veto';
11
17
  import 'react';
12
- import 'react-hook-form';
13
18
  import 'slug';
14
19
  import '@fuf-stack/veto/dist/types.d-DhQiwhXl';
20
+ import 'react-select';
15
21
  import '@fuf-stack/pixels';
package/dist/index.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ export { F as FieldArray, c as FieldArrayFieldChildren, b as FieldArrayHideOption, a as FieldArrayProps } from './FieldArray-DUvn98Fe.js';
1
2
  export { F as Form, a as FormProps } from './Form-Bv0R3QNk.js';
2
3
  export { G as Grid, a as GridProps } from './Grid-DF3L9NF3.js';
3
4
  export { slugify } from './helpers/index.js';
@@ -5,11 +6,16 @@ export { recursiveFieldKeySearch, useFormContext } from './hooks/index.js';
5
6
  export { I as Input, a as InputProps } from './Input-B6dNQiiD.js';
6
7
  export { F as FieldCopyTestIdButton, a as FieldCopyTestIdButtonProps } from './FieldCopyTestIdButton-D-z1usqE.js';
7
8
  export { F as FieldValidationError, a as FieldValidationErrorProps } from './FieldValidationError-BSXedjCA.js';
9
+ export { R as RadioGroup, a as RadioGroupProps } from './RadioGroup-BU4K9cnS.js';
10
+ export { S as Select, a as SelectProps } from './Select-Mp6Y00dT.js';
8
11
  export { S as SubmitButton, a as SubmitButtonProps } from './SubmitButton-BEp_zzwf.js';
12
+ export { S as Switch, a as SwitchProps } from './Switch-DmjDKgKs.js';
13
+ export { T as TextArea, a as TextAreaProps } from './TextArea-B-sKvTkd.js';
9
14
  import 'react/jsx-runtime';
15
+ import 'react-hook-form';
10
16
  import '@fuf-stack/veto';
11
17
  import 'react';
12
- import 'react-hook-form';
13
18
  import 'slug';
14
19
  import '@fuf-stack/veto/dist/types.d-DhQiwhXl';
20
+ import 'react-select';
15
21
  import '@fuf-stack/pixels';
package/dist/index.js CHANGED
@@ -1,3 +1,9 @@
1
+ import {
2
+ TextArea_default
3
+ } from "./chunk-6NZVSPFX.js";
4
+ import {
5
+ FieldArray_default
6
+ } from "./chunk-I26DVRVR.js";
1
7
  import {
2
8
  Form_default
3
9
  } from "./chunk-KFRKKWZT.js";
@@ -6,13 +12,25 @@ import {
6
12
  } from "./chunk-PDCEKC3G.js";
7
13
  import {
8
14
  Input_default
9
- } from "./chunk-OYXZQOGU.js";
15
+ } from "./chunk-2Z3YMYNN.js";
10
16
  import {
11
- FieldValidationError_default
12
- } from "./chunk-DBLODROX.js";
17
+ RadioGroup_default
18
+ } from "./chunk-BIJVBXOG.js";
19
+ import {
20
+ Select_default
21
+ } from "./chunk-CRKMTDKU.js";
13
22
  import {
14
23
  SubmitButton_default
15
24
  } from "./chunk-5FMJUJ7H.js";
25
+ import {
26
+ Switch_default
27
+ } from "./chunk-EXYTFHEJ.js";
28
+ import {
29
+ FieldCopyTestIdButton_default
30
+ } from "./chunk-OV5RMSYD.js";
31
+ import {
32
+ FieldValidationError_default
33
+ } from "./chunk-DBLODROX.js";
16
34
  import {
17
35
  recursiveFieldKeySearch,
18
36
  useFormContext
@@ -20,16 +38,18 @@ import {
20
38
  import {
21
39
  slugify
22
40
  } from "./chunk-V46BHM2U.js";
23
- import {
24
- FieldCopyTestIdButton_default
25
- } from "./chunk-OV5RMSYD.js";
26
41
  export {
42
+ FieldArray_default as FieldArray,
27
43
  FieldCopyTestIdButton_default as FieldCopyTestIdButton,
28
44
  FieldValidationError_default as FieldValidationError,
29
45
  Form_default as Form,
30
46
  Grid_default as Grid,
31
47
  Input_default as Input,
48
+ RadioGroup_default as RadioGroup,
49
+ Select_default as Select,
32
50
  SubmitButton_default as SubmitButton,
51
+ Switch_default as Switch,
52
+ TextArea_default as TextArea,
33
53
  recursiveFieldKeySearch,
34
54
  slugify,
35
55
  useFormContext
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fuf-stack/uniform",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "description": "fuf react form library",
5
5
  "author": "Hannes Tiede",
6
6
  "homepage": "https://github.com/fuf-stack/uniform#readme",
@@ -16,6 +16,11 @@
16
16
  "require": "./dist/index.cjs",
17
17
  "types": "./dist/index.d.ts"
18
18
  },
19
+ "./FieldArray": {
20
+ "import": "./dist/FieldArray/index.js",
21
+ "require": "./dist/FieldArray/index.cjs",
22
+ "types": "./dist/FieldArray/index.d.ts"
23
+ },
19
24
  "./Form": {
20
25
  "import": "./dist/Form/index.js",
21
26
  "require": "./dist/Form/index.cjs",
@@ -51,10 +56,30 @@
51
56
  "require": "./dist/partials/FieldValidationError/index.cjs",
52
57
  "types": "./dist/partials/FieldValidationError/index.d.ts"
53
58
  },
59
+ "./RadioGroup": {
60
+ "import": "./dist/RadioGroup/index.js",
61
+ "require": "./dist/RadioGroup/index.cjs",
62
+ "types": "./dist/RadioGroup/index.d.ts"
63
+ },
64
+ "./Select": {
65
+ "import": "./dist/Select/index.js",
66
+ "require": "./dist/Select/index.cjs",
67
+ "types": "./dist/Select/index.d.ts"
68
+ },
54
69
  "./SubmitButton": {
55
70
  "import": "./dist/SubmitButton/index.js",
56
71
  "require": "./dist/SubmitButton/index.cjs",
57
72
  "types": "./dist/SubmitButton/index.d.ts"
73
+ },
74
+ "./Switch": {
75
+ "import": "./dist/Switch/index.js",
76
+ "require": "./dist/Switch/index.cjs",
77
+ "types": "./dist/Switch/index.d.ts"
78
+ },
79
+ "./TextArea": {
80
+ "import": "./dist/TextArea/index.js",
81
+ "require": "./dist/TextArea/index.cjs",
82
+ "types": "./dist/TextArea/index.d.ts"
58
83
  }
59
84
  },
60
85
  "files": [
@@ -80,22 +105,22 @@
80
105
  "@dnd-kit/modifiers": "7.0.0",
81
106
  "@dnd-kit/sortable": "8.0.0",
82
107
  "@dnd-kit/utilities": "3.2.2",
83
- "@nextui-org/button": "2.0.33",
84
- "@nextui-org/checkbox": "2.1.1",
85
- "@nextui-org/input": "2.2.1",
86
- "@nextui-org/radio": "2.1.1",
87
- "@nextui-org/select": "2.2.1",
88
- "@nextui-org/switch": "2.0.30",
89
- "@nextui-org/system": "2.2.1",
90
- "@nextui-org/theme": "2.2.5",
108
+ "@nextui-org/button": "2.0.34",
109
+ "@nextui-org/checkbox": "2.1.2",
110
+ "@nextui-org/input": "2.2.2",
111
+ "@nextui-org/radio": "2.1.2",
112
+ "@nextui-org/select": "2.2.2",
113
+ "@nextui-org/switch": "2.0.31",
114
+ "@nextui-org/system": "2.2.2",
115
+ "@nextui-org/theme": "2.2.6",
91
116
  "@react-aria/visually-hidden": "3.8.12",
92
117
  "react-icons": "5.2.1",
93
- "react-hook-form": "7.51.5",
118
+ "react-hook-form": "7.52.1",
94
119
  "react-select": "5.8.0",
95
120
  "slug": "9.1.0",
96
- "@fuf-stack/pixels": "0.10.0",
97
- "@fuf-stack/veto": "0.4.0",
98
- "@fuf-stack/pixel-utils": "0.0.1"
121
+ "@fuf-stack/pixel-utils": "0.1.0",
122
+ "@fuf-stack/pixels": "0.17.1",
123
+ "@fuf-stack/veto": "0.5.0"
99
124
  },
100
125
  "devDependencies": {
101
126
  "@types/debug": "4.1.12",