@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ListBox-TrL3Tb7X.mjs","names":["ListBox","Button","FormControlContainer","DropdownMenu","MoreIcon","XIcon","Popover","Section","ListBox","BaseListBox"],"sources":["../components/ListBox/ListBox.tsx","../components/ListBox/LogicRow.tsx","../components/ListBox/index.ts"],"sourcesContent":["import uniqueId from 'lodash/fp/uniqueId';\nimport {\n type ComponentPropsWithoutRef,\n createContext,\n type PropsWithChildren,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {\n DropIndicator,\n type DroppableCollectionReorderEvent,\n GridList,\n GridListItem,\n Header,\n ListBoxSection as Section,\n useDragAndDrop,\n} from 'react-aria-components';\nimport styled, { css } from 'styled-components';\n\nimport { BorderRadius, Color, Spacing, Typography } from '@persona/design-tokens';\nimport { DragIcon } from '@persona/icons';\nimport { MoreIcon, XIcon } from '@persona/icons/12px';\nimport Button, { type ButtonProps, IconButton } from 'design-system/components/Button';\nimport { FormGroupContext } from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport DropdownMenu from 'design-system/components/DropdownMenu';\nimport { Container as FormControlContainer } from 'design-system/components/FormControl';\nimport { ListItem, MenuHeading, type MenuItemProps } from 'design-system/components/Menu';\nimport Popover from 'design-system/components/Popover/Popover';\nimport Stack from 'design-system/components/Stack';\nimport { HeadlessAriaButton } from 'design-system/lib/HeadlessAriaButton';\nimport { isFocused, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\nimport { findIndexByKey, moveItemByIndex } from 'design-system/lib/reorderItems';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\n// Context for sharing ListBox configuration with child items\ninterface ListBoxContextValue {\n size: 'sm' | 'md';\n listBoxId: string;\n setItemHasActionsOrDelete: (value: boolean) => void;\n}\n\nconst ListBoxContext = createContext<ListBoxContextValue | null>(null);\n\n/**\n * Hook to access ListBox context values (like size) from child components\n */\nexport const useListBoxContext = () => {\n return useContext(ListBoxContext);\n};\n\nexport interface ListBoxProps<T extends object> extends Omit<\n ComponentPropsWithoutRef<typeof GridList<T>>,\n 'slot' | 'autoFocus' | 'orientation' | 'shouldFocusWrap' | 'dragAndDropHooks' | 'layout'\n> {\n /**\n * Called when \"Add\" button is clicked. Only renders \"Add\" button if this prop is present.\n */\n onAdd?: ButtonProps['onClick'];\n\n /**\n * Called when \"Delete\" button is clicked. Only renders \"Delete\" button if this prop is present.\n */\n onDelete?: (selectedKeys: ListBoxProps<T>['selectedKeys']) => void;\n\n /**\n * Whether or not delete button should be disabled.\n */\n deleteDisabled?: boolean;\n\n /**\n * Whether or not the Add/Delete buttons should be shown.\n */\n editable?: boolean;\n\n /**\n * Text to display if no options are available.\n */\n emptyText?: string;\n\n /**\n * Whether or not to expand the box to the full width of the container.\n */\n fullWidth?: boolean;\n\n /**\n * When provided, enables drag and drop functionality.\n */\n reorderConfig?: {\n /**\n * Called when items are reordered via drag and drop. Receives the reordered\n * array of items when an item is dropped.\n */\n onReorder: (reorderedItems: T[]) => void;\n /**\n * The name of the property on the item that was passed as the key to\n * `ListBox.Item`. For exanple, if the item is`{ id: '1', name: 'First Item' }`,\n * and you passed ListBox.Item `key={item.id}`, then the `itemKeyPath`\n * should be `'id'`.\n */\n itemKeyPath: string;\n };\n\n /**\n * Size of the list box.\n */\n size?: 'sm' | 'md';\n\n /**\n * Caps the list height and scrolls vertically inside the bordered container.\n */\n maxHeight?: number | string;\n}\n\nconst StyledListBox = styled(GridList)<{\n fullWidth?: boolean;\n $size?: 'sm' | 'md';\n $maxHeight?: number | string;\n}>`\n ${({ $size }) => ($size === 'sm' ? paragraphMixins.sm : paragraphMixins.md)};\n\n box-sizing: border-box;\n background: ${Color.BackgroundPrimary};\n border-radius: ${BorderRadius.Md};\n border: 1px solid ${Color.BorderDivider};\n padding: ${Spacing[1]};\n\n ${({ $maxHeight }) =>\n $maxHeight != null &&\n css`\n max-height: ${typeof $maxHeight === 'number' ? `${$maxHeight}px` : $maxHeight};\n overflow-y: auto;\n `}\n\n ${({ fullWidth }) =>\n !fullWidth &&\n css`\n width: 204px;\n `}\n`;\n\nconst StyledDropIndicator = styled(DropIndicator)`\n height: 2px;\n background: ${({ theme }) => theme.color.text.brand};\n`;\n\nconst ListBoxEmptyState = styled.button<{ $size?: 'sm' | 'md' }>`\n ${({ $size }) => ($size === 'sm' ? paragraphMixins.sm : paragraphMixins.md)};\n\n background-color: transparent;\n outline: none;\n border: none;\n padding: ${Spacing[1]};\n color: ${Color.TextSecondary};\n`;\n\nconst ListBoxEmptyStateButton = styled(ListBoxEmptyState)`\n &:hover {\n cursor: pointer;\n }\n`;\n\nexport const ListBox = <T extends object>({\n children,\n onAdd,\n onDelete,\n emptyText,\n deleteDisabled,\n selectedKeys,\n onSelectionChange,\n editable = true,\n size = 'md',\n reorderConfig,\n items,\n maxHeight,\n ...props\n}: PropsWithChildren<ListBoxProps<T>>) => {\n const listBoxRef = useRef<HTMLDivElement>(null);\n const listBoxId = useMemo(() => uniqueId('listbox-'), []);\n const rowDropdownId = `${listBoxId}-row-dropdown`;\n const [itemHasActionsOrDelete, setItemHasActionsOrDelete] = useState(false);\n\n const { dragAndDropHooks } = useDragAndDrop({\n getItems: (keys) =>\n Array.from(keys).map((key) => ({\n 'text/plain': String(key),\n })),\n getAllowedDropOperations: () => ['move'],\n onReorder: (e: DroppableCollectionReorderEvent) => {\n if (!reorderConfig || !items) {\n return;\n }\n const { onReorder, itemKeyPath } = reorderConfig;\n if (!onReorder || !itemKeyPath) {\n return;\n }\n\n const draggedKey = Array.from(e.keys)[0];\n if (draggedKey == null) {\n return;\n }\n\n const itemsArr = Array.from(items);\n const fromIndex = findIndexByKey(itemsArr, itemKeyPath, String(draggedKey));\n const targetIndex = findIndexByKey(itemsArr, itemKeyPath, String(e.target.key));\n if (fromIndex === -1 || targetIndex === -1) {\n return;\n }\n\n // After removing the dragged item, a target that sat after it shifts down by one.\n const targetIndexAfterRemoval = fromIndex < targetIndex ? targetIndex - 1 : targetIndex;\n const toIndex =\n e.target.dropPosition === 'before' ? targetIndexAfterRemoval : targetIndexAfterRemoval + 1;\n\n onReorder(moveItemByIndex(itemsArr, fromIndex, toIndex));\n },\n renderDropIndicator: (target) => <StyledDropIndicator target={target} />,\n });\n\n // If row dropdowns are open, deselect items (which also closes the dropdown) when clicking outside the ListBox\n const handleOutsideClick = useCallback(\n (event: MouseEvent) => {\n const rowDropdownIsOpen = document.querySelector(\n `[id=\"${rowDropdownId}\"][data-state=\"open\"]`,\n );\n if (!rowDropdownIsOpen) {\n return;\n }\n\n const target = event.target as HTMLElement;\n const isOutsideListBox = listBoxRef.current && !listBoxRef.current.contains(target);\n const isOnRowDropdownContent = target.closest(`[id=\"${rowDropdownId}\"]`);\n\n // Only deselect if:\n // 1. Click is outside the ListBox\n // 2. Click is not on popover content\n // 3. There are selected items\n // 4. onSelectionChange is available (to allow deselection)\n if (\n isOutsideListBox &&\n !isOnRowDropdownContent &&\n selectedKeys != null &&\n selectedKeys !== 'all' &&\n Array.from(selectedKeys).length > 0 &&\n onSelectionChange\n ) {\n // Deselect all items when clicking outside (but not on popover content)\n onSelectionChange(new Set());\n }\n },\n [selectedKeys, onSelectionChange, rowDropdownId],\n );\n\n // Set up outside click listener\n useEffect(() => {\n document.addEventListener('mousedown', handleOutsideClick);\n return () => {\n document.removeEventListener('mousedown', handleOutsideClick);\n };\n }, [handleOutsideClick]);\n\n return (\n <ListBoxContext.Provider value={{ size, listBoxId, setItemHasActionsOrDelete }}>\n <Stack spacing={Spacing[1]}>\n <StyledListBox\n ref={listBoxRef}\n onSelectionChange={onSelectionChange}\n renderEmptyState={() =>\n onAdd ? (\n <ListBoxEmptyStateButton as='button' onClick={onAdd} $size={size}>\n {emptyText || 'Click to add an option'}\n </ListBoxEmptyStateButton>\n ) : (\n <ListBoxEmptyState type='button' $size={size}>\n {emptyText || 'No options.'}\n </ListBoxEmptyState>\n )\n }\n selectedKeys={selectedKeys}\n $size={size}\n $maxHeight={maxHeight}\n items={items}\n // Without this, clicking delete triggers item selection (on press down)\n // before the delete/action callback fires (on click/press up)\n {...(itemHasActionsOrDelete && { shouldSelectOnPressUp: true })}\n {...(reorderConfig && { dragAndDropHooks })}\n {...props}\n >\n {children}\n </StyledListBox>\n {editable && (onAdd || onDelete) && (\n <Stack direction='horizontal' spacing={Spacing[1]}>\n {onAdd && (\n <Button size='sm' variant='basic' width='auto' onClick={onAdd}>\n Add\n </Button>\n )}\n {onDelete && (\n <Button\n size='sm'\n variant='basic'\n width='auto'\n onClick={() => onDelete?.(selectedKeys)}\n disabled={deleteDisabled || selectedKeys == null}\n >\n Delete\n </Button>\n )}\n </Stack>\n )}\n </Stack>\n </ListBoxContext.Provider>\n );\n};\n\nconst IconButtonWidth = 16;\nconst BackgroundFadeWidth = parseInt(Spacing[3]);\n\nconst RowActionsContainer = styled('div')`\n width: ${BackgroundFadeWidth + parseInt(Spacing[1]) + IconButtonWidth + parseInt(Spacing[2])}px;\n position: absolute;\n right: 0;\n top: 0;\n height: 100%;\n padding-right: ${Spacing[2]};\n display: flex;\n align-items: center;\n justify-content: end;\n`;\n\nconst StyledItem = styled(ListItem)<{\n $hasActions?: boolean;\n $hasDelete?: boolean;\n}>`\n position: relative;\n padding: ${Spacing[1]} ${Spacing[2]};\n overflow: hidden;\n white-space: nowrap;\n\n ${RowActionsContainer} {\n background: linear-gradient(\n to right,\n transparent,\n ${Color.BackgroundPrimary} ${BackgroundFadeWidth}px\n );\n }\n\n // If both actions and delete are present or only delete is present, hide actions by default, show on hover\n ${({ $hasActions, $hasDelete }) =>\n (($hasActions && $hasDelete) || (!$hasActions && $hasDelete)) &&\n css`\n ${RowActionsContainer} {\n opacity: 0;\n }\n `}\n\n // increase the width of the row actions container when both actions and delete are present\n ${({ $hasActions, $hasDelete }) =>\n $hasActions &&\n $hasDelete &&\n css`\n ${RowActionsContainer} {\n width: ${\n BackgroundFadeWidth + parseInt(Spacing[1]) + IconButtonWidth * 2 + parseInt(Spacing[2])\n }px;\n }\n `}\n\n &${isNotDisabled}${isHovered}:not([data-selected], [data-dragging]),\n &${isNotDisabled}${isFocused}:not([data-selected], [data-dragging]),\n &[data-hovered]:not([data-selected], [data-dragging]) {\n cursor: pointer;\n color: ${({ theme }) => theme.color.text.primary};\n background-color: ${Color.BackgroundSecondary};\n\n ${RowActionsContainer} {\n opacity: 1;\n background: linear-gradient(\n to right,\n transparent,\n ${Color.BackgroundSecondary} ${BackgroundFadeWidth}px\n );\n }\n }\n\n &[data-selected],\n &[data-selected]${isFocused}, &[data-selected]:focus,\n &${isNotDisabled}${isHovered}[data-selected] {\n outline: none;\n color: ${({ theme }) => theme.color.text.brand};\n background-color: ${({ theme }) => theme.color.background.highlight};\n\n ${RowActionsContainer} {\n opacity: 1;\n background: linear-gradient(\n to right,\n transparent,\n ${({ theme }) => theme.color.background.highlight} ${BackgroundFadeWidth}px\n );\n }\n }\n\n &[data-dragging] {\n opacity: 0.5;\n background-color: ${Color.BackgroundPrimary};\n }\n\n .react-aria-Section:not(:first-child) {\n margin-top: ${Spacing[1]};\n }\n`;\n\nconst ContentContainer = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n`;\n\n// The drag handle wraps a 16x16 icon in an HTML <button>. Without this, the\n// button inherits the row's line-height and the icon aligns to the text\n// baseline, leaving a descender gap below it — so the icon visually sits\n// above the row's center. Making the button itself a flex container forces\n// the icon to be centered within the button's box.\nconst DragHandle = styled(HeadlessAriaButton)`\n display: flex;\n align-items: center;\n`;\n\nconst TextContent = styled.span`\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst DropdownPopoverHeading = styled.div<{ $size: 'sm' | 'md' }>`\n ${({ $size }) => ($size === 'md' ? Typography.TextMediumBold : Typography.TextSmallBold)};\n border-bottom: 1px solid ${Color.BorderHairline};\n padding: ${Spacing[2]} ${Spacing[3]} ${Spacing[1]};\n`;\n\nconst DropdownPopoverContent = styled(Stack)`\n min-width: var(--radix-popover-trigger-width);\n padding: ${Spacing[3]};\n\n ${FormControlContainer} {\n min-width: 0;\n }\n`;\n\nconst DropdownPopoverFooter = styled.div`\n border-top: 1px solid ${Color.BorderHairline};\n padding: ${Spacing[1]};\n`;\n\nexport interface ListBoxItemProps extends ComponentPropsWithoutRef<typeof GridListItem> {\n /**\n * Actions to display in a dropdown menu.\n * Supports all props from `MenuItem`.\n */\n actions?: Array<\n {\n label: string;\n onClick: () => void;\n } & Omit<MenuItemProps, 'children'>\n >;\n\n /**\n * Called when the delete (X) icon is clicked. Only renders item-level delete icon if this prop is present.\n * Receives the item's id and the click event as parameters.\n */\n onDelete?: (id: string | number, e: React.MouseEvent<HTMLButtonElement>) => void;\n\n /**\n * Size of the list box item.\n */\n size?: 'sm' | 'md';\n\n /**\n * Form fields to be rendered inside a row dropdown popover.\n * The configField prop will be set to true for all fields via FormGroupContext.\n * Dropdown will be opened when the item is selected.\n */\n dropdownFormFields?: ReactNode;\n\n /**\n * Content to be rendered inside the row dropdown popover.\n * Dropdown will be opened when the item is selected.\n */\n dropdownContent?: ReactNode;\n\n /**\n * Optional heading text to display in the row dropdown popover.\n * Either dropdownFormFields or dropdownContent must also be provided,\n * otherwise the dropdown will not be rendered.\n */\n dropdownHeadingText?: string;\n\n /**\n * Footer to be rendered inside the row dropdown popover.\n * Either dropdownFormFields or dropdownContent must also be provided,\n * otherwise the dropdown will not be rendered.\n */\n dropdownFooter?: ReactNode;\n}\n\nconst ListBoxItem = ({\n children,\n actions,\n onDelete,\n size,\n dropdownHeadingText,\n dropdownFormFields,\n dropdownContent,\n dropdownFooter,\n ...props\n}: ListBoxItemProps) => {\n const context = useListBoxContext();\n // Use explicit prop if provided, otherwise fall back to context value, then default to 'md'\n const effectiveSize = size ?? context?.size ?? 'md';\n\n // Update context if this item has actions or onDelete\n useEffect(() => {\n if (context && (actions || onDelete)) {\n context.setItemHasActionsOrDelete(true);\n }\n }, [context, actions, onDelete]);\n\n // Only render dropdown if there are form fields or content provided, not if there's just a header or footer.\n const shouldRenderDropdown = dropdownFormFields || dropdownContent;\n\n const handleDelete = (e: React.MouseEvent<HTMLButtonElement>) => {\n // avoid triggering row selection\n e.preventDefault();\n e.stopPropagation();\n\n if (onDelete && props.id != null) {\n onDelete(props.id, e);\n }\n };\n\n return (\n <StyledItem\n as={GridListItem}\n $hasActions={actions && actions.length > 0}\n $hasDelete={!!onDelete}\n textValue={typeof children === 'string' ? children : undefined}\n size={effectiveSize}\n {...props}\n >\n {({ isSelected, allowsDragging }) => {\n const contentWithDragHandle = (\n <ContentContainer>\n {allowsDragging && (\n <DragHandle slot='drag' aria-label='Drag to reorder'>\n <DragIcon />\n </DragHandle>\n )}\n {typeof children === 'string' || typeof children === 'number' ? (\n <TextContent>{children}</TextContent>\n ) : (\n children\n )}\n {(onDelete || actions) && (\n <RowActionsContainer>\n {actions && (\n <DropdownMenu\n trigger={\n <IconButton aria-label='Actions'>\n <MoreIcon />\n </IconButton>\n }\n align='start'\n portal\n >\n {actions.map((action) => (\n <DropdownMenu.Item\n key={action.label}\n {...action}\n onClick={action.onClick}\n size={effectiveSize}\n >\n {action.label}\n </DropdownMenu.Item>\n ))}\n </DropdownMenu>\n )}\n {onDelete && (\n <IconButton aria-label='Delete' onClick={handleDelete}>\n <XIcon />\n </IconButton>\n )}\n </RowActionsContainer>\n )}\n </ContentContainer>\n );\n\n return shouldRenderDropdown ? (\n <Popover trigger={contentWithDragHandle} open={isSelected}>\n <Popover.Card\n id={`${context?.listBoxId}-row-dropdown`}\n noPadding\n style={{ zIndex: Z_INDICES.modalDropdown }}\n >\n {dropdownHeadingText && (\n <DropdownPopoverHeading $size={effectiveSize}>\n {dropdownHeadingText}\n </DropdownPopoverHeading>\n )}\n {dropdownFormFields && (\n <DropdownPopoverContent spacing={Spacing[2]}>\n <FormGroupContext.Provider\n value={{\n configField: true,\n labelTooltipZIndex: Z_INDICES.modalDropdownTooltip,\n }}\n >\n {dropdownFormFields}\n </FormGroupContext.Provider>\n </DropdownPopoverContent>\n )}\n {dropdownContent && (\n <DropdownPopoverContent spacing={Spacing[3]}>\n {dropdownContent}\n </DropdownPopoverContent>\n )}\n {dropdownFooter && <DropdownPopoverFooter>{dropdownFooter}</DropdownPopoverFooter>}\n </Popover.Card>\n </Popover>\n ) : (\n contentWithDragHandle\n );\n }}\n </StyledItem>\n );\n};\n\nconst StyledMenuHeading = styled(MenuHeading)`\n padding: ${Spacing[1]} ${Spacing[2]};\n`;\n\nconst ListBoxHeader = (props: ComponentPropsWithoutRef<typeof Header>) => {\n return <StyledMenuHeading as={Header} {...props} />;\n};\n\nListBox.Item = ListBoxItem;\n\nListBox.Section = Section;\n\nListBox.Header = ListBoxHeader;\n\nexport default ListBox;\n","import type { ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\nimport Sticker, {\n StickerContainer,\n StickerContentContainer,\n StyledTruncatedText,\n} from 'design-system/components/Sticker';\nimport { isFocused, isHovered } from 'design-system/lib/pseudoClass';\nimport type { InputSizes } from 'design-system/mixins/input';\n\nimport ListBox, { type ListBoxItemProps } from './ListBox';\n\nconst LogicRowSticker = styled(Sticker)`\n display: inline;\n height: initial;\n\n ${StickerContainer}, ${StickerContentContainer}, ${StyledTruncatedText} {\n display: inline;\n }\n`;\n\nconst LogicListBoxItem = styled(ListBox.Item)`\n padding: 0;\n\n &[data-selected],\n &[data-selected]${isFocused}, &[data-selected]:focus,\n &[data-selected]${isHovered}, &[data-selected]:hover,\n &[data-selected]:not(:disabled)${isHovered}, &[data-selected]:not(:disabled):hover {\n color: ${Color.TextPrimary};\n\n ${LogicRowSticker} {\n background-color: ${Color.BackgroundLabelPurple};\n }\n }\n\n &:hover:not([data-selected]) {\n ${LogicRowSticker} {\n background-color: ${Color.BackgroundLabelGreyHover};\n }\n }\n`;\n\nconst LogicRuleContainer = styled.div<{ $hideCondition?: boolean; $size?: InputSizes }>`\n display: grid;\n grid-template-columns: ${({ $hideCondition }) =>\n $hideCondition ? 'repeat(3, min-content)' : '32px repeat(3, min-content)'};\n grid-gap: 6px;\n align-items: baseline;\n padding: ${Spacing[1]};\n width: 100%;\n ${({ $size }) => ($size === 'md' ? Typography.TextMedium : Typography.TextSmall)}\n`;\n\nexport interface LogicRowProps extends ListBoxItemProps {\n condition: string;\n attributeName?: string;\n operator?: string;\n matchLevelName?: string;\n editable?: boolean;\n id: string | number;\n dropdownHeadingText?: string;\n /** Form fields rendered inside the row dropdown. */\n dropdownFormFields?: ReactNode;\n size?: InputSizes;\n /**\n * Removes the condition column when the surrounding group already communicates\n * the conjunction.\n */\n hideCondition?: boolean;\n}\n\nconst LogicRow = ({\n condition,\n attributeName,\n operator,\n matchLevelName,\n editable = true,\n id,\n onDelete,\n dropdownHeadingText,\n dropdownFormFields,\n size,\n hideCondition = false,\n ...listBoxItemProps\n}: LogicRowProps) => {\n return (\n <LogicListBoxItem\n id={id}\n disabled={!editable}\n onDelete={onDelete}\n dropdownHeadingText={dropdownHeadingText}\n dropdownFormFields={dropdownFormFields}\n {...listBoxItemProps}\n size={size}\n >\n <LogicRuleContainer $hideCondition={hideCondition} $size={size}>\n {!hideCondition && (condition || '\\u00A0')}\n {attributeName && (\n <>\n <LogicRowSticker disabled={!editable}>{attributeName}</LogicRowSticker>\n {operator}\n {matchLevelName && (\n <LogicRowSticker disabled={!editable}>{matchLevelName}</LogicRowSticker>\n )}\n </>\n )}\n </LogicRuleContainer>\n </LogicListBoxItem>\n );\n};\n\nexport default LogicRow;\n","import BaseListBox, { useListBoxContext } from './ListBox';\nimport LogicRow from './LogicRow';\n\nconst ListBox = Object.assign(BaseListBox, { LogicRow });\n\nexport { ListBox, useListBoxContext };\nexport type { ListBoxProps, ListBoxItemProps } from './ListBox';\nexport type { LogicRowProps } from './LogicRow';\n\nexport default ListBox;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { i as useListBoxContext, n as ListBoxItemProps, r as ListBoxProps, t as ListBox } from "./ListBox-_fcSPynx.mjs";
1
+ import { i as useListBoxContext, n as ListBoxItemProps, r as ListBoxProps, t as ListBox } from "./ListBox-D09N1a5D.mjs";
2
2
  export { ListBox, ListBox as default, ListBoxItemProps, ListBoxProps, useListBoxContext };
@@ -1,6 +1,6 @@
1
- import { l as MenuItemProps } from "./Menu-CUp_9HgC.mjs";
1
+ import { l as MenuItemProps } from "./Menu-Bv8dsrz6.mjs";
2
2
  import { ImplementsFormField } from "./inputFields.mjs";
3
- import { r as ListBoxProps } from "./ListBox-_fcSPynx.mjs";
3
+ import { r as ListBoxProps } from "./ListBox-D09N1a5D.mjs";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
  import { ReactNode } from "react";
6
6
 
@@ -1,5 +1,5 @@
1
1
  import { n as InputSizes } from "./input-Bv5fKt5J.mjs";
2
- import { n as ListBoxItemProps } from "./ListBox-_fcSPynx.mjs";
2
+ import { n as ListBoxItemProps } from "./ListBox-D09N1a5D.mjs";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import { ReactNode } from "react";
5
5
 
@@ -37,4 +37,4 @@ declare const LogicRow: ({
37
37
  }: LogicRowProps) => _$react_jsx_runtime0.JSX.Element;
38
38
  //#endregion
39
39
  export { LogicRowProps as n, LogicRow as t };
40
- //# sourceMappingURL=LogicRow-BtCKGX_j.d.mts.map
40
+ //# sourceMappingURL=LogicRow-BcuiSTHN.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as LogicRowProps, t as LogicRow } from "./LogicRow-BtCKGX_j.mjs";
1
+ import { n as LogicRowProps, t as LogicRow } from "./LogicRow-BcuiSTHN.mjs";
2
2
  export { LogicRowProps, LogicRow as default };
@@ -1,4 +1,4 @@
1
- import { a as InputProps } from "./Input-BPClVzwD.mjs";
1
+ import { a as InputProps } from "./Input-DMgVyZyq.mjs";
2
2
  import * as _$react from "react";
3
3
  import { IMaskInputProps } from "react-imask/mixin";
4
4
 
@@ -22,7 +22,7 @@ interface MenuItemProps<T extends ElementType = 'div'> {
22
22
  selected?: boolean;
23
23
  size?: 'sm' | 'md';
24
24
  }
25
- declare const ListItem: StyledComponent<"li", any, Pick<MenuItemProps<"div">, "disabled" | "size" | "variant" | "focused" | "selected">, never>;
25
+ declare const ListItem: StyledComponent<"li", any, Pick<MenuItemProps<"div">, "disabled" | "size" | "selected" | "focused" | "variant">, never>;
26
26
  declare const IconContainer: StyledComponent<"div", any, {
27
27
  suffix?: boolean;
28
28
  }, never>;
@@ -67,4 +67,4 @@ declare const Menu: {
67
67
  };
68
68
  //#endregion
69
69
  export { MenuDivider as a, MenuItem as c, MenuList as d, MenuProps as f, Menu as i, MenuItemProps as l, IconContainer as n, MenuHeading as o, ListItem as r, MenuHeadingProps as s, FloatingCard as t, MenuItemType as u };
70
- //# sourceMappingURL=Menu-CUp_9HgC.d.mts.map
70
+ //# sourceMappingURL=Menu-Bv8dsrz6.d.mts.map
@@ -2,9 +2,9 @@ import { darkTheme } from "./theme.mjs";
2
2
  import { isDisabled, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
3
3
  import { paragraphMixins } from "./mixins/text.mjs";
4
4
  import PDSProvider from "./lib/PDSProvider.mjs";
5
- import "./variables/text.mjs";
6
5
  import { t as Card_default } from "./Card-BMCB9eFC.mjs";
7
6
  import { Z_INDICES } from "./lib/zindex.mjs";
7
+ import "./variables/text.mjs";
8
8
  import { Color, Spacing } from "@persona/design-tokens";
9
9
  import styled, { css } from "styled-components";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -164,4 +164,4 @@ Menu.Item = MenuItem;
164
164
  //#endregion
165
165
  export { MenuDivider as a, MenuList as c, Menu as i, IconContainer as n, MenuHeading as o, ListItem as r, MenuItem as s, FloatingCard as t };
166
166
 
167
- //# sourceMappingURL=Menu-CPYXo61N.mjs.map
167
+ //# sourceMappingURL=Menu-DmeMgN-i.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Menu-CPYXo61N.mjs","names":["Card"],"sources":["../components/Menu/Menu.tsx"],"sourcesContent":["import * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport {\n type ComponentPropsWithoutRef,\n type ComponentPropsWithRef,\n type ComponentType,\n type ElementType,\n type FC,\n forwardRef,\n type ReactNode,\n type Ref,\n type RefObject,\n} from 'react';\nimport { DismissButton } from 'react-aria';\nimport styled, {\n css,\n type DefaultTheme,\n type StyledComponent,\n type StyledComponentPropsWithRef,\n} from 'styled-components';\n\nimport PDSProvider from '@persona/design-system/lib/PDSProvider';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport Card from 'design-system/components/Card';\nimport { isDisabled, isFocused, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { darkTheme } from 'design-system/theme';\nimport { FontWeight } from 'design-system/variables/text';\n\nexport const FloatingCard: StyledComponent<\n ComponentType<StyledComponentPropsWithRef<typeof Card>>,\n DefaultTheme\n> = styled(Card)`\n box-shadow: 0px 0px 14px 2px rgba(0, 0, 0, 0.12);\n outline: none;\n z-index: ${Z_INDICES.tooltip};\n`;\n\nexport const MenuList = styled.div.attrs<{ padding?: Spacing; doNotSetRole?: boolean }>(\n ({ role, doNotSetRole = false }) => ({\n role: doNotSetRole ? undefined : (role ?? 'menu'),\n }),\n)<{ padding?: Spacing }>`\n list-style: none;\n margin: 0;\n padding: ${({ padding }) => padding || Spacing[2]};\n outline: none;\n`;\n\nexport interface MenuItemProps<T extends ElementType = 'div'> {\n children: ReactNode;\n prefixIcon?: ReactNode;\n suffixIcon?: ReactNode;\n disabled?: boolean;\n variant?: 'basic' | 'danger';\n as?: T;\n stretchLabel?: boolean;\n subtitle?: string;\n focused?: boolean;\n selected?: boolean;\n size?: 'sm' | 'md';\n}\n\nexport const ListItem = styled.li<\n Pick<MenuItemProps, 'variant' | 'disabled' | 'focused' | 'selected' | 'size'>\n>`\n ${({ size }) => (size === 'sm' ? paragraphMixins.sm : paragraphMixins.md)};\n display: flex;\n align-items: center;\n padding: ${({ size }) => (size === 'sm' ? `${Spacing[1]} ${Spacing[2]}` : `${Spacing[2]}`)};\n border-radius: 4px;\n list-style: none;\n text-decoration: none;\n color: ${({ theme }) => theme.color.text.primary};\n cursor: pointer;\n ${({ focused, selected, theme }) =>\n focused &&\n !selected &&\n css`\n outline: none;\n color: ${theme.color.text.primary};\n background-color: ${theme.color.background.secondary};\n `}\n\n &${isNotDisabled}${isHovered}, &${isNotDisabled}${isFocused} {\n ${({ selected }) =>\n !selected &&\n css`\n outline: none;\n color: ${({ theme }) => theme.color.text.primary};\n background-color: ${({ theme }) => theme.color.background.secondary};\n `}\n }\n\n &:focus-visible {\n outline: 2px solid ${Color.BorderFocus};\n outline-offset: 1px;\n }\n\n ${({ selected, theme }) =>\n selected &&\n css`\n outline: none;\n color: ${theme.color.text.brand};\n background-color: ${theme.color.background.highlight};\n `}\n\n &${isDisabled} {\n color: ${({ theme }) => theme.color.text.disabled};\n cursor: default;\n pointer-events: none;\n }\n\n /* Variant Styling */\n ${({ theme, variant }) =>\n variant === 'danger' &&\n css`\n color: ${theme.color.variants[variant].default};\n\n &${isNotDisabled}${isHovered}, &${isNotDisabled}${isFocused} {\n color: ${Color.CoreRed900};\n background-color: ${theme.color.variants[variant].highlightLight};\n }\n\n &${isDisabled} {\n color: ${({ theme }) => theme.color.variants[variant].disabled};\n }\n `}\n`;\n\nexport const IconContainer = styled('div')<{ suffix?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n margin-right: ${Spacing[2]};\n line-height: 1;\n\n ${({ suffix }) =>\n suffix &&\n css`\n margin-left: ${Spacing[2]};\n `}\n`;\n\nconst LabelContainer = styled('div')<{ stretchLabel: boolean }>`\n line-height: 16px;\n ${({ stretchLabel }) =>\n stretchLabel &&\n css`\n width: 100%;\n `}\n`;\n\n/**\n * https://stackoverflow.com/a/73795494\n */\nexport interface MenuItemType<T extends ElementType = 'div'> extends FC<\n MenuItemProps<T> & ComponentPropsWithRef<T>\n> {\n <T extends ElementType = 'div'>(\n props: MenuItemProps<T> & ComponentPropsWithoutRef<T>,\n ): ReturnType<FC<MenuItemProps<T> & ComponentPropsWithoutRef<T>>>;\n}\n\nexport const MenuItem: MenuItemType = forwardRef(function MenuItem(\n {\n children,\n disabled,\n variant,\n prefixIcon,\n suffixIcon,\n stretchLabel,\n selected,\n size,\n ...elemProps\n },\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <ListItem\n disabled={disabled}\n variant={variant}\n selected={selected}\n ref={ref}\n aria-disabled={disabled}\n // aria-current is the correct a11y attribute for role=\"menuitem\" (not aria-selected).\n aria-current={selected ? 'true' : undefined}\n role='menuitem'\n tabIndex={disabled ? -1 : 0}\n size={size}\n {...elemProps}\n >\n {prefixIcon && <IconContainer>{prefixIcon}</IconContainer>}\n <LabelContainer stretchLabel={!!stretchLabel}>{children}</LabelContainer>\n {suffixIcon && <IconContainer suffix>{suffixIcon}</IconContainer>}\n </ListItem>\n );\n});\n\nconst StyledMenuDivider = styled.hr`\n height: 0px;\n padding: 0px;\n font-size: 0;\n margin: ${Spacing[2]} -${Spacing[2]};\n border: none;\n border-top: 1px solid ${({ theme }) => theme.color.border.primary};\n`;\n\nexport const MenuDivider = (props: ComponentPropsWithoutRef<'hr'>) => (\n <DropdownMenu.Separator asChild>\n <StyledMenuDivider {...props} />\n </DropdownMenu.Separator>\n);\n\nexport interface MenuHeadingProps {\n size?: 'sm' | 'md';\n}\n\nexport const MenuHeading = styled.li<MenuHeadingProps>`\n ${paragraphMixins.sm};\n text-transform: uppercase;\n padding: ${({ size }) => (size === 'sm' ? `${Spacing[1]} ${Spacing[2]}` : Spacing[2])};\n display: block;\n color: ${({ theme }) => theme.color.text.secondary};\n font-weight: ${FontWeight.Regular};\n letter-spacing: 0.1em;\n`;\n\nexport interface MenuProps<T extends ElementType = 'div'> {\n children?: ReactNode;\n className?: string;\n variant?: 'light' | 'dark';\n as?: T;\n doNotSetRole?: boolean;\n containerProps?: ComponentPropsWithRef<'div'>;\n listRef?: RefObject<T>;\n itemProps?:\n | ComponentPropsWithoutRef<'li'>\n | ((\n props: ComponentPropsWithoutRef<'li'>,\n index: number,\n ) => Partial<ComponentPropsWithRef<'li'>>);\n onClose?: VoidFunction;\n}\n\nexport const Menu = <T extends ElementType = 'div'>({\n children,\n variant,\n containerProps,\n itemProps,\n listRef,\n className,\n onClose,\n as,\n ...props\n}: MenuProps<T> & ComponentPropsWithoutRef<T>) => {\n const menu = (\n <FloatingCard {...containerProps} className={className}>\n <MenuList {...props} as={as as any} ref={listRef}>\n {children}\n <DismissButton onDismiss={onClose} />\n </MenuList>\n </FloatingCard>\n );\n\n if (variant === 'dark') {\n return <PDSProvider theme={darkTheme}>{menu}</PDSProvider>;\n }\n\n return menu;\n};\n\nMenu.Heading = MenuHeading;\nMenu.Divider = MenuDivider;\nMenu.Item = MenuItem;\n\nexport default Menu;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Menu-DmeMgN-i.mjs","names":["Card"],"sources":["../components/Menu/Menu.tsx"],"sourcesContent":["import * as DropdownMenu from '@radix-ui/react-dropdown-menu';\nimport {\n type ComponentPropsWithoutRef,\n type ComponentPropsWithRef,\n type ComponentType,\n type ElementType,\n type FC,\n forwardRef,\n type ReactNode,\n type Ref,\n type RefObject,\n} from 'react';\nimport { DismissButton } from 'react-aria';\nimport styled, {\n css,\n type DefaultTheme,\n type StyledComponent,\n type StyledComponentPropsWithRef,\n} from 'styled-components';\n\nimport PDSProvider from '@persona/design-system/lib/PDSProvider';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport Card from 'design-system/components/Card';\nimport { isDisabled, isFocused, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { darkTheme } from 'design-system/theme';\nimport { FontWeight } from 'design-system/variables/text';\n\nexport const FloatingCard: StyledComponent<\n ComponentType<StyledComponentPropsWithRef<typeof Card>>,\n DefaultTheme\n> = styled(Card)`\n box-shadow: 0px 0px 14px 2px rgba(0, 0, 0, 0.12);\n outline: none;\n z-index: ${Z_INDICES.tooltip};\n`;\n\nexport const MenuList = styled.div.attrs<{ padding?: Spacing; doNotSetRole?: boolean }>(\n ({ role, doNotSetRole = false }) => ({\n role: doNotSetRole ? undefined : (role ?? 'menu'),\n }),\n)<{ padding?: Spacing }>`\n list-style: none;\n margin: 0;\n padding: ${({ padding }) => padding || Spacing[2]};\n outline: none;\n`;\n\nexport interface MenuItemProps<T extends ElementType = 'div'> {\n children: ReactNode;\n prefixIcon?: ReactNode;\n suffixIcon?: ReactNode;\n disabled?: boolean;\n variant?: 'basic' | 'danger';\n as?: T;\n stretchLabel?: boolean;\n subtitle?: string;\n focused?: boolean;\n selected?: boolean;\n size?: 'sm' | 'md';\n}\n\nexport const ListItem = styled.li<\n Pick<MenuItemProps, 'variant' | 'disabled' | 'focused' | 'selected' | 'size'>\n>`\n ${({ size }) => (size === 'sm' ? paragraphMixins.sm : paragraphMixins.md)};\n display: flex;\n align-items: center;\n padding: ${({ size }) => (size === 'sm' ? `${Spacing[1]} ${Spacing[2]}` : `${Spacing[2]}`)};\n border-radius: 4px;\n list-style: none;\n text-decoration: none;\n color: ${({ theme }) => theme.color.text.primary};\n cursor: pointer;\n ${({ focused, selected, theme }) =>\n focused &&\n !selected &&\n css`\n outline: none;\n color: ${theme.color.text.primary};\n background-color: ${theme.color.background.secondary};\n `}\n\n &${isNotDisabled}${isHovered}, &${isNotDisabled}${isFocused} {\n ${({ selected }) =>\n !selected &&\n css`\n outline: none;\n color: ${({ theme }) => theme.color.text.primary};\n background-color: ${({ theme }) => theme.color.background.secondary};\n `}\n }\n\n &:focus-visible {\n outline: 2px solid ${Color.BorderFocus};\n outline-offset: 1px;\n }\n\n ${({ selected, theme }) =>\n selected &&\n css`\n outline: none;\n color: ${theme.color.text.brand};\n background-color: ${theme.color.background.highlight};\n `}\n\n &${isDisabled} {\n color: ${({ theme }) => theme.color.text.disabled};\n cursor: default;\n pointer-events: none;\n }\n\n /* Variant Styling */\n ${({ theme, variant }) =>\n variant === 'danger' &&\n css`\n color: ${theme.color.variants[variant].default};\n\n &${isNotDisabled}${isHovered}, &${isNotDisabled}${isFocused} {\n color: ${Color.CoreRed900};\n background-color: ${theme.color.variants[variant].highlightLight};\n }\n\n &${isDisabled} {\n color: ${({ theme }) => theme.color.variants[variant].disabled};\n }\n `}\n`;\n\nexport const IconContainer = styled('div')<{ suffix?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n margin-right: ${Spacing[2]};\n line-height: 1;\n\n ${({ suffix }) =>\n suffix &&\n css`\n margin-left: ${Spacing[2]};\n `}\n`;\n\nconst LabelContainer = styled('div')<{ stretchLabel: boolean }>`\n line-height: 16px;\n ${({ stretchLabel }) =>\n stretchLabel &&\n css`\n width: 100%;\n `}\n`;\n\n/**\n * https://stackoverflow.com/a/73795494\n */\nexport interface MenuItemType<T extends ElementType = 'div'> extends FC<\n MenuItemProps<T> & ComponentPropsWithRef<T>\n> {\n <T extends ElementType = 'div'>(\n props: MenuItemProps<T> & ComponentPropsWithoutRef<T>,\n ): ReturnType<FC<MenuItemProps<T> & ComponentPropsWithoutRef<T>>>;\n}\n\nexport const MenuItem: MenuItemType = forwardRef(function MenuItem(\n {\n children,\n disabled,\n variant,\n prefixIcon,\n suffixIcon,\n stretchLabel,\n selected,\n size,\n ...elemProps\n },\n ref: Ref<HTMLDivElement>,\n) {\n return (\n <ListItem\n disabled={disabled}\n variant={variant}\n selected={selected}\n ref={ref}\n aria-disabled={disabled}\n // aria-current is the correct a11y attribute for role=\"menuitem\" (not aria-selected).\n aria-current={selected ? 'true' : undefined}\n role='menuitem'\n tabIndex={disabled ? -1 : 0}\n size={size}\n {...elemProps}\n >\n {prefixIcon && <IconContainer>{prefixIcon}</IconContainer>}\n <LabelContainer stretchLabel={!!stretchLabel}>{children}</LabelContainer>\n {suffixIcon && <IconContainer suffix>{suffixIcon}</IconContainer>}\n </ListItem>\n );\n});\n\nconst StyledMenuDivider = styled.hr`\n height: 0px;\n padding: 0px;\n font-size: 0;\n margin: ${Spacing[2]} -${Spacing[2]};\n border: none;\n border-top: 1px solid ${({ theme }) => theme.color.border.primary};\n`;\n\nexport const MenuDivider = (props: ComponentPropsWithoutRef<'hr'>) => (\n <DropdownMenu.Separator asChild>\n <StyledMenuDivider {...props} />\n </DropdownMenu.Separator>\n);\n\nexport interface MenuHeadingProps {\n size?: 'sm' | 'md';\n}\n\nexport const MenuHeading = styled.li<MenuHeadingProps>`\n ${paragraphMixins.sm};\n text-transform: uppercase;\n padding: ${({ size }) => (size === 'sm' ? `${Spacing[1]} ${Spacing[2]}` : Spacing[2])};\n display: block;\n color: ${({ theme }) => theme.color.text.secondary};\n font-weight: ${FontWeight.Regular};\n letter-spacing: 0.1em;\n`;\n\nexport interface MenuProps<T extends ElementType = 'div'> {\n children?: ReactNode;\n className?: string;\n variant?: 'light' | 'dark';\n as?: T;\n doNotSetRole?: boolean;\n containerProps?: ComponentPropsWithRef<'div'>;\n listRef?: RefObject<T>;\n itemProps?:\n | ComponentPropsWithoutRef<'li'>\n | ((\n props: ComponentPropsWithoutRef<'li'>,\n index: number,\n ) => Partial<ComponentPropsWithRef<'li'>>);\n onClose?: VoidFunction;\n}\n\nexport const Menu = <T extends ElementType = 'div'>({\n children,\n variant,\n containerProps,\n itemProps,\n listRef,\n className,\n onClose,\n as,\n ...props\n}: MenuProps<T> & ComponentPropsWithoutRef<T>) => {\n const menu = (\n <FloatingCard {...containerProps} className={className}>\n <MenuList {...props} as={as as any} ref={listRef}>\n {children}\n <DismissButton onDismiss={onClose} />\n </MenuList>\n </FloatingCard>\n );\n\n if (variant === 'dark') {\n return <PDSProvider theme={darkTheme}>{menu}</PDSProvider>;\n }\n\n return menu;\n};\n\nMenu.Heading = MenuHeading;\nMenu.Divider = MenuDivider;\nMenu.Item = MenuItem;\n\nexport default Menu;\n"],"mappings":"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"}
package/dist/Menu.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as MenuDivider, c as MenuItem, d as MenuList, f as MenuProps, i as Menu, l as MenuItemProps, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuHeadingProps, t as FloatingCard, u as MenuItemType } from "./Menu-CUp_9HgC.mjs";
1
+ import { a as MenuDivider, c as MenuItem, d as MenuList, f as MenuProps, i as Menu, l as MenuItemProps, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuHeadingProps, t as FloatingCard, u as MenuItemType } from "./Menu-Bv8dsrz6.mjs";
2
2
  export { FloatingCard, IconContainer, ListItem, Menu, Menu as default, MenuDivider, MenuHeading, MenuHeadingProps, MenuItem, MenuItemProps, MenuItemType, MenuList, MenuProps };
package/dist/Modal.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { r as ButtonProps } from "./Button-9p469xA1.mjs";
1
+ import { r as ButtonProps } 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_aria_components0 from "react-aria-components";
@@ -1,5 +1,5 @@
1
1
  import { i as Paragraph, n as Heading } from "./Text-RcEfNFLx.mjs";
2
- import { t as Breadcrumbs } from "./Breadcrumbs-CDZ_Mrcg.mjs";
2
+ import { t as Breadcrumbs } from "./Breadcrumbs-W8hIhdHD.mjs";
3
3
  import { Spacing } from "@persona/design-tokens";
4
4
  import styled from "styled-components";
5
5
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -29,6 +29,7 @@ const TitleContainer = styled.div`
29
29
  const LeftContainer = styled.div`
30
30
  display: flex;
31
31
  align-items: center;
32
+ gap: ${Spacing[2]};
32
33
  `;
33
34
  const RightContainer = styled.div`
34
35
  display: flex;
@@ -38,7 +39,7 @@ const RightContainer = styled.div`
38
39
  const PageHeader = ({ title, breadcrumbs, subtitle, level = "product", prepend, append, children, ...props }) => /* @__PURE__ */ jsxs(PageHeaderContainer, {
39
40
  ...props,
40
41
  children: [/* @__PURE__ */ jsxs(LeftContainer, { children: [
41
- prepend && /* @__PURE__ */ jsx("div", { children: prepend }),
42
+ prepend,
42
43
  /* @__PURE__ */ jsxs(TitleContainer, { children: [breadcrumbs ? /* @__PURE__ */ jsx(Breadcrumbs, {
43
44
  size: "lg",
44
45
  ...breadcrumbs
@@ -55,10 +56,10 @@ const PageHeader = ({ title, breadcrumbs, subtitle, level = "product", prepend,
55
56
  size: "md",
56
57
  children: subtitle
57
58
  })] }),
58
- append && /* @__PURE__ */ jsx("div", { children: append })
59
+ append
59
60
  ] }), children && /* @__PURE__ */ jsx(RightContainer, { children })]
60
61
  });
61
62
  //#endregion
62
63
  export { PageHeaderContainer as n, PageHeader as t };
63
64
 
64
- //# sourceMappingURL=PageHeader-D-6W61E_.mjs.map
65
+ //# sourceMappingURL=PageHeader-jSLud2JI.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeader-jSLud2JI.mjs","names":[],"sources":["../components/PageHeader/PageHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport Breadcrumbs, { type BreadcrumbsProps } from 'design-system/components/Breadcrumbs';\nimport { Heading, Paragraph } from 'design-system/components/Text';\n\nexport const PageHeaderContainer = styled.header`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n padding: ${Spacing[3]} ${Spacing[5]};\n background-color: ${({ theme }) => theme.color.background.primary};\n border-bottom: 1px solid ${({ theme }) => theme.color.border.primary};\n box-sizing: border-box;\n min-height: 56px; /* Standardize height for most PageHeaders */\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n flex: 1;\n align-items: center;\n h1 {\n margin: 0;\n }\n p {\n margin: 0 0 0 ${Spacing[2]};\n }\n`;\n\nconst LeftContainer = styled.div`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n`;\n\nconst RightContainer = styled.div`\n display: flex;\n gap: ${Spacing[2]};\n margin-left: ${Spacing[3]};\n`;\n\ninterface PageHeaderCommonProps {\n level?: 'product' | 'detail';\n prepend?: ReactNode;\n append?: ReactNode;\n children?: ReactNode;\n}\n\n/** Exactly one heading source is required: either `title` or `breadcrumbs`. */\nexport type PageHeaderProps = PageHeaderCommonProps &\n (\n | { title: ReactNode; subtitle?: ReactNode; breadcrumbs?: never }\n | {\n title?: never;\n /**\n * The subtitle is sunset in the breadcrumbs variant (PX-1299); fold the value it\n * carried (e.g. an object ID) into the current crumb, with a copy action if useful.\n */\n subtitle?: never;\n /** Renders in place of `title`; the current crumb becomes the page `h1`, at `lg` size. */\n breadcrumbs: BreadcrumbsProps;\n }\n );\n\nconst PageHeader = ({\n title,\n breadcrumbs,\n subtitle,\n level = 'product',\n prepend,\n append,\n children,\n ...props\n}: PageHeaderProps) => (\n <PageHeaderContainer {...props}>\n <LeftContainer>\n {prepend}\n <TitleContainer>\n {breadcrumbs ? (\n <Breadcrumbs size='lg' {...breadcrumbs} />\n ) : (\n <>\n {level === 'product' && (\n <Heading as='h1' size='sm'>\n {title}\n </Heading>\n )}\n {level === 'detail' && (\n <Paragraph as='h1' size='lg' color='primary'>\n {title}\n </Paragraph>\n )}\n </>\n )}\n {subtitle && <Paragraph size='md'>{subtitle}</Paragraph>}\n </TitleContainer>\n {append}\n </LeftContainer>\n {children && <RightContainer>{children}</RightContainer>}\n </PageHeaderContainer>\n);\n\nexport default PageHeader;\n"],"mappings":";;;;;;AAOA,MAAa,sBAAsB,OAAO,MAAM;;;;;aAKnC,QAAQ,GAAG,GAAG,QAAQ,GAAG;uBACf,EAAE,YAAY,MAAM,MAAM,WAAW,QAAQ;8BACtC,EAAE,YAAY,MAAM,MAAM,OAAO,QAAQ;;;;AAKvE,MAAM,iBAAiB,OAAO,GAAG;;;;;;;;oBAQb,QAAQ,GAAG;;;AAI/B,MAAM,gBAAgB,OAAO,GAAG;;;SAGvB,QAAQ,GAAG;;AAGpB,MAAM,iBAAiB,OAAO,GAAG;;SAExB,QAAQ,GAAG;iBACH,QAAQ,GAAG;;AA0B5B,MAAM,cAAc,EAClB,OACA,aACA,UACA,QAAQ,WACR,SACA,QACA,UACA,GAAG,YAEH,qBAAC,qBAAD;CAAqB,GAAI;WAAzB,CACE,qBAAC,eAAD,EAAA,UAAA;EACG;EACD,qBAAC,gBAAD,EAAA,UAAA,CACG,cACC,oBAAC,aAAD;GAAa,MAAK;GAAK,GAAI;GAAe,CAAA,GAE1C,qBAAA,UAAA,EAAA,UAAA,CACG,UAAU,aACT,oBAAC,SAAD;GAAS,IAAG;GAAK,MAAK;aACnB;GACO,CAAA,EAEX,UAAU,YACT,oBAAC,WAAD;GAAW,IAAG;GAAK,MAAK;GAAK,OAAM;aAChC;GACS,CAAA,CAEb,EAAA,CAAA,EAEJ,YAAY,oBAAC,WAAD;GAAW,MAAK;aAAM;GAAqB,CAAA,CACzC,EAAA,CAAA;EAChB;EACa,EAAA,CAAA,EACf,YAAY,oBAAC,gBAAD,EAAiB,UAA0B,CAAA,CACpC"}
@@ -7,7 +7,6 @@ import { ReactNode } from "react";
7
7
  declare const PageHeaderContainer: _$styled_components0.StyledComponent<"header", any, {}, never>;
8
8
  interface PageHeaderCommonProps {
9
9
  level?: 'product' | 'detail';
10
- subtitle?: ReactNode;
11
10
  prepend?: ReactNode;
12
11
  append?: ReactNode;
13
12
  children?: ReactNode;
@@ -15,9 +14,15 @@ interface PageHeaderCommonProps {
15
14
  /** Exactly one heading source is required: either `title` or `breadcrumbs`. */
16
15
  type PageHeaderProps = PageHeaderCommonProps & ({
17
16
  title: ReactNode;
17
+ subtitle?: ReactNode;
18
18
  breadcrumbs?: never;
19
19
  } | {
20
- title?: never; /** Renders in place of `title`; the current crumb becomes the page `h1`, at `lg` size. */
20
+ title?: never;
21
+ /**
22
+ * The subtitle is sunset in the breadcrumbs variant (PX-1299); fold the value it
23
+ * carried (e.g. an object ID) into the current crumb, with a copy action if useful.
24
+ */
25
+ subtitle?: never; /** Renders in place of `title`; the current crumb becomes the page `h1`, at `lg` size. */
21
26
  breadcrumbs: BreadcrumbsProps;
22
27
  });
23
28
  declare const PageHeader: ({
@@ -1,7 +1,7 @@
1
1
  import { t as HStack } from "./Stack-Bl54WmhY.mjs";
2
- import { n as Button } from "./IconButton-CIWiEsS-.mjs";
3
- import { n as Input } from "./Input-BFI_e7aU.mjs";
4
- import { n as Select, t as Option } from "./Select-cPEORy70.mjs";
2
+ import { n as Button } from "./IconButton-P8w0JDI5.mjs";
3
+ import { n as Input } from "./Input-QC6xla6I.mjs";
4
+ import { n as Select, t as Option } from "./Select-C1ZoRk39.mjs";
5
5
  import { Color, Spacing, Typography } from "@persona/design-tokens";
6
6
  import styled from "styled-components";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -202,4 +202,4 @@ var Pagination_default = Pagination;
202
202
  //#endregion
203
203
  export { MIN_PAGE_SIZE as a, DEFAULT_PAGE_SIZE_OPTIONS as i, PAGE_LIMIT_BEFORE_SCROLL_MODE as n, PageSelector as r, Pagination_default as t };
204
204
 
205
- //# sourceMappingURL=Pagination-ztqhywAP.mjs.map
205
+ //# sourceMappingURL=Pagination-BeYukNCj.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination-ztqhywAP.mjs","names":[],"sources":["../components/Pagination/constants.ts","../components/Pagination/PageSelector.tsx","../components/Pagination/PageSizeSelector.tsx","../components/Pagination/Pagination.tsx","../components/Pagination/index.ts"],"sourcesContent":["export const DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100, 300];\nexport const MIN_PAGE_SIZE = 10;\n","import { debounce } from 'lodash/fp';\nimport { useEffect, useMemo, useState } from 'react';\nimport styled from 'styled-components';\n\nimport Button from '@persona/design-system/components/Button';\nimport { Input } from '@persona/design-system/components/Input';\nimport { HStack } from '@persona/design-system/components/Stack';\nimport { Spacing } from '@persona/design-tokens';\n\nimport type { PaginationParams } from './types';\n\n// After a certain limit, it no longer makes sense for someone\n// to jump to the last page. Deep paging has performance limitations.\nexport const PAGE_LIMIT_BEFORE_SCROLL_MODE = 100;\n\nconst PageSelectorStack = styled(HStack).attrs({ justify: 'flex-end' })`\n padding: ${Spacing[2]};\n`;\n\nexport const PageInput = styled(HStack).attrs({ align: 'center' })`\n white-space: nowrap;\n`;\n\ninterface PageSelectorProps {\n paginationParams: PaginationParams;\n handlePageLinkClick: (pageNumber: number) => void;\n isLoading?: boolean;\n /**\n * Called with the new page number after the page changes (next, prev, or\n * typed input). Lets the consumer react to page changes -- e.g. scroll the\n * page back to the top.\n */\n onPageChange?: (pageNumber: number) => void;\n}\n\nexport default function PageSelector({\n paginationParams,\n handlePageLinkClick,\n isLoading,\n onPageChange,\n}: PageSelectorProps) {\n const {\n 'current-page': currentPage,\n 'total-pages': totalPages,\n 'lower-bound': lowerBound,\n } = paginationParams ?? {};\n const [selectedPage, setSelectedPage] = useState<number | undefined>(currentPage);\n\n // We don't use useDebounced to avoid function object reference issues.\n const handlePageLinkClickDebounced = useMemo(\n () => debounce(500, handlePageLinkClick),\n [handlePageLinkClick],\n );\n\n // Keep input state synced to pagination state when other user action changes\n // pagination state.\n useEffect(() => {\n if (currentPage != null) {\n setSelectedPage(currentPage);\n }\n }, [currentPage]);\n\n if (!paginationParams) {\n return <div />;\n }\n\n return (\n <PageSelectorStack data-test='pagination__page-selector' id='pagination__page-selector'>\n <PageInput>\n {totalPages < PAGE_LIMIT_BEFORE_SCROLL_MODE && !lowerBound ? (\n <Input\n aria-label='Go to page number'\n size='sm'\n inputSize={2}\n onChange={(e) => {\n const value = e.target.valueAsNumber;\n if (Number.isNaN(value)) {\n setSelectedPage(undefined);\n } else {\n // Setting unbounded value feels smoother as the value is not corrected until after the fetch via useEffect.\n setSelectedPage(value);\n const boundedValue = Math.min(Math.max(e.target.valueAsNumber, 1), totalPages);\n handlePageLinkClickDebounced(boundedValue);\n onPageChange?.(boundedValue);\n }\n }}\n onBlur={(e) => {\n // Fill blank value on blur.\n if (Number.isNaN(e.target.valueAsNumber)) {\n setSelectedPage(currentPage);\n }\n }}\n min={1}\n max={totalPages}\n type='number'\n disabled={isLoading}\n value={selectedPage ?? ''}\n />\n ) : (\n currentPage + ' '\n )}\n of {lowerBound ? 'many' : totalPages} pages\n </PageInput>\n <Button\n id='pagination__page-selector--left'\n disabled={currentPage === 1 || isLoading}\n onClick={() => {\n if (currentPage !== 1) {\n const prevPageNum = currentPage - 1;\n setSelectedPage(prevPageNum);\n handlePageLinkClick(prevPageNum);\n onPageChange?.(prevPageNum);\n }\n }}\n data-test='pagination__page-selector-paddle-left'\n variant='inverse'\n size='sm'\n width='auto'\n aria-label='Previous page'\n >\n Prev\n </Button>\n <Button\n id='pagination__page-selector--right'\n disabled={(currentPage === totalPages && !lowerBound) || isLoading}\n onClick={() => {\n if (currentPage !== totalPages || lowerBound) {\n const nextPageNum = currentPage + 1;\n setSelectedPage(nextPageNum);\n handlePageLinkClick(nextPageNum);\n onPageChange?.(nextPageNum);\n }\n }}\n data-test='pagination__page-selector-paddle-right'\n variant='inverse'\n size='sm'\n width='auto'\n aria-label='Next page'\n >\n Next\n </Button>\n </PageSelectorStack>\n );\n}\n","import styled from 'styled-components';\n\nimport Select, { Option } from '@persona/design-system/components/Select';\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\n\nconst Selector = styled('div')`\n padding: ${Spacing[2]};\n display: flex;\n justify-content: flex-end;\n`;\n\nconst Label = styled.label`\n display: flex;\n align-items: center;\n white-space: nowrap;\n gap: ${Spacing[2]};\n padding: ${Spacing[2]};\n`;\n\ninterface PageSizeOptionProps {\n currentPageSize: number;\n pageSizeOption: number;\n}\n\nexport const PageSizeOption = styled('div')<PageSizeOptionProps>`\n padding: 0 ${Spacing[1]};\n color: ${Color.PrimaryPurple};\n cursor: pointer;\n\n ${({ currentPageSize, pageSizeOption }) => {\n if (currentPageSize === pageSizeOption) {\n return `\n ${Typography.TextMediumBold};\n text-decoration: underline;\n `;\n }\n }};\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\ninterface PageSizeSelectorProps {\n pageSize: number;\n pageSizeOptions: number[];\n handlePageSizeClick: (pageSize: number) => void;\n /**\n * Element the options menu renders into. Pass a container inside the surrounding dialog when the\n * pager sits in a clipping container, where the menu would otherwise be cut off.\n */\n menuPortalContainer?: HTMLElement | null;\n}\n\nconst PageSizeSelector = ({\n pageSize,\n pageSizeOptions,\n handlePageSizeClick,\n menuPortalContainer,\n}: PageSizeSelectorProps) => {\n // Add pageSize to selector just in case it isn't part of the options so UI doesn't look weird\n const pageSizes = [\n ...pageSizeOptions,\n ...(pageSizeOptions.includes(pageSize) ? [] : [pageSize]),\n ].sort((a, b) => a - b);\n\n return (\n <Selector data-test='pagination__page-size-selector'>\n <Label>\n Items per page:\n <Select\n value={pageSize.toString()}\n onValueChange={(val) => handlePageSizeClick(Number(val))}\n size='sm'\n portal={menuPortalContainer != null}\n portalContainer={menuPortalContainer}\n >\n {pageSizes.map((size) => (\n <Option key={size} value={size.toString()}>\n {size}\n </Option>\n ))}\n </Select>\n </Label>\n </Selector>\n );\n};\n\nexport default PageSizeSelector;\n","import styled from 'styled-components';\n\nimport { Color, Typography } from '@persona/design-tokens';\n\nimport { DEFAULT_PAGE_SIZE_OPTIONS } from './constants';\nimport PageSelector from './PageSelector';\nimport PageSizeSelector from './PageSizeSelector';\nimport type { PaginationParams } from './types';\n\n// NB: this is configured in config/initializers/kaminari.rb\nconst MAX_PAGES = 100;\n\nconst Container = styled('nav')`\n ${Typography.TextMedium};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const PaginationInfo = styled('div')`\n display: flex;\n align-items: center;\n\n color: ${Color.TextPrimary};\n`;\n\ninterface PaginationProps {\n pageSize?: number;\n pageSizeOptions?: number[];\n paginationParams?: PaginationParams;\n handlePageSizeClick: (pageSize: number) => void;\n handlePageLinkClick: (pageNumber: number) => void;\n isLoading?: boolean;\n showPageSizeSelector?: boolean;\n /**\n * Called with the new page number after the page changes. Lets the consumer\n * react to page changes -- e.g. scroll the page back to the top.\n */\n onPageChange?: (pageNumber: number) => void;\n /**\n * Element the page-size menu renders into. Pass a container inside the surrounding dialog when\n * the pager sits in a clipping container, where the menu would otherwise be cut off.\n */\n menuPortalContainer?: HTMLElement | null;\n}\n\nconst Pagination = ({\n pageSize,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n paginationParams,\n handlePageSizeClick,\n handlePageLinkClick,\n isLoading,\n showPageSizeSelector = true,\n onPageChange,\n menuPortalContainer,\n}: PaginationProps) => {\n if (!paginationParams || !pageSize) {\n return <div />;\n }\n\n const {\n 'current-page': currentPage,\n 'total-count': totalCount,\n 'total-pages': totalPages,\n 'lower-bound': lowerBound,\n } = paginationParams;\n\n // If the total number of pages is the same as MAX_PAGES, we guess that the total number of\n // items might be limited by max pages, and that the total could change based on page size.\n // To limit user confusion here, we use 'many' instead of a specific number.\n const totalCountDisplay = lowerBound || totalPages >= MAX_PAGES ? 'many' : totalCount;\n\n const lastItemIndex = lowerBound\n ? currentPage * pageSize\n : Math.min(currentPage * pageSize, totalCount);\n const firstItemIndex = pageSize * (currentPage - 1) + 1;\n\n return (\n <Container role='navigation' aria-label='pagination'>\n {showPageSizeSelector && (\n <PageSizeSelector\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n handlePageSizeClick={handlePageSizeClick}\n menuPortalContainer={menuPortalContainer}\n />\n )}\n {totalCount > 0 && (\n <>\n <div>\n Showing {firstItemIndex}-{lastItemIndex} of {totalCountDisplay} items\n </div>\n <PaginationInfo>\n <PageSelector\n paginationParams={paginationParams}\n handlePageLinkClick={handlePageLinkClick}\n isLoading={isLoading}\n onPageChange={onPageChange}\n />\n </PaginationInfo>\n </>\n )}\n </Container>\n );\n};\n\nexport default Pagination;\n","import Pagination from './Pagination';\n\nexport { default as PageSelector, PAGE_LIMIT_BEFORE_SCROLL_MODE } from './PageSelector';\nexport * from './constants';\nexport default Pagination;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Pagination-BeYukNCj.mjs","names":[],"sources":["../components/Pagination/constants.ts","../components/Pagination/PageSelector.tsx","../components/Pagination/PageSizeSelector.tsx","../components/Pagination/Pagination.tsx","../components/Pagination/index.ts"],"sourcesContent":["export const DEFAULT_PAGE_SIZE_OPTIONS = [10, 25, 50, 100, 300];\nexport const MIN_PAGE_SIZE = 10;\n","import { debounce } from 'lodash/fp';\nimport { useEffect, useMemo, useState } from 'react';\nimport styled from 'styled-components';\n\nimport Button from '@persona/design-system/components/Button';\nimport { Input } from '@persona/design-system/components/Input';\nimport { HStack } from '@persona/design-system/components/Stack';\nimport { Spacing } from '@persona/design-tokens';\n\nimport type { PaginationParams } from './types';\n\n// After a certain limit, it no longer makes sense for someone\n// to jump to the last page. Deep paging has performance limitations.\nexport const PAGE_LIMIT_BEFORE_SCROLL_MODE = 100;\n\nconst PageSelectorStack = styled(HStack).attrs({ justify: 'flex-end' })`\n padding: ${Spacing[2]};\n`;\n\nexport const PageInput = styled(HStack).attrs({ align: 'center' })`\n white-space: nowrap;\n`;\n\ninterface PageSelectorProps {\n paginationParams: PaginationParams;\n handlePageLinkClick: (pageNumber: number) => void;\n isLoading?: boolean;\n /**\n * Called with the new page number after the page changes (next, prev, or\n * typed input). Lets the consumer react to page changes -- e.g. scroll the\n * page back to the top.\n */\n onPageChange?: (pageNumber: number) => void;\n}\n\nexport default function PageSelector({\n paginationParams,\n handlePageLinkClick,\n isLoading,\n onPageChange,\n}: PageSelectorProps) {\n const {\n 'current-page': currentPage,\n 'total-pages': totalPages,\n 'lower-bound': lowerBound,\n } = paginationParams ?? {};\n const [selectedPage, setSelectedPage] = useState<number | undefined>(currentPage);\n\n // We don't use useDebounced to avoid function object reference issues.\n const handlePageLinkClickDebounced = useMemo(\n () => debounce(500, handlePageLinkClick),\n [handlePageLinkClick],\n );\n\n // Keep input state synced to pagination state when other user action changes\n // pagination state.\n useEffect(() => {\n if (currentPage != null) {\n setSelectedPage(currentPage);\n }\n }, [currentPage]);\n\n if (!paginationParams) {\n return <div />;\n }\n\n return (\n <PageSelectorStack data-test='pagination__page-selector' id='pagination__page-selector'>\n <PageInput>\n {totalPages < PAGE_LIMIT_BEFORE_SCROLL_MODE && !lowerBound ? (\n <Input\n aria-label='Go to page number'\n size='sm'\n inputSize={2}\n onChange={(e) => {\n const value = e.target.valueAsNumber;\n if (Number.isNaN(value)) {\n setSelectedPage(undefined);\n } else {\n // Setting unbounded value feels smoother as the value is not corrected until after the fetch via useEffect.\n setSelectedPage(value);\n const boundedValue = Math.min(Math.max(e.target.valueAsNumber, 1), totalPages);\n handlePageLinkClickDebounced(boundedValue);\n onPageChange?.(boundedValue);\n }\n }}\n onBlur={(e) => {\n // Fill blank value on blur.\n if (Number.isNaN(e.target.valueAsNumber)) {\n setSelectedPage(currentPage);\n }\n }}\n min={1}\n max={totalPages}\n type='number'\n disabled={isLoading}\n value={selectedPage ?? ''}\n />\n ) : (\n currentPage + ' '\n )}\n of {lowerBound ? 'many' : totalPages} pages\n </PageInput>\n <Button\n id='pagination__page-selector--left'\n disabled={currentPage === 1 || isLoading}\n onClick={() => {\n if (currentPage !== 1) {\n const prevPageNum = currentPage - 1;\n setSelectedPage(prevPageNum);\n handlePageLinkClick(prevPageNum);\n onPageChange?.(prevPageNum);\n }\n }}\n data-test='pagination__page-selector-paddle-left'\n variant='inverse'\n size='sm'\n width='auto'\n aria-label='Previous page'\n >\n Prev\n </Button>\n <Button\n id='pagination__page-selector--right'\n disabled={(currentPage === totalPages && !lowerBound) || isLoading}\n onClick={() => {\n if (currentPage !== totalPages || lowerBound) {\n const nextPageNum = currentPage + 1;\n setSelectedPage(nextPageNum);\n handlePageLinkClick(nextPageNum);\n onPageChange?.(nextPageNum);\n }\n }}\n data-test='pagination__page-selector-paddle-right'\n variant='inverse'\n size='sm'\n width='auto'\n aria-label='Next page'\n >\n Next\n </Button>\n </PageSelectorStack>\n );\n}\n","import styled from 'styled-components';\n\nimport Select, { Option } from '@persona/design-system/components/Select';\nimport { Color, Spacing, Typography } from '@persona/design-tokens';\n\nconst Selector = styled('div')`\n padding: ${Spacing[2]};\n display: flex;\n justify-content: flex-end;\n`;\n\nconst Label = styled.label`\n display: flex;\n align-items: center;\n white-space: nowrap;\n gap: ${Spacing[2]};\n padding: ${Spacing[2]};\n`;\n\ninterface PageSizeOptionProps {\n currentPageSize: number;\n pageSizeOption: number;\n}\n\nexport const PageSizeOption = styled('div')<PageSizeOptionProps>`\n padding: 0 ${Spacing[1]};\n color: ${Color.PrimaryPurple};\n cursor: pointer;\n\n ${({ currentPageSize, pageSizeOption }) => {\n if (currentPageSize === pageSizeOption) {\n return `\n ${Typography.TextMediumBold};\n text-decoration: underline;\n `;\n }\n }};\n\n &:hover {\n text-decoration: underline;\n }\n`;\n\ninterface PageSizeSelectorProps {\n pageSize: number;\n pageSizeOptions: number[];\n handlePageSizeClick: (pageSize: number) => void;\n /**\n * Element the options menu renders into. Pass a container inside the surrounding dialog when the\n * pager sits in a clipping container, where the menu would otherwise be cut off.\n */\n menuPortalContainer?: HTMLElement | null;\n}\n\nconst PageSizeSelector = ({\n pageSize,\n pageSizeOptions,\n handlePageSizeClick,\n menuPortalContainer,\n}: PageSizeSelectorProps) => {\n // Add pageSize to selector just in case it isn't part of the options so UI doesn't look weird\n const pageSizes = [\n ...pageSizeOptions,\n ...(pageSizeOptions.includes(pageSize) ? [] : [pageSize]),\n ].sort((a, b) => a - b);\n\n return (\n <Selector data-test='pagination__page-size-selector'>\n <Label>\n Items per page:\n <Select\n value={pageSize.toString()}\n onValueChange={(val) => handlePageSizeClick(Number(val))}\n size='sm'\n portal={menuPortalContainer != null}\n portalContainer={menuPortalContainer}\n >\n {pageSizes.map((size) => (\n <Option key={size} value={size.toString()}>\n {size}\n </Option>\n ))}\n </Select>\n </Label>\n </Selector>\n );\n};\n\nexport default PageSizeSelector;\n","import styled from 'styled-components';\n\nimport { Color, Typography } from '@persona/design-tokens';\n\nimport { DEFAULT_PAGE_SIZE_OPTIONS } from './constants';\nimport PageSelector from './PageSelector';\nimport PageSizeSelector from './PageSizeSelector';\nimport type { PaginationParams } from './types';\n\n// NB: this is configured in config/initializers/kaminari.rb\nconst MAX_PAGES = 100;\n\nconst Container = styled('nav')`\n ${Typography.TextMedium};\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const PaginationInfo = styled('div')`\n display: flex;\n align-items: center;\n\n color: ${Color.TextPrimary};\n`;\n\ninterface PaginationProps {\n pageSize?: number;\n pageSizeOptions?: number[];\n paginationParams?: PaginationParams;\n handlePageSizeClick: (pageSize: number) => void;\n handlePageLinkClick: (pageNumber: number) => void;\n isLoading?: boolean;\n showPageSizeSelector?: boolean;\n /**\n * Called with the new page number after the page changes. Lets the consumer\n * react to page changes -- e.g. scroll the page back to the top.\n */\n onPageChange?: (pageNumber: number) => void;\n /**\n * Element the page-size menu renders into. Pass a container inside the surrounding dialog when\n * the pager sits in a clipping container, where the menu would otherwise be cut off.\n */\n menuPortalContainer?: HTMLElement | null;\n}\n\nconst Pagination = ({\n pageSize,\n pageSizeOptions = DEFAULT_PAGE_SIZE_OPTIONS,\n paginationParams,\n handlePageSizeClick,\n handlePageLinkClick,\n isLoading,\n showPageSizeSelector = true,\n onPageChange,\n menuPortalContainer,\n}: PaginationProps) => {\n if (!paginationParams || !pageSize) {\n return <div />;\n }\n\n const {\n 'current-page': currentPage,\n 'total-count': totalCount,\n 'total-pages': totalPages,\n 'lower-bound': lowerBound,\n } = paginationParams;\n\n // If the total number of pages is the same as MAX_PAGES, we guess that the total number of\n // items might be limited by max pages, and that the total could change based on page size.\n // To limit user confusion here, we use 'many' instead of a specific number.\n const totalCountDisplay = lowerBound || totalPages >= MAX_PAGES ? 'many' : totalCount;\n\n const lastItemIndex = lowerBound\n ? currentPage * pageSize\n : Math.min(currentPage * pageSize, totalCount);\n const firstItemIndex = pageSize * (currentPage - 1) + 1;\n\n return (\n <Container role='navigation' aria-label='pagination'>\n {showPageSizeSelector && (\n <PageSizeSelector\n pageSize={pageSize}\n pageSizeOptions={pageSizeOptions}\n handlePageSizeClick={handlePageSizeClick}\n menuPortalContainer={menuPortalContainer}\n />\n )}\n {totalCount > 0 && (\n <>\n <div>\n Showing {firstItemIndex}-{lastItemIndex} of {totalCountDisplay} items\n </div>\n <PaginationInfo>\n <PageSelector\n paginationParams={paginationParams}\n handlePageLinkClick={handlePageLinkClick}\n isLoading={isLoading}\n onPageChange={onPageChange}\n />\n </PaginationInfo>\n </>\n )}\n </Container>\n );\n};\n\nexport default Pagination;\n","import Pagination from './Pagination';\n\nexport { default as PageSelector, PAGE_LIMIT_BEFORE_SCROLL_MODE } from './PageSelector';\nexport * from './constants';\nexport default Pagination;\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { n as Sticker } from "./Sticker-DbqKLe33.mjs";
1
+ import { n as Sticker } from "./Sticker-CyGb9dEu.mjs";
2
2
  import { Fragment, jsx } from "react/jsx-runtime";
3
3
  //#region components/Pii/Pii.tsx
4
4
  const Pii = ({ children, isRedacted, hideOnRedacted }) => {
@@ -16,4 +16,4 @@ var Pii_default = Pii;
16
16
  //#endregion
17
17
  export { Pii_default as t };
18
18
 
19
- //# sourceMappingURL=Pii-DrrtEz7U.mjs.map
19
+ //# sourceMappingURL=Pii-QsTrz8wn.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pii-DrrtEz7U.mjs","names":[],"sources":["../components/Pii/Pii.tsx","../components/Pii/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport Sticker from '@persona/design-system/components/Sticker';\n\ninterface PiiProps {\n children?: ReactNode;\n isRedacted: boolean;\n hideOnRedacted?: boolean;\n}\n\nconst Pii = ({ children, isRedacted, hideOnRedacted }: PiiProps) => {\n if (isRedacted) {\n return hideOnRedacted ? null : <Sticker data-test='pii__redacted'>Redacted</Sticker>;\n }\n\n if (children == null || children === '') {\n return null;\n }\n\n // There used to be code inserting a classname here in certain cases. There's\n // no other reason for this to be conditionally wrapped in a span, but\n // removing it breaks a lot of tests. Someday, the tests will be fixed...\n // hopefully.\n if (['string', 'number'].includes(typeof children)) {\n return <span>{children}</span>;\n }\n\n return <>{children}</>;\n};\n\nexport default Pii;\n","import Pii from './Pii';\n\nexport default Pii;\n"],"mappings":";;;AAUA,MAAM,OAAO,EAAE,UAAU,YAAY,qBAA+B;AAClE,KAAI,WACF,QAAO,iBAAiB,OAAO,oBAAC,SAAD;EAAS,aAAU;YAAgB;EAAkB,CAAA;AAGtF,KAAI,YAAY,QAAQ,aAAa,GACnC,QAAO;AAOT,KAAI,CAAC,UAAU,SAAS,CAAC,SAAS,OAAO,SAAS,CAChD,QAAO,oBAAC,QAAD,EAAO,UAAgB,CAAA;AAGhC,QAAO,oBAAA,UAAA,EAAG,UAAY,CAAA;;;;ACzBxB,IAAA,cAAe"}
1
+ {"version":3,"file":"Pii-QsTrz8wn.mjs","names":[],"sources":["../components/Pii/Pii.tsx","../components/Pii/index.ts"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport Sticker from '@persona/design-system/components/Sticker';\n\ninterface PiiProps {\n children?: ReactNode;\n isRedacted: boolean;\n hideOnRedacted?: boolean;\n}\n\nconst Pii = ({ children, isRedacted, hideOnRedacted }: PiiProps) => {\n if (isRedacted) {\n return hideOnRedacted ? null : <Sticker data-test='pii__redacted'>Redacted</Sticker>;\n }\n\n if (children == null || children === '') {\n return null;\n }\n\n // There used to be code inserting a classname here in certain cases. There's\n // no other reason for this to be conditionally wrapped in a span, but\n // removing it breaks a lot of tests. Someday, the tests will be fixed...\n // hopefully.\n if (['string', 'number'].includes(typeof children)) {\n return <span>{children}</span>;\n }\n\n return <>{children}</>;\n};\n\nexport default Pii;\n","import Pii from './Pii';\n\nexport default Pii;\n"],"mappings":";;;AAUA,MAAM,OAAO,EAAE,UAAU,YAAY,qBAA+B;AAClE,KAAI,WACF,QAAO,iBAAiB,OAAO,oBAAC,SAAD;EAAS,aAAU;YAAgB;EAAkB,CAAA;AAGtF,KAAI,YAAY,QAAQ,aAAa,GACnC,QAAO;AAOT,KAAI,CAAC,UAAU,SAAS,CAAC,SAAS,OAAO,SAAS,CAChD,QAAO,oBAAC,QAAD,EAAO,UAAgB,CAAA;AAGhC,QAAO,oBAAA,UAAA,EAAG,UAAY,CAAA;;;;ACzBxB,IAAA,cAAe"}
@@ -1,5 +1,5 @@
1
1
  import { n as InputSizes, t as InputMixinProps } from "./input-Bv5fKt5J.mjs";
2
- import { l as MenuItemProps } from "./Menu-CUp_9HgC.mjs";
2
+ import { l as MenuItemProps } from "./Menu-Bv8dsrz6.mjs";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
  import * as _$react from "react";
5
5
  import { ReactNode } from "react";
@@ -80,4 +80,4 @@ declare const Select: _$react.ForwardRefExoticComponent<SelectProps & _$react.Re
80
80
  declare const Option: _$react.ForwardRefExoticComponent<SelectPrimitive.SelectItemProps & MenuItemProps<"div"> & _$react.RefAttributes<HTMLDivElement>>;
81
81
  //#endregion
82
82
  export { SelectProps as i, Select as n, SelectHeader as r, Option as t };
83
- //# sourceMappingURL=Select-2KbtKawr.d.mts.map
83
+ //# sourceMappingURL=Select-Bk27TgN8.d.mts.map
@@ -4,9 +4,9 @@ import { paragraphMixins } from "./mixins/text.mjs";
4
4
  import { t as HStack } from "./Stack-Bl54WmhY.mjs";
5
5
  import { i as Paragraph } from "./Text-RcEfNFLx.mjs";
6
6
  import { Z_INDICES } from "./lib/zindex.mjs";
7
- import { t as IconButton } from "./IconButton-CIWiEsS-.mjs";
8
- import { c as MenuList, i as Menu, o as MenuHeading, s as MenuItem } from "./Menu-CPYXo61N.mjs";
9
- import { n as DropdownMenu_default } from "./DropdownMenu-DGYexb7s.mjs";
7
+ import { t as IconButton } from "./IconButton-P8w0JDI5.mjs";
8
+ import { c as MenuList, i as Menu, o as MenuHeading, s as MenuItem } from "./Menu-DmeMgN-i.mjs";
9
+ import { n as DropdownMenu_default } from "./DropdownMenu-D25WBCah.mjs";
10
10
  import { n as useFormField } from "./useFormField-DhYd6bNn.mjs";
11
11
  import { Color, Spacing } from "@persona/design-tokens";
12
12
  import styled, { css } from "styled-components";
@@ -242,4 +242,4 @@ const Option = forwardRef(function Option({ children, subtitle, ...props }, forw
242
242
  //#endregion
243
243
  export { Select as n, SelectHeader as r, Option as t };
244
244
 
245
- //# sourceMappingURL=Select-cPEORy70.mjs.map
245
+ //# sourceMappingURL=Select-C1ZoRk39.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Select-cPEORy70.mjs","names":["DropdownMenu"],"sources":["../components/Select/Select.tsx"],"sourcesContent":["import * as SelectPrimitive from '@radix-ui/react-select';\nimport type { Property } from 'csstype';\nimport { forwardRef, type ReactNode } from 'react';\nimport { useId } from 'react-aria';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { CaretDownIcon, MoreIcon } from '@persona/icons';\nimport { IconButton } from 'design-system/components/Button';\nimport DropdownMenu from 'design-system/components/DropdownMenu';\nimport useFormField from 'design-system/components/FormControl/useFormField';\nimport Menu, {\n MenuHeading,\n MenuItem,\n type MenuItemProps,\n MenuList,\n type MenuProps,\n} from 'design-system/components/Menu';\nimport { HStack } from 'design-system/components/Stack';\nimport { Paragraph } from 'design-system/components/Text';\nimport { isNotDisabled } from 'design-system/lib/pseudoClass';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport inputMixin, { type InputMixinProps, type InputSizes } from 'design-system/mixins/input';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nexport interface SelectProps extends InputMixinProps, Omit<SelectPrimitive.SelectProps, 'value'> {\n 'aria-label'?: string;\n placeholder?: string;\n\n /**\n * id will be applied to trigger\n */\n id?: string;\n\n /**\n * Class name will be applied to trigger\n */\n className?: string;\n\n /**\n * Max height of options menu\n */\n maxHeight?: number;\n\n /**\n * Min width of the select\n */\n minWidth?: number;\n\n /**\n * Width of the selected value container\n */\n valueContainerWidth?: 'auto' | '100%';\n\n /**\n * Render dropdown menu in a portal.\n */\n portal?: boolean;\n\n /**\n * Element the portalled menu renders into. Defaults to `document.body`. Pass a container inside\n * the current dialog so the menu escapes clipping ancestors without leaving the dialog's\n * dismiss scope, which would close it on click. Requires `portal`.\n */\n portalContainer?: HTMLElement | null;\n\n /**\n * Props to apply to Radix Select.Trigger within\n */\n triggerProps?: SelectPrimitive.SelectTriggerProps;\n\n /**\n * Props to apply to Radix Select.Content within\n */\n contentProps?: SelectPrimitive.SelectContentProps;\n\n /**\n * Callback meant for use with `react-hook-form`'s `useForm` (or Persona's `useFormSecurely`)\n */\n onChange?: (event: { target: { value: string } }) => void;\n\n size?: InputSizes;\n\n value?: string | null;\n\n width?: string;\n\n header?: ReactNode;\n\n footer?: ReactNode;\n\n /**\n * z-index of content. Please use sparingly.\n */\n zIndex?: Property.ZIndex;\n}\n\ninterface SelectButtonProps extends InputMixinProps {\n isSelectingPlaceholder: boolean;\n $width?: string;\n $minWidth?: number;\n}\n\nconst SelectButton = styled('button')<SelectButtonProps>`\n ${inputMixin};\n display: inline-flex;\n position: relative;\n align-items: center;\n outline: none;\n appearance: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-right: ${Spacing[6]};\n width: ${({ $width }) => $width ?? '100%'};\n min-width: ${({ $minWidth }) => ($minWidth != null ? `${$minWidth}px` : 'auto')};\n pointer-events: auto;\n\n &${isNotDisabled} {\n cursor: pointer;\n }\n\n ${({ theme, isSelectingPlaceholder }) =>\n isSelectingPlaceholder &&\n css`\n color: ${theme.color.text.secondary};\n `}\n`;\n\ninterface SelectValueContainerProps {\n width?: string;\n}\n\nconst SelectValueContainer = styled.span<SelectValueContainerProps>`\n text-overflow: ellipsis;\n min-width: 0px;\n overflow: hidden;\n text-align: start;\n\n ${({ width }) =>\n width &&\n css`\n width: ${width};\n `}\n`;\n\nconst OptionSubtitle = styled.div`\n color: ${({ theme }) => theme.color.text.secondary};\n font-size: ${({ theme }) => theme.text.paragraph.sm.fontSize};\n margin-top: ${Spacing[1]};\n`;\n\ninterface OptionsMenuProps {\n maxHeight?: number;\n size?: InputSizes;\n}\n\nconst OptionsMenu = styled(Menu)<OptionsMenuProps>`\n width: var(--radix-select-trigger-width);\n max-height: ${({ maxHeight }) => maxHeight ?? '225px !important'};\n overflow-y: auto;\n margin-bottom: 0;\n\n ${({ size }) => {\n switch (size) {\n case 'md': {\n return css`\n ${MenuList} {\n padding: ${Spacing[2]};\n }\n\n ${OptionItem} {\n ${paragraphMixins.md};\n padding: ${Spacing[2]};\n }\n\n ${MenuHeading} {\n padding: ${Spacing[2]};\n }\n `;\n }\n case 'sm': {\n return css`\n ${MenuList} {\n padding: ${Spacing[1]};\n }\n\n ${OptionItem} {\n ${paragraphMixins.sm};\n padding: ${Spacing[1]};\n }\n\n ${MenuHeading} {\n padding: ${Spacing[1]};\n }\n `;\n }\n }\n }}\n`;\n\nconst SelectContent = styled(SelectPrimitive.Content)<{ $zIndex?: number | string }>`\n z-index: ${({ $zIndex }) => $zIndex || Z_INDICES.dropdown};\n`;\n\nconst SelectHeaderContainer = styled(HStack)`\n display: flex;\n justify-content: space-between;\n padding: ${Spacing[1]} ${Spacing[1]} 0 ${Spacing[1]};\n margin-bottom: ${Spacing[1]};\n`;\n\nconst SelectFooter = styled.div`\n padding: ${Spacing[1]} 0;\n margin-top: ${Spacing[1]};\n border-top: 1px solid ${Color.BorderDivider};\n`;\n\nconst SelectMenu = forwardRef<HTMLUListElement, MenuProps & OptionsMenuProps>(function SelectMenu(\n props: MenuProps,\n forwardedRef,\n) {\n return <OptionsMenu listRef={forwardedRef} {...props} />;\n});\n\nconst OptionItem = styled(MenuItem)`\n ${paragraphMixins.md};\n padding: ${Spacing[4]};\n`;\n\nconst SelectItem = forwardRef<HTMLDivElement, MenuItemProps>(function SelectItem(\n props: MenuItemProps,\n forwardedRef,\n) {\n return <OptionItem ref={forwardedRef} {...props} />;\n});\n\nconst StyledIconContainer = styled(SelectPrimitive.Icon)<{ disabled?: boolean }>`\n position: absolute;\n right: ${Spacing[2]};\n display: flex;\n justify-content: center;\n\n ${({ disabled }) => css`\n color: ${disabled ? Color.BorderIconDisabled : Color.BorderIconPrimary};\n `}\n`;\n\ninterface SelectHeaderProps {\n title?: ReactNode;\n menuItems?: ReactNode;\n menuTriggerLabel?: string;\n}\n\nexport const SelectHeader = ({ title, menuItems, menuTriggerLabel }: SelectHeaderProps) => {\n const uniqueId = useId();\n\n return (\n <SelectHeaderContainer align='center'>\n {title && (\n <Paragraph color='primary' weight='bold' size='md'>\n {title}\n </Paragraph>\n )}\n {menuItems && (\n <DropdownMenu\n portal={true}\n trigger={\n <IconButton>\n <MoreIcon />\n </IconButton>\n }\n triggerProps={{\n 'aria-label': menuTriggerLabel,\n id: `select-header-menu-trigger-${uniqueId}`,\n }}\n side='right'\n align='start'\n zIndex={Z_INDICES.layeredDropdown}\n contentProps={{\n // Fix for Radix UI 2.1.15 upgrade breaking changes:\n // 1. Portal rendering causes pointer-events issues preventing dropdown interaction\n // 2. Portal timing causes onFocusOutside to fire immediately, closing dropdown\n style: {\n pointerEvents: 'auto', // Ensure dropdown items receive mouse events\n },\n onFocusOutside: (event) => event.preventDefault(), // Prevent immediate portal closing\n }}\n >\n {menuItems}\n </DropdownMenu>\n )}\n </SelectHeaderContainer>\n );\n};\n\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(function Select(\n { portal = false, portalContainer, size = 'md', ...props }: SelectProps,\n forwardedRef,\n) {\n const {\n 'aria-label': ariaLabel,\n hasError,\n hasWarning,\n focused,\n active,\n hovered,\n disabled,\n placeholder,\n maxHeight,\n children,\n triggerProps,\n contentProps,\n id,\n className,\n onChange,\n onValueChange,\n value,\n width,\n header,\n footer,\n minWidth,\n valueContainerWidth,\n zIndex,\n } = props;\n\n const field = useFormField({ inputId: props.id, disabled, hasWarning, hasError });\n\n const content = (\n <SelectContent\n position='popper'\n side='bottom'\n sideOffset={8}\n $zIndex={zIndex}\n {...contentProps}\n >\n <SelectMenu maxHeight={maxHeight} size={size}>\n {header}\n <SelectPrimitive.Viewport>{children}</SelectPrimitive.Viewport>\n {footer && (\n <>\n <SelectFooter>{footer}</SelectFooter>\n </>\n )}\n </SelectMenu>\n </SelectContent>\n );\n\n return (\n <SelectPrimitive.Root\n {...props}\n onValueChange={(value) => {\n onChange?.({ target: { value } });\n onValueChange?.(value);\n }}\n // Custom behavior to consider null as empty value\n value={value === null ? '' : value} // eslint-disable-line @persona-id/eqeq-null-undefined\n >\n <SelectPrimitive.Trigger\n ref={forwardedRef}\n asChild\n id={id}\n className={className}\n disabled={field.disabled}\n aria-describedby={field.helperTextId}\n aria-errormessage={field.hasError ? field.helperTextId : undefined}\n aria-invalid={field.hasError}\n aria-label={ariaLabel}\n {...triggerProps}\n >\n <SelectButton\n hasWarning={field.hasWarning}\n hasError={field.hasError}\n hovered={hovered}\n focused={focused}\n active={active}\n disabled={field.disabled}\n placeholder={placeholder}\n isSelectingPlaceholder={props.value === '' || props.value == null}\n $minWidth={minWidth}\n $size={size}\n $width={width}\n >\n <SelectValueContainer width={valueContainerWidth}>\n <SelectPrimitive.Value placeholder={placeholder} />\n </SelectValueContainer>\n <StyledIconContainer disabled={disabled}>\n <CaretDownIcon />\n </StyledIconContainer>\n </SelectButton>\n </SelectPrimitive.Trigger>\n {portal ? (\n <SelectPrimitive.Portal container={portalContainer}>{content}</SelectPrimitive.Portal>\n ) : (\n content\n )}\n </SelectPrimitive.Root>\n );\n});\n\nexport default Select;\n\nexport const Option = forwardRef<HTMLDivElement, SelectPrimitive.SelectItemProps & MenuItemProps>(\n function Option({ children, subtitle, ...props }, forwardedRef) {\n return (\n <SelectPrimitive.Item {...props} ref={forwardedRef} asChild>\n <SelectItem {...props}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n {subtitle && <OptionSubtitle>{subtitle}</OptionSubtitle>}\n </SelectItem>\n </SelectPrimitive.Item>\n );\n },\n);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Select-C1ZoRk39.mjs","names":["DropdownMenu"],"sources":["../components/Select/Select.tsx"],"sourcesContent":["import * as SelectPrimitive from '@radix-ui/react-select';\nimport type { Property } from 'csstype';\nimport { forwardRef, type ReactNode } from 'react';\nimport { useId } from 'react-aria';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { CaretDownIcon, MoreIcon } from '@persona/icons';\nimport { IconButton } from 'design-system/components/Button';\nimport DropdownMenu from 'design-system/components/DropdownMenu';\nimport useFormField from 'design-system/components/FormControl/useFormField';\nimport Menu, {\n MenuHeading,\n MenuItem,\n type MenuItemProps,\n MenuList,\n type MenuProps,\n} from 'design-system/components/Menu';\nimport { HStack } from 'design-system/components/Stack';\nimport { Paragraph } from 'design-system/components/Text';\nimport { isNotDisabled } from 'design-system/lib/pseudoClass';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport inputMixin, { type InputMixinProps, type InputSizes } from 'design-system/mixins/input';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nexport interface SelectProps extends InputMixinProps, Omit<SelectPrimitive.SelectProps, 'value'> {\n 'aria-label'?: string;\n placeholder?: string;\n\n /**\n * id will be applied to trigger\n */\n id?: string;\n\n /**\n * Class name will be applied to trigger\n */\n className?: string;\n\n /**\n * Max height of options menu\n */\n maxHeight?: number;\n\n /**\n * Min width of the select\n */\n minWidth?: number;\n\n /**\n * Width of the selected value container\n */\n valueContainerWidth?: 'auto' | '100%';\n\n /**\n * Render dropdown menu in a portal.\n */\n portal?: boolean;\n\n /**\n * Element the portalled menu renders into. Defaults to `document.body`. Pass a container inside\n * the current dialog so the menu escapes clipping ancestors without leaving the dialog's\n * dismiss scope, which would close it on click. Requires `portal`.\n */\n portalContainer?: HTMLElement | null;\n\n /**\n * Props to apply to Radix Select.Trigger within\n */\n triggerProps?: SelectPrimitive.SelectTriggerProps;\n\n /**\n * Props to apply to Radix Select.Content within\n */\n contentProps?: SelectPrimitive.SelectContentProps;\n\n /**\n * Callback meant for use with `react-hook-form`'s `useForm` (or Persona's `useFormSecurely`)\n */\n onChange?: (event: { target: { value: string } }) => void;\n\n size?: InputSizes;\n\n value?: string | null;\n\n width?: string;\n\n header?: ReactNode;\n\n footer?: ReactNode;\n\n /**\n * z-index of content. Please use sparingly.\n */\n zIndex?: Property.ZIndex;\n}\n\ninterface SelectButtonProps extends InputMixinProps {\n isSelectingPlaceholder: boolean;\n $width?: string;\n $minWidth?: number;\n}\n\nconst SelectButton = styled('button')<SelectButtonProps>`\n ${inputMixin};\n display: inline-flex;\n position: relative;\n align-items: center;\n outline: none;\n appearance: none;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n padding-right: ${Spacing[6]};\n width: ${({ $width }) => $width ?? '100%'};\n min-width: ${({ $minWidth }) => ($minWidth != null ? `${$minWidth}px` : 'auto')};\n pointer-events: auto;\n\n &${isNotDisabled} {\n cursor: pointer;\n }\n\n ${({ theme, isSelectingPlaceholder }) =>\n isSelectingPlaceholder &&\n css`\n color: ${theme.color.text.secondary};\n `}\n`;\n\ninterface SelectValueContainerProps {\n width?: string;\n}\n\nconst SelectValueContainer = styled.span<SelectValueContainerProps>`\n text-overflow: ellipsis;\n min-width: 0px;\n overflow: hidden;\n text-align: start;\n\n ${({ width }) =>\n width &&\n css`\n width: ${width};\n `}\n`;\n\nconst OptionSubtitle = styled.div`\n color: ${({ theme }) => theme.color.text.secondary};\n font-size: ${({ theme }) => theme.text.paragraph.sm.fontSize};\n margin-top: ${Spacing[1]};\n`;\n\ninterface OptionsMenuProps {\n maxHeight?: number;\n size?: InputSizes;\n}\n\nconst OptionsMenu = styled(Menu)<OptionsMenuProps>`\n width: var(--radix-select-trigger-width);\n max-height: ${({ maxHeight }) => maxHeight ?? '225px !important'};\n overflow-y: auto;\n margin-bottom: 0;\n\n ${({ size }) => {\n switch (size) {\n case 'md': {\n return css`\n ${MenuList} {\n padding: ${Spacing[2]};\n }\n\n ${OptionItem} {\n ${paragraphMixins.md};\n padding: ${Spacing[2]};\n }\n\n ${MenuHeading} {\n padding: ${Spacing[2]};\n }\n `;\n }\n case 'sm': {\n return css`\n ${MenuList} {\n padding: ${Spacing[1]};\n }\n\n ${OptionItem} {\n ${paragraphMixins.sm};\n padding: ${Spacing[1]};\n }\n\n ${MenuHeading} {\n padding: ${Spacing[1]};\n }\n `;\n }\n }\n }}\n`;\n\nconst SelectContent = styled(SelectPrimitive.Content)<{ $zIndex?: number | string }>`\n z-index: ${({ $zIndex }) => $zIndex || Z_INDICES.dropdown};\n`;\n\nconst SelectHeaderContainer = styled(HStack)`\n display: flex;\n justify-content: space-between;\n padding: ${Spacing[1]} ${Spacing[1]} 0 ${Spacing[1]};\n margin-bottom: ${Spacing[1]};\n`;\n\nconst SelectFooter = styled.div`\n padding: ${Spacing[1]} 0;\n margin-top: ${Spacing[1]};\n border-top: 1px solid ${Color.BorderDivider};\n`;\n\nconst SelectMenu = forwardRef<HTMLUListElement, MenuProps & OptionsMenuProps>(function SelectMenu(\n props: MenuProps,\n forwardedRef,\n) {\n return <OptionsMenu listRef={forwardedRef} {...props} />;\n});\n\nconst OptionItem = styled(MenuItem)`\n ${paragraphMixins.md};\n padding: ${Spacing[4]};\n`;\n\nconst SelectItem = forwardRef<HTMLDivElement, MenuItemProps>(function SelectItem(\n props: MenuItemProps,\n forwardedRef,\n) {\n return <OptionItem ref={forwardedRef} {...props} />;\n});\n\nconst StyledIconContainer = styled(SelectPrimitive.Icon)<{ disabled?: boolean }>`\n position: absolute;\n right: ${Spacing[2]};\n display: flex;\n justify-content: center;\n\n ${({ disabled }) => css`\n color: ${disabled ? Color.BorderIconDisabled : Color.BorderIconPrimary};\n `}\n`;\n\ninterface SelectHeaderProps {\n title?: ReactNode;\n menuItems?: ReactNode;\n menuTriggerLabel?: string;\n}\n\nexport const SelectHeader = ({ title, menuItems, menuTriggerLabel }: SelectHeaderProps) => {\n const uniqueId = useId();\n\n return (\n <SelectHeaderContainer align='center'>\n {title && (\n <Paragraph color='primary' weight='bold' size='md'>\n {title}\n </Paragraph>\n )}\n {menuItems && (\n <DropdownMenu\n portal={true}\n trigger={\n <IconButton>\n <MoreIcon />\n </IconButton>\n }\n triggerProps={{\n 'aria-label': menuTriggerLabel,\n id: `select-header-menu-trigger-${uniqueId}`,\n }}\n side='right'\n align='start'\n zIndex={Z_INDICES.layeredDropdown}\n contentProps={{\n // Fix for Radix UI 2.1.15 upgrade breaking changes:\n // 1. Portal rendering causes pointer-events issues preventing dropdown interaction\n // 2. Portal timing causes onFocusOutside to fire immediately, closing dropdown\n style: {\n pointerEvents: 'auto', // Ensure dropdown items receive mouse events\n },\n onFocusOutside: (event) => event.preventDefault(), // Prevent immediate portal closing\n }}\n >\n {menuItems}\n </DropdownMenu>\n )}\n </SelectHeaderContainer>\n );\n};\n\nexport const Select = forwardRef<HTMLButtonElement, SelectProps>(function Select(\n { portal = false, portalContainer, size = 'md', ...props }: SelectProps,\n forwardedRef,\n) {\n const {\n 'aria-label': ariaLabel,\n hasError,\n hasWarning,\n focused,\n active,\n hovered,\n disabled,\n placeholder,\n maxHeight,\n children,\n triggerProps,\n contentProps,\n id,\n className,\n onChange,\n onValueChange,\n value,\n width,\n header,\n footer,\n minWidth,\n valueContainerWidth,\n zIndex,\n } = props;\n\n const field = useFormField({ inputId: props.id, disabled, hasWarning, hasError });\n\n const content = (\n <SelectContent\n position='popper'\n side='bottom'\n sideOffset={8}\n $zIndex={zIndex}\n {...contentProps}\n >\n <SelectMenu maxHeight={maxHeight} size={size}>\n {header}\n <SelectPrimitive.Viewport>{children}</SelectPrimitive.Viewport>\n {footer && (\n <>\n <SelectFooter>{footer}</SelectFooter>\n </>\n )}\n </SelectMenu>\n </SelectContent>\n );\n\n return (\n <SelectPrimitive.Root\n {...props}\n onValueChange={(value) => {\n onChange?.({ target: { value } });\n onValueChange?.(value);\n }}\n // Custom behavior to consider null as empty value\n value={value === null ? '' : value} // eslint-disable-line @persona-id/eqeq-null-undefined\n >\n <SelectPrimitive.Trigger\n ref={forwardedRef}\n asChild\n id={id}\n className={className}\n disabled={field.disabled}\n aria-describedby={field.helperTextId}\n aria-errormessage={field.hasError ? field.helperTextId : undefined}\n aria-invalid={field.hasError}\n aria-label={ariaLabel}\n {...triggerProps}\n >\n <SelectButton\n hasWarning={field.hasWarning}\n hasError={field.hasError}\n hovered={hovered}\n focused={focused}\n active={active}\n disabled={field.disabled}\n placeholder={placeholder}\n isSelectingPlaceholder={props.value === '' || props.value == null}\n $minWidth={minWidth}\n $size={size}\n $width={width}\n >\n <SelectValueContainer width={valueContainerWidth}>\n <SelectPrimitive.Value placeholder={placeholder} />\n </SelectValueContainer>\n <StyledIconContainer disabled={disabled}>\n <CaretDownIcon />\n </StyledIconContainer>\n </SelectButton>\n </SelectPrimitive.Trigger>\n {portal ? (\n <SelectPrimitive.Portal container={portalContainer}>{content}</SelectPrimitive.Portal>\n ) : (\n content\n )}\n </SelectPrimitive.Root>\n );\n});\n\nexport default Select;\n\nexport const Option = forwardRef<HTMLDivElement, SelectPrimitive.SelectItemProps & MenuItemProps>(\n function Option({ children, subtitle, ...props }, forwardedRef) {\n return (\n <SelectPrimitive.Item {...props} ref={forwardedRef} asChild>\n <SelectItem {...props}>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n {subtitle && <OptionSubtitle>{subtitle}</OptionSubtitle>}\n </SelectItem>\n </SelectPrimitive.Item>\n );\n },\n);\n"],"mappings":"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"}
package/dist/Select.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { i as SelectProps, n as Select, r as SelectHeader, t as Option } from "./Select-2KbtKawr.mjs";
1
+ import { i as SelectProps, n as Select, r as SelectHeader, t as Option } from "./Select-Bk27TgN8.mjs";
2
2
  export { Option, Select, Select as default, SelectHeader, SelectProps };
@@ -2,7 +2,7 @@ import { isDisabled, isFocusedVisible, isHovered, isNotDisabled } from "./lib/ps
2
2
  import { paragraphMixins } from "./mixins/text.mjs";
3
3
  import { n as Stack } from "./Stack-Bl54WmhY.mjs";
4
4
  import { TruncatedText } from "./lib/TruncatedText.mjs";
5
- import { t as IconButton } from "./IconButton-CIWiEsS-.mjs";
5
+ import { t as IconButton } from "./IconButton-P8w0JDI5.mjs";
6
6
  import { BorderRadius, Color, Spacing } from "@persona/design-tokens";
7
7
  import styled from "styled-components";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -210,4 +210,4 @@ const Sticker = ({ variant, icon, children, onDismiss, disabled, dismissButtonPr
210
210
  //#endregion
211
211
  export { StyledTruncatedText as a, StickerContentContainer as i, Sticker as n, StickerContainer as r, STICKER_COLOR_CONFIG as t };
212
212
 
213
- //# sourceMappingURL=Sticker-DbqKLe33.mjs.map
213
+ //# sourceMappingURL=Sticker-CyGb9dEu.mjs.map