@payfit/unity-components 2.0.0 → 2.2.0

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 (374) hide show
  1. package/dist/esm/components/alert/Alert.js +41 -29
  2. package/dist/esm/components/alert/parts/AlertTitle.js +8 -8
  3. package/dist/esm/components/app-layout/AppLayout.d.ts +2 -0
  4. package/dist/esm/components/app-menu/parts/AppMenuFooter.js +23 -23
  5. package/dist/esm/components/app-menu/parts/AppMenuHeader.d.ts +1 -1
  6. package/dist/esm/components/app-menu/parts/AppMenuHeader.js +9 -9
  7. package/dist/esm/components/autocomplete/Autocomplete.d.ts +0 -9
  8. package/dist/esm/components/autocomplete/Autocomplete.js +54 -57
  9. package/dist/esm/components/autocomplete/parts/AutocompleteItem.js +8 -8
  10. package/dist/esm/components/avatar/Avatar.context.d.ts +2 -1
  11. package/dist/esm/components/avatar/Avatar.context.js +13 -11
  12. package/dist/esm/components/avatar/Avatar.d.ts +126 -0
  13. package/dist/esm/components/avatar/Avatar.js +34 -20
  14. package/dist/esm/components/avatar/Avatar.variants.d.ts +39 -0
  15. package/dist/esm/components/avatar/Avatar.variants.js +23 -5
  16. package/dist/esm/components/avatar/parts/AvatarFallback.d.ts +52 -0
  17. package/dist/esm/components/avatar/parts/AvatarFallback.js +26 -27
  18. package/dist/esm/components/avatar/parts/AvatarIcon.d.ts +31 -0
  19. package/dist/esm/components/avatar/parts/AvatarIcon.js +40 -0
  20. package/dist/esm/components/badge/Badge.js +1 -1
  21. package/dist/esm/components/breadcrumbs/Breadcrumbs.variant.js +1 -1
  22. package/dist/esm/components/button/Button.js +12 -11
  23. package/dist/esm/components/button/Button.variants.d.ts +1 -0
  24. package/dist/esm/components/button/Button.variants.js +22 -15
  25. package/dist/esm/components/card/Card.context.d.ts +5 -0
  26. package/dist/esm/components/card/Card.context.js +14 -0
  27. package/dist/esm/components/card/Card.d.ts +210 -0
  28. package/dist/esm/components/card/Card.js +93 -0
  29. package/dist/esm/components/card/parts/CardContent.d.ts +37 -0
  30. package/dist/esm/components/card/parts/CardContent.js +8 -0
  31. package/dist/esm/components/card/parts/CardTitle.d.ts +55 -0
  32. package/dist/esm/components/card/parts/CardTitle.js +33 -0
  33. package/dist/esm/components/checkbox/Checkbox.js +38 -30
  34. package/dist/esm/components/checkbox/Checkbox.variants.d.ts +9 -9
  35. package/dist/esm/components/checkbox/Checkbox.variants.js +23 -7
  36. package/dist/esm/components/checkbox/TanstackCheckbox.d.ts +28 -0
  37. package/dist/esm/components/checkbox/TanstackCheckbox.js +51 -0
  38. package/dist/esm/components/checkbox/parts/CheckboxIndicator.js +7 -7
  39. package/dist/esm/components/checkbox-field/CheckboxField.d.ts +2 -0
  40. package/dist/esm/components/checkbox-field/TanstackCheckboxField.d.ts +14 -0
  41. package/dist/esm/components/checkbox-field/TanstackCheckboxField.js +40 -0
  42. package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.d.ts +4 -0
  43. package/dist/esm/components/checkbox-group/TanstackCheckboxGroup.js +37 -0
  44. package/dist/esm/components/checkbox-group-field/CheckboxGroupField.d.ts +2 -0
  45. package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.d.ts +72 -0
  46. package/dist/esm/components/checkbox-group-field/TanstackCheckGroupField.js +40 -0
  47. package/dist/esm/components/client-side-pagination/parts/PaginationNavButton.js +1 -1
  48. package/dist/esm/components/client-side-pagination/parts/RawPaginationLink.js +10 -10
  49. package/dist/esm/components/collapsible/parts/CollapsibleContent.js +5 -5
  50. package/dist/esm/components/collapsible/parts/CollapsibleTitle.js +8 -8
  51. package/dist/esm/components/data-table/DataTable.d.ts +109 -16
  52. package/dist/esm/components/data-table/DataTable.js +107 -93
  53. package/dist/esm/components/data-table/mocks/employee-data.d.ts +1 -0
  54. package/dist/esm/components/date-calendar/DateCalendar.js +1 -1
  55. package/dist/esm/components/date-calendar/parts/DateSegmentSelect.js +1 -1
  56. package/dist/esm/components/date-picker/DatePicker.d.ts +1 -1
  57. package/dist/esm/components/date-picker/DatePicker.js +59 -50
  58. package/dist/esm/components/date-picker/TanstackDatePicker.d.ts +22 -0
  59. package/dist/esm/components/date-picker/TanstackDatePicker.js +53 -0
  60. package/dist/esm/components/date-picker/parts/DateInput.js +4 -4
  61. package/dist/esm/components/date-picker-field/DatePickerField.d.ts +2 -0
  62. package/dist/esm/components/date-picker-field/TanstackDatePickerField.d.ts +71 -0
  63. package/dist/esm/components/date-picker-field/TanstackDatePickerField.js +41 -0
  64. package/dist/esm/components/definition-list/DefinitionList.context.d.ts +19 -0
  65. package/dist/esm/components/definition-list/DefinitionList.d.ts +24 -0
  66. package/dist/esm/components/definition-list/parts/DefinitionItem.d.ts +25 -0
  67. package/dist/esm/components/dialog/Dialog.d.ts +34 -22
  68. package/dist/esm/components/dialog/Dialog.js +90 -52
  69. package/dist/esm/components/dialog/parts/DialogActions.js +6 -6
  70. package/dist/esm/components/dialog/parts/DialogTitle.js +7 -4
  71. package/dist/esm/components/dialog/test-utils.d.ts +28 -0
  72. package/dist/esm/components/dialog/test-utils.js +78 -0
  73. package/dist/esm/components/error-state/ErrorState.js +7 -7
  74. package/dist/esm/components/filter/Filter.controls.d.ts +192 -0
  75. package/dist/esm/components/filter/Filter.controls.js +45 -0
  76. package/dist/esm/components/filter/Filter.d.ts +189 -0
  77. package/dist/esm/components/filter/Filter.js +147 -0
  78. package/dist/esm/components/filter/Filter.types.d.ts +121 -0
  79. package/dist/esm/components/filter/hooks/useFilterIds.d.ts +49 -0
  80. package/dist/esm/components/filter/hooks/useFilterIds.js +13 -0
  81. package/dist/esm/components/filter/hooks/useFilterState.d.ts +74 -0
  82. package/dist/esm/components/filter/hooks/useFilterState.js +23 -0
  83. package/dist/esm/components/filter/hooks/useFilterValue.d.ts +61 -0
  84. package/dist/esm/components/filter/hooks/useFilterValue.js +31 -0
  85. package/dist/esm/components/filter/parts/FilterButton.d.ts +75 -0
  86. package/dist/esm/components/filter/parts/FilterButton.js +55 -0
  87. package/dist/esm/components/filter/parts/FilterLabel.d.ts +96 -0
  88. package/dist/esm/components/filter/parts/FilterLabel.js +57 -0
  89. package/dist/esm/components/filter/parts/FilterPopover.d.ts +95 -0
  90. package/dist/esm/components/filter/parts/FilterPopover.js +79 -0
  91. package/dist/esm/components/filter/utils/value-formatters.d.ts +62 -0
  92. package/dist/esm/components/filter/utils/value-formatters.js +14 -0
  93. package/dist/esm/components/filter-toolbar/FilterToolbar.d.ts +110 -0
  94. package/dist/esm/components/filter-toolbar/FilterToolbar.js +172 -0
  95. package/dist/esm/components/filter-toolbar/FilterToolbar.types.d.ts +119 -0
  96. package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.d.ts +96 -0
  97. package/dist/esm/components/filter-toolbar/hooks/use-filter-toolbar-state.js +132 -0
  98. package/dist/esm/components/filter-toolbar/parts/AddFilter.d.ts +63 -0
  99. package/dist/esm/components/filter-toolbar/parts/AddFilter.js +107 -0
  100. package/dist/esm/components/filter-toolbar/parts/AddFilterItem.d.ts +18 -0
  101. package/dist/esm/components/filter-toolbar/parts/AddFilterItem.js +18 -0
  102. package/dist/esm/components/filter-toolbar/utils/filter-adapters.d.ts +93 -0
  103. package/dist/esm/components/filter-toolbar/utils/filter-adapters.js +88 -0
  104. package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.d.ts +24 -0
  105. package/dist/esm/components/filter-toolbar/utils/normalize-filter-value.js +19 -0
  106. package/dist/esm/components/form/Form.d.ts +2 -0
  107. package/dist/esm/components/form/TanstackForm.d.ts +24 -0
  108. package/dist/esm/components/form/TanstackForm.js +29 -0
  109. package/dist/esm/components/form-field/FormField.d.ts +2 -0
  110. package/dist/esm/components/form-field/TanstackFormField.context.d.ts +10 -0
  111. package/dist/esm/components/form-field/TanstackFormField.context.js +14 -0
  112. package/dist/esm/components/form-field/TanstackFormField.d.ts +49 -0
  113. package/dist/esm/components/form-field/TanstackFormField.js +46 -0
  114. package/dist/esm/components/form-field/parts/FormControl.d.ts +2 -0
  115. package/dist/esm/components/form-field/parts/FormFeedbackText.d.ts +2 -0
  116. package/dist/esm/components/form-field/parts/FormHelperText.d.ts +2 -0
  117. package/dist/esm/components/form-field/parts/FormLabel.d.ts +2 -0
  118. package/dist/esm/components/form-field/parts/RawFormContextualLink.d.ts +2 -0
  119. package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.d.ts +12 -0
  120. package/dist/esm/components/form-field/parts/TanstackFormFeedbackText.js +32 -0
  121. package/dist/esm/components/form-field/parts/TanstackFormHelperText.d.ts +11 -0
  122. package/dist/esm/components/form-field/parts/TanstackFormHelperText.js +25 -0
  123. package/dist/esm/components/form-field/parts/TanstackFormLabel.d.ts +8 -0
  124. package/dist/esm/components/form-field/parts/TanstackFormLabel.js +26 -0
  125. package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.d.ts +26 -0
  126. package/dist/esm/components/form-field/parts/TanstackRawFormContextualLink.js +45 -0
  127. package/dist/esm/components/icon-button/CircularIconButton.d.ts +9 -9
  128. package/dist/esm/components/icon-button/CircularIconButton.js +53 -36
  129. package/dist/esm/components/icon-button/IconButton.variants.d.ts +1 -0
  130. package/dist/esm/components/icon-button/IconButton.variants.js +44 -28
  131. package/dist/esm/components/inline-field-group/InlineFieldGroup.context.d.ts +23 -0
  132. package/dist/esm/components/inline-field-group/InlineFieldGroup.context.js +6 -0
  133. package/dist/esm/components/inline-field-group/InlineFieldGroup.d.ts +119 -0
  134. package/dist/esm/components/inline-field-group/InlineFieldGroup.js +185 -0
  135. package/dist/esm/components/inline-field-group/hooks/useInlineFieldGroupMode.d.ts +46 -0
  136. package/dist/esm/components/inline-field-group/hooks/useInlineFieldGroupMode.js +27 -0
  137. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupEditView.d.ts +64 -0
  138. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupEditView.js +56 -0
  139. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupHeader.d.ts +95 -0
  140. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupHeader.js +106 -0
  141. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupReadView.d.ts +56 -0
  142. package/dist/esm/components/inline-field-group/parts/InlineFieldGroupReadView.js +28 -0
  143. package/dist/esm/components/input/Input.js +36 -35
  144. package/dist/esm/components/input/TanstackInput.d.ts +22 -0
  145. package/dist/esm/components/input/TanstackInput.js +38 -0
  146. package/dist/esm/components/label/Label.js +12 -12
  147. package/dist/esm/components/link/RawLink.js +38 -31
  148. package/dist/esm/components/list-view/ListView.d.ts +56 -0
  149. package/dist/esm/components/list-view/ListView.fixtures.d.ts +20 -0
  150. package/dist/esm/components/list-view/ListView.js +44 -0
  151. package/dist/esm/components/list-view/parts/ListViewItemLabel.d.ts +34 -0
  152. package/dist/esm/components/list-view/parts/ListViewItemLabel.js +22 -0
  153. package/dist/esm/components/list-view/parts/ListViewItemText.d.ts +33 -0
  154. package/dist/esm/components/list-view/parts/ListViewItemText.js +22 -0
  155. package/dist/esm/components/list-view/parts/ListViewSection.d.ts +14 -0
  156. package/dist/esm/components/list-view/parts/ListViewSection.js +21 -0
  157. package/dist/esm/components/list-view/parts/RawListViewItem.d.ts +102 -0
  158. package/dist/esm/components/list-view/parts/RawListViewItem.js +80 -0
  159. package/dist/esm/components/multi-select/MultiSelect.d.ts +5 -7
  160. package/dist/esm/components/multi-select/MultiSelect.js +199 -176
  161. package/dist/esm/components/multi-select/MultiselectTypes.d.ts +114 -0
  162. package/dist/esm/components/multi-select/TanstackMultiSelect.d.ts +7 -0
  163. package/dist/esm/components/multi-select/TanstackMultiSelect.js +41 -0
  164. package/dist/esm/components/multi-select/parts/MultiSelectButton.d.ts +2 -0
  165. package/dist/esm/components/multi-select/parts/MultiSelectButton.js +62 -46
  166. package/dist/esm/components/multi-select/parts/MultiSelectPopover.js +15 -15
  167. package/dist/esm/components/multi-select-field/MultiSelectField.d.ts +45 -12
  168. package/dist/esm/components/multi-select-field/MultiSelectField.js +56 -66
  169. package/dist/esm/components/multi-select-field/TanstackMultiSelectField.d.ts +92 -0
  170. package/dist/esm/components/multi-select-field/TanstackMultiSelectField.js +48 -0
  171. package/dist/esm/components/multi-select-field/test-utils.d.ts +17 -0
  172. package/dist/esm/components/multi-select-field/test-utils.js +45 -0
  173. package/dist/esm/components/nav/parts/RawNavItem.js +6 -6
  174. package/dist/esm/components/navigation-card/NavigationCard.context.d.ts +31 -0
  175. package/dist/esm/components/navigation-card/NavigationCard.context.js +13 -0
  176. package/dist/esm/components/navigation-card/NavigationCard.d.ts +46 -0
  177. package/dist/esm/components/navigation-card/NavigationCard.js +62 -0
  178. package/dist/esm/components/navigation-card/NavigationCard.types.d.ts +37 -0
  179. package/dist/esm/components/navigation-card/NavigationCard.variants.d.ts +1147 -0
  180. package/dist/esm/components/navigation-card/NavigationCard.variants.js +164 -0
  181. package/dist/esm/components/navigation-card/parts/NavigationCardDescription.d.ts +39 -0
  182. package/dist/esm/components/navigation-card/parts/NavigationCardDescription.js +22 -0
  183. package/dist/esm/components/navigation-card/parts/NavigationCardGroup.d.ts +146 -0
  184. package/dist/esm/components/navigation-card/parts/NavigationCardGroup.js +93 -0
  185. package/dist/esm/components/navigation-card/parts/NavigationCardLabel.d.ts +32 -0
  186. package/dist/esm/components/navigation-card/parts/NavigationCardLabel.js +24 -0
  187. package/dist/esm/components/number-field/NumberField.d.ts +2 -0
  188. package/dist/esm/components/number-field/TanstackNumberField.d.ts +74 -0
  189. package/dist/esm/components/number-field/TanstackNumberField.js +44 -0
  190. package/dist/esm/components/number-input/NumberInput.js +31 -29
  191. package/dist/esm/components/number-input/TanstackNumberInput.d.ts +58 -0
  192. package/dist/esm/components/number-input/TanstackNumberInput.js +38 -0
  193. package/dist/esm/components/page/Page.js +12 -11
  194. package/dist/esm/components/pagination/parts/RawPaginationLink.js +22 -22
  195. package/dist/esm/components/pagination/parts/RawPaginationNext.js +13 -13
  196. package/dist/esm/components/pagination/parts/RawPaginationPrevious.js +10 -10
  197. package/dist/esm/components/payfit-brand/PayFitBrand.d.ts +4 -0
  198. package/dist/esm/components/payfit-brand/PayFitBrand.js +30 -22
  199. package/dist/esm/components/payfit-brand/PayFitPreprod.js +25 -25
  200. package/dist/esm/components/phone-number/PhoneNumberInput.d.ts +67 -0
  201. package/dist/esm/components/phone-number/PhoneNumberInput.js +322 -0
  202. package/dist/esm/components/phone-number/TanstackPhoneNumberInput.d.ts +64 -0
  203. package/dist/esm/components/phone-number/TanstackPhoneNumberInput.js +33 -0
  204. package/dist/esm/components/phone-number/parts/PhoneNumberItem.d.ts +42 -0
  205. package/dist/esm/components/phone-number/parts/PhoneNumberItem.js +68 -0
  206. package/dist/esm/components/phone-number/unknownFlag.svg.js +4 -0
  207. package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.d.ts +15 -0
  208. package/dist/esm/components/phone-number-field/TanstackPhoneNumberField.js +32 -0
  209. package/dist/esm/components/pill/Pill.d.ts +2 -2
  210. package/dist/esm/components/pill/Pill.js +8 -8
  211. package/dist/esm/components/popover/Popover.js +6 -6
  212. package/dist/esm/components/promo-dialog/PromoDialog.d.ts +149 -0
  213. package/dist/esm/components/promo-dialog/PromoDialog.js +219 -0
  214. package/dist/esm/components/promo-dialog/parts/PromoDialogActions.d.ts +44 -0
  215. package/dist/esm/components/promo-dialog/parts/PromoDialogActions.js +29 -0
  216. package/dist/esm/components/promo-dialog/parts/PromoDialogContent.d.ts +43 -0
  217. package/dist/esm/components/promo-dialog/parts/PromoDialogContent.js +20 -0
  218. package/dist/esm/components/promo-dialog/parts/PromoDialogHero.d.ts +47 -0
  219. package/dist/esm/components/promo-dialog/parts/PromoDialogHero.js +25 -0
  220. package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.d.ts +53 -0
  221. package/dist/esm/components/promo-dialog/parts/PromoDialogSubtitle.js +21 -0
  222. package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.d.ts +6 -0
  223. package/dist/esm/components/promo-dialog/parts/PromoDialogTitle.js +18 -0
  224. package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.d.ts +13 -0
  225. package/dist/esm/components/radio-button-group/TanstackRadioButtonGroup.js +43 -0
  226. package/dist/esm/components/radio-button-group/parts/RadioButton.d.ts +29 -11
  227. package/dist/esm/components/radio-button-group/parts/RadioButton.js +53 -51
  228. package/dist/esm/components/radio-button-group-field/RadioButtonGroupField.d.ts +2 -0
  229. package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.d.ts +13 -0
  230. package/dist/esm/components/radio-button-group-field/TanstackRadioButtonGroupField.js +38 -0
  231. package/dist/esm/components/search/Search.js +46 -46
  232. package/dist/esm/components/segmented-button-group/parts/ToggleButton.js +5 -5
  233. package/dist/esm/components/select/Select.d.ts +5 -4
  234. package/dist/esm/components/select/Select.js +53 -45
  235. package/dist/esm/components/select/TanstackSelect.d.ts +80 -0
  236. package/dist/esm/components/select/TanstackSelect.js +34 -0
  237. package/dist/esm/components/select/parts/SearchInput.d.ts +4 -1
  238. package/dist/esm/components/select/parts/SearchInput.js +49 -31
  239. package/dist/esm/components/select/parts/SelectButton.js +19 -17
  240. package/dist/esm/components/select-field/SelectField.d.ts +2 -0
  241. package/dist/esm/components/select-field/SelectField.js +8 -9
  242. package/dist/esm/components/select-field/TanstackSelectField.d.ts +124 -0
  243. package/dist/esm/components/select-field/TanstackSelectField.js +44 -0
  244. package/dist/esm/components/select-list/SelectList.d.ts +95 -0
  245. package/dist/esm/components/select-list/SelectList.js +79 -0
  246. package/dist/esm/components/select-list/SelectList.types.d.ts +29 -0
  247. package/dist/esm/components/select-list/constants.d.ts +36 -0
  248. package/dist/esm/components/select-list/constants.js +29 -0
  249. package/dist/esm/components/select-list/helpers.d.ts +42 -0
  250. package/dist/esm/components/select-list/helpers.js +48 -0
  251. package/dist/esm/components/select-list/hooks/useControlledSelection.d.ts +23 -0
  252. package/dist/esm/components/select-list/hooks/useControlledSelection.js +16 -0
  253. package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.d.ts +23 -0
  254. package/dist/esm/components/select-list/hooks/useSelectedFirstSorting.js +31 -0
  255. package/dist/esm/components/select-list/parts/SelectListEmptyState.d.ts +8 -0
  256. package/dist/esm/components/select-list/parts/SelectListEmptyState.js +25 -0
  257. package/dist/esm/components/select-list/parts/SelectListOptGroup.d.ts +118 -0
  258. package/dist/esm/components/select-list/parts/SelectListOptGroup.js +28 -0
  259. package/dist/esm/components/select-list/parts/SelectListOption.d.ts +24 -0
  260. package/dist/esm/components/select-list/parts/SelectListOption.js +72 -0
  261. package/dist/esm/components/select-list/parts/SelectListSearchInput.d.ts +2 -0
  262. package/dist/esm/components/select-list/parts/SelectListSearchInput.js +43 -0
  263. package/dist/esm/components/select-list/parts/SelectedItemsSection.d.ts +54 -0
  264. package/dist/esm/components/select-list/parts/SelectedItemsSection.js +35 -0
  265. package/dist/esm/components/select-list/utils/partition.d.ts +13 -0
  266. package/dist/esm/components/select-list/utils/partition.js +9 -0
  267. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.context.d.ts +1 -5
  268. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.d.ts +6 -1
  269. package/dist/esm/components/selectable-button-group/SelectableButtonGroup.js +23 -23
  270. package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.d.ts +27 -0
  271. package/dist/esm/components/selectable-button-group/TanstackSelectableButtonGroup.js +34 -0
  272. package/dist/esm/components/selectable-button-group/parts/SelectableButton.d.ts +1 -16
  273. package/dist/esm/components/selectable-button-group/parts/SelectableButton.js +56 -57
  274. package/dist/esm/components/selectable-button-group-field/SelectableButtonGroupField.d.ts +2 -0
  275. package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.d.ts +81 -0
  276. package/dist/esm/components/selectable-button-group-field/TanstackSelectableButtonGroupField.js +47 -0
  277. package/dist/esm/components/selectable-card/internals/Description.js +1 -1
  278. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/SelectableCardCheckboxGroup.js +1 -1
  279. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.d.ts +26 -0
  280. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/TanstackSelectableCardCheckboxGroup.js +32 -0
  281. package/dist/esm/components/selectable-card/selectable-card-checkbox-group/parts/SelectableCardCheckbox.js +24 -24
  282. package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.d.ts +2 -0
  283. package/dist/esm/components/selectable-card/selectable-card-radio-group/SelectableCardRadioGroup.js +12 -14
  284. package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.d.ts +28 -0
  285. package/dist/esm/components/selectable-card/selectable-card-radio-group/TanstackSelectableCardRadioGroup.js +32 -0
  286. package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/RadioIndicator.js +14 -13
  287. package/dist/esm/components/selectable-card/selectable-card-radio-group/parts/SelectableCardRadio.js +27 -25
  288. package/dist/esm/components/selectable-card/selectableCard.variant.js +5 -5
  289. package/dist/esm/components/selectable-card-checkbox-group-field/SelectableCardCheckboxGroupField.d.ts +2 -0
  290. package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.d.ts +10 -0
  291. package/dist/esm/components/selectable-card-checkbox-group-field/TanstackSelectableCardCheckboxGroupField.js +38 -0
  292. package/dist/esm/components/selectable-card-radio-group-field/SelectableCardRadioGroupField.d.ts +2 -0
  293. package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.d.ts +10 -0
  294. package/dist/esm/components/selectable-card-radio-group-field/TanstackSelectableCardRadioGroupField.js +38 -0
  295. package/dist/esm/components/side-panel/parts/SidePanelFooter.js +19 -10
  296. package/dist/esm/components/table/Table.context.d.ts +5 -0
  297. package/dist/esm/components/table/Table.context.js +14 -13
  298. package/dist/esm/components/table/Table.d.ts +93 -0
  299. package/dist/esm/components/table/Table.js +135 -107
  300. package/dist/esm/components/table/parts/TableBody.js +83 -21
  301. package/dist/esm/components/table/parts/TableEmptyState.js +6 -6
  302. package/dist/esm/components/table/parts/TableHeader.js +1 -1
  303. package/dist/esm/components/table/parts/TablePagination.js +1 -1
  304. package/dist/esm/components/table/parts/TableRow.js +1 -0
  305. package/dist/esm/components/tabs/Tabs.variant.d.ts +0 -6
  306. package/dist/esm/components/tabs/Tabs.variant.js +11 -12
  307. package/dist/esm/components/task-menu/parts/RawSubTask.js +26 -26
  308. package/dist/esm/components/task-menu/parts/RawTask.js +32 -28
  309. package/dist/esm/components/task-menu/parts/TaskGroup.js +30 -26
  310. package/dist/esm/components/task-menu/parts/task.variants.js +4 -2
  311. package/dist/esm/components/text/Text.d.ts +11 -1
  312. package/dist/esm/components/text/Text.js +41 -31
  313. package/dist/esm/components/text/Text.variants.d.ts +12 -0
  314. package/dist/esm/components/text/Text.variants.js +4 -0
  315. package/dist/esm/components/text-area/TanstackTextArea.d.ts +21 -0
  316. package/dist/esm/components/text-area/TanstackTextArea.js +35 -0
  317. package/dist/esm/components/text-area/TextArea.js +31 -29
  318. package/dist/esm/components/text-field/TanstackTextField.d.ts +79 -0
  319. package/dist/esm/components/text-field/TanstackTextField.js +60 -0
  320. package/dist/esm/components/text-field/TextField.d.ts +2 -0
  321. package/dist/esm/components/toast/UnityToast.js +5 -5
  322. package/dist/esm/components/toast/test-utils.d.ts +36 -0
  323. package/dist/esm/components/toast/test-utils.js +118 -0
  324. package/dist/esm/components/toggle-switch/TanstackToggleSwitch.d.ts +46 -0
  325. package/dist/esm/components/toggle-switch/TanstackToggleSwitch.js +25 -0
  326. package/dist/esm/components/toggle-switch/ToggleSwitch.d.ts +21 -9
  327. package/dist/esm/components/toggle-switch/ToggleSwitch.js +71 -32
  328. package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.d.ts +11 -0
  329. package/dist/esm/components/toggle-switch-field/TanstackToggleSwitchField.js +34 -0
  330. package/dist/esm/components/toggle-switch-field/ToggleSwitchField.d.ts +2 -0
  331. package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.d.ts +57 -0
  332. package/dist/esm/components/toggle-switch-group/TanstackToggleSwitchGroup.js +23 -0
  333. package/dist/esm/components/toggle-switch-group/ToggleSwitchGroup.js +1 -1
  334. package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.d.ts +19 -0
  335. package/dist/esm/components/toggle-switch-group-field/TanstackToggleSwitchGroupField.js +50 -0
  336. package/dist/esm/components/toggle-switch-group-field/ToggleSwitchGroupField.d.ts +2 -0
  337. package/dist/esm/docs/{table → examples/data}/mocks/employee-columns.d.ts +1 -1
  338. package/dist/esm/hooks/tanstack-form-context.d.ts +1 -0
  339. package/dist/esm/hooks/tanstack-form-context.js +8 -0
  340. package/dist/esm/hooks/use-form.d.ts +2 -0
  341. package/dist/esm/hooks/use-has-scroll.d.ts +71 -0
  342. package/dist/esm/hooks/use-has-scroll.js +75 -0
  343. package/dist/esm/hooks/use-tanstack-form.d.ts +393 -0
  344. package/dist/esm/hooks/use-tanstack-form.js +232 -0
  345. package/dist/esm/index.d.ts +45 -20
  346. package/dist/esm/index.js +472 -407
  347. package/dist/esm/index.storybook-testing.d.ts +3 -0
  348. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/FormContextualLink.d.ts +6 -1
  349. package/dist/esm/integrations/tanstack-router/components/form-contextual-link/TanstackFormContextualLink.d.ts +43 -0
  350. package/dist/esm/integrations/tanstack-router/components/list-view/ListView.d.ts +34 -0
  351. package/dist/esm/integrations/tanstack-router/components/list-view/ListView.js +25 -0
  352. package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.d.ts +51 -0
  353. package/dist/esm/integrations/tanstack-router/components/list-view/parts/ListViewItem.js +32 -0
  354. package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.d.ts +73 -0
  355. package/dist/esm/integrations/tanstack-router/components/navigation-card/NavigationCard.js +37 -0
  356. package/dist/esm/integrations/tanstack-router/index.d.ts +3 -0
  357. package/dist/esm/integrations/tanstack-router/utils/decorators.d.ts +1 -1
  358. package/dist/esm/integrations/tanstack-router.js +32 -26
  359. package/dist/esm/mocks/employees.d.ts +1 -5
  360. package/dist/esm/storybook-testing.js +8 -2
  361. package/dist/esm/storybook-utilities/previewTransform.d.ts +1 -0
  362. package/dist/esm/utils/scroll-detection.d.ts +77 -0
  363. package/dist/esm/utils/scroll-detection.js +33 -0
  364. package/dist/esm/utils/spacing.d.ts +63 -0
  365. package/dist/esm/utils/spacing.js +15 -0
  366. package/i18n/en-GB.json +27 -8
  367. package/i18n/es-ES.json +29 -10
  368. package/i18n/fr-FR.json +30 -11
  369. package/package.json +41 -42
  370. package/dist/esm/components/multi-select/Multiselect.types.d.ts +0 -109
  371. package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.d.ts +0 -6
  372. package/dist/esm/integrations/react-router/v5/UnityReactRouterV5Provider.js +0 -28
  373. package/dist/esm/integrations/react-router/v5/index.d.ts +0 -1
  374. package/dist/esm/integrations/react-router/v5.js +0 -4
