@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,247 +1,190 @@
1
- import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
- import { useState as v, useRef as C, isValidElement as I, cloneElement as O } from "react";
3
- import { uyMerge as g } from "@payfit/unity-themes";
4
- import { FormattedMessage as h, useIntl as V } from "react-intl";
5
- import { Actionable as w } from "../../actionable/Actionable.js";
6
- import { Avatar as z } from "../../avatar/Avatar.js";
7
- import { AvatarFallback as F } from "../../avatar/parts/AvatarFallback.js";
8
- import { AvatarImage as H } from "../../avatar/parts/AvatarImage.js";
9
- import { Badge as j } from "../../badge/Badge.js";
10
- import { Icon as x } from "../../icon/Icon.js";
11
- import { Menu as k } from "../../menu/Menu.js";
12
- import { MenuContent as E } from "../../menu/parts/MenuContent.js";
13
- import { MenuHeader as S } from "../../menu/parts/MenuHeader.js";
14
- import { MenuTrigger as B } from "../../menu/parts/MenuTrigger.js";
15
- import { useAppMenuContext as R } from "./AppMenu.context.js";
16
- const M = (t) => /* @__PURE__ */ n(
17
- z,
18
- {
19
- "aria-label": `${t.title} avatar`,
20
- size: "md",
21
- variant: "square",
22
- "aria-labelledby": "profile-button-label",
23
- children: [
24
- /* @__PURE__ */ e(H, { src: t.avatar, alt: t.title ?? "" }),
25
- /* @__PURE__ */ e(F, { variant: "initials", delayMs: 100, children: t.title }),
26
- t.avatarPair && I(t.avatarPair) && O(t.avatarPair, {
27
- isHidden: !t.isPairAvatarVisible
28
- })
29
- ]
30
- }
31
- ), q = ({
32
- avatar: t,
33
- avatarPair: r,
34
- title: u,
35
- uploadAvatarCallback: d,
36
- uploadAvatarLabel: s,
37
- uploadAvatarDescription: i
38
- }) => {
39
- const [o, l] = v(!0), c = V(), a = () => {
40
- r && l((m) => !m);
41
- }, y = g(
42
- "uy:group/avatar uy:cursor-pointer uy:relative uy:leading-[0] uy:rounded-75 uy:focus-visible:outline-none uy:focus-visible:ring-2 uy:focus-visible:ring-utility-focus-ring uy:focus-visible:ring-offset-2"
43
- );
44
- return /* @__PURE__ */ n(
45
- w,
46
- {
47
- "aria-describedby": "profile-picture-change-desc",
48
- "aria-label": s || c.formatMessage({
49
- id: "unity:component:app-menu:footer:profile-button:avatar:change",
50
- defaultMessage: "Change profile picture"
51
- }),
52
- className: y,
53
- onHoverStart: a,
54
- onHoverEnd: a,
55
- onFocus: a,
56
- onBlur: a,
57
- onPress: () => {
58
- d?.();
59
- },
60
- children: [
61
- /* @__PURE__ */ e(
62
- M,
63
- {
64
- avatar: t,
65
- avatarPair: r,
66
- title: u,
67
- isPairAvatarVisible: o
68
- }
69
- ),
70
- /* @__PURE__ */ n("div", { className: "uy:flex uy:pointer-events-none uy:opacity-0 uy:group-hover/avatar:opacity-90 uy:group-hover/avatar:pointer-events-auto uy:group-focus-visible/avatar:opacity-90 uy:group-focus-visible/avatar:pointer-events-auto uy:bg-utility-backdrop uy:rounded-75 uy:absolute uy:top-0 uy:left-0 uy:w-full uy:h-full uy:transition-all uy:duration-200 uy:items-center uy:justify-center", children: [
71
- /* @__PURE__ */ e(
72
- x,
73
- {
74
- alt: "Camera",
75
- color: "content.inverted",
76
- size: 24,
77
- src: "CameraOutlined"
78
- }
79
- ),
80
- /* @__PURE__ */ e("span", { className: "uy:sr-only", id: "profile-picture-change-desc", children: i || /* @__PURE__ */ e(
81
- h,
82
- {
83
- id: "unity:component:app-menu:footer:profile-button:avatar:change-description",
84
- defaultMessage: "Press enter to change profile picture"
85
- }
86
- ) })
87
- ] })
88
- ]
89
- }
90
- );
91
- }, b = ({
92
- asMenuHeader: t = !1,
93
- avatar: r,
94
- avatarPair: u,
95
- badgeLabel: d,
96
- description: s,
97
- menuTriggerDescription: i,
98
- title: o,
99
- uploadAvatarCallback: l,
100
- uploadAvatarLabel: c,
101
- uploadAvatarDescription: a
102
- }) => /* @__PURE__ */ n("div", { className: "uy:min-w-[240px] uy:w-full uy:flex uy:items-center", children: [
103
- /* @__PURE__ */ e("div", { className: "uy:mr-150 uy:flex uy:items-center", children: l ? /* @__PURE__ */ e(
104
- q,
105
- {
106
- avatar: r,
107
- avatarPair: u,
108
- title: o,
109
- uploadAvatarLabel: c,
110
- uploadAvatarDescription: a,
111
- uploadAvatarCallback: l
112
- }
113
- ) : /* @__PURE__ */ e(
114
- M,
115
- {
116
- avatar: r,
117
- avatarPair: u,
118
- title: o,
119
- isPairAvatarVisible: !0
120
- }
121
- ) }),
122
- /* @__PURE__ */ n("div", { className: "uy:flex uy:flex-col uy:text-left uy:leading-[1.25] uy:min-w-[50%] uy:flex-grow", children: [
123
- /* @__PURE__ */ e(
124
- "span",
125
- {
126
- id: "profile-button-label",
127
- className: "uy:typography-body-strong uy:text-content-neutral uy:text-wrap",
128
- "data-dd-privacy": "mask",
129
- children: o
130
- }
131
- ),
132
- /* @__PURE__ */ e(
133
- "span",
134
- {
135
- className: "uy:typography-body-small uy:text-content-neutral-low",
136
- "data-dd-privacy": "allow",
137
- children: s
138
- }
139
- ),
140
- !t && /* @__PURE__ */ e("span", { id: "profile-button-description", className: "uy:sr-only", children: i || /* @__PURE__ */ e(
141
- h,
142
- {
143
- id: "unity:component:app-menu:footer:profile-button:description",
144
- defaultMessage: "Press this button to open the profile menu."
145
- }
146
- ) })
147
- ] }),
148
- /* @__PURE__ */ e("div", { className: "uy:p-100", children: t ? /* @__PURE__ */ e(j, { className: "uy:capitalize", variant: "neutral", children: d }) : /* @__PURE__ */ e(
149
- x,
150
- {
151
- src: "CaretUpDownOutlined",
152
- alt: "open",
153
- size: 20,
154
- color: "content.neutral.low"
155
- }
156
- ) })
157
- ] }), te = ({
158
- avatar: t,
159
- avatarPair: r,
160
- badgeLabel: u,
161
- children: d,
162
- computeSlot: s,
163
- description: i,
164
- title: o,
165
- menuTriggerDescription: l,
166
- uploadAvatarCallback: c,
167
- uploadAvatarLabel: a,
168
- uploadAvatarDescription: y,
169
- updateNotificationSlot: m
170
- }) => {
171
- const { isMobileMenuOpen: N } = R(), [P, f] = v(!1), p = C(null), A = g(
172
- "uy:fixed uy:bottom-0 uy:left-0 uy:right-0 uy:z-10 uy:bg-canvas",
173
- "uy:p-150",
174
- "uy:md:static uy:md:mt-auto uy:md:p-0 uy:md:bg-[transparent]",
175
- "uy:data-[mobile-open=false]:hidden uy:md:data-[mobile-open=false]:block uy:data-[mobile-open=true]:block"
176
- );
177
- return /* @__PURE__ */ n(
178
- "aside",
179
- {
180
- className: A,
181
- "data-mobile-open": N,
182
- id: "app-menu-profile-button",
183
- children: [
184
- s,
185
- m,
186
- /* @__PURE__ */ n(
187
- k,
188
- {
189
- isOpen: P,
190
- onOpenChange: f,
191
- placement: "top left",
192
- triggerRef: p,
193
- children: [
194
- /* @__PURE__ */ e(B, { asChild: !0, children: /* @__PURE__ */ e(
195
- w,
196
- {
197
- ref: p,
198
- className: "uy:transition-colors uy:rounded-75 uy:px-150 uy:py-100 uy:w-full uy:theme-legacy:not-aria-disabled:hover:bg-surface-neutral-low-hover uy:theme-rebrand:not-aria-disabled:hover:bg-surface-neutral-lowest-hover uy:theme-legacy:not-aria-disabled:active:bg-surface-neutral-low-active uy:theme-rebrand:not-aria-disabled:active:bg-surface-neutral-lowest-active uy:theme-legacy:not-aria-disabled:data-[pressed=true]:bg-surface-neutral-low-pressed uy:theme-rebrand:not-aria-disabled:data-[pressed=true]:bg-surface-neutral-lowest-pressed uy:not-aria-disabled:focus-visible:outline-none uy:not-aria-disabled:focus-visible:ring-2 uy:not-aria-disabled:focus-visible:ring-utility-focus-ring uy:not-aria-disabled:focus-visible:ring-offset-2",
199
- "aria-labelledby": "profile-button-label",
200
- "aria-describedby": "profile-button-description",
201
- onPress: () => {
202
- f(!0);
203
- },
204
- children: /* @__PURE__ */ e(
205
- b,
206
- {
207
- avatar: t,
208
- avatarPair: r,
209
- badgeLabel: u,
210
- description: i,
211
- menuTriggerDescription: l,
212
- title: o,
213
- uploadAvatarCallback: c,
214
- uploadAvatarLabel: a,
215
- uploadAvatarDescription: y
216
- }
217
- )
218
- }
219
- ) }),
220
- /* @__PURE__ */ n(E, { width: 312, children: [
221
- /* @__PURE__ */ e(S, { className: "uy:rounded-75", children: /* @__PURE__ */ e(
222
- b,
223
- {
224
- asMenuHeader: !0,
225
- avatar: t,
226
- avatarPair: r,
227
- badgeLabel: u,
228
- description: i,
229
- menuTriggerDescription: l,
230
- title: o,
231
- uploadAvatarCallback: c,
232
- uploadAvatarLabel: a,
233
- uploadAvatarDescription: y
234
- }
235
- ) }),
236
- d
237
- ] })
238
- ]
239
- }
240
- )
241
- ]
242
- }
243
- );
244
- };
245
- export {
246
- te as AppMenuFooter
1
+ import { Actionable as e } from "../../actionable/Actionable.js";
2
+ import { Icon as t } from "../../icon/Icon.js";
3
+ import { Menu as n } from "../../menu/Menu.js";
4
+ import { MenuContent as r } from "../../menu/parts/MenuContent.js";
5
+ import { MenuTrigger as i } from "../../menu/parts/MenuTrigger.js";
6
+ import { useAppMenuContext as a } from "./AppMenu.context.js";
7
+ import { Avatar as o } from "../../avatar/Avatar.js";
8
+ import { AvatarFallback as s } from "../../avatar/parts/AvatarFallback.js";
9
+ import { AvatarImage as c } from "../../avatar/parts/AvatarImage.js";
10
+ import { Badge as l } from "../../badge/Badge.js";
11
+ import { MenuHeader as u } from "../../menu/parts/MenuHeader.js";
12
+ import { cloneElement as d, isValidElement as f, useRef as p, useState as m } from "react";
13
+ import { uyMerge as h } from "@payfit/unity-themes";
14
+ import { jsx as g, jsxs as _ } from "react/jsx-runtime";
15
+ import { FormattedMessage as v, useIntl as y } from "react-intl";
16
+ //#region src/components/app-menu/parts/AppMenuFooter.tsx
17
+ var b = (e) => /* @__PURE__ */ _(o, {
18
+ "aria-label": `${e.title} avatar`,
19
+ size: "md",
20
+ variant: "square",
21
+ "aria-labelledby": "profile-button-label",
22
+ children: [
23
+ /* @__PURE__ */ g(c, {
24
+ src: e.avatar,
25
+ alt: e.title ?? ""
26
+ }),
27
+ /* @__PURE__ */ g(s, {
28
+ variant: "initials",
29
+ delayMs: 100,
30
+ children: e.title
31
+ }),
32
+ e.avatarPair && f(e.avatarPair) && d(e.avatarPair, { isHidden: !e.isPairAvatarVisible })
33
+ ]
34
+ }), x = ({ avatar: n, avatarPair: r, title: i, uploadAvatarCallback: a, uploadAvatarLabel: o, uploadAvatarDescription: s }) => {
35
+ let [c, l] = m(!0), u = y(), d = () => {
36
+ r && l((e) => !e);
37
+ }, f = h("uy:group/avatar uy:cursor-pointer uy:relative uy:leading-[0] uy:rounded-75 uy:focus-visible:outline-none uy:focus-visible:ring-2 uy:focus-visible:ring-utility-focus-ring uy:focus-visible:ring-offset-2");
38
+ return /* @__PURE__ */ _(e, {
39
+ "aria-describedby": "profile-picture-change-desc",
40
+ "aria-label": o || u.formatMessage({
41
+ id: "unity:component:app-menu:footer:profile-button:avatar:change",
42
+ defaultMessage: "Change profile picture"
43
+ }),
44
+ className: f,
45
+ onHoverStart: d,
46
+ onHoverEnd: d,
47
+ onFocus: d,
48
+ onBlur: d,
49
+ onPress: () => {
50
+ a?.();
51
+ },
52
+ children: [/* @__PURE__ */ g(b, {
53
+ avatar: n,
54
+ avatarPair: r,
55
+ title: i,
56
+ isPairAvatarVisible: c
57
+ }), /* @__PURE__ */ _("div", {
58
+ className: "uy:flex uy:pointer-events-none uy:opacity-0 uy:group-hover/avatar:opacity-90 uy:group-hover/avatar:pointer-events-auto uy:group-focus-visible/avatar:opacity-90 uy:group-focus-visible/avatar:pointer-events-auto uy:bg-utility-backdrop uy:rounded-75 uy:absolute uy:top-0 uy:left-0 uy:w-full uy:h-full uy:transition-all uy:duration-200 uy:items-center uy:justify-center",
59
+ children: [/* @__PURE__ */ g(t, {
60
+ alt: "Camera",
61
+ color: "content.inverted",
62
+ size: 24,
63
+ src: "CameraOutlined"
64
+ }), /* @__PURE__ */ g("span", {
65
+ className: "uy:sr-only",
66
+ id: "profile-picture-change-desc",
67
+ children: s || /* @__PURE__ */ g(v, {
68
+ id: "unity:component:app-menu:footer:profile-button:avatar:change-description",
69
+ defaultMessage: "Press enter to change profile picture"
70
+ })
71
+ })]
72
+ })]
73
+ });
74
+ }, S = ({ asMenuHeader: e = !1, avatar: n, avatarPair: r, badgeLabel: i, description: a, menuTriggerDescription: o, title: s, uploadAvatarCallback: c, uploadAvatarLabel: u, uploadAvatarDescription: d }) => /* @__PURE__ */ _("div", {
75
+ className: "uy:min-w-[240px] uy:w-full uy:flex uy:items-center",
76
+ children: [
77
+ /* @__PURE__ */ g("div", {
78
+ className: "uy:mr-150 uy:flex uy:items-center",
79
+ children: c ? /* @__PURE__ */ g(x, {
80
+ avatar: n,
81
+ avatarPair: r,
82
+ title: s,
83
+ uploadAvatarLabel: u,
84
+ uploadAvatarDescription: d,
85
+ uploadAvatarCallback: c
86
+ }) : /* @__PURE__ */ g(b, {
87
+ avatar: n,
88
+ avatarPair: r,
89
+ title: s,
90
+ isPairAvatarVisible: !0
91
+ })
92
+ }),
93
+ /* @__PURE__ */ _("div", {
94
+ className: "uy:flex uy:flex-col uy:text-left uy:leading-[1.25] uy:min-w-[50%] uy:flex-grow",
95
+ children: [
96
+ /* @__PURE__ */ g("span", {
97
+ id: "profile-button-label",
98
+ className: "uy:typography-body-strong uy:text-content-neutral uy:text-wrap",
99
+ "data-dd-privacy": "mask",
100
+ children: s
101
+ }),
102
+ /* @__PURE__ */ g("span", {
103
+ className: "uy:typography-body-small uy:text-content-neutral-low",
104
+ "data-dd-privacy": "allow",
105
+ children: a
106
+ }),
107
+ !e && /* @__PURE__ */ g("span", {
108
+ id: "profile-button-description",
109
+ className: "uy:sr-only",
110
+ children: o || /* @__PURE__ */ g(v, {
111
+ id: "unity:component:app-menu:footer:profile-button:description",
112
+ defaultMessage: "Press this button to open the profile menu."
113
+ })
114
+ })
115
+ ]
116
+ }),
117
+ /* @__PURE__ */ g("div", {
118
+ className: "uy:p-100",
119
+ children: e ? /* @__PURE__ */ g(l, {
120
+ className: "uy:capitalize",
121
+ variant: "neutral",
122
+ children: i
123
+ }) : /* @__PURE__ */ g(t, {
124
+ src: "CaretUpDownOutlined",
125
+ alt: "open",
126
+ size: 20,
127
+ color: "content.neutral.low"
128
+ })
129
+ })
130
+ ]
131
+ }), C = ({ avatar: t, avatarPair: o, badgeLabel: s, children: c, computeSlot: l, description: d, title: f, menuTriggerDescription: v, uploadAvatarCallback: y, uploadAvatarLabel: b, uploadAvatarDescription: x, updateNotificationSlot: C }) => {
132
+ let { isMobileMenuOpen: w } = a(), [T, E] = m(!1), D = p(null);
133
+ return /* @__PURE__ */ _("aside", {
134
+ className: h("uy:fixed uy:bottom-0 uy:left-0 uy:right-0 uy:z-10 uy:bg-canvas", "uy:p-150", "uy:md:static uy:md:mt-auto uy:md:p-0 uy:md:bg-[transparent]", "uy:data-[mobile-open=false]:hidden uy:md:data-[mobile-open=false]:block uy:data-[mobile-open=true]:block"),
135
+ "data-mobile-open": w,
136
+ id: "app-menu-profile-button",
137
+ children: [
138
+ l,
139
+ C,
140
+ /* @__PURE__ */ _(n, {
141
+ isOpen: T,
142
+ onOpenChange: E,
143
+ placement: "top left",
144
+ triggerRef: D,
145
+ children: [/* @__PURE__ */ g(i, {
146
+ asChild: !0,
147
+ children: /* @__PURE__ */ g(e, {
148
+ ref: D,
149
+ className: "uy:transition-colors uy:rounded-75 uy:px-150 uy:py-100 uy:w-full uy:theme-legacy:not-aria-disabled:hover:bg-surface-neutral-low-hover uy:theme-rebrand:not-aria-disabled:hover:bg-surface-neutral-lowest-hover uy:theme-legacy:not-aria-disabled:active:bg-surface-neutral-low-active uy:theme-rebrand:not-aria-disabled:active:bg-surface-neutral-lowest-active uy:theme-legacy:not-aria-disabled:data-[pressed=true]:bg-surface-neutral-low-pressed uy:theme-rebrand:not-aria-disabled:data-[pressed=true]:bg-surface-neutral-lowest-pressed uy:not-aria-disabled:focus-visible:outline-none uy:not-aria-disabled:focus-visible:ring-2 uy:not-aria-disabled:focus-visible:ring-utility-focus-ring uy:not-aria-disabled:focus-visible:ring-offset-2",
150
+ "aria-labelledby": "profile-button-label",
151
+ "aria-describedby": "profile-button-description",
152
+ onPress: () => {
153
+ E(!0);
154
+ },
155
+ children: /* @__PURE__ */ g(S, {
156
+ avatar: t,
157
+ avatarPair: o,
158
+ badgeLabel: s,
159
+ description: d,
160
+ menuTriggerDescription: v,
161
+ title: f,
162
+ uploadAvatarCallback: y,
163
+ uploadAvatarLabel: b,
164
+ uploadAvatarDescription: x
165
+ })
166
+ })
167
+ }), /* @__PURE__ */ _(r, {
168
+ width: 312,
169
+ children: [/* @__PURE__ */ g(u, {
170
+ className: "uy:rounded-75",
171
+ children: /* @__PURE__ */ g(S, {
172
+ asMenuHeader: !0,
173
+ avatar: t,
174
+ avatarPair: o,
175
+ badgeLabel: s,
176
+ description: d,
177
+ menuTriggerDescription: v,
178
+ title: f,
179
+ uploadAvatarCallback: y,
180
+ uploadAvatarLabel: b,
181
+ uploadAvatarDescription: x
182
+ })
183
+ }), c]
184
+ })]
185
+ })
186
+ ]
187
+ });
247
188
  };
189
+ //#endregion
190
+ export { C as AppMenuFooter };
@@ -1,51 +1,54 @@
1
- import { jsxs as o, jsx as e } from "react/jsx-runtime";
2
- import { Link as m } from "react-aria-components/Link";
1
+ import { isMobileBreakpoint as e, useBreakpointListener as t } from "../../../hooks/use-breakpoint-listener.js";
2
+ import { Button as n } from "../../button/Button.js";
3
+ import { useAppMenuContext as r } from "./AppMenu.context.js";
4
+ import { PayFitBrand as i } from "../../payfit-brand/PayFitBrand.js";
5
+ import { PayFitBrandPreprod as a } from "../../payfit-brand/PayFitPreprod.js";
6
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
3
7
  import { useIntl as c } from "react-intl";
4
- import { useBreakpointListener as y, isMobileBreakpoint as f } from "../../../hooks/use-breakpoint-listener.js";
5
- import { Button as h } from "../../button/Button.js";
6
- import { PayFitBrand as b } from "../../payfit-brand/PayFitBrand.js";
7
- import { PayFitBrandPreprod as g } from "../../payfit-brand/PayFitPreprod.js";
8
- import { useAppMenuContext as x } from "./AppMenu.context.js";
9
- const j = ({
10
- environment: r,
11
- brandLabel: i,
12
- notificationsComponent: t,
13
- searchComponent: l,
14
- renderLink: s = ({ children: n }) => /* @__PURE__ */ e(m, { href: "/", children: n })
15
- }) => {
16
- const { isMobileMenuOpen: n, toggleMobileMenu: p } = x(), d = c(), u = y(), a = f(u);
17
- return /* @__PURE__ */ o("header", { className: "uy:flex uy:flex-col uy:gap-y-200 uy:pl-25 uy:pr-25", children: [
18
- /* @__PURE__ */ o("div", { className: "uy:flex uy:items-center", children: [
19
- /* @__PURE__ */ e("div", { className: "uy:flex-1", children: s({ children: r === "prod" ? /* @__PURE__ */ e(
20
- b,
21
- {
22
- label: i,
23
- width: a ? 36 : 104,
24
- showOnlyMonogram: a
25
- }
26
- ) : /* @__PURE__ */ e(g, { label: i, env: r }) }) }),
27
- /* @__PURE__ */ o("div", { className: "uy:flex uy:gap-150 uy:items-center", children: [
28
- t,
29
- /* @__PURE__ */ e("div", { className: "uy:block uy:md:hidden", children: /* @__PURE__ */ e(
30
- h,
31
- {
32
- variant: "ghost",
33
- color: "neutral",
34
- prefixIcon: n ? "CloseOutlined" : "ListOutlined",
35
- onPress: p,
36
- "aria-expanded": n,
37
- "aria-controls": "app-menu-nav-container app-menu-profile-button",
38
- children: d.formatMessage({
39
- id: n ? "unity:component:app-menu:header:menu-close" : "unity:component:app-menu:header:menu-open",
40
- defaultMessage: n ? "Close navigation" : "Open navigation"
41
- })
42
- }
43
- ) })
44
- ] })
45
- ] }),
46
- /* @__PURE__ */ e("div", { className: "uy:hidden uy:md:flex", children: l })
47
- ] });
48
- };
49
- export {
50
- j as AppMenuHeader
8
+ import { Link as l } from "react-aria-components/Link";
9
+ //#region src/components/app-menu/parts/AppMenuHeader.tsx
10
+ var u = ({ environment: u, brandLabel: d, notificationsComponent: f, searchComponent: p, renderLink: m = ({ children: e }) => /* @__PURE__ */ o(l, {
11
+ href: "/",
12
+ children: e
13
+ }) }) => {
14
+ let { isMobileMenuOpen: h, toggleMobileMenu: g } = r(), _ = c(), v = e(t());
15
+ return /* @__PURE__ */ s("header", {
16
+ className: "uy:flex uy:flex-col uy:gap-y-200 uy:pl-25 uy:pr-25",
17
+ children: [/* @__PURE__ */ s("div", {
18
+ className: "uy:flex uy:items-center",
19
+ children: [/* @__PURE__ */ o("div", {
20
+ className: "uy:flex-1",
21
+ children: m({ children: u === "prod" ? /* @__PURE__ */ o(i, {
22
+ label: d,
23
+ width: v ? 36 : 104,
24
+ showOnlyMonogram: v
25
+ }) : /* @__PURE__ */ o(a, {
26
+ label: d,
27
+ env: u
28
+ }) })
29
+ }), /* @__PURE__ */ s("div", {
30
+ className: "uy:flex uy:gap-150 uy:items-center",
31
+ children: [f, /* @__PURE__ */ o("div", {
32
+ className: "uy:block uy:md:hidden",
33
+ children: /* @__PURE__ */ o(n, {
34
+ variant: "ghost",
35
+ color: "neutral",
36
+ prefixIcon: h ? "CloseOutlined" : "ListOutlined",
37
+ onPress: g,
38
+ "aria-expanded": h,
39
+ "aria-controls": "app-menu-nav-container app-menu-profile-button",
40
+ children: _.formatMessage({
41
+ id: h ? "unity:component:app-menu:header:menu-close" : "unity:component:app-menu:header:menu-open",
42
+ defaultMessage: h ? "Close navigation" : "Open navigation"
43
+ })
44
+ })
45
+ })]
46
+ })]
47
+ }), /* @__PURE__ */ o("div", {
48
+ className: "uy:hidden uy:md:flex",
49
+ children: p
50
+ })]
51
+ });
51
52
  };
53
+ //#endregion
54
+ export { u as AppMenuHeader };
@@ -1,23 +1,15 @@
1
- import { jsx as t } from "react/jsx-runtime";
2
- import { uyMerge as y } from "@payfit/unity-themes";
3
- import { useAppMenuContext as a } from "./AppMenu.context.js";
4
- const r = ({ children: e }) => {
5
- const { isMobileMenuOpen: u } = a(), o = y(
6
- "uy:flex-col uy:overflow-y-auto uy:overflow-x-hidden uy:gap-y-100 uy:pl-200 uy:pr-200 uy:pb-200 uy:scroll-py-100 uy:md:flex",
7
- "uy:bg-canvas uy:md:bg-[transparent]",
8
- "uy:absolute uy:top-800 uy:left-0 uy:right-0 uy:z-10 uy:h-svh uy:md:static uy:md:w-auto uy:md:pl-50 uy:md:pr-50 uy:md:pb-50",
9
- "uy:data-[mobile-open=false]:hidden uy:md:data-[mobile-open=false]:flex uy:data-[mobile-open=true]:flex"
10
- );
11
- return /* @__PURE__ */ t(
12
- "div",
13
- {
14
- className: o,
15
- "data-mobile-open": u,
16
- id: "app-menu-nav-container",
17
- children: e
18
- }
19
- );
20
- };
21
- export {
22
- r as AppMenuNavContent
1
+ import { useAppMenuContext as e } from "./AppMenu.context.js";
2
+ import { uyMerge as t } from "@payfit/unity-themes";
3
+ import { jsx as n } from "react/jsx-runtime";
4
+ //#region src/components/app-menu/parts/AppMenuNavContent.tsx
5
+ var r = ({ children: r }) => {
6
+ let { isMobileMenuOpen: i } = e();
7
+ return /* @__PURE__ */ n("div", {
8
+ className: t("uy:flex-col uy:overflow-y-auto uy:overflow-x-hidden uy:gap-y-100 uy:pl-200 uy:pr-200 uy:pb-200 uy:scroll-py-100 uy:md:flex", "uy:bg-canvas uy:md:bg-[transparent]", "uy:absolute uy:top-800 uy:left-0 uy:right-0 uy:z-10 uy:h-svh uy:md:static uy:md:w-auto uy:md:pl-50 uy:md:pr-50 uy:md:pb-50", "uy:data-[mobile-open=false]:hidden uy:md:data-[mobile-open=false]:flex uy:data-[mobile-open=true]:flex"),
9
+ "data-mobile-open": i,
10
+ id: "app-menu-nav-container",
11
+ children: r
12
+ });
23
13
  };
14
+ //#endregion
15
+ export { r as AppMenuNavContent };