@persona/design-system 0.7.1 → 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 (420) hide show
  1. package/CHANGELOG.md +17 -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.d.mts +1 -1
  16. package/dist/{Button-HodDf_bB.d.mts → Button-Dhiund3f.d.mts} +4 -4
  17. package/dist/Button.d.mts +1 -1
  18. package/dist/{Calendar-DrdTvzAa.d.mts → Calendar-CMeIZ0BO.d.mts} +1 -1
  19. package/dist/Calendar.d.mts +1 -1
  20. package/dist/CalendarBase.d.mts +1 -1
  21. package/dist/{Card-CpDwATnX.d.mts → Card-DCYB_mtR.d.mts} +3 -3
  22. package/dist/Card.d.mts +1 -1
  23. package/dist/{Checkbox-CyWXhuby.mjs → Checkbox-AjL7ucoR.mjs} +2 -2
  24. package/dist/{Checkbox-CyWXhuby.mjs.map → Checkbox-AjL7ucoR.mjs.map} +1 -1
  25. package/dist/{Checkbox-C-hMfItK.d.mts → Checkbox-fWj7GkBl.d.mts} +1 -1
  26. package/dist/Checkbox.d.mts +1 -1
  27. package/dist/CheckboxGroupField.d.mts +1 -1
  28. package/dist/ChoicesValueControl.d.mts +1 -1
  29. package/dist/{Combobox-1M6EwVmq.mjs → Combobox-C2b9u955.mjs} +9 -6
  30. package/dist/Combobox-C2b9u955.mjs.map +1 -0
  31. package/dist/{Combobox-DyNllwt8.d.mts → Combobox-CC-Osr57.d.mts} +3 -3
  32. package/dist/Combobox.d.mts +2 -2
  33. package/dist/{ComboboxBase-B3YqkjQp.d.mts → ComboboxBase-Evo0FRxP.d.mts} +7 -5
  34. package/dist/ComboboxBase.d.mts +1 -1
  35. package/dist/{ComboboxMultiSelect-BuwVssvZ.d.mts → ComboboxMultiSelect-CvAc0FT3.d.mts} +2 -2
  36. package/dist/ComboboxMultiSelect.d.mts +1 -1
  37. package/dist/{ComboboxSingleSelect-gJC4v7ER.d.mts → ComboboxSingleSelect-CBm7x0oh.d.mts} +4 -4
  38. package/dist/ComboboxSingleSelect.d.mts +1 -1
  39. package/dist/{CompactBar-DhHh7Roq.d.mts → CompactBar-D_2qMK4y.d.mts} +3 -3
  40. package/dist/CompactBar.d.mts +1 -1
  41. package/dist/{ControlBar-C8kagIck.d.mts → ControlBar-B7j9sOr9.d.mts} +2 -2
  42. package/dist/ControlBar.d.mts +1 -1
  43. package/dist/DataTable.d.mts +3 -3
  44. package/dist/{DateField-2aigfD4u.d.mts → DateField-BamAk9_w.d.mts} +2 -2
  45. package/dist/DateField.d.mts +1 -1
  46. package/dist/{DatePicker-DC_RKjdM.d.mts → DatePicker-C3xNSkPG.d.mts} +2 -2
  47. package/dist/{DatePicker-D9JurBBj.mjs → DatePicker-IgiUI3Wj.mjs} +3 -3
  48. package/dist/{DatePicker-D9JurBBj.mjs.map → DatePicker-IgiUI3Wj.mjs.map} +1 -1
  49. package/dist/DatePicker.d.mts +1 -1
  50. package/dist/{DateRangePicker-ByD6IsLB.d.mts → DateRangePicker-C4QKMo2a.d.mts} +3 -3
  51. package/dist/DateRangePicker.d.mts +1 -1
  52. package/dist/DateRangeValueControl.d.mts +2 -2
  53. package/dist/DateValueControl.d.mts +1 -1
  54. package/dist/DropdownButton.d.mts +2 -2
  55. package/dist/{DropdownMenu-Xl1BYXsY.d.mts → DropdownMenu-DL5ye-0m.d.mts} +2 -2
  56. package/dist/DropdownMenu.d.mts +1 -1
  57. package/dist/{ErrorProps-Dgu98PkH.d.mts → ErrorProps-BA0-m_Wp.d.mts} +1 -1
  58. package/dist/ErrorProps.d.mts +1 -1
  59. package/dist/{FieldRegistry-BdtxI1N2.d.mts → FieldRegistry-bKxrF1gC.d.mts} +2 -2
  60. package/dist/FieldRegistry.d.mts +1 -1
  61. package/dist/{FilterBar-jYjPeD7F.d.mts → FilterBar-DhlBLWxw.d.mts} +4 -4
  62. package/dist/FilterBar.d.mts +1 -1
  63. package/dist/FilterPickerMenu.d.mts +2 -2
  64. package/dist/FilterPill.d.mts +1 -1
  65. package/dist/FilterPopover.d.mts +1 -1
  66. package/dist/FloatValueControl.d.mts +1 -1
  67. package/dist/{FormControl-CJfYdgZF.d.mts → FormControl-D5xyPkST.d.mts} +6 -2
  68. package/dist/{FormControl-BEk4F1EV.mjs → FormControl-DnfZTli_.mjs} +25 -10
  69. package/dist/FormControl-DnfZTli_.mjs.map +1 -0
  70. package/dist/FormControl.d.mts +1 -1
  71. package/dist/FormControlLabel.d.mts +1 -1
  72. package/dist/{FormField-ByT0avVx.mjs → FormField-74TPV8-8.mjs} +27 -17
  73. package/dist/FormField-74TPV8-8.mjs.map +1 -0
  74. package/dist/{FormField-CK8o1sMB.d.mts → FormField-BJZUj6jg.d.mts} +4 -2
  75. package/dist/FormField.d.mts +1 -1
  76. package/dist/Grid-DOyYYsvk.mjs +92 -0
  77. package/dist/Grid-DOyYYsvk.mjs.map +1 -0
  78. package/dist/Grid.d.mts +4 -1
  79. package/dist/{Header-ZnHGm8fs.d.mts → Header-BqEKkEp5.d.mts} +1 -1
  80. package/dist/Header.d.mts +1 -1
  81. package/dist/{HelperTooltip-CQpPO16Q.d.mts → HelperTooltip-mOVSuEB8.d.mts} +2 -2
  82. package/dist/HelperTooltip.d.mts +1 -1
  83. package/dist/{IconButton-zu-VNp1h.d.mts → IconButton-CjPFhpVG.d.mts} +2 -2
  84. package/dist/IconButton-CqTPMhjV.mjs.map +1 -1
  85. package/dist/IconButton.d.mts +1 -1
  86. package/dist/ImageTile.d.mts +1 -1
  87. package/dist/InlineCombobox.d.mts +1 -1
  88. package/dist/InlineInput.d.mts +1 -1
  89. package/dist/{Input-Ce8FvSYf.d.mts → Input-CZ_6KWDN.d.mts} +3 -3
  90. package/dist/{Input-Bc2yWH3j.mjs → Input-C_3QwAAt.mjs} +2 -2
  91. package/dist/{Input-Bc2yWH3j.mjs.map → Input-C_3QwAAt.mjs.map} +1 -1
  92. package/dist/Input.d.mts +1 -1
  93. package/dist/{InputProps-B1Xod4wm.d.mts → InputProps-lag6BM5h.d.mts} +2 -2
  94. package/dist/InputProps.d.mts +1 -1
  95. package/dist/IntegerValueControl.d.mts +1 -1
  96. package/dist/Link.d.mts +1 -1
  97. package/dist/{ListBox-CFBhILRy.mjs → ListBox-D4j4LCT3.mjs} +2 -2
  98. package/dist/{ListBox-CFBhILRy.mjs.map → ListBox-D4j4LCT3.mjs.map} +1 -1
  99. package/dist/{ListBox-D-8iwYVj.d.mts → ListBox-nYAdYVQx.d.mts} +3 -3
  100. package/dist/ListBox.d.mts +1 -1
  101. package/dist/ListBoxField.d.mts +3 -2
  102. package/dist/LoadingShimmer.d.mts +1 -1
  103. package/dist/{LogicRow-CgPds2tq.d.mts → LogicRow-k4ZPtjN0.d.mts} +3 -3
  104. package/dist/LogicRow.d.mts +1 -1
  105. package/dist/MaskedInput.d.mts +2 -2
  106. package/dist/{Menu-CSwzFqdv.d.mts → Menu-Bu7-KBhp.d.mts} +3 -3
  107. package/dist/Menu.d.mts +1 -1
  108. package/dist/Modal-BN0K8QXi.mjs +258 -0
  109. package/dist/Modal-BN0K8QXi.mjs.map +1 -0
  110. package/dist/Modal-Dwq-QBw_.d.mts +145 -0
  111. package/dist/Modal.d.mts +2 -145
  112. package/dist/{PageHeader-DJOlcAiW.mjs → PageHeader-BTtm3hRQ.mjs} +1 -1
  113. package/dist/{PageHeader-DJOlcAiW.mjs.map → PageHeader-BTtm3hRQ.mjs.map} +1 -1
  114. package/dist/PageHeader.d.mts +1 -1
  115. package/dist/PageLayoutFrame.d.mts +28 -0
  116. package/dist/{PageSelector-BMz2Q4P6.d.mts → PageSelector-CeGC84N1.d.mts} +3 -3
  117. package/dist/PageSelector.d.mts +1 -1
  118. package/dist/{Pagination-B1u203DE.mjs → Pagination-CPd4mSnw.mjs} +3 -3
  119. package/dist/{Pagination-B1u203DE.mjs.map → Pagination-CPd4mSnw.mjs.map} +1 -1
  120. package/dist/{Pagination-ne9hnVoe.d.mts → Pagination-H-CcXrCD.d.mts} +2 -2
  121. package/dist/Pagination.d.mts +1 -1
  122. package/dist/{PillShell-ChTB_koa.d.mts → PillShell-BQC-k7Rl.d.mts} +2 -2
  123. package/dist/PillShell.d.mts +1 -1
  124. package/dist/ProgressIndicator-3A4Aqci6.mjs +188 -0
  125. package/dist/ProgressIndicator-3A4Aqci6.mjs.map +1 -0
  126. package/dist/ProgressIndicator-DbOLOaxJ.d.mts +66 -0
  127. package/dist/ProgressIndicator.d.mts +2 -66
  128. package/dist/{PseudoClassProps-CdRF3QNn.d.mts → PseudoClassProps-CHtBNv8B.d.mts} +1 -1
  129. package/dist/PseudoClassProps.d.mts +1 -1
  130. package/dist/{Radio-Ds1pODKw.mjs → Radio-Cxt89w8s.mjs} +2 -2
  131. package/dist/{Radio-Ds1pODKw.mjs.map → Radio-Cxt89w8s.mjs.map} +1 -1
  132. package/dist/{RadioGroup-HIC9V2hO.mjs → RadioGroup-B6Cg1kdm.mjs} +2 -2
  133. package/dist/{RadioGroup-HIC9V2hO.mjs.map → RadioGroup-B6Cg1kdm.mjs.map} +1 -1
  134. package/dist/{RadioGroup-CxL6LW4q.d.mts → RadioGroup-BjrfVPZQ.d.mts} +1 -1
  135. package/dist/RadioGroup.d.mts +1 -1
  136. package/dist/{RangeCalendar-B7TwRJbg.d.mts → RangeCalendar-CPnLaM-J.d.mts} +2 -2
  137. package/dist/RangeCalendar.d.mts +1 -1
  138. package/dist/RangeCalendarPresets.d.mts +1 -1
  139. package/dist/{RouterContext-B7N12wkK.d.mts → RouterContext-CbvHIl4K.d.mts} +2 -2
  140. package/dist/RouterContext.d.mts +1 -1
  141. package/dist/{RouterLink-Bq36EGjc.d.mts → RouterLink-v9AG9fYa.d.mts} +2 -2
  142. package/dist/RouterLink.d.mts +1 -1
  143. package/dist/RuleEditorFields.d.mts +2 -2
  144. package/dist/RulesPill.d.mts +1 -1
  145. package/dist/{SearchInput-D69WxMNq.d.mts → SearchInput-CIjwmT8R.d.mts} +2 -2
  146. package/dist/SearchInput.d.mts +1 -1
  147. package/dist/SectionHeading.d.mts +1 -1
  148. package/dist/{SegmentedControl-OHrfJiw0.mjs → SegmentedControl-BcwfLuHA.mjs} +12 -5
  149. package/dist/SegmentedControl-BcwfLuHA.mjs.map +1 -0
  150. package/dist/{SegmentedControl-vCnGsdXo.d.mts → SegmentedControl-Crr_aHAs.d.mts} +2 -1
  151. package/dist/SegmentedControl.d.mts +1 -1
  152. package/dist/{Select-DE7uv9C8.mjs → Select-BstCz8P1.mjs} +2 -2
  153. package/dist/{Select-DE7uv9C8.mjs.map → Select-BstCz8P1.mjs.map} +1 -1
  154. package/dist/{Select-sQb4dQwT.d.mts → Select-CJQeuCiF.d.mts} +3 -3
  155. package/dist/Select.d.mts +1 -1
  156. package/dist/SingleColumnLayout.d.mts +16 -0
  157. package/dist/SplitColumnLayout.d.mts +19 -0
  158. package/dist/{Stack-8KGPQp0u.d.mts → Stack-RVptVTVi.d.mts} +1 -1
  159. package/dist/Stack.d.mts +1 -1
  160. package/dist/{Sticker-Bf9rhSkv.d.mts → Sticker-BVX38LKi.d.mts} +4 -4
  161. package/dist/Sticker.d.mts +1 -1
  162. package/dist/StringValueControl.d.mts +1 -1
  163. package/dist/Tab.d.mts +1 -1
  164. package/dist/{Table-BefytM6w.d.mts → Table-DFiSWroB.d.mts} +1 -1
  165. package/dist/Table.d.mts +1 -1
  166. package/dist/{TableBody-BZ34-_wV.d.mts → TableBody-Di9JYHDN.d.mts} +1 -1
  167. package/dist/TableBody.d.mts +1 -1
  168. package/dist/{TableBox-NP6bhtKb.mjs → TableBox-DAQ3Plqx.mjs} +3 -3
  169. package/dist/{TableBox-NP6bhtKb.mjs.map → TableBox-DAQ3Plqx.mjs.map} +1 -1
  170. package/dist/TableBox.d.mts +2 -2
  171. package/dist/{TableBoxCell-CHGw9HVj.d.mts → TableBoxCell-D6h1X5ph.d.mts} +6 -6
  172. package/dist/TableBoxCell.d.mts +1 -1
  173. package/dist/TableBoxField.d.mts +4 -3
  174. package/dist/{TableBoxRow-BljsXKrL.d.mts → TableBoxRow-C6l6J4mq.d.mts} +3 -3
  175. package/dist/TableBoxRow.d.mts +1 -1
  176. package/dist/{TableBoxRowActions-h6HNEv9F.d.mts → TableBoxRowActions-CsLN1b1J.d.mts} +2 -2
  177. package/dist/TableBoxRowActions.d.mts +1 -1
  178. package/dist/{TableCell-DorRxyke.d.mts → TableCell-WSDXw79Q.d.mts} +2 -2
  179. package/dist/TableCell.d.mts +1 -1
  180. package/dist/{TableControls-CYTpBlQN.mjs → TableControls-BxuPCUQS.mjs} +19 -11
  181. package/dist/TableControls-BxuPCUQS.mjs.map +1 -0
  182. package/dist/{TableControls-BtGFiZeD.d.mts → TableControls-cswMgBAr.d.mts} +3 -3
  183. package/dist/TableControls.d.mts +1 -1
  184. package/dist/{TableControlsContext-C3DYeUmB.d.mts → TableControlsContext-Cbh8wear.d.mts} +2 -2
  185. package/dist/TableControlsContext.d.mts +1 -1
  186. package/dist/{TableHead-B0Fdldgw.d.mts → TableHead-CkL1fEg2.d.mts} +1 -1
  187. package/dist/TableHead.d.mts +1 -1
  188. package/dist/{TableHeaderCell-C_7X8QAT.d.mts → TableHeaderCell-K9Ry6YqO.d.mts} +1 -1
  189. package/dist/TableHeaderCell.d.mts +1 -1
  190. package/dist/{TableLayout-CXVVzq0e.d.mts → TableLayout-CYRGIFEl.d.mts} +1 -1
  191. package/dist/TableLayout.d.mts +1 -1
  192. package/dist/{TableRow-Dr61XJNw.d.mts → TableRow-DMHlo1eg.d.mts} +2 -2
  193. package/dist/TableRow.d.mts +1 -1
  194. package/dist/TableTH.d.mts +1 -1
  195. package/dist/{TableViewConfigurationDropdown-CCtwcB3I.d.mts → TableViewConfigurationDropdown-BRbOcVNc.d.mts} +2 -2
  196. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  197. package/dist/{Text-DD_W_ixb.d.mts → Text-B69gp3X_.d.mts} +3 -3
  198. package/dist/Text.d.mts +1 -1
  199. package/dist/{TextArea-8TuVvmvj.mjs → TextArea-CcxltuBh.mjs} +2 -2
  200. package/dist/{TextArea-8TuVvmvj.mjs.map → TextArea-CcxltuBh.mjs.map} +1 -1
  201. package/dist/{TextArea-DOofaXJi.d.mts → TextArea-Cjsdl07-.d.mts} +2 -2
  202. package/dist/TextArea.d.mts +1 -1
  203. package/dist/{TextUnderlineTooltip-BPLKU9wu.d.mts → TextUnderlineTooltip-DDzKLCeX.d.mts} +2 -2
  204. package/dist/TextUnderlineTooltip.d.mts +1 -1
  205. package/dist/Tile.d.mts +1 -1
  206. package/dist/Toast.d.mts +1 -1
  207. package/dist/{Toggle-2nrUX591.d.mts → Toggle-B5sSdb_q.d.mts} +3 -1
  208. package/dist/{Toggle-Dcn2Rqgm.mjs → Toggle-DWbJOwf3.mjs} +4 -3
  209. package/dist/Toggle-DWbJOwf3.mjs.map +1 -0
  210. package/dist/Toggle.d.mts +1 -1
  211. package/dist/{Tooltip-Cnqf1-tx.d.mts → Tooltip-x1pFf-Mj.d.mts} +2 -2
  212. package/dist/Tooltip.d.mts +1 -1
  213. package/dist/{TruncatedText-g2T5HlqX.d.mts → TruncatedText-BE8FuEQm.d.mts} +1 -1
  214. package/dist/WizardModal.d.mts +41 -0
  215. package/dist/accordionTitleTypography-BYhjSN9t.d.mts +17 -0
  216. package/dist/accordionTitleTypography.d.mts +2 -0
  217. package/dist/{codec-CoX6LfOY.d.mts → codec-BcgsGCHE.d.mts} +2 -2
  218. package/dist/codec.d.mts +1 -1
  219. package/dist/{color-Bt0Lv1e3.d.mts → color-LH7zKfKo.d.mts} +2 -2
  220. package/dist/components/Accordion/index.d.mts +4 -0
  221. package/dist/components/Accordion/index.mjs +330 -0
  222. package/dist/components/Accordion/index.mjs.map +1 -0
  223. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  224. package/dist/components/Button/index.d.mts +2 -2
  225. package/dist/components/ButtonGroup/index.mjs +1 -1
  226. package/dist/components/Card/index.d.mts +2 -2
  227. package/dist/components/CardV2/index.d.mts +1 -1
  228. package/dist/components/Checkbox/index.d.mts +1 -1
  229. package/dist/components/Checkbox/index.mjs +1 -1
  230. package/dist/components/Combobox/index.d.mts +2 -2
  231. package/dist/components/Combobox/index.mjs +1 -1
  232. package/dist/components/DataTable/TableControls/index.d.mts +19 -19
  233. package/dist/components/DataTable/TableControls/index.mjs +1 -1
  234. package/dist/components/DataTable/index.mjs +3 -3
  235. package/dist/components/DataTable/index.mjs.map +1 -1
  236. package/dist/components/DataTable/types.d.mts +2 -2
  237. package/dist/components/DatePicker/index.d.mts +5 -5
  238. package/dist/components/DatePicker/index.mjs +1 -1
  239. package/dist/components/DropdownMenu/index.d.mts +1 -1
  240. package/dist/components/FormControl/index.d.mts +2 -2
  241. package/dist/components/FormControl/index.mjs +2 -2
  242. package/dist/components/FormField/index.d.mts +1 -1
  243. package/dist/components/FormField/index.mjs +1 -1
  244. package/dist/components/Grid/index.d.mts +2 -2
  245. package/dist/components/Grid/index.mjs +2 -85
  246. package/dist/components/ImageTile/index.mjs +1 -1
  247. package/dist/components/Input/index.d.mts +1 -1
  248. package/dist/components/Input/index.mjs +1 -1
  249. package/dist/components/Link/index.mjs.map +1 -1
  250. package/dist/components/ListBox/index.d.mts +3 -3
  251. package/dist/components/ListBox/index.mjs +1 -1
  252. package/dist/components/MaskedInput/index.mjs +1 -1
  253. package/dist/components/Menu/index.d.mts +1 -1
  254. package/dist/components/Modal/index.d.mts +1 -1
  255. package/dist/components/Modal/index.mjs +1 -257
  256. package/dist/components/PageHeader/index.mjs +1 -1
  257. package/dist/components/Pagination/index.d.mts +3 -3
  258. package/dist/components/Pagination/index.mjs +1 -1
  259. package/dist/components/ProgressIndicator/index.d.mts +2 -2
  260. package/dist/components/ProgressIndicator/index.mjs +1 -187
  261. package/dist/components/Radio/index.mjs +1 -1
  262. package/dist/components/RadioGroup/index.d.mts +1 -1
  263. package/dist/components/RadioGroup/index.mjs +1 -1
  264. package/dist/components/SegmentedControl/index.d.mts +1 -1
  265. package/dist/components/SegmentedControl/index.mjs +1 -1
  266. package/dist/components/Select/index.d.mts +1 -1
  267. package/dist/components/Select/index.mjs +1 -1
  268. package/dist/components/Stack/index.d.mts +1 -1
  269. package/dist/components/Sticker/index.d.mts +1 -1
  270. package/dist/components/Table/index.d.mts +8 -8
  271. package/dist/components/TableBox/index.d.mts +2 -2
  272. package/dist/components/TableBox/index.mjs +1 -1
  273. package/dist/components/Text/index.d.mts +1 -1
  274. package/dist/components/TextArea/index.d.mts +1 -1
  275. package/dist/components/TextArea/index.mjs +1 -1
  276. package/dist/components/Toggle/index.d.mts +1 -1
  277. package/dist/components/Toggle/index.mjs +1 -1
  278. package/dist/components/Tooltip/index.d.mts +3 -3
  279. package/dist/components/WizardModal/index.d.mts +2 -0
  280. package/dist/components/WizardModal/index.mjs +106 -0
  281. package/dist/components/WizardModal/index.mjs.map +1 -0
  282. package/dist/compound-expression.d.mts +1 -1
  283. package/dist/{constants-D8bzZ-7B.d.mts → constants-BpwnTzcv.d.mts} +1 -1
  284. package/dist/constants.d.mts +1 -1
  285. package/dist/{createPath-BDYRvl57.d.mts → createPath-Bst12Uxr.d.mts} +2 -2
  286. package/dist/createPath.d.mts +1 -1
  287. package/dist/{date-range-rule-value-jZAHuxZJ.d.mts → date-range-rule-value-C4ir2Y8W.d.mts} +2 -2
  288. package/dist/date-range-rule-value.d.mts +1 -1
  289. package/dist/{date-rule-intent-CC1LdkE7.d.mts → date-rule-intent-gKmuxMVA.d.mts} +3 -3
  290. package/dist/date-rule-intent.d.mts +1 -1
  291. package/dist/display.d.mts +1 -1
  292. package/dist/fieldPickerOptions.d.mts +2 -2
  293. package/dist/{filter-size-context-BGczB5R9.d.mts → filter-size-context-BOpH6pBm.d.mts} +2 -2
  294. package/dist/filter-size-context.d.mts +1 -1
  295. package/dist/helpers.d.mts +1 -1
  296. package/dist/{index-BZmGEbsA.d.mts → index-BXdrzR0c.d.mts} +3 -3
  297. package/dist/{index-DalP_w0c.d.mts → index-C2-PBfN3.d.mts} +2 -2
  298. package/dist/{index-BRKXhLGa.d.mts → index-c0aXmZV9.d.mts} +2 -2
  299. package/dist/index-dhjtMp5F.d.mts +1 -0
  300. package/dist/index-xmouCHX9.d.mts +1 -0
  301. package/dist/index.d.mts +1 -1
  302. package/dist/index2.d.mts +1 -1
  303. package/dist/index3.d.mts +3 -3
  304. package/dist/index4.d.mts +1 -1
  305. package/dist/index5.d.mts +14 -14
  306. package/dist/{input-DCJivcWf.d.mts → input-DVJhMlxU.d.mts} +3 -3
  307. package/dist/inputFields.d.mts +14 -12
  308. package/dist/{jsonSchema-c_EfAj8y.d.mts → jsonSchema-DmdZYC4a.d.mts} +35 -11
  309. package/dist/lib/PDSProvider.d.mts +2 -2
  310. package/dist/lib/TruncatedText.d.mts +1 -1
  311. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  312. package/dist/lib/color.d.mts +1 -1
  313. package/dist/lib/date-filter/index.d.mts +2 -2
  314. package/dist/lib/jsonSchema.d.mts +2 -2
  315. package/dist/lib/jsonSchema.mjs +10 -10
  316. package/dist/lib/jsonSchema.mjs.map +1 -1
  317. package/dist/lib/message.d.mts +1 -1
  318. package/dist/lib/methodChain.d.mts +1 -1
  319. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  320. package/dist/lib/pseudoClass.d.mts +1 -1
  321. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  322. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  323. package/dist/lib/router/index.d.mts +5 -5
  324. package/dist/lib/semanticColor.d.mts +1 -1
  325. package/dist/{message-CjIHdhX1.d.mts → message-CKSLIKF0.d.mts} +1 -1
  326. package/dist/mixins/focus.d.mts +1 -1
  327. package/dist/mixins/hoverable.d.mts +2 -2
  328. package/dist/mixins/input.d.mts +1 -1
  329. package/dist/mixins/menuItem.d.mts +2 -2
  330. package/dist/mixins/text.d.mts +1 -1
  331. package/dist/{operators-x_ZENhrT.d.mts → operators-1_jTgYRX.d.mts} +2 -2
  332. package/dist/operators.d.mts +1 -1
  333. package/dist/{palette-qgPRWgUN.d.mts → palette-CMOEyNPH.d.mts} +3 -3
  334. package/dist/palette.d.mts +1 -1
  335. package/dist/patterns/LayoutLoadingShimmer/index.mjs +1 -1
  336. package/dist/patterns/PageLayout/index.d.mts +4 -1
  337. package/dist/patterns/PageLayout/index.mjs +99 -2
  338. package/dist/patterns/PageLayout/index.mjs.map +1 -1
  339. package/dist/reactRouterFallback.d.mts +1 -1
  340. package/dist/relative-date-label.d.mts +1 -1
  341. package/dist/scrollExpandedItemIntoView.d.mts +12 -0
  342. package/dist/{semantic-DUctmpu_.d.mts → semantic-BXwNUd4a.d.mts} +1 -1
  343. package/dist/{semanticColor-IAhXS17y.d.mts → semanticColor-Cru2gSys.d.mts} +3 -3
  344. package/dist/{text-DjTGRUM1.d.mts → text-CxIup7HJ.d.mts} +1 -1
  345. package/dist/{theme-DKiszVRN.d.mts → theme-CW6qlONZ.d.mts} +3 -3
  346. package/dist/theme.d.mts +1 -1
  347. package/dist/tone.d.mts +3 -3
  348. package/dist/{types-gnF3MPfk2.d.mts → types-3iEDsymE.d.mts} +2 -2
  349. package/dist/{types-CuQSgl1F.d.mts → types-B-stjYNc.d.mts} +1 -1
  350. package/dist/{types-N8PYonjD.d.mts → types-BEjWTkZV.d.mts} +2 -2
  351. package/dist/{types-CcZbBH0e.d.mts → types-ChkiGhjQ.d.mts} +1 -1
  352. package/dist/{types-D8rWSj3z.d.mts → types-YojUycQK.d.mts} +1 -1
  353. package/dist/{types-RWjW1d9I.d.mts → types-g-aqbnek.d.mts} +1 -1
  354. package/dist/types.d.mts +1 -1
  355. package/dist/types2.d.mts +1 -1
  356. package/dist/types3.d.mts +1 -1
  357. package/dist/types4.d.mts +1 -1
  358. package/dist/types5.d.mts +1 -1
  359. package/dist/types6.d.mts +1 -1
  360. package/dist/{url-state-C2gl07_y.d.mts → url-state-CHK2N2fA.d.mts} +2 -2
  361. package/dist/url-state.d.mts +1 -1
  362. package/dist/useComboboxFooterAction.d.mts +1 -1
  363. package/dist/{useFilterStateV2-BQYcAdKR.d.mts → useFilterStateV2-B26e5iUx.d.mts} +3 -3
  364. package/dist/useFilterStateV2.d.mts +1 -1
  365. package/dist/{useFormField-DsvC5dOb.mjs → useFormField-BzhMbl5P.mjs} +2 -1
  366. package/dist/useFormField-BzhMbl5P.mjs.map +1 -0
  367. package/dist/{useFormField-DDbo-ExT.d.mts → useFormField-DPFClB5h.d.mts} +4 -2
  368. package/dist/useFormField.d.mts +1 -1
  369. package/dist/{useLocationPathname-K2N4fw8j.d.mts → useLocationPathname-CnRd_Rzn.d.mts} +1 -1
  370. package/dist/useLocationPathname.d.mts +1 -1
  371. package/dist/{useTableBoxDragAndDrop-CbbH3pMK.d.mts → useTableBoxDragAndDrop-DWlG5vhl.d.mts} +1 -1
  372. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  373. package/dist/useTruncation.d.mts +1 -1
  374. package/dist/{utilities-D0EhDri-.d.mts → utilities-BcGuP8Fd.d.mts} +1 -1
  375. package/dist/utilities.d.mts +1 -1
  376. package/dist/utils/testing.d.mts +1 -1
  377. package/dist/utils/testing.mjs.map +1 -1
  378. package/dist/utils.d.mts +1 -1
  379. package/dist/{validation-CMtfUd-R.d.mts → validation-B-Om4ANo.d.mts} +3 -3
  380. package/dist/validation.d.mts +1 -1
  381. package/dist/{value-control-resolver-Au9JNS5z.d.mts → value-control-resolver-BiyhB8zt.d.mts} +2 -2
  382. package/dist/value-control-resolver.d.mts +1 -1
  383. package/dist/variables/effect.d.mts +1 -1
  384. package/dist/variables/semantic.d.mts +1 -1
  385. package/llms.txt +10 -1
  386. package/package.json +5 -3
  387. package/skills/ui-authoring/COMPONENTS.md +5 -1
  388. package/skills/ui-authoring/PATTERNS.md +74 -115
  389. package/dist/Combobox-1M6EwVmq.mjs.map +0 -1
  390. package/dist/FormControl-BEk4F1EV.mjs.map +0 -1
  391. package/dist/FormField-ByT0avVx.mjs.map +0 -1
  392. package/dist/SegmentedControl-OHrfJiw0.mjs.map +0 -1
  393. package/dist/TableControls-CYTpBlQN.mjs.map +0 -1
  394. package/dist/Toggle-Dcn2Rqgm.mjs.map +0 -1
  395. package/dist/components/Grid/index.mjs.map +0 -1
  396. package/dist/components/Modal/index.mjs.map +0 -1
  397. package/dist/components/ProgressIndicator/index.mjs.map +0 -1
  398. package/dist/fieldSchemaTypes-BVYSm74B.d.mts +0 -39
  399. package/dist/lib/fieldSchemaTypes.d.mts +0 -2
  400. package/dist/lib/fieldSchemaTypes.mjs +0 -41
  401. package/dist/lib/fieldSchemaTypes.mjs.map +0 -1
  402. package/dist/useFormField-DsvC5dOb.mjs.map +0 -1
  403. /package/dist/{index-B33elXxm.d.mts → index-BCh-G39Y2.d.mts} +0 -0
  404. /package/dist/{index-B_BBnMou.d.mts → index-BMBcfD_R.d.mts} +0 -0
  405. /package/dist/{index-BrGZHEgX.d.mts → index-BOn0AAue.d.mts} +0 -0
  406. /package/dist/{index-BwAfCVZH2.d.mts → index-BcsXXrHq.d.mts} +0 -0
  407. /package/dist/{index-C6HcjJiY.d.mts → index-BwFl_eS0.d.mts} +0 -0
  408. /package/dist/{index-CX869wwk.d.mts → index-C-lwXyQ6.d.mts} +0 -0
  409. /package/dist/{index-CjDodOH2.d.mts → index-C1o2TFfS.d.mts} +0 -0
  410. /package/dist/{index-CsuikFeJ.d.mts → index-C3kE54DD.d.mts} +0 -0
  411. /package/dist/{index-CzItj62a.d.mts → index-CREkvfw9.d.mts} +0 -0
  412. /package/dist/{index-D13oYj4_.d.mts → index-CfCYi7PF.d.mts} +0 -0
  413. /package/dist/{index-D4DUvwPf.d.mts → index-DCTy4zg0.d.mts} +0 -0
  414. /package/dist/{index-DMRtRo7y.d.mts → index-DWIh4oP5.d.mts} +0 -0
  415. /package/dist/{index-DXJd7-2Z.d.mts → index-De7MV8-j.d.mts} +0 -0
  416. /package/dist/{index-DZlqSwCF.d.mts → index-DgJfEygr.d.mts} +0 -0
  417. /package/dist/{index-DeVKzGce.d.mts → index-DrK1_jKY.d.mts} +0 -0
  418. /package/dist/{index-Deol7ZWO.d.mts → index-Es5nKSSL.d.mts} +0 -0
  419. /package/dist/{index-DztUdPP_.d.mts → index-Qwqzz3XM.d.mts} +0 -0
  420. /package/dist/{index-Rvd9MEUQ.d.mts → index-Wc1llEvP.d.mts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@persona/design-system",
3
- "version": "0.7.1",
3
+ "version": "0.7.2",
4
4
  "description": "React components for Persona UI",
5
5
  "keywords": [
6
6
  "tanstack-intent"
@@ -18,6 +18,7 @@
18
18
  "types": "./dist/index.d.mts",
19
19
  "exports": {
20
20
  ".": "./dist/index.mjs",
21
+ "./components/Accordion": "./dist/components/Accordion/index.mjs",
21
22
  "./components/Attribute": "./dist/components/Attribute/index.mjs",
22
23
  "./components/Badge": "./dist/components/Badge/index.mjs",
23
24
  "./components/Banner": "./dist/components/Banner/index.mjs",
@@ -85,6 +86,7 @@
85
86
  "./components/Toast": "./dist/components/Toast/index.mjs",
86
87
  "./components/Toggle": "./dist/components/Toggle/index.mjs",
87
88
  "./components/Tooltip": "./dist/components/Tooltip/index.mjs",
89
+ "./components/WizardModal": "./dist/components/WizardModal/index.mjs",
88
90
  "./lib/color": "./dist/lib/color.mjs",
89
91
  "./lib/comboboxHelper": "./dist/lib/comboboxHelper.mjs",
90
92
  "./lib/ConfigContext": "./dist/lib/ConfigContext.mjs",
@@ -94,7 +96,6 @@
94
96
  "./lib/embeddedSurfaceProtocol": "./dist/lib/embeddedSurfaceProtocol.mjs",
95
97
  "./lib/embeddedSurfaceRegistry": "./dist/lib/embeddedSurfaceRegistry.mjs",
96
98
  "./lib/errorReporter": "./dist/lib/errorReporter.mjs",
97
- "./lib/fieldSchemaTypes": "./dist/lib/fieldSchemaTypes.mjs",
98
99
  "./lib/GlobalStyles": "./dist/lib/GlobalStyles.mjs",
99
100
  "./lib/HeadlessAriaButton": "./dist/lib/HeadlessAriaButton.mjs",
100
101
  "./lib/jsonSchema": "./dist/lib/jsonSchema.mjs",
@@ -259,6 +260,7 @@
259
260
  "publishConfig": {
260
261
  "exports": {
261
262
  ".": "./dist/index.mjs",
263
+ "./components/Accordion": "./dist/components/Accordion/index.mjs",
262
264
  "./components/Attribute": "./dist/components/Attribute/index.mjs",
263
265
  "./components/Badge": "./dist/components/Badge/index.mjs",
264
266
  "./components/Banner": "./dist/components/Banner/index.mjs",
@@ -326,6 +328,7 @@
326
328
  "./components/Toast": "./dist/components/Toast/index.mjs",
327
329
  "./components/Toggle": "./dist/components/Toggle/index.mjs",
328
330
  "./components/Tooltip": "./dist/components/Tooltip/index.mjs",
331
+ "./components/WizardModal": "./dist/components/WizardModal/index.mjs",
329
332
  "./lib/color": "./dist/lib/color.mjs",
330
333
  "./lib/comboboxHelper": "./dist/lib/comboboxHelper.mjs",
331
334
  "./lib/ConfigContext": "./dist/lib/ConfigContext.mjs",
@@ -335,7 +338,6 @@
335
338
  "./lib/embeddedSurfaceProtocol": "./dist/lib/embeddedSurfaceProtocol.mjs",
336
339
  "./lib/embeddedSurfaceRegistry": "./dist/lib/embeddedSurfaceRegistry.mjs",
337
340
  "./lib/errorReporter": "./dist/lib/errorReporter.mjs",
338
- "./lib/fieldSchemaTypes": "./dist/lib/fieldSchemaTypes.mjs",
339
341
  "./lib/GlobalStyles": "./dist/lib/GlobalStyles.mjs",
340
342
  "./lib/HeadlessAriaButton": "./dist/lib/HeadlessAriaButton.mjs",
341
343
  "./lib/jsonSchema": "./dist/lib/jsonSchema.mjs",
@@ -8,6 +8,7 @@ exists. If there is no `.mdx`, use the published type declarations
8
8
 
9
9
  | Component | Use for | Import |
10
10
  | --------- | ------- | ------ |
11
+ | `Accordion` | An accordion UI component is used to organize and hide large amounts of content in a vertical, expandable stack that reduces scrolling on a webpage or in a container | `@persona/design-system/components/Accordion` |
11
12
  | `Attribute` | Labeling a data value (`<dl>`/`<dt>`/`<dd>`). Use `AttributeGrid` for a grid of them | `@persona/design-system/components/Attribute` |
12
13
  | `Badge` | Count badge — a count or notification number | `@persona/design-system/components/Badge` |
13
14
  | `Banner` | Alert / notification — important in-context info, success, warning, or danger. Optionally dismissable | `@persona/design-system/components/Banner` |
@@ -19,7 +20,9 @@ exists. If there is no `.mdx`, use the published type declarations
19
20
  | `Checkbox` | Selecting one or more options from a visible list | `@persona/design-system/components/Checkbox` |
20
21
  | `Combobox` | Picking from a long list that needs search (single or multi). Use `RadioGroup` when every choice should stay visible (one); `Checkbox` when every choice should stay visible (several); `Select` for a short closed list with no search | `@persona/design-system/components/Combobox` |
21
22
  | `ConfigFormGroup` | Form fields — spacing a group of config fields and setting `configField` via context. Pair with `TextField` / `TextAreaField` | `@persona/design-system/components/ConfigFormGroup` |
22
- | `Container`, `Section`, `Backdrop` | Page shell | `@persona/design-system/patterns/PageLayout` |
23
+ | `Container`, `Section`, `Backdrop` | Existing page shell. New pages use `SingleColumnLayout` or `SplitColumnLayout` | `@persona/design-system/patterns/PageLayout` |
24
+ | `SingleColumnLayout` | One page column, with optional tabs and a page notice. `width="wide"` uses the fluid grid | `@persona/design-system/patterns/PageLayout` |
25
+ | `SplitColumnLayout` | An 8:4 main and aside page. Same optional regions as `SingleColumnLayout`. Stacks main then aside below 768px | `@persona/design-system/patterns/PageLayout` |
23
26
  | `DataTable` | Data table — browsing tabular data with filtering, bulk actions, search, pagination, and sorting | `@persona/design-system/components/DataTable` |
24
27
  | `DatePicker` | Picking a date or date range from a calendar | `@persona/design-system/components/DatePicker` |
25
28
  | `DropdownButton` | Opening a menu of related actions from a button | `@persona/design-system/components/DropdownButton` |
@@ -69,6 +72,7 @@ exists. If there is no `.mdx`, use the published type declarations
69
72
  | `Toast` | Confirming a system event or action result that can auto-dismiss | `@persona/design-system/components/Toast` |
70
73
  | `Toggle` | Turning a setting on or off with no extra confirmation | `@persona/design-system/components/Toggle` |
71
74
  | `Tooltip` | Standalone tooltip — explaining an icon or control on hover or focus | `@persona/design-system/components/Tooltip` |
75
+ | `WizardModal` | Multi-step task behind a page overlay; Next/Confirm run `onProceed` | `@persona/design-system/components/WizardModal` |
72
76
 
73
77
 
74
78
  ## Testing
@@ -8,124 +8,102 @@ Which pattern to use, and for what. Patterns with a dedicated doc link to
8
8
 
9
9
  | Pattern | Use for |
10
10
  | ------- | ------- |
11
- | Forms | A settings or config screen where fields need labels, helper text, and errors. Unlabeled controls (search, toolbars) stay as `Input` |
11
+ | [Forms](../../patterns/Forms/Forms.mdx) | Labeled fields in a `Modal`, `RightPanel`, or page. Unlabeled controls (search, toolbars) stay as `Input` |
12
12
  | Stack / HStack | A heading above content, a cancel/save pair, a title next to an add button, or a wrapping row of tags |
13
13
  | EmptyStates | A list, table, or card has no items yet and you want to invite adding one |
14
14
  | Charting | Use `recharts` for all chart components. Always import colors from `ChartingColors` — never hardcode hex values. |
15
15
  | Indicators | A record’s open, pending, completed, or failed state next to other content. An in-page notice the user shouldn’t miss (success, warning, error). Use `Toast` if it can auto-dismiss |
16
- | PageLayout | Page shell |
16
+ | [SingleColumnLayout](../../patterns/PageLayout/SingleColumnLayout.mdx) | One page column under `PageHeader`, with optional tabs and a page notice. `width="wide"` uses the fluid grid |
17
+ | [SplitColumnLayout](../../patterns/PageLayout/SplitColumnLayout.mdx) | An 8:4 main and aside page. Same optional regions. Stacks main then aside below 768px |
17
18
  | LayoutLoadingSpinner | Centered 120px loading ring that fills its container. Use as the loading state for a page or embedded app when no layout-specific shimmer exists. |
18
19
  | LayoutLoadingShimmer | Filling space while content loads |
19
20
  | [Panels](../../patterns/Panels/Panels.mdx) | Use `RightPanel` when the page should stay visible. Use `Modal` when the task needs full attention. Never a custom drawer. |
20
21
 
21
22
 
22
- ## Forms
23
+ ## Page layouts
23
24
 
24
- ### Form Configuration
25
+ New pages render `PageHeader`, then `SingleColumnLayout` or `SplitColumnLayout`. Do not wrap the
26
+ template in `Container` or `Section`.
25
27
 
26
28
  ```tsx
27
- import ConfigFormGroup from '@persona/design-system/components/ConfigFormGroup';
28
- import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
29
+ import Header from '@persona/design-system/components/PageHeader';
30
+ import { SingleColumnLayout, SplitColumnLayout } from '@persona/design-system/patterns/PageLayout';
29
31
 
30
- const [config, setConfig] = useState({ name: '', description: '', prompt: '' });
32
+ <Header title="Home" />
33
+ <SingleColumnLayout main={<PageContent />} />
31
34
 
32
- <ConfigFormGroup>
33
- <TextField
34
- label="Name"
35
- value={config.name}
36
- onChange={(e) => setConfig({ ...config, name: e.target.value })}
37
- configField={true} // helperText becomes a tooltip
38
- helperText="Unique identifier"
39
- errorText={errors.name}
40
- rightActions={<Button size="sm" variant="basic">Generate</Button>}
41
- />
42
- <TextAreaField
43
- label="Prompt"
44
- value={config.prompt}
45
- onChange={(e) => setConfig({ ...config, prompt: e.target.value })}
46
- configField={true}
47
- warningText={warnings.prompt}
48
- />
49
- </ConfigFormGroup>
35
+ <SplitColumnLayout main={<MainContent />} aside={<AsideContent />} />
50
36
  ```
51
37
 
52
- - `configField={true}` → helper text becomes a tooltip instead of inline text
53
- - `ConfigFormGroup` provides consistent 20px spacing between fields
54
- - Use controlled inputs; clear `errorText` on change via `updateField` in form state hook
38
+ - `width="wide"` fills the fluid grid. The default `standard` width uses the fixed grid.
39
+ - `tabs` and `pageNotice` are optional and scroll with the page. Omit a region and its gap is omitted too.
40
+ - `SplitColumnLayout` is an 8:4 main/aside split, stacking main then aside below 768px.
55
41
 
56
- ### Form Pattern
42
+ ## Forms
57
43
 
58
- **Always use** `ConfigFormGroup` **+** `TextField` **/** `TextAreaField` **— never hand-roll** `styled.input` **or**
59
- `styled.label`**.** For a tooltip on a standalone label (not `helperText`), wrap the `Label` in
60
- `TextUnderlineTooltip` — see Tooltip on Labels.
44
+ Follow [Forms.mdx](../../patterns/Forms/Forms.mdx). Never hand-roll `styled.input` or
45
+ `styled.label`. Compose `FormField` helpers inside an existing surface (`Modal`, `RightPanel`, or a
46
+ page with `PageHeader`); do not invent a Form component.
61
47
 
62
- ```tsx
63
- import ConfigFormGroup from '@persona/design-system/components/ConfigFormGroup';
64
- import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
65
- import Select, { Option } from '@persona/design-system/components/Select';
66
- import { Label } from '@persona/design-system/components/Text';
67
- import Stack from '@persona/design-system/components/Stack';
68
- import { Spacing } from '@persona/design-tokens';
48
+ ### Size
69
49
 
70
- <ConfigFormGroup>
71
- <TextField
72
- label="Name"
73
- value={config.name}
74
- onChange={(e) => setConfig({ ...config, name: e.target.value })}
75
- configField={true}
76
- helperText="Unique identifier"
77
- errorText={errors.name}
78
- rightActions={<Button size="sm" variant="basic">Generate</Button>}
79
- />
50
+ Pass `size` only on boxed inputs (`TextField`, `SelectField`, `ComboboxField`, `TextAreaField`).
51
+ Omit it (`md` default) for modals, page forms, and create/edit. Use `size="sm"` only in dense UI:
52
+ editor side panels, configuration forms, filter bars, and `DataTable` cells. Never pass `size` on
53
+ `CheckboxGroupField` or `RadioGroupField`.
80
54
 
81
- <TextAreaField
82
- label="Description"
83
- value={config.description}
84
- onChange={(e) => setConfig({ ...config, description: e.target.value })}
85
- configField={true}
86
- helperText="Short summary shown in listings."
87
- warningText={warnings.prompt}
88
- />
55
+ ### Stacked vs config
89
56
 
90
- <Stack spacing={Spacing[2]}>
91
- <Label size="sm" color="secondary">Enforcement</Label>
92
- <Select
93
- value={config.enforcement}
94
- onChange={(e) => setConfig({ ...config, enforcement: e.target.value })}
95
- >
96
- <Option value="strict">Strict</Option>
97
- <Option value="lenient">Lenient</Option>
98
- <Option value="disabled">Disabled</Option>
99
- </Select>
100
- </Stack>
101
- </ConfigFormGroup>
102
- ```
57
+ Do not mix stacked and inline fields in one group.
103
58
 
59
+ **Stacked** (modal and page forms, radio/checkbox groups): put fields in one wrapping element. Do
60
+ not add `Stack` or `gap` — each field's `Spacing[3]` bottom margin is the gap, and a fragment inside
61
+ `Modal` or `Card` stacks their gap on that margin.
104
62
 
63
+ ```tsx
64
+ import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
105
65
 
106
- ### TextField / TextAreaField props
66
+ <div>
67
+ <TextField label='Name' value={config.name} onChange={...} helperText='Unique identifier' errorText={errors.name} />
68
+ <TextAreaField label='Description' value={config.description} onChange={...} />
69
+ </div>;
70
+ ```
107
71
 
108
- - `label` — field label
109
- - `value` / `onChange` — controlled input
110
- - `helperText` — help text (tooltip if `configField={true}`)
111
- - `errorText` — error message (red)
112
- - `warningText` — warning message (yellow)
113
- - `configField` — boolean, renders helper as tooltip
114
- - `rightActions` — ReactNode for buttons/icons next to label
115
- - `disabled` — boolean
72
+ **Config** (editor experiences where the page stays visible): wrap in `ConfigFormGroup`, which sets
73
+ `configField` for children. `helperText` becomes a label tooltip; `warningText` / `errorText` mark
74
+ the field but do not render under it. `rightActions` sits next to the label.
116
75
 
76
+ ```tsx
77
+ import ConfigFormGroup from '@persona/design-system/components/ConfigFormGroup';
78
+ import { TextField, TextAreaField } from '@persona/design-system/components/FormField';
117
79
 
80
+ <ConfigFormGroup>
81
+ <TextField
82
+ label='Name'
83
+ value={config.name}
84
+ onChange={(e) => updateField('name', e.target.value)}
85
+ rightActions={<Button size='sm' variant='basic'>Generate</Button>}
86
+ />
87
+ <TextAreaField label='Prompt' value={config.prompt} onChange={...} warningText={warnings.prompt} />
88
+ </ConfigFormGroup>;
89
+ ```
118
90
 
119
91
  ### Form state hook
120
92
 
93
+ Clear `errorText` on change via `updateField`.
94
+
121
95
  ```tsx
122
96
  const useFormState = (initialConfig) => {
123
97
  const [config, setConfig] = useState(initialConfig);
124
98
  const [errors, setErrors] = useState({});
125
99
 
126
100
  const updateField = useCallback((field, value) => {
127
- setConfig(prev => ({ ...prev, [field]: value }));
128
- setErrors(prev => { const next = { ...prev }; delete next[field]; return next; });
101
+ setConfig((prev) => ({ ...prev, [field]: value }));
102
+ setErrors((prev) => {
103
+ const next = { ...prev };
104
+ delete next[field];
105
+ return next;
106
+ });
129
107
  }, []);
130
108
 
131
109
  const validate = useCallback(() => {
@@ -139,48 +117,27 @@ const useFormState = (initialConfig) => {
139
117
  };
140
118
  ```
141
119
 
120
+ ### Tooltip on labels
142
121
 
143
-
144
- ### Form with footer buttons
145
-
146
- ```tsx
147
- import Stack from '@persona/design-system/components/Stack';
148
- import { HStack } from '@persona/design-system/components/Stack';
149
-
150
- <Stack spacing={Spacing[5]}>
151
- <ConfigFormGroup>
152
- <TextField label="Name" value={config.name} onChange={...} />
153
- <TextAreaField label="Description" value={config.description} onChange={...} />
154
- </ConfigFormGroup>
155
- <HStack spacing={Spacing[3]} justify="flex-end">
156
- <Button variant="basic" onClick={onCancel}>Cancel</Button>
157
- <Button variant="primary" onClick={handleSave} isPending={isSaving}>Save</Button>
158
- </HStack>
159
- </Stack>
160
- ```
161
-
162
- ### Tooltip on Labels
163
-
164
- **Always use `TextUnderlineTooltip` — never place an info icon next to a label.**
122
+ **Always use `TextUnderlineTooltip` — never place an info icon next to a label.** `iconTrigger` is
123
+ only for standalone icon buttons with no adjacent label text.
165
124
 
166
125
  ```tsx
167
- // ❌ Deprecated: icon trigger next to label
168
- <HStack spacing={Spacing[1]} align='center'>
169
- <Label size='sm' color='secondary'>Review Type</Label>
170
- <Tooltip iconTrigger={<CircleHelpIcon />} side='right'>…</Tooltip>
171
- </HStack>
172
-
173
- // ✅ Correct: dashed underline on the label itself
174
126
  import { TextUnderlineTooltip } from '@persona/design-system/components/Tooltip';
175
127
 
176
128
  <TextUnderlineTooltip tooltip='Explanation text.' side='right'>
177
129
  <Label size='sm' color='secondary'>Review Type</Label>
178
- </TextUnderlineTooltip>
130
+ </TextUnderlineTooltip>;
179
131
  ```
180
132
 
181
- `iconTrigger` is only appropriate for standalone icon buttons with no adjacent label text.
182
-
133
+ ### Choosing a surface
183
134
 
135
+ - `Modal`: create, confirm, or one-shot tasks where losing page context is fine. Actions go in
136
+ `footer`. Not for long config forms (use `WizardModal` or a page) or frequently reopened forms.
137
+ - `RightPanel`: editing the selected item; dense, repeatable forms. No footer prop — right-align
138
+ actions in the body with `HStack`.
139
+ - Page: long or multi-section forms users may leave and return to. `PageHeader` holds actions; put
140
+ field groups in `Card` (`CardV2`).
184
141
 
185
142
  ## Layout
186
143
 
@@ -188,14 +145,16 @@ import { TextUnderlineTooltip } from '@persona/design-system/components/Tooltip'
188
145
 
189
146
  ### Card with collapsible sections
190
147
 
148
+ Stacked field spacing: [Forms](../../patterns/Forms/Forms.mdx).
149
+
191
150
  ```tsx
192
151
  import { Card } from '@persona/design-system/components/CardV2';
193
152
 
194
153
  <Card>
195
154
  <Card.Section heading={{ title: 'Basic Settings' }} collapsible={true} defaultCollapsed={false}>
196
- <ConfigFormGroup>
155
+ <div>
197
156
  <TextField label="Name" value={...} onChange={...} />
198
- </ConfigFormGroup>
157
+ </div>
199
158
  </Card.Section>
200
159
  <Card.Section heading={{ title: 'Advanced' }} collapsible={true}>
201
160
  {/* Advanced fields */}