@persona/design-system 0.7.0 → 0.7.2

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 (468) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +9 -9
  3. package/dist/Accordion.d.mts +38 -0
  4. package/dist/AccordionItem.d.mts +31 -0
  5. package/dist/{Action-C7INft7X.d.mts → Action-Cyo6KCsS.d.mts} +3 -3
  6. package/dist/Action.d.mts +1 -1
  7. package/dist/AdvancedFilterRuleRow.d.mts +2 -2
  8. package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
  9. package/dist/ArrayValueControl.d.mts +1 -1
  10. package/dist/Attribute.d.mts +3 -3
  11. package/dist/BooleanValueControl.d.mts +1 -1
  12. package/dist/{Breadcrumb-DtW1R9xW.d.mts → Breadcrumb-CYXkrKXl.d.mts} +1 -1
  13. package/dist/Breadcrumb.d.mts +1 -1
  14. package/dist/{Breadcrumbs-B6JyoS8n.d.mts → Breadcrumbs-CP7eUYUy.d.mts} +2 -2
  15. package/dist/{Breadcrumbs-CCmf8oZ4.mjs → Breadcrumbs-CrXfUK1V.mjs} +3 -3
  16. package/dist/{Breadcrumbs-CCmf8oZ4.mjs.map → Breadcrumbs-CrXfUK1V.mjs.map} +1 -1
  17. package/dist/Breadcrumbs.d.mts +1 -1
  18. package/dist/{Button-HodDf_bB.d.mts → Button-Dhiund3f.d.mts} +4 -4
  19. package/dist/Button.d.mts +1 -1
  20. package/dist/{Calendar-DrdTvzAa.d.mts → Calendar-CMeIZ0BO.d.mts} +1 -1
  21. package/dist/Calendar.d.mts +1 -1
  22. package/dist/CalendarBase.d.mts +1 -1
  23. package/dist/{Card-CpDwATnX.d.mts → Card-DCYB_mtR.d.mts} +3 -3
  24. package/dist/Card.d.mts +1 -1
  25. package/dist/{CardV2-Y_kRfd-R.mjs → CardV2-M3o4BELp.mjs} +5 -5
  26. package/dist/{CardV2-Y_kRfd-R.mjs.map → CardV2-M3o4BELp.mjs.map} +1 -1
  27. package/dist/{Checkbox-DBAXDIQf.mjs → Checkbox-AjL7ucoR.mjs} +2 -2
  28. package/dist/{Checkbox-DBAXDIQf.mjs.map → Checkbox-AjL7ucoR.mjs.map} +1 -1
  29. package/dist/{Checkbox-C-hMfItK.d.mts → Checkbox-fWj7GkBl.d.mts} +1 -1
  30. package/dist/Checkbox.d.mts +1 -1
  31. package/dist/CheckboxGroupField.d.mts +1 -1
  32. package/dist/ChoicesValueControl.d.mts +1 -1
  33. package/dist/{Combobox-CNdpK8VG.mjs → Combobox-C2b9u955.mjs} +11 -8
  34. package/dist/Combobox-C2b9u955.mjs.map +1 -0
  35. package/dist/{Combobox-CPE-IV79.d.mts → Combobox-CC-Osr57.d.mts} +3 -3
  36. package/dist/Combobox.d.mts +2 -2
  37. package/dist/{ComboboxBase-B3Es1y9g.d.mts → ComboboxBase-Evo0FRxP.d.mts} +7 -5
  38. package/dist/ComboboxBase.d.mts +1 -1
  39. package/dist/{ComboboxMultiSelect-4sRA7oL0.d.mts → ComboboxMultiSelect-CvAc0FT3.d.mts} +2 -2
  40. package/dist/ComboboxMultiSelect.d.mts +1 -1
  41. package/dist/{ComboboxSingleSelect-DVPznL7L.d.mts → ComboboxSingleSelect-CBm7x0oh.d.mts} +4 -4
  42. package/dist/ComboboxSingleSelect.d.mts +1 -1
  43. package/dist/{CompactBar-DhHh7Roq.d.mts → CompactBar-D_2qMK4y.d.mts} +3 -3
  44. package/dist/CompactBar.d.mts +1 -1
  45. package/dist/{ConfigFormGroup-4lUy7CZH.mjs → ConfigFormGroup-Cz7GeTYd.mjs} +2 -2
  46. package/dist/{ConfigFormGroup-4lUy7CZH.mjs.map → ConfigFormGroup-Cz7GeTYd.mjs.map} +1 -1
  47. package/dist/{ControlBar-C8kagIck.d.mts → ControlBar-B7j9sOr9.d.mts} +2 -2
  48. package/dist/ControlBar.d.mts +1 -1
  49. package/dist/DataTable.d.mts +3 -3
  50. package/dist/{DateField-2aigfD4u.d.mts → DateField-BamAk9_w.d.mts} +2 -2
  51. package/dist/DateField.d.mts +1 -1
  52. package/dist/{DatePicker-DC_RKjdM.d.mts → DatePicker-C3xNSkPG.d.mts} +2 -2
  53. package/dist/{DatePicker-CSd20-CW.mjs → DatePicker-IgiUI3Wj.mjs} +6 -6
  54. package/dist/{DatePicker-CSd20-CW.mjs.map → DatePicker-IgiUI3Wj.mjs.map} +1 -1
  55. package/dist/DatePicker.d.mts +1 -1
  56. package/dist/{DateRangePicker-ByD6IsLB.d.mts → DateRangePicker-C4QKMo2a.d.mts} +3 -3
  57. package/dist/DateRangePicker.d.mts +1 -1
  58. package/dist/DateRangeValueControl.d.mts +2 -2
  59. package/dist/DateValueControl.d.mts +1 -1
  60. package/dist/{DropdownButton-gmGRrD1z.mjs → DropdownButton-BWiXLMfD.mjs} +2 -2
  61. package/dist/{DropdownButton-gmGRrD1z.mjs.map → DropdownButton-BWiXLMfD.mjs.map} +1 -1
  62. package/dist/DropdownButton.d.mts +2 -2
  63. package/dist/{DropdownMenu-I5WDO-q5.mjs → DropdownMenu-CuKSNxc9.mjs} +2 -2
  64. package/dist/{DropdownMenu-I5WDO-q5.mjs.map → DropdownMenu-CuKSNxc9.mjs.map} +1 -1
  65. package/dist/{DropdownMenu-eP6v6XE4.d.mts → DropdownMenu-DL5ye-0m.d.mts} +2 -2
  66. package/dist/DropdownMenu.d.mts +1 -1
  67. package/dist/{ErrorProps-Dgu98PkH.d.mts → ErrorProps-BA0-m_Wp.d.mts} +1 -1
  68. package/dist/ErrorProps.d.mts +1 -1
  69. package/dist/{FieldRegistry-BtdqMYUD.d.mts → FieldRegistry-bKxrF1gC.d.mts} +2 -2
  70. package/dist/FieldRegistry.d.mts +1 -1
  71. package/dist/{FilterBar-CAnqGXgE.d.mts → FilterBar-DhlBLWxw.d.mts} +4 -4
  72. package/dist/FilterBar.d.mts +1 -1
  73. package/dist/FilterPickerMenu.d.mts +2 -2
  74. package/dist/FilterPill.d.mts +1 -1
  75. package/dist/FilterPopover.d.mts +1 -1
  76. package/dist/FloatValueControl.d.mts +1 -1
  77. package/dist/{FormControl-CJfYdgZF.d.mts → FormControl-D5xyPkST.d.mts} +6 -2
  78. package/dist/{FormControl-CButLg9b.mjs → FormControl-DnfZTli_.mjs} +26 -11
  79. package/dist/FormControl-DnfZTli_.mjs.map +1 -0
  80. package/dist/FormControl.d.mts +1 -1
  81. package/dist/FormControlLabel.d.mts +1 -1
  82. package/dist/{FormField-BHUeWCsa.mjs → FormField-74TPV8-8.mjs} +29 -19
  83. package/dist/FormField-74TPV8-8.mjs.map +1 -0
  84. package/dist/{FormField-CK8o1sMB.d.mts → FormField-BJZUj6jg.d.mts} +4 -2
  85. package/dist/FormField.d.mts +1 -1
  86. package/dist/Grid-DOyYYsvk.mjs +92 -0
  87. package/dist/Grid-DOyYYsvk.mjs.map +1 -0
  88. package/dist/Grid.d.mts +4 -1
  89. package/dist/{Header-ZnHGm8fs.d.mts → Header-BqEKkEp5.d.mts} +1 -1
  90. package/dist/Header.d.mts +1 -1
  91. package/dist/{HelperTooltip-CQpPO16Q.d.mts → HelperTooltip-mOVSuEB8.d.mts} +2 -2
  92. package/dist/HelperTooltip.d.mts +1 -1
  93. package/dist/{HoverCopyableField-B89NIwlE.mjs → HoverCopyableField-CN3gl0ny.mjs} +2 -2
  94. package/dist/{HoverCopyableField-B89NIwlE.mjs.map → HoverCopyableField-CN3gl0ny.mjs.map} +1 -1
  95. package/dist/{IconButton-zu-VNp1h.d.mts → IconButton-CjPFhpVG.d.mts} +2 -2
  96. package/dist/IconButton-CqTPMhjV.mjs.map +1 -1
  97. package/dist/IconButton.d.mts +1 -1
  98. package/dist/ImageTile.d.mts +1 -1
  99. package/dist/InlineCombobox.d.mts +1 -1
  100. package/dist/InlineInput.d.mts +1 -1
  101. package/dist/{Input-Ce8FvSYf.d.mts → Input-CZ_6KWDN.d.mts} +3 -3
  102. package/dist/{Input-C-TwCer2.mjs → Input-C_3QwAAt.mjs} +2 -2
  103. package/dist/{Input-C-TwCer2.mjs.map → Input-C_3QwAAt.mjs.map} +1 -1
  104. package/dist/Input.d.mts +1 -1
  105. package/dist/{InputProps-B1Xod4wm.d.mts → InputProps-lag6BM5h.d.mts} +2 -2
  106. package/dist/InputProps.d.mts +1 -1
  107. package/dist/IntegerValueControl.d.mts +1 -1
  108. package/dist/Link.d.mts +1 -1
  109. package/dist/{ListBox-BHE4DO2l.mjs → ListBox-D4j4LCT3.mjs} +6 -6
  110. package/dist/{ListBox-BHE4DO2l.mjs.map → ListBox-D4j4LCT3.mjs.map} +1 -1
  111. package/dist/{ListBox-CCBWdAUR.d.mts → ListBox-nYAdYVQx.d.mts} +3 -3
  112. package/dist/ListBox.d.mts +1 -1
  113. package/dist/ListBoxField.d.mts +3 -2
  114. package/dist/{LoadingShimmer-JyGh7M7V.mjs → LoadingShimmer-Dizk2sZu.mjs} +1 -1
  115. package/dist/{LoadingShimmer-JyGh7M7V.mjs.map → LoadingShimmer-Dizk2sZu.mjs.map} +1 -1
  116. package/dist/LoadingShimmer.d.mts +1 -1
  117. package/dist/{LogicRow-DmI8NKrI.d.mts → LogicRow-k4ZPtjN0.d.mts} +3 -3
  118. package/dist/LogicRow.d.mts +1 -1
  119. package/dist/MaskedInput.d.mts +2 -2
  120. package/dist/{Menu-C8RxFGOG.d.mts → Menu-Bu7-KBhp.d.mts} +3 -3
  121. package/dist/{Menu-xENvm-Oa.mjs → Menu-Cd6oxjAe.mjs} +1 -1
  122. package/dist/{Menu-xENvm-Oa.mjs.map → Menu-Cd6oxjAe.mjs.map} +1 -1
  123. package/dist/Menu.d.mts +1 -1
  124. package/dist/Modal-BN0K8QXi.mjs +258 -0
  125. package/dist/Modal-BN0K8QXi.mjs.map +1 -0
  126. package/dist/Modal-Dwq-QBw_.d.mts +145 -0
  127. package/dist/Modal.d.mts +2 -145
  128. package/dist/{PageHeader-7GBfUjU_.mjs → PageHeader-BTtm3hRQ.mjs} +2 -2
  129. package/dist/{PageHeader-7GBfUjU_.mjs.map → PageHeader-BTtm3hRQ.mjs.map} +1 -1
  130. package/dist/PageHeader.d.mts +1 -1
  131. package/dist/PageLayoutFrame.d.mts +28 -0
  132. package/dist/{PageSelector-BMz2Q4P6.d.mts → PageSelector-CeGC84N1.d.mts} +3 -3
  133. package/dist/PageSelector.d.mts +1 -1
  134. package/dist/{Pagination-BxNqU2yh.mjs → Pagination-CPd4mSnw.mjs} +3 -3
  135. package/dist/{Pagination-BxNqU2yh.mjs.map → Pagination-CPd4mSnw.mjs.map} +1 -1
  136. package/dist/{Pagination-ne9hnVoe.d.mts → Pagination-H-CcXrCD.d.mts} +2 -2
  137. package/dist/Pagination.d.mts +1 -1
  138. package/dist/{Pii-B29k0Omf.mjs → Pii-Dz4woKd8.mjs} +1 -1
  139. package/dist/{Pii-B29k0Omf.mjs.map → Pii-Dz4woKd8.mjs.map} +1 -1
  140. package/dist/{PillShell-D9iQyM-8.d.mts → PillShell-BQC-k7Rl.d.mts} +2 -2
  141. package/dist/PillShell.d.mts +1 -1
  142. package/dist/{Popover-Dn3xmzSK.mjs → Popover-opVa9Xhc.mjs} +1 -1
  143. package/dist/{Popover-Dn3xmzSK.mjs.map → Popover-opVa9Xhc.mjs.map} +1 -1
  144. package/dist/ProgressIndicator-3A4Aqci6.mjs +188 -0
  145. package/dist/ProgressIndicator-3A4Aqci6.mjs.map +1 -0
  146. package/dist/ProgressIndicator-DbOLOaxJ.d.mts +66 -0
  147. package/dist/ProgressIndicator.d.mts +2 -66
  148. package/dist/{PseudoClassProps-CdRF3QNn.d.mts → PseudoClassProps-CHtBNv8B.d.mts} +1 -1
  149. package/dist/PseudoClassProps.d.mts +1 -1
  150. package/dist/{Radio-BRPoGITE.mjs → Radio-Cxt89w8s.mjs} +2 -2
  151. package/dist/{Radio-BRPoGITE.mjs.map → Radio-Cxt89w8s.mjs.map} +1 -1
  152. package/dist/{RadioGroup-CahrWsXi.mjs → RadioGroup-B6Cg1kdm.mjs} +2 -2
  153. package/dist/{RadioGroup-CahrWsXi.mjs.map → RadioGroup-B6Cg1kdm.mjs.map} +1 -1
  154. package/dist/{RadioGroup-CxL6LW4q.d.mts → RadioGroup-BjrfVPZQ.d.mts} +1 -1
  155. package/dist/RadioGroup.d.mts +1 -1
  156. package/dist/{RangeCalendar-B7TwRJbg.d.mts → RangeCalendar-CPnLaM-J.d.mts} +2 -2
  157. package/dist/RangeCalendar.d.mts +1 -1
  158. package/dist/RangeCalendarPresets.d.mts +1 -1
  159. package/dist/{RouterContext-B7N12wkK.d.mts → RouterContext-CbvHIl4K.d.mts} +2 -2
  160. package/dist/RouterContext.d.mts +1 -1
  161. package/dist/{RouterLink-Bq36EGjc.d.mts → RouterLink-v9AG9fYa.d.mts} +2 -2
  162. package/dist/RouterLink.d.mts +1 -1
  163. package/dist/RuleEditorFields.d.mts +2 -2
  164. package/dist/RulesPill.d.mts +1 -1
  165. package/dist/{SearchInput-D69WxMNq.d.mts → SearchInput-CIjwmT8R.d.mts} +2 -2
  166. package/dist/SearchInput.d.mts +1 -1
  167. package/dist/SectionHeading.d.mts +1 -1
  168. package/dist/{SegmentedControl-DLkAC2kW.mjs → SegmentedControl-BcwfLuHA.mjs} +12 -5
  169. package/dist/SegmentedControl-BcwfLuHA.mjs.map +1 -0
  170. package/dist/{SegmentedControl-vCnGsdXo.d.mts → SegmentedControl-Crr_aHAs.d.mts} +2 -1
  171. package/dist/SegmentedControl.d.mts +1 -1
  172. package/dist/{Select-YOgn_uD0.mjs → Select-BstCz8P1.mjs} +4 -4
  173. package/dist/{Select-YOgn_uD0.mjs.map → Select-BstCz8P1.mjs.map} +1 -1
  174. package/dist/{Select-CpRijO_l.d.mts → Select-CJQeuCiF.d.mts} +3 -3
  175. package/dist/Select.d.mts +1 -1
  176. package/dist/SingleColumnLayout.d.mts +16 -0
  177. package/dist/{Spinner-BDa0D1ze.mjs → Spinner-DplDSBqf.mjs} +1 -1
  178. package/dist/{Spinner-BDa0D1ze.mjs.map → Spinner-DplDSBqf.mjs.map} +1 -1
  179. package/dist/SplitColumnLayout.d.mts +19 -0
  180. package/dist/{Stack-8KGPQp0u.d.mts → Stack-RVptVTVi.d.mts} +1 -1
  181. package/dist/Stack.d.mts +1 -1
  182. package/dist/{Sticker-Bf9rhSkv.d.mts → Sticker-BVX38LKi.d.mts} +4 -4
  183. package/dist/Sticker.d.mts +1 -1
  184. package/dist/StringValueControl.d.mts +1 -1
  185. package/dist/Tab.d.mts +1 -1
  186. package/dist/{TabBar-RenaeJJ6.mjs → TabBar-BepWbJHz.mjs} +1 -1
  187. package/dist/{TabBar-RenaeJJ6.mjs.map → TabBar-BepWbJHz.mjs.map} +1 -1
  188. package/dist/{Table-DaxiIS96.mjs → Table-B1gRr2XT.mjs} +2 -2
  189. package/dist/{Table-DaxiIS96.mjs.map → Table-B1gRr2XT.mjs.map} +1 -1
  190. package/dist/{Table-BefytM6w.d.mts → Table-DFiSWroB.d.mts} +1 -1
  191. package/dist/Table.d.mts +1 -1
  192. package/dist/{TableBody-BZ34-_wV.d.mts → TableBody-Di9JYHDN.d.mts} +1 -1
  193. package/dist/TableBody.d.mts +1 -1
  194. package/dist/{TableBox-C7ZXamI7.mjs → TableBox-DAQ3Plqx.mjs} +7 -7
  195. package/dist/{TableBox-C7ZXamI7.mjs.map → TableBox-DAQ3Plqx.mjs.map} +1 -1
  196. package/dist/TableBox.d.mts +2 -2
  197. package/dist/{TableBoxCell-B7kjO76l.d.mts → TableBoxCell-D6h1X5ph.d.mts} +6 -6
  198. package/dist/TableBoxCell.d.mts +1 -1
  199. package/dist/TableBoxField.d.mts +4 -3
  200. package/dist/{TableBoxRow-oVGEFVOO.d.mts → TableBoxRow-C6l6J4mq.d.mts} +3 -3
  201. package/dist/TableBoxRow.d.mts +1 -1
  202. package/dist/{TableBoxRowActions-DIZw2OPP.d.mts → TableBoxRowActions-CsLN1b1J.d.mts} +2 -2
  203. package/dist/TableBoxRowActions.d.mts +1 -1
  204. package/dist/{TableCell-DorRxyke.d.mts → TableCell-WSDXw79Q.d.mts} +2 -2
  205. package/dist/TableCell.d.mts +1 -1
  206. package/dist/{TableControls-DxAUnR9v.mjs → TableControls-BxuPCUQS.mjs} +34 -21
  207. package/dist/TableControls-BxuPCUQS.mjs.map +1 -0
  208. package/dist/{TableControls-BtGFiZeD.d.mts → TableControls-cswMgBAr.d.mts} +3 -3
  209. package/dist/TableControls.d.mts +1 -1
  210. package/dist/{TableControlsContext-C3DYeUmB.d.mts → TableControlsContext-Cbh8wear.d.mts} +2 -2
  211. package/dist/TableControlsContext.d.mts +1 -1
  212. package/dist/{TableHead-B0Fdldgw.d.mts → TableHead-CkL1fEg2.d.mts} +1 -1
  213. package/dist/TableHead.d.mts +1 -1
  214. package/dist/{TableHeaderCell-C_7X8QAT.d.mts → TableHeaderCell-K9Ry6YqO.d.mts} +1 -1
  215. package/dist/TableHeaderCell.d.mts +1 -1
  216. package/dist/{TableLayout-CXVVzq0e.d.mts → TableLayout-CYRGIFEl.d.mts} +1 -1
  217. package/dist/TableLayout.d.mts +1 -1
  218. package/dist/{TableRow-Dr61XJNw.d.mts → TableRow-DMHlo1eg.d.mts} +2 -2
  219. package/dist/TableRow.d.mts +1 -1
  220. package/dist/TableTH.d.mts +1 -1
  221. package/dist/{TableViewConfigurationDropdown-CCtwcB3I.d.mts → TableViewConfigurationDropdown-BRbOcVNc.d.mts} +2 -2
  222. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  223. package/dist/{TechnicalSticker-D1PqG_yT.mjs → TechnicalSticker-_LtE-PRY.mjs} +1 -1
  224. package/dist/{TechnicalSticker-D1PqG_yT.mjs.map → TechnicalSticker-_LtE-PRY.mjs.map} +1 -1
  225. package/dist/{Text-DD_W_ixb.d.mts → Text-B69gp3X_.d.mts} +3 -3
  226. package/dist/Text.d.mts +1 -1
  227. package/dist/{TextArea-wwV-s5Oa.mjs → TextArea-CcxltuBh.mjs} +2 -2
  228. package/dist/{TextArea-wwV-s5Oa.mjs.map → TextArea-CcxltuBh.mjs.map} +1 -1
  229. package/dist/{TextArea-DOofaXJi.d.mts → TextArea-Cjsdl07-.d.mts} +2 -2
  230. package/dist/TextArea.d.mts +1 -1
  231. package/dist/{TextUnderlineTooltip-BPLKU9wu.d.mts → TextUnderlineTooltip-DDzKLCeX.d.mts} +2 -2
  232. package/dist/TextUnderlineTooltip.d.mts +1 -1
  233. package/dist/Tile.d.mts +1 -1
  234. package/dist/Toast.d.mts +1 -1
  235. package/dist/{Toggle-2nrUX591.d.mts → Toggle-B5sSdb_q.d.mts} +3 -1
  236. package/dist/{Toggle-iG2x_IZR.mjs → Toggle-DWbJOwf3.mjs} +4 -3
  237. package/dist/Toggle-DWbJOwf3.mjs.map +1 -0
  238. package/dist/Toggle.d.mts +1 -1
  239. package/dist/{Tooltip-Cnqf1-tx.d.mts → Tooltip-x1pFf-Mj.d.mts} +2 -2
  240. package/dist/Tooltip.d.mts +1 -1
  241. package/dist/{TruncatedText-g2T5HlqX.d.mts → TruncatedText-BE8FuEQm.d.mts} +1 -1
  242. package/dist/WizardModal.d.mts +41 -0
  243. package/dist/accordionTitleTypography-BYhjSN9t.d.mts +17 -0
  244. package/dist/accordionTitleTypography.d.mts +2 -0
  245. package/dist/{codec-CoX6LfOY.d.mts → codec-BcgsGCHE.d.mts} +2 -2
  246. package/dist/codec.d.mts +1 -1
  247. package/dist/{color-Bt0Lv1e3.d.mts → color-LH7zKfKo.d.mts} +2 -2
  248. package/dist/components/Accordion/index.d.mts +4 -0
  249. package/dist/components/Accordion/index.mjs +330 -0
  250. package/dist/components/Accordion/index.mjs.map +1 -0
  251. package/dist/components/BottomPanel/index.mjs +1 -1
  252. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  253. package/dist/components/Breadcrumbs/index.mjs +1 -1
  254. package/dist/components/Button/index.d.mts +2 -2
  255. package/dist/components/ButtonGroup/index.mjs +1 -1
  256. package/dist/components/Card/index.d.mts +2 -2
  257. package/dist/components/CardV2/index.d.mts +1 -1
  258. package/dist/components/CardV2/index.mjs +1 -1
  259. package/dist/components/Checkbox/index.d.mts +1 -1
  260. package/dist/components/Checkbox/index.mjs +1 -1
  261. package/dist/components/Combobox/index.d.mts +2 -2
  262. package/dist/components/Combobox/index.mjs +1 -1
  263. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  264. package/dist/components/DataTable/TableControls/index.d.mts +19 -19
  265. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  266. package/dist/components/DataTable/index.mjs +7 -7
  267. package/dist/components/DataTable/index.mjs.map +1 -1
  268. package/dist/components/DataTable/types.d.mts +2 -2
  269. package/dist/components/DatePicker/index.d.mts +5 -5
  270. package/dist/components/DatePicker/index.mjs +1 -1
  271. package/dist/components/DropdownButton/index.mjs +1 -1
  272. package/dist/components/DropdownMenu/index.d.mts +1 -1
  273. package/dist/components/DropdownMenu/index.mjs +1 -1
  274. package/dist/components/FormControl/index.d.mts +2 -2
  275. package/dist/components/FormControl/index.mjs +2 -2
  276. package/dist/components/FormField/index.d.mts +1 -1
  277. package/dist/components/FormField/index.mjs +1 -1
  278. package/dist/components/Grid/index.d.mts +2 -2
  279. package/dist/components/Grid/index.mjs +2 -85
  280. package/dist/components/HoverCopyableField/index.mjs +1 -1
  281. package/dist/components/ImageTile/index.mjs +3 -3
  282. package/dist/components/Input/index.d.mts +1 -1
  283. package/dist/components/Input/index.mjs +1 -1
  284. package/dist/components/Link/index.mjs.map +1 -1
  285. package/dist/components/ListBox/index.d.mts +3 -3
  286. package/dist/components/ListBox/index.mjs +1 -1
  287. package/dist/components/LoadingShimmer/index.mjs +1 -1
  288. package/dist/components/MaskedInput/index.mjs +1 -1
  289. package/dist/components/Menu/index.d.mts +1 -1
  290. package/dist/components/Menu/index.mjs +1 -1
  291. package/dist/components/Modal/index.d.mts +1 -1
  292. package/dist/components/Modal/index.mjs +1 -257
  293. package/dist/components/PageHeader/index.mjs +1 -1
  294. package/dist/components/Pagination/index.d.mts +3 -3
  295. package/dist/components/Pagination/index.mjs +1 -1
  296. package/dist/components/Pii/index.mjs +1 -1
  297. package/dist/components/Popover/index.mjs +1 -1
  298. package/dist/components/ProgressIndicator/index.d.mts +2 -2
  299. package/dist/components/ProgressIndicator/index.mjs +1 -187
  300. package/dist/components/Radio/index.mjs +1 -1
  301. package/dist/components/RadioGroup/index.d.mts +1 -1
  302. package/dist/components/RadioGroup/index.mjs +1 -1
  303. package/dist/components/RightPanel/index.mjs +1 -1
  304. package/dist/components/SegmentedControl/index.d.mts +1 -1
  305. package/dist/components/SegmentedControl/index.mjs +1 -1
  306. package/dist/components/Select/index.d.mts +1 -1
  307. package/dist/components/Select/index.mjs +1 -1
  308. package/dist/components/Spinner/index.mjs +1 -1
  309. package/dist/components/Stack/index.d.mts +1 -1
  310. package/dist/components/Sticker/index.d.mts +1 -1
  311. package/dist/components/TabBar/index.mjs +1 -1
  312. package/dist/components/Table/index.d.mts +8 -8
  313. package/dist/components/Table/index.mjs +1 -1
  314. package/dist/components/TableBox/index.d.mts +2 -2
  315. package/dist/components/TableBox/index.mjs +1 -1
  316. package/dist/components/TechnicalSticker/index.mjs +1 -1
  317. package/dist/components/Text/index.d.mts +1 -1
  318. package/dist/components/TextArea/index.d.mts +1 -1
  319. package/dist/components/TextArea/index.mjs +1 -1
  320. package/dist/components/Toggle/index.d.mts +1 -1
  321. package/dist/components/Toggle/index.mjs +1 -1
  322. package/dist/components/Tooltip/index.d.mts +3 -3
  323. package/dist/components/WizardModal/index.d.mts +2 -0
  324. package/dist/components/WizardModal/index.mjs +106 -0
  325. package/dist/components/WizardModal/index.mjs.map +1 -0
  326. package/dist/compound-expression.d.mts +1 -1
  327. package/dist/{constants-D8bzZ-7B.d.mts → constants-BpwnTzcv.d.mts} +1 -1
  328. package/dist/constants.d.mts +1 -1
  329. package/dist/{createPath-BDYRvl57.d.mts → createPath-Bst12Uxr.d.mts} +2 -2
  330. package/dist/createPath.d.mts +1 -1
  331. package/dist/{date-range-rule-value-C3wrh0jw.d.mts → date-range-rule-value-C4ir2Y8W.d.mts} +2 -2
  332. package/dist/date-range-rule-value.d.mts +1 -1
  333. package/dist/{date-rule-intent-CC1LdkE7.d.mts → date-rule-intent-gKmuxMVA.d.mts} +3 -3
  334. package/dist/date-rule-intent.d.mts +1 -1
  335. package/dist/display.d.mts +1 -1
  336. package/dist/fieldPickerOptions.d.mts +2 -2
  337. package/dist/{filter-size-context-CCfFnaib.d.mts → filter-size-context-BOpH6pBm.d.mts} +2 -2
  338. package/dist/filter-size-context.d.mts +1 -1
  339. package/dist/helpers.d.mts +1 -1
  340. package/dist/{index-Nip77QqW.d.mts → index-BXdrzR0c.d.mts} +3 -3
  341. package/dist/{index-DalP_w0c.d.mts → index-C2-PBfN3.d.mts} +2 -2
  342. package/dist/{index-D-RD2Kfg.d.mts → index-c0aXmZV9.d.mts} +2 -2
  343. package/dist/index-dhjtMp5F.d.mts +1 -0
  344. package/dist/index-xmouCHX9.d.mts +1 -0
  345. package/dist/index.d.mts +1 -1
  346. package/dist/index2.d.mts +1 -1
  347. package/dist/index3.d.mts +3 -3
  348. package/dist/index4.d.mts +1 -1
  349. package/dist/index5.d.mts +14 -14
  350. package/dist/{input-DCJivcWf.d.mts → input-DVJhMlxU.d.mts} +3 -3
  351. package/dist/inputFields.d.mts +14 -12
  352. package/dist/{intersperse-DQAyfeEw.mjs → intersperse-Bxcrxj2Q.mjs} +1 -1
  353. package/dist/{intersperse-DQAyfeEw.mjs.map → intersperse-Bxcrxj2Q.mjs.map} +1 -1
  354. package/dist/{jsonSchema-c_EfAj8y.d.mts → jsonSchema-DmdZYC4a.d.mts} +35 -11
  355. package/dist/lib/PDSProvider.d.mts +2 -2
  356. package/dist/lib/TruncatedText.d.mts +1 -1
  357. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  358. package/dist/lib/color.d.mts +1 -1
  359. package/dist/lib/date-filter/index.d.mts +2 -2
  360. package/dist/lib/jsonSchema.d.mts +2 -2
  361. package/dist/lib/jsonSchema.mjs +10 -10
  362. package/dist/lib/jsonSchema.mjs.map +1 -1
  363. package/dist/lib/message.d.mts +1 -1
  364. package/dist/lib/methodChain.d.mts +1 -1
  365. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  366. package/dist/lib/pseudoClass.d.mts +1 -1
  367. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  368. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  369. package/dist/lib/router/index.d.mts +5 -5
  370. package/dist/lib/semanticColor.d.mts +1 -1
  371. package/dist/{message-CjIHdhX1.d.mts → message-CKSLIKF0.d.mts} +1 -1
  372. package/dist/mixins/focus.d.mts +1 -1
  373. package/dist/mixins/hoverable.d.mts +2 -2
  374. package/dist/mixins/input.d.mts +1 -1
  375. package/dist/mixins/menuItem.d.mts +2 -2
  376. package/dist/mixins/text.d.mts +1 -1
  377. package/dist/{operators-C4yL6qbl.d.mts → operators-1_jTgYRX.d.mts} +2 -2
  378. package/dist/operators.d.mts +1 -1
  379. package/dist/{palette-qgPRWgUN.d.mts → palette-CMOEyNPH.d.mts} +3 -3
  380. package/dist/palette.d.mts +1 -1
  381. package/dist/patterns/LayoutLoadingShimmer/index.mjs +4 -4
  382. package/dist/patterns/PageLayout/index.d.mts +4 -1
  383. package/dist/patterns/PageLayout/index.mjs +99 -2
  384. package/dist/patterns/PageLayout/index.mjs.map +1 -1
  385. package/dist/reactRouterFallback.d.mts +1 -1
  386. package/dist/relative-date-label.d.mts +1 -1
  387. package/dist/scrollExpandedItemIntoView.d.mts +12 -0
  388. package/dist/{semantic-DUctmpu_.d.mts → semantic-BXwNUd4a.d.mts} +1 -1
  389. package/dist/{semanticColor-IAhXS17y.d.mts → semanticColor-Cru2gSys.d.mts} +3 -3
  390. package/dist/{text-DjTGRUM1.d.mts → text-CxIup7HJ.d.mts} +1 -1
  391. package/dist/{theme-DKiszVRN.d.mts → theme-CW6qlONZ.d.mts} +3 -3
  392. package/dist/theme.d.mts +1 -1
  393. package/dist/tone.d.mts +3 -3
  394. package/dist/{types-B8aAvU2a2.d.mts → types-3iEDsymE.d.mts} +2 -2
  395. package/dist/{types-CuQSgl1F.d.mts → types-B-stjYNc.d.mts} +1 -1
  396. package/dist/{types-I9z-0m7q.d.mts → types-BEjWTkZV.d.mts} +3 -3
  397. package/dist/{types-CcZbBH0e.d.mts → types-ChkiGhjQ.d.mts} +1 -1
  398. package/dist/{types-D8rWSj3z.d.mts → types-YojUycQK.d.mts} +1 -1
  399. package/dist/{types-RWjW1d9I.d.mts → types-g-aqbnek.d.mts} +1 -1
  400. package/dist/types.d.mts +1 -1
  401. package/dist/types2.d.mts +1 -1
  402. package/dist/types3.d.mts +1 -1
  403. package/dist/types4.d.mts +1 -1
  404. package/dist/types5.d.mts +1 -1
  405. package/dist/types6.d.mts +1 -1
  406. package/dist/{url-state-BOkOTKNZ.d.mts → url-state-CHK2N2fA.d.mts} +2 -2
  407. package/dist/url-state.d.mts +1 -1
  408. package/dist/useComboboxFooterAction.d.mts +1 -1
  409. package/dist/{useFilterStateV2-CjXG2vjy.d.mts → useFilterStateV2-B26e5iUx.d.mts} +3 -3
  410. package/dist/useFilterStateV2.d.mts +1 -1
  411. package/dist/{useFormField-C61u9KvG.mjs → useFormField-BzhMbl5P.mjs} +3 -2
  412. package/dist/useFormField-BzhMbl5P.mjs.map +1 -0
  413. package/dist/{useFormField-DDbo-ExT.d.mts → useFormField-DPFClB5h.d.mts} +4 -2
  414. package/dist/useFormField.d.mts +1 -1
  415. package/dist/{useFormGroup-C89-oI4w.mjs → useFormGroup-CH3kiXoa.mjs} +1 -1
  416. package/dist/{useFormGroup-C89-oI4w.mjs.map → useFormGroup-CH3kiXoa.mjs.map} +1 -1
  417. package/dist/{useLocationPathname-K2N4fw8j.d.mts → useLocationPathname-CnRd_Rzn.d.mts} +1 -1
  418. package/dist/useLocationPathname.d.mts +1 -1
  419. package/dist/{useTableBoxDragAndDrop-CbbH3pMK.d.mts → useTableBoxDragAndDrop-DWlG5vhl.d.mts} +1 -1
  420. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  421. package/dist/useTruncation.d.mts +1 -1
  422. package/dist/{utilities-D0EhDri-.d.mts → utilities-BcGuP8Fd.d.mts} +1 -1
  423. package/dist/utilities.d.mts +1 -1
  424. package/dist/utils/testing.d.mts +1 -1
  425. package/dist/utils/testing.mjs.map +1 -1
  426. package/dist/utils.d.mts +1 -1
  427. package/dist/{validation-C07D6XjI.d.mts → validation-B-Om4ANo.d.mts} +3 -3
  428. package/dist/validation.d.mts +1 -1
  429. package/dist/{value-control-resolver-zYNPNlRW.d.mts → value-control-resolver-BiyhB8zt.d.mts} +2 -2
  430. package/dist/value-control-resolver.d.mts +1 -1
  431. package/dist/variables/effect.d.mts +1 -1
  432. package/dist/variables/semantic.d.mts +1 -1
  433. package/llms.txt +10 -1
  434. package/package.json +5 -3
  435. package/skills/ui-authoring/COMPONENTS.md +5 -1
  436. package/skills/ui-authoring/PATTERNS.md +74 -115
  437. package/dist/Combobox-CNdpK8VG.mjs.map +0 -1
  438. package/dist/FormControl-CButLg9b.mjs.map +0 -1
  439. package/dist/FormField-BHUeWCsa.mjs.map +0 -1
  440. package/dist/SegmentedControl-DLkAC2kW.mjs.map +0 -1
  441. package/dist/TableControls-DxAUnR9v.mjs.map +0 -1
  442. package/dist/Toggle-iG2x_IZR.mjs.map +0 -1
  443. package/dist/components/Grid/index.mjs.map +0 -1
  444. package/dist/components/Modal/index.mjs.map +0 -1
  445. package/dist/components/ProgressIndicator/index.mjs.map +0 -1
  446. package/dist/fieldSchemaTypes-BVYSm74B.d.mts +0 -39
  447. package/dist/lib/fieldSchemaTypes.d.mts +0 -2
  448. package/dist/lib/fieldSchemaTypes.mjs +0 -41
  449. package/dist/lib/fieldSchemaTypes.mjs.map +0 -1
  450. package/dist/useFormField-C61u9KvG.mjs.map +0 -1
  451. /package/dist/{index-B33elXxm.d.mts → index-BCh-G39Y2.d.mts} +0 -0
  452. /package/dist/{index-B_BBnMou.d.mts → index-BMBcfD_R.d.mts} +0 -0
  453. /package/dist/{index-BrGZHEgX.d.mts → index-BOn0AAue.d.mts} +0 -0
  454. /package/dist/{index-BwAfCVZH2.d.mts → index-BcsXXrHq.d.mts} +0 -0
  455. /package/dist/{index-C6HcjJiY.d.mts → index-BwFl_eS0.d.mts} +0 -0
  456. /package/dist/{index-CX869wwk.d.mts → index-C-lwXyQ6.d.mts} +0 -0
  457. /package/dist/{index-CjDodOH2.d.mts → index-C1o2TFfS.d.mts} +0 -0
  458. /package/dist/{index-CsuikFeJ.d.mts → index-C3kE54DD.d.mts} +0 -0
  459. /package/dist/{index-CzItj62a.d.mts → index-CREkvfw9.d.mts} +0 -0
  460. /package/dist/{index-D13oYj4_.d.mts → index-CfCYi7PF.d.mts} +0 -0
  461. /package/dist/{index-D4DUvwPf.d.mts → index-DCTy4zg0.d.mts} +0 -0
  462. /package/dist/{index-DMRtRo7y.d.mts → index-DWIh4oP5.d.mts} +0 -0
  463. /package/dist/{index-DXJd7-2Z.d.mts → index-De7MV8-j.d.mts} +0 -0
  464. /package/dist/{index-DZlqSwCF.d.mts → index-DgJfEygr.d.mts} +0 -0
  465. /package/dist/{index-DeVKzGce.d.mts → index-DrK1_jKY.d.mts} +0 -0
  466. /package/dist/{index-Deol7ZWO.d.mts → index-Es5nKSSL.d.mts} +0 -0
  467. /package/dist/{index-DztUdPP_.d.mts → index-Qwqzz3XM.d.mts} +0 -0
  468. /package/dist/{index-Rvd9MEUQ.d.mts → index-Wc1llEvP.d.mts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toggle-iG2x_IZR.mjs","names":[],"sources":["../components/Toggle/Toggle.tsx"],"sourcesContent":["import { forwardRef, type ReactNode, useCallback, useRef } from 'react';\nimport { useId } from 'react-aria';\nimport styled, { css } from 'styled-components';\n\nimport { Color, Spacing } from '@persona/design-tokens';\nimport useFormField from 'design-system/components/FormControl/useFormField';\nimport { Label } from 'design-system/components/Text';\nimport { isDisabled, isHovered, isNotDisabled } from 'design-system/lib/pseudoClass';\nimport { semanticColor, semanticTokens } from 'design-system/lib/semanticColor';\nimport useToggle from 'design-system/lib/useToggle';\nimport { focusOutlineControlled } from 'design-system/mixins/focus';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\ntype ToggleSize = 'md' | 'sm';\n\ninterface SwitchSizes {\n width: number;\n height: number;\n}\n\nconst SWITCH_SIZES: Record<ToggleSize, SwitchSizes> = {\n md: { width: 32, height: 18 },\n sm: { width: 28, height: parseInt(Spacing[4], 10) }, // 16px height from tokens\n};\n\ninterface SliderSizes {\n diameter: number;\n offset: number;\n}\n\nconst SLIDER_SIZES: Record<ToggleSize, SliderSizes> = {\n md: { diameter: 14, offset: 2 },\n sm: { diameter: parseInt(Spacing[3], 10), offset: 2 }, // 12px diameter from tokens\n};\n\nconst Container = styled.div`\n display: inline-flex;\n align-items: center;\n position: relative;\n`;\n\ntype SwitchProps = Pick<ToggleProps, 'disabled'> & {\n checked: boolean;\n focused: boolean;\n size: ToggleSize;\n};\nconst Switch = styled.div<SwitchProps>`\n transition: box-shadow ${TransitionDuration.Fast};\n position: relative;\n display: inline-flex;\n height: ${({ size }) => SWITCH_SIZES[size].height}px;\n width: ${({ size }) => SWITCH_SIZES[size].width}px;\n border-radius: 1000px;\n cursor: pointer;\n &${isDisabled} {\n cursor: not-allowed;\n }\n\n ${focusOutlineControlled}\n\n /* Background */\n &:before {\n position: absolute;\n content: '';\n height: ${({ size }) => SWITCH_SIZES[size].height}px;\n width: ${({ size }) => SWITCH_SIZES[size].width}px;\n top: 0;\n right: 0;\n bottom: 0;\n background-color: ${({ theme, checked, disabled }) => {\n const tokens = semanticTokens(theme);\n if (tokens) {\n if (disabled) {\n return checked ? tokens.InputSurfaceAccentDisabled : tokens.InputSurfaceDisabled;\n }\n return checked ? tokens.InputSurfaceAccent : tokens.InputBorderStrong;\n }\n if (disabled) {\n return checked ? Color.BackgroundInputActiveDisabled : Color.BackgroundInputDisabled;\n }\n return checked ? Color.BackgroundInputActive : Color.BackgroundInputToggle;\n }};\n\n transition: ${TransitionDuration.Medium};\n border-radius: 1000px;\n }\n\n &${isHovered}${isNotDisabled}:before {\n background-color: ${({ theme, checked }) =>\n checked\n ? semanticColor(theme, 'InputSurfaceAccentHover', Color.BackgroundInputActiveHover)\n : semanticColor(theme, 'InputBorderHoverStrong', Color.BackgroundInputToggleHover)};\n }\n\n /* Slider thumb */\n &:after {\n position: absolute;\n content: '';\n height: ${({ size }) => SLIDER_SIZES[size].diameter}px;\n width: ${({ size }) => SLIDER_SIZES[size].diameter}px;\n bottom: ${({ size }) => SLIDER_SIZES[size].offset}px;\n background-color: ${({ theme }) => semanticColor(theme, 'InputSurfaceInverseStatic', Color.BackgroundInputDefault)};\n transition: ${TransitionDuration.Medium};\n border-radius: 1000px;\n\n right: ${({ size }) => SLIDER_SIZES[size].offset}px;\n\n ${({ checked, size }) =>\n !checked &&\n css`\n transform: translateX(-${getSlideDistance(size)}px);\n `}\n }\n`;\n\nconst ToggleLabel = styled(Label)<Pick<ToggleProps, 'disabled' | 'size'>>`\n cursor: ${({ disabled }) => (disabled ? 'initial' : 'pointer')};\n color: ${({ theme }) => semanticColor(theme, 'FgSecondary', Color.TextSecondary)};\n\n padding: 0 ${Spacing[2]};\n white-space: nowrap;\n line-height: ${({ size = 'md' }) => `${SWITCH_SIZES[size].height}px`};\n\n ${({ theme, disabled }) =>\n disabled &&\n css`\n color: ${semanticColor(theme, 'FgDisabled', theme.color.text.disabled)};\n `}\n`;\n\nfunction getSlideDistance(size: ToggleSize) {\n const switchSize = SWITCH_SIZES[size];\n const sliderSize = SLIDER_SIZES[size];\n return switchSize.width - sliderSize.diameter - sliderSize.offset * 2;\n}\n\nconst HiddenInput = styled.input`\n height: 0;\n width: 0;\n margin: -1px;\n border: 0;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n position: absolute;\n`;\n\nexport interface ToggleProps {\n className?: string;\n /** Disables interaction and renders the toggle in a muted style. */\n disabled?: boolean;\n /**\n * Tooltip / title shown on the root element when the toggle is off.\n * @defaultValue 'Off'\n */\n titleOff?: string;\n /**\n * Tooltip / title shown on the root element when the toggle is on.\n * @defaultValue 'On'\n */\n titleOn?: string;\n /**\n * Called with the new boolean value when the user clicks the toggle.\n * The component is fully controlled — you must update `value` in response.\n */\n onChange?: (value: boolean) => void;\n /**\n * Current on/off state. Falsy values (`false`, `null`, `undefined`, `''`)\n * are treated as off; `true` is treated as on.\n */\n value: boolean | null | undefined | '';\n /** `id` forwarded to the visible switch element. */\n id?: string;\n /** Label node rendered to the left of the switch when the toggle is on. */\n labelOn?: ReactNode;\n /**\n * Label node rendered to the left of the switch when the toggle is off.\n * Falls back to `labelOn` when not provided.\n */\n labelOff?: ReactNode;\n 'data-test'?: string;\n /**\n * Accessible label for the hidden `<input role=\"switch\">`.\n * Required when no visible label is provided via `labelOn` / `labelOff`.\n */\n 'aria-label'?: string;\n /**\n * Size of the toggle switch.\n * @defaultValue 'md'\n */\n size?: ToggleSize;\n}\n\nexport const Toggle = forwardRef<HTMLDivElement, ToggleProps>(function Toggle(\n {\n className,\n disabled,\n titleOff = 'Off',\n titleOn = 'On',\n onChange = () => undefined,\n value,\n id,\n labelOn,\n labelOff,\n 'data-test': dataTest,\n 'aria-label': ariaLabel,\n size = 'md',\n },\n ref,\n) {\n const field = useFormField({ disabled });\n const generatedId = useId();\n const label = value ? labelOn : labelOff || labelOn;\n\n const [focused, { enable: setFocus, disable: clearFocus }] = useToggle();\n\n const handleChange = useCallback(() => {\n onChange(!value);\n inputRef.current?.focus();\n }, [onChange, value]);\n\n const inputRef = useRef<HTMLInputElement>();\n\n return (\n <Container\n className={className}\n data-test={dataTest}\n title={value ? titleOn : titleOff}\n ref={ref}\n >\n {label != null && (\n <ToggleLabel htmlFor={generatedId} disabled={field.disabled} size={size}>\n {label}\n </ToggleLabel>\n )}\n <Switch\n id={id}\n checked={!!value}\n disabled={field.disabled}\n focused={focused}\n onClick={field.disabled ? undefined : handleChange}\n size={size}\n />\n <HiddenInput\n id={generatedId}\n /* @ts-expect-error [strict-migration] The following line is not strict; please fix! */\n ref={inputRef}\n data-test-toggle-status={value ? 'on' : 'off'}\n disabled={field.disabled}\n type='checkbox'\n checked={!!value}\n readOnly={true}\n onChange={disabled ? undefined : handleChange}\n onFocus={setFocus}\n onBlur={clearFocus}\n aria-checked={!!value}\n role='switch'\n aria-readonly={field.disabled}\n {...(label\n ? { 'aria-labelledby': generatedId }\n : { 'aria-label': ariaLabel ?? (value ? 'Toggle on' : 'Toggle off') })}\n />\n </Container>\n );\n});\n\nexport default Toggle;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/Grid/Grid.tsx","../../../components/Grid/GridItem.tsx"],"sourcesContent":["import {\n type ComponentPropsWithoutRef,\n type ReactNode,\n type RefObject,\n useLayoutEffect,\n useRef,\n useState,\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\n\nexport const GRID_BREAKPOINTS = { sm: 768, md: 1024, lg: 1408 } as const;\n\ntype Breakpoint = 'xs' | 'sm' | 'md' | 'lg';\n\nconst getBreakpoint = (width: number): Breakpoint => {\n if (width >= GRID_BREAKPOINTS.lg) {\n return 'lg';\n }\n if (width >= GRID_BREAKPOINTS.md) {\n return 'md';\n }\n if (width >= GRID_BREAKPOINTS.sm) {\n return 'sm';\n }\n return 'xs';\n};\n\nconst useGridBreakpoint = (ref: RefObject<HTMLDivElement>) => {\n const [breakpoint, setBreakpoint] = useState<Breakpoint>('md');\n useLayoutEffect(() => {\n const node = ref.current;\n if (!node) {\n return;\n }\n const update = () => setBreakpoint(getBreakpoint(node.offsetWidth));\n update();\n const observer = new ResizeObserver(update);\n observer.observe(node);\n return () => observer.disconnect();\n }, [ref]);\n return breakpoint;\n};\n\nconst Root = styled.div<{ $mode: GridProps['mode']; $breakpoint: Breakpoint }>`\n display: grid;\n width: 100%;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n box-sizing: border-box;\n\n ${({ $breakpoint }) =>\n $breakpoint === 'xs' &&\n css`\n min-width: ${GRID_BREAKPOINTS.sm - 1}px;\n `}\n\n ${({ $breakpoint }) =>\n $breakpoint === 'xs' || $breakpoint === 'sm'\n ? css`\n gap: ${Spacing[3]};\n padding-inline: ${Spacing[5]};\n `\n : css`\n gap: ${Spacing[4]};\n padding-inline: ${Spacing[6]};\n `}\n\n // max-width equals the lg threshold; offsetWidth reads the clamped border-box width and getBreakpoint uses >=, so the clamp stays 'lg'\n ${({ $mode, $breakpoint }) =>\n $mode === 'fixed' &&\n $breakpoint === 'lg' &&\n css`\n max-width: ${GRID_BREAKPOINTS.lg}px;\n margin-inline: auto;\n `}\n`;\n\nexport interface GridProps extends ComponentPropsWithoutRef<'div'> {\n /**\n * Selects the grid width behavior at the large breakpoint. `fixed` centers the grid at a\n * maximum width of 1408px, while `fluid` fills the available width.\n *\n * Breakpoints:\n * - ≤767px: 12 columns, 24px margins, 12px gutters, and a 767px minimum width.\n * - 768–1023px: 12 columns, 24px margins, 12px gutters, and 100% width.\n * - 1024–1407px: 12 columns, 32px margins, 16px gutters, and 100% width.\n * - ≥1408px: 12 columns, 32px margins, 16px gutters, and either fixed or fluid width.\n */\n mode: 'fixed' | 'fluid';\n children: ReactNode;\n}\n\n/**\n * Provides a 12-column CSS grid that measures its own width with a ResizeObserver for responsive\n * horizontal margins and gutters. Vertical spacing is left to the consumer.\n *\n * The grid measures breakpoints against its own width rather than the viewport. Use `fixed` to\n * center the grid at its large-screen maximum width, or `fluid` to keep it at 100% width.\n */\nexport const Grid = ({ mode, children, ...rest }: GridProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const breakpoint = useGridBreakpoint(ref);\n return (\n <Root ref={ref} $mode={mode} $breakpoint={breakpoint} {...rest}>\n {children}\n </Root>\n );\n};\n\nexport default Grid;\n","import type { ComponentPropsWithoutRef, ReactNode } from 'react';\nimport styled from 'styled-components';\n\nexport type GridSpan = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\n\nexport interface GridItemProps extends ComponentPropsWithoutRef<'div'> {\n span: GridSpan;\n children: ReactNode;\n}\n\nconst Item = styled.div<{ $span: GridSpan }>`\n grid-column: span ${({ $span }) => $span};\n min-width: 0;\n`;\n\nexport const GridItem = ({ span, children, ...rest }: GridItemProps) => (\n <Item $span={span} {...rest}>\n {children}\n </Item>\n);\n\nexport default GridItem;\n"],"mappings":";;;;;AAYA,MAAa,mBAAmB;CAAE,IAAI;CAAK,IAAI;CAAM,IAAI;CAAM;AAI/D,MAAM,iBAAiB,UAA8B;AACnD,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,KAAI,SAAS,iBAAiB,GAC5B,QAAO;AAET,QAAO;;AAGT,MAAM,qBAAqB,QAAmC;CAC5D,MAAM,CAAC,YAAY,iBAAiB,SAAqB,KAAK;AAC9D,uBAAsB;EACpB,MAAM,OAAO,IAAI;AACjB,MAAI,CAAC,KACH;EAEF,MAAM,eAAe,cAAc,cAAc,KAAK,YAAY,CAAC;AACnE,UAAQ;EACR,MAAM,WAAW,IAAI,eAAe,OAAO;AAC3C,WAAS,QAAQ,KAAK;AACtB,eAAa,SAAS,YAAY;IACjC,CAAC,IAAI,CAAC;AACT,QAAO;;AAGT,MAAM,OAAO,OAAO,GAA0D;;;;;;KAMzE,EAAE,kBACH,gBAAgB,QAChB,GAAG;mBACY,iBAAiB,KAAK,EAAE;MACrC;;KAED,EAAE,kBACH,gBAAgB,QAAQ,gBAAgB,OACpC,GAAG;iBACM,QAAQ,GAAG;4BACA,QAAQ,GAAG;YAE/B,GAAG;iBACM,QAAQ,GAAG;4BACA,QAAQ,GAAG;UAC7B;;;KAGL,EAAE,OAAO,kBACV,UAAU,WACV,gBAAgB,QAChB,GAAG;mBACY,iBAAiB,GAAG;;MAEjC;;;;;;;;;AAyBN,MAAa,QAAQ,EAAE,MAAM,UAAU,GAAG,WAAsB;CAC9D,MAAM,MAAM,OAAuB,KAAK;AAExC,QACE,oBAAC,MAAD;EAAW;EAAK,OAAO;EAAM,aAFZ,kBAAkB,IAEiB;EAAE,GAAI;EACvD;EACI,CAAA;;;;AChGX,MAAM,OAAO,OAAO,GAAwB;uBACrB,EAAE,YAAY,MAAM;;;AAI3C,MAAa,YAAY,EAAE,MAAM,UAAU,GAAG,WAC5C,oBAAC,MAAD;CAAM,OAAO;CAAM,GAAI;CACpB;CACI,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":["AriaModal","Button","AriaButton","Heading","AriaHeading","Card","Modal"],"sources":["../../../components/Modal/Modal.tsx"],"sourcesContent":["import {\n forwardRef,\n type ComponentProps,\n type ComponentPropsWithoutRef,\n type ReactNode,\n useContext,\n useEffect,\n useState,\n} from 'react';\nimport {\n Button as AriaButton,\n Dialog,\n DialogTrigger,\n Heading as AriaHeading,\n Modal as AriaModal,\n ModalOverlay,\n type ModalOverlayProps,\n OverlayTriggerStateContext,\n Pressable,\n} from 'react-aria-components';\nimport styled from 'styled-components';\n\nimport Button, { type ButtonProps } from '@persona/design-system/components/Button';\nimport Card from '@persona/design-system/components/Card';\nimport Stack, { HStack } from '@persona/design-system/components/Stack';\nimport TabBar, { Tab } from '@persona/design-system/components/TabBar';\nimport { Heading } from '@persona/design-system/components/Text';\nimport { Color, Spacing } from '@persona/design-tokens';\nimport { XIcon } from '@persona/icons';\nimport { semanticColor, semanticOnly } from 'design-system/lib/semanticColor';\nimport useEmbeddedSurface, {\n useEmbeddedSurfaceGate,\n useEmbeddedSurfaceId,\n} from 'design-system/lib/useEmbeddedSurface';\nimport useModalInsetRight, {\n SIDEBAR_CLOSE_TRANSITION_MS,\n SIDEBAR_OPEN_TRANSITION_MS,\n} from 'design-system/lib/useModalInsetRight';\n\nconst StyledModalOverlay = styled(ModalOverlay)<{\n $hostPending: boolean;\n $animationDelayMs: number;\n $insetRight: string;\n $transitionMs: number;\n}>`\n @keyframes overlayShow {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n background-color: rgba(0, 0, 0, 0.5);\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: ${({ $insetRight }) => $insetRight};\n transition: right ${({ $transitionMs }) => $transitionMs}ms ease-out;\n animation: overlayShow 150ms cubic-bezier(0.16, 1, 0.3, 1);\n animation-delay: ${({ $animationDelayMs }) => $animationDelayMs}ms;\n animation-fill-mode: both;\n ${({ $hostPending }) =>\n $hostPending &&\n `\n animation-play-state: paused;\n `}\n @media (prefers-reduced-motion: reduce) {\n animation-duration: 0ms;\n animation-delay: 0ms;\n animation-play-state: running;\n }\n z-index: 10000;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst StyledModal = styled(AriaModal)`\n z-index: 10001;\n outline: none;\n width: fit-content;\n max-width: 100%;\n ${semanticOnly((tokens) => `color: ${tokens.FgPrimary};`)}\n`;\n\n/**\n * React Aria keeps the overlay mounted through the exit animation, so announcing the surface from\n * here — rather than from the persistent gate below — releases the host's backdrop exactly when the\n * modal stops being painted.\n */\nconst EmbeddedSurfaceModal = forwardRef<HTMLDivElement, { children: ReactNode; surfaceId: string }>(\n function EmbeddedSurfaceModal({ children, surfaceId }, ref) {\n useEmbeddedSurface(surfaceId);\n return <StyledModal ref={ref}>{children}</StyledModal>;\n },\n);\n\ntype EmbeddedSurfaceOverlayProps = ModalOverlayProps & {\n $insetRight: string;\n $transitionMs: number;\n surfaceId: string;\n};\n\nconst EmbeddedSurfaceOverlay = ({ surfaceId, ...props }: EmbeddedSurfaceOverlayProps) => {\n const state = useContext(OverlayTriggerStateContext);\n const isOpen = state?.isOpen ?? false;\n const { ready, animationDelayMs } = useEmbeddedSurfaceGate(surfaceId, isOpen);\n\n const { $insetRight, $transitionMs, ...overlayProps } = props;\n return (\n <StyledModalOverlay\n {...overlayProps}\n $insetRight={$insetRight}\n $transitionMs={$transitionMs}\n $animationDelayMs={animationDelayMs}\n $hostPending={isOpen && !ready}\n />\n );\n};\n\nconst ModalCloseButton = styled(Button)`\n display: inline-flex;\n padding: ${Spacing[2]};\n border-radius: ${Spacing[1]};\n width: fit-content;\n min-width: unset;\n`;\n\nconst ModalFooter = styled(HStack).attrs({\n justify: 'flex-end',\n align: 'center',\n spacing: Spacing[2],\n})`\n padding: ${Spacing[3]} ${Spacing[4]};\n border-top: 1px solid ${({ theme }) => semanticColor(theme, 'BorderSubtle', Color.BorderDivider)};\n`;\n\nconst ModalHeaderTitle = styled.div`\n flex: 1;\n`;\n\nexport const ModalTrigger = DialogTrigger;\nexport const ModalContent = StyledModal;\n\nexport const ModalClose = (props: ButtonProps) => {\n return (\n <AriaButton slot='close' style={{ all: 'unset', display: 'contents' }}>\n <ModalCloseButton variant='text' width='icon' size='md' {...props}>\n <XIcon />\n </ModalCloseButton>\n </AriaButton>\n );\n};\n\nexport interface ModalTitleProps {\n children: ReactNode;\n className?: string;\n}\n\n/** Props passed to modal content render functions. */\nexport interface ModalRenderProps {\n /** Element that floating content should use as its portal container. */\n portalContainer: HTMLDivElement | null;\n}\n\ntype ModalRenderable = ReactNode | ((props: ModalRenderProps) => ReactNode);\n\nconst ModalTitle = ({ children, ...props }: ModalTitleProps) => {\n return (\n <Heading size='sm' color='primary' as={AriaHeading} slot='title' {...props}>\n {children}\n </Heading>\n );\n};\n\nconst ModalHeader = styled(HStack)<{ $hasTabs: boolean }>`\n border-bottom: ${({ $hasTabs, theme }) =>\n $hasTabs ? 'none' : `1px solid ${semanticColor(theme, 'BorderSubtle', Color.BorderDivider)}`};\n padding: ${({ $hasTabs }) =>\n $hasTabs\n ? `${Spacing[3]} ${Spacing[2]} ${Spacing[1]} ${Spacing[4]}`\n : `${Spacing[3]} ${Spacing[2]} ${Spacing[3]} ${Spacing[4]}`};\n`;\n\nconst ModalTabBar = styled(TabBar)`\n padding-left: ${Spacing[4]};\n`;\n\nconst StyledDialog = styled(Dialog)`\n outline: none;\n`;\n\nconst StyledCard = styled(Card)<{ $size?: 'auto' | 'md' | 'lg' | 'xl' | 'full' }>`\n position: relative;\n width: ${({ $size }) => {\n switch ($size) {\n case 'auto':\n return 'auto';\n case 'full':\n return 'calc(100vw - 160px)';\n default:\n return '90vw';\n }\n }};\n max-width: ${({ theme, $size }) => {\n switch ($size) {\n case 'auto':\n return 'auto';\n case 'full':\n return 'calc(100vw - 160px)';\n default:\n return theme.modal.width[$size];\n }\n }};\n /* TODO: Use breakpoints to make this responsive */\n max-height: ${({ $size }) => ($size === 'full' ? 'calc(100vh - 160px)' : '85vh')};\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${({ $size }) =>\n $size === 'full' &&\n `\n height: calc(100vh - 160px);\n `}\n margin-bottom: 0;\n`;\n\ninterface ModalCardProps extends ComponentPropsWithoutRef<typeof Dialog> {\n /**\n * Display X button to close popover\n */\n showCloseButton?: boolean;\n\n /**\n * Max width of the modal\n */\n size?: 'auto' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * Footer content\n */\n footer?: ReactNode;\n\n /**\n * Renders tabs within the modal.\n * Adds a tab bar and will render the contents of the selected tab in a tabpanel.\n * Overrides `children`.\n * Tab contents can be render functions that receive the modal portal container.\n */\n tabs?: TabView[];\n\n /**\n * Title of the modal\n */\n title?: ReactNode;\n\n /**\n * Children content\n */\n children?: ReactNode;\n\n /**\n * When true, removes horizontal and vertical padding from the body. Defaults to false.\n */\n noBodyPadding?: boolean;\n\n /**\n * Additional props for the Dialog element\n */\n className?: string;\n}\n\ninterface ModalCardInternalProps extends ModalCardProps {\n portalContainer: HTMLDivElement | null;\n}\n\nconst StyledModalCardBody = styled(Card.Body)<{\n $noPadding?: boolean;\n $hidden?: boolean;\n}>`\n overflow-y: auto;\n flex: 1;\n min-height: 0;\n ${({ $noPadding }) =>\n $noPadding\n ? 'padding: 0;'\n : `\n padding-left: ${Spacing[4]};\n padding-right: ${Spacing[4]};\n `}\n ${({ $hidden }) => $hidden && 'display: none;'}\n`;\n\n/**\n * Card to be used in Modal contexts. Inherits props from react-aria-components Dialog.\n */\nconst ModalCard = forwardRef<HTMLDivElement, ModalCardInternalProps>(function ModalCard(\n {\n title,\n children,\n showCloseButton = true,\n size,\n footer,\n tabs,\n noBodyPadding = false,\n portalContainer,\n ...props\n },\n ref,\n) {\n const [selectedTabIdx, setSelectedTabIdx] = useState(0);\n const tabCount = tabs?.length ?? 0;\n\n useEffect(() => {\n setSelectedTabIdx(0);\n }, [tabCount]);\n\n const titleAndClose = (\n <ModalHeader justify='flex-start' align='center' spacing={Spacing[2]} $hasTabs={Boolean(tabs)}>\n <ModalHeaderTitle>{title ? <ModalTitle>{title}</ModalTitle> : null}</ModalHeaderTitle>\n {showCloseButton && <ModalClose aria-label='Close' />}\n </ModalHeader>\n );\n\n const modalHeader = tabs ? (\n <Stack>\n {titleAndClose}\n <ModalTabBar>\n {tabs.map((tab, idx) => (\n <Tab\n key={tab.name}\n selected={selectedTabIdx === idx}\n id={`pds-modal_tab-${idx}`}\n onClick={() => setSelectedTabIdx(idx)}\n aria-controls={`pds-modal_tab-panel-${idx}`}\n >\n {tab.name}\n </Tab>\n ))}\n </ModalTabBar>\n </Stack>\n ) : (\n titleAndClose\n );\n\n return (\n <StyledDialog {...props} ref={ref}>\n <StyledCard elevated $size={size}>\n {(showCloseButton || title) && modalHeader}\n {tabs ? (\n tabs.map((tab, idx) => (\n <StyledModalCardBody\n key={tab.name}\n $noPadding={noBodyPadding}\n $hidden={selectedTabIdx !== idx}\n role={tabs ? 'tabpanel' : undefined}\n id={`pds-modal_tab-panel-${tab.name}`}\n aria-labelledby={`pds-modal_tab-${tab.name}`}\n >\n {typeof tab.contents === 'function'\n ? tab.contents({ portalContainer })\n : tab.contents}\n </StyledModalCardBody>\n ))\n ) : (\n <StyledModalCardBody\n $noPadding={noBodyPadding}\n role={tabs ? 'tabpanel' : undefined}\n id={`pds-modal_tab-panel-${selectedTabIdx}`}\n aria-labelledby={`pds-modal_tab-${selectedTabIdx}`}\n >\n {children}\n </StyledModalCardBody>\n )}\n\n {footer && <ModalFooter>{footer}</ModalFooter>}\n </StyledCard>\n </StyledDialog>\n );\n});\n\ninterface TabView {\n name: string;\n contents: ModalRenderable;\n badge?: React.ReactElement;\n disabled?: boolean;\n 'data-tour-target'?: string;\n}\n\nexport interface ModalProps {\n /**\n * Title of the Card\n */\n title?: string;\n\n /**\n * Component to use as trigger. React Aria trigger props will be merged with this element.\n */\n trigger?: ComponentProps<typeof Pressable>['children'];\n\n /**\n * Props to apply to Modal.Card within\n */\n contentProps?: ModalCardProps;\n\n /**\n * Max width of the modal\n */\n size?: 'auto' | 'md' | 'lg' | 'xl' | 'full';\n\n /**\n * Footer section intended for actions.\n * You can pass in Buttons directly and they will render in a HStack.\n */\n footer?: ReactNode;\n\n /**\n * Renders tabs within the modal.\n * Adds a tab bar and will render the contents of the selected tab in a tabpanel.\n * Overrides `children`.\n */\n tabs?: TabView[];\n\n /**\n * Children content\n */\n children?: ModalRenderable;\n\n /**\n * When true, removes horizontal and vertical padding from the body. Defaults to false.\n * Can also be set via contentProps.noBodyPadding.\n */\n noBodyPadding?: boolean;\n\n /**\n * Controls whether the modal is open (controlled)\n */\n open?: boolean;\n\n /**\n * Default open state (uncontrolled)\n */\n defaultOpen?: boolean;\n\n /**\n * Handler called when open state changes\n */\n onOpenChange?: (isOpen: boolean) => void;\n\n /**\n * Whether the modal can be dismissed by clicking outside or pressing escape\n */\n isDismissable?: boolean;\n\n /**\n * Whether pressing the escape key closes the modal\n */\n isKeyboardDismissDisabled?: boolean;\n}\n\nconst Modal = ({\n children,\n trigger,\n contentProps,\n noBodyPadding = false,\n size = 'md',\n title,\n footer,\n tabs,\n defaultOpen,\n onOpenChange,\n isDismissable = false,\n isKeyboardDismissDisabled = false,\n open,\n}: ModalProps) => {\n const [portalContainer, setPortalContainer] = useState<HTMLDivElement | null>(null);\n const surfaceId = useEmbeddedSurfaceId();\n const { insetRight: modalInsetRight, panelState } = useModalInsetRight();\n const transitionMs =\n panelState === 'opening'\n ? SIDEBAR_OPEN_TRANSITION_MS\n : panelState === 'closing'\n ? SIDEBAR_CLOSE_TRANSITION_MS\n : 0;\n\n const content = (\n <ModalCard\n size={size}\n title={title}\n footer={footer}\n tabs={tabs}\n noBodyPadding={noBodyPadding}\n {...contentProps}\n portalContainer={portalContainer}\n >\n {typeof children === 'function' ? children({ portalContainer }) : children}\n </ModalCard>\n );\n\n // Wrap trigger element to ensure it works with react-aria-components\n const wrappedTrigger = trigger ? <Pressable>{trigger}</Pressable> : null;\n\n return (\n <DialogTrigger isOpen={open} defaultOpen={defaultOpen} onOpenChange={onOpenChange}>\n {wrappedTrigger}\n <EmbeddedSurfaceOverlay\n surfaceId={surfaceId}\n $insetRight={modalInsetRight}\n $transitionMs={transitionMs}\n isDismissable={isDismissable}\n isKeyboardDismissDisabled={isKeyboardDismissDisabled}\n shouldCloseOnInteractOutside={(element) => !element.closest('[data-react-aria-top-layer]')}\n >\n <EmbeddedSurfaceModal ref={setPortalContainer} surfaceId={surfaceId}>\n {content}\n </EmbeddedSurfaceModal>\n </EmbeddedSurfaceOverlay>\n </DialogTrigger>\n );\n};\n\nexport default Object.assign(Modal, {\n Title: ModalTitle,\n});\n"],"mappings":";;;;;;;;;;;;;;;AAuCA,MAAM,qBAAqB,OAAO,aAAa;;;;;;;;;;;;;;YAmBnC,EAAE,kBAAkB,YAAY;uBACrB,EAAE,oBAAoB,cAAc;;sBAErC,EAAE,wBAAwB,kBAAkB;;KAE7D,EAAE,mBACH,gBACA;;IAEA;;;;;;;;;;;AAYJ,MAAM,cAAc,OAAOA,MAAU;;;;;IAKjC,cAAc,WAAW,UAAU,OAAO,UAAU,GAAG,CAAC;;;;;;;AAQ5D,MAAM,uBAAuB,WAC3B,SAAS,qBAAqB,EAAE,UAAU,aAAa,KAAK;AAC1D,oBAAmB,UAAU;AAC7B,QAAO,oBAAC,aAAD;EAAkB;EAAM;EAAuB,CAAA;EAEzD;AAQD,MAAM,0BAA0B,EAAE,WAAW,GAAG,YAAyC;CAEvF,MAAM,SADQ,WAAW,2BACL,EAAE,UAAU;CAChC,MAAM,EAAE,OAAO,qBAAqB,uBAAuB,WAAW,OAAO;CAE7E,MAAM,EAAE,aAAa,eAAe,GAAG,iBAAiB;AACxD,QACE,oBAAC,oBAAD;EACE,GAAI;EACS;EACE;EACf,mBAAmB;EACnB,cAAc,UAAU,CAAC;EACzB,CAAA;;AAIN,MAAM,mBAAmB,OAAOC,SAAO;;aAE1B,QAAQ,GAAG;mBACL,QAAQ,GAAG;;;;AAK9B,MAAM,cAAc,OAAO,OAAO,CAAC,MAAM;CACvC,SAAS;CACT,OAAO;CACP,SAAS,QAAQ;CAClB,CAAC;aACW,QAAQ,GAAG,GAAG,QAAQ,GAAG;2BACX,EAAE,YAAY,cAAc,OAAO,gBAAgB,MAAM,cAAc,CAAC;;AAGnG,MAAM,mBAAmB,OAAO,GAAG;;;AAInC,MAAa,eAAe;AAC5B,MAAa,eAAe;AAE5B,MAAa,cAAc,UAAuB;AAChD,QACE,oBAACC,QAAD;EAAY,MAAK;EAAQ,OAAO;GAAE,KAAK;GAAS,SAAS;GAAY;YACnE,oBAAC,kBAAD;GAAkB,SAAQ;GAAO,OAAM;GAAO,MAAK;GAAK,GAAI;aAC1D,oBAAC,OAAD,EAAS,CAAA;GACQ,CAAA;EACR,CAAA;;AAiBjB,MAAM,cAAc,EAAE,UAAU,GAAG,YAA6B;AAC9D,QACE,oBAACC,WAAD;EAAS,MAAK;EAAK,OAAM;EAAU,IAAIC;EAAa,MAAK;EAAQ,GAAI;EAClE;EACO,CAAA;;AAId,MAAM,cAAc,OAAO,OAAO;oBACd,EAAE,UAAU,YAC5B,WAAW,SAAS,aAAa,cAAc,OAAO,gBAAgB,MAAM,cAAc,GAAG;cACnF,EAAE,eACZ,WACI,GAAG,QAAQ,GAAG,GAAG,QAAQ,GAAG,GAAG,QAAQ,GAAG,GAAG,QAAQ,OACrD,GAAG,QAAQ,GAAG,GAAG,QAAQ,GAAG,GAAG,QAAQ,GAAG,GAAG,QAAQ,KAAK;;AAGlE,MAAM,cAAc,OAAO,OAAO;kBAChB,QAAQ,GAAG;;AAG7B,MAAM,eAAe,OAAO,OAAO;;;AAInC,MAAM,aAAa,OAAOC,aAAK;;YAEnB,EAAE,YAAY;AACtB,SAAQ,OAAR;EACE,KAAK,OACH,QAAO;EACT,KAAK,OACH,QAAO;EACT,QACE,QAAO;;EAEX;gBACY,EAAE,OAAO,YAAY;AACjC,SAAQ,OAAR;EACE,KAAK,OACH,QAAO;EACT,KAAK,OACH,QAAO;EACT,QACE,QAAO,MAAM,MAAM,MAAM;;EAE7B;;iBAEa,EAAE,YAAa,UAAU,SAAS,wBAAwB,OAAQ;;;;KAI9E,EAAE,YACH,UAAU,UACV;;IAEA;;;AAqDJ,MAAM,sBAAsB,OAAOA,aAAK,KAAK;;;;KAOxC,EAAE,iBACH,aACI,gBACA;oBACY,QAAQ,GAAG;qBACV,QAAQ,GAAG;IAC5B;KACC,EAAE,cAAc,WAAW,iBAAiB;;;;;AAMjD,MAAM,YAAY,WAAmD,SAAS,UAC5E,EACE,OACA,UACA,kBAAkB,MAClB,MACA,QACA,MACA,gBAAgB,OAChB,iBACA,GAAG,SAEL,KACA;CACA,MAAM,CAAC,gBAAgB,qBAAqB,SAAS,EAAE;AAGvD,iBAAgB;AACd,oBAAkB,EAAE;IACnB,CAJc,MAAM,UAAU,EAIpB,CAAC;CAEd,MAAM,gBACJ,qBAAC,aAAD;EAAa,SAAQ;EAAa,OAAM;EAAS,SAAS,QAAQ;EAAI,UAAU,QAAQ,KAAK;YAA7F,CACE,oBAAC,kBAAD,EAAA,UAAmB,QAAQ,oBAAC,YAAD,EAAA,UAAa,OAAmB,CAAA,GAAG,MAAwB,CAAA,EACrF,mBAAmB,oBAAC,YAAD,EAAY,cAAW,SAAU,CAAA,CACzC;;CAGhB,MAAM,cAAc,OAClB,qBAAC,OAAD,EAAA,UAAA,CACG,eACD,oBAAC,aAAD,EAAA,UACG,KAAK,KAAK,KAAK,QACd,oBAAC,KAAD;EAEE,UAAU,mBAAmB;EAC7B,IAAI,iBAAiB;EACrB,eAAe,kBAAkB,IAAI;EACrC,iBAAe,uBAAuB;YAErC,IAAI;EACD,EAPC,IAAI,KAOL,CACN,EACU,CAAA,CACR,EAAA,CAAA,GAER;AAGF,QACE,oBAAC,cAAD;EAAc,GAAI;EAAY;YAC5B,qBAAC,YAAD;GAAY,UAAA;GAAS,OAAO;aAA5B;KACI,mBAAmB,UAAU;IAC9B,OACC,KAAK,KAAK,KAAK,QACb,oBAAC,qBAAD;KAEE,YAAY;KACZ,SAAS,mBAAmB;KAC5B,MAAM,OAAO,aAAa,KAAA;KAC1B,IAAI,uBAAuB,IAAI;KAC/B,mBAAiB,iBAAiB,IAAI;eAErC,OAAO,IAAI,aAAa,aACrB,IAAI,SAAS,EAAE,iBAAiB,CAAC,GACjC,IAAI;KACY,EAVf,IAAI,KAUW,CACtB,GAEF,oBAAC,qBAAD;KACE,YAAY;KACZ,MAAM,OAAO,aAAa,KAAA;KAC1B,IAAI,uBAAuB;KAC3B,mBAAiB,iBAAiB;KAEjC;KACmB,CAAA;IAGvB,UAAU,oBAAC,aAAD,EAAA,UAAc,QAAqB,CAAA;IACnC;;EACA,CAAA;EAEjB;AAiFF,MAAMC,WAAS,EACb,UACA,SACA,cACA,gBAAgB,OAChB,OAAO,MACP,OACA,QACA,MACA,aACA,cACA,gBAAgB,OAChB,4BAA4B,OAC5B,WACgB;CAChB,MAAM,CAAC,iBAAiB,sBAAsB,SAAgC,KAAK;CACnF,MAAM,YAAY,sBAAsB;CACxC,MAAM,EAAE,YAAY,iBAAiB,eAAe,oBAAoB;CACxE,MAAM,eACJ,eAAe,YAAA,MAEX,eAAe,YAAA,MAEb;CAER,MAAM,UACJ,oBAAC,WAAD;EACQ;EACC;EACC;EACF;EACS;EACf,GAAI;EACa;YAEhB,OAAO,aAAa,aAAa,SAAS,EAAE,iBAAiB,CAAC,GAAG;EACxD,CAAA;AAMd,QACE,qBAAC,eAAD;EAAe,QAAQ;EAAmB;EAA2B;YAArE,CAHqB,UAAU,oBAAC,WAAD,EAAA,UAAY,SAAoB,CAAA,GAAG,MAKhE,oBAAC,wBAAD;GACa;GACX,aAAa;GACb,eAAe;GACA;GACY;GAC3B,+BAA+B,YAAY,CAAC,QAAQ,QAAQ,8BAA8B;aAE1F,oBAAC,sBAAD;IAAsB,KAAK;IAA+B;cACvD;IACoB,CAAA;GACA,CAAA,CACX;;;AAIpB,IAAA,gBAAe,OAAO,OAAOA,SAAO,EAClC,OAAO,YACR,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../components/ProgressIndicator/ProgressIndicator.tsx"],"sourcesContent":["import type { ComponentPropsWithoutRef } from 'react';\nimport styled, { css, useTheme } from 'styled-components';\n\nimport { 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 CircleCheckFillIcon,\n CircleFillIcon,\n CircleNullIcon,\n CircleWarningFillIcon,\n WarningFillIcon,\n} from '@persona/icons';\nimport type { PDSIconComponent } from '@persona/icons/types';\nimport { withAlpha } from 'design-system/lib/color';\nimport {\n type MaybeSemanticTheme,\n semanticColor,\n semanticTokens,\n} from 'design-system/lib/semanticColor';\n\nexport type StepStatus = 'uncompleted' | 'completed' | 'warning' | '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`, `warning`, 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, warning, and error steps can be navigated back to.\n * The current step (first uncompleted or error) 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 === 'warning' || status === 'error' || isCurrent;\n}\n\nfunction resolveIcon(status: StepStatus, isCurrent: boolean): PDSIconComponent {\n if (status === 'completed') {\n return CircleCheckFillIcon;\n }\n if (status === 'warning') {\n return WarningFillIcon;\n }\n if (status === 'error') {\n return CircleWarningFillIcon;\n }\n if (isCurrent) {\n return CircleFillIcon;\n }\n return CircleNullIcon;\n}\n\nfunction resolveIconColor(\n theme: MaybeSemanticTheme,\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n) {\n if (isDisabled) {\n return semanticColor(theme, 'FgDisabled', Color.BorderIconDisabled);\n }\n if (status === 'completed') {\n return semanticColor(theme, 'FgSuccess', Color.BorderIconSuccess);\n }\n if (status === 'warning') {\n return semanticColor(theme, 'FgWarning1', Color.BorderIconWarning);\n }\n if (status === 'error') {\n return semanticColor(theme, 'FgDanger1', Color.BorderIconDanger);\n }\n return isActive\n ? semanticColor(theme, 'FgAccent', Color.BorderIconActive)\n : semanticColor(theme, 'FgSecondary', Color.BorderIconSecondary);\n}\n\nfunction resolveTextColor(\n theme: MaybeSemanticTheme,\n status: StepStatus,\n isActive: boolean,\n isDisabled: boolean,\n) {\n if (isDisabled) {\n return semanticColor(theme, 'FgDisabled', Color.TextDisabled);\n }\n if (isActive) {\n return semanticColor(theme, 'FgAccent', Color.TextActive);\n }\n if (status === 'uncompleted') {\n return semanticColor(theme, 'FgSecondary', Color.TextSecondary);\n }\n return semanticColor(theme, 'FgPrimary', 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 ${({ theme, $isActive, $isClickable, $interactive }) => {\n const tokens = semanticTokens(theme);\n if ($isActive) {\n return css`\n background-color: ${\n tokens\n ? withAlpha(tokens.SurfaceAccent, tokens.Opacity25)\n : Color.BackgroundInteractiveActive\n };\n `;\n }\n if ($interactive && $isClickable) {\n return css`\n background-color: ${tokens ? 'transparent' : Color.BackgroundInteractiveDefault};\n &:hover {\n background-color: ${semanticColor(theme, 'SurfaceSecondary', 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: string }>`\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: string }>`\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 theme = useTheme();\n const iconColor = resolveIconColor(theme, status, isActive, disabled);\n const textColor = resolveTextColor(theme, 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 / warning / error** steps are clickable — navigate back to review or fix.\n * - **Warning** does not block forward progression; later uncompleted steps remain reachable.\n * - **Error** blocks forward progression — treat it as the terminal step in the sequence.\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 or error step — where the user should work next.\n // Warning steps are skipped so forward progression is not blocked.\n // This is independent of activeStepId, which only controls the visual highlight.\n const currentStepId = steps.find(\n ({ status = 'uncompleted' }) => status === 'uncompleted' || status === 'error',\n )?.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":"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"}
@@ -1,39 +0,0 @@
1
- //#region lib/fieldSchemaTypes.d.ts
2
- /**
3
- * Enum describing the schema-level field types shared across form and JSON schema utilities.
4
- * Keep this module free of runtime dependencies so it can be safely imported in both directions.
5
- */
6
- declare enum FieldSchemaType {
7
- Alias = "alias",
8
- Array = "array",
9
- Boolean = "boolean",
10
- Calculated = "calculated",
11
- Choices = "choices",
12
- Date = "date",
13
- Datetime = "datetime",
14
- EmailAddress = "email-address",
15
- File = "file",
16
- Hash = "hash",
17
- Integer = "integer",
18
- Json = "json",
19
- MultiChoices = "multi-choices",
20
- Number = "number",
21
- String = "string",
22
- /**
23
- * NOTE: please also add all relation fields to the RELATION_FIELDS constant.
24
- */
25
- Relation = "Field::Relation",
26
- /**
27
- * Not ideal because 'generic' is not very descriptive. Should migrate
28
- * fields serialization to not demodulize. But that's a breaking change.
29
- */
30
- DocumentGeneric = "Field::Relation::Document::Generic",
31
- GovernmentId = "Field::Relation::Document::GovernmentId",
32
- GovernmentIdNfc = "Field::Relation::Document::GovernmentIdNfc",
33
- Mdoc = "Field::Relation::Document::Mdoc",
34
- QrCode = "Field::Relation::Document::QrCode",
35
- Selfie = "Field::Relation::Selfie"
36
- }
37
- //#endregion
38
- export { FieldSchemaType as t };
39
- //# sourceMappingURL=fieldSchemaTypes-BVYSm74B.d.mts.map
@@ -1,2 +0,0 @@
1
- import { t as FieldSchemaType } from "../fieldSchemaTypes-BVYSm74B.mjs";
2
- export { FieldSchemaType };
@@ -1,41 +0,0 @@
1
- //#region lib/fieldSchemaTypes.ts
2
- /**
3
- * Enum describing the schema-level field types shared across form and JSON schema utilities.
4
- * Keep this module free of runtime dependencies so it can be safely imported in both directions.
5
- */
6
- let FieldSchemaType = /* @__PURE__ */ function(FieldSchemaType) {
7
- FieldSchemaType["Alias"] = "alias";
8
- FieldSchemaType["Array"] = "array";
9
- FieldSchemaType["Boolean"] = "boolean";
10
- FieldSchemaType["Calculated"] = "calculated";
11
- FieldSchemaType["Choices"] = "choices";
12
- FieldSchemaType["Date"] = "date";
13
- FieldSchemaType["Datetime"] = "datetime";
14
- FieldSchemaType["EmailAddress"] = "email-address";
15
- FieldSchemaType["File"] = "file";
16
- FieldSchemaType["Hash"] = "hash";
17
- FieldSchemaType["Integer"] = "integer";
18
- FieldSchemaType["Json"] = "json";
19
- FieldSchemaType["MultiChoices"] = "multi-choices";
20
- FieldSchemaType["Number"] = "number";
21
- FieldSchemaType["String"] = "string";
22
- /**
23
- * NOTE: please also add all relation fields to the RELATION_FIELDS constant.
24
- */
25
- FieldSchemaType["Relation"] = "Field::Relation";
26
- /**
27
- * Not ideal because 'generic' is not very descriptive. Should migrate
28
- * fields serialization to not demodulize. But that's a breaking change.
29
- */
30
- FieldSchemaType["DocumentGeneric"] = "Field::Relation::Document::Generic";
31
- FieldSchemaType["GovernmentId"] = "Field::Relation::Document::GovernmentId";
32
- FieldSchemaType["GovernmentIdNfc"] = "Field::Relation::Document::GovernmentIdNfc";
33
- FieldSchemaType["Mdoc"] = "Field::Relation::Document::Mdoc";
34
- FieldSchemaType["QrCode"] = "Field::Relation::Document::QrCode";
35
- FieldSchemaType["Selfie"] = "Field::Relation::Selfie";
36
- return FieldSchemaType;
37
- }({});
38
- //#endregion
39
- export { FieldSchemaType };
40
-
41
- //# sourceMappingURL=fieldSchemaTypes.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fieldSchemaTypes.mjs","names":[],"sources":["../../lib/fieldSchemaTypes.ts"],"sourcesContent":["/**\n * Enum describing the schema-level field types shared across form and JSON schema utilities.\n * Keep this module free of runtime dependencies so it can be safely imported in both directions.\n */\nexport enum FieldSchemaType {\n Alias = 'alias',\n Array = 'array',\n Boolean = 'boolean',\n Calculated = 'calculated',\n Choices = 'choices',\n Date = 'date',\n Datetime = 'datetime',\n EmailAddress = 'email-address',\n File = 'file',\n Hash = 'hash',\n Integer = 'integer',\n Json = 'json',\n MultiChoices = 'multi-choices',\n Number = 'number',\n String = 'string',\n /**\n * NOTE: please also add all relation fields to the RELATION_FIELDS constant.\n */\n Relation = 'Field::Relation',\n /**\n * Not ideal because 'generic' is not very descriptive. Should migrate\n * fields serialization to not demodulize. But that's a breaking change.\n */\n DocumentGeneric = 'Field::Relation::Document::Generic',\n GovernmentId = 'Field::Relation::Document::GovernmentId',\n GovernmentIdNfc = 'Field::Relation::Document::GovernmentIdNfc',\n Mdoc = 'Field::Relation::Document::Mdoc',\n QrCode = 'Field::Relation::Document::QrCode',\n Selfie = 'Field::Relation::Selfie',\n}\n"],"mappings":";;;;;AAIA,IAAY,kBAAL,yBAAA,iBAAA;AACL,iBAAA,WAAA;AACA,iBAAA,WAAA;AACA,iBAAA,aAAA;AACA,iBAAA,gBAAA;AACA,iBAAA,aAAA;AACA,iBAAA,UAAA;AACA,iBAAA,cAAA;AACA,iBAAA,kBAAA;AACA,iBAAA,UAAA;AACA,iBAAA,UAAA;AACA,iBAAA,aAAA;AACA,iBAAA,UAAA;AACA,iBAAA,kBAAA;AACA,iBAAA,YAAA;AACA,iBAAA,YAAA;;;;AAIA,iBAAA,cAAA;;;;;AAKA,iBAAA,qBAAA;AACA,iBAAA,kBAAA;AACA,iBAAA,qBAAA;AACA,iBAAA,UAAA;AACA,iBAAA,YAAA;AACA,iBAAA,YAAA;;KACD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFormField-C61u9KvG.mjs","names":[],"sources":["../components/FormControl/useFormField.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport useFormGroup from 'design-system/components/ConfigFormGroup/useFormGroup';\nimport type ErrorProps from 'design-system/types/ErrorProps';\n\nexport interface FormControlContextProps extends ErrorProps {\n inputId?: string;\n helperTextId?: string;\n errorTextId?: string;\n warningTextId?: string;\n labelId?: string;\n disabled?: boolean;\n maxLength?: number;\n configField?: boolean;\n}\n\nexport const FormControlContext = createContext<FormControlContextProps>({});\n\nconst useFormField = (props: Partial<FormControlContextProps>) => {\n const group = useFormGroup();\n const field = useContext(FormControlContext);\n\n const inputId = props.inputId ?? field.inputId;\n\n return {\n configField: props.configField ?? group.configField,\n hasError: props.hasError ?? field.hasError,\n hasWarning: props.hasWarning ?? field.hasWarning,\n inputId,\n helperTextId: props.helperTextId ?? field.helperTextId,\n errorTextId: props.errorTextId ?? field.errorTextId,\n warningTextId: props.warningTextId ?? field.warningTextId,\n labelId: props.labelId ?? field.labelId,\n disabled: props.disabled ?? field.disabled,\n maxLength: props.maxLength ?? field.maxLength,\n };\n};\n\nexport default useFormField;\n"],"mappings":";;;AAgBA,MAAa,qBAAqB,cAAuC,EAAE,CAAC;AAE5E,MAAM,gBAAgB,UAA4C;CAChE,MAAM,QAAQ,cAAc;CAC5B,MAAM,QAAQ,WAAW,mBAAmB;CAE5C,MAAM,UAAU,MAAM,WAAW,MAAM;AAEvC,QAAO;EACL,aAAa,MAAM,eAAe,MAAM;EACxC,UAAU,MAAM,YAAY,MAAM;EAClC,YAAY,MAAM,cAAc,MAAM;EACtC;EACA,cAAc,MAAM,gBAAgB,MAAM;EAC1C,aAAa,MAAM,eAAe,MAAM;EACxC,eAAe,MAAM,iBAAiB,MAAM;EAC5C,SAAS,MAAM,WAAW,MAAM;EAChC,UAAU,MAAM,YAAY,MAAM;EAClC,WAAW,MAAM,aAAa,MAAM;EACrC"}