@persona/design-system 0.1.8 → 0.1.9

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 (708) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/README.md +20 -1
  3. package/dist/Attribute.d.mts +1 -1
  4. package/dist/{Badge-DortWowZ.mjs → Badge-DEVbRlJX.mjs} +2 -2
  5. package/dist/{Badge-DortWowZ.mjs.map → Badge-DEVbRlJX.mjs.map} +1 -1
  6. package/dist/{Breadcrumbs-CDZ_Mrcg.mjs → Breadcrumbs-W8hIhdHD.mjs} +3 -3
  7. package/dist/{Breadcrumbs-CDZ_Mrcg.mjs.map → Breadcrumbs-W8hIhdHD.mjs.map} +1 -1
  8. package/dist/{Button-9p469xA1.d.mts → Button-Vd5O4DUp.d.mts} +3 -3
  9. package/dist/Button.d.mts +1 -1
  10. package/dist/CalendarBase.d.mts +1 -1
  11. package/dist/{CardV2-C9z0Hr-c.mjs → CardV2-C0fcOUdp.mjs} +5 -5
  12. package/dist/{CardV2-C9z0Hr-c.mjs.map → CardV2-C0fcOUdp.mjs.map} +1 -1
  13. package/dist/{Checkbox-B0bjZbji.mjs → Checkbox-BcuiFvK7.mjs} +2 -2
  14. package/dist/{Checkbox-B0bjZbji.mjs.map → Checkbox-BcuiFvK7.mjs.map} +1 -1
  15. package/dist/{Combobox-BdqU5WLG.mjs → Combobox-B6JyLog8.mjs} +13 -7
  16. package/dist/Combobox-B6JyLog8.mjs.map +1 -0
  17. package/dist/{Combobox-DBWMHwUt.d.cts → Combobox-BaD0f2Du.d.mts} +3 -3
  18. package/dist/Combobox.d.mts +2 -2
  19. package/dist/{ComboboxBase-BsY7CYoB.d.mts → ComboboxBase-BsPf8BZh.d.mts} +8 -3
  20. package/dist/ComboboxBase.d.mts +1 -1
  21. package/dist/{ComboboxMultiSelect-dNuETspL.d.mts → ComboboxMultiSelect-DhLzCWbz.d.mts} +2 -2
  22. package/dist/ComboboxMultiSelect.d.mts +1 -1
  23. package/dist/{ComboboxSingleSelect-C8KvIJ43.d.mts → ComboboxSingleSelect-P0r5rs_u.d.mts} +3 -3
  24. package/dist/ComboboxSingleSelect.d.mts +1 -1
  25. package/dist/DataTable.d.mts +9 -0
  26. package/dist/{DatePicker-DY1YA_Fu.mjs → DatePicker-Bw79p-Lx.mjs} +5 -5
  27. package/dist/{DatePicker-DY1YA_Fu.mjs.map → DatePicker-Bw79p-Lx.mjs.map} +1 -1
  28. package/dist/{DropdownButton-DKLjJylQ.mjs → DropdownButton-BI3IFJun.mjs} +3 -3
  29. package/dist/{DropdownButton-DKLjJylQ.mjs.map → DropdownButton-BI3IFJun.mjs.map} +1 -1
  30. package/dist/DropdownButton.d.mts +2 -2
  31. package/dist/{DropdownMenu-DGYexb7s.mjs → DropdownMenu-D25WBCah.mjs} +2 -2
  32. package/dist/{DropdownMenu-DGYexb7s.mjs.map → DropdownMenu-D25WBCah.mjs.map} +1 -1
  33. package/dist/{DropdownMenu-CVPanvKA.d.mts → DropdownMenu-D6nfAsi0.d.mts} +2 -2
  34. package/dist/DropdownMenu.d.mts +1 -1
  35. package/dist/{FormControl-B28qa7aQ.mjs → FormControl-CFU9uKF7.mjs} +2 -2
  36. package/dist/{FormControl-B28qa7aQ.mjs.map → FormControl-CFU9uKF7.mjs.map} +1 -1
  37. package/dist/{FormField-PeYYRO4s.mjs → FormField-DdmgSWq4.mjs} +14 -11
  38. package/dist/{FormField-PeYYRO4s.mjs.map → FormField-DdmgSWq4.mjs.map} +1 -1
  39. package/dist/{HoverCopyableField-ClXBg_ld.mjs → HoverCopyableField-7TWP0Y1Z.mjs} +3 -3
  40. package/dist/{HoverCopyableField-ClXBg_ld.mjs.map → HoverCopyableField-7TWP0Y1Z.mjs.map} +1 -1
  41. package/dist/{IconButton-ZcyTFjPn.d.cts → IconButton-BHCmHIx5.d.mts} +2 -2
  42. package/dist/{IconButton-CIWiEsS-.mjs → IconButton-P8w0JDI5.mjs} +2 -2
  43. package/dist/{IconButton-CIWiEsS-.mjs.map → IconButton-P8w0JDI5.mjs.map} +1 -1
  44. package/dist/IconButton.d.mts +1 -1
  45. package/dist/InlineCombobox.d.mts +1 -1
  46. package/dist/InlineInput.d.mts +1 -1
  47. package/dist/{Input-BPClVzwD.d.mts → Input-DMgVyZyq.d.mts} +3 -3
  48. package/dist/{Input-BFI_e7aU.mjs → Input-QC6xla6I.mjs} +2 -2
  49. package/dist/Input-QC6xla6I.mjs.map +1 -0
  50. package/dist/Input.d.mts +1 -1
  51. package/dist/{ListBox-_fcSPynx.d.mts → ListBox-D09N1a5D.d.mts} +8 -3
  52. package/dist/{ListBox-BwID8jpk.mjs → ListBox-TrL3Tb7X.mjs} +13 -7
  53. package/dist/ListBox-TrL3Tb7X.mjs.map +1 -0
  54. package/dist/ListBox.d.mts +1 -1
  55. package/dist/ListBoxField.d.mts +2 -2
  56. package/dist/{LogicRow-BtCKGX_j.d.mts → LogicRow-BcuiSTHN.d.mts} +2 -2
  57. package/dist/LogicRow.d.mts +1 -1
  58. package/dist/MaskedInput.d.mts +1 -1
  59. package/dist/{Menu-CUp_9HgC.d.mts → Menu-Bv8dsrz6.d.mts} +2 -2
  60. package/dist/{Menu-CPYXo61N.mjs → Menu-DmeMgN-i.mjs} +2 -2
  61. package/dist/{Menu-CPYXo61N.mjs.map → Menu-DmeMgN-i.mjs.map} +1 -1
  62. package/dist/Menu.d.mts +1 -1
  63. package/dist/Modal.d.mts +1 -1
  64. package/dist/{PageHeader-D-6W61E_.mjs → PageHeader-jSLud2JI.mjs} +5 -4
  65. package/dist/PageHeader-jSLud2JI.mjs.map +1 -0
  66. package/dist/PageHeader.d.mts +7 -2
  67. package/dist/{Pagination-ztqhywAP.mjs → Pagination-BeYukNCj.mjs} +4 -4
  68. package/dist/{Pagination-ztqhywAP.mjs.map → Pagination-BeYukNCj.mjs.map} +1 -1
  69. package/dist/{Pii-DrrtEz7U.mjs → Pii-QsTrz8wn.mjs} +2 -2
  70. package/dist/{Pii-DrrtEz7U.mjs.map → Pii-QsTrz8wn.mjs.map} +1 -1
  71. package/dist/{Select-2KbtKawr.d.mts → Select-Bk27TgN8.d.mts} +2 -2
  72. package/dist/{Select-cPEORy70.mjs → Select-C1ZoRk39.mjs} +4 -4
  73. package/dist/{Select-cPEORy70.mjs.map → Select-C1ZoRk39.mjs.map} +1 -1
  74. package/dist/Select.d.mts +1 -1
  75. package/dist/{Sticker-DbqKLe33.mjs → Sticker-CyGb9dEu.mjs} +2 -2
  76. package/dist/{Sticker-DbqKLe33.mjs.map → Sticker-CyGb9dEu.mjs.map} +1 -1
  77. package/dist/Tab.d.mts +13 -4
  78. package/dist/{TabBar-zSA8kyE6.mjs → TabBar-Bn8PHHBZ.mjs} +15 -9
  79. package/dist/TabBar-Bn8PHHBZ.mjs.map +1 -0
  80. package/dist/TabBarIconButton.d.mts +1 -1
  81. package/dist/{Table-D8IcpACv.mjs → Table-BfontAeY.mjs} +7 -5
  82. package/dist/{Table-D8IcpACv.mjs.map → Table-BfontAeY.mjs.map} +1 -1
  83. package/dist/{TableBox-luasMC73.mjs → TableBox-bmrKh_ax.mjs} +86 -35
  84. package/dist/TableBox-bmrKh_ax.mjs.map +1 -0
  85. package/dist/TableBox.d.mts +1 -1
  86. package/dist/{TableBoxCell-By1xE6_Q.d.mts → TableBoxCell-CvjLYhTV.d.mts} +21 -7
  87. package/dist/TableBoxCell.d.mts +1 -1
  88. package/dist/TableBoxField.d.mts +7 -4
  89. package/dist/{TableBoxRow-CsRPRPQ-.d.mts → TableBoxRow-BzXECgid.d.mts} +2 -2
  90. package/dist/TableBoxRow.d.mts +1 -1
  91. package/dist/{TableBoxRowActions-DMYOI8Do.d.mts → TableBoxRowActions-BAiFXiCh.d.mts} +2 -2
  92. package/dist/TableBoxRowActions.d.mts +1 -1
  93. package/dist/{TableControls-DHMs7o58.mjs → TableControls-DVTtNAPo.mjs} +11 -11
  94. package/dist/{TableControls-DHMs7o58.mjs.map → TableControls-DVTtNAPo.mjs.map} +1 -1
  95. package/dist/{TableLayout-Ct0kepcA.d.cts → TableLayout-BZeP8qfg.d.mts} +7 -1
  96. package/dist/TableLayout.d.mts +1 -1
  97. package/dist/{Tooltip-C6AR1xT-.mjs → Tooltip-BvDbmXak.mjs} +2 -2
  98. package/dist/{Tooltip-C6AR1xT-.mjs.map → Tooltip-BvDbmXak.mjs.map} +1 -1
  99. package/dist/components/Attribute/index.mjs +3 -3
  100. package/dist/components/Badge/index.mjs +1 -1
  101. package/dist/components/Banner/index.mjs +1 -1
  102. package/dist/components/Breadcrumbs/index.mjs +1 -1
  103. package/dist/components/Button/index.d.mts +2 -2
  104. package/dist/components/Button/index.mjs +1 -1
  105. package/dist/components/ButtonGroup/index.mjs +1 -1
  106. package/dist/components/CardV2/index.mjs +1 -1
  107. package/dist/components/Checkbox/index.mjs +1 -1
  108. package/dist/components/Combobox/index.d.mts +2 -2
  109. package/dist/components/Combobox/index.mjs +1 -1
  110. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  111. package/dist/components/DataTable/index.mjs +14 -12
  112. package/dist/components/DataTable/index.mjs.map +1 -1
  113. package/dist/components/DataTable/types.d.mts +1 -1
  114. package/dist/components/DatePicker/index.mjs +1 -1
  115. package/dist/components/DropdownButton/index.mjs +1 -1
  116. package/dist/components/DropdownMenu/index.d.mts +1 -1
  117. package/dist/components/DropdownMenu/index.mjs +1 -1
  118. package/dist/components/FormControl/index.mjs +1 -1
  119. package/dist/components/FormField/index.d.mts +2 -2
  120. package/dist/components/FormField/index.mjs +2 -2
  121. package/dist/components/HoverCopyableField/index.mjs +1 -1
  122. package/dist/components/ImageTile/index.mjs +4 -4
  123. package/dist/components/Input/index.d.mts +1 -1
  124. package/dist/components/Input/index.mjs +1 -1
  125. package/dist/components/ListBox/index.d.mts +3 -3
  126. package/dist/components/ListBox/index.mjs +1 -1
  127. package/dist/components/MaskedInput/index.mjs +1 -1
  128. package/dist/components/Menu/index.d.mts +1 -1
  129. package/dist/components/Menu/index.mjs +1 -1
  130. package/dist/components/Modal/index.mjs +2 -2
  131. package/dist/components/PageHeader/index.mjs +1 -1
  132. package/dist/components/Pagination/index.mjs +1 -1
  133. package/dist/components/Pii/index.mjs +1 -1
  134. package/dist/components/ProgressBar/index.mjs +1 -1
  135. package/dist/components/Select/index.d.mts +1 -1
  136. package/dist/components/Select/index.mjs +1 -1
  137. package/dist/components/Slider/index.mjs +1 -1
  138. package/dist/components/Sticker/index.mjs +1 -1
  139. package/dist/components/TabBar/index.mjs +1 -1
  140. package/dist/components/Table/index.d.mts +1 -1
  141. package/dist/components/Table/index.mjs +1 -1
  142. package/dist/components/TableBox/index.d.mts +1 -1
  143. package/dist/components/TableBox/index.mjs +1 -1
  144. package/dist/components/TechnicalSticker/index.mjs +1 -1
  145. package/dist/components/Tile/index.mjs +2 -2
  146. package/dist/components/Toast/index.mjs +1 -1
  147. package/dist/components/Tooltip/index.mjs +1 -1
  148. package/dist/fieldPickerOptions.d.mts +1 -1
  149. package/dist/{index-IlwGkCAe2.d.mts → index-BxXTpeUb2.d.mts} +4 -3
  150. package/dist/inputFields.d.mts +4 -4
  151. package/dist/layouts/LayoutLoadingShimmer/index.mjs +3 -3
  152. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  153. package/dist/lib/useScrollOverflow.d.mts +7 -0
  154. package/dist/lib/useScrollOverflow.mjs +22 -1
  155. package/dist/lib/useScrollOverflow.mjs.map +1 -1
  156. package/dist/useComboboxFooterAction.d.mts +1 -1
  157. package/dist/useTruncation.d.mts +1 -1
  158. package/package.json +202 -746
  159. package/skills/ui-authoring/COMPONENTS.md +331 -0
  160. package/skills/ui-authoring/EXAMPLES.md +370 -0
  161. package/skills/ui-authoring/REFERENCE.md +293 -0
  162. package/skills/ui-authoring/SKILL.md +237 -0
  163. package/dist/Action-E90Wvqmc.d.cts +0 -35
  164. package/dist/Action.d.cts +0 -2
  165. package/dist/Attribute.d.cts +0 -107
  166. package/dist/AttributeGrid.d.cts +0 -40
  167. package/dist/Badge-ADPloFsd.cjs +0 -38
  168. package/dist/Badge-ADPloFsd.cjs.map +0 -1
  169. package/dist/Badge.d.cts +0 -25
  170. package/dist/Banner.d.cts +0 -48
  171. package/dist/Breadcrumb-VH-Mwo-M.d.cts +0 -44
  172. package/dist/Breadcrumb.d.cts +0 -2
  173. package/dist/Breadcrumbs-BBREROrw.d.cts +0 -26
  174. package/dist/Breadcrumbs-tR49JqAS.cjs +0 -295
  175. package/dist/Breadcrumbs-tR49JqAS.cjs.map +0 -1
  176. package/dist/Breadcrumbs.d.cts +0 -2
  177. package/dist/Button-C_3p5Xfi.d.cts +0 -101
  178. package/dist/Button.d.cts +0 -2
  179. package/dist/ButtonGroup.d.cts +0 -20
  180. package/dist/Calendar.d.cts +0 -11
  181. package/dist/Card-CJPEmUvg.d.cts +0 -52
  182. package/dist/Card-Csz-PxX0.cjs +0 -248
  183. package/dist/Card-Csz-PxX0.cjs.map +0 -1
  184. package/dist/Card.d.cts +0 -2
  185. package/dist/Card2.d.cts +0 -95
  186. package/dist/CardV2-DJXgFomd.cjs +0 -419
  187. package/dist/CardV2-DJXgFomd.cjs.map +0 -1
  188. package/dist/Checkbox-CmCujC1W.cjs +0 -183
  189. package/dist/Checkbox-CmCujC1W.cjs.map +0 -1
  190. package/dist/Checkbox-Cr8ifm10.d.cts +0 -46
  191. package/dist/Checkbox.d.cts +0 -2
  192. package/dist/CheckboxGroupField.d.cts +0 -24
  193. package/dist/Combobox-BdqU5WLG.mjs.map +0 -1
  194. package/dist/Combobox-C99xluaM.d.mts +0 -11
  195. package/dist/Combobox-COXvmxlM.cjs +0 -1877
  196. package/dist/Combobox-COXvmxlM.cjs.map +0 -1
  197. package/dist/Combobox.d.cts +0 -3
  198. package/dist/ComboboxBase-zZ3tE-dH.d.cts +0 -361
  199. package/dist/ComboboxBase.d.cts +0 -2
  200. package/dist/ComboboxMultiSelect-ioB4Jx7_.d.cts +0 -47
  201. package/dist/ComboboxMultiSelect.d.cts +0 -2
  202. package/dist/ComboboxSingleSelect-Fn80tdhz.d.cts +0 -35
  203. package/dist/ComboboxSingleSelect.d.cts +0 -2
  204. package/dist/CompactBar-BEAK55kh.d.cts +0 -21
  205. package/dist/CompactBar.d.cts +0 -2
  206. package/dist/ConfigFormGroup-m5YdVa9n.cjs +0 -35
  207. package/dist/ConfigFormGroup-m5YdVa9n.cjs.map +0 -1
  208. package/dist/ConfigFormGroup.d.cts +0 -7
  209. package/dist/ControlBar-D8CirAyZ.d.cts +0 -151
  210. package/dist/ControlBar.d.cts +0 -2
  211. package/dist/DataTable.d.cts +0 -372
  212. package/dist/DateField.d.cts +0 -23
  213. package/dist/DatePicker-BlCgFb7g.cjs +0 -948
  214. package/dist/DatePicker-BlCgFb7g.cjs.map +0 -1
  215. package/dist/DatePicker.d.cts +0 -19
  216. package/dist/DateRangePicker.d.cts +0 -52
  217. package/dist/DropdownButton-Dl7IEzAc.cjs +0 -32
  218. package/dist/DropdownButton-Dl7IEzAc.cjs.map +0 -1
  219. package/dist/DropdownButton.d.cts +0 -26
  220. package/dist/DropdownMenu-DnlQqTjs.cjs +0 -74
  221. package/dist/DropdownMenu-DnlQqTjs.cjs.map +0 -1
  222. package/dist/DropdownMenu-FkiManPP.d.cts +0 -75
  223. package/dist/DropdownMenu.d.cts +0 -2
  224. package/dist/ErrorProps-Dxqb4gw_.d.cts +0 -8
  225. package/dist/ErrorProps.d.cts +0 -2
  226. package/dist/FieldRegistry-OX60T3hr.d.cts +0 -122
  227. package/dist/FieldRegistry.d.cts +0 -2
  228. package/dist/FilterBar-YzOh02f9.d.cts +0 -103
  229. package/dist/FilterBar.d.cts +0 -2
  230. package/dist/FloatingActionBar.d.cts +0 -40
  231. package/dist/FormControl-DFp_qcW1.d.cts +0 -60
  232. package/dist/FormControl-MkBXuUF6.cjs +0 -212
  233. package/dist/FormControl-MkBXuUF6.cjs.map +0 -1
  234. package/dist/FormControl.d.cts +0 -2
  235. package/dist/FormField-D3XhxTMg.cjs +0 -550
  236. package/dist/FormField-D3XhxTMg.cjs.map +0 -1
  237. package/dist/FormField-idNLw5PW.d.cts +0 -69
  238. package/dist/FormField.d.cts +0 -2
  239. package/dist/Header-C-WhPOin.d.cts +0 -35
  240. package/dist/Header.d.cts +0 -2
  241. package/dist/HelperTooltip-T-sTGGLD.d.cts +0 -20
  242. package/dist/HelperTooltip.d.cts +0 -2
  243. package/dist/HoverCopyableField-CRkM7o4B.cjs +0 -110
  244. package/dist/HoverCopyableField-CRkM7o4B.cjs.map +0 -1
  245. package/dist/HoverCopyableField.d.cts +0 -16
  246. package/dist/IconButton-BSES_-6g.d.mts +0 -24
  247. package/dist/IconButton-nlgjJQCS.cjs +0 -372
  248. package/dist/IconButton-nlgjJQCS.cjs.map +0 -1
  249. package/dist/IconButton.d.cts +0 -2
  250. package/dist/ImageTile.d.cts +0 -60
  251. package/dist/Input-BFI_e7aU.mjs.map +0 -1
  252. package/dist/Input-BM0DzWEf.d.cts +0 -65
  253. package/dist/Input-OJPQ07TW.cjs +0 -209
  254. package/dist/Input-OJPQ07TW.cjs.map +0 -1
  255. package/dist/Input.d.cts +0 -2
  256. package/dist/InputProps-CoVNpQSj.d.cts +0 -16
  257. package/dist/InputProps.d.cts +0 -2
  258. package/dist/Inserter.d.cts +0 -12
  259. package/dist/LayoutLoadingShimmer.d.cts +0 -20
  260. package/dist/Link.d.cts +0 -43
  261. package/dist/ListBox-BP1eaG7L.cjs +0 -448
  262. package/dist/ListBox-BP1eaG7L.cjs.map +0 -1
  263. package/dist/ListBox-BwID8jpk.mjs.map +0 -1
  264. package/dist/ListBox-QaeRQBSC.d.cts +0 -138
  265. package/dist/ListBox.d.cts +0 -2
  266. package/dist/ListBoxField.d.cts +0 -46
  267. package/dist/LoadingShimmer-Dx6ncVUV.cjs +0 -92
  268. package/dist/LoadingShimmer-Dx6ncVUV.cjs.map +0 -1
  269. package/dist/LoadingShimmer.d.cts +0 -38
  270. package/dist/LogicRow-C6lrFIq0.d.cts +0 -40
  271. package/dist/LogicRow.d.cts +0 -2
  272. package/dist/MaskedInput.d.cts +0 -10
  273. package/dist/MatchHighlight.d.cts +0 -11
  274. package/dist/Menu-fUnbIYr5.d.cts +0 -70
  275. package/dist/Menu-t2q8NrV0.cjs +0 -217
  276. package/dist/Menu-t2q8NrV0.cjs.map +0 -1
  277. package/dist/Menu.d.cts +0 -2
  278. package/dist/MiddleTruncatedText-CO76xIqP.cjs +0 -178
  279. package/dist/MiddleTruncatedText-CO76xIqP.cjs.map +0 -1
  280. package/dist/Modal.d.cts +0 -146
  281. package/dist/PageHeader-CUDnarkt.cjs +0 -77
  282. package/dist/PageHeader-CUDnarkt.cjs.map +0 -1
  283. package/dist/PageHeader-D-6W61E_.mjs.map +0 -1
  284. package/dist/PageHeader.d.cts +0 -35
  285. package/dist/PageSelector-CNnVp3Al.d.cts +0 -30
  286. package/dist/PageSelector.d.cts +0 -2
  287. package/dist/Pagination-2Yo1vRJZ.cjs +0 -236
  288. package/dist/Pagination-2Yo1vRJZ.cjs.map +0 -1
  289. package/dist/Pagination-D04tn-tf.d.cts +0 -39
  290. package/dist/Pagination.d.cts +0 -2
  291. package/dist/Pii-DHTb3ewO.cjs +0 -25
  292. package/dist/Pii-DHTb3ewO.cjs.map +0 -1
  293. package/dist/Pii.d.cts +0 -16
  294. package/dist/Popover-BzgMAhsX.cjs +0 -168
  295. package/dist/Popover-BzgMAhsX.cjs.map +0 -1
  296. package/dist/Popover.d.cts +0 -90
  297. package/dist/ProgressBar.d.cts +0 -83
  298. package/dist/ProgressIndicator.d.cts +0 -64
  299. package/dist/PseudoClassProps-C5jpj6Rp.d.cts +0 -12
  300. package/dist/PseudoClassProps.d.cts +0 -2
  301. package/dist/Radio-BrTzy7-C.cjs +0 -154
  302. package/dist/Radio-BrTzy7-C.cjs.map +0 -1
  303. package/dist/Radio.d.cts +0 -21
  304. package/dist/RadioGroup-CriF2InQ.cjs +0 -57
  305. package/dist/RadioGroup-CriF2InQ.cjs.map +0 -1
  306. package/dist/RadioGroup-XYWjprsv.d.cts +0 -21
  307. package/dist/RadioGroup.d.cts +0 -2
  308. package/dist/SearchInput-CTI59-NW.d.cts +0 -46
  309. package/dist/SearchInput.d.cts +0 -2
  310. package/dist/SectionHeading-C6hjGdK-.d.cts +0 -71
  311. package/dist/SectionHeading.d.cts +0 -2
  312. package/dist/SegmentedControl-C2XZF0ys.cjs +0 -125
  313. package/dist/SegmentedControl-C2XZF0ys.cjs.map +0 -1
  314. package/dist/SegmentedControl-nHIK1ZvR.d.cts +0 -59
  315. package/dist/SegmentedControl.d.cts +0 -2
  316. package/dist/Select-BH3hXMxp.d.cts +0 -83
  317. package/dist/Select-BurtT6bN.cjs +0 -265
  318. package/dist/Select-BurtT6bN.cjs.map +0 -1
  319. package/dist/Select.d.cts +0 -2
  320. package/dist/Slider.d.cts +0 -51
  321. package/dist/SliderRHF.d.cts +0 -18
  322. package/dist/Spacer-B2CerL6e.cjs +0 -20
  323. package/dist/Spacer-B2CerL6e.cjs.map +0 -1
  324. package/dist/Spacer.d.cts +0 -17
  325. package/dist/Spinner-B6bx70yR.cjs +0 -48
  326. package/dist/Spinner-B6bx70yR.cjs.map +0 -1
  327. package/dist/Spinner.d.cts +0 -26
  328. package/dist/Stack-BzVkf3cz.d.cts +0 -47
  329. package/dist/Stack-UeifHn3c.cjs +0 -53
  330. package/dist/Stack-UeifHn3c.cjs.map +0 -1
  331. package/dist/Stack.d.cts +0 -2
  332. package/dist/StatusIndicator.d.cts +0 -82
  333. package/dist/Sticker-CI-XxUmM.d.cts +0 -68
  334. package/dist/Sticker-CIoseh9f.cjs +0 -244
  335. package/dist/Sticker-CIoseh9f.cjs.map +0 -1
  336. package/dist/Sticker.d.cts +0 -2
  337. package/dist/SwatchPicker.d.cts +0 -18
  338. package/dist/Tab.d.cts +0 -26
  339. package/dist/TabBar-PFaDNRw0.cjs +0 -298
  340. package/dist/TabBar-PFaDNRw0.cjs.map +0 -1
  341. package/dist/TabBar-zSA8kyE6.mjs.map +0 -1
  342. package/dist/TabBar.d.cts +0 -33
  343. package/dist/TabBarIconButton.d.cts +0 -10
  344. package/dist/Table-DXqyNohc.d.cts +0 -13
  345. package/dist/Table-DxLvJYWK.cjs +0 -478
  346. package/dist/Table-DxLvJYWK.cjs.map +0 -1
  347. package/dist/Table.d.cts +0 -2
  348. package/dist/TableBody-CxwHmdNb.d.cts +0 -9
  349. package/dist/TableBody.d.cts +0 -2
  350. package/dist/TableBox-CiuXCXyv.cjs +0 -1370
  351. package/dist/TableBox-CiuXCXyv.cjs.map +0 -1
  352. package/dist/TableBox-luasMC73.mjs.map +0 -1
  353. package/dist/TableBox.d.cts +0 -3
  354. package/dist/TableBoxCell-DIMenSwX.d.cts +0 -259
  355. package/dist/TableBoxCell.d.cts +0 -2
  356. package/dist/TableBoxField.d.cts +0 -99
  357. package/dist/TableBoxRow-RNQ6wJLh.d.cts +0 -86
  358. package/dist/TableBoxRow.d.cts +0 -2
  359. package/dist/TableBoxRowActions-CYpoPhYZ.d.cts +0 -57
  360. package/dist/TableBoxRowActions.d.cts +0 -2
  361. package/dist/TableCell.d.cts +0 -2
  362. package/dist/TableControls-BtXK7Ils.cjs +0 -3995
  363. package/dist/TableControls-BtXK7Ils.cjs.map +0 -1
  364. package/dist/TableControls-CLNF0AJG.d.cts +0 -70
  365. package/dist/TableControls.d.cts +0 -2
  366. package/dist/TableControlsContext-DAZx6Rrj.d.cts +0 -21
  367. package/dist/TableControlsContext.d.cts +0 -2
  368. package/dist/TableHead-Ch4Ho3LW.d.cts +0 -12
  369. package/dist/TableHead.d.cts +0 -2
  370. package/dist/TableHeaderCell-Crsa2R2g.d.cts +0 -17
  371. package/dist/TableHeaderCell.d.cts +0 -2
  372. package/dist/TableLayout-nwy094C_.d.mts +0 -19
  373. package/dist/TableLayout.d.cts +0 -2
  374. package/dist/TableRow-DVTPqT4w.d.cts +0 -13
  375. package/dist/TableRow.d.cts +0 -2
  376. package/dist/TableTH.d.cts +0 -2
  377. package/dist/TableViewConfigurationDropdown-CaiOGyrU.d.cts +0 -32
  378. package/dist/TableViewConfigurationDropdown.d.cts +0 -2
  379. package/dist/TechnicalSticker.d.cts +0 -51
  380. package/dist/Text-CrGiWG2E.d.cts +0 -42
  381. package/dist/Text-G9QmYf0P.cjs +0 -95
  382. package/dist/Text-G9QmYf0P.cjs.map +0 -1
  383. package/dist/Text.d.cts +0 -2
  384. package/dist/TextArea-BNiipQDb.cjs +0 -40
  385. package/dist/TextArea-BNiipQDb.cjs.map +0 -1
  386. package/dist/TextArea-CHW9FKM4.d.cts +0 -10
  387. package/dist/TextArea.d.cts +0 -2
  388. package/dist/TextUnderlineTooltip-DMEyOu8C.d.cts +0 -18
  389. package/dist/TextUnderlineTooltip.d.cts +0 -2
  390. package/dist/Tile.d.cts +0 -63
  391. package/dist/Toast.d.cts +0 -23
  392. package/dist/Toggle-Ce-rF8Xp.cjs +0 -174
  393. package/dist/Toggle-Ce-rF8Xp.cjs.map +0 -1
  394. package/dist/Toggle-tbIebQWC.d.cts +0 -54
  395. package/dist/Toggle.d.cts +0 -2
  396. package/dist/Tooltip--eDrrk2r.d.cts +0 -100
  397. package/dist/Tooltip-olP3rdUO.cjs +0 -152
  398. package/dist/Tooltip-olP3rdUO.cjs.map +0 -1
  399. package/dist/Tooltip.d.cts +0 -2
  400. package/dist/TruncatedText-Dit2NJI6.d.cts +0 -18
  401. package/dist/chunk-CKQMccvm.cjs +0 -28
  402. package/dist/components/Attribute/index.cjs +0 -210
  403. package/dist/components/Attribute/index.cjs.map +0 -1
  404. package/dist/components/Attribute/index.d.cts +0 -3
  405. package/dist/components/Badge/index.cjs +0 -7
  406. package/dist/components/Badge/index.d.cts +0 -2
  407. package/dist/components/Banner/index.cjs +0 -99
  408. package/dist/components/Banner/index.cjs.map +0 -1
  409. package/dist/components/Banner/index.d.cts +0 -2
  410. package/dist/components/Breadcrumbs/index.cjs +0 -7
  411. package/dist/components/Breadcrumbs/index.d.cts +0 -2
  412. package/dist/components/Button/index.cjs +0 -11
  413. package/dist/components/Button/index.d.cts +0 -3
  414. package/dist/components/ButtonGroup/index.cjs +0 -112
  415. package/dist/components/ButtonGroup/index.cjs.map +0 -1
  416. package/dist/components/ButtonGroup/index.d.cts +0 -2
  417. package/dist/components/Card/index.cjs +0 -12
  418. package/dist/components/Card/index.d.cts +0 -3
  419. package/dist/components/CardV2/index.cjs +0 -7
  420. package/dist/components/CardV2/index.d.cts +0 -3
  421. package/dist/components/Checkbox/index.cjs +0 -7
  422. package/dist/components/Checkbox/index.d.cts +0 -2
  423. package/dist/components/Combobox/index.cjs +0 -9
  424. package/dist/components/Combobox/index.d.cts +0 -3
  425. package/dist/components/ConfigFormGroup/index.cjs +0 -10
  426. package/dist/components/ConfigFormGroup/index.d.cts +0 -3
  427. package/dist/components/DataTable/TableControls/index.cjs +0 -27
  428. package/dist/components/DataTable/TableControls/index.d.cts +0 -16
  429. package/dist/components/DataTable/index.cjs +0 -1434
  430. package/dist/components/DataTable/index.cjs.map +0 -1
  431. package/dist/components/DataTable/index.d.cts +0 -8
  432. package/dist/components/DataTable/types.cjs +0 -0
  433. package/dist/components/DataTable/types.d.cts +0 -159
  434. package/dist/components/DatePicker/index.cjs +0 -10
  435. package/dist/components/DatePicker/index.d.cts +0 -5
  436. package/dist/components/DropdownButton/index.cjs +0 -7
  437. package/dist/components/DropdownButton/index.d.cts +0 -2
  438. package/dist/components/DropdownMenu/index.cjs +0 -7
  439. package/dist/components/DropdownMenu/index.d.cts +0 -2
  440. package/dist/components/FormControl/index.cjs +0 -15
  441. package/dist/components/FormControl/index.d.cts +0 -3
  442. package/dist/components/FormField/index.cjs +0 -19
  443. package/dist/components/FormField/index.d.cts +0 -6
  444. package/dist/components/HoverCopyableField/index.cjs +0 -2
  445. package/dist/components/HoverCopyableField/index.d.cts +0 -2
  446. package/dist/components/ImageTile/index.cjs +0 -225
  447. package/dist/components/ImageTile/index.cjs.map +0 -1
  448. package/dist/components/ImageTile/index.d.cts +0 -2
  449. package/dist/components/Input/index.cjs +0 -14
  450. package/dist/components/Input/index.cjs.map +0 -1
  451. package/dist/components/Input/index.d.cts +0 -2
  452. package/dist/components/Link/index.cjs +0 -87
  453. package/dist/components/Link/index.cjs.map +0 -1
  454. package/dist/components/Link/index.d.cts +0 -2
  455. package/dist/components/ListBox/index.cjs +0 -8
  456. package/dist/components/ListBox/index.d.cts +0 -4
  457. package/dist/components/LoadingShimmer/index.cjs +0 -6
  458. package/dist/components/LoadingShimmer/index.d.cts +0 -2
  459. package/dist/components/MaskedInput/index.cjs +0 -29
  460. package/dist/components/MaskedInput/index.cjs.map +0 -1
  461. package/dist/components/MaskedInput/index.d.cts +0 -2
  462. package/dist/components/MatchHighlight/index.cjs +0 -31
  463. package/dist/components/MatchHighlight/index.cjs.map +0 -1
  464. package/dist/components/MatchHighlight/index.d.cts +0 -2
  465. package/dist/components/Menu/index.cjs +0 -14
  466. package/dist/components/Menu/index.d.cts +0 -2
  467. package/dist/components/Modal/index.cjs +0 -290
  468. package/dist/components/Modal/index.cjs.map +0 -1
  469. package/dist/components/Modal/index.d.cts +0 -2
  470. package/dist/components/PageHeader/index.cjs +0 -7
  471. package/dist/components/PageHeader/index.d.cts +0 -2
  472. package/dist/components/Pagination/index.cjs +0 -10
  473. package/dist/components/Pagination/index.d.cts +0 -4
  474. package/dist/components/Pii/index.cjs +0 -2
  475. package/dist/components/Pii/index.d.cts +0 -2
  476. package/dist/components/Popover/index.cjs +0 -12
  477. package/dist/components/Popover/index.d.cts +0 -2
  478. package/dist/components/ProgressBar/index.cjs +0 -177
  479. package/dist/components/ProgressBar/index.cjs.map +0 -1
  480. package/dist/components/ProgressBar/index.d.cts +0 -2
  481. package/dist/components/ProgressIndicator/index.cjs +0 -185
  482. package/dist/components/ProgressIndicator/index.cjs.map +0 -1
  483. package/dist/components/ProgressIndicator/index.d.cts +0 -2
  484. package/dist/components/Radio/index.cjs +0 -7
  485. package/dist/components/Radio/index.d.cts +0 -2
  486. package/dist/components/RadioGroup/index.cjs +0 -7
  487. package/dist/components/RadioGroup/index.d.cts +0 -2
  488. package/dist/components/SegmentedControl/index.cjs +0 -8
  489. package/dist/components/SegmentedControl/index.d.cts +0 -2
  490. package/dist/components/Select/index.cjs +0 -9
  491. package/dist/components/Select/index.d.cts +0 -2
  492. package/dist/components/Slider/index.cjs +0 -245
  493. package/dist/components/Slider/index.cjs.map +0 -1
  494. package/dist/components/Slider/index.d.cts +0 -3
  495. package/dist/components/Spacer/index.cjs +0 -2
  496. package/dist/components/Spacer/index.d.cts +0 -2
  497. package/dist/components/Spinner/index.cjs +0 -7
  498. package/dist/components/Spinner/index.d.cts +0 -2
  499. package/dist/components/Stack/index.cjs +0 -8
  500. package/dist/components/Stack/index.d.cts +0 -2
  501. package/dist/components/StatusIndicator/index.cjs +0 -224
  502. package/dist/components/StatusIndicator/index.cjs.map +0 -1
  503. package/dist/components/StatusIndicator/index.d.cts +0 -2
  504. package/dist/components/Sticker/index.cjs +0 -11
  505. package/dist/components/Sticker/index.d.cts +0 -2
  506. package/dist/components/SwatchPicker/index.cjs +0 -63
  507. package/dist/components/SwatchPicker/index.cjs.map +0 -1
  508. package/dist/components/SwatchPicker/index.d.cts +0 -2
  509. package/dist/components/TabBar/index.cjs +0 -11
  510. package/dist/components/TabBar/index.d.cts +0 -4
  511. package/dist/components/Table/index.cjs +0 -21
  512. package/dist/components/Table/index.d.cts +0 -8
  513. package/dist/components/TableBox/index.cjs +0 -7
  514. package/dist/components/TableBox/index.d.cts +0 -3
  515. package/dist/components/TechnicalSticker/index.cjs +0 -239
  516. package/dist/components/TechnicalSticker/index.cjs.map +0 -1
  517. package/dist/components/TechnicalSticker/index.d.cts +0 -2
  518. package/dist/components/Text/index.cjs +0 -8
  519. package/dist/components/Text/index.d.cts +0 -2
  520. package/dist/components/TextArea/index.cjs +0 -7
  521. package/dist/components/TextArea/index.d.cts +0 -2
  522. package/dist/components/Tile/index.cjs +0 -102
  523. package/dist/components/Tile/index.cjs.map +0 -1
  524. package/dist/components/Tile/index.d.cts +0 -2
  525. package/dist/components/Toast/index.cjs +0 -134
  526. package/dist/components/Toast/index.cjs.map +0 -1
  527. package/dist/components/Toast/index.d.cts +0 -2
  528. package/dist/components/Toggle/index.cjs +0 -7
  529. package/dist/components/Toggle/index.d.cts +0 -2
  530. package/dist/components/Tooltip/index.cjs +0 -11
  531. package/dist/components/Tooltip/index.d.cts +0 -4
  532. package/dist/constants-B6c8S033.d.cts +0 -6
  533. package/dist/constants.d.cts +0 -2
  534. package/dist/constants2.d.cts +0 -10
  535. package/dist/filter-size-context-CIw0Zi6r.d.cts +0 -52
  536. package/dist/filter-size-context.d.cts +0 -2
  537. package/dist/helpers.d.cts +0 -76
  538. package/dist/index-BIAn8oQh.d.cts +0 -1
  539. package/dist/index-BL32-cvv.d.cts +0 -1
  540. package/dist/index-BPSCxsMC.d.cts +0 -1
  541. package/dist/index-BR1oNnaF.d.cts +0 -1
  542. package/dist/index-BXpMZvwA.d.cts +0 -1
  543. package/dist/index-BhY1qu3m.d.cts +0 -1
  544. package/dist/index-BlwcRiXv.d.cts +0 -1
  545. package/dist/index-Bw8QVu_o.d.cts +0 -75
  546. package/dist/index-C0NRIDsj2.d.cts +0 -1
  547. package/dist/index-C1ihAKnV.d.cts +0 -1
  548. package/dist/index-C9EIpBh8.d.cts +0 -7
  549. package/dist/index-CDAfh8Ew.d.cts +0 -1
  550. package/dist/index-CFG0_wK4.d.cts +0 -1
  551. package/dist/index-CQ25UCod.d.cts +0 -1
  552. package/dist/index-Cv0jeUQf2.d.cts +0 -1
  553. package/dist/index-CwSIy_W-.d.cts +0 -1
  554. package/dist/index-D-BciAtf.d.cts +0 -1
  555. package/dist/index-D34XP8vp.d.cts +0 -54
  556. package/dist/index-D6CnpA_r.d.cts +0 -1
  557. package/dist/index-D9IqtUDs.d.cts +0 -1
  558. package/dist/index-DFKoAoY2.d.cts +0 -1
  559. package/dist/index-DpEKQcoR.d.cts +0 -1
  560. package/dist/index-_wQ5ClJU.d.cts +0 -1
  561. package/dist/index-dC-i2r_u.d.cts +0 -1
  562. package/dist/index-sQecLSpR.d.cts +0 -1
  563. package/dist/index.cjs +0 -0
  564. package/dist/index.d.cts +0 -2
  565. package/dist/index2.d.cts +0 -2
  566. package/dist/index3.d.cts +0 -4
  567. package/dist/index4.d.cts +0 -11
  568. package/dist/index5.d.cts +0 -1
  569. package/dist/input-DPB0cX2m.d.cts +0 -17
  570. package/dist/inputFields.d.cts +0 -83
  571. package/dist/intersperse-_0nQM5Rb.cjs +0 -26
  572. package/dist/intersperse-_0nQM5Rb.cjs.map +0 -1
  573. package/dist/layouts/LayoutLoadingShimmer/index.cjs +0 -139
  574. package/dist/layouts/LayoutLoadingShimmer/index.cjs.map +0 -1
  575. package/dist/layouts/LayoutLoadingShimmer/index.d.cts +0 -2
  576. package/dist/lib/ConfigContext.cjs +0 -15
  577. package/dist/lib/ConfigContext.cjs.map +0 -1
  578. package/dist/lib/ConfigContext.d.cts +0 -16
  579. package/dist/lib/GlobalStyles.cjs +0 -57
  580. package/dist/lib/GlobalStyles.cjs.map +0 -1
  581. package/dist/lib/GlobalStyles.d.cts +0 -8
  582. package/dist/lib/HeadlessAriaButton.cjs +0 -33
  583. package/dist/lib/HeadlessAriaButton.cjs.map +0 -1
  584. package/dist/lib/HeadlessAriaButton.d.cts +0 -12
  585. package/dist/lib/MiddleTruncatedText.cjs +0 -7
  586. package/dist/lib/MiddleTruncatedText.d.cts +0 -14
  587. package/dist/lib/PDSProvider.cjs +0 -13
  588. package/dist/lib/PDSProvider.cjs.map +0 -1
  589. package/dist/lib/PDSProvider.d.cts +0 -10
  590. package/dist/lib/TruncatedText.cjs +0 -39
  591. package/dist/lib/TruncatedText.cjs.map +0 -1
  592. package/dist/lib/TruncatedText.d.cts +0 -2
  593. package/dist/lib/TruncatedTextWithTooltip.cjs +0 -34
  594. package/dist/lib/TruncatedTextWithTooltip.cjs.map +0 -1
  595. package/dist/lib/TruncatedTextWithTooltip.d.cts +0 -15
  596. package/dist/lib/comboboxHelper.cjs +0 -46
  597. package/dist/lib/comboboxHelper.cjs.map +0 -1
  598. package/dist/lib/comboboxHelper.d.cts +0 -24
  599. package/dist/lib/copyTextToClipboard.cjs +0 -33
  600. package/dist/lib/copyTextToClipboard.cjs.map +0 -1
  601. package/dist/lib/copyTextToClipboard.d.cts +0 -4
  602. package/dist/lib/datePickerHelper.cjs +0 -36
  603. package/dist/lib/datePickerHelper.cjs.map +0 -1
  604. package/dist/lib/datePickerHelper.d.cts +0 -19
  605. package/dist/lib/message.cjs +0 -12
  606. package/dist/lib/message.cjs.map +0 -1
  607. package/dist/lib/message.d.cts +0 -2
  608. package/dist/lib/pseudoClass.cjs +0 -31
  609. package/dist/lib/pseudoClass.cjs.map +0 -1
  610. package/dist/lib/pseudoClass.d.cts +0 -45
  611. package/dist/lib/reorderItems.cjs +0 -38
  612. package/dist/lib/reorderItems.cjs.map +0 -1
  613. package/dist/lib/reorderItems.d.cts +0 -26
  614. package/dist/lib/selectHelper.cjs +0 -22
  615. package/dist/lib/selectHelper.cjs.map +0 -1
  616. package/dist/lib/selectHelper.d.cts +0 -14
  617. package/dist/lib/useControlled.cjs +0 -20
  618. package/dist/lib/useControlled.cjs.map +0 -1
  619. package/dist/lib/useControlled.d.cts +0 -16
  620. package/dist/lib/useIsOverflow.cjs +0 -58
  621. package/dist/lib/useIsOverflow.cjs.map +0 -1
  622. package/dist/lib/useIsOverflow.d.cts +0 -11
  623. package/dist/lib/useOutsideClick.cjs +0 -19
  624. package/dist/lib/useOutsideClick.cjs.map +0 -1
  625. package/dist/lib/useOutsideClick.d.cts +0 -13
  626. package/dist/lib/useScrollOverflow.cjs +0 -61
  627. package/dist/lib/useScrollOverflow.cjs.map +0 -1
  628. package/dist/lib/useScrollOverflow.d.cts +0 -36
  629. package/dist/lib/zindex.cjs +0 -26
  630. package/dist/lib/zindex.cjs.map +0 -1
  631. package/dist/lib/zindex.d.cts +0 -25
  632. package/dist/message-BEgtEjQC.d.cts +0 -9
  633. package/dist/mixins/focus.cjs +0 -39
  634. package/dist/mixins/focus.cjs.map +0 -1
  635. package/dist/mixins/focus.d.cts +0 -11
  636. package/dist/mixins/hoverable.cjs +0 -38
  637. package/dist/mixins/hoverable.cjs.map +0 -1
  638. package/dist/mixins/hoverable.d.cts +0 -16
  639. package/dist/mixins/input.cjs +0 -95
  640. package/dist/mixins/input.cjs.map +0 -1
  641. package/dist/mixins/input.d.cts +0 -2
  642. package/dist/mixins/menuItem.cjs +0 -110
  643. package/dist/mixins/menuItem.cjs.map +0 -1
  644. package/dist/mixins/menuItem.d.cts +0 -30
  645. package/dist/mixins/print/index.cjs +0 -25
  646. package/dist/mixins/print/index.cjs.map +0 -1
  647. package/dist/mixins/print/index.d.cts +0 -11
  648. package/dist/mixins/text.cjs +0 -93
  649. package/dist/mixins/text.cjs.map +0 -1
  650. package/dist/mixins/text.d.cts +0 -2
  651. package/dist/operators-1qE2GpC7.d.cts +0 -43
  652. package/dist/operators.d.cts +0 -2
  653. package/dist/text-PmH5oc61.d.cts +0 -14
  654. package/dist/theme-Cadb1xzQ.d.cts +0 -154
  655. package/dist/theme.cjs +0 -353
  656. package/dist/theme.cjs.map +0 -1
  657. package/dist/theme.d.cts +0 -2
  658. package/dist/types-B_HHNlia.d.cts +0 -158
  659. package/dist/types-CCvc590y.d.cts +0 -45
  660. package/dist/types-CkiXVJeR.d.cts +0 -10
  661. package/dist/types-SYSKcZKW.d.cts +0 -25
  662. package/dist/types.d.cts +0 -2
  663. package/dist/types2.d.cts +0 -2
  664. package/dist/types3.d.cts +0 -2
  665. package/dist/types4.d.cts +0 -2
  666. package/dist/useFilterStateV2-DbPwX5N1.d.cts +0 -93
  667. package/dist/useFilterStateV2.d.cts +0 -2
  668. package/dist/useFormField--Q8ZdpW5.d.cts +0 -30
  669. package/dist/useFormField-BZlArnsI.cjs +0 -37
  670. package/dist/useFormField-BZlArnsI.cjs.map +0 -1
  671. package/dist/useFormField.d.cts +0 -2
  672. package/dist/useFormGroup-Bmnzgq0S.cjs +0 -26
  673. package/dist/useFormGroup-Bmnzgq0S.cjs.map +0 -1
  674. package/dist/useFormGroup.d.cts +0 -18
  675. package/dist/useTableBoxDragAndDrop-DnbUToce.d.cts +0 -69
  676. package/dist/useTableBoxDragAndDrop.d.cts +0 -2
  677. package/dist/useTableColumns.d.cts +0 -72
  678. package/dist/useToggle-DARO917w.cjs +0 -27
  679. package/dist/useToggle-DARO917w.cjs.map +0 -1
  680. package/dist/utilities-mSlaTrjB.d.cts +0 -9
  681. package/dist/utilities.d.cts +0 -2
  682. package/dist/utils/storybook.cjs +0 -12
  683. package/dist/utils/storybook.cjs.map +0 -1
  684. package/dist/utils/testing.cjs +0 -50
  685. package/dist/utils/testing.cjs.map +0 -1
  686. package/dist/utils/testing.d.cts +0 -18
  687. package/dist/validation-CJymv6JE.d.cts +0 -51
  688. package/dist/validation.d.cts +0 -2
  689. package/dist/value-control-resolver-B9p25q3G.d.cts +0 -46
  690. package/dist/value-control-resolver.d.cts +0 -2
  691. package/dist/variables/color.cjs +0 -22
  692. package/dist/variables/color.cjs.map +0 -1
  693. package/dist/variables/color.d.cts +0 -19
  694. package/dist/variables/effect.cjs +0 -27
  695. package/dist/variables/effect.cjs.map +0 -1
  696. package/dist/variables/effect.d.cts +0 -21
  697. package/dist/variables/keyframes.cjs +0 -22
  698. package/dist/variables/keyframes.cjs.map +0 -1
  699. package/dist/variables/keyframes.d.cts +0 -8
  700. package/dist/variables/spacing.cjs +0 -10
  701. package/dist/variables/spacing.cjs.map +0 -1
  702. package/dist/variables/spacing.d.cts +0 -8
  703. package/dist/variables/text.cjs +0 -13
  704. package/dist/variables/text.cjs.map +0 -1
  705. package/dist/variables/text.d.cts +0 -10
  706. package/dist/variables/transitions.cjs +0 -24
  707. package/dist/variables/transitions.cjs.map +0 -1
  708. package/dist/variables/transitions.d.cts +0 -19
