@persona/design-system 0.1.5-pre.4

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 (897) hide show
  1. package/CHANGELOG.md +461 -0
  2. package/LICENSE +77 -0
  3. package/README.md +9 -0
  4. package/dist/Action-B10lxofb.d.mts +35 -0
  5. package/dist/Action-uduFOh2m.d.cts +35 -0
  6. package/dist/Action.d.cts +2 -0
  7. package/dist/Action.d.mts +2 -0
  8. package/dist/Attribute.d.cts +107 -0
  9. package/dist/Attribute.d.mts +107 -0
  10. package/dist/AttributeGrid.d.cts +40 -0
  11. package/dist/AttributeGrid.d.mts +41 -0
  12. package/dist/Badge-BqLnhb4n.mjs +34 -0
  13. package/dist/Badge-BqLnhb4n.mjs.map +1 -0
  14. package/dist/Badge-BwAZD9BH.cjs +41 -0
  15. package/dist/Badge-BwAZD9BH.cjs.map +1 -0
  16. package/dist/Badge.d.cts +25 -0
  17. package/dist/Badge.d.mts +25 -0
  18. package/dist/Banner.d.cts +48 -0
  19. package/dist/Banner.d.mts +48 -0
  20. package/dist/Button-C_3p5Xfi.d.cts +101 -0
  21. package/dist/Button-DqDLGURJ.d.mts +101 -0
  22. package/dist/Button.d.cts +2 -0
  23. package/dist/Button.d.mts +2 -0
  24. package/dist/ButtonGroup.d.cts +20 -0
  25. package/dist/ButtonGroup.d.mts +20 -0
  26. package/dist/Calendar.d.cts +11 -0
  27. package/dist/Calendar.d.mts +12 -0
  28. package/dist/CalendarBase.d.mts +12 -0
  29. package/dist/CalendarCell.d.mts +18 -0
  30. package/dist/CalendarGrid.d.mts +18 -0
  31. package/dist/Card-CcU9cKCd.d.mts +52 -0
  32. package/dist/Card-CrQL0hXm.d.cts +52 -0
  33. package/dist/Card-CyCKL-M5.cjs +248 -0
  34. package/dist/Card-CyCKL-M5.cjs.map +1 -0
  35. package/dist/Card-DeJSt5ys.mjs +205 -0
  36. package/dist/Card-DeJSt5ys.mjs.map +1 -0
  37. package/dist/Card.d.cts +2 -0
  38. package/dist/Card.d.mts +2 -0
  39. package/dist/Card2.d.cts +95 -0
  40. package/dist/Card2.d.mts +96 -0
  41. package/dist/Checkbox-BWJNAP27.d.mts +46 -0
  42. package/dist/Checkbox-BmjK0Wac.d.cts +46 -0
  43. package/dist/Checkbox-C5bGcb-r.mjs +176 -0
  44. package/dist/Checkbox-C5bGcb-r.mjs.map +1 -0
  45. package/dist/Checkbox-D4nv7eNs.cjs +183 -0
  46. package/dist/Checkbox-D4nv7eNs.cjs.map +1 -0
  47. package/dist/Checkbox.d.cts +2 -0
  48. package/dist/Checkbox.d.mts +2 -0
  49. package/dist/CheckboxGroupField.d.cts +24 -0
  50. package/dist/CheckboxGroupField.d.mts +25 -0
  51. package/dist/Combobox-B_-swcix.mjs +1672 -0
  52. package/dist/Combobox-B_-swcix.mjs.map +1 -0
  53. package/dist/Combobox-B_oe33Re.cjs +1692 -0
  54. package/dist/Combobox-B_oe33Re.cjs.map +1 -0
  55. package/dist/Combobox-DjbJYK_u.d.mts +11 -0
  56. package/dist/Combobox.d.cts +12 -0
  57. package/dist/Combobox.d.mts +3 -0
  58. package/dist/ComboboxBase-D2wypeXf.d.cts +320 -0
  59. package/dist/ComboboxBase-INya0Csa.d.mts +320 -0
  60. package/dist/ComboboxBase.d.cts +2 -0
  61. package/dist/ComboboxBase.d.mts +2 -0
  62. package/dist/ComboboxMultiSelect-Dn8cRZ6Z.d.cts +47 -0
  63. package/dist/ComboboxMultiSelect-Dq9DGH8S.d.mts +47 -0
  64. package/dist/ComboboxMultiSelect.d.cts +2 -0
  65. package/dist/ComboboxMultiSelect.d.mts +2 -0
  66. package/dist/ComboboxSingleSelect-D8YM7GKP.d.cts +35 -0
  67. package/dist/ComboboxSingleSelect-WwBJRb0e.d.mts +35 -0
  68. package/dist/ComboboxSingleSelect.d.cts +2 -0
  69. package/dist/ComboboxSingleSelect.d.mts +2 -0
  70. package/dist/ConfigFormGroup.d.cts +7 -0
  71. package/dist/ConfigFormGroup.d.mts +7 -0
  72. package/dist/DateField-Bwe_0qm9.d.cts +24 -0
  73. package/dist/DateField-Chko9oLb.d.mts +24 -0
  74. package/dist/DateField.d.cts +2 -0
  75. package/dist/DateField.d.mts +2 -0
  76. package/dist/DatePicker.d.cts +19 -0
  77. package/dist/DatePicker.d.mts +19 -0
  78. package/dist/DateRangePicker.d.cts +46 -0
  79. package/dist/DateRangePicker.d.mts +47 -0
  80. package/dist/DropdownButton-DO4NqvWR.cjs +33 -0
  81. package/dist/DropdownButton-DO4NqvWR.cjs.map +1 -0
  82. package/dist/DropdownButton-k9kEcexu.mjs +27 -0
  83. package/dist/DropdownButton-k9kEcexu.mjs.map +1 -0
  84. package/dist/DropdownButton.d.cts +26 -0
  85. package/dist/DropdownButton.d.mts +26 -0
  86. package/dist/DropdownMenu-BTk--LWo.mjs +60 -0
  87. package/dist/DropdownMenu-BTk--LWo.mjs.map +1 -0
  88. package/dist/DropdownMenu-Bm2QqLEq.d.cts +75 -0
  89. package/dist/DropdownMenu-D2fzpkX2.cjs +74 -0
  90. package/dist/DropdownMenu-D2fzpkX2.cjs.map +1 -0
  91. package/dist/DropdownMenu-rWgROxQe.d.mts +75 -0
  92. package/dist/DropdownMenu.d.cts +2 -0
  93. package/dist/DropdownMenu.d.mts +2 -0
  94. package/dist/ErrorProps-DLdVsYlk.d.cts +8 -0
  95. package/dist/ErrorProps-DYUKygmd.d.mts +8 -0
  96. package/dist/ErrorProps.d.cts +2 -0
  97. package/dist/ErrorProps.d.mts +2 -0
  98. package/dist/FormControl-BXHqI_2D.mjs +168 -0
  99. package/dist/FormControl-BXHqI_2D.mjs.map +1 -0
  100. package/dist/FormControl-CM7wTn1P.d.mts +60 -0
  101. package/dist/FormControl-DiR2e7Od.cjs +212 -0
  102. package/dist/FormControl-DiR2e7Od.cjs.map +1 -0
  103. package/dist/FormControl-KkeIYuBa.d.cts +60 -0
  104. package/dist/FormControl.d.cts +2 -0
  105. package/dist/FormControl.d.mts +2 -0
  106. package/dist/FormField-19ownwjH.d.cts +69 -0
  107. package/dist/FormField-CdMru4s5.d.mts +69 -0
  108. package/dist/FormField.d.cts +2 -0
  109. package/dist/FormField.d.mts +2 -0
  110. package/dist/Header-D8oDtnIL.d.cts +35 -0
  111. package/dist/Header-t1plnZc0.d.mts +35 -0
  112. package/dist/Header.d.cts +2 -0
  113. package/dist/Header.d.mts +2 -0
  114. package/dist/HelperTooltip-Cd7I0Ucq.d.mts +20 -0
  115. package/dist/HelperTooltip-oXdyk2At.d.cts +20 -0
  116. package/dist/HelperTooltip.d.cts +2 -0
  117. package/dist/HelperTooltip.d.mts +2 -0
  118. package/dist/IconButton-B1ZL8BqW.cjs +372 -0
  119. package/dist/IconButton-B1ZL8BqW.cjs.map +1 -0
  120. package/dist/IconButton-C28qxOdi.mjs +341 -0
  121. package/dist/IconButton-C28qxOdi.mjs.map +1 -0
  122. package/dist/IconButton-DsXbc3nQ.d.mts +24 -0
  123. package/dist/IconButton-ZcyTFjPn.d.cts +24 -0
  124. package/dist/IconButton.d.cts +2 -0
  125. package/dist/IconButton.d.mts +2 -0
  126. package/dist/ImageTile.d.cts +60 -0
  127. package/dist/ImageTile.d.mts +60 -0
  128. package/dist/Input-Cv5qieRg.d.mts +65 -0
  129. package/dist/Input-DHOsR4cl.cjs +210 -0
  130. package/dist/Input-DHOsR4cl.cjs.map +1 -0
  131. package/dist/Input-XppkvfUf.d.cts +65 -0
  132. package/dist/Input-eoFk39bE.mjs +191 -0
  133. package/dist/Input-eoFk39bE.mjs.map +1 -0
  134. package/dist/Input.d.cts +2 -0
  135. package/dist/Input.d.mts +2 -0
  136. package/dist/InputProps-BHu05fX0.d.mts +16 -0
  137. package/dist/InputProps-CitGo8QA.d.cts +16 -0
  138. package/dist/InputProps.d.cts +2 -0
  139. package/dist/InputProps.d.mts +2 -0
  140. package/dist/Link.d.cts +43 -0
  141. package/dist/Link.d.mts +43 -0
  142. package/dist/ListBox-AyjzT6ra.d.mts +138 -0
  143. package/dist/ListBox-CE3mfDSB.cjs +383 -0
  144. package/dist/ListBox-CE3mfDSB.cjs.map +1 -0
  145. package/dist/ListBox-DbyZFy2W.d.cts +138 -0
  146. package/dist/ListBox-Z1y0LG1H.mjs +369 -0
  147. package/dist/ListBox-Z1y0LG1H.mjs.map +1 -0
  148. package/dist/ListBox.d.cts +2 -0
  149. package/dist/ListBox.d.mts +2 -0
  150. package/dist/ListBoxField.d.cts +46 -0
  151. package/dist/ListBoxField.d.mts +47 -0
  152. package/dist/LoadingShimmer-CNE6JUVF.mjs +67 -0
  153. package/dist/LoadingShimmer-CNE6JUVF.mjs.map +1 -0
  154. package/dist/LoadingShimmer-DMK9RC4N.cjs +92 -0
  155. package/dist/LoadingShimmer-DMK9RC4N.cjs.map +1 -0
  156. package/dist/LoadingShimmer.d.cts +38 -0
  157. package/dist/LoadingShimmer.d.mts +38 -0
  158. package/dist/MaskedInput.d.cts +10 -0
  159. package/dist/MaskedInput.d.mts +10 -0
  160. package/dist/MatchHighlight.d.cts +11 -0
  161. package/dist/MatchHighlight.d.mts +11 -0
  162. package/dist/Menu-BpkjNO81.cjs +217 -0
  163. package/dist/Menu-BpkjNO81.cjs.map +1 -0
  164. package/dist/Menu-DIFkRQ6x.d.mts +70 -0
  165. package/dist/Menu-DNRHo2i_.mjs +167 -0
  166. package/dist/Menu-DNRHo2i_.mjs.map +1 -0
  167. package/dist/Menu-DPrNMatb.d.cts +70 -0
  168. package/dist/Menu.d.cts +2 -0
  169. package/dist/Menu.d.mts +2 -0
  170. package/dist/Modal.d.cts +141 -0
  171. package/dist/Modal.d.mts +141 -0
  172. package/dist/PageHeader.d.cts +26 -0
  173. package/dist/PageHeader.d.mts +26 -0
  174. package/dist/PageSelector.d.cts +30 -0
  175. package/dist/PageSelector.d.mts +30 -0
  176. package/dist/PageSizeSelector.d.mts +22 -0
  177. package/dist/Pagination.d.cts +33 -0
  178. package/dist/Pagination.d.mts +33 -0
  179. package/dist/Pii.d.cts +16 -0
  180. package/dist/Pii.d.mts +17 -0
  181. package/dist/Popover-BSdyxuja.mjs +124 -0
  182. package/dist/Popover-BSdyxuja.mjs.map +1 -0
  183. package/dist/Popover-C2dBSwiU.cjs +168 -0
  184. package/dist/Popover-C2dBSwiU.cjs.map +1 -0
  185. package/dist/Popover.d.cts +90 -0
  186. package/dist/Popover.d.mts +90 -0
  187. package/dist/ProgressBar.d.cts +83 -0
  188. package/dist/ProgressBar.d.mts +83 -0
  189. package/dist/ProgressIndicator.d.cts +64 -0
  190. package/dist/ProgressIndicator.d.mts +64 -0
  191. package/dist/PseudoClassProps-C5jpj6Rp.d.cts +12 -0
  192. package/dist/PseudoClassProps-mZgO_iZJ.d.mts +12 -0
  193. package/dist/PseudoClassProps.d.cts +2 -0
  194. package/dist/PseudoClassProps.d.mts +2 -0
  195. package/dist/Radio-mFfT6G3d.cjs +154 -0
  196. package/dist/Radio-mFfT6G3d.cjs.map +1 -0
  197. package/dist/Radio-w-L3Otuk.mjs +147 -0
  198. package/dist/Radio-w-L3Otuk.mjs.map +1 -0
  199. package/dist/Radio.d.cts +21 -0
  200. package/dist/Radio.d.mts +21 -0
  201. package/dist/RadioGroup-B8htTzsS.mjs +50 -0
  202. package/dist/RadioGroup-B8htTzsS.mjs.map +1 -0
  203. package/dist/RadioGroup-BjDmweRK.cjs +57 -0
  204. package/dist/RadioGroup-BjDmweRK.cjs.map +1 -0
  205. package/dist/RadioGroup-D5ueuC6a.d.cts +21 -0
  206. package/dist/RadioGroup-Ls0vPsP_.d.mts +21 -0
  207. package/dist/RadioGroup.d.cts +2 -0
  208. package/dist/RadioGroup.d.mts +2 -0
  209. package/dist/RangeCalendar.d.mts +33 -0
  210. package/dist/RangeCalendarPresets.d.mts +25 -0
  211. package/dist/RegisterComponent-BDb43KvI.d.mts +34 -0
  212. package/dist/RegisterComponent-CpXIR-51.d.cts +34 -0
  213. package/dist/Section.d.mts +67 -0
  214. package/dist/SectionHeading-DVSXofwK.d.cts +72 -0
  215. package/dist/SectionHeading-QvAmhVmD.d.mts +72 -0
  216. package/dist/SectionHeading.d.cts +2 -0
  217. package/dist/SectionHeading.d.mts +2 -0
  218. package/dist/SegmentedControl-CvznPXgC.cjs +124 -0
  219. package/dist/SegmentedControl-CvznPXgC.cjs.map +1 -0
  220. package/dist/SegmentedControl-DRtXdbLe.d.cts +59 -0
  221. package/dist/SegmentedControl-Dk5S4Dhz.d.mts +59 -0
  222. package/dist/SegmentedControl-DnwNjYre.mjs +111 -0
  223. package/dist/SegmentedControl-DnwNjYre.mjs.map +1 -0
  224. package/dist/SegmentedControl.d.cts +2 -0
  225. package/dist/SegmentedControl.d.mts +2 -0
  226. package/dist/Select-BdPdgtfU.d.cts +77 -0
  227. package/dist/Select-CVB-Q1g1.cjs +266 -0
  228. package/dist/Select-CVB-Q1g1.cjs.map +1 -0
  229. package/dist/Select-Cl3AOq0-.mjs +246 -0
  230. package/dist/Select-Cl3AOq0-.mjs.map +1 -0
  231. package/dist/Select-DRnRqMAL.d.mts +77 -0
  232. package/dist/Select.d.cts +2 -0
  233. package/dist/Select.d.mts +2 -0
  234. package/dist/Slider-D3gz7otf.d.mts +56 -0
  235. package/dist/Slider-uH5MOu2D.d.cts +56 -0
  236. package/dist/Slider.d.cts +2 -0
  237. package/dist/Slider.d.mts +2 -0
  238. package/dist/SliderRHF-Cc-9RuPe.d.cts +984 -0
  239. package/dist/SliderRHF-DIV-tCEv.d.mts +984 -0
  240. package/dist/SliderRHF.d.cts +2 -0
  241. package/dist/SliderRHF.d.mts +2 -0
  242. package/dist/SliderThumb.d.mts +139 -0
  243. package/dist/Spacer-DWGkX170.cjs +20 -0
  244. package/dist/Spacer-DWGkX170.cjs.map +1 -0
  245. package/dist/Spacer-DxH_sQrV.mjs +13 -0
  246. package/dist/Spacer-DxH_sQrV.mjs.map +1 -0
  247. package/dist/Spacer.d.cts +17 -0
  248. package/dist/Spacer.d.mts +18 -0
  249. package/dist/Spinner-C05An_fn.mjs +41 -0
  250. package/dist/Spinner-C05An_fn.mjs.map +1 -0
  251. package/dist/Spinner-z7DrPE1d.cjs +48 -0
  252. package/dist/Spinner-z7DrPE1d.cjs.map +1 -0
  253. package/dist/Spinner.d.cts +26 -0
  254. package/dist/Spinner.d.mts +26 -0
  255. package/dist/Stack-BHb3ZB2A.cjs +53 -0
  256. package/dist/Stack-BHb3ZB2A.cjs.map +1 -0
  257. package/dist/Stack-BntgUvsW.d.mts +47 -0
  258. package/dist/Stack-hwgS2FU1.mjs +40 -0
  259. package/dist/Stack-hwgS2FU1.mjs.map +1 -0
  260. package/dist/Stack-toDRLy--.d.cts +47 -0
  261. package/dist/Stack.d.cts +2 -0
  262. package/dist/Stack.d.mts +2 -0
  263. package/dist/StatusIndicator.d.cts +54 -0
  264. package/dist/StatusIndicator.d.mts +54 -0
  265. package/dist/Sticker-Bd7KkekO.d.mts +68 -0
  266. package/dist/Sticker-D6bwBTGr.mjs +215 -0
  267. package/dist/Sticker-D6bwBTGr.mjs.map +1 -0
  268. package/dist/Sticker-D_dutvp_.cjs +246 -0
  269. package/dist/Sticker-D_dutvp_.cjs.map +1 -0
  270. package/dist/Sticker-S6QWjlEJ.d.cts +68 -0
  271. package/dist/Sticker.d.cts +2 -0
  272. package/dist/Sticker.d.mts +2 -0
  273. package/dist/SwatchPicker.d.cts +18 -0
  274. package/dist/SwatchPicker.d.mts +18 -0
  275. package/dist/Tab.d.cts +26 -0
  276. package/dist/Tab.d.mts +26 -0
  277. package/dist/TabBar-BMv8dAS3.cjs +297 -0
  278. package/dist/TabBar-BMv8dAS3.cjs.map +1 -0
  279. package/dist/TabBar-Bf89XksH.mjs +266 -0
  280. package/dist/TabBar-Bf89XksH.mjs.map +1 -0
  281. package/dist/TabBar.d.cts +33 -0
  282. package/dist/TabBar.d.mts +33 -0
  283. package/dist/TabBarContext.d.mts +10 -0
  284. package/dist/TabBarIconButton.d.cts +10 -0
  285. package/dist/TabBarIconButton.d.mts +11 -0
  286. package/dist/Table-34f5m7w5.d.mts +13 -0
  287. package/dist/Table-DkAA1lt_.d.cts +13 -0
  288. package/dist/Table.d.cts +2 -0
  289. package/dist/Table.d.mts +2 -0
  290. package/dist/TableBody-5QcVMPP_.d.cts +9 -0
  291. package/dist/TableBody-Clf34yzJ.d.mts +9 -0
  292. package/dist/TableBody.d.cts +2 -0
  293. package/dist/TableBody.d.mts +2 -0
  294. package/dist/TableCell-DIs9h97h.d.cts +75 -0
  295. package/dist/TableCell-Dog4Blfq.d.mts +75 -0
  296. package/dist/TableCell.d.cts +2 -0
  297. package/dist/TableCell.d.mts +2 -0
  298. package/dist/TableHead-9LLM1B8I.d.cts +12 -0
  299. package/dist/TableHead-DJBGHoUD.d.mts +12 -0
  300. package/dist/TableHead.d.cts +2 -0
  301. package/dist/TableHead.d.mts +2 -0
  302. package/dist/TableHeaderCell-25lC9tNk.d.cts +17 -0
  303. package/dist/TableHeaderCell-DzYZq7SG.d.mts +17 -0
  304. package/dist/TableHeaderCell.d.cts +2 -0
  305. package/dist/TableHeaderCell.d.mts +2 -0
  306. package/dist/TableLayout-BA3jbdbi.d.mts +19 -0
  307. package/dist/TableLayout-CmDKOu10.d.cts +19 -0
  308. package/dist/TableLayout.d.cts +2 -0
  309. package/dist/TableLayout.d.mts +2 -0
  310. package/dist/TableRow-CBKpDeUV.d.mts +13 -0
  311. package/dist/TableRow-IPjQnK2q.d.cts +13 -0
  312. package/dist/TableRow.d.cts +2 -0
  313. package/dist/TableRow.d.mts +2 -0
  314. package/dist/TableTH.d.cts +2 -0
  315. package/dist/TableTH.d.mts +2 -0
  316. package/dist/Text-CnXedFut.d.mts +42 -0
  317. package/dist/Text-CrGiWG2E.d.cts +42 -0
  318. package/dist/Text-DOTYjIt0.mjs +58 -0
  319. package/dist/Text-DOTYjIt0.mjs.map +1 -0
  320. package/dist/Text-DVz8erdF.cjs +95 -0
  321. package/dist/Text-DVz8erdF.cjs.map +1 -0
  322. package/dist/Text.d.cts +2 -0
  323. package/dist/Text.d.mts +2 -0
  324. package/dist/TextArea-1bHvaq9p.d.mts +10 -0
  325. package/dist/TextArea-B1kitxCl.mjs +33 -0
  326. package/dist/TextArea-B1kitxCl.mjs.map +1 -0
  327. package/dist/TextArea-MVgGGM6r.cjs +40 -0
  328. package/dist/TextArea-MVgGGM6r.cjs.map +1 -0
  329. package/dist/TextArea-j43fhp2P.d.cts +10 -0
  330. package/dist/TextArea.d.cts +2 -0
  331. package/dist/TextArea.d.mts +2 -0
  332. package/dist/TextUnderlineTooltip-BDMs4iXn.d.cts +18 -0
  333. package/dist/TextUnderlineTooltip-z4sSGL91.d.mts +18 -0
  334. package/dist/TextUnderlineTooltip.d.cts +2 -0
  335. package/dist/TextUnderlineTooltip.d.mts +2 -0
  336. package/dist/Tile.d.cts +63 -0
  337. package/dist/Tile.d.mts +63 -0
  338. package/dist/Toast.d.cts +27 -0
  339. package/dist/Toast.d.mts +27 -0
  340. package/dist/Toggle-8GNRxyvE.mjs +167 -0
  341. package/dist/Toggle-8GNRxyvE.mjs.map +1 -0
  342. package/dist/Toggle-B3Cdyf7T.d.mts +54 -0
  343. package/dist/Toggle-BjkbL_uf.d.cts +54 -0
  344. package/dist/Toggle-CVdg5iQ0.cjs +174 -0
  345. package/dist/Toggle-CVdg5iQ0.cjs.map +1 -0
  346. package/dist/Toggle.d.cts +2 -0
  347. package/dist/Toggle.d.mts +2 -0
  348. package/dist/Tooltip-0i_15ysU.cjs +152 -0
  349. package/dist/Tooltip-0i_15ysU.cjs.map +1 -0
  350. package/dist/Tooltip-C0PS5InA.d.mts +100 -0
  351. package/dist/Tooltip-CE1oH6Iz.d.cts +100 -0
  352. package/dist/Tooltip-T7RQpy_a.mjs +120 -0
  353. package/dist/Tooltip-T7RQpy_a.mjs.map +1 -0
  354. package/dist/Tooltip.d.cts +2 -0
  355. package/dist/Tooltip.d.mts +2 -0
  356. package/dist/TruncatedText-0Tf8CwFX.d.mts +18 -0
  357. package/dist/TruncatedText-D8f3AiBL.d.cts +18 -0
  358. package/dist/chunk-Bpcn9VDT.mjs +39 -0
  359. package/dist/chunk-CoPdw6nB.cjs +64 -0
  360. package/dist/common.d.mts +7 -0
  361. package/dist/components/Attribute/index.cjs +210 -0
  362. package/dist/components/Attribute/index.cjs.map +1 -0
  363. package/dist/components/Attribute/index.d.cts +3 -0
  364. package/dist/components/Attribute/index.d.mts +3 -0
  365. package/dist/components/Attribute/index.mjs +198 -0
  366. package/dist/components/Attribute/index.mjs.map +1 -0
  367. package/dist/components/Badge/index.cjs +8 -0
  368. package/dist/components/Badge/index.d.cts +2 -0
  369. package/dist/components/Badge/index.d.mts +2 -0
  370. package/dist/components/Badge/index.mjs +2 -0
  371. package/dist/components/Banner/index.cjs +100 -0
  372. package/dist/components/Banner/index.cjs.map +1 -0
  373. package/dist/components/Banner/index.d.cts +2 -0
  374. package/dist/components/Banner/index.d.mts +2 -0
  375. package/dist/components/Banner/index.mjs +93 -0
  376. package/dist/components/Banner/index.mjs.map +1 -0
  377. package/dist/components/Button/index.cjs +12 -0
  378. package/dist/components/Button/index.d.cts +3 -0
  379. package/dist/components/Button/index.d.mts +3 -0
  380. package/dist/components/Button/index.mjs +2 -0
  381. package/dist/components/ButtonGroup/index.cjs +112 -0
  382. package/dist/components/ButtonGroup/index.cjs.map +1 -0
  383. package/dist/components/ButtonGroup/index.d.cts +2 -0
  384. package/dist/components/ButtonGroup/index.d.mts +2 -0
  385. package/dist/components/ButtonGroup/index.mjs +103 -0
  386. package/dist/components/ButtonGroup/index.mjs.map +1 -0
  387. package/dist/components/Card/index.cjs +13 -0
  388. package/dist/components/Card/index.d.cts +3 -0
  389. package/dist/components/Card/index.d.mts +3 -0
  390. package/dist/components/Card/index.mjs +2 -0
  391. package/dist/components/CardV2/index.cjs +512 -0
  392. package/dist/components/CardV2/index.cjs.map +1 -0
  393. package/dist/components/CardV2/index.d.cts +3 -0
  394. package/dist/components/CardV2/index.d.mts +3 -0
  395. package/dist/components/CardV2/index.mjs +511 -0
  396. package/dist/components/CardV2/index.mjs.map +1 -0
  397. package/dist/components/Checkbox/index.cjs +8 -0
  398. package/dist/components/Checkbox/index.d.cts +2 -0
  399. package/dist/components/Checkbox/index.d.mts +2 -0
  400. package/dist/components/Checkbox/index.mjs +2 -0
  401. package/dist/components/Combobox/index.cjs +10 -0
  402. package/dist/components/Combobox/index.d.cts +3 -0
  403. package/dist/components/Combobox/index.d.mts +3 -0
  404. package/dist/components/Combobox/index.mjs +2 -0
  405. package/dist/components/ConfigFormGroup/index.cjs +37 -0
  406. package/dist/components/ConfigFormGroup/index.cjs.map +1 -0
  407. package/dist/components/ConfigFormGroup/index.d.cts +3 -0
  408. package/dist/components/ConfigFormGroup/index.d.mts +3 -0
  409. package/dist/components/ConfigFormGroup/index.mjs +28 -0
  410. package/dist/components/ConfigFormGroup/index.mjs.map +1 -0
  411. package/dist/components/DatePicker/index.cjs +11503 -0
  412. package/dist/components/DatePicker/index.cjs.map +1 -0
  413. package/dist/components/DatePicker/index.d.cts +5 -0
  414. package/dist/components/DatePicker/index.d.mts +5 -0
  415. package/dist/components/DatePicker/index.mjs +11491 -0
  416. package/dist/components/DatePicker/index.mjs.map +1 -0
  417. package/dist/components/DropdownButton/index.cjs +8 -0
  418. package/dist/components/DropdownButton/index.d.cts +2 -0
  419. package/dist/components/DropdownButton/index.d.mts +2 -0
  420. package/dist/components/DropdownButton/index.mjs +2 -0
  421. package/dist/components/DropdownMenu/index.cjs +8 -0
  422. package/dist/components/DropdownMenu/index.d.cts +2 -0
  423. package/dist/components/DropdownMenu/index.d.mts +2 -0
  424. package/dist/components/DropdownMenu/index.mjs +2 -0
  425. package/dist/components/FormControl/index.cjs +16 -0
  426. package/dist/components/FormControl/index.d.cts +3 -0
  427. package/dist/components/FormControl/index.d.mts +3 -0
  428. package/dist/components/FormControl/index.mjs +3 -0
  429. package/dist/components/FormField/index.cjs +385 -0
  430. package/dist/components/FormField/index.cjs.map +1 -0
  431. package/dist/components/FormField/index.d.cts +5 -0
  432. package/dist/components/FormField/index.d.mts +5 -0
  433. package/dist/components/FormField/index.mjs +367 -0
  434. package/dist/components/FormField/index.mjs.map +1 -0
  435. package/dist/components/ImageTile/index.cjs +228 -0
  436. package/dist/components/ImageTile/index.cjs.map +1 -0
  437. package/dist/components/ImageTile/index.d.cts +2 -0
  438. package/dist/components/ImageTile/index.d.mts +2 -0
  439. package/dist/components/ImageTile/index.mjs +221 -0
  440. package/dist/components/ImageTile/index.mjs.map +1 -0
  441. package/dist/components/Input/index.cjs +15 -0
  442. package/dist/components/Input/index.cjs.map +1 -0
  443. package/dist/components/Input/index.d.cts +2 -0
  444. package/dist/components/Input/index.d.mts +2 -0
  445. package/dist/components/Input/index.mjs +7 -0
  446. package/dist/components/Input/index.mjs.map +1 -0
  447. package/dist/components/Link/index.cjs +87 -0
  448. package/dist/components/Link/index.cjs.map +1 -0
  449. package/dist/components/Link/index.d.cts +2 -0
  450. package/dist/components/Link/index.d.mts +2 -0
  451. package/dist/components/Link/index.mjs +80 -0
  452. package/dist/components/Link/index.mjs.map +1 -0
  453. package/dist/components/ListBox/index.cjs +9 -0
  454. package/dist/components/ListBox/index.d.cts +2 -0
  455. package/dist/components/ListBox/index.d.mts +2 -0
  456. package/dist/components/ListBox/index.mjs +2 -0
  457. package/dist/components/LoadingShimmer/index.cjs +7 -0
  458. package/dist/components/LoadingShimmer/index.d.cts +2 -0
  459. package/dist/components/LoadingShimmer/index.d.mts +2 -0
  460. package/dist/components/LoadingShimmer/index.mjs +2 -0
  461. package/dist/components/MaskedInput/index.cjs +29 -0
  462. package/dist/components/MaskedInput/index.cjs.map +1 -0
  463. package/dist/components/MaskedInput/index.d.cts +2 -0
  464. package/dist/components/MaskedInput/index.d.mts +2 -0
  465. package/dist/components/MaskedInput/index.mjs +24 -0
  466. package/dist/components/MaskedInput/index.mjs.map +1 -0
  467. package/dist/components/MatchHighlight/index.cjs +31 -0
  468. package/dist/components/MatchHighlight/index.cjs.map +1 -0
  469. package/dist/components/MatchHighlight/index.d.cts +2 -0
  470. package/dist/components/MatchHighlight/index.d.mts +2 -0
  471. package/dist/components/MatchHighlight/index.mjs +24 -0
  472. package/dist/components/MatchHighlight/index.mjs.map +1 -0
  473. package/dist/components/Menu/index.cjs +15 -0
  474. package/dist/components/Menu/index.d.cts +2 -0
  475. package/dist/components/Menu/index.d.mts +2 -0
  476. package/dist/components/Menu/index.mjs +2 -0
  477. package/dist/components/Modal/index.cjs +285 -0
  478. package/dist/components/Modal/index.cjs.map +1 -0
  479. package/dist/components/Modal/index.d.cts +2 -0
  480. package/dist/components/Modal/index.d.mts +2 -0
  481. package/dist/components/Modal/index.mjs +276 -0
  482. package/dist/components/Modal/index.mjs.map +1 -0
  483. package/dist/components/PageHeader/index.cjs +71 -0
  484. package/dist/components/PageHeader/index.cjs.map +1 -0
  485. package/dist/components/PageHeader/index.d.cts +2 -0
  486. package/dist/components/PageHeader/index.d.mts +2 -0
  487. package/dist/components/PageHeader/index.mjs +64 -0
  488. package/dist/components/PageHeader/index.mjs.map +1 -0
  489. package/dist/components/Pagination/index.cjs +211 -0
  490. package/dist/components/Pagination/index.cjs.map +1 -0
  491. package/dist/components/Pagination/index.d.cts +3 -0
  492. package/dist/components/Pagination/index.d.mts +3 -0
  493. package/dist/components/Pagination/index.mjs +203 -0
  494. package/dist/components/Pagination/index.mjs.map +1 -0
  495. package/dist/components/Pii/index.cjs +20 -0
  496. package/dist/components/Pii/index.cjs.map +1 -0
  497. package/dist/components/Pii/index.d.cts +2 -0
  498. package/dist/components/Pii/index.d.mts +2 -0
  499. package/dist/components/Pii/index.mjs +19 -0
  500. package/dist/components/Pii/index.mjs.map +1 -0
  501. package/dist/components/Popover/index.cjs +13 -0
  502. package/dist/components/Popover/index.d.cts +2 -0
  503. package/dist/components/Popover/index.d.mts +2 -0
  504. package/dist/components/Popover/index.mjs +2 -0
  505. package/dist/components/ProgressBar/index.cjs +177 -0
  506. package/dist/components/ProgressBar/index.cjs.map +1 -0
  507. package/dist/components/ProgressBar/index.d.cts +2 -0
  508. package/dist/components/ProgressBar/index.d.mts +2 -0
  509. package/dist/components/ProgressBar/index.mjs +168 -0
  510. package/dist/components/ProgressBar/index.mjs.map +1 -0
  511. package/dist/components/ProgressIndicator/index.cjs +185 -0
  512. package/dist/components/ProgressIndicator/index.cjs.map +1 -0
  513. package/dist/components/ProgressIndicator/index.d.cts +2 -0
  514. package/dist/components/ProgressIndicator/index.d.mts +2 -0
  515. package/dist/components/ProgressIndicator/index.mjs +178 -0
  516. package/dist/components/ProgressIndicator/index.mjs.map +1 -0
  517. package/dist/components/Radio/index.cjs +8 -0
  518. package/dist/components/Radio/index.d.cts +2 -0
  519. package/dist/components/Radio/index.d.mts +2 -0
  520. package/dist/components/Radio/index.mjs +2 -0
  521. package/dist/components/RadioGroup/index.cjs +8 -0
  522. package/dist/components/RadioGroup/index.d.cts +2 -0
  523. package/dist/components/RadioGroup/index.d.mts +2 -0
  524. package/dist/components/RadioGroup/index.mjs +2 -0
  525. package/dist/components/SegmentedControl/index.cjs +9 -0
  526. package/dist/components/SegmentedControl/index.d.cts +2 -0
  527. package/dist/components/SegmentedControl/index.d.mts +2 -0
  528. package/dist/components/SegmentedControl/index.mjs +2 -0
  529. package/dist/components/Select/index.cjs +10 -0
  530. package/dist/components/Select/index.d.cts +2 -0
  531. package/dist/components/Select/index.d.mts +2 -0
  532. package/dist/components/Select/index.mjs +2 -0
  533. package/dist/components/Slider/index.cjs +1507 -0
  534. package/dist/components/Slider/index.cjs.map +1 -0
  535. package/dist/components/Slider/index.d.cts +3 -0
  536. package/dist/components/Slider/index.d.mts +3 -0
  537. package/dist/components/Slider/index.mjs +1497 -0
  538. package/dist/components/Slider/index.mjs.map +1 -0
  539. package/dist/components/Spacer/index.cjs +3 -0
  540. package/dist/components/Spacer/index.d.cts +2 -0
  541. package/dist/components/Spacer/index.d.mts +2 -0
  542. package/dist/components/Spacer/index.mjs +2 -0
  543. package/dist/components/Spinner/index.cjs +8 -0
  544. package/dist/components/Spinner/index.d.cts +2 -0
  545. package/dist/components/Spinner/index.d.mts +2 -0
  546. package/dist/components/Spinner/index.mjs +2 -0
  547. package/dist/components/Stack/index.cjs +9 -0
  548. package/dist/components/Stack/index.d.cts +2 -0
  549. package/dist/components/Stack/index.d.mts +2 -0
  550. package/dist/components/Stack/index.mjs +2 -0
  551. package/dist/components/StatusIndicator/index.cjs +174 -0
  552. package/dist/components/StatusIndicator/index.cjs.map +1 -0
  553. package/dist/components/StatusIndicator/index.d.cts +2 -0
  554. package/dist/components/StatusIndicator/index.d.mts +2 -0
  555. package/dist/components/StatusIndicator/index.mjs +167 -0
  556. package/dist/components/StatusIndicator/index.mjs.map +1 -0
  557. package/dist/components/Sticker/index.cjs +12 -0
  558. package/dist/components/Sticker/index.d.cts +2 -0
  559. package/dist/components/Sticker/index.d.mts +2 -0
  560. package/dist/components/Sticker/index.mjs +2 -0
  561. package/dist/components/SwatchPicker/index.cjs +65 -0
  562. package/dist/components/SwatchPicker/index.cjs.map +1 -0
  563. package/dist/components/SwatchPicker/index.d.cts +2 -0
  564. package/dist/components/SwatchPicker/index.d.mts +2 -0
  565. package/dist/components/SwatchPicker/index.mjs +58 -0
  566. package/dist/components/SwatchPicker/index.mjs.map +1 -0
  567. package/dist/components/TabBar/index.cjs +12 -0
  568. package/dist/components/TabBar/index.d.cts +4 -0
  569. package/dist/components/TabBar/index.d.mts +4 -0
  570. package/dist/components/TabBar/index.mjs +2 -0
  571. package/dist/components/Table/index.cjs +400 -0
  572. package/dist/components/Table/index.cjs.map +1 -0
  573. package/dist/components/Table/index.d.cts +8 -0
  574. package/dist/components/Table/index.d.mts +8 -0
  575. package/dist/components/Table/index.mjs +379 -0
  576. package/dist/components/Table/index.mjs.map +1 -0
  577. package/dist/components/Text/index.cjs +9 -0
  578. package/dist/components/Text/index.d.cts +2 -0
  579. package/dist/components/Text/index.d.mts +2 -0
  580. package/dist/components/Text/index.mjs +2 -0
  581. package/dist/components/TextArea/index.cjs +8 -0
  582. package/dist/components/TextArea/index.d.cts +2 -0
  583. package/dist/components/TextArea/index.d.mts +2 -0
  584. package/dist/components/TextArea/index.mjs +2 -0
  585. package/dist/components/Tile/index.cjs +103 -0
  586. package/dist/components/Tile/index.cjs.map +1 -0
  587. package/dist/components/Tile/index.d.cts +2 -0
  588. package/dist/components/Tile/index.d.mts +2 -0
  589. package/dist/components/Tile/index.mjs +96 -0
  590. package/dist/components/Tile/index.mjs.map +1 -0
  591. package/dist/components/Toast/index.cjs +141 -0
  592. package/dist/components/Toast/index.cjs.map +1 -0
  593. package/dist/components/Toast/index.d.cts +2 -0
  594. package/dist/components/Toast/index.d.mts +2 -0
  595. package/dist/components/Toast/index.mjs +136 -0
  596. package/dist/components/Toast/index.mjs.map +1 -0
  597. package/dist/components/Toggle/index.cjs +8 -0
  598. package/dist/components/Toggle/index.d.cts +2 -0
  599. package/dist/components/Toggle/index.d.mts +2 -0
  600. package/dist/components/Toggle/index.mjs +2 -0
  601. package/dist/components/Tooltip/index.cjs +12 -0
  602. package/dist/components/Tooltip/index.d.cts +4 -0
  603. package/dist/components/Tooltip/index.d.mts +4 -0
  604. package/dist/components/Tooltip/index.mjs +2 -0
  605. package/dist/constants.d.mts +5 -0
  606. package/dist/ids-Cr-NW2RJ.d.mts +11 -0
  607. package/dist/ids-e4V5Y3Ub.d.cts +11 -0
  608. package/dist/index-1-AkepUA.d.mts +1 -0
  609. package/dist/index-7in8TPrM.d.mts +1 -0
  610. package/dist/index-8R9vlM2B.d.mts +83 -0
  611. package/dist/index-B2KLYYkM.d.cts +1 -0
  612. package/dist/index-BBDa5smF.d.cts +1 -0
  613. package/dist/index-BJ8-FA6N.d.cts +1 -0
  614. package/dist/index-BM1DqNZf.d.cts +628 -0
  615. package/dist/index-BPSCxsMC.d.cts +1 -0
  616. package/dist/index-BPiqSRRl.d.mts +1 -0
  617. package/dist/index-BUYyA1Xh.d.cts +1 -0
  618. package/dist/index-CCt0lwyI.d.mts +1 -0
  619. package/dist/index-CEDY7cmG.d.cts +1 -0
  620. package/dist/index-CEqOS-7M.d.mts +1 -0
  621. package/dist/index-CExuKKOI.d.cts +218 -0
  622. package/dist/index-CIABef8t.d.mts +1 -0
  623. package/dist/index-CIBxlpQo.d.mts +1 -0
  624. package/dist/index-CKu60b9I.d.mts +154 -0
  625. package/dist/index-CP2eJYlK.d.mts +1 -0
  626. package/dist/index-CRo77wc3.d.mts +1 -0
  627. package/dist/index-CiBIKhMu.d.cts +1 -0
  628. package/dist/index-Cii4Qb1X.d.mts +1 -0
  629. package/dist/index-CspKFJM1.d.cts +1 -0
  630. package/dist/index-CsuikFeJ.d.mts +1 -0
  631. package/dist/index-Cz6N-KeS.d.cts +1 -0
  632. package/dist/index-D-BciAtf.d.cts +1 -0
  633. package/dist/index-D26lpgQi.d.cts +1 -0
  634. package/dist/index-D2HUTZ-d.d.cts +1 -0
  635. package/dist/index-D4DUvwPf.d.mts +1 -0
  636. package/dist/index-D4ELpJXS.d.cts +1 -0
  637. package/dist/index-D6CnpA_r.d.cts +1 -0
  638. package/dist/index-DLoAMD9J.d.cts +1 -0
  639. package/dist/index-DQvVmqvS.d.mts +628 -0
  640. package/dist/index-DWfPppPU.d.mts +1 -0
  641. package/dist/index-DcU87nuJ2.d.cts +1 -0
  642. package/dist/index-DkrC-i1D.d.mts +1 -0
  643. package/dist/index-DvuJXuAN.d.mts +1 -0
  644. package/dist/index-OEBbnNdr.d.mts +1 -0
  645. package/dist/index-QbUkWSLh.d.mts +1 -0
  646. package/dist/index-VmEFGBxN.d.cts +1 -0
  647. package/dist/index.cjs +1 -0
  648. package/dist/index.d.cts +2 -0
  649. package/dist/index.d.mts +2 -0
  650. package/dist/index.mjs +0 -0
  651. package/dist/index2.d.cts +1 -0
  652. package/dist/index2.d.mts +1 -0
  653. package/dist/input-BCmP106-.d.mts +17 -0
  654. package/dist/input-Bm_anD8X.d.cts +17 -0
  655. package/dist/inputFields.d.cts +83 -0
  656. package/dist/inputFields.d.mts +83 -0
  657. package/dist/intersperse.d.mts +18 -0
  658. package/dist/lib/ConfigContext.cjs +15 -0
  659. package/dist/lib/ConfigContext.cjs.map +1 -0
  660. package/dist/lib/ConfigContext.d.cts +16 -0
  661. package/dist/lib/ConfigContext.d.mts +17 -0
  662. package/dist/lib/ConfigContext.mjs +15 -0
  663. package/dist/lib/ConfigContext.mjs.map +1 -0
  664. package/dist/lib/HeadlessAriaButton.cjs +33 -0
  665. package/dist/lib/HeadlessAriaButton.cjs.map +1 -0
  666. package/dist/lib/HeadlessAriaButton.d.cts +12 -0
  667. package/dist/lib/HeadlessAriaButton.d.mts +12 -0
  668. package/dist/lib/HeadlessAriaButton.mjs +30 -0
  669. package/dist/lib/HeadlessAriaButton.mjs.map +1 -0
  670. package/dist/lib/PDSProvider.cjs +20 -0
  671. package/dist/lib/PDSProvider.cjs.map +1 -0
  672. package/dist/lib/PDSProvider.d.cts +12 -0
  673. package/dist/lib/PDSProvider.d.mts +13 -0
  674. package/dist/lib/PDSProvider.mjs +19 -0
  675. package/dist/lib/PDSProvider.mjs.map +1 -0
  676. package/dist/lib/TruncatedText.cjs +39 -0
  677. package/dist/lib/TruncatedText.cjs.map +1 -0
  678. package/dist/lib/TruncatedText.d.cts +2 -0
  679. package/dist/lib/TruncatedText.d.mts +2 -0
  680. package/dist/lib/TruncatedText.mjs +31 -0
  681. package/dist/lib/TruncatedText.mjs.map +1 -0
  682. package/dist/lib/TruncatedTextWithTooltip.cjs +34 -0
  683. package/dist/lib/TruncatedTextWithTooltip.cjs.map +1 -0
  684. package/dist/lib/TruncatedTextWithTooltip.d.cts +15 -0
  685. package/dist/lib/TruncatedTextWithTooltip.d.mts +15 -0
  686. package/dist/lib/TruncatedTextWithTooltip.mjs +28 -0
  687. package/dist/lib/TruncatedTextWithTooltip.mjs.map +1 -0
  688. package/dist/lib/comboboxHelper.cjs +46 -0
  689. package/dist/lib/comboboxHelper.cjs.map +1 -0
  690. package/dist/lib/comboboxHelper.d.cts +24 -0
  691. package/dist/lib/comboboxHelper.d.mts +24 -0
  692. package/dist/lib/comboboxHelper.mjs +42 -0
  693. package/dist/lib/comboboxHelper.mjs.map +1 -0
  694. package/dist/lib/datePickerHelper.cjs +3568 -0
  695. package/dist/lib/datePickerHelper.cjs.map +1 -0
  696. package/dist/lib/datePickerHelper.d.cts +19 -0
  697. package/dist/lib/datePickerHelper.d.mts +19 -0
  698. package/dist/lib/datePickerHelper.mjs +3566 -0
  699. package/dist/lib/datePickerHelper.mjs.map +1 -0
  700. package/dist/lib/pseudoClass.cjs +32 -0
  701. package/dist/lib/pseudoClass.cjs.map +1 -0
  702. package/dist/lib/pseudoClass.d.cts +45 -0
  703. package/dist/lib/pseudoClass.d.mts +45 -0
  704. package/dist/lib/pseudoClass.mjs +18 -0
  705. package/dist/lib/pseudoClass.mjs.map +1 -0
  706. package/dist/lib/register/RegisterComponent.cjs +91 -0
  707. package/dist/lib/register/RegisterComponent.cjs.map +1 -0
  708. package/dist/lib/register/RegisterComponent.d.cts +2 -0
  709. package/dist/lib/register/RegisterComponent.d.mts +2 -0
  710. package/dist/lib/register/RegisterComponent.mjs +88 -0
  711. package/dist/lib/register/RegisterComponent.mjs.map +1 -0
  712. package/dist/lib/register/ids.cjs +31 -0
  713. package/dist/lib/register/ids.cjs.map +1 -0
  714. package/dist/lib/register/ids.d.cts +2 -0
  715. package/dist/lib/register/ids.d.mts +2 -0
  716. package/dist/lib/register/ids.mjs +28 -0
  717. package/dist/lib/register/ids.mjs.map +1 -0
  718. package/dist/lib/register/index.cjs +8 -0
  719. package/dist/lib/register/index.d.cts +4 -0
  720. package/dist/lib/register/index.d.mts +4 -0
  721. package/dist/lib/register/index.mjs +3 -0
  722. package/dist/lib/register/types.cjs +1 -0
  723. package/dist/lib/register/types.d.cts +2 -0
  724. package/dist/lib/register/types.d.mts +2 -0
  725. package/dist/lib/register/types.mjs +0 -0
  726. package/dist/lib/reorderItems.cjs +39 -0
  727. package/dist/lib/reorderItems.cjs.map +1 -0
  728. package/dist/lib/reorderItems.d.cts +26 -0
  729. package/dist/lib/reorderItems.d.mts +26 -0
  730. package/dist/lib/reorderItems.mjs +36 -0
  731. package/dist/lib/reorderItems.mjs.map +1 -0
  732. package/dist/lib/selectHelper.cjs +22 -0
  733. package/dist/lib/selectHelper.cjs.map +1 -0
  734. package/dist/lib/selectHelper.d.cts +14 -0
  735. package/dist/lib/selectHelper.d.mts +14 -0
  736. package/dist/lib/selectHelper.mjs +20 -0
  737. package/dist/lib/selectHelper.mjs.map +1 -0
  738. package/dist/lib/useControlled.cjs +20 -0
  739. package/dist/lib/useControlled.cjs.map +1 -0
  740. package/dist/lib/useControlled.d.cts +16 -0
  741. package/dist/lib/useControlled.d.mts +17 -0
  742. package/dist/lib/useControlled.mjs +19 -0
  743. package/dist/lib/useControlled.mjs.map +1 -0
  744. package/dist/lib/useIsOverflow.cjs +58 -0
  745. package/dist/lib/useIsOverflow.cjs.map +1 -0
  746. package/dist/lib/useIsOverflow.d.cts +11 -0
  747. package/dist/lib/useIsOverflow.d.mts +11 -0
  748. package/dist/lib/useIsOverflow.mjs +56 -0
  749. package/dist/lib/useIsOverflow.mjs.map +1 -0
  750. package/dist/lib/useOutsideClick.cjs +19 -0
  751. package/dist/lib/useOutsideClick.cjs.map +1 -0
  752. package/dist/lib/useOutsideClick.d.cts +13 -0
  753. package/dist/lib/useOutsideClick.d.mts +13 -0
  754. package/dist/lib/useOutsideClick.mjs +17 -0
  755. package/dist/lib/useOutsideClick.mjs.map +1 -0
  756. package/dist/lib/zindex.cjs +27 -0
  757. package/dist/lib/zindex.cjs.map +1 -0
  758. package/dist/lib/zindex.d.cts +25 -0
  759. package/dist/lib/zindex.d.mts +25 -0
  760. package/dist/lib/zindex.mjs +25 -0
  761. package/dist/lib/zindex.mjs.map +1 -0
  762. package/dist/mergeRefs-BZinWopc.cjs +31 -0
  763. package/dist/mergeRefs-BZinWopc.cjs.map +1 -0
  764. package/dist/mergeRefs-BgcbK0Qy.mjs +26 -0
  765. package/dist/mergeRefs-BgcbK0Qy.mjs.map +1 -0
  766. package/dist/mixins/focus.cjs +39 -0
  767. package/dist/mixins/focus.cjs.map +1 -0
  768. package/dist/mixins/focus.d.cts +11 -0
  769. package/dist/mixins/focus.d.mts +11 -0
  770. package/dist/mixins/focus.mjs +34 -0
  771. package/dist/mixins/focus.mjs.map +1 -0
  772. package/dist/mixins/hoverable.cjs +38 -0
  773. package/dist/mixins/hoverable.cjs.map +1 -0
  774. package/dist/mixins/hoverable.d.cts +16 -0
  775. package/dist/mixins/hoverable.d.mts +16 -0
  776. package/dist/mixins/hoverable.mjs +32 -0
  777. package/dist/mixins/hoverable.mjs.map +1 -0
  778. package/dist/mixins/input.cjs +95 -0
  779. package/dist/mixins/input.cjs.map +1 -0
  780. package/dist/mixins/input.d.cts +2 -0
  781. package/dist/mixins/input.d.mts +2 -0
  782. package/dist/mixins/input.mjs +94 -0
  783. package/dist/mixins/input.mjs.map +1 -0
  784. package/dist/mixins/menuItem.cjs +110 -0
  785. package/dist/mixins/menuItem.cjs.map +1 -0
  786. package/dist/mixins/menuItem.d.cts +30 -0
  787. package/dist/mixins/menuItem.d.mts +31 -0
  788. package/dist/mixins/menuItem.mjs +109 -0
  789. package/dist/mixins/menuItem.mjs.map +1 -0
  790. package/dist/mixins/print/index.cjs +25 -0
  791. package/dist/mixins/print/index.cjs.map +1 -0
  792. package/dist/mixins/print/index.d.cts +11 -0
  793. package/dist/mixins/print/index.d.mts +11 -0
  794. package/dist/mixins/print/index.mjs +23 -0
  795. package/dist/mixins/print/index.mjs.map +1 -0
  796. package/dist/mixins/text.cjs +93 -0
  797. package/dist/mixins/text.cjs.map +1 -0
  798. package/dist/mixins/text.d.cts +2 -0
  799. package/dist/mixins/text.d.mts +2 -0
  800. package/dist/mixins/text.mjs +88 -0
  801. package/dist/mixins/text.mjs.map +1 -0
  802. package/dist/motion-DoikasqZ.mjs +7483 -0
  803. package/dist/motion-DoikasqZ.mjs.map +1 -0
  804. package/dist/motion-QW6imSxE.cjs +7488 -0
  805. package/dist/motion-QW6imSxE.cjs.map +1 -0
  806. package/dist/react.esm-C-es35jP.cjs +11441 -0
  807. package/dist/react.esm-C-es35jP.cjs.map +1 -0
  808. package/dist/react.esm-Dv1lMDRs.mjs +11397 -0
  809. package/dist/react.esm-Dv1lMDRs.mjs.map +1 -0
  810. package/dist/text-BrSUs-88.d.mts +14 -0
  811. package/dist/text-PmH5oc61.d.cts +14 -0
  812. package/dist/theme-Cadb1xzQ.d.cts +154 -0
  813. package/dist/theme-DGAqgnUa.d.mts +154 -0
  814. package/dist/theme.cjs +353 -0
  815. package/dist/theme.cjs.map +1 -0
  816. package/dist/theme.d.cts +2 -0
  817. package/dist/theme.d.mts +2 -0
  818. package/dist/theme.mjs +346 -0
  819. package/dist/theme.mjs.map +1 -0
  820. package/dist/types-DzHQ5MGm.d.mts +69 -0
  821. package/dist/types-N-cXznfM.d.cts +69 -0
  822. package/dist/useFormField-Ba0CQ43u.d.cts +30 -0
  823. package/dist/useFormField-BmtItl8y.d.mts +30 -0
  824. package/dist/useFormField-DN3gpEEV.cjs +37 -0
  825. package/dist/useFormField-DN3gpEEV.cjs.map +1 -0
  826. package/dist/useFormField-eftOPiXj.mjs +25 -0
  827. package/dist/useFormField-eftOPiXj.mjs.map +1 -0
  828. package/dist/useFormField.d.cts +2 -0
  829. package/dist/useFormField.d.mts +2 -0
  830. package/dist/useFormGroup-BMukAMAd.mjs +14 -0
  831. package/dist/useFormGroup-BMukAMAd.mjs.map +1 -0
  832. package/dist/useFormGroup-B_mFNoN9.cjs +26 -0
  833. package/dist/useFormGroup-B_mFNoN9.cjs.map +1 -0
  834. package/dist/useFormGroup.d.cts +18 -0
  835. package/dist/useFormGroup.d.mts +18 -0
  836. package/dist/useLabel-BcbghpIU.cjs +1465 -0
  837. package/dist/useLabel-BcbghpIU.cjs.map +1 -0
  838. package/dist/useLabel-DHGzNIKw.mjs +1212 -0
  839. package/dist/useLabel-DHGzNIKw.mjs.map +1 -0
  840. package/dist/useModalInsetRight.d.mts +21 -0
  841. package/dist/useToggle-0zLL1E7s.mjs +21 -0
  842. package/dist/useToggle-0zLL1E7s.mjs.map +1 -0
  843. package/dist/useToggle-DNrEsTpr.cjs +27 -0
  844. package/dist/useToggle-DNrEsTpr.cjs.map +1 -0
  845. package/dist/useToggle.d.mts +17 -0
  846. package/dist/useTruncation.d.mts +12 -0
  847. package/dist/utilities-C8Jf-xpi.d.cts +9 -0
  848. package/dist/utilities-w1K54IAy.d.mts +9 -0
  849. package/dist/utilities.d.cts +2 -0
  850. package/dist/utilities.d.mts +2 -0
  851. package/dist/utils/storybook.cjs +13 -0
  852. package/dist/utils/storybook.cjs.map +1 -0
  853. package/dist/utils/storybook.mjs +11 -0
  854. package/dist/utils/storybook.mjs.map +1 -0
  855. package/dist/utils/testing.cjs +50 -0
  856. package/dist/utils/testing.cjs.map +1 -0
  857. package/dist/utils/testing.d.cts +370 -0
  858. package/dist/utils/testing.d.mts +370 -0
  859. package/dist/utils/testing.mjs +45 -0
  860. package/dist/utils/testing.mjs.map +1 -0
  861. package/dist/variables/color.cjs +23 -0
  862. package/dist/variables/color.cjs.map +1 -0
  863. package/dist/variables/color.d.cts +19 -0
  864. package/dist/variables/color.d.mts +19 -0
  865. package/dist/variables/color.mjs +21 -0
  866. package/dist/variables/color.mjs.map +1 -0
  867. package/dist/variables/effect.cjs +27 -0
  868. package/dist/variables/effect.cjs.map +1 -0
  869. package/dist/variables/effect.d.cts +21 -0
  870. package/dist/variables/effect.d.mts +21 -0
  871. package/dist/variables/effect.mjs +24 -0
  872. package/dist/variables/effect.mjs.map +1 -0
  873. package/dist/variables/keyframes.cjs +22 -0
  874. package/dist/variables/keyframes.cjs.map +1 -0
  875. package/dist/variables/keyframes.d.cts +8 -0
  876. package/dist/variables/keyframes.d.mts +8 -0
  877. package/dist/variables/keyframes.mjs +19 -0
  878. package/dist/variables/keyframes.mjs.map +1 -0
  879. package/dist/variables/spacing.cjs +11 -0
  880. package/dist/variables/spacing.cjs.map +1 -0
  881. package/dist/variables/spacing.d.cts +8 -0
  882. package/dist/variables/spacing.d.mts +8 -0
  883. package/dist/variables/spacing.mjs +9 -0
  884. package/dist/variables/spacing.mjs.map +1 -0
  885. package/dist/variables/text.cjs +14 -0
  886. package/dist/variables/text.cjs.map +1 -0
  887. package/dist/variables/text.d.cts +10 -0
  888. package/dist/variables/text.d.mts +10 -0
  889. package/dist/variables/text.mjs +12 -0
  890. package/dist/variables/text.mjs.map +1 -0
  891. package/dist/variables/transitions.cjs +25 -0
  892. package/dist/variables/transitions.cjs.map +1 -0
  893. package/dist/variables/transitions.d.cts +19 -0
  894. package/dist/variables/transitions.d.mts +19 -0
  895. package/dist/variables/transitions.mjs +22 -0
  896. package/dist/variables/transitions.mjs.map +1 -0
  897. package/package.json +781 -0
