@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
@@ -1,4 +1,4 @@
1
- import { jsxs as n, jsx as e } from "react/jsx-runtime";
1
+ import { jsxs as d, jsx as e } from "react/jsx-runtime";
2
2
  import { forwardRef as v } from "react";
3
3
  import { uyTv as h } from "@payfit/unity-themes";
4
4
  import { Input as I } from "react-aria-components";
@@ -8,12 +8,12 @@ import { Icon as M } from "../icon/Icon.js";
8
8
  import { Spinner as C } from "../spinner/Spinner.js";
9
9
  const O = h({
10
10
  slots: {
11
- base: "uy:flex uy:h-500 uy:border uy:border-solid uy:rounded-75 uy:focus-within:outline-none uy:focus-within:ring-2 uy:focus-within:ring-utility-focus-ring uy:focus-within:ring-offset-2 uy:active:border-border-form-active",
12
- prefix: "uy:flex-grow-0 uy:text-content-neutral-low uy:content-center uy:pt-100 uy:pb-100 uy:pl-150 uy:pr-150 uy:border-r uy:border-solid uy:rounded-l-75 uy:active:border-border-form-active",
13
- inputWrapper: "uy:flex uy:gap-50 uy:flex-grow uy:flex-nowrap uy:pt-100 uy:pb-100 uy:pl-150 uy:pr-150 uy:rounded-75 uy:max-w-full uy:justify-between",
11
+ base: "uy:flex uy:h-5.5 uy:sm:h-500 uy:border uy:border-solid uy:rounded-100 uy:sm:rounded-75 uy:focus-within:outline-none uy:focus-within:ring-2 uy:focus-within:ring-utility-focus-ring uy:focus-within:ring-offset-2 uy:active:border-border-form-active",
12
+ prefix: "uy:flex-grow-0 uy:text-content-neutral-low uy:content-center uy:py-125 uy:sm:py-100 uy:px-150 uy:border-r uy:border-solid uy:rounded-l-100 uy:sm:rounded-l-75 uy:active:border-border-form-active",
13
+ inputWrapper: "uy:flex uy:gap-50 uy:flex-grow uy:flex-nowrap uy:py-125 uy:sm:py-100 uy:px-150 uy:rounded-100 uy:sm:rounded-75 uy:max-w-full uy:justify-between",
14
14
  input: "uy:w-full uy:flex-1 uy:outline-none uy:typography-body uy:placeholder:text-content-neutral-lowest uy:min-w-0 uy:max-w-full",
15
15
  state: "uy:flex uy:gap-50 uy:items-center uy:shrink-0",
16
- suffix: "uy:flex-grow-0 uy:text-content-neutral-low uy:content-center uy:pt-100 uy:pb-100 uy:pl-150 uy:pr-150 uy:border-l uy:border-solid uy:rounded-r-75 uy:active:border-border-form-active"
16
+ suffix: "uy:flex-grow-0 uy:text-content-neutral-low uy:content-center uy:py-125 uy:sm:py-100 uy:px-150 uy:border-l uy:border-solid uy:rounded-r-100 uy:sm:rounded-r-75 uy:active:border-border-form-active"
17
17
  },
18
18
  variants: {
19
19
  isInvalid: {
@@ -62,17 +62,17 @@ const O = h({
62
62
  ]
63
63
  }), S = v(
64
64
  ({
65
- type: s = "text",
66
- prefix: d,
65
+ type: i = "text",
66
+ prefix: s,
67
67
  suffix: l,
68
- isInvalid: i,
69
- isLoading: r,
70
- isDisabled: o,
71
- isReadOnly: u,
72
- onClearButtonPress: f,
73
- ...t
74
- }, y) => {
75
- const a = N(), {
68
+ isInvalid: r,
69
+ isLoading: o,
70
+ isDisabled: u,
71
+ isReadOnly: t,
72
+ onClearButtonPress: y,
73
+ ...a
74
+ }, f) => {
75
+ const n = N(), {
76
76
  base: b,
77
77
  prefix: m,
78
78
  inputWrapper: c,
@@ -80,44 +80,45 @@ const O = h({
80
80
  state: x,
81
81
  suffix: g
82
82
  } = O({
83
- isInvalid: !!i,
84
- isReadOnly: !!u,
85
- isDisabled: !!o
86
- }), w = t.value && !r && !u && !o;
87
- return delete t.isRequired, /* @__PURE__ */ n("div", { className: b(), children: [
88
- d ? /* @__PURE__ */ e("span", { className: m(), children: d }) : null,
89
- /* @__PURE__ */ n("div", { className: c(), children: [
83
+ isInvalid: !!r,
84
+ isReadOnly: !!t,
85
+ isDisabled: !!u
86
+ }), w = a.value && !o && !t && !u;
87
+ return delete a.isRequired, /* @__PURE__ */ d("div", { className: b(), children: [
88
+ s ? /* @__PURE__ */ e("span", { className: m(), children: s }) : null,
89
+ /* @__PURE__ */ d("div", { className: c(), children: [
90
90
  /* @__PURE__ */ e(
91
91
  I,
92
92
  {
93
93
  "data-dd-privacy": "mask",
94
- ...t,
95
- ref: y,
96
- type: s,
94
+ ...a,
95
+ ref: f,
96
+ type: i,
97
97
  className: p(),
98
- "aria-busy": r,
99
- readOnly: u,
100
- disabled: o
98
+ "aria-busy": o,
99
+ "aria-invalid": r,
100
+ readOnly: t,
101
+ disabled: u
101
102
  }
102
103
  ),
103
- /* @__PURE__ */ n("div", { className: x(), children: [
104
- r && /* @__PURE__ */ e(
104
+ /* @__PURE__ */ d("div", { className: x(), children: [
105
+ o && /* @__PURE__ */ e(
105
106
  C,
106
107
  {
107
108
  color: "inherit",
108
109
  size: "small",
109
- label: a.formatMessage({
110
+ label: n.formatMessage({
110
111
  id: "unity:component:common:loading:label",
111
112
  defaultMessage: "Loading..."
112
113
  })
113
114
  }
114
115
  ),
115
- i && /* @__PURE__ */ e(
116
+ r && /* @__PURE__ */ e(
116
117
  M,
117
118
  {
118
119
  src: "WarningCircleOutlined",
119
120
  color: "content.form.invalid",
120
- alt: a.formatMessage({
121
+ alt: n.formatMessage({
121
122
  id: "unity:component:form-field:form-input:error:alt",
122
123
  defaultMessage: "Error"
123
124
  })
@@ -126,14 +127,14 @@ const O = h({
126
127
  w && /* @__PURE__ */ e(
127
128
  W,
128
129
  {
129
- title: a.formatMessage({
130
+ title: n.formatMessage({
130
131
  id: "unity:component:common:clear:title",
131
132
  defaultMessage: "Clear"
132
133
  }),
133
134
  color: "content.neutral.low",
134
135
  icon: "CloseOutlined",
135
136
  onPress: () => {
136
- f?.();
137
+ y?.();
137
138
  }
138
139
  }
139
140
  )
@@ -0,0 +1,22 @@
1
+ import { InputProps } from './Input.js';
2
+ export type TanstackInputProps = Omit<InputProps, 'name' | 'value' | 'defaultValue' | 'isInvalid'>;
3
+ /**
4
+ * `TanstackInput` is a controlled input wired to the TanStack Form field context.
5
+ * It is based on the Unity `Input` component.
6
+ *
7
+ * Example:
8
+ * ```tsx
9
+ * function ExampleField() {
10
+ * const form = useTanstackUnityForm<{ name: string }>({ validators: {} })
11
+ * return (
12
+ * <form>
13
+ * <form.AppField name="name">
14
+ * {() => <TanstackInput placeholder="Your name" />}
15
+ * </form.AppField>
16
+ * </form>
17
+ * )
18
+ * }
19
+ * ```
20
+ */
21
+ declare const TanstackInput: import('react').ForwardRefExoticComponent<TanstackInputProps & import('react').RefAttributes<HTMLInputElement>>;
22
+ export { TanstackInput };
@@ -0,0 +1,38 @@
1
+ import { jsx as c } from "react/jsx-runtime";
2
+ import { forwardRef as p } from "react";
3
+ import { useFieldContext as f } from "../../hooks/tanstack-form-context.js";
4
+ import { useFieldA11yContext as I } from "../form-field/TanstackFormField.context.js";
5
+ import { Input as b } from "./Input.js";
6
+ const h = p(
7
+ ({ onClearButtonPress: r, onBlur: i, onChange: n, isReadOnly: l, isDisabled: d, ...s }, u) => {
8
+ const e = f(), t = I(), m = e.state.meta.isTouched && !e.state.meta.isValid, o = [t.helperTextId, t.feedbackTextId].filter(Boolean).join(" ");
9
+ return /* @__PURE__ */ c(
10
+ b,
11
+ {
12
+ ...s,
13
+ ref: u,
14
+ id: t.inputId,
15
+ value: e.state.value ?? "",
16
+ onChange: (a) => {
17
+ e.handleChange(a.target.value), n?.(a);
18
+ },
19
+ onBlur: (a) => {
20
+ e.handleBlur(), i?.(a);
21
+ },
22
+ onClearButtonPress: () => {
23
+ e.setValue(""), r?.();
24
+ },
25
+ isReadOnly: l,
26
+ isDisabled: d,
27
+ isInvalid: m,
28
+ "aria-labelledby": t.labelId,
29
+ "aria-describedby": o.length > 0 ? o : void 0,
30
+ "aria-details": t.contextualLinkId
31
+ }
32
+ );
33
+ }
34
+ );
35
+ h.displayName = "TanstackInput";
36
+ export {
37
+ h as TanstackInput
38
+ };
@@ -1,14 +1,14 @@
1
1
  import { jsxs as s, jsx as r } from "react/jsx-runtime";
2
2
  import { forwardRef as c } from "react";
3
3
  import { uyTv as b } from "@payfit/unity-themes";
4
- import { mergeProps as f } from "react-aria";
5
- import { useSlottedContext as g, InputContext as x, Label as N } from "react-aria-components";
6
- import { useIntl as h } from "react-intl";
7
- const q = b({
4
+ import { mergeProps as g } from "react-aria";
5
+ import { useSlottedContext as f, InputContext as h, Label as N } from "react-aria-components";
6
+ import { useIntl as q } from "react-intl";
7
+ const x = b({
8
8
  slots: {
9
- base: "uy:typography-body-strong uy:text-content-form-enabled uy:flex uy:gap-25",
10
- asterisk: "uy:text-content-danger",
11
- optionalTag: "uy:typography-body"
9
+ base: "uy:typography-body-strong uy:text-content-form-enabled uy:leading-[1lh]",
10
+ asterisk: "uy:text-content-danger uy:inline-block uy:ml-25",
11
+ optionalTag: "uy:typography-body uy:inline-block uy:ml-25"
12
12
  },
13
13
  variants: {
14
14
  variant: {
@@ -25,21 +25,21 @@ const q = b({
25
25
  }
26
26
  }), v = c(
27
27
  ({ children: n, ...a }, l) => {
28
- const e = h(), i = g(x), p = f(
28
+ const e = q(), i = f(h), d = g(
29
29
  { isRequired: i?.["aria-required"] },
30
30
  a
31
31
  ), {
32
32
  isRequired: t = !1,
33
33
  requiredVariant: o = "required",
34
- ...d
35
- } = p, { base: y, asterisk: m, optionalTag: u } = q();
34
+ ...y
35
+ } = d, { base: p, asterisk: m, optionalTag: u } = x();
36
36
  return /* @__PURE__ */ s(
37
37
  N,
38
38
  {
39
39
  "data-dd-privacy": "allow",
40
- ...d,
40
+ ...y,
41
41
  ref: l,
42
- className: y({ className: a.className }),
42
+ className: p({ className: a.className }),
43
43
  children: [
44
44
  n,
45
45
  o === "required" && t && /* @__PURE__ */ s("span", { className: m(), children: [
@@ -1,11 +1,11 @@
1
- import { jsxs as g, jsx as h } from "react/jsx-runtime";
1
+ import { jsxs as h, jsx as g } from "react/jsx-runtime";
2
2
  import { forwardRef as w } from "react";
3
3
  import { IconSprite as k } from "@payfit/unity-icons";
4
4
  import { uyTv as D } from "@payfit/unity-themes";
5
- import { Link as A } from "react-aria-components";
6
- import { useRouter as E } from "../../providers/router/RouterProvider.js";
7
- import { isExternalUrl as L } from "./utils.js";
8
- const N = D({
5
+ import { Link as z } from "react-aria-components";
6
+ import { useRouter as A } from "../../providers/router/RouterProvider.js";
7
+ import { isExternalUrl as E } from "./utils.js";
8
+ const L = D({
9
9
  slots: {
10
10
  base: [
11
11
  "uy:rounded-50 uy:underline uy:transition-colors uy:underline-offset-3",
@@ -21,7 +21,7 @@ const N = D({
21
21
  icon: "uy:align-top"
22
22
  },
23
23
  standalone: {
24
- base: "uy:flex uy:gap-x-25 uy:items-end",
24
+ base: "uy:typography-action uy:flex uy:gap-x-25 uy:items-end uy:py-50 uy:sm:p-0",
25
25
  icon: "uy:self-center"
26
26
  }
27
27
  },
@@ -68,6 +68,13 @@ const N = D({
68
68
  class: {
69
69
  base: "uy:data-[disabled]:text-content-neutral-lowest-disabled"
70
70
  }
71
+ },
72
+ {
73
+ size: "inherit",
74
+ variant: "inline",
75
+ class: {
76
+ base: "uy:text-(length:inherit)"
77
+ }
71
78
  }
72
79
  ],
73
80
  defaultVariants: {
@@ -76,58 +83,58 @@ const N = D({
76
83
  isDisabled: !1,
77
84
  size: "inherit"
78
85
  }
79
- }), R = w(
86
+ }), N = w(
80
87
  ({
81
88
  href: a,
82
89
  children: s,
83
- variant: l = "inline",
84
- color: u = "primary",
90
+ variant: u = "inline",
91
+ color: l = "primary",
85
92
  isDisabled: o = !1,
86
93
  isExact: c = !1,
87
94
  isCurrent: y = void 0,
88
95
  isExternal: d,
89
- maxCharactersTruncation: r,
90
- size: b = "inherit",
96
+ maxCharactersTruncation: i,
97
+ size: p = "inherit",
91
98
  ...e
92
- }, p) => {
93
- const i = E(), t = d ?? L(a), n = !t && i ? i.isActive(a.toString(), c) : y, { base: m, icon: f } = N({
94
- variant: l,
95
- color: u,
99
+ }, b) => {
100
+ const r = A(), t = d ?? E(a), n = !t && r ? r.isActive(a.toString(), c) : y, { base: m, icon: v } = L({
101
+ variant: u,
102
+ color: l,
96
103
  isDisabled: o,
97
- size: b,
98
- isTruncated: !!r
99
- }), v = !!r, x = i && {
104
+ size: p,
105
+ isTruncated: !!i
106
+ }), x = !!i, f = r && {
100
107
  ...n !== void 0 && {
101
108
  "data-current": n,
102
109
  "aria-current": n ? "page" : void 0
103
110
  }
104
111
  };
105
- return /* @__PURE__ */ g(
106
- A,
112
+ return /* @__PURE__ */ h(
113
+ z,
107
114
  {
108
115
  "data-dd-privacy": "allow",
109
116
  ...e,
110
117
  href: a,
111
- ref: p,
112
- style: v ? {
113
- "--uy-link-max-w": `${r}ch`
118
+ ref: b,
119
+ style: x ? {
120
+ "--uy-link-max-w": `${i}ch`
114
121
  } : {},
115
122
  className: m(),
116
123
  isDisabled: o,
117
124
  target: t ? "_blank" : e.target,
118
125
  rel: t && !e.rel ? "noopener noreferrer" : e.rel,
119
- ...x,
126
+ ...f,
120
127
  children: [
121
128
  s,
122
- t && /* @__PURE__ */ h(
129
+ t && /* @__PURE__ */ g(
123
130
  k,
124
131
  {
125
132
  src: "ArrowSquareOutOutlined",
126
133
  color: "currentColor",
127
- width: "1.45em",
128
- height: "1.45em",
134
+ width: "1.25em",
135
+ height: "1.25em",
129
136
  role: "presentation",
130
- className: f()
137
+ className: v()
131
138
  }
132
139
  )
133
140
  ]
@@ -135,8 +142,8 @@ const N = D({
135
142
  );
136
143
  }
137
144
  );
138
- R.displayName = "Link";
145
+ N.displayName = "Link";
139
146
  export {
140
- R as RawLink,
141
- N as link
147
+ N as RawLink,
148
+ L as link
142
149
  };
@@ -0,0 +1,56 @@
1
+ import { JSX, Ref } from 'react';
2
+ import { ListBoxProps } from 'react-aria-components';
3
+ export type ListViewProps<TItem extends object> = Omit<ListBoxProps<TItem>, 'layout' | 'selectionBehavior' | 'selectionMode' | 'selectedKeys' | 'defaultSelectedKeys' | 'onSelectionChange' | 'shouldSelectOnPressUp' | 'disallowEmptySelection' | 'escapeKeyBehavior' | 'className'> & {
4
+ /**
5
+ * Controls whether to enable virtualization for the list.
6
+ * @default false
7
+ */
8
+ enableVirtualization?: boolean;
9
+ /**
10
+ * Additional CSS classes to apply to the list container. Use this to customize height or other container styles.
11
+ */
12
+ className?: string;
13
+ };
14
+ type ListViewComponentType = {
15
+ <TItem extends object>(props: ListViewProps<TItem> & {
16
+ ref?: Ref<HTMLDivElement>;
17
+ }): JSX.Element;
18
+ displayName: string;
19
+ };
20
+ /**
21
+ * The ListView component displays a vertically scrollable list of interactive items, allowing users to browse and navigate content in an organized manner.
22
+ *
23
+ * ListView supports both static and dynamic content rendering, sectioned layouts, keyboard navigation, disabled items, custom empty states, and virtualization for optimal performance with large datasets. Primarily designed for navigation-first mobile experiences like iOS mail apps and settings lists.
24
+ * @param {ListViewProps} props - The props for the ListView component, including all ListBox props from React Aria Components plus `enableVirtualization`
25
+ * @example
26
+ * ```tsx
27
+ * import { ListView, RawListViewItem, ListViewItemLabel } from '@payfit/unity-components'
28
+ *
29
+ * function Example() {
30
+ * return (
31
+ * <ListView aria-label="My list">
32
+ * <RawListViewItem id="1" href="/items/1">
33
+ * <ListViewItemLabel>Item 1</ListViewItemLabel>
34
+ * </RawListViewItem>
35
+ * <RawListViewItem id="2" href="/items/2">
36
+ * <ListViewItemLabel>Item 2</ListViewItemLabel>
37
+ * </RawListViewItem>
38
+ * </ListView>
39
+ * )
40
+ * }
41
+ * ```
42
+ * @remarks
43
+ * - Items can include an `href` prop to render as semantic links for navigation
44
+ * - Set `enableVirtualization` to `true` when working with large datasets (hundreds or thousands of items)
45
+ * - Combine with `ListViewSection` to organize items into labeled groups
46
+ * - Use `disabledKeys` to disable specific items by their ID
47
+ * - Provide `renderEmptyState` to display custom content when the list is empty
48
+ * - Always provide an accessible label using `aria-label` or `aria-labelledby`
49
+ * @see {@link ListViewProps} for all available props
50
+ * @see Source code in {@link https://github.com/PayFit/hr-apps/tree/master/libs/shared/unity/components/src/components/list-view GitHub}
51
+ * @see Design specs {@link https://www.figma.com/design/poaMyU7abAgL9VRhx4ygyy/Unity-DS-%3E-Components-Library?node-id=15306-115&m=dev Figma}
52
+ * @see Design docs in {@link https://www.payfit.design/ Payfit.design}
53
+ * @see Developer docs in {@link https://unity-components.payfit.io/?path=/docs/component-reference-listview--docs unity-components.payfit.io}
54
+ */
55
+ declare const ListView: ListViewComponentType;
56
+ export { ListView };
@@ -0,0 +1,20 @@
1
+ import { default as React } from 'react';
2
+ export declare const flatItems: {
3
+ id: string;
4
+ label: string;
5
+ content: React.ReactNode;
6
+ }[];
7
+ export declare const groupedItems: {
8
+ id: string;
9
+ label: string;
10
+ children: {
11
+ id: string;
12
+ label: string;
13
+ content: React.ReactNode;
14
+ }[];
15
+ }[];
16
+ export declare const virtualizedItems: {
17
+ id: string;
18
+ label: string;
19
+ content: React.ReactNode;
20
+ }[];
@@ -0,0 +1,44 @@
1
+ import { jsx as t } from "react/jsx-runtime";
2
+ import { forwardRef as l } from "react";
3
+ import { uyTv as c } from "@payfit/unity-themes";
4
+ import { Virtualizer as m, ListLayout as p, ListBox as o } from "react-aria-components";
5
+ const u = c({
6
+ base: [
7
+ "uy:pb-500 uy:data-[empty=true]:pb-0",
8
+ 'uy:[&_[data-unity-slot="ListViewSection"]]:pb-300',
9
+ 'uy:[&_[data-unity-slot="ListViewSection"]:last-child]:pb-0'
10
+ ]
11
+ }), y = {
12
+ layout: p,
13
+ layoutOptions: {
14
+ estimatedRowHeight: 56,
15
+ estimatedHeadingHeight: 24,
16
+ gap: 0,
17
+ padding: 0
18
+ }
19
+ }, w = (r, i) => {
20
+ const { children: a, enableVirtualization: n, className: d, ...e } = r, s = u({ className: d });
21
+ return n ? /* @__PURE__ */ t(m, { ...y, children: /* @__PURE__ */ t(
22
+ o,
23
+ {
24
+ ...e,
25
+ ref: i,
26
+ "data-dd-privacy": "show",
27
+ className: s,
28
+ children: a
29
+ }
30
+ ) }) : /* @__PURE__ */ t(
31
+ o,
32
+ {
33
+ ...e,
34
+ ref: i,
35
+ "data-dd-privacy": "show",
36
+ className: s,
37
+ children: a
38
+ }
39
+ );
40
+ }, V = l(w);
41
+ V.displayName = "ListView";
42
+ export {
43
+ V as ListView
44
+ };
@@ -0,0 +1,34 @@
1
+ import { TextProps } from '../../text/Text.js';
2
+ export type ListViewItemLabelProps = Omit<TextProps, 'variant' | 'color'>;
3
+ /**
4
+ * The ListViewItemLabel component displays the primary text label for a list item, providing accessible identification and consistent typography.
5
+ * ListViewItemLabel applies action-style typography with automatic text truncation after three lines, ensuring labels remain scannable while accommodating varying content lengths. This component is required for proper accessibility within list items, as it helps screen readers identify each item's purpose.
6
+ * @param {ListViewItemLabelProps} props - The props for the ListViewItemLabel component, inheriting all Text props except `variant` and `color` (which are preset)
7
+ * @example
8
+ * ```tsx
9
+ * import { ListView, RawListViewItem, ListViewItemLabel } from '@payfit/unity-components'
10
+ *
11
+ * function Example() {
12
+ * return (
13
+ * <ListView selectionMode="single">
14
+ * <RawListViewItem>
15
+ * <ListViewItemLabel>Employee Name</ListViewItemLabel>
16
+ * </RawListViewItem>
17
+ * </ListView>
18
+ * )
19
+ * }
20
+ * ```
21
+ * @remarks
22
+ * - This component is required for accessibility - always include it in your RawListViewItem or provide `aria-label`/`textValue`
23
+ * - Text automatically truncates after 3 lines using `lineClamp` to maintain consistent item heights
24
+ * - Uses action-style typography (medium weight) to emphasize the label as the primary identifier
25
+ * - Content is automatically masked for privacy in Datadog recordings via `data-dd-privacy="mask"`
26
+ * - Inherits the disabled state styling from its parent RawListViewItem
27
+ * @see {@link ListViewItemLabelProps} for all available props
28
+ * @see Source code in {@link https://github.com/PayFit/hr-apps/tree/master/libs/shared/unity/components/src/components/list-view/parts GitHub}
29
+ * @see Design specs {@link https://www.figma.com/design/poaMyU7abAgL9VRhx4ygyy/Unity-DS-%3E-Components-Library?node-id=15306-942&m=dev Figma}
30
+ * @see Design docs in {@link https://www.payfit.design/ Payfit.design}
31
+ * @see Developer docs in {@link https://unity-components.payfit.io/?path=/docs/component-reference-listview-listviewitemlabel--docs unity-components.payfit.io}
32
+ */
33
+ declare const ListViewItemLabel: import('react').ForwardRefExoticComponent<ListViewItemLabelProps & import('react').RefAttributes<HTMLElement>>;
34
+ export { ListViewItemLabel };
@@ -0,0 +1,22 @@
1
+ import { jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as r } from "react";
3
+ import { Text as o } from "../../text/Text.js";
4
+ const m = r(
5
+ ({ children: t, ...i }, a) => /* @__PURE__ */ e(
6
+ o,
7
+ {
8
+ ...i,
9
+ ref: a,
10
+ color: "inherit",
11
+ variant: "action",
12
+ "data-dd-privacy": "mask",
13
+ "data-unity-slot": "ListViewItemLabel",
14
+ lineClamp: 3,
15
+ children: t
16
+ }
17
+ )
18
+ );
19
+ m.displayName = "ListViewItemLabel";
20
+ export {
21
+ m as ListViewItemLabel
22
+ };
@@ -0,0 +1,33 @@
1
+ import { TextProps } from '../../text/Text.js';
2
+ export type ListViewItemTextProps = Omit<TextProps, 'variant' | 'color'>;
3
+ /**
4
+ * The ListViewItemText component displays the primary text label for a list item, providing accessible identification and consistent typography.
5
+ * @param {ListViewItemTextProps} props - The props for the ListViewItemText component, inheriting all Text props except `variant` and `color` (which are preset)
6
+ * @example
7
+ * ```tsx
8
+ * import { ListView, RawListViewItem, ListViewItemText } from '@payfit/unity-components'
9
+ *
10
+ * function Example() {
11
+ * return (
12
+ * <ListView>
13
+ * <RawListViewItem>
14
+ * <ListViewItemLabel>Employee Name</ListViewItemLabel>
15
+ * <ListViewItemText>Employee Name</ListViewItemText>
16
+ * </RawListViewItem>
17
+ * </ListView>
18
+ * )
19
+ * }
20
+ * ```
21
+ * @remarks
22
+ * - This component is used to display the text content of a list item
23
+ * - It inherits the disabled state styling from its parent RawListViewItem
24
+ * - It uses the bodySmall variant with the neutral.low color
25
+ * - It is automatically masked for privacy in Datadog recordings via the data-dd-privacy="mask" attribute
26
+ * @see {@link ListViewItemTextProps} for all available props
27
+ * @see Source code in {@link https://github.com/PayFit/hr-apps/tree/master/libs/shared/unity/components/src/components/list-view/parts GitHub}
28
+ * @see Design specs {@link https://www.figma.com/design/poaMyU7abAgL9VRhx4ygyy/Unity-DS-%3E-Components-Library?node-id=15306-942&m=dev Figma}
29
+ * @see Design docs in {@link https://www.payfit.design/ Payfit.design}
30
+ * @see Developer docs in {@link https://unity-components.payfit.io/?path=/docs/component-reference-listview-listviewitemtext--docs unity-components.payfit.io}
31
+ */
32
+ declare const ListViewItemText: import('react').ForwardRefExoticComponent<ListViewItemTextProps & import('react').RefAttributes<HTMLElement>>;
33
+ export { ListViewItemText };
@@ -0,0 +1,22 @@
1
+ import { jsx as r } from "react/jsx-runtime";
2
+ import { forwardRef as a } from "react";
3
+ import { Text as i } from "../../text/Text.js";
4
+ const m = a(
5
+ ({ children: t, ...e }, o) => /* @__PURE__ */ r(
6
+ i,
7
+ {
8
+ ...e,
9
+ ref: o,
10
+ color: "content.neutral.low",
11
+ variant: "bodySmall",
12
+ "data-dd-privacy": "mask",
13
+ "data-unity-slot": "ListViewItemText",
14
+ lineClamp: 3,
15
+ children: t
16
+ }
17
+ )
18
+ );
19
+ m.displayName = "ListViewItemText";
20
+ export {
21
+ m as ListViewItemText
22
+ };
@@ -0,0 +1,14 @@
1
+ import { JSX, Ref } from 'react';
2
+ import { ListBoxSectionProps } from 'react-aria-components';
3
+ export declare const listViewSection: import('tailwind-variants').TVReturnType<{} | {} | {}, undefined, "", {} | {}, undefined, import('tailwind-variants').TVReturnType<unknown, undefined, "", unknown, unknown, undefined>>;
4
+ export type ListViewSectionProps<TItem extends object> = ListBoxSectionProps<TItem> & {
5
+ title: string;
6
+ };
7
+ type ListViewSectionComponentType = {
8
+ <TItem extends object>(props: ListViewSectionProps<TItem> & {
9
+ ref?: Ref<HTMLElement>;
10
+ }): JSX.Element;
11
+ displayName: string;
12
+ };
13
+ declare const ListViewSection: ListViewSectionComponentType;
14
+ export { ListViewSection };
@@ -0,0 +1,21 @@
1
+ import { jsxs as s, jsx as e } from "react/jsx-runtime";
2
+ import { forwardRef as c } from "react";
3
+ import { uyTv as m } from "@payfit/unity-themes";
4
+ import { ListBoxSection as a, Header as l, Collection as p } from "react-aria-components";
5
+ const S = m({
6
+ // add the component styles
7
+ base: ""
8
+ }), y = (i, o) => {
9
+ const { children: n, title: r, ...t } = i;
10
+ return /* @__PURE__ */ s(a, { ...t, ref: o, "data-unity-slot": "ListViewSection", children: [
11
+ /* @__PURE__ */ e(l, { className: "uy:typography-action uy:text-content-neutral-low uy:px-200 uy:mb-50", children: r }),
12
+ /* @__PURE__ */ e(p, { children: n, items: t.items })
13
+ ] });
14
+ }, u = c(
15
+ y
16
+ );
17
+ u.displayName = "ListViewSection";
18
+ export {
19
+ u as ListViewSection,
20
+ S as listViewSection
21
+ };