@persona/design-system 0.7.2 → 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 (592) hide show
  1. package/CHANGELOG.md +273 -0
  2. package/dist/Accordion.d.mts +1 -1
  3. package/dist/AccordionItem.d.mts +1 -1
  4. package/dist/{Action-Cyo6KCsS.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-BD0Ut46g.mjs → Badge-D-5tbZDw.mjs} +2 -2
  11. package/dist/{Badge-BD0Ut46g.mjs.map → Badge-D-5tbZDw.mjs.map} +1 -1
  12. package/dist/BooleanValueControl.d.mts +1 -1
  13. package/dist/{Breadcrumb-CYXkrKXl.d.mts → Breadcrumb-BADja8tn.d.mts} +1 -1
  14. package/dist/Breadcrumb.d.mts +1 -1
  15. package/dist/{Breadcrumbs-CrXfUK1V.mjs → Breadcrumbs-CNpM0aXm.mjs} +5 -5
  16. package/dist/{Breadcrumbs-CrXfUK1V.mjs.map → Breadcrumbs-CNpM0aXm.mjs.map} +1 -1
  17. package/dist/{Breadcrumbs-CP7eUYUy.d.mts → Breadcrumbs-CxP7ktfM.d.mts} +2 -2
  18. package/dist/Breadcrumbs.d.mts +1 -1
  19. package/dist/{Button-Dhiund3f.d.mts → Button-CnswHEJ2.d.mts} +4 -4
  20. package/dist/Button.d.mts +1 -1
  21. package/dist/{Calendar-CMeIZ0BO.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-DCYB_mtR.d.mts → Card-Bp6L08H4.d.mts} +3 -3
  25. package/dist/Card.d.mts +1 -1
  26. package/dist/{CardV2-M3o4BELp.mjs → CardV2-DEW6mw_o.mjs} +9 -7
  27. package/dist/{CardV2-M3o4BELp.mjs.map → CardV2-DEW6mw_o.mjs.map} +1 -1
  28. package/dist/{Checkbox-fWj7GkBl.d.mts → Checkbox-DUXws1Os.d.mts} +1 -1
  29. package/dist/{Checkbox-AjL7ucoR.mjs → Checkbox-GibG2pg5.mjs} +3 -3
  30. package/dist/{Checkbox-AjL7ucoR.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-C2b9u955.mjs → Combobox-CCDoNF9Y.mjs} +23 -10
  36. package/dist/Combobox-CCDoNF9Y.mjs.map +1 -0
  37. package/dist/{Combobox-CC-Osr57.d.mts → Combobox-CnxmKUQf.d.mts} +3 -3
  38. package/dist/Combobox.d.mts +2 -2
  39. package/dist/{ComboboxBase-Evo0FRxP.d.mts → ComboboxBase-CtNrsPO9.d.mts} +8 -5
  40. package/dist/ComboboxBase.d.mts +1 -1
  41. package/dist/{ComboboxMultiSelect-CvAc0FT3.d.mts → ComboboxMultiSelect-CMH6iVu4.d.mts} +2 -2
  42. package/dist/ComboboxMultiSelect.d.mts +1 -1
  43. package/dist/{ComboboxSingleSelect-CBm7x0oh.d.mts → ComboboxSingleSelect-BLPbLmMY.d.mts} +4 -4
  44. package/dist/ComboboxSingleSelect.d.mts +1 -1
  45. package/dist/{CompactBar-D_2qMK4y.d.mts → CompactBar-BwKIIlWz.d.mts} +4 -4
  46. package/dist/CompactBar.d.mts +1 -1
  47. package/dist/{ConfigFormGroup-Cz7GeTYd.mjs → ConfigFormGroup-BQXN2Pgj.mjs} +2 -2
  48. package/dist/{ConfigFormGroup-Cz7GeTYd.mjs.map → ConfigFormGroup-BQXN2Pgj.mjs.map} +1 -1
  49. package/dist/{ControlBar-B7j9sOr9.d.mts → ControlBar-BJUY6GOX.d.mts} +7 -2
  50. package/dist/ControlBar.d.mts +1 -1
  51. package/dist/DataTable.d.mts +4 -3
  52. package/dist/{DateField-BamAk9_w.d.mts → DateField-BojOHfrv.d.mts} +2 -2
  53. package/dist/DateField.d.mts +1 -1
  54. package/dist/{DatePicker-C3xNSkPG.d.mts → DatePicker-BHVx_i_F.d.mts} +2 -2
  55. package/dist/{DatePicker-IgiUI3Wj.mjs → DatePicker-LPIJrc0n.mjs} +77 -42
  56. package/dist/DatePicker-LPIJrc0n.mjs.map +1 -0
  57. package/dist/DatePicker.d.mts +1 -1
  58. package/dist/{DateRangePicker-C4QKMo2a.d.mts → DateRangePicker-CelDK_44.d.mts} +3 -3
  59. package/dist/DateRangePicker.d.mts +1 -1
  60. package/dist/DateRangeValueControl.d.mts +5 -3
  61. package/dist/DateValueControl.d.mts +8 -5
  62. package/dist/{DropdownButton-BWiXLMfD.mjs → DropdownButton-i5Dmxiq1.mjs} +3 -3
  63. package/dist/{DropdownButton-BWiXLMfD.mjs.map → DropdownButton-i5Dmxiq1.mjs.map} +1 -1
  64. package/dist/DropdownButton.d.mts +2 -2
  65. package/dist/{DropdownMenu-DL5ye-0m.d.mts → DropdownMenu-YtLxcNWt.d.mts} +2 -2
  66. package/dist/{DropdownMenu-CuKSNxc9.mjs → DropdownMenu-j8NWbAvM.mjs} +7 -2
  67. package/dist/DropdownMenu-j8NWbAvM.mjs.map +1 -0
  68. package/dist/DropdownMenu.d.mts +1 -1
  69. package/dist/{ErrorProps-BA0-m_Wp.d.mts → ErrorProps-6dRdJ4QQ.d.mts} +1 -1
  70. package/dist/ErrorProps.d.mts +1 -1
  71. package/dist/{FieldRegistry-bKxrF1gC.d.mts → FieldRegistry-DqO8HiYb.d.mts} +2 -2
  72. package/dist/FieldRegistry.d.mts +1 -1
  73. package/dist/{FilterBar-DhlBLWxw.d.mts → FilterBar-CpAA2Ozk.d.mts} +11 -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-D5xyPkST.d.mts → FormControl-B-s6G9mp.d.mts} +2 -2
  80. package/dist/{FormControl-DnfZTli_.mjs → FormControl-bDxFF0hl.mjs} +3 -3
  81. package/dist/{FormControl-DnfZTli_.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-BJZUj6jg.d.mts → FormField-D3k-f3-f.d.mts} +2 -2
  85. package/dist/{FormField-74TPV8-8.mjs → FormField-DbcqNcx2.mjs} +16 -16
  86. package/dist/{FormField-74TPV8-8.mjs.map → FormField-DbcqNcx2.mjs.map} +1 -1
  87. package/dist/FormField.d.mts +1 -1
  88. package/dist/{Grid-DOyYYsvk.mjs → Grid-CeH9E5Ai.mjs} +1 -1
  89. package/dist/{Grid-DOyYYsvk.mjs.map → Grid-CeH9E5Ai.mjs.map} +1 -1
  90. package/dist/{Header-BqEKkEp5.d.mts → Header-2K49LYkR.d.mts} +1 -1
  91. package/dist/Header.d.mts +1 -1
  92. package/dist/{HelperTooltip-mOVSuEB8.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-CN3gl0ny.mjs → HoverCopyableField-BARZLhfO.mjs} +3 -3
  96. package/dist/{HoverCopyableField-CN3gl0ny.mjs.map → HoverCopyableField-BARZLhfO.mjs.map} +1 -1
  97. package/dist/{IconButton-CqTPMhjV.mjs → IconButton-BHFCjvzs.mjs} +1 -1
  98. package/dist/{IconButton-CqTPMhjV.mjs.map → IconButton-BHFCjvzs.mjs.map} +1 -1
  99. package/dist/{IconButton-CjPFhpVG.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-C_3QwAAt.mjs → Input-BQN97Hzm.mjs} +7 -3
  105. package/dist/Input-BQN97Hzm.mjs.map +1 -0
  106. package/dist/{Input-CZ_6KWDN.d.mts → Input-BQbcIiVj.d.mts} +3 -3
  107. package/dist/Input.d.mts +1 -1
  108. package/dist/{InputProps-lag6BM5h.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-Bzm4AL5J.mjs +79 -0
  112. package/dist/Link-Bzm4AL5J.mjs.map +1 -0
  113. package/dist/Link.d.mts +1 -1
  114. package/dist/{ListBox-nYAdYVQx.d.mts → ListBox-CdqRwBvA.d.mts} +7 -7
  115. package/dist/{ListBox-D4j4LCT3.mjs → ListBox-DOqN9DNl.mjs} +33 -16
  116. package/dist/ListBox-DOqN9DNl.mjs.map +1 -0
  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-Dizk2sZu.mjs → LoadingShimmer-Ds7rvIUN.mjs} +13 -8
  121. package/dist/LoadingShimmer-Ds7rvIUN.mjs.map +1 -0
  122. package/dist/LoadingShimmer.d.mts +1 -1
  123. package/dist/{LogicRow-k4ZPtjN0.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-Bu7-KBhp.d.mts → Menu-CUN9bmc1.d.mts} +3 -3
  127. package/dist/{Menu-Cd6oxjAe.mjs → Menu-DjW2b3Wk.mjs} +1 -1
  128. package/dist/{Menu-Cd6oxjAe.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-Dwq-QBw_.d.mts → Modal-CGXJGrKg.d.mts} +2 -2
  133. package/dist/{Modal-BN0K8QXi.mjs → Modal-DHLPK65-.mjs} +6 -4
  134. package/dist/Modal-DHLPK65-.mjs.map +1 -0
  135. package/dist/Modal.d.mts +1 -1
  136. package/dist/{PageHeader-BTtm3hRQ.mjs → PageHeader-eI4RM_uL.mjs} +2 -2
  137. package/dist/{PageHeader-BTtm3hRQ.mjs.map → PageHeader-eI4RM_uL.mjs.map} +1 -1
  138. package/dist/PageHeader.d.mts +1 -1
  139. package/dist/{PageSelector-CeGC84N1.d.mts → PageSelector-kAfYxEky.d.mts} +3 -3
  140. package/dist/PageSelector.d.mts +1 -1
  141. package/dist/{Pagination-CPd4mSnw.mjs → Pagination-6BDOn9bX.mjs} +6 -6
  142. package/dist/Pagination-6BDOn9bX.mjs.map +1 -0
  143. package/dist/{Pagination-H-CcXrCD.d.mts → Pagination-Bhr7xyd2.d.mts} +2 -2
  144. package/dist/Pagination.d.mts +1 -1
  145. package/dist/{Pii-Dz4woKd8.mjs → Pii-DhL1gblz.mjs} +2 -2
  146. package/dist/{Pii-Dz4woKd8.mjs.map → Pii-DhL1gblz.mjs.map} +1 -1
  147. package/dist/{PillShell-BQC-k7Rl.d.mts → PillShell-CVJL1k5I.d.mts} +2 -2
  148. package/dist/PillShell.d.mts +1 -1
  149. package/dist/{Popover-opVa9Xhc.mjs → Popover-CbYaWrAy.mjs} +15 -2
  150. package/dist/Popover-CbYaWrAy.mjs.map +1 -0
  151. package/dist/{ProgressIndicator-3A4Aqci6.mjs → ProgressIndicator-BpF3XLn3.mjs} +3 -3
  152. package/dist/ProgressIndicator-BpF3XLn3.mjs.map +1 -0
  153. package/dist/{ProgressIndicator-DbOLOaxJ.d.mts → ProgressIndicator-CYyM6OSx.d.mts} +1 -1
  154. package/dist/ProgressIndicator.d.mts +1 -1
  155. package/dist/{PseudoClassProps-CHtBNv8B.d.mts → PseudoClassProps-BOVN6Etr.d.mts} +1 -1
  156. package/dist/PseudoClassProps.d.mts +1 -1
  157. package/dist/{Radio-Cxt89w8s.mjs → Radio-DPaX-9LH.mjs} +2 -2
  158. package/dist/{Radio-Cxt89w8s.mjs.map → Radio-DPaX-9LH.mjs.map} +1 -1
  159. package/dist/{RadioGroup-BjrfVPZQ.d.mts → RadioGroup-C0l0pdEt.d.mts} +1 -1
  160. package/dist/{RadioGroup-B6Cg1kdm.mjs → RadioGroup-D7f4m2Uc.mjs} +2 -2
  161. package/dist/{RadioGroup-B6Cg1kdm.mjs.map → RadioGroup-D7f4m2Uc.mjs.map} +1 -1
  162. package/dist/RadioGroup.d.mts +1 -1
  163. package/dist/{RangeCalendar-CPnLaM-J.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-CbvHIl4K.d.mts → RouterContext-BLrzYlJ_.d.mts} +2 -2
  167. package/dist/RouterContext.d.mts +1 -1
  168. package/dist/{RouterLink-v9AG9fYa.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-CIjwmT8R.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-Crr_aHAs.d.mts → SegmentedControl-B9qLyIIW.d.mts} +1 -1
  176. package/dist/{SegmentedControl-BcwfLuHA.mjs → SegmentedControl-zEvBtVj0.mjs} +3 -3
  177. package/dist/SegmentedControl-zEvBtVj0.mjs.map +1 -0
  178. package/dist/SegmentedControl.d.mts +1 -1
  179. package/dist/{Select-BstCz8P1.mjs → Select-BoZuM_e9.mjs} +10 -8
  180. package/dist/Select-BoZuM_e9.mjs.map +1 -0
  181. package/dist/{Select-CJQeuCiF.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-DplDSBqf.mjs → Spinner-CarSRiBF.mjs} +1 -1
  190. package/dist/{Spinner-DplDSBqf.mjs.map → Spinner-CarSRiBF.mjs.map} +1 -1
  191. package/dist/{Stack-ChsImaEY.mjs → Stack-CEPzs4Pb.mjs} +1 -1
  192. package/dist/{Stack-ChsImaEY.mjs.map → Stack-CEPzs4Pb.mjs.map} +1 -1
  193. package/dist/{Stack-RVptVTVi.d.mts → Stack-XzBzPvSV.d.mts} +1 -1
  194. package/dist/Stack.d.mts +1 -1
  195. package/dist/StatusIndicator-bEnMWV_S.mjs +315 -0
  196. package/dist/StatusIndicator-bEnMWV_S.mjs.map +1 -0
  197. package/dist/{Sticker-C3Eb13OQ.mjs → Sticker-B-fU8lgu.mjs} +5 -8
  198. package/dist/Sticker-B-fU8lgu.mjs.map +1 -0
  199. package/dist/{Sticker-BVX38LKi.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-BepWbJHz.mjs → TabBar-BSl5v5aa.mjs} +4 -7
  204. package/dist/{TabBar-BepWbJHz.mjs.map → TabBar-BSl5v5aa.mjs.map} +1 -1
  205. package/dist/{Table-DFiSWroB.d.mts → Table-B2V5tlfA.d.mts} +1 -1
  206. package/dist/{Table-B1gRr2XT.mjs → Table-msXj0glu.mjs} +22 -3
  207. package/dist/Table-msXj0glu.mjs.map +1 -0
  208. package/dist/Table.d.mts +1 -1
  209. package/dist/{TableBody-Di9JYHDN.d.mts → TableBody-SlQe4Jyp.d.mts} +1 -1
  210. package/dist/TableBody.d.mts +1 -1
  211. package/dist/{TableBox-DAQ3Plqx.mjs → TableBox-CF1_Fk0j.mjs} +22 -17
  212. package/dist/TableBox-CF1_Fk0j.mjs.map +1 -0
  213. package/dist/TableBox.d.mts +2 -2
  214. package/dist/{TableBoxCell-D6h1X5ph.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-C6l6J4mq.d.mts → TableBoxRow-DZzRYoID.d.mts} +3 -3
  219. package/dist/TableBoxRow.d.mts +1 -1
  220. package/dist/{TableBoxRowActions-CsLN1b1J.d.mts → TableBoxRowActions-4-j3flJq.d.mts} +2 -2
  221. package/dist/TableBoxRowActions.d.mts +1 -1
  222. package/dist/{TableCell-WSDXw79Q.d.mts → TableCell-D5Sqb6iO.d.mts} +2 -2
  223. package/dist/TableCell.d.mts +1 -1
  224. package/dist/{TableControls-cswMgBAr.d.mts → TableControls-B-LakH-8.d.mts} +4 -3
  225. package/dist/{TableControls-BxuPCUQS.mjs → TableControls-CqW_nyBY.mjs} +286 -78
  226. package/dist/TableControls-CqW_nyBY.mjs.map +1 -0
  227. package/dist/TableControls.d.mts +1 -1
  228. package/dist/{TableControlsContext-Cbh8wear.d.mts → TableControlsContext-Dh1YVmBM.d.mts} +2 -2
  229. package/dist/TableControlsContext.d.mts +1 -1
  230. package/dist/{TableHead-CkL1fEg2.d.mts → TableHead-BCrVa0BY.d.mts} +1 -1
  231. package/dist/TableHead.d.mts +1 -1
  232. package/dist/{TableHeaderCell-K9Ry6YqO.d.mts → TableHeaderCell-CcEkDozs.d.mts} +1 -1
  233. package/dist/TableHeaderCell.d.mts +1 -1
  234. package/dist/{TableLayout-CYRGIFEl.d.mts → TableLayout-Bhj1QBBz.d.mts} +1 -1
  235. package/dist/TableLayout.d.mts +1 -1
  236. package/dist/{TableRow-DMHlo1eg.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-BRbOcVNc.d.mts → TableViewConfigurationDropdown-BzygLtGm.d.mts} +2 -2
  240. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  241. package/dist/{TechnicalSticker-_LtE-PRY.mjs → TechnicalSticker-B6T7cHHc.mjs} +2 -2
  242. package/dist/{TechnicalSticker-_LtE-PRY.mjs.map → TechnicalSticker-B6T7cHHc.mjs.map} +1 -1
  243. package/dist/{Text-B69gp3X_.d.mts → Text-BVGJ-Nlw.d.mts} +3 -3
  244. package/dist/Text.d.mts +1 -1
  245. package/dist/{TextArea-Cjsdl07-.d.mts → TextArea-Bzj593VO.d.mts} +2 -2
  246. package/dist/{TextArea-CcxltuBh.mjs → TextArea-C1CmFRiz.mjs} +2 -2
  247. package/dist/{TextArea-CcxltuBh.mjs.map → TextArea-C1CmFRiz.mjs.map} +1 -1
  248. package/dist/TextArea.d.mts +1 -1
  249. package/dist/{TextUnderlineTooltip-DDzKLCeX.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-DWbJOwf3.mjs → Toggle-CntyMUPJ.mjs} +9 -4
  254. package/dist/Toggle-CntyMUPJ.mjs.map +1 -0
  255. package/dist/{Toggle-B5sSdb_q.d.mts → Toggle-bSu1xAaq.d.mts} +1 -1
  256. package/dist/Toggle.d.mts +1 -1
  257. package/dist/{Tooltip-x1pFf-Mj.d.mts → Tooltip-Duw4Fz1t.d.mts} +2 -2
  258. package/dist/Tooltip.d.mts +1 -1
  259. package/dist/{TruncatedText-BE8FuEQm.d.mts → TruncatedText-CbTpX_R1.d.mts} +1 -1
  260. package/dist/VersionHistory.d.mts +23 -0
  261. package/dist/VersionHistoryItem-D05QYej7.d.mts +54 -0
  262. package/dist/VersionHistoryItem.d.mts +2 -0
  263. package/dist/WizardModal.d.mts +3 -3
  264. package/dist/{accordionTitleTypography-BYhjSN9t.d.mts → accordionTitleTypography-Leehcmb3.d.mts} +2 -2
  265. package/dist/accordionTitleTypography.d.mts +1 -1
  266. package/dist/assertNever.d.mts +5 -0
  267. package/dist/chainTypes-D8SGRGba.d.mts +17 -0
  268. package/dist/{codec-BcgsGCHE.d.mts → codec-Vsztf4fe.d.mts} +2 -2
  269. package/dist/codec.d.mts +1 -1
  270. package/dist/{color-LH7zKfKo.d.mts → color-CrlF3pba.d.mts} +9 -4
  271. package/dist/components/Accordion/index.d.mts +1 -1
  272. package/dist/components/Accordion/index.mjs +1 -1
  273. package/dist/components/Attribute/index.mjs +2 -2
  274. package/dist/components/Badge/index.mjs +1 -1
  275. package/dist/components/Banner/index.mjs +1 -1
  276. package/dist/components/BottomPanel/index.mjs +5 -3
  277. package/dist/components/BottomPanel/index.mjs.map +1 -1
  278. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  279. package/dist/components/Breadcrumbs/index.mjs +1 -1
  280. package/dist/components/Button/index.d.mts +2 -2
  281. package/dist/components/Button/index.mjs +1 -1
  282. package/dist/components/ButtonGroup/index.mjs +2 -2
  283. package/dist/components/Card/index.d.mts +2 -2
  284. package/dist/components/CardV2/index.d.mts +1 -1
  285. package/dist/components/CardV2/index.mjs +1 -1
  286. package/dist/components/Checkbox/index.d.mts +1 -1
  287. package/dist/components/Checkbox/index.mjs +1 -1
  288. package/dist/components/CodeHighlight/index.mjs +3 -1
  289. package/dist/components/CodeHighlight/index.mjs.map +1 -1
  290. package/dist/components/Combobox/index.d.mts +2 -2
  291. package/dist/components/Combobox/index.mjs +1 -1
  292. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  293. package/dist/components/DataTable/TableControls/index.d.mts +19 -19
  294. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  295. package/dist/components/DataTable/index.mjs +27 -16
  296. package/dist/components/DataTable/index.mjs.map +1 -1
  297. package/dist/components/DataTable/types.d.mts +2 -2
  298. package/dist/components/DatePicker/index.d.mts +5 -5
  299. package/dist/components/DatePicker/index.mjs +1 -1
  300. package/dist/components/DropdownButton/index.mjs +1 -1
  301. package/dist/components/DropdownMenu/index.d.mts +1 -1
  302. package/dist/components/DropdownMenu/index.mjs +1 -1
  303. package/dist/components/FloatingPanel/index.mjs +10 -7
  304. package/dist/components/FloatingPanel/index.mjs.map +1 -1
  305. package/dist/components/FormControl/index.d.mts +2 -2
  306. package/dist/components/FormControl/index.mjs +2 -2
  307. package/dist/components/FormField/index.d.mts +6 -6
  308. package/dist/components/FormField/index.mjs +1 -1
  309. package/dist/components/Grid/index.mjs +1 -1
  310. package/dist/components/HoverCopyableField/index.mjs +1 -1
  311. package/dist/components/ImageTile/index.mjs +13 -9
  312. package/dist/components/ImageTile/index.mjs.map +1 -1
  313. package/dist/components/Input/index.d.mts +1 -1
  314. package/dist/components/Input/index.mjs +1 -1
  315. package/dist/components/Link/index.mjs +1 -78
  316. package/dist/components/ListBox/index.d.mts +3 -3
  317. package/dist/components/ListBox/index.mjs +1 -1
  318. package/dist/components/LoadingShimmer/index.mjs +1 -1
  319. package/dist/components/MaskedInput/index.mjs +1 -1
  320. package/dist/components/Menu/index.d.mts +1 -1
  321. package/dist/components/Menu/index.mjs +1 -1
  322. package/dist/components/Modal/index.d.mts +1 -1
  323. package/dist/components/Modal/index.mjs +1 -1
  324. package/dist/components/PageHeader/index.mjs +1 -1
  325. package/dist/components/Pagination/index.d.mts +3 -3
  326. package/dist/components/Pagination/index.mjs +1 -1
  327. package/dist/components/Pii/index.mjs +1 -1
  328. package/dist/components/Popover/index.mjs +1 -1
  329. package/dist/components/ProgressBar/index.mjs +1 -2
  330. package/dist/components/ProgressBar/index.mjs.map +1 -1
  331. package/dist/components/ProgressIndicator/index.d.mts +1 -1
  332. package/dist/components/ProgressIndicator/index.mjs +1 -1
  333. package/dist/components/Radio/index.mjs +1 -1
  334. package/dist/components/RadioGroup/index.d.mts +1 -1
  335. package/dist/components/RadioGroup/index.mjs +1 -1
  336. package/dist/components/RightPanel/index.mjs +10 -7
  337. package/dist/components/RightPanel/index.mjs.map +1 -1
  338. package/dist/components/SegmentedControl/index.d.mts +1 -1
  339. package/dist/components/SegmentedControl/index.mjs +1 -1
  340. package/dist/components/Select/index.d.mts +1 -1
  341. package/dist/components/Select/index.mjs +1 -1
  342. package/dist/components/Slider/index.mjs +1 -1
  343. package/dist/components/Slider/index.mjs.map +1 -1
  344. package/dist/components/SmartTextInput/index.d.mts +5 -0
  345. package/dist/components/SmartTextInput/index.mjs +2035 -0
  346. package/dist/components/SmartTextInput/index.mjs.map +1 -0
  347. package/dist/components/SmartTextInput/parser/method-chain/parser.mjs +1 -1
  348. package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +2 -105
  349. package/dist/components/SmartTextInput/parser/smart-text/parser.mjs +1 -1
  350. package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +3 -72
  351. package/dist/components/Spinner/index.mjs +1 -1
  352. package/dist/components/Stack/index.d.mts +1 -1
  353. package/dist/components/Stack/index.mjs +1 -1
  354. package/dist/components/StatusIndicator/index.mjs +1 -314
  355. package/dist/components/Sticker/index.d.mts +1 -1
  356. package/dist/components/Sticker/index.mjs +1 -1
  357. package/dist/components/TabBar/index.mjs +1 -1
  358. package/dist/components/Table/index.d.mts +8 -8
  359. package/dist/components/Table/index.mjs +1 -1
  360. package/dist/components/TableBox/index.d.mts +2 -2
  361. package/dist/components/TableBox/index.mjs +1 -1
  362. package/dist/components/TechnicalSticker/index.mjs +1 -1
  363. package/dist/components/Text/index.d.mts +1 -1
  364. package/dist/components/TextArea/index.d.mts +1 -1
  365. package/dist/components/TextArea/index.mjs +1 -1
  366. package/dist/components/Tile/index.mjs +2 -2
  367. package/dist/components/Toast/index.mjs +2 -2
  368. package/dist/components/Toast/index.mjs.map +1 -1
  369. package/dist/components/Toggle/index.d.mts +1 -1
  370. package/dist/components/Toggle/index.mjs +1 -1
  371. package/dist/components/Tooltip/index.d.mts +3 -3
  372. package/dist/components/VersionHistory/index.d.mts +3 -0
  373. package/dist/components/VersionHistory/index.mjs +389 -0
  374. package/dist/components/VersionHistory/index.mjs.map +1 -0
  375. package/dist/compound-expression.d.mts +1 -1
  376. package/dist/{constants-BpwnTzcv.d.mts → constants-CQUCM6__.d.mts} +1 -1
  377. package/dist/constants.d.mts +1 -1
  378. package/dist/{createPath-Bst12Uxr.d.mts → createPath-Bq7wYGt_.d.mts} +2 -2
  379. package/dist/createPath.d.mts +1 -1
  380. package/dist/{date-filter-CZeChs9T.mjs → date-filter-D6IfCkwp.mjs} +1 -1
  381. package/dist/{date-filter-CZeChs9T.mjs.map → date-filter-D6IfCkwp.mjs.map} +1 -1
  382. package/dist/{date-range-rule-value-C4ir2Y8W.d.mts → date-range-rule-value-DVhMQP4-.d.mts} +2 -2
  383. package/dist/date-range-rule-value.d.mts +1 -1
  384. package/dist/{date-rule-intent-gKmuxMVA.d.mts → date-rule-intent-BwQ6OTVD.d.mts} +3 -3
  385. package/dist/date-rule-intent.d.mts +1 -1
  386. package/dist/display.d.mts +2 -2
  387. package/dist/fieldPickerOptions.d.mts +2 -2
  388. package/dist/{filter-size-context-BOpH6pBm.d.mts → filter-size-context-BjTzcZwZ.d.mts} +2 -2
  389. package/dist/filter-size-context.d.mts +1 -1
  390. package/dist/format-date-value.d.mts +5 -0
  391. package/dist/helpers.d.mts +1 -1
  392. package/dist/{index-C2-PBfN3.d.mts → index-BFIFjR7Q.d.mts} +2 -2
  393. package/dist/{index-BXdrzR0c.d.mts → index-BhDvrF4l.d.mts} +4 -4
  394. package/dist/{index-c0aXmZV9.d.mts → index-C-xpEL8b.d.mts} +2 -2
  395. package/dist/index-irNqT1qQ2.d.mts +1 -0
  396. package/dist/index.d.mts +1 -1
  397. package/dist/index2.d.mts +1 -1
  398. package/dist/index3.d.mts +3 -3
  399. package/dist/index4.d.mts +1 -1
  400. package/dist/index5.d.mts +14 -14
  401. package/dist/{input-DVJhMlxU.d.mts → input-DpHBIUpP.d.mts} +3 -3
  402. package/dist/inputFields-BVDurw3L.d.mts +71 -0
  403. package/dist/inputFields.d.mts +2 -71
  404. package/dist/{intersperse-Bxcrxj2Q.mjs → intersperse-bvY2gibK.mjs} +1 -1
  405. package/dist/{intersperse-Bxcrxj2Q.mjs.map → intersperse-bvY2gibK.mjs.map} +1 -1
  406. package/dist/{jsonSchema-DmdZYC4a.d.mts → jsonSchema-Bl-qzgrr.d.mts} +34 -2
  407. package/dist/lib/MiddleTruncatedText.mjs +1 -1
  408. package/dist/lib/PDSProvider.d.mts +2 -2
  409. package/dist/lib/TruncatedText.d.mts +1 -1
  410. package/dist/lib/TruncatedText.mjs +1 -1
  411. package/dist/lib/TruncatedText.mjs.map +1 -1
  412. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  413. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  414. package/dist/lib/TruncatedTextWithTooltip.mjs.map +1 -1
  415. package/dist/lib/chainTypes.d.mts +2 -0
  416. package/dist/lib/chainTypes.mjs +0 -0
  417. package/dist/lib/color.d.mts +2 -2
  418. package/dist/lib/color.mjs +18 -11
  419. package/dist/lib/color.mjs.map +1 -1
  420. package/dist/lib/customFunctionSchema.d.mts +49 -0
  421. package/dist/lib/customFunctionSchema.mjs +299 -0
  422. package/dist/lib/customFunctionSchema.mjs.map +1 -0
  423. package/dist/lib/date-filter/index.d.mts +2 -2
  424. package/dist/lib/date-filter/index.mjs +1 -1
  425. package/dist/lib/jsonSchema.d.mts +2 -2
  426. package/dist/lib/jsonSchema.mjs +26 -1
  427. package/dist/lib/jsonSchema.mjs.map +1 -1
  428. package/dist/lib/jsonSchemaType.d.mts +7 -0
  429. package/dist/lib/jsonSchemaType.mjs +31 -0
  430. package/dist/lib/jsonSchemaType.mjs.map +1 -0
  431. package/dist/lib/letPointerDownReachDocument.d.mts +22 -0
  432. package/dist/lib/letPointerDownReachDocument.mjs +25 -0
  433. package/dist/lib/letPointerDownReachDocument.mjs.map +1 -0
  434. package/dist/lib/message.d.mts +1 -1
  435. package/dist/lib/methodChain.d.mts +3 -66
  436. package/dist/lib/methodChain.mjs +1 -238
  437. package/dist/lib/methodChainNormalize.d.mts +2 -2
  438. package/dist/lib/methodChainTypes.d.mts +2 -23
  439. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  440. package/dist/lib/platformObject.d.mts +38 -0
  441. package/dist/lib/platformObject.mjs +79 -0
  442. package/dist/lib/platformObject.mjs.map +1 -0
  443. package/dist/lib/pseudoClass.d.mts +1 -1
  444. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  445. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  446. package/dist/lib/router/index.d.mts +5 -5
  447. package/dist/lib/schemaOptions.d.mts +2 -0
  448. package/dist/lib/schemaOptions.mjs +481 -0
  449. package/dist/lib/schemaOptions.mjs.map +1 -0
  450. package/dist/lib/semanticColor.d.mts +1 -1
  451. package/dist/lib/snakifyPath.d.mts +5 -0
  452. package/dist/lib/snakifyPath.mjs +11 -0
  453. package/dist/lib/snakifyPath.mjs.map +1 -0
  454. package/dist/lib/useChain.d.mts +2 -0
  455. package/dist/lib/useChain.mjs +2 -0
  456. package/dist/listbox-options-BjOkovND.d.mts +38 -0
  457. package/dist/listbox-options.d.mts +2 -0
  458. package/dist/{message-CKSLIKF0.d.mts → message-w_1-kTDE.d.mts} +1 -1
  459. package/dist/methodChain-B5vZEOff.d.mts +66 -0
  460. package/dist/methodChain-L_h8Z8Bx.mjs +241 -0
  461. package/dist/methodChain-L_h8Z8Bx.mjs.map +1 -0
  462. package/dist/methodChainTypes-BVkTI8MX.d.mts +23 -0
  463. package/dist/mixins/focus.d.mts +1 -1
  464. package/dist/mixins/hoverable.d.mts +2 -2
  465. package/dist/mixins/input.d.mts +1 -1
  466. package/dist/mixins/input.mjs +6 -14
  467. package/dist/mixins/input.mjs.map +1 -1
  468. package/dist/mixins/menuItem.d.mts +2 -2
  469. package/dist/mixins/scrollbar.d.mts +10 -0
  470. package/dist/mixins/scrollbar.mjs +31 -0
  471. package/dist/mixins/scrollbar.mjs.map +1 -0
  472. package/dist/mixins/text.d.mts +1 -1
  473. package/dist/{operators-1_jTgYRX.d.mts → operators-BG82-g3M.d.mts} +9 -3
  474. package/dist/operators.d.mts +2 -2
  475. package/dist/{palette-CMOEyNPH.d.mts → palette-C8tyI81D.d.mts} +3 -3
  476. package/dist/palette.d.mts +1 -1
  477. package/dist/{parser-Kxos6siN.mjs → parser-BeTiVjRs.mjs} +3 -2
  478. package/dist/{parser-Kxos6siN.mjs.map → parser-BeTiVjRs.mjs.map} +1 -1
  479. package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
  480. package/dist/patterns/PageLayout/index.mjs +2 -2
  481. package/dist/{components → patterns}/WizardModal/index.mjs +5 -5
  482. package/dist/patterns/WizardModal/index.mjs.map +1 -0
  483. package/dist/reactRouterFallback.d.mts +1 -1
  484. package/dist/relative-date-label.d.mts +1 -1
  485. package/dist/safe-parse.d.mts +23 -0
  486. package/dist/schemaOptions-DGca6x7E.d.mts +173 -0
  487. package/dist/{semantic-BXwNUd4a.d.mts → semantic-D1661f_6.d.mts} +2 -2
  488. package/dist/{semanticColor-Cru2gSys.d.mts → semanticColor-Bg0H3RUL.d.mts} +3 -3
  489. package/dist/{text-CxIup7HJ.d.mts → text-Iw9DKpbZ.d.mts} +1 -1
  490. package/dist/{theme-CW6qlONZ.d.mts → theme-BB1B6Wkz.d.mts} +3 -3
  491. package/dist/theme.d.mts +1 -1
  492. package/dist/time-range.d.mts +7 -0
  493. package/dist/tone.d.mts +3 -3
  494. package/dist/tree.d.mts +9 -0
  495. package/dist/{types-3iEDsymE.d.mts → types-B0ilOIfE.d.mts} +2 -2
  496. package/dist/types-BYRTxB0a.d.mts +72 -0
  497. package/dist/{types-ChkiGhjQ.d.mts → types-CI2bPi02.d.mts} +1 -1
  498. package/dist/types-Cs6CdZCO.d.mts +83 -0
  499. package/dist/{types-B-stjYNc.d.mts → types-D1DijcJv.d.mts} +1 -1
  500. package/dist/{types-YojUycQK.d.mts → types-DZTbvdpO.d.mts} +1 -1
  501. package/dist/{types-g-aqbnek.d.mts → types-DdTu747j.d.mts} +1 -1
  502. package/dist/{types-BEjWTkZV.d.mts → types-Dy3lZv9z.d.mts} +7 -2
  503. package/dist/types-M-rsm1Km.d.mts +105 -0
  504. package/dist/types.d.mts +1 -1
  505. package/dist/types2.d.mts +1 -1
  506. package/dist/types3.d.mts +1 -1
  507. package/dist/types4.d.mts +1 -1
  508. package/dist/types5.d.mts +1 -1
  509. package/dist/types6.d.mts +1 -1
  510. package/dist/types7.d.mts +2 -0
  511. package/dist/{url-state-CHK2N2fA.d.mts → url-state-DWA7UFxS.d.mts} +2 -2
  512. package/dist/url-state.d.mts +1 -1
  513. package/dist/useChain-CEsXE2Bx.d.mts +77 -0
  514. package/dist/useChain-CKqYGdx4.mjs +4589 -0
  515. package/dist/useChain-CKqYGdx4.mjs.map +1 -0
  516. package/dist/useChainAtCursor.d.mts +87 -0
  517. package/dist/useCodeChainFunctionPanel.d.mts +26 -0
  518. package/dist/useComboboxFooterAction.d.mts +1 -1
  519. package/dist/{useFilterStateV2-B26e5iUx.d.mts → useFilterStateV2-DoJ9lyJx.d.mts} +3 -3
  520. package/dist/useFilterStateV2.d.mts +1 -1
  521. package/dist/{useFormField-BzhMbl5P.mjs → useFormField-BAmkdxtA.mjs} +2 -2
  522. package/dist/{useFormField-BzhMbl5P.mjs.map → useFormField-BAmkdxtA.mjs.map} +1 -1
  523. package/dist/{useFormField-DPFClB5h.d.mts → useFormField-BtnAYcHV.d.mts} +2 -2
  524. package/dist/useFormField.d.mts +1 -1
  525. package/dist/{useFormGroup-CH3kiXoa.mjs → useFormGroup-BZayb9fZ.mjs} +1 -1
  526. package/dist/{useFormGroup-CH3kiXoa.mjs.map → useFormGroup-BZayb9fZ.mjs.map} +1 -1
  527. package/dist/{useLocationPathname-CnRd_Rzn.d.mts → useLocationPathname-pLyLOrAi.d.mts} +1 -1
  528. package/dist/useLocationPathname.d.mts +1 -1
  529. package/dist/{useTableBoxDragAndDrop-DWlG5vhl.d.mts → useTableBoxDragAndDrop-wjc_LCpC.d.mts} +1 -1
  530. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  531. package/dist/useTruncation.d.mts +1 -1
  532. package/dist/{utilities-BcGuP8Fd.d.mts → utilities-DL18UdPs.d.mts} +1 -1
  533. package/dist/utilities.d.mts +1 -1
  534. package/dist/utils/storybook.mjs +1 -1
  535. package/dist/utils/testing.d.mts +1 -1
  536. package/dist/utils.d.mts +1 -1
  537. package/dist/utils4.d.mts +111 -0
  538. package/dist/{validation-B-Om4ANo.d.mts → validation-PeVTwtd-.d.mts} +3 -3
  539. package/dist/validation.d.mts +1 -1
  540. package/dist/validation2.d.mts +64 -0
  541. package/dist/{value-control-resolver-BiyhB8zt.d.mts → value-control-resolver-Cx_wXQFv.d.mts} +3 -2
  542. package/dist/value-control-resolver.d.mts +1 -1
  543. package/dist/variables/effect.d.mts +1 -1
  544. package/dist/variables/semantic.d.mts +1 -1
  545. package/dist/variables/semantic.mjs +15 -18
  546. package/dist/variables/semantic.mjs.map +1 -1
  547. package/llms.txt +1 -1
  548. package/package.json +32 -6
  549. package/skills/ui-authoring/COMPONENTS.md +1 -1
  550. package/skills/ui-authoring/PATTERNS.md +1 -0
  551. package/dist/Combobox-C2b9u955.mjs.map +0 -1
  552. package/dist/DatePicker-IgiUI3Wj.mjs.map +0 -1
  553. package/dist/DropdownMenu-CuKSNxc9.mjs.map +0 -1
  554. package/dist/Input-C_3QwAAt.mjs.map +0 -1
  555. package/dist/ListBox-D4j4LCT3.mjs.map +0 -1
  556. package/dist/LoadingShimmer-Dizk2sZu.mjs.map +0 -1
  557. package/dist/Modal-BN0K8QXi.mjs.map +0 -1
  558. package/dist/Pagination-CPd4mSnw.mjs.map +0 -1
  559. package/dist/Popover-opVa9Xhc.mjs.map +0 -1
  560. package/dist/ProgressIndicator-3A4Aqci6.mjs.map +0 -1
  561. package/dist/SegmentedControl-BcwfLuHA.mjs.map +0 -1
  562. package/dist/Select-BstCz8P1.mjs.map +0 -1
  563. package/dist/Sticker-C3Eb13OQ.mjs.map +0 -1
  564. package/dist/Table-B1gRr2XT.mjs.map +0 -1
  565. package/dist/TableBox-DAQ3Plqx.mjs.map +0 -1
  566. package/dist/TableControls-BxuPCUQS.mjs.map +0 -1
  567. package/dist/Toggle-DWbJOwf3.mjs.map +0 -1
  568. package/dist/components/Link/index.mjs.map +0 -1
  569. package/dist/components/StatusIndicator/index.mjs.map +0 -1
  570. package/dist/components/WizardModal/index.mjs.map +0 -1
  571. package/dist/lib/methodChain.mjs.map +0 -1
  572. /package/dist/{index--p6oQT9I.d.mts → index-7in8TPrM.d.mts} +0 -0
  573. /package/dist/{index-BCh-G39Y2.d.mts → index-BCq_fh4A2.d.mts} +0 -0
  574. /package/dist/{index-BO_854F2.d.mts → index-BINnViIh.d.mts} +0 -0
  575. /package/dist/{index-BwFl_eS0.d.mts → index-BjgW3E7y.d.mts} +0 -0
  576. /package/dist/{index-C-lwXyQ6.d.mts → index-BwXb5CoQ.d.mts} +0 -0
  577. /package/dist/{index-C1o2TFfS.d.mts → index-C3usUse7.d.mts} +0 -0
  578. /package/dist/{index-C3kE54DD.d.mts → index-C9achTF6.d.mts} +0 -0
  579. /package/dist/{index-CREkvfw9.d.mts → index-CCKHlTA4.d.mts} +0 -0
  580. /package/dist/{index-CRo77wc3.d.mts → index-CFuHCx9T.d.mts} +0 -0
  581. /package/dist/{index-CfCYi7PF.d.mts → index-CP2eJYlK.d.mts} +0 -0
  582. /package/dist/{index-CoUVmp_Q.d.mts → index-CWB6exYm.d.mts} +0 -0
  583. /package/dist/{index-DCTy4zg0.d.mts → index-CryTAIZM.d.mts} +0 -0
  584. /package/dist/{index-DWIh4oP5.d.mts → index-CuheJfs-.d.mts} +0 -0
  585. /package/dist/{index-De7MV8-j.d.mts → index-D-9tW2r5.d.mts} +0 -0
  586. /package/dist/{index-DgJfEygr.d.mts → index-D9XihFV1.d.mts} +0 -0
  587. /package/dist/{index-Es5nKSSL.d.mts → index-Deol7ZWO.d.mts} +0 -0
  588. /package/dist/{index-Qwqzz3XM.d.mts → index-DjOaHFU3.d.mts} +0 -0
  589. /package/dist/{index-Wc1llEvP.d.mts → index-Iujpc9_6.d.mts} +0 -0
  590. /package/dist/{index-bHnO4ZKt.d.mts → index-e6k85DKM.d.mts} +0 -0
  591. /package/dist/{index-dhjtMp5F.d.mts → index-gpCH5158.d.mts} +0 -0
  592. /package/dist/{components → patterns}/WizardModal/index.d.mts +0 -0
