@mage-ui/components 1.0.169 → 1.0.171

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 (31) hide show
  1. package/dist/components/controls/date-picker/YearPicker.d.mts +84 -0
  2. package/dist/components/controls/date-picker/YearPicker.d.mts.map +1 -0
  3. package/dist/components/controls/date-picker/YearPicker.mjs +2 -0
  4. package/dist/components/controls/date-picker/YearPicker.mjs.map +1 -0
  5. package/dist/components/controls/index.d.mts +1 -0
  6. package/dist/components/forms/Form.d.mts +37 -0
  7. package/dist/components/forms/Form.d.mts.map +1 -1
  8. package/dist/components/forms/Form.mjs +1 -1
  9. package/dist/components/forms/Form.mjs.map +1 -1
  10. package/dist/components/forms/controls/FormCheckboxGroup.d.mts +12 -0
  11. package/dist/components/forms/controls/FormCheckboxGroup.d.mts.map +1 -0
  12. package/dist/components/forms/controls/FormCheckboxGroup.mjs +2 -0
  13. package/dist/components/forms/controls/FormCheckboxGroup.mjs.map +1 -0
  14. package/dist/components/forms/controls/FormRadioGroup.d.mts +12 -0
  15. package/dist/components/forms/controls/FormRadioGroup.d.mts.map +1 -0
  16. package/dist/components/forms/controls/FormRadioGroup.mjs +2 -0
  17. package/dist/components/forms/controls/FormRadioGroup.mjs.map +1 -0
  18. package/dist/components/forms/controls/FormYearPicker.d.mts +14 -0
  19. package/dist/components/forms/controls/FormYearPicker.d.mts.map +1 -0
  20. package/dist/components/forms/controls/FormYearPicker.mjs +2 -0
  21. package/dist/components/forms/controls/FormYearPicker.mjs.map +1 -0
  22. package/dist/components/forms/controls/index.mjs +1 -1
  23. package/dist/components/forms/controls/index.mjs.map +1 -1
  24. package/dist/components/forms/controls/register-components.mjs +1 -1
  25. package/dist/components/forms/controls/register-components.mjs.map +1 -1
  26. package/dist/components/forms/rules/extract-form-rules.mjs +1 -1
  27. package/dist/components/forms/rules/extract-form-rules.mjs.map +1 -1
  28. package/dist/components/index.d.mts +1 -0
  29. package/dist/index.d.mts +2 -1
  30. package/dist/index.mjs +1 -1
  31. package/package.json +2 -2
@@ -0,0 +1,84 @@
1
+ import { IconProps } from "../../data-display/icons/icon/Icon.mjs";
2
+ import { ComponentProps, ReactNode } from "react";
3
+
4
+ //#region src/components/controls/date-picker/YearPicker.d.ts
5
+ type YearPickerValue = Date | string | null;
6
+ type YearPickerDate = Date | string;
7
+ type YearPickerProps = Omit<ComponentProps<'button'>, 'children' | 'defaultValue' | 'size' | 'type' | 'value' | 'onChange'> & {
8
+ label?: ReactNode;
9
+ placeholder?: string;
10
+ description?: ReactNode;
11
+ error?: ReactNode;
12
+ required?: boolean;
13
+ classNames?: YearPickerClassNames;
14
+ value?: YearPickerValue;
15
+ defaultValue?: YearPickerValue;
16
+ onChange?: (date: YearPickerValue) => void;
17
+ locale?: string;
18
+ valueFormat?: string;
19
+ minDate?: YearPickerDate;
20
+ maxDate?: YearPickerDate;
21
+ clearable?: boolean;
22
+ };
23
+ declare const YearPicker: ({
24
+ classNames,
25
+ name,
26
+ label,
27
+ placeholder,
28
+ description,
29
+ error,
30
+ required,
31
+ value,
32
+ defaultValue,
33
+ onChange,
34
+ locale,
35
+ valueFormat,
36
+ minDate,
37
+ maxDate,
38
+ clearable,
39
+ ...props
40
+ }: YearPickerProps) => ReactNode;
41
+ type YearPickerClassNames = InputClassNamesType & CalendarHeaderClassNamesType & CalendarYearsListClassNamesType & CalendarClassNamesType & PopoverClassNamesType & {
42
+ icon?: IconClassNamesType;
43
+ buttonIcon?: ButtonIconClassNamesType;
44
+ };
45
+ type InputClassNamesType = {
46
+ datePicker?: string;
47
+ root?: string;
48
+ wrapper?: string;
49
+ input?: string;
50
+ label?: string;
51
+ error?: string;
52
+ description?: string;
53
+ placeholder?: string;
54
+ section?: string;
55
+ required?: string;
56
+ };
57
+ type IconClassNamesType = IconProps['classNames'];
58
+ type ButtonIconClassNamesType = {
59
+ buttonIcon?: string;
60
+ buttonIconRoot?: string;
61
+ };
62
+ type CalendarHeaderClassNamesType = {
63
+ calendarHeaderControl?: string;
64
+ calendarHeader?: string;
65
+ calendarHeaderLevel?: string;
66
+ calendarHeaderControlIcon?: string;
67
+ };
68
+ type CalendarClassNamesType = {
69
+ levelsGroup?: string;
70
+ };
71
+ type CalendarYearsListClassNamesType = {
72
+ yearsList?: string;
73
+ yearsListRow?: string;
74
+ yearsListCell?: string;
75
+ yearsListControl?: string;
76
+ };
77
+ type PopoverClassNamesType = {
78
+ dropdown?: string;
79
+ arrow?: string;
80
+ overlay?: string;
81
+ };
82
+ //#endregion
83
+ export { YearPicker, YearPickerClassNames, YearPickerDate, YearPickerProps, YearPickerValue };
84
+ //# sourceMappingURL=YearPicker.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YearPicker.d.mts","names":[],"sources":["../../../../src/components/controls/date-picker/YearPicker.tsx"],"mappings":";;;;KAoCY,eAAA,GAAkB,IAAA;AAAA,KAClB,cAAA,GAAiB,IAAA;AAAA,KAEjB,eAAA,GAAkB,IAAA,CAC5B,cAAA;EAGA,KAAA,GAAQ,SAAA;EACR,WAAA;EACA,WAAA,GAAc,SAAA;EACd,KAAA,GAAQ,SAAA;EACR,QAAA;EACA,UAAA,GAAa,oBAAA;EACb,KAAA,GAAQ,eAAA;EACR,YAAA,GAAe,eAAA;EACf,QAAA,IAAY,IAAA,EAAM,eAAA;EAClB,MAAA;EACA,WAAA;EACA,OAAA,GAAU,cAAA;EACV,OAAA,GAAU,cAAA;EACV,SAAA;AAAA;AAAA,cAGW,UAAA;EAAc,UAAA;EAAA,IAAA;EAAA,KAAA;EAAA,WAAA;EAAA,WAAA;EAAA,KAAA;EAAA,QAAA;EAAA,KAAA;EAAA,YAAA;EAAA,QAAA;EAAA,MAAA;EAAA,WAAA;EAAA,OAAA;EAAA,OAAA;EAAA,SAAA;EAAA,GAAA;AAAA,GAiBxB,eAAA,KAAkB,SAAA;AAAA,KAoCT,oBAAA,GAAuB,mBAAA,GACjC,4BAAA,GACA,+BAAA,GACA,sBAAA,GACA,qBAAA;EACE,IAAA,GAAO,kBAAA;EACP,UAAA,GAAa,wBAAA;AAAA;AAAA,KAGZ,mBAAA;EACH,UAAA;EACA,IAAA;EACA,OAAA;EACA,KAAA;EACA,KAAA;EACA,KAAA;EACA,WAAA;EACA,WAAA;EACA,OAAA;EACA,QAAA;AAAA;AAAA,KAoBG,kBAAA,GAAqB,SAAA;AAAA,KAarB,wBAAA;EACH,UAAA;EACA,cAAA;AAAA;AAAA,KAUG,4BAAA;EACH,qBAAA;EACA,cAAA;EACA,mBAAA;EACA,yBAAA;AAAA;AAAA,KAkBG,sBAAA;EACH,WAAA;AAAA;AAAA,KASG,+BAAA;EACH,SAAA;EACA,YAAA;EACA,aAAA;EACA,gBAAA;AAAA;AAAA,KAeG,qBAAA;EACH,QAAA;EACA,KAAA;EACA,OAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{Icon as e}from"../../data-display/icons/icon/Icon.mjs";import{cx as t}from"@mage-ui/styled-system/css";import{datePicker as n,datePickerArrow as r,datePickerButtonIcon as i,datePickerButtonIconRoot as a,datePickerCalendarHeader as o,datePickerCalendarHeaderControl as s,datePickerCalendarHeaderControlIcon as c,datePickerCalendarHeaderLevel as l,datePickerDescription as u,datePickerDropdown as d,datePickerError as f,datePickerIconIcon as p,datePickerIconIconRaw as m,datePickerIconIconRawRoot as h,datePickerIconRoot as g,datePickerInput as _,datePickerLabel as v,datePickerLevelsGroup as y,datePickerOverlay as b,datePickerPlaceholder as x,datePickerRequired as S,datePickerRoot as C,datePickerSection as w,datePickerWrapper as T,datePickerYearsList as E,datePickerYearsListCell as D,datePickerYearsListControl as O,datePickerYearsListRow as k}from"@mage-ui/styled-system/recipes";import{jsx as A}from"react/jsx-runtime";import{YearPickerInput as j}from"@mantine/dates";const M=({classNames:t,name:n,label:r,placeholder:i,description:a,error:o,required:s,value:c,defaultValue:l,onChange:u,locale:d,valueFormat:f,minDate:p,maxDate:m,clearable:h,...g})=>A(j,{...g,name:n,label:r,placeholder:i,description:a,error:o,withAsterisk:s,value:c,defaultValue:l,onChange:u,locale:d,valueFormat:f,minDate:p,maxDate:m,clearable:h,classNames:B(t),popoverProps:{classNames:z(t)},leftSection:A(e,{path:`/icons/sprite-mage.svg`,name:`mage-date-picker-calendar`,classNames:P(t?.icon)}),clearButtonProps:{className:F(t?.buttonIcon)}}),N=e=>({root:t(e?.datePicker??n(),e?.root??C()),wrapper:e?.wrapper??T(),input:t(e?.input??_(),`peer`),label:e?.label??v(),error:e?.error??f(),description:e?.description??u(),placeholder:e?.placeholder??x(),section:t(e?.section??w(),`group`),required:e?.required??S()}),P=e=>({icon:e?.icon??p(),root:e?.root??g(),iconRaw:{iconRaw:e?.iconRaw?.iconRaw??m(),root:e?.iconRaw?.root??h()}}),F=e=>t(e?.buttonIcon??i(),e?.buttonIconRoot??a()),I=e=>({calendarHeader:e?.calendarHeader??o(),calendarHeaderControl:e?.calendarHeaderControl??s(),calendarHeaderLevel:e?.calendarHeaderLevel??l(),calendarHeaderControlIcon:e?.calendarHeaderControlIcon??c()}),L=e=>({levelsGroup:e?.levelsGroup??y()}),R=e=>({yearsList:e?.yearsList??E(),yearsListRow:e?.yearsListRow??k(),yearsListCell:e?.yearsListCell??D(),yearsListControl:e?.yearsListControl??O()}),z=e=>({dropdown:e?.dropdown??d(),arrow:e?.arrow??r(),overlay:e?.overlay??b()}),B=e=>({...N(e),...L(e),...I(e),...R(e)});export{M as YearPicker};
2
+ //# sourceMappingURL=YearPicker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YearPicker.mjs","names":[],"sources":["../../../../src/components/controls/date-picker/YearPicker.tsx"],"sourcesContent":["import type { ComponentProps, ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n datePicker,\n datePickerArrow,\n datePickerButtonIcon,\n datePickerButtonIconRoot,\n datePickerCalendarHeader,\n datePickerCalendarHeaderControl,\n datePickerCalendarHeaderControlIcon,\n datePickerCalendarHeaderLevel,\n datePickerDescription,\n datePickerDropdown,\n datePickerError,\n datePickerIconIcon,\n datePickerIconIconRaw,\n datePickerIconIconRawRoot,\n datePickerIconRoot,\n datePickerInput,\n datePickerLabel,\n datePickerLevelsGroup,\n datePickerOverlay,\n datePickerPlaceholder,\n datePickerRequired,\n datePickerRoot,\n datePickerSection,\n datePickerWrapper,\n datePickerYearsList,\n datePickerYearsListCell,\n datePickerYearsListControl,\n datePickerYearsListRow,\n} from '@mage-ui/styled-system/recipes';\nimport { YearPickerInput } from '@mantine/dates';\nimport { Icon, type IconProps } from '@/components/data-display';\n\nexport type YearPickerValue = Date | string | null;\nexport type YearPickerDate = Date | string;\n\nexport type YearPickerProps = Omit<\n ComponentProps<'button'>,\n 'children' | 'defaultValue' | 'size' | 'type' | 'value' | 'onChange'\n> & {\n label?: ReactNode;\n placeholder?: string;\n description?: ReactNode;\n error?: ReactNode;\n required?: boolean;\n classNames?: YearPickerClassNames;\n value?: YearPickerValue;\n defaultValue?: YearPickerValue;\n onChange?: (date: YearPickerValue) => void;\n locale?: string;\n valueFormat?: string;\n minDate?: YearPickerDate;\n maxDate?: YearPickerDate;\n clearable?: boolean;\n};\n\nexport const YearPicker = ({\n classNames,\n name,\n label,\n placeholder,\n description,\n error,\n required,\n value,\n defaultValue,\n onChange,\n locale,\n valueFormat,\n minDate,\n maxDate,\n clearable,\n ...props\n}: YearPickerProps): ReactNode => {\n return (\n <YearPickerInput\n {...props}\n name={name}\n label={label}\n placeholder={placeholder}\n description={description}\n error={error}\n withAsterisk={required}\n value={value}\n defaultValue={defaultValue}\n onChange={onChange}\n locale={locale}\n valueFormat={valueFormat}\n minDate={minDate}\n maxDate={maxDate}\n clearable={clearable}\n classNames={yearPickerClassNames(classNames)}\n popoverProps={{\n classNames: popoverClassNames(classNames),\n }}\n leftSection={\n <Icon\n path='/icons/sprite-mage.svg'\n name='mage-date-picker-calendar'\n classNames={iconClassNames(classNames?.icon)}\n />\n }\n clearButtonProps={{\n className: buttonIconClassNames(classNames?.buttonIcon),\n }}\n />\n );\n};\n\nexport type YearPickerClassNames = InputClassNamesType &\n CalendarHeaderClassNamesType &\n CalendarYearsListClassNamesType &\n CalendarClassNamesType &\n PopoverClassNamesType & {\n icon?: IconClassNamesType;\n buttonIcon?: ButtonIconClassNamesType;\n };\n\ntype InputClassNamesType = {\n datePicker?: string;\n root?: string;\n wrapper?: string;\n input?: string;\n label?: string;\n error?: string;\n description?: string;\n placeholder?: string;\n section?: string;\n required?: string;\n};\n\nconst inputClassNames = (classNames?: InputClassNamesType) => {\n return {\n root: cx(\n classNames?.datePicker ?? datePicker(),\n classNames?.root ?? datePickerRoot(),\n ),\n wrapper: classNames?.wrapper ?? datePickerWrapper(),\n input: cx(classNames?.input ?? datePickerInput(), 'peer'),\n label: classNames?.label ?? datePickerLabel(),\n error: classNames?.error ?? datePickerError(),\n description: classNames?.description ?? datePickerDescription(),\n placeholder: classNames?.placeholder ?? datePickerPlaceholder(),\n section: cx(classNames?.section ?? datePickerSection(), 'group'),\n required: classNames?.required ?? datePickerRequired(),\n };\n};\n\ntype IconClassNamesType = IconProps['classNames'];\n\nconst iconClassNames = (classNames?: IconClassNamesType) => {\n return {\n icon: classNames?.icon ?? datePickerIconIcon(),\n root: classNames?.root ?? datePickerIconRoot(),\n iconRaw: {\n iconRaw: classNames?.iconRaw?.iconRaw ?? datePickerIconIconRaw(),\n root: classNames?.iconRaw?.root ?? datePickerIconIconRawRoot(),\n },\n };\n};\n\ntype ButtonIconClassNamesType = {\n buttonIcon?: string;\n buttonIconRoot?: string;\n};\n\nconst buttonIconClassNames = (classNames?: ButtonIconClassNamesType) => {\n return cx(\n classNames?.buttonIcon ?? datePickerButtonIcon(),\n classNames?.buttonIconRoot ?? datePickerButtonIconRoot(),\n );\n};\n\ntype CalendarHeaderClassNamesType = {\n calendarHeaderControl?: string;\n calendarHeader?: string;\n calendarHeaderLevel?: string;\n calendarHeaderControlIcon?: string;\n};\n\nconst calendarHeaderClassNames = (\n classNames?: CalendarHeaderClassNamesType,\n) => {\n return {\n calendarHeader: classNames?.calendarHeader ?? datePickerCalendarHeader(),\n calendarHeaderControl:\n classNames?.calendarHeaderControl ?? datePickerCalendarHeaderControl(),\n calendarHeaderLevel:\n classNames?.calendarHeaderLevel ?? datePickerCalendarHeaderLevel(),\n calendarHeaderControlIcon:\n classNames?.calendarHeaderControlIcon ??\n datePickerCalendarHeaderControlIcon(),\n };\n};\n\ntype CalendarClassNamesType = {\n levelsGroup?: string;\n};\n\nconst calendarClassNames = (classNames?: CalendarClassNamesType) => {\n return {\n levelsGroup: classNames?.levelsGroup ?? datePickerLevelsGroup(),\n };\n};\n\ntype CalendarYearsListClassNamesType = {\n yearsList?: string;\n yearsListRow?: string;\n yearsListCell?: string;\n yearsListControl?: string;\n};\n\nconst calendarYearsListClassNames = (\n classNames?: CalendarYearsListClassNamesType,\n) => {\n return {\n yearsList: classNames?.yearsList ?? datePickerYearsList(),\n yearsListRow: classNames?.yearsListRow ?? datePickerYearsListRow(),\n yearsListCell: classNames?.yearsListCell ?? datePickerYearsListCell(),\n yearsListControl:\n classNames?.yearsListControl ?? datePickerYearsListControl(),\n };\n};\n\ntype PopoverClassNamesType = {\n dropdown?: string;\n arrow?: string;\n overlay?: string;\n};\n\nconst popoverClassNames = (classNames?: PopoverClassNamesType) => {\n return {\n dropdown: classNames?.dropdown ?? datePickerDropdown(),\n arrow: classNames?.arrow ?? datePickerArrow(),\n overlay: classNames?.overlay ?? datePickerOverlay(),\n };\n};\n\nconst yearPickerClassNames = (classNames?: YearPickerClassNames) => {\n return {\n ...inputClassNames(classNames),\n ...calendarClassNames(classNames),\n ...calendarHeaderClassNames(classNames),\n ...calendarYearsListClassNames(classNames),\n };\n};\n"],"mappings":"o9BA2DA,MAAa,GAAc,CACzB,aACA,OACA,QACA,cACA,cACA,QACA,WACA,QACA,eACA,WACA,SACA,cACA,UACA,UACA,YACA,GAAG,KAGD,EAAC,EAAD,CACE,GAAI,EACE,OACC,QACM,cACA,cACN,QACP,aAAc,EACP,QACO,eACJ,WACF,SACK,cACJ,UACA,UACE,YACX,WAAY,EAAqB,EAAW,CAC5C,aAAc,CACZ,WAAY,EAAkB,EAAW,CAC1C,CACD,YACE,EAAC,EAAD,CACE,KAAK,yBACL,KAAK,4BACL,WAAY,EAAe,GAAY,KAAK,CAC5C,CAAA,CAEJ,iBAAkB,CAChB,UAAW,EAAqB,GAAY,WAAW,CACxD,CACD,CAAA,CA0BA,EAAmB,IAChB,CACL,KAAM,EACJ,GAAY,YAAc,GAAY,CACtC,GAAY,MAAQ,GAAgB,CACrC,CACD,QAAS,GAAY,SAAW,GAAmB,CACnD,MAAO,EAAG,GAAY,OAAS,GAAiB,CAAE,OAAO,CACzD,MAAO,GAAY,OAAS,GAAiB,CAC7C,MAAO,GAAY,OAAS,GAAiB,CAC7C,YAAa,GAAY,aAAe,GAAuB,CAC/D,YAAa,GAAY,aAAe,GAAuB,CAC/D,QAAS,EAAG,GAAY,SAAW,GAAmB,CAAE,QAAQ,CAChE,SAAU,GAAY,UAAY,GAAoB,CACvD,EAKG,EAAkB,IACf,CACL,KAAM,GAAY,MAAQ,GAAoB,CAC9C,KAAM,GAAY,MAAQ,GAAoB,CAC9C,QAAS,CACP,QAAS,GAAY,SAAS,SAAW,GAAuB,CAChE,KAAM,GAAY,SAAS,MAAQ,GAA2B,CAC/D,CACF,EAQG,EAAwB,GACrB,EACL,GAAY,YAAc,GAAsB,CAChD,GAAY,gBAAkB,GAA0B,CACzD,CAUG,EACJ,IAEO,CACL,eAAgB,GAAY,gBAAkB,GAA0B,CACxE,sBACE,GAAY,uBAAyB,GAAiC,CACxE,oBACE,GAAY,qBAAuB,GAA+B,CACpE,0BACE,GAAY,2BACZ,GAAqC,CACxC,EAOG,EAAsB,IACnB,CACL,YAAa,GAAY,aAAe,GAAuB,CAChE,EAUG,EACJ,IAEO,CACL,UAAW,GAAY,WAAa,GAAqB,CACzD,aAAc,GAAY,cAAgB,GAAwB,CAClE,cAAe,GAAY,eAAiB,GAAyB,CACrE,iBACE,GAAY,kBAAoB,GAA4B,CAC/D,EASG,EAAqB,IAClB,CACL,SAAU,GAAY,UAAY,GAAoB,CACtD,MAAO,GAAY,OAAS,GAAiB,CAC7C,QAAS,GAAY,SAAW,GAAmB,CACpD,EAGG,EAAwB,IACrB,CACL,GAAG,EAAgB,EAAW,CAC9B,GAAG,EAAmB,EAAW,CACjC,GAAG,EAAyB,EAAW,CACvC,GAAG,EAA4B,EAAW,CAC3C"}
@@ -2,6 +2,7 @@ import { AvatarUpload, AvatarUploadProps } from "./avatar-upload/AvatarUpload.mj
2
2
  import { Checkbox, CheckboxProps } from "./checkbox/Checkbox.mjs";