@@ -0,0 +1,92 @@
1
+ import { ForwardedRef, ReactNode } from 'react';
2
+ import { LabelProps } from '../label/Label.js';
3
+ import { TanstackMultiSelectProps } from '../multi-select/TanstackMultiSelect.js';
4
+ export type TanstackMultiSelectFieldProps<TItems = undefined> = TanstackMultiSelectProps<TItems> & Pick<LabelProps, 'isRequired' | 'requiredVariant'> & {
5
+ /** The label for the multi-select field. */
6
+ label: string;
7
+ /** Helper text to display below the multi-select field. */
8
+ helperText?: ReactNode;
9
+ /** A contextual link to display below the multi-select field. */
10
+ contextualLink?: ReactNode;
11
+ };
12
+ type TanstackMultiSelectFieldComponent = <TItems = undefined>(props: TanstackMultiSelectFieldProps<TItems> & {
13
+ ref?: ForwardedRef<HTMLButtonElement>;
14
+ }) => React.JSX.Element;
15
+ /**
16
+ * The `TanstackMultiSelectField` component renders a full field (label, multi-select, feedback)
17
+ * wired to the TanStack Form context. It manages state and accessibility via the
18
+ * context provided by `useTanstackUnityForm` and `<form.AppField name="…">`.
19
+ @example
20
+ * ```tsx
21
+ * import { TanstackMultiSelectField } from "@/components/multi-select-field/TanstackMultiSelectField"
22
+ * import { useTanstackUnityForm } from "@/hooks/use-tanstack-form"
23
+ * import { MultiSelectOption } from "@/components/multi-select/parts/MultiSelectOption"
24
+ *
25
+ * function Example() {
26
+ * const schema = z.object({
27
+ * fruits: z.set(z.string()).min(1, 'Select at least one fruit'),
28
+ * })
29
+ *
30
+ * const form = useTanstackUnityForm({ validators: {
31
+ * onBlur: schema,
32
+ * } })
33
+ * return (
34
+ * <form>
35
+ * <form.AppField name="fruits">
36
+ * {() => (
37
+ * <TanstackMultiSelectField
38
+ * label="Favorite Fruits"
39
+ * helperText="Choose your favorites"
40
+ * placeholder="Select fruits..."
41
+ * >
42
+ * <MultiSelectOption value="apple">Apple</MultiSelectOption>
43
+ * <MultiSelectOption value="banana">Banana</MultiSelectOption>
44
+ * <MultiSelectOption value="orange">Orange</MultiSelectOption>
45
+ * </TanstackMultiSelectField>
46
+ * )}
47
+ * </form.AppField>
48
+ * </form>
49
+ * )
50
+ * }
51
+ * ```
52
+ * @example
53
+ * ```tsx
54
+ * interface Fruit { id: string; name: string }
55
+ * const fruits = new Set<Fruit>([...])
56
+ *
57
+ * function Example() {
58
+ * const schema = z.object({
59
+ * fruits: z.set(z.string()).min(1, 'Select at least one fruit'),
60
+ * })
61
+ *
62
+ * const form = useTanstackUnityForm({ validators: {
63
+ * onBlur: schema,
64
+ * } })
65
+ * return (
66
+ * <form>
67
+ * <form.AppField name="fruits">
68
+ * {() => (
69
+ * <TanstackMultiSelectField
70
+ * label="Favorite Fruits"
71
+ * items={fruits}
72
+ * getItemValue={fruit => fruit.id}
73
+ * renderValue={items => Array.from(items).map(i => i.name).join(', ')}
74
+ * >
75
+ * {fruit => (
76
+ * <MultiSelectOption value={fruit.id}>{fruit.name}</MultiSelectOption>
77
+ * )}
78
+ * </TanstackMultiSelectField>
79
+ * )}
80
+ * </form.AppField>
81
+ * </form>
82
+ * )
83
+ * }
84
+ * ```
85
+ * @remarks Migration from `MultiSelectField` (non‑TanStack):
86
+ * - Do not pass a `name` prop to the field: use `<form.AppField name="…">`.
87
+ * - `value`, `defaultValue`, `onChange`, and `isInvalid` are derived from the TanStack form context.
88
+ */
89
+ export declare const TanstackMultiSelectField: TanstackMultiSelectFieldComponent & {
90
+ displayName: string;
91
+ };
92
+ export {};
@@ -0,0 +1,48 @@
1
+ import { jsxs as s, jsx as o } from "react/jsx-runtime";
2
+ import { forwardRef as p } from "react";
3
+ import { TanstackFormFeedbackText as d } from "../form-field/parts/TanstackFormFeedbackText.js";
4
+ import { TanstackFormHelperText as f } from "../form-field/parts/TanstackFormHelperText.js";
5
+ import { TanstackFormLabel as k } from "../form-field/parts/TanstackFormLabel.js";
6
+ import { TanstackFormField as F } from "../form-field/TanstackFormField.js";
7
+ import { TanstackMultiSelect as T } from "../multi-select/TanstackMultiSelect.js";
8
+ const u = ({
9
+ label: r,
10
+ helperText: t,
11
+ contextualLink: m,
12
+ isRequired: a,
13
+ isDisabled: e,
14
+ isReadOnly: c,
15
+ requiredVariant: i,
16
+ ...l
17
+ }, n) => /* @__PURE__ */ s(F, { children: [
18
+ /* @__PURE__ */ o(
19
+ k,
20
+ {
21
+ requiredVariant: i,
22
+ isRequired: a,
23
+ children: r
24
+ }
25
+ ),
26
+ t && /* @__PURE__ */ o(f, { children: t }),
27
+ /* @__PURE__ */ o(
28
+ T,
29
+ {
30
+ ref: n,
31
+ ...{
32
+ isDisabled: e,
33
+ isReadOnly: c
34
+ },
35
+ "aria-label": r,
36
+ ...l
37
+ }
38
+ ),
39
+ /* @__PURE__ */ o(d, {}),
40
+ m
41
+ ] }), x = p(
42
+ // @ts-expect-error - forwardRef struggles with generic components
43
+ u
44
+ );
45
+ x.displayName = "TanstackMultiSelectField";
46
+ export {
47
+ x as TanstackMultiSelectField
48
+ };
@@ -0,0 +1,17 @@
1
+ import { PlayCtx } from '../../types/testing.js';
2
+ /**
3
+ * Factory to get multi-select testing utils
4
+ * @param context the story context
5
+ */
6
+ export declare const getTestingUtilsMultiSelect: (context: PlayCtx) => {
7
+ selectOption: ({ labelText, optionNames, container, }: {
8
+ labelText: string;
9
+ optionNames: string[];
10
+ container?: HTMLElement;
11
+ }) => Promise<void>;
12
+ assertSelectedOptions: ({ labelText, expectedDisplayValue, container, }: {
13
+ labelText: string;
14
+ expectedDisplayValue: string;
15
+ container?: HTMLElement;
16
+ }) => Promise<void>;
17
+ };
@@ -0,0 +1,45 @@
1
+ import { within as i, expect as l, userEvent as a, screen as r } from "storybook/test";
2
+ const y = (s) => ({ selectOption: async ({
3
+ labelText: t,
4
+ optionNames: e,
5
+ container: o = s.canvasElement
6
+ }) => {
7
+ await s.step(
8
+ `Select options "${e.join(", ")}" in "${t}"`,
9
+ async () => {
10
+ const n = i(o).getByLabelText(t, {
11
+ exact: !1
12
+ });
13
+ if (!n)
14
+ throw new Error(`Multi-select not found for label ${t}`);
15
+ await a.click(n, { delay: 100 });
16
+ for (const c of e)
17
+ await a.click(
18
+ r.getByRole("option", { name: c }),
19
+ {
20
+ delay: 100
21
+ }
22
+ );
23
+ await a.keyboard("{Escape}", { delay: 100 });
24
+ }
25
+ );
26
+ }, assertSelectedOptions: async ({
27
+ labelText: t,
28
+ expectedDisplayValue: e,
29
+ container: o = s.canvasElement
30
+ }) => {
31
+ await s.step(
32
+ `Assert selected options "${e}" in "${t}"`,
33
+ async () => {
34
+ const n = i(o).getByLabelText(t, {
35
+ exact: !1
36
+ });
37
+ if (!n)
38
+ throw new Error(`Multi-select not found for label ${t}`);
39
+ await l(n).toHaveTextContent(e);
40
+ }
41
+ );
42
+ } });
43
+ export {
44
+ y as getTestingUtilsMultiSelect
45
+ };
@@ -7,7 +7,7 @@ const B = i({
7
7
  slots: {
8
8
  base: [
9
9
  "uy:group uy:cursor-pointer uy:grid uy:w-full uy:grid-cols-[auto_1fr_auto] uy:items-center uy:py-100 uy:px-150 uy:gap-100 uy:rounded-75 uy:outline-0 uy:transition-all",
10
- "uy:hover:bg-surface-neutral-hover uy:active:bg-surface-neutral-active uy:data-[pressed]:bg-surface-neutral-pressed",
10
+ "uy:hover:bg-surface-neutral-low-hover uy:active:bg-surface-neutral-low-active uy:data-[pressed]:bg-surface-neutral-low-pressed",
11
11
  "uy:focus:outline-0 uy:data-[focus-visible]:outline-none uy:data-[focus-visible]:ring-2 uy:data-[focus-visible]:ring-utility-focus-ring uy:data-[focus-visible]:ring-offset-2"
12
12
  ],
13
13
  prefix: "uy:p-25 uy:empty:hidden uy:text-content-neutral-low",
@@ -34,7 +34,7 @@ const B = i({
34
34
  variants: {
35
35
  isActive: {
36
36
  true: {
37
- base: "uy:bg-surface-neutral-active",
37
+ base: "uy:bg-surface-neutral-low-active",
38
38
  prefix: "uy:text-content-neutral",
39
39
  label: "uy:typography-body-strong"
40
40
  },
@@ -49,8 +49,8 @@ const B = i({
49
49
  ({
50
50
  children: y,
51
51
  level: r = 0,
52
- prefix: n,
53
- suffix: l,
52
+ prefix: l,
53
+ suffix: n,
54
54
  onPress: c,
55
55
  href: t,
56
56
  isCurrent: f,
@@ -91,9 +91,9 @@ const B = i({
91
91
  isDisabled: s,
92
92
  "data-level": r,
93
93
  children: [
94
- n && /* @__PURE__ */ u("span", { className: g, children: n({ isCurrent: e ?? !1 }) }),
94
+ l && /* @__PURE__ */ u("span", { className: g, children: l({ isCurrent: e ?? !1 }) }),
95
95
  /* @__PURE__ */ u("span", { className: x, children: y }),
96
- l && /* @__PURE__ */ u("span", { className: N, children: l })
96
+ n && /* @__PURE__ */ u("span", { className: N, children: n })
97
97
  ]
98
98
  }
99
99
  ) });
@@ -0,0 +1,31 @@
1
+ export interface NavigationCardContextValue {
2
+ id: string;
3
+ labelId: string;
4
+ descriptionId: string;
5
+ }
6
+ export declare const NavigationCardContext: import('react').Context<NavigationCardContextValue>;
7
+ /**
8
+ * Accesses the NavigationCard context to retrieve accessibility IDs for proper ARIA relationships.
9
+ * Use this hook when building custom subcomponents that need to connect to the parent NavigationCard's accessibility structure.
10
+ * @returns {NavigationCardContextValue} An object containing id, labelId, and descriptionId for ARIA attributes
11
+ * @example
12
+ * ```tsx
13
+ * import { useNavigationCardContext } from '@payfit/unity-components'
14
+ *
15
+ * function CustomNavigationCardContent() {
16
+ * const { labelId, descriptionId } = useNavigationCardContext()
17
+ * return (
18
+ * <div>
19
+ * <span id={labelId}>Custom Label</span>
20
+ * <span id={descriptionId}>Custom Description</span>
21
+ * </div>
22
+ * )
23
+ * }
24
+ * ```
25
+ * @remarks
26
+ * - This hook must be called within a NavigationCard component
27
+ * - The context provides unique IDs for accessibility attributes
28
+ * - Use the provided IDs to maintain proper ARIA labeling relationships
29
+ * @see {@link NavigationCardContextValue} for the returned value structure
30
+ */
31
+ export declare function useNavigationCardContext(): NavigationCardContextValue;
@@ -0,0 +1,13 @@
1
+ import { createContext as t, useContext as e } from "react";
2
+ const o = t({
3
+ id: "",
4
+ labelId: "",
5
+ descriptionId: ""
6
+ });
7
+ function i() {
8
+ return e(o);
9
+ }
10
+ export {
11
+ o as NavigationCardContext,
12
+ i as useNavigationCardContext
13
+ };
@@ -0,0 +1,46 @@
1
+ import { NavigationCardProps } from './NavigationCard.types.js';
2
+ /**
3
+ * The NavigationCard is a clickable card component for navigating between sections or pages in your application.
4
+ * Use navigation cards to create intuitive and appealing navigation patterns that guide users through different areas of your app.
5
+ * The component supports both link and button behaviors, and can be customized with flexible spacing options.
6
+ * @param {NavigationCardProps} props - Props including standard link/button props, padding, gap, prefix, and suffix
7
+ * @example
8
+ * ```tsx
9
+ * import {
10
+ * RawNavigationCard,
11
+ * NavigationCardLabel,
12
+ * NavigationCardDescription
13
+ * } from '@payfit/unity-components'
14
+ * import { Icon } from '@payfit/unity-icons'
15
+ *
16
+ * function Example() {
17
+ * return (
18
+ * <RawNavigationCard
19
+ * href="/dashboard"
20
+ * prefix={<Icon name="dashboard" />}
21
+ * >
22
+ * <NavigationCardLabel>Dashboard</NavigationCardLabel>
23
+ * <NavigationCardDescription>
24
+ * View your company overview
25
+ * </NavigationCardDescription>
26
+ * </RawNavigationCard>
27
+ * )
28
+ * }
29
+ * ```
30
+ * @remarks
31
+ * - Use `asElement="a"` (default) for navigation links or `asElement="button"` for actions
32
+ * - Control spacing with `padding` (all sides), `paddingBlock` (vertical), `paddingInline` (horizontal), or individual sides via object notation
33
+ * - Adjust gap between prefix, body, and suffix with the `gap` prop
34
+ * - Default spacing values: `padding="$300"` (24px) and `gap="$150"` (12px)
35
+ * - Compose with `NavigationCardLabel` and `NavigationCardDescription` for proper accessibility
36
+ * - The component automatically handles focus states, hover effects, and disabled styling
37
+ * - For Tanstack Router integration, use the `NavigationCard` from `@payfit/unity-components/integrations/tanstack-router`
38
+ * @see {@link NavigationCardProps} for all available props
39
+ * @see Source code in {@link https://github.com/PayFit/hr-apps/tree/master/libs/shared/unity/components/src/components/navigation-card GitHub}
40
+ * @see Design specs {@link https://www.figma.com/design/poaMyU7abAgL9VRhx4ygyy/Unity-DS-%3E-Components-Library?node-id=14505-64292 Figma}
41
+ * @see Design docs in {@link https://www.payfit.design/ Payfit.design}
42
+ * @see Developer docs in {@link https://unity-components.payfit.io/?path=/docs/navigation-navigationcard--docs unity-components.payfit.io}
43
+ */
44
+ declare const RawNavigationCard: import('react').ForwardRefExoticComponent<NavigationCardProps & import('react').RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
45
+ export { RawNavigationCard };
46
+ export type { NavigationCardProps } from './NavigationCard.types.js';
@@ -0,0 +1,62 @@
1
+ import { jsx as r, jsxs as h } from "react/jsx-runtime";
2
+ import { forwardRef as C, useMemo as P } from "react";
3
+ import { useId as $ } from "react-aria";
4
+ import { Link as w, Button as I } from "react-aria-components";
5
+ import { processPaddingProp as R } from "../../utils/spacing.js";
6
+ import { NavigationCardContext as j } from "./NavigationCard.context.js";
7
+ import { navigationCard as L } from "./NavigationCard.variants.js";
8
+ const k = C(
9
+ ({
10
+ children: m,
11
+ asElement: f = "a",
12
+ prefix: t,
13
+ suffix: d,
14
+ padding: o = "$300",
15
+ paddingBlock: n,
16
+ paddingInline: s,
17
+ gap: c = "$150",
18
+ ...i
19
+ }, b) => {
20
+ const e = $(), l = f === "a" || "href" in i, v = i, a = {
21
+ id: `unity-navigation-card-${e}`,
22
+ labelId: i["aria-labelledby"] ?? `unity-navigation-card-label-${e}`,
23
+ descriptionId: i["aria-describedby"] ?? `unity-navigation-card-description-${e}`
24
+ }, {
25
+ base: y,
26
+ prefix: u,
27
+ body: p,
28
+ suffix: x
29
+ } = P(() => {
30
+ const g = R(
31
+ o,
32
+ n,
33
+ s
34
+ );
35
+ return L({
36
+ ...g,
37
+ gap: c
38
+ });
39
+ }, [o, n, s, c]), N = l ? w : I;
40
+ return /* @__PURE__ */ r(j.Provider, { value: a, children: /* @__PURE__ */ h(
41
+ N,
42
+ {
43
+ "data-dd-privacy": "allow",
44
+ id: a.id,
45
+ "aria-labelledby": a.labelId,
46
+ "aria-describedby": a.descriptionId,
47
+ ...v,
48
+ ref: b,
49
+ className: y(),
50
+ children: [
51
+ t && /* @__PURE__ */ r("div", { className: u(), children: t }),
52
+ /* @__PURE__ */ r("div", { className: p(), children: m }),
53
+ d && /* @__PURE__ */ r("div", { className: x(), children: d })
54
+ ]
55
+ }
56
+ ) });
57
+ }
58
+ );
59
+ k.displayName = "RawNavigationCard";
60
+ export {
61
+ k as RawNavigationCard
62
+ };
@@ -0,0 +1,37 @@
1
+ import { PropsWithChildren } from 'react';
2
+ import { ButtonProps as AriaButtonProps, LinkProps as AriaLinkProps } from 'react-aria-components';
3
+ import { PaddingObject, SpacingToken } from '../../utils/spacing.js';
4
+ type NavigationCardAsLinkProps = Omit<AriaLinkProps, 'style' | 'className'>;
5
+ type NavigationCardAsButtonProps = Omit<AriaButtonProps, 'style' | 'className'>;
6
+ /**
7
+ * Props for the NavigationCard component.
8
+ */
9
+ export type NavigationCardProps = PropsWithChildren<(NavigationCardAsLinkProps | NavigationCardAsButtonProps) & {
10
+ /** Render as either a link or button element */
11
+ asElement?: 'a' | 'button';
12
+ /** Content to display before the main body (e.g., icon, avatar) */
13
+ prefix?: React.ReactNode;
14
+ /** Content to display after the main body (e.g., badge, chevron) */
15
+ suffix?: React.ReactNode;
16
+ /**
17
+ * Padding for all directions, or an object specifying individual sides.
18
+ * @default '$300'
19
+ */
20
+ padding?: SpacingToken | PaddingObject;
21
+ /**
22
+ * Padding for block direction (top & bottom).
23
+ * Overrides `padding` for vertical spacing.
24
+ */
25
+ paddingBlock?: SpacingToken;
26
+ /**
27
+ * Padding for inline direction (left & right).
28
+ * Overrides `padding` for horizontal spacing.
29
+ */
30
+ paddingInline?: SpacingToken;
31
+ /**
32
+ * Gap between prefix, body, and suffix elements.
33
+ * @default '$150'
34
+ */
35
+ gap?: SpacingToken;
36
+ }>;
37
+ export {};