@payfit/unity-components 1.2.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/action-bar/ActionBar.js +14 -14
- package/dist/esm/components/actionable/Actionable.js +31 -28
- 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-layout/AppLayout.js +17 -17
- package/dist/esm/components/app-menu/parts/AppMenuFooter.js +23 -23
- package/dist/esm/components/app-menu/parts/AppMenuHeader.d.ts +87 -5
- package/dist/esm/components/app-menu/parts/AppMenuHeader.js +25 -25
- 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.context.js +3 -3
- package/dist/esm/components/breadcrumbs/Breadcrumbs.d.ts +19 -11
- package/dist/esm/components/breadcrumbs/Breadcrumbs.js +29 -18
- package/dist/esm/components/breadcrumbs/Breadcrumbs.variant.js +1 -1
- package/dist/esm/components/breadcrumbs/parts/Breadcrumb.d.ts +30 -5
- package/dist/esm/components/breadcrumbs/parts/Breadcrumb.js +35 -27
- package/dist/esm/components/breadcrumbs/parts/RawBreadcrumbLink.d.ts +37 -0
- package/dist/esm/components/breadcrumbs/parts/RawBreadcrumbLink.js +36 -0
- 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/ClientSidePagination.d.ts +103 -0
- package/dist/esm/components/client-side-pagination/ClientSidePagination.js +177 -0
- package/dist/esm/components/client-side-pagination/parts/PaginationEllipsis.d.ts +11 -0
- package/dist/esm/components/client-side-pagination/parts/PaginationEllipsis.js +30 -0
- package/dist/esm/components/client-side-pagination/parts/PaginationJumpDialog.d.ts +8 -0
- package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationNavButton.js +1 -1
- package/dist/esm/components/{pagination/parts/PaginationLink.d.ts → client-side-pagination/parts/RawPaginationLink.d.ts} +2 -2
- package/dist/esm/components/{pagination/parts/PaginationLink.js → client-side-pagination/parts/RawPaginationLink.js} +12 -12
- package/dist/esm/components/client-side-pagination/utils/pagination-window.d.ts +8 -0
- package/dist/esm/components/client-side-pagination/utils/pagination-window.js +33 -0
- 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.d.ts +13 -1
- package/dist/esm/components/error-state/ErrorState.js +133 -92
- package/dist/esm/components/error-state/initConfig.js +1 -1
- package/dist/esm/components/fieldset/Fieldset.d.ts +19 -0
- package/dist/esm/components/fieldset/Fieldset.js +32 -26
- 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/flex/Flex.js +52 -37
- 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/FormField.js +12 -12
- 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 +22 -0
- package/dist/esm/components/form-field/parts/RawFormContextualLink.js +39 -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/funnel-layout/parts/FunnelSidebar.d.ts +2 -2
- package/dist/esm/components/icon/Icon.js +23 -19
- 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/{Link.variants.d.ts → RawLink.d.ts} +92 -0
- package/dist/esm/components/link/{Link.variants.js → RawLink.js} +78 -5
- 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/menu/parts/{MenuItem.d.ts → RawMenuItem.d.ts} +3 -4
- package/dist/esm/components/menu/parts/{MenuItem.js → RawMenuItem.js} +9 -9
- 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/NavGroup.d.ts +3 -3
- package/dist/esm/components/nav/parts/NavGroup.js +62 -51
- package/dist/esm/components/nav/parts/{NavItem.d.ts → RawNavItem.d.ts} +102 -5
- package/dist/esm/components/nav/parts/RawNavItem.js +106 -0
- 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 +13 -12
- package/dist/esm/components/page/parts/PageHeader.d.ts +79 -9
- package/dist/esm/components/page/parts/PageHeader.js +22 -20
- package/dist/esm/components/pagination/Pagination.d.ts +23 -44
- package/dist/esm/components/pagination/Pagination.js +89 -163
- package/dist/esm/components/pagination/PaginationContext.d.ts +11 -0
- package/dist/esm/components/pagination/PaginationContext.js +15 -0
- package/dist/esm/components/pagination/hooks/use-pagination-state.d.ts +63 -0
- package/dist/esm/components/pagination/hooks/use-pagination-state.js +27 -0
- package/dist/esm/components/pagination/hooks/use-pagination-window.d.ts +64 -0
- package/dist/esm/components/pagination/hooks/use-pagination-window.js +15 -0
- package/dist/esm/components/pagination/parts/PaginationContent.d.ts +30 -0
- package/dist/esm/components/pagination/parts/PaginationContent.js +37 -0
- package/dist/esm/components/pagination/parts/PaginationEllipsis.d.ts +23 -4
- package/dist/esm/components/pagination/parts/PaginationEllipsis.js +20 -16
- package/dist/esm/components/pagination/parts/PaginationItem.d.ts +38 -0
- package/dist/esm/components/pagination/parts/PaginationItem.js +22 -0
- package/dist/esm/components/pagination/parts/RawPaginationLink.d.ts +11 -0
- package/dist/esm/components/pagination/parts/RawPaginationLink.js +60 -0
- package/dist/esm/components/pagination/parts/RawPaginationNext.d.ts +22 -0
- package/dist/esm/components/pagination/parts/RawPaginationNext.js +70 -0
- package/dist/esm/components/pagination/parts/RawPaginationPrevious.d.ts +22 -0
- package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +67 -0
- package/dist/esm/components/pagination/utils/pagination-window.js +29 -20
- 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 +79 -53
- 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/parts/SelectOption.js +9 -9
- 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/skip-links/SkipLinks.js +1 -1
- 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 +94 -0
- package/dist/esm/components/table/Table.js +145 -108
- package/dist/esm/components/table/hooks/useTableKeyboardNavigation.js +6 -6
- package/dist/esm/components/table/parts/TableBody.js +83 -21
- package/dist/esm/components/table/parts/TableCell.js +29 -26
- 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.d.ts +5 -5
- package/dist/esm/components/table/parts/TablePagination.js +11 -11
- package/dist/esm/components/table/parts/TableRow.js +22 -18
- 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/tabs/parts/{Tab.d.ts → RawTab.d.ts} +2 -2
- package/dist/esm/components/tabs/parts/{Tab.js → RawTab.js} +6 -6
- package/dist/esm/components/task-menu/TaskMenu.d.ts +4 -4
- package/dist/esm/components/task-menu/parts/{SubTask.d.ts → RawSubTask.d.ts} +7 -7
- package/dist/esm/components/task-menu/parts/{SubTask.js → RawSubTask.js} +43 -43
- package/dist/esm/components/task-menu/parts/{Task.d.ts → RawTask.d.ts} +7 -7
- package/dist/esm/components/task-menu/parts/{Task.js → RawTask.js} +45 -41
- package/dist/esm/components/task-menu/parts/TaskGroup.d.ts +5 -5
- 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 +43 -30
- 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-container-query-level.d.ts +42 -0
- package/dist/esm/hooks/use-container-query-level.js +33 -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 +64 -30
- package/dist/esm/index.js +482 -394
- package/dist/esm/index.storybook-testing.d.ts +3 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/Breadcrumb.d.ts +23 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/BreadcrumbLink.d.ts +38 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/BreadcrumbLink.js +7 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/Breadcrumbs.d.ts +23 -0
- package/dist/esm/integrations/tanstack-router/components/breadcrumbs/use-route-breadcrumb.d.ts +53 -0
- package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.d.ts +45 -0
- package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.js +7 -0
- package/dist/esm/integrations/tanstack-router/components/form-contextual-link/TanstackFormContextualLink.d.ts +43 -0
- package/dist/esm/integrations/tanstack-router/components/link/Link.d.ts +33 -0
- package/dist/esm/integrations/tanstack-router/components/link/Link.js +7 -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/menu-item/MenuItem.d.ts +49 -0
- package/dist/esm/integrations/tanstack-router/components/menu-item/MenuItem.js +16 -0
- package/dist/esm/integrations/tanstack-router/components/nav-item/NavItem.d.ts +52 -0
- package/dist/esm/integrations/tanstack-router/components/nav-item/NavItem.js +29 -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/components/pagination/PaginationLink.d.ts +54 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationLink.js +21 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationNext.d.ts +52 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationNext.js +22 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationPrevious.d.ts +51 -0
- package/dist/esm/integrations/tanstack-router/components/pagination/PaginationPrevious.js +22 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/Tabs.d.ts +82 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/Tabs.js +41 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/Tab.d.ts +52 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/Tab.js +15 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabList.d.ts +5 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabPanel.d.ts +77 -0
- package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabPanel.js +16 -0
- package/dist/esm/integrations/tanstack-router/components/task-menu/SubTask.d.ts +69 -0
- package/dist/esm/integrations/tanstack-router/components/task-menu/SubTask.js +14 -0
- package/dist/esm/integrations/tanstack-router/components/task-menu/Task.d.ts +64 -0
- package/dist/esm/integrations/tanstack-router/components/task-menu/Task.js +14 -0
- package/dist/esm/integrations/tanstack-router/index.d.ts +19 -0
- package/dist/esm/integrations/tanstack-router/utils/decorators.d.ts +23 -0
- package/dist/esm/integrations/tanstack-router.js +40 -0
- package/dist/esm/mocks/employees.d.ts +1 -5
- package/dist/esm/providers/router/RouterProvider.d.ts +7 -2
- package/dist/esm/providers/router/RouterProvider.js +14 -10
- package/dist/esm/storybook-testing.js +8 -2
- package/dist/esm/storybook-utilities/previewTransform.d.ts +1 -0
- package/dist/esm/types/DataAttributes.d.ts +1 -1
- 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 +22 -8
- package/i18n/es-ES.json +24 -10
- package/i18n/fr-FR.json +25 -11
- package/package.json +66 -45
- package/dist/esm/components/form-field/parts/FormContextualLink.d.ts +0 -20
- package/dist/esm/components/form-field/parts/FormContextualLink.js +0 -37
- package/dist/esm/components/link/Link.d.ts +0 -93
- package/dist/esm/components/link/Link.js +0 -68
- package/dist/esm/components/multi-select/Multiselect.types.d.ts +0 -109
- package/dist/esm/components/nav/parts/NavItem.js +0 -95
- 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
- /package/dist/esm/components/{pagination → client-side-pagination}/hooks/use-pagination.d.ts +0 -0
- /package/dist/esm/components/{pagination → client-side-pagination}/hooks/use-pagination.js +0 -0
- /package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationJumpDialog.js +0 -0
- /package/dist/esm/components/{pagination → client-side-pagination}/parts/PaginationNavButton.d.ts +0 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { ListBoxSectionProps } from 'react-aria-components';
|
|
2
|
+
export declare const selectListOptGroup: import('tailwind-variants').TVReturnType<{
|
|
3
|
+
[key: string]: {
|
|
4
|
+
[key: string]: import('tailwind-merge').ClassNameValue | {
|
|
5
|
+
base?: import('tailwind-merge').ClassNameValue;
|
|
6
|
+
label?: import('tailwind-merge').ClassNameValue;
|
|
7
|
+
separator?: import('tailwind-merge').ClassNameValue;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
} | {
|
|
11
|
+
[x: string]: {
|
|
12
|
+
[x: string]: import('tailwind-merge').ClassNameValue | {
|
|
13
|
+
base?: import('tailwind-merge').ClassNameValue;
|
|
14
|
+
label?: import('tailwind-merge').ClassNameValue;
|
|
15
|
+
separator?: import('tailwind-merge').ClassNameValue;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
} | {}, {
|
|
19
|
+
base: string;
|
|
20
|
+
label: string;
|
|
21
|
+
separator: string;
|
|
22
|
+
}, undefined, {
|
|
23
|
+
[key: string]: {
|
|
24
|
+
[key: string]: import('tailwind-merge').ClassNameValue | {
|
|
25
|
+
base?: import('tailwind-merge').ClassNameValue;
|
|
26
|
+
label?: import('tailwind-merge').ClassNameValue;
|
|
27
|
+
separator?: import('tailwind-merge').ClassNameValue;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
} | {}, {
|
|
31
|
+
base: string;
|
|
32
|
+
label: string;
|
|
33
|
+
separator: string;
|
|
34
|
+
}, import('tailwind-variants').TVReturnType<unknown, {
|
|
35
|
+
base: string;
|
|
36
|
+
label: string;
|
|
37
|
+
separator: string;
|
|
38
|
+
}, undefined, unknown, unknown, undefined>>;
|
|
39
|
+
/**
|
|
40
|
+
* Props for the SelectListOptGroup component.
|
|
41
|
+
* @template TType - The type of items when using the dynamic API
|
|
42
|
+
*/
|
|
43
|
+
export interface SelectListOptGroupProps<TType extends object> extends ListBoxSectionProps<TType> {
|
|
44
|
+
/**
|
|
45
|
+
* The heading text for this group of options. Displayed above the group's options to provide visual and semantic organization.
|
|
46
|
+
*/
|
|
47
|
+
label: string;
|
|
48
|
+
/**
|
|
49
|
+
* Adds a visual separator line below this group to create clear visual boundaries between groups. Set to `true` to enhance visual separation.
|
|
50
|
+
* @default false
|
|
51
|
+
*/
|
|
52
|
+
withSeparator?: boolean;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Organizes related options into labeled sections within a `SelectList` component.
|
|
56
|
+
* Use this component to group related options together under a common label, improving scannability and organization for users. The component supports both static (directly nested children) and dynamic (items array with render function) APIs, and can optionally display a separator line to create clear visual boundaries between groups.
|
|
57
|
+
* @param {SelectListOptGroupProps} props - Regular props from React Aria's ListBoxSection, plus label and separator configuration
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* import { SelectList, SelectListOptGroup, SelectListOption } from '@payfit/unity-components'
|
|
61
|
+
*
|
|
62
|
+
* function Example() {
|
|
63
|
+
* const sections = [
|
|
64
|
+
* {
|
|
65
|
+
* id: 'fruits',
|
|
66
|
+
* label: 'Fruits',
|
|
67
|
+
* children: [
|
|
68
|
+
* { id: 'apple', label: 'Apple' },
|
|
69
|
+
* { id: 'banana', label: 'Banana' }
|
|
70
|
+
* ]
|
|
71
|
+
* },
|
|
72
|
+
* {
|
|
73
|
+
* id: 'vegetables',
|
|
74
|
+
* label: 'Vegetables',
|
|
75
|
+
* children: [
|
|
76
|
+
* { id: 'carrot', label: 'Carrot' },
|
|
77
|
+
* { id: 'lettuce', label: 'Lettuce' }
|
|
78
|
+
* ]
|
|
79
|
+
* }
|
|
80
|
+
* ]
|
|
81
|
+
*
|
|
82
|
+
* return (
|
|
83
|
+
* <SelectList items={sections} selectionMode="multiple" value={new Set()} onChange={() => {}}>
|
|
84
|
+
* {section => (
|
|
85
|
+
* <SelectListOptGroup
|
|
86
|
+
* id={section.id}
|
|
87
|
+
* label={section.label}
|
|
88
|
+
* items={section.children}
|
|
89
|
+
* withSeparator
|
|
90
|
+
* >
|
|
91
|
+
* {item => (
|
|
92
|
+
* <SelectListOption id={item.id}>
|
|
93
|
+
* {item.label}
|
|
94
|
+
* </SelectListOption>
|
|
95
|
+
* )}
|
|
96
|
+
* </SelectListOptGroup>
|
|
97
|
+
* )}
|
|
98
|
+
* </SelectList>
|
|
99
|
+
* )
|
|
100
|
+
* }
|
|
101
|
+
* ```
|
|
102
|
+
* @remarks
|
|
103
|
+
* - Use the `label` prop to provide a descriptive heading that clearly identifies the group's category
|
|
104
|
+
* - Set `withSeparator` to `true` to add a visual separator line below the group for enhanced visual organization
|
|
105
|
+
* - Supports both static API (directly nest `SelectListOption` components) and dynamic API (provide `items` array with render function)
|
|
106
|
+
* - This component must be used within a `SelectList` parent component to function properly
|
|
107
|
+
* - Groups are accessible with proper ARIA semantics for screen readers
|
|
108
|
+
* @see {@link SelectListOptGroupProps} for all available props
|
|
109
|
+
* @see {@link SelectListOption} for the child option component
|
|
110
|
+
* @see {@link SelectList} for the parent component's API
|
|
111
|
+
* @see Source code in {@link https://github.com/PayFit/hr-apps/tree/master/libs/shared/unity/components/src/components/select-list/parts GitHub}
|
|
112
|
+
* @see Developer docs in {@link https://unity-components.payfit.io/?path=/docs/data-selectlist-selectlistoptgroup unity-components.payfit.io}
|
|
113
|
+
*/
|
|
114
|
+
declare function SelectListOptGroup<T extends object>(props: SelectListOptGroupProps<T>): import("react/jsx-runtime").JSX.Element;
|
|
115
|
+
declare namespace SelectListOptGroup {
|
|
116
|
+
var displayName: string;
|
|
117
|
+
}
|
|
118
|
+
export { SelectListOptGroup };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { jsxs as y, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { uyTv as c } from "@payfit/unity-themes";
|
|
3
|
+
import { ListBoxSection as i, Header as p, Collection as b, Separator as m } from "react-aria-components";
|
|
4
|
+
const d = c({
|
|
5
|
+
slots: {
|
|
6
|
+
base: "uy:flex uy:flex-col uy:bg-surface-neutral",
|
|
7
|
+
label: "uy:px-150 uy:py-100 uy:typography-body-strong uy:text-content-neutral",
|
|
8
|
+
separator: "uy:my-100 uy:border-t uy:border-border-neutral uy:border-solid"
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
function f(r) {
|
|
12
|
+
const { base: l, label: s, separator: a } = d(), {
|
|
13
|
+
label: o,
|
|
14
|
+
withSeparator: u = !1,
|
|
15
|
+
children: e,
|
|
16
|
+
...n
|
|
17
|
+
} = r;
|
|
18
|
+
return /* @__PURE__ */ y(i, { ...n, className: l(), children: [
|
|
19
|
+
o && /* @__PURE__ */ t(p, { className: s(), children: o }),
|
|
20
|
+
typeof e == "function" ? /* @__PURE__ */ t(b, { items: r.items, children: e }) : e,
|
|
21
|
+
u && /* @__PURE__ */ t(m, { className: a() })
|
|
22
|
+
] });
|
|
23
|
+
}
|
|
24
|
+
f.displayName = "SelectListOptGroup";
|
|
25
|
+
export {
|
|
26
|
+
f as SelectListOptGroup,
|
|
27
|
+
d as selectListOptGroup
|
|
28
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
import { ListBoxItemProps } from 'react-aria-components';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the SelectListOption component.
|
|
5
|
+
* @template TType - The type of the item this option represents
|
|
6
|
+
*/
|
|
7
|
+
export interface SelectListOptionProps<TType extends object> extends Omit<ListBoxItemProps<TType>, 'ref' | 'className' | 'style'> {
|
|
8
|
+
/**
|
|
9
|
+
* The content to display for this option. Typically a text label or rich content.
|
|
10
|
+
*/
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
/**
|
|
13
|
+
* Prevents the option from being selected when set to `true`. Disabled options are visually dimmed and cannot receive focus or interaction.
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
16
|
+
isDisabled?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Supplementary text displayed below the main option label. Use this to provide additional context or description about the option.
|
|
19
|
+
*/
|
|
20
|
+
helperText?: string;
|
|
21
|
+
}
|
|
22
|
+
export declare const SelectListOption: <T extends object>(props: SelectListOptionProps<T> & {
|
|
23
|
+
ref?: React.ForwardedRef<HTMLDivElement>;
|
|
24
|
+
}) => React.JSX.Element;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as t, jsxs as s } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as f } from "react";
|
|
3
|
+
import { uyTv as b } from "@payfit/unity-themes";
|
|
4
|
+
import { ListBoxItem as m } from "react-aria-components";
|
|
5
|
+
import x from "../../../hooks/use-id.js";
|
|
6
|
+
import { CheckboxIndicator as v } from "../../checkbox/parts/CheckboxIndicator.js";
|
|
7
|
+
const h = b({
|
|
8
|
+
slots: {
|
|
9
|
+
base: [
|
|
10
|
+
"uy:flex uy:flex-col uy:transition",
|
|
11
|
+
"uy:w-full uy:px-150 uy:py-100",
|
|
12
|
+
"uy:rounded-50 uy:cursor-pointer",
|
|
13
|
+
"uy:hover:bg-surface-neutral-hover",
|
|
14
|
+
"uy:active:bg-surface-neutral-pressed",
|
|
15
|
+
"uy:data-[focus-visible]:outline uy:data-[focus-visible]:outline-2 uy:data-[focus-visible]:outline-utility-focus-ring uy:data-[focus-visible]:-outline-offset-2"
|
|
16
|
+
],
|
|
17
|
+
label: "uy:inline-flex uy:items-center uy:gap-100 uy:text-content-neutral uy:typography-body",
|
|
18
|
+
helperText: "uy:inline-block uy:typography-body uy:text-content-neutral-low uy:pl-300"
|
|
19
|
+
},
|
|
20
|
+
variants: {
|
|
21
|
+
isDisabled: {
|
|
22
|
+
true: {
|
|
23
|
+
base: "uy:cursor-not-allowed!",
|
|
24
|
+
label: "uy:text-content-neutral-disabled"
|
|
25
|
+
},
|
|
26
|
+
false: {
|
|
27
|
+
base: ""
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
function a({
|
|
33
|
+
children: o,
|
|
34
|
+
isDisabled: i = !1,
|
|
35
|
+
textValue: u,
|
|
36
|
+
helperText: e,
|
|
37
|
+
...r
|
|
38
|
+
}, n) {
|
|
39
|
+
const l = x(), {
|
|
40
|
+
base: y,
|
|
41
|
+
label: c,
|
|
42
|
+
helperText: d
|
|
43
|
+
} = h({ isDisabled: i });
|
|
44
|
+
return /* @__PURE__ */ t(
|
|
45
|
+
m,
|
|
46
|
+
{
|
|
47
|
+
"data-dd-privacy": "mask",
|
|
48
|
+
...r,
|
|
49
|
+
className: y(),
|
|
50
|
+
textValue: u ?? o,
|
|
51
|
+
"aria-describedby": e ? `${l}-helper-text` : void 0,
|
|
52
|
+
children: ({ isSelected: p }) => /* @__PURE__ */ s("div", { ref: n, children: [
|
|
53
|
+
/* @__PURE__ */ s("div", { className: c(), children: [
|
|
54
|
+
/* @__PURE__ */ t(
|
|
55
|
+
v,
|
|
56
|
+
{
|
|
57
|
+
isSelected: p,
|
|
58
|
+
isDisabled: i
|
|
59
|
+
}
|
|
60
|
+
),
|
|
61
|
+
o
|
|
62
|
+
] }),
|
|
63
|
+
e && /* @__PURE__ */ t("span", { id: `${l}-helper-text`, className: d(), children: e })
|
|
64
|
+
] })
|
|
65
|
+
}
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
a.displayName = "SelectListOption";
|
|
69
|
+
const C = f(a);
|
|
70
|
+
export {
|
|
71
|
+
C as SelectListOption
|
|
72
|
+
};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { jsxs as i, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as s } from "react";
|
|
3
|
+
import { uyTv as a } from "@payfit/unity-themes";
|
|
4
|
+
import { SearchField as c, Input as l } from "react-aria-components";
|
|
5
|
+
import { useIntl as y } from "react-intl";
|
|
6
|
+
import { CircularIconButton as m } from "../../icon-button/CircularIconButton.js";
|
|
7
|
+
import { Icon as p } from "../../icon/Icon.js";
|
|
8
|
+
const f = a({
|
|
9
|
+
slots: {
|
|
10
|
+
base: "uy:flex uy:gap-100 uy:items-center uy:transition-colors uy:py-125 uy:sm:py-100 uy:px-150 uy:rounded-100 uy:sm:rounded-75 uy:bg-surface-form-high-enabled uy:focus-within:outline-utility-focus-ring uy:focus-within:outline-2 uy:focus-within:outline-offset-2 uy:text-content-form-active uy:typography-body",
|
|
11
|
+
input: "uy:flex-grow uy:outline-none uy:[&::-webkit-search-cancel-button]:hidden",
|
|
12
|
+
button: "uy:text-content-neutral-enabled"
|
|
13
|
+
}
|
|
14
|
+
}), d = s((h, e) => {
|
|
15
|
+
const o = y(), { base: n, input: u, button: r } = f();
|
|
16
|
+
return /* @__PURE__ */ i(c, { className: n(), ref: e, "data-dd-privacy": "mask", children: [
|
|
17
|
+
/* @__PURE__ */ t(
|
|
18
|
+
p,
|
|
19
|
+
{
|
|
20
|
+
src: "MagnifyingGlassOutlined",
|
|
21
|
+
role: "presentation",
|
|
22
|
+
color: "content.neutral.lowest"
|
|
23
|
+
}
|
|
24
|
+
),
|
|
25
|
+
/* @__PURE__ */ t(l, { className: u() }),
|
|
26
|
+
/* @__PURE__ */ t(
|
|
27
|
+
m,
|
|
28
|
+
{
|
|
29
|
+
title: o.formatMessage({
|
|
30
|
+
id: "unity:component:common:clear:title",
|
|
31
|
+
defaultMessage: "Clear"
|
|
32
|
+
}),
|
|
33
|
+
className: r(),
|
|
34
|
+
icon: "CloseOutlined",
|
|
35
|
+
asElement: "button"
|
|
36
|
+
}
|
|
37
|
+
)
|
|
38
|
+
] });
|
|
39
|
+
});
|
|
40
|
+
d.displayName = "SelectListSearchInput";
|
|
41
|
+
export {
|
|
42
|
+
d as SelectListSearchInput
|
|
43
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { SelectionBehavior } from '@react-types/shared';
|
|
2
|
+
import { Key, Selection, SelectionMode } from 'react-aria-components';
|
|
3
|
+
interface SelectableItem {
|
|
4
|
+
id: Key;
|
|
5
|
+
label: string;
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface SelectedItemsSectionProps<TType extends SelectableItem> {
|
|
9
|
+
/**
|
|
10
|
+
* Array of selected items to display
|
|
11
|
+
*/
|
|
12
|
+
items: TType[];
|
|
13
|
+
/**
|
|
14
|
+
* Currently selected keys
|
|
15
|
+
*/
|
|
16
|
+
selectedKeys: Selection;
|
|
17
|
+
/**
|
|
18
|
+
* Callback when selection changes
|
|
19
|
+
*/
|
|
20
|
+
onSelectionChange: (keys: Selection) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Selection mode (single, multiple)
|
|
23
|
+
*/
|
|
24
|
+
selectionMode?: SelectionMode;
|
|
25
|
+
/**
|
|
26
|
+
* Selection behavior (toggle, replace)
|
|
27
|
+
*/
|
|
28
|
+
selectionBehavior?: SelectionBehavior;
|
|
29
|
+
/**
|
|
30
|
+
* Accessible label for the section
|
|
31
|
+
*/
|
|
32
|
+
label: string;
|
|
33
|
+
/**
|
|
34
|
+
* CSS class for the ListBox
|
|
35
|
+
*/
|
|
36
|
+
className: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Displays selected items in a dedicated section at the top of the list.
|
|
40
|
+
* Items in this section can be deselected to move them back to the main list.
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* <SelectedItemsSection
|
|
44
|
+
* items={selectedItems}
|
|
45
|
+
* selectedKeys={selectedKeys}
|
|
46
|
+
* onSelectionChange={handleChange}
|
|
47
|
+
* selectionMode="multiple"
|
|
48
|
+
* label="Selected Options"
|
|
49
|
+
* className={selectedListBoxStyles}
|
|
50
|
+
* />
|
|
51
|
+
* ```
|
|
52
|
+
*/
|
|
53
|
+
export declare function SelectedItemsSection<TType extends SelectableItem>({ items, selectedKeys, onSelectionChange, selectionMode, selectionBehavior, label, className, ...rest }: SelectedItemsSectionProps<TType>): import("react/jsx-runtime").JSX.Element | null;
|
|
54
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { jsxs as a, jsx as e } from "react/jsx-runtime";
|
|
2
|
+
import { Header as h, ListBox as p, Collection as u } from "react-aria-components";
|
|
3
|
+
import { SelectListOption as f } from "./SelectListOption.js";
|
|
4
|
+
function S({
|
|
5
|
+
items: r,
|
|
6
|
+
selectedKeys: o,
|
|
7
|
+
onSelectionChange: n,
|
|
8
|
+
selectionMode: i,
|
|
9
|
+
selectionBehavior: c,
|
|
10
|
+
label: t,
|
|
11
|
+
className: d,
|
|
12
|
+
...s
|
|
13
|
+
}) {
|
|
14
|
+
return r.length === 0 ? null : /* @__PURE__ */ a("div", { children: [
|
|
15
|
+
/* @__PURE__ */ e(h, { className: "uy:sr-only", children: t }),
|
|
16
|
+
/* @__PURE__ */ e(
|
|
17
|
+
p,
|
|
18
|
+
{
|
|
19
|
+
className: d,
|
|
20
|
+
items: r,
|
|
21
|
+
selectedKeys: o,
|
|
22
|
+
onSelectionChange: n,
|
|
23
|
+
selectionMode: i,
|
|
24
|
+
selectionBehavior: c,
|
|
25
|
+
escapeKeyBehavior: "none",
|
|
26
|
+
shouldFocusWrap: !1,
|
|
27
|
+
...s,
|
|
28
|
+
children: /* @__PURE__ */ e(u, { items: r, children: (l) => /* @__PURE__ */ e(f, { id: l.id, children: l.label }) })
|
|
29
|
+
}
|
|
30
|
+
)
|
|
31
|
+
] });
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
S as SelectedItemsSection
|
|
35
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partitions an array into two arrays based on a predicate function.
|
|
3
|
+
* More efficient than using filter twice.
|
|
4
|
+
* @param array - Array to partition
|
|
5
|
+
* @param predicate - Function to test each element
|
|
6
|
+
* @returns Tuple of [passing items, failing items]
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* const [evens, odds] = partition([1, 2, 3, 4], n => n % 2 === 0)
|
|
10
|
+
* // evens: [2, 4], odds: [1, 3]
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function partition<T>(array: T[], predicate: (item: T) => boolean): [T[], T[]];
|
|
@@ -1,6 +1,2 @@
|
|
|
1
1
|
import { ToggleGroupState } from 'react-stately';
|
|
2
|
-
export
|
|
3
|
-
state: ToggleGroupState;
|
|
4
|
-
isInvalid?: boolean;
|
|
5
|
-
}
|
|
6
|
-
export declare const SelectableButtonGroupContext: import('react').Context<SelectableButtonGroupContextValue | null>;
|
|
2
|
+
export declare const SelectableButtonGroupContext: import('react').Context<ToggleGroupState | null>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { VariantProps } from '@payfit/unity-themes';
|
|
2
2
|
import { AriaToggleButtonGroupProps } from 'react-aria';
|
|
3
3
|
import { Key } from 'react-stately';
|
|
4
|
-
export declare const selectableButtonGroup: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "uy:flex uy:gap-100", {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "uy:flex uy:gap-100", unknown, unknown, undefined>>;
|
|
4
|
+
export declare const selectableButtonGroup: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "uy:group uy:flex uy:gap-100 uy:flex-wrap", {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "uy:group uy:flex uy:gap-100 uy:flex-wrap", unknown, unknown, undefined>>;
|
|
5
5
|
export interface SelectableButtonGroupProps extends VariantProps<typeof selectableButtonGroup>, Omit<AriaToggleButtonGroupProps, 'selectedKeys' | 'defaultSelectedKeys' | 'onSelectionChange' | 'style'> {
|
|
6
6
|
/**
|
|
7
7
|
* The SelectableButton components to render within the group.
|
|
@@ -26,6 +26,11 @@ export interface SelectableButtonGroupProps extends VariantProps<typeof selectab
|
|
|
26
26
|
* Required when using the component in controlled mode.
|
|
27
27
|
*/
|
|
28
28
|
onChange?: (keys: Key[]) => void;
|
|
29
|
+
/**
|
|
30
|
+
* Callback fired when focus leaves the group.
|
|
31
|
+
* Useful for form validation and tracking user interaction.
|
|
32
|
+
*/
|
|
33
|
+
onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;
|
|
29
34
|
/**
|
|
30
35
|
* Marks the group and all contained buttons as invalid, applying error styles.
|
|
31
36
|
* Use this to indicate a validation error for the group.
|
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
import { jsx as a } from "react/jsx-runtime";
|
|
2
|
-
import { forwardRef as
|
|
3
|
-
import { uyTv as
|
|
4
|
-
import { useToggleButtonGroup as
|
|
2
|
+
import { forwardRef as i, useRef as s, useCallback as m } from "react";
|
|
3
|
+
import { uyTv as f } from "@payfit/unity-themes";
|
|
4
|
+
import { useToggleButtonGroup as y } from "react-aria";
|
|
5
5
|
import { useToggleGroupState as g } from "react-stately";
|
|
6
6
|
import { SelectableButtonGroupContext as v } from "./SelectableButtonGroup.context.js";
|
|
7
|
-
const
|
|
8
|
-
base: "uy:flex uy:gap-100"
|
|
9
|
-
}),
|
|
10
|
-
const
|
|
7
|
+
const B = f({
|
|
8
|
+
base: "uy:group uy:flex uy:gap-100 uy:flex-wrap"
|
|
9
|
+
}), b = i((e, t) => {
|
|
10
|
+
const o = s(null), u = g({
|
|
11
11
|
...e,
|
|
12
12
|
selectedKeys: e.value,
|
|
13
13
|
defaultSelectedKeys: e.defaultValue,
|
|
14
|
-
onSelectionChange: (
|
|
15
|
-
e.onChange?.(Array.from(
|
|
14
|
+
onSelectionChange: (l) => {
|
|
15
|
+
e.onChange?.(Array.from(l));
|
|
16
16
|
}
|
|
17
|
-
}), { groupProps:
|
|
17
|
+
}), { groupProps: n } = y(e, u, o), r = B({ className: e.className }), c = m(
|
|
18
|
+
(l) => {
|
|
19
|
+
o.current = l, typeof t == "function" ? t(l) : t && (t.current = l);
|
|
20
|
+
},
|
|
21
|
+
[t]
|
|
22
|
+
);
|
|
18
23
|
return /* @__PURE__ */ a(
|
|
19
24
|
"div",
|
|
20
25
|
{
|
|
21
|
-
...
|
|
22
|
-
className:
|
|
23
|
-
ref:
|
|
26
|
+
...n,
|
|
27
|
+
className: r,
|
|
28
|
+
ref: c,
|
|
24
29
|
"data-dd-privacy": "allow",
|
|
25
30
|
"aria-invalid": e.isInvalid,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
{
|
|
29
|
-
value: { state: o, isInvalid: e.isInvalid },
|
|
30
|
-
children: e.children
|
|
31
|
-
}
|
|
32
|
-
)
|
|
31
|
+
onBlur: e.onBlur,
|
|
32
|
+
children: /* @__PURE__ */ a(v.Provider, { value: u, children: e.children })
|
|
33
33
|
}
|
|
34
34
|
);
|
|
35
35
|
});
|
|
36
|
-
|
|
36
|
+
b.displayName = "SelectableButtonGroup";
|
|
37
37
|
export {
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
b as SelectableButtonGroup,
|
|
39
|
+
B as selectableButtonGroup
|
|
40
40
|
};
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { SelectableButtonGroupProps } from './SelectableButtonGroup.js';
|
|
2
|
+
export type TanstackSelectableButtonGroupProps = Omit<SelectableButtonGroupProps, 'value' | 'defaultValue' | 'isInvalid'>;
|
|
3
|
+
/**
|
|
4
|
+
* `TanstackSelectableButtonGroup` is a selectable button group wired to the TanStack Form field context.
|
|
5
|
+
* It is based on the Unity `SelectableButtonGroup` component.
|
|
6
|
+
*
|
|
7
|
+
* Example:
|
|
8
|
+
* ```tsx
|
|
9
|
+
* function ExampleField() {
|
|
10
|
+
* const form = useTanstackUnityForm<{ choice: string[] }>({ validators: {} })
|
|
11
|
+
* return (
|
|
12
|
+
* <form.AppForm>
|
|
13
|
+
* <form.AppField name="choice">
|
|
14
|
+
* {(field) => (
|
|
15
|
+
* <field.SelectableButtonGroup selectionMode="single">
|
|
16
|
+
* <SelectableButton value="option1">Option 1</SelectableButton>
|
|
17
|
+
* <SelectableButton value="option2">Option 2</SelectableButton>
|
|
18
|
+
* </field.SelectableButtonGroup>
|
|
19
|
+
* )}
|
|
20
|
+
* </form.AppField>
|
|
21
|
+
* </form.AppForm>
|
|
22
|
+
* )
|
|
23
|
+
* }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
declare const TanstackSelectableButtonGroup: import('react').ForwardRefExoticComponent<TanstackSelectableButtonGroupProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
27
|
+
export { TanstackSelectableButtonGroup };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef as u, useCallback as m } from "react";
|
|
3
|
+
import { useFieldContext as f } from "../../hooks/tanstack-form-context.js";
|
|
4
|
+
import { useFieldA11yContext as p } from "../form-field/TanstackFormField.context.js";
|
|
5
|
+
import { SelectableButtonGroup as b } from "./SelectableButtonGroup.js";
|
|
6
|
+
const T = u(({ onChange: o, ...l }, n) => {
|
|
7
|
+
const e = f(), a = p(), i = e.state.meta.isTouched && !e.state.meta.isValid, d = m(
|
|
8
|
+
(t) => {
|
|
9
|
+
const r = t.relatedTarget, s = t.currentTarget;
|
|
10
|
+
(!r || !s.contains(r)) && e.handleBlur();
|
|
11
|
+
},
|
|
12
|
+
[e]
|
|
13
|
+
);
|
|
14
|
+
return /* @__PURE__ */ c(
|
|
15
|
+
b,
|
|
16
|
+
{
|
|
17
|
+
...l,
|
|
18
|
+
ref: n,
|
|
19
|
+
value: e.state.value,
|
|
20
|
+
onChange: (t) => {
|
|
21
|
+
e.handleChange(t), o?.(t);
|
|
22
|
+
},
|
|
23
|
+
onBlur: d,
|
|
24
|
+
isInvalid: i,
|
|
25
|
+
"aria-labelledby": a.labelId,
|
|
26
|
+
"aria-describedby": [a.helperTextId, a.feedbackTextId].filter(Boolean).join(" ") || void 0,
|
|
27
|
+
"aria-details": a.contextualLinkId
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
});
|
|
31
|
+
T.displayName = "TanstackSelectableButtonGroup";
|
|
32
|
+
export {
|
|
33
|
+
T as TanstackSelectableButtonGroup
|
|
34
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AriaToggleButtonProps } from 'react-aria';
|
|
2
|
-
import { UnityIcon } from '@payfit/unity-icons';
|
|
3
2
|
import { ToggleButtonProps } from 'react-aria-components';
|
|
3
|
+
import { UnityIcon } from '@payfit/unity-icons';
|
|
4
4
|
export declare const selectableButton: import('tailwind-variants').TVReturnType<{
|
|
5
5
|
hasIcon: {
|
|
6
6
|
true: {
|
|
@@ -10,11 +10,6 @@ export declare const selectableButton: import('tailwind-variants').TVReturnType<
|
|
|
10
10
|
base: string;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
isInvalid: {
|
|
14
|
-
true: {
|
|
15
|
-
base: string;
|
|
16
|
-
};
|
|
17
|
-
};
|
|
18
13
|
}, {
|
|
19
14
|
base: string[];
|
|
20
15
|
icon: string[];
|
|
@@ -28,11 +23,6 @@ export declare const selectableButton: import('tailwind-variants').TVReturnType<
|
|
|
28
23
|
base: string;
|
|
29
24
|
};
|
|
30
25
|
};
|
|
31
|
-
isInvalid: {
|
|
32
|
-
true: {
|
|
33
|
-
base: string;
|
|
34
|
-
};
|
|
35
|
-
};
|
|
36
26
|
}, {
|
|
37
27
|
base: string[];
|
|
38
28
|
icon: string[];
|
|
@@ -46,11 +36,6 @@ export declare const selectableButton: import('tailwind-variants').TVReturnType<
|
|
|
46
36
|
base: string;
|
|
47
37
|
};
|
|
48
38
|
};
|
|
49
|
-
isInvalid: {
|
|
50
|
-
true: {
|
|
51
|
-
base: string;
|
|
52
|
-
};
|
|
53
|
-
};
|
|
54
39
|
}, {
|
|
55
40
|
base: string[];
|
|
56
41
|
icon: string[];
|