3
3
  import { CheckboxTree, CheckboxTreeItem, CheckboxTreeProps } from "./checkbox-tree/CheckboxTree.mjs";
4
4
  import { DatePicker, DatePickerClassNames, DatePickerDate, DatePickerProps, DatePickerValue } from "./date-picker/DatePicker.mjs";
5
+ import { YearPicker, YearPickerClassNames, YearPickerDate, YearPickerProps, YearPickerValue } from "./date-picker/YearPicker.mjs";
5
6
  import { DateTimePicker, DateTimePickerClassNames, DateTimePickerDate, DateTimePickerProps, DateTimePickerValue } from "./date-time-picker/DateTimePicker.mjs";
6
7
  import { TextInput, TextInputProps } from "./text-input/TextInput.mjs";
7
8
  import { Combobox, ComboboxProps } from "./dropdown/combobox/Combobox.mjs";
@@ -3,12 +3,15 @@ import { TextareaProps } from "../controls/textarea/Textarea.mjs";
3
3
  import { FormDropzoneS3Props } from "./controls/FormDropzoneS3.mjs";
4
4
  import { FormSubmitProps } from "./controls/FormSubmit.mjs";
5
5
  import { FormCheckboxProps } from "./controls/FormCheckbox.mjs";
6
+ import { FormCheckboxGroupProps } from "./controls/FormCheckboxGroup.mjs";
6
7
  import { FormCheckboxTreeProps } from "./controls/FormCheckboxTree.mjs";
8
+ import { FormRadioGroupProps } from "./controls/FormRadioGroup.mjs";
7
9
  import { FormPasswordProps } from "./controls/FormPassword.mjs";
8
10
  import { FormSelectProps } from "./controls/FormSelect.mjs";
9
11
  import { FormComboboxProps } from "./controls/FormCombobox.mjs";
10
12
  import { FormAutocompleteProps } from "./controls/FormAutocomplete.mjs";
11
13
  import { FormDatePickerProps } from "./controls/FormDatePicker.mjs";
14
+ import { FormYearPickerProps } from "./controls/FormYearPicker.mjs";
12
15
  import { FormDateTimePickerProps } from "./controls/FormDateTimePicker.mjs";
13
16
  import { FormFileInputProps } from "./controls/FormFileInput.mjs";
14
17
  import { FormFileInputMultipleProps } from "./controls/FormFileInputMultiple.mjs";
@@ -112,6 +115,17 @@ declare const Form: {
112
115
  }: FormCheckboxProps): react_jsx_runtime0.JSX.Element;
113
116
  displayName: string;
114
117
  };
