@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
@@ -10,38 +10,38 @@ const I = (e, n) => e ? /* @__PURE__ */ m(B, { size: "small", color: "inherit",
10
10
  variant: e,
11
11
  children: n,
12
12
  color: o = "primary",
13
- size: u = "default",
14
- isDisabled: a = !1,
13
+ size: c = "default",
14
+ isDisabled: s = !1,
15
15
  isLoading: t = !1,
16
- prefixIcon: c = void 0,
16
+ prefixIcon: u = void 0,
17
17
  ...i
18
18
  }, p) => {
19
19
  const f = x(() => {
20
- const s = { size: u, isDisabled: a, isLoading: t };
20
+ const a = { size: c, isDisabled: s, isLoading: t };
21
21
  switch (e) {
22
22
  case "primary": {
23
23
  const r = {
24
- ...s,
24
+ ...a,
25
25
  color: o
26
26
  };
27
27
  return l(j(r));
28
28
  }
29
29
  case "secondary": {
30
30
  const r = {
31
- ...s,
31
+ ...a,
32
32
  color: o
33
33
  };
34
34
  return l(N(r));
35
35
  }
36
36
  case "ghost": {
37
37
  const r = {
38
- ...s,
38
+ ...a,
39
39
  color: o
40
40
  };
41
41
  return l(w(r));
42
42
  }
43
43
  }
44
- }, [e, o, u, a, t]), d = {
44
+ }, [e, o, c, s, t]), d = {
45
45
  ...t && { "data-loading": t }
46
46
  };
