@persona/design-system 0.8.0 → 0.8.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 (542) hide show
  1. package/CHANGELOG.md +241 -0
  2. package/dist/Accordion.d.mts +1 -1
  3. package/dist/AccordionItem.d.mts +1 -1
  4. package/dist/{Action-B-AiHknZ.d.mts → Action-BwYS9qaG.d.mts} +3 -3
  5. package/dist/Action.d.mts +1 -1
  6. package/dist/AdvancedFilterRuleRow.d.mts +4 -2
  7. package/dist/AdvancedFilterRulesPopover.d.mts +5 -3
  8. package/dist/ArrayValueControl.d.mts +1 -1
  9. package/dist/Attribute.d.mts +3 -3
  10. package/dist/{Badge-COqUjFQu.mjs → Badge-D-5tbZDw.mjs} +2 -2
  11. package/dist/{Badge-COqUjFQu.mjs.map → Badge-D-5tbZDw.mjs.map} +1 -1
  12. package/dist/BooleanValueControl.d.mts +1 -1
  13. package/dist/{Breadcrumb-DRFY46ZW.d.mts → Breadcrumb-BADja8tn.d.mts} +1 -1
  14. package/dist/Breadcrumb.d.mts +1 -1
  15. package/dist/{Breadcrumbs-DXS7rU7_.mjs → Breadcrumbs-CNpM0aXm.mjs} +5 -5
  16. package/dist/{Breadcrumbs-DXS7rU7_.mjs.map → Breadcrumbs-CNpM0aXm.mjs.map} +1 -1
  17. package/dist/{Breadcrumbs-DUSbT1I7.d.mts → Breadcrumbs-CxP7ktfM.d.mts} +2 -2
  18. package/dist/Breadcrumbs.d.mts +1 -1
  19. package/dist/{Button-xZ6DC5XC.d.mts → Button-CnswHEJ2.d.mts} +4 -4
  20. package/dist/Button.d.mts +1 -1
  21. package/dist/{Calendar-dPmo2dkj.d.mts → Calendar-Cke5IlMI.d.mts} +1 -1
  22. package/dist/Calendar.d.mts +1 -1
  23. package/dist/CalendarBase.d.mts +1 -1
  24. package/dist/{Card-CUeM8Lh8.d.mts → Card-Bp6L08H4.d.mts} +3 -3
  25. package/dist/Card.d.mts +1 -1
  26. package/dist/{CardV2-D9p7D7jX.mjs → CardV2-DEW6mw_o.mjs} +7 -7
  27. package/dist/{CardV2-D9p7D7jX.mjs.map → CardV2-DEW6mw_o.mjs.map} +1 -1
  28. package/dist/{Checkbox-DoJpxPEz.d.mts → Checkbox-DUXws1Os.d.mts} +1 -1
  29. package/dist/{Checkbox-DQynkc_I.mjs → Checkbox-GibG2pg5.mjs} +3 -3
  30. package/dist/{Checkbox-DQynkc_I.mjs.map → Checkbox-GibG2pg5.mjs.map} +1 -1
  31. package/dist/Checkbox.d.mts +1 -1
  32. package/dist/CheckboxGroupField-DzdOYIjo.d.mts +25 -0
  33. package/dist/CheckboxGroupField.d.mts +2 -25
  34. package/dist/ChoicesValueControl.d.mts +1 -1
  35. package/dist/{Combobox-C_kCY3P3.mjs → Combobox-CCDoNF9Y.mjs} +9 -9
  36. package/dist/{Combobox-C_kCY3P3.mjs.map → Combobox-CCDoNF9Y.mjs.map} +1 -1
  37. package/dist/{Combobox-D7hyf-jA.d.mts → Combobox-CnxmKUQf.d.mts} +3 -3
  38. package/dist/Combobox.d.mts +2 -2
  39. package/dist/{ComboboxBase-BMCY6O7Y.d.mts → ComboboxBase-CtNrsPO9.d.mts} +6 -6
  40. package/dist/ComboboxBase.d.mts +1 -1
  41. package/dist/{ComboboxMultiSelect-L0KYMkmm.d.mts → ComboboxMultiSelect-CMH6iVu4.d.mts} +2 -2
  42. package/dist/ComboboxMultiSelect.d.mts +1 -1
  43. package/dist/{ComboboxSingleSelect-v5oNrJ7M.d.mts → ComboboxSingleSelect-BLPbLmMY.d.mts} +4 -4
  44. package/dist/ComboboxSingleSelect.d.mts +1 -1
  45. package/dist/{CompactBar-DjFaUAsN.d.mts → CompactBar-BwKIIlWz.d.mts} +3 -3
  46. package/dist/CompactBar.d.mts +1 -1
  47. package/dist/{ConfigFormGroup-DLOZOuLf.mjs → ConfigFormGroup-BQXN2Pgj.mjs} +2 -2
  48. package/dist/{ConfigFormGroup-DLOZOuLf.mjs.map → ConfigFormGroup-BQXN2Pgj.mjs.map} +1 -1
  49. package/dist/{ControlBar-Cegjxa6-.d.mts → ControlBar-BJUY6GOX.d.mts} +2 -2
  50. package/dist/ControlBar.d.mts +1 -1
  51. package/dist/DataTable.d.mts +3 -3
  52. package/dist/{DateField-Dk5ykLdr.d.mts → DateField-BojOHfrv.d.mts} +2 -2
  53. package/dist/DateField.d.mts +1 -1
  54. package/dist/{DatePicker-Dtvv0V45.d.mts → DatePicker-BHVx_i_F.d.mts} +2 -2
  55. package/dist/{DatePicker-C7z1yodK.mjs → DatePicker-LPIJrc0n.mjs} +6 -6
  56. package/dist/{DatePicker-C7z1yodK.mjs.map → DatePicker-LPIJrc0n.mjs.map} +1 -1
  57. package/dist/DatePicker.d.mts +1 -1
  58. package/dist/{DateRangePicker-HPYsa4wC.d.mts → DateRangePicker-CelDK_44.d.mts} +3 -3
  59. package/dist/DateRangePicker.d.mts +1 -1
  60. package/dist/DateRangeValueControl.d.mts +2 -2
  61. package/dist/DateValueControl.d.mts +1 -1
  62. package/dist/{DropdownButton-CQrFHOIW.mjs → DropdownButton-i5Dmxiq1.mjs} +3 -3
  63. package/dist/{DropdownButton-CQrFHOIW.mjs.map → DropdownButton-i5Dmxiq1.mjs.map} +1 -1
  64. package/dist/DropdownButton.d.mts +2 -2
  65. package/dist/{DropdownMenu-D1qvgGTZ.d.mts → DropdownMenu-YtLxcNWt.d.mts} +2 -2
  66. package/dist/{DropdownMenu-rm9Nnxn7.mjs → DropdownMenu-j8NWbAvM.mjs} +2 -2
  67. package/dist/{DropdownMenu-rm9Nnxn7.mjs.map → DropdownMenu-j8NWbAvM.mjs.map} +1 -1
  68. package/dist/DropdownMenu.d.mts +1 -1
  69. package/dist/{ErrorProps-B8-Mqf1W.d.mts → ErrorProps-6dRdJ4QQ.d.mts} +1 -1
  70. package/dist/ErrorProps.d.mts +1 -1
  71. package/dist/{FieldRegistry-0LmSQ-jc.d.mts → FieldRegistry-DqO8HiYb.d.mts} +2 -2
  72. package/dist/FieldRegistry.d.mts +1 -1
  73. package/dist/{FilterBar-BMM4Swbt.d.mts → FilterBar-CpAA2Ozk.d.mts} +4 -4
  74. package/dist/FilterBar.d.mts +1 -1
  75. package/dist/FilterPickerMenu.d.mts +2 -2
  76. package/dist/FilterPill.d.mts +1 -1
  77. package/dist/FilterPopover.d.mts +8 -2
  78. package/dist/FloatValueControl.d.mts +1 -1
  79. package/dist/{FormControl-Dg8doZq2.d.mts → FormControl-B-s6G9mp.d.mts} +2 -2
  80. package/dist/{FormControl-DXrxoJLl.mjs → FormControl-bDxFF0hl.mjs} +3 -3
  81. package/dist/{FormControl-DXrxoJLl.mjs.map → FormControl-bDxFF0hl.mjs.map} +1 -1
  82. package/dist/FormControl.d.mts +1 -1
  83. package/dist/FormControlLabel.d.mts +1 -1
  84. package/dist/{FormField-BeLigf9j.d.mts → FormField-D3k-f3-f.d.mts} +2 -2
  85. package/dist/{FormField-Crp3F-hv.mjs → FormField-DbcqNcx2.mjs} +16 -16
  86. package/dist/{FormField-Crp3F-hv.mjs.map → FormField-DbcqNcx2.mjs.map} +1 -1
  87. package/dist/FormField.d.mts +1 -1
  88. package/dist/{Grid-eMLuyRzV.mjs → Grid-CeH9E5Ai.mjs} +1 -1
  89. package/dist/{Grid-eMLuyRzV.mjs.map → Grid-CeH9E5Ai.mjs.map} +1 -1
  90. package/dist/{Header-DxJ6TfPw.d.mts → Header-2K49LYkR.d.mts} +1 -1
  91. package/dist/Header.d.mts +1 -1
  92. package/dist/{HelperTooltip-DcyrpEZI.d.mts → HelperTooltip-CTHUM2nC.d.mts} +2 -2
  93. package/dist/HelperTooltip.d.mts +1 -1
  94. package/dist/HighlightedText.d.mts +61 -0
  95. package/dist/{HoverCopyableField-12bBuG-d.mjs → HoverCopyableField-BARZLhfO.mjs} +3 -3
  96. package/dist/{HoverCopyableField-12bBuG-d.mjs.map → HoverCopyableField-BARZLhfO.mjs.map} +1 -1
  97. package/dist/{IconButton-CCLMYWVN.mjs → IconButton-BHFCjvzs.mjs} +1 -1
  98. package/dist/{IconButton-CCLMYWVN.mjs.map → IconButton-BHFCjvzs.mjs.map} +1 -1
  99. package/dist/{IconButton-BUMMN-gH.d.mts → IconButton-D5hx405r.d.mts} +2 -2
  100. package/dist/IconButton.d.mts +1 -1
  101. package/dist/ImageTile.d.mts +1 -1
  102. package/dist/InlineCombobox.d.mts +1 -1
  103. package/dist/InlineInput.d.mts +1 -1
  104. package/dist/{Input-Cl4o41k4.mjs → Input-BQN97Hzm.mjs} +3 -3
  105. package/dist/{Input-Cl4o41k4.mjs.map → Input-BQN97Hzm.mjs.map} +1 -1
  106. package/dist/{Input-2N2e5JCf.d.mts → Input-BQbcIiVj.d.mts} +3 -3
  107. package/dist/Input.d.mts +1 -1
  108. package/dist/{InputProps-TWzig3QO.d.mts → InputProps-DT1ZReZS.d.mts} +2 -2
  109. package/dist/InputProps.d.mts +1 -1
  110. package/dist/IntegerValueControl.d.mts +1 -1
  111. package/dist/{Link-I9Bklen-.mjs → Link-Bzm4AL5J.mjs} +1 -1
  112. package/dist/{Link-I9Bklen-.mjs.map → Link-Bzm4AL5J.mjs.map} +1 -1
  113. package/dist/Link.d.mts +1 -1
  114. package/dist/{ListBox-BcoXOt73.d.mts → ListBox-CdqRwBvA.d.mts} +7 -7
  115. package/dist/{ListBox-sqeLBiKS.mjs → ListBox-DOqN9DNl.mjs} +9 -9
  116. package/dist/{ListBox-sqeLBiKS.mjs.map → ListBox-DOqN9DNl.mjs.map} +1 -1
  117. package/dist/ListBox.d.mts +1 -1
  118. package/dist/ListBoxField-Bl2WLplO.d.mts +51 -0
  119. package/dist/ListBoxField.d.mts +2 -51
  120. package/dist/{LoadingShimmer-dRSkdlqD.mjs → LoadingShimmer-Ds7rvIUN.mjs} +1 -1
  121. package/dist/{LoadingShimmer-dRSkdlqD.mjs.map → LoadingShimmer-Ds7rvIUN.mjs.map} +1 -1
  122. package/dist/LoadingShimmer.d.mts +1 -1
  123. package/dist/{LogicRow-DXywXdYt.d.mts → LogicRow-CwMAn1sh.d.mts} +3 -3
  124. package/dist/LogicRow.d.mts +1 -1
  125. package/dist/MaskedInput.d.mts +1 -1
  126. package/dist/{Menu-BekLwm8w.d.mts → Menu-CUN9bmc1.d.mts} +3 -3
  127. package/dist/{Menu-CwlI7BMN.mjs → Menu-DjW2b3Wk.mjs} +1 -1
  128. package/dist/{Menu-CwlI7BMN.mjs.map → Menu-DjW2b3Wk.mjs.map} +1 -1
  129. package/dist/Menu.d.mts +1 -1
  130. package/dist/{MiddleTruncatedText-CO58jrNF.mjs → MiddleTruncatedText-DoTyfMem.mjs} +2 -2
  131. package/dist/{MiddleTruncatedText-CO58jrNF.mjs.map → MiddleTruncatedText-DoTyfMem.mjs.map} +1 -1
  132. package/dist/{Modal-ymxlGYKt.d.mts → Modal-CGXJGrKg.d.mts} +2 -2
  133. package/dist/{Modal-CMiFcXC9.mjs → Modal-DHLPK65-.mjs} +4 -4
  134. package/dist/{Modal-CMiFcXC9.mjs.map → Modal-DHLPK65-.mjs.map} +1 -1
  135. package/dist/Modal.d.mts +1 -1
  136. package/dist/{PageHeader-D_0p7UK_.mjs → PageHeader-eI4RM_uL.mjs} +2 -2
  137. package/dist/{PageHeader-D_0p7UK_.mjs.map → PageHeader-eI4RM_uL.mjs.map} +1 -1
  138. package/dist/PageHeader.d.mts +1 -1
  139. package/dist/{PageSelector-Bxulu6vU.d.mts → PageSelector-kAfYxEky.d.mts} +3 -3
  140. package/dist/PageSelector.d.mts +1 -1
  141. package/dist/{Pagination-Co9CfyFQ.mjs → Pagination-6BDOn9bX.mjs} +6 -6
  142. package/dist/Pagination-6BDOn9bX.mjs.map +1 -0
  143. package/dist/{Pagination-Dg-4O7F7.d.mts → Pagination-Bhr7xyd2.d.mts} +2 -2
  144. package/dist/Pagination.d.mts +1 -1
  145. package/dist/{Pii-JGV9gP95.mjs → Pii-DhL1gblz.mjs} +2 -2
  146. package/dist/{Pii-JGV9gP95.mjs.map → Pii-DhL1gblz.mjs.map} +1 -1
  147. package/dist/{PillShell-BA7KK1zS.d.mts → PillShell-CVJL1k5I.d.mts} +2 -2
  148. package/dist/PillShell.d.mts +1 -1
  149. package/dist/{Popover-ZAj03lws.mjs → Popover-CbYaWrAy.mjs} +1 -1
  150. package/dist/{Popover-ZAj03lws.mjs.map → Popover-CbYaWrAy.mjs.map} +1 -1
  151. package/dist/{ProgressIndicator-CQg08vuA.mjs → ProgressIndicator-BpF3XLn3.mjs} +1 -1
  152. package/dist/{ProgressIndicator-CQg08vuA.mjs.map → ProgressIndicator-BpF3XLn3.mjs.map} +1 -1
  153. package/dist/{ProgressIndicator-D85HQGSx.d.mts → ProgressIndicator-CYyM6OSx.d.mts} +1 -1
  154. package/dist/ProgressIndicator.d.mts +1 -1
  155. package/dist/{PseudoClassProps-BHs8TX_3.d.mts → PseudoClassProps-BOVN6Etr.d.mts} +1 -1
  156. package/dist/PseudoClassProps.d.mts +1 -1
  157. package/dist/{Radio-CYV290JI.mjs → Radio-DPaX-9LH.mjs} +2 -2
  158. package/dist/{Radio-CYV290JI.mjs.map → Radio-DPaX-9LH.mjs.map} +1 -1
  159. package/dist/{RadioGroup-Cq3KV1TN.d.mts → RadioGroup-C0l0pdEt.d.mts} +1 -1
  160. package/dist/{RadioGroup-lWMMtu9V.mjs → RadioGroup-D7f4m2Uc.mjs} +2 -2
  161. package/dist/{RadioGroup-lWMMtu9V.mjs.map → RadioGroup-D7f4m2Uc.mjs.map} +1 -1
  162. package/dist/RadioGroup.d.mts +1 -1
  163. package/dist/{RangeCalendar-Mh7h74Tp.d.mts → RangeCalendar-BJn9V3iN.d.mts} +2 -2
  164. package/dist/RangeCalendar.d.mts +1 -1
  165. package/dist/RangeCalendarPresets.d.mts +1 -1
  166. package/dist/{RouterContext-B3IU1jb0.d.mts → RouterContext-BLrzYlJ_.d.mts} +2 -2
  167. package/dist/RouterContext.d.mts +1 -1
  168. package/dist/{RouterLink-CwAqTLC2.d.mts → RouterLink-BHXjhqps.d.mts} +2 -2
  169. package/dist/RouterLink.d.mts +1 -1
  170. package/dist/RuleEditorFields.d.mts +4 -2
  171. package/dist/RulesPill.d.mts +1 -1
  172. package/dist/{SearchInput-BGyUUcoz.d.mts → SearchInput-Buh8LdIL.d.mts} +2 -2
  173. package/dist/SearchInput.d.mts +1 -1
  174. package/dist/SectionHeading.d.mts +1 -1
  175. package/dist/{SegmentedControl-DgDabSgr.d.mts → SegmentedControl-B9qLyIIW.d.mts} +1 -1
  176. package/dist/{SegmentedControl-BEbIcV3g.mjs → SegmentedControl-zEvBtVj0.mjs} +2 -2
  177. package/dist/{SegmentedControl-BEbIcV3g.mjs.map → SegmentedControl-zEvBtVj0.mjs.map} +1 -1
  178. package/dist/SegmentedControl.d.mts +1 -1
  179. package/dist/{Select-yC2t_gZb.mjs → Select-BoZuM_e9.mjs} +6 -6
  180. package/dist/{Select-yC2t_gZb.mjs.map → Select-BoZuM_e9.mjs.map} +1 -1
  181. package/dist/{Select-wqTtGyga.d.mts → Select-Cv_9PLOt.d.mts} +3 -3
  182. package/dist/Select.d.mts +1 -1
  183. package/dist/SmartTextInput.d.mts +107 -0
  184. package/dist/SmartTextInputCodeDialog.d.mts +18 -0
  185. package/dist/SmartTextInputField.d.mts +25 -0
  186. package/dist/SmartTextInputFunctionDialog.d.mts +37 -0
  187. package/dist/SmartTextInputListbox.d.mts +26 -0
  188. package/dist/SmartTextInputPopover.d.mts +45 -0
  189. package/dist/{Spinner-BlAg8_OX.mjs → Spinner-CarSRiBF.mjs} +1 -1
  190. package/dist/{Spinner-BlAg8_OX.mjs.map → Spinner-CarSRiBF.mjs.map} +1 -1
  191. package/dist/{Stack-Bkn0TUDe.mjs → Stack-CEPzs4Pb.mjs} +1 -1
  192. package/dist/{Stack-Bkn0TUDe.mjs.map → Stack-CEPzs4Pb.mjs.map} +1 -1
  193. package/dist/{Stack-CYqjBXe8.d.mts → Stack-XzBzPvSV.d.mts} +1 -1
  194. package/dist/Stack.d.mts +1 -1
  195. package/dist/{StatusIndicator-DT2zNbkp.mjs → StatusIndicator-bEnMWV_S.mjs} +1 -1
  196. package/dist/{StatusIndicator-DT2zNbkp.mjs.map → StatusIndicator-bEnMWV_S.mjs.map} +1 -1
  197. package/dist/{Sticker-BLbgJxcH.mjs → Sticker-B-fU8lgu.mjs} +3 -3
  198. package/dist/{Sticker-BLbgJxcH.mjs.map → Sticker-B-fU8lgu.mjs.map} +1 -1
  199. package/dist/{Sticker-BmyKaxwx.d.mts → Sticker-DGfNuxUK.d.mts} +4 -4
  200. package/dist/Sticker.d.mts +1 -1
  201. package/dist/StringValueControl.d.mts +1 -1
  202. package/dist/Tab.d.mts +1 -1
  203. package/dist/{TabBar-Bj84q1Mr.mjs → TabBar-BSl5v5aa.mjs} +3 -3
  204. package/dist/{TabBar-Bj84q1Mr.mjs.map → TabBar-BSl5v5aa.mjs.map} +1 -1
  205. package/dist/{Table-DhdHUQ8V.d.mts → Table-B2V5tlfA.d.mts} +1 -1
  206. package/dist/{Table-WqNfjasd.mjs → Table-msXj0glu.mjs} +2 -2
  207. package/dist/{Table-WqNfjasd.mjs.map → Table-msXj0glu.mjs.map} +1 -1
  208. package/dist/Table.d.mts +1 -1
  209. package/dist/{TableBody-qoSvQDds.d.mts → TableBody-SlQe4Jyp.d.mts} +1 -1
  210. package/dist/TableBody.d.mts +1 -1
  211. package/dist/{TableBox-obl64W5Y.mjs → TableBox-CF1_Fk0j.mjs} +9 -9
  212. package/dist/{TableBox-obl64W5Y.mjs.map → TableBox-CF1_Fk0j.mjs.map} +1 -1
  213. package/dist/TableBox.d.mts +2 -2
  214. package/dist/{TableBoxCell-DzYMx4Ju.d.mts → TableBoxCell-BRhGeUnO.d.mts} +6 -6
  215. package/dist/TableBoxCell.d.mts +1 -1
  216. package/dist/TableBoxField-Cq9M1upV.d.mts +103 -0
  217. package/dist/TableBoxField.d.mts +2 -103
  218. package/dist/{TableBoxRow-B4rFCvWK.d.mts → TableBoxRow-DZzRYoID.d.mts} +3 -3
  219. package/dist/TableBoxRow.d.mts +1 -1
  220. package/dist/{TableBoxRowActions-qMKcVuTL.d.mts → TableBoxRowActions-4-j3flJq.d.mts} +2 -2
  221. package/dist/TableBoxRowActions.d.mts +1 -1
  222. package/dist/{TableCell-CGPQRc5g.d.mts → TableCell-D5Sqb6iO.d.mts} +2 -2
  223. package/dist/TableCell.d.mts +1 -1
  224. package/dist/{TableControls-WP78qtET.d.mts → TableControls-B-LakH-8.d.mts} +3 -3
  225. package/dist/{TableControls-RS_ozBsI.mjs → TableControls-CqW_nyBY.mjs} +98 -31
  226. package/dist/TableControls-CqW_nyBY.mjs.map +1 -0
  227. package/dist/TableControls.d.mts +1 -1
  228. package/dist/{TableControlsContext-DZIZSyfX.d.mts → TableControlsContext-Dh1YVmBM.d.mts} +2 -2
  229. package/dist/TableControlsContext.d.mts +1 -1
  230. package/dist/{TableHead-36j-_oyn.d.mts → TableHead-BCrVa0BY.d.mts} +1 -1
  231. package/dist/TableHead.d.mts +1 -1
  232. package/dist/{TableHeaderCell-C7gp9j1X.d.mts → TableHeaderCell-CcEkDozs.d.mts} +1 -1
  233. package/dist/TableHeaderCell.d.mts +1 -1
  234. package/dist/{TableLayout-CQqIV0vj.d.mts → TableLayout-Bhj1QBBz.d.mts} +1 -1
  235. package/dist/TableLayout.d.mts +1 -1
  236. package/dist/{TableRow-BJZM8I8i.d.mts → TableRow-Cy1y7b9S.d.mts} +2 -2
  237. package/dist/TableRow.d.mts +1 -1
  238. package/dist/TableTH.d.mts +1 -1
  239. package/dist/{TableViewConfigurationDropdown-Dwy_9FBz.d.mts → TableViewConfigurationDropdown-BzygLtGm.d.mts} +2 -2
  240. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  241. package/dist/{TechnicalSticker-CL0zkOAj.mjs → TechnicalSticker-B6T7cHHc.mjs} +2 -2
  242. package/dist/{TechnicalSticker-CL0zkOAj.mjs.map → TechnicalSticker-B6T7cHHc.mjs.map} +1 -1
  243. package/dist/{Text-DbtTa83E.d.mts → Text-BVGJ-Nlw.d.mts} +3 -3
  244. package/dist/Text.d.mts +1 -1
  245. package/dist/{TextArea-CbxF6u7z.d.mts → TextArea-Bzj593VO.d.mts} +2 -2
  246. package/dist/{TextArea-CfZr5Sk4.mjs → TextArea-C1CmFRiz.mjs} +2 -2
  247. package/dist/{TextArea-CfZr5Sk4.mjs.map → TextArea-C1CmFRiz.mjs.map} +1 -1
  248. package/dist/TextArea.d.mts +1 -1
  249. package/dist/{TextUnderlineTooltip-BgLQuK38.d.mts → TextUnderlineTooltip-CgFmtqF_.d.mts} +2 -2
  250. package/dist/TextUnderlineTooltip.d.mts +1 -1
  251. package/dist/Tile.d.mts +1 -1
  252. package/dist/Toast.d.mts +1 -1
  253. package/dist/{Toggle-D4ZaUcVt.mjs → Toggle-CntyMUPJ.mjs} +2 -2
  254. package/dist/{Toggle-D4ZaUcVt.mjs.map → Toggle-CntyMUPJ.mjs.map} +1 -1
  255. package/dist/{Toggle-BYMLrPXk.d.mts → Toggle-bSu1xAaq.d.mts} +1 -1
  256. package/dist/Toggle.d.mts +1 -1
  257. package/dist/{Tooltip-4pshzB_i.d.mts → Tooltip-Duw4Fz1t.d.mts} +2 -2
  258. package/dist/Tooltip.d.mts +1 -1
  259. package/dist/{TruncatedText-O7hE3w0O.d.mts → TruncatedText-CbTpX_R1.d.mts} +1 -1
  260. package/dist/VersionHistory.d.mts +1 -1
  261. package/dist/{VersionHistoryItem-CIcEgl0K.d.mts → VersionHistoryItem-D05QYej7.d.mts} +1 -1
  262. package/dist/VersionHistoryItem.d.mts +1 -1
  263. package/dist/WizardModal.d.mts +3 -3
  264. package/dist/{accordionTitleTypography-CNB1w3kn.d.mts → accordionTitleTypography-Leehcmb3.d.mts} +2 -2
  265. package/dist/accordionTitleTypography.d.mts +1 -1
  266. package/dist/chainTypes-D8SGRGba.d.mts +17 -0
  267. package/dist/{codec-BXVBsB8Y.d.mts → codec-Vsztf4fe.d.mts} +2 -2
  268. package/dist/codec.d.mts +1 -1
  269. package/dist/{color-3UO63ocQ.d.mts → color-CrlF3pba.d.mts} +2 -2
  270. package/dist/components/Accordion/index.d.mts +1 -1
  271. package/dist/components/Accordion/index.mjs +1 -1
  272. package/dist/components/Attribute/index.mjs +2 -2
  273. package/dist/components/Badge/index.mjs +1 -1
  274. package/dist/components/Banner/index.mjs +1 -1
  275. package/dist/components/BottomPanel/index.mjs +3 -3
  276. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  277. package/dist/components/Breadcrumbs/index.mjs +1 -1
  278. package/dist/components/Button/index.d.mts +2 -2
  279. package/dist/components/Button/index.mjs +1 -1
  280. package/dist/components/ButtonGroup/index.mjs +2 -2
  281. package/dist/components/Card/index.d.mts +2 -2
  282. package/dist/components/CardV2/index.d.mts +1 -1
  283. package/dist/components/CardV2/index.mjs +1 -1
  284. package/dist/components/Checkbox/index.d.mts +1 -1
  285. package/dist/components/Checkbox/index.mjs +1 -1
  286. package/dist/components/CodeHighlight/index.mjs +1 -1
  287. package/dist/components/Combobox/index.d.mts +2 -2
  288. package/dist/components/Combobox/index.mjs +1 -1
  289. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  290. package/dist/components/DataTable/TableControls/index.d.mts +19 -19
  291. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  292. package/dist/components/DataTable/index.mjs +11 -11
  293. package/dist/components/DataTable/types.d.mts +2 -2
  294. package/dist/components/DatePicker/index.d.mts +5 -5
  295. package/dist/components/DatePicker/index.mjs +1 -1
  296. package/dist/components/DropdownButton/index.mjs +1 -1
  297. package/dist/components/DropdownMenu/index.d.mts +1 -1
  298. package/dist/components/DropdownMenu/index.mjs +1 -1
  299. package/dist/components/FloatingPanel/index.mjs +2 -2
  300. package/dist/components/FormControl/index.d.mts +2 -2
  301. package/dist/components/FormControl/index.mjs +2 -2
  302. package/dist/components/FormField/index.d.mts +6 -6
  303. package/dist/components/FormField/index.mjs +1 -1
  304. package/dist/components/Grid/index.mjs +1 -1
  305. package/dist/components/HoverCopyableField/index.mjs +1 -1
  306. package/dist/components/ImageTile/index.mjs +5 -5
  307. package/dist/components/Input/index.d.mts +1 -1
  308. package/dist/components/Input/index.mjs +1 -1
  309. package/dist/components/Link/index.mjs +1 -1
  310. package/dist/components/ListBox/index.d.mts +3 -3
  311. package/dist/components/ListBox/index.mjs +1 -1
  312. package/dist/components/LoadingShimmer/index.mjs +1 -1
  313. package/dist/components/MaskedInput/index.mjs +1 -1
  314. package/dist/components/Menu/index.d.mts +1 -1
  315. package/dist/components/Menu/index.mjs +1 -1
  316. package/dist/components/Modal/index.d.mts +1 -1
  317. package/dist/components/Modal/index.mjs +1 -1
  318. package/dist/components/PageHeader/index.mjs +1 -1
  319. package/dist/components/Pagination/index.d.mts +3 -3
  320. package/dist/components/Pagination/index.mjs +1 -1
  321. package/dist/components/Pii/index.mjs +1 -1
  322. package/dist/components/Popover/index.mjs +1 -1
  323. package/dist/components/ProgressIndicator/index.d.mts +1 -1
  324. package/dist/components/ProgressIndicator/index.mjs +1 -1
  325. package/dist/components/Radio/index.mjs +1 -1
  326. package/dist/components/RadioGroup/index.d.mts +1 -1
  327. package/dist/components/RadioGroup/index.mjs +1 -1
  328. package/dist/components/RightPanel/index.mjs +3 -3
  329. package/dist/components/SegmentedControl/index.d.mts +1 -1
  330. package/dist/components/SegmentedControl/index.mjs +1 -1
  331. package/dist/components/Select/index.d.mts +1 -1
  332. package/dist/components/Select/index.mjs +1 -1
  333. package/dist/components/SmartTextInput/index.d.mts +5 -0
  334. package/dist/components/SmartTextInput/index.mjs +2035 -0
  335. package/dist/components/SmartTextInput/index.mjs.map +1 -0
  336. package/dist/components/SmartTextInput/parser/method-chain/parser.mjs +1 -1
  337. package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +1 -1
  338. package/dist/components/SmartTextInput/parser/smart-text/parser.mjs +1 -1
  339. package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +3 -72
  340. package/dist/components/Spinner/index.mjs +1 -1
  341. package/dist/components/Stack/index.d.mts +1 -1
  342. package/dist/components/Stack/index.mjs +1 -1
  343. package/dist/components/StatusIndicator/index.mjs +1 -1
  344. package/dist/components/Sticker/index.d.mts +1 -1
  345. package/dist/components/Sticker/index.mjs +1 -1
  346. package/dist/components/TabBar/index.mjs +1 -1
  347. package/dist/components/Table/index.d.mts +8 -8
  348. package/dist/components/Table/index.mjs +1 -1
  349. package/dist/components/TableBox/index.d.mts +2 -2
  350. package/dist/components/TableBox/index.mjs +1 -1
  351. package/dist/components/TechnicalSticker/index.mjs +1 -1
  352. package/dist/components/Text/index.d.mts +1 -1
  353. package/dist/components/TextArea/index.d.mts +1 -1
  354. package/dist/components/TextArea/index.mjs +1 -1
  355. package/dist/components/Tile/index.mjs +2 -2
  356. package/dist/components/Toast/index.mjs +1 -1
  357. package/dist/components/Toggle/index.d.mts +1 -1
  358. package/dist/components/Toggle/index.mjs +1 -1
  359. package/dist/components/Tooltip/index.d.mts +3 -3
  360. package/dist/components/VersionHistory/index.d.mts +1 -1
  361. package/dist/components/VersionHistory/index.mjs +7 -7
  362. package/dist/compound-expression.d.mts +1 -1
  363. package/dist/{constants-BOxzLX-O.d.mts → constants-CQUCM6__.d.mts} +1 -1
  364. package/dist/constants.d.mts +1 -1
  365. package/dist/{createPath-OeTC9kvS.d.mts → createPath-Bq7wYGt_.d.mts} +2 -2
  366. package/dist/createPath.d.mts +1 -1
  367. package/dist/{date-filter-BnzR6NxT.mjs → date-filter-D6IfCkwp.mjs} +1 -1
  368. package/dist/{date-filter-BnzR6NxT.mjs.map → date-filter-D6IfCkwp.mjs.map} +1 -1
  369. package/dist/{date-range-rule-value-BRp5Bi7R.d.mts → date-range-rule-value-DVhMQP4-.d.mts} +2 -2
  370. package/dist/date-range-rule-value.d.mts +1 -1
  371. package/dist/{date-rule-intent-CDBtV0ET.d.mts → date-rule-intent-BwQ6OTVD.d.mts} +3 -3
  372. package/dist/date-rule-intent.d.mts +1 -1
  373. package/dist/display.d.mts +1 -1
  374. package/dist/fieldPickerOptions.d.mts +2 -2
  375. package/dist/{filter-size-context-CqvQ190x.d.mts → filter-size-context-BjTzcZwZ.d.mts} +2 -2
  376. package/dist/filter-size-context.d.mts +1 -1
  377. package/dist/helpers.d.mts +1 -1
  378. package/dist/{index-BXSe73Xn.d.mts → index-BFIFjR7Q.d.mts} +2 -2
  379. package/dist/{index-wKK9f9La.d.mts → index-BhDvrF4l.d.mts} +4 -4
  380. package/dist/{index-CyAok7As.d.mts → index-C-xpEL8b.d.mts} +2 -2
  381. package/dist/index-xmouCHX9.d.mts +1 -0
  382. package/dist/index.d.mts +1 -1
  383. package/dist/index2.d.mts +1 -1
  384. package/dist/index3.d.mts +3 -3
  385. package/dist/index4.d.mts +1 -1
  386. package/dist/index5.d.mts +14 -14
  387. package/dist/{input-C6cyiqm2.d.mts → input-DpHBIUpP.d.mts} +3 -3
  388. package/dist/inputFields-BVDurw3L.d.mts +71 -0
  389. package/dist/inputFields.d.mts +2 -71
  390. package/dist/{intersperse-Df9zw7Bk.mjs → intersperse-bvY2gibK.mjs} +1 -1
  391. package/dist/{intersperse-Df9zw7Bk.mjs.map → intersperse-bvY2gibK.mjs.map} +1 -1
  392. package/dist/{jsonSchema-CfGi1bzI.d.mts → jsonSchema-Bl-qzgrr.d.mts} +1 -1
  393. package/dist/lib/MiddleTruncatedText.mjs +1 -1
  394. package/dist/lib/PDSProvider.d.mts +2 -2
  395. package/dist/lib/TruncatedText.d.mts +1 -1
  396. package/dist/lib/TruncatedText.mjs +1 -1
  397. package/dist/lib/TruncatedText.mjs.map +1 -1
  398. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  399. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  400. package/dist/lib/TruncatedTextWithTooltip.mjs.map +1 -1
  401. package/dist/lib/chainTypes.d.mts +2 -17
  402. package/dist/lib/color.d.mts +1 -1
  403. package/dist/lib/customFunctionSchema.d.mts +1 -1
  404. package/dist/lib/date-filter/index.d.mts +2 -2
  405. package/dist/lib/date-filter/index.mjs +1 -1
  406. package/dist/lib/jsonSchema.d.mts +1 -1
  407. package/dist/lib/jsonSchemaType.d.mts +1 -1
  408. package/dist/lib/message.d.mts +1 -1
  409. package/dist/lib/methodChain.d.mts +2 -2
  410. package/dist/lib/methodChain.mjs +1 -2
  411. package/dist/lib/methodChainNormalize.d.mts +2 -2
  412. package/dist/lib/methodChainTypes.d.mts +1 -1
  413. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  414. package/dist/lib/platformObject.d.mts +1 -1
  415. package/dist/lib/pseudoClass.d.mts +1 -1
  416. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  417. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  418. package/dist/lib/router/index.d.mts +5 -5
  419. package/dist/lib/schemaOptions.d.mts +2 -173
  420. package/dist/lib/schemaOptions.mjs +1 -1
  421. package/dist/lib/semanticColor.d.mts +1 -1
  422. package/dist/lib/useChain.d.mts +2 -0
  423. package/dist/lib/useChain.mjs +2 -0
  424. package/dist/listbox-options-BjOkovND.d.mts +38 -0
  425. package/dist/listbox-options.d.mts +2 -0
  426. package/dist/{message-CblP0EjG.d.mts → message-w_1-kTDE.d.mts} +1 -1
  427. package/dist/{methodChain-Pk1C3i_E.d.mts → methodChain-B5vZEOff.d.mts} +4 -4
  428. package/dist/{methodChain-DAQxLgxt.mjs → methodChain-L_h8Z8Bx.mjs} +2 -2
  429. package/dist/{methodChain-DAQxLgxt.mjs.map → methodChain-L_h8Z8Bx.mjs.map} +1 -1
  430. package/dist/{methodChainTypes-CqWzfx0M.d.mts → methodChainTypes-BVkTI8MX.d.mts} +2 -2
  431. package/dist/mixins/focus.d.mts +1 -1
  432. package/dist/mixins/hoverable.d.mts +2 -2
  433. package/dist/mixins/input.d.mts +1 -1
  434. package/dist/mixins/menuItem.d.mts +2 -2
  435. package/dist/mixins/scrollbar.d.mts +1 -1
  436. package/dist/mixins/text.d.mts +1 -1
  437. package/dist/{operators-CoXL5Hv6.d.mts → operators-BG82-g3M.d.mts} +9 -3
  438. package/dist/operators.d.mts +2 -2
  439. package/dist/{palette-CxXUs1Fu.d.mts → palette-C8tyI81D.d.mts} +3 -3
  440. package/dist/palette.d.mts +1 -1
  441. package/dist/{parser-Kxos6siN.mjs → parser-BeTiVjRs.mjs} +3 -2
  442. package/dist/{parser-Kxos6siN.mjs.map → parser-BeTiVjRs.mjs.map} +1 -1
  443. package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
  444. package/dist/patterns/PageLayout/index.mjs +2 -2
  445. package/dist/{components → patterns}/WizardModal/index.mjs +5 -5
  446. package/dist/patterns/WizardModal/index.mjs.map +1 -0
  447. package/dist/reactRouterFallback.d.mts +1 -1
  448. package/dist/relative-date-label.d.mts +1 -1
  449. package/dist/safe-parse.d.mts +23 -0
  450. package/dist/schemaOptions-DGca6x7E.d.mts +173 -0
  451. package/dist/{semantic-CFMBsuiJ.d.mts → semantic-D1661f_6.d.mts} +1 -1
  452. package/dist/{semanticColor-DuJCmDrH.d.mts → semanticColor-Bg0H3RUL.d.mts} +3 -3
  453. package/dist/{text-D8HPjiEX.d.mts → text-Iw9DKpbZ.d.mts} +1 -1
  454. package/dist/{theme-BcaR-Au5.d.mts → theme-BB1B6Wkz.d.mts} +3 -3
  455. package/dist/theme.d.mts +1 -1
  456. package/dist/tone.d.mts +3 -3
  457. package/dist/tree.d.mts +9 -0
  458. package/dist/{types-CoVZwrMW.d.mts → types-B0ilOIfE.d.mts} +2 -2
  459. package/dist/types-BYRTxB0a.d.mts +72 -0
  460. package/dist/{types-BCiq4hGv.d.mts → types-CI2bPi02.d.mts} +1 -1
  461. package/dist/types-Cs6CdZCO.d.mts +83 -0
  462. package/dist/{types-CkpixGWr.d.mts → types-D1DijcJv.d.mts} +1 -1
  463. package/dist/{types-Cl-w8tYc.d.mts → types-DZTbvdpO.d.mts} +1 -1
  464. package/dist/{types-DgyGecdM.d.mts → types-DdTu747j.d.mts} +1 -1
  465. package/dist/{types-C4WUSW3e.d.mts → types-Dy3lZv9z.d.mts} +2 -2
  466. package/dist/{types-BGMmkUpy.d.mts → types-M-rsm1Km.d.mts} +1 -1
  467. package/dist/types.d.mts +1 -1
  468. package/dist/types2.d.mts +1 -1
  469. package/dist/types3.d.mts +1 -1
  470. package/dist/types4.d.mts +1 -1
  471. package/dist/types5.d.mts +1 -1
  472. package/dist/types6.d.mts +1 -1
  473. package/dist/types7.d.mts +2 -0
  474. package/dist/{url-state-8j_ef8Uf.d.mts → url-state-DWA7UFxS.d.mts} +2 -2
  475. package/dist/url-state.d.mts +1 -1
  476. package/dist/useChain-CEsXE2Bx.d.mts +77 -0
  477. package/dist/useChain-CKqYGdx4.mjs +4589 -0
  478. package/dist/useChain-CKqYGdx4.mjs.map +1 -0
  479. package/dist/useChainAtCursor.d.mts +87 -0
  480. package/dist/useCodeChainFunctionPanel.d.mts +26 -0
  481. package/dist/useComboboxFooterAction.d.mts +1 -1
  482. package/dist/{useFilterStateV2-CW6eght1.d.mts → useFilterStateV2-DoJ9lyJx.d.mts} +3 -3
  483. package/dist/useFilterStateV2.d.mts +1 -1
  484. package/dist/{useFormField-XezSxho_.mjs → useFormField-BAmkdxtA.mjs} +2 -2
  485. package/dist/{useFormField-XezSxho_.mjs.map → useFormField-BAmkdxtA.mjs.map} +1 -1
  486. package/dist/{useFormField-CLRZkUZt.d.mts → useFormField-BtnAYcHV.d.mts} +2 -2
  487. package/dist/useFormField.d.mts +1 -1
  488. package/dist/{useFormGroup-C7Cax8zO.mjs → useFormGroup-BZayb9fZ.mjs} +1 -1
  489. package/dist/{useFormGroup-C7Cax8zO.mjs.map → useFormGroup-BZayb9fZ.mjs.map} +1 -1
  490. package/dist/{useLocationPathname-DH5Tdq5X.d.mts → useLocationPathname-pLyLOrAi.d.mts} +1 -1
  491. package/dist/useLocationPathname.d.mts +1 -1
  492. package/dist/{useTableBoxDragAndDrop-Da4TiYBT.d.mts → useTableBoxDragAndDrop-wjc_LCpC.d.mts} +1 -1
  493. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  494. package/dist/useTruncation.d.mts +1 -1
  495. package/dist/{utilities-DcsbI71T.d.mts → utilities-DL18UdPs.d.mts} +1 -1
  496. package/dist/utilities.d.mts +1 -1
  497. package/dist/utils/storybook.mjs +1 -1
  498. package/dist/utils/testing.d.mts +1 -1
  499. package/dist/utils.d.mts +1 -1
  500. package/dist/utils4.d.mts +111 -0
  501. package/dist/{validation-BgwNghi2.d.mts → validation-PeVTwtd-.d.mts} +3 -3
  502. package/dist/validation.d.mts +1 -1
  503. package/dist/validation2.d.mts +64 -0
  504. package/dist/{value-control-resolver-B0HDRxRN.d.mts → value-control-resolver-Cx_wXQFv.d.mts} +2 -2
  505. package/dist/value-control-resolver.d.mts +1 -1
  506. package/dist/variables/effect.d.mts +1 -1
  507. package/dist/variables/semantic.d.mts +1 -1
  508. package/llms.txt +1 -1
  509. package/package.json +10 -3
  510. package/skills/ui-authoring/COMPONENTS.md +0 -1
  511. package/skills/ui-authoring/PATTERNS.md +1 -0
  512. package/dist/Pagination-Co9CfyFQ.mjs.map +0 -1
  513. package/dist/TableControls-RS_ozBsI.mjs.map +0 -1
  514. package/dist/components/WizardModal/index.mjs.map +0 -1
  515. /package/dist/{index-B24gUwOx.d.mts → index-7in8TPrM.d.mts} +0 -0
  516. /package/dist/{index-BFnNtGdX.d.mts → index-BCq_fh4A2.d.mts} +0 -0
  517. /package/dist/{index-BNRXMhlr.d.mts → index-BINnViIh.d.mts} +0 -0
  518. /package/dist/{index-BPiqSRRl.d.mts → index-BMBcfD_R.d.mts} +0 -0
  519. /package/dist/{index-BYd3Btr1.d.mts → index-BOn0AAue.d.mts} +0 -0
  520. /package/dist/{index-B_BBnMou.d.mts → index-BcsXXrHq.d.mts} +0 -0
  521. /package/dist/{index-Bt4QNofW.d.mts → index-BjgW3E7y.d.mts} +0 -0
  522. /package/dist/{index-C6HcjJiY.d.mts → index-BwXb5CoQ.d.mts} +0 -0
  523. /package/dist/{index-CEqOS-7M.d.mts → index-C3usUse7.d.mts} +0 -0
  524. /package/dist/{index-CIABef8t.d.mts → index-C9achTF6.d.mts} +0 -0
  525. /package/dist/{index-CTHojwxd.d.mts → index-CCKHlTA4.d.mts} +0 -0
  526. /package/dist/{index-CjDodOH2.d.mts → index-CFuHCx9T.d.mts} +0 -0
  527. /package/dist/{index-Cm-1i165.d.mts → index-CP2eJYlK.d.mts} +0 -0
  528. /package/dist/{index-CoUVmp_Q.d.mts → index-CWB6exYm.d.mts} +0 -0
  529. /package/dist/{index-DB7t8whN.d.mts → index-CryTAIZM.d.mts} +0 -0
  530. /package/dist/{index-DBGd4WeR.d.mts → index-CuYZJcK3.d.mts} +0 -0
  531. /package/dist/{index-DGsJdI5l.d.mts → index-CuheJfs-.d.mts} +0 -0
  532. /package/dist/{index-DWfPppPU.d.mts → index-D-9tW2r5.d.mts} +0 -0
  533. /package/dist/{index-DeVKzGce.d.mts → index-D9XihFV1.d.mts} +0 -0
  534. /package/dist/{index-DedbSZMv.d.mts → index-Dflz2i1X.d.mts} +0 -0
  535. /package/dist/{index-Jh0C5PIG.d.mts → index-DjOaHFU3.d.mts} +0 -0
  536. /package/dist/{index-NKYLt_R9.d.mts → index-DkrC-i1D.d.mts} +0 -0
  537. /package/dist/{index-Qwqzz3XM.d.mts → index-DrK1_jKY.d.mts} +0 -0
  538. /package/dist/{index-VWno75SQ.d.mts → index-Iujpc9_6.d.mts} +0 -0
  539. /package/dist/{index-fxXoW-qc.d.mts → index-e6k85DKM.d.mts} +0 -0
  540. /package/dist/{index-gVcIuWLd.d.mts → index-gpCH5158.d.mts} +0 -0
  541. /package/dist/{index-zeAhjge4.d.mts → index-irNqT1qQ2.d.mts} +0 -0
  542. /package/dist/{components → patterns}/WizardModal/index.d.mts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Select-yC2t_gZb.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 { semanticColor } from 'design-system/lib/semanticColor';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport inputMixin, { type InputMixinProps, type InputSizes } from 'design-system/mixins/input';\nimport { semanticScrollbar } from 'design-system/mixins/scrollbar';\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\n &${isNotDisabled} {\n cursor: pointer;\n }\n\n ${({ theme, isSelectingPlaceholder, disabled }) =>\n isSelectingPlaceholder &&\n !disabled &&\n css`\n color: ${semanticColor(theme, 'FgSecondary', 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 }) => semanticColor(theme, 'FgSecondary', 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 ${semanticScrollbar}\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 ${({ theme }) => semanticColor(theme, 'BorderSubtle', 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 ${({ theme, disabled }) => css`\n color: ${\n disabled\n ? semanticColor(theme, 'FgDisabled', Color.BorderIconDisabled)\n : semanticColor(theme, 'FgPrimary', Color.BorderIconPrimary)\n };\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}\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={field.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-BoZuM_e9.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 { semanticColor } from 'design-system/lib/semanticColor';\nimport { Z_INDICES } from 'design-system/lib/zindex';\nimport inputMixin, { type InputMixinProps, type InputSizes } from 'design-system/mixins/input';\nimport { semanticScrollbar } from 'design-system/mixins/scrollbar';\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\n &${isNotDisabled} {\n cursor: pointer;\n }\n\n ${({ theme, isSelectingPlaceholder, disabled }) =>\n isSelectingPlaceholder &&\n !disabled &&\n css`\n color: ${semanticColor(theme, 'FgSecondary', 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 }) => semanticColor(theme, 'FgSecondary', 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 ${semanticScrollbar}\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 ${({ theme }) => semanticColor(theme, 'BorderSubtle', 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 ${({ theme, disabled }) => css`\n color: ${\n disabled\n ? semanticColor(theme, 'FgDisabled', Color.BorderIconDisabled)\n : semanticColor(theme, 'FgPrimary', Color.BorderIconPrimary)\n };\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}\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={field.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,5 +1,5 @@
1
- import { l as MenuItemProps } from "./Menu-BekLwm8w.mjs";
2
- import { n as InputSizes, t as InputMixinProps } from "./input-C6cyiqm2.mjs";
1
+ import { l as MenuItemProps } from "./Menu-CUN9bmc1.mjs";
2
+ import { n as InputSizes, t as InputMixinProps } from "./input-DpHBIUpP.mjs";
3
3
  import * as _$react from "react";
4
4
  import { ReactNode } from "react";
5
5
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -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-wqTtGyga.d.mts.map
83
+ //# sourceMappingURL=Select-Cv_9PLOt.d.mts.map
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-wqTtGyga.mjs";
1
+ import { i as SelectProps, n as Select, r as SelectHeader, t as Option } from "./Select-Cv_9PLOt.mjs";
2
2
  export { Option, Select, Select as default, SelectHeader, SelectProps };
@@ -0,0 +1,107 @@
1
+ import { t as ASTNode } from "./types-BYRTxB0a.mjs";
2
+ import { dt as ObjectSchemaMap, n as JsonSchema, st as FunctionJsonSchema } from "./jsonSchema-Bl-qzgrr.mjs";
3
+ import { n as PossibleChainSchema, t as ChainRoot } from "./chainTypes-D8SGRGba.mjs";
4
+ import { a as Mode, i as FunctionFormRenderProps, n as CustomFunctionDetailRenderProps, s as PopoverFooterRenderer, t as CodeChainFunctionPanelRenderProps, u as ValueType } from "./types-Cs6CdZCO.mjs";
5
+ import { n as useChain } from "./useChain-CEsXE2Bx.mjs";
6
+ import { t as ContextMenuExamples } from "./listbox-options-BjOkovND.mjs";
7
+ import { ReactNode } from "react";
8
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
9
+
10
+ //#region components/SmartTextInput/SmartTextInput.d.ts
11
+ interface SmartTextInputProps {
12
+ /**
13
+ * Lock the input to a single value type. When set, transitions between value types are
14
+ * prohibited. null or undefined allows free switching (default behavior).
15
+ */
16
+ valueType?: ValueType;
17
+ /**
18
+ * Restrict which interpolation expression types are available. Applies only when
19
+ * valueType is 'interpolation' or unset. Ignored when valueType is 'method-chain'.
20
+ *
21
+ * - ['handlebars']: only {{...}} expressions
22
+ * - ['code']: only ${...} expressions
23
+ * - ['handlebars', 'code'] or undefined: both (default)
24
+ */
25
+ allowedInterpolationModes?: (Mode.MethodChain | Mode.Code)[];
26
+ chainRoots: ChainRoot[];
27
+ primitivesSchema?: 'none' | 'default' | ObjectSchemaMap;
28
+ platformObjectJsonSchema: ObjectSchemaMap;
29
+ defaultPrimitiveUtilities: ObjectSchemaMap;
30
+ codeChainFunctionSchema?: Record<string, Record<string, FunctionJsonSchema>>;
31
+ getSchemaOptionsOverride?: Parameters<typeof useChain>[0]['getSchemaOptionsOverride'];
32
+ isLoading?: boolean;
33
+ sortOptionsBy?: (option: PossibleChainSchema) => number;
34
+ useChainRootDescriptions?: boolean;
35
+ value?: string;
36
+ onChange?: (value: string, meta: {
37
+ valueType: ValueType;
38
+ schema: JsonSchema | null;
39
+ ast: ASTNode;
40
+ }) => void;
41
+ /**
42
+ * Override the example labels shown in the context menu (Text mode listbox).
43
+ * Each key corresponds to one context menu option. Omitted keys keep their defaults.
44
+ */
45
+ contextMenuExamples?: ContextMenuExamples;
46
+ /**
47
+ * Called when the component's internally-computed validation error changes.
48
+ * Receives a ReactNode (or null when valid) that can be passed directly to
49
+ * a FormField's errorText prop. Covers syntax errors, schema errors, and
50
+ * incomplete-expression errors.
51
+ */
52
+ onValidationChange?: (errorText: ReactNode | null) => void;
53
+ size?: 'sm' | 'md';
54
+ variant?: 'default' | 'table-cell';
55
+ /**
56
+ * Container to render the input's popover into using a portal.
57
+ * - If undefiend, the popover will be portaled into a default element.
58
+ * - If null, the popover will not be portaled and will be rendered in-place.
59
+ */
60
+ portalContainerRef?: HTMLElement | null;
61
+ creatable?: boolean;
62
+ renderFunctionForm?: (props: FunctionFormRenderProps) => ReactNode;
63
+ renderCustomFunctionDetail?: (props: CustomFunctionDetailRenderProps) => ReactNode;
64
+ renderCodeChainFunctionPanel?: (props: CodeChainFunctionPanelRenderProps) => ReactNode;
65
+ canCreateCodeChainFunction?: boolean;
66
+ popoverFooter?: PopoverFooterRenderer;
67
+ id?: string;
68
+ placeholder?: string;
69
+ disabled?: boolean;
70
+ autoFocus?: boolean;
71
+ }
72
+ /**
73
+ * Smart text input for configuring access to data, interpolated strings, or inline code.
74
+ */
75
+ declare const SmartTextInput: ({
76
+ value: passedValue,
77
+ onChange,
78
+ valueType: allowedValueType,
79
+ allowedInterpolationModes,
80
+ chainRoots,
81
+ platformObjectJsonSchema,
82
+ defaultPrimitiveUtilities,
83
+ codeChainFunctionSchema,
84
+ useChainRootDescriptions,
85
+ primitivesSchema,
86
+ isLoading,
87
+ portalContainerRef,
88
+ getSchemaOptionsOverride,
89
+ creatable,
90
+ renderFunctionForm,
91
+ renderCustomFunctionDetail,
92
+ renderCodeChainFunctionPanel,
93
+ canCreateCodeChainFunction,
94
+ sortOptionsBy,
95
+ onValidationChange,
96
+ contextMenuExamples,
97
+ popoverFooter,
98
+ id,
99
+ placeholder,
100
+ disabled,
101
+ size,
102
+ variant,
103
+ ...props
104
+ }: SmartTextInputProps) => _$react_jsx_runtime0.JSX.Element;
105
+ //#endregion
106
+ export { SmartTextInputProps, SmartTextInput as default };
107
+ //# sourceMappingURL=SmartTextInput.d.mts.map
@@ -0,0 +1,18 @@
1
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
2
+
3
+ //#region components/SmartTextInput/SmartTextInputCodeDialog.d.ts
4
+ interface SmartTextInputCodeDialogProps {
5
+ id: string;
6
+ inputRef: React.RefObject<HTMLInputElement>;
7
+ onConfirm: () => void;
8
+ onCancel: () => void;
9
+ }
10
+ declare const SmartTextInputCodeDialog: ({
11
+ id,
12
+ inputRef,
13
+ onConfirm,
14
+ onCancel
15
+ }: SmartTextInputCodeDialogProps) => _$react_jsx_runtime0.JSX.Element;
16
+ //#endregion
17
+ export { SmartTextInputCodeDialog as default };
18
+ //# sourceMappingURL=SmartTextInputCodeDialog.d.mts.map
@@ -0,0 +1,25 @@
1
+ import { o as ImplementsFormField } from "./inputFields-BVDurw3L.mjs";
2
+ import { n as TableBoxField } from "./TableBoxField-Cq9M1upV.mjs";
3
+ import SmartTextInput from "./SmartTextInput.mjs";
4
+ import { CSSProperties, ComponentProps } from "react";
5
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
6
+
7
+ //#region components/SmartTextInput/SmartTextInputField.d.ts
8
+ interface SmartTextInputFieldProps extends ImplementsFormField, Omit<ComponentProps<typeof SmartTextInput>, 'onValidationChange'> {
9
+ formFieldStyle?: CSSProperties;
10
+ /** Marks the input invalid without requiring visible error text. */
11
+ hasError?: boolean;
12
+ /** Renders as a borderless TableBox cell instead of the bordered FormField wrapper. */
13
+ asTableBoxCell?: boolean;
14
+ /** Props for the TableBox cell. */
15
+ tableBoxCellProps?: ComponentProps<typeof TableBoxField.Cell>;
16
+ }
17
+ declare const SmartTextInputForField: (props: ComponentProps<typeof SmartTextInput>) => _$react_jsx_runtime0.JSX.Element;
18
+ /**
19
+ * FormField wrapper for SmartTextInput so callers can use shared
20
+ * helper/warning/error text plumbing without duplicating wrappers.
21
+ */
22
+ declare const SmartTextInputField: (props: SmartTextInputFieldProps) => _$react_jsx_runtime0.JSX.Element;
23
+ //#endregion
24
+ export { SmartTextInputFieldProps, SmartTextInputForField, SmartTextInputField as default };
25
+ //# sourceMappingURL=SmartTextInputField.d.mts.map
@@ -0,0 +1,37 @@
1
+ import { i as StackProps } from "./Stack-XzBzPvSV.mjs";
2
+ import { s as MethodChainNode } from "./methodChainTypes-BVkTI8MX.mjs";
3
+ import { n as PossibleChainSchema, t as ChainRoot } from "./chainTypes-D8SGRGba.mjs";
4
+ import { i as FunctionFormRenderProps, n as CustomFunctionDetailRenderProps, o as OpenCodeChainFunctionPanel, r as FunctionAtCursor } from "./types-Cs6CdZCO.mjs";
5
+ import * as _$styled_components0 from "styled-components";
6
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
7
+
8
+ //#region components/SmartTextInput/SmartTextInputFunctionDialog.d.ts
9
+ declare const StyledDialog: _$styled_components0.StyledComponent<"div", any, StackProps, never>;
10
+ declare const DialogHeading: _$styled_components0.StyledComponent<"div", any, {}, never>;
11
+ interface SmartTextInputFunctionDialogProps {
12
+ id: string;
13
+ inputRef: React.RefObject<HTMLInputElement>;
14
+ functionAtCursor: FunctionAtCursor;
15
+ nextPossibleChains: PossibleChainSchema[];
16
+ chainRoots: ChainRoot[];
17
+ onConfirm: (nodes: MethodChainNode[]) => void;
18
+ onCancel: () => void;
19
+ renderFunctionForm?: (props: FunctionFormRenderProps) => React.ReactNode;
20
+ renderCustomFunctionDetail?: (props: CustomFunctionDetailRenderProps) => React.ReactNode;
21
+ openCodeChainFunctionPanel?: OpenCodeChainFunctionPanel;
22
+ }
23
+ declare const SmartTextInputFunctionDialog: ({
24
+ id,
25
+ inputRef,
26
+ functionAtCursor,
27
+ nextPossibleChains,
28
+ chainRoots,
29
+ onConfirm,
30
+ onCancel,
31
+ renderFunctionForm,
32
+ renderCustomFunctionDetail,
33
+ openCodeChainFunctionPanel
34
+ }: SmartTextInputFunctionDialogProps) => _$react_jsx_runtime0.JSX.Element;
35
+ //#endregion
36
+ export { DialogHeading, StyledDialog, SmartTextInputFunctionDialog as default };
37
+ //# sourceMappingURL=SmartTextInputFunctionDialog.d.mts.map
@@ -0,0 +1,26 @@
1
+ import { a as Mode } from "./types-Cs6CdZCO.mjs";
2
+ import { a as SmartTextInputOption } from "./listbox-options-BjOkovND.mjs";
3
+ import { ListBoxProps } from "react-aria-components";
4
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
+ import { ComboBoxState } from "react-stately";
6
+
7
+ //#region components/SmartTextInput/SmartTextInputListbox.d.ts
8
+ interface SmartTextInputListboxProps {
9
+ comboboxState: ComboBoxState<SmartTextInputOption>;
10
+ listBoxRef: React.RefObject<HTMLDivElement>;
11
+ listBoxProps: ListBoxProps<SmartTextInputOption>;
12
+ mode: Mode;
13
+ isLoading: boolean;
14
+ openCodeChainFunctionPanel?: () => void;
15
+ }
16
+ declare const SmartTextInputListbox: ({
17
+ comboboxState,
18
+ listBoxRef,
19
+ listBoxProps,
20
+ mode,
21
+ isLoading,
22
+ openCodeChainFunctionPanel
23
+ }: SmartTextInputListboxProps) => _$react_jsx_runtime0.JSX.Element;
24
+ //#endregion
25
+ export { SmartTextInputListbox as default };
26
+ //# sourceMappingURL=SmartTextInputListbox.d.mts.map
@@ -0,0 +1,45 @@
1
+ import { a as SmartTextInputOption } from "./listbox-options-BjOkovND.mjs";
2
+ import { ReactNode } from "react";
3
+ import * as _$styled_components0 from "styled-components";
4
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
+ import { ComboBoxState } from "react-stately";
6
+
7
+ //#region components/SmartTextInput/SmartTextInputPopover.d.ts
8
+ type PopoverContainerProps = {
9
+ $isDialog: boolean;
10
+ $position?: 'absolute' | 'relative';
11
+ };
12
+ declare const PopoverContainer: _$styled_components0.StyledComponent<"div", any, PopoverContainerProps, never>;
13
+ interface DialogFocusHandle {
14
+ focusFirst: () => void;
15
+ }
16
+ declare const FooterContainer: _$styled_components0.StyledComponent<"div", any, {}, never>;
17
+ interface SmartTextInputPopoverProps {
18
+ id: string;
19
+ children: ReactNode;
20
+ comboboxState: ComboBoxState<SmartTextInputOption>;
21
+ popoverRef: React.RefObject<HTMLDivElement>;
22
+ inputRef: React.RefObject<HTMLInputElement>;
23
+ variant: 'default' | 'table-cell';
24
+ portalContainerRef?: HTMLElement | null;
25
+ dialogFocusRef?: React.RefObject<DialogFocusHandle>;
26
+ isDialog: boolean;
27
+ onDialogClose: () => void;
28
+ footer?: ReactNode;
29
+ }
30
+ declare const SmartTextInputPopover: ({
31
+ id,
32
+ children,
33
+ comboboxState,
34
+ inputRef,
35
+ popoverRef,
36
+ variant,
37
+ portalContainerRef,
38
+ dialogFocusRef,
39
+ isDialog,
40
+ onDialogClose,
41
+ footer
42
+ }: SmartTextInputPopoverProps) => _$react_jsx_runtime0.JSX.Element | null;
43
+ //#endregion
44
+ export { DialogFocusHandle, FooterContainer, PopoverContainer, SmartTextInputPopover as default };
45
+ //# sourceMappingURL=SmartTextInputPopover.d.mts.map
@@ -36,4 +36,4 @@ const Spinner = ({ variant = "default", size = "sm", srText, className }) => {
36
36
  //#endregion
37
37
  export { Spinner as t };
38
38
 
39
- //# sourceMappingURL=Spinner-BlAg8_OX.mjs.map
39
+ //# sourceMappingURL=Spinner-CarSRiBF.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner-BlAg8_OX.mjs","names":["LoaderIconMedium"],"sources":["../components/Spinner/Spinner.tsx"],"sourcesContent":["import styled, { useTheme } from 'styled-components';\n\nimport { rotate } from '@persona/design-system/variables/keyframes';\nimport { TransitionDuration } from '@persona/design-system/variables/transitions';\nimport { Color } from '@persona/design-tokens';\nimport { LoaderIcon } from '@persona/icons';\nimport { LoaderIcon as LoaderIconMedium } from '@persona/icons/24px';\nimport { semanticColor } from 'design-system/lib/semanticColor';\n\nexport type SpinnerVariant = 'default' | 'inverse';\n\ntype SpinnerSize = 'sm' | 'md';\n\ninterface SpinnerProps {\n /**\n * `default` uses {@link Color.BorderIconPrimary}; `inverse` uses {@link Color.BorderIconInverse}\n * (e.g. on dark backgrounds).\n */\n variant?: SpinnerVariant;\n /** Size of the spinner. Defaults to 'sm'. */\n size?: SpinnerSize;\n /** Screen reader text. Defaults to \"Loading...\". */\n srText?: string;\n className?: string;\n}\n\nconst Container = styled.span`\n line-height: 0;\n display: inline-block;\n`;\n\nconst VisuallyHidden = styled.span`\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n`;\n\nconst IconContainer = styled.span`\n display: inline-block;\n animation: ${rotate} ${TransitionDuration.OneSecond} linear infinite;\n`;\n\nexport const Spinner = ({ variant = 'default', size = 'sm', srText, className }: SpinnerProps) => {\n const theme = useTheme();\n const resolvedColor =\n variant === 'inverse'\n ? semanticColor(theme, 'FgInverse', Color.BorderIconInverse)\n : semanticColor(theme, 'FgPrimary', Color.BorderIconPrimary);\n return (\n <Container role='status' aria-label='loading spinner' className={className}>\n <VisuallyHidden>{srText ?? 'Loading...'}</VisuallyHidden>\n <IconContainer>\n {size === 'sm' ? (\n <LoaderIcon color={resolvedColor} />\n ) : (\n <LoaderIconMedium color={resolvedColor} />\n )}\n </IconContainer>\n </Container>\n );\n};\n\nexport default Spinner;\n"],"mappings":";;;;;;;;;AA0BA,MAAM,YAAY,OAAO,IAAI;;;;AAK7B,MAAM,iBAAiB,OAAO,IAAI;;;;;;;;AASlC,MAAM,gBAAgB,OAAO,IAAI;;eAElB,OAAO,GAAA,SAAgC;;AAGtD,MAAa,WAAW,EAAE,UAAU,WAAW,OAAO,MAAM,QAAQ,gBAA8B;CAChG,MAAM,QAAQ,UAAU;CACxB,MAAM,gBACJ,YAAY,YACR,cAAc,OAAO,aAAa,MAAM,kBAAkB,GAC1D,cAAc,OAAO,aAAa,MAAM,kBAAkB;AAChE,QACE,qBAAC,WAAD;EAAW,MAAK;EAAS,cAAW;EAA6B;YAAjE,CACE,oBAAC,gBAAD,EAAA,UAAiB,UAAU,cAA8B,CAAA,EACzD,oBAAC,eAAD,EAAA,UACG,SAAS,OACR,oBAAC,YAAD,EAAY,OAAO,eAAiB,CAAA,GAEpC,oBAACA,cAAD,EAAkB,OAAO,eAAiB,CAAA,EAE9B,CAAA,CACN"}
1
+ {"version":3,"file":"Spinner-CarSRiBF.mjs","names":["LoaderIconMedium"],"sources":["../components/Spinner/Spinner.tsx"],"sourcesContent":["import styled, { useTheme } from 'styled-components';\n\nimport { rotate } from '@persona/design-system/variables/keyframes';\nimport { TransitionDuration } from '@persona/design-system/variables/transitions';\nimport { Color } from '@persona/design-tokens';\nimport { LoaderIcon } from '@persona/icons';\nimport { LoaderIcon as LoaderIconMedium } from '@persona/icons/24px';\nimport { semanticColor } from 'design-system/lib/semanticColor';\n\nexport type SpinnerVariant = 'default' | 'inverse';\n\ntype SpinnerSize = 'sm' | 'md';\n\ninterface SpinnerProps {\n /**\n * `default` uses {@link Color.BorderIconPrimary}; `inverse` uses {@link Color.BorderIconInverse}\n * (e.g. on dark backgrounds).\n */\n variant?: SpinnerVariant;\n /** Size of the spinner. Defaults to 'sm'. */\n size?: SpinnerSize;\n /** Screen reader text. Defaults to \"Loading...\". */\n srText?: string;\n className?: string;\n}\n\nconst Container = styled.span`\n line-height: 0;\n display: inline-block;\n`;\n\nconst VisuallyHidden = styled.span`\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n`;\n\nconst IconContainer = styled.span`\n display: inline-block;\n animation: ${rotate} ${TransitionDuration.OneSecond} linear infinite;\n`;\n\nexport const Spinner = ({ variant = 'default', size = 'sm', srText, className }: SpinnerProps) => {\n const theme = useTheme();\n const resolvedColor =\n variant === 'inverse'\n ? semanticColor(theme, 'FgInverse', Color.BorderIconInverse)\n : semanticColor(theme, 'FgPrimary', Color.BorderIconPrimary);\n return (\n <Container role='status' aria-label='loading spinner' className={className}>\n <VisuallyHidden>{srText ?? 'Loading...'}</VisuallyHidden>\n <IconContainer>\n {size === 'sm' ? (\n <LoaderIcon color={resolvedColor} />\n ) : (\n <LoaderIconMedium color={resolvedColor} />\n )}\n </IconContainer>\n </Container>\n );\n};\n\nexport default Spinner;\n"],"mappings":";;;;;;;;;AA0BA,MAAM,YAAY,OAAO,IAAI;;;;AAK7B,MAAM,iBAAiB,OAAO,IAAI;;;;;;;;AASlC,MAAM,gBAAgB,OAAO,IAAI;;eAElB,OAAO,GAAA,SAAgC;;AAGtD,MAAa,WAAW,EAAE,UAAU,WAAW,OAAO,MAAM,QAAQ,gBAA8B;CAChG,MAAM,QAAQ,UAAU;CACxB,MAAM,gBACJ,YAAY,YACR,cAAc,OAAO,aAAa,MAAM,kBAAkB,GAC1D,cAAc,OAAO,aAAa,MAAM,kBAAkB;AAChE,QACE,qBAAC,WAAD;EAAW,MAAK;EAAS,cAAW;EAA6B;YAAjE,CACE,oBAAC,gBAAD,EAAA,UAAiB,UAAU,cAA8B,CAAA,EACzD,oBAAC,eAAD,EAAA,UACG,SAAS,OACR,oBAAC,YAAD,EAAY,OAAO,eAAiB,CAAA,GAEpC,oBAACA,cAAD,EAAkB,OAAO,eAAiB,CAAA,EAE9B,CAAA,CACN"}
@@ -37,4 +37,4 @@ const HStack = (props) => /* @__PURE__ */ jsx(Stack, {
37
37
  //#endregion
38
38
  export { Stack as n, HStack as t };
39
39
 
40
- //# sourceMappingURL=Stack-Bkn0TUDe.mjs.map
40
+ //# sourceMappingURL=Stack-CEPzs4Pb.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stack-Bkn0TUDe.mjs","names":[],"sources":["../components/Stack/Stack.tsx"],"sourcesContent":["import type * as CSS from 'csstype';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nexport interface StackProps {\n /**\n * Spacing between items. Defaults to Spacing[3].\n *\n * @defaultValue Spacing[3]\n */\n spacing?: Spacing;\n\n /**\n * Direction of Stack. Defaults to vertical.\n *\n * @defaultValue 'vertical'\n */\n direction?: 'vertical' | 'horizontal';\n\n /**\n * Passed through as `align-items`\n */\n align?: CSS.Property.AlignItems;\n\n /**\n * Passed through as `justify-content`\n */\n justify?: CSS.Property.JustifyContent;\n\n /**\n * Passed through as `flex-wrap`\n */\n wrap?: CSS.Property.FlexWrap;\n\n /**\n * Give each item an equal width/height.\n */\n equal?: boolean;\n\n /**\n * Passed through as `width: 100%`\n */\n fullWidth?: boolean;\n}\n\nexport const Stack = styled('div')<StackProps>`\n display: flex;\n flex-direction: ${({ direction }) => (direction === 'horizontal' ? 'row' : 'column')};\n gap: ${({ spacing }) => spacing || Spacing[2]};\n\n ${({ align }) =>\n align &&\n css`\n align-items: ${align};\n `}\n\n ${({ justify }) =>\n justify &&\n css`\n justify-content: ${justify};\n `}\n\n ${({ wrap }) =>\n wrap &&\n css`\n flex-wrap: ${wrap};\n `}\n\n ${({ equal }) =>\n equal &&\n css`\n > * {\n flex-grow: 1;\n flex-basis: 0;\n }\n `}\n\n ${({ fullWidth }) =>\n fullWidth &&\n css`\n width: 100%;\n `}\n`;\n\nexport default Stack;\n\nexport type HStackProps = ComponentPropsWithoutRef<'div'> & StackProps;\n\nexport const HStack = (props: HStackProps) => <Stack {...props} direction='horizontal' />;\n"],"mappings":";;;;AA+CA,MAAa,QAAQ,OAAO,MAAM;;qBAEb,EAAE,gBAAiB,cAAc,eAAe,QAAQ,SAAU;UAC7E,EAAE,cAAc,WAAW,QAAQ,GAAG;;KAE3C,EAAE,YACH,SACA,GAAG;qBACc,MAAM;MACrB;;KAED,EAAE,cACH,WACA,GAAG;yBACkB,QAAQ;MAC3B;;KAED,EAAE,WACH,QACA,GAAG;mBACY,KAAK;MAClB;;KAED,EAAE,YACH,SACA,GAAG;;;;;MAKD;;KAED,EAAE,gBACH,aACA,GAAG;;MAED;;AAON,MAAa,UAAU,UAAuB,oBAAC,OAAD;CAAO,GAAI;CAAO,WAAU;CAAe,CAAA"}
1
+ {"version":3,"file":"Stack-CEPzs4Pb.mjs","names":[],"sources":["../components/Stack/Stack.tsx"],"sourcesContent":["import type * as CSS from 'csstype';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nexport interface StackProps {\n /**\n * Spacing between items. Defaults to Spacing[3].\n *\n * @defaultValue Spacing[3]\n */\n spacing?: Spacing;\n\n /**\n * Direction of Stack. Defaults to vertical.\n *\n * @defaultValue 'vertical'\n */\n direction?: 'vertical' | 'horizontal';\n\n /**\n * Passed through as `align-items`\n */\n align?: CSS.Property.AlignItems;\n\n /**\n * Passed through as `justify-content`\n */\n justify?: CSS.Property.JustifyContent;\n\n /**\n * Passed through as `flex-wrap`\n */\n wrap?: CSS.Property.FlexWrap;\n\n /**\n * Give each item an equal width/height.\n */\n equal?: boolean;\n\n /**\n * Passed through as `width: 100%`\n */\n fullWidth?: boolean;\n}\n\nexport const Stack = styled('div')<StackProps>`\n display: flex;\n flex-direction: ${({ direction }) => (direction === 'horizontal' ? 'row' : 'column')};\n gap: ${({ spacing }) => spacing || Spacing[2]};\n\n ${({ align }) =>\n align &&\n css`\n align-items: ${align};\n `}\n\n ${({ justify }) =>\n justify &&\n css`\n justify-content: ${justify};\n `}\n\n ${({ wrap }) =>\n wrap &&\n css`\n flex-wrap: ${wrap};\n `}\n\n ${({ equal }) =>\n equal &&\n css`\n > * {\n flex-grow: 1;\n flex-basis: 0;\n }\n `}\n\n ${({ fullWidth }) =>\n fullWidth &&\n css`\n width: 100%;\n `}\n`;\n\nexport default Stack;\n\nexport type HStackProps = ComponentPropsWithoutRef<'div'> & StackProps;\n\nexport const HStack = (props: HStackProps) => <Stack {...props} direction='horizontal' />;\n"],"mappings":";;;;AA+CA,MAAa,QAAQ,OAAO,MAAM;;qBAEb,EAAE,gBAAiB,cAAc,eAAe,QAAQ,SAAU;UAC7E,EAAE,cAAc,WAAW,QAAQ,GAAG;;KAE3C,EAAE,YACH,SACA,GAAG;qBACc,MAAM;MACrB;;KAED,EAAE,cACH,WACA,GAAG;yBACkB,QAAQ;MAC3B;;KAED,EAAE,WACH,QACA,GAAG;mBACY,KAAK;MAClB;;KAED,EAAE,YACH,SACA,GAAG;;;;;MAKD;;KAED,EAAE,gBACH,aACA,GAAG;;MAED;;AAON,MAAa,UAAU,UAAuB,oBAAC,OAAD;CAAO,GAAI;CAAO,WAAU;CAAe,CAAA"}
@@ -44,4 +44,4 @@ type HStackProps = ComponentPropsWithoutRef<'div'> & StackProps;
44
44
  declare const HStack: (props: HStackProps) => _$react_jsx_runtime0.JSX.Element;
45
45
  //#endregion
46
46
  export { StackProps as i, HStackProps as n, Stack as r, HStack as t };
47
- //# sourceMappingURL=Stack-CYqjBXe8.d.mts.map
47
+ //# sourceMappingURL=Stack-XzBzPvSV.d.mts.map
package/dist/Stack.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { i as StackProps, n as HStackProps, r as Stack, t as HStack } from "./Stack-CYqjBXe8.mjs";
1
+ import { i as StackProps, n as HStackProps, r as Stack, t as HStack } from "./Stack-XzBzPvSV.mjs";
2
2
  export { HStack, HStackProps, Stack, Stack as default, StackProps };
@@ -312,4 +312,4 @@ const StatusIndicator = ({ status, type, background = "filled", showIcon = true,
312
312
  //#endregion
313
313
  export { StatusIndicator as n, STATUSES as t };
314
314
 
315
- //# sourceMappingURL=StatusIndicator-DT2zNbkp.mjs.map
315
+ //# sourceMappingURL=StatusIndicator-bEnMWV_S.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"StatusIndicator-DT2zNbkp.mjs","names":[],"sources":["../components/StatusIndicator/StatusIndicator.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport {\n CircleCheckFillIcon,\n CircleFillIcon,\n CircleHalfIcon,\n CircleMinusFillIcon,\n CircleNullIcon,\n CircleSlashIcon,\n WarningFillIcon,\n} from '@persona/icons/12px';\nimport { withAlpha } from 'design-system/lib/color';\nimport { type MaybeSemanticTheme, semanticTokens } from 'design-system/lib/semanticColor';\nimport { TruncatedText } from 'design-system/lib/TruncatedText';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport type { SemanticTokens } from 'design-system/variables/semantic';\n\nexport type StatusType =\n | 'neutral'\n | 'attention'\n | 'warning'\n | 'critical'\n | 'success'\n | 'feature'\n | 'informational'\n | 'miscellaneous';\nexport type BackgroundType = 'filled' | 'none';\n\n/**\n * Narrow set of status presets — one value per type+icon combination.\n * Override color with `type` or icon with `leadingIcon` when needed.\n */\nexport type Status =\n | 'open'\n | 'pending'\n | 'completed'\n | 'active'\n | 'failed'\n | 'needs_review'\n | 'canceled'\n | 'archived';\n\nconst STATUS_CONFIG: Record<Status, { type: StatusType; icon: ReactNode }> = {\n open: { type: 'neutral', icon: <CircleNullIcon /> },\n pending: { type: 'neutral', icon: <CircleHalfIcon /> },\n completed: { type: 'success', icon: <CircleCheckFillIcon /> },\n active: { type: 'success', icon: <CircleFillIcon /> },\n failed: { type: 'critical', icon: <CircleSlashIcon /> },\n needs_review: { type: 'warning', icon: <WarningFillIcon /> },\n canceled: { type: 'attention', icon: <CircleSlashIcon /> },\n archived: { type: 'neutral', icon: <CircleMinusFillIcon /> },\n};\n\n/** All supported `status` preset keys, derived from the config map. */\nexport const STATUSES = Object.keys(STATUS_CONFIG) as Status[];\n\nexport interface StatusIndicatorProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Preset that sets a default semantic type and icon.\n * Explicit `type` and `leadingIcon` override the preset.\n */\n status?: Status;\n\n /**\n * The semantic status type to display. Overrides `status` when both are set.\n */\n type?: StatusType;\n\n /**\n * Whether to show filled background or transparent\n */\n background?: BackgroundType;\n\n /**\n * Whether to show the icon. When false, displays label-only variant\n * @default true\n */\n showIcon?: boolean;\n\n /**\n * Optional custom icon to replace the default icon indicator (12px recommended)\n * - undefined (default): Uses `status` icon when set, otherwise CircleNullIcon\n * - null: Hides the icon completely\n * - ReactNode: Shows the provided custom icon\n * Note: showIcon must be true for this to take effect\n */\n leadingIcon?: ReactNode | null;\n\n /**\n * Truncate the label with an ellipsis instead of letting it overflow its container. Adds a\n * title tooltip with the full text when it doesn't fit.\n * @default false\n */\n truncate?: boolean;\n\n /**\n * Render the label exactly as given instead of capitalizing each word. Use for labels that are\n * authored outside the product, where the casing is not ours to change.\n * @default false\n */\n preserveCase?: boolean;\n\n /**\n * The text label to display\n */\n children?: ReactNode;\n}\n\ninterface StatusColors {\n background: string;\n text: string;\n icon: string;\n}\n\nconst FILLED_STATUS_COLORS: Record<StatusType, StatusColors> = {\n neutral: {\n background: Color.BackgroundStatusIndicatorDefault,\n text: Color.TextStatusIndicatorDefault,\n icon: Color.BorderIconLabelGrey,\n },\n attention: {\n background: Color.BackgroundStatusIndicatorAttention,\n text: Color.TextStatusIndicatorAttention,\n icon: Color.BorderIconLabelYellow,\n },\n warning: {\n background: Color.BackgroundStatusIndicatorWarning,\n text: Color.TextStatusIndicatorWarning,\n icon: Color.BorderIconLabelOrange,\n },\n critical: {\n background: Color.BackgroundStatusIndicatorCritical,\n text: Color.TextStatusIndicatorCritical,\n icon: Color.BorderIconLabelRed,\n },\n success: {\n background: Color.BackgroundStatusIndicatorSuccess,\n text: Color.TextStatusIndicatorSuccess,\n icon: Color.BorderIconLabelGreen,\n },\n feature: {\n background: Color.BackgroundStatusIndicatorFeature,\n text: Color.TextStatusIndicatorFeature,\n icon: Color.BorderIconLabelPurple,\n },\n informational: {\n background: Color.BackgroundStatusIndicatorInformational,\n text: Color.TextStatusIndicatorInformational,\n icon: Color.BorderIconLabelBlue,\n },\n miscellaneous: {\n background: Color.BackgroundStatusIndicatorMiscellaneous,\n text: Color.TextStatusIndicatorMiscellaneous,\n icon: Color.BorderIconLabelTeal,\n },\n};\n\nconst TRANSPARENT_STATUS_COLORS: Record<StatusType, StatusColors> = {\n neutral: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconSecondary,\n },\n attention: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconWarning,\n },\n warning: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconWarning,\n },\n critical: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconDanger,\n },\n success: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconSuccess,\n },\n feature: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconActive,\n },\n informational: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconLabelBlue,\n },\n miscellaneous: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconLabelTeal,\n },\n};\n\nconst semanticFilledStatusColors = (t: SemanticTokens): Record<StatusType, StatusColors> => ({\n neutral: { background: t.StatusNeutral, text: t.FgPrimary, icon: t.FgPrimary },\n attention: {\n background: withAlpha(t.StatusHighlight, t.Opacity15),\n text: t.FgHighlight,\n icon: t.FgHighlight,\n },\n warning: {\n background: withAlpha(t.StatusWarning, t.Opacity15),\n text: t.FgWarning2,\n icon: t.FgWarning2,\n },\n critical: {\n background: withAlpha(t.StatusDanger3, t.Opacity15),\n text: t.FgDanger2,\n icon: t.FgDanger2,\n },\n success: {\n background: withAlpha(t.StatusSuccess2, t.Opacity15),\n text: t.FgSuccess,\n icon: t.FgSuccess,\n },\n feature: {\n background: withAlpha(t.StatusFeature, t.Opacity25),\n text: t.FgFeature,\n icon: t.FgFeature,\n },\n informational: {\n background: withAlpha(t.StatusInfo2, t.Opacity25),\n text: t.FgInfo,\n icon: t.FgInfo,\n },\n miscellaneous: {\n background: withAlpha(t.StatusMisc, t.Opacity15),\n text: t.FgMisc,\n icon: t.FgMisc,\n },\n});\n\nconst semanticTransparentStatusColors = (t: SemanticTokens): Record<StatusType, StatusColors> => ({\n neutral: { background: 'transparent', text: t.FgPrimary, icon: t.FgSecondary },\n attention: { background: 'transparent', text: t.FgPrimary, icon: t.FeedbackHighlight1 },\n warning: { background: 'transparent', text: t.FgPrimary, icon: t.FgWarning1 },\n critical: { background: 'transparent', text: t.FgPrimary, icon: t.FgDanger1 },\n success: { background: 'transparent', text: t.FgPrimary, icon: t.FgSuccess },\n feature: { background: 'transparent', text: t.FgPrimary, icon: t.FgAccent },\n informational: { background: 'transparent', text: t.FgPrimary, icon: t.FgInfo },\n miscellaneous: { background: 'transparent', text: t.FgPrimary, icon: t.FgMisc },\n});\n\nconst semanticStatusColorCache = new WeakMap<\n SemanticTokens,\n Record<BackgroundType, Record<StatusType, StatusColors>>\n>();\n\nconst semanticStatusColors = (tokens: SemanticTokens) => {\n let colors = semanticStatusColorCache.get(tokens);\n if (!colors) {\n colors = {\n filled: semanticFilledStatusColors(tokens),\n none: semanticTransparentStatusColors(tokens),\n };\n semanticStatusColorCache.set(tokens, colors);\n }\n return colors;\n};\n\nconst statusColors = (theme: MaybeSemanticTheme, background: BackgroundType) => {\n const tokens = semanticTokens(theme);\n if (tokens) {\n return semanticStatusColors(tokens)[background];\n }\n return background === 'filled' ? FILLED_STATUS_COLORS : TRANSPARENT_STATUS_COLORS;\n};\n\nconst Label = styled.div<{\n $type: StatusType;\n $background: BackgroundType;\n $truncate: boolean;\n $preserveCase: boolean;\n}>`\n ${paragraphMixins.sm}\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex-shrink: ${({ $truncate }) => ($truncate ? 1 : 0)};\n min-width: ${({ $truncate }) => ($truncate ? '0' : 'auto')};\n /* Line box hugs the font so pill height is driven by padding alone, and clipping an overflowing\n label can't cut into descenders. Matches Sticker. */\n line-height: 1;\n white-space: nowrap;\n text-transform: ${({ $preserveCase }) => ($preserveCase ? 'none' : 'capitalize')};\n /* Slight optical centering adjustment */\n transform: translateY(0.5px);\n color: ${({ theme, $type, $background }) => statusColors(theme, $background)[$type].text};\n`;\n\nconst IconContainer = styled.span<{ $type: StatusType; $background: BackgroundType }>`\n line-height: 0;\n color: ${({ theme, $type, $background }) => statusColors(theme, $background)[$type].icon};\n`;\n\nconst LabelContainer = styled.div<{ $hasIcon: boolean; $truncate: boolean }>`\n display: flex;\n align-items: center;\n gap: ${Spacing[1]};\n padding: ${({ $hasIcon }) =>\n `${Spacing[1]} ${Spacing[2]} ${Spacing[1]} ${$hasIcon ? Spacing[1] : Spacing[2]}`};\n position: relative;\n flex-shrink: ${({ $truncate }) => ($truncate ? 1 : 0)};\n min-width: ${({ $truncate }) => ($truncate ? '0' : 'auto')};\n`;\n\nconst StyledStatusIndicator = styled.div<{\n $type: StatusType;\n $background: BackgroundType;\n $truncate: boolean;\n}>`\n display: inline-flex;\n align-items: center;\n border-radius: ${BorderRadius.Xl};\n width: fit-content;\n max-width: ${({ $truncate }) => ($truncate ? '100%' : 'none')};\n\n ${({ theme, $type, $background }) => css`\n background-color: ${statusColors(theme, $background)[$type].background};\n `}\n`;\n\n/**\n * StatusIndicator displays semantic status information with a colored icon and label.\n * Supports both filled backgrounds and transparent styles.\n *\n * @example\n * ```tsx\n * <StatusIndicator status=\"active\">Active</StatusIndicator>\n * <StatusIndicator type=\"success\" background=\"filled\">Approved</StatusIndicator>\n * <StatusIndicator type=\"critical\" background=\"none\">Failed</StatusIndicator>\n * ```\n */\nexport const StatusIndicator = ({\n status,\n type,\n background = 'filled',\n showIcon = true,\n leadingIcon,\n truncate = false,\n preserveCase = false,\n children,\n ...props\n}: StatusIndicatorProps) => {\n const resolvedType = type ?? (status != null ? STATUS_CONFIG[status].type : 'neutral');\n\n // Determine which icon to show:\n // - showIcon=false with background='filled': label-only variant (no icon)\n // - leadingIcon set (including null): explicit override\n // - status set: use preset icon\n // - otherwise: default CircleNullIcon\n // - background='none' always shows icon (showIcon is ignored for none background)\n let iconToRender;\n if (!showIcon && background === 'filled') {\n iconToRender = null;\n } else if (typeof leadingIcon !== 'undefined') {\n iconToRender = leadingIcon;\n } else if (status != null) {\n iconToRender = STATUS_CONFIG[status].icon;\n } else {\n iconToRender = <CircleNullIcon />;\n }\n const hasIcon = iconToRender != null;\n\n return (\n <StyledStatusIndicator\n $type={resolvedType}\n $background={background}\n $truncate={truncate}\n {...props}\n >\n <LabelContainer $hasIcon={hasIcon} $truncate={truncate}>\n {hasIcon && (\n <IconContainer $type={resolvedType} $background={background}>\n {iconToRender}\n </IconContainer>\n )}\n <Label\n $type={resolvedType}\n $background={background}\n $truncate={truncate}\n $preserveCase={preserveCase}\n >\n {truncate ? <TruncatedText>{children}</TruncatedText> : children}\n </Label>\n </LabelContainer>\n </StyledStatusIndicator>\n );\n};\n\nexport default StatusIndicator;\n"],"mappings":"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"}
1
+ {"version":3,"file":"StatusIndicator-bEnMWV_S.mjs","names":[],"sources":["../components/StatusIndicator/StatusIndicator.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport {\n CircleCheckFillIcon,\n CircleFillIcon,\n CircleHalfIcon,\n CircleMinusFillIcon,\n CircleNullIcon,\n CircleSlashIcon,\n WarningFillIcon,\n} from '@persona/icons/12px';\nimport { withAlpha } from 'design-system/lib/color';\nimport { type MaybeSemanticTheme, semanticTokens } from 'design-system/lib/semanticColor';\nimport { TruncatedText } from 'design-system/lib/TruncatedText';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport type { SemanticTokens } from 'design-system/variables/semantic';\n\nexport type StatusType =\n | 'neutral'\n | 'attention'\n | 'warning'\n | 'critical'\n | 'success'\n | 'feature'\n | 'informational'\n | 'miscellaneous';\nexport type BackgroundType = 'filled' | 'none';\n\n/**\n * Narrow set of status presets — one value per type+icon combination.\n * Override color with `type` or icon with `leadingIcon` when needed.\n */\nexport type Status =\n | 'open'\n | 'pending'\n | 'completed'\n | 'active'\n | 'failed'\n | 'needs_review'\n | 'canceled'\n | 'archived';\n\nconst STATUS_CONFIG: Record<Status, { type: StatusType; icon: ReactNode }> = {\n open: { type: 'neutral', icon: <CircleNullIcon /> },\n pending: { type: 'neutral', icon: <CircleHalfIcon /> },\n completed: { type: 'success', icon: <CircleCheckFillIcon /> },\n active: { type: 'success', icon: <CircleFillIcon /> },\n failed: { type: 'critical', icon: <CircleSlashIcon /> },\n needs_review: { type: 'warning', icon: <WarningFillIcon /> },\n canceled: { type: 'attention', icon: <CircleSlashIcon /> },\n archived: { type: 'neutral', icon: <CircleMinusFillIcon /> },\n};\n\n/** All supported `status` preset keys, derived from the config map. */\nexport const STATUSES = Object.keys(STATUS_CONFIG) as Status[];\n\nexport interface StatusIndicatorProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Preset that sets a default semantic type and icon.\n * Explicit `type` and `leadingIcon` override the preset.\n */\n status?: Status;\n\n /**\n * The semantic status type to display. Overrides `status` when both are set.\n */\n type?: StatusType;\n\n /**\n * Whether to show filled background or transparent\n */\n background?: BackgroundType;\n\n /**\n * Whether to show the icon. When false, displays label-only variant\n * @default true\n */\n showIcon?: boolean;\n\n /**\n * Optional custom icon to replace the default icon indicator (12px recommended)\n * - undefined (default): Uses `status` icon when set, otherwise CircleNullIcon\n * - null: Hides the icon completely\n * - ReactNode: Shows the provided custom icon\n * Note: showIcon must be true for this to take effect\n */\n leadingIcon?: ReactNode | null;\n\n /**\n * Truncate the label with an ellipsis instead of letting it overflow its container. Adds a\n * title tooltip with the full text when it doesn't fit.\n * @default false\n */\n truncate?: boolean;\n\n /**\n * Render the label exactly as given instead of capitalizing each word. Use for labels that are\n * authored outside the product, where the casing is not ours to change.\n * @default false\n */\n preserveCase?: boolean;\n\n /**\n * The text label to display\n */\n children?: ReactNode;\n}\n\ninterface StatusColors {\n background: string;\n text: string;\n icon: string;\n}\n\nconst FILLED_STATUS_COLORS: Record<StatusType, StatusColors> = {\n neutral: {\n background: Color.BackgroundStatusIndicatorDefault,\n text: Color.TextStatusIndicatorDefault,\n icon: Color.BorderIconLabelGrey,\n },\n attention: {\n background: Color.BackgroundStatusIndicatorAttention,\n text: Color.TextStatusIndicatorAttention,\n icon: Color.BorderIconLabelYellow,\n },\n warning: {\n background: Color.BackgroundStatusIndicatorWarning,\n text: Color.TextStatusIndicatorWarning,\n icon: Color.BorderIconLabelOrange,\n },\n critical: {\n background: Color.BackgroundStatusIndicatorCritical,\n text: Color.TextStatusIndicatorCritical,\n icon: Color.BorderIconLabelRed,\n },\n success: {\n background: Color.BackgroundStatusIndicatorSuccess,\n text: Color.TextStatusIndicatorSuccess,\n icon: Color.BorderIconLabelGreen,\n },\n feature: {\n background: Color.BackgroundStatusIndicatorFeature,\n text: Color.TextStatusIndicatorFeature,\n icon: Color.BorderIconLabelPurple,\n },\n informational: {\n background: Color.BackgroundStatusIndicatorInformational,\n text: Color.TextStatusIndicatorInformational,\n icon: Color.BorderIconLabelBlue,\n },\n miscellaneous: {\n background: Color.BackgroundStatusIndicatorMiscellaneous,\n text: Color.TextStatusIndicatorMiscellaneous,\n icon: Color.BorderIconLabelTeal,\n },\n};\n\nconst TRANSPARENT_STATUS_COLORS: Record<StatusType, StatusColors> = {\n neutral: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconSecondary,\n },\n attention: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconWarning,\n },\n warning: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconWarning,\n },\n critical: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconDanger,\n },\n success: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconSuccess,\n },\n feature: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconActive,\n },\n informational: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconLabelBlue,\n },\n miscellaneous: {\n background: 'transparent',\n text: Color.TextPrimary,\n icon: Color.BorderIconLabelTeal,\n },\n};\n\nconst semanticFilledStatusColors = (t: SemanticTokens): Record<StatusType, StatusColors> => ({\n neutral: { background: t.StatusNeutral, text: t.FgPrimary, icon: t.FgPrimary },\n attention: {\n background: withAlpha(t.StatusHighlight, t.Opacity15),\n text: t.FgHighlight,\n icon: t.FgHighlight,\n },\n warning: {\n background: withAlpha(t.StatusWarning, t.Opacity15),\n text: t.FgWarning2,\n icon: t.FgWarning2,\n },\n critical: {\n background: withAlpha(t.StatusDanger3, t.Opacity15),\n text: t.FgDanger2,\n icon: t.FgDanger2,\n },\n success: {\n background: withAlpha(t.StatusSuccess2, t.Opacity15),\n text: t.FgSuccess,\n icon: t.FgSuccess,\n },\n feature: {\n background: withAlpha(t.StatusFeature, t.Opacity25),\n text: t.FgFeature,\n icon: t.FgFeature,\n },\n informational: {\n background: withAlpha(t.StatusInfo2, t.Opacity25),\n text: t.FgInfo,\n icon: t.FgInfo,\n },\n miscellaneous: {\n background: withAlpha(t.StatusMisc, t.Opacity15),\n text: t.FgMisc,\n icon: t.FgMisc,\n },\n});\n\nconst semanticTransparentStatusColors = (t: SemanticTokens): Record<StatusType, StatusColors> => ({\n neutral: { background: 'transparent', text: t.FgPrimary, icon: t.FgSecondary },\n attention: { background: 'transparent', text: t.FgPrimary, icon: t.FeedbackHighlight1 },\n warning: { background: 'transparent', text: t.FgPrimary, icon: t.FgWarning1 },\n critical: { background: 'transparent', text: t.FgPrimary, icon: t.FgDanger1 },\n success: { background: 'transparent', text: t.FgPrimary, icon: t.FgSuccess },\n feature: { background: 'transparent', text: t.FgPrimary, icon: t.FgAccent },\n informational: { background: 'transparent', text: t.FgPrimary, icon: t.FgInfo },\n miscellaneous: { background: 'transparent', text: t.FgPrimary, icon: t.FgMisc },\n});\n\nconst semanticStatusColorCache = new WeakMap<\n SemanticTokens,\n Record<BackgroundType, Record<StatusType, StatusColors>>\n>();\n\nconst semanticStatusColors = (tokens: SemanticTokens) => {\n let colors = semanticStatusColorCache.get(tokens);\n if (!colors) {\n colors = {\n filled: semanticFilledStatusColors(tokens),\n none: semanticTransparentStatusColors(tokens),\n };\n semanticStatusColorCache.set(tokens, colors);\n }\n return colors;\n};\n\nconst statusColors = (theme: MaybeSemanticTheme, background: BackgroundType) => {\n const tokens = semanticTokens(theme);\n if (tokens) {\n return semanticStatusColors(tokens)[background];\n }\n return background === 'filled' ? FILLED_STATUS_COLORS : TRANSPARENT_STATUS_COLORS;\n};\n\nconst Label = styled.div<{\n $type: StatusType;\n $background: BackgroundType;\n $truncate: boolean;\n $preserveCase: boolean;\n}>`\n ${paragraphMixins.sm}\n display: flex;\n flex-direction: column;\n justify-content: center;\n flex-shrink: ${({ $truncate }) => ($truncate ? 1 : 0)};\n min-width: ${({ $truncate }) => ($truncate ? '0' : 'auto')};\n /* Line box hugs the font so pill height is driven by padding alone, and clipping an overflowing\n label can't cut into descenders. Matches Sticker. */\n line-height: 1;\n white-space: nowrap;\n text-transform: ${({ $preserveCase }) => ($preserveCase ? 'none' : 'capitalize')};\n /* Slight optical centering adjustment */\n transform: translateY(0.5px);\n color: ${({ theme, $type, $background }) => statusColors(theme, $background)[$type].text};\n`;\n\nconst IconContainer = styled.span<{ $type: StatusType; $background: BackgroundType }>`\n line-height: 0;\n color: ${({ theme, $type, $background }) => statusColors(theme, $background)[$type].icon};\n`;\n\nconst LabelContainer = styled.div<{ $hasIcon: boolean; $truncate: boolean }>`\n display: flex;\n align-items: center;\n gap: ${Spacing[1]};\n padding: ${({ $hasIcon }) =>\n `${Spacing[1]} ${Spacing[2]} ${Spacing[1]} ${$hasIcon ? Spacing[1] : Spacing[2]}`};\n position: relative;\n flex-shrink: ${({ $truncate }) => ($truncate ? 1 : 0)};\n min-width: ${({ $truncate }) => ($truncate ? '0' : 'auto')};\n`;\n\nconst StyledStatusIndicator = styled.div<{\n $type: StatusType;\n $background: BackgroundType;\n $truncate: boolean;\n}>`\n display: inline-flex;\n align-items: center;\n border-radius: ${BorderRadius.Xl};\n width: fit-content;\n max-width: ${({ $truncate }) => ($truncate ? '100%' : 'none')};\n\n ${({ theme, $type, $background }) => css`\n background-color: ${statusColors(theme, $background)[$type].background};\n `}\n`;\n\n/**\n * StatusIndicator displays semantic status information with a colored icon and label.\n * Supports both filled backgrounds and transparent styles.\n *\n * @example\n * ```tsx\n * <StatusIndicator status=\"active\">Active</StatusIndicator>\n * <StatusIndicator type=\"success\" background=\"filled\">Approved</StatusIndicator>\n * <StatusIndicator type=\"critical\" background=\"none\">Failed</StatusIndicator>\n * ```\n */\nexport const StatusIndicator = ({\n status,\n type,\n background = 'filled',\n showIcon = true,\n leadingIcon,\n truncate = false,\n preserveCase = false,\n children,\n ...props\n}: StatusIndicatorProps) => {\n const resolvedType = type ?? (status != null ? STATUS_CONFIG[status].type : 'neutral');\n\n // Determine which icon to show:\n // - showIcon=false with background='filled': label-only variant (no icon)\n // - leadingIcon set (including null): explicit override\n // - status set: use preset icon\n // - otherwise: default CircleNullIcon\n // - background='none' always shows icon (showIcon is ignored for none background)\n let iconToRender;\n if (!showIcon && background === 'filled') {\n iconToRender = null;\n } else if (typeof leadingIcon !== 'undefined') {\n iconToRender = leadingIcon;\n } else if (status != null) {\n iconToRender = STATUS_CONFIG[status].icon;\n } else {\n iconToRender = <CircleNullIcon />;\n }\n const hasIcon = iconToRender != null;\n\n return (\n <StyledStatusIndicator\n $type={resolvedType}\n $background={background}\n $truncate={truncate}\n {...props}\n >\n <LabelContainer $hasIcon={hasIcon} $truncate={truncate}>\n {hasIcon && (\n <IconContainer $type={resolvedType} $background={background}>\n {iconToRender}\n </IconContainer>\n )}\n <Label\n $type={resolvedType}\n $background={background}\n $truncate={truncate}\n $preserveCase={preserveCase}\n >\n {truncate ? <TruncatedText>{children}</TruncatedText> : children}\n </Label>\n </LabelContainer>\n </StyledStatusIndicator>\n );\n};\n\nexport default StatusIndicator;\n"],"mappings":"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"}
@@ -4,8 +4,8 @@ import { semanticColor, semanticTokens } from "./lib/semanticColor.mjs";
4
4
  import { paragraphMixins } from "./mixins/text.mjs";
5
5
  import { withAlpha } from "./lib/color.mjs";
6
6
  import { isDisabled, isFocusedVisible, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
7
- import { n as Stack } from "./Stack-Bkn0TUDe.mjs";
8
- import { t as IconButton } from "./IconButton-CCLMYWVN.mjs";
7
+ import { n as Stack } from "./Stack-CEPzs4Pb.mjs";
8
+ import { t as IconButton } from "./IconButton-BHFCjvzs.mjs";
9
9
  import { BorderRadius, Color, Spacing } from "@persona/design-tokens";
10
10
  import { jsx, jsxs } from "react/jsx-runtime";
11
11
  import { XIcon } from "@persona/icons/12px";
@@ -352,4 +352,4 @@ const Sticker = ({ variant, icon, children, onDismiss, disabled, dismissButtonPr
352
352
  //#endregion
353
353
  export { StyledTruncatedText as a, StickerContentContainer as i, Sticker as n, StickerContainer as r, STICKER_COLOR_CONFIG as t };
354
354
 
355
- //# sourceMappingURL=Sticker-BLbgJxcH.mjs.map
355
+ //# sourceMappingURL=Sticker-B-fU8lgu.mjs.map