@@ -1,4 +1,4 @@
1
- import { n as Input } from "../../Input-C_3QwAAt.mjs";
1
+ import { n as Input } from "../../Input-BQN97Hzm.mjs";
2
2
  import { forwardRef } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  import { IMaskMixin } from "react-imask";
@@ -1,2 +1,2 @@
1
- import { a as MenuDivider, c as MenuItem, d as MenuList, f as MenuProps, i as Menu, l as MenuItemProps, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuHeadingProps, t as FloatingCard, u as MenuItemType } from "../../Menu-Bu7-KBhp.mjs";
1
+ import { a as MenuDivider, c as MenuItem, d as MenuList, f as MenuProps, i as Menu, l as MenuItemProps, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuHeadingProps, t as FloatingCard, u as MenuItemType } from "../../Menu-CUN9bmc1.mjs";
2
2
  export { FloatingCard, IconContainer, ListItem, Menu, Menu as default, MenuDivider, MenuHeading, MenuHeadingProps, MenuItem, MenuItemProps, MenuItemType, MenuList, MenuProps };
@@ -1,2 +1,2 @@
1
- import { a as MenuDivider, c as MenuList, i as Menu, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuItem, t as FloatingCard } from "../../Menu-Cd6oxjAe.mjs";
1
+ import { a as MenuDivider, c as MenuList, i as Menu, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuItem, t as FloatingCard } from "../../Menu-DjW2b3Wk.mjs";
2
2
  export { FloatingCard, IconContainer, ListItem, Menu, Menu as default, MenuDivider, MenuHeading, MenuItem, MenuList };
