@payfit/unity-components 2.47.5 → 2.47.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (446) hide show
  1. package/dist/esm/adapters/standardSchemaAdapter.js +18 -19
  2. package/dist/esm/adapters/zodAdapter.js +59 -73
  3. package/dist/esm/components/action-bar/ActionBar.js +46 -69
  4. package/dist/esm/components/action-bar/ActionBar.variants.js +18 -25
  5. package/dist/esm/components/action-bar/hooks/use-action-bar-state.js +31 -21
  6. package/dist/esm/components/action-bar/parts/ActionBarButton.js +29 -35
  7. package/dist/esm/components/action-bar/parts/ActionBarIconButton.js +29 -41
  8. package/dist/esm/components/action-bar/parts/ActionBarOverflowMenu.js +39 -45
  9. package/dist/esm/components/action-bar/parts/ActionBarPrefixArea.js +22 -33
  10. package/dist/esm/components/action-bar/parts/ActionBarRoot.js +44 -56
  11. package/dist/esm/components/action-bar/utils/action-bar-helpers.js +23 -28
  12. package/dist/esm/components/actionable/Actionable.js +66 -82
  13. package/dist/esm/components/alert/Alert.js +84 -99
  14. package/dist/esm/components/alert/parts/AlertActions.js +19 -21
  15. package/dist/esm/components/alert/parts/AlertContent.js +13 -10
  16. package/dist/esm/components/alert/parts/AlertTitle.js +15 -20
  17. package/dist/esm/components/anchor/Anchor.js +40 -48
  18. package/dist/esm/components/app-layout/AppLayout.js +62 -76
  19. package/dist/esm/components/app-menu/AppMenu.js +11 -14
  20. package/dist/esm/components/app-menu/parts/AppMenu.context.js +21 -22
  21. package/dist/esm/components/app-menu/parts/AppMenuFooter.js +189 -246
  22. package/dist/esm/components/app-menu/parts/AppMenuHeader.js +52 -49
  23. package/dist/esm/components/app-menu/parts/AppMenuNavContent.js +14 -22
  24. package/dist/esm/components/autocomplete/Autocomplete.js +136 -168
  25. package/dist/esm/components/autocomplete/parts/AutocompleteClearButton.js +23 -33
  26. package/dist/esm/components/autocomplete/parts/AutocompleteItem.js +28 -36
  27. package/dist/esm/components/autocomplete/parts/AutocompleteItemGroup.js +38 -32
  28. package/dist/esm/components/autocomplete/parts/AutocompletePanel.js +44 -46
  29. package/dist/esm/components/avatar/Avatar.context.js +24 -25
  30. package/dist/esm/components/avatar/Avatar.js +38 -46
  31. package/dist/esm/components/avatar/Avatar.variants.js +62 -62
  32. package/dist/esm/components/avatar/parts/AvatarFallback.js +77 -81
  33. package/dist/esm/components/avatar/parts/AvatarIcon.js +32 -40
  34. package/dist/esm/components/avatar/parts/AvatarImage.js +22 -18
  35. package/dist/esm/components/avatar/parts/AvatarPair.js +49 -47
  36. package/dist/esm/components/avatar/utils.js +4 -4
  37. package/dist/esm/components/badge/Badge.js +57 -92
  38. package/dist/esm/components/badge/parts/BadgeDot.js +42 -83
  39. package/dist/esm/components/bottom-sheet/BottomSheet.js +48 -69
  40. package/dist/esm/components/bottom-sheet/parts/BottomSheetContent.js +26 -26
  41. package/dist/esm/components/bottom-sheet/parts/BottomSheetDragIndicator.js +44 -65
  42. package/dist/esm/components/bottom-sheet/parts/BottomSheetFooter.js +20 -28
  43. package/dist/esm/components/bottom-sheet/parts/BottomSheetHeader.js +49 -45
  44. package/dist/esm/components/breadcrumbs/Breadcrumbs.context.js +22 -25
  45. package/dist/esm/components/breadcrumbs/Breadcrumbs.js +124 -159
  46. package/dist/esm/components/breadcrumbs/Breadcrumbs.variant.js +13 -19
  47. package/dist/esm/components/breadcrumbs/parts/Breadcrumb.js +35 -41
  48. package/dist/esm/components/breadcrumbs/parts/RawBreadcrumbLink.js +53 -62
  49. package/dist/esm/components/button/Button.js +90 -107
  50. package/dist/esm/components/button/Button.variants.js +172 -179
  51. package/dist/esm/components/card/Card.context.js +9 -13
  52. package/dist/esm/components/card/Card.js +63 -99
  53. package/dist/esm/components/card/parts/CardContent.js +11 -7
  54. package/dist/esm/components/card/parts/CardTitle.js +24 -31
  55. package/dist/esm/components/carousel/Carousel.context.js +8 -12
  56. package/dist/esm/components/carousel/Carousel.js +67 -106
  57. package/dist/esm/components/carousel/Carousel.options.js +69 -61
  58. package/dist/esm/components/carousel/hooks/useCarouselAccessibility.js +81 -85
  59. package/dist/esm/components/carousel/hooks/useCarouselState.js +54 -61
  60. package/dist/esm/components/carousel/parts/CarouselContent.js +52 -68
  61. package/dist/esm/components/carousel/parts/CarouselHeader.js +43 -58
  62. package/dist/esm/components/carousel/parts/CarouselNav.js +64 -79
  63. package/dist/esm/components/carousel/parts/CarouselSlide.js +26 -35
  64. package/dist/esm/components/checkbox/Checkbox.js +83 -105
  65. package/dist/esm/components/checkbox/Checkbox.variants.js +60 -80
  66. package/dist/esm/components/checkbox/CheckboxStandalone.js +33 -28
  67. package/dist/esm/components/checkbox/TanstackCheckbox.js +35 -51
  68. package/dist/esm/components/checkbox/parts/CheckboxIndicator.js +131 -161
  69. package/dist/esm/components/checkbox-field/CheckboxField.js +38 -65
  70. package/dist/esm/components/checkbox-field/TanstackCheckboxField.js +23 -39
  71. package/dist/esm/components/checkbox-group/CheckboxGroup.js +44 -73
  72. package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.js +32 -37
  73. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.js +35 -55
  74. package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.js +26 -39
  75. package/dist/esm/components/client-side-pagination/ClientSidePagination.js +130 -177
  76. package/dist/esm/components/client-side-pagination/hooks/use-pagination.js +20 -27
  77. package/dist/esm/components/client-side-pagination/parts/PaginationEllipsis.js +29 -29
  78. package/dist/esm/components/client-side-pagination/parts/PaginationJumpDialog.js +110 -143
  79. package/dist/esm/components/client-side-pagination/parts/PaginationNavButton.js +23 -31
  80. package/dist/esm/components/client-side-pagination/parts/RawPaginationLink.js +35 -48
  81. package/dist/esm/components/client-side-pagination/utils/pagination-window.js +37 -31
  82. package/dist/esm/components/code/Code.js +34 -38
  83. package/dist/esm/components/code/copyToClipboard.js +9 -9
  84. package/dist/esm/components/collapsible/Collapsible.js +21 -28
  85. package/dist/esm/components/collapsible/parts/CollapsibleContent.js +16 -18
  86. package/dist/esm/components/collapsible/parts/CollapsibleTitle.js +53 -53
  87. package/dist/esm/components/data-table/DataTable.js +101 -155
  88. package/dist/esm/components/data-table/parts/ColumnSortHeader.js +24 -36
  89. package/dist/esm/components/data-table/parts/DataTableBulkActions.js +95 -148
  90. package/dist/esm/components/data-table/parts/DataTableRoot.js +13 -13
  91. package/dist/esm/components/date-calendar/DateCalendar.js +121 -174
  92. package/dist/esm/components/date-calendar/DateCalendar.variants.js +32 -49
  93. package/dist/esm/components/date-calendar/hooks/useMonthsList.js +18 -25
  94. package/dist/esm/components/date-calendar/hooks/useYearsList.js +23 -32
  95. package/dist/esm/components/date-calendar/parts/DateSegmentSelect.js +62 -65
  96. package/dist/esm/components/date-picker/DatePicker.js +131 -174
  97. package/dist/esm/components/date-picker/TanstackDatePicker.js +39 -53
  98. package/dist/esm/components/date-picker/parts/DateInput.js +101 -135
  99. package/dist/esm/components/date-picker-field/DatePickerField.js +52 -71
  100. package/dist/esm/components/date-picker-field/TanstackDatePickerField.js +28 -41
  101. package/dist/esm/components/date-picker-field/test-utils.js +26 -51
  102. package/dist/esm/components/date-range-calendar/DateRangeCalendar.js +148 -211
  103. package/dist/esm/components/date-range-picker/DateRangePicker.js +132 -175
  104. package/dist/esm/components/date-range-picker/TanstackDateRangePicker.js +39 -53
  105. package/dist/esm/components/date-range-picker/parts/DateRangeInput.js +90 -101
  106. package/dist/esm/components/date-range-picker-field/TanstackDateRangePickerField.js +28 -41
  107. package/dist/esm/components/date-range-picker-field/test-utils.js +37 -65
  108. package/dist/esm/components/definition-list/DefinitionList.context.js +12 -16
  109. package/dist/esm/components/definition-list/DefinitionList.js +23 -22
  110. package/dist/esm/components/definition-list/parts/DefinitionItem.js +49 -50
  111. package/dist/esm/components/definition-tooltip/DefinitionTooltip.js +25 -28
  112. package/dist/esm/components/dialog/Dialog.js +79 -110
  113. package/dist/esm/components/dialog/parts/DialogActions/DialogButton.js +41 -61
  114. package/dist/esm/components/dialog/parts/DialogActions.js +10 -13
  115. package/dist/esm/components/dialog/parts/DialogContent.js +17 -22
  116. package/dist/esm/components/dialog/parts/DialogTitle.js +12 -9
  117. package/dist/esm/components/dialog/test-utils.js +46 -88
  118. package/dist/esm/components/empty-state/EmptyState.js +20 -25
  119. package/dist/esm/components/empty-state/EmptyState.variants.js +15 -22
  120. package/dist/esm/components/empty-state/parts/EmptyStateActions.js +12 -17
  121. package/dist/esm/components/empty-state/parts/EmptyStateContent.js +21 -21
  122. package/dist/esm/components/empty-state/parts/EmptyStateIcon.js +19 -14
  123. package/dist/esm/components/empty-state/presets/EmptyStateGetStarted.js +30 -26
  124. package/dist/esm/components/empty-state/presets/EmptyStateGoodJob.js +35 -55
  125. package/dist/esm/components/empty-state/presets/EmptyStateNoSearchResults.js +31 -27
  126. package/dist/esm/components/empty-state/presets/EmptyStateUpgradeRequired.js +30 -26
  127. package/dist/esm/components/empty-state/presets/EmptyStateUseDesktop.js +26 -25
  128. package/dist/esm/components/empty-state/presets/EmptyStateWaitingForData.js +30 -26
  129. package/dist/esm/components/error-state/ErrorState.js +155 -239
  130. package/dist/esm/components/error-state/initConfig.js +90 -148
  131. package/dist/esm/components/error-state/parts/Collapsible.js +68 -67
  132. package/dist/esm/components/fieldset/Fieldset.js +63 -72
  133. package/dist/esm/components/fieldset/parts/FieldGroup.js +13 -18
  134. package/dist/esm/components/filter/Filter.controls.js +49 -42
  135. package/dist/esm/components/filter/Filter.js +101 -146
  136. package/dist/esm/components/filter/hooks/useFilterIds.js +12 -12
  137. package/dist/esm/components/filter/hooks/useFilterState.js +16 -22
  138. package/dist/esm/components/filter/hooks/useFilterValue.js +31 -30
  139. package/dist/esm/components/filter/parts/FilterButton.js +40 -54
  140. package/dist/esm/components/filter/parts/FilterLabel.js +38 -56
  141. package/dist/esm/components/filter/parts/FilterPopover.js +68 -80
  142. package/dist/esm/components/filter/utils/value-formatters.js +9 -11
  143. package/dist/esm/components/filter-toolbar/FilterToolbar.js +124 -173
  144. package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.js +128 -130
  145. package/dist/esm/components/filter-toolbar/parts/AddFilter.js +81 -109
  146. package/dist/esm/components/filter-toolbar/parts/AddFilterItem.js +20 -18
  147. package/dist/esm/components/filter-toolbar/utils/filter-adapters.js +17 -88
  148. package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.js +12 -18
  149. package/dist/esm/components/flex/Flex.js +38 -57
  150. package/dist/esm/components/flex/Flex.variants.js +198 -199
  151. package/dist/esm/components/flex/FlexItem.js +21 -32
  152. package/dist/esm/components/floating-action-bar/FloatingActionBar.js +55 -68
  153. package/dist/esm/components/form/Form.context.js +15 -26
  154. package/dist/esm/components/form/Form.js +40 -57
  155. package/dist/esm/components/form/TanstackForm.js +22 -29
  156. package/dist/esm/components/form-field/FormField.context.js +44 -70
  157. package/dist/esm/components/form-field/FormField.js +50 -56
  158. package/dist/esm/components/form-field/TanstackFormField.context.js +11 -12
  159. package/dist/esm/components/form-field/TanstackFormField.js +44 -45
  160. package/dist/esm/components/form-field/parts/FormControl.js +41 -52
  161. package/dist/esm/components/form-field/parts/FormFeedbackText.js +24 -26
  162. package/dist/esm/components/form-field/parts/FormHelperText.js +21 -26
  163. package/dist/esm/components/form-field/parts/FormLabel.js +21 -30
  164. package/dist/esm/components/form-field/parts/RawFormContextualLink.js +32 -38
  165. package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.js +28 -31
  166. package/dist/esm/components/form-field/parts/TanstackFormHelperText.js +22 -25
  167. package/dist/esm/components/form-field/parts/TanstackFormLabel.js +21 -26
  168. package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.js +33 -45
  169. package/dist/esm/components/form-field/utils/isFieldRequired.js +7 -7
  170. package/dist/esm/components/full-page-loader/FullPageLoader.js +26 -35
  171. package/dist/esm/components/funnel-layout/FunnelLayout.context.js +12 -26
  172. package/dist/esm/components/funnel-layout/FunnelLayout.js +75 -91
  173. package/dist/esm/components/funnel-layout/parts/FunnelBackButton.js +24 -34
  174. package/dist/esm/components/funnel-layout/parts/FunnelBody.js +15 -23
  175. package/dist/esm/components/funnel-layout/parts/FunnelPage.js +27 -35
  176. package/dist/esm/components/funnel-layout/parts/FunnelPageAction.js +32 -39
  177. package/dist/esm/components/funnel-layout/parts/FunnelPageActions.js +30 -41
  178. package/dist/esm/components/funnel-layout/parts/FunnelPageContent.js +15 -23
  179. package/dist/esm/components/funnel-layout/parts/FunnelPageFooter.js +20 -28
  180. package/dist/esm/components/funnel-layout/parts/FunnelPageHeader.js +53 -55
  181. package/dist/esm/components/funnel-layout/parts/FunnelProgressBar.js +39 -50
  182. package/dist/esm/components/funnel-layout/parts/FunnelSidebar.js +47 -54
  183. package/dist/esm/components/funnel-layout/parts/FunnelTopBar.js +88 -119
  184. package/dist/esm/components/grid/Grid.js +27 -38
  185. package/dist/esm/components/grid/Grid.variants.js +147 -164
  186. package/dist/esm/components/grid/GridItem.js +24 -43
  187. package/dist/esm/components/icon/Icon.js +112 -115
  188. package/dist/esm/components/icon-button/CircularIconButton.js +117 -119
  189. package/dist/esm/components/icon-button/IconButton.js +82 -93
  190. package/dist/esm/components/icon-button/IconButton.variants.js +167 -174
  191. package/dist/esm/components/inline-field/InlineField.context.js +8 -9
  192. package/dist/esm/components/inline-field/InlineField.js +48 -57
  193. package/dist/esm/components/inline-field/hooks/useInlineFieldMode.js +23 -26
  194. package/dist/esm/components/inline-field/parts/InlineFieldEditView.js +113 -149
  195. package/dist/esm/components/inline-field/parts/InlineFieldReadView.js +52 -57
  196. package/dist/esm/components/inline-field-group/InlineFieldGroup.context.js +5 -5
  197. package/dist/esm/components/inline-field-group/InlineFieldGroup.js +188 -216
  198. package/dist/esm/components/inline-field-group/hooks/useInlineFieldGroupMode.js +23 -26
  199. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupActions.js +109 -156
  200. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupEditView.js +51 -55
  201. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupHeader.js +39 -38
  202. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupReadView.js +18 -27
  203. package/dist/esm/components/input/Input.js +123 -150
  204. package/dist/esm/components/input/TanstackInput.js +33 -38
  205. package/dist/esm/components/label/Label.js +52 -66
  206. package/dist/esm/components/link/RawLink.js +109 -165
  207. package/dist/esm/components/link/utils.js +12 -15
  208. package/dist/esm/components/link-button/RawLinkButton.js +100 -127
  209. package/dist/esm/components/list-view/ListView.js +40 -45
  210. package/dist/esm/components/list-view/parts/ListViewItemLabel.js +17 -22
  211. package/dist/esm/components/list-view/parts/ListViewItemText.js +17 -22
  212. package/dist/esm/components/list-view/parts/ListViewSection.js +25 -23
  213. package/dist/esm/components/list-view/parts/RawListViewItem.js +68 -81
  214. package/dist/esm/components/menu/Menu.js +21 -30
  215. package/dist/esm/components/menu/parts/MenuContent.js +17 -29
  216. package/dist/esm/components/menu/parts/MenuHeader.js +13 -16
  217. package/dist/esm/components/menu/parts/MenuSection.js +32 -42
  218. package/dist/esm/components/menu/parts/MenuSeparator.js +8 -8
  219. package/dist/esm/components/menu/parts/MenuTrigger.js +12 -13
  220. package/dist/esm/components/menu/parts/RawMenuItem.js +29 -42
  221. package/dist/esm/components/multi-select/MultiSelect.js +249 -299
  222. package/dist/esm/components/multi-select/Multiselect.context.js +6 -6
  223. package/dist/esm/components/multi-select/TanstackMultiSelect.js +31 -41
  224. package/dist/esm/components/multi-select/parts/MultiSelectOptGroup.js +35 -43
  225. package/dist/esm/components/multi-select/parts/MultiSelectOption.js +60 -76
  226. package/dist/esm/components/multi-select/utils/selection-adapter.js +9 -15
  227. package/dist/esm/components/multi-select-field/MultiSelectField.js +56 -71
  228. package/dist/esm/components/multi-select-field/TanstackMultiSelectField.js +27 -48
  229. package/dist/esm/components/multi-select-field/test-utils.js +22 -45
  230. package/dist/esm/components/nav/Nav.js +21 -27
  231. package/dist/esm/components/nav/parts/NavGroup.js +103 -123
  232. package/dist/esm/components/nav/parts/RawNavItem.js +99 -118
  233. package/dist/esm/components/navigation-card/NavigationCard.context.js +10 -11
  234. package/dist/esm/components/navigation-card/NavigationCard.js +53 -63
  235. package/dist/esm/components/navigation-card/NavigationCard.variants.js +162 -162
  236. package/dist/esm/components/navigation-card/parts/NavigationCardDescription.js +17 -20
  237. package/dist/esm/components/navigation-card/parts/NavigationCardGroup.js +76 -93
  238. package/dist/esm/components/navigation-card/parts/NavigationCardLabel.js +18 -23
  239. package/dist/esm/components/number-field/NumberField.js +48 -69
  240. package/dist/esm/components/number-field/TanstackNumberField.js +30 -43
  241. package/dist/esm/components/number-input/NumberInput.js +161 -216
  242. package/dist/esm/components/number-input/TanstackNumberInput.js +33 -38
  243. package/dist/esm/components/page/Page.js +33 -48
  244. package/dist/esm/components/page/parts/PageHeader.js +41 -36
  245. package/dist/esm/components/page/parts/PageHeading.js +17 -19
  246. package/dist/esm/components/pagination/Pagination.js +78 -102
  247. package/dist/esm/components/pagination/PaginationContext.js +8 -14
  248. package/dist/esm/components/pagination/hooks/use-pagination-state.js +20 -26
  249. package/dist/esm/components/pagination/hooks/use-pagination-window.js +10 -13
  250. package/dist/esm/components/pagination/parts/PaginationContent.js +26 -37
  251. package/dist/esm/components/pagination/parts/PaginationEllipsis.js +33 -33
  252. package/dist/esm/components/pagination/parts/PaginationItem.js +17 -22
  253. package/dist/esm/components/pagination/parts/RawPaginationLink.js +50 -60
  254. package/dist/esm/components/pagination/parts/RawPaginationNext.js +53 -70
  255. package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +52 -66
  256. package/dist/esm/components/pagination/utils/pagination-window.js +55 -40
  257. package/dist/esm/components/password-field/TanstackPasswordField.js +55 -82
  258. package/dist/esm/components/password-field/hooks/use-caps-lock.js +11 -11
  259. package/dist/esm/components/password-field/parts/PasswordFieldDetails.js +42 -41
  260. package/dist/esm/components/password-field/parts/PasswordInput.js +153 -188
  261. package/dist/esm/components/password-field/parts/ValidationRuleItem.js +38 -43
  262. package/dist/esm/components/payfit-brand/PayFitBrand.js +74 -84
  263. package/dist/esm/components/payfit-brand/PayFitPreprod.js +53 -57
  264. package/dist/esm/components/phone-number/PhoneNumberInput.js +214 -331
  265. package/dist/esm/components/phone-number/TanstackPhoneNumberInput.js +29 -32
  266. package/dist/esm/components/phone-number/parts/PhoneNumberItem.js +49 -65
  267. package/dist/esm/components/phone-number/unknownFlag.js +4 -0
  268. package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.js +21 -32
  269. package/dist/esm/components/pill/Pill.js +48 -58
  270. package/dist/esm/components/popover/Popover.js +37 -41
  271. package/dist/esm/components/popover/parts/PopoverHeader.js +48 -60
  272. package/dist/esm/components/progress-bar/ProgressBar.js +66 -76
  273. package/dist/esm/components/promo-dialog/PromoDialog.js +135 -218
  274. package/dist/esm/components/promo-dialog/parts/PromoDialogActions.js +19 -29
  275. package/dist/esm/components/promo-dialog/parts/PromoDialogContent.js +14 -19
  276. package/dist/esm/components/promo-dialog/parts/PromoDialogHero.js +17 -24
  277. package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.js +15 -21
  278. package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.js +11 -16
  279. package/dist/esm/components/radio-button-group/RadioButtonGroup.js +18 -23
  280. package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.js +32 -42
  281. package/dist/esm/components/radio-button-group/parts/RadioButton.js +61 -66
  282. package/dist/esm/components/radio-button-group/parts/RadioButtonHelper.js +14 -19
  283. package/dist/esm/components/radio-button-group/parts/RadioIndicator.js +107 -129
  284. package/dist/esm/components/radio-button-group-field/RadioButtonGroupField.js +37 -52
  285. package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.js +31 -37
  286. package/dist/esm/components/search/Search.js +120 -166
  287. package/dist/esm/components/segmented-button-group/SegmentedButtonGroup.js +20 -20
  288. package/dist/esm/components/segmented-button-group/SegmentedButtonGroups.context.js +11 -14
  289. package/dist/esm/components/segmented-button-group/parts/ToggleButton.js +105 -125
  290. package/dist/esm/components/select/Select.js +85 -130
  291. package/dist/esm/components/select/TanstackSelect.js +31 -40
  292. package/dist/esm/components/select/parts/SelectButton.js +79 -103
  293. package/dist/esm/components/select/parts/SelectOption.context.js +14 -21
  294. package/dist/esm/components/select/parts/SelectOption.js +53 -64
  295. package/dist/esm/components/select/parts/SelectOptionGroup.js +34 -27
  296. package/dist/esm/components/select/parts/SelectOptionHelper.js +22 -21
  297. package/dist/esm/components/select-field/SelectField.js +44 -66
  298. package/dist/esm/components/select-field/TanstackSelectField.js +29 -45
  299. package/dist/esm/components/select-field/test-utils.js +10 -25
  300. package/dist/esm/components/select-list/SelectList.js +70 -81
  301. package/dist/esm/components/select-list/constants.js +13 -28
  302. package/dist/esm/components/select-list/helpers.js +37 -43
  303. package/dist/esm/components/select-list/hooks/useControlledSelection.js +13 -15
  304. package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.js +30 -30
  305. package/dist/esm/components/select-list/parts/SelectListEmptyState.js +24 -24
  306. package/dist/esm/components/select-list/parts/SelectListOptGroup.js +33 -30
  307. package/dist/esm/components/select-list/parts/SelectListOption.js +54 -70
  308. package/dist/esm/components/select-list/parts/SelectListSearchInput.js +43 -49
  309. package/dist/esm/components/select-list/parts/SelectedItemsSection.js +29 -35
  310. package/dist/esm/components/select-list/utils/partition.js +7 -8
  311. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.js +5 -5
  312. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.js +32 -38
  313. package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.js +27 -33
  314. package/dist/esm/components/selectable-button-group/parts/SelectableButton.js +81 -123
  315. package/dist/esm/components/selectable-button-group-field/SelectableButtonGroupField.js +41 -44
  316. package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.js +29 -46
  317. package/dist/esm/components/selectable-card/internals/Content.js +8 -8
  318. package/dist/esm/components/selectable-card/internals/Description.js +11 -10
  319. package/dist/esm/components/selectable-card/internals/Illustration.js +8 -8
  320. package/dist/esm/components/selectable-card/internals/SelectedIndicator.js +9 -9
  321. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/SelectableCardCheckboxGroup.js +13 -16
  322. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.js +28 -31
  323. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/parts/SelectableCardCheckbox.js +37 -37
  324. package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.js +18 -21
  325. package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.js +28 -31
  326. package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/SelectableCardRadio.js +40 -47
  327. package/dist/esm/components/selectable-card/selectableCard.variant.js +16 -22
  328. package/dist/esm/components/selectable-card-checkbox-group-field/SelectableCardCheckboxGroupField.js +38 -46
  329. package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.js +29 -37
  330. package/dist/esm/components/selectable-card-radio-group-field/SelectableCardRadioGroupField.js +37 -45
  331. package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.js +29 -37
  332. package/dist/esm/components/side-panel/SidePanel.js +53 -71
  333. package/dist/esm/components/side-panel/parts/SidePanelContent.js +25 -25
  334. package/dist/esm/components/side-panel/parts/SidePanelDragIndicator.js +44 -65
  335. package/dist/esm/components/side-panel/parts/SidePanelFooter.js +26 -29
  336. package/dist/esm/components/side-panel/parts/SidePanelHeader.js +41 -43
  337. package/dist/esm/components/skip-links/SkipLinks.js +69 -87
  338. package/dist/esm/components/spinner/Spinner.js +76 -106
  339. package/dist/esm/components/stepper/Stepper.context.js +15 -20
  340. package/dist/esm/components/stepper/Stepper.js +16 -18
  341. package/dist/esm/components/stepper/hooks/useStepper.js +20 -25
  342. package/dist/esm/components/stepper/parts/Step.js +47 -56
  343. package/dist/esm/components/table/Table.context.js +35 -41
  344. package/dist/esm/components/table/Table.js +155 -225
  345. package/dist/esm/components/table/hooks/useTableKeyboardNavigation.js +180 -208
  346. package/dist/esm/components/table/parts/TableBody.js +81 -104
  347. package/dist/esm/components/table/parts/TableCell.js +38 -62
  348. package/dist/esm/components/table/parts/TableColumnHeader.js +62 -78
  349. package/dist/esm/components/table/parts/TableEmptyState.js +131 -161
  350. package/dist/esm/components/table/parts/TableHeader.js +24 -37
  351. package/dist/esm/components/table/parts/TablePagination.js +119 -141
  352. package/dist/esm/components/table/parts/TableRow.js +36 -52
  353. package/dist/esm/components/tabs/Tabs.context.js +19 -20
  354. package/dist/esm/components/tabs/Tabs.js +26 -24
  355. package/dist/esm/components/tabs/Tabs.variant.js +35 -41
  356. package/dist/esm/components/tabs/parts/NavigationButton.js +37 -46
  357. package/dist/esm/components/tabs/parts/RawTab.js +22 -18
  358. package/dist/esm/components/tabs/parts/TabList.js +84 -83
  359. package/dist/esm/components/tabs/parts/TabPanel.js +13 -9
  360. package/dist/esm/components/task-menu/TaskMenu.context.js +44 -58
  361. package/dist/esm/components/task-menu/TaskMenu.js +21 -28
  362. package/dist/esm/components/task-menu/parts/Content.js +43 -48
  363. package/dist/esm/components/task-menu/parts/Header.js +39 -54
  364. package/dist/esm/components/task-menu/parts/RawSubTask.js +141 -166
  365. package/dist/esm/components/task-menu/parts/RawTask.js +115 -145
  366. package/dist/esm/components/task-menu/parts/TaskGroup.js +103 -140
  367. package/dist/esm/components/task-menu/parts/dot.js +19 -0
  368. package/dist/esm/components/task-menu/parts/task.variants.js +59 -64
  369. package/dist/esm/components/text/Text.js +56 -71
  370. package/dist/esm/components/text/Text.variants.js +106 -112
  371. package/dist/esm/components/text-area/TanstackTextArea.js +30 -35
  372. package/dist/esm/components/text-area/TextArea.js +121 -164
  373. package/dist/esm/components/text-field/TanstackTextField.js +39 -59
  374. package/dist/esm/components/text-field/TextField.js +53 -76
  375. package/dist/esm/components/timeline/Timeline.context.js +18 -21
  376. package/dist/esm/components/timeline/Timeline.js +33 -37
  377. package/dist/esm/components/timeline/Timeline.utils.js +8 -8
  378. package/dist/esm/components/timeline/Timeline.variants.js +93 -118
  379. package/dist/esm/components/timeline/parts/TimelineMarker.js +36 -26
  380. package/dist/esm/components/timeline/parts/TimelineStep.context.js +15 -19
  381. package/dist/esm/components/timeline/parts/TimelineStep.js +57 -52
  382. package/dist/esm/components/timeline/parts/TimelineStepContent.context.js +15 -20
  383. package/dist/esm/components/timeline/parts/TimelineStepContent.js +30 -17
  384. package/dist/esm/components/timeline/parts/TimelineStepDescription.js +12 -7
  385. package/dist/esm/components/timeline/parts/TimelineStepHeader.js +34 -36
  386. package/dist/esm/components/timeline/parts/check.js +23 -0
  387. package/dist/esm/components/toast/Toast.context.js +15 -20
  388. package/dist/esm/components/toast/ToastManager.js +13 -21
  389. package/dist/esm/components/toast/UnityToast.js +82 -95
  390. package/dist/esm/components/toast/parts/ToastAction.js +18 -13
  391. package/dist/esm/components/toast/parts/ToastContent.js +13 -9
  392. package/dist/esm/components/toast/parts/ToastTitle.js +13 -8
  393. package/dist/esm/components/toast/test-utils.js +63 -117
  394. package/dist/esm/components/toast/toast.js +27 -38
  395. package/dist/esm/components/toggle-switch/TanstackToggleSwitch.js +21 -24
  396. package/dist/esm/components/toggle-switch/ToggleSwitch.js +111 -112
  397. package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.js +19 -33
  398. package/dist/esm/components/toggle-switch-field/ToggleSwitchField.js +33 -58
  399. package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.js +18 -21
  400. package/dist/esm/components/toggle-switch-group/ToggleSwitchGroup.js +83 -108
  401. package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.js +30 -49
  402. package/dist/esm/components/toggle-switch-group-field/ToggleSwitchGroupField.js +41 -61
  403. package/dist/esm/components/tooltip/Tooltip.js +30 -31
  404. package/dist/esm/hooks/tanstack-form-context.js +5 -8
  405. package/dist/esm/hooks/tanstack-form-default-values.js +5 -5
  406. package/dist/esm/hooks/use-async-list.js +2 -0
  407. package/dist/esm/hooks/use-breakpoint-listener.js +16 -25
  408. package/dist/esm/hooks/use-container-query-level.js +30 -31
  409. package/dist/esm/hooks/use-form.js +35 -29
  410. package/dist/esm/hooks/use-has-scroll.js +76 -74
  411. package/dist/esm/hooks/use-id.js +18 -24
  412. package/dist/esm/hooks/use-media-query.js +15 -18
  413. package/dist/esm/hooks/use-resizable.js +49 -49
  414. package/dist/esm/hooks/use-responsive-value.js +22 -26
  415. package/dist/esm/hooks/use-scroll-direction.js +50 -52
  416. package/dist/esm/hooks/use-tanstack-form.js +60 -287
  417. package/dist/esm/index.js +240 -577
  418. package/dist/esm/integrations/tanstack-router/components/breadcrumbs/BreadcrumbLink.js +7 -7
  419. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.js +7 -7
  420. package/dist/esm/integrations/tanstack-router/components/link/Link.js +7 -7
  421. package/dist/esm/integrations/tanstack-router/components/link-button/LinkButton.js +5 -5
  422. package/dist/esm/integrations/tanstack-router/components/list-view/ListView.js +20 -23
  423. package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.js +17 -30
  424. package/dist/esm/integrations/tanstack-router/components/menu-item/MenuItem.js +17 -15
  425. package/dist/esm/integrations/tanstack-router/components/nav-item/NavItem.js +21 -27
  426. package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.js +19 -35
  427. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationLink.js +18 -20
  428. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationNext.js +17 -20
  429. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationPrevious.js +18 -21
  430. package/dist/esm/integrations/tanstack-router/components/tabs/Tabs.js +52 -67
  431. package/dist/esm/integrations/tanstack-router/components/tabs/parts/Tab.js +16 -22
  432. package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabPanel.js +14 -14
  433. package/dist/esm/integrations/tanstack-router/components/task-menu/SubTask.js +15 -12
  434. package/dist/esm/integrations/tanstack-router/components/task-menu/Task.js +15 -12
  435. package/dist/esm/integrations/tanstack-router.js +19 -40
  436. package/dist/esm/providers/router/RouterProvider.js +24 -20
  437. package/dist/esm/storybook-testing.js +7 -14
  438. package/dist/esm/utils/createSchemaAdapter.js +7 -12
  439. package/dist/esm/utils/field-revalidate-logic.js +41 -38
  440. package/dist/esm/utils/platform.js +4 -4
  441. package/dist/esm/utils/scroll-detection.js +31 -32
  442. package/dist/esm/utils/spacing.js +14 -14
  443. package/package.json +12 -12
  444. package/dist/esm/components/phone-number/unknownFlag.svg.js +0 -4
  445. package/dist/esm/components/task-menu/parts/dot.svg.js +0 -5
  446. package/dist/esm/components/timeline/parts/check.svg.js +0 -5