47
47
  return /* @__PURE__ */ m(
@@ -50,11 +50,12 @@ const I = (e, n) => e ? /* @__PURE__ */ m(B, { size: "small", color: "inherit",
50
50
  "data-dd-privacy": "allow",
51
51
  ...i,
52
52
  ref: p,
53
- isDisabled: a || t,
53
+ isDisabled: s || t,
54
+ isPending: t,
54
55
  className: f,
55
56
  ...d,
56
- children: /* @__PURE__ */ y("span", { className: "uy:inline-flex uy:gap-50 uy:leading-[1.75] uy:items-center", children: [
57
- I(t, c),
57
+ children: /* @__PURE__ */ y("span", { className: "uy:inline-flex uy:gap-50 uy:items-center", children: [
58
+ I(t, u),
58
59
  n
59
60
  ] })
60
61
  }
@@ -178,6 +178,7 @@ export declare const buttonGhost: import('tailwind-variants').TVReturnType<{
178
178
  warning: string[];
179
179
  danger: string[];
180
180
  neutral: string[];
181
+ 'neutral.lowest': string[];
181
182
  inverted: string[];
182
183
  };
183
184
  isDisabled: {
@@ -2,8 +2,8 @@ import { uyTv as e } from "@payfit/unity-themes";
2
2
  const t = e({
3
3
  base: [
4
4
  "uy:group",
5
- "uy:cursor-pointer uy:rounded-75 uy:px-200 uy:h-500 uy:inline-flex uy:items-center uy:justify-center uy:whitespace-nowrap uy:typography-action uy:transition-colors",
6
- "uy:focus-visible:outline-2 uy:focus-visible:outline-solid uy:focus-visible:outline-offset-2 uy:focus-visible:outline-utility-focus-ring"
5
+ "uy:cursor-pointer uy:rounded-100 uy:sm:rounded-75 uy:px-200 uy:py-125 uy:sm:py-100 uy:sm:h-500 uy:inline-flex uy:items-center uy:justify-center uy:whitespace-nowrap uy:typography-action uy:transition-colors",
6
+ "uy:data-[focus-visible]:outline-2 uy:data-[focus-visible]:outline-solid uy:data-[focus-visible]:outline-offset-2 uy:data-[focus-visible]:outline-utility-focus-ring"
7
7
  ],
8
8
  variants: {
9
9
  isDisabled: {
@@ -30,28 +30,28 @@ const t = e({
30
30
  color: {
31
31
  primary: [
32
32
  "uy:bg-surface-primary-enabled uy:text-content-inverted-enabled",
33
- "uy:hover:bg-surface-primary-hover uy:hover:text-content-inverted-hover",
33
+ 'uy:data-[hovered="true"]:bg-surface-primary-hover uy:data-[hovered="true"]:text-content-inverted-hover',
34
34
  "uy:active:bg-surface-primary-active uy:active:text-content-inverted-hover",
35
35
  "uy:data-[pressed]:bg-surface-primary-pressed uy:data-[pressed]:text-content-inverted-pressed"
36
36
  ],
37
37
  warning: [
38
38
  "uy:bg-surface-warning-enabled uy:text-content-neutral-enabled",
39
- "uy:hover:bg-surface-warning-hover uy:hover:text-content-neutral-hover",
39
+ 'uy:data-[hovered="true"]:bg-surface-warning-hover uy:data-[hovered="true"]:text-content-neutral-hover',
40
40
  "uy:active:bg-surface-warning-active uy:active:text-content-neutral-active",
41
41
  "uy:data-[pressed]:bg-surface-warning-pressed uy:data-[pressed]:text-content-neutral-pressed"
42
42
  ],
43
43
  danger: [
44
44
  "uy:bg-surface-danger-enabled uy:text-content-inverted-enabled",
45
- "uy:hover:bg-surface-danger-hover uy:hover:text-content-inverted-hover",
45
+ 'uy:data-[hovered="true"]:bg-surface-danger-hover uy:data-[hovered="true"]:text-content-inverted-hover',
46
46
  "uy:active:bg-surface-danger-active uy:active:text-content-inverted",
47
47
  "uy:data-[pressed]:bg-surface-danger-pressed uy:data-[pressed]:text-content-inverted"
48
48
  ],
49
49
  inverted: [
50
50
  "uy:bg-surface-neutral-enabled uy:text-content-neutral-enabled",
51
- "uy:hover:bg-surface-neutral-hover uy:hover:text-content-neutral-hover",
51
+ 'uy:data-[hovered="true"]:bg-surface-neutral-hover uy:data-[hovered="true"]:text-content-neutral-hover',
52
52
  "uy:active:bg-surface-neutral-active uy:active:text-content-neutral-active",
53
53
  "uy:data-[pressed]:bg-surface-neutral-active uy:data-[pressed]:text-content-neutral-pressed",
54
- "uy:focus-visible:outline-utility-inverted-focus-ring uy:focus-visible:text-content-neutral-focus uy:focus-visible:bg-surface-neutral-focus"
54
+ "uy:data-[focus-visible]:outline-utility-inverted-focus-ring uy:data-[focus-visible]:text-content-neutral-focus uy:data-[focus-visible]:bg-surface-neutral-focus"
55
55
  ]
56
56
  },
57
57
  isDisabled: {
@@ -70,14 +70,14 @@ const t = e({
70
70
  color: {
71
71
  primary: [
72
72
  "uy:bg-transparent uy:text-content-neutral-enabled uy:border-border-neutral-high-enabled",
73
- "uy:hover:text-content-neutral-hover uy:hover:border-border-neutral-high-hover",
73
+ 'uy:data-[hovered="true"]:text-content-neutral-hover uy:data-[hovered="true"]:border-border-neutral-high-hover',
74
74
  "uy:active:text-content-neutral-active uy:active:border-border-neutral-high-pressed",
75
75
  "uy:data-[pressed]:text-content-neutral-pressed uy:data-[pressed]:border-border-neutral-high-pressed",
76
- "uy:focus-visible:border-border-neutral-high-focus uy:focus-visible:text-content-neutral-focus"
76
+ "uy:data-[focus-visible]:border-border-neutral-high-focus uy:data-[focus-visible]:text-content-neutral-focus"
77
77
  ],
78
78
  inverted: [
79
79
  "uy:bg-transparent uy:text-content-inverted uy:border-border-inverted-enabled",
80
- "uy:focus-visible:outline-utility-inverted-focus-ring"
80
+ "uy:data-[focus-visible]:outline-utility-inverted-focus-ring"
81
81
  ]
82
82
  },
83
83
  isDisabled: {
@@ -97,35 +97,42 @@ const t = e({
97
97
  "uy:enabled:hover:bg-surface-primary-lowest-hover uy:enabled:hover:text-content-primary-hover",
98
98
  "uy:enabled:active:bg-surface-primary-lowest-active uy:enabled:active:text-content-primary-active",
99
99
  "uy:enabled:data-[pressed=true]:bg-surface-primary-lowest-pressed uy:enabled:data-[pressed=true]:text-content-primary-pressed",
100
- "uy:focus-visible:bg-transparent"
100
+ "uy:data-[focus-visible]:bg-transparent"
101
101
  ],
102
102
  warning: [
103
103
  "uy:bg-transparent uy:text-content-warning-enabled",
104
104
  "uy:enabled:hover:bg-surface-warning-lowest-hover uy:enabled:hover:text-content-warning-hover",
105
105
  "uy:enabled:active:bg-surface-warning-lowest-active uy:enabled:active:text-content-warning-active",
106
106
  "uy:enabled:data-[pressed=true]:bg-surface-warning-lowest-pressed uy:enabled:data-[pressed=true]:text-content-warning-pressed",
107
- "uy:focus-visible:bg-transparent"
107
+ "uy:data-[focus-visible]:bg-transparent"
108
108
  ],
109
109
  danger: [
110
110
  "uy:bg-transparent uy:text-content-danger-enabled",
111
111
  "uy:enabled:hover:bg-surface-danger-lowest-hover uy:enabled:hover:text-content-danger-hover",
112
112
  "uy:enabled:active:bg-surface-danger-lowest-active uy:enabled:active:text-content-danger-active",
113
113
  "uy:enabled:data-[pressed=true]:bg-surface-danger-lowest-pressed uy:enabled:data-[pressed=true]:text-content-danger-pressed",
114
- "uy:focus-visible:bg-transparent"
114
+ "uy:data-[focus-visible]:bg-transparent"
115
115
  ],
116
116
  neutral: [
117
117
  "uy:bg-transparent uy:text-content-neutral-enabled",
118
118
  "uy:enabled:hover:bg-surface-neutral-hover uy:enabled:hover:text-content-neutral-hover",
119
119
  "uy:enabled:active:bg-surface-neutral-active uy:enabled:active:text-content-neutral-active",
120
120
  "uy:enabled:data-[pressed=true]:bg-surface-neutral-pressed uy:enabled:data-[pressed=true]:text-content-neutral-pressed",
121
- "uy:focus-visible:bg-transparent"
121
+ "uy:data-[focus-visible]:bg-transparent"
122
+ ],
123
+ "neutral.lowest": [
124
+ "uy:bg-transparent uy:text-content-neutral-enabled",
125
+ "uy:enabled:hover:bg-surface-neutral-lowest-hover uy:enabled:hover:text-content-neutral-hover",
126
+ "uy:enabled:active:bg-surface-neutral-lowest-active uy:enabled:active:text-content-neutral-active",
127
+ "uy:enabled:data-[pressed=true]:bg-surface-neutral-lowest-pressed uy:enabled:data-[pressed=true]:text-content-neutral-pressed",
128
+ "uy:data-[focus-visible]:bg-transparent"
122
129
  ],
123
130
  inverted: [
124
131
  "uy:bg-transparent uy:text-content-inverted-enabled",
125
132
  "uy:enabled:hover:bg-surface-inverted-hover uy:enabled:hover:text-content-inverted-hover",
126
133
  "uy:enabled:active:bg-surface-inverted-active uy:enabled:active:text-content-inverted-active",
127
134
  "uy:enabled:data-[pressed=true]:bg-surface-inverted-pressed uy:enabled:data-[pressed=true]:text-content-inverted-pressed",
128
- "uy:focus-visible:outline-utility-inverted-focus-ring uy:focus-visible:bg-transparent"
135
+ "uy:data-[focus-visible]:outline-utility-inverted-focus-ring uy:data-[focus-visible]:bg-transparent"
129
136
  ]
130
137
  },
131
138
  isDisabled: {
@@ -0,0 +1,5 @@
1
+ export interface CardContextValue {
2
+ titleId: string;
3
+ }
4
+ export declare const CardContext: import('react').Context<CardContextValue | null>;
5
+ export declare function useCardContext(): CardContextValue;
@@ -0,0 +1,14 @@
1
+ import { createContext as o, useContext as n } from "react";
2
+ const e = o(null);
3
+ function c() {
4
+ const t = n(e);
5
+ if (!t)
6
+ throw new Error(
7
+ "Card compound components must be used within a Card component"
8
+ );
9
+ return t;
10
+ }
11
+ export {
12
+ e as CardContext,
13
+ c as useCardContext
14
+ };
@@ -0,0 +1,210 @@
1
+ import { VariantProps } from '@payfit/unity-themes';
2
+ import { ComponentProps, PropsWithChildren } from 'react';
3
+ export declare const card: import('tailwind-variants').TVReturnType<{
4
+ shadow: {
5
+ none: {
6
+ base: string;
7
+ };
8
+ raising: {
9
+ base: string;
10
+ };
11
+ flying: {
12
+ base: string;
13
+ };
14
+ };
15
+ bgColor: {
16
+ 'surface.neutral': {
17
+ base: string;
18
+ };
19
+ 'surface.neutral.low': {
20
+ base: string;
21
+ };
22
+ 'surface.neutral.lowest': {
23
+ base: string;
24
+ };
25
+ 'surface.decorative-teal.lowest': {
26
+ base: string;
27
+ };
28
+ 'surface.decorative-purple.lowest': {
29
+ base: string;
30
+ };
31
+ 'surface.decorative-plum.lowest': {
32
+ base: string;
33
+ };
34
+ 'surface.decorative-orange.lowest': {
35
+ base: string;
36
+ };
37
+ };
38
+ }, {
39
+ base: string[];
40
+ }, undefined, {
41
+ shadow: {
42
+ none: {
43
+ base: string;
44
+ };
45
+ raising: {
46
+ base: string;
47
+ };
48
+ flying: {
49
+ base: string;
50
+ };
51
+ };
52
+ bgColor: {
53
+ 'surface.neutral': {
54
+ base: string;
55
+ };
56
+ 'surface.neutral.low': {
57
+ base: string;
58
+ };
59
+ 'surface.neutral.lowest': {
60
+ base: string;
61
+ };
62
+ 'surface.decorative-teal.lowest': {
63
+ base: string;
64
+ };
65
+ 'surface.decorative-purple.lowest': {
66
+ base: string;
67
+ };
68
+ 'surface.decorative-plum.lowest': {
69
+ base: string;
70
+ };
71
+ 'surface.decorative-orange.lowest': {
72
+ base: string;
73
+ };
74
+ };
75
+ }, {
76
+ base: string[];
77
+ }, import('tailwind-variants').TVReturnType<{
78
+ shadow: {
79
+ none: {
80
+ base: string;
81
+ };
82
+ raising: {
83
+ base: string;
84
+ };
85
+ flying: {
86
+ base: string;
87
+ };
88
+ };
89
+ bgColor: {
90
+ 'surface.neutral': {
91
+ base: string;
92
+ };
93
+ 'surface.neutral.low': {
94
+ base: string;
95
+ };
96
+ 'surface.neutral.lowest': {
97
+ base: string;
98
+ };
99
+ 'surface.decorative-teal.lowest': {
100
+ base: string;
101
+ };
102
+ 'surface.decorative-purple.lowest': {
103
+ base: string;
104
+ };
105
+ 'surface.decorative-plum.lowest': {
106
+ base: string;
107
+ };
108
+ 'surface.decorative-orange.lowest': {
109
+ base: string;
110
+ };
111
+ };
112
+ }, {
113
+ base: string[];
114
+ }, undefined, unknown, unknown, undefined>>;
115
+ export interface CardProps extends PropsWithChildren<VariantProps<typeof card>>, ComponentProps<'section'> {
116
+ /**
117
+ * The background color of the card.
118
+ * @default 'surface.neutral'
119
+ */
120
+ bgColor?: VariantProps<typeof card>['bgColor'];
121
+ /**
122
+ * The shadow of the card.
123
+ * @default 'none'
124
+ */
125
+ shadow?: VariantProps<typeof card>['shadow'];
126
+ /**
127
+ * The aria-label of the card. This is required if the Card does not contain a CardTitle.
128
+ * @example
129
+ * ```tsx
130
+ * <Card aria-label="User statistics">
131
+ * <StatWidget />
132
+ * </Card>
133
+ * ```
134
+ */
135
+ 'aria-label'?: string;
136
+ /**
137
+ * The element type of the card.
138
+ * @default 'section'
139
+ */
140
+ asElement?: 'section' | 'article';
141
+ }
142
+ /**
143
+ * The `Card` component is a container that groups related content and actions. It provides consistent
144
+ * styling, spacing, and visual hierarchy for content sections within your application.
145
+ *
146
+ * Use Card when you need to organize related information, display content in distinct sections,
147
+ * or create a visual grouping for UI elements.
148
+ *
149
+ * The Card uses a compound component pattern with `CardTitle` and optionally `CardContent`:
150
+ * - `CardTitle`: Provides the heading for the card (required for accessibility, or use aria-label)
151
+ * - `CardContent`: Optional wrapper for card body content
152
+ *
153
+ * Cards must be properly labeled for accessibility. You can either:
154
+ * - Include a `CardTitle` component as a child, OR
155
+ * - Provide an `aria-label` prop if the card doesn't need a visible title
156
+ * @param {CardProps} props - The props for the `Card` component
157
+ * @example
158
+ * ```tsx
159
+ * import { Card, CardTitle, CardContent } from '@payfit/unity-components'
160
+ *
161
+ * function Example() {
162
+ * return (
163
+ * <Card>
164
+ * <CardTitle>Employee Information</CardTitle>
165
+ * <CardContent>
166
+ * <p>Content goes here</p>
167
+ * </CardContent>
168
+ * </Card>
169
+ * )
170
+ * }
171
+ * ```
172
+ * @example
173
+ * ```tsx
174
+ * // Card with title after an image
175
+ * import { Card, CardTitle } from '@payfit/unity-components'
176
+ *
177
+ * function Example() {
178
+ * return (
179
+ * <Card>
180
+ * <img src="banner.jpg" alt="Banner" />
181
+ * <CardTitle>Featured Content</CardTitle>
182
+ * <p>Content goes here</p>
183
+ * </Card>
184
+ * )
185
+ * }
186
+ * ```
187
+ * @example
188
+ * ```tsx
189
+ * // Card without visible title (using aria-label)
190
+ * import { Card } from '@payfit/unity-components'
191
+ *
192
+ * function Example() {
193
+ * return (
194
+ * <Card aria-label="User statistics">
195
+ * <StatWidget />
196
+ * </Card>
197
+ * )
198
+ * }
199
+ * ```
200
+ * @see {@link CardProps} for all available props
201
+ * @see {@link CardTitle} for title configuration options
202
+ * @see {@link CardContent} for content wrapper
203
+ * @remarks
204
+ * - Cards require either a CardTitle child or an aria-label for accessibility
205
+ * - Use shadow variants only with the default 'surface.neutral' background
206
+ * - CardTitle can be placed anywhere within the Card children
207
+ * - CardContent is optional but recommended for better structure
208
+ */
209
+ declare const Card: import('react').ForwardRefExoticComponent<Omit<CardProps, "ref"> & import('react').RefAttributes<HTMLElement>>;
210
+ export { Card };
@@ -0,0 +1,93 @@
1
+ import { jsx as y } from "react/jsx-runtime";
2
+ import { forwardRef as h, useRef as C, useState as E, useLayoutEffect as _ } from "react";
3
+ import { uyTv as S } from "@payfit/unity-themes";
4
+ import { useId as x } from "react-aria";
5
+ import { CardContext as N } from "./Card.context.js";
6
+ var T = {};
7
+ const V = S({
8
+ slots: {
9
+ base: ["uy:p-200 uy:sm:p-300 uy:rounded-lg uy:space-y-200"]
10
+ },
11
+ variants: {
12
+ shadow: {
13
+ none: {
14
+ base: "uy:shadow-none"
15
+ },
16
+ raising: {
17
+ base: "uy:shadow-raising"
18
+ },
19
+ flying: {
20
+ base: "uy:shadow-flying"
21
+ }
22
+ },
23
+ bgColor: {
24
+ "surface.neutral": {
25
+ base: "uy:bg-surface-neutral uy:border uy:border-solid uy:border-border-neutral"
26
+ },
27
+ "surface.neutral.low": {
28
+ base: "uy:bg-surface-neutral-low"
29
+ },
30
+ "surface.neutral.lowest": {
31
+ base: "uy:bg-surface-neutral-lowest"
32
+ },
33
+ "surface.decorative-teal.lowest": {
34
+ base: "uy:bg-surface-decorative-teal-lowest"
35
+ },
36
+ "surface.decorative-purple.lowest": {
37
+ base: "uy:bg-surface-decorative-purple-lowest"
38
+ },
39
+ "surface.decorative-plum.lowest": {
40
+ base: "uy:bg-surface-decorative-plum-lowest"
41
+ },
42
+ "surface.decorative-orange.lowest": {
43
+ base: "uy:bg-surface-decorative-orange-lowest"
44
+ }
45
+ }
46
+ },
47
+ defaultVariants: {
48
+ shadow: "none",
49
+ bgColor: "surface.neutral"
50
+ }
51
+ }), I = h(
52
+ ({ shadow: o, bgColor: s, children: l, ...a }, r) => {
53
+ const n = x(), u = C(null), [c, b] = E(!1), v = a.id ?? `unity-card-${n}`, d = `unity-card-${n}__title`, t = a["aria-label"];
54
+ _(() => {
55
+ const e = u.current;
56
+ if (!e) return;
57
+ const f = e.querySelector(
58
+ '[data-unity-slot="card.title"]'
59
+ );
60
+ b(!!f), T.NODE_ENV === "development" && !f && !t && console.warn(
61
+ "Card: A Card must have either a CardTitle child or an aria-label prop for accessibility."
62
+ );
63
+ }, [l, t]);
64
+ const i = (s ?? "surface.neutral") === "surface.neutral" && (o ?? "none") !== "none", w = i ? o : "none", { base: m } = V({
65
+ shadow: w,
66
+ bgColor: s
67
+ }), g = {
68
+ titleId: d
69
+ }, p = a.asElement ?? "section";
70
+ return /* @__PURE__ */ y(N.Provider, { value: g, children: /* @__PURE__ */ y(
71
+ p,
72
+ {
73
+ "data-dd-privacy": "show",
74
+ ...a,
75
+ id: v,
76
+ ref: (e) => {
77
+ u.current = e, typeof r == "function" ? r(e) : r && (r.current = e);
78
+ },
79
+ className: m(),
80
+ "aria-labelledby": c ? d : void 0,
81
+ "aria-label": c ? void 0 : t,
82
+ "data-unity-component": "card",
83
+ "data-unity-variant": i ? "shadow" : void 0,
84
+ children: l
85
+ }
86
+ ) });
87
+ }
88
+ );
89
+ I.displayName = "Card";
90
+ export {
91
+ I as Card,
92
+ V as card
93
+ };
@@ -0,0 +1,37 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export interface CardContentProps extends PropsWithChildren {
3
+ /** Additional CSS classes to apply to the content container */
4
+ className?: string;
5
+ }
6
+ /**
7
+ * The `CardContent` component provides a container for the main content within a Card.
8
+ * It ensures consistent spacing and layout for card content.
9
+ *
10
+ * Use CardContent to wrap the main body of your card content. This is optional but provides
11
+ * better semantic structure and consistent styling.
12
+ * @param {CardContentProps} props - The props for the `CardContent` component
13
+ * @example
14
+ * ```tsx
15
+ * import { Card, CardTitle, CardContent } from '@payfit/unity-components'
16
+ *
17
+ * function Example() {
18
+ * return (
19
+ * <Card>
20
+ * <CardTitle>My Card</CardTitle>
21
+ * <CardContent>
22
+ * <p>This is the main content of the card.</p>
23
+ * </CardContent>
24
+ * </Card>
25
+ * )
26
+ * }
27
+ * ```
28
+ * @see {@link CardContentProps} for all available props
29
+ * @remarks
30
+ * - CardContent is optional but recommended for better structure
31
+ * - You can also place content directly in the Card without CardContent
32
+ */
33
+ declare function CardContent({ children, className }: CardContentProps): import("react/jsx-runtime").JSX.Element;
34
+ declare namespace CardContent {
35
+ var displayName: string;
36
+ }
37
+ export { CardContent };
@@ -0,0 +1,8 @@
1
+ import { jsx as o } from "react/jsx-runtime";
2
+ function r({ children: t, className: n }) {
3
+ return /* @__PURE__ */ o("div", { className: n, "data-unity-slot": "card.content", children: t });
4
+ }
5
+ r.displayName = "CardContent";
6
+ export {
7
+ r as CardContent
8
+ };
@@ -0,0 +1,55 @@
1
+ import { PropsWithChildren } from 'react';
2
+ export interface CardTitleProps extends PropsWithChildren {
3
+ /** The heading level for the title. Defaults to 3 */
4
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
5
+ /** Whether to visually hide the title (still accessible to screen readers) */
6
+ isHidden?: boolean;
7
+ }
8
+ /**
9
+ * The `CardTitle` component renders the title for a Card. It provides semantic heading structure
10
+ * and ensures proper accessibility labeling for the Card container.
11
+ *
12
+ * Use CardTitle when you need to give your Card a visible or screen-reader-accessible title.
13
+ * You can configure the heading level, apply custom styles, or hide it visually while maintaining
14
+ * accessibility.
15
+ * @param {CardTitleProps} props - The props for the `CardTitle` component
16
+ * @example
17
+ * ```tsx
18
+ * import { Card, CardTitle } from '@payfit/unity-components'
19
+ *
20
+ * function Example() {
21
+ * return (
22
+ * <Card>
23
+ * <CardTitle>My Card Title</CardTitle>
24
+ * <p>Card content goes here</p>
25
+ * </Card>
26
+ * )
27
+ * }
28
+ * ```
29
+ * @example
30
+ * ```tsx
31
+ * // Custom heading level
32
+ * <Card>
33
+ * <CardTitle level={2}>Important Section</CardTitle>
34
+ * <p>Content...</p>
35
+ * </Card>
36
+ * ```
37
+ * @example
38
+ * ```tsx
39
+ * // Hidden title for accessibility
40
+ * <Card>
41
+ * <CardTitle isHidden>Screen reader only title</CardTitle>
42
+ * <p>Visual content that describes itself</p>
43
+ * </Card>
44
+ * ```
45
+ * @see {@link CardTitleProps} for all available props
46
+ * @remarks
47
+ * - The title is required for accessibility unless the Card has an `aria-label`
48
+ * - Use `isHidden` to hide the title visually while keeping it accessible
49
+ * - The default heading level is 3, but you can configure it based on your page structure
50
+ */
51
+ declare function CardTitle({ children, level, isHidden }: CardTitleProps): import("react/jsx-runtime").JSX.Element;
52
+ declare namespace CardTitle {
53
+ var displayName: string;
54
+ }
55
+ export { CardTitle };
@@ -0,0 +1,33 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import { uyTv as n } from "@payfit/unity-themes";
3
+ import { Heading as o } from "react-aria-components";
4
+ import { useCardContext as d } from "../Card.context.js";
5
+ const l = n({
6
+ base: ["uy:typography-h3 uy:text-content-neutral uy:leading-none"],
7
+ variants: {
8
+ isHidden: {
9
+ true: "uy:sr-only",
10
+ false: ""
11
+ }
12
+ },
13
+ defaultVariants: {
14
+ isHidden: !1
15
+ }
16
+ });
17
+ function u({ children: t, level: e = 3, isHidden: a = !1 }) {
18
+ const { titleId: r } = d(), i = l({ isHidden: a });
19
+ return /* @__PURE__ */ s(
20
+ o,
21
+ {
22
+ level: e,
23
+ id: r,
24
+ className: i,
25
+ "data-unity-slot": "card.title",
26
+ children: t
27
+ }
28
+ );
29
+ }
30
+ u.displayName = "CardTitle";
31
+ export {
32
+ u as CardTitle
33
+ };