@@ -1,2 +1,2 @@
1
- import { a as ModalTitleProps, i as ModalRenderProps, n as ModalContent, o as ModalTrigger, r as ModalProps, s as _default, t as ModalClose } from "../../Modal-Dwq-QBw_.mjs";
1
+ import { a as ModalTitleProps, i as ModalRenderProps, n as ModalContent, o as ModalTrigger, r as ModalProps, s as _default, t as ModalClose } from "../../Modal-CGXJGrKg.mjs";
2
2
  export { ModalClose, ModalContent, ModalProps, ModalRenderProps, ModalTitleProps, ModalTrigger, _default as default };
@@ -1,2 +1,2 @@
1
- import { i as Modal_default, n as ModalContent, r as ModalTrigger, t as ModalClose } from "../../Modal-BN0K8QXi.mjs";
1
+ import { i as Modal_default, n as ModalContent, r as ModalTrigger, t as ModalClose } from "../../Modal-DHLPK65-.mjs";
2
2
  export { ModalClose, ModalContent, ModalTrigger, Modal_default as default };
@@ -1,2 +1,2 @@
1
- import { n as PageHeaderContainer, t as PageHeader } from "../../PageHeader-BTtm3hRQ.mjs";
1
+ import { n as PageHeaderContainer, t as PageHeader } from "../../PageHeader-eI4RM_uL.mjs";
2
2
  export { PageHeaderContainer, PageHeader as default };
@@ -1,4 +1,4 @@
1
- import { t as Pagination } from "../../Pagination-H-CcXrCD.mjs";
2
- import { r as PageSelector, t as PAGE_LIMIT_BEFORE_SCROLL_MODE } from "../../PageSelector-CeGC84N1.mjs";
3
- import { n as MIN_PAGE_SIZE, t as DEFAULT_PAGE_SIZE_OPTIONS } from "../../constants-BpwnTzcv.mjs";
1
+ import { t as Pagination } from "../../Pagination-Bhr7xyd2.mjs";
2
+ import { r as PageSelector, t as PAGE_LIMIT_BEFORE_SCROLL_MODE } from "../../PageSelector-kAfYxEky.mjs";
3
+ import { n as MIN_PAGE_SIZE, t as DEFAULT_PAGE_SIZE_OPTIONS } from "../../constants-CQUCM6__.mjs";
4
4
  export { DEFAULT_PAGE_SIZE_OPTIONS, MIN_PAGE_SIZE, PAGE_LIMIT_BEFORE_SCROLL_MODE, PageSelector, Pagination as default };
@@ -1,2 +1,2 @@
1
- import { a as MIN_PAGE_SIZE, i as DEFAULT_PAGE_SIZE_OPTIONS, n as PAGE_LIMIT_BEFORE_SCROLL_MODE, r as PageSelector, t as Pagination_default } from "../../Pagination-CPd4mSnw.mjs";
1
+ import { a as MIN_PAGE_SIZE, i as DEFAULT_PAGE_SIZE_OPTIONS, n as PAGE_LIMIT_BEFORE_SCROLL_MODE, r as PageSelector, t as Pagination_default } from "../../Pagination-6BDOn9bX.mjs";
2
2
  export { DEFAULT_PAGE_SIZE_OPTIONS, MIN_PAGE_SIZE, PAGE_LIMIT_BEFORE_SCROLL_MODE, PageSelector, Pagination_default as default };
@@ -1,2 +1,2 @@
1
- import { t as Pii_default } from "../../Pii-Dz4woKd8.mjs";
1
+ import { t as Pii_default } from "../../Pii-DhL1gblz.mjs";
2
2
  export { Pii_default as default };