118
+ CheckboxGroup: {
119
+ ({
120
+ $rule: _$rule,
121
+ defaultValue,
122
+ isSubmitting,
123
+ name,
124
+ disabled,
125
+ ...props
126
+ }: FormCheckboxGroupProps): react_jsx_runtime0.JSX.Element;
127
+ displayName: string;
128
+ };
115
129
  CheckboxTree: {
116
130
  ({
117
131
  $rule,
@@ -123,6 +137,16 @@ declare const Form: {
123
137
  }: FormCheckboxTreeProps): react_jsx_runtime0.JSX.Element;
124
138
  displayName: string;
125
139
  };
140
+ RadioGroup: {
141
+ ({
142
+ $rule: _$rule,
143
+ defaultValue,
144
+ isSubmitting: _isSubmitting,
145
+ name,
146
+ ...props
147
+ }: FormRadioGroupProps): react_jsx_runtime0.JSX.Element;
148
+ displayName: string;
149
+ };
126
150
  Password: {
127
151
  ({
128
152
  $rule,
@@ -182,6 +206,19 @@ declare const Form: {
182
206
  }: FormDatePickerProps): react_jsx_runtime0.JSX.Element;
183
207
  displayName: string;
184
208
  };
209
+ YearPicker: {
210
+ ({
211
+ $rule: _$rule,
212
+ isSubmitting,
213
+ name,
214
+ error,
215
+ defaultValue,
216
+ onChange,
217
+ disabled,
218
+ ...props
219
+ }: FormYearPickerProps): react_jsx_runtime0.JSX.Element;
220
+ displayName: string;
221
+ };
185
222
  DateTimePicker: {
186
223
  ({
187
224
  $rule: _$rule,
@@ -1 +1 @@
1
- {"version":3,"file":"Form.d.mts","names":[],"sources":["../../../src/components/forms/Form.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;KA8BK,YAAA;EACH,IAAA;EACA,OAAA;EACA,MAAA;EACA,GAAA;AAAA;AAAA,KAGU,SAAA,WAAoB,WAAA;EAC9B,QAAA,GAAW,MAAA;IAAU,IAAA,EAAM,CAAA;EAAA,MAAQ,OAAA;EACnC,aAAA,IAAiB,QAAA,EAAU,YAAA;EAC3B,eAAA,IAAmB,MAAA;IACjB,OAAA;IACA,QAAA,EAAU,eAAA,CAAgB,CAAA;IAC1B,MAAA;EAAA;EAEF,aAAA;EACA,QAAA,EAAU,SAAA;EACV,MAAA,GAAS,SAAA,CAAU,MAAA,SAAe,UAAA;EAClC,CAAA,IACE,GAAA,UACA,QAAA,GAAW,MAAA,kBACX,QAAA,uBACY,KAAA,CAAM,SAAA;EAEpB,oBAAA;EACA,UAAA;IACE,IAAA;IACA,IAAA;EAAA;AAAA;AAAA,cAYS,IAAA;EAAA,WAAkB,WAAA;IAAW,QAAA;IAAA,aAAA;IAAA,eAAA;IAAA,aAAA;IAAA,QAAA;IAAA,MAAA;IAAA,CAAA;IAAA,oBAAA;IAAA;EAAA,GAUvC,SAAA,CAAU,CAAA,IAAE,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"Form.d.mts","names":[],"sources":["../../../src/components/forms/Form.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;KAiCK,YAAA;EACH,IAAA;EACA,OAAA;EACA,MAAA;EACA,GAAA;AAAA;AAAA,KAGU,SAAA,WAAoB,WAAA;EAC9B,QAAA,GAAW,MAAA;IAAU,IAAA,EAAM,CAAA;EAAA,MAAQ,OAAA;EACnC,aAAA,IAAiB,QAAA,EAAU,YAAA;EAC3B,eAAA,IAAmB,MAAA;IACjB,OAAA;IACA,QAAA,EAAU,eAAA,CAAgB,CAAA;IAC1B,MAAA;EAAA;EAEF,aAAA;EACA,QAAA,EAAU,SAAA;EACV,MAAA,GAAS,SAAA,CAAU,MAAA,SAAe,UAAA;EAClC,CAAA,IACE,GAAA,UACA,QAAA,GAAW,MAAA,kBACX,QAAA,uBACY,KAAA,CAAM,SAAA;EAEpB,oBAAA;EACA,UAAA;IACE,IAAA;IACA,IAAA;EAAA;AAAA;AAAA,cAYS,IAAA;EAAA,WAAkB,WAAA;IAAW,QAAA;IAAA,aAAA;IAAA,eAAA;IAAA,aAAA;IAAA,QAAA;IAAA,MAAA;IAAA,CAAA;IAAA,oBAAA;IAAA;EAAA,GAUvC,SAAA,CAAU,CAAA,IAAE,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,2 +1,2 @@
1
- import{FormAutocomplete as e}from"./controls/FormAutocomplete.mjs";import{FormCheckbox as t}from"./controls/FormCheckbox.mjs";import{FormCheckboxTree as n}from"./controls/FormCheckboxTree.mjs";import{FormCombobox as r}from"./controls/FormCombobox.mjs";import{FormDatePicker as i}from"./controls/FormDatePicker.mjs";import{FormDateTimePicker as a}from"./controls/FormDateTimePicker.mjs";import{FormDropzone as o}from"./controls/FormDropzone.mjs";import{FormS3Context as s}from"./FormS3Context.mjs";import{FormDropzoneS3 as c}from"./controls/FormDropzoneS3.mjs";import{FormFileInput as l}from"./controls/FormFileInput.mjs";import{FormFileInputMultiple as u}from"./controls/FormFileInputMultiple.mjs";import{FormFileInputMultipleS3 as d}from"./controls/FormFileInputMultipleS3.mjs";import{FormFileInputS3 as f}from"./controls/FormFileInputS3.mjs";import{FormHidden as p}from"./controls/FormHidden.mjs";import{FormPassword as m}from"./controls/FormPassword.mjs";import{FormSelect as h}from"./controls/FormSelect.mjs";import{FormSubmit as g}from"./controls/FormSubmit.mjs";import{FormTextarea as _}from"./controls/FormTextarea.mjs";import{FormTextInput as v}from"./controls/FormTextInput.mjs";import{FormBase as y}from"./FormBase.mjs";import{FormErrorBox as b}from"./FormErrorBox.mjs";import{form as x,formRoot as S}from"@mage-ui/styled-system/recipes";import{jsx as C}from"react/jsx-runtime";import{useRef as w}from"react";const T=({$fetcher:e,onValidSubmit:t,onInvalidSubmit:n,invalidStatus:r=[],children:i,schema:a,t:o,s3UploadErrorMessage:c,classNames:l})=>{let u=w(new Map),d={registerS3Upload:(e,t)=>{u.current.set(e,t)},unregisterS3Upload:e=>{u.current.delete(e)}},f=async e=>{let t=Array.from(u.current.values());await Promise.all(t.map(t=>t(e)))};return C(s.Provider,{value:d,children:C(y,{onSubmit:async({data:i,setError:a})=>{await e({data:i}).then(async e=>{let n=e;if(n?.statusCode&&n.statusCode>=400)throw n;try{await f(e)}catch(e){console.error(`S3 upload error:`,e),a(`root.serverError`,{type:`s3`,message:c??`Failed to upload files`});return}t?.(e||{})}).catch(e=>{if((e.statusCode===400||e.statusCode===422)&&e.cause?.issues&&Object.keys(e.cause.issues).forEach(t=>{a(t,{type:`server`,message:e.cause?.issues?.[t]})}),r.includes(e.statusCode)&&n)n({message:e?.message??`Something went wrong`,setError:a,status:e.statusCode});else if(e.statusCode===400||e.statusCode===422)a(`root.serverError`,{type:`server`,message:e?.message??`Something went wrong`});else throw e})},schema:a,errorBox:b,t:o,classNames:{form:l?.form??x(),root:l?.root??S()},children:i})})};T.displayName=`Form`,T.TextInput=v,T.Textarea=_,T.Submit=g,T.Hidden=p,T.Checkbox=t,T.CheckboxTree=n,T.Password=m,T.Select=h,T.Combobox=r,T.Autocomplete=e,T.DatePicker=i,T.DateTimePicker=a,T.FileInput=l,T.FileInputMultiple=u,T.FileInputS3=f,T.FileInputMultipleS3=d,T.Dropzone=o,T.DropzoneS3=c;export{T as Form};
1
+ import{FormAutocomplete as e}from"./controls/FormAutocomplete.mjs";import{FormCheckbox as t}from"./controls/FormCheckbox.mjs";import{FormCheckboxGroup as n}from"./controls/FormCheckboxGroup.mjs";import{FormCheckboxTree as r}from"./controls/FormCheckboxTree.mjs";import{FormCombobox as i}from"./controls/FormCombobox.mjs";import{FormDatePicker as a}from"./controls/FormDatePicker.mjs";import{FormDateTimePicker as o}from"./controls/FormDateTimePicker.mjs";import{FormDropzone as s}from"./controls/FormDropzone.mjs";import{FormS3Context as c}from"./FormS3Context.mjs";import{FormDropzoneS3 as l}from"./controls/FormDropzoneS3.mjs";import{FormFileInput as u}from"./controls/FormFileInput.mjs";import{FormFileInputMultiple as d}from"./controls/FormFileInputMultiple.mjs";import{FormFileInputMultipleS3 as f}from"./controls/FormFileInputMultipleS3.mjs";import{FormFileInputS3 as p}from"./controls/FormFileInputS3.mjs";import{FormHidden as m}from"./controls/FormHidden.mjs";import{FormPassword as h}from"./controls/FormPassword.mjs";import{FormRadioGroup as g}from"./controls/FormRadioGroup.mjs";import{FormSelect as _}from"./controls/FormSelect.mjs";import{FormSubmit as v}from"./controls/FormSubmit.mjs";import{FormTextarea as y}from"./controls/FormTextarea.mjs";import{FormTextInput as b}from"./controls/FormTextInput.mjs";import{FormYearPicker as x}from"./controls/FormYearPicker.mjs";import{FormBase as S}from"./FormBase.mjs";import{FormErrorBox as C}from"./FormErrorBox.mjs";import{form as w,formRoot as T}from"@mage-ui/styled-system/recipes";import{jsx as E}from"react/jsx-runtime";import{useRef as D}from"react";const O=({$fetcher:e,onValidSubmit:t,onInvalidSubmit:n,invalidStatus:r=[],children:i,schema:a,t:o,s3UploadErrorMessage:s,classNames:l})=>{let u=D(new Map),d={registerS3Upload:(e,t)=>{u.current.set(e,t)},unregisterS3Upload:e=>{u.current.delete(e)}},f=async e=>{let t=Array.from(u.current.values());await Promise.all(t.map(t=>t(e)))};return E(c.Provider,{value:d,children:E(S,{onSubmit:async({data:i,setError:a})=>{await e({data:i}).then(async e=>{let n=e;if(n?.statusCode&&n.statusCode>=400)throw n;try{await f(e)}catch(e){console.error(`S3 upload error:`,e),a(`root.serverError`,{type:`s3`,message:s??`Failed to upload files`});return}t?.(e||{})}).catch(e=>{if((e.statusCode===400||e.statusCode===422)&&e.cause?.issues&&Object.keys(e.cause.issues).forEach(t=>{a(t,{type:`server`,message:e.cause?.issues?.[t]})}),r.includes(e.statusCode)&&n)n({message:e?.message??`Something went wrong`,setError:a,status:e.statusCode});else if(e.statusCode===400||e.statusCode===422)a(`root.serverError`,{type:`server`,message:e?.message??`Something went wrong`});else throw e})},schema:a,errorBox:C,t:o,classNames:{form:l?.form??w(),root:l?.root??T()},children:i})})};O.displayName=`Form`,O.TextInput=b,O.Textarea=y,O.Submit=v,O.Hidden=m,O.Checkbox=t,O.CheckboxGroup=n,O.CheckboxTree=r,O.RadioGroup=g,O.Password=h,O.Select=_,O.Combobox=i,O.Autocomplete=e,O.DatePicker=a,O.YearPicker=x,O.DateTimePicker=o,O.FileInput=u,O.FileInputMultiple=d,O.FileInputS3=p,O.FileInputMultipleS3=f,O.Dropzone=s,O.DropzoneS3=l;export{O as Form};
2
2
  //# sourceMappingURL=Form.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Form.mjs","names":[],"sources":["../../../src/components/forms/Form.tsx"],"sourcesContent":["import type React from 'react';\nimport type { ReactNode } from 'react';\nimport { useRef } from 'react';\nimport type { FieldValues, UseFormSetError } from 'react-hook-form';\nimport type { ZodObject, ZodTypeAny } from 'zod';\n\nimport { form, formRoot } from '@mage-ui/styled-system/recipes';\n\nimport { FormAutocomplete } from './controls/FormAutocomplete';\nimport { FormCheckbox } from './controls/FormCheckbox';\nimport { FormCheckboxTree } from './controls/FormCheckboxTree';\nimport { FormCombobox } from './controls/FormCombobox';\nimport { FormDatePicker } from './controls/FormDatePicker';\nimport { FormDateTimePicker } from './controls/FormDateTimePicker';\nimport { FormDropzone } from './controls/FormDropzone';\nimport { FormDropzoneS3 } from './controls/FormDropzoneS3';\nimport { FormFileInput } from './controls/FormFileInput';\nimport { FormFileInputMultiple } from './controls/FormFileInputMultiple';\nimport { FormFileInputMultipleS3 } from './controls/FormFileInputMultipleS3';\nimport { FormFileInputS3 } from './controls/FormFileInputS3';\nimport { FormHidden } from './controls/FormHidden';\nimport { FormPassword } from './controls/FormPassword';\nimport { FormSelect } from './controls/FormSelect';\nimport { FormSubmit } from './controls/FormSubmit';\nimport { FormTextarea } from './controls/FormTextarea';\nimport { FormTextInput } from './controls/FormTextInput';\nimport { FormBase } from './FormBase';\nimport { FormErrorBox } from './FormErrorBox';\nimport { FormS3Context, type S3UploadCallback } from './FormS3Context';\n\ntype FormResponse = {\n body?: object;\n details?: string;\n status?: number;\n url?: string;\n};\n\nexport type FormProps<T extends FieldValues> = {\n $fetcher: (params: { data: T }) => Promise<unknown>;\n onValidSubmit?: (response: FormResponse) => void;\n onInvalidSubmit?: (params: {\n message: string;\n setError: UseFormSetError<T>;\n status: number;\n }) => void;\n invalidStatus?: number[];\n children: ReactNode;\n schema?: ZodObject<Record<string, ZodTypeAny>>;\n t?: (\n key: string,\n bindings?: Record<string, string>,\n fallback?: string,\n ) => string | React.ReactNode;\n /** Mensaje mostrado al usuario si falla la subida de archivos a S3 tras el submit. */\n s3UploadErrorMessage?: string;\n classNames?: {\n form?: string;\n root?: string;\n };\n};\n\ntype FormError = {\n statusCode: number;\n message: string;\n cause?: {\n issues: Record<string, string>;\n };\n};\n\nexport const Form = <T extends FieldValues>({\n $fetcher,\n onValidSubmit,\n onInvalidSubmit,\n invalidStatus = [],\n children,\n schema,\n t,\n s3UploadErrorMessage,\n classNames,\n}: FormProps<T>) => {\n const s3CallbacksRef = useRef<Map<string, S3UploadCallback>>(new Map());\n\n const s3ContextValue = {\n registerS3Upload: (name: string, cb: S3UploadCallback) => {\n s3CallbacksRef.current.set(name, cb);\n },\n unregisterS3Upload: (name: string) => {\n s3CallbacksRef.current.delete(name);\n },\n };\n\n const runS3Uploads = async (response: unknown): Promise<void> => {\n const callbacks = Array.from(s3CallbacksRef.current.values());\n await Promise.all(callbacks.map((cb) => cb(response)));\n };\n\n const onSubmit = async ({\n data,\n setError,\n }: {\n data: FieldValues;\n setError: UseFormSetError<FieldValues>;\n }) => {\n await $fetcher({ data: data as T })\n .then(async (response) => {\n const res = response as FormError & FormResponse;\n if (res?.statusCode && res.statusCode >= 400) {\n throw res;\n }\n\n try {\n await runS3Uploads(response);\n } catch (e) {\n console.error('S3 upload error:', e);\n setError('root.serverError', {\n type: 's3',\n message: s3UploadErrorMessage ?? 'Failed to upload files',\n });\n return;\n }\n onValidSubmit?.((response || {}) as FormResponse);\n })\n .catch((error: FormError) => {\n if (\n (error.statusCode === 400 || error.statusCode === 422) &&\n error.cause?.issues\n ) {\n Object.keys(error.cause.issues).forEach((key) => {\n setError(key, {\n type: 'server',\n message: error.cause?.issues?.[key],\n });\n });\n }\n\n if (invalidStatus.includes(error.statusCode) && onInvalidSubmit) {\n onInvalidSubmit({\n message: error?.message ?? 'Something went wrong',\n setError: setError as UseFormSetError<T>,\n status: error.statusCode,\n });\n } else if (error.statusCode === 400 || error.statusCode === 422) {\n setError('root.serverError', {\n type: 'server',\n message: error?.message ?? 'Something went wrong',\n });\n } else {\n throw error;\n }\n });\n };\n\n return (\n <FormS3Context.Provider value={s3ContextValue}>\n <FormBase\n onSubmit={onSubmit}\n schema={schema}\n errorBox={FormErrorBox}\n t={t}\n classNames={{\n form: classNames?.form ?? form(),\n root: classNames?.root ?? formRoot(),\n }}\n >\n {children}\n </FormBase>\n </FormS3Context.Provider>\n );\n};\n\nForm.displayName = 'Form';\nForm.TextInput = FormTextInput;\nForm.Textarea = FormTextarea;\nForm.Submit = FormSubmit;\nForm.Hidden = FormHidden;\nForm.Checkbox = FormCheckbox;\nForm.CheckboxTree = FormCheckboxTree;\nForm.Password = FormPassword;\nForm.Select = FormSelect;\nForm.Combobox = FormCombobox;\nForm.Autocomplete = FormAutocomplete;\nForm.DatePicker = FormDatePicker;\nForm.DateTimePicker = FormDateTimePicker;\nForm.FileInput = FormFileInput;\nForm.FileInputMultiple = FormFileInputMultiple;\nForm.FileInputS3 = FormFileInputS3;\nForm.FileInputMultipleS3 = FormFileInputMultipleS3;\nForm.Dropzone = FormDropzone;\nForm.DropzoneS3 = FormDropzoneS3;\n"],"mappings":"24CAqEA,MAAa,GAA+B,CAC1C,WACA,gBACA,kBACA,gBAAgB,EAAE,CAClB,WACA,SACA,IACA,uBACA,gBACkB,CAClB,IAAM,EAAiB,EAAsC,IAAI,IAAM,CAEjE,EAAiB,CACrB,kBAAmB,EAAc,IAAyB,CACxD,EAAe,QAAQ,IAAI,EAAM,EAAG,EAEtC,mBAAqB,GAAiB,CACpC,EAAe,QAAQ,OAAO,EAAK,EAEtC,CAEK,EAAe,KAAO,IAAqC,CAC/D,IAAM,EAAY,MAAM,KAAK,EAAe,QAAQ,QAAQ,CAAC,CAC7D,MAAM,QAAQ,IAAI,EAAU,IAAK,GAAO,EAAG,EAAS,CAAC,CAAC,EA2DxD,OACE,EAAC,EAAc,SAAf,CAAwB,MAAO,WAC7B,EAAC,EAAD,CACY,SA3DC,MAAO,CACtB,OACA,cAII,CACJ,MAAM,EAAS,CAAQ,OAAW,CAAC,CAChC,KAAK,KAAO,IAAa,CACxB,IAAM,EAAM,EACZ,GAAI,GAAK,YAAc,EAAI,YAAc,IACvC,MAAM,EAGR,GAAI,CACF,MAAM,EAAa,EAAS,OACrB,EAAG,CACV,QAAQ,MAAM,mBAAoB,EAAE,CACpC,EAAS,mBAAoB,CAC3B,KAAM,KACN,QAAS,GAAwB,yBAClC,CAAC,CACF,OAEF,IAAiB,GAAY,EAAE,CAAkB,EACjD,CACD,MAAO,GAAqB,CAa3B,IAXG,EAAM,aAAe,KAAO,EAAM,aAAe,MAClD,EAAM,OAAO,QAEb,OAAO,KAAK,EAAM,MAAM,OAAO,CAAC,QAAS,GAAQ,CAC/C,EAAS,EAAK,CACZ,KAAM,SACN,QAAS,EAAM,OAAO,SAAS,GAChC,CAAC,EACF,CAGA,EAAc,SAAS,EAAM,WAAW,EAAI,EAC9C,EAAgB,CACd,QAAS,GAAO,SAAW,uBACjB,WACV,OAAQ,EAAM,WACf,CAAC,SACO,EAAM,aAAe,KAAO,EAAM,aAAe,IAC1D,EAAS,mBAAoB,CAC3B,KAAM,SACN,QAAS,GAAO,SAAW,uBAC5B,CAAC,MAEF,MAAM,GAER,EAOQ,SACR,SAAU,EACP,IACH,WAAY,CACV,KAAM,GAAY,MAAQ,GAAM,CAChC,KAAM,GAAY,MAAQ,GAAU,CACrC,CAEA,WACQ,CAAA,CACY,CAAA,EAI7B,EAAK,YAAc,OACnB,EAAK,UAAY,EACjB,EAAK,SAAW,EAChB,EAAK,OAAS,EACd,EAAK,OAAS,EACd,EAAK,SAAW,EAChB,EAAK,aAAe,EACpB,EAAK,SAAW,EAChB,EAAK,OAAS,EACd,EAAK,SAAW,EAChB,EAAK,aAAe,EACpB,EAAK,WAAa,EAClB,EAAK,eAAiB,EACtB,EAAK,UAAY,EACjB,EAAK,kBAAoB,EACzB,EAAK,YAAc,EACnB,EAAK,oBAAsB,EAC3B,EAAK,SAAW,EAChB,EAAK,WAAa"}
1
+ {"version":3,"file":"Form.mjs","names":[],"sources":["../../../src/components/forms/Form.tsx"],"sourcesContent":["import type React from 'react';\nimport type { ReactNode } from 'react';\nimport { useRef } from 'react';\nimport type { FieldValues, UseFormSetError } from 'react-hook-form';\nimport type { ZodObject, ZodTypeAny } from 'zod';\n\nimport { form, formRoot } from '@mage-ui/styled-system/recipes';\n\nimport { FormAutocomplete } from './controls/FormAutocomplete';\nimport { FormCheckbox } from './controls/FormCheckbox';\nimport { FormCheckboxGroup } from './controls/FormCheckboxGroup';\nimport { FormCheckboxTree } from './controls/FormCheckboxTree';\nimport { FormCombobox } from './controls/FormCombobox';\nimport { FormDatePicker } from './controls/FormDatePicker';\nimport { FormDateTimePicker } from './controls/FormDateTimePicker';\nimport { FormDropzone } from './controls/FormDropzone';\nimport { FormDropzoneS3 } from './controls/FormDropzoneS3';\nimport { FormFileInput } from './controls/FormFileInput';\nimport { FormFileInputMultiple } from './controls/FormFileInputMultiple';\nimport { FormFileInputMultipleS3 } from './controls/FormFileInputMultipleS3';\nimport { FormFileInputS3 } from './controls/FormFileInputS3';\nimport { FormHidden } from './controls/FormHidden';\nimport { FormPassword } from './controls/FormPassword';\nimport { FormRadioGroup } from './controls/FormRadioGroup';\nimport { FormSelect } from './controls/FormSelect';\nimport { FormSubmit } from './controls/FormSubmit';\nimport { FormTextarea } from './controls/FormTextarea';\nimport { FormTextInput } from './controls/FormTextInput';\nimport { FormYearPicker } from './controls/FormYearPicker';\nimport { FormBase } from './FormBase';\nimport { FormErrorBox } from './FormErrorBox';\nimport { FormS3Context, type S3UploadCallback } from './FormS3Context';\n\ntype FormResponse = {\n body?: object;\n details?: string;\n status?: number;\n url?: string;\n};\n\nexport type FormProps<T extends FieldValues> = {\n $fetcher: (params: { data: T }) => Promise<unknown>;\n onValidSubmit?: (response: FormResponse) => void;\n onInvalidSubmit?: (params: {\n message: string;\n setError: UseFormSetError<T>;\n status: number;\n }) => void;\n invalidStatus?: number[];\n children: ReactNode;\n schema?: ZodObject<Record<string, ZodTypeAny>>;\n t?: (\n key: string,\n bindings?: Record<string, string>,\n fallback?: string,\n ) => string | React.ReactNode;\n /** Mensaje mostrado al usuario si falla la subida de archivos a S3 tras el submit. */\n s3UploadErrorMessage?: string;\n classNames?: {\n form?: string;\n root?: string;\n };\n};\n\ntype FormError = {\n statusCode: number;\n message: string;\n cause?: {\n issues: Record<string, string>;\n };\n};\n\nexport const Form = <T extends FieldValues>({\n $fetcher,\n onValidSubmit,\n onInvalidSubmit,\n invalidStatus = [],\n children,\n schema,\n t,\n s3UploadErrorMessage,\n classNames,\n}: FormProps<T>) => {\n const s3CallbacksRef = useRef<Map<string, S3UploadCallback>>(new Map());\n\n const s3ContextValue = {\n registerS3Upload: (name: string, cb: S3UploadCallback) => {\n s3CallbacksRef.current.set(name, cb);\n },\n unregisterS3Upload: (name: string) => {\n s3CallbacksRef.current.delete(name);\n },\n };\n\n const runS3Uploads = async (response: unknown): Promise<void> => {\n const callbacks = Array.from(s3CallbacksRef.current.values());\n await Promise.all(callbacks.map((cb) => cb(response)));\n };\n\n const onSubmit = async ({\n data,\n setError,\n }: {\n data: FieldValues;\n setError: UseFormSetError<FieldValues>;\n }) => {\n await $fetcher({ data: data as T })\n .then(async (response) => {\n const res = response as FormError & FormResponse;\n if (res?.statusCode && res.statusCode >= 400) {\n throw res;\n }\n\n try {\n await runS3Uploads(response);\n } catch (e) {\n console.error('S3 upload error:', e);\n setError('root.serverError', {\n type: 's3',\n message: s3UploadErrorMessage ?? 'Failed to upload files',\n });\n return;\n }\n onValidSubmit?.((response || {}) as FormResponse);\n })\n .catch((error: FormError) => {\n if (\n (error.statusCode === 400 || error.statusCode === 422) &&\n error.cause?.issues\n ) {\n Object.keys(error.cause.issues).forEach((key) => {\n setError(key, {\n type: 'server',\n message: error.cause?.issues?.[key],\n });\n });\n }\n\n if (invalidStatus.includes(error.statusCode) && onInvalidSubmit) {\n onInvalidSubmit({\n message: error?.message ?? 'Something went wrong',\n setError: setError as UseFormSetError<T>,\n status: error.statusCode,\n });\n } else if (error.statusCode === 400 || error.statusCode === 422) {\n setError('root.serverError', {\n type: 'server',\n message: error?.message ?? 'Something went wrong',\n });\n } else {\n throw error;\n }\n });\n };\n\n return (\n <FormS3Context.Provider value={s3ContextValue}>\n <FormBase\n onSubmit={onSubmit}\n schema={schema}\n errorBox={FormErrorBox}\n t={t}\n classNames={{\n form: classNames?.form ?? form(),\n root: classNames?.root ?? formRoot(),\n }}\n >\n {children}\n </FormBase>\n </FormS3Context.Provider>\n );\n};\n\nForm.displayName = 'Form';\nForm.TextInput = FormTextInput;\nForm.Textarea = FormTextarea;\nForm.Submit = FormSubmit;\nForm.Hidden = FormHidden;\nForm.Checkbox = FormCheckbox;\nForm.CheckboxGroup = FormCheckboxGroup;\nForm.CheckboxTree = FormCheckboxTree;\nForm.RadioGroup = FormRadioGroup;\nForm.Password = FormPassword;\nForm.Select = FormSelect;\nForm.Combobox = FormCombobox;\nForm.Autocomplete = FormAutocomplete;\nForm.DatePicker = FormDatePicker;\nForm.YearPicker = FormYearPicker;\nForm.DateTimePicker = FormDateTimePicker;\nForm.FileInput = FormFileInput;\nForm.FileInputMultiple = FormFileInputMultiple;\nForm.FileInputS3 = FormFileInputS3;\nForm.FileInputMultipleS3 = FormFileInputMultipleS3;\nForm.Dropzone = FormDropzone;\nForm.DropzoneS3 = FormDropzoneS3;\n"],"mappings":"8kDAwEA,MAAa,GAA+B,CAC1C,WACA,gBACA,kBACA,gBAAgB,EAAE,CAClB,WACA,SACA,IACA,uBACA,gBACkB,CAClB,IAAM,EAAiB,EAAsC,IAAI,IAAM,CAEjE,EAAiB,CACrB,kBAAmB,EAAc,IAAyB,CACxD,EAAe,QAAQ,IAAI,EAAM,EAAG,EAEtC,mBAAqB,GAAiB,CACpC,EAAe,QAAQ,OAAO,EAAK,EAEtC,CAEK,EAAe,KAAO,IAAqC,CAC/D,IAAM,EAAY,MAAM,KAAK,EAAe,QAAQ,QAAQ,CAAC,CAC7D,MAAM,QAAQ,IAAI,EAAU,IAAK,GAAO,EAAG,EAAS,CAAC,CAAC,EA2DxD,OACE,EAAC,EAAc,SAAf,CAAwB,MAAO,WAC7B,EAAC,EAAD,CACY,SA3DC,MAAO,CACtB,OACA,cAII,CACJ,MAAM,EAAS,CAAQ,OAAW,CAAC,CAChC,KAAK,KAAO,IAAa,CACxB,IAAM,EAAM,EACZ,GAAI,GAAK,YAAc,EAAI,YAAc,IACvC,MAAM,EAGR,GAAI,CACF,MAAM,EAAa,EAAS,OACrB,EAAG,CACV,QAAQ,MAAM,mBAAoB,EAAE,CACpC,EAAS,mBAAoB,CAC3B,KAAM,KACN,QAAS,GAAwB,yBAClC,CAAC,CACF,OAEF,IAAiB,GAAY,EAAE,CAAkB,EACjD,CACD,MAAO,GAAqB,CAa3B,IAXG,EAAM,aAAe,KAAO,EAAM,aAAe,MAClD,EAAM,OAAO,QAEb,OAAO,KAAK,EAAM,MAAM,OAAO,CAAC,QAAS,GAAQ,CAC/C,EAAS,EAAK,CACZ,KAAM,SACN,QAAS,EAAM,OAAO,SAAS,GAChC,CAAC,EACF,CAGA,EAAc,SAAS,EAAM,WAAW,EAAI,EAC9C,EAAgB,CACd,QAAS,GAAO,SAAW,uBACjB,WACV,OAAQ,EAAM,WACf,CAAC,SACO,EAAM,aAAe,KAAO,EAAM,aAAe,IAC1D,EAAS,mBAAoB,CAC3B,KAAM,SACN,QAAS,GAAO,SAAW,uBAC5B,CAAC,MAEF,MAAM,GAER,EAOQ,SACR,SAAU,EACP,IACH,WAAY,CACV,KAAM,GAAY,MAAQ,GAAM,CAChC,KAAM,GAAY,MAAQ,GAAU,CACrC,CAEA,WACQ,CAAA,CACY,CAAA,EAI7B,EAAK,YAAc,OACnB,EAAK,UAAY,EACjB,EAAK,SAAW,EAChB,EAAK,OAAS,EACd,EAAK,OAAS,EACd,EAAK,SAAW,EAChB,EAAK,cAAgB,EACrB,EAAK,aAAe,EACpB,EAAK,WAAa,EAClB,EAAK,SAAW,EAChB,EAAK,OAAS,EACd,EAAK,SAAW,EAChB,EAAK,aAAe,EACpB,EAAK,WAAa,EAClB,EAAK,WAAa,EAClB,EAAK,eAAiB,EACtB,EAAK,UAAY,EACjB,EAAK,kBAAoB,EACzB,EAAK,YAAc,EACnB,EAAK,oBAAsB,EAC3B,EAAK,SAAW,EAChB,EAAK,WAAa"}
@@ -0,0 +1,12 @@
1
+ import { CheckboxGroupProps } from "../../controls/checkbox-group/CheckboxGroup.mjs";
2
+ //#region src/components/forms/controls/FormCheckboxGroup.d.ts
3
+ type FormCheckboxGroupProps = Omit<CheckboxGroupProps, 'value' | 'onChange'> & {
4
+ $rule?: string;
5
+ defaultValue?: string[];
6
+ error?: string;
7
+ isSubmitting?: boolean;
8
+ name: string;
9
+ };
10
+ //#endregion
11
+ export { FormCheckboxGroupProps };
12
+ //# sourceMappingURL=FormCheckboxGroup.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormCheckboxGroup.d.mts","names":[],"sources":["../../../../src/components/forms/controls/FormCheckboxGroup.tsx"],"mappings":";;KAOY,sBAAA,GAAyB,IAAA,CACnC,kBAAA;EAGA,KAAA;EACA,YAAA;EACA,KAAA;EACA,YAAA;EACA,IAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{CheckboxGroup as e}from"../../controls/checkbox-group/CheckboxGroup.mjs";import{jsx as t}from"react/jsx-runtime";import{Controller as n}from"react-hook-form";const r=({$rule:r,defaultValue:i,isSubmitting:a,name:o,disabled:s,...c})=>t(n,{name:o,defaultValue:i??[],render:({field:{onChange:n,value:r}})=>t(e,{...c,disabled:a||s,value:r??[],onChange:n})});r.displayName=`Form.CheckboxGroup`;export{r as FormCheckboxGroup};
2
+ //# sourceMappingURL=FormCheckboxGroup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormCheckboxGroup.mjs","names":[],"sources":["../../../../src/components/forms/controls/FormCheckboxGroup.tsx"],"sourcesContent":["import { Controller } from 'react-hook-form';\n\nimport {\n CheckboxGroup,\n type CheckboxGroupProps,\n} from '@/components/controls/checkbox-group/CheckboxGroup';\n\nexport type FormCheckboxGroupProps = Omit<\n CheckboxGroupProps,\n 'value' | 'onChange'\n> & {\n $rule?: string;\n defaultValue?: string[];\n error?: string;\n isSubmitting?: boolean;\n name: string;\n};\n\nexport const FormCheckboxGroup = ({\n $rule: _$rule,\n defaultValue,\n isSubmitting,\n name,\n disabled,\n ...props\n}: FormCheckboxGroupProps) => {\n return (\n <Controller\n name={name}\n defaultValue={defaultValue ?? []}\n render={({ field: { onChange, value } }) => (\n <CheckboxGroup\n {...props}\n disabled={isSubmitting || disabled}\n value={value ?? []}\n onChange={onChange}\n />\n )}\n />\n );\n};\n\nFormCheckboxGroup.displayName = 'Form.CheckboxGroup';\n"],"mappings":"qKAkBA,MAAa,GAAqB,CAChC,MAAO,EACP,eACA,eACA,OACA,WACA,GAAG,KAGD,EAAC,EAAD,CACQ,OACN,aAAc,GAAgB,EAAE,CAChC,QAAS,CAAE,MAAO,CAAE,WAAU,YAC5B,EAAC,EAAD,CACE,GAAI,EACJ,SAAU,GAAgB,EAC1B,MAAO,GAAS,EAAE,CACR,WACV,CAAA,CAEJ,CAAA,CAIN,EAAkB,YAAc"}
@@ -0,0 +1,12 @@
1
+ import { RadioGroupProps } from "../../controls/radio-group/RadioGroup.mjs";
2
+ //#region src/components/forms/controls/FormRadioGroup.d.ts
3
+ type FormRadioGroupProps = Omit<RadioGroupProps, 'value' | 'onChange'> & {
4
+ $rule?: string;
5
+ defaultValue?: string;
6
+ error?: string;
7
+ isSubmitting?: boolean;
8
+ name: string;
9
+ };
10
+ //#endregion
11
+ export { FormRadioGroupProps };
12
+ //# sourceMappingURL=FormRadioGroup.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormRadioGroup.d.mts","names":[],"sources":["../../../../src/components/forms/controls/FormRadioGroup.tsx"],"mappings":";;KAOY,mBAAA,GAAsB,IAAA,CAChC,eAAA;EAGA,KAAA;EACA,YAAA;EACA,KAAA;EACA,YAAA;EACA,IAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{RadioGroup as e}from"../../controls/radio-group/RadioGroup.mjs";import{jsx as t}from"react/jsx-runtime";import{Controller as n}from"react-hook-form";const r=({$rule:r,defaultValue:i,isSubmitting:a,name:o,...s})=>t(n,{name:o,defaultValue:i,render:({field:{onChange:n,value:r}})=>t(e,{...s,value:r,onChange:n})});r.displayName=`Form.RadioGroup`;export{r as FormRadioGroup};
2
+ //# sourceMappingURL=FormRadioGroup.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormRadioGroup.mjs","names":[],"sources":["../../../../src/components/forms/controls/FormRadioGroup.tsx"],"sourcesContent":["import { Controller } from 'react-hook-form';\n\nimport {\n RadioGroup,\n type RadioGroupProps,\n} from '@/components/controls/radio-group/RadioGroup';\n\nexport type FormRadioGroupProps = Omit<\n RadioGroupProps,\n 'value' | 'onChange'\n> & {\n $rule?: string;\n defaultValue?: string;\n error?: string;\n isSubmitting?: boolean;\n name: string;\n};\n\nexport const FormRadioGroup = ({\n $rule: _$rule,\n defaultValue,\n isSubmitting: _isSubmitting,\n name,\n ...props\n}: FormRadioGroupProps) => {\n return (\n <Controller\n name={name}\n defaultValue={defaultValue}\n render={({ field: { onChange, value } }) => (\n <RadioGroup {...props} value={value} onChange={onChange} />\n )}\n />\n );\n};\n\nFormRadioGroup.displayName = 'Form.RadioGroup';\n"],"mappings":"4JAkBA,MAAa,GAAkB,CAC7B,MAAO,EACP,eACA,aAAc,EACd,OACA,GAAG,KAGD,EAAC,EAAD,CACQ,OACQ,eACd,QAAS,CAAE,MAAO,CAAE,WAAU,YAC5B,EAAC,EAAD,CAAY,GAAI,EAAc,QAAiB,WAAY,CAAA,CAE7D,CAAA,CAIN,EAAe,YAAc"}
@@ -0,0 +1,14 @@
1
+ import { YearPickerProps, YearPickerValue } from "../../controls/date-picker/YearPicker.mjs";
2
+ //#region src/components/forms/controls/FormYearPicker.d.ts
3
+ type FormYearPickerValue = string | null;
4
+ type FormYearPickerProps = Omit<YearPickerProps, 'defaultValue' | 'onChange' | 'value'> & {
5
+ $rule?: string;
6
+ error?: string;
7
+ isSubmitting?: boolean;
8
+ name: string;
9
+ defaultValue?: YearPickerValue;
10
+ onChange?: (year: FormYearPickerValue) => void;
11
+ };
12
+ //#endregion
13
+ export { FormYearPickerProps };
14
+ //# sourceMappingURL=FormYearPicker.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormYearPicker.d.mts","names":[],"sources":["../../../../src/components/forms/controls/FormYearPicker.tsx"],"mappings":";;KAQY,mBAAA;AAAA,KAEA,mBAAA,GAAsB,IAAA,CAChC,eAAA;EAGA,KAAA;EACA,KAAA;EACA,YAAA;EACA,IAAA;EACA,YAAA,GAAe,eAAA;EACf,QAAA,IAAY,IAAA,EAAM,mBAAA;AAAA"}
@@ -0,0 +1,2 @@
1
+ import{YearPicker as e}from"../../controls/date-picker/YearPicker.mjs";import{jsx as t}from"react/jsx-runtime";import{Controller as n}from"react-hook-form";const r=e=>{if(e!==void 0)return e===null?null:typeof e==`string`?e.slice(0,4):String(e.getFullYear())},i=({$rule:i,isSubmitting:a,name:o,error:s,defaultValue:c,onChange:l,disabled:u,...d})=>t(n,{name:o,...c===void 0?{}:{defaultValue:r(c)},render:({field:{onChange:n,onBlur:i,value:c}})=>t(e,{name:o,error:s,disabled:u||a,value:c&&`${c}-01-01`,onBlur:i,...d,onChange:e=>{let t=r(e)??null;n(t),l?.(t)}})});i.displayName=`Form.YearPicker`;export{i as FormYearPicker};
2
+ //# sourceMappingURL=FormYearPicker.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormYearPicker.mjs","names":[],"sources":["../../../../src/components/forms/controls/FormYearPicker.tsx"],"sourcesContent":["import { Controller } from 'react-hook-form';\n\nimport {\n YearPicker,\n type YearPickerProps,\n type YearPickerValue,\n} from '@/components/controls/date-picker/YearPicker';\n\nexport type FormYearPickerValue = string | null;\n\nexport type FormYearPickerProps = Omit<\n YearPickerProps,\n 'defaultValue' | 'onChange' | 'value'\n> & {\n $rule?: string;\n error?: string;\n isSubmitting?: boolean;\n name: string;\n defaultValue?: YearPickerValue;\n onChange?: (year: FormYearPickerValue) => void;\n};\n\nconst toFormYearValue = (\n value: YearPickerValue | undefined,\n): FormYearPickerValue | undefined => {\n if (value === undefined) return undefined;\n if (value === null) return null;\n if (typeof value === 'string') {\n // Extract year from ISO string (e.g. \"2024-01-01\" → \"2024\")\n return value.slice(0, 4);\n }\n return String(value.getFullYear());\n};\n\nexport const FormYearPicker = ({\n $rule: _$rule,\n isSubmitting,\n name,\n error,\n defaultValue,\n onChange,\n disabled,\n ...props\n}: FormYearPickerProps) => {\n const controllerProps =\n defaultValue === undefined\n ? {}\n : { defaultValue: toFormYearValue(defaultValue) };\n\n return (\n <Controller\n name={name}\n {...controllerProps}\n render={({ field: { onChange: fieldOnChange, onBlur, value } }) => (\n <YearPicker\n name={name}\n error={error}\n disabled={disabled || isSubmitting}\n value={value ? `${value}-01-01` : value}\n onBlur={onBlur}\n {...props}\n onChange={(date) => {\n const formValue = toFormYearValue(date) ?? null;\n fieldOnChange(formValue);\n onChange?.(formValue);\n }}\n />\n )}\n />\n );\n};\n\nFormYearPicker.displayName = 'Form.YearPicker';\n"],"mappings":"4JAsBA,MAAM,EACJ,GACoC,CAChC,OAAU,IAAA,GAMd,OALI,IAAU,KAAa,KACvB,OAAO,GAAU,SAEZ,EAAM,MAAM,EAAG,EAAE,CAEnB,OAAO,EAAM,aAAa,CAAC,EAGvB,GAAkB,CAC7B,MAAO,EACP,eACA,OACA,QACA,eACA,WACA,WACA,GAAG,KAQD,EAAC,EAAD,CACQ,OACN,GAPF,IAAiB,IAAA,GACb,EAAE,CACF,CAAE,aAAc,EAAgB,EAAa,CAAE,CAMjD,QAAS,CAAE,MAAO,CAAE,SAAU,EAAe,SAAQ,YACnD,EAAC,EAAD,CACQ,OACC,QACP,SAAU,GAAY,EACtB,MAAO,GAAQ,GAAG,EAAM,QAChB,SACR,GAAI,EACJ,SAAW,GAAS,CAClB,IAAM,EAAY,EAAgB,EAAK,EAAI,KAC3C,EAAc,EAAU,CACxB,IAAW,EAAU,EAEvB,CAAA,CAEJ,CAAA,CAIN,EAAe,YAAc"}
@@ -1,2 +1,2 @@
1
- import{FormAutocomplete as e}from"./FormAutocomplete.mjs";import{FormCheckbox as t}from"./FormCheckbox.mjs";import{FormCheckboxTree as n}from"./FormCheckboxTree.mjs";import{FormCombobox as r}from"./FormCombobox.mjs";import{FormDatePicker as i}from"./FormDatePicker.mjs";import{FormDateTimePicker as a}from"./FormDateTimePicker.mjs";import{FormDropzone as o}from"./FormDropzone.mjs";import{FormDropzoneS3 as s}from"./FormDropzoneS3.mjs";import{FormFileInput as c}from"./FormFileInput.mjs";import{FormFileInputMultiple as l}from"./FormFileInputMultiple.mjs";import{FormFileInputMultipleS3 as u}from"./FormFileInputMultipleS3.mjs";import{FormFileInputS3 as d}from"./FormFileInputS3.mjs";import{FormHidden as f}from"./FormHidden.mjs";import{FormPassword as p}from"./FormPassword.mjs";import{FormSelect as m}from"./FormSelect.mjs";import{FormSubmit as h}from"./FormSubmit.mjs";import{FormTextarea as g}from"./FormTextarea.mjs";import{FormTextInput as _}from"./FormTextInput.mjs";const v=[h,_,g,p,f,t,n,m,r,e,i,a,c,l,d,u,o,s];export{v as controls};
1
+ import{FormAutocomplete as e}from"./FormAutocomplete.mjs";import{FormCheckbox as t}from"./FormCheckbox.mjs";import{FormCheckboxGroup as n}from"./FormCheckboxGroup.mjs";import{FormCheckboxTree as r}from"./FormCheckboxTree.mjs";import{FormCombobox as i}from"./FormCombobox.mjs";import{FormDatePicker as a}from"./FormDatePicker.mjs";import{FormDateTimePicker as o}from"./FormDateTimePicker.mjs";import{FormDropzone as s}from"./FormDropzone.mjs";import{FormDropzoneS3 as c}from"./FormDropzoneS3.mjs";import{FormFileInput as l}from"./FormFileInput.mjs";import{FormFileInputMultiple as u}from"./FormFileInputMultiple.mjs";import{FormFileInputMultipleS3 as d}from"./FormFileInputMultipleS3.mjs";import{FormFileInputS3 as f}from"./FormFileInputS3.mjs";import{FormHidden as p}from"./FormHidden.mjs";import{FormPassword as m}from"./FormPassword.mjs";import{FormRadioGroup as h}from"./FormRadioGroup.mjs";import{FormSelect as g}from"./FormSelect.mjs";import{FormSubmit as _}from"./FormSubmit.mjs";import{FormTextarea as v}from"./FormTextarea.mjs";import{FormTextInput as y}from"./FormTextInput.mjs";import{FormYearPicker as b}from"./FormYearPicker.mjs";const x=[_,y,v,m,p,t,n,r,h,g,i,e,a,b,o,l,u,f,d,s,c];export{x as controls};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/forms/controls/index.ts"],"sourcesContent":["import { FormAutocomplete } from './FormAutocomplete';\nimport { FormCheckbox } from './FormCheckbox';\nimport { FormCheckboxTree } from './FormCheckboxTree';\nimport { FormCombobox } from './FormCombobox';\nimport { FormDatePicker } from './FormDatePicker';\nimport { FormDateTimePicker } from './FormDateTimePicker';\nimport { FormDropzone } from './FormDropzone';\nimport { FormDropzoneS3 } from './FormDropzoneS3';\nimport { FormFileInput } from './FormFileInput';\nimport { FormFileInputMultiple } from './FormFileInputMultiple';\nimport { FormFileInputMultipleS3 } from './FormFileInputMultipleS3';\nimport { FormFileInputS3 } from './FormFileInputS3';\nimport { FormHidden } from './FormHidden';\nimport { FormPassword } from './FormPassword';\nimport { FormSelect } from './FormSelect';\nimport { FormSubmit } from './FormSubmit';\nimport { FormTextarea } from './FormTextarea';\nimport { FormTextInput } from './FormTextInput';\n\nexport const controls = [\n FormSubmit,\n FormTextInput,\n FormTextarea,\n FormPassword,\n FormHidden,\n FormCheckbox,\n FormCheckboxTree,\n FormSelect,\n FormCombobox,\n FormAutocomplete,\n FormDatePicker,\n FormDateTimePicker,\n FormFileInput,\n FormFileInputMultiple,\n FormFileInputS3,\n FormFileInputMultipleS3,\n FormDropzone,\n FormDropzoneS3,\n] as React.ComponentType[];\n"],"mappings":"88BAmBA,MAAa,EAAW,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/components/forms/controls/index.ts"],"sourcesContent":["import { FormAutocomplete } from './FormAutocomplete';\nimport { FormCheckbox } from './FormCheckbox';\nimport { FormCheckboxGroup } from './FormCheckboxGroup';\nimport { FormCheckboxTree } from './FormCheckboxTree';\nimport { FormCombobox } from './FormCombobox';\nimport { FormDatePicker } from './FormDatePicker';\nimport { FormDateTimePicker } from './FormDateTimePicker';\nimport { FormDropzone } from './FormDropzone';\nimport { FormDropzoneS3 } from './FormDropzoneS3';\nimport { FormFileInput } from './FormFileInput';\nimport { FormFileInputMultiple } from './FormFileInputMultiple';\nimport { FormFileInputMultipleS3 } from './FormFileInputMultipleS3';\nimport { FormFileInputS3 } from './FormFileInputS3';\nimport { FormHidden } from './FormHidden';\nimport { FormPassword } from './FormPassword';\nimport { FormRadioGroup } from './FormRadioGroup';\nimport { FormSelect } from './FormSelect';\nimport { FormSubmit } from './FormSubmit';\nimport { FormTextarea } from './FormTextarea';\nimport { FormTextInput } from './FormTextInput';\nimport { FormYearPicker } from './FormYearPicker';\n\nexport const controls = [\n FormSubmit,\n FormTextInput,\n FormTextarea,\n FormPassword,\n FormHidden,\n FormCheckbox,\n FormCheckboxGroup,\n FormCheckboxTree,\n FormRadioGroup,\n FormSelect,\n FormCombobox,\n FormAutocomplete,\n FormDatePicker,\n FormYearPicker,\n FormDateTimePicker,\n FormFileInput,\n FormFileInputMultiple,\n FormFileInputS3,\n FormFileInputMultipleS3,\n FormDropzone,\n FormDropzoneS3,\n] as React.ComponentType[];\n"],"mappings":"snCAsBA,MAAa,EAAW,CACtB,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD"}
@@ -1,2 +1,2 @@
1
- "use client";import{Fragment as e,jsx as t}from"react/jsx-runtime";import{Children as n,cloneElement as r,isValidElement as i}from"react";const a=new Set([`Form.Password`,`Form.Checkbox`,`Form.CheckboxTree`,`Form.Select`,`Form.Combobox`,`Form.Autocomplete`,`Form.DatePicker`,`Form.DateTimePicker`,`Form.Hidden`,`Form.FileInput`,`Form.FileInputMultiple`,`Form.Dropzone`,`Form.DropzoneS3`,`Form.FileInputS3`,`Form.FileInputMultipleS3`]),o=(e,t,n)=>{if(e)try{let r=JSON.parse(e),i={...r.bindings,attribute:t},a=n?n(r.key,i,r.fallback):r.fallback;return String(a).replace(/{attribute}/g,t)}catch{return e.replace(/{attribute}/g,t)}},s=({children:s,register:c,componentTypes:l,errors:u={},t:d})=>{let f=e=>n.map(e,e=>{if(!i(e))return e;let t=e.props;if(l.some(t=>e.type===t)){let n=t.name,i=u[n??``]?.message?.toString(),s=n?o(i,n,d):void 0,l=e.type.displayName;return r(e,{...n!==void 0&&!a.has(l??``)&&n?c(n):{},error:s})}return t.children?r(e,{children:f(t.children)}):e});return t(e,{children:f(s)})};export{s as RegisteredFormChildren};
1
+ "use client";import{Fragment as e,jsx as t}from"react/jsx-runtime";import{Children as n,cloneElement as r,isValidElement as i}from"react";const a=new Set([`Form.Password`,`Form.Checkbox`,`Form.CheckboxGroup`,`Form.CheckboxTree`,`Form.RadioGroup`,`Form.Select`,`Form.Combobox`,`Form.Autocomplete`,`Form.DatePicker`,`Form.DateTimePicker`,`Form.Hidden`,`Form.FileInput`,`Form.FileInputMultiple`,`Form.Dropzone`,`Form.DropzoneS3`,`Form.FileInputS3`,`Form.FileInputMultipleS3`]),o=(e,t,n)=>{if(e)try{let r=JSON.parse(e),i={...r.bindings,attribute:t},a=n?n(r.key,i,r.fallback):r.fallback;return String(a).replace(/{attribute}/g,t)}catch{return e.replace(/{attribute}/g,t)}},s=({children:s,register:c,componentTypes:l,errors:u={},t:d})=>{let f=e=>n.map(e,e=>{if(!i(e))return e;let t=e.props;if(l.some(t=>e.type===t)){let n=t.name,i=u[n??``]?.message?.toString(),s=n?o(i,n,d):void 0,l=e.type.displayName;return r(e,{...n!==void 0&&!a.has(l??``)&&n?c(n):{},error:s})}return t.children?r(e,{children:f(t.children)}):e});return t(e,{children:f(s)})};export{s as RegisteredFormChildren};
2
2
  //# sourceMappingURL=register-components.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-components.mjs","names":[],"sources":["../../../../src/components/forms/controls/register-components.tsx"],"sourcesContent":["'use client';\n\nimport type React from 'react';\nimport { Children, cloneElement, isValidElement } from 'react';\nimport type { FieldErrors, UseFormRegister } from 'react-hook-form';\n\ninterface TranslationMessage {\n key: string;\n bindings: Record<string, string>;\n fallback: string;\n}\n\nconst controllerDisplayNames = new Set([\n 'Form.Password',\n 'Form.Checkbox',\n 'Form.CheckboxTree',\n 'Form.Select',\n 'Form.Combobox',\n 'Form.Autocomplete',\n 'Form.DatePicker',\n 'Form.DateTimePicker',\n 'Form.Hidden',\n 'Form.FileInput',\n 'Form.FileInputMultiple',\n 'Form.Dropzone',\n 'Form.DropzoneS3',\n 'Form.FileInputS3',\n 'Form.FileInputMultipleS3',\n]);\n\nconst parseAndTranslate = (\n message: string | undefined,\n fieldName: string,\n t?: (\n key: string,\n bindings?: Record<string, string>,\n fallback?: string,\n ) => string | React.ReactNode,\n): string | undefined => {\n if (!message) return undefined;\n\n try {\n const parsed: TranslationMessage = JSON.parse(message);\n const bindings = { ...parsed.bindings, attribute: fieldName };\n const result = t\n ? t(parsed.key, bindings, parsed.fallback)\n : parsed.fallback;\n return String(result).replace(/{attribute}/g, fieldName);\n } catch {\n return message.replace(/{attribute}/g, fieldName);\n }\n};\n\ninterface RegisteredFormChildrenProps {\n children: React.ReactNode;\n register: UseFormRegister<Record<string, unknown>>;\n componentTypes: React.ComponentType[];\n errors?: FieldErrors<Record<string, unknown>>;\n t?: (\n key: string,\n bindings?: Record<string, string>,\n fallback?: string,\n ) => string | React.ReactNode;\n}\n\nexport const RegisteredFormChildren = ({\n children,\n register,\n componentTypes,\n errors = {},\n t,\n}: RegisteredFormChildrenProps): React.ReactNode => {\n const processChildren = (nodes: React.ReactNode): React.ReactNode => {\n return Children.map(nodes, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const childProps = child.props as {\n name?: string;\n children?: React.ReactNode;\n };\n\n if (\n componentTypes.some((type: React.ComponentType) => child.type === type)\n ) {\n const fieldName = childProps.name;\n const errorMessage = errors[fieldName ?? '']?.message?.toString();\n const translatedError = fieldName\n ? parseAndTranslate(errorMessage, fieldName, t)\n : undefined;\n const displayName = (\n child.type as React.ComponentType & { displayName?: string }\n ).displayName;\n const shouldRegister =\n fieldName !== undefined &&\n !controllerDisplayNames.has(displayName ?? '');\n const registrationProps =\n shouldRegister && fieldName ? register(fieldName) : {};\n\n return cloneElement(child, {\n ...registrationProps,\n error: translatedError,\n } as Partial<typeof child.props>);\n }\n\n if (childProps.children) {\n return cloneElement(child, {\n children: processChildren(childProps.children),\n } as Partial<typeof child.props>);\n }\n\n return child;\n });\n };\n\n return <>{processChildren(children)}</>;\n};\n"],"mappings":"0IAYA,MAAM,EAAyB,IAAI,IAAI,CACrC,gBACA,gBACA,oBACA,cACA,gBACA,oBACA,kBACA,sBACA,cACA,iBACA,yBACA,gBACA,kBACA,mBACA,2BACD,CAAC,CAEI,GACJ,EACA,EACA,IAKuB,CAClB,KAEL,GAAI,CACF,IAAM,EAA6B,KAAK,MAAM,EAAQ,CAChD,EAAW,CAAE,GAAG,EAAO,SAAU,UAAW,EAAW,CACvD,EAAS,EACX,EAAE,EAAO,IAAK,EAAU,EAAO,SAAS,CACxC,EAAO,SACX,OAAO,OAAO,EAAO,CAAC,QAAQ,eAAgB,EAAU,MAClD,CACN,OAAO,EAAQ,QAAQ,eAAgB,EAAU,GAgBxC,GAA0B,CACrC,WACA,WACA,iBACA,SAAS,EAAE,CACX,OACkD,CAClD,IAAM,EAAmB,GAChB,EAAS,IAAI,EAAQ,GAAU,CACpC,GAAI,CAAC,EAAe,EAAM,CACxB,OAAO,EAGT,IAAM,EAAa,EAAM,MAKzB,GACE,EAAe,KAAM,GAA8B,EAAM,OAAS,EAAK,CACvE,CACA,IAAM,EAAY,EAAW,KACvB,EAAe,EAAO,GAAa,KAAK,SAAS,UAAU,CAC3D,EAAkB,EACpB,EAAkB,EAAc,EAAW,EAAE,CAC7C,IAAA,GACE,EACJ,EAAM,KACN,YAOF,OAAO,EAAa,EAAO,CACzB,GANA,IAAc,IAAA,IACd,CAAC,EAAuB,IAAI,GAAe,GAAG,EAE5B,EAAY,EAAS,EAAU,CAAG,EAAE,CAItD,MAAO,EACR,CAAgC,CASnC,OANI,EAAW,SACN,EAAa,EAAO,CACzB,SAAU,EAAgB,EAAW,SAAS,CAC/C,CAAgC,CAG5B,GACP,CAGJ,OAAO,EAAA,EAAA,CAAA,SAAG,EAAgB,EAAS,CAAI,CAAA"}
1
+ {"version":3,"file":"register-components.mjs","names":[],"sources":["../../../../src/components/forms/controls/register-components.tsx"],"sourcesContent":["'use client';\n\nimport type React from 'react';\nimport { Children, cloneElement, isValidElement } from 'react';\nimport type { FieldErrors, UseFormRegister } from 'react-hook-form';\n\ninterface TranslationMessage {\n key: string;\n bindings: Record<string, string>;\n fallback: string;\n}\n\nconst controllerDisplayNames = new Set([\n 'Form.Password',\n 'Form.Checkbox',\n 'Form.CheckboxGroup',\n 'Form.CheckboxTree',\n 'Form.RadioGroup',\n 'Form.Select',\n 'Form.Combobox',\n 'Form.Autocomplete',\n 'Form.DatePicker',\n 'Form.DateTimePicker',\n 'Form.Hidden',\n 'Form.FileInput',\n 'Form.FileInputMultiple',\n 'Form.Dropzone',\n 'Form.DropzoneS3',\n 'Form.FileInputS3',\n 'Form.FileInputMultipleS3',\n]);\n\nconst parseAndTranslate = (\n message: string | undefined,\n fieldName: string,\n t?: (\n key: string,\n bindings?: Record<string, string>,\n fallback?: string,\n ) => string | React.ReactNode,\n): string | undefined => {\n if (!message) return undefined;\n\n try {\n const parsed: TranslationMessage = JSON.parse(message);\n const bindings = { ...parsed.bindings, attribute: fieldName };\n const result = t\n ? t(parsed.key, bindings, parsed.fallback)\n : parsed.fallback;\n return String(result).replace(/{attribute}/g, fieldName);\n } catch {\n return message.replace(/{attribute}/g, fieldName);\n }\n};\n\ninterface RegisteredFormChildrenProps {\n children: React.ReactNode;\n register: UseFormRegister<Record<string, unknown>>;\n componentTypes: React.ComponentType[];\n errors?: FieldErrors<Record<string, unknown>>;\n t?: (\n key: string,\n bindings?: Record<string, string>,\n fallback?: string,\n ) => string | React.ReactNode;\n}\n\nexport const RegisteredFormChildren = ({\n children,\n register,\n componentTypes,\n errors = {},\n t,\n}: RegisteredFormChildrenProps): React.ReactNode => {\n const processChildren = (nodes: React.ReactNode): React.ReactNode => {\n return Children.map(nodes, (child) => {\n if (!isValidElement(child)) {\n return child;\n }\n\n const childProps = child.props as {\n name?: string;\n children?: React.ReactNode;\n };\n\n if (\n componentTypes.some((type: React.ComponentType) => child.type === type)\n ) {\n const fieldName = childProps.name;\n const errorMessage = errors[fieldName ?? '']?.message?.toString();\n const translatedError = fieldName\n ? parseAndTranslate(errorMessage, fieldName, t)\n : undefined;\n const displayName = (\n child.type as React.ComponentType & { displayName?: string }\n ).displayName;\n const shouldRegister =\n fieldName !== undefined &&\n !controllerDisplayNames.has(displayName ?? '');\n const registrationProps =\n shouldRegister && fieldName ? register(fieldName) : {};\n\n return cloneElement(child, {\n ...registrationProps,\n error: translatedError,\n } as Partial<typeof child.props>);\n }\n\n if (childProps.children) {\n return cloneElement(child, {\n children: processChildren(childProps.children),\n } as Partial<typeof child.props>);\n }\n\n return child;\n });\n };\n\n return <>{processChildren(children)}</>;\n};\n"],"mappings":"0IAYA,MAAM,EAAyB,IAAI,IAAI,CACrC,gBACA,gBACA,qBACA,oBACA,kBACA,cACA,gBACA,oBACA,kBACA,sBACA,cACA,iBACA,yBACA,gBACA,kBACA,mBACA,2BACD,CAAC,CAEI,GACJ,EACA,EACA,IAKuB,CAClB,KAEL,GAAI,CACF,IAAM,EAA6B,KAAK,MAAM,EAAQ,CAChD,EAAW,CAAE,GAAG,EAAO,SAAU,UAAW,EAAW,CACvD,EAAS,EACX,EAAE,EAAO,IAAK,EAAU,EAAO,SAAS,CACxC,EAAO,SACX,OAAO,OAAO,EAAO,CAAC,QAAQ,eAAgB,EAAU,MAClD,CACN,OAAO,EAAQ,QAAQ,eAAgB,EAAU,GAgBxC,GAA0B,CACrC,WACA,WACA,iBACA,SAAS,EAAE,CACX,OACkD,CAClD,IAAM,EAAmB,GAChB,EAAS,IAAI,EAAQ,GAAU,CACpC,GAAI,CAAC,EAAe,EAAM,CACxB,OAAO,EAGT,IAAM,EAAa,EAAM,MAKzB,GACE,EAAe,KAAM,GAA8B,EAAM,OAAS,EAAK,CACvE,CACA,IAAM,EAAY,EAAW,KACvB,EAAe,EAAO,GAAa,KAAK,SAAS,UAAU,CAC3D,EAAkB,EACpB,EAAkB,EAAc,EAAW,EAAE,CAC7C,IAAA,GACE,EACJ,EAAM,KACN,YAOF,OAAO,EAAa,EAAO,CACzB,GANA,IAAc,IAAA,IACd,CAAC,EAAuB,IAAI,GAAe,GAAG,EAE5B,EAAY,EAAS,EAAU,CAAG,EAAE,CAItD,MAAO,EACR,CAAgC,CASnC,OANI,EAAW,SACN,EAAa,EAAO,CACzB,SAAU,EAAgB,EAAW,SAAS,CAC/C,CAAgC,CAG5B,GACP,CAGJ,OAAO,EAAA,EAAA,CAAA,SAAG,EAAgB,EAAS,CAAI,CAAA"}
@@ -1,2 +1,2 @@
1
- import{findFormComponents as e}from"../controls/find-form-components.mjs";import{PASSWORD_RULES as t}from"./password-rules.mjs";import n from"./password.mjs";import{parseRules as r}from"./zod.mjs";import{z as i}from"zod";const a=(e,t)=>{if(!e.name||!e.$rule?.includes(`confirmed`))return;let n=e.$rule.split(`|`).find(e=>e.startsWith(`confirmed`)),r=n?.includes(`:`)?n.split(`:`)[1]:`${e.name}_confirmation`;t.confirmedFields.push({field:e.name,target:r})},o=(e,t)=>{e.name&&(e.$rule?.includes(`required`)?(t.rules[e.name]=i.boolean().optional().or(i.literal(!1)),t.requiredBooleanFields.push(e.name)):t.rules[e.name]=i.boolean().optional())},s=(e,t)=>{e.name&&(e.$rule?.includes(`required`)?t.rules[e.name]=i.any().refine(e=>Array.isArray(e)&&e.length>0,{message:f}):t.rules[e.name]=i.array(i.string()).optional())},c=(e,a)=>{if(!e.name)return;let o=i.string(),s=e.$rule?e.$rule.split(`|`).filter(e=>e.trim()!==`password`).join(`|`):``;s&&(o=r(s));let c=e.rules||(e.$rule?.includes(`password`)?t:[]);c.length>0&&(o=n(o,c));let l=!e.$rule||e.$rule.includes(`optional`)||s.includes(`optional`);a.rules[e.name]=l?o.optional():o},l=(e,t)=>{e.name&&(t.rules[e.name]=e.$rule?r(e.$rule):i.string().optional())},u=(e,t)=>{e.name&&(t.rules[e.name]=i.any().optional())},d=(e,t)=>{e.name&&(t.rules[e.name]=e.$rule?r(e.$rule):i.string().nullable().optional())},f=JSON.stringify({key:`required`,fallback:`El campo {attribute} es obligatorio.`,bindings:{}}),p=(e,t,n)=>{e.name&&(e.$rule?.includes(`required`)?t.rules[e.name]=n?i.any().refine(e=>Array.isArray(e)&&e.length>0,{message:f}):i.any().refine(e=>e instanceof File,{message:f}):t.rules[e.name]=i.any().optional())},m=(e,t)=>t.confirmedFields.length===0&&t.requiredBooleanFields.length===0?e:e.superRefine((e,n)=>{t.confirmedFields.forEach(({field:t,target:r})=>{e[t]!==e[r]&&n.addIssue({code:i.ZodIssueCode.custom,message:JSON.stringify({key:`confirmed`,fallback:`La confirmación no coincide.`,bindings:{}}),path:[r]})}),t.requiredBooleanFields.forEach(t=>{e[t]!==!0&&n.addIssue({code:i.ZodIssueCode.custom,message:JSON.stringify({key:`required`,fallback:`El campo {attribute} es obligatorio.`,bindings:{}}),path:[t]})})}),h=(t,n)=>{let r={rules:{},confirmedFields:[],requiredBooleanFields:[]};return e(t,n).forEach(e=>{let t=e.props,n=e.type.displayName;t.name&&(a(t,r),n===`Form.Checkbox`?o(t,r):n===`Form.CheckboxTree`?s(t,r):n===`Form.Password`?c(t,r):n===`Form.Select`||n===`Form.Combobox`||n===`Form.Autocomplete`?u(t,r):n===`Form.DatePicker`||n===`Form.DateTimePicker`?d(t,r):n===`Form.FileInput`?p(t,r,!1):n===`Form.FileInputMultiple`||n===`Form.Dropzone`||n===`Form.DropzoneS3`?p(t,r,!0):l(t,r))}),m(i.object(r.rules).loose(),r)};export{h as extractFormRules};
1
+ import{findFormComponents as e}from"../controls/find-form-components.mjs";import{PASSWORD_RULES as t}from"./password-rules.mjs";import n from"./password.mjs";import{parseRules as r}from"./zod.mjs";import{z as i}from"zod";const a=(e,t)=>{if(!e.name||!e.$rule?.includes(`confirmed`))return;let n=e.$rule.split(`|`).find(e=>e.startsWith(`confirmed`)),r=n?.includes(`:`)?n.split(`:`)[1]:`${e.name}_confirmation`;t.confirmedFields.push({field:e.name,target:r})},o=(e,t)=>{e.name&&(e.$rule?.includes(`required`)?(t.rules[e.name]=i.boolean().optional().or(i.literal(!1)),t.requiredBooleanFields.push(e.name)):t.rules[e.name]=i.boolean().optional())},s=(e,t)=>{e.name&&(e.$rule?.includes(`required`)?t.rules[e.name]=i.any().refine(e=>Array.isArray(e)&&e.length>0,{message:f}):t.rules[e.name]=i.array(i.string()).optional())},c=(e,a)=>{if(!e.name)return;let o=i.string(),s=e.$rule?e.$rule.split(`|`).filter(e=>e.trim()!==`password`).join(`|`):``;s&&(o=r(s));let c=e.rules||(e.$rule?.includes(`password`)?t:[]);c.length>0&&(o=n(o,c));let l=!e.$rule||e.$rule.includes(`optional`)||s.includes(`optional`);a.rules[e.name]=l?o.optional():o},l=(e,t)=>{e.name&&(t.rules[e.name]=e.$rule?r(e.$rule):i.string().optional())},u=(e,t)=>{e.name&&(t.rules[e.name]=i.any().optional())},d=(e,t)=>{e.name&&(t.rules[e.name]=e.$rule?r(e.$rule):i.string().nullable().optional())},f=JSON.stringify({key:`required`,fallback:`El campo {attribute} es obligatorio.`,bindings:{}}),p=(e,t,n)=>{e.name&&(e.$rule?.includes(`required`)?t.rules[e.name]=n?i.any().refine(e=>Array.isArray(e)&&e.length>0,{message:f}):i.any().refine(e=>e instanceof File,{message:f}):t.rules[e.name]=i.any().optional())},m=(e,t)=>t.confirmedFields.length===0&&t.requiredBooleanFields.length===0?e:e.superRefine((e,n)=>{t.confirmedFields.forEach(({field:t,target:r})=>{e[t]!==e[r]&&n.addIssue({code:i.ZodIssueCode.custom,message:JSON.stringify({key:`confirmed`,fallback:`La confirmación no coincide.`,bindings:{}}),path:[r]})}),t.requiredBooleanFields.forEach(t=>{e[t]!==!0&&n.addIssue({code:i.ZodIssueCode.custom,message:JSON.stringify({key:`required`,fallback:`El campo {attribute} es obligatorio.`,bindings:{}}),path:[t]})})}),h=(t,n)=>{let r={rules:{},confirmedFields:[],requiredBooleanFields:[]};return e(t,n).forEach(e=>{let t=e.props,n=e.type.displayName;t.name&&(a(t,r),n===`Form.Checkbox`?o(t,r):n===`Form.CheckboxTree`||n===`Form.CheckboxGroup`?s(t,r):n===`Form.Password`?c(t,r):n===`Form.Select`||n===`Form.Combobox`||n===`Form.Autocomplete`?u(t,r):n===`Form.DatePicker`||n===`Form.DateTimePicker`?d(t,r):n===`Form.FileInput`?p(t,r,!1):n===`Form.FileInputMultiple`||n===`Form.Dropzone`||n===`Form.DropzoneS3`?p(t,r,!0):l(t,r))}),m(i.object(r.rules).loose(),r)};export{h as extractFormRules};
2
2
  //# sourceMappingURL=extract-form-rules.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract-form-rules.mjs","names":["passwordRule"],"sources":["../../../../src/components/forms/rules/extract-form-rules.ts"],"sourcesContent":["import type React from 'react';\nimport type { FieldValues } from 'react-hook-form';\nimport { type ZodTypeAny, z } from 'zod';\n\nimport type { PasswordRuleDefinition } from '@/components/controls/password-input/usePasswordRules';\n\nimport { findFormComponents } from '../controls/find-form-components';\nimport passwordRule from './password';\nimport { PASSWORD_RULES } from './password-rules';\nimport { parseRules } from './zod';\n\ntype FormRuleContext = {\n rules: Record<string, ZodTypeAny>;\n confirmedFields: { field: string; target: string }[];\n requiredBooleanFields: string[];\n};\n\ntype ComponentProps = {\n name?: string;\n $rule?: string;\n rules?: PasswordRuleDefinition[];\n};\n\nconst processConfirmedRule = (\n props: ComponentProps,\n context: FormRuleContext,\n) => {\n if (!props.name || !props.$rule?.includes('confirmed')) return;\n\n const rulesList = props.$rule.split('|');\n const confirmedRule = rulesList.find((r) => r.startsWith('confirmed'));\n const target = confirmedRule?.includes(':')\n ? confirmedRule.split(':')[1]\n : `${props.name}_confirmation`;\n\n context.confirmedFields.push({ field: props.name, target });\n};\n\nconst processCheckbox = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n\n if (props.$rule?.includes('required')) {\n context.rules[props.name] = z.boolean().optional().or(z.literal(false));\n context.requiredBooleanFields.push(props.name);\n } else {\n context.rules[props.name] = z.boolean().optional();\n }\n};\n\nconst processCheckboxTree = (\n props: ComponentProps,\n context: FormRuleContext,\n) => {\n if (!props.name) return;\n\n if (props.$rule?.includes('required')) {\n context.rules[props.name] = z\n .any()\n .refine((val) => Array.isArray(val) && val.length > 0, {\n message: requiredMessage,\n });\n } else {\n context.rules[props.name] = z.array(z.string()).optional();\n }\n};\n\nconst processPassword = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n\n let baseSchema: ZodTypeAny = z.string();\n const otherRules = props.$rule\n ? props.$rule\n .split('|')\n .filter((r) => r.trim() !== 'password')\n .join('|')\n : '';\n\n if (otherRules) {\n baseSchema = parseRules(otherRules);\n }\n\n const passwordRules =\n props.rules || (props.$rule?.includes('password') ? PASSWORD_RULES : []);\n\n if (passwordRules.length > 0) {\n baseSchema = passwordRule(baseSchema, passwordRules);\n }\n\n const isOptional =\n !props.$rule ||\n props.$rule.includes('optional') ||\n otherRules.includes('optional');\n\n context.rules[props.name] = isOptional ? baseSchema.optional() : baseSchema;\n};\n\nconst processDefault = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n context.rules[props.name] = props.$rule\n ? parseRules(props.$rule)\n : z.string().optional();\n};\n\nconst processDropdown = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n context.rules[props.name] = z.any().optional();\n};\n\nconst processDatePicker = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n context.rules[props.name] = props.$rule\n ? parseRules(props.$rule)\n : z.string().nullable().optional();\n};\n\nconst requiredMessage = JSON.stringify({\n key: 'required',\n fallback: 'El campo {attribute} es obligatorio.',\n bindings: {},\n});\n\nconst processFileInput = (\n props: ComponentProps,\n context: FormRuleContext,\n multiple: boolean,\n) => {\n if (!props.name) return;\n\n if (props.$rule?.includes('required')) {\n context.rules[props.name] = multiple\n ? z.any().refine((val) => Array.isArray(val) && val.length > 0, {\n message: requiredMessage,\n })\n : z\n .any()\n .refine((val) => val instanceof File, { message: requiredMessage });\n } else {\n context.rules[props.name] = z.any().optional();\n }\n};\n\nconst applyRefinements = (\n schema: z.ZodObject<FieldValues>,\n context: FormRuleContext,\n) => {\n if (\n context.confirmedFields.length === 0 &&\n context.requiredBooleanFields.length === 0\n ) {\n return schema;\n }\n\n return schema.superRefine((data, ctx) => {\n context.confirmedFields.forEach(({ field, target }) => {\n if (data[field] !== data[target]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: JSON.stringify({\n key: 'confirmed',\n fallback: 'La confirmación no coincide.',\n bindings: {},\n }),\n path: [target],\n });\n }\n });\n\n context.requiredBooleanFields.forEach((field) => {\n if (data[field] !== true) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: JSON.stringify({\n key: 'required',\n fallback: 'El campo {attribute} es obligatorio.',\n bindings: {},\n }),\n path: [field],\n });\n }\n });\n });\n};\n\nexport const extractFormRules = (\n children: React.ReactNode,\n componentTypes: React.ComponentType[],\n): ZodTypeAny => {\n const context: FormRuleContext = {\n rules: {},\n confirmedFields: [],\n requiredBooleanFields: [],\n };\n\n const components = findFormComponents(children, componentTypes);\n\n components.forEach((component) => {\n const props = component.props as ComponentProps;\n const displayName = (component.type as { displayName?: string })\n .displayName;\n\n if (props.name) {\n processConfirmedRule(props, context);\n\n if (displayName === 'Form.Checkbox') {\n processCheckbox(props, context);\n } else if (displayName === 'Form.CheckboxTree') {\n processCheckboxTree(props, context);\n } else if (displayName === 'Form.Password') {\n processPassword(props, context);\n } else if (\n displayName === 'Form.Select' ||\n displayName === 'Form.Combobox' ||\n displayName === 'Form.Autocomplete'\n ) {\n processDropdown(props, context);\n } else if (\n displayName === 'Form.DatePicker' ||\n displayName === 'Form.DateTimePicker'\n ) {\n processDatePicker(props, context);\n } else if (displayName === 'Form.FileInput') {\n processFileInput(props, context, false);\n } else if (\n displayName === 'Form.FileInputMultiple' ||\n displayName === 'Form.Dropzone' ||\n displayName === 'Form.DropzoneS3'\n ) {\n processFileInput(props, context, true);\n } else {\n processDefault(props, context);\n }\n }\n });\n\n return applyRefinements(z.object(context.rules).loose(), context);\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"extract-form-rules.mjs","names":["passwordRule"],"sources":["../../../../src/components/forms/rules/extract-form-rules.ts"],"sourcesContent":["import type React from 'react';\nimport type { FieldValues } from 'react-hook-form';\nimport { type ZodTypeAny, z } from 'zod';\n\nimport type { PasswordRuleDefinition } from '@/components/controls/password-input/usePasswordRules';\n\nimport { findFormComponents } from '../controls/find-form-components';\nimport passwordRule from './password';\nimport { PASSWORD_RULES } from './password-rules';\nimport { parseRules } from './zod';\n\ntype FormRuleContext = {\n rules: Record<string, ZodTypeAny>;\n confirmedFields: { field: string; target: string }[];\n requiredBooleanFields: string[];\n};\n\ntype ComponentProps = {\n name?: string;\n $rule?: string;\n rules?: PasswordRuleDefinition[];\n};\n\nconst processConfirmedRule = (\n props: ComponentProps,\n context: FormRuleContext,\n) => {\n if (!props.name || !props.$rule?.includes('confirmed')) return;\n\n const rulesList = props.$rule.split('|');\n const confirmedRule = rulesList.find((r) => r.startsWith('confirmed'));\n const target = confirmedRule?.includes(':')\n ? confirmedRule.split(':')[1]\n : `${props.name}_confirmation`;\n\n context.confirmedFields.push({ field: props.name, target });\n};\n\nconst processCheckbox = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n\n if (props.$rule?.includes('required')) {\n context.rules[props.name] = z.boolean().optional().or(z.literal(false));\n context.requiredBooleanFields.push(props.name);\n } else {\n context.rules[props.name] = z.boolean().optional();\n }\n};\n\nconst processCheckboxTree = (\n props: ComponentProps,\n context: FormRuleContext,\n) => {\n if (!props.name) return;\n\n if (props.$rule?.includes('required')) {\n context.rules[props.name] = z\n .any()\n .refine((val) => Array.isArray(val) && val.length > 0, {\n message: requiredMessage,\n });\n } else {\n context.rules[props.name] = z.array(z.string()).optional();\n }\n};\n\nconst processPassword = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n\n let baseSchema: ZodTypeAny = z.string();\n const otherRules = props.$rule\n ? props.$rule\n .split('|')\n .filter((r) => r.trim() !== 'password')\n .join('|')\n : '';\n\n if (otherRules) {\n baseSchema = parseRules(otherRules);\n }\n\n const passwordRules =\n props.rules || (props.$rule?.includes('password') ? PASSWORD_RULES : []);\n\n if (passwordRules.length > 0) {\n baseSchema = passwordRule(baseSchema, passwordRules);\n }\n\n const isOptional =\n !props.$rule ||\n props.$rule.includes('optional') ||\n otherRules.includes('optional');\n\n context.rules[props.name] = isOptional ? baseSchema.optional() : baseSchema;\n};\n\nconst processDefault = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n context.rules[props.name] = props.$rule\n ? parseRules(props.$rule)\n : z.string().optional();\n};\n\nconst processDropdown = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n context.rules[props.name] = z.any().optional();\n};\n\nconst processDatePicker = (props: ComponentProps, context: FormRuleContext) => {\n if (!props.name) return;\n context.rules[props.name] = props.$rule\n ? parseRules(props.$rule)\n : z.string().nullable().optional();\n};\n\nconst requiredMessage = JSON.stringify({\n key: 'required',\n fallback: 'El campo {attribute} es obligatorio.',\n bindings: {},\n});\n\nconst processFileInput = (\n props: ComponentProps,\n context: FormRuleContext,\n multiple: boolean,\n) => {\n if (!props.name) return;\n\n if (props.$rule?.includes('required')) {\n context.rules[props.name] = multiple\n ? z.any().refine((val) => Array.isArray(val) && val.length > 0, {\n message: requiredMessage,\n })\n : z\n .any()\n .refine((val) => val instanceof File, { message: requiredMessage });\n } else {\n context.rules[props.name] = z.any().optional();\n }\n};\n\nconst applyRefinements = (\n schema: z.ZodObject<FieldValues>,\n context: FormRuleContext,\n) => {\n if (\n context.confirmedFields.length === 0 &&\n context.requiredBooleanFields.length === 0\n ) {\n return schema;\n }\n\n return schema.superRefine((data, ctx) => {\n context.confirmedFields.forEach(({ field, target }) => {\n if (data[field] !== data[target]) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: JSON.stringify({\n key: 'confirmed',\n fallback: 'La confirmación no coincide.',\n bindings: {},\n }),\n path: [target],\n });\n }\n });\n\n context.requiredBooleanFields.forEach((field) => {\n if (data[field] !== true) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: JSON.stringify({\n key: 'required',\n fallback: 'El campo {attribute} es obligatorio.',\n bindings: {},\n }),\n path: [field],\n });\n }\n });\n });\n};\n\nexport const extractFormRules = (\n children: React.ReactNode,\n componentTypes: React.ComponentType[],\n): ZodTypeAny => {\n const context: FormRuleContext = {\n rules: {},\n confirmedFields: [],\n requiredBooleanFields: [],\n };\n\n const components = findFormComponents(children, componentTypes);\n\n components.forEach((component) => {\n const props = component.props as ComponentProps;\n const displayName = (component.type as { displayName?: string })\n .displayName;\n\n if (props.name) {\n processConfirmedRule(props, context);\n\n if (displayName === 'Form.Checkbox') {\n processCheckbox(props, context);\n } else if (\n displayName === 'Form.CheckboxTree' ||\n displayName === 'Form.CheckboxGroup'\n ) {\n processCheckboxTree(props, context);\n } else if (displayName === 'Form.Password') {\n processPassword(props, context);\n } else if (\n displayName === 'Form.Select' ||\n displayName === 'Form.Combobox' ||\n displayName === 'Form.Autocomplete'\n ) {\n processDropdown(props, context);\n } else if (\n displayName === 'Form.DatePicker' ||\n displayName === 'Form.DateTimePicker'\n ) {\n processDatePicker(props, context);\n } else if (displayName === 'Form.FileInput') {\n processFileInput(props, context, false);\n } else if (\n displayName === 'Form.FileInputMultiple' ||\n displayName === 'Form.Dropzone' ||\n displayName === 'Form.DropzoneS3'\n ) {\n processFileInput(props, context, true);\n } else {\n processDefault(props, context);\n }\n }\n });\n\n return applyRefinements(z.object(context.rules).loose(), context);\n};\n"],"mappings":"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"}
@@ -53,6 +53,7 @@ import { AvatarUpload, AvatarUploadProps } from "./controls/avatar-upload/Avatar
53
53
  import { Checkbox, CheckboxProps } from "./controls/checkbox/Checkbox.mjs";
54
54
  import { CheckboxTree, CheckboxTreeItem, CheckboxTreeProps } from "./controls/checkbox-tree/CheckboxTree.mjs";
55
55
  import { DatePicker, DatePickerClassNames, DatePickerDate, DatePickerProps, DatePickerValue } from "./controls/date-picker/DatePicker.mjs";
56
+ import { YearPicker, YearPickerClassNames, YearPickerDate, YearPickerProps, YearPickerValue } from "./controls/date-picker/YearPicker.mjs";
56
57
  import { DateTimePicker, DateTimePickerClassNames, DateTimePickerDate, DateTimePickerProps, DateTimePickerValue } from "./controls/date-time-picker/DateTimePicker.mjs";
57
58
  import { HorizontalDivider, HorizontalDividerProps } from "./misc/horizontal-divider/HorizontalDivider.mjs";
58
59
  import { NoSsr } from "./misc/no-ssr/NoSsr.mjs";
package/dist/index.d.mts CHANGED
@@ -53,6 +53,7 @@ import { AvatarUpload, AvatarUploadProps } from "./components/controls/avatar-up
53
53
  import { Checkbox, CheckboxProps } from "./components/controls/checkbox/Checkbox.mjs";
54
54
  import { CheckboxTree, CheckboxTreeItem, CheckboxTreeProps } from "./components/controls/checkbox-tree/CheckboxTree.mjs";
55
55
  import { DatePicker, DatePickerClassNames, DatePickerDate, DatePickerProps, DatePickerValue } from "./components/controls/date-picker/DatePicker.mjs";
56
+ import { YearPicker, YearPickerClassNames, YearPickerDate, YearPickerProps, YearPickerValue } from "./components/controls/date-picker/YearPicker.mjs";
56
57
  import { DateTimePicker, DateTimePickerClassNames, DateTimePickerDate, DateTimePickerProps, DateTimePickerValue } from "./components/controls/date-time-picker/DateTimePicker.mjs";
57
58
  import { HorizontalDivider, HorizontalDividerProps } from "./components/misc/horizontal-divider/HorizontalDivider.mjs";
58
59
  import { NoSsr } from "./components/misc/no-ssr/NoSsr.mjs";
@@ -105,4 +106,4 @@ import { Modals } from "./components/overlays/modal/index.mjs";
105
106
  import { Toast, ToastIntent, ToastOptions, ToastProviderProps } from "./components/overlays/toast/Toast.mjs";
106
107
  import { Tooltip, TooltipProps } from "./components/overlays/tooltip/Tooltip.mjs";
107
108
  import { MageUiProvider, MageUiProviderProps } from "./providers/MageUiProvider.mjs";
108
- export { Autocomplete, AutocompleteProps, Avatar, AvatarDropzone, AvatarDropzoneProps, AvatarDropzoneS3, AvatarDropzoneS3Props, AvatarProps, AvatarUpload, AvatarUploadProps, Badge, BadgeProps, Breadcrumbs, BreadcrumbsBarProps, BreadcrumbsProps, Button, ButtonAction, ButtonActionProps, ButtonIcon, ButtonIconProps, ButtonIconVisual, ButtonIconVisualProps, ButtonLoader, ButtonProps, ButtonVisual, ButtonVisualProps, Calendar, CalendarEvent, CalendarProps, CalendarView, Card, CardBase, CardBody, CardClassNames, CardFooter, CardHeader, CardProps, CardRoot, Checkbox, CheckboxProps, CheckboxTree, CheckboxTreeItem, CheckboxTreeProps, ColumnDef, Combobox, ComboboxProps, DEFAULT_DATA_TABLE_LABELS, DataTable, DataTableBottomSlot, DataTableBottomSlotProps, DataTableClassNames, DataTableColumnMeta, DataTableContextProvider, DataTableContextValue, DataTableExpansionConfig, DataTableExtraColumnConfig, DataTableFeedback, DataTableFiltersConfig, DataTableLabels, DataTablePageSize, DataTablePageSizeProps, DataTablePagination, DataTablePaginationConfig, DataTablePaginationProps, DataTableProps, DataTableRecord, DataTableSearchConfig, DataTableSelectionConfig, DataTableSortingConfig, DataTableTableConfig, DataTableTopSlot, DataTableTopSlotProps, DateLocalizer, DatePicker, DatePickerClassNames, DatePickerDate, DatePickerProps, DatePickerValue, DateTimePicker, DateTimePickerClassNames, DateTimePickerDate, DateTimePickerProps, DateTimePickerValue, DescriptionList, DescriptionListClassNames, DescriptionListItemProps, DescriptionListProps, Details, DetailsProps, DocumentItem, DocumentItemProps, Dropzone, DropzoneProps, DropzoneS3, DropzoneS3Props, DropzoneS3Texts, ExpandedState, Fieldset, FieldsetProps, FileData, FileIcon, FileIconProps, FileInput, FileInputMultiple, FileInputMultipleProps, FileInputMultipleS3, FileInputMultipleS3Handle, FileInputMultipleS3Props, FileInputProps, FileInputS3, FileInputS3Handle, FileInputS3Props, FileMetadata, FluidGrid, FluidGridProps, Form, FormDropzoneS3Props, FormProps, FormS3Context, FormS3ContextValue, Grid, GridClassNames, HorizontalDivider, HorizontalDividerProps, Icon, IconProps, IconRaw, IconRawProps, IconSvg, IconSvgProps, IconWrapped, IconWrappedProps, Indicator, IndicatorProps, LoaderDot, LoaderDotProps, LoaderOval, LoaderOvalProps, LogoImage, LogoImageProps, LogoSvg, LogoSvgProps, MageUiProvider, MageUiProviderProps, Menu, MenuProps, Modal, ModalClassNames, ModalIntent, ModalProps, ModalRegistry, ModalRegistryEntry, ModalRootProps, Modals, MultiForm, MultiFormContext, MultiFormContextValue, MultiFormProps, MultiFormStep, MultiFormStepProps, MultiStepFormProps, NavigationMenu, NavigationMenuProps, NoSsr, NotificationBanner, NotificationBannerIntent, NotificationBannerProps, PASSWORD_RULES, Pagination, PaginationClassNames, PaginationRootProps, PaginationState, PasswordInput, PasswordInputProps, PasswordRule, PasswordRuleDefinition, PasswordSegment, PasswordStrengthInput, PasswordStrengthInputProps, Progress, ProgressClassNames, ProgressProps, Radio, RadioProps, RemovableItem, RemovableItemProps, RequestResponse, ResourceItem, ResourceItemProps, RowSelectionState, S3FileMeta, S3InitBody, S3InitResponse, S3UploadCallback, Schema, SchemaProps, ScrollArea, ScrollAreaAutosize, ScrollAreaAutosizeProps, ScrollAreaClassNames, ScrollAreaProps, Select, SelectProps, Sidebar, SidebarClassNames, SidebarProps, SortingState, Stepper, StepperClassNames, StepperProps, StepperStepProps, Switch, SwitchGroup, SwitchGroupProps, SwitchProps, Table, TableBodyProps, TableCaptionProps, TableCellProps, TableClassNames, TableFootProps, TableHeadProps, TableHeaderCellProps, TableProps, TableRowProps, Tag, TagGroup, TagGroupProps, TagProps, TextInput, TextInputProps, Textarea, TextareaProps, Toast, ToastIntent, ToastOptions, ToastProviderProps, Tooltip, TooltipProps, UploadTarget, UploadedFile, UploadedFileDetails, UploadedFileDetailsProps, UploadedFileProps, UploadedFiles, UploadedFilesClassNames, UploadedFilesItemClassNames, UploadedFilesItemProps, UploadedFilesProps, UploadedS3File, UploadingFiles, UploadingFilesClassNames, UploadingFilesItemClassNames, UploadingFilesItemErrorClassNames, UploadingFilesItemErrorProps, UploadingFilesItemProps, UploadingFilesProps, Virtual, VirtualItem, VirtualPadding, VirtualProps, VisuallyHidden, VisuallyHiddenProps, getFileExtension, useDataTableContext, useFormS3Context, useMultiFormContext, usePasswordRules, z };
109
+ export { Autocomplete, AutocompleteProps, Avatar, AvatarDropzone, AvatarDropzoneProps, AvatarDropzoneS3, AvatarDropzoneS3Props, AvatarProps, AvatarUpload, AvatarUploadProps, Badge, BadgeProps, Breadcrumbs, BreadcrumbsBarProps, BreadcrumbsProps, Button, ButtonAction, ButtonActionProps, ButtonIcon, ButtonIconProps, ButtonIconVisual, ButtonIconVisualProps, ButtonLoader, ButtonProps, ButtonVisual, ButtonVisualProps, Calendar, CalendarEvent, CalendarProps, CalendarView, Card, CardBase, CardBody, CardClassNames, CardFooter, CardHeader, CardProps, CardRoot, Checkbox, CheckboxProps, CheckboxTree, CheckboxTreeItem, CheckboxTreeProps, ColumnDef, Combobox, ComboboxProps, DEFAULT_DATA_TABLE_LABELS, DataTable, DataTableBottomSlot, DataTableBottomSlotProps, DataTableClassNames, DataTableColumnMeta, DataTableContextProvider, DataTableContextValue, DataTableExpansionConfig, DataTableExtraColumnConfig, DataTableFeedback, DataTableFiltersConfig, DataTableLabels, DataTablePageSize, DataTablePageSizeProps, DataTablePagination, DataTablePaginationConfig, DataTablePaginationProps, DataTableProps, DataTableRecord, DataTableSearchConfig, DataTableSelectionConfig, DataTableSortingConfig, DataTableTableConfig, DataTableTopSlot, DataTableTopSlotProps, DateLocalizer, DatePicker, DatePickerClassNames, DatePickerDate, DatePickerProps, DatePickerValue, DateTimePicker, DateTimePickerClassNames, DateTimePickerDate, DateTimePickerProps, DateTimePickerValue, DescriptionList, DescriptionListClassNames, DescriptionListItemProps, DescriptionListProps, Details, DetailsProps, DocumentItem, DocumentItemProps, Dropzone, DropzoneProps, DropzoneS3, DropzoneS3Props, DropzoneS3Texts, ExpandedState, Fieldset, FieldsetProps, FileData, FileIcon, FileIconProps, FileInput, FileInputMultiple, FileInputMultipleProps, FileInputMultipleS3, FileInputMultipleS3Handle, FileInputMultipleS3Props, FileInputProps, FileInputS3, FileInputS3Handle, FileInputS3Props, FileMetadata, FluidGrid, FluidGridProps, Form, FormDropzoneS3Props, FormProps, FormS3Context, FormS3ContextValue, Grid, GridClassNames, HorizontalDivider, HorizontalDividerProps, Icon, IconProps, IconRaw, IconRawProps, IconSvg, IconSvgProps, IconWrapped, IconWrappedProps, Indicator, IndicatorProps, LoaderDot, LoaderDotProps, LoaderOval, LoaderOvalProps, LogoImage, LogoImageProps, LogoSvg, LogoSvgProps, MageUiProvider, MageUiProviderProps, Menu, MenuProps, Modal, ModalClassNames, ModalIntent, ModalProps, ModalRegistry, ModalRegistryEntry, ModalRootProps, Modals, MultiForm, MultiFormContext, MultiFormContextValue, MultiFormProps, MultiFormStep, MultiFormStepProps, MultiStepFormProps, NavigationMenu, NavigationMenuProps, NoSsr, NotificationBanner, NotificationBannerIntent, NotificationBannerProps, PASSWORD_RULES, Pagination, PaginationClassNames, PaginationRootProps, PaginationState, PasswordInput, PasswordInputProps, PasswordRule, PasswordRuleDefinition, PasswordSegment, PasswordStrengthInput, PasswordStrengthInputProps, Progress, ProgressClassNames, ProgressProps, Radio, RadioProps, RemovableItem, RemovableItemProps, RequestResponse, ResourceItem, ResourceItemProps, RowSelectionState, S3FileMeta, S3InitBody, S3InitResponse, S3UploadCallback, Schema, SchemaProps, ScrollArea, ScrollAreaAutosize, ScrollAreaAutosizeProps, ScrollAreaClassNames, ScrollAreaProps, Select, SelectProps, Sidebar, SidebarClassNames, SidebarProps, SortingState, Stepper, StepperClassNames, StepperProps, StepperStepProps, Switch, SwitchGroup, SwitchGroupProps, SwitchProps, Table, TableBodyProps, TableCaptionProps, TableCellProps, TableClassNames, TableFootProps, TableHeadProps, TableHeaderCellProps, TableProps, TableRowProps, Tag, TagGroup, TagGroupProps, TagProps, TextInput, TextInputProps, Textarea, TextareaProps, Toast, ToastIntent, ToastOptions, ToastProviderProps, Tooltip, TooltipProps, UploadTarget, UploadedFile, UploadedFileDetails, UploadedFileDetailsProps, UploadedFileProps, UploadedFiles, UploadedFilesClassNames, UploadedFilesItemClassNames, UploadedFilesItemProps, UploadedFilesProps, UploadedS3File, UploadingFiles, UploadingFilesClassNames, UploadingFilesItemClassNames, UploadingFilesItemErrorClassNames, UploadingFilesItemErrorProps, UploadingFilesItemProps, UploadingFilesProps, Virtual, VirtualItem, VirtualPadding, VirtualProps, VisuallyHidden, VisuallyHiddenProps, YearPicker, YearPickerClassNames, YearPickerDate, YearPickerProps, YearPickerValue, getFileExtension, useDataTableContext, useFormS3Context, useMultiFormContext, usePasswordRules, z };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{Button as e}from"./components/buttons/button/Button.mjs";import{VisuallyHidden as t}from"./components/misc/visually-hidden/VisuallyHidden.mjs";import{ButtonAction as n}from"./components/buttons/button-action/ButtonAction.mjs";import{ButtonLoader as r}from"./components/buttons/button-action/ButtonLoader.mjs";import{Avatar as i}from"./components/data-display/avatar/Avatar.mjs";import{Badge as a}from"./components/data-display/badge/Badge.mjs";import{Tooltip as o}from"./components/overlays/tooltip/Tooltip.mjs";import{Calendar as s}from"./components/data-display/calendar/Calendar.mjs";import{Virtual as c}from"./components/misc/virtual/Virtual.mjs";import{ScrollArea as l}from"./components/misc/scroll-area/ScrollArea.mjs";import{Table as u}from"./components/data-display/table/Table.mjs";import{IconRaw as d}from"./components/data-display/icons/icon-raw/IconRaw.mjs";import{Icon as f}from"./components/data-display/icons/icon/Icon.mjs";import{DEFAULT_DATA_TABLE_LABELS as p,DataTableContextProvider as m,useDataTableContext as h}from"./components/data-display/datatables/useDataTableContext.mjs";import{Checkbox as g}from"./components/controls/checkbox/Checkbox.mjs";import{DataTable as _}from"./components/data-display/datatables/DataTable.mjs";import{HorizontalDivider as v}from"./components/misc/horizontal-divider/HorizontalDivider.mjs";import{NoSsr as y}from"./components/misc/no-ssr/NoSsr.mjs";import{ScrollAreaAutosize as b}from"./components/misc/scroll-area-autosize/ScrollAreaAutosize.mjs";import{TextInput as x}from"./components/controls/text-input/TextInput.mjs";import{IconWrapped as S}from"./components/data-display/icons/icon-wrapped/IconWrapped.mjs";import{Select as C}from"./components/controls/dropdown/select/Select.mjs";import{DataTablePageSize as w}from"./components/data-display/datatables/DataTablePageSize.mjs";import{Pagination as T}from"./components/navigations/pagination/Pagination.mjs";import{DataTablePagination as E}from"./components/data-display/datatables/DataTablePagination.mjs";import{DataTableBottomSlot as D}from"./components/data-display/datatables/DataTableBottomSlot.mjs";import{DataTableFeedback as O}from"./components/data-display/datatables/DataTableFeedback.mjs";import{DataTableTopSlot as k}from"./components/data-display/datatables/DataTableTopSlot.mjs";import{DescriptionList as A}from"./components/data-display/description-list/DescriptionList.mjs";import{Details as j}from"./components/data-display/details/Details.mjs";import{FileIcon as M}from"./components/data-display/file-icon/FileIcon.mjs";import{ResourceItem as N}from"./components/data-display/resource-item/ResourceItem.mjs";import{DocumentItem as P}from"./components/data-display/document-item/DocumentItem.mjs";import{IconSvg as F}from"./components/data-display/icons/icon-svg/IconSvg.mjs";import{Indicator as I}from"./components/data-display/indicator/Indicator.mjs";import{LoaderDot as L}from"./components/data-display/loader-dot/LoaderDot.mjs";import{LoaderOval as R}from"./components/data-display/loader-oval/LoaderOval.mjs";import{LogoImage as z}from"./components/data-display/logos/logo-image/LogoImage.mjs";import{LogoSvg as B}from"./components/data-display/logos/logo-svg/LogoSvg.mjs";import{NotificationBanner as V}from"./components/data-display/notification-banner/NotificationBanner.mjs";import{Progress as H}from"./components/data-display/progress/Progress.mjs";import{RemovableItem as U}from"./components/data-display/removable-item/RemovableItem.mjs";import{TagGroup as W}from"./components/data-display/tag-group/TagGroup.mjs";import{Tag as G}from"./components/data-display/tag/Tag.mjs";import{UploadedFile as K}from"./components/data-display/uploaded-file/UploadedFile.mjs";import{UploadedFileDetails as q}from"./components/data-display/uploaded-file/UploadedFileDetails.mjs";import{UploadedFiles as J}from"./components/data-display/uploaded-files/UploadedFiles.mjs";import{UploadingFiles as Y}from"./components/data-display/uploading-files/UploadingFiles.mjs";import{ButtonIcon as X}from"./components/buttons/button-icon/ButtonIcon.mjs";import{ButtonIconVisual as Z}from"./components/buttons/button-icon-visual/ButtonIconVisual.mjs";import{ButtonVisual as Q}from"./components/buttons/button-visual/ButtonVisual.mjs";import{Modal as $}from"./components/overlays/modal/Modal.mjs";import{Modals as ee}from"./components/overlays/modal/index.mjs";import{Toast as te}from"./components/overlays/toast/Toast.mjs";import{AvatarUpload as ne}from"./components/controls/avatar-upload/AvatarUpload.mjs";import{CheckboxTree as re}from"./components/controls/checkbox-tree/CheckboxTree.mjs";import{DatePicker as ie}from"./components/controls/date-picker/DatePicker.mjs";import{DateTimePicker as ae}from"./components/controls/date-time-picker/DateTimePicker.mjs";import{Autocomplete as oe}from"./components/controls/dropdown/autocomplete/Autocomplete.mjs";import{Combobox as se}from"./components/controls/dropdown/combobox/Combobox.mjs";import{AvatarDropzone as ce}from"./components/controls/dropzone/avatar/AvatarDropzone.mjs";import{getFileExtension as le}from"./components/controls/dropzone/use-s3-upload.mjs";import{AvatarDropzoneS3 as ue}from"./components/controls/dropzone/avatar/AvatarDropzoneS3.mjs";import{Dropzone as de}from"./components/controls/dropzone/Dropzone.mjs";import{DropzoneS3 as fe}from"./components/controls/dropzone/DropzoneS3.mjs";import{FileInput as pe}from"./components/controls/file-input/FileInput.mjs";import{FileInputMultiple as me}from"./components/controls/file-input/FileInputMultiple.mjs";import{FileInputMultipleS3 as he}from"./components/controls/file-input/FileInputMultipleS3.mjs";import{FileInputS3 as ge}from"./components/controls/file-input/FileInputS3.mjs";import{PasswordInput as _e}from"./components/controls/password-input/PasswordInput.mjs";import{PasswordStrengthInput as ve}from"./components/controls/password-input/PasswordStrengthInput.mjs";import{usePasswordRules as ye}from"./components/controls/password-input/usePasswordRules.mjs";import{Radio as be}from"./components/controls/radio/Radio.mjs";import{SwitchGroup as xe}from"./components/controls/switch-group/SwitchGroup.mjs";import{Switch as Se}from"./components/controls/switch/Switch.mjs";import{Textarea as Ce}from"./components/controls/textarea/Textarea.mjs";import{FormS3Context as we,useFormS3Context as Te}from"./components/forms/FormS3Context.mjs";import{PASSWORD_RULES as Ee}from"./components/forms/rules/password-rules.mjs";import{z as De}from"./components/forms/rules/zod.mjs";import{Form as Oe}from"./components/forms/Form.mjs";import{Fieldset as ke}from"./components/forms/layout/Fieldset.mjs";import{Stepper as Ae}from"./components/navigations/stepper/Stepper.mjs";import{MultiFormContext as je,useMultiFormContext as Me}from"./components/forms/multi-step/MultiFormContext.mjs";import{Schema as Ne}from"./components/forms/multi-step/parser/Schema.mjs";import{MultiForm as Pe,MultiFormStep as Fe}from"./components/forms/multi-step/MultiForm.mjs";import{Card as Ie,CardBase as Le,CardBody as Re,CardFooter as ze,CardHeader as Be,CardRoot as Ve}from"./components/layouts/card/Card.mjs";import{FluidGrid as He}from"./components/layouts/fluid-grid/FluidGrid.mjs";import{Grid as Ue}from"./components/layouts/grid/Grid.mjs";import{Breadcrumbs as We}from"./components/navigations/breadcrumbs/Breadcrumbs.mjs";import{Menu as Ge}from"./components/navigations/menu/Menu.mjs";import{NavigationMenu as Ke}from"./components/navigations/navigation-menu/NavigationMenu.mjs";import{Sidebar as qe}from"./components/navigations/sidebars/sidebar/Sidebar.mjs";import{MageUiProvider as Je}from"./providers/MageUiProvider.mjs";export{oe as Autocomplete,i as Avatar,ce as AvatarDropzone,ue as AvatarDropzoneS3,ne as AvatarUpload,a as Badge,We as Breadcrumbs,e as Button,n as ButtonAction,X as ButtonIcon,Z as ButtonIconVisual,r as ButtonLoader,Q as ButtonVisual,s as Calendar,Ie as Card,Le as CardBase,Re as CardBody,ze as CardFooter,Be as CardHeader,Ve as CardRoot,g as Checkbox,re as CheckboxTree,se as Combobox,p as DEFAULT_DATA_TABLE_LABELS,_ as DataTable,D as DataTableBottomSlot,m as DataTableContextProvider,O as DataTableFeedback,w as DataTablePageSize,E as DataTablePagination,k as DataTableTopSlot,ie as DatePicker,ae as DateTimePicker,A as DescriptionList,j as Details,P as DocumentItem,de as Dropzone,fe as DropzoneS3,ke as Fieldset,M as FileIcon,pe as FileInput,me as FileInputMultiple,he as FileInputMultipleS3,ge as FileInputS3,He as FluidGrid,Oe as Form,we as FormS3Context,Ue as Grid,v as HorizontalDivider,f as Icon,d as IconRaw,F as IconSvg,S as IconWrapped,I as Indicator,L as LoaderDot,R as LoaderOval,z as LogoImage,B as LogoSvg,Je as MageUiProvider,Ge as Menu,$ as Modal,ee as Modals,Pe as MultiForm,je as MultiFormContext,Fe as MultiFormStep,Ke as NavigationMenu,y as NoSsr,V as NotificationBanner,Ee as PASSWORD_RULES,T as Pagination,_e as PasswordInput,ve as PasswordStrengthInput,H as Progress,be as Radio,U as RemovableItem,N as ResourceItem,Ne as Schema,l as ScrollArea,b as ScrollAreaAutosize,C as Select,qe as Sidebar,Ae as Stepper,Se as Switch,xe as SwitchGroup,u as Table,G as Tag,W as TagGroup,x as TextInput,Ce as Textarea,te as Toast,o as Tooltip,K as UploadedFile,q as UploadedFileDetails,J as UploadedFiles,Y as UploadingFiles,c as Virtual,t as VisuallyHidden,le as getFileExtension,h as useDataTableContext,Te as useFormS3Context,Me as useMultiFormContext,ye as usePasswordRules,De as z};
1
+ import{Button as e}from"./components/buttons/button/Button.mjs";import{VisuallyHidden as t}from"./components/misc/visually-hidden/VisuallyHidden.mjs";import{ButtonAction as n}from"./components/buttons/button-action/ButtonAction.mjs";import{ButtonLoader as r}from"./components/buttons/button-action/ButtonLoader.mjs";import{Avatar as i}from"./components/data-display/avatar/Avatar.mjs";import{Badge as a}from"./components/data-display/badge/Badge.mjs";import{Tooltip as o}from"./components/overlays/tooltip/Tooltip.mjs";import{Calendar as s}from"./components/data-display/calendar/Calendar.mjs";import{Virtual as c}from"./components/misc/virtual/Virtual.mjs";import{ScrollArea as l}from"./components/misc/scroll-area/ScrollArea.mjs";import{Table as u}from"./components/data-display/table/Table.mjs";import{IconRaw as d}from"./components/data-display/icons/icon-raw/IconRaw.mjs";import{Icon as f}from"./components/data-display/icons/icon/Icon.mjs";import{DEFAULT_DATA_TABLE_LABELS as p,DataTableContextProvider as m,useDataTableContext as h}from"./components/data-display/datatables/useDataTableContext.mjs";import{Checkbox as g}from"./components/controls/checkbox/Checkbox.mjs";import{DataTable as _}from"./components/data-display/datatables/DataTable.mjs";import{HorizontalDivider as v}from"./components/misc/horizontal-divider/HorizontalDivider.mjs";import{NoSsr as y}from"./components/misc/no-ssr/NoSsr.mjs";import{ScrollAreaAutosize as b}from"./components/misc/scroll-area-autosize/ScrollAreaAutosize.mjs";import{TextInput as x}from"./components/controls/text-input/TextInput.mjs";import{IconWrapped as S}from"./components/data-display/icons/icon-wrapped/IconWrapped.mjs";import{Select as C}from"./components/controls/dropdown/select/Select.mjs";import{DataTablePageSize as w}from"./components/data-display/datatables/DataTablePageSize.mjs";import{Pagination as T}from"./components/navigations/pagination/Pagination.mjs";import{DataTablePagination as E}from"./components/data-display/datatables/DataTablePagination.mjs";import{DataTableBottomSlot as D}from"./components/data-display/datatables/DataTableBottomSlot.mjs";import{DataTableFeedback as O}from"./components/data-display/datatables/DataTableFeedback.mjs";import{DataTableTopSlot as k}from"./components/data-display/datatables/DataTableTopSlot.mjs";import{DescriptionList as A}from"./components/data-display/description-list/DescriptionList.mjs";import{Details as j}from"./components/data-display/details/Details.mjs";import{FileIcon as M}from"./components/data-display/file-icon/FileIcon.mjs";import{ResourceItem as N}from"./components/data-display/resource-item/ResourceItem.mjs";import{DocumentItem as P}from"./components/data-display/document-item/DocumentItem.mjs";import{IconSvg as F}from"./components/data-display/icons/icon-svg/IconSvg.mjs";import{Indicator as I}from"./components/data-display/indicator/Indicator.mjs";import{LoaderDot as L}from"./components/data-display/loader-dot/LoaderDot.mjs";import{LoaderOval as R}from"./components/data-display/loader-oval/LoaderOval.mjs";import{LogoImage as z}from"./components/data-display/logos/logo-image/LogoImage.mjs";import{LogoSvg as B}from"./components/data-display/logos/logo-svg/LogoSvg.mjs";import{NotificationBanner as V}from"./components/data-display/notification-banner/NotificationBanner.mjs";import{Progress as H}from"./components/data-display/progress/Progress.mjs";import{RemovableItem as U}from"./components/data-display/removable-item/RemovableItem.mjs";import{TagGroup as W}from"./components/data-display/tag-group/TagGroup.mjs";import{Tag as G}from"./components/data-display/tag/Tag.mjs";import{UploadedFile as K}from"./components/data-display/uploaded-file/UploadedFile.mjs";import{UploadedFileDetails as q}from"./components/data-display/uploaded-file/UploadedFileDetails.mjs";import{UploadedFiles as J}from"./components/data-display/uploaded-files/UploadedFiles.mjs";import{UploadingFiles as Y}from"./components/data-display/uploading-files/UploadingFiles.mjs";import{ButtonIcon as X}from"./components/buttons/button-icon/ButtonIcon.mjs";import{ButtonIconVisual as Z}from"./components/buttons/button-icon-visual/ButtonIconVisual.mjs";import{ButtonVisual as Q}from"./components/buttons/button-visual/ButtonVisual.mjs";import{Modal as $}from"./components/overlays/modal/Modal.mjs";import{Modals as ee}from"./components/overlays/modal/index.mjs";import{Toast as te}from"./components/overlays/toast/Toast.mjs";import{AvatarUpload as ne}from"./components/controls/avatar-upload/AvatarUpload.mjs";import{CheckboxTree as re}from"./components/controls/checkbox-tree/CheckboxTree.mjs";import{DatePicker as ie}from"./components/controls/date-picker/DatePicker.mjs";import{YearPicker as ae}from"./components/controls/date-picker/YearPicker.mjs";import{DateTimePicker as oe}from"./components/controls/date-time-picker/DateTimePicker.mjs";import{Autocomplete as se}from"./components/controls/dropdown/autocomplete/Autocomplete.mjs";import{Combobox as ce}from"./components/controls/dropdown/combobox/Combobox.mjs";import{AvatarDropzone as le}from"./components/controls/dropzone/avatar/AvatarDropzone.mjs";import{getFileExtension as ue}from"./components/controls/dropzone/use-s3-upload.mjs";import{AvatarDropzoneS3 as de}from"./components/controls/dropzone/avatar/AvatarDropzoneS3.mjs";import{Dropzone as fe}from"./components/controls/dropzone/Dropzone.mjs";import{DropzoneS3 as pe}from"./components/controls/dropzone/DropzoneS3.mjs";import{FileInput as me}from"./components/controls/file-input/FileInput.mjs";import{FileInputMultiple as he}from"./components/controls/file-input/FileInputMultiple.mjs";import{FileInputMultipleS3 as ge}from"./components/controls/file-input/FileInputMultipleS3.mjs";import{FileInputS3 as _e}from"./components/controls/file-input/FileInputS3.mjs";import{PasswordInput as ve}from"./components/controls/password-input/PasswordInput.mjs";import{PasswordStrengthInput as ye}from"./components/controls/password-input/PasswordStrengthInput.mjs";import{usePasswordRules as be}from"./components/controls/password-input/usePasswordRules.mjs";import{Radio as xe}from"./components/controls/radio/Radio.mjs";import{SwitchGroup as Se}from"./components/controls/switch-group/SwitchGroup.mjs";import{Switch as Ce}from"./components/controls/switch/Switch.mjs";import{Textarea as we}from"./components/controls/textarea/Textarea.mjs";import{FormS3Context as Te,useFormS3Context as Ee}from"./components/forms/FormS3Context.mjs";import{PASSWORD_RULES as De}from"./components/forms/rules/password-rules.mjs";import{z as Oe}from"./components/forms/rules/zod.mjs";import{Form as ke}from"./components/forms/Form.mjs";import{Fieldset as Ae}from"./components/forms/layout/Fieldset.mjs";import{Stepper as je}from"./components/navigations/stepper/Stepper.mjs";import{MultiFormContext as Me,useMultiFormContext as Ne}from"./components/forms/multi-step/MultiFormContext.mjs";import{Schema as Pe}from"./components/forms/multi-step/parser/Schema.mjs";import{MultiForm as Fe,MultiFormStep as Ie}from"./components/forms/multi-step/MultiForm.mjs";import{Card as Le,CardBase as Re,CardBody as ze,CardFooter as Be,CardHeader as Ve,CardRoot as He}from"./components/layouts/card/Card.mjs";import{FluidGrid as Ue}from"./components/layouts/fluid-grid/FluidGrid.mjs";import{Grid as We}from"./components/layouts/grid/Grid.mjs";import{Breadcrumbs as Ge}from"./components/navigations/breadcrumbs/Breadcrumbs.mjs";import{Menu as Ke}from"./components/navigations/menu/Menu.mjs";import{NavigationMenu as qe}from"./components/navigations/navigation-menu/NavigationMenu.mjs";import{Sidebar as Je}from"./components/navigations/sidebars/sidebar/Sidebar.mjs";import{MageUiProvider as Ye}from"./providers/MageUiProvider.mjs";export{se as Autocomplete,i as Avatar,le as AvatarDropzone,de as AvatarDropzoneS3,ne as AvatarUpload,a as Badge,Ge as Breadcrumbs,e as Button,n as ButtonAction,X as ButtonIcon,Z as ButtonIconVisual,r as ButtonLoader,Q as ButtonVisual,s as Calendar,Le as Card,Re as CardBase,ze as CardBody,Be as CardFooter,Ve as CardHeader,He as CardRoot,g as Checkbox,re as CheckboxTree,ce as Combobox,p as DEFAULT_DATA_TABLE_LABELS,_ as DataTable,D as DataTableBottomSlot,m as DataTableContextProvider,O as DataTableFeedback,w as DataTablePageSize,E as DataTablePagination,k as DataTableTopSlot,ie as DatePicker,oe as DateTimePicker,A as DescriptionList,j as Details,P as DocumentItem,fe as Dropzone,pe as DropzoneS3,Ae as Fieldset,M as FileIcon,me as FileInput,he as FileInputMultiple,ge as FileInputMultipleS3,_e as FileInputS3,Ue as FluidGrid,ke as Form,Te as FormS3Context,We as Grid,v as HorizontalDivider,f as Icon,d as IconRaw,F as IconSvg,S as IconWrapped,I as Indicator,L as LoaderDot,R as LoaderOval,z as LogoImage,B as LogoSvg,Ye as MageUiProvider,Ke as Menu,$ as Modal,ee as Modals,Fe as MultiForm,Me as MultiFormContext,Ie as MultiFormStep,qe as NavigationMenu,y as NoSsr,V as NotificationBanner,De as PASSWORD_RULES,T as Pagination,ve as PasswordInput,ye as PasswordStrengthInput,H as Progress,xe as Radio,U as RemovableItem,N as ResourceItem,Pe as Schema,l as ScrollArea,b as ScrollAreaAutosize,C as Select,Je as Sidebar,je as Stepper,Ce as Switch,Se as SwitchGroup,u as Table,G as Tag,W as TagGroup,x as TextInput,we as Textarea,te as Toast,o as Tooltip,K as UploadedFile,q as UploadedFileDetails,J as UploadedFiles,Y as UploadingFiles,c as Virtual,t as VisuallyHidden,ae as YearPicker,ue as getFileExtension,h as useDataTableContext,Ee as useFormS3Context,Ne as useMultiFormContext,be as usePasswordRules,Oe as z};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mage-ui/components",
3
- "version": "1.0.169",
3
+ "version": "1.0.171",
4
4
  "private": false,
5
5
  "description": "",
6
6
  "keywords": [],
@@ -25,7 +25,7 @@
25
25
  "rimraf": "^6.1.3",
26
26
  "tsdown": "^0.21.4",
27
27
  "typescript": "^5.9.3",
28
- "@mage-ui/preset": "1.0.169",
28
+ "@mage-ui/preset": "1.0.171",
29
29
  "@mage-ui/styled-system": "1.0.8"
30
30
  },
31
31
  "peerDependencies": {