@persona/design-system 0.1.9 → 0.2.1

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 (450) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/{Action-CVtzREhU.d.mts → Action-DnR0YTxO.d.mts} +3 -3
  3. package/dist/Action.d.mts +1 -1
  4. package/dist/AdvancedFilterRuleRow.d.mts +3 -3
  5. package/dist/AdvancedFilterRulesPopover.d.mts +3 -3
  6. package/dist/ArrayValueControl.d.mts +1 -1
  7. package/dist/Attribute.d.mts +4 -4
  8. package/dist/AttributeGrid.d.mts +1 -1
  9. package/dist/{Badge-DEVbRlJX.mjs → Badge-DRn_r6is.mjs} +2 -2
  10. package/dist/{Badge-DEVbRlJX.mjs.map → Badge-DRn_r6is.mjs.map} +1 -1
  11. package/dist/Banner.d.mts +1 -1
  12. package/dist/BooleanValueControl.d.mts +1 -1
  13. package/dist/{Breadcrumb-lziQ1FX9.d.mts → Breadcrumb-DEwZFJHF.d.mts} +10 -2
  14. package/dist/Breadcrumb.d.mts +1 -1
  15. package/dist/{Breadcrumbs-DJ5qqqRD.d.mts → Breadcrumbs-0e_3v9FF.d.mts} +2 -2
  16. package/dist/{Breadcrumbs-W8hIhdHD.mjs → Breadcrumbs-Byf2ye6H.mjs} +43 -26
  17. package/dist/Breadcrumbs-Byf2ye6H.mjs.map +1 -0
  18. package/dist/Breadcrumbs.d.mts +1 -1
  19. package/dist/{Button-Vd5O4DUp.d.mts → Button-DkjwN_Op.d.mts} +3 -3
  20. package/dist/Button.d.mts +1 -1
  21. package/dist/ButtonGroup.d.mts +1 -1
  22. package/dist/Calendar.d.mts +1 -1
  23. package/dist/CalendarBase.d.mts +1 -1
  24. package/dist/{Card-BMCB9eFC.mjs → Card-CLTkZLKr.mjs} +4 -4
  25. package/dist/{Card-BMCB9eFC.mjs.map → Card-CLTkZLKr.mjs.map} +1 -1
  26. package/dist/{Card-CqnG--CU.d.mts → Card-DxFajLnx.d.mts} +4 -4
  27. package/dist/Card.d.mts +1 -1
  28. package/dist/Card2.d.mts +1 -1
  29. package/dist/{CardV2-C0fcOUdp.mjs → CardV2-m9yOInMU.mjs} +16 -16
  30. package/dist/{CardV2-C0fcOUdp.mjs.map → CardV2-m9yOInMU.mjs.map} +1 -1
  31. package/dist/{Checkbox-Bm8exUfH.d.mts → Checkbox-Bmm-r5ei.d.mts} +1 -1
  32. package/dist/{Checkbox-BcuiFvK7.mjs → Checkbox-CU27-Aa8.mjs} +6 -6
  33. package/dist/{Checkbox-BcuiFvK7.mjs.map → Checkbox-CU27-Aa8.mjs.map} +1 -1
  34. package/dist/Checkbox.d.mts +1 -1
  35. package/dist/CheckboxGroupField.d.mts +2 -2
  36. package/dist/ChoicesValueControl.d.mts +1 -1
  37. package/dist/{Combobox-BaD0f2Du.d.mts → Combobox-BgKEHP9p.d.mts} +3 -3
  38. package/dist/{Combobox-B6JyLog8.mjs → Combobox-DhTUY8JT.mjs} +55 -31
  39. package/dist/Combobox-DhTUY8JT.mjs.map +1 -0
  40. package/dist/Combobox.d.mts +2 -2
  41. package/dist/{ComboboxBase-BsPf8BZh.d.mts → ComboboxBase-Dmzn8a53.d.mts} +7 -7
  42. package/dist/ComboboxBase.d.mts +1 -1
  43. package/dist/{ComboboxMultiSelect-DhLzCWbz.d.mts → ComboboxMultiSelect-BLKUKNEW.d.mts} +2 -2
  44. package/dist/ComboboxMultiSelect.d.mts +1 -1
  45. package/dist/{ComboboxSingleSelect-P0r5rs_u.d.mts → ComboboxSingleSelect-Kpl-iOok.d.mts} +4 -4
  46. package/dist/ComboboxSingleSelect.d.mts +1 -1
  47. package/dist/{CompactBar-CXqlVKy7.d.mts → CompactBar-E9hPDRvI.d.mts} +3 -3
  48. package/dist/CompactBar.d.mts +1 -1
  49. package/dist/{ConfigFormGroup-yhb2jldT.mjs → ConfigFormGroup-GgzSDzgL.mjs} +3 -3
  50. package/dist/{ConfigFormGroup-yhb2jldT.mjs.map → ConfigFormGroup-GgzSDzgL.mjs.map} +1 -1
  51. package/dist/{ControlBar-tOCQnbAl.d.mts → ControlBar-DYrjBDzu.d.mts} +2 -2
  52. package/dist/ControlBar.d.mts +1 -1
  53. package/dist/DataTable.d.mts +4 -4
  54. package/dist/DateField.d.mts +1 -1
  55. package/dist/{DatePicker-Bw79p-Lx.mjs → DatePicker-DpGvo7Bd.mjs} +23 -23
  56. package/dist/DatePicker-DpGvo7Bd.mjs.map +1 -0
  57. package/dist/DatePicker.d.mts +1 -1
  58. package/dist/DateRangePicker.d.mts +2 -1
  59. package/dist/DateValueControl.d.mts +1 -1
  60. package/dist/{DropdownButton-BI3IFJun.mjs → DropdownButton-DGgfGW_o.mjs} +3 -3
  61. package/dist/{DropdownButton-BI3IFJun.mjs.map → DropdownButton-DGgfGW_o.mjs.map} +1 -1
  62. package/dist/DropdownButton.d.mts +2 -2
  63. package/dist/{DropdownMenu-D6nfAsi0.d.mts → DropdownMenu-B2t3Bwky.d.mts} +3 -3
  64. package/dist/{DropdownMenu-D25WBCah.mjs → DropdownMenu-DZIFSJXD.mjs} +3 -3
  65. package/dist/{DropdownMenu-D25WBCah.mjs.map → DropdownMenu-DZIFSJXD.mjs.map} +1 -1
  66. package/dist/DropdownMenu.d.mts +1 -1
  67. package/dist/{ErrorProps-CN2XjaOX.d.mts → ErrorProps-DX50vo-U.d.mts} +1 -1
  68. package/dist/ErrorProps.d.mts +1 -1
  69. package/dist/{FieldRegistry-rqSkjchY.d.mts → FieldRegistry-COyIA4VU.d.mts} +2 -2
  70. package/dist/FieldRegistry.d.mts +1 -1
  71. package/dist/{FilterBar-D3LiIy1-.d.mts → FilterBar-CS2YjiTr.d.mts} +8 -5
  72. package/dist/FilterBar.d.mts +1 -1
  73. package/dist/FilterPickerMenu.d.mts +3 -3
  74. package/dist/FilterPill.d.mts +1 -1
  75. package/dist/FilterPopover.d.mts +13 -3
  76. package/dist/FloatValueControl.d.mts +1 -1
  77. package/dist/{FormControl-CFU9uKF7.mjs → FormControl-BIXJ-FPI.mjs} +5 -5
  78. package/dist/{FormControl-CFU9uKF7.mjs.map → FormControl-BIXJ-FPI.mjs.map} +1 -1
  79. package/dist/{FormControl-DH3bgqaB.d.mts → FormControl-CZFmub1N.d.mts} +3 -3
  80. package/dist/FormControl.d.mts +1 -1
  81. package/dist/FormControlLabel.d.mts +1 -1
  82. package/dist/{FormField-BugkBvN4.d.mts → FormField-8rlT8pm0.d.mts} +2 -2
  83. package/dist/{FormField-DdmgSWq4.mjs → FormField-DcGQvgNW.mjs} +32 -31
  84. package/dist/FormField-DcGQvgNW.mjs.map +1 -0
  85. package/dist/FormField.d.mts +1 -1
  86. package/dist/{Header-CDTYK1XJ.d.mts → Header-OLZuv8fF.d.mts} +2 -2
  87. package/dist/Header.d.mts +1 -1
  88. package/dist/{HelperTooltip-B7Ysh8B3.d.mts → HelperTooltip-CJDG7Ugp.d.mts} +3 -3
  89. package/dist/HelperTooltip.d.mts +1 -1
  90. package/dist/{HoverCopyableField-7TWP0Y1Z.mjs → HoverCopyableField-BHdCaR-R.mjs} +6 -6
  91. package/dist/{HoverCopyableField-7TWP0Y1Z.mjs.map → HoverCopyableField-BHdCaR-R.mjs.map} +1 -1
  92. package/dist/HoverCopyableField.d.mts +1 -1
  93. package/dist/{IconButton-P8w0JDI5.mjs → IconButton-DC4rh6ow.mjs} +5 -5
  94. package/dist/{IconButton-P8w0JDI5.mjs.map → IconButton-DC4rh6ow.mjs.map} +1 -1
  95. package/dist/{IconButton-BHCmHIx5.d.mts → IconButton-Dc17jZPG.d.mts} +2 -2
  96. package/dist/IconButton.d.mts +1 -1
  97. package/dist/ImageTile.d.mts +2 -2
  98. package/dist/InlineCombobox.d.mts +2 -2
  99. package/dist/InlineInput.d.mts +1 -1
  100. package/dist/{Input-DMgVyZyq.d.mts → Input-DsS4J78T.d.mts} +5 -5
  101. package/dist/{Input-QC6xla6I.mjs → Input-PWfwMSJ7.mjs} +5 -5
  102. package/dist/{Input-QC6xla6I.mjs.map → Input-PWfwMSJ7.mjs.map} +1 -1
  103. package/dist/Input.d.mts +1 -1
  104. package/dist/{InputProps-BnjxrdWQ.d.mts → InputProps-Buxtnz77.d.mts} +2 -2
  105. package/dist/InputProps.d.mts +1 -1
  106. package/dist/IntegerValueControl.d.mts +1 -1
  107. package/dist/LayoutLoadingShimmer.d.mts +1 -1
  108. package/dist/Link.d.mts +1 -1
  109. package/dist/{ListBox-TrL3Tb7X.mjs → ListBox-BwD-q7wF.mjs} +12 -12
  110. package/dist/{ListBox-TrL3Tb7X.mjs.map → ListBox-BwD-q7wF.mjs.map} +1 -1
  111. package/dist/{ListBox-D09N1a5D.d.mts → ListBox-Nl9aOBeh.d.mts} +5 -5
  112. package/dist/ListBox.d.mts +1 -1
  113. package/dist/ListBoxField.d.mts +3 -3
  114. package/dist/{LoadingShimmer-Dsc_RCCf.mjs → LoadingShimmer-BPYPtFE1.mjs} +1 -1
  115. package/dist/{LoadingShimmer-Dsc_RCCf.mjs.map → LoadingShimmer-BPYPtFE1.mjs.map} +1 -1
  116. package/dist/LoadingShimmer.d.mts +2 -2
  117. package/dist/{LogicRow-BcuiSTHN.d.mts → LogicRow-BAREMenx.d.mts} +4 -4
  118. package/dist/LogicRow.d.mts +1 -1
  119. package/dist/MaskedInput.d.mts +1 -1
  120. package/dist/{Menu-Bv8dsrz6.d.mts → Menu-DM9OoZ71.d.mts} +4 -4
  121. package/dist/{Menu-DmeMgN-i.mjs → Menu-DpM8o234.mjs} +4 -4
  122. package/dist/{Menu-DmeMgN-i.mjs.map → Menu-DpM8o234.mjs.map} +1 -1
  123. package/dist/Menu.d.mts +1 -1
  124. package/dist/{MiddleTruncatedText-GXI-CPvs.mjs → MiddleTruncatedText-Bzpg3zAU.mjs} +3 -3
  125. package/dist/{MiddleTruncatedText-GXI-CPvs.mjs.map → MiddleTruncatedText-Bzpg3zAU.mjs.map} +1 -1
  126. package/dist/Modal.d.mts +3 -3
  127. package/dist/{PageHeader-jSLud2JI.mjs → PageHeader-Dq-J3san.mjs} +3 -3
  128. package/dist/{PageHeader-jSLud2JI.mjs.map → PageHeader-Dq-J3san.mjs.map} +1 -1
  129. package/dist/PageHeader.d.mts +2 -2
  130. package/dist/PageLayout.d.mts +16 -0
  131. package/dist/{PageSelector-vay4jpMp.d.mts → PageSelector-Ca4TcyxG.d.mts} +3 -3
  132. package/dist/PageSelector.d.mts +1 -1
  133. package/dist/{Pagination-ygLutOst.d.mts → Pagination-Dcmv7bVe.d.mts} +2 -2
  134. package/dist/{Pagination-BeYukNCj.mjs → Pagination-GALyid4q.mjs} +7 -7
  135. package/dist/{Pagination-BeYukNCj.mjs.map → Pagination-GALyid4q.mjs.map} +1 -1
  136. package/dist/Pagination.d.mts +1 -1
  137. package/dist/{Pii-QsTrz8wn.mjs → Pii-BalLvfze.mjs} +2 -2
  138. package/dist/{Pii-QsTrz8wn.mjs.map → Pii-BalLvfze.mjs.map} +1 -1
  139. package/dist/Pii.d.mts +1 -1
  140. package/dist/PillShell.d.mts +1 -1
  141. package/dist/{Popover-BkDpDdaO.mjs → Popover-BZ5Bs80y.mjs} +5 -5
  142. package/dist/{Popover-BkDpDdaO.mjs.map → Popover-BZ5Bs80y.mjs.map} +1 -1
  143. package/dist/Popover.d.mts +1 -1
  144. package/dist/ProgressBar.d.mts +1 -1
  145. package/dist/ProgressIndicator.d.mts +1 -1
  146. package/dist/{PseudoClassProps-DLxPxo7T.d.mts → PseudoClassProps-CcSlKNev.d.mts} +1 -1
  147. package/dist/PseudoClassProps.d.mts +1 -1
  148. package/dist/{Radio-CSX2eO-O.mjs → Radio-CtPz3EzX.mjs} +3 -3
  149. package/dist/{Radio-CSX2eO-O.mjs.map → Radio-CtPz3EzX.mjs.map} +1 -1
  150. package/dist/{RadioGroup-DKqbSfju.d.mts → RadioGroup-Xn46ovrV.d.mts} +1 -1
  151. package/dist/{RadioGroup-CnK0opBd.mjs → RadioGroup-sjBzFE_-.mjs} +3 -3
  152. package/dist/{RadioGroup-CnK0opBd.mjs.map → RadioGroup-sjBzFE_-.mjs.map} +1 -1
  153. package/dist/RadioGroup.d.mts +1 -1
  154. package/dist/RangeCalendar.d.mts +3 -1
  155. package/dist/RangeCalendarPresets.d.mts +1 -1
  156. package/dist/RuleEditorFields.d.mts +3 -3
  157. package/dist/RulesPill.d.mts +1 -1
  158. package/dist/{SearchInput-Bp2yjaE1.d.mts → SearchInput-Try11aJD.d.mts} +10 -3
  159. package/dist/SearchInput.d.mts +1 -1
  160. package/dist/Section.d.mts +1 -1
  161. package/dist/{SectionHeading-Q-rx2LEd.d.mts → SectionHeading-DvP9NEgN.d.mts} +2 -2
  162. package/dist/SectionHeading.d.mts +1 -1
  163. package/dist/{SegmentedControl-CgDQIVll.mjs → SegmentedControl-BugnH-h2.mjs} +4 -4
  164. package/dist/{SegmentedControl-CgDQIVll.mjs.map → SegmentedControl-BugnH-h2.mjs.map} +1 -1
  165. package/dist/{SegmentedControl-DrjdUOU9.d.mts → SegmentedControl-DckAdhcD.d.mts} +2 -2
  166. package/dist/SegmentedControl.d.mts +1 -1
  167. package/dist/{Select-Bk27TgN8.d.mts → Select-BmJ1OjXA.d.mts} +4 -4
  168. package/dist/{Select-C1ZoRk39.mjs → Select-DL-AjL0Q.mjs} +9 -9
  169. package/dist/{Select-C1ZoRk39.mjs.map → Select-DL-AjL0Q.mjs.map} +1 -1
  170. package/dist/Select.d.mts +1 -1
  171. package/dist/Slider.d.mts +1 -1
  172. package/dist/SliderRHF.d.mts +1 -1
  173. package/dist/SliderThumb.d.mts +1 -1
  174. package/dist/{Spacer-CJp0lwkL.mjs → Spacer-Ln3KChb5.mjs} +1 -1
  175. package/dist/{Spacer-CJp0lwkL.mjs.map → Spacer-Ln3KChb5.mjs.map} +1 -1
  176. package/dist/{Spinner-BEPF42RW.mjs → Spinner-BgBCCHGo.mjs} +1 -1
  177. package/dist/{Spinner-BEPF42RW.mjs.map → Spinner-BgBCCHGo.mjs.map} +1 -1
  178. package/dist/{Stack-CkV7k7TE.d.mts → Stack-CbcJykx9.d.mts} +2 -2
  179. package/dist/{Stack-Bl54WmhY.mjs → Stack-ckRN7LrP.mjs} +1 -1
  180. package/dist/{Stack-Bl54WmhY.mjs.map → Stack-ckRN7LrP.mjs.map} +1 -1
  181. package/dist/Stack.d.mts +1 -1
  182. package/dist/StatusIndicator.d.mts +1 -1
  183. package/dist/{Sticker-CyGb9dEu.mjs → Sticker-B0TbkV4o.mjs} +3 -3
  184. package/dist/{Sticker-CyGb9dEu.mjs.map → Sticker-B0TbkV4o.mjs.map} +1 -1
  185. package/dist/{Sticker-Bs25ISz7.d.mts → Sticker-BIVuastf.d.mts} +5 -5
  186. package/dist/Sticker.d.mts +1 -1
  187. package/dist/StringValueControl.d.mts +1 -1
  188. package/dist/SwatchPicker.d.mts +1 -1
  189. package/dist/Tab.d.mts +2 -2
  190. package/dist/{TabBar-Bn8PHHBZ.mjs → TabBar-DLf4Hwa4.mjs} +4 -4
  191. package/dist/{TabBar-Bn8PHHBZ.mjs.map → TabBar-DLf4Hwa4.mjs.map} +1 -1
  192. package/dist/TabBarIconButton.d.mts +1 -1
  193. package/dist/{Table-BNScLj9g.d.mts → Table-8jXlKYLy.d.mts} +1 -1
  194. package/dist/{Table-BfontAeY.mjs → Table-C-mx8Uj0.mjs} +5 -5
  195. package/dist/{Table-BfontAeY.mjs.map → Table-C-mx8Uj0.mjs.map} +1 -1
  196. package/dist/Table.d.mts +1 -1
  197. package/dist/{TableBody-CrDNMyT8.d.mts → TableBody-ByEcFueE.d.mts} +1 -1
  198. package/dist/TableBody.d.mts +1 -1
  199. package/dist/{TableBox-bmrKh_ax.mjs → TableBox-DGjKVQFO.mjs} +65 -55
  200. package/dist/TableBox-DGjKVQFO.mjs.map +1 -0
  201. package/dist/TableBox.d.mts +2 -2
  202. package/dist/{TableBoxCell-CvjLYhTV.d.mts → TableBoxCell-BmoPs1u1.d.mts} +7 -7
  203. package/dist/TableBoxCell.d.mts +1 -1
  204. package/dist/TableBoxField.d.mts +4 -4
  205. package/dist/{TableBoxRow-BzXECgid.d.mts → TableBoxRow-BAYvEDjT.d.mts} +4 -4
  206. package/dist/TableBoxRow.d.mts +1 -1
  207. package/dist/{TableBoxRowActions-BAiFXiCh.d.mts → TableBoxRowActions-DRs4MdK0.d.mts} +2 -2
  208. package/dist/TableBoxRowActions.d.mts +1 -1
  209. package/dist/TableCell.d.mts +1 -1
  210. package/dist/{TableControls-DVTtNAPo.mjs → TableControls-BK8DCsqi.mjs} +139 -67
  211. package/dist/TableControls-BK8DCsqi.mjs.map +1 -0
  212. package/dist/{TableControls-BehR7CKS.d.mts → TableControls-DscP6fyt.d.mts} +4 -4
  213. package/dist/TableControls.d.mts +1 -1
  214. package/dist/{TableControlsContext-D_SBFZN1.d.mts → TableControlsContext-BeJ7GHPN.d.mts} +2 -2
  215. package/dist/TableControlsContext.d.mts +1 -1
  216. package/dist/{TableHead-LxvG0e9k.d.mts → TableHead-g3afLl5B.d.mts} +1 -1
  217. package/dist/TableHead.d.mts +1 -1
  218. package/dist/{TableHeaderCell-Br8ZE3Xe.d.mts → TableHeaderCell-CWTMf2Fe.d.mts} +1 -1
  219. package/dist/TableHeaderCell.d.mts +1 -1
  220. package/dist/{TableLayout-BZeP8qfg.d.mts → TableLayout-hPlVO3dD.d.mts} +1 -1
  221. package/dist/TableLayout.d.mts +1 -1
  222. package/dist/{TableRow-BvS4yjo6.d.mts → TableRow-lvjbVccA.d.mts} +2 -2
  223. package/dist/TableRow.d.mts +1 -1
  224. package/dist/TableTH.d.mts +1 -1
  225. package/dist/{TableViewConfigurationDropdown-BYPh4dIP.d.mts → TableViewConfigurationDropdown-Ccxtk5dA.d.mts} +2 -2
  226. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  227. package/dist/TechnicalSticker-BrvR0zhC.mjs +266 -0
  228. package/dist/TechnicalSticker-BrvR0zhC.mjs.map +1 -0
  229. package/dist/TechnicalSticker.d.mts +7 -1
  230. package/dist/{Text-DNPbAuUG.d.mts → Text-CfIFUyHt.d.mts} +3 -3
  231. package/dist/{Text-RcEfNFLx.mjs → Text-hEoPeOc9.mjs} +1 -1
  232. package/dist/{Text-RcEfNFLx.mjs.map → Text-hEoPeOc9.mjs.map} +1 -1
  233. package/dist/Text.d.mts +1 -1
  234. package/dist/{TextArea-NCLsW-03.mjs → TextArea-BFsXUkuj.mjs} +3 -3
  235. package/dist/{TextArea-NCLsW-03.mjs.map → TextArea-BFsXUkuj.mjs.map} +1 -1
  236. package/dist/{TextArea-B89wtTsF.d.mts → TextArea-DiKEhpfD.d.mts} +2 -2
  237. package/dist/TextArea.d.mts +1 -1
  238. package/dist/{TextUnderlineTooltip-5-0D8s4z.d.mts → TextUnderlineTooltip-Bs6Jn5yr.d.mts} +3 -3
  239. package/dist/TextUnderlineTooltip.d.mts +1 -1
  240. package/dist/Tile.d.mts +2 -2
  241. package/dist/Toast.d.mts +1 -1
  242. package/dist/{Toggle-Bie9zCem.mjs → Toggle-CC2FTAKS.mjs} +5 -5
  243. package/dist/{Toggle-Bie9zCem.mjs.map → Toggle-CC2FTAKS.mjs.map} +1 -1
  244. package/dist/{Toggle-DzYLgxGk.d.mts → Toggle-oukvAn6V.d.mts} +1 -1
  245. package/dist/Toggle.d.mts +1 -1
  246. package/dist/{Tooltip-CUC-JuRL.d.mts → Tooltip-0iXDCV2O.d.mts} +3 -3
  247. package/dist/{Tooltip-BvDbmXak.mjs → Tooltip-CDvOu1UN.mjs} +3 -3
  248. package/dist/{Tooltip-BvDbmXak.mjs.map → Tooltip-CDvOu1UN.mjs.map} +1 -1
  249. package/dist/Tooltip.d.mts +1 -1
  250. package/dist/{TruncatedText-BJnowVTx.d.mts → TruncatedText-CdeU19Ev.d.mts} +1 -1
  251. package/dist/components/Attribute/index.mjs +10 -10
  252. package/dist/components/Attribute/index.mjs.map +1 -1
  253. package/dist/components/Badge/index.mjs +1 -1
  254. package/dist/components/Banner/index.mjs +1 -1
  255. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  256. package/dist/components/Breadcrumbs/index.mjs +1 -1
  257. package/dist/components/Button/index.d.mts +2 -2
  258. package/dist/components/Button/index.mjs +1 -1
  259. package/dist/components/ButtonGroup/index.mjs +3 -3
  260. package/dist/components/Card/index.d.mts +2 -2
  261. package/dist/components/Card/index.mjs +1 -1
  262. package/dist/components/CardV2/index.d.mts +1 -1
  263. package/dist/components/CardV2/index.mjs +1 -1
  264. package/dist/components/Checkbox/index.d.mts +1 -1
  265. package/dist/components/Checkbox/index.mjs +1 -1
  266. package/dist/components/Combobox/index.d.mts +2 -2
  267. package/dist/components/Combobox/index.mjs +1 -1
  268. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  269. package/dist/components/DataTable/TableControls/index.d.mts +15 -15
  270. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  271. package/dist/components/DataTable/index.mjs +21 -21
  272. package/dist/components/DataTable/index.mjs.map +1 -1
  273. package/dist/components/DataTable/types.d.mts +2 -2
  274. package/dist/components/DatePicker/index.mjs +1 -1
  275. package/dist/components/DropdownButton/index.mjs +1 -1
  276. package/dist/components/DropdownMenu/index.d.mts +1 -1
  277. package/dist/components/DropdownMenu/index.mjs +1 -1
  278. package/dist/components/FormControl/index.d.mts +2 -2
  279. package/dist/components/FormControl/index.mjs +2 -2
  280. package/dist/components/FormField/index.d.mts +1 -1
  281. package/dist/components/FormField/index.mjs +1 -1
  282. package/dist/components/HoverCopyableField/index.mjs +1 -1
  283. package/dist/components/ImageTile/index.mjs +8 -8
  284. package/dist/components/Input/index.d.mts +1 -1
  285. package/dist/components/Input/index.mjs +1 -1
  286. package/dist/components/Link/index.mjs +1 -1
  287. package/dist/components/ListBox/index.d.mts +3 -3
  288. package/dist/components/ListBox/index.mjs +1 -1
  289. package/dist/components/LoadingShimmer/index.mjs +1 -1
  290. package/dist/components/MaskedInput/index.mjs +2 -2
  291. package/dist/components/Menu/index.d.mts +1 -1
  292. package/dist/components/Menu/index.mjs +1 -1
  293. package/dist/components/Modal/index.mjs +16 -8
  294. package/dist/components/Modal/index.mjs.map +1 -1
  295. package/dist/components/PageHeader/index.mjs +1 -1
  296. package/dist/components/Pagination/index.d.mts +3 -3
  297. package/dist/components/Pagination/index.mjs +1 -1
  298. package/dist/components/Pii/index.mjs +1 -1
  299. package/dist/components/Popover/index.mjs +1 -1
  300. package/dist/components/ProgressBar/index.mjs +1 -1
  301. package/dist/components/Radio/index.mjs +1 -1
  302. package/dist/components/RadioGroup/index.d.mts +1 -1
  303. package/dist/components/RadioGroup/index.mjs +1 -1
  304. package/dist/components/SegmentedControl/index.d.mts +1 -1
  305. package/dist/components/SegmentedControl/index.mjs +1 -1
  306. package/dist/components/Select/index.d.mts +1 -1
  307. package/dist/components/Select/index.mjs +1 -1
  308. package/dist/components/Slider/index.mjs +2 -2
  309. package/dist/components/Spacer/index.mjs +1 -1
  310. package/dist/components/Spinner/index.mjs +1 -1
  311. package/dist/components/Stack/index.d.mts +1 -1
  312. package/dist/components/Stack/index.mjs +1 -1
  313. package/dist/components/Sticker/index.d.mts +1 -1
  314. package/dist/components/Sticker/index.mjs +1 -1
  315. package/dist/components/TabBar/index.mjs +1 -1
  316. package/dist/components/Table/index.d.mts +7 -7
  317. package/dist/components/Table/index.mjs +1 -1
  318. package/dist/components/TableBox/index.d.mts +2 -2
  319. package/dist/components/TableBox/index.mjs +1 -1
  320. package/dist/components/TechnicalSticker/index.mjs +1 -231
  321. package/dist/components/Text/index.d.mts +1 -1
  322. package/dist/components/Text/index.mjs +1 -1
  323. package/dist/components/TextArea/index.d.mts +1 -1
  324. package/dist/components/TextArea/index.mjs +1 -1
  325. package/dist/components/Tile/index.mjs +4 -4
  326. package/dist/components/Toast/index.mjs +1 -1
  327. package/dist/components/Toggle/index.d.mts +1 -1
  328. package/dist/components/Toggle/index.mjs +1 -1
  329. package/dist/components/Tooltip/index.d.mts +3 -3
  330. package/dist/components/Tooltip/index.mjs +1 -1
  331. package/dist/compound-expression.d.mts +1 -1
  332. package/dist/{constants-BASogfT_.d.mts → constants-bA9kCzRQ.d.mts} +1 -1
  333. package/dist/constants.d.mts +1 -1
  334. package/dist/containers.d.mts +1 -1
  335. package/dist/display.d.mts +1 -1
  336. package/dist/fieldPickerOptions.d.mts +2 -2
  337. package/dist/{filter-size-context-Blw6Sd69.d.mts → filter-size-context-C1TvrE_O.d.mts} +2 -2
  338. package/dist/filter-size-context.d.mts +1 -1
  339. package/dist/helpers.d.mts +1 -1
  340. package/dist/{index-4_B2yRzD.d.mts → index-BC4edEsD.d.mts} +2 -2
  341. package/dist/{index-BxXTpeUb2.d.mts → index-CdaoOvFH.d.mts} +5 -5
  342. package/dist/{index-DDbjWdk0.d.mts → index-DJn4AeE4.d.mts} +4 -4
  343. package/dist/index.d.mts +1 -1
  344. package/dist/index2.d.mts +1 -1
  345. package/dist/index3.d.mts +3 -3
  346. package/dist/index4.d.mts +10 -10
  347. package/dist/{input-Bv5fKt5J.d.mts → input-D3Qd6dI8.d.mts} +3 -3
  348. package/dist/inputFields.d.mts +11 -11
  349. package/dist/{intersperse-vOYvFOfF.mjs → intersperse-yd3oMrQl.mjs} +1 -1
  350. package/dist/{intersperse-vOYvFOfF.mjs.map → intersperse-yd3oMrQl.mjs.map} +1 -1
  351. package/dist/lib/MiddleTruncatedText.mjs +1 -1
  352. package/dist/lib/PDSProvider.d.mts +1 -1
  353. package/dist/lib/TruncatedText.d.mts +1 -1
  354. package/dist/lib/TruncatedText.mjs +1 -1
  355. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  356. package/dist/lib/TruncatedTextWithTooltip.mjs +2 -2
  357. package/dist/lib/embeddedSurfaceProtocol.d.mts +29 -0
  358. package/dist/lib/embeddedSurfaceProtocol.mjs +74 -0
  359. package/dist/lib/embeddedSurfaceProtocol.mjs.map +1 -0
  360. package/dist/lib/embeddedSurfaceRegistry.d.mts +11 -0
  361. package/dist/lib/embeddedSurfaceRegistry.mjs +19 -0
  362. package/dist/lib/embeddedSurfaceRegistry.mjs.map +1 -0
  363. package/dist/lib/message.d.mts +1 -1
  364. package/dist/lib/pseudoClass.d.mts +1 -1
  365. package/dist/lib/useEmbeddedSurface.d.mts +6 -0
  366. package/dist/lib/useEmbeddedSurface.mjs +135 -0
  367. package/dist/lib/useEmbeddedSurface.mjs.map +1 -0
  368. package/dist/lib/zindex.d.mts +2 -0
  369. package/dist/lib/zindex.mjs +2 -0
  370. package/dist/lib/zindex.mjs.map +1 -1
  371. package/dist/{message-CMHvlPGn.d.mts → message-CsK3sIq0.d.mts} +1 -1
  372. package/dist/mixins/focus.d.mts +1 -1
  373. package/dist/mixins/hoverable.d.mts +2 -2
  374. package/dist/mixins/input.d.mts +1 -1
  375. package/dist/mixins/menuItem.d.mts +2 -2
  376. package/dist/mixins/text.d.mts +1 -1
  377. package/dist/{operators-Bo31xlc2.d.mts → operators-C_xPzItk.d.mts} +2 -2
  378. package/dist/operators.d.mts +1 -1
  379. package/dist/{layouts → patterns}/LayoutLoadingShimmer/index.mjs +7 -7
  380. package/dist/patterns/LayoutLoadingShimmer/index.mjs.map +1 -0
  381. package/dist/patterns/PageLayout/index.d.mts +2 -0
  382. package/dist/patterns/PageLayout/index.mjs +35 -0
  383. package/dist/patterns/PageLayout/index.mjs.map +1 -0
  384. package/dist/{text-B21s9mRZ.d.mts → text-BaQdW8qa.d.mts} +1 -1
  385. package/dist/{theme-BzBpJXhO.d.mts → theme-D9Y6NOzb.d.mts} +1 -1
  386. package/dist/theme.d.mts +1 -1
  387. package/dist/{types-D7ppqnNj.d.mts → types-BKEwt0uq.d.mts} +2 -2
  388. package/dist/{types-DEh_pXgS.d.mts → types-CjHuZoVJ.d.mts} +1 -1
  389. package/dist/{types-TV9nVfSe.d.mts → types-DVsBRqjZ.d.mts} +1 -1
  390. package/dist/{types-D58IoRx6.d.mts → types-mb3woqzE.d.mts} +6 -7
  391. package/dist/types.d.mts +1 -1
  392. package/dist/types2.d.mts +1 -1
  393. package/dist/types3.d.mts +1 -1
  394. package/dist/types4.d.mts +1 -1
  395. package/dist/useComboboxFooterAction.d.mts +1 -1
  396. package/dist/{useFilterStateV2-DCQghouq.d.mts → useFilterStateV2-CGzRyv0i.d.mts} +3 -3
  397. package/dist/useFilterStateV2.d.mts +1 -1
  398. package/dist/{useFormField-D8mLsiQc.d.mts → useFormField-DhwEi45-.d.mts} +2 -2
  399. package/dist/{useFormField-DhYd6bNn.mjs → useFormField-eftOPiXj.mjs} +2 -2
  400. package/dist/{useFormField-DhYd6bNn.mjs.map → useFormField-eftOPiXj.mjs.map} +1 -1
  401. package/dist/useFormField.d.mts +1 -1
  402. package/dist/{useFormGroup-DWVW7A9f.mjs → useFormGroup-BMukAMAd.mjs} +1 -1
  403. package/dist/{useFormGroup-DWVW7A9f.mjs.map → useFormGroup-BMukAMAd.mjs.map} +1 -1
  404. package/dist/{useTableBoxDragAndDrop-BMo-iaUF.d.mts → useTableBoxDragAndDrop-CsnN52lx.d.mts} +1 -1
  405. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  406. package/dist/{useToggle-Bo3yd14Y.mjs → useToggle-3k3EkV8V.mjs} +1 -1
  407. package/dist/{useToggle-Bo3yd14Y.mjs.map → useToggle-3k3EkV8V.mjs.map} +1 -1
  408. package/dist/useTruncation.d.mts +1 -1
  409. package/dist/{utilities-BO_95qFA.d.mts → utilities-DnSIlR1i.d.mts} +1 -1
  410. package/dist/utilities.d.mts +1 -1
  411. package/dist/utils/storybook.mjs +1 -1
  412. package/dist/utils/testing.d.mts +1 -1
  413. package/dist/utils/testing.mjs +1 -1
  414. package/dist/utils.d.mts +1 -1
  415. package/dist/{validation-vLh3t2dk.d.mts → validation-BdP2vajF.d.mts} +3 -3
  416. package/dist/validation.d.mts +1 -1
  417. package/dist/{value-control-resolver-CE-bqdAl.d.mts → value-control-resolver-CiGEHQAc.d.mts} +2 -2
  418. package/dist/value-control-resolver.d.mts +1 -1
  419. package/llms.txt +43 -0
  420. package/package.json +14 -5
  421. package/skills/ui-authoring/SKILL.md +27 -1
  422. package/dist/Breadcrumbs-W8hIhdHD.mjs.map +0 -1
  423. package/dist/Combobox-B6JyLog8.mjs.map +0 -1
  424. package/dist/DatePicker-Bw79p-Lx.mjs.map +0 -1
  425. package/dist/FormField-DdmgSWq4.mjs.map +0 -1
  426. package/dist/TableBox-bmrKh_ax.mjs.map +0 -1
  427. package/dist/TableControls-DVTtNAPo.mjs.map +0 -1
  428. package/dist/components/TechnicalSticker/index.mjs.map +0 -1
  429. package/dist/layouts/LayoutLoadingShimmer/index.mjs.map +0 -1
  430. /package/dist/{index--p6oQT9I.d.mts → index-0-W_aPej.d.mts} +0 -0
  431. /package/dist/{index-BYd3Btr1.d.mts → index-7in8TPrM.d.mts} +0 -0
  432. /package/dist/{index-CDGG7lCB.d.mts → index-7rWKHdox.d.mts} +0 -0
  433. /package/dist/{index-CMuRFTR3.d.mts → index-B4woaFSm.d.mts} +0 -0
  434. /package/dist/{index-CNxS4Tlu.d.mts → index-BINnViIh.d.mts} +0 -0
  435. /package/dist/{index-CWB6exYm.d.mts → index-BNRXMhlr.d.mts} +0 -0
  436. /package/dist/{index-CzItj62a.d.mts → index-BO_854F2.d.mts} +0 -0
  437. /package/dist/{index-D4DUvwPf.d.mts → index-BOn0AAue.d.mts} +0 -0
  438. /package/dist/{index-D5tSVhTd.d.mts → index-CCt0lwyI.d.mts} +0 -0
  439. /package/dist/{index-DGsJdI5l.d.mts → index-CREkvfw9.d.mts} +0 -0
  440. /package/dist/{index-DM6vVDZD.d.mts → index-CRo77wc3.d.mts} +0 -0
  441. /package/dist/{index-DWfPppPU.d.mts → index-Ci-uuV07.d.mts} +0 -0
  442. /package/dist/{index-DXJd7-2Z.d.mts → index-CsuikFeJ.d.mts} +0 -0
  443. /package/dist/{index-DkrC-i1D.d.mts → index-CzUpNo0e.d.mts} +0 -0
  444. /package/dist/{index-DvuJXuAN.d.mts → index-DDdPqD_H.d.mts} +0 -0
  445. /package/dist/{index-Iujpc9_6.d.mts → index-DeVKzGce.d.mts} +0 -0
  446. /package/dist/{index-PWQavSPf.d.mts → index-Es5nKSSL.d.mts} +0 -0
  447. /package/dist/{index-e6k85DKM.d.mts → index-FtE8MXJ_.d.mts} +0 -0
  448. /package/dist/{index-lIMqGGJz.d.mts → index-ehD5GjMH.d.mts} +0 -0
  449. /package/dist/{index-sViox9YW.d.mts → index-uMNhmxEh.d.mts} +0 -0
  450. /package/dist/{layouts → patterns}/LayoutLoadingShimmer/index.d.mts +0 -0