@@ -1,2 +1,2 @@
1
- import { a as PopoverPortal, i as PopoverContent, n as PopoverCard, o as PopoverTrigger, r as PopoverClose, s as Popover_default, t as PopoverAnchor } from "../../Popover-opVa9Xhc.mjs";
1
+ import { a as PopoverPortal, i as PopoverContent, n as PopoverCard, o as PopoverTrigger, r as PopoverClose, s as Popover_default, t as PopoverAnchor } from "../../Popover-CbYaWrAy.mjs";
2
2
  export { PopoverAnchor, PopoverCard, PopoverClose, PopoverContent, PopoverPortal, PopoverTrigger, Popover_default as default };
@@ -13,7 +13,6 @@ const statusFill = (theme, status) => {
13
13
  if (status === "success") return semanticColor(theme, "StatusSuccess3", Color.BorderIconSuccess);
14
14
  return semanticColor(theme, "StatusInfo3", Color.BorderInputActive);
15
15
  };
16
- const statusIconColor = (theme, status) => status === "exception" ? semanticColor(theme, "FgDanger1", Color.BorderInputDanger) : semanticColor(theme, "FgSuccess", Color.BorderIconSuccess);
17
16
  const TRACK_HEIGHT = {
18
17
  sm: "4px",
19
18
  md: "8px"
@@ -91,7 +90,7 @@ const IconWrapper = styled.span`
91
90
  display: flex;
92
91
  flex-shrink: 0;
93
92
  line-height: 0;
94
- color: ${({ theme, $status }) => statusIconColor(theme, $status)};
93
+ color: ${({ theme, $status }) => statusFill(theme, $status)};
95
94
  `;
96
95
  /**
97
96
  * ProgressBar shows the completion status of an operation as a filled bar.
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/ProgressBar/ProgressBar.tsx","../../../components/ProgressBar/index.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\nimport { useId } from 'react-aria';\nimport styled, { keyframes } from 'styled-components';\n\nimport { Tooltip } from '@persona/design-system/components/Tooltip';\nimport { paragraphMixins } from '@persona/design-system/mixins/text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport CircleCheckFillIcon from '@persona/icons/CircleCheckFillIcon';\nimport CircleWarningFillIcon from '@persona/icons/CircleWarningFillIcon';\nimport { type MaybeSemanticTheme, semanticColor } from 'design-system/lib/semanticColor';\n\nexport type ProgressBarStatus = 'default' | 'exception' | 'success';\nexport type ProgressBarSize = 'sm' | 'md';\nexport type ProgressBarType = 'determinate' | 'indeterminate';\n\nconst statusFill = (theme: MaybeSemanticTheme, status: ProgressBarStatus) => {\n if (status === 'exception') {\n return semanticColor(theme, 'StatusDanger4', Color.BorderInputDanger);\n }\n if (status === 'success') {\n return semanticColor(theme, 'StatusSuccess3', Color.BorderIconSuccess);\n }\n return semanticColor(theme, 'StatusInfo3', Color.BorderInputActive);\n};\n\nconst statusIconColor = (theme: MaybeSemanticTheme, status: 'exception' | 'success') =>\n status === 'exception'\n ? semanticColor(theme, 'FgDanger1', Color.BorderInputDanger)\n : semanticColor(theme, 'FgSuccess', Color.BorderIconSuccess);\n\nconst TRACK_HEIGHT: Record<ProgressBarSize, string> = {\n sm: '4px',\n md: '8px',\n};\n\n// 20px matches the line-height of TextMedium — the tallest element in the bar row\nconst BAR_ROW_HEIGHT = '20px';\n\nconst indeterminateScan = keyframes`\n 0% { left: -40%; width: 40%; }\n 60% { left: 100%; width: 40%; }\n 100% { left: 100%; width: 40%; }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\n\nconst LabelText = styled.span`\n ${paragraphMixins.md}\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', Color.TextPrimary)};\n`;\n\nconst BarRow = styled.div`\n display: flex;\n gap: ${Spacing[2]};\n align-items: center;\n min-height: ${BAR_ROW_HEIGHT};\n width: 100%;\n`;\n\nconst Track = styled.div<{ $size: ProgressBarSize; $railColor?: Color }>`\n flex: 1;\n height: ${({ $size }) => TRACK_HEIGHT[$size]};\n background-color: ${({ theme, $railColor }) =>\n $railColor ?? semanticColor(theme, 'BorderSubtle', Color.BorderDivider)};\n border-radius: 4px;\n overflow: hidden;\n position: relative;\n`;\n\nconst Fill = styled.div<{\n $percent: number;\n $left: number;\n $status: ProgressBarStatus;\n $fillColor?: Color;\n $hasSuccessBefore: boolean;\n}>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: ${({ $left }) => `${$left}%`};\n width: ${({ $percent }) => `${$percent}%`};\n background-color: ${({ theme, $status, $fillColor }) => $fillColor ?? statusFill(theme, $status)};\n border-radius: ${({ $hasSuccessBefore }) => ($hasSuccessBefore ? '0 4px 4px 0' : '4px')};\n transition: width 0.3s ease, left 0.3s ease;\n`;\n\nconst SuccessFill = styled.div<{ $percent: number; $hasInProgressAfter: boolean }>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: ${({ $percent }) => `${$percent}%`};\n background-color: ${({ theme }) => statusFill(theme, 'success')};\n border-radius: ${({ $hasInProgressAfter }) => ($hasInProgressAfter ? '4px 0 0 4px' : '4px')};\n transition: width 0.3s ease;\n`;\n\nconst IndeterminateFill = styled.div`\n position: absolute;\n inset: 0 auto 0 auto;\n height: 100%;\n background-color: ${({ theme }) => semanticColor(theme, 'FeedbackNeutral5', Color.BorderIconPrimary)};\n border-radius: 4px;\n animation: ${indeterminateScan} 2.5s ease-in-out infinite;\n`;\n\nconst SuffixRow = styled.div`\n display: flex;\n gap: ${Spacing[1]};\n align-items: center;\n flex-shrink: 0;\n`;\n\nconst PercentText = styled.span`\n ${paragraphMixins.md}\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', Color.TextPrimary)};\n white-space: nowrap;\n`;\n\nconst IconWrapper = styled.span<{ $status: 'exception' | 'success' }>`\n display: flex;\n flex-shrink: 0;\n line-height: 0;\n color: ${({ theme, $status }) => statusIconColor(theme, $status)};\n`;\n\nexport interface ProgressBarProps extends ComponentPropsWithoutRef<'div'> {\n /** Completion percentage, 0–100 */\n percent?: number;\n /** Size of the bar track */\n size?: ProgressBarSize;\n /** Status — affects fill color */\n status?: ProgressBarStatus;\n /**\n * `'determinate'` shows a filled bar for a known percentage.\n * `'indeterminate'` shows a scanning animation for unknown progress.\n * @defaultValue 'determinate'\n */\n type?: ProgressBarType;\n /** Label text */\n label?: string;\n /**\n * Show a right-hand info slot: percentage while in progress, status icon when\n * success or exception. The two are mutually exclusive — icon replaces percentage\n * once the bar reaches a terminal state.\n * Defaults to `true` when `successPercent` is set.\n */\n showInfo?: boolean;\n /** Custom fill color (design-system token) — overrides status color */\n fillColor?: Color;\n /** Custom track/rail background color (design-system token) */\n railColor?: Color;\n /**\n * Format function for the displayed percentage value.\n * @defaultValue (percent) => `${percent}%`\n */\n format?: (percent: number) => string;\n /**\n * When set, renders a green success segment from 0 to `successPercent`%,\n * with the main fill continuing from `successPercent`% to `percent`%.\n * Clamped to [0, percent]. Also enables `showInfo` by default.\n */\n successPercent?: number;\n /**\n * Tooltip content shown when hovering the bar track.\n * Use to surface a segment breakdown, e.g. \"3 done / 3 in progress / 4 to do\".\n */\n tooltip?: string;\n}\n\n/**\n * ProgressBar shows the completion status of an operation as a filled bar.\n *\n * @example\n * ```tsx\n * <ProgressBar\n * percent={60}\n * size=\"md\"\n * label=\"Uploading\"\n * showInfo\n * />\n * ```\n */\nexport const ProgressBar = ({\n percent = 0,\n size = 'sm',\n status = 'default',\n type = 'determinate',\n label,\n showInfo,\n fillColor,\n railColor,\n format,\n successPercent,\n tooltip,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...props\n}: ProgressBarProps) => {\n const labelId = useId();\n const clampedPercent = Math.min(100, Math.max(0, percent));\n const clampedSuccessPercent =\n successPercent != null ? Math.min(clampedPercent, Math.max(0, successPercent)) : 0;\n const inProgressPercent = clampedPercent - clampedSuccessPercent;\n const hasSuccessSegment = clampedSuccessPercent > 0;\n const hasInProgressSegment = inProgressPercent > 0;\n\n // Automatically derive success status when fully complete (unless caller set exception)\n const effectiveStatus: ProgressBarStatus =\n clampedPercent >= 100 && status !== 'exception' ? 'success' : status;\n\n // showInfo defaults to true when successPercent is used\n const effectiveShowInfo = showInfo ?? successPercent != null;\n\n const isTerminal = effectiveStatus === 'exception' || effectiveStatus === 'success';\n const formattedPercent = format ? format(clampedPercent) : `${clampedPercent}%`;\n const isIndeterminate = type === 'indeterminate';\n\n const labelledBy = label ? [labelId, ariaLabelledBy].filter(Boolean).join(' ') : ariaLabelledBy;\n const accessibleLabel = labelledBy ? undefined : (ariaLabel ?? 'Progress');\n\n const track = (\n <Track\n $size={size}\n $railColor={railColor}\n role='progressbar'\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={isIndeterminate ? undefined : clampedPercent}\n aria-valuetext={isIndeterminate ? undefined : formattedPercent}\n aria-labelledby={labelledBy || undefined}\n aria-label={accessibleLabel}\n >\n {isIndeterminate ? (\n <IndeterminateFill />\n ) : (\n <>\n {hasSuccessSegment && (\n <SuccessFill\n $percent={clampedSuccessPercent}\n $hasInProgressAfter={hasInProgressSegment}\n />\n )}\n {hasInProgressSegment && (\n <Fill\n $percent={inProgressPercent}\n $left={clampedSuccessPercent}\n $status={effectiveStatus}\n $fillColor={fillColor}\n $hasSuccessBefore={hasSuccessSegment}\n />\n )}\n </>\n )}\n </Track>\n );\n\n return (\n <Container {...props}>\n {label && <LabelText id={labelId}>{label}</LabelText>}\n <BarRow>\n {tooltip ? (\n <Tooltip trigger={track} side='top' contentAlignment='center'>\n {tooltip}\n </Tooltip>\n ) : (\n track\n )}\n {effectiveShowInfo && (\n <SuffixRow>\n {isTerminal ? (\n <IconWrapper $status={effectiveStatus}>\n {effectiveStatus === 'exception' ? (\n <CircleWarningFillIcon size={16} />\n ) : (\n <CircleCheckFillIcon size={16} />\n )}\n </IconWrapper>\n ) : (\n <PercentText>{formattedPercent}</PercentText>\n )}\n </SuffixRow>\n )}\n </BarRow>\n </Container>\n );\n};\n\nexport default ProgressBar;\n","import ProgressBar from './ProgressBar';\n\nexport { ProgressBar };\nexport type {\n ProgressBarProps,\n ProgressBarSize,\n ProgressBarStatus,\n ProgressBarType,\n} from './ProgressBar';\n\nexport default ProgressBar;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/ProgressBar/ProgressBar.tsx","../../../components/ProgressBar/index.ts"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\nimport { useId } from 'react-aria';\nimport styled, { keyframes } from 'styled-components';\n\nimport { Tooltip } from '@persona/design-system/components/Tooltip';\nimport { paragraphMixins } from '@persona/design-system/mixins/text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport CircleCheckFillIcon from '@persona/icons/CircleCheckFillIcon';\nimport CircleWarningFillIcon from '@persona/icons/CircleWarningFillIcon';\nimport { type MaybeSemanticTheme, semanticColor } from 'design-system/lib/semanticColor';\n\nexport type ProgressBarStatus = 'default' | 'exception' | 'success';\nexport type ProgressBarSize = 'sm' | 'md';\nexport type ProgressBarType = 'determinate' | 'indeterminate';\n\nconst statusFill = (theme: MaybeSemanticTheme, status: ProgressBarStatus) => {\n if (status === 'exception') {\n return semanticColor(theme, 'StatusDanger4', Color.BorderInputDanger);\n }\n if (status === 'success') {\n return semanticColor(theme, 'StatusSuccess3', Color.BorderIconSuccess);\n }\n return semanticColor(theme, 'StatusInfo3', Color.BorderInputActive);\n};\n\nconst TRACK_HEIGHT: Record<ProgressBarSize, string> = {\n sm: '4px',\n md: '8px',\n};\n\n// 20px matches the line-height of TextMedium — the tallest element in the bar row\nconst BAR_ROW_HEIGHT = '20px';\n\nconst indeterminateScan = keyframes`\n 0% { left: -40%; width: 40%; }\n 60% { left: 100%; width: 40%; }\n 100% { left: 100%; width: 40%; }\n`;\n\nconst Container = styled.div`\n display: flex;\n flex-direction: column;\n width: 100%;\n`;\n\nconst LabelText = styled.span`\n ${paragraphMixins.md}\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', Color.TextPrimary)};\n`;\n\nconst BarRow = styled.div`\n display: flex;\n gap: ${Spacing[2]};\n align-items: center;\n min-height: ${BAR_ROW_HEIGHT};\n width: 100%;\n`;\n\nconst Track = styled.div<{ $size: ProgressBarSize; $railColor?: Color }>`\n flex: 1;\n height: ${({ $size }) => TRACK_HEIGHT[$size]};\n background-color: ${({ theme, $railColor }) =>\n $railColor ?? semanticColor(theme, 'BorderSubtle', Color.BorderDivider)};\n border-radius: 4px;\n overflow: hidden;\n position: relative;\n`;\n\nconst Fill = styled.div<{\n $percent: number;\n $left: number;\n $status: ProgressBarStatus;\n $fillColor?: Color;\n $hasSuccessBefore: boolean;\n}>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: ${({ $left }) => `${$left}%`};\n width: ${({ $percent }) => `${$percent}%`};\n background-color: ${({ theme, $status, $fillColor }) => $fillColor ?? statusFill(theme, $status)};\n border-radius: ${({ $hasSuccessBefore }) => ($hasSuccessBefore ? '0 4px 4px 0' : '4px')};\n transition: width 0.3s ease, left 0.3s ease;\n`;\n\nconst SuccessFill = styled.div<{ $percent: number; $hasInProgressAfter: boolean }>`\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: ${({ $percent }) => `${$percent}%`};\n background-color: ${({ theme }) => statusFill(theme, 'success')};\n border-radius: ${({ $hasInProgressAfter }) => ($hasInProgressAfter ? '4px 0 0 4px' : '4px')};\n transition: width 0.3s ease;\n`;\n\nconst IndeterminateFill = styled.div`\n position: absolute;\n inset: 0 auto 0 auto;\n height: 100%;\n background-color: ${({ theme }) => semanticColor(theme, 'FeedbackNeutral5', Color.BorderIconPrimary)};\n border-radius: 4px;\n animation: ${indeterminateScan} 2.5s ease-in-out infinite;\n`;\n\nconst SuffixRow = styled.div`\n display: flex;\n gap: ${Spacing[1]};\n align-items: center;\n flex-shrink: 0;\n`;\n\nconst PercentText = styled.span`\n ${paragraphMixins.md}\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', Color.TextPrimary)};\n white-space: nowrap;\n`;\n\nconst IconWrapper = styled.span<{ $status: 'exception' | 'success' }>`\n display: flex;\n flex-shrink: 0;\n line-height: 0;\n color: ${({ theme, $status }) => statusFill(theme, $status)};\n`;\n\nexport interface ProgressBarProps extends ComponentPropsWithoutRef<'div'> {\n /** Completion percentage, 0–100 */\n percent?: number;\n /** Size of the bar track */\n size?: ProgressBarSize;\n /** Status — affects fill color */\n status?: ProgressBarStatus;\n /**\n * `'determinate'` shows a filled bar for a known percentage.\n * `'indeterminate'` shows a scanning animation for unknown progress.\n * @defaultValue 'determinate'\n */\n type?: ProgressBarType;\n /** Label text */\n label?: string;\n /**\n * Show a right-hand info slot: percentage while in progress, status icon when\n * success or exception. The two are mutually exclusive — icon replaces percentage\n * once the bar reaches a terminal state.\n * Defaults to `true` when `successPercent` is set.\n */\n showInfo?: boolean;\n /** Custom fill color (design-system token) — overrides status color */\n fillColor?: Color;\n /** Custom track/rail background color (design-system token) */\n railColor?: Color;\n /**\n * Format function for the displayed percentage value.\n * @defaultValue (percent) => `${percent}%`\n */\n format?: (percent: number) => string;\n /**\n * When set, renders a green success segment from 0 to `successPercent`%,\n * with the main fill continuing from `successPercent`% to `percent`%.\n * Clamped to [0, percent]. Also enables `showInfo` by default.\n */\n successPercent?: number;\n /**\n * Tooltip content shown when hovering the bar track.\n * Use to surface a segment breakdown, e.g. \"3 done / 3 in progress / 4 to do\".\n */\n tooltip?: string;\n}\n\n/**\n * ProgressBar shows the completion status of an operation as a filled bar.\n *\n * @example\n * ```tsx\n * <ProgressBar\n * percent={60}\n * size=\"md\"\n * label=\"Uploading\"\n * showInfo\n * />\n * ```\n */\nexport const ProgressBar = ({\n percent = 0,\n size = 'sm',\n status = 'default',\n type = 'determinate',\n label,\n showInfo,\n fillColor,\n railColor,\n format,\n successPercent,\n tooltip,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n ...props\n}: ProgressBarProps) => {\n const labelId = useId();\n const clampedPercent = Math.min(100, Math.max(0, percent));\n const clampedSuccessPercent =\n successPercent != null ? Math.min(clampedPercent, Math.max(0, successPercent)) : 0;\n const inProgressPercent = clampedPercent - clampedSuccessPercent;\n const hasSuccessSegment = clampedSuccessPercent > 0;\n const hasInProgressSegment = inProgressPercent > 0;\n\n // Automatically derive success status when fully complete (unless caller set exception)\n const effectiveStatus: ProgressBarStatus =\n clampedPercent >= 100 && status !== 'exception' ? 'success' : status;\n\n // showInfo defaults to true when successPercent is used\n const effectiveShowInfo = showInfo ?? successPercent != null;\n\n const isTerminal = effectiveStatus === 'exception' || effectiveStatus === 'success';\n const formattedPercent = format ? format(clampedPercent) : `${clampedPercent}%`;\n const isIndeterminate = type === 'indeterminate';\n\n const labelledBy = label ? [labelId, ariaLabelledBy].filter(Boolean).join(' ') : ariaLabelledBy;\n const accessibleLabel = labelledBy ? undefined : (ariaLabel ?? 'Progress');\n\n const track = (\n <Track\n $size={size}\n $railColor={railColor}\n role='progressbar'\n aria-valuemin={0}\n aria-valuemax={100}\n aria-valuenow={isIndeterminate ? undefined : clampedPercent}\n aria-valuetext={isIndeterminate ? undefined : formattedPercent}\n aria-labelledby={labelledBy || undefined}\n aria-label={accessibleLabel}\n >\n {isIndeterminate ? (\n <IndeterminateFill />\n ) : (\n <>\n {hasSuccessSegment && (\n <SuccessFill\n $percent={clampedSuccessPercent}\n $hasInProgressAfter={hasInProgressSegment}\n />\n )}\n {hasInProgressSegment && (\n <Fill\n $percent={inProgressPercent}\n $left={clampedSuccessPercent}\n $status={effectiveStatus}\n $fillColor={fillColor}\n $hasSuccessBefore={hasSuccessSegment}\n />\n )}\n </>\n )}\n </Track>\n );\n\n return (\n <Container {...props}>\n {label && <LabelText id={labelId}>{label}</LabelText>}\n <BarRow>\n {tooltip ? (\n <Tooltip trigger={track} side='top' contentAlignment='center'>\n {tooltip}\n </Tooltip>\n ) : (\n track\n )}\n {effectiveShowInfo && (\n <SuffixRow>\n {isTerminal ? (\n <IconWrapper $status={effectiveStatus}>\n {effectiveStatus === 'exception' ? (\n <CircleWarningFillIcon size={16} />\n ) : (\n <CircleCheckFillIcon size={16} />\n )}\n </IconWrapper>\n ) : (\n <PercentText>{formattedPercent}</PercentText>\n )}\n </SuffixRow>\n )}\n </BarRow>\n </Container>\n );\n};\n\nexport default ProgressBar;\n","import ProgressBar from './ProgressBar';\n\nexport { ProgressBar };\nexport type {\n ProgressBarProps,\n ProgressBarSize,\n ProgressBarStatus,\n ProgressBarType,\n} from './ProgressBar';\n\nexport default ProgressBar;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { i as StepStatus, n as ProgressIndicatorProps, r as ProgressIndicatorStep, t as ProgressIndicator } from "../../ProgressIndicator-DbOLOaxJ.mjs";
1
+ import { i as StepStatus, n as ProgressIndicatorProps, r as ProgressIndicatorStep, t as ProgressIndicator } from "../../ProgressIndicator-CYyM6OSx.mjs";
2
2
  export { ProgressIndicator, ProgressIndicator as default, ProgressIndicatorProps, ProgressIndicatorStep, StepStatus };
@@ -1,2 +1,2 @@
1
- import { t as ProgressIndicator } from "../../ProgressIndicator-3A4Aqci6.mjs";
1
+ import { t as ProgressIndicator } from "../../ProgressIndicator-BpF3XLn3.mjs";
2
2
  export { ProgressIndicator, ProgressIndicator as default };
@@ -1,2 +1,2 @@
1
- import { t as Radio } from "../../Radio-Cxt89w8s.mjs";
1
+ import { t as Radio } from "../../Radio-DPaX-9LH.mjs";
2
2
  export { Radio, Radio as default };
@@ -1,2 +1,2 @@
1
- import { n as RadioGroupProps, t as RadioGroup } from "../../RadioGroup-BjrfVPZQ.mjs";
1
+ import { n as RadioGroupProps, t as RadioGroup } from "../../RadioGroup-C0l0pdEt.mjs";
2
2
  export { RadioGroup, RadioGroup as default, RadioGroupProps };
@@ -1,2 +1,2 @@
1
- import { t as RadioGroup } from "../../RadioGroup-B6Cg1kdm.mjs";
1
+ import { t as RadioGroup } from "../../RadioGroup-D7f4m2Uc.mjs";
2
2
  export { RadioGroup, RadioGroup as default };
@@ -1,8 +1,10 @@
1
1
  import { a as styled } from "../../styledComponentsInterop-NxwFjeA4.mjs";
2
+ import { semanticColor } from "../../lib/semanticColor.mjs";
2
3
  import { i as Paragraph } from "../../Text-BdluS7Fy.mjs";
3
- import { n as Stack, t as HStack } from "../../Stack-ChsImaEY.mjs";
4
- import { t as IconButton } from "../../IconButton-CqTPMhjV.mjs";
5
- import { t as LoadingShimmer } from "../../LoadingShimmer-Dizk2sZu.mjs";
4
+ import { semanticScrollbar } from "../../mixins/scrollbar.mjs";
5
+ import { n as Stack, t as HStack } from "../../Stack-CEPzs4Pb.mjs";
6
+ import { t as IconButton } from "../../IconButton-BHFCjvzs.mjs";
7
+ import { t as LoadingShimmer } from "../../LoadingShimmer-Ds7rvIUN.mjs";
6
8
  import { Color, Spacing } from "@persona/design-tokens";
7
9
  import { useCallback, useEffect, useRef, useState } from "react";
8
10
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -73,7 +75,7 @@ const Handle = styled.div`
73
75
 
74
76
  &:hover::after,
75
77
  &${`.${DRAGGING_CLASSNAME}`}::after {
76
- background-color: ${({ theme }) => theme.color.border.active};
78
+ background-color: ${({ theme }) => semanticColor(theme, "BorderFocus", theme.color.border.active)};
77
79
  }
78
80
  `;
79
81
  const RightPanelResizeHandle = ({ onMove, onMoveTo, onMoveStart, onMoveEnd, onDoubleClick }) => {
@@ -165,17 +167,18 @@ const PanelInner = styled.div`
165
167
  outline: none;
166
168
  display: flex;
167
169
  flex-direction: column;
168
- background: ${Color.BackgroundPrimary};
169
- border-left: 1px solid ${Color.BorderDivider};
170
+ background: ${({ theme }) => semanticColor(theme, "SurfacePrimary", Color.BackgroundPrimary)};
171
+ border-left: 1px solid ${({ theme }) => semanticColor(theme, "BorderSubtle", Color.BorderDivider)};
170
172
  `;
171
173
  const PanelHeader = styled.div`
172
174
  padding: ${Spacing[4]};
173
- border-bottom: 1px solid ${({ theme }) => theme.color.border.primary};
175
+ border-bottom: 1px solid ${({ theme }) => semanticColor(theme, "BorderSubtle", theme.color.border.primary)};
174
176
  flex-shrink: 0;
175
177
  `;
176
178
  const PanelBody = styled.div`
177
179
  flex: 1;
178
180
  overflow-y: auto;
181
+ ${semanticScrollbar}
179
182
  padding: ${Spacing[4]};
180
183
  padding-bottom: ${BODY_BOTTOM_PADDING};
181
184
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/RightPanel/RightPanelLoadingContent.tsx","../../../components/RightPanel/RightPanelResizeHandle.tsx","../../../components/RightPanel/RightPanel.tsx"],"sourcesContent":["import { LoadingShimmer } from '@persona/design-system/components/LoadingShimmer';\nimport Stack, { HStack } from '@persona/design-system/components/Stack';\nimport { Spacing } from '@persona/design-tokens';\n\nconst RightPanelLoadingContent = () => (\n <Stack spacing={Spacing[5]} aria-label='Loading panel content'>\n <Stack spacing={Spacing[2]}>\n <LoadingShimmer width='30%' height='16px' />\n <LoadingShimmer width='100%' height='40px' />\n </Stack>\n <Stack spacing={Spacing[2]}>\n <LoadingShimmer width='35%' height='16px' />\n <LoadingShimmer width='100%' height='200px' />\n </Stack>\n <HStack justify='flex-end'>\n <LoadingShimmer width='80px' height='32px' />\n </HStack>\n </Stack>\n);\n\nexport default RightPanelLoadingContent;\n","import { type FC, type KeyboardEvent, type PointerEvent, useEffect, useRef, useState } from 'react';\nimport { mergeProps, useMove } from 'react-aria';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nconst DRAGGING_CLASSNAME = 'dragging';\nconst KEYBOARD_RESIZE_STEP = 10;\nconst KEYBOARD_RESIZE_STEP_LARGE = 40;\n\nexport interface RightPanelResizeHandleProps {\n onMove: (deltaX: number) => void;\n onMoveTo?: (clientX: number) => void;\n onMoveStart?: () => void;\n onMoveEnd?: () => void;\n onDoubleClick?: () => void;\n}\n\nconst Handle = styled.div`\n touch-action: none;\n cursor: col-resize;\n position: absolute;\n z-index: 1;\n width: ${Spacing[2]};\n top: 0;\n bottom: 0;\n left: 0;\n height: 100%;\n\n &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 2px;\n background-color: transparent;\n transition: background-color 0.15s ease-in;\n transition-delay: 0.025s;\n }\n\n &:hover::after,\n &${`.${DRAGGING_CLASSNAME}`}::after {\n background-color: ${({ theme }) => theme.color.border.active};\n }\n`;\n\nconst RightPanelResizeHandle: FC<RightPanelResizeHandleProps> = ({\n onMove,\n onMoveTo,\n onMoveStart,\n onMoveEnd,\n onDoubleClick,\n}) => {\n const [isDragging, setIsDragging] = useState(false);\n const isDraggingRef = useRef(false);\n const capturedPointerIdRef = useRef<number | null>(null);\n const onMoveEndRef = useRef(onMoveEnd);\n onMoveEndRef.current = onMoveEnd;\n\n const { moveProps } = useMove({\n onMoveStart(e) {\n if (e.pointerType !== 'keyboard') {\n isDraggingRef.current = true;\n setIsDragging(true);\n }\n onMoveStart?.();\n },\n onMove(e) {\n if (e.pointerType !== 'keyboard') {\n return;\n }\n const step = e.shiftKey ? KEYBOARD_RESIZE_STEP_LARGE : KEYBOARD_RESIZE_STEP;\n onMove(e.deltaX * step);\n },\n onMoveEnd(e) {\n if (e.pointerType !== 'keyboard') {\n isDraggingRef.current = false;\n setIsDragging(false);\n capturedPointerIdRef.current = null;\n }\n onMoveEnd?.();\n },\n });\n\n useEffect(() => {\n return () => {\n if (isDraggingRef.current) {\n onMoveEndRef.current?.();\n }\n };\n }, []);\n\n return (\n <Handle\n {...mergeProps(moveProps, {\n onDoubleClick,\n onKeyDown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n onDoubleClick?.();\n e.preventDefault();\n }\n },\n onLostPointerCapture: (e: PointerEvent<HTMLDivElement>) => {\n if (capturedPointerIdRef.current !== e.pointerId) {\n return;\n }\n capturedPointerIdRef.current = null;\n window.dispatchEvent(\n new PointerEvent('pointerup', {\n bubbles: true,\n pointerId: e.pointerId,\n pointerType: e.pointerType || 'mouse',\n }),\n );\n },\n onPointerDown: (e: PointerEvent<HTMLDivElement>) => {\n if (e.button !== 0 || capturedPointerIdRef.current != null) {\n return;\n }\n capturedPointerIdRef.current = e.pointerId;\n try {\n e.currentTarget.setPointerCapture(e.pointerId);\n } catch {\n // Pointer capture unsupported.\n }\n },\n onPointerMove: (e: PointerEvent<HTMLDivElement>) => {\n if (capturedPointerIdRef.current !== e.pointerId) {\n return;\n }\n onMoveTo?.(e.clientX);\n },\n })}\n aria-label='Resize right panel'\n aria-orientation='vertical'\n role='separator'\n tabIndex={0}\n className={isDragging ? DRAGGING_CLASSNAME : undefined}\n />\n );\n};\n\nexport default RightPanelResizeHandle;\n","import { AnimatePresence, motion, useReducedMotion } from 'framer-motion';\nimport {\n type KeyboardEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport styled from 'styled-components';\n\nimport { IconButton } from '@persona/design-system/components/Button';\nimport Stack, { HStack } from '@persona/design-system/components/Stack';\nimport { Paragraph } from '@persona/design-system/components/Text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { XIcon } from '@persona/icons';\n\nimport RightPanelLoadingContent from './RightPanelLoadingContent';\nimport RightPanelResizeHandle from './RightPanelResizeHandle';\n\nconst OPEN_DURATION = 0.4;\nconst CLOSE_DURATION = 0.3;\nconst DEFAULT_MIN_WIDTH = 450;\nconst MAX_WIDTH_RATIO = 0.5;\n// Reserves scroll-area space so form submit buttons don't collide with the\n// floating Copilot button (anchored at bottom: Spacing[5], 48px hit target).\nconst BODY_BOTTOM_PADDING = `calc(${Spacing[5]} + 48px + ${Spacing[5]})`;\n\nconst PanelOuter = styled(motion.div)`\n flex-shrink: 0;\n height: 100%;\n overflow: hidden;\n`;\n\nconst PanelInner = styled.div<{ $width: number; $useMinWidth: boolean }>`\n position: relative;\n ${({ $width, $useMinWidth }) => ($useMinWidth ? `min-width: ${$width}px;` : '')}\n height: 100%;\n outline: none;\n display: flex;\n flex-direction: column;\n background: ${Color.BackgroundPrimary};\n border-left: 1px solid ${Color.BorderDivider};\n`;\n\nconst PanelHeader = styled.div`\n padding: ${Spacing[4]};\n border-bottom: 1px solid ${({ theme }) => theme.color.border.primary};\n flex-shrink: 0;\n`;\n\nconst PanelBody = styled.div`\n flex: 1;\n overflow-y: auto;\n padding: ${Spacing[4]};\n padding-bottom: ${BODY_BOTTOM_PADDING};\n`;\n\nexport interface RightPanelProps {\n /** Controlled open state */\n open?: boolean;\n /** Panel id */\n id?: string;\n /** Called when open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** Panel title rendered in header */\n title: string;\n /** Optional description below title */\n description?: string;\n /** Panel content */\n children: ReactNode;\n /** Panel width in pixels */\n width?: number;\n /** Minimum width when resizable. Defaults to 450px. */\n minWidth?: number;\n /** When true, the panel is drag-resizable via its left edge. */\n resizable?: boolean;\n /** When true, render a shimmer placeholder in the body instead of children. */\n loading?: boolean;\n}\n\nconst RightPanel = ({\n id,\n open = false,\n onOpenChange,\n title,\n description,\n children,\n width = DEFAULT_MIN_WIDTH,\n minWidth = DEFAULT_MIN_WIDTH,\n resizable = false,\n loading = false,\n}: RightPanelProps) => {\n const panelRef = useRef<HTMLDivElement>(null);\n const previousActiveElementRef = useRef<HTMLElement | null>(null);\n const prefersReducedMotion = useReducedMotion();\n\n const defaultWidth = resizable ? Math.max(minWidth, width) : width;\n const [currentWidth, setCurrentWidth] = useState(defaultWidth);\n const [shouldAnimateWidth, setShouldAnimateWidth] = useState(true);\n\n const effectiveWidth = resizable ? currentWidth : width;\n\n const handleClose = useCallback(() => {\n onOpenChange?.(false);\n }, [onOpenChange]);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n handleClose();\n }\n },\n [handleClose],\n );\n\n useEffect(() => {\n if (open) {\n previousActiveElementRef.current = document.activeElement as HTMLElement | null;\n panelRef.current?.focus();\n } else if (\n previousActiveElementRef.current &&\n document.contains(previousActiveElementRef.current)\n ) {\n previousActiveElementRef.current.focus();\n previousActiveElementRef.current = null;\n }\n }, [open]);\n\n const clampWidth = useCallback(\n (nextWidth: number) =>\n Math.min(MAX_WIDTH_RATIO * window.innerWidth, Math.max(minWidth, nextWidth)),\n [minWidth],\n );\n\n const handleMove = useCallback(\n (deltaX: number) => {\n setCurrentWidth((current) => clampWidth(current - deltaX));\n },\n [clampWidth],\n );\n\n const handleMoveTo = useCallback(\n (clientX: number) => {\n const rightEdge = panelRef.current?.getBoundingClientRect().right ?? window.innerWidth;\n setCurrentWidth(clampWidth(rightEdge - clientX));\n },\n [clampWidth],\n );\n\n const handleMoveStart = useCallback(() => {\n setShouldAnimateWidth(false);\n }, []);\n\n const handleMoveEnd = useCallback(() => {\n setShouldAnimateWidth(true);\n }, []);\n\n const handleDoubleClick = useCallback(() => {\n setShouldAnimateWidth(true);\n setCurrentWidth(defaultWidth);\n }, [defaultWidth]);\n\n return (\n <AnimatePresence>\n {open && (\n <PanelOuter\n initial={{\n width: prefersReducedMotion ? effectiveWidth : 0,\n minWidth: prefersReducedMotion ? effectiveWidth : 0,\n }}\n animate={{\n width: effectiveWidth,\n minWidth: effectiveWidth,\n transition: {\n duration: prefersReducedMotion ? 0 : OPEN_DURATION,\n ease: 'circOut',\n width: shouldAnimateWidth && !prefersReducedMotion ? undefined : { duration: 0 },\n minWidth: shouldAnimateWidth && !prefersReducedMotion ? undefined : { duration: 0 },\n },\n }}\n exit={{\n width: 0,\n minWidth: 0,\n transition: {\n duration: prefersReducedMotion ? 0 : CLOSE_DURATION,\n ease: 'circOut',\n },\n }}\n >\n <PanelInner\n ref={panelRef}\n id={id}\n $width={effectiveWidth}\n $useMinWidth={shouldAnimateWidth}\n role='complementary'\n aria-label={title}\n tabIndex={-1}\n onKeyDown={handleKeyDown}\n >\n {resizable && (\n <RightPanelResizeHandle\n onMove={handleMove}\n onMoveTo={handleMoveTo}\n onMoveStart={handleMoveStart}\n onMoveEnd={handleMoveEnd}\n onDoubleClick={handleDoubleClick}\n />\n )}\n <PanelHeader>\n <Stack spacing={Spacing[2]}>\n <HStack justify='space-between' align='center' spacing={Spacing[2]}>\n <Paragraph as='h3' size='lg' weight='bold' color='primary'>\n {title}\n </Paragraph>\n <IconButton size='md' aria-label='Close' onClick={handleClose}>\n <XIcon />\n </IconButton>\n </HStack>\n {description && (\n <Paragraph size='md' color='secondary'>\n {description}\n </Paragraph>\n )}\n </Stack>\n </PanelHeader>\n <PanelBody>{loading ? <RightPanelLoadingContent /> : children}</PanelBody>\n </PanelInner>\n </PanelOuter>\n )}\n </AnimatePresence>\n );\n};\n\nexport { RightPanel };\nexport default RightPanel;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/RightPanel/RightPanelLoadingContent.tsx","../../../components/RightPanel/RightPanelResizeHandle.tsx","../../../components/RightPanel/RightPanel.tsx"],"sourcesContent":["import { LoadingShimmer } from '@persona/design-system/components/LoadingShimmer';\nimport Stack, { HStack } from '@persona/design-system/components/Stack';\nimport { Spacing } from '@persona/design-tokens';\n\nconst RightPanelLoadingContent = () => (\n <Stack spacing={Spacing[5]} aria-label='Loading panel content'>\n <Stack spacing={Spacing[2]}>\n <LoadingShimmer width='30%' height='16px' />\n <LoadingShimmer width='100%' height='40px' />\n </Stack>\n <Stack spacing={Spacing[2]}>\n <LoadingShimmer width='35%' height='16px' />\n <LoadingShimmer width='100%' height='200px' />\n </Stack>\n <HStack justify='flex-end'>\n <LoadingShimmer width='80px' height='32px' />\n </HStack>\n </Stack>\n);\n\nexport default RightPanelLoadingContent;\n","import { type FC, type KeyboardEvent, type PointerEvent, useEffect, useRef, useState } from 'react';\nimport { mergeProps, useMove } from 'react-aria';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { semanticColor } from 'design-system/lib/semanticColor';\n\nconst DRAGGING_CLASSNAME = 'dragging';\nconst KEYBOARD_RESIZE_STEP = 10;\nconst KEYBOARD_RESIZE_STEP_LARGE = 40;\n\nexport interface RightPanelResizeHandleProps {\n onMove: (deltaX: number) => void;\n onMoveTo?: (clientX: number) => void;\n onMoveStart?: () => void;\n onMoveEnd?: () => void;\n onDoubleClick?: () => void;\n}\n\nconst Handle = styled.div`\n touch-action: none;\n cursor: col-resize;\n position: absolute;\n z-index: 1;\n width: ${Spacing[2]};\n top: 0;\n bottom: 0;\n left: 0;\n height: 100%;\n\n &::after {\n content: '';\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 2px;\n background-color: transparent;\n transition: background-color 0.15s ease-in;\n transition-delay: 0.025s;\n }\n\n &:hover::after,\n &${`.${DRAGGING_CLASSNAME}`}::after {\n background-color: ${({ theme }) => semanticColor(theme, 'BorderFocus', theme.color.border.active)};\n }\n`;\n\nconst RightPanelResizeHandle: FC<RightPanelResizeHandleProps> = ({\n onMove,\n onMoveTo,\n onMoveStart,\n onMoveEnd,\n onDoubleClick,\n}) => {\n const [isDragging, setIsDragging] = useState(false);\n const isDraggingRef = useRef(false);\n const capturedPointerIdRef = useRef<number | null>(null);\n const onMoveEndRef = useRef(onMoveEnd);\n onMoveEndRef.current = onMoveEnd;\n\n const { moveProps } = useMove({\n onMoveStart(e) {\n if (e.pointerType !== 'keyboard') {\n isDraggingRef.current = true;\n setIsDragging(true);\n }\n onMoveStart?.();\n },\n onMove(e) {\n if (e.pointerType !== 'keyboard') {\n return;\n }\n const step = e.shiftKey ? KEYBOARD_RESIZE_STEP_LARGE : KEYBOARD_RESIZE_STEP;\n onMove(e.deltaX * step);\n },\n onMoveEnd(e) {\n if (e.pointerType !== 'keyboard') {\n isDraggingRef.current = false;\n setIsDragging(false);\n capturedPointerIdRef.current = null;\n }\n onMoveEnd?.();\n },\n });\n\n useEffect(() => {\n return () => {\n if (isDraggingRef.current) {\n onMoveEndRef.current?.();\n }\n };\n }, []);\n\n return (\n <Handle\n {...mergeProps(moveProps, {\n onDoubleClick,\n onKeyDown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n onDoubleClick?.();\n e.preventDefault();\n }\n },\n onLostPointerCapture: (e: PointerEvent<HTMLDivElement>) => {\n if (capturedPointerIdRef.current !== e.pointerId) {\n return;\n }\n capturedPointerIdRef.current = null;\n window.dispatchEvent(\n new PointerEvent('pointerup', {\n bubbles: true,\n pointerId: e.pointerId,\n pointerType: e.pointerType || 'mouse',\n }),\n );\n },\n onPointerDown: (e: PointerEvent<HTMLDivElement>) => {\n if (e.button !== 0 || capturedPointerIdRef.current != null) {\n return;\n }\n capturedPointerIdRef.current = e.pointerId;\n try {\n e.currentTarget.setPointerCapture(e.pointerId);\n } catch {\n // Pointer capture unsupported.\n }\n },\n onPointerMove: (e: PointerEvent<HTMLDivElement>) => {\n if (capturedPointerIdRef.current !== e.pointerId) {\n return;\n }\n onMoveTo?.(e.clientX);\n },\n })}\n aria-label='Resize right panel'\n aria-orientation='vertical'\n role='separator'\n tabIndex={0}\n className={isDragging ? DRAGGING_CLASSNAME : undefined}\n />\n );\n};\n\nexport default RightPanelResizeHandle;\n","import { AnimatePresence, motion, useReducedMotion } from 'framer-motion';\nimport {\n type KeyboardEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport styled from 'styled-components';\n\nimport { IconButton } from '@persona/design-system/components/Button';\nimport Stack, { HStack } from '@persona/design-system/components/Stack';\nimport { Paragraph } from '@persona/design-system/components/Text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { XIcon } from '@persona/icons';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport { semanticScrollbar } from 'design-system/mixins/scrollbar';\n\nimport RightPanelLoadingContent from './RightPanelLoadingContent';\nimport RightPanelResizeHandle from './RightPanelResizeHandle';\n\nconst OPEN_DURATION = 0.4;\nconst CLOSE_DURATION = 0.3;\nconst DEFAULT_MIN_WIDTH = 450;\nconst MAX_WIDTH_RATIO = 0.5;\n// Reserves scroll-area space so form submit buttons don't collide with the\n// floating Copilot button (anchored at bottom: Spacing[5], 48px hit target).\nconst BODY_BOTTOM_PADDING = `calc(${Spacing[5]} + 48px + ${Spacing[5]})`;\n\nconst PanelOuter = styled(motion.div)`\n flex-shrink: 0;\n height: 100%;\n overflow: hidden;\n`;\n\nconst PanelInner = styled.div<{ $width: number; $useMinWidth: boolean }>`\n position: relative;\n ${({ $width, $useMinWidth }) => ($useMinWidth ? `min-width: ${$width}px;` : '')}\n height: 100%;\n outline: none;\n display: flex;\n flex-direction: column;\n background: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', Color.BackgroundPrimary)};\n border-left: 1px solid ${({ theme }) => semanticColor(theme, 'BorderSubtle', Color.BorderDivider)};\n`;\n\nconst PanelHeader = styled.div`\n padding: ${Spacing[4]};\n border-bottom: 1px solid ${({ theme }) =>\n semanticColor(theme, 'BorderSubtle', theme.color.border.primary)};\n flex-shrink: 0;\n`;\n\nconst PanelBody = styled.div`\n flex: 1;\n overflow-y: auto;\n ${semanticScrollbar}\n padding: ${Spacing[4]};\n padding-bottom: ${BODY_BOTTOM_PADDING};\n`;\n\nexport interface RightPanelProps {\n /** Controlled open state */\n open?: boolean;\n /** Panel id */\n id?: string;\n /** Called when open state changes */\n onOpenChange?: (isOpen: boolean) => void;\n /** Panel title rendered in header */\n title: string;\n /** Optional description below title */\n description?: string;\n /** Panel content */\n children: ReactNode;\n /** Panel width in pixels */\n width?: number;\n /** Minimum width when resizable. Defaults to 450px. */\n minWidth?: number;\n /** When true, the panel is drag-resizable via its left edge. */\n resizable?: boolean;\n /** When true, render a shimmer placeholder in the body instead of children. */\n loading?: boolean;\n}\n\nconst RightPanel = ({\n id,\n open = false,\n onOpenChange,\n title,\n description,\n children,\n width = DEFAULT_MIN_WIDTH,\n minWidth = DEFAULT_MIN_WIDTH,\n resizable = false,\n loading = false,\n}: RightPanelProps) => {\n const panelRef = useRef<HTMLDivElement>(null);\n const previousActiveElementRef = useRef<HTMLElement | null>(null);\n const prefersReducedMotion = useReducedMotion();\n\n const defaultWidth = resizable ? Math.max(minWidth, width) : width;\n const [currentWidth, setCurrentWidth] = useState(defaultWidth);\n const [shouldAnimateWidth, setShouldAnimateWidth] = useState(true);\n\n const effectiveWidth = resizable ? currentWidth : width;\n\n const handleClose = useCallback(() => {\n onOpenChange?.(false);\n }, [onOpenChange]);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n handleClose();\n }\n },\n [handleClose],\n );\n\n useEffect(() => {\n if (open) {\n previousActiveElementRef.current = document.activeElement as HTMLElement | null;\n panelRef.current?.focus();\n } else if (\n previousActiveElementRef.current &&\n document.contains(previousActiveElementRef.current)\n ) {\n previousActiveElementRef.current.focus();\n previousActiveElementRef.current = null;\n }\n }, [open]);\n\n const clampWidth = useCallback(\n (nextWidth: number) =>\n Math.min(MAX_WIDTH_RATIO * window.innerWidth, Math.max(minWidth, nextWidth)),\n [minWidth],\n );\n\n const handleMove = useCallback(\n (deltaX: number) => {\n setCurrentWidth((current) => clampWidth(current - deltaX));\n },\n [clampWidth],\n );\n\n const handleMoveTo = useCallback(\n (clientX: number) => {\n const rightEdge = panelRef.current?.getBoundingClientRect().right ?? window.innerWidth;\n setCurrentWidth(clampWidth(rightEdge - clientX));\n },\n [clampWidth],\n );\n\n const handleMoveStart = useCallback(() => {\n setShouldAnimateWidth(false);\n }, []);\n\n const handleMoveEnd = useCallback(() => {\n setShouldAnimateWidth(true);\n }, []);\n\n const handleDoubleClick = useCallback(() => {\n setShouldAnimateWidth(true);\n setCurrentWidth(defaultWidth);\n }, [defaultWidth]);\n\n return (\n <AnimatePresence>\n {open && (\n <PanelOuter\n initial={{\n width: prefersReducedMotion ? effectiveWidth : 0,\n minWidth: prefersReducedMotion ? effectiveWidth : 0,\n }}\n animate={{\n width: effectiveWidth,\n minWidth: effectiveWidth,\n transition: {\n duration: prefersReducedMotion ? 0 : OPEN_DURATION,\n ease: 'circOut',\n width: shouldAnimateWidth && !prefersReducedMotion ? undefined : { duration: 0 },\n minWidth: shouldAnimateWidth && !prefersReducedMotion ? undefined : { duration: 0 },\n },\n }}\n exit={{\n width: 0,\n minWidth: 0,\n transition: {\n duration: prefersReducedMotion ? 0 : CLOSE_DURATION,\n ease: 'circOut',\n },\n }}\n >\n <PanelInner\n ref={panelRef}\n id={id}\n $width={effectiveWidth}\n $useMinWidth={shouldAnimateWidth}\n role='complementary'\n aria-label={title}\n tabIndex={-1}\n onKeyDown={handleKeyDown}\n >\n {resizable && (\n <RightPanelResizeHandle\n onMove={handleMove}\n onMoveTo={handleMoveTo}\n onMoveStart={handleMoveStart}\n onMoveEnd={handleMoveEnd}\n onDoubleClick={handleDoubleClick}\n />\n )}\n <PanelHeader>\n <Stack spacing={Spacing[2]}>\n <HStack justify='space-between' align='center' spacing={Spacing[2]}>\n <Paragraph as='h3' size='lg' weight='bold' color='primary'>\n {title}\n </Paragraph>\n <IconButton size='md' aria-label='Close' onClick={handleClose}>\n <XIcon />\n </IconButton>\n </HStack>\n {description && (\n <Paragraph size='md' color='secondary'>\n {description}\n </Paragraph>\n )}\n </Stack>\n </PanelHeader>\n <PanelBody>{loading ? <RightPanelLoadingContent /> : children}</PanelBody>\n </PanelInner>\n </PanelOuter>\n )}\n </AnimatePresence>\n );\n};\n\nexport { RightPanel };\nexport default RightPanel;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { i as SegmentedControlProps, n as SegmentedControlItem, t as SegmentedControl } from "../../SegmentedControl-Crr_aHAs.mjs";
1
+ import { i as SegmentedControlProps, n as SegmentedControlItem, t as SegmentedControl } from "../../SegmentedControl-B9qLyIIW.mjs";
2
2
  export { SegmentedControl, SegmentedControl as default, SegmentedControlItem, SegmentedControlProps };
@@ -1,2 +1,2 @@
1
- import { n as SegmentedControlItem, t as SegmentedControl } from "../../SegmentedControl-BcwfLuHA.mjs";
1
+ import { n as SegmentedControlItem, t as SegmentedControl } from "../../SegmentedControl-zEvBtVj0.mjs";
2
2
  export { SegmentedControl, SegmentedControl as default, SegmentedControlItem };
@@ -1,2 +1,2 @@
1
- import { i as SelectProps, n as Select, r as SelectHeader, t as Option } from "../../Select-CJQeuCiF.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 };
@@ -1,2 +1,2 @@
1
- import { n as Select, r as SelectHeader, t as Option } from "../../Select-BstCz8P1.mjs";
1
+ import { n as Select, r as SelectHeader, t as Option } from "../../Select-BoZuM_e9.mjs";
2
2
  export { Option, Select, Select as default, SelectHeader };
@@ -136,7 +136,7 @@ const SliderTrack = styled.div`
136
136
 
137
137
  ${({ theme, percents, track, disabled }) => {
138
138
  const activeColor = disabled ? semanticColor(theme, "InputBorderDisabled", Color.BorderInputDisabled) : semanticColor(theme, "InputBorderAccent", Color.CoreBlue700);
139
- const trackColor = semanticColor(theme, "BorderDivider", Color.BorderDivider);
139
+ const trackColor = semanticColor(theme, "BorderSubtle", Color.BorderDivider);
140
140
  if (track === false) return css`
141
141
  background: ${trackColor};
142
142
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/Slider/SliderThumb.tsx","../../../components/Slider/Slider.tsx","../../../components/Slider/SliderRHF.tsx"],"sourcesContent":["import {\n autoUpdate,\n type ElementProps,\n flip,\n type FloatingContext,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { useFocusRing } from '@react-aria/focus';\nimport { useSliderThumb } from '@react-aria/slider';\nimport { mergeProps } from '@react-aria/utils';\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport type { SliderState } from '@react-stately/slider';\nimport { debounce } from 'lodash-es';\nimport {\n type OutputHTMLAttributes,\n type RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled from 'styled-components';\n\nimport { Color } from '@persona/design-tokens';\nimport { FloatingTooltip } from 'design-system/components/Tooltip';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport { focusStyle } from 'design-system/mixins/focus';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst Tooltip = styled(FloatingTooltip)`\n ${paragraphMixins.sm};\n`;\n\nconst Thumb = styled('div')<{ disabled?: boolean }>`\n /* Note this will break if the element is not on a white background. Variable is provided to be able to override. */\n --background-color-behind-thumb: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', Color.PrimaryWhite)};\n box-sizing: border-box;\n width: 16px;\n height: 16px;\n background: ${({ theme, disabled }) =>\n disabled\n ? semanticColor(theme, 'InputSurfaceDisabled', Color.BackgroundInputDisabled)\n : semanticColor(theme, 'InputSurfaceInverseStatic', Color.BackgroundInputDefault)};\n cursor: ${(props) => (props.disabled ? 'inherit' : 'pointer')};\n border-radius: 50%;\n border: 1px solid\n ${({ theme, disabled }) =>\n disabled\n ? semanticColor(theme, 'InputBorderDisabled', Color.BorderInputDisabled)\n : semanticColor(theme, 'BorderDefault', Color.BorderInputDisabled)};\n /* Enable clicks on thumb */\n pointer-events: auto;\n\n &[data-focused] {\n ${focusStyle}\n /* Extra pixel of size to overlap into the outline, fixing a small visual bug */\n box-shadow: 0 0 0 2px var(--background-color-behind-thumb);\n }\n`;\n\ninterface SliderThumbProps {\n state: SliderState;\n trackRef: RefObject<HTMLElement>;\n index: number;\n outputProps: OutputHTMLAttributes<HTMLOutputElement>;\n hideTooltips?: boolean;\n}\n\ninterface UsePressedOptions {\n delay?: number;\n}\n\nconst usePressed = (context: FloatingContext, options?: UsePressedOptions): ElementProps => {\n const closeHandler = useMemo(\n () => debounce(() => context.onOpenChange(false), options?.delay ?? 500),\n [],\n );\n return {\n reference: {\n onPointerDown: () => {\n context.onOpenChange(true);\n },\n onPointerUp: () => {\n closeHandler();\n },\n },\n };\n};\n\nconst SliderThumb = ({ state, trackRef, index, outputProps, hideTooltips }: SliderThumbProps) => {\n const inputRef = useRef(null);\n const { thumbProps, inputProps } = useSliderThumb(\n {\n index,\n trackRef,\n inputRef,\n },\n state,\n );\n\n const { focusProps, isFocused } = useFocusRing();\n\n const [open, setOpen] = useState(false);\n\n const { x, y, refs, strategy, context } = useFloating({\n placement: 'top',\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [offset(4), flip(), shift({ padding: 4 })],\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useRole(context, { role: 'tooltip' }),\n useDismiss(context),\n usePressed(context),\n ]);\n\n useEffect(() => {\n setOpen(isFocused);\n }, [isFocused]);\n\n return (\n <div\n style={{\n position: 'absolute',\n top: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n left: `${state.getThumbPercent(index) * 100}%`,\n }}\n >\n {open && !hideTooltips && (\n <Tooltip\n {...mergeProps(\n getFloatingProps({\n ref: refs.setFloating,\n style: {\n position: strategy,\n top: y ?? '',\n left: x ?? '',\n },\n }),\n outputProps,\n )}\n >\n {state.getThumbValueLabel(index)}\n </Tooltip>\n )}\n <Thumb\n {...mergeProps(\n thumbProps,\n getReferenceProps({\n ref: refs.setReference,\n }),\n isFocused ? { 'data-focused': true } : undefined,\n )}\n >\n <VisuallyHidden>\n <input ref={inputRef} {...mergeProps(inputProps, focusProps)} />\n </VisuallyHidden>\n </Thumb>\n </div>\n );\n};\n\nexport default SliderThumb;\n","import type { NumberFormatOptions } from '@internationalized/number';\nimport { useNumberFormatter } from '@react-aria/i18n';\nimport { useSlider } from '@react-aria/slider';\nimport { useSliderState } from '@react-stately/slider';\nimport type { SliderProps as SliderPropsType } from '@react-types/slider';\nimport { type FocusEventHandler, type ReactNode, useRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport SliderThumb from 'design-system/components/Slider/SliderThumb';\nimport { semanticColor, semanticOnly } from 'design-system/lib/semanticColor';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst SliderContainer = styled.div`\n display: flex;\n align-items: center;\n touch-action: none;\n position: relative;\n`;\n\nconst SliderLabel = styled.div<{ $disabled?: boolean }>`\n ${paragraphMixins.md};\n ${({ $disabled }) =>\n semanticOnly((tokens) => `color: ${$disabled ? tokens.FgDisabled : tokens.FgPrimary};`)}\n &:first-of-type {\n padding-right: ${Spacing[2]};\n }\n\n &:last-of-type {\n padding-left: ${Spacing[2]};\n }\n`;\n\ntype SliderTrackProps = {\n track?: boolean;\n percents: number[];\n disabled?: boolean;\n};\nconst SliderTrack = styled.div<SliderTrackProps>`\n position: relative;\n width: 100%;\n height: 4px;\n border-radius: 4px;\n outline: none;\n transition: background 0.2s;\n\n /* Disable clicks on slide bar */\n pointer-events: none;\n\n ${({ theme, percents, track, disabled }) => {\n const activeColor = disabled\n ? semanticColor(theme, 'InputBorderDisabled', Color.BorderInputDisabled)\n : semanticColor(theme, 'InputBorderAccent', Color.CoreBlue700);\n const trackColor = semanticColor(theme, 'BorderDivider', Color.BorderDivider);\n\n if (track === false) {\n return css`\n background: ${trackColor};\n `;\n }\n\n if (percents.length === 2) {\n return css`\n background: linear-gradient(\n to right,\n ${trackColor} 0%,\n ${trackColor} ${percents[0] * 100}%,\n ${activeColor} ${percents[0] * 100}%,\n ${activeColor} ${percents[1] * 100}%,\n ${trackColor} ${percents[1] * 100}%,\n ${trackColor} 100%\n );\n `;\n }\n\n const leftColor = activeColor;\n const rightColor = trackColor;\n\n return css`\n background: linear-gradient(\n to right,\n ${leftColor} 0%,\n ${leftColor} ${percents[0] * 100}%,\n ${rightColor} ${percents[0] * 100}%,\n ${rightColor} 100%\n );\n `;\n }}\n`;\n\nexport interface SliderProps<T = number | number[]> {\n min?: number;\n minLabel?: ReactNode;\n max?: number;\n maxLabel?: ReactNode;\n onChange?: (value: T) => void;\n value?: T;\n defaultValue?: T;\n step?: number;\n\n /**\n * Show labels on ends of track\n */\n showLabels?: boolean;\n\n /**\n * Track style\n */\n track?: boolean;\n\n /**\n * Hide tooltips on slider thumbs\n */\n hideTooltips?: boolean;\n width?: number | 'auto';\n disabled?: boolean;\n formatOptions?: NumberFormatOptions;\n\n id?: string;\n className?: string;\n name?: string;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\nexport const Slider = ({\n minLabel,\n maxLabel,\n showLabels,\n track,\n width,\n hideTooltips,\n className,\n id,\n onBlur,\n ...elemProps\n}: SliderProps) => {\n const { min, max, value, defaultValue, disabled } = elemProps;\n const trackRef = useRef(null);\n const numberFormatter = useNumberFormatter(elemProps.formatOptions);\n\n const ariaElemProps: SliderPropsType = {\n ...elemProps,\n isDisabled: disabled,\n minValue: min,\n maxValue: max,\n value: typeof value === 'number' ? [value] : value,\n defaultValue: typeof defaultValue === 'number' ? [defaultValue] : defaultValue,\n onChange:\n typeof elemProps.onChange !== 'undefined'\n ? (v) => {\n if (Array.isArray(v) && v.length === 1) {\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return elemProps.onChange(v[0]);\n }\n\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return elemProps.onChange(v);\n }\n : undefined,\n };\n\n const state = useSliderState({ ...ariaElemProps, numberFormatter });\n const { groupProps, trackProps, outputProps } = useSlider(ariaElemProps, state, trackRef);\n\n return (\n <SliderContainer\n {...groupProps}\n style={{\n position: 'relative',\n alignItems: 'center',\n width: width ?? 300,\n touchAction: 'none',\n }}\n className={className}\n id={id}\n onBlur={onBlur}\n >\n {showLabels && <SliderLabel $disabled={disabled}>{minLabel ?? min}</SliderLabel>}\n <SliderTrack\n {...trackProps}\n track={track}\n ref={trackRef}\n percents={state.values.map((_v, i) => state.getThumbPercent(i))}\n disabled={disabled}\n >\n {state.values.map((_v, i) => (\n <SliderThumb\n key={`${trackProps.id}_thumb${i}`}\n index={i}\n state={state}\n trackRef={trackRef}\n hideTooltips={hideTooltips}\n outputProps={outputProps}\n />\n ))}\n </SliderTrack>\n {showLabels && <SliderLabel $disabled={disabled}>{maxLabel ?? max}</SliderLabel>}\n </SliderContainer>\n );\n};\n\nexport default Slider;\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { type Control, type FieldValues, useController } from 'react-hook-form';\n\nimport Slider from './Slider';\n\ninterface SliderRHFProps extends ComponentPropsWithoutRef<typeof Slider> {\n control: Control<FieldValues, object>;\n name: string;\n}\n\nconst SliderRHF = ({ control, name: nameProp, defaultValue, ...elemProps }: SliderRHFProps) => {\n const {\n field: { onChange, onBlur, name, value },\n } = useController({\n name: nameProp,\n control,\n rules: { required: true },\n defaultValue,\n });\n\n return <Slider {...elemProps} onBlur={onBlur} onChange={onChange} value={value} name={name} />;\n};\n\nexport default SliderRHF;\n"],"mappings":";;;;;;;;;;;;;;;;;;AAkCA,MAAM,UAAU,OAAO,gBAAgB;IACnC,gBAAgB,GAAG;;AAGvB,MAAM,QAAQ,OAAO,MAAM;;sCAEW,EAAE,YAAY,cAAc,OAAO,kBAAkB,MAAM,aAAa,CAAC;;;;iBAI9F,EAAE,OAAO,eACtB,WACI,cAAc,OAAO,wBAAwB,MAAM,wBAAwB,GAC3E,cAAc,OAAO,6BAA6B,MAAM,uBAAuB,CAAC;aAC3E,UAAW,MAAM,WAAW,YAAY,UAAW;;;OAGzD,EAAE,OAAO,eACV,WACI,cAAc,OAAO,uBAAuB,MAAM,oBAAoB,GACtE,cAAc,OAAO,iBAAiB,MAAM,oBAAoB,CAAC;;;;;MAKrE,WAAW;;;;;AAkBjB,MAAM,cAAc,SAA0B,YAA8C;CAC1F,MAAM,eAAe,cACb,eAAe,QAAQ,aAAa,MAAM,EAAE,SAAS,SAAS,IAAI,EACxE,EAAE,CACH;AACD,QAAO,EACL,WAAW;EACT,qBAAqB;AACnB,WAAQ,aAAa,KAAK;;EAE5B,mBAAmB;AACjB,iBAAc;;EAEjB,EACF;;AAGH,MAAM,eAAe,EAAE,OAAO,UAAU,OAAO,aAAa,mBAAqC;CAC/F,MAAM,WAAW,OAAO,KAAK;CAC7B,MAAM,EAAE,YAAY,eAAe,eACjC;EACE;EACA;EACA;EACD,EACD,MACD;CAED,MAAM,EAAE,YAAY,cAAc,cAAc;CAEhD,MAAM,CAAC,MAAM,WAAW,SAAS,MAAM;CAEvC,MAAM,EAAE,GAAG,GAAG,MAAM,UAAU,YAAY,YAAY;EACpD,WAAW;EACX;EACA,cAAc;EACd,sBAAsB;EACtB,YAAY;GAAC,OAAO,EAAE;GAAE,MAAM;GAAE,MAAM,EAAE,SAAS,GAAG,CAAC;GAAC;EACvD,CAAC;CACF,MAAM,EAAE,mBAAmB,qBAAqB,gBAAgB;EAC9D,QAAQ,SAAS,EAAE,MAAM,WAAW,CAAC;EACrC,WAAW,QAAQ;EACnB,WAAW,QAAQ;EACpB,CAAC;AAEF,iBAAgB;AACd,UAAQ,UAAU;IACjB,CAAC,UAAU,CAAC;AAEf,QACE,qBAAC,OAAD;EACE,OAAO;GACL,UAAU;GACV,KAAK;GACL,WAAW;GACX,MAAM,GAAG,MAAM,gBAAgB,MAAM,GAAG,IAAI;GAC7C;YANH,CAQG,QAAQ,CAAC,gBACR,oBAAC,SAAD;GACE,GAAI,WACF,iBAAiB;IACf,KAAK,KAAK;IACV,OAAO;KACL,UAAU;KACV,KAAK,KAAK;KACV,MAAM,KAAK;KACZ;IACF,CAAC,EACF,YACD;aAEA,MAAM,mBAAmB,MAAM;GACxB,CAAA,EAEZ,oBAAC,OAAD;GACE,GAAI,WACF,YACA,kBAAkB,EAChB,KAAK,KAAK,cACX,CAAC,EACF,YAAY,EAAE,gBAAgB,MAAM,GAAG,KAAA,EACxC;aAED,oBAAC,gBAAD,EAAA,UACE,oBAAC,SAAD;IAAO,KAAK;IAAU,GAAI,WAAW,YAAY,WAAW;IAAI,CAAA,EACjD,CAAA;GACX,CAAA,CACJ;;;;;ACxJV,MAAM,kBAAkB,OAAO,GAAG;;;;;;AAOlC,MAAM,cAAc,OAAO,GAA4B;IACnD,gBAAgB,GAAG;KAClB,EAAE,gBACH,cAAc,WAAW,UAAU,YAAY,OAAO,aAAa,OAAO,UAAU,GAAG,CAAC;;qBAEvE,QAAQ,GAAG;;;;oBAIZ,QAAQ,GAAG;;;AAS/B,MAAM,cAAc,OAAO,GAAqB;;;;;;;;;;;KAW3C,EAAE,OAAO,UAAU,OAAO,eAAe;CAC1C,MAAM,cAAc,WAChB,cAAc,OAAO,uBAAuB,MAAM,oBAAoB,GACtE,cAAc,OAAO,qBAAqB,MAAM,YAAY;CAChE,MAAM,aAAa,cAAc,OAAO,iBAAiB,MAAM,cAAc;AAE7E,KAAI,UAAU,MACZ,QAAO,GAAG;sBACM,WAAW;;AAI7B,KAAI,SAAS,WAAW,EACtB,QAAO,GAAG;;;YAGJ,WAAW;YACX,WAAW,GAAG,SAAS,KAAK,IAAI;YAChC,YAAY,GAAG,SAAS,KAAK,IAAI;YACjC,YAAY,GAAG,SAAS,KAAK,IAAI;YACjC,WAAW,GAAG,SAAS,KAAK,IAAI;YAChC,WAAW;;;CAKnB,MAAM,YAAY;CAClB,MAAM,aAAa;AAEnB,QAAO,GAAG;;;UAGJ,UAAU;UACV,UAAU,GAAG,SAAS,KAAK,IAAI;UAC/B,WAAW,GAAG,SAAS,KAAK,IAAI;UAChC,WAAW;;;EAGjB;;AAuCJ,MAAa,UAAU,EACrB,UACA,UACA,YACA,OACA,OACA,cACA,WACA,IACA,QACA,GAAG,gBACc;CACjB,MAAM,EAAE,KAAK,KAAK,OAAO,cAAc,aAAa;CACpD,MAAM,WAAW,OAAO,KAAK;CAC7B,MAAM,kBAAkB,mBAAmB,UAAU,cAAc;CAEnE,MAAM,gBAAiC;EACrC,GAAG;EACH,YAAY;EACZ,UAAU;EACV,UAAU;EACV,OAAO,OAAO,UAAU,WAAW,CAAC,MAAM,GAAG;EAC7C,cAAc,OAAO,iBAAiB,WAAW,CAAC,aAAa,GAAG;EAClE,UACE,OAAO,UAAU,aAAa,eACzB,MAAM;AACL,OAAI,MAAM,QAAQ,EAAE,IAAI,EAAE,WAAW,EAEnC,QAAO,UAAU,SAAS,EAAE,GAAG;AAIjC,UAAO,UAAU,SAAS,EAAE;MAE9B,KAAA;EACP;CAED,MAAM,QAAQ,eAAe;EAAE,GAAG;EAAe;EAAiB,CAAC;CACnE,MAAM,EAAE,YAAY,YAAY,gBAAgB,UAAU,eAAe,OAAO,SAAS;AAEzF,QACE,qBAAC,iBAAD;EACE,GAAI;EACJ,OAAO;GACL,UAAU;GACV,YAAY;GACZ,OAAO,SAAS;GAChB,aAAa;GACd;EACU;EACP;EACI;YAVV;GAYG,cAAc,oBAAC,aAAD;IAAa,WAAW;cAAW,YAAY;IAAkB,CAAA;GAChF,oBAAC,aAAD;IACE,GAAI;IACG;IACP,KAAK;IACL,UAAU,MAAM,OAAO,KAAK,IAAI,MAAM,MAAM,gBAAgB,EAAE,CAAC;IACrD;cAET,MAAM,OAAO,KAAK,IAAI,MACrB,oBAAC,aAAD;KAEE,OAAO;KACA;KACG;KACI;KACD;KACb,EANK,GAAG,WAAW,GAAG,QAAQ,IAM9B,CACF;IACU,CAAA;GACb,cAAc,oBAAC,aAAD;IAAa,WAAW;cAAW,YAAY;IAAkB,CAAA;GAChE;;;;;AC7LtB,MAAM,aAAa,EAAE,SAAS,MAAM,UAAU,cAAc,GAAG,gBAAgC;CAC7F,MAAM,EACJ,OAAO,EAAE,UAAU,QAAQ,MAAM,YAC/B,cAAc;EAChB,MAAM;EACN;EACA,OAAO,EAAE,UAAU,MAAM;EACzB;EACD,CAAC;AAEF,QAAO,oBAAC,QAAD;EAAQ,GAAI;EAAmB;EAAkB;EAAiB;EAAa;EAAQ,CAAA"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/Slider/SliderThumb.tsx","../../../components/Slider/Slider.tsx","../../../components/Slider/SliderRHF.tsx"],"sourcesContent":["import {\n autoUpdate,\n type ElementProps,\n flip,\n type FloatingContext,\n offset,\n shift,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n} from '@floating-ui/react';\nimport { useFocusRing } from '@react-aria/focus';\nimport { useSliderThumb } from '@react-aria/slider';\nimport { mergeProps } from '@react-aria/utils';\nimport { VisuallyHidden } from '@react-aria/visually-hidden';\nimport type { SliderState } from '@react-stately/slider';\nimport { debounce } from 'lodash-es';\nimport {\n type OutputHTMLAttributes,\n type RefObject,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport styled from 'styled-components';\n\nimport { Color } from '@persona/design-tokens';\nimport { FloatingTooltip } from 'design-system/components/Tooltip';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport { focusStyle } from 'design-system/mixins/focus';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst Tooltip = styled(FloatingTooltip)`\n ${paragraphMixins.sm};\n`;\n\nconst Thumb = styled('div')<{ disabled?: boolean }>`\n /* Note this will break if the element is not on a white background. Variable is provided to be able to override. */\n --background-color-behind-thumb: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', Color.PrimaryWhite)};\n box-sizing: border-box;\n width: 16px;\n height: 16px;\n background: ${({ theme, disabled }) =>\n disabled\n ? semanticColor(theme, 'InputSurfaceDisabled', Color.BackgroundInputDisabled)\n : semanticColor(theme, 'InputSurfaceInverseStatic', Color.BackgroundInputDefault)};\n cursor: ${(props) => (props.disabled ? 'inherit' : 'pointer')};\n border-radius: 50%;\n border: 1px solid\n ${({ theme, disabled }) =>\n disabled\n ? semanticColor(theme, 'InputBorderDisabled', Color.BorderInputDisabled)\n : semanticColor(theme, 'BorderDefault', Color.BorderInputDisabled)};\n /* Enable clicks on thumb */\n pointer-events: auto;\n\n &[data-focused] {\n ${focusStyle}\n /* Extra pixel of size to overlap into the outline, fixing a small visual bug */\n box-shadow: 0 0 0 2px var(--background-color-behind-thumb);\n }\n`;\n\ninterface SliderThumbProps {\n state: SliderState;\n trackRef: RefObject<HTMLElement>;\n index: number;\n outputProps: OutputHTMLAttributes<HTMLOutputElement>;\n hideTooltips?: boolean;\n}\n\ninterface UsePressedOptions {\n delay?: number;\n}\n\nconst usePressed = (context: FloatingContext, options?: UsePressedOptions): ElementProps => {\n const closeHandler = useMemo(\n () => debounce(() => context.onOpenChange(false), options?.delay ?? 500),\n [],\n );\n return {\n reference: {\n onPointerDown: () => {\n context.onOpenChange(true);\n },\n onPointerUp: () => {\n closeHandler();\n },\n },\n };\n};\n\nconst SliderThumb = ({ state, trackRef, index, outputProps, hideTooltips }: SliderThumbProps) => {\n const inputRef = useRef(null);\n const { thumbProps, inputProps } = useSliderThumb(\n {\n index,\n trackRef,\n inputRef,\n },\n state,\n );\n\n const { focusProps, isFocused } = useFocusRing();\n\n const [open, setOpen] = useState(false);\n\n const { x, y, refs, strategy, context } = useFloating({\n placement: 'top',\n open,\n onOpenChange: setOpen,\n whileElementsMounted: autoUpdate,\n middleware: [offset(4), flip(), shift({ padding: 4 })],\n });\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useRole(context, { role: 'tooltip' }),\n useDismiss(context),\n usePressed(context),\n ]);\n\n useEffect(() => {\n setOpen(isFocused);\n }, [isFocused]);\n\n return (\n <div\n style={{\n position: 'absolute',\n top: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n left: `${state.getThumbPercent(index) * 100}%`,\n }}\n >\n {open && !hideTooltips && (\n <Tooltip\n {...mergeProps(\n getFloatingProps({\n ref: refs.setFloating,\n style: {\n position: strategy,\n top: y ?? '',\n left: x ?? '',\n },\n }),\n outputProps,\n )}\n >\n {state.getThumbValueLabel(index)}\n </Tooltip>\n )}\n <Thumb\n {...mergeProps(\n thumbProps,\n getReferenceProps({\n ref: refs.setReference,\n }),\n isFocused ? { 'data-focused': true } : undefined,\n )}\n >\n <VisuallyHidden>\n <input ref={inputRef} {...mergeProps(inputProps, focusProps)} />\n </VisuallyHidden>\n </Thumb>\n </div>\n );\n};\n\nexport default SliderThumb;\n","import type { NumberFormatOptions } from '@internationalized/number';\nimport { useNumberFormatter } from '@react-aria/i18n';\nimport { useSlider } from '@react-aria/slider';\nimport { useSliderState } from '@react-stately/slider';\nimport type { SliderProps as SliderPropsType } from '@react-types/slider';\nimport { type FocusEventHandler, type ReactNode, useRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport SliderThumb from 'design-system/components/Slider/SliderThumb';\nimport { semanticColor, semanticOnly } from 'design-system/lib/semanticColor';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nconst SliderContainer = styled.div`\n display: flex;\n align-items: center;\n touch-action: none;\n position: relative;\n`;\n\nconst SliderLabel = styled.div<{ $disabled?: boolean }>`\n ${paragraphMixins.md};\n ${({ $disabled }) =>\n semanticOnly((tokens) => `color: ${$disabled ? tokens.FgDisabled : tokens.FgPrimary};`)}\n &:first-of-type {\n padding-right: ${Spacing[2]};\n }\n\n &:last-of-type {\n padding-left: ${Spacing[2]};\n }\n`;\n\ntype SliderTrackProps = {\n track?: boolean;\n percents: number[];\n disabled?: boolean;\n};\nconst SliderTrack = styled.div<SliderTrackProps>`\n position: relative;\n width: 100%;\n height: 4px;\n border-radius: 4px;\n outline: none;\n transition: background 0.2s;\n\n /* Disable clicks on slide bar */\n pointer-events: none;\n\n ${({ theme, percents, track, disabled }) => {\n const activeColor = disabled\n ? semanticColor(theme, 'InputBorderDisabled', Color.BorderInputDisabled)\n : semanticColor(theme, 'InputBorderAccent', Color.CoreBlue700);\n const trackColor = semanticColor(theme, 'BorderSubtle', Color.BorderDivider);\n\n if (track === false) {\n return css`\n background: ${trackColor};\n `;\n }\n\n if (percents.length === 2) {\n return css`\n background: linear-gradient(\n to right,\n ${trackColor} 0%,\n ${trackColor} ${percents[0] * 100}%,\n ${activeColor} ${percents[0] * 100}%,\n ${activeColor} ${percents[1] * 100}%,\n ${trackColor} ${percents[1] * 100}%,\n ${trackColor} 100%\n );\n `;\n }\n\n const leftColor = activeColor;\n const rightColor = trackColor;\n\n return css`\n background: linear-gradient(\n to right,\n ${leftColor} 0%,\n ${leftColor} ${percents[0] * 100}%,\n ${rightColor} ${percents[0] * 100}%,\n ${rightColor} 100%\n );\n `;\n }}\n`;\n\nexport interface SliderProps<T = number | number[]> {\n min?: number;\n minLabel?: ReactNode;\n max?: number;\n maxLabel?: ReactNode;\n onChange?: (value: T) => void;\n value?: T;\n defaultValue?: T;\n step?: number;\n\n /**\n * Show labels on ends of track\n */\n showLabels?: boolean;\n\n /**\n * Track style\n */\n track?: boolean;\n\n /**\n * Hide tooltips on slider thumbs\n */\n hideTooltips?: boolean;\n width?: number | 'auto';\n disabled?: boolean;\n formatOptions?: NumberFormatOptions;\n\n id?: string;\n className?: string;\n name?: string;\n onBlur?: FocusEventHandler<HTMLDivElement>;\n 'aria-label'?: string;\n 'aria-labelledby'?: string;\n}\n\nexport const Slider = ({\n minLabel,\n maxLabel,\n showLabels,\n track,\n width,\n hideTooltips,\n className,\n id,\n onBlur,\n ...elemProps\n}: SliderProps) => {\n const { min, max, value, defaultValue, disabled } = elemProps;\n const trackRef = useRef(null);\n const numberFormatter = useNumberFormatter(elemProps.formatOptions);\n\n const ariaElemProps: SliderPropsType = {\n ...elemProps,\n isDisabled: disabled,\n minValue: min,\n maxValue: max,\n value: typeof value === 'number' ? [value] : value,\n defaultValue: typeof defaultValue === 'number' ? [defaultValue] : defaultValue,\n onChange:\n typeof elemProps.onChange !== 'undefined'\n ? (v) => {\n if (Array.isArray(v) && v.length === 1) {\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return elemProps.onChange(v[0]);\n }\n\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n return elemProps.onChange(v);\n }\n : undefined,\n };\n\n const state = useSliderState({ ...ariaElemProps, numberFormatter });\n const { groupProps, trackProps, outputProps } = useSlider(ariaElemProps, state, trackRef);\n\n return (\n <SliderContainer\n {...groupProps}\n style={{\n position: 'relative',\n alignItems: 'center',\n width: width ?? 300,\n touchAction: 'none',\n }}\n className={className}\n id={id}\n onBlur={onBlur}\n >\n {showLabels && <SliderLabel $disabled={disabled}>{minLabel ?? min}</SliderLabel>}\n <SliderTrack\n {...trackProps}\n track={track}\n ref={trackRef}\n percents={state.values.map((_v, i) => state.getThumbPercent(i))}\n disabled={disabled}\n >\n {state.values.map((_v, i) => (\n <SliderThumb\n key={`${trackProps.id}_thumb${i}`}\n index={i}\n state={state}\n trackRef={trackRef}\n hideTooltips={hideTooltips}\n outputProps={outputProps}\n />\n ))}\n </SliderTrack>\n {showLabels && <SliderLabel $disabled={disabled}>{maxLabel ?? max}</SliderLabel>}\n </SliderContainer>\n );\n};\n\nexport default Slider;\n","import type { ComponentPropsWithoutRef } from 'react';\nimport { type Control, type FieldValues, useController } from 'react-hook-form';\n\nimport Slider from './Slider';\n\ninterface SliderRHFProps extends ComponentPropsWithoutRef<typeof Slider> {\n control: Control<FieldValues, object>;\n name: string;\n}\n\nconst SliderRHF = ({ control, name: nameProp, defaultValue, ...elemProps }: SliderRHFProps) => {\n const {\n field: { onChange, onBlur, name, value },\n } = useController({\n name: nameProp,\n control,\n rules: { required: true },\n defaultValue,\n });\n\n return <Slider {...elemProps} onBlur={onBlur} onChange={onChange} value={value} name={name} />;\n};\n\nexport default SliderRHF;\n"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import { a as Mode, i as FunctionFormRenderProps, n as CustomFunctionDetailRenderProps, o as OpenCodeChainFunctionPanel, s as PopoverFooterRenderer, t as CodeChainFunctionPanelRenderProps, u as ValueType } from "../../types-Cs6CdZCO.mjs";
2
+ import { t as ContextMenuExamples } from "../../listbox-options-BjOkovND.mjs";
3
+ import SmartTextInput, { SmartTextInputProps } from "../../SmartTextInput.mjs";
4
+ import SmartTextInputField, { SmartTextInputFieldProps } from "../../SmartTextInputField.mjs";
5
+ export { type CodeChainFunctionPanelRenderProps, type ContextMenuExamples, type CustomFunctionDetailRenderProps, type FunctionFormRenderProps, Mode, type OpenCodeChainFunctionPanel, type PopoverFooterRenderer, SmartTextInputField, type SmartTextInputFieldProps, type SmartTextInputProps, ValueType, SmartTextInput as default };