@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 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),f=require("react"),q=require("react-hook-form"),y=require("../checkbox/Checkbox.js"),j=require("../form-field/FormField.js"),p=require("../form-field/parts/FormControl.js"),T=require("../form-field/parts/FormFeedbackText.js");function g({name:o,children:r,defaultSelected:c,helperText:n,contextualLink:i,isRequired:s,isInvalid:l,isLoading:u,isDisabled:x,isReadOnly:d,requiredVariant:F,...a},m){const{control:b,watch:k}=q.useFormContext(),h=k(o),C={isRequired:s,isInvalid:l,isLoading:u,isDisabled:x,isReadOnly:d};return e.jsxs(j.FormField,{control:b,name:o,className:"uy-flex uy-flex-col uy-gap-100",...C,children:[e.jsx(p.FormControl,{children:e.jsx(y.Checkbox,{ref:m,defaultSelected:c,isSelected:h,requiredVariant:F,helperText:n,feedbackText:e.jsx(T.FormFeedbackText,{}),...a,children:r})}),i]})}const t=f.forwardRef(function(r,c){return g(r,c)});t.displayName="CheckboxField";exports.CheckboxField=t;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { CheckboxGroupProps as AriaCheckboxGroupProps } from 'react-aria-components';
|
|
3
|
+
import { VariantProps } from 'tailwind-variants';
|
|
4
|
+
export declare const checkboxGroup: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "uy-flex uy-flex-col uy-gap-50", import('tailwind-variants/dist/config').TVConfig<unknown, {} | {}>, {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "uy-flex uy-flex-col uy-gap-50", import('tailwind-variants/dist/config').TVConfig<unknown, {} | {}>, unknown, unknown, undefined>>;
|
|
5
|
+
export interface CheckboxGroupProps extends VariantProps<typeof checkboxGroup>, Omit<AriaCheckboxGroupProps, 'className' | 'class'> {
|
|
6
|
+
/** The label for the checkbox group. */
|
|
7
|
+
label: string;
|
|
8
|
+
/** Helper text to display below the checkbox group. */
|
|
9
|
+
helperText?: ReactNode;
|
|
10
|
+
/** Feedback text to display below the checkbox group. */
|
|
11
|
+
feedbackText?: ReactNode;
|
|
12
|
+
/** The default selected values of the checkbox group. */
|
|
13
|
+
defaultValue?: string[];
|
|
14
|
+
/** The current selected values of the checkbox group (controlled). */
|
|
15
|
+
value?: string[];
|
|
16
|
+
/** Whether the checkbox group is disabled. */
|
|
17
|
+
isDisabled?: boolean;
|
|
18
|
+
/** Whether the checkbox group is read-only. */
|
|
19
|
+
isReadOnly?: boolean;
|
|
20
|
+
/** Whether the checkbox group is invalid. */
|
|
21
|
+
isInvalid?: boolean;
|
|
22
|
+
/** Whether the checkbox group is required. */
|
|
23
|
+
isRequired?: boolean;
|
|
24
|
+
/** Whether the checkbox group is loading. */
|
|
25
|
+
isLoading?: boolean;
|
|
26
|
+
/** The variant of the required indicator. */
|
|
27
|
+
requiredVariant?: 'required' | 'optional';
|
|
28
|
+
/** Callback when the selection changes. */
|
|
29
|
+
onChange?: (value: string[]) => void;
|
|
30
|
+
/**
|
|
31
|
+
* Handler called when the checkbox receives focus.
|
|
32
|
+
*/
|
|
33
|
+
onFocus?: AriaCheckboxGroupProps['onFocus'];
|
|
34
|
+
/**
|
|
35
|
+
* Handler called when the checkbox loses focus.
|
|
36
|
+
*/
|
|
37
|
+
onBlur?: AriaCheckboxGroupProps['onBlur'];
|
|
38
|
+
/**
|
|
39
|
+
* Handler that is called when the element's focus status changes.
|
|
40
|
+
* @param isFocused
|
|
41
|
+
*/
|
|
42
|
+
onFocusChange?: (isFocused: boolean) => void;
|
|
43
|
+
children: ReactNode;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* The `CheckboxGroup` component is an accessible group of related checkboxes.
|
|
47
|
+
* It provides a way to select multiple options from a list of choices.
|
|
48
|
+
* @param {CheckboxGroupProps} props - The props for the `CheckboxGroup` component
|
|
49
|
+
* @example
|
|
50
|
+
* ```tsx
|
|
51
|
+
* import { CheckboxGroup, Checkbox } from '@payfit/unity-components'
|
|
52
|
+
*
|
|
53
|
+
* <CheckboxGroup
|
|
54
|
+
* label="Notification preferences"
|
|
55
|
+
* helperText="Choose how you want to receive notifications"
|
|
56
|
+
* >
|
|
57
|
+
* <Checkbox value="email">Email notifications</Checkbox>
|
|
58
|
+
* <Checkbox value="sms">SMS notifications</Checkbox>
|
|
59
|
+
* <Checkbox value="push">Push notifications</Checkbox>
|
|
60
|
+
* </CheckboxGroup>
|
|
61
|
+
* ```
|
|
62
|
+
* @see {@link CheckboxProps} for all available props
|
|
63
|
+
*/
|
|
64
|
+
declare const CheckboxGroup: import('react').ForwardRefExoticComponent<CheckboxGroupProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
65
|
+
export { CheckboxGroup };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),r=require("react"),g=require("react-aria-components"),j=require("tailwind-variants"),f=require("../label/Label.js"),l=require("../text/Text.js"),a=j.tv({base:"uy-flex uy-flex-col uy-gap-50"}),i=r.forwardRef(({label:t,helperText:n,feedbackText:e,isDisabled:u,isReadOnly:x,isInvalid:s,isRequired:c,isLoading:y,children:m,requiredVariant:p,...d},b)=>{const h={isDisabled:u,isReadOnly:x,isInvalid:s,isRequired:c,isLoading:y};return o.jsxs(g.CheckboxGroup,{...h,...d,ref:b,className:a(),children:[t&&o.jsx(f.Label,{isRequired:c,requiredVariant:p,children:t}),n&&o.jsx(l.Text,{variant:"bodySmall",color:"content.neutral.low",slot:"description",children:n}),o.jsx("div",{className:"uy-mt-100 uy-flex uy-flex-col uy-gap-150 uy-py-25",children:m}),s&&(typeof e=="string"?o.jsx(l.Text,{variant:"bodySmallStrong",color:"content.form.invalid",slot:"errorMessage",children:e}):r.isValidElement(e)&&r.cloneElement(e,{slot:"errorMessage"}))]})});i.displayName="CheckboxGroup";exports.CheckboxGroup=i;exports.checkboxGroup=a;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ForwardedRef, JSX, PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
import { FieldPath, FieldValues } from 'react-hook-form';
|
|
3
|
+
import { infer as ZodInfer } from 'zod';
|
|
4
|
+
import { Schema } from '../../hooks/use-form.types.js';
|
|
5
|
+
import { CheckboxGroupProps } from '../checkbox-group/CheckboxGroup.js';
|
|
6
|
+
import { LabelProps } from '../label/Label.js';
|
|
7
|
+
interface FieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> extends PropsWithChildren<Pick<LabelProps, 'isRequired' | 'requiredVariant'>> {
|
|
8
|
+
/** The name of the field, which should match the form schema. */
|
|
9
|
+
name: TName;
|
|
10
|
+
/** The label for the checkbox group. */
|
|
11
|
+
label: string;
|
|
12
|
+
/** Helper text to display below the checkbox group. */
|
|
13
|
+
helperText?: ReactNode;
|
|
14
|
+
/** A contextual link to display below the checkbox group. */
|
|
15
|
+
contextualLink?: ReactNode;
|
|
16
|
+
/** The default selected values of the checkbox group. */
|
|
17
|
+
defaultValue?: string[];
|
|
18
|
+
/** Whether the checkbox group is disabled. */
|
|
19
|
+
isDisabled?: boolean;
|
|
20
|
+
/** Whether the checkbox group is read-only. */
|
|
21
|
+
isReadOnly?: boolean;
|
|
22
|
+
/** Whether the checkbox group is invalid. */
|
|
23
|
+
isInvalid?: boolean;
|
|
24
|
+
/** Whether the checkbox group is loading. */
|
|
25
|
+
isLoading?: boolean;
|
|
26
|
+
/** Callback when the selection changes. */
|
|
27
|
+
onChange?: (value: string[]) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Handler called when the checkbox receives focus.
|
|
30
|
+
*/
|
|
31
|
+
onFocus?: CheckboxGroupProps['onFocus'];
|
|
32
|
+
/**
|
|
33
|
+
* Handler called when the checkbox loses focus.
|
|
34
|
+
*/
|
|
35
|
+
onBlur?: CheckboxGroupProps['onBlur'];
|
|
36
|
+
/**
|
|
37
|
+
* Handler that is called when the element's focus status changes.
|
|
38
|
+
* @param isFocused
|
|
39
|
+
*/
|
|
40
|
+
onFocusChange?: (isFocused: boolean) => void;
|
|
41
|
+
}
|
|
42
|
+
export type CheckboxGroupFieldProps<TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>> = FieldProps<TFieldValues, TName>;
|
|
43
|
+
type CheckboxGroupFieldComponent = (<TSchema extends Schema>(props: CheckboxGroupFieldProps<ZodInfer<TSchema>> & {
|
|
44
|
+
ref?: ForwardedRef<HTMLDivElement>;
|
|
45
|
+
}) => JSX.Element) & {
|
|
46
|
+
displayName?: string;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* The `CheckboxGroupField` component renders a group of related checkboxes that can be used in forms.
|
|
50
|
+
* It integrates with the `Form` component automatically and provides form validation, helper text,
|
|
51
|
+
* and error feedback.
|
|
52
|
+
* @example
|
|
53
|
+
* ```tsx
|
|
54
|
+
* const schema = z.object({
|
|
55
|
+
* preferences: z.array(z.string())
|
|
56
|
+
* })
|
|
57
|
+
*
|
|
58
|
+
* function MyForm() {
|
|
59
|
+
* const { Form } = useUnityForm(schema)
|
|
60
|
+
*
|
|
61
|
+
* return (
|
|
62
|
+
* <Form action={handleSubmit}>
|
|
63
|
+
* <CheckboxGroupField<typeof schema>
|
|
64
|
+
* name="preferences"
|
|
65
|
+
* label="Select your preferences"
|
|
66
|
+
* helperText="Choose all that apply"
|
|
67
|
+
* >
|
|
68
|
+
* <Checkbox value="email">Email notifications</Checkbox>
|
|
69
|
+
* <Checkbox value="sms">SMS notifications</Checkbox>
|
|
70
|
+
* </CheckboxGroupField>
|
|
71
|
+
* </Form>
|
|
72
|
+
* )
|
|
73
|
+
* }
|
|
74
|
+
* ```
|
|
75
|
+
* @note The schema type parameter is needed to ensure type safety with the form's schema.
|
|
76
|
+
* If you omit it, the `name` prop will not be type-safe.
|
|
77
|
+
*/
|
|
78
|
+
declare const CheckboxGroupField: CheckboxGroupFieldComponent;
|
|
79
|
+
export { CheckboxGroupField };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),q=require("react"),G=require("react-hook-form"),f=require("../checkbox-group/CheckboxGroup.js"),j=require("../form-field/FormField.js"),y=require("../form-field/parts/FormControl.js"),T=require("../form-field/parts/FormFeedbackText.js");function R({name:o,label:r,defaultValue:t,helperText:n,contextualLink:i,isRequired:u,isInvalid:s,isLoading:l,isDisabled:F,isReadOnly:d,requiredVariant:x,children:m,...b},a){const{control:k,watch:p}=G.useFormContext(),h=p(o),C={isRequired:u,isInvalid:s,isLoading:l,isDisabled:F,isReadOnly:d};return e.jsxs(j.FormField,{control:k,name:o,...C,children:[e.jsx(y.FormControl,{children:e.jsx(f.CheckboxGroup,{ref:a,label:r,defaultValue:t,value:h,helperText:n,feedbackText:e.jsx(T.FormFeedbackText,{}),requiredVariant:x,...b,children:m})}),i]})}const c=q.forwardRef(function(r,t){return R(r,t)});c.displayName="CheckboxGroupField";exports.CheckboxGroupField=c;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { DisclosureProps } from 'react-aria-components';
|
|
3
|
+
export interface CollapsibleProps extends Omit<DisclosureProps, 'isDisabled' | 'defaultExpanded' | 'className'> {
|
|
4
|
+
/**
|
|
5
|
+
* The content of the collapsible component.
|
|
6
|
+
* Typically includes a CollapsibleTitle and CollapsibleContent.
|
|
7
|
+
*/
|
|
8
|
+
children: ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Controls whether the collapsible is expanded by default.
|
|
11
|
+
* @default false
|
|
12
|
+
*/
|
|
13
|
+
isExpanded?: boolean;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @description
|
|
17
|
+
* The Collapsible component provides an expandable/collapsible container that can show or hide content.
|
|
18
|
+
* It's typically used to organize information in a space-efficient way, allowing users to focus on relevant content.
|
|
19
|
+
* @example
|
|
20
|
+
* ```tsx
|
|
21
|
+
* <Collapsible>
|
|
22
|
+
* <CollapsibleTitle>Section Title</CollapsibleTitle>
|
|
23
|
+
* <CollapsibleContent>
|
|
24
|
+
* Content that can be shown or hidden
|
|
25
|
+
* </CollapsibleContent>
|
|
26
|
+
* </Collapsible>
|
|
27
|
+
* ```
|
|
28
|
+
* @component
|
|
29
|
+
* @see {@link CollapsibleTitle} - The clickable title component that toggles the expanded state
|
|
30
|
+
* @see {@link CollapsibleContent} - The content component that is shown/hidden based on the expanded state
|
|
31
|
+
*/
|
|
32
|
+
declare const Collapsible: import('react').ForwardRefExoticComponent<CollapsibleProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
33
|
+
export { Collapsible };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @description
|
|
4
|
+
* The CollapsibleContent component renders the content that is shown or hidden
|
|
5
|
+
* when the parent Collapsible component is expanded or collapsed.
|
|
6
|
+
*/
|
|
7
|
+
export interface CollapsibleContentProps {
|
|
8
|
+
/**
|
|
9
|
+
* The content to be shown or hidden.
|
|
10
|
+
*/
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* The content component for a Collapsible.
|
|
15
|
+
*
|
|
16
|
+
* This component renders a DisclosurePanel that shows or hides its content
|
|
17
|
+
* based on the expanded state of the parent Collapsible component.
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* <Collapsible>
|
|
21
|
+
* <CollapsibleTitle>Section Title</CollapsibleTitle>
|
|
22
|
+
* <CollapsibleContent>
|
|
23
|
+
* This content will be shown or hidden based on the expanded state.
|
|
24
|
+
* </CollapsibleContent>
|
|
25
|
+
* </Collapsible>
|
|
26
|
+
* ```
|
|
27
|
+
* @component
|
|
28
|
+
* @see {@link Collapsible} - The parent component
|
|
29
|
+
* @see {@link CollapsibleTitle} - The title component that toggles the expanded state
|
|
30
|
+
* @param {CollapsibleContentProps} props - The component props
|
|
31
|
+
* @param {ReactNode} props.children - The content to be shown or hidden
|
|
32
|
+
* @param {React.Ref<HTMLDivElement>} ref - A ref to the underlying HTML div element
|
|
33
|
+
* @returns {JSX.Element} The rendered CollapsibleContent component
|
|
34
|
+
*/
|
|
35
|
+
declare const CollapsibleContent: import('react').ForwardRefExoticComponent<CollapsibleContentProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
36
|
+
export { CollapsibleContent };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* @description
|
|
4
|
+
* The CollapsibleTitle component renders the clickable header of a Collapsible component.
|
|
5
|
+
* It displays a title with an icon that rotates based on the expanded state.
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <Collapsible>
|
|
9
|
+
* <CollapsibleTitle>Section Title</CollapsibleTitle>
|
|
10
|
+
* <CollapsibleContent>Content</CollapsibleContent>
|
|
11
|
+
* </Collapsible>
|
|
12
|
+
* ```
|
|
13
|
+
* @component
|
|
14
|
+
* @see {@link Collapsible} - The parent component
|
|
15
|
+
* @see {@link CollapsibleContent} - The content component that is shown/hidden
|
|
16
|
+
*/
|
|
17
|
+
interface CollapsibleTitleProps {
|
|
18
|
+
/**
|
|
19
|
+
* The content of the collapsible title.
|
|
20
|
+
*/
|
|
21
|
+
children: ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Optional content to display after the title.
|
|
24
|
+
*/
|
|
25
|
+
suffix?: ReactNode;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The title component for a Collapsible.
|
|
29
|
+
*
|
|
30
|
+
* This component renders a heading with a button that toggles the expanded state of the parent Collapsible.
|
|
31
|
+
* It displays an icon that rotates based on the expanded state to indicate the current state.
|
|
32
|
+
* @param {CollapsibleTitleProps} props - The component props
|
|
33
|
+
* @param {ReactNode} props.children - The content of the title
|
|
34
|
+
* @param {ReactNode} [props.suffix] - Optional content to display after the title
|
|
35
|
+
* @param {React.Ref<HTMLDivElement>} ref - A ref to the underlying HTML div element
|
|
36
|
+
* @returns {JSX.Element} The rendered CollapsibleTitle component
|
|
37
|
+
*/
|
|
38
|
+
declare const CollapsibleTitle: import('react').ForwardRefExoticComponent<CollapsibleTitleProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
39
|
+
export { CollapsibleTitle };
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { CalendarDate } from '@internationalized/date';
|
|
2
|
+
import { DatePickerProps as AriaDatePickerProps } from 'react-aria-components';
|
|
3
|
+
export interface DatePickerProps extends Pick<AriaDatePickerProps<CalendarDate>, 'id' | 'firstDayOfWeek'> {
|
|
4
|
+
/** The currently selected date */
|
|
5
|
+
value?: CalendarDate;
|
|
6
|
+
/** The default selected date (uncontrolled) */
|
|
7
|
+
defaultValue?: CalendarDate;
|
|
8
|
+
/** The minimum allowed date */
|
|
9
|
+
minValue?: CalendarDate;
|
|
10
|
+
/** The maximum allowed date */
|
|
11
|
+
maxValue?: CalendarDate;
|
|
12
|
+
/** Callback fired when the date value changes */
|
|
13
|
+
onChange?: (value: CalendarDate | undefined) => void;
|
|
14
|
+
/** Callback fired when the clear button is clicked */
|
|
15
|
+
onClearButtonPress?: () => void;
|
|
16
|
+
/** Callback fired when the picker loses focus */
|
|
17
|
+
onBlur?: () => void;
|
|
18
|
+
/** Callback fired when the picker gains focus */
|
|
19
|
+
onFocus?: () => void;
|
|
20
|
+
/** Callback fired when the calendar overlay's open state changes */
|
|
21
|
+
onOpenChange?: (isOpen: boolean) => void;
|
|
22
|
+
/** Whether the picker is in an invalid state */
|
|
23
|
+
isInvalid?: boolean;
|
|
24
|
+
/** Whether the picker is in a loading state */
|
|
25
|
+
isLoading?: boolean;
|
|
26
|
+
/** Whether the picker is disabled */
|
|
27
|
+
isDisabled?: boolean;
|
|
28
|
+
/** Whether the picker is read-only */
|
|
29
|
+
isReadOnly?: boolean;
|
|
30
|
+
/** Function to determine if a date should be disabled */
|
|
31
|
+
isDateUnavailable?: (date: CalendarDate) => boolean;
|
|
32
|
+
/** Whether to force leading zeros for days and months */
|
|
33
|
+
shouldForceLeadingZeros?: boolean;
|
|
34
|
+
/** Whether to close the calendar after a date is selected */
|
|
35
|
+
shouldCloseOnSelect?: boolean;
|
|
36
|
+
/** Whether to open the calendar by default */
|
|
37
|
+
defaultOpen?: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The DatePicker component allows users to select a date either by typing it in directly or choosing from a calendar overlay, providing a standardized way to handle date selection across the application.
|
|
41
|
+
* @param {DatePickerProps} props - Props for configuring the DatePicker's behavior and appearance
|
|
42
|
+
* @see {@link DatePickerProps} for all available props
|
|
43
|
+
* @example
|
|
44
|
+
* ```tsx
|
|
45
|
+
* import { DatePicker } from '@payfit/unity-components'
|
|
46
|
+
* import { parseDate } from '@internationalized/date'
|
|
47
|
+
*
|
|
48
|
+
* function Example() {
|
|
49
|
+
* const [selectedDate, setSelectedDate] = useState<CalendarDate>()
|
|
50
|
+
*
|
|
51
|
+
* return (
|
|
52
|
+
* <DatePicker
|
|
53
|
+
* value={selectedDate}
|
|
54
|
+
* onChange={setSelectedDate}
|
|
55
|
+
* minValue={parseDate('2024-01-01')} // Restrict dates before Jan 1, 2024
|
|
56
|
+
* isDateUnavailable={(date) => date.dayOfWeek === 0} // Disable Sundays
|
|
57
|
+
* />
|
|
58
|
+
* )
|
|
59
|
+
* }
|
|
60
|
+
* ```
|
|
61
|
+
* @remarks
|
|
62
|
+
* [API & Docs](https://master--66fe6715241b661107117e47.chromatic.com/?path=/docs/inputs-datepicker--docs) • [Design Guidelines](https://www.payfit.design/24f360409/p/719ac2-date-picker)
|
|
63
|
+
* @note
|
|
64
|
+
* This component requires `@internationalized/date` as a peer dependency. Make sure to install it in your project: `yarn add @internationalized/date`
|
|
65
|
+
*/
|
|
66
|
+
declare const DatePicker: import('react').ForwardRefExoticComponent<DatePickerProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
67
|
+
export { DatePicker };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),I=require("react"),s=require("react-aria-components"),N=require("react-intl"),m=require("tailwind-variants"),P=require("../icon/Icon.js"),W=require("./parts/DateCalendar.js"),R=require("./parts/DateInput.js"),U=m.tv({slots:{base:["uy-group uy-flex uy-h-500 uy-border uy-border-solid uy-rounded-100","active:uy-border-border-form-active data-[focus-visible]:uy-border-border-form-active"],inputWrapper:["uy-flex uy-grow uy-rounded-75 uy-outline-none","focus-within:uy-outline-2 focus-within:uy-outline-utility-focus-ring focus-within:uy-outline-offset-2","group-[:has(button:focus)]:data-[focus-within]:uy-outline-none group-[:has(button:focus)]:data-[focus-within]:uy-outline-offset-0 group-[:has(button:focus)]:data-[focus-within]:uy-outline-transparent"],suffix:["uy-flex-grow-0 uy-content-center uy-pt-100 uy-pb-100 uy-pl-150 uy-pr-150 uy-border-l uy-rounded-r-100","hover:uy-bg-surface-neutral-hover active:uy-bg-surface-neutral-pressed active:uy-border-border-form-active data-[pressed]:uy-bg-surface-neutral-pressed data-[pressed]:uy-border-border-form-active","focus-visible:uy-outline-2 focus-visible:uy-outline-utility-focus-ring focus-visible:uy-outline-offset-[3px]"]},variants:{isInvalid:{true:{base:"uy-border-border-form-error uy-bg-surface-form-error",suffix:"uy-bg-surface-form-error uy-border-border-form-error"}},isReadOnly:{true:{base:"uy-border-border-form-disabled uy-bg-surface-form-disabled",inputWrapper:"uy-border-border-form-disabled uy-bg-surface-form-disabled",suffix:"uy-bg-surface-form-disabled uy-border-border-form-disabled uy-text-content-form-disabled"}},isDisabled:{true:{base:"uy-border-border-form-disabled uy-bg-surface-form-disabled",inputWrapper:"uy-bg-surface-form-disabled uy-text-content-form-disabled",suffix:"uy-bg-surface-form-disabled uy-border-border-form-disabled uy-text-content-form-disabled"}}},compoundVariants:[{isInvalid:!1,isDisabled:!1,isReadOnly:!1,className:{base:"uy-border-border-form-enabled uy-bg-surface-form-enabled",suffix:"uy-border-border-form-enabled uy-bg-surface-neutral-low uy-text-content-form-enabled"}}]}),M=m.tv({base:"uy-overflow-auto uy-shadow-floating uy-border uy-border-solid uy-border-border-neutral uy-bg-surface-neutral uy-rounded-75",variants:{isEntering:{true:"uy-animate-in uy-fade-in data-[placement-bottom]:uy-slide-in-from-top-1 data-[placement-top]:uy-slide-in-from-bottom-1 uy-duration-200 uy-ease-out"},isExiting:{true:"uy-animate-out uy-fade-out data-[placement-bottom]:uy-slide-out-to-top-1 data-[placement-top]:uy-slide-out-to-bottom-1 uy-duration-150 uy-ease-in"}}}),p=I.forwardRef(({value:f,defaultValue:b,isInvalid:y,isLoading:v,isDisabled:t,isReadOnly:u,onClearButtonPress:d,onBlur:o,onFocus:i,onChange:n,onOpenChange:l,id:x,...e},O)=>{const g=N.useIntl(),{base:h,inputWrapper:D,suffix:w}=U({isInvalid:!!y,isReadOnly:!!u,isDisabled:!!t}),c=r=>{n==null||n(r??void 0)},j=r=>{l==null||l(r),r?i==null||i():o==null||o()},k=r=>e.isDateUnavailable?e.isDateUnavailable(r):!1,V=()=>{d==null||d()};return a.jsxs(s.DatePicker,{...e,className:h(),value:f,defaultValue:b,minValue:e.minValue,maxValue:e.maxValue,isReadOnly:!!u,isDisabled:!!t,onChange:c,onFocus:i,onBlur:o,onOpenChange:j,isDateUnavailable:k,children:[a.jsxs(s.Group,{className:D(),id:x,children:[a.jsx(R.DateInput,{isLoading:v,isDisabled:t,isReadOnly:u,isInvalid:y,onClearButtonPress:V}),a.jsx(s.Button,{className:w(),isDisabled:u||t,children:a.jsx(P.Icon,{src:"CalendarBlankOutlined",color:"inherit",alt:g.formatMessage({id:"unity:component:form-field:date-picker:calendar-button",defaultMessage:"Open Calendar"})})})]}),a.jsx(s.Popover,{className:({isEntering:r,isExiting:q})=>M({isEntering:r,isExiting:q}),children:a.jsx(W.DateCalendar,{value:f,defaultValue:b,minValue:e.minValue,maxValue:e.maxValue,onChange:c,firstDayOfWeek:e.firstDayOfWeek})})]})});p.displayName="DatePicker";exports.DatePicker=p;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),e=require("@internationalized/date"),i=require("react-aria-components");function d(){const{locale:a}=i.useLocale(),s=new Intl.DateTimeFormat().resolvedOptions().calendar,t=e.createCalendar(s);return l.useMemo(()=>{const n=e.today(e.getLocalTimeZone()),o=new e.CalendarDate(t,n.year,n.month,n.day);return Array.from({length:t.getMonthsInYear(o)}).map((u,c)=>{const r=new e.CalendarDate(t,o.year,c+1,1);return{id:r.month.toString(),name:r.toDate(e.getLocalTimeZone()).toLocaleString(a,{month:"long"})}})},[a,t])}exports.useMonthsList=d;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface UseYearsListOptions {
|
|
2
|
+
yearsBefore?: number;
|
|
3
|
+
yearsAfter?: number;
|
|
4
|
+
startYear?: number;
|
|
5
|
+
endYear?: number;
|
|
6
|
+
}
|
|
7
|
+
export declare function useYearsList({ yearsBefore, yearsAfter, startYear, endYear, }?: UseYearsListOptions): {
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
}[];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),e=require("@internationalized/date"),L=require("react-aria-components");function C({yearsBefore:s=100,yearsAfter:d=30,startYear:l,endYear:u}={}){const{locale:o}=L.useLocale(),n=e.today(e.getLocalTimeZone()),m=new Intl.DateTimeFormat().resolvedOptions().calendar,a=e.createCalendar(m),c=new e.CalendarDate(a,n.year,n.month,n.day);let t=l,r=u;return t===void 0&&(t=c.year-s),r===void 0&&(r=c.year+d),f.useMemo(()=>Array.from({length:r-t+1}).map((D,y)=>{const i=t+y,g=new e.CalendarDate(a,i,1,1);return{id:i.toString(),name:g.toDate(e.getLocalTimeZone()).toLocaleString(o,{year:"numeric",calendar:a.identifier})}}),[o,a,r,t])}exports.useYearsList=C;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { DateValue } from '@internationalized/date';
|
|
2
|
+
import { CalendarProps as AriaDateCalendarProps } from 'react-aria-components';
|
|
3
|
+
type PropsFromAriaCalendar<TDate extends DateValue> = AriaDateCalendarProps<TDate>;
|
|
4
|
+
export type DateCalendarProps<TDate extends DateValue> = PropsFromAriaCalendar<TDate>;
|
|
5
|
+
declare function DateCalendar<TDate extends DateValue>({ value, defaultValue, minValue, maxValue, ...props }: DateCalendarProps<TDate>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare namespace DateCalendar {
|
|
7
|
+
var displayName: string;
|
|
8
|
+
}
|
|
9
|
+
export { DateCalendar };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),h=require("react"),d=require("@internationalized/date"),t=require("react-aria-components"),G=require("tailwind-variants"),g=require("../../icon-button/IconButton.js"),I=require("../hooks/useMonthsList.js"),Y=require("../hooks/useYearsList.js"),f=require("./DateSegmentSelect.js"),B=G.tv({slots:{dialog:"uy-p-150",calendarWrapper:"uy-flex uy-flex-col uy-gap-150",dialogHeader:"uy-flex uy-items-center uy-h-500 uy-w-full",dialogHeaderGroup:"uy-flex uy-items-center",calendarGrid:"uy-border-separate uy-border-spacing-0 uy-w-full",calendarHeaderCell:"uy-typography-body-strong uy-text-content-neutral-low uy-w-[44px] uy-h-[44px] uy-uppercase",calendarCell:["uy-typography-body uy-relative uy-text-content-form-enabled uy-w-[44px] uy-h-[44px] uy-outline-hidden uy-cursor-pointer uy-rounded-circle uy-flex uy-items-center uy-justify-center","hover:uy-bg-surface-neutral-hover active:uy-bg-surface-form-active data-[pressed]:uy-bg-surface-neutral-pressed focus-visible:uy-outline-2 focus-visible:uy-outline-utility-focus-ring focus-visible:uy-outline-offset-2","data-[outside-month]:uy-text-content-neutral-disabled data-[outside-month]:uy-cursor-not-allowed data-[disabled]:uy-text-content-neutral-disabled data-[disabled]:uy-cursor-not-allowed data-[unavailable]:uy-text-content-neutral-disabled data-[unavailable]:uy-cursor-not-allowed","data-[selected]:uy-bg-surface-form-active data-[selected]:uy-text-content-inverted","data-[today]:after:uy-content-' ' data-[today]:after:uy-absolute data-[today]:after:uy-bottom-150 data-[today]:after:uy-w-100 data-[today]:after:uy-h-25 data-[today]:after:uy-bg-border-primary-active data-[today]:data-[selected]:after:uy-bg-content-inverted"]},variants:{isDisabled:{true:{calendarHeaderCell:"uy-text-content-form-disabled"}}},defaultVariants:{isDisabled:!1}});function x({value:c,defaultValue:l,minValue:r,maxValue:n,...s}){const y=d.today(d.getLocalTimeZone()),[m,v]=h.useState(c??l??y),[o,i]=h.useState(c??l??y),C=I.useMonthsList(),p=Y.useYearsList({startYear:r==null?void 0:r.year,endYear:n==null?void 0:n.year}),D=a=>{i(u=>u.set({month:parseInt(a,10)}))},j=a=>{i(u=>u.set({year:parseInt(a,10)}))},{dialog:N,calendarWrapper:S,dialogHeader:w,dialogHeaderGroup:b,calendarGrid:H,calendarHeaderCell:q,calendarCell:L}=B({isDisabled:s.isDisabled});return e.jsx(t.Dialog,{className:N(),children:e.jsx(t.Calendar,{...s,minValue:r,maxValue:n,value:m,defaultValue:l,onChange:a=>{v(a)},focusedValue:o,onFocusChange:a=>{i(a)},children:e.jsxs("div",{className:S(),children:[e.jsxs("header",{className:w(),children:[e.jsx(t.Heading,{className:"uy-sr-only"}),e.jsxs("div",{className:b({className:"uy-pl-100 uy-gap-200"}),children:[e.jsx(f.DateSegmentSelect,{type:"month",items:C,value:o.month.toString(),onChange:D,isDisabled:s.isDisabled}),e.jsx(f.DateSegmentSelect,{type:"year",items:p,value:o.year.toString(),onChange:j,isDisabled:s.isDisabled})]}),e.jsxs("div",{className:b({className:"uy-ml-auto uy-gap-100"}),children:[e.jsx(g.IconButton,{slot:"previous",icon:"CaretLeftOutlined",color:"neutral",label:"Previous",variant:"ghost",isDisabled:s.isDisabled}),e.jsx(g.IconButton,{slot:"next",icon:"CaretRightOutlined",color:"neutral",label:"Next",variant:"ghost",isDisabled:s.isDisabled})]})]}),e.jsxs(t.CalendarGrid,{className:H(),weekdayStyle:"short",children:[e.jsx(t.CalendarGridHeader,{children:a=>e.jsx(t.CalendarHeaderCell,{className:q(),children:a})}),e.jsx(t.CalendarGridBody,{children:a=>e.jsx(t.CalendarCell,{date:a,"data-today":d.isToday(a,d.getLocalTimeZone())?!0:void 0,className:L()})})]})]})})})}x.displayName="DateCalendar";exports.DateCalendar=x;
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
import { CalendarDate } from '@internationalized/date';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
import { DateFieldProps } from 'react-aria-components';
|
|
4
|
+
export declare const dateInput: import('tailwind-variants').TVReturnType<{
|
|
5
|
+
isInvalid: {
|
|
6
|
+
true: {
|
|
7
|
+
base: string;
|
|
8
|
+
state: string;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
isReadOnly: {
|
|
12
|
+
true: {
|
|
13
|
+
base: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
isDisabled: {
|
|
17
|
+
true: {
|
|
18
|
+
base: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
}, {
|
|
22
|
+
base: string;
|
|
23
|
+
input: string;
|
|
24
|
+
state: string;
|
|
25
|
+
}, undefined, import('tailwind-variants/dist/config').TVConfig<{
|
|
26
|
+
isInvalid: {
|
|
27
|
+
true: {
|
|
28
|
+
base: string;
|
|
29
|
+
state: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
isReadOnly: {
|
|
33
|
+
true: {
|
|
34
|
+
base: string;
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
isDisabled: {
|
|
38
|
+
true: {
|
|
39
|
+
base: string;
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
}, {
|
|
43
|
+
isInvalid: {
|
|
44
|
+
true: {
|
|
45
|
+
base: string;
|
|
46
|
+
state: string;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
isReadOnly: {
|
|
50
|
+
true: {
|
|
51
|
+
base: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
isDisabled: {
|
|
55
|
+
true: {
|
|
56
|
+
base: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
}>, {
|
|
60
|
+
isInvalid: {
|
|
61
|
+
true: {
|
|
62
|
+
base: string;
|
|
63
|
+
state: string;
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
isReadOnly: {
|
|
67
|
+
true: {
|
|
68
|
+
base: string;
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
isDisabled: {
|
|
72
|
+
true: {
|
|
73
|
+
base: string;
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
}, {
|
|
77
|
+
base: string;
|
|
78
|
+
input: string;
|
|
79
|
+
state: string;
|
|
80
|
+
}, import('tailwind-variants').TVReturnType<{
|
|
81
|
+
isInvalid: {
|
|
82
|
+
true: {
|
|
83
|
+
base: string;
|
|
84
|
+
state: string;
|
|
85
|
+
};
|
|
86
|
+
};
|
|
87
|
+
isReadOnly: {
|
|
88
|
+
true: {
|
|
89
|
+
base: string;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
isDisabled: {
|
|
93
|
+
true: {
|
|
94
|
+
base: string;
|
|
95
|
+
};
|
|
96
|
+
};
|
|
97
|
+
}, {
|
|
98
|
+
base: string;
|
|
99
|
+
input: string;
|
|
100
|
+
state: string;
|
|
101
|
+
}, undefined, import('tailwind-variants/dist/config').TVConfig<{
|
|
102
|
+
isInvalid: {
|
|
103
|
+
true: {
|
|
104
|
+
base: string;
|
|
105
|
+
state: string;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
isReadOnly: {
|
|
109
|
+
true: {
|
|
110
|
+
base: string;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
isDisabled: {
|
|
114
|
+
true: {
|
|
115
|
+
base: string;
|
|
116
|
+
};
|
|
117
|
+
};
|
|
118
|
+
}, {
|
|
119
|
+
isInvalid: {
|
|
120
|
+
true: {
|
|
121
|
+
base: string;
|
|
122
|
+
state: string;
|
|
123
|
+
};
|
|
124
|
+
};
|
|
125
|
+
isReadOnly: {
|
|
126
|
+
true: {
|
|
127
|
+
base: string;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
isDisabled: {
|
|
131
|
+
true: {
|
|
132
|
+
base: string;
|
|
133
|
+
};
|
|
134
|
+
};
|
|
135
|
+
}>, unknown, unknown, undefined>>;
|
|
136
|
+
export interface DateInputProps extends DateFieldProps<CalendarDate> {
|
|
137
|
+
/** Element to display after the input field */
|
|
138
|
+
suffix?: ReactElement;
|
|
139
|
+
/** Whether the field is required */
|
|
140
|
+
isRequired?: boolean;
|
|
141
|
+
/** Whether the field is in an invalid state */
|
|
142
|
+
isInvalid?: boolean;
|
|
143
|
+
/** Whether the field is in a loading state */
|
|
144
|
+
isLoading?: boolean;
|
|
145
|
+
/** Whether the field is disabled */
|
|
146
|
+
isDisabled?: boolean;
|
|
147
|
+
/** Whether the field is read-only */
|
|
148
|
+
isReadOnly?: boolean;
|
|
149
|
+
/** Clear button click handler */
|
|
150
|
+
onClearButtonPress?: () => void;
|
|
151
|
+
}
|
|
152
|
+
export declare function DateInput({ isLoading, isInvalid, isReadOnly, isDisabled, onClearButtonPress, }: DateInputProps): import("react/jsx-runtime").JSX.Element;
|
|
153
|
+
export declare namespace DateInput {
|
|
154
|
+
var displayName: string;
|
|
155
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("react"),s=require("react-aria-components"),I=require("react-intl"),c=require("tailwind-variants"),v=require("../../icon-button/CircularIconButton.js"),j=require("../../icon/Icon.js"),h=require("../../spinner/Spinner.js"),q=c.tv({base:"uy-group uy-box-content uy-rounded-25 uy-px-25 uy-text-end uy-tabular-nums uy-outline-none uy-typography-body focus:uy-bg-surface-form-active focus:uy-rounded-25 focus:uy-text-content-inverted data-[disabled]:uy-text-content-form-disabled",variants:{isPlaceholder:{true:"uy-text-content-neutral-lowest",false:"uy-text-content-form-enabled"},isLiteral:{true:"uy-text-content-form-enabled",false:""}}}),d=c.tv({slots:{base:"uy-flex uy-gap-50 uy-flex-grow uy-pt-100 uy-pb-100 uy-pl-150 uy-pr-150 uy-rounded-100",input:"uy-flex uy-gap-25 uy-w-fit uy-grow",state:"uy-flex uy-gap-50 uy-items-center"},variants:{isInvalid:{true:{base:"uy-bg-surface-form-error",state:"uy-text-content-form-error"}},isReadOnly:{true:{base:"uy-border-border-form-disabled uy-bg-surface-form-disabled"}},isDisabled:{true:{base:"uy-bg-surface-form-disabled uy-text-content-form-disabled"}}},compoundVariants:[{isInvalid:!1,isDisabled:!1,isReadOnly:!1,className:{base:"uy-border-border-form-enabled uy-bg-surface-form-enabled",state:"uy-text-content-neutral-disabled"}}]});function y({isLoading:u,isInvalid:o,isReadOnly:l,isDisabled:i,onClearButtonPress:a}){const n=I.useIntl(),t=g.useContext(s.DatePickerStateContext),{dateValue:f}=t,{base:m,input:b,state:p}=d({isInvalid:!!o,isReadOnly:!!l,isDisabled:!!i}),x=f&&!u&&!l&&!i;return e.jsxs("div",{className:m(),children:[e.jsx(s.DateInput,{className:b(),children:r=>e.jsx(s.DateSegment,{segment:r,className:q({isPlaceholder:r.isPlaceholder,isLiteral:r.type==="literal"})})}),e.jsxs("div",{className:p(),children:[u&&e.jsx(h.Spinner,{color:"inherit",size:"small",label:n.formatMessage({id:"unity:component:common:loading:label",defaultMessage:"Loading..."})}),o&&e.jsx(j.Icon,{src:"WarningCircleOutlined",color:"content.form.invalid",alt:n.formatMessage({id:"unity:component:form-field:form-input:error:alt",defaultMessage:"Error"})}),x&&e.jsx(v.CircularIconButton,{slot:null,title:n.formatMessage({id:"unity:component:form-field:form-input:clear:title",defaultMessage:"Clear"}),icon:"CloseOutlined",onPress:()=>{t==null||t.setValue(null),a==null||a()}})]})]})}y.displayName="DateInput";exports.DateInput=y;exports.dateInput=d;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface DateSegmentSelectProps {
|
|
2
|
+
items: Array<{
|
|
3
|
+
id: string | number;
|
|
4
|
+
name: string;
|
|
5
|
+
}>;
|
|
6
|
+
value: string;
|
|
7
|
+
onChange: (value: string) => void;
|
|
8
|
+
type: 'month' | 'year';
|
|
9
|
+
isDisabled?: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare function DateSegmentSelect({ items, value, onChange, type, isDisabled, }: DateSegmentSelectProps): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare namespace DateSegmentSelect {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
export { DateSegmentSelect };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),v=require("react"),I=require("@payfit/unity-icons"),S=require("react-aria"),j=require("react-intl");function m({items:s,value:i,onChange:g,type:e,isDisabled:o=!1}){const c=t=>()=>{const a=s.find(x=>x.id===t);return(a==null?void 0:a.name)??Array.from({length:3}).join("\0")},r=S.useId(),l=j.useIntl(),[h,b]=v.useState(c(i)),d=`${r}-calendar-${e}-select-label`,u=`${r}-calendar-${e}-select`,y=`${r}-calendar-${e}-select-description`,f=e==="month"?"unity:component:form-field:date-picker:segment-select:month":"unity:component:form-field:date-picker:segment-select:year",p=e==="month"?"unity:component:form-field:date-picker:segment-select:month-description":"unity:component:form-field:date-picker:segment-select:year-description";return n.jsxs("div",{className:"uy-isolation-isolate uy-relative uy-inline-flex uy-items-center uy-cursor-pointer",children:[n.jsx("label",{id:d,htmlFor:u,className:"uy-sr-only","aria-hidden":"true",children:l.formatMessage({id:f,defaultMessage:`Change current ${e}`})}),n.jsx("select",{id:u,value:i,onChange:t=>{g(t.target.value),b(c(t.target.value))},disabled:o,className:"uy-appearance-none uy-box-border uy-w-[var(--uy-selected-item-width)] uy-bg-transparent uy-border-none uy-rounded-50 uy-capitalize uy-text-content-form-enabled uy-typography-action-large uy-cursor-pointer uy-pr-300 disabled:uy-text-content-form-disabled focus-visible:uy-outline-2 focus-visible:uy-outline-offset-2 focus-visible:uy-outline-utility-focus-ring [-webkit-tap-highlight-color:transparent] [background-color:transparent]",style:{"--uy-selected-item-width":`calc(var(--uy-spacing-300) + ${h.length}ch)`},"aria-labelledby":d,"aria-describedby":y,children:s.map(t=>n.jsx("option",{value:t.id,children:t.name},t.id))}),n.jsx("div",{className:"uy-absolute uy-right-0 uy-pointer-events-none",children:n.jsx(I.IconSprite,{src:"CaretDownOutlined",width:20,height:20,color:"inherit",role:"presentation",className:o?"uy-text-content-form-disabled":""})}),n.jsx("span",{id:y,className:"uy-sr-only","aria-hidden":"true",children:l.formatMessage({id:p,defaultMessage:`Press Enter or Space to change ${e}, then use up and down arrows to select a ${e}`})})]})}m.displayName="DateSegmentSelect";exports.DateSegmentSelect=m;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CalendarDate } from '@internationalized/date';
|
|
2
|
+
/**
|
|
3
|
+
* Converts a JS Date or string to a CalendarDate, preserving the local date components
|
|
4
|
+
* regardless of timezone.
|
|
5
|
+
*/
|
|
6
|
+
export declare const parseDateValue: (value: Date | string | undefined) => CalendarDate | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Converts a CalendarDate to a JS Date, preserving the local date components.
|
|
9
|
+
* This ensures that "2024-03-15" becomes "March 15, 2024" in the local timezone,
|
|
10
|
+
* without any unexpected shifts due to timezone conversion.
|
|
11
|
+
*/
|
|
12
|
+
export declare const calendarDateToDate: (date: CalendarDate | null) => Date | undefined;
|