@payfit/unity-components 2.0.0 → 2.1.4
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/esm/components/alert/Alert.js +41 -29
- package/dist/esm/components/alert/parts/AlertTitle.js +8 -8
- package/dist/esm/components/app-layout/AppLayout.d.ts +2 -0
- package/dist/esm/components/app-menu/parts/AppMenuFooter.js +23 -23
- package/dist/esm/components/app-menu/parts/AppMenuHeader.d.ts +1 -1
- package/dist/esm/components/app-menu/parts/AppMenuHeader.js +9 -9
- package/dist/esm/components/autocomplete/Autocomplete.d.ts +0 -9
- package/dist/esm/components/autocomplete/Autocomplete.js +54 -57
- package/dist/esm/components/autocomplete/parts/AutocompleteItem.js +8 -8
- package/dist/esm/components/avatar/Avatar.variants.js +1 -1
- package/dist/esm/components/avatar/parts/AvatarFallback.js +26 -27
- package/dist/esm/components/badge/Badge.js +1 -1
- package/dist/esm/components/breadcrumbs/Breadcrumbs.variant.js +1 -1
- package/dist/esm/components/button/Button.js +6 -6
- package/dist/esm/components/button/Button.variants.d.ts +1 -0
- package/dist/esm/components/button/Button.variants.js +22 -15
- package/dist/esm/components/card/Card.context.d.ts +5 -0
- package/dist/esm/components/card/Card.context.js +14 -0
- package/dist/esm/components/card/Card.d.ts +210 -0
- package/dist/esm/components/card/Card.js +93 -0
- package/dist/esm/components/card/parts/CardContent.d.ts +37 -0
- package/dist/esm/components/card/parts/CardContent.js +8 -0
- package/dist/esm/components/card/parts/CardTitle.d.ts +55 -0
- package/dist/esm/components/card/parts/CardTitle.js +33 -0
- package/dist/esm/components/checkbox/Checkbox.js +38 -30
- package/dist/esm/components/checkbox/Checkbox.variants.d.ts +9 -9
- package/dist/esm/components/checkbox/Checkbox.variants.js +23 -7
- package/dist/esm/components/checkbox/TanstackCheckbox.d.ts +28 -0
- package/dist/esm/components/checkbox/TanstackCheckbox.js +51 -0
- package/dist/esm/components/checkbox/parts/CheckboxIndicator.js +7 -7
- package/dist/esm/components/checkbox-field/CheckboxField.d.ts +2 -0
- package/dist/esm/components/checkbox-field/TanstackCheckboxField.d.ts +14 -0
- package/dist/esm/components/checkbox-field/TanstackCheckboxField.js +40 -0
- package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.d.ts +4 -0
- package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.js +37 -0
- package/dist/esm/components/checkbox-group-field/CheckboxGroupField.d.ts +2 -0
- package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.d.ts +72 -0
- package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.js +40 -0
- package/dist/esm/components/client-side-pagination/parts/PaginationNavButton.js +1 -1
- package/dist/esm/components/client-side-pagination/parts/RawPaginationLink.js +10 -10
- package/dist/esm/components/collapsible/parts/CollapsibleContent.js +5 -5
- package/dist/esm/components/collapsible/parts/CollapsibleTitle.js +8 -8
- package/dist/esm/components/data-table/DataTable.d.ts +109 -16
- package/dist/esm/components/data-table/DataTable.js +107 -93
- package/dist/esm/components/data-table/mocks/employee-data.d.ts +1 -0
- package/dist/esm/components/date-calendar/DateCalendar.js +1 -1
- package/dist/esm/components/date-calendar/parts/DateSegmentSelect.js +1 -1
- package/dist/esm/components/date-picker/DatePicker.d.ts +1 -1
- package/dist/esm/components/date-picker/DatePicker.js +59 -50
- package/dist/esm/components/date-picker/TanstackDatePicker.d.ts +22 -0
- package/dist/esm/components/date-picker/TanstackDatePicker.js +53 -0
- package/dist/esm/components/date-picker/parts/DateInput.js +4 -4
- package/dist/esm/components/date-picker-field/DatePickerField.d.ts +2 -0
- package/dist/esm/components/date-picker-field/TanstackDatePickerField.d.ts +71 -0
- package/dist/esm/components/date-picker-field/TanstackDatePickerField.js +41 -0
- package/dist/esm/components/definition-list/DefinitionList.context.d.ts +19 -0
- package/dist/esm/components/definition-list/DefinitionList.d.ts +24 -0
- package/dist/esm/components/definition-list/parts/DefinitionItem.d.ts +25 -0
- package/dist/esm/components/dialog/Dialog.d.ts +34 -22
- package/dist/esm/components/dialog/Dialog.js +90 -52
- package/dist/esm/components/dialog/parts/DialogActions.js +6 -6
- package/dist/esm/components/dialog/parts/DialogTitle.js +7 -4
- package/dist/esm/components/dialog/test-utils.d.ts +28 -0
- package/dist/esm/components/dialog/test-utils.js +78 -0
- package/dist/esm/components/error-state/ErrorState.js +7 -7
- package/dist/esm/components/filter/Filter.controls.d.ts +192 -0
- package/dist/esm/components/filter/Filter.controls.js +45 -0
- package/dist/esm/components/filter/Filter.d.ts +189 -0
- package/dist/esm/components/filter/Filter.js +147 -0
- package/dist/esm/components/filter/Filter.types.d.ts +121 -0
- package/dist/esm/components/filter/hooks/useFilterIds.d.ts +49 -0
- package/dist/esm/components/filter/hooks/useFilterIds.js +13 -0
- package/dist/esm/components/filter/hooks/useFilterState.d.ts +74 -0
- package/dist/esm/components/filter/hooks/useFilterState.js +23 -0
- package/dist/esm/components/filter/hooks/useFilterValue.d.ts +61 -0
- package/dist/esm/components/filter/hooks/useFilterValue.js +31 -0
- package/dist/esm/components/filter/parts/FilterButton.d.ts +75 -0
- package/dist/esm/components/filter/parts/FilterButton.js +55 -0
- package/dist/esm/components/filter/parts/FilterLabel.d.ts +96 -0
- package/dist/esm/components/filter/parts/FilterLabel.js +57 -0
- package/dist/esm/components/filter/parts/FilterPopover.d.ts +95 -0
- package/dist/esm/components/filter/parts/FilterPopover.js +79 -0
- package/dist/esm/components/filter/utils/value-formatters.d.ts +62 -0
- package/dist/esm/components/filter/utils/value-formatters.js +14 -0
- package/dist/esm/components/filter-toolbar/FilterToolbar.d.ts +110 -0
- package/dist/esm/components/filter-toolbar/FilterToolbar.js +172 -0
- package/dist/esm/components/filter-toolbar/FilterToolbar.types.d.ts +119 -0
- package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.d.ts +96 -0
- package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.js +132 -0
- package/dist/esm/components/filter-toolbar/parts/AddFilter.d.ts +63 -0
- package/dist/esm/components/filter-toolbar/parts/AddFilter.js +107 -0
- package/dist/esm/components/filter-toolbar/parts/AddFilterItem.d.ts +18 -0
- package/dist/esm/components/filter-toolbar/parts/AddFilterItem.js +18 -0
- package/dist/esm/components/filter-toolbar/utils/filter-adapters.d.ts +93 -0
- package/dist/esm/components/filter-toolbar/utils/filter-adapters.js +88 -0
- package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.d.ts +24 -0
- package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.js +19 -0
- package/dist/esm/components/form/Form.d.ts +2 -0
- package/dist/esm/components/form/TanstackForm.d.ts +24 -0
- package/dist/esm/components/form/TanstackForm.js +29 -0
- package/dist/esm/components/form-field/FormField.d.ts +2 -0
- package/dist/esm/components/form-field/TanstackFormField.context.d.ts +10 -0
- package/dist/esm/components/form-field/TanstackFormField.context.js +14 -0
- package/dist/esm/components/form-field/TanstackFormField.d.ts +49 -0
- package/dist/esm/components/form-field/TanstackFormField.js +46 -0
- package/dist/esm/components/form-field/parts/FormControl.d.ts +2 -0
- package/dist/esm/components/form-field/parts/FormFeedbackText.d.ts +2 -0
- package/dist/esm/components/form-field/parts/FormHelperText.d.ts +2 -0
- package/dist/esm/components/form-field/parts/FormLabel.d.ts +2 -0
- package/dist/esm/components/form-field/parts/RawFormContextualLink.d.ts +2 -0
- package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.d.ts +12 -0
- package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.js +32 -0
- package/dist/esm/components/form-field/parts/TanstackFormHelperText.d.ts +11 -0
- package/dist/esm/components/form-field/parts/TanstackFormHelperText.js +25 -0
- package/dist/esm/components/form-field/parts/TanstackFormLabel.d.ts +8 -0
- package/dist/esm/components/form-field/parts/TanstackFormLabel.js +26 -0
- package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.d.ts +26 -0
- package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.js +45 -0
- package/dist/esm/components/icon-button/CircularIconButton.d.ts +9 -9
- package/dist/esm/components/icon-button/CircularIconButton.js +53 -36
- package/dist/esm/components/icon-button/IconButton.variants.d.ts +1 -0
- package/dist/esm/components/icon-button/IconButton.variants.js +44 -28
- package/dist/esm/components/input/Input.js +36 -35
- package/dist/esm/components/input/TanstackInput.d.ts +22 -0
- package/dist/esm/components/input/TanstackInput.js +38 -0
- package/dist/esm/components/label/Label.js +12 -12
- package/dist/esm/components/link/RawLink.js +38 -31
- package/dist/esm/components/list-view/ListView.d.ts +56 -0
- package/dist/esm/components/list-view/ListView.fixtures.d.ts +20 -0
- package/dist/esm/components/list-view/ListView.js +44 -0
- package/dist/esm/components/list-view/parts/ListViewItemLabel.d.ts +34 -0
- package/dist/esm/components/list-view/parts/ListViewItemLabel.js +22 -0
- package/dist/esm/components/list-view/parts/ListViewItemText.d.ts +33 -0
- package/dist/esm/components/list-view/parts/ListViewItemText.js +22 -0
- package/dist/esm/components/list-view/parts/ListViewSection.d.ts +14 -0
- package/dist/esm/components/list-view/parts/ListViewSection.js +21 -0
- package/dist/esm/components/list-view/parts/RawListViewItem.d.ts +102 -0
- package/dist/esm/components/list-view/parts/RawListViewItem.js +80 -0
- package/dist/esm/components/multi-select/MultiSelect.d.ts +5 -7
- package/dist/esm/components/multi-select/MultiSelect.js +199 -176
- package/dist/esm/components/multi-select/MultiselectTypes.d.ts +114 -0
- package/dist/esm/components/multi-select/TanstackMultiSelect.d.ts +7 -0
- package/dist/esm/components/multi-select/TanstackMultiSelect.js +41 -0
- package/dist/esm/components/multi-select/parts/MultiSelectButton.d.ts +2 -0
- package/dist/esm/components/multi-select/parts/MultiSelectButton.js +62 -46
- package/dist/esm/components/multi-select/parts/MultiSelectPopover.js +15 -15
- package/dist/esm/components/multi-select-field/MultiSelectField.d.ts +45 -12
- package/dist/esm/components/multi-select-field/MultiSelectField.js +56 -66
- package/dist/esm/components/multi-select-field/TanstackMultiSelectField.d.ts +92 -0
- package/dist/esm/components/multi-select-field/TanstackMultiSelectField.js +48 -0
- package/dist/esm/components/multi-select-field/test-utils.d.ts +17 -0
- package/dist/esm/components/multi-select-field/test-utils.js +45 -0
- package/dist/esm/components/nav/parts/RawNavItem.js +6 -6
- package/dist/esm/components/navigation-card/NavigationCard.context.d.ts +31 -0
- package/dist/esm/components/navigation-card/NavigationCard.context.js +13 -0
- package/dist/esm/components/navigation-card/NavigationCard.d.ts +46 -0
- package/dist/esm/components/navigation-card/NavigationCard.js +62 -0
- package/dist/esm/components/navigation-card/NavigationCard.types.d.ts +37 -0
- package/dist/esm/components/navigation-card/NavigationCard.variants.d.ts +1147 -0
- package/dist/esm/components/navigation-card/NavigationCard.variants.js +164 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardDescription.d.ts +39 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardDescription.js +22 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardGroup.d.ts +146 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardGroup.js +93 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardLabel.d.ts +32 -0
- package/dist/esm/components/navigation-card/parts/NavigationCardLabel.js +24 -0
- package/dist/esm/components/number-field/NumberField.d.ts +2 -0
- package/dist/esm/components/number-field/TanstackNumberField.d.ts +74 -0
- package/dist/esm/components/number-field/TanstackNumberField.js +44 -0
- package/dist/esm/components/number-input/NumberInput.js +31 -29
- package/dist/esm/components/number-input/TanstackNumberInput.d.ts +58 -0
- package/dist/esm/components/number-input/TanstackNumberInput.js +38 -0
- package/dist/esm/components/page/Page.js +12 -11
- package/dist/esm/components/pagination/parts/RawPaginationLink.js +22 -22
- package/dist/esm/components/pagination/parts/RawPaginationNext.js +13 -13
- package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +10 -10
- package/dist/esm/components/payfit-brand/PayFitBrand.d.ts +4 -0
- package/dist/esm/components/payfit-brand/PayFitBrand.js +30 -22
- package/dist/esm/components/payfit-brand/PayFitPreprod.js +25 -25
- package/dist/esm/components/phone-number/PhoneNumberInput.d.ts +67 -0
- package/dist/esm/components/phone-number/PhoneNumberInput.js +322 -0
- package/dist/esm/components/phone-number/TanstackPhoneNumberInput.d.ts +64 -0
- package/dist/esm/components/phone-number/TanstackPhoneNumberInput.js +33 -0
- package/dist/esm/components/phone-number/parts/PhoneNumberItem.d.ts +42 -0
- package/dist/esm/components/phone-number/parts/PhoneNumberItem.js +68 -0
- package/dist/esm/components/phone-number/unknownFlag.svg.js +4 -0
- package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.d.ts +15 -0
- package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.js +32 -0
- package/dist/esm/components/pill/Pill.d.ts +2 -2
- package/dist/esm/components/pill/Pill.js +8 -8
- package/dist/esm/components/popover/Popover.js +6 -6
- package/dist/esm/components/promo-dialog/PromoDialog.d.ts +149 -0
- package/dist/esm/components/promo-dialog/PromoDialog.js +219 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogActions.d.ts +44 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogActions.js +29 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogContent.d.ts +43 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogContent.js +20 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogHero.d.ts +47 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogHero.js +25 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.d.ts +53 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.js +21 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.d.ts +6 -0
- package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.js +18 -0
- package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.d.ts +13 -0
- package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.js +43 -0
- package/dist/esm/components/radio-button-group/parts/RadioButton.d.ts +29 -11
- package/dist/esm/components/radio-button-group/parts/RadioButton.js +53 -51
- package/dist/esm/components/radio-button-group-field/RadioButtonGroupField.d.ts +2 -0
- package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.d.ts +13 -0
- package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.js +38 -0
- package/dist/esm/components/search/Search.js +46 -46
- package/dist/esm/components/segmented-button-group/parts/ToggleButton.js +5 -5
- package/dist/esm/components/select/Select.d.ts +5 -4
- package/dist/esm/components/select/Select.js +53 -45
- package/dist/esm/components/select/TanstackSelect.d.ts +80 -0
- package/dist/esm/components/select/TanstackSelect.js +34 -0
- package/dist/esm/components/select/parts/SearchInput.d.ts +4 -1
- package/dist/esm/components/select/parts/SearchInput.js +49 -31
- package/dist/esm/components/select/parts/SelectButton.js +19 -17
- package/dist/esm/components/select-field/SelectField.d.ts +2 -0
- package/dist/esm/components/select-field/SelectField.js +8 -9
- package/dist/esm/components/select-field/TanstackSelectField.d.ts +124 -0
- package/dist/esm/components/select-field/TanstackSelectField.js +44 -0
- package/dist/esm/components/select-list/SelectList.d.ts +95 -0
- package/dist/esm/components/select-list/SelectList.js +79 -0
- package/dist/esm/components/select-list/SelectList.types.d.ts +29 -0
- package/dist/esm/components/select-list/constants.d.ts +36 -0
- package/dist/esm/components/select-list/constants.js +29 -0
- package/dist/esm/components/select-list/helpers.d.ts +42 -0
- package/dist/esm/components/select-list/helpers.js +48 -0
- package/dist/esm/components/select-list/hooks/useControlledSelection.d.ts +23 -0
- package/dist/esm/components/select-list/hooks/useControlledSelection.js +16 -0
- package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.d.ts +23 -0
- package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.js +31 -0
- package/dist/esm/components/select-list/parts/SelectListEmptyState.d.ts +8 -0
- package/dist/esm/components/select-list/parts/SelectListEmptyState.js +25 -0
- package/dist/esm/components/select-list/parts/SelectListOptGroup.d.ts +118 -0
- package/dist/esm/components/select-list/parts/SelectListOptGroup.js +28 -0
- package/dist/esm/components/select-list/parts/SelectListOption.d.ts +24 -0
- package/dist/esm/components/select-list/parts/SelectListOption.js +72 -0
- package/dist/esm/components/select-list/parts/SelectListSearchInput.d.ts +2 -0
- package/dist/esm/components/select-list/parts/SelectListSearchInput.js +43 -0
- package/dist/esm/components/select-list/parts/SelectedItemsSection.d.ts +54 -0
- package/dist/esm/components/select-list/parts/SelectedItemsSection.js +35 -0
- package/dist/esm/components/select-list/utils/partition.d.ts +13 -0
- package/dist/esm/components/select-list/utils/partition.js +9 -0
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.d.ts +1 -5
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.d.ts +6 -1
- package/dist/esm/components/selectable-button-group/SelectableButtonGroup.js +23 -23
- package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.d.ts +27 -0
- package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.js +34 -0
- package/dist/esm/components/selectable-button-group/parts/SelectableButton.d.ts +1 -16
- package/dist/esm/components/selectable-button-group/parts/SelectableButton.js +56 -57
- package/dist/esm/components/selectable-button-group-field/SelectableButtonGroupField.d.ts +2 -0
- package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.d.ts +81 -0
- package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.js +47 -0
- package/dist/esm/components/selectable-card/internals/Description.js +1 -1
- package/dist/esm/components/selectable-card/selectable-card-checkbox-group/SelectableCardCheckboxGroup.js +1 -1
- package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.d.ts +26 -0
- package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.js +32 -0
- package/dist/esm/components/selectable-card/selectable-card-checkbox-group/parts/SelectableCardCheckbox.js +24 -24
- package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.d.ts +2 -0
- package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.js +12 -14
- package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.d.ts +28 -0
- package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.js +32 -0
- package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/RadioIndicator.js +14 -13
- package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/SelectableCardRadio.js +27 -25
- package/dist/esm/components/selectable-card/selectableCard.variant.js +5 -5
- package/dist/esm/components/selectable-card-checkbox-group-field/SelectableCardCheckboxGroupField.d.ts +2 -0
- package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.d.ts +10 -0
- package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.js +38 -0
- package/dist/esm/components/selectable-card-radio-group-field/SelectableCardRadioGroupField.d.ts +2 -0
- package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.d.ts +10 -0
- package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.js +38 -0
- package/dist/esm/components/table/Table.context.d.ts +5 -0
- package/dist/esm/components/table/Table.context.js +14 -13
- package/dist/esm/components/table/Table.d.ts +93 -0
- package/dist/esm/components/table/Table.js +135 -107
- package/dist/esm/components/table/parts/TableBody.js +83 -21
- package/dist/esm/components/table/parts/TableEmptyState.js +6 -6
- package/dist/esm/components/table/parts/TableHeader.js +1 -1
- package/dist/esm/components/table/parts/TablePagination.js +1 -1
- package/dist/esm/components/table/parts/TableRow.js +1 -0
- package/dist/esm/components/tabs/Tabs.variant.d.ts +0 -6
- package/dist/esm/components/tabs/Tabs.variant.js +11 -12
- package/dist/esm/components/task-menu/parts/RawSubTask.js +26 -26
- package/dist/esm/components/task-menu/parts/RawTask.js +32 -28
- package/dist/esm/components/task-menu/parts/TaskGroup.js +30 -26
- package/dist/esm/components/task-menu/parts/task.variants.js +4 -2
- package/dist/esm/components/text/Text.d.ts +11 -1
- package/dist/esm/components/text/Text.js +41 -31
- package/dist/esm/components/text/Text.variants.d.ts +12 -0
- package/dist/esm/components/text/Text.variants.js +4 -0
- package/dist/esm/components/text-area/TanstackTextArea.d.ts +21 -0
- package/dist/esm/components/text-area/TanstackTextArea.js +35 -0
- package/dist/esm/components/text-area/TextArea.js +31 -29
- package/dist/esm/components/text-field/TanstackTextField.d.ts +79 -0
- package/dist/esm/components/text-field/TanstackTextField.js +60 -0
- package/dist/esm/components/text-field/TextField.d.ts +2 -0
- package/dist/esm/components/toast/UnityToast.js +5 -5
- package/dist/esm/components/toast/test-utils.d.ts +36 -0
- package/dist/esm/components/toast/test-utils.js +118 -0
- package/dist/esm/components/toggle-switch/TanstackToggleSwitch.d.ts +46 -0
- package/dist/esm/components/toggle-switch/TanstackToggleSwitch.js +25 -0
- package/dist/esm/components/toggle-switch/ToggleSwitch.d.ts +21 -9
- package/dist/esm/components/toggle-switch/ToggleSwitch.js +71 -32
- package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.d.ts +11 -0
- package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.js +34 -0
- package/dist/esm/components/toggle-switch-field/ToggleSwitchField.d.ts +2 -0
- package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.d.ts +57 -0
- package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.js +23 -0
- package/dist/esm/components/toggle-switch-group/ToggleSwitchGroup.js +1 -1
- package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.d.ts +19 -0
- package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.js +50 -0
- package/dist/esm/components/toggle-switch-group-field/ToggleSwitchGroupField.d.ts +2 -0
- package/dist/esm/docs/{table → examples/data}/mocks/employee-columns.d.ts +1 -1
- package/dist/esm/hooks/tanstack-form-context.d.ts +1 -0
- package/dist/esm/hooks/tanstack-form-context.js +8 -0
- package/dist/esm/hooks/use-form.d.ts +2 -0
- package/dist/esm/hooks/use-has-scroll.d.ts +71 -0
- package/dist/esm/hooks/use-has-scroll.js +75 -0
- package/dist/esm/hooks/use-tanstack-form.d.ts +369 -0
- package/dist/esm/hooks/use-tanstack-form.js +209 -0
- package/dist/esm/index.d.ts +44 -20
- package/dist/esm/index.js +457 -394
- package/dist/esm/index.storybook-testing.d.ts +3 -0
- package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.d.ts +6 -1
- package/dist/esm/integrations/tanstack-router/components/form-contextual-link/TanstackFormContextualLink.d.ts +43 -0
- package/dist/esm/integrations/tanstack-router/components/list-view/ListView.d.ts +34 -0
- package/dist/esm/integrations/tanstack-router/components/list-view/ListView.js +25 -0
- package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.d.ts +51 -0
- package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.js +32 -0
- package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.d.ts +73 -0
- package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.js +37 -0
- package/dist/esm/integrations/tanstack-router/index.d.ts +3 -0
- package/dist/esm/integrations/tanstack-router/utils/decorators.d.ts +1 -1
- package/dist/esm/integrations/tanstack-router.js +32 -26
- package/dist/esm/mocks/employees.d.ts +1 -5
- package/dist/esm/storybook-testing.js +8 -2
- package/dist/esm/storybook-utilities/previewTransform.d.ts +1 -0
- package/dist/esm/utils/scroll-detection.d.ts +77 -0
- package/dist/esm/utils/scroll-detection.js +33 -0
- package/dist/esm/utils/spacing.d.ts +63 -0
- package/dist/esm/utils/spacing.js +15 -0
- package/i18n/en-GB.json +21 -8
- package/i18n/es-ES.json +23 -10
- package/i18n/fr-FR.json +24 -11
- package/package.json +41 -42
- package/dist/esm/components/multi-select/Multiselect.types.d.ts +0 -109
- package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.d.ts +0 -6
- package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.js +0 -28
- package/dist/esm/integrations/react-router/v5/index.d.ts +0 -1
- package/dist/esm/integrations/react-router/v5.js +0 -4
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { PropsWithChildren } from 'react';
|
|
2
|
+
export interface CardTitleProps extends PropsWithChildren {
|
|
3
|
+
/** The heading level for the title. Defaults to 3 */
|
|
4
|
+
level?: 1 | 2 | 3 | 4 | 5 | 6;
|
|
5
|
+
/** Whether to visually hide the title (still accessible to screen readers) */
|
|
6
|
+
isHidden?: boolean;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* The `CardTitle` component renders the title for a Card. It provides semantic heading structure
|
|
10
|
+
* and ensures proper accessibility labeling for the Card container.
|
|
11
|
+
*
|
|
12
|
+
* Use CardTitle when you need to give your Card a visible or screen-reader-accessible title.
|
|
13
|
+
* You can configure the heading level, apply custom styles, or hide it visually while maintaining
|
|
14
|
+
* accessibility.
|
|
15
|
+
* @param {CardTitleProps} props - The props for the `CardTitle` component
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* import { Card, CardTitle } from '@payfit/unity-components'
|
|
19
|
+
*
|
|
20
|
+
* function Example() {
|
|
21
|
+
* return (
|
|
22
|
+
* <Card>
|
|
23
|
+
* <CardTitle>My Card Title</CardTitle>
|
|
24
|
+
* <p>Card content goes here</p>
|
|
25
|
+
* </Card>
|
|
26
|
+
* )
|
|
27
|
+
* }
|
|
28
|
+
* ```
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* // Custom heading level
|
|
32
|
+
* <Card>
|
|
33
|
+
* <CardTitle level={2}>Important Section</CardTitle>
|
|
34
|
+
* <p>Content...</p>
|
|
35
|
+
* </Card>
|
|
36
|
+
* ```
|
|
37
|
+
* @example
|
|
38
|
+
* ```tsx
|
|
39
|
+
* // Hidden title for accessibility
|
|
40
|
+
* <Card>
|
|
41
|
+
* <CardTitle isHidden>Screen reader only title</CardTitle>
|
|
42
|
+
* <p>Visual content that describes itself</p>
|
|
43
|
+
* </Card>
|
|
44
|
+
* ```
|
|
45
|
+
* @see {@link CardTitleProps} for all available props
|
|
46
|
+
* @remarks
|
|
47
|
+
* - The title is required for accessibility unless the Card has an `aria-label`
|
|
48
|
+
* - Use `isHidden` to hide the title visually while keeping it accessible
|
|
49
|
+
* - The default heading level is 3, but you can configure it based on your page structure
|
|
50
|
+
*/
|
|
51
|
+
declare function CardTitle({ children, level, isHidden }: CardTitleProps): import("react/jsx-runtime").JSX.Element;
|
|
52
|
+
declare namespace CardTitle {
|
|
53
|
+
var displayName: string;
|
|
54
|
+
}
|
|
55
|
+
export { CardTitle };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { uyTv as n } from "@payfit/unity-themes";
|
|
3
|
+
import { Heading as o } from "react-aria-components";
|
|
4
|
+
import { useCardContext as d } from "../Card.context.js";
|
|
5
|
+
const l = n({
|
|
6
|
+
base: ["uy:typography-h3 uy:text-content-neutral uy:leading-none"],
|
|
7
|
+
variants: {
|
|
8
|
+
isHidden: {
|
|
9
|
+
true: "uy:sr-only",
|
|
10
|
+
false: ""
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
defaultVariants: {
|
|
14
|
+
isHidden: !1
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
function u({ children: t, level: e = 3, isHidden: a = !1 }) {
|
|
18
|
+
const { titleId: r } = d(), i = l({ isHidden: a });
|
|
19
|
+
return /* @__PURE__ */ s(
|
|
20
|
+
o,
|
|
21
|
+
{
|
|
22
|
+
level: e,
|
|
23
|
+
id: r,
|
|
24
|
+
className: i,
|
|
25
|
+
"data-unity-slot": "card.title",
|
|
26
|
+
children: t
|
|
27
|
+
}
|
|
28
|
+
);
|
|
29
|
+
}
|
|
30
|
+
u.displayName = "CardTitle";
|
|
31
|
+
export {
|
|
32
|
+
u as CardTitle
|
|
33
|
+
};
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { forwardRef as B, isValidElement as
|
|
1
|
+
import { jsxs as l, jsx as a, Fragment as j } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as B, isValidElement as h, cloneElement as f } from "react";
|
|
3
3
|
import { useId as R } from "react-aria";
|
|
4
4
|
import { Checkbox as D } from "react-aria-components";
|
|
5
|
-
import { Text as
|
|
5
|
+
import { Text as u } from "../text/Text.js";
|
|
6
6
|
import { checkbox as E } from "./Checkbox.variants.js";
|
|
7
7
|
import { CheckboxIndicator as V } from "./parts/CheckboxIndicator.js";
|
|
8
8
|
const F = B(
|
|
9
|
-
({ children:
|
|
9
|
+
({ children: v, helperText: i, feedbackText: r, ...o }, N) => {
|
|
10
10
|
const e = R(), {
|
|
11
11
|
isDisabled: s,
|
|
12
12
|
isReadOnly: d,
|
|
@@ -14,70 +14,78 @@ const F = B(
|
|
|
14
14
|
isRequired: n,
|
|
15
15
|
requiredVariant: c = "required",
|
|
16
16
|
...x
|
|
17
|
-
} =
|
|
18
|
-
base:
|
|
19
|
-
wrapper:
|
|
20
|
-
asterisk:
|
|
21
|
-
optionalTag:
|
|
22
|
-
descriptionsContainer:
|
|
23
|
-
helperText:
|
|
24
|
-
feedbackText:
|
|
17
|
+
} = o, {
|
|
18
|
+
base: g,
|
|
19
|
+
wrapper: $,
|
|
20
|
+
asterisk: k,
|
|
21
|
+
optionalTag: C,
|
|
22
|
+
descriptionsContainer: q,
|
|
23
|
+
helperText: m,
|
|
24
|
+
feedbackText: b
|
|
25
25
|
} = E({
|
|
26
26
|
isDisabled: s,
|
|
27
27
|
isReadOnly: d,
|
|
28
28
|
isInvalid: t
|
|
29
|
-
}),
|
|
30
|
-
|
|
29
|
+
}), y = [o["aria-labelledby"], `${e}-label`].filter(Boolean), p = [
|
|
30
|
+
o["aria-describedby"],
|
|
31
31
|
typeof i == "string" ? `${e}-helper-text` : void 0,
|
|
32
32
|
typeof r == "string" ? `${e}-feedback-text` : void 0
|
|
33
|
-
].filter(Boolean), w =
|
|
34
|
-
return /* @__PURE__ */
|
|
33
|
+
].filter(Boolean), w = y.length > 0 ? y.join(" ") : void 0, I = p.length > 0 ? p.join(" ") : void 0;
|
|
34
|
+
return /* @__PURE__ */ l("div", { className: g(), children: [
|
|
35
35
|
/* @__PURE__ */ a(
|
|
36
36
|
D,
|
|
37
37
|
{
|
|
38
38
|
...x,
|
|
39
39
|
isInvalid: t,
|
|
40
|
-
ref:
|
|
41
|
-
className:
|
|
40
|
+
ref: N,
|
|
41
|
+
className: $(),
|
|
42
42
|
"aria-labelledby": w,
|
|
43
43
|
"aria-describedby": I,
|
|
44
44
|
isDisabled: s,
|
|
45
45
|
isReadOnly: d,
|
|
46
|
-
children: (S) => /* @__PURE__ */
|
|
47
|
-
/* @__PURE__ */ a(
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
children: (S) => /* @__PURE__ */ l(j, { children: [
|
|
47
|
+
/* @__PURE__ */ a(
|
|
48
|
+
V,
|
|
49
|
+
{
|
|
50
|
+
...S,
|
|
51
|
+
className: "uy:mt-50 uy:sm:mt-25 uy:ml-0"
|
|
52
|
+
}
|
|
53
|
+
),
|
|
54
|
+
/* @__PURE__ */ a("span", { id: `${e}-label`, "data-dd-privacy": "allow", children: v }),
|
|
55
|
+
c === "required" && n && /* @__PURE__ */ l("span", { className: k(), children: [
|
|
50
56
|
"*",
|
|
51
57
|
/* @__PURE__ */ a("span", { className: "uy:sr-only", children: "required" })
|
|
52
58
|
] }),
|
|
53
|
-
c === "optional" && !n && /* @__PURE__ */ a("span", { className:
|
|
59
|
+
c === "optional" && !n && /* @__PURE__ */ a("span", { className: C(), children: "(optional)" })
|
|
54
60
|
] })
|
|
55
61
|
}
|
|
56
62
|
),
|
|
57
|
-
(i || r) && /* @__PURE__ */
|
|
63
|
+
(i || r) && /* @__PURE__ */ l("div", { className: q(), "data-dd-privacy": "allow", children: [
|
|
58
64
|
typeof i == "string" ? /* @__PURE__ */ a(
|
|
59
|
-
|
|
65
|
+
u,
|
|
60
66
|
{
|
|
61
67
|
variant: "bodySmall",
|
|
62
68
|
color: "content.neutral.low",
|
|
63
69
|
id: `${e}-helper-text`,
|
|
70
|
+
className: m(),
|
|
64
71
|
children: i
|
|
65
72
|
}
|
|
66
|
-
) :
|
|
73
|
+
) : h(i) && f(i, {
|
|
67
74
|
"data-id": `${e}-helper-text`,
|
|
68
|
-
className:
|
|
75
|
+
className: m()
|
|
69
76
|
}),
|
|
70
77
|
t && (typeof r == "string" ? /* @__PURE__ */ a(
|
|
71
|
-
|
|
78
|
+
u,
|
|
72
79
|
{
|
|
73
80
|
variant: "bodySmallStrong",
|
|
74
81
|
color: "content.form.invalid",
|
|
75
82
|
id: `${e}-feedback-text`,
|
|
83
|
+
className: b(),
|
|
76
84
|
children: r
|
|
77
85
|
}
|
|
78
|
-
) :
|
|
86
|
+
) : h(r) && f(r, {
|
|
79
87
|
"data-id": `${e}-feedback-text`,
|
|
80
|
-
className:
|
|
88
|
+
className: b()
|
|
81
89
|
}))
|
|
82
90
|
] })
|
|
83
91
|
] });
|
|
@@ -13,12 +13,12 @@ export declare const checkbox: import('tailwind-variants').TVReturnType<{
|
|
|
13
13
|
};
|
|
14
14
|
};
|
|
15
15
|
}, {
|
|
16
|
-
base: string;
|
|
17
|
-
wrapper: string;
|
|
16
|
+
base: string[];
|
|
17
|
+
wrapper: string[];
|
|
18
18
|
asterisk: string;
|
|
19
19
|
optionalTag: string;
|
|
20
20
|
descriptionsContainer: string;
|
|
21
|
-
helperText: string;
|
|
21
|
+
helperText: string[];
|
|
22
22
|
feedbackText: string;
|
|
23
23
|
}, undefined, {
|
|
24
24
|
isDisabled: {
|
|
@@ -35,12 +35,12 @@ export declare const checkbox: import('tailwind-variants').TVReturnType<{
|
|
|
35
35
|
};
|
|
36
36
|
};
|
|
37
37
|
}, {
|
|
38
|
-
base: string;
|
|
39
|
-
wrapper: string;
|
|
38
|
+
base: string[];
|
|
39
|
+
wrapper: string[];
|
|
40
40
|
asterisk: string;
|
|
41
41
|
optionalTag: string;
|
|
42
42
|
descriptionsContainer: string;
|
|
43
|
-
helperText: string;
|
|
43
|
+
helperText: string[];
|
|
44
44
|
feedbackText: string;
|
|
45
45
|
}, import('tailwind-variants').TVReturnType<{
|
|
46
46
|
isDisabled: {
|
|
@@ -57,11 +57,11 @@ export declare const checkbox: import('tailwind-variants').TVReturnType<{
|
|
|
57
57
|
};
|
|
58
58
|
};
|
|
59
59
|
}, {
|
|
60
|
-
base: string;
|
|
61
|
-
wrapper: string;
|
|
60
|
+
base: string[];
|
|
61
|
+
wrapper: string[];
|
|
62
62
|
asterisk: string;
|
|
63
63
|
optionalTag: string;
|
|
64
64
|
descriptionsContainer: string;
|
|
65
|
-
helperText: string;
|
|
65
|
+
helperText: string[];
|
|
66
66
|
feedbackText: string;
|
|
67
67
|
}, undefined, unknown, unknown, undefined>>;
|
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
import { uyTv as e } from "@payfit/unity-themes";
|
|
2
|
-
const
|
|
2
|
+
const r = e({
|
|
3
3
|
slots: {
|
|
4
|
-
base:
|
|
5
|
-
|
|
4
|
+
base: [
|
|
5
|
+
"uy:group uy:inline-flex uy:flex-col",
|
|
6
|
+
"uy:rounded-md uy:sm:rounded-25",
|
|
7
|
+
"uy:px-150 uy:sm:px-0 uy:py-125 uy:sm:py-px",
|
|
8
|
+
"uy:border uy:sm:border-none uy:border-solid uy:border-border-neutral-enabled",
|
|
9
|
+
'uy:has-data-[focus-visible="true"]:outline-2 uy:has-data-[focus-visible="true"]:outline-utility-focus-ring uy:has-data-[focus-visible="true"]:outline-offset-2',
|
|
10
|
+
"uy:has-data-[disabled=true]:border-border-neutral-disabled",
|
|
11
|
+
"uy:has-data-[readonly=true]:border-border-neutral-disabled"
|
|
12
|
+
],
|
|
13
|
+
wrapper: [
|
|
14
|
+
"uy:sm:rounded-25 uy:leading-none uy:sm:leading-[1lh]",
|
|
15
|
+
"uy:inline-flex uy:items-start uy:gap-75",
|
|
16
|
+
"uy:typography-body uy:text-content-form-enabled",
|
|
17
|
+
"uy:data-[disabled=true]:text-content-form-disabled uy:data-[disabled]:cursor-not-allowed",
|
|
18
|
+
"uy:data-[readonly=true]:cursor-not-allowed"
|
|
19
|
+
],
|
|
6
20
|
asterisk: "uy:text-content-danger",
|
|
7
21
|
optionalTag: "uy:typography-body uy:leading-1",
|
|
8
|
-
descriptionsContainer: "uy:ml-300 uy:leading-1 uy:inline-flex uy:flex-col
|
|
9
|
-
helperText:
|
|
10
|
-
|
|
22
|
+
descriptionsContainer: "uy:ml-300 uy:leading-1 uy:inline-flex uy:flex-col",
|
|
23
|
+
helperText: [
|
|
24
|
+
"uy:block uy:typography-body-small uy:text-content-neutral-low uy:mt-50"
|
|
25
|
+
],
|
|
26
|
+
feedbackText: "uy:typography-body-small-strong uy:text-content-form-invalid uy:mt-50"
|
|
11
27
|
},
|
|
12
28
|
variants: {
|
|
13
29
|
isDisabled: {
|
|
@@ -61,5 +77,5 @@ const l = e({
|
|
|
61
77
|
]
|
|
62
78
|
});
|
|
63
79
|
export {
|
|
64
|
-
|
|
80
|
+
r as checkbox
|
|
65
81
|
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { CheckboxProps } from './Checkbox.js';
|
|
2
|
+
export type TanstackCheckboxProps = Omit<CheckboxProps, 'name' | 'selected' | 'defaultSelected' | 'isInvalid'>;
|
|
3
|
+
/**
|
|
4
|
+
* `TanstackCheckbox` is a controlled checkbox wired to the TanStack Form field context.
|
|
5
|
+
* It is based on the Unity `Checkbox` component.
|
|
6
|
+
*
|
|
7
|
+
* Value, invalid state, and events are driven by the TanStack field API.
|
|
8
|
+
*
|
|
9
|
+
* Example:
|
|
10
|
+
* ```tsx
|
|
11
|
+
* function ExampleField() {
|
|
12
|
+
* const form = useTanstackUnityForm<{ acceptTerms: boolean }>({ validators: {} })
|
|
13
|
+
* return (
|
|
14
|
+
* <form>
|
|
15
|
+
* <form.AppField name="acceptTerms">
|
|
16
|
+
* {() => (
|
|
17
|
+
* <TanstackCheckbox>
|
|
18
|
+
* I accept the terms and conditions
|
|
19
|
+
* </TanstackCheckbox>
|
|
20
|
+
* )}
|
|
21
|
+
* </form.AppField>
|
|
22
|
+
* </form>
|
|
23
|
+
* )
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
declare const TanstackCheckbox: import('react').ForwardRefExoticComponent<TanstackCheckboxProps & import('react').RefAttributes<HTMLLabelElement>>;
|
|
28
|
+
export { TanstackCheckbox };
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { jsx as p } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as u } from "react";
|
|
3
|
+
import { useFieldContext as k } from "../../hooks/tanstack-form-context.js";
|
|
4
|
+
import { useFieldA11yContext as C } from "../form-field/TanstackFormField.context.js";
|
|
5
|
+
import { Checkbox as y } from "./Checkbox.js";
|
|
6
|
+
const I = u(
|
|
7
|
+
({
|
|
8
|
+
children: i,
|
|
9
|
+
value: r,
|
|
10
|
+
isIndeterminate: d,
|
|
11
|
+
onBlur: n,
|
|
12
|
+
onChange: l,
|
|
13
|
+
isReadOnly: s,
|
|
14
|
+
isDisabled: c,
|
|
15
|
+
isRequired: m,
|
|
16
|
+
requiredVariant: b,
|
|
17
|
+
...f
|
|
18
|
+
}, h) => {
|
|
19
|
+
const e = k(), a = C(), x = e.state.meta.isTouched && !e.state.meta.isValid, t = [a.helperTextId, a.feedbackTextId].filter(Boolean).join(" ");
|
|
20
|
+
return /* @__PURE__ */ p(
|
|
21
|
+
y,
|
|
22
|
+
{
|
|
23
|
+
...f,
|
|
24
|
+
id: a.inputId,
|
|
25
|
+
ref: h,
|
|
26
|
+
value: r,
|
|
27
|
+
isSelected: e.state.value,
|
|
28
|
+
isIndeterminate: d,
|
|
29
|
+
requiredVariant: b,
|
|
30
|
+
isRequired: m,
|
|
31
|
+
onChange: (o) => {
|
|
32
|
+
e.handleChange(o), l?.(o);
|
|
33
|
+
},
|
|
34
|
+
onBlur: () => {
|
|
35
|
+
e.handleBlur(), n?.();
|
|
36
|
+
},
|
|
37
|
+
isReadOnly: s,
|
|
38
|
+
isDisabled: c,
|
|
39
|
+
isInvalid: x,
|
|
40
|
+
"aria-labelledby": a.labelId,
|
|
41
|
+
"aria-describedby": t.length > 0 ? t : void 0,
|
|
42
|
+
"aria-details": a.contextualLinkId,
|
|
43
|
+
children: i
|
|
44
|
+
}
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
I.displayName = "TanstackCheckbox";
|
|
49
|
+
export {
|
|
50
|
+
I as TanstackCheckbox
|
|
51
|
+
};
|
|
@@ -12,7 +12,7 @@ const c = u({
|
|
|
12
12
|
variants: {
|
|
13
13
|
isSelected: {
|
|
14
14
|
true: {
|
|
15
|
-
base: "uy:border-border-form-
|
|
15
|
+
base: "uy:border-border-form-selected uy:bg-surface-form-active uy:hover:border-border-form-active"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
isDisabled: {
|
|
@@ -85,8 +85,8 @@ const c = u({
|
|
|
85
85
|
isSelected: !0,
|
|
86
86
|
isReadOnly: !0,
|
|
87
87
|
className: {
|
|
88
|
-
base: "uy:bg-surface-form-disabled! uy:border-border-form-disabled",
|
|
89
|
-
checkmark: "uy:text-
|
|
88
|
+
base: "uy:bg-surface-form-disabled! uy:border-border-form-disabled!",
|
|
89
|
+
checkmark: "uy:text-surface-form-read-only!"
|
|
90
90
|
}
|
|
91
91
|
}
|
|
92
92
|
]
|
|
@@ -96,16 +96,16 @@ function n({
|
|
|
96
96
|
isDisabled: s,
|
|
97
97
|
isIndeterminate: a,
|
|
98
98
|
isInvalid: t,
|
|
99
|
-
isReadOnly:
|
|
100
|
-
className:
|
|
99
|
+
isReadOnly: o,
|
|
100
|
+
className: d
|
|
101
101
|
}) {
|
|
102
102
|
const { base: i, checkmark: l } = c({
|
|
103
103
|
isSelected: r || a,
|
|
104
104
|
isDisabled: s,
|
|
105
105
|
isInvalid: t,
|
|
106
|
-
isReadOnly:
|
|
106
|
+
isReadOnly: o
|
|
107
107
|
});
|
|
108
|
-
return /* @__PURE__ */ e("div", { className: i({ className:
|
|
108
|
+
return /* @__PURE__ */ e("div", { className: i({ className: d }), "data-dd-privacy": "mask", children: /* @__PURE__ */ e(
|
|
109
109
|
"svg",
|
|
110
110
|
{
|
|
111
111
|
fill: "none",
|
|
@@ -69,6 +69,8 @@ type CheckboxFieldComponent = (<TSchema extends Schema>(props: CheckboxFieldProp
|
|
|
69
69
|
* @note The schema type parameter is needed to ensure type safety with the form's
|
|
70
70
|
schema.
|
|
71
71
|
* If you omit it, the `name` prop will not be type-safe.
|
|
72
|
+
* @deprecated React Hook Form components are deprecated. Use the TanStack Form version instead.
|
|
73
|
+
* @see Storybook docs: https://unity-components.payfit.io/?path=/docs/forms-introduction-to-unity-forms--docs
|
|
72
74
|
*/
|
|
73
75
|
declare const CheckboxField: CheckboxFieldComponent;
|
|
74
76
|
export { CheckboxField };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TanstackCheckboxProps } from '../checkbox/TanstackCheckbox.js';
|
|
3
|
+
import { LabelProps } from '../label/Label.js';
|
|
4
|
+
export interface FieldProps extends Pick<LabelProps, 'isRequired' | 'requiredVariant'> {
|
|
5
|
+
/** The label for the checkbox. */
|
|
6
|
+
children: ReactNode;
|
|
7
|
+
/** Helper text to display below the checkbox. */
|
|
8
|
+
helperText?: ReactNode;
|
|
9
|
+
/** A contextual link to display below the checkbox. */
|
|
10
|
+
contextualLink?: ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export type TanstackCheckboxFieldProps = FieldProps & TanstackCheckboxProps;
|
|
13
|
+
declare const TanstackCheckboxField: import('react').ForwardRefExoticComponent<FieldProps & TanstackCheckboxProps & import('react').RefAttributes<HTMLLabelElement>>;
|
|
14
|
+
export { TanstackCheckboxField };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as f } from "react";
|
|
3
|
+
import { TanstackCheckbox as x } from "../checkbox/TanstackCheckbox.js";
|
|
4
|
+
import { TanstackFormFeedbackText as p } from "../form-field/parts/TanstackFormFeedbackText.js";
|
|
5
|
+
import { TanstackFormField as l } from "../form-field/TanstackFormField.js";
|
|
6
|
+
function F({
|
|
7
|
+
children: o,
|
|
8
|
+
helperText: r,
|
|
9
|
+
contextualLink: i,
|
|
10
|
+
isRequired: t,
|
|
11
|
+
isDisabled: a,
|
|
12
|
+
isReadOnly: c,
|
|
13
|
+
requiredVariant: m,
|
|
14
|
+
value: s,
|
|
15
|
+
...d
|
|
16
|
+
}, k) {
|
|
17
|
+
return /* @__PURE__ */ n(l, { children: [
|
|
18
|
+
/* @__PURE__ */ e(
|
|
19
|
+
x,
|
|
20
|
+
{
|
|
21
|
+
ref: k,
|
|
22
|
+
value: s,
|
|
23
|
+
requiredVariant: m,
|
|
24
|
+
helperText: r,
|
|
25
|
+
feedbackText: /* @__PURE__ */ e(p, {}),
|
|
26
|
+
...d,
|
|
27
|
+
isDisabled: a,
|
|
28
|
+
isReadOnly: c,
|
|
29
|
+
isRequired: t,
|
|
30
|
+
children: o
|
|
31
|
+
}
|
|
32
|
+
),
|
|
33
|
+
i
|
|
34
|
+
] });
|
|
35
|
+
}
|
|
36
|
+
const T = f(F);
|
|
37
|
+
T.displayName = "TanstackCheckboxField";
|
|
38
|
+
export {
|
|
39
|
+
T as TanstackCheckboxField
|
|
40
|
+
};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { CheckboxGroupProps } from './CheckboxGroup.js';
|
|
2
|
+
export type TanstackCheckboxGroupProps = Omit<CheckboxGroupProps, 'name' | 'value' | 'defaultValue' | 'isInvalid'>;
|
|
3
|
+
declare const TanstackCheckboxGroup: import('react').ForwardRefExoticComponent<TanstackCheckboxGroupProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export { TanstackCheckboxGroup };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { jsx as u } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as b } from "react";
|
|
3
|
+
import { useFieldContext as f } from "../../hooks/tanstack-form-context.js";
|
|
4
|
+
import { useFieldA11yContext as h } from "../form-field/TanstackFormField.context.js";
|
|
5
|
+
import { CheckboxGroup as x } from "./CheckboxGroup.js";
|
|
6
|
+
const k = b(
|
|
7
|
+
({ onChange: r, onBlur: i, isReadOnly: d, isDisabled: n, children: l, label: s, ...c }, m) => {
|
|
8
|
+
const e = f(), a = h(), p = e.state.meta.isTouched && !e.state.meta.isValid, o = [a.helperTextId, a.feedbackTextId].filter(Boolean).join(" ");
|
|
9
|
+
return /* @__PURE__ */ u(
|
|
10
|
+
x,
|
|
11
|
+
{
|
|
12
|
+
...c,
|
|
13
|
+
ref: m,
|
|
14
|
+
id: a.inputId,
|
|
15
|
+
label: s,
|
|
16
|
+
value: e.state.value,
|
|
17
|
+
onChange: (t) => {
|
|
18
|
+
e.handleChange(t), r?.(t);
|
|
19
|
+
},
|
|
20
|
+
onBlur: (t) => {
|
|
21
|
+
e.handleBlur(), i?.(t);
|
|
22
|
+
},
|
|
23
|
+
isReadOnly: d,
|
|
24
|
+
isDisabled: n,
|
|
25
|
+
isInvalid: p,
|
|
26
|
+
"aria-labelledby": a.labelId,
|
|
27
|
+
"aria-describedby": o.length > 0 ? o : void 0,
|
|
28
|
+
"aria-details": a.contextualLinkId,
|
|
29
|
+
children: l
|
|
30
|
+
}
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
k.displayName = "TanstackCheckboxGroup";
|
|
35
|
+
export {
|
|
36
|
+
k as TanstackCheckboxGroup
|
|
37
|
+
};
|
|
@@ -74,6 +74,8 @@ type CheckboxGroupFieldComponent = (<TSchema extends Schema>(props: CheckboxGrou
|
|
|
74
74
|
* ```
|
|
75
75
|
* @note The schema type parameter is needed to ensure type safety with the form's schema.
|
|
76
76
|
* If you omit it, the `name` prop will not be type-safe.
|
|
77
|
+
* @deprecated React Hook Form components are deprecated. Use the TanStack Form version instead.
|
|
78
|
+
* @see Storybook docs: https://unity-components.payfit.io/?path=/docs/forms-introduction-to-unity-forms--docs
|
|
77
79
|
*/
|
|
78
80
|
declare const CheckboxGroupField: CheckboxGroupFieldComponent;
|
|
79
81
|
export { CheckboxGroupField };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { TanstackCheckboxGroupProps } from '../checkbox-group/TanstackCheckboxGroup.js';
|
|
3
|
+
import { LabelProps } from '../label/Label.js';
|
|
4
|
+
export interface FieldProps extends Pick<LabelProps, 'isRequired' | 'requiredVariant'> {
|
|
5
|
+
/** Helper text to display below the group. */
|
|
6
|
+
helperText?: ReactNode;
|
|
7
|
+
/** A contextual link to display below the group. */
|
|
8
|
+
contextualLink?: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export type TanstackCheckGroupFieldProps = FieldProps & TanstackCheckboxGroupProps;
|
|
11
|
+
/**
|
|
12
|
+
* `TanstackCheckGroupField` is a composite field for TanStack Form that renders a
|
|
13
|
+
* complete checkbox group (label, helper/error, group) and automatically connects to
|
|
14
|
+
* the field context provided by `useTanstackUnityForm` and `<form.AppField name="…">`.
|
|
15
|
+
*
|
|
16
|
+
* Behavior:
|
|
17
|
+
* - Group rendering: relies on `TanstackCheckboxGroup` to manage the value (array of
|
|
18
|
+
* strings), focus, and events.
|
|
19
|
+
* - Messaging: renders helper text (`TanstackFormHelperText` via the `helperText` prop)
|
|
20
|
+
* and error feedback (`TanstackFormFeedbackText`) according to the TanStack form state.
|
|
21
|
+
* - Contextual link: allows displaying an additional link below the field via the
|
|
22
|
+
* `contextualLink` prop.
|
|
23
|
+
*
|
|
24
|
+
* Accessibility:
|
|
25
|
+
* - ARIA attributes (`aria-labelledby`, `aria-describedby`, `aria-details`) are wired by
|
|
26
|
+
* `TanstackFormField` and its sub-parts to associate the label, helper, and feedback
|
|
27
|
+
* with the control.
|
|
28
|
+
*
|
|
29
|
+
* Key props:
|
|
30
|
+
* - `label: string` — group label text.
|
|
31
|
+
* - `helperText?: ReactNode` — helper text displayed above the feedback.
|
|
32
|
+
* - `contextualLink?: ReactNode` — contextual link (referenced via `aria-details`).
|
|
33
|
+
* - Inherits the props from `TanstackCheckboxGroup` (except direct value management).
|
|
34
|
+
* - `isRequired?`, `requiredVariant?` — control how the required/optional indicator is displayed.
|
|
35
|
+
*
|
|
36
|
+
* Example:
|
|
37
|
+
* ```tsx
|
|
38
|
+
* import { TanstackCheckGroupField } from '@/components/checkbox-group-field/TanstackCheckGroupField'
|
|
39
|
+
* import { Checkbox } from '@/components/checkbox/Checkbox'
|
|
40
|
+
* import { useTanstackUnityForm } from '@/hooks/use-tanstack-form'
|
|
41
|
+
* import * as z from 'zod'
|
|
42
|
+
*
|
|
43
|
+
* const schema = z.object({
|
|
44
|
+
* preferences: z.array(z.enum(['email','sms','push'])).min(1),
|
|
45
|
+
* })
|
|
46
|
+
*
|
|
47
|
+
* function Example() {
|
|
48
|
+
* const form = useTanstackUnityForm({ validators: { onBlur: schema } })
|
|
49
|
+
* return (
|
|
50
|
+
* <form.AppForm>
|
|
51
|
+
* <form.Form>
|
|
52
|
+
* <form.AppField name="preferences">
|
|
53
|
+
* {() => (
|
|
54
|
+
* <TanstackCheckGroupField label="Preferences" helperText="Choose at least one option">
|
|
55
|
+
* <Checkbox value="email">Email</Checkbox>
|
|
56
|
+
* <Checkbox value="sms">SMS</Checkbox>
|
|
57
|
+
* <Checkbox value="push">Push</Checkbox>
|
|
58
|
+
* </TanstackCheckGroupField>
|
|
59
|
+
* )}
|
|
60
|
+
* </form.AppField>
|
|
61
|
+
* </form.Form>
|
|
62
|
+
* </form.AppForm>
|
|
63
|
+
* )
|
|
64
|
+
* }
|
|
65
|
+
* ```
|
|
66
|
+
*
|
|
67
|
+
* Migration notes from a non‑TanStack field:
|
|
68
|
+
* - Do not pass a `name` prop to the component — use `<form.AppField name="…">`.
|
|
69
|
+
* - `value`, `defaultValue`, and `isInvalid` are derived from the TanStack context.
|
|
70
|
+
*/
|
|
71
|
+
declare const TanstackCheckGroupField: import('react').ForwardRefExoticComponent<FieldProps & TanstackCheckboxGroupProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
72
|
+
export { TanstackCheckGroupField };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { jsxs as n, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as p } from "react";
|
|
3
|
+
import { TanstackCheckboxGroup as f } from "../checkbox-group/TanstackCheckboxGroup.js";
|
|
4
|
+
import { TanstackFormFeedbackText as l } from "../form-field/parts/TanstackFormFeedbackText.js";
|
|
5
|
+
import { TanstackFormField as u } from "../form-field/TanstackFormField.js";
|
|
6
|
+
function T({
|
|
7
|
+
helperText: r,
|
|
8
|
+
contextualLink: o,
|
|
9
|
+
isRequired: a,
|
|
10
|
+
isDisabled: i,
|
|
11
|
+
isReadOnly: t,
|
|
12
|
+
requiredVariant: c,
|
|
13
|
+
children: m,
|
|
14
|
+
label: s,
|
|
15
|
+
...d
|
|
16
|
+
}, k) {
|
|
17
|
+
return /* @__PURE__ */ n(u, { children: [
|
|
18
|
+
/* @__PURE__ */ e("div", { className: "uy:mt-25", children: /* @__PURE__ */ e(
|
|
19
|
+
f,
|
|
20
|
+
{
|
|
21
|
+
ref: k,
|
|
22
|
+
label: s,
|
|
23
|
+
requiredVariant: c,
|
|
24
|
+
helperText: r,
|
|
25
|
+
feedbackText: /* @__PURE__ */ e(l, {}),
|
|
26
|
+
...d,
|
|
27
|
+
isDisabled: i,
|
|
28
|
+
isReadOnly: t,
|
|
29
|
+
isRequired: a,
|
|
30
|
+
children: m
|
|
31
|
+
}
|
|
32
|
+
) }),
|
|
33
|
+
o
|
|
34
|
+
] });
|
|
35
|
+
}
|
|
36
|
+
const F = p(T);
|
|
37
|
+
F.displayName = "TanstackCheckGroupField";
|
|
38
|
+
export {
|
|
39
|
+
F as TanstackCheckGroupField
|
|
40
|
+
};
|