@@ -1 +1 @@
1
- {"version":3,"file":"Sticker-DbqKLe33.mjs","names":[],"sources":["../components/Sticker/Sticker.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, MouseEventHandler, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport { XIcon } from '@persona/icons/12px';\nimport { IconButton } from 'design-system/components/Button';\nimport Stack from 'design-system/components/Stack';\nimport {\n isDisabled,\n isFocusedVisible,\n isHovered,\n isNotDisabled,\n} from 'design-system/lib/pseudoClass';\nimport { TruncatedText } from 'design-system/lib/TruncatedText';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport type { Variant } from 'design-system/theme';\n// Define the options with labels\nexport const STICKER_COLOR_CONFIG = {\n white: 'White',\n blue: 'Blue',\n teal: 'Teal',\n green: 'Green',\n yellow: 'Yellow',\n orange: 'Orange',\n pink: 'Pink',\n red: 'Red',\n purple: 'Purple',\n darkGrey: 'Dark Grey',\n grey: 'Grey',\n} as const;\n\n// Derive the type from the object keys\nexport type LabelBackgrounds = keyof typeof STICKER_COLOR_CONFIG;\n\nexport interface StickerProps extends ComponentPropsWithoutRef<'div'> {\n variant?: LabelBackgrounds | Exclude<Variant, 'inverse'>;\n\n /**\n * Icon to render to the left of the Sticker. 12px icons recommended.\n */\n icon?: ReactNode;\n\n /**\n * Callback to call upon clicking \"x\" button. Non-null will render the button.\n */\n onDismiss?: MouseEventHandler;\n\n /**\n * Additional props to pass to the dismiss \"x\" button.\n */\n dismissButtonProps?: ComponentPropsWithoutRef<'button'>;\n\n /**\n * Renders disabled style for the entire Sticker and disables \"x\" button.\n */\n disabled?: boolean;\n\n /**\n * Shows a required asterisk (*) that won't be cut off when text is truncated.\n */\n isRequired?: boolean;\n\n /**\n * In some cases we render a sticker/badge on a secondary background, which needs an adjustment\n * for certain variants.\n */\n onSecondaryBackground?: boolean;\n}\n\nconst StickerIcon = styled('div')<Pick<StickerProps, 'variant'>>`\n color: ${({ theme, variant }) => {\n switch (variant) {\n case 'darkGrey':\n case 'red':\n return theme.color.text.inverse;\n default:\n return 'inherit';\n }\n }};\n line-height: 0;\n svg {\n width: 12px;\n height: 12px;\n }\n`;\n\nconst RequiredAsterisk = styled.span`\n color: ${Color.TextDanger};\n /* Ensure asterisk never gets hidden and takes minimal space */\n flex-shrink: 0;\n`;\n\nexport const StickerContainer = styled(Stack)`\n padding: 2px ${Spacing[1]};\n /* Ensure container can shrink for text truncation */\n min-width: 0;\n flex: 1;\n`;\n\nexport const StickerContentContainer = styled(StickerContainer)`\n ${paragraphMixins.sm}\n padding: 0;\n`;\n\nexport const StyledTruncatedText = styled(TruncatedText)`\n ${paragraphMixins.sm}\n flex: 1;\n min-width: 0;\n line-height: 1;\n transform: translateY(0.5px);\n`;\n\nconst DismissButton = styled(IconButton)<Pick<StickerProps, 'variant' | 'disabled'>>`\n /* Note this will break if the element is not on a white background. Variable is provided to be able to override. */\n --background-color-behind-sticker: ${Color.PrimaryWhite};\n\n border: none;\n\n padding: 0 ${Spacing[1]};\n border-radius: ${BorderRadius.Sm};\n width: 1rem;\n\n height: 100%;\n\n display: inline-flex;\n align-items: center;\n\n svg {\n width: 12px;\n height: 12px;\n }\n color: ${({ theme, variant, disabled }) => {\n if (variant === 'red' || variant === 'darkGrey') {\n return theme.color.text.inverse;\n }\n return disabled ? 'inherit' : Color.BorderIconPrimary;\n }};\n\n &${isDisabled} {\n background-color: inherit !important;\n color: inherit !important;\n }\n\n &${isFocusedVisible}${isNotDisabled} {\n box-shadow: 0 0 0 1px var(--background-color-behind-sticker);\n }\n\n &${isHovered}${isNotDisabled} {\n cursor: pointer;\n\n background: ${({ variant }) => {\n if (variant === 'grey' || variant === 'basic') {\n return Color.BackgroundLabelGreyHover;\n } else if (variant === 'darkGrey') {\n return Color.BackgroundLabelDarkGreyHover;\n } else if (variant === 'purple') {\n return Color.BackgroundLabelPurpleHover;\n } else if (variant === 'red' || variant === 'danger') {\n return Color.BackgroundLabelDarkRedHover;\n } else if (variant === 'orange') {\n return Color.BackgroundLabelOrangeHover;\n } else if (variant === 'yellow' || variant === 'caution') {\n return Color.BackgroundLabelYellowHover;\n } else if (variant === 'green' || variant === 'success') {\n return Color.BackgroundLabelGreenHover;\n } else if (variant === 'teal') {\n return Color.BackgroundLabelTealHover;\n } else if (variant === 'blue') {\n return Color.BackgroundLabelBlueHover;\n } else if (variant === 'pink') {\n return Color.BackgroundLabelRedHover;\n } else if (variant === 'white') {\n return Color.BackgroundLabelWhiteHover;\n } else {\n return 'inherit';\n }\n }};\n }\n`;\n\nconst StyledSticker = styled('div')<\n StickerProps & { sizeIcon?: boolean; $onSecondaryBackground?: boolean }\n>`\n display: inline-flex;\n white-space: nowrap;\n\n border-radius: ${BorderRadius.Sm};\n height: 1rem;\n max-width: 100%;\n\n color: ${({ theme, variant, disabled }) => {\n if (disabled) {\n return variant === 'red' || variant === 'darkGrey'\n ? theme.color.text.inverse\n : theme.color.text.disabled;\n }\n switch (variant) {\n case 'darkGrey':\n case 'red':\n return theme.color.text.inverse;\n default:\n return theme.color.text.primary;\n }\n }};\n background: ${({ variant, disabled, $onSecondaryBackground }) => {\n if (disabled) {\n switch (variant) {\n case 'white':\n return Color.BackgroundLabelWhite;\n case 'blue':\n return Color.BackgroundLabelBlueDisabled;\n case 'teal':\n return Color.BackgroundLabelTealDisabled;\n case 'green':\n case 'success':\n return Color.BackgroundLabelGreenDisabled;\n case 'yellow':\n case 'caution':\n return Color.BackgroundLabelYellowDisabled;\n case 'orange':\n return Color.BackgroundLabelOrangeDisabled;\n case 'pink':\n case 'danger':\n return Color.BackgroundLabelRedDisabled;\n case 'red':\n return Color.BackgroundLabelDarkRedDisabled;\n case 'purple':\n case 'primary':\n return Color.BackgroundLabelPurpleDisabled;\n case 'darkGrey':\n return Color.BackgroundLabelDarkGreyDisabled;\n case 'basic':\n case 'grey':\n default:\n if ($onSecondaryBackground) {\n // eslint-disable-next-line rulesdir/no-core-color-tokens\n return Color.CoreSlate100;\n }\n return Color.BackgroundLabelGreyDisabled;\n }\n }\n switch (variant) {\n case 'white':\n return Color.BackgroundLabelWhiteDisabled;\n case 'blue':\n return Color.BackgroundLabelBlue;\n case 'teal':\n return Color.BackgroundLabelTeal;\n case 'green':\n case 'success':\n return Color.BackgroundLabelGreen;\n case 'yellow':\n case 'caution':\n return Color.BackgroundLabelYellow;\n case 'orange':\n return Color.BackgroundLabelOrange;\n case 'pink':\n case 'danger':\n return Color.BackgroundLabelRed;\n case 'red':\n return Color.BackgroundLabelDarkRed;\n case 'purple':\n case 'primary':\n return Color.BackgroundLabelPurple;\n case 'darkGrey':\n return Color.BackgroundLabelDarkGrey;\n case 'basic':\n default:\n if ($onSecondaryBackground) {\n // eslint-disable-next-line rulesdir/no-core-color-tokens\n return Color.CoreSlate200;\n }\n return Color.BackgroundLabelGrey;\n }\n }};\n`;\n\nexport const Sticker = ({\n variant,\n icon,\n children,\n onDismiss,\n disabled,\n dismissButtonProps,\n isRequired,\n onSecondaryBackground,\n ...props\n}: StickerProps) => {\n const hasContent = children != null;\n\n if (!hasContent) {\n const hasIcon = icon != null;\n if (!hasIcon) {\n console.warn('Sticker component requires content and/or an icon to render');\n return null;\n }\n\n if (hasIcon && !props['aria-label']) {\n console.warn('Sticker component requires an aria-label when only rendering an icon');\n }\n }\n\n return (\n <StyledSticker\n $onSecondaryBackground={onSecondaryBackground}\n variant={variant}\n disabled={disabled}\n sizeIcon={!!icon && !hasContent}\n {...props}\n >\n <StickerContainer direction='horizontal' align='center' spacing={Spacing[0]}>\n <StickerContentContainer direction='horizontal' align='center' spacing={Spacing[1]}>\n {icon && <StickerIcon variant={variant}>{icon}</StickerIcon>}\n {hasContent && <StyledTruncatedText>{children}</StyledTruncatedText>}\n </StickerContentContainer>\n {isRequired && <RequiredAsterisk>*</RequiredAsterisk>}\n </StickerContainer>\n\n {onDismiss && (\n <DismissButton\n variant={variant}\n disabled={disabled}\n id='sticker__dismiss-button'\n size='sm'\n onClick={onDismiss}\n aria-label='Remove'\n {...dismissButtonProps}\n >\n <XIcon />\n </DismissButton>\n )}\n </StyledSticker>\n );\n};\n\nexport default Sticker;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Sticker-CyGb9dEu.mjs","names":[],"sources":["../components/Sticker/Sticker.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, MouseEventHandler, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport { XIcon } from '@persona/icons/12px';\nimport { IconButton } from 'design-system/components/Button';\nimport Stack from 'design-system/components/Stack';\nimport {\n isDisabled,\n isFocusedVisible,\n isHovered,\n isNotDisabled,\n} from 'design-system/lib/pseudoClass';\nimport { TruncatedText } from 'design-system/lib/TruncatedText';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport type { Variant } from 'design-system/theme';\n// Define the options with labels\nexport const STICKER_COLOR_CONFIG = {\n white: 'White',\n blue: 'Blue',\n teal: 'Teal',\n green: 'Green',\n yellow: 'Yellow',\n orange: 'Orange',\n pink: 'Pink',\n red: 'Red',\n purple: 'Purple',\n darkGrey: 'Dark Grey',\n grey: 'Grey',\n} as const;\n\n// Derive the type from the object keys\nexport type LabelBackgrounds = keyof typeof STICKER_COLOR_CONFIG;\n\nexport interface StickerProps extends ComponentPropsWithoutRef<'div'> {\n variant?: LabelBackgrounds | Exclude<Variant, 'inverse'>;\n\n /**\n * Icon to render to the left of the Sticker. 12px icons recommended.\n */\n icon?: ReactNode;\n\n /**\n * Callback to call upon clicking \"x\" button. Non-null will render the button.\n */\n onDismiss?: MouseEventHandler;\n\n /**\n * Additional props to pass to the dismiss \"x\" button.\n */\n dismissButtonProps?: ComponentPropsWithoutRef<'button'>;\n\n /**\n * Renders disabled style for the entire Sticker and disables \"x\" button.\n */\n disabled?: boolean;\n\n /**\n * Shows a required asterisk (*) that won't be cut off when text is truncated.\n */\n isRequired?: boolean;\n\n /**\n * In some cases we render a sticker/badge on a secondary background, which needs an adjustment\n * for certain variants.\n */\n onSecondaryBackground?: boolean;\n}\n\nconst StickerIcon = styled('div')<Pick<StickerProps, 'variant'>>`\n color: ${({ theme, variant }) => {\n switch (variant) {\n case 'darkGrey':\n case 'red':\n return theme.color.text.inverse;\n default:\n return 'inherit';\n }\n }};\n line-height: 0;\n svg {\n width: 12px;\n height: 12px;\n }\n`;\n\nconst RequiredAsterisk = styled.span`\n color: ${Color.TextDanger};\n /* Ensure asterisk never gets hidden and takes minimal space */\n flex-shrink: 0;\n`;\n\nexport const StickerContainer = styled(Stack)`\n padding: 2px ${Spacing[1]};\n /* Ensure container can shrink for text truncation */\n min-width: 0;\n flex: 1;\n`;\n\nexport const StickerContentContainer = styled(StickerContainer)`\n ${paragraphMixins.sm}\n padding: 0;\n`;\n\nexport const StyledTruncatedText = styled(TruncatedText)`\n ${paragraphMixins.sm}\n flex: 1;\n min-width: 0;\n line-height: 1;\n transform: translateY(0.5px);\n`;\n\nconst DismissButton = styled(IconButton)<Pick<StickerProps, 'variant' | 'disabled'>>`\n /* Note this will break if the element is not on a white background. Variable is provided to be able to override. */\n --background-color-behind-sticker: ${Color.PrimaryWhite};\n\n border: none;\n\n padding: 0 ${Spacing[1]};\n border-radius: ${BorderRadius.Sm};\n width: 1rem;\n\n height: 100%;\n\n display: inline-flex;\n align-items: center;\n\n svg {\n width: 12px;\n height: 12px;\n }\n color: ${({ theme, variant, disabled }) => {\n if (variant === 'red' || variant === 'darkGrey') {\n return theme.color.text.inverse;\n }\n return disabled ? 'inherit' : Color.BorderIconPrimary;\n }};\n\n &${isDisabled} {\n background-color: inherit !important;\n color: inherit !important;\n }\n\n &${isFocusedVisible}${isNotDisabled} {\n box-shadow: 0 0 0 1px var(--background-color-behind-sticker);\n }\n\n &${isHovered}${isNotDisabled} {\n cursor: pointer;\n\n background: ${({ variant }) => {\n if (variant === 'grey' || variant === 'basic') {\n return Color.BackgroundLabelGreyHover;\n } else if (variant === 'darkGrey') {\n return Color.BackgroundLabelDarkGreyHover;\n } else if (variant === 'purple') {\n return Color.BackgroundLabelPurpleHover;\n } else if (variant === 'red' || variant === 'danger') {\n return Color.BackgroundLabelDarkRedHover;\n } else if (variant === 'orange') {\n return Color.BackgroundLabelOrangeHover;\n } else if (variant === 'yellow' || variant === 'caution') {\n return Color.BackgroundLabelYellowHover;\n } else if (variant === 'green' || variant === 'success') {\n return Color.BackgroundLabelGreenHover;\n } else if (variant === 'teal') {\n return Color.BackgroundLabelTealHover;\n } else if (variant === 'blue') {\n return Color.BackgroundLabelBlueHover;\n } else if (variant === 'pink') {\n return Color.BackgroundLabelRedHover;\n } else if (variant === 'white') {\n return Color.BackgroundLabelWhiteHover;\n } else {\n return 'inherit';\n }\n }};\n }\n`;\n\nconst StyledSticker = styled('div')<\n StickerProps & { sizeIcon?: boolean; $onSecondaryBackground?: boolean }\n>`\n display: inline-flex;\n white-space: nowrap;\n\n border-radius: ${BorderRadius.Sm};\n height: 1rem;\n max-width: 100%;\n\n color: ${({ theme, variant, disabled }) => {\n if (disabled) {\n return variant === 'red' || variant === 'darkGrey'\n ? theme.color.text.inverse\n : theme.color.text.disabled;\n }\n switch (variant) {\n case 'darkGrey':\n case 'red':\n return theme.color.text.inverse;\n default:\n return theme.color.text.primary;\n }\n }};\n background: ${({ variant, disabled, $onSecondaryBackground }) => {\n if (disabled) {\n switch (variant) {\n case 'white':\n return Color.BackgroundLabelWhite;\n case 'blue':\n return Color.BackgroundLabelBlueDisabled;\n case 'teal':\n return Color.BackgroundLabelTealDisabled;\n case 'green':\n case 'success':\n return Color.BackgroundLabelGreenDisabled;\n case 'yellow':\n case 'caution':\n return Color.BackgroundLabelYellowDisabled;\n case 'orange':\n return Color.BackgroundLabelOrangeDisabled;\n case 'pink':\n case 'danger':\n return Color.BackgroundLabelRedDisabled;\n case 'red':\n return Color.BackgroundLabelDarkRedDisabled;\n case 'purple':\n case 'primary':\n return Color.BackgroundLabelPurpleDisabled;\n case 'darkGrey':\n return Color.BackgroundLabelDarkGreyDisabled;\n case 'basic':\n case 'grey':\n default:\n if ($onSecondaryBackground) {\n // eslint-disable-next-line rulesdir/no-core-color-tokens\n return Color.CoreSlate100;\n }\n return Color.BackgroundLabelGreyDisabled;\n }\n }\n switch (variant) {\n case 'white':\n return Color.BackgroundLabelWhiteDisabled;\n case 'blue':\n return Color.BackgroundLabelBlue;\n case 'teal':\n return Color.BackgroundLabelTeal;\n case 'green':\n case 'success':\n return Color.BackgroundLabelGreen;\n case 'yellow':\n case 'caution':\n return Color.BackgroundLabelYellow;\n case 'orange':\n return Color.BackgroundLabelOrange;\n case 'pink':\n case 'danger':\n return Color.BackgroundLabelRed;\n case 'red':\n return Color.BackgroundLabelDarkRed;\n case 'purple':\n case 'primary':\n return Color.BackgroundLabelPurple;\n case 'darkGrey':\n return Color.BackgroundLabelDarkGrey;\n case 'basic':\n default:\n if ($onSecondaryBackground) {\n // eslint-disable-next-line rulesdir/no-core-color-tokens\n return Color.CoreSlate200;\n }\n return Color.BackgroundLabelGrey;\n }\n }};\n`;\n\nexport const Sticker = ({\n variant,\n icon,\n children,\n onDismiss,\n disabled,\n dismissButtonProps,\n isRequired,\n onSecondaryBackground,\n ...props\n}: StickerProps) => {\n const hasContent = children != null;\n\n if (!hasContent) {\n const hasIcon = icon != null;\n if (!hasIcon) {\n console.warn('Sticker component requires content and/or an icon to render');\n return null;\n }\n\n if (hasIcon && !props['aria-label']) {\n console.warn('Sticker component requires an aria-label when only rendering an icon');\n }\n }\n\n return (\n <StyledSticker\n $onSecondaryBackground={onSecondaryBackground}\n variant={variant}\n disabled={disabled}\n sizeIcon={!!icon && !hasContent}\n {...props}\n >\n <StickerContainer direction='horizontal' align='center' spacing={Spacing[0]}>\n <StickerContentContainer direction='horizontal' align='center' spacing={Spacing[1]}>\n {icon && <StickerIcon variant={variant}>{icon}</StickerIcon>}\n {hasContent && <StyledTruncatedText>{children}</StyledTruncatedText>}\n </StickerContentContainer>\n {isRequired && <RequiredAsterisk>*</RequiredAsterisk>}\n </StickerContainer>\n\n {onDismiss && (\n <DismissButton\n variant={variant}\n disabled={disabled}\n id='sticker__dismiss-button'\n size='sm'\n onClick={onDismiss}\n aria-label='Remove'\n {...dismissButtonProps}\n >\n <XIcon />\n </DismissButton>\n )}\n </StyledSticker>\n );\n};\n\nexport default Sticker;\n"],"mappings":"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"}
package/dist/Tab.d.mts CHANGED
@@ -1,22 +1,31 @@
1
- import { r as ButtonProps, t as Button } from "./Button-9p469xA1.mjs";
1
+ import { r as ButtonProps, t as Button } from "./Button-Vd5O4DUp.mjs";
2
2
  import * as _$styled_components0 from "styled-components";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import * as _$react from "react";
5
5
  import { ComponentPropsWithoutRef, ElementType, ReactElement } from "react";
6
6
 
7
7
  //#region components/TabBar/Tab.d.ts
8
- interface TabProps<T extends ElementType = 'button'> extends ComponentPropsWithoutRef<typeof Button> {
9
- selected?: boolean;
8
+ /** A tab carries either a count or a label beside its text, never both. */
9
+ type TabAdornment = {
10
10
  badge?: ReactElement;
11
+ sticker?: never;
12
+ } | {
13
+ badge?: never;
14
+ sticker?: ReactElement;
15
+ };
16
+ interface TabBaseProps<T extends ElementType = 'button'> extends ComponentPropsWithoutRef<typeof Button> {
17
+ selected?: boolean;
11
18
  as?: T;
12
19
  size?: 'md' | 'sm';
13
20
  }
14
- declare const StyledTab: _$styled_components0.StyledComponent<_$react.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & _$react.RefAttributes<HTMLButtonElement>>, any, TabProps<"button">, never>;
21
+ type TabProps<T extends ElementType = 'button'> = TabBaseProps<T> & TabAdornment;
22
+ declare const StyledTab: _$styled_components0.StyledComponent<_$react.ForwardRefExoticComponent<Omit<ButtonProps, "ref"> & _$react.RefAttributes<HTMLButtonElement>>, any, TabBaseProps<"button">, never>;
15
23
  declare const Tab: <T extends ElementType = "button">({
16
24
  selected,
17
25
  disabled,
18
26
  children,
19
27
  badge,
28
+ sticker,
20
29
  as,
21
30
  size,
22
31
  ...elemProps
@@ -1,8 +1,8 @@
1
1
  import { isActive, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
2
2
  import "./variables/transitions.mjs";
3
3
  import { paragraphMixins } from "./mixins/text.mjs";
4
- import { n as Button, t as IconButton } from "./IconButton-CIWiEsS-.mjs";
5
- import { t as Badge } from "./Badge-DortWowZ.mjs";
4
+ import { n as Button, t as IconButton } from "./IconButton-P8w0JDI5.mjs";
5
+ import { t as Badge } from "./Badge-DEVbRlJX.mjs";
6
6
  import { BorderRadius, Color, Spacing } from "@persona/design-tokens";
7
7
  import styled, { css } from "styled-components";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -106,9 +106,11 @@ const TabBar = forwardRef(function TabBar({ children, actions, title, "data-tour
106
106
  });
107
107
  //#endregion
108
108
  //#region components/TabBar/Tab.tsx
109
- const BadgeContainer = styled.span`
109
+ const AdornmentContainer = styled.span`
110
110
  display: inline-flex;
111
111
  vertical-align: middle;
112
+ /* Align the atomic badge with the label's cap midpoint, not its x-height midpoint. */
113
+ transform: translateY(calc((1ex - 1cap) / 2));
112
114
  padding: 0;
113
115
  margin-left: ${Spacing[1]};
114
116
  `;
@@ -203,7 +205,7 @@ const truncateText = (text, maxCharacters) => {
203
205
  if (text.length <= maxCharacters) return text;
204
206
  return `${text.substring(0, maxCharacters).trimEnd()}...`;
205
207
  };
206
- const Tab = ({ selected, disabled, children, badge, as, size, ...elemProps }) => {
208
+ const Tab = ({ selected, disabled, children, badge, sticker, as, size, ...elemProps }) => {
207
209
  const { maxTabChars, size: contextSize } = useContext(TabBarContext_default);
208
210
  const finalSize = size || contextSize || "md";
209
211
  const hasTruncation = maxTabChars && typeof children === "string";
@@ -218,10 +220,14 @@ const Tab = ({ selected, disabled, children, badge, as, size, ...elemProps }) =>
218
220
  size: finalSize,
219
221
  title: hasTruncation ? children : void 0,
220
222
  ...elemProps,
221
- children: [displayChildren, badge && /* @__PURE__ */ jsx(BadgeContainer, { children: badge.type === Badge ? cloneElement(badge, {
222
- variant: selected ? "active" : "basic",
223
- onSecondaryBackground: true
224
- }) : badge })]
223
+ children: [
224
+ displayChildren,
225
+ badge && /* @__PURE__ */ jsx(AdornmentContainer, { children: badge.type === Badge ? cloneElement(badge, {
226
+ variant: selected ? "active" : "basic",
227
+ onSecondaryBackground: true
228
+ }) : badge }),
229
+ sticker && /* @__PURE__ */ jsx(AdornmentContainer, { children: sticker })
230
+ ]
225
231
  });
226
232
  };
227
233
  //#endregion
@@ -264,4 +270,4 @@ var TabBarIconButton_default = styled(IconButton).attrs({ size: "sm" })`
264
270
  //#endregion
265
271
  export { TabContainer as a, TabBar as i, StyledTab as n, Tab as r, TabBarIconButton_default as t };
266
272
 
267
- //# sourceMappingURL=TabBar-zSA8kyE6.mjs.map
273
+ //# sourceMappingURL=TabBar-Bn8PHHBZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabBar-Bn8PHHBZ.mjs","names":["TabBarContext","TabBarContext"],"sources":["../components/TabBar/TabBarContext.ts","../components/TabBar/TabBar.tsx","../components/TabBar/Tab.tsx","../components/TabBar/TabBarIconButton.tsx"],"sourcesContent":["import { createContext } from 'react';\n\nexport default createContext<{ maxTabChars?: number; size?: 'md' | 'sm' }>({});\n","import { mergeRefs } from '@react-aria/utils';\nimport {\n type ComponentPropsWithoutRef,\n type ForwardedRef,\n forwardRef,\n type KeyboardEventHandler,\n type ReactNode,\n useRef,\n} from 'react';\nimport styled from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport TabBarContext from 'design-system/components/TabBar/TabBarContext';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst TabBarContainer = styled.div`\n display: flex;\n height: ${Spacing[6]};\n position: relative;\n box-sizing: border-box;\n border-bottom: 1px solid ${Color.BorderDivider};\n justify-content: space-between;\n gap: ${Spacing[4]};\n`;\n\nconst RightActions = styled.div`\n align-self: center;\n`;\n\nconst TitleTab = styled.div`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n ${paragraphMixins.mdBold};\n`;\n\nconst StyledTabContainer = styled.div<{ $size?: 'md' | 'sm' }>`\n display: flex;\n gap: ${({ $size = 'md' }) => ($size === 'sm' ? Spacing[3] : Spacing[4])};\n // These two lines prevent the overflow hidden from hiding the bottom border of the selected tab\n margin-bottom: -2px;\n padding-bottom: 2px;\n overflow: hidden;\n flex-wrap: wrap;\n`;\n\ninterface TabContainerProps extends ComponentPropsWithoutRef<'div'> {\n children: ReactNode;\n /**\n * Truncate tab text to the specified number of characters.\n */\n maxTabChars?: number;\n /**\n * Size of the tabs. Affects font size.\n */\n size?: 'md' | 'sm';\n}\n\nexport const TabContainer = forwardRef<HTMLDivElement, TabContainerProps>(function TabContainer(\n { children, maxTabChars, size, ...props },\n forwardedRef,\n) {\n const tabListRef = useRef<HTMLDivElement>(null);\n\n const getIndexOfCurrentTab = (list: Element[]) => {\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return getIndex(list, document.activeElement);\n };\n\n const handleKeyDown: KeyboardEventHandler<HTMLDivElement> = (e) => {\n // https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/tab_role\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n const list = getTabList(tabListRef.current.children);\n\n if (document.activeElement && !list.includes(document.activeElement)) {\n return;\n }\n\n switch (e.key) {\n case 'ArrowLeft': {\n // Go to previous tab\n const curIndex = getIndexOfCurrentTab(list);\n const nextIndex = curIndex === 0 ? list.length - 1 : curIndex - 1;\n (list[nextIndex] as HTMLElement).focus();\n break;\n }\n case 'ArrowRight': {\n // Go to next tab\n const curIndex = getIndexOfCurrentTab(list);\n (list[(curIndex + 1) % list.length] as HTMLElement).focus();\n break;\n }\n case 'Home': {\n // Go to first tab\n (list[0] as HTMLElement).focus();\n break;\n }\n case 'End': {\n // Go to last tab\n (list[list.length - 1] as HTMLElement).focus();\n break;\n }\n default:\n break;\n }\n };\n\n return (\n <TabBarContext.Provider value={{ maxTabChars, size }}>\n <StyledTabContainer\n role='tablist'\n ref={mergeRefs<HTMLDivElement>(tabListRef, forwardedRef)}\n onKeyDown={handleKeyDown}\n $size={size}\n {...props}\n >\n {children}\n </StyledTabContainer>\n </TabBarContext.Provider>\n );\n});\n\nconst getIndex = (children: Element[], element: Element) => {\n return children.indexOf(element);\n};\n\nconst getTabList = (list: HTMLCollection) => {\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return Array.from(list).filter((e: HTMLElement) => {\n return !(e.getAttribute('aria-disabled') || e.getAttribute('disabled'));\n });\n};\n\nexport interface TabBarProps extends ComponentPropsWithoutRef<'div'> {\n actions?: ReactNode;\n title?: string;\n 'data-tour-target'?: string;\n /**\n * Truncate tab text to the specified number of characters.\n */\n maxTabChars?: number;\n /**\n * Size of the tabs. Affects font size.\n */\n size?: 'md' | 'sm';\n}\n\nexport const TabBar = forwardRef<HTMLDivElement, TabBarProps>(function TabBar(\n {\n children,\n actions,\n title,\n 'data-tour-target': dataTourTarget,\n maxTabChars,\n size,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...elemProps\n },\n forwardedRef: ForwardedRef<HTMLDivElement>,\n) {\n return (\n <TabBarContainer {...elemProps}>\n <TabContainer\n ref={forwardedRef}\n maxTabChars={maxTabChars}\n size={size}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n >\n {title && <TitleTab data-tour-target={dataTourTarget}>{title}</TitleTab>}\n {children}\n </TabContainer>\n {actions && <RightActions>{actions}</RightActions>}\n </TabBarContainer>\n );\n});\n\nexport default TabBar;\n","import {\n cloneElement,\n type ComponentPropsWithoutRef,\n type ElementType,\n type ReactElement,\n useContext,\n} from 'react';\nimport styled, {\n css,\n type DefaultTheme,\n type FlattenInterpolation,\n type ThemeProps,\n} from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport Badge from 'design-system/components/Badge';\nimport Button from 'design-system/components/Button';\nimport TabBarContext from 'design-system/components/TabBar/TabBarContext';\nimport { isActive, isFocused, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\n/** A tab carries either a count or a label beside its text, never both. */\ntype TabAdornment =\n | { badge?: ReactElement; sticker?: never }\n | { badge?: never; sticker?: ReactElement };\n\ninterface TabBaseProps<T extends ElementType = 'button'> extends ComponentPropsWithoutRef<\n typeof Button\n> {\n selected?: boolean;\n as?: T;\n size?: 'md' | 'sm';\n}\n\ntype TabProps<T extends ElementType = 'button'> = TabBaseProps<T> & TabAdornment;\n\nconst AdornmentContainer = styled.span`\n display: inline-flex;\n vertical-align: middle;\n /* Align the atomic badge with the label's cap midpoint, not its x-height midpoint. */\n transform: translateY(calc((1ex - 1cap) / 2));\n padding: 0;\n margin-left: ${Spacing[1]};\n`;\n\nconst sizeStyles: Record<\n NonNullable<TabBaseProps['size']>,\n FlattenInterpolation<ThemeProps<DefaultTheme>>\n> = {\n md: css`\n ${paragraphMixins.md}\n `,\n sm: css`\n ${paragraphMixins.sm}\n `,\n};\n\nconst tabSelectedStyle = css`\n color: ${({ theme }) => theme.color.primary.brand};\n border-bottom-color: ${({ theme }) => theme.color.primary.brand};\n box-shadow: none;\n &:after {\n transition: border-bottom-color ${TransitionDuration.Fast};\n border-bottom-color: ${({ theme }) => theme.color.primary.brand};\n }\n`;\n\nexport const StyledTab = styled(Button).attrs<TabBaseProps>({\n width: 'auto',\n variant: 'basic',\n})<TabBaseProps>`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n white-space: nowrap;\n background-color: transparent;\n color: ${({ theme, disabled }) =>\n disabled ? theme.color.variants.basic.textDisabled : theme.color.text.tertiary};\n transition: color ${TransitionDuration.Fast} ease-out;\n height: 32px;\n margin: 0;\n padding: 0;\n ${({ size }) => sizeStyles[size || 'md']};\n outline: none;\n border-radius: ${({ theme }) => theme.button.borderRadius};\n\n a {\n color: currentColor;\n }\n\n /* remove default button focused/hovered box shadow */\n &${isActive}${isNotDisabled} {\n background-color: unset;\n }\n &${isHovered}${isNotDisabled} {\n background-color: unset;\n ${({ selected }) =>\n !selected &&\n css`\n color: ${Color.TextPrimary};\n `}\n }\n &${isFocused}${isNotDisabled} {\n box-shadow: none;\n background-color: unset;\n }\n &${isHovered}${isFocused}${isNotDisabled} {\n background-color: unset;\n }\n &:disabled {\n background-color: unset;\n }\n\n &:after {\n position: absolute;\n bottom: 0px;\n width: 100%;\n border-bottom: 1px solid transparent;\n content: '';\n }\n\n &.selected,\n &.active {\n ${tabSelectedStyle}\n }\n\n ${({ selected }) => selected && tabSelectedStyle}\n\n ${({ disabled }) =>\n disabled &&\n css`\n cursor: default;\n `}\n\n a& {\n text-decoration: none;\n }\n`;\n\n/**\n * Helper function to truncate text if it exceeds maxCharacters\n */\nconst truncateText = (text: string, maxCharacters: number): string => {\n if (text.length <= maxCharacters) {\n return text;\n }\n return `${text.substring(0, maxCharacters).trimEnd()}...`;\n};\n\nconst Tab = <T extends ElementType = 'button'>({\n selected,\n disabled,\n children,\n badge,\n sticker,\n as,\n size,\n ...elemProps\n}: TabProps<T> & ComponentPropsWithoutRef<T>) => {\n const { maxTabChars, size: contextSize } = useContext(TabBarContext);\n const finalSize = size || contextSize || 'md';\n\n // Truncate text if maxTabChars is provided and children is a string\n const hasTruncation = maxTabChars && typeof children === 'string';\n const displayChildren = hasTruncation ? truncateText(children, maxTabChars) : children;\n\n return (\n <StyledTab\n role='tab'\n selected={selected}\n aria-selected={selected}\n aria-disabled={disabled}\n disabled={disabled}\n as={as as ElementType}\n size={finalSize}\n title={hasTruncation ? children : undefined}\n {...elemProps}\n >\n {displayChildren}\n {badge && (\n <AdornmentContainer>\n {badge.type === Badge\n ? cloneElement(badge, {\n variant: selected ? 'active' : 'basic',\n onSecondaryBackground: true,\n })\n : badge}\n </AdornmentContainer>\n )}\n {sticker && <AdornmentContainer>{sticker}</AdornmentContainer>}\n </StyledTab>\n );\n};\n\nexport default Tab;\n","import styled from 'styled-components';\n\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport { IconButton } from 'design-system/components/Button';\nimport { isActive, isFocused, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\n\nexport default styled(IconButton).attrs({\n size: 'sm',\n})`\n padding-left: ${Spacing[2]};\n padding-right: ${Spacing[2]};\n border-radius: ${BorderRadius.Sm};\n\n // remove default button focused/hovered box shadow\n &${isActive}${isNotDisabled} {\n background-color: transparent;\n }\n &${isHovered}${isNotDisabled} {\n box-shadow: none;\n }\n &${isFocused}${isNotDisabled} {\n box-shadow: none;\n }\n &${isHovered}${isFocused}${isNotDisabled} {\n box-shadow: none;\n }\n &:disabled {\n background-color: transparent;\n }\n &:focus-visible${isNotDisabled}, &${isHovered}${isNotDisabled}:focus-visible {\n box-shadow: 0 0 0 3px ${({ theme }) => theme.color.variants.basic.highlight};\n }\n\n svg {\n color: ${Color.CoreSlate800};\n }\n\n &:hover {\n svg {\n color: ${Color.CoreSlate900};\n }\n }\n`;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { n as IconButtonProps } from "./IconButton-BSES_-6g.mjs";
1
+ import { n as IconButtonProps } from "./IconButton-BHCmHIx5.mjs";
2
2
  import * as _$styled_components0 from "styled-components";
3
3
  import * as _$react from "react";
4
4
 
@@ -1,10 +1,10 @@
1
1
  import { isFocusedVisible, isHovered } from "./lib/pseudoClass.mjs";
2
2
  import "./variables/transitions.mjs";
3
3
  import { paragraphMixins } from "./mixins/text.mjs";
4
- import { fadeIn } from "./variables/keyframes.mjs";
5
4
  import "./variables/spacing.mjs";
6
5
  import { i as Paragraph } from "./Text-RcEfNFLx.mjs";
7
- import { r as HelperTooltip } from "./Tooltip-C6AR1xT-.mjs";
6
+ import { fadeIn } from "./variables/keyframes.mjs";
7
+ import { r as HelperTooltip } from "./Tooltip-BvDbmXak.mjs";
8
8
  import { Z_INDICES } from "./lib/zindex.mjs";
9
9
  import { t as Spinner } from "./Spinner-BEPF42RW.mjs";
10
10
  import { Color, Spacing } from "@persona/design-tokens";
@@ -294,7 +294,7 @@ const TableBody = styled.tbody.attrs({ role: "rowgroup" })`
294
294
  const Container = styled.div`
295
295
  position: relative;
296
296
  z-index: 0;
297
- overflow-x: auto;
297
+ overflow-x: ${({ $scrollsHorizontally }) => $scrollsHorizontally ? "auto" : "visible"};
298
298
  ${({ maxHeight }) => {
299
299
  if (maxHeight != null) return `max-height: ${maxHeight}px;`;
300
300
  }}
@@ -349,7 +349,7 @@ const TableSpinner = styled(Spinner)`
349
349
  stroke-width: 0.46;
350
350
  }
351
351
  `;
352
- const TableLayout = ({ children, className, containerMaxHeight, dataTest, headerTR, isEmpty, isLoading, nullState, showHeader, size = "md", stickyHeader = false }) => {
352
+ const TableLayout = ({ children, className, containerMaxHeight, containerScrollsHorizontally = true, dataTest, headerTR, isEmpty, isLoading, nullState, showHeader, size = "md", stickyHeader = false }) => {
353
353
  if (isEmpty && !showHeader) if (isLoading) return /* @__PURE__ */ jsx(SpinnerWrapper, {
354
354
  role: "status",
355
355
  "aria-live": "polite",
@@ -360,12 +360,14 @@ const TableLayout = ({ children, className, containerMaxHeight, dataTest, header
360
360
  });
361
361
  else return /* @__PURE__ */ jsx(Container, {
362
362
  "data-test": dataTest,
363
+ $scrollsHorizontally: containerScrollsHorizontally,
363
364
  children: nullState
364
365
  });
365
366
  return /* @__PURE__ */ jsxs(Container, {
366
367
  "data-test": dataTest,
367
368
  maxHeight: containerMaxHeight,
368
369
  className,
370
+ $scrollsHorizontally: containerScrollsHorizontally,
369
371
  children: [
370
372
  isLoading && /* @__PURE__ */ jsx(Loader, { "data-test": "table-layout__loader" }),
371
373
  isLoading && /* @__PURE__ */ jsx(Overlay, {}),
@@ -384,4 +386,4 @@ const TableLayout = ({ children, className, containerMaxHeight, dataTest, header
384
386
  //#endregion
385
387
  export { StickyTH as a, TableCellTitle as c, TableTR as d, TableTH as f, Table as h, StickyTD as i, TableIconTD as l, TableHeaderCell as m, TableBody as n, TableActionTD as o, TableRow as p, TableHead as r, TableCell as s, TableLayout as t, TableTD as u };
386
388
 
387
- //# sourceMappingURL=Table-D8IcpACv.mjs.map
389
+ //# sourceMappingURL=Table-BfontAeY.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Table-D8IcpACv.mjs","names":["slideKeyframes"],"sources":["../components/Table/Table.tsx","../components/Table/TableHeaderCell.tsx","../components/Table/TableRow.tsx","../components/Table/TableTH.tsx","../components/Table/TableCell.tsx","../components/Table/TableHead.tsx","../components/Table/TableBody.tsx","../components/Table/TableLayout.tsx"],"sourcesContent":["import styled, { css, keyframes } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\ninterface TableProps {\n size?: 'sm' | 'md';\n isLoading?: boolean;\n}\n\nconst slideKeyframes = keyframes`\n 0% {\n transform: translateX(-50%) scaleX(0);\n }\n 50% {\n transform: translateX(0) scaleX(1);\n }\n 100% {\n transform: translateX(50%) scaleX(0);\n }\n`;\n\nexport const Table = styled.table.attrs({ role: 'table' })<TableProps>`\n display: table;\n width: 100%;\n border-spacing: 0;\n ${paragraphMixins.md};\n\n ${({ size }) =>\n size === 'sm' &&\n css`\n td,\n th {\n padding: ${Spacing[2]};\n }\n `}\n\n ${({ isLoading }) =>\n isLoading &&\n css`\n thead {\n &:after {\n content: '';\n display: block;\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 3px solid ${({ theme }) => theme.color.primary.brand};\n animation: ${slideKeyframes} 3s infinite cubic-bezier(0.5, 0, 0.5, 1);\n }\n }\n `}\n`;\n\nexport default Table;\n","import { type ComponentPropsWithoutRef, forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { CaretDownIcon, CaretUpIcon } from '@persona/icons';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { BASE } from 'design-system/variables/spacing';\n\ninterface TableHeaderCellProps {\n size?: 'sm' | 'md';\n sortable?: boolean;\n width?: 'auto' | 'min' | 'max' | string;\n isSticky?: boolean;\n align?: 'left' | 'right';\n}\n\nconst StyledTableHeaderCell = styled.th<TableHeaderCellProps>`\n display: table-cell;\n /* Self-contained box model: don't depend on a consumer's global\n border-box reset, so header padding + border are included in the\n declared width/height. */\n box-sizing: border-box;\n\n background-color: ${({ theme }) => theme.color.background.secondary};\n padding: ${({ size }) => (size === 'sm' ? BASE : BASE * 1.5)}px;\n text-align: left;\n white-space: nowrap;\n ${({ size }) => (size === 'sm' ? paragraphMixins.sm : paragraphMixins.md)};\n line-height: 1;\n width: ${({ width }) => {\n switch (width) {\n case 'min':\n return '1px';\n case 'max':\n return '100%';\n default:\n if (width) {\n return width;\n } else {\n return 'auto';\n }\n }\n }};\n\n &:first-child {\n border-radius: ${({ theme }) =>\n `${theme.element.borderRadius} 0 0 ${theme.element.borderRadius}`};\n }\n\n &:last-child {\n border-radius: ${({ theme }) =>\n `0 ${theme.element.borderRadius} ${theme.element.borderRadius} 0`};\n }\n\n ${({ sortable }) =>\n sortable &&\n css`\n cursor: pointer;\n\n &:hover ${TableIconContainer} {\n display: inline;\n visibility: visible;\n }\n `};\n\n ${({ isSticky }) =>\n isSticky\n ? css`\n position: sticky;\n top: 0;\n z-index: 1;\n `\n : css`\n position: relative;\n `}\n`;\n\nconst VerticalAlign = styled.div<{ $align?: TableHeaderCellProps['align'] }>`\n display: flex;\n align-items: center;\n gap: ${Spacing[1]};\n flex-direction: ${({ $align }) => ($align === 'right' ? 'row-reverse' : 'row')};\n`;\n\ninterface TableIconContainerProps {\n sortDirection?: 'asc' | 'desc' | false;\n}\n\nconst TableIconContainer = styled('div')<TableIconContainerProps>`\n display: inline-block;\n\n ${({ sortDirection }) => {\n if (sortDirection) {\n return css`\n display: inline;\n `;\n } else {\n return css`\n display: inline;\n visibility: hidden;\n color: ${({ theme }) => theme.color.text.disabled};\n `;\n }\n }};\n`;\n\nconst TableHeaderCell = forwardRef<\n HTMLTableCellElement,\n ComponentPropsWithoutRef<'th'> & TableHeaderCellProps & TableIconContainerProps\n>(function TableHeaderCell({ sortable, sortDirection, children, align, ...elemProps }, ref) {\n let ariaSort: 'none' | 'ascending' | 'descending' | 'other' = 'none';\n\n if (sortable && sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n\n return (\n <StyledTableHeaderCell\n sortable={sortable}\n aria-sort={ariaSort}\n role='columnheader'\n {...elemProps}\n ref={ref}\n >\n <VerticalAlign $align={align}>\n {children}\n {sortable && (\n <TableIconContainer sortDirection={sortDirection}>\n {sortDirection === 'asc' ? <CaretUpIcon /> : <CaretDownIcon />}\n </TableIconContainer>\n )}\n </VerticalAlign>\n </StyledTableHeaderCell>\n );\n});\n\nexport default TableHeaderCell;\n","import styled, { css } from 'styled-components';\n\nimport { isFocusedVisible, isHovered } from 'design-system/lib/pseudoClass';\nimport type PseudoClassProps from 'design-system/types/PseudoClassProps';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nexport interface TableRowProps extends PseudoClassProps {\n disableHoverBackground?: boolean;\n}\n\nconst TableRow = styled.tr.attrs({\n role: 'row',\n})<TableRowProps>`\n display: table-row;\n\n ${({ onClick }) =>\n onClick != null &&\n css`\n cursor: pointer;\n `}\n\n ${({ disableHoverBackground, theme }) =>\n !disableHoverBackground &&\n css`\n &${isHovered} {\n background-color: ${theme.color.background.highlight};\n transition-duration: ${TransitionDuration.Fast};\n }\n `}\n\n ${isFocusedVisible}\n`;\n\nexport default TableRow;\n","import { type ComponentPropsWithoutRef, forwardRef, type ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { TableHeaderCell } from '@persona/design-system/components/Table';\nimport { HelperTooltip } from '@persona/design-system/components/Tooltip';\nimport { Spacing } from '@persona/design-tokens';\n\nconst StyledHelperTooltip = styled(HelperTooltip)`\n height: 14px;\n margin-left: ${Spacing[1]};\n`;\n\nexport interface TableTHProps extends ComponentPropsWithoutRef<typeof TableHeaderCell> {\n canSort?: boolean;\n isSorted?: boolean;\n isDescending?: boolean;\n isSticky?: boolean;\n /**\n * Display help icon and tooltip for column header\n */\n helpText?: ReactNode;\n align?: 'left' | 'right';\n size?: 'sm' | 'md';\n}\n\nconst TableTH = forwardRef<HTMLTableCellElement, TableTHProps>(function TableTH(\n { children, canSort, isSorted, isSticky, isDescending, helpText, align, size, ...props },\n ref,\n) {\n return (\n <TableHeaderCell\n sortable={canSort}\n sortDirection={canSort && isSorted ? (isDescending ? 'desc' : 'asc') : false}\n ref={ref}\n isSticky={isSticky}\n align={align}\n size={size}\n {...props}\n >\n {/* We have to wrap the children to make it easier to use tooltips */}\n <span className='th__text'>{children}</span>\n {helpText && <StyledHelperTooltip size='sm'>{helpText}</StyledHelperTooltip>}\n </TableHeaderCell>\n );\n});\n\nexport default TableTH;\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { Paragraph } from 'design-system/components/Text';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { BASE } from 'design-system/variables/spacing';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nimport TableRow from './TableRow';\nimport TableTH from './TableTH';\n\nexport interface TableCellProps {\n breakWord?: boolean;\n size?: 'sm' | 'md';\n}\n\nconst TableCell = styled.td.attrs({ role: 'cell' })<TableCellProps>`\n display: table-cell;\n vertical-align: middle;\n /* Self-contained box model: don't depend on a consumer's global\n border-box reset, so a fixed cell height includes its padding + border\n and rows stay compact. */\n box-sizing: border-box;\n\n border-bottom: 1px solid ${({ theme }) => theme.color.border.primary};\n text-align: left;\n padding: ${({ size }) => (size === 'sm' ? BASE : BASE * 1.5)}px;\n color: ${({ theme }) => theme.color.text.primary};\n white-space: nowrap;\n ${paragraphMixins.md};\n line-height: 1;\n ${({ breakWord }) =>\n breakWord\n ? `white-space: normal;\n overflow-wrap: break-word;`\n : ''}\n`;\n\nexport default TableCell;\n\nconst CellTitleContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst CellTitle = styled(Paragraph).attrs({ color: 'primary' })`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n`;\n\ninterface TableCellTitleProps extends ComponentPropsWithoutRef<'div'> {\n subtitle?: ReactNode;\n}\n\nexport const TableCellTitle = ({ children, subtitle, ...elemProps }: TableCellTitleProps) => {\n return (\n <CellTitleContainer {...elemProps}>\n <CellTitle>{children}</CellTitle>\n {subtitle && <Paragraph>{subtitle}</Paragraph>}\n </CellTitleContainer>\n );\n};\n\nexport const TableTD = styled(TableCell)<{ unclickable?: boolean }>`\n white-space: normal;\n overflow-wrap: break-word;\n ${(props) =>\n props.unclickable &&\n css`\n cursor: default;\n `}\n`;\n\nexport const TableIconTD = styled(TableTD)`\n text-align: right;\n line-height: 0; /* To center icon; cannot use flex here */\n padding: 0;\n padding-left: ${Spacing[4]};\n width: 36px;\n`;\n\nexport const TableActionTD = styled(TableTD)`\n text-align: right;\n padding: 0;\n padding-right: ${Spacing[4]};\n width: 48px;\n`;\n\nexport const StickyTD = styled(TableTD)<{\n left?: number;\n hasRightBorder?: boolean;\n}>`\n position: sticky;\n left: ${({ left = 0 }) => `${left}px`}; // Default to 0 if not specified\n background-color: ${({ theme }) => theme.color.background.primary};\n\n ${({ hasRightBorder, theme }) =>\n hasRightBorder && `border-right: 2px solid ${theme.color.border.primary};`}\n z-index: 2;\n`;\n\nexport const StickyTH = styled(TableTH)<{\n left?: number;\n hasRightBorder?: boolean;\n size?: 'sm' | 'md';\n}>`\n position: sticky;\n left: ${({ left = 0 }) => `${left}px`}; // Default to 0 if not specified\n z-index: 2;\n max-width: 10%;\n background-color: ${({ theme }) => theme.color.background.secondary};\n ${({ hasRightBorder, theme }) =>\n hasRightBorder && `border-right: 2px solid ${theme.color.border.primary};`}\n`;\n\nexport const TableTR = styled(TableRow)<{ disableHoverBackground?: boolean; $isActive?: boolean }>`\n ${({ disableHoverBackground }) =>\n disableHoverBackground &&\n css`\n &:hover {\n background-color: transparent !important;\n }\n `}\n\n ${({ $isActive }) =>\n $isActive &&\n css`\n background-color: ${({ theme }) => theme.color.background.highlight};\n &:hover {\n background-color: ${({ theme }) => theme.color.background.highlight};\n }\n `}\n\n ${({ onClick, disableHoverBackground, $isActive }) =>\n onClick != null &&\n !disableHoverBackground &&\n !$isActive &&\n css`\n cursor: pointer;\n :hover {\n background-color: ${({ theme }) => theme.color.background.highlight};\n }\n transition-duration: ${TransitionDuration.Fast};\n `}\n`;\n","import styled, { css } from 'styled-components';\n\ninterface TableHeadProps {\n sticky?: boolean;\n}\n\nconst TableHead = styled.thead.attrs({ role: 'rowgroup' })<TableHeadProps>`\n display: table-header-group;\n ${({ sticky }) =>\n sticky &&\n css`\n position: sticky;\n top: 0;\n z-index: 1;\n `}\n`;\n\nexport default TableHead;\n","import styled from 'styled-components';\n\nconst TableBody = styled.tbody.attrs({ role: 'rowgroup' })`\n display: table-row-group;\n`;\n\nexport default TableBody;\n","import type { FC, PropsWithChildren, ReactNode } from 'react';\nimport styled, { keyframes } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { Spinner } from 'design-system/components/Spinner';\nimport Table, { TableHead, TableRow } from 'design-system/components/Table';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport { fadeIn } from 'design-system/variables/keyframes';\n\nconst Container = styled.div<{ maxHeight?: number }>`\n position: relative;\n z-index: 0;\n overflow-x: auto;\n ${({ maxHeight }) => {\n if (maxHeight != null) {\n return `max-height: ${maxHeight}px;`;\n }\n }}\n `;\n\nconst slideKeyframes = keyframes`\n 0% {\n transform: translateX(-50%) scaleX(0);\n }\n 50% {\n transform: translateX(0) scaleX(1);\n }\n 100% {\n transform: translateX(50%) scaleX(0);\n }\n `;\n\nconst Loader = styled.div`\n position: absolute;\n z-index: ${Z_INDICES.loadingOverlays};\n border-bottom: 3px solid ${({ theme }) => theme.color.primary.brand};\n width: 100%;\n \n animation: ${slideKeyframes} 3s infinite cubic-bezier(0.5, 0, 0.5, 1);\n `;\n\nconst Overlay = styled.div`\n position: absolute;\n z-index: ${Z_INDICES.loadingOverlays};\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: ${({ theme }) => theme.color.primary.white};\n opacity: 50%;\n `;\n\nconst SpinnerWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${Spacing[5]} 0;\n animation: ${fadeIn} 1s;\n animation-delay: 0.5s;\n animation-fill-mode: backwards;\n `;\n\nconst TableSpinner = styled(Spinner)`\n svg {\n width: 120px;\n height: 120px;\n }\n \n path {\n stroke: ${Color.CorePurple500};\n stroke-width: 0.46;\n }\n `;\n\ninterface TableLayoutProps {\n className?: string;\n containerMaxHeight?: number;\n dataTest?: string;\n headerTR: JSX.Element;\n isEmpty?: boolean;\n isLoading?: boolean;\n nullState: ReactNode;\n showHeader?: boolean;\n size?: 'sm' | 'md';\n stickyHeader?: boolean;\n}\n\nconst TableLayout: FC<PropsWithChildren<TableLayoutProps>> = ({\n children,\n className,\n containerMaxHeight,\n dataTest,\n headerTR,\n isEmpty,\n isLoading,\n nullState,\n showHeader,\n size = 'md',\n stickyHeader = false,\n}) => {\n if (isEmpty && !showHeader) {\n if (isLoading) {\n return (\n <SpinnerWrapper\n role='status'\n aria-live='polite'\n aria-busy='true'\n aria-label='Loading...'\n data-loading-indicator='true'\n >\n <TableSpinner size='md' />\n </SpinnerWrapper>\n );\n } else {\n return <Container data-test={dataTest}>{nullState}</Container>;\n }\n }\n\n return (\n <Container data-test={dataTest} maxHeight={containerMaxHeight} className={className}>\n {isLoading && <Loader data-test='table-layout__loader' />}\n {isLoading && <Overlay />}\n\n <Table size={size} aria-busy={isLoading || undefined}>\n <TableHead sticky={stickyHeader}>\n <TableRow>{headerTR}</TableRow>\n </TableHead>\n {!isEmpty && children}\n </Table>\n\n {isEmpty && nullState}\n </Container>\n );\n};\n\nexport default TableLayout;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Table-BfontAeY.mjs","names":["slideKeyframes"],"sources":["../components/Table/Table.tsx","../components/Table/TableHeaderCell.tsx","../components/Table/TableRow.tsx","../components/Table/TableTH.tsx","../components/Table/TableCell.tsx","../components/Table/TableHead.tsx","../components/Table/TableBody.tsx","../components/Table/TableLayout.tsx"],"sourcesContent":["import styled, { css, keyframes } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\ninterface TableProps {\n size?: 'sm' | 'md';\n isLoading?: boolean;\n}\n\nconst slideKeyframes = keyframes`\n 0% {\n transform: translateX(-50%) scaleX(0);\n }\n 50% {\n transform: translateX(0) scaleX(1);\n }\n 100% {\n transform: translateX(50%) scaleX(0);\n }\n`;\n\nexport const Table = styled.table.attrs({ role: 'table' })<TableProps>`\n display: table;\n width: 100%;\n border-spacing: 0;\n ${paragraphMixins.md};\n\n ${({ size }) =>\n size === 'sm' &&\n css`\n td,\n th {\n padding: ${Spacing[2]};\n }\n `}\n\n ${({ isLoading }) =>\n isLoading &&\n css`\n thead {\n &:after {\n content: '';\n display: block;\n position: absolute;\n bottom: 0;\n left: 0;\n width: 100%;\n border-bottom: 3px solid ${({ theme }) => theme.color.primary.brand};\n animation: ${slideKeyframes} 3s infinite cubic-bezier(0.5, 0, 0.5, 1);\n }\n }\n `}\n`;\n\nexport default Table;\n","import { type ComponentPropsWithoutRef, forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { CaretDownIcon, CaretUpIcon } from '@persona/icons';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { BASE } from 'design-system/variables/spacing';\n\ninterface TableHeaderCellProps {\n size?: 'sm' | 'md';\n sortable?: boolean;\n width?: 'auto' | 'min' | 'max' | string;\n isSticky?: boolean;\n align?: 'left' | 'right';\n}\n\nconst StyledTableHeaderCell = styled.th<TableHeaderCellProps>`\n display: table-cell;\n /* Self-contained box model: don't depend on a consumer's global\n border-box reset, so header padding + border are included in the\n declared width/height. */\n box-sizing: border-box;\n\n background-color: ${({ theme }) => theme.color.background.secondary};\n padding: ${({ size }) => (size === 'sm' ? BASE : BASE * 1.5)}px;\n text-align: left;\n white-space: nowrap;\n ${({ size }) => (size === 'sm' ? paragraphMixins.sm : paragraphMixins.md)};\n line-height: 1;\n width: ${({ width }) => {\n switch (width) {\n case 'min':\n return '1px';\n case 'max':\n return '100%';\n default:\n if (width) {\n return width;\n } else {\n return 'auto';\n }\n }\n }};\n\n &:first-child {\n border-radius: ${({ theme }) =>\n `${theme.element.borderRadius} 0 0 ${theme.element.borderRadius}`};\n }\n\n &:last-child {\n border-radius: ${({ theme }) =>\n `0 ${theme.element.borderRadius} ${theme.element.borderRadius} 0`};\n }\n\n ${({ sortable }) =>\n sortable &&\n css`\n cursor: pointer;\n\n &:hover ${TableIconContainer} {\n display: inline;\n visibility: visible;\n }\n `};\n\n ${({ isSticky }) =>\n isSticky\n ? css`\n position: sticky;\n top: 0;\n z-index: 1;\n `\n : css`\n position: relative;\n `}\n`;\n\nconst VerticalAlign = styled.div<{ $align?: TableHeaderCellProps['align'] }>`\n display: flex;\n align-items: center;\n gap: ${Spacing[1]};\n flex-direction: ${({ $align }) => ($align === 'right' ? 'row-reverse' : 'row')};\n`;\n\ninterface TableIconContainerProps {\n sortDirection?: 'asc' | 'desc' | false;\n}\n\nconst TableIconContainer = styled('div')<TableIconContainerProps>`\n display: inline-block;\n\n ${({ sortDirection }) => {\n if (sortDirection) {\n return css`\n display: inline;\n `;\n } else {\n return css`\n display: inline;\n visibility: hidden;\n color: ${({ theme }) => theme.color.text.disabled};\n `;\n }\n }};\n`;\n\nconst TableHeaderCell = forwardRef<\n HTMLTableCellElement,\n ComponentPropsWithoutRef<'th'> & TableHeaderCellProps & TableIconContainerProps\n>(function TableHeaderCell({ sortable, sortDirection, children, align, ...elemProps }, ref) {\n let ariaSort: 'none' | 'ascending' | 'descending' | 'other' = 'none';\n\n if (sortable && sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n\n return (\n <StyledTableHeaderCell\n sortable={sortable}\n aria-sort={ariaSort}\n role='columnheader'\n {...elemProps}\n ref={ref}\n >\n <VerticalAlign $align={align}>\n {children}\n {sortable && (\n <TableIconContainer sortDirection={sortDirection}>\n {sortDirection === 'asc' ? <CaretUpIcon /> : <CaretDownIcon />}\n </TableIconContainer>\n )}\n </VerticalAlign>\n </StyledTableHeaderCell>\n );\n});\n\nexport default TableHeaderCell;\n","import styled, { css } from 'styled-components';\n\nimport { isFocusedVisible, isHovered } from 'design-system/lib/pseudoClass';\nimport type PseudoClassProps from 'design-system/types/PseudoClassProps';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nexport interface TableRowProps extends PseudoClassProps {\n disableHoverBackground?: boolean;\n}\n\nconst TableRow = styled.tr.attrs({\n role: 'row',\n})<TableRowProps>`\n display: table-row;\n\n ${({ onClick }) =>\n onClick != null &&\n css`\n cursor: pointer;\n `}\n\n ${({ disableHoverBackground, theme }) =>\n !disableHoverBackground &&\n css`\n &${isHovered} {\n background-color: ${theme.color.background.highlight};\n transition-duration: ${TransitionDuration.Fast};\n }\n `}\n\n ${isFocusedVisible}\n`;\n\nexport default TableRow;\n","import { type ComponentPropsWithoutRef, forwardRef, type ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { TableHeaderCell } from '@persona/design-system/components/Table';\nimport { HelperTooltip } from '@persona/design-system/components/Tooltip';\nimport { Spacing } from '@persona/design-tokens';\n\nconst StyledHelperTooltip = styled(HelperTooltip)`\n height: 14px;\n margin-left: ${Spacing[1]};\n`;\n\nexport interface TableTHProps extends ComponentPropsWithoutRef<typeof TableHeaderCell> {\n canSort?: boolean;\n isSorted?: boolean;\n isDescending?: boolean;\n isSticky?: boolean;\n /**\n * Display help icon and tooltip for column header\n */\n helpText?: ReactNode;\n align?: 'left' | 'right';\n size?: 'sm' | 'md';\n}\n\nconst TableTH = forwardRef<HTMLTableCellElement, TableTHProps>(function TableTH(\n { children, canSort, isSorted, isSticky, isDescending, helpText, align, size, ...props },\n ref,\n) {\n return (\n <TableHeaderCell\n sortable={canSort}\n sortDirection={canSort && isSorted ? (isDescending ? 'desc' : 'asc') : false}\n ref={ref}\n isSticky={isSticky}\n align={align}\n size={size}\n {...props}\n >\n {/* We have to wrap the children to make it easier to use tooltips */}\n <span className='th__text'>{children}</span>\n {helpText && <StyledHelperTooltip size='sm'>{helpText}</StyledHelperTooltip>}\n </TableHeaderCell>\n );\n});\n\nexport default TableTH;\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { Paragraph } from 'design-system/components/Text';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { BASE } from 'design-system/variables/spacing';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nimport TableRow from './TableRow';\nimport TableTH from './TableTH';\n\nexport interface TableCellProps {\n breakWord?: boolean;\n size?: 'sm' | 'md';\n}\n\nconst TableCell = styled.td.attrs({ role: 'cell' })<TableCellProps>`\n display: table-cell;\n vertical-align: middle;\n /* Self-contained box model: don't depend on a consumer's global\n border-box reset, so a fixed cell height includes its padding + border\n and rows stay compact. */\n box-sizing: border-box;\n\n border-bottom: 1px solid ${({ theme }) => theme.color.border.primary};\n text-align: left;\n padding: ${({ size }) => (size === 'sm' ? BASE : BASE * 1.5)}px;\n color: ${({ theme }) => theme.color.text.primary};\n white-space: nowrap;\n ${paragraphMixins.md};\n line-height: 1;\n ${({ breakWord }) =>\n breakWord\n ? `white-space: normal;\n overflow-wrap: break-word;`\n : ''}\n`;\n\nexport default TableCell;\n\nconst CellTitleContainer = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst CellTitle = styled(Paragraph).attrs({ color: 'primary' })`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n`;\n\ninterface TableCellTitleProps extends ComponentPropsWithoutRef<'div'> {\n subtitle?: ReactNode;\n}\n\nexport const TableCellTitle = ({ children, subtitle, ...elemProps }: TableCellTitleProps) => {\n return (\n <CellTitleContainer {...elemProps}>\n <CellTitle>{children}</CellTitle>\n {subtitle && <Paragraph>{subtitle}</Paragraph>}\n </CellTitleContainer>\n );\n};\n\nexport const TableTD = styled(TableCell)<{ unclickable?: boolean }>`\n white-space: normal;\n overflow-wrap: break-word;\n ${(props) =>\n props.unclickable &&\n css`\n cursor: default;\n `}\n`;\n\nexport const TableIconTD = styled(TableTD)`\n text-align: right;\n line-height: 0; /* To center icon; cannot use flex here */\n padding: 0;\n padding-left: ${Spacing[4]};\n width: 36px;\n`;\n\nexport const TableActionTD = styled(TableTD)`\n text-align: right;\n padding: 0;\n padding-right: ${Spacing[4]};\n width: 48px;\n`;\n\nexport const StickyTD = styled(TableTD)<{\n left?: number;\n hasRightBorder?: boolean;\n}>`\n position: sticky;\n left: ${({ left = 0 }) => `${left}px`}; // Default to 0 if not specified\n background-color: ${({ theme }) => theme.color.background.primary};\n\n ${({ hasRightBorder, theme }) =>\n hasRightBorder && `border-right: 2px solid ${theme.color.border.primary};`}\n z-index: 2;\n`;\n\nexport const StickyTH = styled(TableTH)<{\n left?: number;\n hasRightBorder?: boolean;\n size?: 'sm' | 'md';\n}>`\n position: sticky;\n left: ${({ left = 0 }) => `${left}px`}; // Default to 0 if not specified\n z-index: 2;\n max-width: 10%;\n background-color: ${({ theme }) => theme.color.background.secondary};\n ${({ hasRightBorder, theme }) =>\n hasRightBorder && `border-right: 2px solid ${theme.color.border.primary};`}\n`;\n\nexport const TableTR = styled(TableRow)<{ disableHoverBackground?: boolean; $isActive?: boolean }>`\n ${({ disableHoverBackground }) =>\n disableHoverBackground &&\n css`\n &:hover {\n background-color: transparent !important;\n }\n `}\n\n ${({ $isActive }) =>\n $isActive &&\n css`\n background-color: ${({ theme }) => theme.color.background.highlight};\n &:hover {\n background-color: ${({ theme }) => theme.color.background.highlight};\n }\n `}\n\n ${({ onClick, disableHoverBackground, $isActive }) =>\n onClick != null &&\n !disableHoverBackground &&\n !$isActive &&\n css`\n cursor: pointer;\n :hover {\n background-color: ${({ theme }) => theme.color.background.highlight};\n }\n transition-duration: ${TransitionDuration.Fast};\n `}\n`;\n","import styled, { css } from 'styled-components';\n\ninterface TableHeadProps {\n sticky?: boolean;\n}\n\nconst TableHead = styled.thead.attrs({ role: 'rowgroup' })<TableHeadProps>`\n display: table-header-group;\n ${({ sticky }) =>\n sticky &&\n css`\n position: sticky;\n top: 0;\n z-index: 1;\n `}\n`;\n\nexport default TableHead;\n","import styled from 'styled-components';\n\nconst TableBody = styled.tbody.attrs({ role: 'rowgroup' })`\n display: table-row-group;\n`;\n\nexport default TableBody;\n","import type { FC, PropsWithChildren, ReactNode } from 'react';\nimport styled, { keyframes } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { Spinner } from 'design-system/components/Spinner';\nimport Table, { TableHead, TableRow } from 'design-system/components/Table';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport { fadeIn } from 'design-system/variables/keyframes';\n\n// `visible` rather than a narrower opt-out because CSS blockifies the other axis: any\n// `overflow-x` other than `visible`/`clip` forces `overflow-y` to compute to `auto` too, which\n// makes this element the scrollport that descendant sticky offsets resolve against.\nconst Container = styled.div<{ maxHeight?: number; $scrollsHorizontally: boolean }>`\n position: relative;\n z-index: 0;\n overflow-x: ${({ $scrollsHorizontally }) => ($scrollsHorizontally ? 'auto' : 'visible')};\n ${({ maxHeight }) => {\n if (maxHeight != null) {\n return `max-height: ${maxHeight}px;`;\n }\n }}\n `;\n\nconst slideKeyframes = keyframes`\n 0% {\n transform: translateX(-50%) scaleX(0);\n }\n 50% {\n transform: translateX(0) scaleX(1);\n }\n 100% {\n transform: translateX(50%) scaleX(0);\n }\n `;\n\nconst Loader = styled.div`\n position: absolute;\n z-index: ${Z_INDICES.loadingOverlays};\n border-bottom: 3px solid ${({ theme }) => theme.color.primary.brand};\n width: 100%;\n \n animation: ${slideKeyframes} 3s infinite cubic-bezier(0.5, 0, 0.5, 1);\n `;\n\nconst Overlay = styled.div`\n position: absolute;\n z-index: ${Z_INDICES.loadingOverlays};\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background: ${({ theme }) => theme.color.primary.white};\n opacity: 50%;\n `;\n\nconst SpinnerWrapper = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: ${Spacing[5]} 0;\n animation: ${fadeIn} 1s;\n animation-delay: 0.5s;\n animation-fill-mode: backwards;\n `;\n\nconst TableSpinner = styled(Spinner)`\n svg {\n width: 120px;\n height: 120px;\n }\n \n path {\n stroke: ${Color.CorePurple500};\n stroke-width: 0.46;\n }\n `;\n\ninterface TableLayoutProps {\n className?: string;\n containerMaxHeight?: number;\n /**\n * When false, the container does not scroll horizontally and an ancestor is expected to.\n * Sticky offsets inside the table then resolve against that ancestor's scrollport rather\n * than against the container.\n */\n containerScrollsHorizontally?: boolean;\n dataTest?: string;\n headerTR: JSX.Element;\n isEmpty?: boolean;\n isLoading?: boolean;\n nullState: ReactNode;\n showHeader?: boolean;\n size?: 'sm' | 'md';\n stickyHeader?: boolean;\n}\n\nconst TableLayout: FC<PropsWithChildren<TableLayoutProps>> = ({\n children,\n className,\n containerMaxHeight,\n containerScrollsHorizontally = true,\n dataTest,\n headerTR,\n isEmpty,\n isLoading,\n nullState,\n showHeader,\n size = 'md',\n stickyHeader = false,\n}) => {\n if (isEmpty && !showHeader) {\n if (isLoading) {\n return (\n <SpinnerWrapper\n role='status'\n aria-live='polite'\n aria-busy='true'\n aria-label='Loading...'\n data-loading-indicator='true'\n >\n <TableSpinner size='md' />\n </SpinnerWrapper>\n );\n } else {\n return (\n <Container data-test={dataTest} $scrollsHorizontally={containerScrollsHorizontally}>\n {nullState}\n </Container>\n );\n }\n }\n\n return (\n <Container\n data-test={dataTest}\n maxHeight={containerMaxHeight}\n className={className}\n $scrollsHorizontally={containerScrollsHorizontally}\n >\n {isLoading && <Loader data-test='table-layout__loader' />}\n {isLoading && <Overlay />}\n\n <Table size={size} aria-busy={isLoading || undefined}>\n <TableHead sticky={stickyHeader}>\n <TableRow>{headerTR}</TableRow>\n </TableHead>\n {!isEmpty && children}\n </Table>\n\n {isEmpty && nullState}\n </Container>\n );\n};\n\nexport default TableLayout;\n"],"mappings":"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"}
@@ -3,20 +3,20 @@ import "./variables/effect.mjs";
3
3
  import "./variables/transitions.mjs";
4
4
  import { paragraphMixins } from "./mixins/text.mjs";
5
5
  import { n as Stack, t as HStack } from "./Stack-Bl54WmhY.mjs";
6
- import { a as Tooltip } from "./Tooltip-C6AR1xT-.mjs";
6
+ import { a as Tooltip } from "./Tooltip-BvDbmXak.mjs";
7
7
  import { findIndexByKey, moveItemByIndex } from "./lib/reorderItems.mjs";
8
8
  import { useScrollOverflow } from "./lib/useScrollOverflow.mjs";
9
9
  import { Z_INDICES } from "./lib/zindex.mjs";
10
- import { t as IconButton } from "./IconButton-CIWiEsS-.mjs";
11
- import { n as DropdownMenu_default } from "./DropdownMenu-DGYexb7s.mjs";
10
+ import { t as IconButton } from "./IconButton-P8w0JDI5.mjs";
11
+ import { n as DropdownMenu_default } from "./DropdownMenu-D25WBCah.mjs";
12
12
  import { t as FormGroupContext } from "./useFormGroup-DWVW7A9f.mjs";
13
- import { h as Table, m as TableHeaderCell, n as TableBody, p as TableRow, r as TableHead, s as TableCell } from "./Table-D8IcpACv.mjs";
14
- import { n as CaretButton, t as Combobox } from "./Combobox-BdqU5WLG.mjs";
13
+ import { h as Table, m as TableHeaderCell, n as TableBody, p as TableRow, r as TableHead, s as TableCell } from "./Table-BfontAeY.mjs";
14
+ import { n as CaretButton, t as Combobox } from "./Combobox-B6JyLog8.mjs";
15
15
  import { s as Popover_default } from "./Popover-BkDpDdaO.mjs";
16
- import { t as Container } from "./FormControl-B28qa7aQ.mjs";
16
+ import { t as Container } from "./FormControl-CFU9uKF7.mjs";
17
17
  import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
18
18
  import styled, { css } from "styled-components";
19
- import { jsx, jsxs } from "react/jsx-runtime";
19
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
20
20
  import { Children, cloneElement, createContext, isValidElement, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
21
21
  import { DragIcon } from "@persona/icons";
22
22
  import { CircleAlertIcon as CircleAlertIcon$1, MoreIcon as MoreIcon$1, XIcon as XIcon$1 } from "@persona/icons/12px";
@@ -518,7 +518,7 @@ const TableBoxCell = ({ children, itemId = "", value = "", columnKey, errorText,
518
518
  ...columnConfig,
519
519
  ...inlineEditConfigOverride
520
520
  } : columnConfig;
521
- if (inlineEditConfig?.type === "combobox" && (context.hasHorizontalOverflow || inlineEditConfig?.fullWidthComboboxDropdown)) inlineEditConfig = {
521
+ if (inlineEditConfig?.type === "combobox" && (context.clipsOverflow || inlineEditConfig?.fullWidthComboboxDropdown)) inlineEditConfig = {
522
522
  ...inlineEditConfig,
523
523
  useComboboxPortal: true
524
524
  };
@@ -1087,42 +1087,58 @@ const useTableBoxDragAndDrop = ({ tableRef, reorderConfig }) => {
1087
1087
  const TableBoxContext = createContext(null);
1088
1088
  const DRAG_HANDLE_CELL_WIDTH = 24;
1089
1089
  const RIGHT_FADE_WIDTH = 48;
1090
+ const CONTAINER_BORDER_WIDTH_PX = 1;
1091
+ const STICKY_COLUMN_Z_INDEX = Z_INDICES.sticky;
1092
+ const BODY_FADE_Z_INDEX = Z_INDICES.sticky + 1;
1093
+ const PINNED_ACTIONS_Z_INDEX = Z_INDICES.sticky + 2;
1094
+ const STICKY_HEADER_Z_INDEX = Z_INDICES.sticky + 3;
1095
+ const STICKY_CORNER_Z_INDEX = Z_INDICES.sticky + 4;
1096
+ const HEADER_FADE_Z_INDEX = Z_INDICES.sticky + 5;
1090
1097
  const HEADER_HEIGHT_PX = parseInt(Spacing[1], 10) * 2 + parseInt(Typography.TextSmall.lineHeight, 10) + 1;
1091
1098
  const TableScrollContainer = styled.div`
1092
- border: 1px solid ${Color.BorderDivider};
1099
+ border: ${CONTAINER_BORDER_WIDTH_PX}px solid ${Color.BorderDivider};
1093
1100
  border-radius: ${BorderRadius.Md};
1094
1101
  overflow-x: ${({ $fixedLayout, $hasHorizontalOverflow }) => $fixedLayout ? "visible" : $hasHorizontalOverflow ? "auto" : "visible"};
1102
+ overflow-y: ${({ $maxHeight }) => $maxHeight != null ? "auto" : "visible"};
1095
1103
  overscroll-behavior-x: none;
1104
+ ${({ $maxHeight }) => $maxHeight != null && css`
1105
+ max-height: ${typeof $maxHeight === "number" ? `${$maxHeight}px` : $maxHeight};
1106
+ `}
1096
1107
  `;
1097
1108
  const ScrollAffordanceWrapper = styled.div`
1098
1109
  position: relative;
1099
1110
  `;
1100
1111
  const RightFadeOverlay = styled.div`
1101
1112
  position: absolute;
1102
- top: 1px;
1103
- right: 1px;
1104
- bottom: 1px;
1113
+ right: ${({ $scrollbarWidth }) => CONTAINER_BORDER_WIDTH_PX + $scrollbarWidth}px;
1105
1114
  width: ${RIGHT_FADE_WIDTH}px;
1106
- /* Sits above the sticky first column (z-index 2) but below the pinned
1107
- row actions (z-index 4) so action buttons stay legible. */
1108
- z-index: 3;
1109
1115
  pointer-events: none;
1110
- background:
1111
- linear-gradient(to right, transparent, ${Color.BackgroundSecondary}) top left / 100%
1112
- ${Math.max(0, HEADER_HEIGHT_PX - 1)}px no-repeat,
1113
- linear-gradient(to right, transparent, ${Color.BackgroundPrimary}) bottom left / 100%
1114
- calc(100% - ${HEADER_HEIGHT_PX}px) no-repeat;
1115
- border-top-right-radius: ${BorderRadius.Md};
1116
- border-bottom-right-radius: ${BorderRadius.Md};
1117
1116
  opacity: ${({ $visible }) => $visible ? 1 : 0};
1118
1117
  transition: opacity ${"200ms"} ease-out;
1119
1118
  `;
1120
- const stickyContentColumn = (isReorderable) => css`
1119
+ const HeaderFadeOverlay = styled(RightFadeOverlay).attrs({ "data-scroll-affordance": "header-fade" })`
1120
+ top: ${CONTAINER_BORDER_WIDTH_PX}px;
1121
+ height: ${Math.max(0, HEADER_HEIGHT_PX - CONTAINER_BORDER_WIDTH_PX)}px;
1122
+ z-index: ${HEADER_FADE_Z_INDEX};
1123
+ background: linear-gradient(to right, transparent, ${Color.BackgroundSecondary});
1124
+ border-top-right-radius: ${BorderRadius.Md};
1125
+ `;
1126
+ const BodyFadeOverlay = styled(RightFadeOverlay).attrs({ "data-scroll-affordance": "body-fade" })`
1127
+ top: ${({ $hideHeader }) => $hideHeader ? `${CONTAINER_BORDER_WIDTH_PX}px` : `${CONTAINER_BORDER_WIDTH_PX + HEADER_HEIGHT_PX}px`};
1128
+ bottom: ${({ $scrollbarHeight }) => CONTAINER_BORDER_WIDTH_PX + $scrollbarHeight}px;
1129
+ z-index: ${BODY_FADE_Z_INDEX};
1130
+ background: linear-gradient(to right, transparent, ${Color.BackgroundPrimary});
1131
+ border-bottom-right-radius: ${BorderRadius.Md};
1132
+ ${({ $hideHeader }) => $hideHeader && css`
1133
+ border-top-right-radius: ${BorderRadius.Md};
1134
+ `}
1135
+ `;
1136
+ const stickyContentColumn = (isReorderable, stickyHeader) => css`
1121
1137
  && thead th:first-child,
1122
1138
  && tbody td:first-child {
1123
1139
  position: sticky;
1124
1140
  left: 0;
1125
- z-index: 2;
1141
+ z-index: ${STICKY_COLUMN_Z_INDEX};
1126
1142
  }
1127
1143
 
1128
1144
  && tbody td:first-child {
@@ -1134,13 +1150,26 @@ const stickyContentColumn = (isReorderable) => css`
1134
1150
  && tbody td:nth-child(2) {
1135
1151
  position: sticky;
1136
1152
  left: ${DRAG_HANDLE_CELL_WIDTH}px;
1137
- z-index: 2;
1153
+ z-index: ${STICKY_COLUMN_Z_INDEX};
1138
1154
  }
1139
1155
 
1140
1156
  && tbody td:nth-child(2) {
1141
1157
  background-color: inherit;
1142
1158
  }
1143
1159
  `}
1160
+
1161
+ ${stickyHeader && css`
1162
+ && thead th {
1163
+ position: sticky;
1164
+ top: 0;
1165
+ z-index: ${STICKY_HEADER_Z_INDEX};
1166
+ background-color: ${Color.BackgroundSecondary};
1167
+ }
1168
+
1169
+ ${isReorderable ? `&& thead th:nth-child(-n+2)` : `&& thead th:first-child`} {
1170
+ z-index: ${STICKY_CORNER_Z_INDEX};
1171
+ }
1172
+ `}
1144
1173
  `;
1145
1174
  const StyledTable = styled(Table)`
1146
1175
  caret-color: ${Color.BorderFocus};
@@ -1149,10 +1178,19 @@ const StyledTable = styled(Table)`
1149
1178
  background: ${Color.BackgroundLabelPurple};
1150
1179
  }
1151
1180
 
1152
- ${({ $fixedLayout, $isReorderable }) => $fixedLayout ? css`
1181
+ ${({ $fixedLayout, $isReorderable, $stickyHeader }) => $fixedLayout ? css`
1153
1182
  /* Legacy: truncate long cell content to container width. */
1154
1183
  table-layout: fixed;
1155
- ` : stickyContentColumn($isReorderable)}
1184
+
1185
+ ${$stickyHeader && css`
1186
+ && thead th {
1187
+ position: sticky;
1188
+ top: 0;
1189
+ z-index: ${STICKY_HEADER_Z_INDEX};
1190
+ background-color: ${Color.BackgroundSecondary};
1191
+ }
1192
+ `}
1193
+ ` : stickyContentColumn($isReorderable, $stickyHeader)}
1156
1194
 
1157
1195
  /* Lock column widths while inline editing to prevent layout reflow. */
1158
1196
  ${({ $fixedLayout, $lockedWidth }) => !$fixedLayout && $lockedWidth != null && css`
@@ -1200,7 +1238,7 @@ const DragHandleHeaderCell = styled(StyledTableHeaderCell)`
1200
1238
  const PinnedActionsCell = styled(TableCell)`
1201
1239
  position: sticky;
1202
1240
  right: 0;
1203
- z-index: 4;
1241
+ z-index: ${PINNED_ACTIONS_Z_INDEX};
1204
1242
  background: transparent;
1205
1243
  border-bottom: 1px solid ${Color.BorderHairline};
1206
1244
  padding: 0;
@@ -1209,7 +1247,9 @@ const PinnedActionsCell = styled(TableCell)`
1209
1247
  `;
1210
1248
  const EmptyStateCell = styled(TableCell)`
1211
1249
  ${paragraphMixins.sm};
1212
- padding: ${Spacing[2]};
1250
+ /* Same vertical padding as TableBoxCell so empty and populated tables share a
1251
+ stable row height. */
1252
+ padding: ${Spacing[1]} ${Spacing[2]};
1213
1253
  color: ${Color.TextSecondary};
1214
1254
  border-bottom: none;
1215
1255
  `;
@@ -1222,14 +1262,14 @@ const EmptyStateButton = styled.button`
1222
1262
  cursor: pointer;
1223
1263
  ${focusOutline}
1224
1264
  `;
1225
- const TableBox = ({ children, emptyText, selectedKey, defaultSelectedKey, columns, onSelectionChange, selectionMode = "none", newRowId, onCreateNewRow: onCreateNewRowProp, disabled = false, reorderConfig, disableHorizontalScroll: disableHorizontalScrollProp = false, hideHeader = false, "aria-label": ariaLabel, ...props }) => {
1265
+ const TableBox = ({ children, emptyText, selectedKey, defaultSelectedKey, columns, onSelectionChange, selectionMode = "none", newRowId, onCreateNewRow: onCreateNewRowProp, disabled = false, reorderConfig, disableHorizontalScroll: disableHorizontalScrollProp = false, hideHeader = false, maxHeight, "aria-label": ariaLabel, ...props }) => {
1226
1266
  const tableRef = useRef(null);
1227
1267
  const scrollContainerRef = useRef(null);
1228
1268
  const tableBoxId = useMemo(() => uniqueId("tablebox-"), []);
1229
1269
  const rowDropdownId = `${tableBoxId}-row-dropdown`;
1230
1270
  const hasInlineEditableColumn = columns.some((c) => c.inlineEditConfig != null);
1231
1271
  const disableHorizontalScroll = disableHorizontalScrollProp || hasInlineEditableColumn;
1232
- const { hasHorizontalOverflow, hasMoreScrollRight } = useScrollOverflow(scrollContainerRef, { enabled: !disableHorizontalScroll });
1272
+ const { hasHorizontalOverflow, hasMoreScrollRight, scrollbarSize } = useScrollOverflow(scrollContainerRef, { enabled: !disableHorizontalScroll });
1233
1273
  const { lockedColWidths, setColumnWidthsLocked } = useColumnWidthLock(tableRef, { enabled: !disableHorizontalScroll });
1234
1274
  const [internalSelectedKey, setInternalSelectedKey] = useState(defaultSelectedKey ?? null);
1235
1275
  const [shouldCreateNewRowAfterCommit, setShouldCreateNewRowAfterCommit] = useState(false);
@@ -1271,6 +1311,7 @@ const TableBox = ({ children, emptyText, selectedKey, defaultSelectedKey, column
1271
1311
  });
1272
1312
  const isReorderable = !disabled && reorderConfig != null;
1273
1313
  const hasActionsColumn = !disableHorizontalScroll;
1314
+ const stickyHeader = maxHeight != null && !hideHeader;
1274
1315
  const contextValue = {
1275
1316
  disabled,
1276
1317
  newRowId,
@@ -1285,6 +1326,7 @@ const TableBox = ({ children, emptyText, selectedKey, defaultSelectedKey, column
1285
1326
  draggedDirection,
1286
1327
  hasActionsColumn,
1287
1328
  hasHorizontalOverflow,
1329
+ clipsOverflow: hasHorizontalOverflow || maxHeight != null,
1288
1330
  setColumnWidthsLocked,
1289
1331
  scheduleCreateNewRowAfterCommit: onCreateNewRowProp ? scheduleCreateNewRowAfterCommit : void 0
1290
1332
  };
@@ -1295,6 +1337,7 @@ const TableBox = ({ children, emptyText, selectedKey, defaultSelectedKey, column
1295
1337
  ref: scrollContainerRef,
1296
1338
  $fixedLayout: disableHorizontalScroll,
1297
1339
  $hasHorizontalOverflow: hasHorizontalOverflow,
1340
+ $maxHeight: maxHeight,
1298
1341
  children: /* @__PURE__ */ jsxs(StyledTable, {
1299
1342
  ref: tableRef,
1300
1343
  size: "md",
@@ -1304,6 +1347,7 @@ const TableBox = ({ children, emptyText, selectedKey, defaultSelectedKey, column
1304
1347
  $hasHorizontalOverflow: hasHorizontalOverflow,
1305
1348
  $fixedLayout: disableHorizontalScroll,
1306
1349
  $hideHeader: hideHeader,
1350
+ $stickyHeader: stickyHeader,
1307
1351
  $lockedWidth: lockedColWidths != null ? lockedColWidths.reduce((sum, w) => sum + w, 0) : void 0,
1308
1352
  ...props,
1309
1353
  children: [
@@ -1329,10 +1373,17 @@ const TableBox = ({ children, emptyText, selectedKey, defaultSelectedKey, column
1329
1373
  }) : children })
1330
1374
  ]
1331
1375
  })
1332
- }), !disableHorizontalScroll && /* @__PURE__ */ jsx(RightFadeOverlay, {
1376
+ }), !disableHorizontalScroll && /* @__PURE__ */ jsxs(Fragment, { children: [!hideHeader && /* @__PURE__ */ jsx(HeaderFadeOverlay, {
1377
+ "aria-hidden": "true",
1378
+ $visible: hasMoreScrollRight,
1379
+ $scrollbarWidth: scrollbarSize.vertical
1380
+ }), /* @__PURE__ */ jsx(BodyFadeOverlay, {
1333
1381
  "aria-hidden": "true",
1334
- $visible: hasMoreScrollRight
1335
- })] });
1382
+ $visible: hasMoreScrollRight,
1383
+ $hideHeader: hideHeader,
1384
+ $scrollbarWidth: scrollbarSize.vertical,
1385
+ $scrollbarHeight: scrollbarSize.horizontal
1386
+ })] })] });
1336
1387
  return /* @__PURE__ */ jsx(TableBoxContext.Provider, {
1337
1388
  value: contextValue,
1338
1389
  children: isReorderable ? /* @__PURE__ */ jsxs(DndContext, {
@@ -1353,4 +1404,4 @@ TableBox.Cell = TableBoxCell;
1353
1404
  //#endregion
1354
1405
  export { TableBoxContext as n, TableBox as t };
1355
1406
 
1356
- //# sourceMappingURL=TableBox-luasMC73.mjs.map
1407
+ //# sourceMappingURL=TableBox-bmrKh_ax.mjs.map