@payfit/unity-components 0.0.0-alpha.6 → 0.0.0-alpha.8
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.
- package/dist/cjs/components/alert/Alert.js +1 -1
- package/dist/cjs/components/anchor/Anchor.d.ts +1 -1
- package/dist/cjs/components/app-layout/AppLayout.d.ts +6 -1
- package/dist/cjs/components/app-layout/AppLayout.js +1 -1
- package/dist/cjs/components/app-menu/AppMenu.d.ts +9 -0
- package/dist/cjs/components/app-menu/AppMenu.js +1 -0
- package/dist/cjs/components/app-menu/parts/AppMenu.context.d.ts +9 -0
- package/dist/cjs/components/app-menu/parts/AppMenu.context.js +1 -0
- package/dist/cjs/components/app-menu/parts/AppMenuFooter.d.ts +31 -0
- package/dist/cjs/components/app-menu/parts/AppMenuFooter.js +1 -0
- package/dist/cjs/components/app-menu/parts/AppMenuHeader.d.ts +9 -0
- package/dist/cjs/components/app-menu/parts/AppMenuHeader.js +1 -0
- package/dist/cjs/components/app-menu/parts/AppMenuNavContent.d.ts +5 -0
- package/dist/cjs/components/app-menu/parts/AppMenuNavContent.js +1 -0
- package/dist/cjs/components/avatar/Avatar.context.d.ts +1 -1
- package/dist/cjs/components/avatar/parts/AvatarFallback.d.ts +1 -1
- package/dist/cjs/components/avatar/parts/AvatarFallback.js +1 -1
- package/dist/cjs/components/avatar/parts/AvatarPair.d.ts +20 -0
- package/dist/cjs/components/avatar/parts/AvatarPair.js +1 -1
- package/dist/cjs/components/avatar/utils.d.ts +1 -0
- package/dist/cjs/components/avatar/utils.js +1 -0
- package/dist/cjs/components/badge/Badge.d.ts +3 -0
- package/dist/cjs/components/badge/Badge.js +1 -1
- package/dist/cjs/components/breadcrumbs/Breadcrumbs.context.d.ts +1 -1
- package/dist/cjs/components/breadcrumbs/parts/Breadcrumb.js +1 -1
- package/dist/cjs/components/button/Button.d.ts +2 -1
- package/dist/cjs/components/checkbox/Checkbox.d.ts +225 -0
- package/dist/cjs/components/checkbox/Checkbox.js +1 -0
- package/dist/cjs/components/checkbox/parts/CheckboxIndicator.d.ts +13 -0
- package/dist/cjs/components/checkbox/parts/CheckboxIndicator.js +1 -0
- package/dist/cjs/components/checkbox-field/CheckboxField.d.ts +74 -0
- package/dist/cjs/components/checkbox-field/CheckboxField.js +1 -0
- package/dist/cjs/components/checkbox-group/CheckboxGroup.d.ts +65 -0
- package/dist/cjs/components/checkbox-group/CheckboxGroup.js +1 -0
- package/dist/cjs/components/checkbox-group-field/CheckboxGroupField.d.ts +79 -0
- package/dist/cjs/components/checkbox-group-field/CheckboxGroupField.js +1 -0
- package/dist/cjs/components/collapsible/Collapsible.d.ts +33 -0
- package/dist/cjs/components/collapsible/parts/CollapsibleContent.d.ts +36 -0
- package/dist/cjs/components/collapsible/parts/CollapsibleTitle.d.ts +39 -0
- package/dist/cjs/components/date-picker/DatePicker.d.ts +67 -0
- package/dist/cjs/components/date-picker/DatePicker.js +1 -0
- package/dist/cjs/components/date-picker/hooks/useMonthsList.d.ts +4 -0
- package/dist/cjs/components/date-picker/hooks/useMonthsList.js +1 -0
- package/dist/cjs/components/date-picker/hooks/useYearsList.d.ts +10 -0
- package/dist/cjs/components/date-picker/hooks/useYearsList.js +1 -0
- package/dist/cjs/components/date-picker/parts/DateCalendar.d.ts +9 -0
- package/dist/cjs/components/date-picker/parts/DateCalendar.js +1 -0
- package/dist/cjs/components/date-picker/parts/DateInput.d.ts +155 -0
- package/dist/cjs/components/date-picker/parts/DateInput.js +1 -0
- package/dist/cjs/components/date-picker/parts/DateSegmentSelect.d.ts +15 -0
- package/dist/cjs/components/date-picker/parts/DateSegmentSelect.js +1 -0
- package/dist/cjs/components/date-picker/utils.d.ts +12 -0
- package/dist/cjs/components/date-picker-field/DatePickerField.d.ts +83 -0
- package/dist/cjs/components/date-picker-field/DatePickerField.js +1 -0
- package/dist/cjs/components/dialog/Dialog.d.ts +1 -1
- package/dist/cjs/components/dialog/parts/DialogActions/DialogButton.d.ts +1 -1
- package/dist/cjs/components/dialog/parts/DialogActions.d.ts +1 -1
- package/dist/cjs/components/dialog/parts/DialogTitle.d.ts +1 -1
- package/dist/cjs/components/fieldset/Fieldset.d.ts +150 -0
- package/dist/cjs/components/fieldset/Fieldset.js +1 -0
- package/dist/cjs/components/fieldset/parts/FieldGroup.d.ts +27 -0
- package/dist/cjs/components/fieldset/parts/FieldGroup.js +1 -0
- package/dist/cjs/components/form/Form.context.d.ts +1 -1
- package/dist/cjs/components/form/Form.context.js +1 -1
- package/dist/cjs/components/form/Form.js +1 -1
- package/dist/cjs/components/form-field/FormField.context.d.ts +32 -14
- package/dist/cjs/components/form-field/FormField.context.js +1 -0
- package/dist/cjs/components/form-field/FormField.d.ts +40 -16
- package/dist/cjs/components/form-field/FormField.js +1 -0
- package/dist/cjs/components/form-field/parts/FormContextualLink.js +1 -0
- package/dist/cjs/components/form-field/parts/FormControl.d.ts +30 -0
- package/dist/cjs/components/form-field/parts/FormControl.js +1 -0
- package/dist/cjs/components/form-field/parts/FormFeedbackText.js +1 -0
- package/dist/cjs/components/form-field/parts/FormHelperText.d.ts +1 -1
- package/dist/cjs/components/form-field/parts/FormHelperText.js +1 -0
- package/dist/cjs/components/form-field/parts/FormLabel.d.ts +3 -3
- package/dist/cjs/components/form-field/parts/FormLabel.js +1 -0
- package/dist/cjs/components/form-field/utils/isFieldRequired.d.ts +8 -0
- package/dist/cjs/components/form-field/utils/isFieldRequired.js +1 -0
- package/dist/cjs/components/full-page-loader/FullPageLoader.d.ts +13 -0
- package/dist/cjs/components/full-page-loader/FullPageLoader.js +1 -0
- package/dist/cjs/components/icon/Icon.d.ts +1 -1
- package/dist/cjs/components/icon-button/CircularIconButton.d.ts +1 -1
- package/dist/cjs/components/icon-button/CircularIconButton.js +1 -1
- package/dist/cjs/components/icon-button/IconButton.d.ts +1 -1
- package/dist/cjs/components/icon-button/IconButton.variants.js +1 -1
- package/dist/cjs/components/input/Input.d.ts +48 -0
- package/dist/cjs/components/input/Input.js +1 -0
- package/dist/cjs/components/label/Label.d.ts +17 -0
- package/dist/cjs/components/label/Label.js +1 -0
- package/dist/cjs/components/link/Link.d.ts +10 -0
- package/dist/cjs/components/link/Link.js +1 -1
- package/dist/cjs/components/menu/Menu.d.ts +1 -1
- package/dist/cjs/components/menu/parts/MenuContent.d.ts +1 -1
- package/dist/cjs/components/menu/parts/MenuContent.js +1 -1
- package/dist/cjs/components/menu/parts/MenuHeader.d.ts +1 -1
- package/dist/cjs/components/menu/parts/MenuItem.d.ts +2 -2
- package/dist/cjs/components/menu/parts/MenuSeparator.d.ts +1 -1
- package/dist/cjs/components/menu/parts/MenuTrigger.d.ts +1 -1
- package/dist/cjs/components/multi-select/MultiSelect.d.ts +62 -0
- package/dist/cjs/components/multi-select/MultiSelect.js +1 -0
- package/dist/cjs/components/multi-select/Multiselect.context.d.ts +7 -0
- package/dist/cjs/components/multi-select/Multiselect.context.js +1 -0
- package/dist/cjs/components/multi-select/Multiselect.types.d.ts +109 -0
- package/dist/cjs/components/multi-select/hooks/use-combobox-filter.d.ts +12 -0
- package/dist/cjs/components/multi-select/hooks/use-combobox-filter.js +1 -0
- package/dist/cjs/components/multi-select/hooks/use-multiselection-state.d.ts +14 -0
- package/dist/cjs/components/multi-select/hooks/use-multiselection-state.js +1 -0
- package/dist/cjs/components/multi-select/parts/MultiSelectButton.d.ts +16 -0
- package/dist/cjs/components/multi-select/parts/MultiSelectButton.js +1 -0
- package/dist/cjs/components/multi-select/parts/MultiSelectOptGroup.d.ts +69 -0
- package/dist/cjs/components/multi-select/parts/MultiSelectOptGroup.js +1 -0
- package/dist/cjs/components/multi-select/parts/MultiSelectOption.d.ts +20 -0
- package/dist/cjs/components/multi-select/parts/MultiSelectOption.js +1 -0
- package/dist/cjs/components/multi-select/parts/MultiSelectPopover.d.ts +7 -0
- package/dist/cjs/components/multi-select/parts/MultiSelectPopover.js +1 -0
- package/dist/cjs/components/multi-select-field/MultiSelectField.d.ts +59 -0
- package/dist/cjs/components/multi-select-field/MultiSelectField.js +1 -0
- package/dist/cjs/components/nav/Nav.d.ts +1 -1
- package/dist/cjs/components/nav/parts/NavGroup.d.ts +1 -1
- package/dist/cjs/components/nav/parts/NavItem.d.ts +1 -1
- package/dist/cjs/components/segmented-button-group/SegmentedButtonGroup.d.ts +43 -0
- package/dist/cjs/components/segmented-button-group/SegmentedButtonGroups.context.d.ts +8 -0
- package/dist/cjs/components/segmented-button-group/parts/ToggleButton.d.ts +47 -0
- package/dist/cjs/components/select/Select.d.ts +52 -0
- package/dist/cjs/components/select/Select.js +1 -0
- package/dist/cjs/components/select/parts/SearchInput.d.ts +2 -0
- package/dist/cjs/components/select/parts/SearchInput.js +1 -0
- package/dist/cjs/components/select/parts/SelectButton.d.ts +8 -0
- package/dist/cjs/components/select/parts/SelectButton.js +1 -0
- package/dist/cjs/components/select/parts/SelectOption.context.d.ts +8 -0
- package/dist/cjs/components/select/parts/SelectOption.context.js +1 -0
- package/dist/cjs/components/select/parts/SelectOption.d.ts +6 -0
- package/dist/cjs/components/select/parts/SelectOption.js +1 -0
- package/dist/cjs/components/select/parts/SelectOptionGroup.d.ts +12 -0
- package/dist/cjs/components/select/parts/SelectOptionGroup.js +1 -0
- package/dist/cjs/components/select/parts/SelectOptionHelper.d.ts +4 -0
- package/dist/cjs/components/select/parts/SelectOptionHelper.js +1 -0
- package/dist/cjs/components/select-field/SelectField.d.ts +50 -0
- package/dist/cjs/components/select-field/SelectField.js +1 -0
- package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.context.d.ts +2 -0
- package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.context.js +1 -0
- package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.d.ts +59 -0
- package/dist/cjs/components/selectable-button-group/SelectableButtonGroup.js +1 -0
- package/dist/cjs/components/selectable-button-group/parts/SelectableButton.d.ts +127 -0
- package/dist/cjs/components/selectable-button-group/parts/SelectableButton.js +1 -0
- package/dist/cjs/components/spinner/Spinner.d.ts +2 -2
- package/dist/cjs/components/spinner/Spinner.js +1 -1
- package/dist/cjs/components/spinner/dynamic-content.d.ts +1 -1
- package/dist/cjs/components/stepper/Stepper.context.d.ts +1 -1
- package/dist/cjs/components/tabs/Tabs.context.d.ts +1 -1
- package/dist/cjs/components/tabs/parts/NavigationButton.d.ts +1 -1
- package/dist/cjs/components/tabs/parts/Tab.d.ts +3 -1
- package/dist/cjs/components/tabs/parts/TabList.js +1 -1
- package/dist/cjs/components/text/Text.d.ts +1 -1
- package/dist/cjs/components/text-area/TextArea.d.ts +220 -0
- package/dist/cjs/components/text-area/TextArea.js +1 -0
- package/dist/cjs/components/text-field/TextField.d.ts +63 -0
- package/dist/cjs/components/text-field/TextField.js +1 -0
- package/dist/cjs/components/toast/Toast.context.d.ts +1 -1
- package/dist/cjs/components/toast/ToastManager.d.ts +1 -1
- package/dist/cjs/components/toast/UnityToast.d.ts +3 -3
- package/dist/cjs/components/toast/UnityToast.js +1 -1
- package/dist/cjs/components/toast/parts/ToastAction.d.ts +1 -1
- package/dist/cjs/components/toast/parts/ToastContent.d.ts +1 -1
- package/dist/cjs/components/toast/parts/ToastTitle.d.ts +1 -1
- package/dist/cjs/components/tooltip/Tooltip.d.ts +1 -1
- package/dist/cjs/components/tooltip/Tooltip.js +1 -1
- package/dist/cjs/docs/blocks/Cards.d.ts +7 -7
- package/dist/cjs/hooks/use-form.d.ts +5 -5
- package/dist/cjs/hooks/use-form.js +1 -0
- package/dist/cjs/hooks/use-resizable.d.ts +13 -0
- package/dist/cjs/hooks/use-resizable.js +1 -0
- package/dist/cjs/index.d.ts +40 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/providers/router/RouterProvider.d.ts +1 -1
- package/dist/cjs/providers/router/integrations/UnityReactRouterV5Provider.d.ts +1 -1
- package/dist/cjs/types/utils.d.ts +1 -0
- package/dist/esm/components/alert/Alert.mjs +1 -1
- package/dist/esm/components/anchor/Anchor.d.mts +1 -1
- package/dist/esm/components/app-layout/AppLayout.d.mts +6 -1
- package/dist/esm/components/app-layout/AppLayout.mjs +35 -23
- package/dist/esm/components/app-menu/AppMenu.d.mts +9 -0
- package/dist/esm/components/app-menu/AppMenu.mjs +14 -0
- package/dist/esm/components/app-menu/parts/AppMenu.context.d.mts +9 -0
- package/dist/esm/components/app-menu/parts/AppMenu.context.mjs +25 -0
- package/dist/esm/components/app-menu/parts/AppMenuFooter.d.mts +31 -0
- package/dist/esm/components/app-menu/parts/AppMenuFooter.mjs +224 -0
- package/dist/esm/components/app-menu/parts/AppMenuHeader.d.mts +9 -0
- package/dist/esm/components/app-menu/parts/AppMenuHeader.mjs +41 -0
- package/dist/esm/components/app-menu/parts/AppMenuNavContent.d.mts +5 -0
- package/dist/esm/components/app-menu/parts/AppMenuNavContent.mjs +23 -0
- package/dist/esm/components/avatar/Avatar.context.d.mts +1 -1
- package/dist/esm/components/avatar/parts/AvatarFallback.d.mts +1 -1
- package/dist/esm/components/avatar/parts/AvatarFallback.mjs +9 -8
- package/dist/esm/components/avatar/parts/AvatarPair.d.mts +20 -0
- package/dist/esm/components/avatar/parts/AvatarPair.mjs +10 -10
- package/dist/esm/components/avatar/utils.d.mts +1 -0
- package/dist/esm/components/avatar/utils.mjs +4 -0
- package/dist/esm/components/badge/Badge.d.mts +3 -0
- package/dist/esm/components/badge/Badge.mjs +12 -10
- package/dist/esm/components/breadcrumbs/Breadcrumbs.context.d.mts +1 -1
- package/dist/esm/components/breadcrumbs/parts/Breadcrumb.mjs +10 -10
- package/dist/esm/components/button/Button.d.mts +2 -1
- package/dist/esm/components/checkbox/Checkbox.d.mts +225 -0
- package/dist/esm/components/checkbox/Checkbox.mjs +146 -0
- package/dist/esm/components/checkbox/parts/CheckboxIndicator.d.mts +13 -0
- package/dist/esm/components/checkbox/parts/CheckboxIndicator.mjs +146 -0
- package/dist/esm/components/checkbox-field/CheckboxField.d.mts +74 -0
- package/dist/esm/components/checkbox-field/CheckboxField.mjs +61 -0
- package/dist/esm/components/checkbox-group/CheckboxGroup.d.mts +65 -0
- package/dist/esm/components/checkbox-group/CheckboxGroup.mjs +66 -0
- package/dist/esm/components/checkbox-group-field/CheckboxGroupField.d.mts +79 -0
- package/dist/esm/components/checkbox-group-field/CheckboxGroupField.mjs +54 -0
- package/dist/esm/components/collapsible/Collapsible.d.mts +33 -0
- package/dist/esm/components/collapsible/parts/CollapsibleContent.d.mts +36 -0
- package/dist/esm/components/collapsible/parts/CollapsibleTitle.d.mts +39 -0
- package/dist/esm/components/date-picker/DatePicker.d.mts +67 -0
- package/dist/esm/components/date-picker/DatePicker.mjs +163 -0
- package/dist/esm/components/date-picker/hooks/useMonthsList.d.mts +4 -0
- package/dist/esm/components/date-picker/hooks/useMonthsList.mjs +26 -0
- package/dist/esm/components/date-picker/hooks/useYearsList.d.mts +10 -0
- package/dist/esm/components/date-picker/hooks/useYearsList.mjs +33 -0
- package/dist/esm/components/date-picker/parts/DateCalendar.d.mts +9 -0
- package/dist/esm/components/date-picker/parts/DateCalendar.mjs +172 -0
- package/dist/esm/components/date-picker/parts/DateInput.d.mts +155 -0
- package/dist/esm/components/date-picker/parts/DateInput.mjs +124 -0
- package/dist/esm/components/date-picker/parts/DateSegmentSelect.d.mts +15 -0
- package/dist/esm/components/date-picker/parts/DateSegmentSelect.mjs +69 -0
- package/dist/esm/components/date-picker/utils.d.mts +12 -0
- package/dist/esm/components/date-picker-field/DatePickerField.d.mts +83 -0
- package/dist/esm/components/date-picker-field/DatePickerField.mjs +73 -0
- package/dist/esm/components/dialog/Dialog.d.mts +1 -1
- package/dist/esm/components/dialog/parts/DialogActions/DialogButton.d.mts +1 -1
- package/dist/esm/components/dialog/parts/DialogActions.d.mts +1 -1
- package/dist/esm/components/dialog/parts/DialogTitle.d.mts +1 -1
- package/dist/esm/components/fieldset/Fieldset.d.mts +150 -0
- package/dist/esm/components/fieldset/Fieldset.mjs +65 -0
- package/dist/esm/components/fieldset/parts/FieldGroup.d.mts +27 -0
- package/dist/esm/components/fieldset/parts/FieldGroup.mjs +18 -0
- package/dist/esm/components/form/Form.context.d.mts +1 -1
- package/dist/esm/components/form/Form.context.mjs +21 -14
- package/dist/esm/components/form/Form.mjs +5 -5
- package/dist/esm/components/form-field/FormField.context.d.mts +32 -14
- package/dist/esm/components/form-field/FormField.context.mjs +81 -0
- package/dist/esm/components/form-field/FormField.d.mts +40 -16
- package/dist/esm/components/form-field/FormField.mjs +60 -0
- package/dist/esm/components/form-field/parts/FormContextualLink.mjs +35 -0
- package/dist/esm/components/form-field/parts/FormControl.d.mts +30 -0
- package/dist/esm/components/form-field/parts/FormControl.mjs +50 -0
- package/dist/esm/components/form-field/parts/FormFeedbackText.mjs +25 -0
- package/dist/esm/components/form-field/parts/FormHelperText.d.mts +1 -1
- package/dist/esm/components/form-field/parts/FormHelperText.mjs +25 -0
- package/dist/esm/components/form-field/parts/FormLabel.d.mts +3 -3
- package/dist/esm/components/form-field/parts/FormLabel.mjs +30 -0
- package/dist/esm/components/form-field/utils/isFieldRequired.d.mts +8 -0
- package/dist/esm/components/form-field/utils/isFieldRequired.mjs +23 -0
- package/dist/esm/components/full-page-loader/FullPageLoader.d.mts +13 -0
- package/dist/esm/components/full-page-loader/FullPageLoader.mjs +26 -0
- package/dist/esm/components/icon/Icon.d.mts +1 -1
- package/dist/esm/components/icon-button/CircularIconButton.d.mts +1 -1
- package/dist/esm/components/icon-button/CircularIconButton.mjs +10 -11
- package/dist/esm/components/icon-button/IconButton.d.mts +1 -1
- package/dist/esm/components/icon-button/IconButton.variants.mjs +9 -9
- package/dist/esm/components/input/Input.d.mts +48 -0
- package/dist/esm/components/input/Input.mjs +148 -0
- package/dist/esm/components/label/Label.d.mts +17 -0
- package/dist/esm/components/label/Label.mjs +56 -0
- package/dist/esm/components/link/Link.d.mts +10 -0
- package/dist/esm/components/link/Link.mjs +26 -24
- package/dist/esm/components/menu/Menu.d.mts +1 -1
- package/dist/esm/components/menu/parts/MenuContent.d.mts +1 -1
- package/dist/esm/components/menu/parts/MenuContent.mjs +1 -1
- package/dist/esm/components/menu/parts/MenuHeader.d.mts +1 -1
- package/dist/esm/components/menu/parts/MenuItem.d.mts +2 -2
- package/dist/esm/components/menu/parts/MenuSeparator.d.mts +1 -1
- package/dist/esm/components/menu/parts/MenuTrigger.d.mts +1 -1
- package/dist/esm/components/multi-select/MultiSelect.d.mts +62 -0
- package/dist/esm/components/multi-select/MultiSelect.mjs +230 -0
- package/dist/esm/components/multi-select/Multiselect.context.d.mts +7 -0
- package/dist/esm/components/multi-select/Multiselect.context.mjs +8 -0
- package/dist/esm/components/multi-select/Multiselect.types.d.mts +109 -0
- package/dist/esm/components/multi-select/hooks/use-combobox-filter.d.mts +12 -0
- package/dist/esm/components/multi-select/hooks/use-combobox-filter.mjs +22 -0
- package/dist/esm/components/multi-select/hooks/use-multiselection-state.d.mts +14 -0
- package/dist/esm/components/multi-select/hooks/use-multiselection-state.mjs +47 -0
- package/dist/esm/components/multi-select/parts/MultiSelectButton.d.mts +16 -0
- package/dist/esm/components/multi-select/parts/MultiSelectButton.mjs +160 -0
- package/dist/esm/components/multi-select/parts/MultiSelectOptGroup.d.mts +69 -0
- package/dist/esm/components/multi-select/parts/MultiSelectOptGroup.mjs +34 -0
- package/dist/esm/components/multi-select/parts/MultiSelectOption.d.mts +20 -0
- package/dist/esm/components/multi-select/parts/MultiSelectOption.mjs +85 -0
- package/dist/esm/components/multi-select/parts/MultiSelectPopover.d.mts +7 -0
- package/dist/esm/components/multi-select/parts/MultiSelectPopover.mjs +65 -0
- package/dist/esm/components/multi-select-field/MultiSelectField.d.mts +59 -0
- package/dist/esm/components/multi-select-field/MultiSelectField.mjs +81 -0
- package/dist/esm/components/nav/Nav.d.mts +1 -1
- package/dist/esm/components/nav/parts/NavGroup.d.mts +1 -1
- package/dist/esm/components/nav/parts/NavItem.d.mts +1 -1
- package/dist/esm/components/segmented-button-group/SegmentedButtonGroup.d.mts +43 -0
- package/dist/esm/components/segmented-button-group/SegmentedButtonGroups.context.d.mts +8 -0
- package/dist/esm/components/segmented-button-group/parts/ToggleButton.d.mts +47 -0
- package/dist/esm/components/select/Select.d.mts +52 -0
- package/dist/esm/components/select/Select.mjs +63 -0
- package/dist/esm/components/select/parts/SearchInput.d.mts +2 -0
- package/dist/esm/components/select/parts/SearchInput.mjs +39 -0
- package/dist/esm/components/select/parts/SelectButton.d.mts +8 -0
- package/dist/esm/components/select/parts/SelectButton.mjs +87 -0
- package/dist/esm/components/select/parts/SelectOption.context.d.mts +8 -0
- package/dist/esm/components/select/parts/SelectOption.context.mjs +24 -0
- package/dist/esm/components/select/parts/SelectOption.d.mts +6 -0
- package/dist/esm/components/select/parts/SelectOption.mjs +63 -0
- package/dist/esm/components/select/parts/SelectOptionGroup.d.mts +12 -0
- package/dist/esm/components/select/parts/SelectOptionGroup.mjs +26 -0
- package/dist/esm/components/select/parts/SelectOptionHelper.d.mts +4 -0
- package/dist/esm/components/select/parts/SelectOptionHelper.mjs +20 -0
- package/dist/esm/components/select-field/SelectField.d.mts +50 -0
- package/dist/esm/components/select-field/SelectField.mjs +65 -0
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.d.mts +2 -0
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.mjs +5 -0
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.d.mts +59 -0
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.mjs +25 -0
- package/dist/esm/components/selectable-button-group/parts/SelectableButton.d.mts +127 -0
- package/dist/esm/components/selectable-button-group/parts/SelectableButton.mjs +98 -0
- package/dist/esm/components/spinner/Spinner.d.mts +2 -2
- package/dist/esm/components/spinner/Spinner.mjs +34 -27
- package/dist/esm/components/spinner/dynamic-content.d.mts +1 -1
- package/dist/esm/components/stepper/Stepper.context.d.mts +1 -1
- package/dist/esm/components/tabs/Tabs.context.d.mts +1 -1
- package/dist/esm/components/tabs/parts/NavigationButton.d.mts +1 -1
- package/dist/esm/components/tabs/parts/Tab.d.mts +3 -1
- package/dist/esm/components/tabs/parts/TabList.mjs +47 -25
- package/dist/esm/components/text/Text.d.mts +1 -1
- package/dist/esm/components/text-area/TextArea.d.mts +220 -0
- package/dist/esm/components/text-area/TextArea.mjs +161 -0
- package/dist/esm/components/text-field/TextField.d.mts +63 -0
- package/dist/esm/components/text-field/TextField.mjs +78 -0
- package/dist/esm/components/toast/Toast.context.d.mts +1 -1
- package/dist/esm/components/toast/ToastManager.d.mts +1 -1
- package/dist/esm/components/toast/UnityToast.d.mts +3 -3
- package/dist/esm/components/toast/UnityToast.mjs +5 -5
- package/dist/esm/components/toast/parts/ToastAction.d.mts +1 -1
- package/dist/esm/components/toast/parts/ToastContent.d.mts +1 -1
- package/dist/esm/components/toast/parts/ToastTitle.d.mts +1 -1
- package/dist/esm/components/tooltip/Tooltip.d.mts +1 -1
- package/dist/esm/components/tooltip/Tooltip.mjs +11 -17
- package/dist/esm/docs/blocks/Cards.d.mts +7 -7
- package/dist/esm/hooks/use-form.d.mts +5 -5
- package/dist/esm/hooks/use-form.mjs +32 -0
- package/dist/esm/hooks/use-resizable.d.mts +13 -0
- package/dist/esm/hooks/use-resizable.mjs +51 -0
- package/dist/esm/index.d.mts +40 -0
- package/dist/esm/index.mjs +196 -109
- package/dist/esm/providers/router/RouterProvider.d.mts +1 -1
- package/dist/esm/providers/router/RouterProvider.mjs +3 -3
- package/dist/esm/providers/router/integrations/UnityReactRouterV5Provider.d.mts +1 -1
- package/dist/esm/types/utils.d.mts +1 -0
- package/i18n/en-GB.json +15 -3
- package/i18n/es-ES.json +15 -3
- package/i18n/fr-FR.json +15 -3
- package/package.json +27 -22
- package/dist/cjs/components/form-field/parts/FormInput.d.ts +0 -15
- package/dist/cjs/components/spinner/Spinner.module.css.js +0 -1
- package/dist/esm/components/form-field/parts/FormInput.d.mts +0 -15
- package/dist/esm/components/spinner/Spinner.module.css.mjs +0 -10
- package/dist/style.css +0 -1
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
import { VariantProps } from 'tailwind-variants';
|
|
3
|
+
export declare const fieldset: import('tailwind-variants').TVReturnType<{
|
|
4
|
+
isLegendHidden: {
|
|
5
|
+
true: {
|
|
6
|
+
legend: string;
|
|
7
|
+
description: string;
|
|
8
|
+
fieldsContainer: string;
|
|
9
|
+
};
|
|
10
|
+
false: {
|
|
11
|
+
legend: string;
|
|
12
|
+
description: string;
|
|
13
|
+
fieldsContainer: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
}, {
|
|
17
|
+
base: string;
|
|
18
|
+
legend: string;
|
|
19
|
+
description: string;
|
|
20
|
+
fieldsContainer: string;
|
|
21
|
+
}, undefined, import('tailwind-variants/dist/config').TVConfig<{
|
|
22
|
+
isLegendHidden: {
|
|
23
|
+
true: {
|
|
24
|
+
legend: string;
|
|
25
|
+
description: string;
|
|
26
|
+
fieldsContainer: string;
|
|
27
|
+
};
|
|
28
|
+
false: {
|
|
29
|
+
legend: string;
|
|
30
|
+
description: string;
|
|
31
|
+
fieldsContainer: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
}, {
|
|
35
|
+
isLegendHidden: {
|
|
36
|
+
true: {
|
|
37
|
+
legend: string;
|
|
38
|
+
description: string;
|
|
39
|
+
fieldsContainer: string;
|
|
40
|
+
};
|
|
41
|
+
false: {
|
|
42
|
+
legend: string;
|
|
43
|
+
description: string;
|
|
44
|
+
fieldsContainer: string;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
}>, {
|
|
48
|
+
isLegendHidden: {
|
|
49
|
+
true: {
|
|
50
|
+
legend: string;
|
|
51
|
+
description: string;
|
|
52
|
+
fieldsContainer: string;
|
|
53
|
+
};
|
|
54
|
+
false: {
|
|
55
|
+
legend: string;
|
|
56
|
+
description: string;
|
|
57
|
+
fieldsContainer: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
}, {
|
|
61
|
+
base: string;
|
|
62
|
+
legend: string;
|
|
63
|
+
description: string;
|
|
64
|
+
fieldsContainer: string;
|
|
65
|
+
}, import('tailwind-variants').TVReturnType<{
|
|
66
|
+
isLegendHidden: {
|
|
67
|
+
true: {
|
|
68
|
+
legend: string;
|
|
69
|
+
description: string;
|
|
70
|
+
fieldsContainer: string;
|
|
71
|
+
};
|
|
72
|
+
false: {
|
|
73
|
+
legend: string;
|
|
74
|
+
description: string;
|
|
75
|
+
fieldsContainer: string;
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
}, {
|
|
79
|
+
base: string;
|
|
80
|
+
legend: string;
|
|
81
|
+
description: string;
|
|
82
|
+
fieldsContainer: string;
|
|
83
|
+
}, undefined, import('tailwind-variants/dist/config').TVConfig<{
|
|
84
|
+
isLegendHidden: {
|
|
85
|
+
true: {
|
|
86
|
+
legend: string;
|
|
87
|
+
description: string;
|
|
88
|
+
fieldsContainer: string;
|
|
89
|
+
};
|
|
90
|
+
false: {
|
|
91
|
+
legend: string;
|
|
92
|
+
description: string;
|
|
93
|
+
fieldsContainer: string;
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
}, {
|
|
97
|
+
isLegendHidden: {
|
|
98
|
+
true: {
|
|
99
|
+
legend: string;
|
|
100
|
+
description: string;
|
|
101
|
+
fieldsContainer: string;
|
|
102
|
+
};
|
|
103
|
+
false: {
|
|
104
|
+
legend: string;
|
|
105
|
+
description: string;
|
|
106
|
+
fieldsContainer: string;
|
|
107
|
+
};
|
|
108
|
+
};
|
|
109
|
+
}>, unknown, unknown, undefined>>;
|
|
110
|
+
export interface FieldsetProps extends PropsWithChildren<VariantProps<typeof fieldset>> {
|
|
111
|
+
/**
|
|
112
|
+
* The legend of the fieldset.
|
|
113
|
+
*/
|
|
114
|
+
legend: string;
|
|
115
|
+
/**
|
|
116
|
+
* An optional description of the fieldset.
|
|
117
|
+
*/
|
|
118
|
+
description?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Whether to hide the legend of the fieldset.
|
|
121
|
+
*/
|
|
122
|
+
isLegendHidden?: boolean;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The `Fieldset` component groups related form fields together with an accessible structure.
|
|
126
|
+
* It provides visual organization and semantic HTML for form sections, making forms more understandable and navigable.
|
|
127
|
+
* @param {FieldsetProps} props - The props for the `Fieldset` component
|
|
128
|
+
* @see {@link FieldsetProps} for all available props
|
|
129
|
+
* @example
|
|
130
|
+
* ```tsx
|
|
131
|
+
* import { Fieldset } from '@payfit/unity-components'
|
|
132
|
+
*
|
|
133
|
+
* function Example() {
|
|
134
|
+
* return (
|
|
135
|
+
* <Fieldset
|
|
136
|
+
* legend="Personal Information"
|
|
137
|
+
* description="Please provide your contact details"
|
|
138
|
+
* isLegendHidden={false}
|
|
139
|
+
* >
|
|
140
|
+
* <TextField name="firstName" label="First name" />
|
|
141
|
+
* <TextField name="lastName" label="Last name" />
|
|
142
|
+
* </Fieldset>
|
|
143
|
+
* )
|
|
144
|
+
* }
|
|
145
|
+
* ```
|
|
146
|
+
* @remarks
|
|
147
|
+
* [API](https://unity-components.payfit.io/?path=/docs/forms-fieldset--docs) • [Design docs](https://www.payfit.design/24f360409/p/1151cf-form-layout)
|
|
148
|
+
*/
|
|
149
|
+
declare const Fieldset: import('react').ForwardRefExoticComponent<FieldsetProps & import('react').RefAttributes<HTMLFieldSetElement>>;
|
|
150
|
+
export { Fieldset };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsxs as f, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as m } from "react";
|
|
3
|
+
import { useId as g } from "react-aria";
|
|
4
|
+
import { tv as b } from "tailwind-variants";
|
|
5
|
+
const x = b({
|
|
6
|
+
slots: {
|
|
7
|
+
base: "uy-p-0 uy-m-0 [&+&]:uy-mt-500 [&:last-of-type]:uy-mb-500",
|
|
8
|
+
legend: "uy-typography-h3 uy-text-content-neutral",
|
|
9
|
+
description: "uy-block uy-typography-body uy-mt-100 uy-text-content-neutral",
|
|
10
|
+
fieldsContainer: "uy-flex uy-flex-col uy-gap-250"
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
isLegendHidden: {
|
|
14
|
+
true: {
|
|
15
|
+
legend: "uy-sr-only",
|
|
16
|
+
description: "uy-sr-only",
|
|
17
|
+
fieldsContainer: "uy-mt-0"
|
|
18
|
+
},
|
|
19
|
+
false: {
|
|
20
|
+
legend: "uy-block",
|
|
21
|
+
description: "uy-block",
|
|
22
|
+
fieldsContainer: "uy-mt-300"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
defaultVariants: {
|
|
27
|
+
isLegendHidden: !1
|
|
28
|
+
}
|
|
29
|
+
}), h = m(
|
|
30
|
+
({ children: i, ...d }, n) => {
|
|
31
|
+
const s = g(), { legend: l, description: e, isLegendHidden: o, ...r } = d, {
|
|
32
|
+
base: a,
|
|
33
|
+
legend: y,
|
|
34
|
+
description: c,
|
|
35
|
+
fieldsContainer: u
|
|
36
|
+
} = x({ isLegendHidden: o }), p = e ? `${s}-fieldset-description` : void 0;
|
|
37
|
+
return /* @__PURE__ */ f(
|
|
38
|
+
"fieldset",
|
|
39
|
+
{
|
|
40
|
+
...r,
|
|
41
|
+
ref: n,
|
|
42
|
+
className: a(),
|
|
43
|
+
"aria-describedby": p,
|
|
44
|
+
children: [
|
|
45
|
+
/* @__PURE__ */ t("legend", { className: y(), children: l }),
|
|
46
|
+
e && /* @__PURE__ */ t(
|
|
47
|
+
"span",
|
|
48
|
+
{
|
|
49
|
+
id: `${s}-fieldset-description`,
|
|
50
|
+
"data-fieldset-slot": "description",
|
|
51
|
+
className: c(),
|
|
52
|
+
children: e
|
|
53
|
+
}
|
|
54
|
+
),
|
|
55
|
+
/* @__PURE__ */ t("div", { className: u(), children: i })
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
);
|
|
61
|
+
h.displayName = "Fieldset";
|
|
62
|
+
export {
|
|
63
|
+
h as Fieldset,
|
|
64
|
+
x as fieldset
|
|
65
|
+
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The `FieldGroup` component arranges form fields in a responsive grid layout within a Fieldset.
|
|
3
|
+
* It optimizes space by displaying fields side-by-side on larger screens while stacking them on mobile devices.
|
|
4
|
+
* @param {PropsWithChildren<object>} props - The props for the `FieldGroup` component
|
|
5
|
+
* @example
|
|
6
|
+
* ```tsx
|
|
7
|
+
* import { Fieldset, FieldGroup } from '@payfit/unity-components'
|
|
8
|
+
*
|
|
9
|
+
* function Example() {
|
|
10
|
+
* return (
|
|
11
|
+
* <Fieldset legend="Personal Information">
|
|
12
|
+
* <FieldGroup>
|
|
13
|
+
* <TextField name="firstName" label="First name" />
|
|
14
|
+
* <TextField name="lastName" label="Last name" />
|
|
15
|
+
* </FieldGroup>
|
|
16
|
+
* <TextField name="email" label="Email" />
|
|
17
|
+
* </Fieldset>
|
|
18
|
+
* )
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
* @remarks
|
|
22
|
+
* [API](https://unity-components.payfit.io/?path=/docs/forms-fieldset-fieldgroup--docs) • [Design docs](https://www.payfit.design/24f360409/p/1151cf-form-layout)
|
|
23
|
+
*/
|
|
24
|
+
declare const FieldGroup: import('react').ForwardRefExoticComponent<object & {
|
|
25
|
+
children?: import('react').ReactNode | undefined;
|
|
26
|
+
} & import('react').RefAttributes<HTMLDivElement>>;
|
|
27
|
+
export { FieldGroup };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as i } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as p } from "react";
|
|
3
|
+
const u = p(
|
|
4
|
+
({ children: r, ...o }, d) => /* @__PURE__ */ i(
|
|
5
|
+
"div",
|
|
6
|
+
{
|
|
7
|
+
...o,
|
|
8
|
+
ref: d,
|
|
9
|
+
role: "group",
|
|
10
|
+
className: "uy-grid uy-grid-cols-1 uy-gap-y-250 md:uy-grid-cols-2 md:uy-gap-x-200",
|
|
11
|
+
children: r
|
|
12
|
+
}
|
|
13
|
+
)
|
|
14
|
+
);
|
|
15
|
+
u.displayName = "FieldGroup";
|
|
16
|
+
export {
|
|
17
|
+
u as FieldGroup
|
|
18
|
+
};
|
|
@@ -7,6 +7,6 @@ interface UnityFormContextValue<TSchema extends Schema> {
|
|
|
7
7
|
form: UseFormReturn<ZodInfer<TSchema>>;
|
|
8
8
|
}
|
|
9
9
|
export declare const UnityFormContext: import('react').Context<UnityFormContextValue<Schema> | null>;
|
|
10
|
-
export declare function UnityFormProvider<TSchema extends Schema>({ children, schema, form, }: PropsWithChildren<UnityFormContextValue<TSchema>>): JSX.Element;
|
|
10
|
+
export declare function UnityFormProvider<TSchema extends Schema>({ children, schema, form, }: PropsWithChildren<UnityFormContextValue<TSchema>>): import("react/jsx-runtime").JSX.Element;
|
|
11
11
|
export declare function useUnityFormProvider<TSchema extends Schema>(): UnityFormContextValue<TSchema>;
|
|
12
12
|
export {};
|
|
@@ -1,23 +1,30 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { createContext as
|
|
3
|
-
const
|
|
4
|
-
function
|
|
5
|
-
children:
|
|
6
|
-
schema:
|
|
7
|
-
form:
|
|
1
|
+
import { jsx as n } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as i, useContext as m } from "react";
|
|
3
|
+
const o = i(null);
|
|
4
|
+
function c({
|
|
5
|
+
children: t,
|
|
6
|
+
schema: r,
|
|
7
|
+
form: e
|
|
8
8
|
}) {
|
|
9
|
-
return /* @__PURE__ */
|
|
10
|
-
|
|
9
|
+
return /* @__PURE__ */ n(
|
|
10
|
+
o.Provider,
|
|
11
11
|
{
|
|
12
12
|
value: {
|
|
13
|
-
schema:
|
|
14
|
-
form:
|
|
13
|
+
schema: r,
|
|
14
|
+
form: e
|
|
15
15
|
},
|
|
16
|
-
children:
|
|
16
|
+
children: t
|
|
17
17
|
}
|
|
18
18
|
);
|
|
19
19
|
}
|
|
20
|
+
function x() {
|
|
21
|
+
const t = m(o);
|
|
22
|
+
if (!t)
|
|
23
|
+
throw new Error("useFormContext must be used within a Form component");
|
|
24
|
+
return t;
|
|
25
|
+
}
|
|
20
26
|
export {
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
o as UnityFormContext,
|
|
28
|
+
c as UnityFormProvider,
|
|
29
|
+
x as useUnityFormProvider
|
|
23
30
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as i, jsxs as b, Fragment as g } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { forwardRef as u, useMemo as j, Suspense as x, lazy as D } from "react";
|
|
3
3
|
import { Form as k } from "react-aria-components";
|
|
4
4
|
import { FormProvider as w } from "react-hook-form";
|
|
5
5
|
import { UnityFormProvider as O } from "./Form.context.mjs";
|
|
6
|
-
const P =
|
|
6
|
+
const P = D(
|
|
7
7
|
() => import("@hookform/devtools").then((t) => ({ default: t.DevTool }))
|
|
8
|
-
), S =
|
|
8
|
+
), S = u(
|
|
9
9
|
({
|
|
10
10
|
form: t,
|
|
11
11
|
schema: n,
|
|
@@ -18,7 +18,7 @@ const P = u(
|
|
|
18
18
|
debug: p = !1,
|
|
19
19
|
...h
|
|
20
20
|
}, v) => {
|
|
21
|
-
const y =
|
|
21
|
+
const y = j(() => {
|
|
22
22
|
const e = t.formState.errors;
|
|
23
23
|
if (!Object.keys(e).length) return;
|
|
24
24
|
const o = {};
|
|
@@ -35,7 +35,7 @@ const P = u(
|
|
|
35
35
|
})(e);
|
|
36
36
|
};
|
|
37
37
|
return /* @__PURE__ */ i(O, { schema: n, form: t, children: /* @__PURE__ */ b(w, { ...t, children: [
|
|
38
|
-
p && /* @__PURE__ */ i(
|
|
38
|
+
p && /* @__PURE__ */ i(x, { fallback: /* @__PURE__ */ i(g, {}), children: /* @__PURE__ */ i(P, { control: t.control }) }),
|
|
39
39
|
/* @__PURE__ */ i(
|
|
40
40
|
k,
|
|
41
41
|
{
|
|
@@ -1,20 +1,38 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
|
-
import {
|
|
3
|
-
import { FieldError, FieldPath, FieldValues } from 'react-hook-form';
|
|
2
|
+
import { FieldPath, FieldValues } from 'react-hook-form';
|
|
4
3
|
interface FormFieldContextValue<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> {
|
|
4
|
+
id: string;
|
|
5
5
|
name: TName;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
isDisabled: boolean;
|
|
14
|
-
validationError?: FieldError;
|
|
15
|
-
resetField: (() => void) | undefined;
|
|
6
|
+
isRequired?: boolean;
|
|
7
|
+
isInvalid?: boolean;
|
|
8
|
+
isLoading?: boolean;
|
|
9
|
+
isReadOnly?: boolean;
|
|
10
|
+
isDisabled?: boolean;
|
|
11
|
+
hasHelperText?: boolean;
|
|
12
|
+
hasContextualLink?: boolean;
|
|
16
13
|
}
|
|
17
14
|
export declare const FormFieldContext: import('react').Context<FormFieldContextValue<FieldValues, string>>;
|
|
18
|
-
export declare function FormFieldProvider({ children,
|
|
19
|
-
export declare function useFormField():
|
|
15
|
+
export declare function FormFieldProvider({ children, id, name, isRequired, isInvalid, isLoading, isReadOnly, isDisabled, hasHelperText, hasContextualLink, }: PropsWithChildren<FormFieldContextValue>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function useFormField(): {
|
|
17
|
+
fieldState: {
|
|
18
|
+
isRequired: boolean | undefined;
|
|
19
|
+
isInvalid: boolean | undefined;
|
|
20
|
+
isLoading: boolean | undefined;
|
|
21
|
+
isReadOnly: boolean | undefined;
|
|
22
|
+
isDisabled: boolean | undefined;
|
|
23
|
+
isDirty: boolean;
|
|
24
|
+
isTouched: boolean;
|
|
25
|
+
error?: import('react-hook-form').FieldError;
|
|
26
|
+
};
|
|
27
|
+
formState: import('react-hook-form').UseFormStateReturn<FieldValues>;
|
|
28
|
+
id: string;
|
|
29
|
+
name: string;
|
|
30
|
+
hasHelperText: boolean | undefined;
|
|
31
|
+
hasContextualLink: boolean | undefined;
|
|
32
|
+
formLabelId: string;
|
|
33
|
+
formItemId: string;
|
|
34
|
+
formDescriptionId: string | undefined;
|
|
35
|
+
formMessageId: string;
|
|
36
|
+
formContextualLinkId: string | undefined;
|
|
37
|
+
};
|
|
20
38
|
export {};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { jsx as F } from "react/jsx-runtime";
|
|
2
|
+
import { createContext as x, useContext as p } from "react";
|
|
3
|
+
import { useFormContext as I, useFormState as v } from "react-hook-form";
|
|
4
|
+
const u = x({
|
|
5
|
+
id: "",
|
|
6
|
+
name: ""
|
|
7
|
+
});
|
|
8
|
+
function $({
|
|
9
|
+
children: o,
|
|
10
|
+
id: i,
|
|
11
|
+
name: t,
|
|
12
|
+
isRequired: s,
|
|
13
|
+
isInvalid: r,
|
|
14
|
+
isLoading: e,
|
|
15
|
+
isReadOnly: n,
|
|
16
|
+
isDisabled: d,
|
|
17
|
+
hasHelperText: m,
|
|
18
|
+
hasContextualLink: a
|
|
19
|
+
}) {
|
|
20
|
+
return /* @__PURE__ */ F(
|
|
21
|
+
u.Provider,
|
|
22
|
+
{
|
|
23
|
+
value: {
|
|
24
|
+
id: i,
|
|
25
|
+
name: t,
|
|
26
|
+
isRequired: s,
|
|
27
|
+
isInvalid: r,
|
|
28
|
+
isLoading: e,
|
|
29
|
+
isReadOnly: n,
|
|
30
|
+
isDisabled: d,
|
|
31
|
+
hasHelperText: m,
|
|
32
|
+
hasContextualLink: a
|
|
33
|
+
},
|
|
34
|
+
children: o
|
|
35
|
+
}
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
function k() {
|
|
39
|
+
const o = p(u), { getFieldState: i } = I(), t = v({ name: o.name }), { invalid: s, ...r } = i(
|
|
40
|
+
o.name,
|
|
41
|
+
t
|
|
42
|
+
), {
|
|
43
|
+
id: e,
|
|
44
|
+
isRequired: n,
|
|
45
|
+
isInvalid: d,
|
|
46
|
+
isLoading: m,
|
|
47
|
+
isReadOnly: a,
|
|
48
|
+
isDisabled: c,
|
|
49
|
+
hasHelperText: l,
|
|
50
|
+
hasContextualLink: f
|
|
51
|
+
} = o;
|
|
52
|
+
if (!o)
|
|
53
|
+
throw new Error("useFormField should be used within <FormField> component");
|
|
54
|
+
return {
|
|
55
|
+
...{
|
|
56
|
+
id: e,
|
|
57
|
+
name: o.name,
|
|
58
|
+
hasHelperText: l,
|
|
59
|
+
hasContextualLink: f,
|
|
60
|
+
formLabelId: `${e}-form-field-label`,
|
|
61
|
+
formItemId: `${e}-form-item`,
|
|
62
|
+
formDescriptionId: l ? `${e}-form-field-description` : void 0,
|
|
63
|
+
formMessageId: `${e}-form-field-feedback-text`,
|
|
64
|
+
formContextualLinkId: f ? `${e}-form-field-contextual-link` : void 0
|
|
65
|
+
},
|
|
66
|
+
fieldState: {
|
|
67
|
+
...r,
|
|
68
|
+
isRequired: n,
|
|
69
|
+
isInvalid: d,
|
|
70
|
+
isLoading: m,
|
|
71
|
+
isReadOnly: a,
|
|
72
|
+
isDisabled: c
|
|
73
|
+
},
|
|
74
|
+
formState: t
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
export {
|
|
78
|
+
u as FormFieldContext,
|
|
79
|
+
$ as FormFieldProvider,
|
|
80
|
+
k as useFormField
|
|
81
|
+
};
|
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { default as React } from 'react';
|
|
2
2
|
import { Control, FieldPath, FieldValues } from 'react-hook-form';
|
|
3
|
-
export interface FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends
|
|
3
|
+
export interface FormFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends React.PropsWithChildren<object> {
|
|
4
4
|
/** The form control from react-hook-form */
|
|
5
5
|
control: Control<TFieldValues>;
|
|
6
6
|
/** The name of the field in the form */
|
|
7
7
|
name: TName;
|
|
8
|
-
/** The type of the field */
|
|
9
|
-
type: TextFieldProps['type'];
|
|
10
8
|
/** Whether the field is required */
|
|
11
9
|
isRequired?: boolean;
|
|
12
|
-
/** The variant of the required indicator */
|
|
13
|
-
requiredVariant?: 'required' | 'optional';
|
|
14
10
|
/** Whether the field is in an invalid state */
|
|
15
11
|
isInvalid?: boolean;
|
|
16
12
|
/** Whether the field is in a loading state */
|
|
@@ -19,19 +15,47 @@ export interface FormFieldProps<TFieldValues extends FieldValues = FieldValues,
|
|
|
19
15
|
isDisabled?: boolean;
|
|
20
16
|
/** Whether the field is read-only */
|
|
21
17
|
isReadOnly?: boolean;
|
|
18
|
+
/** Additional class name */
|
|
19
|
+
className?: string;
|
|
22
20
|
}
|
|
23
21
|
/**
|
|
24
22
|
* The `FormField` component represents a single field in a Unity form. It provides a set of features to manage the state of the field and its interactions, as well as a deep integration with its parent `Form` component.
|
|
25
|
-
*
|
|
26
23
|
* Use this component to create a field in a form with a schema-based approach. It will only work if it is a child of a [`Form` component](/?path=/docs/forms-formfield--docs).
|
|
24
|
+
* @param {FormFieldProps} props - component props to control the field name, and the reference to its form control
|
|
25
|
+
* @see {@link FormFieldProps} for all available props
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* import { Button, Input, FormLabel, FormControl, FormHelperText, FormFeedbackText } from '@payfit/unity-components'
|
|
29
|
+
* import { useUnityForm } from '@payfit/unity-components'
|
|
30
|
+
* import { z } from 'zod'
|
|
31
|
+
*
|
|
32
|
+
* const loginSchema = z.object({
|
|
33
|
+
* email: z.string().email('Invalid email address'),
|
|
34
|
+
* password: z.string().min(8, 'Password must be at least 8 characters'),
|
|
35
|
+
* })
|
|
36
|
+
*
|
|
37
|
+
* const MyForm = () => {
|
|
38
|
+
* const { Form, FormField } = useUnityForm(loginSchema)
|
|
27
39
|
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
40
|
+
* const submitForm = (values: z.infer<typeof loginSchema>) => {
|
|
41
|
+
* console.log(values)
|
|
42
|
+
* }
|
|
43
|
+
*
|
|
44
|
+
* return (
|
|
45
|
+
* <Form action={submitForm}>
|
|
46
|
+
* <FormField name="email">
|
|
47
|
+
* <FormLabel>Email</FormLabel>
|
|
48
|
+
* <FormHelperText>Enter your primary email address</FormHelperText>
|
|
49
|
+
* <FormControl>
|
|
50
|
+
* <Input type="email"/>
|
|
51
|
+
* </FormControl>
|
|
52
|
+
* <FormFeedbackText/>
|
|
53
|
+
* </FormField>
|
|
54
|
+
* </Form>
|
|
55
|
+
* )
|
|
56
|
+
* }
|
|
57
|
+
* ```
|
|
58
|
+
* @note Use this component directly from the `useUnityForm` hook to have type-safety based on the form schema.
|
|
33
59
|
*/
|
|
34
|
-
|
|
35
|
-
export
|
|
36
|
-
var displayName: string;
|
|
37
|
-
}
|
|
60
|
+
declare const FormField: React.ForwardRefExoticComponent<FormFieldProps<FieldValues, string> & React.RefAttributes<HTMLDivElement>>;
|
|
61
|
+
export { FormField };
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
+
import d, { forwardRef as T, useMemo as p } from "react";
|
|
3
|
+
import { useController as I } from "react-hook-form";
|
|
4
|
+
import { tv as P } from "tailwind-variants";
|
|
5
|
+
import g from "../../hooks/use-id.mjs";
|
|
6
|
+
import { useUnityFormProvider as j } from "../form/Form.context.mjs";
|
|
7
|
+
import { FormFieldProvider as D } from "./FormField.context.mjs";
|
|
8
|
+
import { FormContextualLink as E } from "./parts/FormContextualLink.mjs";
|
|
9
|
+
import { FormHelperText as N } from "./parts/FormHelperText.mjs";
|
|
10
|
+
import { isFieldRequired as _ } from "./utils/isFieldRequired.mjs";
|
|
11
|
+
const w = P({
|
|
12
|
+
slots: {
|
|
13
|
+
base: "uy-flex uy-flex-col uy-gap-100"
|
|
14
|
+
}
|
|
15
|
+
}), M = T(
|
|
16
|
+
({
|
|
17
|
+
children: o,
|
|
18
|
+
control: f,
|
|
19
|
+
name: r,
|
|
20
|
+
isInvalid: u,
|
|
21
|
+
isLoading: c,
|
|
22
|
+
isReadOnly: x,
|
|
23
|
+
className: F,
|
|
24
|
+
isRequired: h,
|
|
25
|
+
isDisabled: y
|
|
26
|
+
}, b) => {
|
|
27
|
+
const C = g(), { schema: t } = j(), {
|
|
28
|
+
fieldState: { invalid: v },
|
|
29
|
+
formState: i
|
|
30
|
+
} = I({ name: r, control: f }), R = p(
|
|
31
|
+
() => _(t, r),
|
|
32
|
+
[t, r]
|
|
33
|
+
), { hasHelperText: k, hasContextualLink: q } = p(() => {
|
|
34
|
+
let s = !1, l = !1;
|
|
35
|
+
const m = (S) => {
|
|
36
|
+
d.Children.forEach(S, (n) => {
|
|
37
|
+
if (!d.isValidElement(n)) return;
|
|
38
|
+
const e = n;
|
|
39
|
+
e.type === N ? s = !0 : e.type === E && (l = !0), e.props && typeof e.props == "object" && "children" in e.props && m(e.props.children);
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
return m(o), { hasHelperText: s, hasContextualLink: l };
|
|
43
|
+
}, [o]), H = {
|
|
44
|
+
name: r,
|
|
45
|
+
isLoading: c,
|
|
46
|
+
isReadOnly: x,
|
|
47
|
+
hasHelperText: k,
|
|
48
|
+
hasContextualLink: q,
|
|
49
|
+
id: C,
|
|
50
|
+
isRequired: h ?? R,
|
|
51
|
+
isInvalid: u ?? v,
|
|
52
|
+
isDisabled: y ?? (i.isSubmitting || i.disabled)
|
|
53
|
+
}, { base: L } = w();
|
|
54
|
+
return /* @__PURE__ */ a("div", { ref: b, className: L({ className: F }), children: /* @__PURE__ */ a(D, { ...H, children: o }) });
|
|
55
|
+
}
|
|
56
|
+
);
|
|
57
|
+
M.displayName = "FormField";
|
|
58
|
+
export {
|
|
59
|
+
M as FormField
|
|
60
|
+
};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as m } from "react";
|
|
3
|
+
import { Button as l } from "react-aria-components";
|
|
4
|
+
import { Link as e } from "../../link/Link.mjs";
|
|
5
|
+
import { Text as u } from "../../text/Text.mjs";
|
|
6
|
+
import { useFormField as s } from "../FormField.context.mjs";
|
|
7
|
+
const d = m(({ children: o, href: r, onPress: i }, a) => {
|
|
8
|
+
const { formContextualLinkId: n } = s();
|
|
9
|
+
return r ? /* @__PURE__ */ t(
|
|
10
|
+
e,
|
|
11
|
+
{
|
|
12
|
+
id: n,
|
|
13
|
+
color: "secondary",
|
|
14
|
+
variant: "standalone",
|
|
15
|
+
"data-unity-slot": "contextual-link",
|
|
16
|
+
href: r,
|
|
17
|
+
ref: a,
|
|
18
|
+
children: /* @__PURE__ */ t(u, { variant: "actionSmall", children: o })
|
|
19
|
+
}
|
|
20
|
+
) : /* @__PURE__ */ t(
|
|
21
|
+
l,
|
|
22
|
+
{
|
|
23
|
+
id: n,
|
|
24
|
+
onPress: i,
|
|
25
|
+
"data-unity-slot": "contextual-link",
|
|
26
|
+
className: "uy-typography-body-small uy-w-fit",
|
|
27
|
+
ref: a,
|
|
28
|
+
children: o
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
});
|
|
32
|
+
d.displayName = "FormContextualLink";
|
|
33
|
+
export {
|
|
34
|
+
d as FormContextualLink
|
|
35
|
+
};
|