@payfit/unity-components 2.47.4 → 2.47.6

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 (447) 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.d.ts +2 -2
  19. package/dist/esm/components/app-layout/AppLayout.js +62 -75
  20. package/dist/esm/components/app-menu/AppMenu.js +11 -14
  21. package/dist/esm/components/app-menu/parts/AppMenu.context.js +21 -22
  22. package/dist/esm/components/app-menu/parts/AppMenuFooter.js +189 -246
  23. package/dist/esm/components/app-menu/parts/AppMenuHeader.js +52 -49
  24. package/dist/esm/components/app-menu/parts/AppMenuNavContent.js +14 -22
  25. package/dist/esm/components/autocomplete/Autocomplete.js +136 -168
  26. package/dist/esm/components/autocomplete/parts/AutocompleteClearButton.js +23 -33
  27. package/dist/esm/components/autocomplete/parts/AutocompleteItem.js +28 -36
  28. package/dist/esm/components/autocomplete/parts/AutocompleteItemGroup.js +38 -32
  29. package/dist/esm/components/autocomplete/parts/AutocompletePanel.js +44 -46
  30. package/dist/esm/components/avatar/Avatar.context.js +24 -25
  31. package/dist/esm/components/avatar/Avatar.js +38 -46
  32. package/dist/esm/components/avatar/Avatar.variants.js +62 -62
  33. package/dist/esm/components/avatar/parts/AvatarFallback.js +77 -81
  34. package/dist/esm/components/avatar/parts/AvatarIcon.js +32 -40
  35. package/dist/esm/components/avatar/parts/AvatarImage.js +22 -18
  36. package/dist/esm/components/avatar/parts/AvatarPair.js +49 -47
  37. package/dist/esm/components/avatar/utils.js +4 -4
  38. package/dist/esm/components/badge/Badge.js +57 -92
  39. package/dist/esm/components/badge/parts/BadgeDot.js +42 -83
  40. package/dist/esm/components/bottom-sheet/BottomSheet.js +48 -69
  41. package/dist/esm/components/bottom-sheet/parts/BottomSheetContent.js +26 -26
  42. package/dist/esm/components/bottom-sheet/parts/BottomSheetDragIndicator.js +44 -65
  43. package/dist/esm/components/bottom-sheet/parts/BottomSheetFooter.js +20 -28
  44. package/dist/esm/components/bottom-sheet/parts/BottomSheetHeader.js +49 -45
  45. package/dist/esm/components/breadcrumbs/Breadcrumbs.context.js +22 -25
  46. package/dist/esm/components/breadcrumbs/Breadcrumbs.js +124 -159
  47. package/dist/esm/components/breadcrumbs/Breadcrumbs.variant.js +13 -19
  48. package/dist/esm/components/breadcrumbs/parts/Breadcrumb.js +35 -41
  49. package/dist/esm/components/breadcrumbs/parts/RawBreadcrumbLink.js +53 -62
  50. package/dist/esm/components/button/Button.js +90 -107
  51. package/dist/esm/components/button/Button.variants.js +172 -179
  52. package/dist/esm/components/card/Card.context.js +9 -13
  53. package/dist/esm/components/card/Card.js +63 -99
  54. package/dist/esm/components/card/parts/CardContent.js +11 -7
  55. package/dist/esm/components/card/parts/CardTitle.js +24 -31
  56. package/dist/esm/components/carousel/Carousel.context.js +8 -12
  57. package/dist/esm/components/carousel/Carousel.js +67 -106
  58. package/dist/esm/components/carousel/Carousel.options.js +69 -61
  59. package/dist/esm/components/carousel/hooks/useCarouselAccessibility.js +81 -85
  60. package/dist/esm/components/carousel/hooks/useCarouselState.js +54 -61
  61. package/dist/esm/components/carousel/parts/CarouselContent.js +52 -68
  62. package/dist/esm/components/carousel/parts/CarouselHeader.js +43 -58
  63. package/dist/esm/components/carousel/parts/CarouselNav.js +64 -79
  64. package/dist/esm/components/carousel/parts/CarouselSlide.js +26 -35
  65. package/dist/esm/components/checkbox/Checkbox.js +83 -105
  66. package/dist/esm/components/checkbox/Checkbox.variants.js +60 -80
  67. package/dist/esm/components/checkbox/CheckboxStandalone.js +33 -28
  68. package/dist/esm/components/checkbox/TanstackCheckbox.js +35 -51
  69. package/dist/esm/components/checkbox/parts/CheckboxIndicator.js +131 -161
  70. package/dist/esm/components/checkbox-field/CheckboxField.js +38 -65
  71. package/dist/esm/components/checkbox-field/TanstackCheckboxField.js +23 -39
  72. package/dist/esm/components/checkbox-group/CheckboxGroup.js +44 -73
  73. package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.js +32 -37
  74. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.js +35 -55
  75. package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.js +26 -39
  76. package/dist/esm/components/client-side-pagination/ClientSidePagination.js +130 -177
  77. package/dist/esm/components/client-side-pagination/hooks/use-pagination.js +20 -27
  78. package/dist/esm/components/client-side-pagination/parts/PaginationEllipsis.js +29 -29
  79. package/dist/esm/components/client-side-pagination/parts/PaginationJumpDialog.js +110 -143
  80. package/dist/esm/components/client-side-pagination/parts/PaginationNavButton.js +23 -31
  81. package/dist/esm/components/client-side-pagination/parts/RawPaginationLink.js +35 -48
  82. package/dist/esm/components/client-side-pagination/utils/pagination-window.js +37 -31
  83. package/dist/esm/components/code/Code.js +34 -38
  84. package/dist/esm/components/code/copyToClipboard.js +9 -9
  85. package/dist/esm/components/collapsible/Collapsible.js +21 -28
  86. package/dist/esm/components/collapsible/parts/CollapsibleContent.js +16 -18
  87. package/dist/esm/components/collapsible/parts/CollapsibleTitle.js +53 -53
  88. package/dist/esm/components/data-table/DataTable.js +101 -155
  89. package/dist/esm/components/data-table/parts/ColumnSortHeader.js +24 -36
  90. package/dist/esm/components/data-table/parts/DataTableBulkActions.js +95 -148
  91. package/dist/esm/components/data-table/parts/DataTableRoot.js +13 -13
  92. package/dist/esm/components/date-calendar/DateCalendar.js +121 -174
  93. package/dist/esm/components/date-calendar/DateCalendar.variants.js +32 -49
  94. package/dist/esm/components/date-calendar/hooks/useMonthsList.js +18 -25
  95. package/dist/esm/components/date-calendar/hooks/useYearsList.js +23 -32
  96. package/dist/esm/components/date-calendar/parts/DateSegmentSelect.js +62 -65
  97. package/dist/esm/components/date-picker/DatePicker.js +131 -174
  98. package/dist/esm/components/date-picker/TanstackDatePicker.js +39 -53
  99. package/dist/esm/components/date-picker/parts/DateInput.js +101 -135
  100. package/dist/esm/components/date-picker-field/DatePickerField.js +52 -71
  101. package/dist/esm/components/date-picker-field/TanstackDatePickerField.js +28 -41
  102. package/dist/esm/components/date-picker-field/test-utils.js +26 -51
  103. package/dist/esm/components/date-range-calendar/DateRangeCalendar.js +148 -211
  104. package/dist/esm/components/date-range-picker/DateRangePicker.js +132 -175
  105. package/dist/esm/components/date-range-picker/TanstackDateRangePicker.js +39 -53
  106. package/dist/esm/components/date-range-picker/parts/DateRangeInput.js +90 -101
  107. package/dist/esm/components/date-range-picker-field/TanstackDateRangePickerField.js +28 -41
  108. package/dist/esm/components/date-range-picker-field/test-utils.js +37 -65
  109. package/dist/esm/components/definition-list/DefinitionList.context.js +12 -16
  110. package/dist/esm/components/definition-list/DefinitionList.js +23 -22
  111. package/dist/esm/components/definition-list/parts/DefinitionItem.js +49 -50
  112. package/dist/esm/components/definition-tooltip/DefinitionTooltip.js +25 -28
  113. package/dist/esm/components/dialog/Dialog.js +79 -110
  114. package/dist/esm/components/dialog/parts/DialogActions/DialogButton.js +41 -61
  115. package/dist/esm/components/dialog/parts/DialogActions.js +10 -13
  116. package/dist/esm/components/dialog/parts/DialogContent.js +17 -22
  117. package/dist/esm/components/dialog/parts/DialogTitle.js +12 -9
  118. package/dist/esm/components/dialog/test-utils.js +46 -88
  119. package/dist/esm/components/empty-state/EmptyState.js +20 -25
  120. package/dist/esm/components/empty-state/EmptyState.variants.js +15 -22
  121. package/dist/esm/components/empty-state/parts/EmptyStateActions.js +12 -17
  122. package/dist/esm/components/empty-state/parts/EmptyStateContent.js +21 -21
  123. package/dist/esm/components/empty-state/parts/EmptyStateIcon.js +19 -14
  124. package/dist/esm/components/empty-state/presets/EmptyStateGetStarted.js +30 -26
  125. package/dist/esm/components/empty-state/presets/EmptyStateGoodJob.js +35 -55
  126. package/dist/esm/components/empty-state/presets/EmptyStateNoSearchResults.js +31 -27
  127. package/dist/esm/components/empty-state/presets/EmptyStateUpgradeRequired.js +30 -26
  128. package/dist/esm/components/empty-state/presets/EmptyStateUseDesktop.js +26 -25
  129. package/dist/esm/components/empty-state/presets/EmptyStateWaitingForData.js +30 -26
  130. package/dist/esm/components/error-state/ErrorState.js +155 -239
  131. package/dist/esm/components/error-state/initConfig.js +90 -148
  132. package/dist/esm/components/error-state/parts/Collapsible.js +68 -67
  133. package/dist/esm/components/fieldset/Fieldset.js +63 -72
  134. package/dist/esm/components/fieldset/parts/FieldGroup.js +13 -18
  135. package/dist/esm/components/filter/Filter.controls.js +49 -42
  136. package/dist/esm/components/filter/Filter.js +101 -146
  137. package/dist/esm/components/filter/hooks/useFilterIds.js +12 -12
  138. package/dist/esm/components/filter/hooks/useFilterState.js +16 -22
  139. package/dist/esm/components/filter/hooks/useFilterValue.js +31 -30
  140. package/dist/esm/components/filter/parts/FilterButton.js +40 -54
  141. package/dist/esm/components/filter/parts/FilterLabel.js +38 -56
  142. package/dist/esm/components/filter/parts/FilterPopover.js +68 -80
  143. package/dist/esm/components/filter/utils/value-formatters.js +9 -11
  144. package/dist/esm/components/filter-toolbar/FilterToolbar.js +124 -173
  145. package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.js +128 -130
  146. package/dist/esm/components/filter-toolbar/parts/AddFilter.js +81 -109
  147. package/dist/esm/components/filter-toolbar/parts/AddFilterItem.js +20 -18
  148. package/dist/esm/components/filter-toolbar/utils/filter-adapters.js +17 -88
  149. package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.js +12 -18
  150. package/dist/esm/components/flex/Flex.js +38 -57
  151. package/dist/esm/components/flex/Flex.variants.js +198 -199
  152. package/dist/esm/components/flex/FlexItem.js +21 -32
  153. package/dist/esm/components/floating-action-bar/FloatingActionBar.js +55 -68
  154. package/dist/esm/components/form/Form.context.js +15 -26
  155. package/dist/esm/components/form/Form.js +40 -57
  156. package/dist/esm/components/form/TanstackForm.js +22 -29
  157. package/dist/esm/components/form-field/FormField.context.js +44 -70
  158. package/dist/esm/components/form-field/FormField.js +50 -56
  159. package/dist/esm/components/form-field/TanstackFormField.context.js +11 -12
  160. package/dist/esm/components/form-field/TanstackFormField.js +44 -45
  161. package/dist/esm/components/form-field/parts/FormControl.js +41 -52
  162. package/dist/esm/components/form-field/parts/FormFeedbackText.js +24 -26
  163. package/dist/esm/components/form-field/parts/FormHelperText.js +21 -26
  164. package/dist/esm/components/form-field/parts/FormLabel.js +21 -30
  165. package/dist/esm/components/form-field/parts/RawFormContextualLink.js +32 -38
  166. package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.js +28 -31
  167. package/dist/esm/components/form-field/parts/TanstackFormHelperText.js +22 -25
  168. package/dist/esm/components/form-field/parts/TanstackFormLabel.js +21 -26
  169. package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.js +33 -45
  170. package/dist/esm/components/form-field/utils/isFieldRequired.js +7 -7
  171. package/dist/esm/components/full-page-loader/FullPageLoader.js +26 -35
  172. package/dist/esm/components/funnel-layout/FunnelLayout.context.js +12 -26
  173. package/dist/esm/components/funnel-layout/FunnelLayout.js +75 -91
  174. package/dist/esm/components/funnel-layout/parts/FunnelBackButton.js +24 -34
  175. package/dist/esm/components/funnel-layout/parts/FunnelBody.js +15 -23
  176. package/dist/esm/components/funnel-layout/parts/FunnelPage.js +27 -35
  177. package/dist/esm/components/funnel-layout/parts/FunnelPageAction.js +32 -39
  178. package/dist/esm/components/funnel-layout/parts/FunnelPageActions.js +30 -41
  179. package/dist/esm/components/funnel-layout/parts/FunnelPageContent.js +15 -23
  180. package/dist/esm/components/funnel-layout/parts/FunnelPageFooter.js +20 -28
  181. package/dist/esm/components/funnel-layout/parts/FunnelPageHeader.js +53 -55
  182. package/dist/esm/components/funnel-layout/parts/FunnelProgressBar.js +39 -50
  183. package/dist/esm/components/funnel-layout/parts/FunnelSidebar.js +47 -54
  184. package/dist/esm/components/funnel-layout/parts/FunnelTopBar.js +88 -119
  185. package/dist/esm/components/grid/Grid.js +27 -38
  186. package/dist/esm/components/grid/Grid.variants.js +147 -164
  187. package/dist/esm/components/grid/GridItem.js +24 -43
  188. package/dist/esm/components/icon/Icon.js +112 -115
  189. package/dist/esm/components/icon-button/CircularIconButton.js +117 -119
  190. package/dist/esm/components/icon-button/IconButton.js +82 -93
  191. package/dist/esm/components/icon-button/IconButton.variants.js +167 -174
  192. package/dist/esm/components/inline-field/InlineField.context.js +8 -9
  193. package/dist/esm/components/inline-field/InlineField.js +48 -57
  194. package/dist/esm/components/inline-field/hooks/useInlineFieldMode.js +23 -26
  195. package/dist/esm/components/inline-field/parts/InlineFieldEditView.js +113 -149
  196. package/dist/esm/components/inline-field/parts/InlineFieldReadView.js +52 -57
  197. package/dist/esm/components/inline-field-group/InlineFieldGroup.context.js +5 -5
  198. package/dist/esm/components/inline-field-group/InlineFieldGroup.js +188 -216
  199. package/dist/esm/components/inline-field-group/hooks/useInlineFieldGroupMode.js +23 -26
  200. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupActions.js +109 -156
  201. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupEditView.js +51 -55
  202. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupHeader.js +39 -38
  203. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupReadView.js +18 -27
  204. package/dist/esm/components/input/Input.js +123 -150
  205. package/dist/esm/components/input/TanstackInput.js +33 -38
  206. package/dist/esm/components/label/Label.js +52 -66
  207. package/dist/esm/components/link/RawLink.js +109 -165
  208. package/dist/esm/components/link/utils.js +12 -15
  209. package/dist/esm/components/link-button/RawLinkButton.js +100 -127
  210. package/dist/esm/components/list-view/ListView.js +40 -45
  211. package/dist/esm/components/list-view/parts/ListViewItemLabel.js +17 -22
  212. package/dist/esm/components/list-view/parts/ListViewItemText.js +17 -22
  213. package/dist/esm/components/list-view/parts/ListViewSection.js +25 -23
  214. package/dist/esm/components/list-view/parts/RawListViewItem.js +68 -81
  215. package/dist/esm/components/menu/Menu.js +21 -30
  216. package/dist/esm/components/menu/parts/MenuContent.js +17 -29
  217. package/dist/esm/components/menu/parts/MenuHeader.js +13 -16
  218. package/dist/esm/components/menu/parts/MenuSection.js +32 -42
  219. package/dist/esm/components/menu/parts/MenuSeparator.js +8 -8
  220. package/dist/esm/components/menu/parts/MenuTrigger.js +12 -13
  221. package/dist/esm/components/menu/parts/RawMenuItem.js +29 -42
  222. package/dist/esm/components/multi-select/MultiSelect.js +249 -299
  223. package/dist/esm/components/multi-select/Multiselect.context.js +6 -6
  224. package/dist/esm/components/multi-select/TanstackMultiSelect.js +31 -41
  225. package/dist/esm/components/multi-select/parts/MultiSelectOptGroup.js +35 -43
  226. package/dist/esm/components/multi-select/parts/MultiSelectOption.js +60 -76
  227. package/dist/esm/components/multi-select/utils/selection-adapter.js +9 -15
  228. package/dist/esm/components/multi-select-field/MultiSelectField.js +56 -71
  229. package/dist/esm/components/multi-select-field/TanstackMultiSelectField.js +27 -48
  230. package/dist/esm/components/multi-select-field/test-utils.js +22 -45
  231. package/dist/esm/components/nav/Nav.js +21 -27
  232. package/dist/esm/components/nav/parts/NavGroup.js +103 -123
  233. package/dist/esm/components/nav/parts/RawNavItem.js +99 -118
  234. package/dist/esm/components/navigation-card/NavigationCard.context.js +10 -11
  235. package/dist/esm/components/navigation-card/NavigationCard.js +53 -63
  236. package/dist/esm/components/navigation-card/NavigationCard.variants.js +162 -162
  237. package/dist/esm/components/navigation-card/parts/NavigationCardDescription.js +17 -20
  238. package/dist/esm/components/navigation-card/parts/NavigationCardGroup.js +76 -93
  239. package/dist/esm/components/navigation-card/parts/NavigationCardLabel.js +18 -23
  240. package/dist/esm/components/number-field/NumberField.js +48 -69
  241. package/dist/esm/components/number-field/TanstackNumberField.js +30 -43
  242. package/dist/esm/components/number-input/NumberInput.js +161 -216
  243. package/dist/esm/components/number-input/TanstackNumberInput.js +33 -38
  244. package/dist/esm/components/page/Page.js +33 -48
  245. package/dist/esm/components/page/parts/PageHeader.js +41 -36
  246. package/dist/esm/components/page/parts/PageHeading.js +17 -19
  247. package/dist/esm/components/pagination/Pagination.js +78 -102
  248. package/dist/esm/components/pagination/PaginationContext.js +8 -14
  249. package/dist/esm/components/pagination/hooks/use-pagination-state.js +20 -26
  250. package/dist/esm/components/pagination/hooks/use-pagination-window.js +10 -13
  251. package/dist/esm/components/pagination/parts/PaginationContent.js +26 -37
  252. package/dist/esm/components/pagination/parts/PaginationEllipsis.js +33 -33
  253. package/dist/esm/components/pagination/parts/PaginationItem.js +17 -22
  254. package/dist/esm/components/pagination/parts/RawPaginationLink.js +50 -60
  255. package/dist/esm/components/pagination/parts/RawPaginationNext.js +53 -70
  256. package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +52 -66
  257. package/dist/esm/components/pagination/utils/pagination-window.js +55 -40
  258. package/dist/esm/components/password-field/TanstackPasswordField.js +55 -82
  259. package/dist/esm/components/password-field/hooks/use-caps-lock.js +11 -11
  260. package/dist/esm/components/password-field/parts/PasswordFieldDetails.js +42 -41
  261. package/dist/esm/components/password-field/parts/PasswordInput.js +153 -188
  262. package/dist/esm/components/password-field/parts/ValidationRuleItem.js +38 -43
  263. package/dist/esm/components/payfit-brand/PayFitBrand.js +74 -84
  264. package/dist/esm/components/payfit-brand/PayFitPreprod.js +53 -57
  265. package/dist/esm/components/phone-number/PhoneNumberInput.js +214 -331
  266. package/dist/esm/components/phone-number/TanstackPhoneNumberInput.js +29 -32
  267. package/dist/esm/components/phone-number/parts/PhoneNumberItem.js +49 -65
  268. package/dist/esm/components/phone-number/unknownFlag.js +4 -0
  269. package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.js +21 -32
  270. package/dist/esm/components/pill/Pill.js +48 -58
  271. package/dist/esm/components/popover/Popover.js +37 -41
  272. package/dist/esm/components/popover/parts/PopoverHeader.js +48 -60
  273. package/dist/esm/components/progress-bar/ProgressBar.js +66 -76
  274. package/dist/esm/components/promo-dialog/PromoDialog.js +135 -218
  275. package/dist/esm/components/promo-dialog/parts/PromoDialogActions.js +19 -29
  276. package/dist/esm/components/promo-dialog/parts/PromoDialogContent.js +14 -19
  277. package/dist/esm/components/promo-dialog/parts/PromoDialogHero.js +17 -24
  278. package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.js +15 -21
  279. package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.js +11 -16
  280. package/dist/esm/components/radio-button-group/RadioButtonGroup.js +18 -23
  281. package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.js +32 -42
  282. package/dist/esm/components/radio-button-group/parts/RadioButton.js +61 -66
  283. package/dist/esm/components/radio-button-group/parts/RadioButtonHelper.js +14 -19
  284. package/dist/esm/components/radio-button-group/parts/RadioIndicator.js +107 -129
  285. package/dist/esm/components/radio-button-group-field/RadioButtonGroupField.js +37 -52
  286. package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.js +31 -37
  287. package/dist/esm/components/search/Search.js +120 -166
  288. package/dist/esm/components/segmented-button-group/SegmentedButtonGroup.js +20 -20
  289. package/dist/esm/components/segmented-button-group/SegmentedButtonGroups.context.js +11 -14
  290. package/dist/esm/components/segmented-button-group/parts/ToggleButton.js +105 -125
  291. package/dist/esm/components/select/Select.js +85 -130
  292. package/dist/esm/components/select/TanstackSelect.js +31 -40
  293. package/dist/esm/components/select/parts/SelectButton.js +79 -103
  294. package/dist/esm/components/select/parts/SelectOption.context.js +14 -21
  295. package/dist/esm/components/select/parts/SelectOption.js +53 -64
  296. package/dist/esm/components/select/parts/SelectOptionGroup.js +34 -27
  297. package/dist/esm/components/select/parts/SelectOptionHelper.js +22 -21
  298. package/dist/esm/components/select-field/SelectField.js +44 -66
  299. package/dist/esm/components/select-field/TanstackSelectField.js +29 -45
  300. package/dist/esm/components/select-field/test-utils.js +10 -25
  301. package/dist/esm/components/select-list/SelectList.js +70 -81
  302. package/dist/esm/components/select-list/constants.js +13 -28
  303. package/dist/esm/components/select-list/helpers.js +37 -43
  304. package/dist/esm/components/select-list/hooks/useControlledSelection.js +13 -15
  305. package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.js +30 -30
  306. package/dist/esm/components/select-list/parts/SelectListEmptyState.js +24 -24
  307. package/dist/esm/components/select-list/parts/SelectListOptGroup.js +33 -30
  308. package/dist/esm/components/select-list/parts/SelectListOption.js +54 -70
  309. package/dist/esm/components/select-list/parts/SelectListSearchInput.js +43 -49
  310. package/dist/esm/components/select-list/parts/SelectedItemsSection.js +29 -35
  311. package/dist/esm/components/select-list/utils/partition.js +7 -8
  312. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.js +5 -5
  313. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.js +32 -38
  314. package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.js +27 -33
  315. package/dist/esm/components/selectable-button-group/parts/SelectableButton.js +81 -123
  316. package/dist/esm/components/selectable-button-group-field/SelectableButtonGroupField.js +41 -44
  317. package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.js +29 -46
  318. package/dist/esm/components/selectable-card/internals/Content.js +8 -8
  319. package/dist/esm/components/selectable-card/internals/Description.js +11 -10
  320. package/dist/esm/components/selectable-card/internals/Illustration.js +8 -8
  321. package/dist/esm/components/selectable-card/internals/SelectedIndicator.js +9 -9
  322. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/SelectableCardCheckboxGroup.js +13 -16
  323. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.js +28 -31
  324. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/parts/SelectableCardCheckbox.js +37 -37
  325. package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.js +18 -21
  326. package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.js +28 -31
  327. package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/SelectableCardRadio.js +40 -47
  328. package/dist/esm/components/selectable-card/selectableCard.variant.js +16 -22
  329. package/dist/esm/components/selectable-card-checkbox-group-field/SelectableCardCheckboxGroupField.js +38 -46
  330. package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.js +29 -37
  331. package/dist/esm/components/selectable-card-radio-group-field/SelectableCardRadioGroupField.js +37 -45
  332. package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.js +29 -37
  333. package/dist/esm/components/side-panel/SidePanel.js +53 -71
  334. package/dist/esm/components/side-panel/parts/SidePanelContent.js +25 -25
  335. package/dist/esm/components/side-panel/parts/SidePanelDragIndicator.js +44 -65
  336. package/dist/esm/components/side-panel/parts/SidePanelFooter.js +26 -29
  337. package/dist/esm/components/side-panel/parts/SidePanelHeader.js +41 -43
  338. package/dist/esm/components/skip-links/SkipLinks.js +69 -87
  339. package/dist/esm/components/spinner/Spinner.js +76 -106
  340. package/dist/esm/components/stepper/Stepper.context.js +15 -20
  341. package/dist/esm/components/stepper/Stepper.js +16 -18
  342. package/dist/esm/components/stepper/hooks/useStepper.js +20 -25
  343. package/dist/esm/components/stepper/parts/Step.js +47 -56
  344. package/dist/esm/components/table/Table.context.js +35 -41
  345. package/dist/esm/components/table/Table.js +155 -225
  346. package/dist/esm/components/table/hooks/useTableKeyboardNavigation.js +180 -208
  347. package/dist/esm/components/table/parts/TableBody.js +81 -104
  348. package/dist/esm/components/table/parts/TableCell.js +38 -62
  349. package/dist/esm/components/table/parts/TableColumnHeader.js +62 -78
  350. package/dist/esm/components/table/parts/TableEmptyState.js +131 -161
  351. package/dist/esm/components/table/parts/TableHeader.js +24 -37
  352. package/dist/esm/components/table/parts/TablePagination.js +119 -141
  353. package/dist/esm/components/table/parts/TableRow.js +36 -52
  354. package/dist/esm/components/tabs/Tabs.context.js +19 -20
  355. package/dist/esm/components/tabs/Tabs.js +26 -24
  356. package/dist/esm/components/tabs/Tabs.variant.js +35 -41
  357. package/dist/esm/components/tabs/parts/NavigationButton.js +37 -46
  358. package/dist/esm/components/tabs/parts/RawTab.js +22 -18
  359. package/dist/esm/components/tabs/parts/TabList.js +84 -83
  360. package/dist/esm/components/tabs/parts/TabPanel.js +13 -9
  361. package/dist/esm/components/task-menu/TaskMenu.context.js +44 -58
  362. package/dist/esm/components/task-menu/TaskMenu.js +21 -28
  363. package/dist/esm/components/task-menu/parts/Content.js +43 -48
  364. package/dist/esm/components/task-menu/parts/Header.js +39 -54
  365. package/dist/esm/components/task-menu/parts/RawSubTask.js +141 -166
  366. package/dist/esm/components/task-menu/parts/RawTask.js +115 -145
  367. package/dist/esm/components/task-menu/parts/TaskGroup.js +103 -140
  368. package/dist/esm/components/task-menu/parts/dot.js +19 -0
  369. package/dist/esm/components/task-menu/parts/task.variants.js +59 -64
  370. package/dist/esm/components/text/Text.js +56 -71
  371. package/dist/esm/components/text/Text.variants.js +106 -112
  372. package/dist/esm/components/text-area/TanstackTextArea.js +30 -35
  373. package/dist/esm/components/text-area/TextArea.js +121 -164
  374. package/dist/esm/components/text-field/TanstackTextField.js +39 -59
  375. package/dist/esm/components/text-field/TextField.js +53 -76
  376. package/dist/esm/components/timeline/Timeline.context.js +18 -21
  377. package/dist/esm/components/timeline/Timeline.js +33 -37
  378. package/dist/esm/components/timeline/Timeline.utils.js +8 -8
  379. package/dist/esm/components/timeline/Timeline.variants.js +93 -118
  380. package/dist/esm/components/timeline/parts/TimelineMarker.js +36 -26
  381. package/dist/esm/components/timeline/parts/TimelineStep.context.js +15 -19
  382. package/dist/esm/components/timeline/parts/TimelineStep.js +57 -52
  383. package/dist/esm/components/timeline/parts/TimelineStepContent.context.js +15 -20
  384. package/dist/esm/components/timeline/parts/TimelineStepContent.js +30 -17
  385. package/dist/esm/components/timeline/parts/TimelineStepDescription.js +12 -7
  386. package/dist/esm/components/timeline/parts/TimelineStepHeader.js +34 -36
  387. package/dist/esm/components/timeline/parts/check.js +23 -0
  388. package/dist/esm/components/toast/Toast.context.js +15 -20
  389. package/dist/esm/components/toast/ToastManager.js +13 -21
  390. package/dist/esm/components/toast/UnityToast.js +82 -95
  391. package/dist/esm/components/toast/parts/ToastAction.js +18 -13
  392. package/dist/esm/components/toast/parts/ToastContent.js +13 -9
  393. package/dist/esm/components/toast/parts/ToastTitle.js +13 -8
  394. package/dist/esm/components/toast/test-utils.js +63 -117
  395. package/dist/esm/components/toast/toast.js +27 -38
  396. package/dist/esm/components/toggle-switch/TanstackToggleSwitch.js +21 -24
  397. package/dist/esm/components/toggle-switch/ToggleSwitch.js +111 -112
  398. package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.js +19 -33
  399. package/dist/esm/components/toggle-switch-field/ToggleSwitchField.js +33 -58
  400. package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.js +18 -21
  401. package/dist/esm/components/toggle-switch-group/ToggleSwitchGroup.js +83 -108
  402. package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.js +30 -49
  403. package/dist/esm/components/toggle-switch-group-field/ToggleSwitchGroupField.js +41 -61
  404. package/dist/esm/components/tooltip/Tooltip.js +30 -31
  405. package/dist/esm/hooks/tanstack-form-context.js +5 -8
  406. package/dist/esm/hooks/tanstack-form-default-values.js +5 -5
  407. package/dist/esm/hooks/use-async-list.js +2 -0
  408. package/dist/esm/hooks/use-breakpoint-listener.js +16 -25
  409. package/dist/esm/hooks/use-container-query-level.js +30 -31
  410. package/dist/esm/hooks/use-form.js +35 -29
  411. package/dist/esm/hooks/use-has-scroll.js +76 -74
  412. package/dist/esm/hooks/use-id.js +18 -24
  413. package/dist/esm/hooks/use-media-query.js +15 -18
  414. package/dist/esm/hooks/use-resizable.js +49 -49
  415. package/dist/esm/hooks/use-responsive-value.js +22 -26
  416. package/dist/esm/hooks/use-scroll-direction.js +50 -52
  417. package/dist/esm/hooks/use-tanstack-form.js +60 -287
  418. package/dist/esm/index.js +240 -577
  419. package/dist/esm/integrations/tanstack-router/components/breadcrumbs/BreadcrumbLink.js +7 -7
  420. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.js +7 -7
  421. package/dist/esm/integrations/tanstack-router/components/link/Link.js +7 -7
  422. package/dist/esm/integrations/tanstack-router/components/link-button/LinkButton.js +5 -5
  423. package/dist/esm/integrations/tanstack-router/components/list-view/ListView.js +20 -23
  424. package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.js +17 -30
  425. package/dist/esm/integrations/tanstack-router/components/menu-item/MenuItem.js +17 -15
  426. package/dist/esm/integrations/tanstack-router/components/nav-item/NavItem.js +21 -27
  427. package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.js +19 -35
  428. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationLink.js +18 -20
  429. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationNext.js +17 -20
  430. package/dist/esm/integrations/tanstack-router/components/pagination/PaginationPrevious.js +18 -21
  431. package/dist/esm/integrations/tanstack-router/components/tabs/Tabs.js +52 -67
  432. package/dist/esm/integrations/tanstack-router/components/tabs/parts/Tab.js +16 -22
  433. package/dist/esm/integrations/tanstack-router/components/tabs/parts/TabPanel.js +14 -14
  434. package/dist/esm/integrations/tanstack-router/components/task-menu/SubTask.js +15 -12
  435. package/dist/esm/integrations/tanstack-router/components/task-menu/Task.js +15 -12
  436. package/dist/esm/integrations/tanstack-router.js +19 -40
  437. package/dist/esm/providers/router/RouterProvider.js +24 -20
  438. package/dist/esm/storybook-testing.js +7 -14
  439. package/dist/esm/utils/createSchemaAdapter.js +7 -12
  440. package/dist/esm/utils/field-revalidate-logic.js +41 -38
  441. package/dist/esm/utils/platform.js +4 -4
  442. package/dist/esm/utils/scroll-detection.js +31 -32
  443. package/dist/esm/utils/spacing.js +14 -14
  444. package/package.json +12 -12
  445. package/dist/esm/components/phone-number/unknownFlag.svg.js +0 -4
  446. package/dist/esm/components/task-menu/parts/dot.svg.js +0 -5
  447. package/dist/esm/components/timeline/parts/check.svg.js +0 -5