@@ -1,4 +1,4 @@
1
- import { t as ErrorProps } from "./ErrorProps-CN2XjaOX.mjs";
1
+ import { t as ErrorProps } from "./ErrorProps-DX50vo-U.mjs";
2
2
  import * as _$react from "react";
3
3
 
4
4
  //#region components/FormControl/useFormField.d.ts
@@ -27,4 +27,4 @@ declare const useFormField: (props: Partial<FormControlContextProps>) => {
27
27
  };
28
28
  //#endregion
29
29
  export { FormControlContextProps as n, useFormField as r, FormControlContext as t };
30
- //# sourceMappingURL=useFormField-D8mLsiQc.d.mts.map
30
+ //# sourceMappingURL=useFormField-DhwEi45-.d.mts.map
@@ -1,4 +1,4 @@
1
- import { n as useFormGroup } from "./useFormGroup-DWVW7A9f.mjs";
1
+ import { n as useFormGroup } from "./useFormGroup-BMukAMAd.mjs";
2
2
  import { createContext, useContext } from "react";
3
3
  //#region components/FormControl/useFormField.ts
4
4
  const FormControlContext = createContext({});
@@ -22,4 +22,4 @@ const useFormField = (props) => {
22
22
  //#endregion
23
23
  export { useFormField as n, FormControlContext as t };
24
24
 
25
- //# sourceMappingURL=useFormField-DhYd6bNn.mjs.map
25
+ //# sourceMappingURL=useFormField-eftOPiXj.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormField-DhYd6bNn.mjs","names":[],"sources":["../components/FormControl/useFormField.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\nexport interface FormControlContextProps extends ErrorProps {\n inputId?: string;\n helperTextId?: string;\n errorTextId?: string;\n warningTextId?: string;\n labelId?: string;\n disabled?: boolean;\n maxLength?: number;\n configField?: boolean;\n}\n\nexport const FormControlContext = createContext<FormControlContextProps>({});\n\nconst useFormField = (props: Partial<FormControlContextProps>) => {\n const group = useFormGroup();\n const field = useContext(FormControlContext);\n\n const inputId = props.inputId ?? field.inputId;\n\n return {\n configField: props.configField ?? group.configField,\n hasError: props.hasError ?? field.hasError,\n hasWarning: props.hasWarning ?? field.hasWarning,\n inputId,\n helperTextId: props.helperTextId ?? field.helperTextId,\n errorTextId: props.errorTextId ?? field.errorTextId,\n warningTextId: props.warningTextId ?? field.warningTextId,\n labelId: props.labelId ?? field.labelId,\n disabled: props.disabled ?? field.disabled,\n maxLength: props.maxLength ?? field.maxLength,\n };\n};\n\nexport default useFormField;\n"],"mappings":";;;AAgBA,MAAa,qBAAqB,cAAuC,EAAE,CAAC;AAE5E,MAAM,gBAAgB,UAA4C;CAChE,MAAM,QAAQ,cAAc;CAC5B,MAAM,QAAQ,WAAW,mBAAmB;CAE5C,MAAM,UAAU,MAAM,WAAW,MAAM;AAEvC,QAAO;EACL,aAAa,MAAM,eAAe,MAAM;EACxC,UAAU,MAAM,YAAY,MAAM;EAClC,YAAY,MAAM,cAAc,MAAM;EACtC;EACA,cAAc,MAAM,gBAAgB,MAAM;EAC1C,aAAa,MAAM,eAAe,MAAM;EACxC,eAAe,MAAM,iBAAiB,MAAM;EAC5C,SAAS,MAAM,WAAW,MAAM;EAChC,UAAU,MAAM,YAAY,MAAM;EAClC,WAAW,MAAM,aAAa,MAAM;EACrC"}
1
+ {"version":3,"file":"useFormField-eftOPiXj.mjs","names":[],"sources":["../components/FormControl/useFormField.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\nexport interface FormControlContextProps extends ErrorProps {\n inputId?: string;\n helperTextId?: string;\n errorTextId?: string;\n warningTextId?: string;\n labelId?: string;\n disabled?: boolean;\n maxLength?: number;\n configField?: boolean;\n}\n\nexport const FormControlContext = createContext<FormControlContextProps>({});\n\nconst useFormField = (props: Partial<FormControlContextProps>) => {\n const group = useFormGroup();\n const field = useContext(FormControlContext);\n\n const inputId = props.inputId ?? field.inputId;\n\n return {\n configField: props.configField ?? group.configField,\n hasError: props.hasError ?? field.hasError,\n hasWarning: props.hasWarning ?? field.hasWarning,\n inputId,\n helperTextId: props.helperTextId ?? field.helperTextId,\n errorTextId: props.errorTextId ?? field.errorTextId,\n warningTextId: props.warningTextId ?? field.warningTextId,\n labelId: props.labelId ?? field.labelId,\n disabled: props.disabled ?? field.disabled,\n maxLength: props.maxLength ?? field.maxLength,\n };\n};\n\nexport default useFormField;\n"],"mappings":";;;AAgBA,MAAa,qBAAqB,cAAuC,EAAE,CAAC;AAE5E,MAAM,gBAAgB,UAA4C;CAChE,MAAM,QAAQ,cAAc;CAC5B,MAAM,QAAQ,WAAW,mBAAmB;CAE5C,MAAM,UAAU,MAAM,WAAW,MAAM;AAEvC,QAAO;EACL,aAAa,MAAM,eAAe,MAAM;EACxC,UAAU,MAAM,YAAY,MAAM;EAClC,YAAY,MAAM,cAAc,MAAM;EACtC;EACA,cAAc,MAAM,gBAAgB,MAAM;EAC1C,aAAa,MAAM,eAAe,MAAM;EACxC,eAAe,MAAM,iBAAiB,MAAM;EAC5C,SAAS,MAAM,WAAW,MAAM;EAChC,UAAU,MAAM,YAAY,MAAM;EAClC,WAAW,MAAM,aAAa,MAAM;EACrC"}
@@ -1,2 +1,2 @@
1
- import { n as FormControlContextProps, r as useFormField, t as FormControlContext } from "./useFormField-D8mLsiQc.mjs";
1
+ import { n as FormControlContextProps, r as useFormField, t as FormControlContext } from "./useFormField-DhwEi45-.mjs";
2
2
  export { FormControlContext, FormControlContextProps, useFormField as default };
@@ -11,4 +11,4 @@ const useFormGroup = (props) => {
11
11
  //#endregion
12
12
  export { useFormGroup as n, FormGroupContext as t };
13
13
 
14
- //# sourceMappingURL=useFormGroup-DWVW7A9f.mjs.map
14
+ //# sourceMappingURL=useFormGroup-BMukAMAd.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormGroup-DWVW7A9f.mjs","names":[],"sources":["../components/ConfigFormGroup/useFormGroup.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface FormGroupContextProps {\n configField?: boolean;\n /**\n * The z-index to use when labels are rendered as tooltips (e.g. when configField is true).\n */\n labelTooltipZIndex?: number;\n}\n\nexport const FormGroupContext = createContext<FormGroupContextProps>({});\n\nconst useFormGroup = (props?: Partial<FormGroupContextProps>) => {\n const field = useContext(FormGroupContext);\n\n return {\n configField: props?.configField ?? field.configField,\n labelTooltipZIndex: props?.labelTooltipZIndex ?? field.labelTooltipZIndex,\n };\n};\n\nexport default useFormGroup;\n"],"mappings":";;AAUA,MAAa,mBAAmB,cAAqC,EAAE,CAAC;AAExE,MAAM,gBAAgB,UAA2C;CAC/D,MAAM,QAAQ,WAAW,iBAAiB;AAE1C,QAAO;EACL,aAAa,OAAO,eAAe,MAAM;EACzC,oBAAoB,OAAO,sBAAsB,MAAM;EACxD"}
1
+ {"version":3,"file":"useFormGroup-BMukAMAd.mjs","names":[],"sources":["../components/ConfigFormGroup/useFormGroup.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nexport interface FormGroupContextProps {\n configField?: boolean;\n /**\n * The z-index to use when labels are rendered as tooltips (e.g. when configField is true).\n */\n labelTooltipZIndex?: number;\n}\n\nexport const FormGroupContext = createContext<FormGroupContextProps>({});\n\nconst useFormGroup = (props?: Partial<FormGroupContextProps>) => {\n const field = useContext(FormGroupContext);\n\n return {\n configField: props?.configField ?? field.configField,\n labelTooltipZIndex: props?.labelTooltipZIndex ?? field.labelTooltipZIndex,\n };\n};\n\nexport default useFormGroup;\n"],"mappings":";;AAUA,MAAa,mBAAmB,cAAqC,EAAE,CAAC;AAExE,MAAM,gBAAgB,UAA2C;CAC/D,MAAM,QAAQ,WAAW,iBAAiB;AAE1C,QAAO;EACL,aAAa,OAAO,eAAe,MAAM;EACzC,oBAAoB,OAAO,sBAAsB,MAAM;EACxD"}
@@ -66,4 +66,4 @@ declare const useTableBoxDragAndDrop: <T extends object>({
66
66
  }: UseTableBoxDragAndDropArgs<T>) => UseTableBoxDragAndDropResult;
67
67
  //#endregion
68
68
  export { ReorderConfig as n, useTableBoxDragAndDrop as r, DragDirection as t };
69
- //# sourceMappingURL=useTableBoxDragAndDrop-BMo-iaUF.d.mts.map
69
+ //# sourceMappingURL=useTableBoxDragAndDrop-CsnN52lx.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as ReorderConfig, r as useTableBoxDragAndDrop, t as DragDirection } from "./useTableBoxDragAndDrop-BMo-iaUF.mjs";
1
+ import { n as ReorderConfig, r as useTableBoxDragAndDrop, t as DragDirection } from "./useTableBoxDragAndDrop-CsnN52lx.mjs";
2
2
  export { DragDirection, ReorderConfig, useTableBoxDragAndDrop };
@@ -18,4 +18,4 @@ function useToggle(initialValue = false) {
18
18
  //#endregion
19
19
  export { useToggle as t };
20
20
 
21
- //# sourceMappingURL=useToggle-Bo3yd14Y.mjs.map
21
+ //# sourceMappingURL=useToggle-3k3EkV8V.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"useToggle-Bo3yd14Y.mjs","names":[],"sources":["../lib/useToggle.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\ninterface UseToggleCallbacks {\n set: (value: boolean) => void;\n toggle: () => void;\n enable: () => void;\n disable: () => void;\n}\n\n/**\n * useToggle\n *\n * Boolean state hook that provides callbacks for enabling, disabling, flipping\n * and setting state.\n */\nexport default function useToggle(initialValue = false): [boolean, UseToggleCallbacks] {\n const [value, setValue] = useState<boolean>(!!initialValue);\n const set = useCallback((newValue: boolean) => setValue(newValue), []);\n const toggle = useCallback(() => setValue(!value), [value]);\n const enable = useCallback(() => setValue(true), []);\n const disable = useCallback(() => setValue(false), []);\n return [value, { set, toggle, enable, disable }];\n}\n"],"mappings":";;;;;;;;AAeA,SAAwB,UAAU,eAAe,OAAsC;CACrF,MAAM,CAAC,OAAO,YAAY,SAAkB,CAAC,CAAC,aAAa;AAK3D,QAAO,CAAC,OAAO;EAAE,KAJL,aAAa,aAAsB,SAAS,SAAS,EAAE,EAAE,CAIjD;EAAE,QAHP,kBAAkB,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,CAG9B;EAAE,QAFf,kBAAkB,SAAS,KAAK,EAAE,EAAE,CAEf;EAAE,SADtB,kBAAkB,SAAS,MAAM,EAAE,EAAE,CACR;EAAE,CAAC"}
1
+ {"version":3,"file":"useToggle-3k3EkV8V.mjs","names":[],"sources":["../lib/useToggle.ts"],"sourcesContent":["import { useCallback, useState } from 'react';\n\ninterface UseToggleCallbacks {\n set: (value: boolean) => void;\n toggle: () => void;\n enable: () => void;\n disable: () => void;\n}\n\n/**\n * useToggle\n *\n * Boolean state hook that provides callbacks for enabling, disabling, flipping\n * and setting state.\n */\nexport default function useToggle(initialValue = false): [boolean, UseToggleCallbacks] {\n const [value, setValue] = useState<boolean>(!!initialValue);\n const set = useCallback((newValue: boolean) => setValue(newValue), []);\n const toggle = useCallback(() => setValue(!value), [value]);\n const enable = useCallback(() => setValue(true), []);\n const disable = useCallback(() => setValue(false), []);\n return [value, { set, toggle, enable, disable }];\n}\n"],"mappings":";;;;;;;;AAeA,SAAwB,UAAU,eAAe,OAAsC;CACrF,MAAM,CAAC,OAAO,YAAY,SAAkB,CAAC,CAAC,aAAa;AAK3D,QAAO,CAAC,OAAO;EAAE,KAJL,aAAa,aAAsB,SAAS,SAAS,EAAE,EAAE,CAIjD;EAAE,QAHP,kBAAkB,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,CAG9B;EAAE,QAFf,kBAAkB,SAAS,KAAK,EAAE,EAAE,CAEf;EAAE,SADtB,kBAAkB,SAAS,MAAM,EAAE,EAAE,CACR;EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { i as ComboboxOption } from "./ComboboxBase-BsPf8BZh.mjs";
1
+ import { i as ComboboxOption } from "./ComboboxBase-Dmzn8a53.mjs";
2
2
  import { MutableRefObject, RefObject } from "react";
3
3
 
4
4
  //#region components/Combobox/useTruncation.d.ts
@@ -6,4 +6,4 @@
6
6
  type RequireOneOf<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & { [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>> }[Keys];
7
7
  //#endregion
8
8
  export { RequireOneOf as t };
9
- //# sourceMappingURL=utilities-BO_95qFA.d.mts.map
9
+ //# sourceMappingURL=utilities-DnSIlR1i.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as RequireOneOf } from "./utilities-BO_95qFA.mjs";
1
+ import { t as RequireOneOf } from "./utilities-DnSIlR1i.mjs";
2
2
  export { RequireOneOf };
@@ -1,4 +1,4 @@
1
- import { n as Stack } from "../Stack-Bl54WmhY.mjs";
1
+ import { n as Stack } from "../Stack-ckRN7LrP.mjs";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region utils/storybook.tsx
4
4
  const withStack = (Story) => {
@@ -1,6 +1,6 @@
1
+ import { ReactElement } from "react";
1
2
  import * as _$_testing_library_react0 from "@testing-library/react";
2
3
  import { RenderOptions, screen } from "@testing-library/react";
3
- import { ReactElement } from "react";
4
4
  import * as _$_testing_library_dom_types_queries0 from "@testing-library/dom/types/queries";
5
5
 
6
6
  //#region utils/testing.d.ts
@@ -1,7 +1,7 @@
1
1
  import PDSProvider from "../lib/PDSProvider.mjs";
2
+ import { RouterProvider } from "react-aria-components";
2
3
  import { Fragment, jsx } from "react/jsx-runtime";
3
4
  import { render, screen } from "@testing-library/react";
4
- import { RouterProvider } from "react-aria-components";
5
5
  import { RouterProvider as RouterProvider$1, createMemoryRouter } from "react-router-dom";
6
6
  //#region utils/testing.tsx
7
7
  const AllTheProviders = ({ children, includeRouter = false }) => {
package/dist/utils.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { u as FilterRuleValue } from "./types-D58IoRx6.mjs";
1
+ import { u as FilterRuleValue } from "./types-mb3woqzE.mjs";
2
2
 
3
3
  //#region components/DataTable/TableControls/FiltersV2/value-controls/utils.d.ts
4
4
  /**
@@ -1,5 +1,5 @@
1
- import { f as FilterStateV2, l as FilterRule } from "./types-D58IoRx6.mjs";
2
- import { t as FieldRegistry } from "./FieldRegistry-rqSkjchY.mjs";
1
+ import { f as FilterStateV2, l as FilterRule } from "./types-mb3woqzE.mjs";
2
+ import { t as FieldRegistry } from "./FieldRegistry-COyIA4VU.mjs";
3
3
 
4
4
  //#region components/DataTable/TableControls/FiltersV2/validation.d.ts
5
5
  /**
@@ -48,4 +48,4 @@ declare function pruneToRegistry(state: FilterStateV2, registry: FieldRegistry |
48
48
  declare function hasCompleteValue(rule: FilterRule, registry: FieldRegistry): boolean;
49
49
  //#endregion
50
50
  export { isFilterStateV2 as n, pruneToRegistry as r, hasCompleteValue as t };
51
- //# sourceMappingURL=validation-vLh3t2dk.d.mts.map
51
+ //# sourceMappingURL=validation-BdP2vajF.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as isFilterStateV2, r as pruneToRegistry, t as hasCompleteValue } from "./validation-vLh3t2dk.mjs";
1
+ import { n as isFilterStateV2, r as pruneToRegistry, t as hasCompleteValue } from "./validation-BdP2vajF.mjs";
2
2
  export { hasCompleteValue, isFilterStateV2, pruneToRegistry };
@@ -1,4 +1,4 @@
1
- import { a as FilterField, c as FilterOperator, u as FilterRuleValue } from "./types-D58IoRx6.mjs";
1
+ import { a as FilterField, c as FilterOperator, u as FilterRuleValue } from "./types-mb3woqzE.mjs";
2
2
  import { ReactNode } from "react";
3
3
 
4
4
  //#region components/DataTable/TableControls/FiltersV2/FilterBar/value-control-resolver.d.ts
@@ -43,4 +43,4 @@ type ValueControlResolver = (opts: ResolveValueControlOptions) => ReactNode | un
43
43
  declare function resolveValueControl(opts: ResolveValueControlOptions, hostResolver?: ValueControlResolver): ReactNode;
44
44
  //#endregion
45
45
  export { ValueControlResolver as n, resolveValueControl as r, ResolveValueControlOptions as t };
46
- //# sourceMappingURL=value-control-resolver-CE-bqdAl.d.mts.map
46
+ //# sourceMappingURL=value-control-resolver-CiGEHQAc.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as ValueControlResolver, r as resolveValueControl, t as ResolveValueControlOptions } from "./value-control-resolver-CE-bqdAl.mjs";
1
+ import { n as ValueControlResolver, r as resolveValueControl, t as ResolveValueControlOptions } from "./value-control-resolver-CiGEHQAc.mjs";
2
2
  export { ResolveValueControlOptions, ValueControlResolver, resolveValueControl };
package/llms.txt ADDED
@@ -0,0 +1,43 @@
1
+ # @persona/design-system
2
+
3
+ > React components and layouts for Persona UI. Design tokens (`Color`, `Spacing`, `Typography`) come from the companion package `@persona/design-tokens`.
4
+
5
+ Agent guidance ships inside this package. Before reading `dist/` bundles or reverse-engineering
6
+ component APIs, read the skills below — they cover component selection, props, and common
7
+ pitfalls. In a repo with TanStack Intent, run `yarn intent list` / `yarn intent load
8
+ @persona/design-system#ui-authoring`. Without Intent, read the same files directly from
9
+ `node_modules/@persona/design-system/skills/`.
10
+
11
+ For exact prop types, prefer the published type declarations (`dist/**/*.d.mts`, e.g.
12
+ `dist/components/Table/index.d.mts`) over the minified `*.mjs` bundles.
13
+
14
+ ## Skills
15
+
16
+ - [ui-authoring](skills/ui-authoring/SKILL.md): component-first table (which component for which need), design tokens, table guidelines (DataTable vs TableBox vs TableLayout), loading/empty states, forms, testing, Storybook, charts
17
+ - [Components reference](skills/ui-authoring/COMPONENTS.md): props + patterns for ConfigFormGroup, ListBox, TableBox, Card, Modal, form state hook
18
+ - [Examples](skills/ui-authoring/EXAMPLES.md): copy-paste patterns (Buttons, Forms, Modals, DataTable, TabBar, Tooltip, Spinner, Banner, Sticker, Stack, Text)
19
+ - [Token reference](skills/ui-authoring/REFERENCE.md): full Color / Spacing / Typography catalog
20
+
21
+ ## Imports
22
+
23
+ Import from subpaths, not the package root — e.g.
24
+ `import { Button } from '@persona/design-system/components/Button'`.
25
+ The full export map is in `package.json#exports`; components live under
26
+ `./components/<Name>`, patterns under `./patterns/<Name>`, mixins/variables/utils under
27
+ their own subpaths.
28
+
29
+ ## Common components
30
+
31
+ - Layout: `Stack` / `HStack` (components/Stack), `Spacer`
32
+ - Text: `Heading`, `Paragraph`, `Label` (components/Text)
33
+ - Tables: `DataTable` (data views w/ pagination + sorting), `TableBox` (editable form tables), `TableLayout` + `Table`/`TableRow`/`TableCell`/`TableHeaderCell` primitives (components/Table) — `TableLayout` has built-in `isLoading`/`isEmpty`/`nullState`/`showHeader` handling
34
+ - Page chrome: `PageHeader` (title or breadcrumbs variant), `Breadcrumbs`, `TabBar`
35
+ - Feedback: `Spinner`, `Banner`, `Toast`, `LoadingShimmer`, `ProgressBar`
36
+ - Overlays: `Modal`, `Popover`, `Tooltip` / `TextUnderlineTooltip`, `DropdownMenu`
37
+ - Forms: `ConfigFormGroup`, `FormField` (`TextField`, `TextAreaField`, `TableBoxField`), `Input`, `TextArea`, `Select`, `Combobox`, `Checkbox`, `Radio`, `Toggle`, `DatePicker`
38
+ - Status: `Sticker` (status badges), `Badge` (counts), `StatusIndicator`
39
+
40
+ ## Testing
41
+
42
+ Use `dsRender` from `@persona/design-system/utils/testing` (wraps ThemeProvider); prefer
43
+ role/label/text queries over test IDs.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@persona/design-system",
3
- "version": "0.1.9",
3
+ "version": "0.2.1",
4
4
  "description": "React components for Persona UI",
5
5
  "keywords": [
6
6
  "tanstack-intent"
@@ -10,7 +10,8 @@
10
10
  "sideEffects": false,
11
11
  "files": [
12
12
  "dist",
13
- "skills"
13
+ "skills",
14
+ "llms.txt"
14
15
  ],
15
16
  "types": "./dist/index.d.mts",
16
17
  "exports": {
@@ -71,11 +72,12 @@
71
72
  "./components/Toast": "./dist/components/Toast/index.mjs",
72
73
  "./components/Toggle": "./dist/components/Toggle/index.mjs",
73
74
  "./components/Tooltip": "./dist/components/Tooltip/index.mjs",
74
- "./layouts/LayoutLoadingShimmer": "./dist/layouts/LayoutLoadingShimmer/index.mjs",
75
75
  "./lib/comboboxHelper": "./dist/lib/comboboxHelper.mjs",
76
76
  "./lib/ConfigContext": "./dist/lib/ConfigContext.mjs",
77
77
  "./lib/copyTextToClipboard": "./dist/lib/copyTextToClipboard.mjs",
78
78
  "./lib/datePickerHelper": "./dist/lib/datePickerHelper.mjs",
79
+ "./lib/embeddedSurfaceProtocol": "./dist/lib/embeddedSurfaceProtocol.mjs",
80
+ "./lib/embeddedSurfaceRegistry": "./dist/lib/embeddedSurfaceRegistry.mjs",
79
81
  "./lib/GlobalStyles": "./dist/lib/GlobalStyles.mjs",
80
82
  "./lib/HeadlessAriaButton": "./dist/lib/HeadlessAriaButton.mjs",
81
83
  "./lib/message": "./dist/lib/message.mjs",
@@ -87,6 +89,7 @@
87
89
  "./lib/TruncatedText": "./dist/lib/TruncatedText.mjs",
88
90
  "./lib/TruncatedTextWithTooltip": "./dist/lib/TruncatedTextWithTooltip.mjs",
89
91
  "./lib/useControlled": "./dist/lib/useControlled.mjs",
92
+ "./lib/useEmbeddedSurface": "./dist/lib/useEmbeddedSurface.mjs",
90
93
  "./lib/useIsOverflow": "./dist/lib/useIsOverflow.mjs",
91
94
  "./lib/useOutsideClick": "./dist/lib/useOutsideClick.mjs",
92
95
  "./lib/useScrollOverflow": "./dist/lib/useScrollOverflow.mjs",
@@ -97,6 +100,8 @@
97
100
  "./mixins/menuItem": "./dist/mixins/menuItem.mjs",
98
101
  "./mixins/print": "./dist/mixins/print/index.mjs",
99
102
  "./mixins/text": "./dist/mixins/text.mjs",
103
+ "./patterns/LayoutLoadingShimmer": "./dist/patterns/LayoutLoadingShimmer/index.mjs",
104
+ "./patterns/PageLayout": "./dist/patterns/PageLayout/index.mjs",
100
105
  "./theme": "./dist/theme.mjs",
101
106
  "./utils/storybook": "./dist/utils/storybook.mjs",
102
107
  "./utils/testing": "./dist/utils/testing.mjs",
@@ -169,7 +174,7 @@
169
174
  "csstype": "^3.1.2",
170
175
  "react": "^17.0.2",
171
176
  "react-dom": "^17.0.2",
172
- "react-router-dom": "^6.30.1",
177
+ "react-router-dom": "^6.30.5",
173
178
  "styled-components": "^5.3.5",
174
179
  "tsdown": "^0.21.0",
175
180
  "typescript": "npm:@typescript/typescript6@^6.0.2"
@@ -249,11 +254,12 @@
249
254
  "./components/Toast": "./dist/components/Toast/index.mjs",
250
255
  "./components/Toggle": "./dist/components/Toggle/index.mjs",
251
256
  "./components/Tooltip": "./dist/components/Tooltip/index.mjs",
252
- "./layouts/LayoutLoadingShimmer": "./dist/layouts/LayoutLoadingShimmer/index.mjs",
253
257
  "./lib/comboboxHelper": "./dist/lib/comboboxHelper.mjs",
254
258
  "./lib/ConfigContext": "./dist/lib/ConfigContext.mjs",
255
259
  "./lib/copyTextToClipboard": "./dist/lib/copyTextToClipboard.mjs",
256
260
  "./lib/datePickerHelper": "./dist/lib/datePickerHelper.mjs",
261
+ "./lib/embeddedSurfaceProtocol": "./dist/lib/embeddedSurfaceProtocol.mjs",
262
+ "./lib/embeddedSurfaceRegistry": "./dist/lib/embeddedSurfaceRegistry.mjs",
257
263
  "./lib/GlobalStyles": "./dist/lib/GlobalStyles.mjs",
258
264
  "./lib/HeadlessAriaButton": "./dist/lib/HeadlessAriaButton.mjs",
259
265
  "./lib/message": "./dist/lib/message.mjs",
@@ -265,6 +271,7 @@
265
271
  "./lib/TruncatedText": "./dist/lib/TruncatedText.mjs",
266
272
  "./lib/TruncatedTextWithTooltip": "./dist/lib/TruncatedTextWithTooltip.mjs",
267
273
  "./lib/useControlled": "./dist/lib/useControlled.mjs",
274
+ "./lib/useEmbeddedSurface": "./dist/lib/useEmbeddedSurface.mjs",
268
275
  "./lib/useIsOverflow": "./dist/lib/useIsOverflow.mjs",
269
276
  "./lib/useOutsideClick": "./dist/lib/useOutsideClick.mjs",
270
277
  "./lib/useScrollOverflow": "./dist/lib/useScrollOverflow.mjs",
@@ -275,6 +282,8 @@
275
282
  "./mixins/menuItem": "./dist/mixins/menuItem.mjs",
276
283
  "./mixins/print": "./dist/mixins/print/index.mjs",
277
284
  "./mixins/text": "./dist/mixins/text.mjs",
285
+ "./patterns/LayoutLoadingShimmer": "./dist/patterns/LayoutLoadingShimmer/index.mjs",
286
+ "./patterns/PageLayout": "./dist/patterns/PageLayout/index.mjs",
278
287
  "./theme": "./dist/theme.mjs",
279
288
  "./utils/storybook": "./dist/utils/storybook.mjs",
280
289
  "./utils/testing": "./dist/utils/testing.mjs",
@@ -3,7 +3,7 @@ name: ui-authoring
3
3
  description: Use when implementing UI, styling React components, working with design tokens, or making frontend changes, or when file paths include design-system/components/ or styled-components.
4
4
  metadata:
5
5
  library: '@persona/design-system'
6
- library_version: '0.1.8'
6
+ library_version: '0.2.1'
7
7
  ---
8
8
 
9
9
  # UI Authoring
@@ -42,7 +42,10 @@ import { Color, Spacing, Typography } from '@persona/design-tokens';
42
42
  | Alert / notification | `Banner` | `@persona/design-system/components/Banner` |
43
43
  | Standalone tooltip | `Tooltip` | `@persona/design-system/components/Tooltip` |
44
44
  | Tooltip on a label | `TextUnderlineTooltip` | `@persona/design-system/components/Tooltip` |
45
+ | Page title bar | `PageHeader` | `@persona/design-system/components/PageHeader` |
46
+ | Page shell | `Container`, `Section`, `Backdrop` | `@persona/design-system/patterns/PageLayout` |
45
47
  | Data table | `DataTable` | `@persona/design-system/components/DataTable` |
48
+ | Table with loading/empty states | `TableLayout` + `Table` primitives | `@persona/design-system/components/Table` |
46
49
  | Editable / form table | `TableBox`, `TableBoxField` | `@persona/design-system/components/TableBox`, `FormField` |
47
50
 
48
51
  ## Tooltip on Labels
@@ -72,6 +75,7 @@ Never hand-roll `<table>`, `<thead>`, `<th>`, or `<td>`. Pick the component by u
72
75
 
73
76
  - **`DataTable`** (`@persona/design-system/components/DataTable`) — data views with pagination, sorting, and server-side data.
74
77
  - **`TableBox`** (`@persona/design-system/components/TableBox`) / **`TableBoxField`** (`FormField`) — small, form-adjacent tables in config editors: inline editing, row add/delete, drag-drop reorder. See [COMPONENTS.md — Editable Table (TableBox)](COMPONENTS.md#editable-table-tablebox).
78
+ - **`TableLayout`** (`@persona/design-system/components/Table`, named export `TableLayout`) — lower-level table shell with built-in loading and empty states; use it when composing rows manually from `Table` primitives (`TableRow`, `TableCell`, `TableHeaderCell`).
75
79
 
76
80
  ### DataTable
77
81
 
@@ -80,6 +84,28 @@ Never hand-roll `<table>`, `<thead>`, `<th>`, or `<td>`. Pick the component by u
80
84
  - **Status cells**: use `renderCell: ({ cellValue, row }) => <Sticker ...>` in the column config.
81
85
  - **Body cell text**: use `size='md'`, not `size='sm'` (sm is for timestamps and captions only).
82
86
 
87
+ ### TableLayout loading & empty behavior
88
+
89
+ ```tsx
90
+ import { TableLayout, TableHeaderCell, TableRow, TableCell } from '@persona/design-system/components/Table';
91
+
92
+ <TableLayout
93
+ headerTR={<><TableHeaderCell>Name</TableHeaderCell><TableHeaderCell>Status</TableHeaderCell></>}
94
+ isLoading={isLoading}
95
+ isEmpty={rows.length === 0}
96
+ nullState={<EmptyState />}
97
+ showHeader // keep header + column layout visible while empty/loading
98
+ stickyHeader
99
+ >
100
+ {rows.map((row) => <TableRow key={row.id}>…</TableRow>)}
101
+ </TableLayout>
102
+ ```
103
+
104
+ - `isLoading` + rows (or `showHeader`): renders the table with an animated top progress bar and a white overlay — no layout shift.
105
+ - `isLoading` + `isEmpty` **without** `showHeader`: renders only a large centered `Spinner` (`data-loading-indicator='true'`), no table at all. Pass `showHeader` to keep the table header visible during initial load.
106
+ - `isEmpty` + not loading: renders `nullState` (below the header when `showHeader` is set).
107
+ - Other props: `headerTR` (required, the `<th>` row contents), `size` (`'sm' | 'md'`), `containerMaxHeight`, `containerScrollsHorizontally`, `dataTest`.
108
+
83
109
  ## Anti-Patterns
84
110
 
85
111
  ```tsx
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumbs-W8hIhdHD.mjs","names":["Input"],"sources":["../components/Breadcrumbs/Breadcrumb.tsx","../components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { type ChangeEvent, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { CopyIcon, EditIcon } from '@persona/icons';\nimport { IconButton } from 'design-system/components/Button';\nimport Input from 'design-system/components/Input';\nimport { HStack } from 'design-system/components/Stack';\nimport { Paragraph } from 'design-system/components/Text';\nimport Tooltip from 'design-system/components/Tooltip';\nimport { focusOutline } from 'design-system/mixins/focus';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nexport type BreadcrumbSize = 'md' | 'lg';\n\nexport type BreadcrumbHeadingAs = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nconst COPY_TOOLTIP_LABEL = 'Copy ID';\nconst DEFAULT_EDIT_MAX_LENGTH = 100;\n\nexport type BreadcrumbProps = {\n label: string;\n size?: BreadcrumbSize;\n current?: boolean;\n /**\n * Overrides the heading element rendered for the current crumb. Defaults to `h1`; use `h2` or\n * lower when the page already has an `h1`.\n */\n headingAs?: BreadcrumbHeadingAs;\n showCopyAction?: boolean;\n copyValue?: string;\n copyTooltipLabel?: string;\n /** Internal dashboard path (e.g. `/cases`). Passed to the router `Link` as `to`. */\n href?: string;\n /**\n * Activates a non-current crumb without a route change, for trails that navigate in-place (e.g.\n * a control panel drilling into a sub-panel). Ignored when `href` is set.\n */\n onClick?: () => void;\n onEdit?: (newLabel: string) => void;\n editMaxLength?: number;\n onCopy?: () => void;\n};\n\nconst LABEL_ACTION_GAP = Spacing[2];\nconst ACTION_BUTTON_GAP = Spacing[1];\n\nconst CrumbRow = styled(HStack)`\n align-items: center;\n min-width: 0;\n`;\n\nconst crumbLayoutStyles = (size: BreadcrumbSize) => css`\n display: inline-flex;\n align-items: center;\n min-width: 0;\n min-height: ${({ theme }) => theme.element.height.xs};\n ${\n size === 'lg'\n ? css`\n font-size: ${({ theme }) => theme.text.paragraph.lg.fontSize};\n line-height: ${({ theme }) => theme.text.paragraph.lg.lineHeight};\n `\n : css``\n };\n`;\n\nconst editInputTextStyles = (size: BreadcrumbSize, current: boolean) => {\n if (current) {\n return size === 'lg' ? paragraphMixins.lgBold : paragraphMixins.mdBold;\n }\n return size === 'lg' ? paragraphMixins.lg : paragraphMixins.md;\n};\n\nconst ancestorCrumbStyles = css<{ $size: BreadcrumbSize }>`\n ${paragraphMixins.md};\n color: ${({ theme }) => theme.color.text.secondary};\n text-decoration: none;\n transition: color ${TransitionDuration.ExtraFast} ease-out;\n ${focusOutline}\n ${({ $size }) => crumbLayoutStyles($size)}\n\n &:hover {\n color: ${({ theme }) => theme.color.text.primary};\n }\n`;\n\nconst AncestorNavLink = styled(Link)<{ $size: BreadcrumbSize }>`\n ${ancestorCrumbStyles}\n`;\n\nconst AncestorNavButton = styled.button<{ $size: BreadcrumbSize }>`\n ${ancestorCrumbStyles}\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n`;\n\nconst InlineEditInput = styled(Input)<{\n $size: BreadcrumbSize;\n $current: boolean;\n $editMinWidth?: number;\n}>`\n margin: 0;\n padding: 2px 10px;\n width: auto;\n max-width: 100%;\n min-width: ${({ $editMinWidth }) => ($editMinWidth != null ? `${$editMinWidth}px` : '0')};\n field-sizing: content;\n display: inline-block;\n ${({ $size, $current }) => editInputTextStyles($size, $current)};\n background-color: ${({ theme }) => theme.color.background.primary};\n color: ${({ theme }) => theme.color.text.primary};\n\n &:not(:focus) {\n border-color: transparent;\n }\n\n &:hover:not(:disabled) {\n border-style: solid;\n }\n`;\n\nconst CurrentLabel = styled(Paragraph)<{ $size: BreadcrumbSize }>`\n margin: 0;\n ${({ $size }) => crumbLayoutStyles($size)}\n`;\n\nconst copyToClipboard = async (value: string): Promise<boolean> => {\n try {\n if (navigator.clipboard?.writeText == null) {\n return false;\n }\n\n await navigator.clipboard.writeText(value);\n return true;\n } catch {\n return false;\n }\n};\n\nconst BreadcrumbCopyButton = ({\n copyValue,\n copyTooltipLabel = COPY_TOOLTIP_LABEL,\n onCopy,\n}: {\n copyValue: string;\n copyTooltipLabel?: string;\n onCopy?: () => void;\n}) => {\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n const success = await copyToClipboard(copyValue);\n if (!success) {\n return;\n }\n\n setCopied(true);\n setTooltipOpen(true);\n onCopy?.();\n\n window.setTimeout(() => {\n setTooltipOpen(false);\n window.setTimeout(() => setCopied(false), 200);\n }, 1000);\n };\n\n const handleMouseEnter = () => {\n if (!copied) {\n setTooltipOpen(true);\n }\n };\n\n const handleMouseLeave = () => {\n if (!copied) {\n setTooltipOpen(false);\n }\n };\n\n const trigger = (\n <span onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n <IconButton\n type='button'\n size='sm'\n aria-label={`Copy ${copyValue}`}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n void handleCopy();\n }}\n >\n <CopyIcon />\n </IconButton>\n </span>\n );\n\n return (\n <Tooltip\n trigger={trigger}\n open={tooltipOpen}\n side='top'\n sideOffset={4}\n size='sm'\n contentAlignment='center'\n interactive={false}\n hideArrow\n portal={false}\n >\n {copied ? 'Copied!' : copyTooltipLabel}\n </Tooltip>\n );\n};\n\nconst Breadcrumb = ({\n label,\n size = 'md',\n current = false,\n headingAs = 'h1',\n showCopyAction = false,\n copyValue,\n copyTooltipLabel,\n href,\n onClick,\n onEdit,\n editMaxLength = DEFAULT_EDIT_MAX_LENGTH,\n onCopy,\n}: BreadcrumbProps) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState(label);\n const [editMinWidth, setEditMinWidth] = useState<number | undefined>();\n const editInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (!isEditing) {\n setEditValue(label);\n }\n }, [isEditing, label]);\n\n useEffect(() => {\n if (!isEditing) {\n setEditMinWidth(undefined);\n return;\n }\n\n const input = editInputRef.current;\n if (input == null) {\n return;\n }\n\n setEditMinWidth(input.offsetWidth);\n input.focus();\n input.select();\n }, [isEditing]);\n\n const commitEdit = () => {\n if (!isEditing) {\n return;\n }\n\n setIsEditing(false);\n if (editValue !== label) {\n onEdit?.(editValue);\n }\n };\n\n const inlineActions = !isEditing && (showCopyAction || onEdit) && (\n <HStack spacing={ACTION_BUTTON_GAP} align='center'>\n {onEdit && (\n <IconButton\n type='button'\n size='sm'\n aria-label={`Edit ${label}`}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsEditing(true);\n }}\n >\n <EditIcon />\n </IconButton>\n )}\n {showCopyAction && copyValue != null && (\n <BreadcrumbCopyButton\n copyValue={copyValue}\n copyTooltipLabel={copyTooltipLabel}\n onCopy={onCopy}\n />\n )}\n </HStack>\n );\n\n if (isEditing) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <InlineEditInput\n ref={editInputRef}\n $size={size}\n $current={current}\n $editMinWidth={editMinWidth}\n size='md'\n aria-label={`Edit ${label}`}\n maxLength={editMaxLength}\n value={editValue}\n onChange={(event: ChangeEvent<HTMLInputElement>) => setEditValue(event.target.value)}\n onBlur={commitEdit}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n commitEdit();\n }\n if (event.key === 'Escape') {\n setEditValue(label);\n setIsEditing(false);\n }\n }}\n />\n </CrumbRow>\n );\n }\n\n if (current) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <CurrentLabel\n $size={size}\n size={size === 'lg' ? 'lg' : 'md'}\n weight='bold'\n color='primary'\n as={headingAs}\n >\n {label}\n </CurrentLabel>\n {inlineActions}\n </CrumbRow>\n );\n }\n\n if (href == null && onClick != null) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <AncestorNavButton type='button' onClick={onClick} $size={size}>\n {label}\n </AncestorNavButton>\n {inlineActions}\n </CrumbRow>\n );\n }\n\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <AncestorNavLink to={href ?? ''} $size={size}>\n {label}\n </AncestorNavLink>\n {inlineActions}\n </CrumbRow>\n );\n};\n\nexport default Breadcrumb;\n","import styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { intersperse } from 'design-system/lib/intersperse';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nimport Breadcrumb, {\n type BreadcrumbHeadingAs,\n type BreadcrumbProps,\n type BreadcrumbSize,\n} from './Breadcrumb';\n\nexport type BreadcrumbsItemProps = Omit<BreadcrumbProps, 'size' | 'current' | 'headingAs'>;\n\nexport type BreadcrumbsProps = {\n items: BreadcrumbsItemProps[];\n size?: BreadcrumbSize;\n /**\n * Overrides the heading element rendered for the current crumb. Defaults to `h1`; use `h2` or\n * lower when the page already has an `h1`.\n */\n headingAs?: BreadcrumbHeadingAs;\n 'aria-label'?: string;\n className?: string;\n};\n\nconst BreadcrumbList = styled.ol`\n max-width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n min-width: 0;\n`;\n\nconst BreadcrumbListItem = styled.li`\n display: flex;\n align-items: center;\n min-width: 0;\n`;\n\nconst Separator = styled.span<{ $size: BreadcrumbSize }>`\n padding: 0 ${Spacing[2]};\n color: ${({ theme }) => theme.color.text.tertiary};\n user-select: none;\n ${({ $size }) => ($size === 'lg' ? paragraphMixins.lg : paragraphMixins.md)};\n`;\n\nexport const Breadcrumbs = ({\n items,\n size = 'md',\n headingAs = 'h1',\n 'aria-label': ariaLabel = 'Breadcrumbs',\n className,\n}: BreadcrumbsProps) => {\n if (items.length === 0) {\n return null;\n }\n\n const crumbNodes = items.map((item, index) => {\n const isCurrent = index === items.length - 1;\n\n return (\n <BreadcrumbListItem\n key={`${item.label}-${index}`}\n aria-current={isCurrent ? 'page' : undefined}\n >\n <Breadcrumb {...item} size={size} current={isCurrent} headingAs={headingAs} />\n </BreadcrumbListItem>\n );\n });\n\n const listItems = intersperse(crumbNodes, (separatorIndex: number) => (\n <BreadcrumbListItem key={`separator-${separatorIndex}`} aria-hidden='true'>\n <Separator $size={size}>/</Separator>\n </BreadcrumbListItem>\n ));\n\n return (\n <nav aria-label={ariaLabel} className={className}>\n <BreadcrumbList>{listItems}</BreadcrumbList>\n </nav>\n );\n};\n\nexport default Breadcrumbs;\n"],"mappings":"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"}