@@ -0,0 +1,177 @@
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_chunk = require("../../chunk-CoPdw6nB.cjs");
6
+ const require_mixins_text = require("../../mixins/text.cjs");
7
+ const require_Tooltip = require("../../Tooltip-0i_15ysU.cjs");
8
+ let _persona_design_tokens = require("@persona/design-tokens");
9
+ let styled_components = require("styled-components");
10
+ styled_components = require_chunk.__toESM(styled_components);
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ let react_aria = require("react-aria");
13
+ let _persona_icons_CircleAlertIcon = require("@persona/icons/CircleAlertIcon");
14
+ _persona_icons_CircleAlertIcon = require_chunk.__toESM(_persona_icons_CircleAlertIcon);
15
+ let _persona_icons_CircleCheckFillIcon = require("@persona/icons/CircleCheckFillIcon");
16
+ _persona_icons_CircleCheckFillIcon = require_chunk.__toESM(_persona_icons_CircleCheckFillIcon);
17
+ //#region components/ProgressBar/ProgressBar.tsx
18
+ const STATUS_FILL_COLORS = {
19
+ default: _persona_design_tokens.Color.BorderInputActive,
20
+ exception: _persona_design_tokens.Color.BorderInputDanger,
21
+ success: _persona_design_tokens.Color.BorderIconSuccess
22
+ };
23
+ const STATUS_ICON_COLORS = {
24
+ exception: _persona_design_tokens.Color.BorderInputDanger,
25
+ success: _persona_design_tokens.Color.BorderIconSuccess
26
+ };
27
+ const TRACK_HEIGHT = {
28
+ sm: "4px",
29
+ md: "8px"
30
+ };
31
+ const BAR_ROW_HEIGHT = "20px";
32
+ const indeterminateScan = styled_components.keyframes`
33
+ 0% { left: -40%; width: 40%; }
34
+ 60% { left: 100%; width: 40%; }
35
+ 100% { left: 100%; width: 40%; }
36
+ `;
37
+ const Container = styled_components.default.div`
38
+ display: flex;
39
+ flex-direction: column;
40
+ width: 100%;
41
+ `;
42
+ const LabelText = styled_components.default.span`
43
+ ${require_mixins_text.paragraphMixins.md}
44
+ color: ${_persona_design_tokens.Color.TextPrimary};
45
+ `;
46
+ const BarRow = styled_components.default.div`
47
+ display: flex;
48
+ gap: ${_persona_design_tokens.Spacing[2]};
49
+ align-items: center;
50
+ min-height: ${BAR_ROW_HEIGHT};
51
+ width: 100%;
52
+ `;
53
+ const Track = styled_components.default.div`
54
+ flex: 1;
55
+ height: ${({ $size }) => TRACK_HEIGHT[$size]};
56
+ background-color: ${({ $railColor }) => $railColor ?? _persona_design_tokens.Color.BorderDivider};
57
+ border-radius: 4px;
58
+ overflow: hidden;
59
+ position: relative;
60
+ `;
61
+ const Fill = styled_components.default.div`
62
+ position: absolute;
63
+ top: 0;
64
+ bottom: 0;
65
+ left: ${({ $left }) => `${$left}%`};
66
+ width: ${({ $percent }) => `${$percent}%`};
67
+ background-color: ${({ $status, $fillColor }) => $fillColor ?? STATUS_FILL_COLORS[$status]};
68
+ border-radius: ${({ $hasSuccessBefore }) => $hasSuccessBefore ? "0 4px 4px 0" : "4px"};
69
+ transition: width 0.3s ease, left 0.3s ease;
70
+ `;
71
+ const SuccessFill = styled_components.default.div`
72
+ position: absolute;
73
+ top: 0;
74
+ bottom: 0;
75
+ left: 0;
76
+ width: ${({ $percent }) => `${$percent}%`};
77
+ background-color: ${STATUS_FILL_COLORS.success};
78
+ border-radius: ${({ $hasInProgressAfter }) => $hasInProgressAfter ? "4px 0 0 4px" : "4px"};
79
+ transition: width 0.3s ease;
80
+ `;
81
+ const IndeterminateFill = styled_components.default.div`
82
+ position: absolute;
83
+ inset: 0 auto 0 auto;
84
+ height: 100%;
85
+ /* Same neutral as Spinner (Color.BorderIconPrimary) */
86
+ background-color: ${_persona_design_tokens.Color.BorderIconPrimary};
87
+ border-radius: 4px;
88
+ animation: ${indeterminateScan} 2.5s ease-in-out infinite;
89
+ `;
90
+ const SuffixRow = styled_components.default.div`
91
+ display: flex;
92
+ gap: ${_persona_design_tokens.Spacing[1]};
93
+ align-items: center;
94
+ flex-shrink: 0;
95
+ `;
96
+ const PercentText = styled_components.default.span`
97
+ ${require_mixins_text.paragraphMixins.md}
98
+ color: ${_persona_design_tokens.Color.TextPrimary};
99
+ white-space: nowrap;
100
+ `;
101
+ const IconWrapper = styled_components.default.span`
102
+ display: flex;
103
+ flex-shrink: 0;
104
+ line-height: 0;
105
+ color: ${({ $color }) => $color};
106
+ `;
107
+ /**
108
+ * ProgressBar shows the completion status of an operation as a filled bar.
109
+ *
110
+ * @example
111
+ * ```tsx
112
+ * <ProgressBar
113
+ * percent={60}
114
+ * size="md"
115
+ * label="Uploading"
116
+ * showInfo
117
+ * />
118
+ * ```
119
+ */
120
+ const ProgressBar = ({ percent = 0, size = "sm", status = "default", type = "determinate", label, showInfo, fillColor, railColor, format, successPercent, tooltip, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }) => {
121
+ const labelId = (0, react_aria.useId)();
122
+ const clampedPercent = Math.min(100, Math.max(0, percent));
123
+ const clampedSuccessPercent = successPercent != null ? Math.min(clampedPercent, Math.max(0, successPercent)) : 0;
124
+ const inProgressPercent = clampedPercent - clampedSuccessPercent;
125
+ const hasSuccessSegment = clampedSuccessPercent > 0;
126
+ const hasInProgressSegment = inProgressPercent > 0;
127
+ const effectiveStatus = clampedPercent >= 100 && status !== "exception" ? "success" : status;
128
+ const effectiveShowInfo = showInfo ?? successPercent != null;
129
+ const isTerminal = effectiveStatus === "exception" || effectiveStatus === "success";
130
+ const formattedPercent = format ? format(clampedPercent) : `${clampedPercent}%`;
131
+ const isIndeterminate = type === "indeterminate";
132
+ const labelledBy = label ? [labelId, ariaLabelledBy].filter(Boolean).join(" ") : ariaLabelledBy;
133
+ const track = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Track, {
134
+ $size: size,
135
+ $railColor: railColor,
136
+ role: "progressbar",
137
+ "aria-valuemin": 0,
138
+ "aria-valuemax": 100,
139
+ "aria-valuenow": isIndeterminate ? void 0 : clampedPercent,
140
+ "aria-valuetext": isIndeterminate ? void 0 : formattedPercent,
141
+ "aria-labelledby": labelledBy || void 0,
142
+ "aria-label": labelledBy ? void 0 : ariaLabel ?? "Progress",
143
+ children: isIndeterminate ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IndeterminateFill, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [hasSuccessSegment && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SuccessFill, {
144
+ $percent: clampedSuccessPercent,
145
+ $hasInProgressAfter: hasInProgressSegment
146
+ }), hasInProgressSegment && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Fill, {
147
+ $percent: inProgressPercent,
148
+ $left: clampedSuccessPercent,
149
+ $status: effectiveStatus,
150
+ $fillColor: fillColor,
151
+ $hasSuccessBefore: hasSuccessSegment
152
+ })] })
153
+ });
154
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(Container, {
155
+ ...props,
156
+ children: [label && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(LabelText, {
157
+ id: labelId,
158
+ children: label
159
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(BarRow, { children: [tooltip ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Tooltip.Tooltip, {
160
+ trigger: track,
161
+ side: "top",
162
+ contentAlignment: "center",
163
+ children: tooltip
164
+ }) : track, effectiveShowInfo && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SuffixRow, { children: isTerminal ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconWrapper, {
165
+ $color: STATUS_ICON_COLORS[effectiveStatus],
166
+ children: effectiveStatus === "exception" ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_persona_icons_CircleAlertIcon.default, { size: 16 }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_persona_icons_CircleCheckFillIcon.default, { size: 16 })
167
+ }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PercentText, { children: formattedPercent }) })] })]
168
+ });
169
+ };
170
+ //#endregion
171
+ //#region components/ProgressBar/index.ts
172
+ var ProgressBar_default = ProgressBar;
173
+ //#endregion
174
+ exports.ProgressBar = ProgressBar;
175
+ exports.default = ProgressBar_default;
176
+
177
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["Color","paragraphMixins","Spacing","Tooltip","CircleAlertIcon","CircleCheckFillIcon"],"sources":["../../../components/ProgressBar/ProgressBar.tsx","../../../components/ProgressBar/index.ts"],"sourcesContent":["import { Tooltip } from '@persona/design-system/components/Tooltip';\nimport { paragraphMixins } from '@persona/design-system/mixins/text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport CircleAlertIcon from '@persona/icons/CircleAlertIcon';\nimport CircleCheckFillIcon from '@persona/icons/CircleCheckFillIcon';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useId } from 'react-aria';\nimport styled, { keyframes } from 'styled-components';\n\nexport type ProgressBarStatus = 'default' | 'exception' | 'success';\nexport type ProgressBarSize = 'sm' | 'md';\nexport type ProgressBarType = 'determinate' | 'indeterminate';\n\nconst STATUS_FILL_COLORS: Record<ProgressBarStatus, Color> = {\n default: Color.BorderInputActive,\n exception: Color.BorderInputDanger,\n success: Color.BorderIconSuccess,\n};\n\nconst STATUS_ICON_COLORS: Record<'exception' | 'success', Color> = {\n exception: Color.BorderInputDanger,\n success: Color.BorderIconSuccess,\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: ${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: ${({ $railColor }) => $railColor ?? 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: ${({ $status, $fillColor }) => $fillColor ?? STATUS_FILL_COLORS[$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: ${STATUS_FILL_COLORS.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 /* Same neutral as Spinner (Color.BorderIconPrimary) */\n background-color: ${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: ${Color.TextPrimary};\n white-space: nowrap;\n`;\n\nconst IconWrapper = styled.span<{ $color: Color }>`\n display: flex;\n flex-shrink: 0;\n line-height: 0;\n color: ${({ $color }) => $color};\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 $color={STATUS_ICON_COLORS[effectiveStatus]}>\n {effectiveStatus === 'exception' ? (\n <CircleAlertIcon 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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"}
@@ -0,0 +1,2 @@
1
+ import { ProgressBar, ProgressBarProps, ProgressBarSize, ProgressBarStatus, ProgressBarType } from "../../ProgressBar.cjs";
2
+ export { ProgressBar, ProgressBar as default, type ProgressBarProps, type ProgressBarSize, type ProgressBarStatus, type ProgressBarType };
@@ -0,0 +1,2 @@
1
+ import { ProgressBar, ProgressBarProps, ProgressBarSize, ProgressBarStatus, ProgressBarType } from "../../ProgressBar.mjs";
2
+ export { ProgressBar, ProgressBar as default, type ProgressBarProps, type ProgressBarSize, type ProgressBarStatus, type ProgressBarType };
@@ -0,0 +1,168 @@
1
+ import { paragraphMixins } from "../../mixins/text.mjs";
2
+ import { a as Tooltip } from "../../Tooltip-T7RQpy_a.mjs";
3
+ import { Color, Spacing } from "@persona/design-tokens";
4
+ import styled, { keyframes } from "styled-components";
5
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
+ import { useId } from "react-aria";
7
+ import CircleAlertIcon from "@persona/icons/CircleAlertIcon";
8
+ import CircleCheckFillIcon from "@persona/icons/CircleCheckFillIcon";
9
+ //#region components/ProgressBar/ProgressBar.tsx
10
+ const STATUS_FILL_COLORS = {
11
+ default: Color.BorderInputActive,
12
+ exception: Color.BorderInputDanger,
13
+ success: Color.BorderIconSuccess
14
+ };
15
+ const STATUS_ICON_COLORS = {
16
+ exception: Color.BorderInputDanger,
17
+ success: Color.BorderIconSuccess
18
+ };
19
+ const TRACK_HEIGHT = {
20
+ sm: "4px",
21
+ md: "8px"
22
+ };
23
+ const BAR_ROW_HEIGHT = "20px";
24
+ const indeterminateScan = keyframes`
25
+ 0% { left: -40%; width: 40%; }
26
+ 60% { left: 100%; width: 40%; }
27
+ 100% { left: 100%; width: 40%; }
28
+ `;
29
+ const Container = styled.div`
30
+ display: flex;
31
+ flex-direction: column;
32
+ width: 100%;
33
+ `;
34
+ const LabelText = styled.span`
35
+ ${paragraphMixins.md}
36
+ color: ${Color.TextPrimary};
37
+ `;
38
+ const BarRow = styled.div`
39
+ display: flex;
40
+ gap: ${Spacing[2]};
41
+ align-items: center;
42
+ min-height: ${BAR_ROW_HEIGHT};
43
+ width: 100%;
44
+ `;
45
+ const Track = styled.div`
46
+ flex: 1;
47
+ height: ${({ $size }) => TRACK_HEIGHT[$size]};
48
+ background-color: ${({ $railColor }) => $railColor ?? Color.BorderDivider};
49
+ border-radius: 4px;
50
+ overflow: hidden;
51
+ position: relative;
52
+ `;
53
+ const Fill = styled.div`
54
+ position: absolute;
55
+ top: 0;
56
+ bottom: 0;
57
+ left: ${({ $left }) => `${$left}%`};
58
+ width: ${({ $percent }) => `${$percent}%`};
59
+ background-color: ${({ $status, $fillColor }) => $fillColor ?? STATUS_FILL_COLORS[$status]};
60
+ border-radius: ${({ $hasSuccessBefore }) => $hasSuccessBefore ? "0 4px 4px 0" : "4px"};
61
+ transition: width 0.3s ease, left 0.3s ease;
62
+ `;
63
+ const SuccessFill = styled.div`
64
+ position: absolute;
65
+ top: 0;
66
+ bottom: 0;
67
+ left: 0;
68
+ width: ${({ $percent }) => `${$percent}%`};
69
+ background-color: ${STATUS_FILL_COLORS.success};
70
+ border-radius: ${({ $hasInProgressAfter }) => $hasInProgressAfter ? "4px 0 0 4px" : "4px"};
71
+ transition: width 0.3s ease;
72
+ `;
73
+ const IndeterminateFill = styled.div`
74
+ position: absolute;
75
+ inset: 0 auto 0 auto;
76
+ height: 100%;
77
+ /* Same neutral as Spinner (Color.BorderIconPrimary) */
78
+ background-color: ${Color.BorderIconPrimary};
79
+ border-radius: 4px;
80
+ animation: ${indeterminateScan} 2.5s ease-in-out infinite;
81
+ `;
82
+ const SuffixRow = styled.div`
83
+ display: flex;
84
+ gap: ${Spacing[1]};
85
+ align-items: center;
86
+ flex-shrink: 0;
87
+ `;
88
+ const PercentText = styled.span`
89
+ ${paragraphMixins.md}
90
+ color: ${Color.TextPrimary};
91
+ white-space: nowrap;
92
+ `;
93
+ const IconWrapper = styled.span`
94
+ display: flex;
95
+ flex-shrink: 0;
96
+ line-height: 0;
97
+ color: ${({ $color }) => $color};
98
+ `;
99
+ /**
100
+ * ProgressBar shows the completion status of an operation as a filled bar.
101
+ *
102
+ * @example
103
+ * ```tsx
104
+ * <ProgressBar
105
+ * percent={60}
106
+ * size="md"
107
+ * label="Uploading"
108
+ * showInfo
109
+ * />
110
+ * ```
111
+ */
112
+ const ProgressBar = ({ percent = 0, size = "sm", status = "default", type = "determinate", label, showInfo, fillColor, railColor, format, successPercent, tooltip, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, ...props }) => {
113
+ const labelId = useId();
114
+ const clampedPercent = Math.min(100, Math.max(0, percent));
115
+ const clampedSuccessPercent = successPercent != null ? Math.min(clampedPercent, Math.max(0, successPercent)) : 0;
116
+ const inProgressPercent = clampedPercent - clampedSuccessPercent;
117
+ const hasSuccessSegment = clampedSuccessPercent > 0;
118
+ const hasInProgressSegment = inProgressPercent > 0;
119
+ const effectiveStatus = clampedPercent >= 100 && status !== "exception" ? "success" : status;
120
+ const effectiveShowInfo = showInfo ?? successPercent != null;
121
+ const isTerminal = effectiveStatus === "exception" || effectiveStatus === "success";
122
+ const formattedPercent = format ? format(clampedPercent) : `${clampedPercent}%`;
123
+ const isIndeterminate = type === "indeterminate";
124
+ const labelledBy = label ? [labelId, ariaLabelledBy].filter(Boolean).join(" ") : ariaLabelledBy;
125
+ const track = /* @__PURE__ */ jsx(Track, {
126
+ $size: size,
127
+ $railColor: railColor,
128
+ role: "progressbar",
129
+ "aria-valuemin": 0,
130
+ "aria-valuemax": 100,
131
+ "aria-valuenow": isIndeterminate ? void 0 : clampedPercent,
132
+ "aria-valuetext": isIndeterminate ? void 0 : formattedPercent,
133
+ "aria-labelledby": labelledBy || void 0,
134
+ "aria-label": labelledBy ? void 0 : ariaLabel ?? "Progress",
135
+ children: isIndeterminate ? /* @__PURE__ */ jsx(IndeterminateFill, {}) : /* @__PURE__ */ jsxs(Fragment, { children: [hasSuccessSegment && /* @__PURE__ */ jsx(SuccessFill, {
136
+ $percent: clampedSuccessPercent,
137
+ $hasInProgressAfter: hasInProgressSegment
138
+ }), hasInProgressSegment && /* @__PURE__ */ jsx(Fill, {
139
+ $percent: inProgressPercent,
140
+ $left: clampedSuccessPercent,
141
+ $status: effectiveStatus,
142
+ $fillColor: fillColor,
143
+ $hasSuccessBefore: hasSuccessSegment
144
+ })] })
145
+ });
146
+ return /* @__PURE__ */ jsxs(Container, {
147
+ ...props,
148
+ children: [label && /* @__PURE__ */ jsx(LabelText, {
149
+ id: labelId,
150
+ children: label
151
+ }), /* @__PURE__ */ jsxs(BarRow, { children: [tooltip ? /* @__PURE__ */ jsx(Tooltip, {
152
+ trigger: track,
153
+ side: "top",
154
+ contentAlignment: "center",
155
+ children: tooltip
156
+ }) : track, effectiveShowInfo && /* @__PURE__ */ jsx(SuffixRow, { children: isTerminal ? /* @__PURE__ */ jsx(IconWrapper, {
157
+ $color: STATUS_ICON_COLORS[effectiveStatus],
158
+ children: effectiveStatus === "exception" ? /* @__PURE__ */ jsx(CircleAlertIcon, { size: 16 }) : /* @__PURE__ */ jsx(CircleCheckFillIcon, { size: 16 })
159
+ }) : /* @__PURE__ */ jsx(PercentText, { children: formattedPercent }) })] })]
160
+ });
161
+ };
162
+ //#endregion
163
+ //#region components/ProgressBar/index.ts
164
+ var ProgressBar_default = ProgressBar;
165
+ //#endregion
166
+ export { ProgressBar, ProgressBar_default as default };
167
+
168
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/ProgressBar/ProgressBar.tsx","../../../components/ProgressBar/index.ts"],"sourcesContent":["import { Tooltip } from '@persona/design-system/components/Tooltip';\nimport { paragraphMixins } from '@persona/design-system/mixins/text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport CircleAlertIcon from '@persona/icons/CircleAlertIcon';\nimport CircleCheckFillIcon from '@persona/icons/CircleCheckFillIcon';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport { useId } from 'react-aria';\nimport styled, { keyframes } from 'styled-components';\n\nexport type ProgressBarStatus = 'default' | 'exception' | 'success';\nexport type ProgressBarSize = 'sm' | 'md';\nexport type ProgressBarType = 'determinate' | 'indeterminate';\n\nconst STATUS_FILL_COLORS: Record<ProgressBarStatus, Color> = {\n default: Color.BorderInputActive,\n exception: Color.BorderInputDanger,\n success: Color.BorderIconSuccess,\n};\n\nconst STATUS_ICON_COLORS: Record<'exception' | 'success', Color> = {\n exception: Color.BorderInputDanger,\n success: Color.BorderIconSuccess,\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: ${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: ${({ $railColor }) => $railColor ?? 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: ${({ $status, $fillColor }) => $fillColor ?? STATUS_FILL_COLORS[$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: ${STATUS_FILL_COLORS.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 /* Same neutral as Spinner (Color.BorderIconPrimary) */\n background-color: ${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: ${Color.TextPrimary};\n white-space: nowrap;\n`;\n\nconst IconWrapper = styled.span<{ $color: Color }>`\n display: flex;\n flex-shrink: 0;\n line-height: 0;\n color: ${({ $color }) => $color};\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 $color={STATUS_ICON_COLORS[effectiveStatus]}>\n {effectiveStatus === 'exception' ? (\n <CircleAlertIcon 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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"}
@@ -0,0 +1,185 @@
1
+ Object.defineProperties(exports, {
2
+ __esModule: { value: true },
3
+ [Symbol.toStringTag]: { value: "Module" }
4
+ });
5
+ const require_chunk = require("../../chunk-CoPdw6nB.cjs");
6
+ const require_mixins_focus = require("../../mixins/focus.cjs");
7
+ const require_mixins_text = require("../../mixins/text.cjs");
8
+ let _persona_design_tokens = require("@persona/design-tokens");
9
+ let styled_components = require("styled-components");
10
+ styled_components = require_chunk.__toESM(styled_components);
11
+ let react_jsx_runtime = require("react/jsx-runtime");
12
+ let _persona_icons = require("@persona/icons");
13
+ //#region components/ProgressIndicator/ProgressIndicator.tsx
14
+ /**
15
+ * Completed and error steps can be navigated back to.
16
+ * The current step (first uncompleted) is also clickable so the user can
17
+ * return to it after navigating back to an earlier step.
18
+ * Active and upcoming steps (beyond the current) are not clickable.
19
+ */
20
+ function resolveClickable(status, isActive, isDisabled, isCurrent) {
21
+ if (isDisabled || isActive) return false;
22
+ return status === "completed" || status === "error" || isCurrent;
23
+ }
24
+ function resolveIcon(status, isCurrent) {
25
+ if (status === "completed") return _persona_icons.CircleCheckFillIcon;
26
+ if (status === "error") return _persona_icons.CircleAlertIcon;
27
+ if (isCurrent) return _persona_icons.CircleFillIcon;
28
+ return _persona_icons.CircleNullIcon;
29
+ }
30
+ function resolveIconColor(status, isActive, isDisabled) {
31
+ if (isDisabled) return _persona_design_tokens.Color.BorderIconDisabled;
32
+ if (status === "completed") return _persona_design_tokens.Color.BorderIconSuccess;
33
+ if (status === "error") return _persona_design_tokens.Color.BorderIconWarning;
34
+ return isActive ? _persona_design_tokens.Color.BorderIconActive : _persona_design_tokens.Color.BorderIconSecondary;
35
+ }
36
+ function resolveTextColor(status, isActive, isDisabled) {
37
+ if (isDisabled) return _persona_design_tokens.Color.TextDisabled;
38
+ if (isActive) return _persona_design_tokens.Color.TextActive;
39
+ if (status === "uncompleted") return _persona_design_tokens.Color.TextSecondary;
40
+ return _persona_design_tokens.Color.TextPrimary;
41
+ }
42
+ const StepList = styled_components.default.ol`
43
+ display: flex;
44
+ flex-direction: ${({ $layout }) => $layout === "horizontal" ? "row" : "column"};
45
+ gap: ${({ $layout }) => $layout === "horizontal" ? _persona_design_tokens.Spacing[2] : "0px"};
46
+ list-style: none;
47
+ margin: 0;
48
+ padding: 0;
49
+ `;
50
+ const StepItem = styled_components.default.li`
51
+ display: flex;
52
+ align-items: center;
53
+
54
+ ${({ $layout }) => $layout === "horizontal" && styled_components.css`
55
+ width: fit-content;
56
+ white-space: nowrap;
57
+ `}
58
+ `;
59
+ const StepContent = styled_components.default.button`
60
+ display: flex;
61
+ align-items: center;
62
+ gap: ${_persona_design_tokens.Spacing[2]};
63
+ width: 100%;
64
+ padding: ${_persona_design_tokens.Spacing[2]};
65
+ border-radius: ${_persona_design_tokens.BorderRadius.Md};
66
+ border: none;
67
+ margin: 0;
68
+ font: inherit;
69
+ color: inherit;
70
+ text-align: left;
71
+ outline: none;
72
+ cursor: ${({ $isClickable, $interactive }) => $interactive && $isClickable ? "pointer" : "default"};
73
+
74
+ ${({ $isActive, $isClickable, $interactive }) => {
75
+ if ($isActive) return styled_components.css`background-color: ${_persona_design_tokens.Color.BackgroundInteractiveActive};`;
76
+ if ($interactive && $isClickable) return styled_components.css`
77
+ background-color: ${_persona_design_tokens.Color.BackgroundInteractiveDefault};
78
+ &:hover {
79
+ background-color: ${_persona_design_tokens.Color.BackgroundInteractiveHover};
80
+ }
81
+ `;
82
+ return styled_components.css`
83
+ background-color: transparent;
84
+ `;
85
+ }}
86
+
87
+ ${require_mixins_focus.focusOutline}
88
+
89
+ &:focus-visible {
90
+ position: relative;
91
+ z-index: 1;
92
+ }
93
+ `;
94
+ const IconWrapper = styled_components.default.span`
95
+ display: inline-flex;
96
+ flex-shrink: 0;
97
+ width: 16px;
98
+ height: 16px;
99
+ color: ${({ $color }) => $color};
100
+ line-height: 0;
101
+ `;
102
+ const StepLabel = styled_components.default.span`
103
+ ${({ $isActive }) => $isActive ? require_mixins_text.paragraphMixins.mdBold : require_mixins_text.paragraphMixins.md};
104
+ color: ${({ $color }) => $color};
105
+ `;
106
+ const Step = ({ step, isActive, isCurrent, layout, onStepClick }) => {
107
+ const { id, label, status = "uncompleted", disabled = false } = step;
108
+ const interactive = Boolean(onStepClick);
109
+ const isClickable = resolveClickable(status, isActive, disabled, isCurrent);
110
+ const isInteractionDisabled = disabled || !isActive && !isCurrent && status === "uncompleted";
111
+ const iconColor = resolveIconColor(status, isActive, disabled);
112
+ const textColor = resolveTextColor(status, isActive, disabled);
113
+ const Icon = resolveIcon(status, isCurrent);
114
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StepItem, {
115
+ $layout: layout,
116
+ "aria-current": !interactive && isActive ? "step" : void 0,
117
+ "aria-disabled": !interactive && isInteractionDisabled ? true : void 0,
118
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(StepContent, {
119
+ ...interactive && isClickable ? {
120
+ type: "button",
121
+ onClick: () => onStepClick?.(id)
122
+ } : { as: "div" },
123
+ "aria-current": interactive && isActive ? "step" : void 0,
124
+ "aria-disabled": interactive && isInteractionDisabled ? true : void 0,
125
+ $isActive: isActive,
126
+ $isClickable: isClickable,
127
+ $interactive: interactive,
128
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(IconWrapper, {
129
+ $color: iconColor,
130
+ "aria-hidden": "true",
131
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Icon, {})
132
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StepLabel, {
133
+ $isActive: isActive,
134
+ $color: textColor,
135
+ children: label
136
+ })]
137
+ })
138
+ });
139
+ };
140
+ /**
141
+ * ProgressIndicator guides users through a sequence of steps.
142
+ *
143
+ * Interaction rules:
144
+ * - **Completed / error** steps are clickable — navigate back to review or fix.
145
+ * - **Active** step is not clickable — the user is already there.
146
+ * - **Upcoming (uncompleted)** steps are not clickable — sequential progression required.
147
+ *
148
+ * Navigation does not clear later steps. If a change on an earlier step
149
+ * invalidates later data, the affected steps should be flagged and require
150
+ * re-confirmation before submission — this logic lives in the consuming component.
151
+ *
152
+ * @example
153
+ * ```tsx
154
+ * <ProgressIndicator
155
+ * steps={[
156
+ * { id: 'identity', label: 'Identity', status: 'completed' },
157
+ * { id: 'address', label: 'Address', status: 'uncompleted' },
158
+ * { id: 'review', label: 'Review', status: 'uncompleted' },
159
+ * ]}
160
+ * activeStepId="address"
161
+ * onStepClick={(id) => navigate(id)}
162
+ * />
163
+ * ```
164
+ */
165
+ const ProgressIndicator = ({ steps, activeStepId, layout = "vertical", onStepClick, "aria-label": ariaLabel = "Progress", ...rest }) => {
166
+ const currentStepId = steps.find(({ status = "uncompleted" }) => status !== "completed")?.id;
167
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StepList, {
168
+ $layout: layout,
169
+ role: "list",
170
+ "aria-label": ariaLabel,
171
+ ...rest,
172
+ children: steps.map((step) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Step, {
173
+ step,
174
+ isActive: step.id === activeStepId,
175
+ isCurrent: step.id === currentStepId,
176
+ layout,
177
+ onStepClick
178
+ }, step.id))
179
+ });
180
+ };
181
+ //#endregion
182
+ exports.ProgressIndicator = ProgressIndicator;
183
+ exports.default = ProgressIndicator;
184
+
185
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","names":["CircleCheckFillIcon","CircleAlertIcon","CircleFillIcon","CircleNullIcon","Color","Spacing","BorderRadius","focusOutline","paragraphMixins"],"sources":["../../../components/ProgressIndicator/ProgressIndicator.tsx"],"sourcesContent":["import { focusOutline } from '@persona/design-system/mixins/focus';\nimport { paragraphMixins } from '@persona/design-system/mixins/text';\nimport { BorderRadius, Color, Spacing } from '@persona/design-tokens';\nimport {\n CircleAlertIcon,\n CircleCheckFillIcon,\n CircleFillIcon,\n CircleNullIcon,\n} from '@persona/icons';\nimport type { PDSIconComponent } from '@persona/icons/types';\nimport type { ComponentPropsWithoutRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nexport type StepStatus = 'uncompleted' | 'completed' | 'error';\n\nexport interface ProgressIndicatorStep {\n id: string;\n label: string;\n /** @default 'uncompleted' */\n status?: StepStatus;\n disabled?: boolean;\n}\n\nexport interface ProgressIndicatorProps extends ComponentPropsWithoutRef<'ol'> {\n steps: ProgressIndicatorStep[];\n /** id of the step that should receive the active visual state */\n activeStepId?: string;\n /** @default 'vertical' */\n layout?: 'vertical' | 'horizontal';\n /**\n * Called when a clickable step is activated via click or keyboard.\n *\n * Clickability rules:\n * - `completed` and `error` steps are clickable (navigate back to review/edit)\n * - The active step is not clickable (user is already there)\n * - Upcoming `uncompleted` steps are not clickable (sequential progression required)\n */\n onStepClick?: (stepId: string) => void;\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\n/**\n * Completed and error steps can be navigated back to.\n * The current step (first uncompleted) is also clickable so the user can\n * return to it after navigating back to an earlier step.\n * Active and upcoming steps (beyond the current) are not clickable.\n */\nfunction resolveClickable(\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n isCurrent: boolean,\n): boolean {\n if (isDisabled || isActive) {\n return false;\n }\n return status === 'completed' || status === 'error' || isCurrent;\n}\n\nfunction resolveIcon(status: StepStatus, isCurrent: boolean): PDSIconComponent {\n if (status === 'completed') {\n return CircleCheckFillIcon;\n }\n if (status === 'error') {\n return CircleAlertIcon;\n }\n if (isCurrent) {\n return CircleFillIcon;\n }\n return CircleNullIcon;\n}\n\nfunction resolveIconColor(status: StepStatus, isActive: boolean, isDisabled: boolean): Color {\n if (isDisabled) {\n return Color.BorderIconDisabled;\n }\n if (status === 'completed') {\n return Color.BorderIconSuccess;\n }\n if (status === 'error') {\n return Color.BorderIconWarning;\n }\n return isActive ? Color.BorderIconActive : Color.BorderIconSecondary;\n}\n\nfunction resolveTextColor(status: StepStatus, isActive: boolean, isDisabled: boolean): Color {\n if (isDisabled) {\n return Color.TextDisabled;\n }\n if (isActive) {\n return Color.TextActive;\n }\n if (status === 'uncompleted') {\n return Color.TextSecondary;\n }\n return Color.TextPrimary;\n}\n\n// ─── Styled components ────────────────────────────────────────────────────────\n\nconst StepList = styled.ol<{ $layout: 'vertical' | 'horizontal' }>`\n display: flex;\n flex-direction: ${({ $layout }) => ($layout === 'horizontal' ? 'row' : 'column')};\n gap: ${({ $layout }) => ($layout === 'horizontal' ? Spacing[2] : '0px')};\n list-style: none;\n margin: 0;\n padding: 0;\n`;\n\nconst StepItem = styled.li<{ $layout: 'vertical' | 'horizontal' }>`\n display: flex;\n align-items: center;\n\n ${({ $layout }) =>\n $layout === 'horizontal' &&\n css`\n width: fit-content;\n white-space: nowrap;\n `}\n`;\n\nconst StepContent = styled.button<{\n $isActive: boolean;\n $isClickable: boolean;\n $interactive: boolean;\n}>`\n display: flex;\n align-items: center;\n gap: ${Spacing[2]};\n width: 100%;\n padding: ${Spacing[2]};\n border-radius: ${BorderRadius.Md};\n border: none;\n margin: 0;\n font: inherit;\n color: inherit;\n text-align: left;\n outline: none;\n cursor: ${({ $isClickable, $interactive }) => ($interactive && $isClickable ? 'pointer' : 'default')};\n\n ${({ $isActive, $isClickable, $interactive }) => {\n if ($isActive) {\n return css`background-color: ${Color.BackgroundInteractiveActive};`;\n }\n if ($interactive && $isClickable) {\n return css`\n background-color: ${Color.BackgroundInteractiveDefault};\n &:hover {\n background-color: ${Color.BackgroundInteractiveHover};\n }\n `;\n }\n return css`\n background-color: transparent;\n `;\n }}\n\n ${focusOutline}\n\n &:focus-visible {\n position: relative;\n z-index: 1;\n }\n`;\n\nconst IconWrapper = styled.span<{ $color: Color }>`\n display: inline-flex;\n flex-shrink: 0;\n width: 16px;\n height: 16px;\n color: ${({ $color }) => $color};\n line-height: 0;\n`;\n\nconst StepLabel = styled.span<{ $isActive: boolean; $color: Color }>`\n ${({ $isActive }) => ($isActive ? paragraphMixins.mdBold : paragraphMixins.md)};\n color: ${({ $color }) => $color};\n`;\n\n// ─── Step ─────────────────────────────────────────────────────────────────────\n\ninterface StepProps {\n step: ProgressIndicatorStep;\n isActive: boolean;\n isCurrent: boolean;\n layout: 'vertical' | 'horizontal';\n onStepClick?: (stepId: string) => void;\n}\n\nconst Step = ({ step, isActive, isCurrent, layout, onStepClick }: StepProps) => {\n const { id, label, status = 'uncompleted', disabled = false } = step;\n\n const interactive = Boolean(onStepClick);\n const isClickable = resolveClickable(status, isActive, disabled, isCurrent);\n const isInteractionDisabled = disabled || (!isActive && !isCurrent && status === 'uncompleted');\n const iconColor = resolveIconColor(status, isActive, disabled);\n const textColor = resolveTextColor(status, isActive, disabled);\n\n const Icon = resolveIcon(status, isCurrent);\n\n return (\n <StepItem\n $layout={layout}\n aria-current={!interactive && isActive ? 'step' : undefined}\n aria-disabled={!interactive && isInteractionDisabled ? true : undefined}\n >\n <StepContent\n {...(interactive && isClickable\n ? { type: 'button' as const, onClick: () => onStepClick?.(id) }\n : { as: 'div' as const })}\n aria-current={interactive && isActive ? 'step' : undefined}\n aria-disabled={interactive && isInteractionDisabled ? true : undefined}\n $isActive={isActive}\n $isClickable={isClickable}\n $interactive={interactive}\n >\n <IconWrapper $color={iconColor} aria-hidden='true'>\n <Icon />\n </IconWrapper>\n <StepLabel $isActive={isActive} $color={textColor}>\n {label}\n </StepLabel>\n </StepContent>\n </StepItem>\n );\n};\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * ProgressIndicator guides users through a sequence of steps.\n *\n * Interaction rules:\n * - **Completed / error** steps are clickable — navigate back to review or fix.\n * - **Active** step is not clickable — the user is already there.\n * - **Upcoming (uncompleted)** steps are not clickable — sequential progression required.\n *\n * Navigation does not clear later steps. If a change on an earlier step\n * invalidates later data, the affected steps should be flagged and require\n * re-confirmation before submission — this logic lives in the consuming component.\n *\n * @example\n * ```tsx\n * <ProgressIndicator\n * steps={[\n * { id: 'identity', label: 'Identity', status: 'completed' },\n * { id: 'address', label: 'Address', status: 'uncompleted' },\n * { id: 'review', label: 'Review', status: 'uncompleted' },\n * ]}\n * activeStepId=\"address\"\n * onStepClick={(id) => navigate(id)}\n * />\n * ```\n */\nexport const ProgressIndicator = ({\n steps,\n activeStepId,\n layout = 'vertical',\n onStepClick,\n 'aria-label': ariaLabel = 'Progress',\n ...rest\n}: ProgressIndicatorProps) => {\n // The \"current\" step is the first uncompleted step — where the user should work next.\n // This is independent of activeStepId, which only controls the visual highlight.\n const currentStepId = steps.find(({ status = 'uncompleted' }) => status !== 'completed')?.id;\n\n return (\n <StepList $layout={layout} role='list' aria-label={ariaLabel} {...rest}>\n {steps.map((step) => (\n <Step\n key={step.id}\n step={step}\n isActive={step.id === activeStepId}\n isCurrent={step.id === currentStepId}\n layout={layout}\n onStepClick={onStepClick}\n />\n ))}\n </StepList>\n );\n};\n\nexport default ProgressIndicator;\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAgDA,SAAS,iBACP,QACA,UACA,YACA,WACS;AACT,KAAI,cAAc,SAChB,QAAO;AAET,QAAO,WAAW,eAAe,WAAW,WAAW;;AAGzD,SAAS,YAAY,QAAoB,WAAsC;AAC7E,KAAI,WAAW,YACb,QAAOA,eAAAA;AAET,KAAI,WAAW,QACb,QAAOC,eAAAA;AAET,KAAI,UACF,QAAOC,eAAAA;AAET,QAAOC,eAAAA;;AAGT,SAAS,iBAAiB,QAAoB,UAAmB,YAA4B;AAC3F,KAAI,WACF,QAAOC,uBAAAA,MAAM;AAEf,KAAI,WAAW,YACb,QAAOA,uBAAAA,MAAM;AAEf,KAAI,WAAW,QACb,QAAOA,uBAAAA,MAAM;AAEf,QAAO,WAAWA,uBAAAA,MAAM,mBAAmBA,uBAAAA,MAAM;;AAGnD,SAAS,iBAAiB,QAAoB,UAAmB,YAA4B;AAC3F,KAAI,WACF,QAAOA,uBAAAA,MAAM;AAEf,KAAI,SACF,QAAOA,uBAAAA,MAAM;AAEf,KAAI,WAAW,cACb,QAAOA,uBAAAA,MAAM;AAEf,QAAOA,uBAAAA,MAAM;;AAKf,MAAM,WAAW,kBAAA,QAAO,EAA0C;;qBAE7C,EAAE,cAAe,YAAY,eAAe,QAAQ,SAAU;UACzE,EAAE,cAAe,YAAY,eAAeC,uBAAAA,QAAQ,KAAK,MAAO;;;;;AAM1E,MAAM,WAAW,kBAAA,QAAO,EAA0C;;;;KAI7D,EAAE,cACH,YAAY,gBACZ,kBAAA,GAAG;;;MAGD;;AAGN,MAAM,cAAc,kBAAA,QAAO,MAIzB;;;SAGOA,uBAAAA,QAAQ,GAAG;;aAEPA,uBAAAA,QAAQ,GAAG;mBACLC,uBAAAA,aAAa,GAAG;;;;;;;aAOtB,EAAE,cAAc,mBAAoB,gBAAgB,eAAe,YAAY,UAAW;;KAElG,EAAE,WAAW,cAAc,mBAAmB;AAC/C,KAAI,UACF,QAAO,kBAAA,GAAG,qBAAqBF,uBAAAA,MAAM,4BAA4B;AAEnE,KAAI,gBAAgB,aAClB,QAAO,kBAAA,GAAG;4BACYA,uBAAAA,MAAM,6BAA6B;;8BAEjCA,uBAAAA,MAAM,2BAA2B;;;AAI3D,QAAO,kBAAA,GAAG;;;EAGV;;IAEAG,qBAAAA,aAAa;;;;;;;AAQjB,MAAM,cAAc,kBAAA,QAAO,IAAuB;;;;;YAKtC,EAAE,aAAa,OAAO;;;AAIlC,MAAM,YAAY,kBAAA,QAAO,IAA2C;KAC/D,EAAE,gBAAiB,YAAYC,oBAAAA,gBAAgB,SAASA,oBAAAA,gBAAgB,GAAI;YACrE,EAAE,aAAa,OAAO;;AAalC,MAAM,QAAQ,EAAE,MAAM,UAAU,WAAW,QAAQ,kBAA6B;CAC9E,MAAM,EAAE,IAAI,OAAO,SAAS,eAAe,WAAW,UAAU;CAEhE,MAAM,cAAc,QAAQ,YAAY;CACxC,MAAM,cAAc,iBAAiB,QAAQ,UAAU,UAAU,UAAU;CAC3E,MAAM,wBAAwB,YAAa,CAAC,YAAY,CAAC,aAAa,WAAW;CACjF,MAAM,YAAY,iBAAiB,QAAQ,UAAU,SAAS;CAC9D,MAAM,YAAY,iBAAiB,QAAQ,UAAU,SAAS;CAE9D,MAAM,OAAO,YAAY,QAAQ,UAAU;AAE3C,QACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;EACE,SAAS;EACT,gBAAc,CAAC,eAAe,WAAW,SAAS,KAAA;EAClD,iBAAe,CAAC,eAAe,wBAAwB,OAAO,KAAA;YAE9D,iBAAA,GAAA,kBAAA,MAAC,aAAD;GACE,GAAK,eAAe,cAChB;IAAE,MAAM;IAAmB,eAAe,cAAc,GAAG;IAAE,GAC7D,EAAE,IAAI,OAAgB;GAC1B,gBAAc,eAAe,WAAW,SAAS,KAAA;GACjD,iBAAe,eAAe,wBAAwB,OAAO,KAAA;GAC7D,WAAW;GACX,cAAc;GACd,cAAc;aARhB,CAUE,iBAAA,GAAA,kBAAA,KAAC,aAAD;IAAa,QAAQ;IAAW,eAAY;cAC1C,iBAAA,GAAA,kBAAA,KAAC,MAAD,EAAQ,CAAA;IACI,CAAA,EACd,iBAAA,GAAA,kBAAA,KAAC,WAAD;IAAW,WAAW;IAAU,QAAQ;cACrC;IACS,CAAA,CACA;;EACL,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+Bf,MAAa,qBAAqB,EAChC,OACA,cACA,SAAS,YACT,aACA,cAAc,YAAY,YAC1B,GAAG,WACyB;CAG5B,MAAM,gBAAgB,MAAM,MAAM,EAAE,SAAS,oBAAoB,WAAW,YAAY,EAAE;AAE1F,QACE,iBAAA,GAAA,kBAAA,KAAC,UAAD;EAAU,SAAS;EAAQ,MAAK;EAAO,cAAY;EAAW,GAAI;YAC/D,MAAM,KAAK,SACV,iBAAA,GAAA,kBAAA,KAAC,MAAD;GAEQ;GACN,UAAU,KAAK,OAAO;GACtB,WAAW,KAAK,OAAO;GACf;GACK;GACb,EANK,KAAK,GAMV,CACF;EACO,CAAA"}
@@ -0,0 +1,2 @@
1
+ import { ProgressIndicator, ProgressIndicatorProps, ProgressIndicatorStep, StepStatus } from "../../ProgressIndicator.cjs";
2
+ export { ProgressIndicator, ProgressIndicator as default, type ProgressIndicatorProps, type ProgressIndicatorStep, type StepStatus };
@@ -0,0 +1,2 @@
1
+ import { ProgressIndicator, ProgressIndicatorProps, ProgressIndicatorStep, StepStatus } from "../../ProgressIndicator.mjs";
2
+ export { ProgressIndicator, ProgressIndicator as default, type ProgressIndicatorProps, type ProgressIndicatorStep, type StepStatus };