@@ -1,209 +1,181 @@
1
- import { useState as I, useRef as M, useCallback as i } from "react";
2
- const U = 'input, button, select, textarea, a[href], [tabindex]:not([tabindex="-1"])';
3
- function O() {
4
- const [m, A] = I({
5
- rowIndex: 0,
6
- colIndex: 0
7
- }), a = M(null), d = i(
8
- (e, t, s) => {
9
- const c = e.querySelectorAll(
10
- U
11
- );
12
- if (c.length > 0) {
13
- const n = c[0];
14
- return A({ rowIndex: t, colIndex: s }), requestAnimationFrame(() => {
15
- n.focus({ preventScroll: !1 });
16
- }), !0;
17
- }
18
- return !1;
19
- },
20
- [A]
21
- ), b = i(
22
- (e, t, s) => {
23
- if (!a.current) return null;
24
- const c = Array.from(a.current.querySelectorAll("tr"));
25
- if (e < 0 || e >= c.length) return null;
26
- const n = c[e];
27
- if (!n) return null;
28
- const r = Array.from(n.querySelectorAll("td, th"));
29
- if (s === "right") {
30
- for (let o = t + 1; o < r.length; o++)
31
- if (r[o].dataset.focusable !== "false")
32
- return { rowIndex: e, colIndex: o };
33
- } else
34
- for (let o = t - 1; o >= 0; o--)
35
- if (r[o].dataset.focusable !== "false")
36
- return { rowIndex: e, colIndex: o };
37
- return null;
38
- },
39
- []
40
- ), l = i(
41
- (e, t, s) => {
42
- if (!a.current) return;
43
- const c = Array.from(a.current.querySelectorAll("tr"));
44
- if (e < 0 || e >= c.length) return;
45
- const n = c[e];
46
- if (!n) return;
47
- const r = Array.from(n.querySelectorAll("td, th"));
48
- if (t < 0 || t >= r.length) return;
49
- const o = r[t];
50
- if (!(o.dataset.focusable !== "false")) {
51
- if (d(o, e, t))
52
- return;
53
- if (s) {
54
- const f = b(
55
- e,
56
- t,
57
- s
58
- );
59
- if (f) {
60
- l(f.rowIndex, f.colIndex);
61
- return;
62
- }
63
- }
64
- return;
65
- }
66
- A({ rowIndex: e, colIndex: t }), requestAnimationFrame(() => {
67
- document.activeElement !== o && o.focus({ preventScroll: !1 });
68
- });
69
- },
70
- [A, d, b]
71
- ), v = i(
72
- (e) => {
73
- if (!a.current) return;
74
- const t = Array.from(a.current.querySelectorAll("tr"));
75
- e < 0 || e >= t.length || !t[e] || l(e, 0);
76
- },
77
- [l]
78
- ), S = i(
79
- (e) => {
80
- e.target === e.currentTarget && (e.preventDefault(), requestAnimationFrame(() => {
81
- l(0, 0);
82
- }));
83
- },
84
- [l]
85
- ), k = i(
86
- (e) => {
87
- const t = e.target, s = e.currentTarget;
88
- if (t !== s)
89
- return;
90
- const c = t.closest("tr");
91
- if (!c || !a.current) return;
92
- const r = Array.from(a.current.querySelectorAll("tr")).indexOf(c), u = Array.from(c.querySelectorAll("td, th")).indexOf(t);
93
- r >= 0 && u >= 0 && (A({ rowIndex: r, colIndex: u }), requestAnimationFrame(() => {
94
- a.current && (a.current.querySelectorAll("td, th").forEach((f) => {
95
- f.setAttribute("tabindex", "-1");
96
- }), t.setAttribute("tabindex", "0"));
97
- }));
98
- },
99
- [A]
100
- ), q = i(
101
- (e, t) => m.rowIndex === e && m.colIndex === t,
102
- [m]
103
- ), D = i(
104
- (e) => {
105
- if (e.key !== "Tab" && e.target === e.currentTarget && a.current)
106
- switch (e.key) {
107
- case "ArrowDown":
108
- case "ArrowRight":
109
- e.preventDefault(), l(0, 0);
110
- break;
111
- case "Home":
112
- e.preventDefault(), l(0, 0);
113
- break;
114
- case "End":
115
- e.preventDefault();
116
- const t = Array.from(a.current.querySelectorAll("tr")), s = t.length - 1;
117
- if (s >= 0) {
118
- const c = t[s];
119
- if (!c) break;
120
- const n = Array.from(c.querySelectorAll("td, th"));
121
- l(s, n.length - 1);
122
- }
123
- break;
124
- }
125
- },
126
- [l]
127
- ), x = i(
128
- (e) => {
129
- if (e.key === "RawTab" || !a.current) return;
130
- let t = e.currentTarget;
131
- const s = e.target;
132
- if (s !== t) {
133
- const f = s.closest("td, th");
134
- f && (t = f);
135
- }
136
- const c = t.closest("tr");
137
- if (!c) return;
138
- const n = Array.from(a.current.querySelectorAll("tr")), r = n.indexOf(c), o = Array.from(c.querySelectorAll("td, th")), u = o.indexOf(t);
139
- switch (e.key) {
140
- case "ArrowRight":
141
- e.preventDefault(), u < o.length - 1 ? l(r, u + 1, "right") : l(r, 0, "right");
142
- break;
143
- case "ArrowLeft":
144
- e.preventDefault(), u > 0 ? l(r, u - 1, "left") : l(r, o.length - 1, "left");
145
- break;
146
- case "ArrowDown":
147
- if (e.preventDefault(), r < n.length - 1) {
148
- const h = n[r + 1];
149
- if (!h) break;
150
- const g = Array.from(h.querySelectorAll("td, th")), y = Math.min(u, g.length - 1);
151
- l(r + 1, y);
152
- }
153
- break;
154
- case "ArrowUp":
155
- if (e.preventDefault(), r > 0) {
156
- const h = n[r - 1];
157
- if (!h) break;
158
- const g = Array.from(h.querySelectorAll("td, th")), y = Math.min(u, g.length - 1);
159
- l(r - 1, y);
160
- }
161
- break;
162
- case "Home":
163
- e.preventDefault(), e.ctrlKey ? l(0, 0) : l(r, 0);
164
- break;
165
- case "End":
166
- if (e.preventDefault(), e.ctrlKey) {
167
- const h = n.length - 1, g = n[h];
168
- if (!g) break;
169
- const y = Array.from(g.querySelectorAll("td, th"));
170
- l(h, y.length - 1);
171
- } else
172
- l(r, o.length - 1);
173
- break;
174
- case "PageUp":
175
- e.preventDefault();
176
- const f = Math.max(0, r - 5), w = n[f];
177
- if (!w) break;
178
- const R = Array.from(w.querySelectorAll("td, th")), E = Math.min(u, R.length - 1);
179
- l(f, E);
180
- break;
181
- case "PageDown":
182
- e.preventDefault();
183
- const p = Math.min(n.length - 1, r + 5), C = n[p];
184
- if (!C) break;
185
- const T = Array.from(
186
- C.querySelectorAll("td, th")
187
- ), F = Math.min(u, T.length - 1);
188
- l(p, F);
189
- break;
190
- }
191
- },
192
- [l]
193
- );
194
- return {
195
- focusedCell: m,
196
- setFocusedCell: A,
197
- isCellFocused: q,
198
- handleCellKeyDown: x,
199
- handleTableKeyDown: D,
200
- handleTableFocus: S,
201
- handleCellFocus: k,
202
- tableRef: a,
203
- focusCell: l,
204
- focusRow: v
205
- };
1
+ import { useCallback as e, useRef as t, useState as n } from "react";
2
+ //#region src/components/table/hooks/useTableKeyboardNavigation.ts
3
+ var r = "input, button, select, textarea, a[href], [tabindex]:not([tabindex=\"-1\"])";
4
+ function i() {
5
+ let [i, a] = n({
6
+ rowIndex: 0,
7
+ colIndex: 0
8
+ }), o = t(null), s = e((e, t, n) => {
9
+ let i = e.querySelectorAll(r);
10
+ if (i.length > 0) {
11
+ let e = i[0];
12
+ return a({
13
+ rowIndex: t,
14
+ colIndex: n
15
+ }), requestAnimationFrame(() => {
16
+ e.focus({ preventScroll: !1 });
17
+ }), !0;
18
+ }
19
+ return !1;
20
+ }, [a]), c = e((e, t, n) => {
21
+ if (!o.current) return null;
22
+ let r = Array.from(o.current.querySelectorAll("tr"));
23
+ if (e < 0 || e >= r.length) return null;
24
+ let i = r[e];
25
+ if (!i) return null;
26
+ let a = Array.from(i.querySelectorAll("td, th"));
27
+ if (n === "right") {
28
+ for (let n = t + 1; n < a.length; n++) if (a[n].dataset.focusable !== "false") return {
29
+ rowIndex: e,
30
+ colIndex: n
31
+ };
32
+ } else for (let n = t - 1; n >= 0; n--) if (a[n].dataset.focusable !== "false") return {
33
+ rowIndex: e,
34
+ colIndex: n
35
+ };
36
+ return null;
37
+ }, []), l = e((e, t, n) => {
38
+ if (!o.current) return;
39
+ let r = Array.from(o.current.querySelectorAll("tr"));
40
+ if (e < 0 || e >= r.length) return;
41
+ let i = r[e];
42
+ if (!i) return;
43
+ let u = Array.from(i.querySelectorAll("td, th"));
44
+ if (t < 0 || t >= u.length) return;
45
+ let d = u[t];
46
+ if (d.dataset.focusable === "false") {
47
+ if (s(d, e, t)) return;
48
+ if (n) {
49
+ let r = c(e, t, n);
50
+ if (r) {
51
+ l(r.rowIndex, r.colIndex);
52
+ return;
53
+ }
54
+ }
55
+ return;
56
+ }
57
+ a({
58
+ rowIndex: e,
59
+ colIndex: t
60
+ }), requestAnimationFrame(() => {
61
+ document.activeElement !== d && d.focus({ preventScroll: !1 });
62
+ });
63
+ }, [
64
+ a,
65
+ s,
66
+ c
67
+ ]), u = e((e) => {
68
+ if (!o.current) return;
69
+ let t = Array.from(o.current.querySelectorAll("tr"));
70
+ e < 0 || e >= t.length || t[e] && l(e, 0);
71
+ }, [l]), d = e((e) => {
72
+ e.target === e.currentTarget && (e.preventDefault(), requestAnimationFrame(() => {
73
+ l(0, 0);
74
+ }));
75
+ }, [l]), f = e((e) => {
76
+ let t = e.target;
77
+ if (t !== e.currentTarget) return;
78
+ let n = t.closest("tr");
79
+ if (!n || !o.current) return;
80
+ let r = Array.from(o.current.querySelectorAll("tr")).indexOf(n), i = Array.from(n.querySelectorAll("td, th")).indexOf(t);
81
+ r >= 0 && i >= 0 && (a({
82
+ rowIndex: r,
83
+ colIndex: i
84
+ }), requestAnimationFrame(() => {
85
+ o.current && (o.current.querySelectorAll("td, th").forEach((e) => {
86
+ e.setAttribute("tabindex", "-1");
87
+ }), t.setAttribute("tabindex", "0"));
88
+ }));
89
+ }, [a]), p = e((e, t) => i.rowIndex === e && i.colIndex === t, [i]), m = e((e) => {
90
+ if (e.key !== "Tab" && e.target === e.currentTarget && o.current) switch (e.key) {
91
+ case "ArrowDown":
92
+ case "ArrowRight":
93
+ e.preventDefault(), l(0, 0);
94
+ break;
95
+ case "Home":
96
+ e.preventDefault(), l(0, 0);
97
+ break;
98
+ case "End":
99
+ e.preventDefault();
100
+ let t = Array.from(o.current.querySelectorAll("tr")), n = t.length - 1;
101
+ if (n >= 0) {
102
+ let e = t[n];
103
+ if (!e) break;
104
+ l(n, Array.from(e.querySelectorAll("td, th")).length - 1);
105
+ }
106
+ break;
107
+ }
108
+ }, [l]);
109
+ return {
110
+ focusedCell: i,
111
+ setFocusedCell: a,
112
+ isCellFocused: p,
113
+ handleCellKeyDown: e((e) => {
114
+ if (e.key === "RawTab" || !o.current) return;
115
+ let t = e.currentTarget, n = e.target;
116
+ if (n !== t) {
117
+ let e = n.closest("td, th");
118
+ e && (t = e);
119
+ }
120
+ let r = t.closest("tr");
121
+ if (!r) return;
122
+ let i = Array.from(o.current.querySelectorAll("tr")), a = i.indexOf(r), s = Array.from(r.querySelectorAll("td, th")), c = s.indexOf(t);
123
+ switch (e.key) {
124
+ case "ArrowRight":
125
+ e.preventDefault(), c < s.length - 1 ? l(a, c + 1, "right") : l(a, 0, "right");
126
+ break;
127
+ case "ArrowLeft":
128
+ e.preventDefault(), c > 0 ? l(a, c - 1, "left") : l(a, s.length - 1, "left");
129
+ break;
130
+ case "ArrowDown":
131
+ if (e.preventDefault(), a < i.length - 1) {
132
+ let e = i[a + 1];
133
+ if (!e) break;
134
+ let t = Array.from(e.querySelectorAll("td, th")), n = Math.min(c, t.length - 1);
135
+ l(a + 1, n);
136
+ }
137
+ break;
138
+ case "ArrowUp":
139
+ if (e.preventDefault(), a > 0) {
140
+ let e = i[a - 1];
141
+ if (!e) break;
142
+ let t = Array.from(e.querySelectorAll("td, th")), n = Math.min(c, t.length - 1);
143
+ l(a - 1, n);
144
+ }
145
+ break;
146
+ case "Home":
147
+ e.preventDefault(), e.ctrlKey ? l(0, 0) : l(a, 0);
148
+ break;
149
+ case "End":
150
+ if (e.preventDefault(), e.ctrlKey) {
151
+ let e = i.length - 1, t = i[e];
152
+ if (!t) break;
153
+ l(e, Array.from(t.querySelectorAll("td, th")).length - 1);
154
+ } else l(a, s.length - 1);
155
+ break;
156
+ case "PageUp":
157
+ e.preventDefault();
158
+ let t = Math.max(0, a - 5), n = i[t];
159
+ if (!n) break;
160
+ let r = Array.from(n.querySelectorAll("td, th"));
161
+ l(t, Math.min(c, r.length - 1));
162
+ break;
163
+ case "PageDown":
164
+ e.preventDefault();
165
+ let o = Math.min(i.length - 1, a + 5), u = i[o];
166
+ if (!u) break;
167
+ let d = Array.from(u.querySelectorAll("td, th"));
168
+ l(o, Math.min(c, d.length - 1));
169
+ break;
170
+ }
171
+ }, [l]),
172
+ handleTableKeyDown: m,
173
+ handleTableFocus: d,
174
+ handleCellFocus: f,
175
+ tableRef: o,
176
+ focusCell: l,
177
+ focusRow: u
178
+ };
206
179
  }
207
- export {
208
- O as useTableKeyboardNavigation
209
- };
180
+ //#endregion
181
+ export { i as useTableKeyboardNavigation };
@@ -1,104 +1,81 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import y, { forwardRef as b, Children as f, cloneElement as g } from "react";
3
- import { uyTv as _ } from "@payfit/unity-themes";
4
- import { useTableContext as x } from "../Table.context.js";
5
- const C = _({
6
- base: ["uy:transition-all uy:duration-200 uy:ease-in-out uy:relative"],
7
- variants: {
8
- isEmpty: {
9
- true: ["uy:h-[var(--uy-table-min-rows)]"],
10
- false: [
11
- "uy:[&_tr:last-child]:border-b",
12
- "uy:[&_tr:last-child]:border-b-[length:calc(1px*var(--uy-table-has-remaining-space,0))]"
13
- ]
14
- }
15
- }
16
- }), E = ({
17
- children: c,
18
- hasDataStateContent: p,
19
- enableVirtualization: u,
20
- virtualizer: a
21
- }) => {
22
- if (p)
23
- return [];
24
- if (u && a) {
25
- const t = a.getVirtualItems(), d = a.getTotalSize(), m = t[0], l = t[t.length - 1], o = m ? m.start : 0, s = l ? d - l.end : 0, e = [];
26
- return o > 0 && e.push(
27
- /* @__PURE__ */ r(
28
- "tr",
29
- {
30
- "aria-hidden": "true",
31
- style: { border: 0, borderBottom: 0 },
32
- children: /* @__PURE__ */ r(
33
- "td",
34
- {
35
- colSpan: 1e3,
36
- style: { height: o, padding: 0, border: 0 }
37
- }
38
- )
39
- },
40
- "__spacer-top__"
41
- )
42
- ), t.forEach((i) => {
43
- const n = y.Children.toArray(c)[i.index];
44
- y.isValidElement(n) && e.push(
45
- y.cloneElement(n, {
46
- key: i.index,
47
- rowIndex: i.index,
48
- ref: (h) => {
49
- h && a.measureElement(h);
50
- }
51
- })
52
- );
53
- }), s > 0 && e.push(
54
- /* @__PURE__ */ r(
55
- "tr",
56
- {
57
- "aria-hidden": "true",
58
- style: { border: 0, borderBottom: 0 },
59
- children: /* @__PURE__ */ r(
60
- "td",
61
- {
62
- colSpan: 1e3,
63
- style: { height: s, padding: 0, border: 0 }
64
- }
65
- )
66
- },
67
- "__spacer-bottom__"
68
- )
69
- ), e;
70
- }
71
- return f.map(c, (t, d) => y.isValidElement(t) ? g(
72
- t,
73
- {
74
- rowIndex: d,
75
- ...t.props
76
- }
77
- ) : t);
78
- }, T = b(
79
- ({ children: c, renderEmptyState: p, renderDataState: u, ...a }, t) => {
80
- const { virtualizer: d, enableVirtualization: m } = x(), l = u ? u() : void 0, o = l !== void 0, s = E({
81
- children: c,
82
- hasDataStateContent: o,
83
- enableVirtualization: m,
84
- virtualizer: d
85
- }), e = !s || s.length === 0 || o, i = e && p ? p() : null;
86
- let n = null;
87
- return o ? n = l : e && i && (n = i), /* @__PURE__ */ r(
88
- "tbody",
89
- {
90
- ref: t,
91
- className: C({ isEmpty: e }),
92
- "data-dd-privacy": "mask",
93
- "data-empty": e || o || void 0,
94
- ...a,
95
- children: n ? /* @__PURE__ */ r("tr", { children: /* @__PURE__ */ r("td", { colSpan: 1e3, className: "uy:p-0", children: n }) }) : s
96
- }
97
- );
98
- }
99
- );
100
- T.displayName = "TableBody";
101
- export {
102
- T as TableBody,
103
- C as tableBody
104
- };
1
+ import { useTableContext as e } from "../Table.context.js";
2
+ import t, { Children as n, cloneElement as r, forwardRef as i } from "react";
3
+ import { uyTv as a } from "@payfit/unity-themes";
4
+ import { jsx as o } from "react/jsx-runtime";
5
+ //#region src/components/table/parts/TableBody.tsx
6
+ var s = a({
7
+ base: ["uy:transition-all uy:duration-200 uy:ease-in-out uy:relative"],
8
+ variants: { isEmpty: {
9
+ true: ["uy:h-[var(--uy-table-min-rows)]"],
10
+ false: ["uy:[&_tr:last-child]:border-b", "uy:[&_tr:last-child]:border-b-[length:calc(1px*var(--uy-table-has-remaining-space,0))]"]
11
+ } }
12
+ }), c = ({ children: e, hasDataStateContent: i, enableVirtualization: a, virtualizer: s }) => {
13
+ if (i) return [];
14
+ if (a && s) {
15
+ let n = s.getVirtualItems(), r = s.getTotalSize(), i = n[0], a = n[n.length - 1], c = i ? i.start : 0, l = a ? r - a.end : 0, u = [];
16
+ return c > 0 && u.push(/* @__PURE__ */ o("tr", {
17
+ "aria-hidden": "true",
18
+ style: {
19
+ border: 0,
20
+ borderBottom: 0
21
+ },
22
+ children: /* @__PURE__ */ o("td", {
23
+ colSpan: 1e3,
24
+ style: {
25
+ height: c,
26
+ padding: 0,
27
+ border: 0
28
+ }
29
+ })
30
+ }, "__spacer-top__")), n.forEach((n) => {
31
+ let r = t.Children.toArray(e)[n.index];
32
+ t.isValidElement(r) && u.push(t.cloneElement(r, {
33
+ key: n.index,
34
+ rowIndex: n.index,
35
+ ref: (e) => {
36
+ e && s.measureElement(e);
37
+ }
38
+ }));
39
+ }), l > 0 && u.push(/* @__PURE__ */ o("tr", {
40
+ "aria-hidden": "true",
41
+ style: {
42
+ border: 0,
43
+ borderBottom: 0
44
+ },
45
+ children: /* @__PURE__ */ o("td", {
46
+ colSpan: 1e3,
47
+ style: {
48
+ height: l,
49
+ padding: 0,
50
+ border: 0
51
+ }
52
+ })
53
+ }, "__spacer-bottom__")), u;
54
+ }
55
+ return n.map(e, (e, n) => t.isValidElement(e) ? r(e, {
56
+ rowIndex: n,
57
+ ...e.props
58
+ }) : e);
59
+ }, l = i(({ children: t, renderEmptyState: n, renderDataState: r, ...i }, a) => {
60
+ let { virtualizer: l, enableVirtualization: u } = e(), d = r ? r() : void 0, f = d !== void 0, p = c({
61
+ children: t,
62
+ hasDataStateContent: f,
63
+ enableVirtualization: u,
64
+ virtualizer: l
65
+ }), m = !p || p.length === 0 || f, h = m && n ? n() : null, g = null;
66
+ return f ? g = d : m && h && (g = h), /* @__PURE__ */ o("tbody", {
67
+ ref: a,
68
+ className: s({ isEmpty: m }),
69
+ "data-dd-privacy": "mask",
70
+ "data-empty": m || f || void 0,
71
+ ...i,
72
+ children: g ? /* @__PURE__ */ o("tr", { children: /* @__PURE__ */ o("td", {
73
+ colSpan: 1e3,
74
+ className: "uy:p-0",
75
+ children: g
76
+ }) }) : p
77
+ });
78
+ });
79
+ l.displayName = "TableBody";
80
+ //#endregion
81
+ export { l as TableBody, s as tableBody };