@@ -1,132 +1,130 @@
1
- import { useMemo as u, useReducer as g, useCallback as c } from "react";
2
- import { normalizeFilterValue as M } from "../utils/normalize-filter-value.js";
3
- function v(E) {
4
- return (r, d) => {
5
- switch (d.type) {
6
- case "ADD_FILTERS": {
7
- const t = new Set(r.appliedFilters);
8
- let s = !1;
9
- for (const a of d.payload)
10
- E.has(a) && !t.has(a) && (t.add(a), s = !0);
11
- return s ? { appliedFilters: t, filterValues: r.filterValues } : r;
12
- }
13
- case "REMOVE_FILTERS": {
14
- const t = new Set(r.appliedFilters), s = new Map(r.filterValues);
15
- let a = !1;
16
- for (const F of d.payload)
17
- t.delete(F) && (s.delete(F), a = !0);
18
- return a ? { appliedFilters: t, filterValues: s } : r;
19
- }
20
- case "CLEAR_FILTERS":
21
- return { appliedFilters: /* @__PURE__ */ new Set(), filterValues: /* @__PURE__ */ new Map() };
22
- case "SET_FILTER_VALUE": {
23
- const { filterId: t, value: s } = d.payload;
24
- if (!r.appliedFilters.has(t))
25
- return r;
26
- const a = new Map(r.filterValues);
27
- if (s == null) {
28
- if (!a.has(t))
29
- return r;
30
- a.delete(t);
31
- } else {
32
- if (a.get(t) === s)
33
- return r;
34
- a.set(t, s);
35
- }
36
- return {
37
- appliedFilters: r.appliedFilters,
38
- filterValues: a
39
- };
40
- }
41
- default:
42
- return r;
43
- }
44
- };
1
+ import { normalizeFilterValue as e } from "../utils/normalize-filter-value.js";
2
+ import { useCallback as t, useMemo as n, useReducer as r } from "react";
3
+ //#region src/components/filter-toolbar/hooks/use-filter-toolbar-state.ts
4
+ function i(e) {
5
+ return (t, n) => {
6
+ switch (n.type) {
7
+ case "ADD_FILTERS": {
8
+ let r = new Set(t.appliedFilters), i = !1;
9
+ for (let t of n.payload) e.has(t) && !r.has(t) && (r.add(t), i = !0);
10
+ return i ? {
11
+ appliedFilters: r,
12
+ filterValues: t.filterValues
13
+ } : t;
14
+ }
15
+ case "REMOVE_FILTERS": {
16
+ let e = new Set(t.appliedFilters), r = new Map(t.filterValues), i = !1;
17
+ for (let t of n.payload) e.delete(t) && (r.delete(t), i = !0);
18
+ return i ? {
19
+ appliedFilters: e,
20
+ filterValues: r
21
+ } : t;
22
+ }
23
+ case "CLEAR_FILTERS": return {
24
+ appliedFilters: /* @__PURE__ */ new Set(),
25
+ filterValues: /* @__PURE__ */ new Map()
26
+ };
27
+ case "SET_FILTER_VALUE": {
28
+ let { filterId: e, value: r } = n.payload;
29
+ if (!t.appliedFilters.has(e)) return t;
30
+ let i = new Map(t.filterValues);
31
+ if (r == null) {
32
+ if (!i.has(e)) return t;
33
+ i.delete(e);
34
+ } else {
35
+ if (i.get(e) === r) return t;
36
+ i.set(e, r);
37
+ }
38
+ return {
39
+ appliedFilters: t.appliedFilters,
40
+ filterValues: i
41
+ };
42
+ }
43
+ default: return t;
44
+ }
45
+ };
45
46
  }
46
- function D(E) {
47
- const { filterDefs: r, initialValue: d, onChange: t } = E, s = u(
48
- () => new Set(r.map((e) => e.id)),
49
- [r]
50
- ), a = u(() => {
51
- const e = /* @__PURE__ */ new Set(), i = /* @__PURE__ */ new Map();
52
- if (d)
53
- for (const n of d) {
54
- const o = n.id, p = n.value;
55
- s.has(o) && (e.add(o), p != null && i.set(o, p));
56
- }
57
- return { appliedFilters: e, filterValues: i };
58
- }, [d, s]), F = u(() => v(s), [s]), [l, V] = g(F, a), S = u(
59
- () => Array.from(l.appliedFilters),
60
- [l.appliedFilters]
61
- ), y = u(() => Array.from(s).filter(
62
- (e) => !l.appliedFilters.has(e)
63
- ), [s, l.appliedFilters]), L = u(() => {
64
- const e = [];
65
- for (const i of r)
66
- l.appliedFilters.has(i.id) || e.push(i);
67
- return e;
68
- }, [r, l.appliedFilters]), R = u(() => {
69
- const e = l.appliedFilters.size, i = s.size;
70
- return e === 0 ? "EMPTY" : i > 0 && e === i ? "WITH_ALL_FILTERS_APPLIED" : "WITH_SOME_FILTERS_APPLIED";
71
- }, [l.appliedFilters.size, s.size]), f = c(
72
- (e, i) => Array.from(e).map((n) => ({
73
- id: n,
74
- value: M(i.get(n))
75
- })),
76
- []
77
- ), T = c(
78
- (e) => {
79
- const i = Array.isArray(e) ? e : [e], n = new Set(l.appliedFilters);
80
- let o = !1;
81
- for (const p of i)
82
- s.has(p) && !n.has(p) && (n.add(p), o = !0);
83
- o && (V({ type: "ADD_FILTERS", payload: i }), t && t(f(n, l.filterValues)));
84
- },
85
- [
86
- t,
87
- l.appliedFilters,
88
- l.filterValues,
89
- s,
90
- f
91
- ]
92
- ), m = c(
93
- (e) => {
94
- const i = Array.isArray(e) ? e : [e], n = new Set(l.appliedFilters);
95
- let o = !1;
96
- for (const p of i)
97
- n.delete(p) && (o = !0);
98
- if (o && (V({ type: "REMOVE_FILTERS", payload: i }), t)) {
99
- const p = new Map(l.filterValues);
100
- for (const A of i)
101
- p.delete(A);
102
- t(f(n, p));
103
- }
104
- },
105
- [t, l.appliedFilters, l.filterValues, f]
106
- ), w = c(() => {
107
- l.appliedFilters.size > 0 && (V({ type: "CLEAR_FILTERS" }), t && t([]));
108
- }, [t, l.appliedFilters.size]), _ = c(
109
- (e, i) => {
110
- const n = l.filterValues.get(e), o = i == null, p = l.filterValues.has(e);
111
- if (l.appliedFilters.has(e) && (o ? p : n !== i) && (V({ type: "SET_FILTER_VALUE", payload: { filterId: e, value: i } }), t)) {
112
- const h = new Map(l.filterValues);
113
- o ? h.delete(e) : h.set(e, i), t(f(l.appliedFilters, h));
114
- }
115
- },
116
- [t, l.appliedFilters, l.filterValues, f]
117
- );
118
- return {
119
- status: R,
120
- appliedFilters: S,
121
- remainingFilters: y,
122
- availableFilterDefs: L,
123
- filterValues: l.filterValues,
124
- addFilter: T,
125
- removeFilter: m,
126
- clearFilters: w,
127
- setFilterValue: _
128
- };
47
+ function a(a) {
48
+ let { filterDefs: o, initialValue: s, onChange: c } = a, l = n(() => new Set(o.map((e) => e.id)), [o]), u = n(() => {
49
+ let e = /* @__PURE__ */ new Set(), t = /* @__PURE__ */ new Map();
50
+ if (s) for (let n of s) {
51
+ let r = n.id, i = n.value;
52
+ l.has(r) && (e.add(r), i != null && t.set(r, i));
53
+ }
54
+ return {
55
+ appliedFilters: e,
56
+ filterValues: t
57
+ };
58
+ }, [s, l]), [d, f] = r(n(() => i(l), [l]), u), p = n(() => Array.from(d.appliedFilters), [d.appliedFilters]), m = n(() => Array.from(l).filter((e) => !d.appliedFilters.has(e)), [l, d.appliedFilters]), h = n(() => {
59
+ let e = [];
60
+ for (let t of o) d.appliedFilters.has(t.id) || e.push(t);
61
+ return e;
62
+ }, [o, d.appliedFilters]), g = n(() => {
63
+ let e = d.appliedFilters.size, t = l.size;
64
+ return e === 0 ? "EMPTY" : t > 0 && e === t ? "WITH_ALL_FILTERS_APPLIED" : "WITH_SOME_FILTERS_APPLIED";
65
+ }, [d.appliedFilters.size, l.size]), _ = t((t, n) => Array.from(t).map((t) => ({
66
+ id: t,
67
+ value: e(n.get(t))
68
+ })), []), v = t((e) => {
69
+ let t = Array.isArray(e) ? e : [e], n = new Set(d.appliedFilters), r = !1;
70
+ for (let e of t) l.has(e) && !n.has(e) && (n.add(e), r = !0);
71
+ r && (f({
72
+ type: "ADD_FILTERS",
73
+ payload: t
74
+ }), c && c(_(n, d.filterValues)));
75
+ }, [
76
+ c,
77
+ d.appliedFilters,
78
+ d.filterValues,
79
+ l,
80
+ _
81
+ ]), y = t((e) => {
82
+ let t = Array.isArray(e) ? e : [e], n = new Set(d.appliedFilters), r = !1;
83
+ for (let e of t) n.delete(e) && (r = !0);
84
+ if (r && (f({
85
+ type: "REMOVE_FILTERS",
86
+ payload: t
87
+ }), c)) {
88
+ let e = new Map(d.filterValues);
89
+ for (let n of t) e.delete(n);
90
+ c(_(n, e));
91
+ }
92
+ }, [
93
+ c,
94
+ d.appliedFilters,
95
+ d.filterValues,
96
+ _
97
+ ]), b = t(() => {
98
+ d.appliedFilters.size > 0 && (f({ type: "CLEAR_FILTERS" }), c && c([]));
99
+ }, [c, d.appliedFilters.size]), x = t((e, t) => {
100
+ let n = d.filterValues.get(e), r = t == null, i = d.filterValues.has(e);
101
+ if (d.appliedFilters.has(e) && (r ? i : n !== t) && (f({
102
+ type: "SET_FILTER_VALUE",
103
+ payload: {
104
+ filterId: e,
105
+ value: t
106
+ }
107
+ }), c)) {
108
+ let n = new Map(d.filterValues);
109
+ r ? n.delete(e) : n.set(e, t), c(_(d.appliedFilters, n));
110
+ }
111
+ }, [
112
+ c,
113
+ d.appliedFilters,
114
+ d.filterValues,
115
+ _
116
+ ]);
117
+ return {
118
+ status: g,
119
+ appliedFilters: p,
120
+ remainingFilters: m,
121
+ availableFilterDefs: h,
122
+ filterValues: d.filterValues,
123
+ addFilter: v,
124
+ removeFilter: y,
125
+ clearFilters: b,
126
+ setFilterValue: x
127
+ };
129
128
  }
130
- export {
131
- D as useFilterToolbarState
132
- };
129
+ //#endregion
130
+ export { a as useFilterToolbarState };
@@ -1,110 +1,82 @@
1
- import { jsxs as s, Fragment as y, jsx as e } from "react/jsx-runtime";
2
- import { useState as g, useRef as h } from "react";
3
- import { Icon as v } from "@payfit/unity-icons";
4
- import { uyTv as x } from "@payfit/unity-themes";
5
- import { Button as F } from "react-aria-components/Button";
6
- import { Dialog as N } from "react-aria-components/Dialog";
7
- import { ListBox as M } from "react-aria-components/ListBox";
8
- import { Popover as A } from "react-aria-components/Popover";
9
- import { useIntl as O, FormattedMessage as P } from "react-intl";
10
- import { filterPopover as w } from "../../filter/parts/FilterPopover.js";
11
- import { AddFilterItem as I } from "./AddFilterItem.js";
12
- const S = x({
13
- slots: {
14
- button: [
15
- "uy:flex uy:group uy:items-center",
16
- "uy:rounded-sm",
17
- "uy:border uy:border-solid",
18
- "uy:cursor-pointer uy:data-[disabled=true]:cursor-not-allowed",
19
- "uy:w-fit uy:p-100 uy:pl-100 uy:pr-150",
20
- "uy:typography-action",
21
- "uy:border-border-form-enabled uy:bg-surface-form-enabled uy:text-content-form-enabled",
22
- "uy:hover:border-border-form-hover uy:hover:bg-surface-form-hover",
23
- "uy:data-[pressed=true]:border-border-form-pressed uy:data-[pressed=true]:bg-surface-form-pressed",
24
- "uy:data-[disabled=true]:border-border-form-disabled uy:data-[disabled=true]:bg-surface-form-disabled uy:data-[disabled=true]:text-content-form-disabled",
25
- "uy:focus-visible:outline-2 uy:focus-visible:outline-offset-2 uy:focus-visible:outline-utility-focus-ring"
26
- ],
27
- icon: [
28
- "uy:p-0.25",
29
- "uy:text-content-neutral-low",
30
- "uy:group-data-[status=active]:text-content-primary-enabled",
31
- "uy:group-data-[disabled=true]:text-content-neutral-disabled"
32
- ],
33
- listbox: ["uy:p-100"]
34
- }
35
- }), j = ({
36
- availableFilterDefs: a,
37
- onSelectionChange: l,
38
- isDisabled: d = !1,
39
- ...i
40
- }) => {
41
- const u = O(), [n, t] = g(!1), o = h(null), { popover: f, dialog: m } = w(), { icon: c, button: p, listbox: b } = S();
42
- return /* @__PURE__ */ s(y, { children: [
43
- /* @__PURE__ */ s(
44
- F,
45
- {
46
- className: p(),
47
- ref: o,
48
- onPress: () => {
49
- t(!0);
50
- },
51
- isDisabled: d,
52
- ...i,
53
- children: [
54
- /* @__PURE__ */ e(
55
- v,
56
- {
57
- src: "PlusOutlined",
58
- role: "presentation",
59
- size: 20,
60
- className: c()
61
- }
62
- ),
63
- /* @__PURE__ */ e(
64
- P,
65
- {
66
- id: "unity:component:filter-toolbar:add-filter:label",
67
- defaultMessage: "Add filter"
68
- }
69
- )
70
- ]
71
- }
72
- ),
73
- /* @__PURE__ */ e(
74
- A,
75
- {
76
- className: f(),
77
- triggerRef: o,
78
- isOpen: n,
79
- onOpenChange: t,
80
- placement: "bottom start",
81
- children: /* @__PURE__ */ e(
82
- N,
83
- {
84
- className: m(),
85
- "aria-label": u.formatMessage({
86
- id: "unity:component:filter-toolbar:add-filter:popover:label",
87
- defaultMessage: "Select a filter to add"
88
- }),
89
- children: /* @__PURE__ */ e(
90
- M,
91
- {
92
- className: b(),
93
- selectionMode: "single",
94
- items: a,
95
- onSelectionChange: (r) => {
96
- l?.(r), t(!1);
97
- },
98
- children: (r) => /* @__PURE__ */ e(I, { id: r.id, children: r.label })
99
- }
100
- )
101
- }
102
- )
103
- }
104
- )
105
- ] });
106
- };
107
- j.displayName = "AddFilter";
108
- export {
109
- j as AddFilter
1
+ import { filterPopover as e } from "../../filter/parts/FilterPopover.js";
2
+ import { AddFilterItem as t } from "./AddFilterItem.js";
3
+ import { useRef as n, useState as r } from "react";
4
+ import { uyTv as i } from "@payfit/unity-themes";
5
+ import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
6
+ import { FormattedMessage as c, useIntl as l } from "react-intl";
7
+ import { Button as u } from "react-aria-components/Button";
8
+ import { Icon as d } from "@payfit/unity-icons";
9
+ import { ListBox as f } from "react-aria-components/ListBox";
10
+ import { Popover as p } from "react-aria-components/Popover";
11
+ import { Dialog as m } from "react-aria-components/Dialog";
12
+ //#region src/components/filter-toolbar/parts/AddFilter.tsx
13
+ var h = i({ slots: {
14
+ button: [
15
+ "uy:flex uy:group uy:items-center",
16
+ "uy:rounded-sm",
17
+ "uy:border uy:border-solid",
18
+ "uy:cursor-pointer uy:data-[disabled=true]:cursor-not-allowed",
19
+ "uy:w-fit uy:p-100 uy:pl-100 uy:pr-150",
20
+ "uy:typography-action",
21
+ "uy:border-border-form-enabled uy:bg-surface-form-enabled uy:text-content-form-enabled",
22
+ "uy:hover:border-border-form-hover uy:hover:bg-surface-form-hover",
23
+ "uy:data-[pressed=true]:border-border-form-pressed uy:data-[pressed=true]:bg-surface-form-pressed",
24
+ "uy:data-[disabled=true]:border-border-form-disabled uy:data-[disabled=true]:bg-surface-form-disabled uy:data-[disabled=true]:text-content-form-disabled",
25
+ "uy:focus-visible:outline-2 uy:focus-visible:outline-offset-2 uy:focus-visible:outline-utility-focus-ring"
26
+ ],
27
+ icon: [
28
+ "uy:p-0.25",
29
+ "uy:text-content-neutral-low",
30
+ "uy:group-data-[status=active]:text-content-primary-enabled",
31
+ "uy:group-data-[disabled=true]:text-content-neutral-disabled"
32
+ ],
33
+ listbox: ["uy:p-100"]
34
+ } }), g = ({ availableFilterDefs: i, onSelectionChange: g, isDisabled: _ = !1, ...v }) => {
35
+ let y = l(), [b, x] = r(!1), S = n(null), { popover: C, dialog: w } = e(), { icon: T, button: E, listbox: D } = h();
36
+ return /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ s(u, {
37
+ className: E(),
38
+ ref: S,
39
+ onPress: () => {
40
+ x(!0);
41
+ },
42
+ isDisabled: _,
43
+ ...v,
44
+ children: [/* @__PURE__ */ o(d, {
45
+ src: "PlusOutlined",
46
+ role: "presentation",
47
+ size: 20,
48
+ className: T()
49
+ }), /* @__PURE__ */ o(c, {
50
+ id: "unity:component:filter-toolbar:add-filter:label",
51
+ defaultMessage: "Add filter"
52
+ })]
53
+ }), /* @__PURE__ */ o(p, {
54
+ className: C(),
55
+ triggerRef: S,
56
+ isOpen: b,
57
+ onOpenChange: x,
58
+ placement: "bottom start",
59
+ children: /* @__PURE__ */ o(m, {
60
+ className: w(),
61
+ "aria-label": y.formatMessage({
62
+ id: "unity:component:filter-toolbar:add-filter:popover:label",
63
+ defaultMessage: "Select a filter to add"
64
+ }),
65
+ children: /* @__PURE__ */ o(f, {
66
+ className: D(),
67
+ selectionMode: "single",
68
+ items: i,
69
+ onSelectionChange: (e) => {
70
+ g?.(e), x(!1);
71
+ },
72
+ children: (e) => /* @__PURE__ */ o(t, {
73
+ id: e.id,
74
+ children: e.label
75
+ })
76
+ })
77
+ })
78
+ })] });
110
79
  };
80
+ g.displayName = "AddFilter";
81
+ //#endregion
82
+ export { g as AddFilter };
@@ -1,18 +1,20 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import { uyTv as o } from "@payfit/unity-themes";
3
- import { ListBoxItem as i } from "react-aria-components/ListBox";
4
- const s = o({
5
- base: [
6
- "uy:flex uy:items-center uy:gap-100 uy:text-content-neutral uy:typography-body",
7
- "uy:px-150 uy:py-100",
8
- "uy:rounded-50 uy:cursor-pointer",
9
- "uy:hover:bg-surface-neutral-hover",
10
- "uy:active:bg-surface-neutral-pressed",
11
- "uy:data-[focus-visible]:outline-2 uy:data-[focus-visible]:outline-utility-focus-ring uy:data-[focus-visible]:outline-offset-2"
12
- ]
13
- }), y = ({ id: e, children: t, ...u }) => /* @__PURE__ */ r(i, { className: s(), id: e, ...u, children: t });
14
- y.displayName = "AddFilterItem";
15
- export {
16
- y as AddFilterItem,
17
- s as addFilterItem
18
- };
1
+ import { uyTv as e } from "@payfit/unity-themes";
2
+ import { jsx as t } from "react/jsx-runtime";
3
+ import { ListBoxItem as n } from "react-aria-components/ListBox";
4
+ //#region src/components/filter-toolbar/parts/AddFilterItem.tsx
5
+ var r = e({ base: [
6
+ "uy:flex uy:items-center uy:gap-100 uy:text-content-neutral uy:typography-body",
7
+ "uy:px-150 uy:py-100",
8
+ "uy:rounded-50 uy:cursor-pointer",
9
+ "uy:hover:bg-surface-neutral-hover",
10
+ "uy:active:bg-surface-neutral-pressed",
11
+ "uy:data-[focus-visible]:outline-2 uy:data-[focus-visible]:outline-utility-focus-ring uy:data-[focus-visible]:outline-offset-2"
12
+ ] }), i = ({ id: e, children: i, ...a }) => /* @__PURE__ */ t(n, {
13
+ className: r(),
14
+ id: e,
15
+ ...a,
16
+ children: i
17
+ });
18
+ i.displayName = "AddFilterItem";
19
+ //#endregion
20
+ export { i as AddFilterItem };
@@ -1,88 +1,17 @@
1
- const u = {
2
- /**
3
- * Adapter for Tanstack Table integration.
4
- *
5
- * Handles conversion between FilterToolbar's AppliedFilter format and
6
- * Tanstack Table's ColumnFiltersState format.
7
- * @example
8
- * ```tsx
9
- * const [appliedFilters, setAppliedFilters] = useState<AppliedFilter[]>([])
10
- * const columnFilters = FilterAdapters.TanstackTable.toColumnFilters(appliedFilters)
11
- *
12
- * const table = useReactTable({
13
- * state: { columnFilters },
14
- * // ... other config
15
- * })
16
- *
17
- * return (
18
- * <>
19
- * <FilterToolbar
20
- * filterDefs={filterDefs}
21
- * initialValue={appliedFilters}
22
- * onChange={setAppliedFilters}
23
- * />
24
- * <DataTable table={table} />
25
- * </>
26
- * )
27
- * ```
28
- * @see {@link https://tanstack.com/table/latest/docs/guide/filters Tanstack Table Filters Documentation}
29
- */
30
- TanstackTable: {
31
- /**
32
- * Converts FilterToolbar's AppliedFilter format to Tanstack Table's ColumnFiltersState format.
33
- *
34
- * This method handles two key transformations:
35
- * 1. Filters out empty filters (filters without values) so the table shows all results
36
- * 2. Converts Set values to Arrays (React Aria uses Set, Tanstack Table uses Array)
37
- * @param appliedFilters - Array of applied filters from FilterToolbar's onChange callback
38
- * @returns Column filters compatible with Tanstack Table's state.columnFilters
39
- * @remarks
40
- * - Empty filters (undefined values or empty Sets) are excluded from the result
41
- * - This ensures that adding a filter without selecting values doesn't hide all table rows
42
- * - Set values are converted to Arrays for compatibility with Tanstack Table's filter functions
43
- * @example
44
- * ```tsx
45
- * const columnFilters = FilterAdapters.TanstackTable.toColumnFilters([
46
- * { id: 'status', value: new Set(['active', 'pending']) },
47
- * { id: 'department', value: undefined }, // Will be filtered out
48
- * ])
49
- * // Result: [{ id: 'status', value: ['active', 'pending'] }]
50
- * ```
51
- */
52
- toColumnFilters(e) {
53
- return e.filter((a) => a.value instanceof Set ? a.value.size > 0 : a.value !== void 0 && a.value !== null).map((a) => ({
54
- id: a.id,
55
- value: a.value instanceof Set ? Array.from(a.value) : a.value
56
- }));
57
- },
58
- /**
59
- * Converts Tanstack Table's ColumnFiltersState format to FilterToolbar's AppliedFilter format.
60
- *
61
- * This is useful when you need to initialize FilterToolbar from existing table state,
62
- * URL parameters, or server-side filter state.
63
- * @param columnFilters - Column filters from Tanstack Table's state
64
- * @returns Array of applied filters compatible with FilterToolbar's initialValue
65
- * @remarks
66
- * - Array values are converted to Sets for compatibility with React Aria's SelectList
67
- * - In most cases, you should make FilterToolbar the source of truth and use toColumnFilters
68
- * to derive table state instead of syncing bidirectionally
69
- * @example
70
- * ```tsx
71
- * // Initialize FilterToolbar from URL params
72
- * const urlFilters = parseUrlToColumnFilters(searchParams)
73
- * const appliedFilters = FilterAdapters.TanstackTable.fromColumnFilters(urlFilters)
74
- *
75
- * return <FilterToolbar initialValue={appliedFilters} />
76
- * ```
77
- */
78
- fromColumnFilters(e) {
79
- return e.map((a) => ({
80
- id: a.id,
81
- value: Array.isArray(a.value) ? new Set(a.value) : a.value
82
- }));
83
- }
84
- }
85
- };
86
- export {
87
- u as FilterAdapters
88
- };
1
+ //#region src/components/filter-toolbar/utils/filter-adapters.ts
2
+ var e = { TanstackTable: {
3
+ toColumnFilters(e) {
4
+ return e.filter((e) => e.value instanceof Set ? e.value.size > 0 : e.value !== void 0 && e.value !== null).map((e) => ({
5
+ id: e.id,
6
+ value: e.value instanceof Set ? Array.from(e.value) : e.value
7
+ }));
8
+ },
9
+ fromColumnFilters(e) {
10
+ return e.map((e) => ({
11
+ id: e.id,
12
+ value: Array.isArray(e.value) ? new Set(e.value) : e.value
13
+ }));
14
+ }
15
+ } };
16
+ //#endregion
17
+ export { e as FilterAdapters };
@@ -1,19 +1,13 @@
1
- function i(r) {
2
- if (r != null) {
3
- if (Array.isArray(r))
4
- return r.map((t) => String(t));
5
- if (typeof r == "object" && Symbol.iterator in r)
6
- return Array.from(r).map((t) => String(t));
7
- if (r instanceof Date)
8
- return r.toISOString();
9
- if (typeof r == "object")
10
- return JSON.stringify(r);
11
- if (typeof r == "string")
12
- return r;
13
- if (typeof r == "number" || typeof r == "boolean")
14
- return String(r);
15
- }
1
+ //#region src/components/filter-toolbar/utils/normalize-filter-value.ts
2
+ function e(e) {
3
+ if (e != null) {
4
+ if (Array.isArray(e)) return e.map((e) => String(e));
5
+ if (typeof e == "object" && Symbol.iterator in e) return Array.from(e).map((e) => String(e));
6
+ if (e instanceof Date) return e.toISOString();
7
+ if (typeof e == "object") return JSON.stringify(e);
8
+ if (typeof e == "string") return e;
9
+ if (typeof e == "number" || typeof e == "boolean") return String(e);
10
+ }
16
11
  }
17
- export {
18
- i as normalizeFilterValue
19
- };
12
+ //#endregion
13
+ export { e as normalizeFilterValue };