@persona/design-system 0.9.1 → 0.10.0

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 (586) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +1 -1
  3. package/dist/Accordion.d.mts +1 -1
  4. package/dist/AccordionItem.d.mts +1 -1
  5. package/dist/{Action-BleGvmsy.d.mts → Action-DT8WqfEg.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 +4 -4
  11. package/dist/{Badge-BYa-iqNE.mjs → Badge-Bvn3afds.mjs} +2 -2
  12. package/dist/{Badge-BYa-iqNE.mjs.map → Badge-Bvn3afds.mjs.map} +1 -1
  13. package/dist/BooleanValueControl.d.mts +1 -1
  14. package/dist/{Breadcrumb-CEHEUe8l.d.mts → Breadcrumb-BDbY1Ffu.d.mts} +1 -1
  15. package/dist/Breadcrumb.d.mts +1 -1
  16. package/dist/{Breadcrumbs-BQ-Gj6UV.d.mts → Breadcrumbs-C2ThOYJ-.d.mts} +2 -2
  17. package/dist/{Breadcrumbs-BmlndU4V.mjs → Breadcrumbs-CQUe9VTM.mjs} +8 -8
  18. package/dist/{Breadcrumbs-BmlndU4V.mjs.map → Breadcrumbs-CQUe9VTM.mjs.map} +1 -1
  19. package/dist/Breadcrumbs.d.mts +1 -1
  20. package/dist/{Button-Dx7mHjWC.d.mts → Button-CyjqQa5v.d.mts} +5 -5
  21. package/dist/Button.d.mts +1 -1
  22. package/dist/{Calendar-BvsTQ3e1.d.mts → Calendar-DAfQCLOJ.d.mts} +1 -1
  23. package/dist/Calendar.d.mts +1 -1
  24. package/dist/CalendarBase.d.mts +1 -1
  25. package/dist/{Card-BPY0OU7e.d.mts → Card-CzRHVUFo.d.mts} +4 -4
  26. package/dist/Card.d.mts +1 -1
  27. package/dist/Card2.d.mts +1 -1
  28. package/dist/CardGrouping.d.mts +2 -2
  29. package/dist/{CardV2-Cq4QODeE.mjs → CardV2-Dp4eHSE-.mjs} +11 -11
  30. package/dist/{CardV2-Cq4QODeE.mjs.map → CardV2-Dp4eHSE-.mjs.map} +1 -1
  31. package/dist/{Checkbox-CVa8WOf2.d.mts → Checkbox-B2MZShdu.d.mts} +1 -1
  32. package/dist/{Checkbox-Cttn1t8T.mjs → Checkbox-BaJ-dGdX.mjs} +5 -5
  33. package/dist/{Checkbox-Cttn1t8T.mjs.map → Checkbox-BaJ-dGdX.mjs.map} +1 -1
  34. package/dist/Checkbox.d.mts +1 -1
  35. package/dist/{CheckboxGroupField-BpHN_2QP.d.mts → CheckboxGroupField-BYB4OBlW.d.mts} +3 -3
  36. package/dist/CheckboxGroupField.d.mts +1 -1
  37. package/dist/ChoicesValueControl.d.mts +1 -1
  38. package/dist/{Combobox-CsXnJKvB.mjs → Combobox-CcFJo68g.mjs} +19 -11
  39. package/dist/Combobox-CcFJo68g.mjs.map +1 -0
  40. package/dist/{Combobox-C4C2P8lF.d.mts → Combobox-DH5ycYlG.d.mts} +3 -3
  41. package/dist/Combobox.d.mts +2 -2
  42. package/dist/{ComboboxBase-2nVpt8oj.d.mts → ComboboxBase-BQQSKUBU.d.mts} +7 -7
  43. package/dist/ComboboxBase.d.mts +1 -1
  44. package/dist/{ComboboxMultiSelect-BvJ--m6z.d.mts → ComboboxMultiSelect-Da3Gv1k5.d.mts} +2 -2
  45. package/dist/ComboboxMultiSelect.d.mts +1 -1
  46. package/dist/{ComboboxSingleSelect-BWrnRA2x.d.mts → ComboboxSingleSelect-BUDovONU.d.mts} +4 -4
  47. package/dist/ComboboxSingleSelect.d.mts +1 -1
  48. package/dist/{CompactBar-CmTT9iuT.d.mts → CompactBar-D12R7Nm2.d.mts} +3 -3
  49. package/dist/CompactBar.d.mts +1 -1
  50. package/dist/{ConfigFormGroup-C0orlWwb.mjs → ConfigFormGroup-CidT_cE9.mjs} +2 -2
  51. package/dist/{ConfigFormGroup-C0orlWwb.mjs.map → ConfigFormGroup-CidT_cE9.mjs.map} +1 -1
  52. package/dist/{ControlBar-Cg36sjz3.d.mts → ControlBar-D9KflqmH.d.mts} +22 -9
  53. package/dist/ControlBar.d.mts +1 -1
  54. package/dist/DataTable-95ZxiPlV.mjs +1547 -0
  55. package/dist/DataTable-95ZxiPlV.mjs.map +1 -0
  56. package/dist/DataTable-fZ7SNbIH.d.mts +439 -0
  57. package/dist/DataTable.d.mts +2 -396
  58. package/dist/{DateField-BXUuqbnb.d.mts → DateField-DLz13Ksl.d.mts} +2 -2
  59. package/dist/DateField.d.mts +1 -1
  60. package/dist/{DatePicker-DQHVCGnP.mjs → DatePicker-D0cvVbzq.mjs} +374 -374
  61. package/dist/DatePicker-D0cvVbzq.mjs.map +1 -0
  62. package/dist/{DatePicker-Cmn1vViU.d.mts → DatePicker-DYVWmbrb.d.mts} +2 -2
  63. package/dist/DatePicker.d.mts +1 -1
  64. package/dist/{DateRangePicker-CKhp9Obv.d.mts → DateRangePicker-Be8TYtjz.d.mts} +3 -3
  65. package/dist/DateRangePicker.d.mts +1 -1
  66. package/dist/DateRangeValueControl.d.mts +2 -2
  67. package/dist/DateValueControl.d.mts +1 -1
  68. package/dist/{DropdownButton-C9wWnB5w.mjs → DropdownButton-5oNcpsOq.mjs} +3 -3
  69. package/dist/{DropdownButton-C9wWnB5w.mjs.map → DropdownButton-5oNcpsOq.mjs.map} +1 -1
  70. package/dist/DropdownButton.d.mts +2 -2
  71. package/dist/{DropdownMenu-CPE8Q56k.mjs → DropdownMenu-CedsmO5h.mjs} +2 -2
  72. package/dist/{DropdownMenu-CPE8Q56k.mjs.map → DropdownMenu-CedsmO5h.mjs.map} +1 -1
  73. package/dist/{DropdownMenu-BZ62b8Cv.d.mts → DropdownMenu-DAa2kNrt.d.mts} +3 -3
  74. package/dist/DropdownMenu.d.mts +1 -1
  75. package/dist/{ErrorProps-oCHtJzEB.d.mts → ErrorProps-DH0fzeGf.d.mts} +1 -1
  76. package/dist/ErrorProps.d.mts +1 -1
  77. package/dist/{FieldRegistry-DAk_3PhH.d.mts → FieldRegistry-d5tGpSch.d.mts} +2 -2
  78. package/dist/FieldRegistry.d.mts +1 -1
  79. package/dist/{FilterBar-C7ch6kYM.d.mts → FilterBar-Bh18VyOK.d.mts} +4 -4
  80. package/dist/FilterBar.d.mts +1 -1
  81. package/dist/FilterPickerMenu.d.mts +2 -2
  82. package/dist/FilterPill.d.mts +1 -1
  83. package/dist/FilterPopover.d.mts +1 -1
  84. package/dist/FloatValueControl.d.mts +1 -1
  85. package/dist/FloatingActionBar-CpvLefPm.d.mts +41 -0
  86. package/dist/FloatingActionBar.d.mts +2 -41
  87. package/dist/{FormControl-CD_FdAXA.mjs → FormControl-C4CiA0H-.mjs} +4 -4
  88. package/dist/{FormControl-CD_FdAXA.mjs.map → FormControl-C4CiA0H-.mjs.map} +1 -1
  89. package/dist/{FormControl-DX4vtUp6.d.mts → FormControl-DEG_0oXt.d.mts} +3 -3
  90. package/dist/FormControl.d.mts +1 -1
  91. package/dist/FormControlLabel.d.mts +2 -2
  92. package/dist/{FormField-DjysBTKn.mjs → FormField-cSG93kuo.mjs} +15 -15
  93. package/dist/{FormField-DjysBTKn.mjs.map → FormField-cSG93kuo.mjs.map} +1 -1
  94. package/dist/{FormField-C80kGAIV.d.mts → FormField-mLbXDJ9B.d.mts} +2 -2
  95. package/dist/FormField.d.mts +1 -1
  96. package/dist/{Grid-D0mlxk8_.mjs → Grid-DXVkhyNQ.mjs} +1 -1
  97. package/dist/{Grid-D0mlxk8_.mjs.map → Grid-DXVkhyNQ.mjs.map} +1 -1
  98. package/dist/{Header-C-a5fL3k.d.mts → Header-ayDu4VWE.d.mts} +2 -2
  99. package/dist/Header.d.mts +1 -1
  100. package/dist/{HelperTooltip-hhMFkKmn.d.mts → HelperTooltip-BB9Vznnx.d.mts} +2 -2
  101. package/dist/HelperTooltip.d.mts +1 -1
  102. package/dist/HighlightedText.d.mts +3 -3
  103. package/dist/{HoverCopyableField-Cgu3W31s.mjs → HoverCopyableField-D-BubaRd.mjs} +4 -4
  104. package/dist/{HoverCopyableField-Cgu3W31s.mjs.map → HoverCopyableField-D-BubaRd.mjs.map} +1 -1
  105. package/dist/{I18nContext-ioYM_vqG.d.mts → I18nContext-TXS9M8t5.d.mts} +2 -2
  106. package/dist/I18nContext.d.mts +1 -1
  107. package/dist/{IconButton-DJ3L_ZqN.d.mts → IconButton-Bigvu1Q4.d.mts} +2 -2
  108. package/dist/{IconButton-D4awF770.mjs → IconButton-HWx5Hlmi.mjs} +14 -11
  109. package/dist/{IconButton-D4awF770.mjs.map → IconButton-HWx5Hlmi.mjs.map} +1 -1
  110. package/dist/IconButton.d.mts +1 -1
  111. package/dist/ImageTile.d.mts +4 -3
  112. package/dist/IndexTableLayout.d.mts +45 -0
  113. package/dist/InlineCombobox.d.mts +1 -1
  114. package/dist/InlineInput.d.mts +1 -1
  115. package/dist/{Input-D3lXfJHq.d.mts → Input-Bg4bi6VZ.d.mts} +4 -4
  116. package/dist/{Input-DD4jzJhK.mjs → Input-Dap055xf.mjs} +5 -5
  117. package/dist/{Input-DD4jzJhK.mjs.map → Input-Dap055xf.mjs.map} +1 -1
  118. package/dist/Input.d.mts +1 -1
  119. package/dist/{InputProps-BU9iiBBz.d.mts → InputProps-Bl-G826g.d.mts} +2 -2
  120. package/dist/InputProps.d.mts +1 -1
  121. package/dist/Inserter-BKVrJ4M5.d.mts +12 -0
  122. package/dist/Inserter.d.mts +2 -12
  123. package/dist/IntegerValueControl.d.mts +1 -1
  124. package/dist/{Link-DGZu4J0x.mjs → Link-Cf__H8gD.mjs} +4 -4
  125. package/dist/{Link-DGZu4J0x.mjs.map → Link-Cf__H8gD.mjs.map} +1 -1
  126. package/dist/Link.d.mts +1 -1
  127. package/dist/{ListBox-CjGb0mMY.d.mts → ListBox-Bj5c626-.d.mts} +3 -3
  128. package/dist/{ListBox-BhWLad_L.mjs → ListBox-C80J7DCG.mjs} +12 -12
  129. package/dist/{ListBox-BhWLad_L.mjs.map → ListBox-C80J7DCG.mjs.map} +1 -1
  130. package/dist/ListBox.d.mts +1 -1
  131. package/dist/{ListBoxField-BUkPeLiB.d.mts → ListBoxField-DsJRabgE.d.mts} +4 -4
  132. package/dist/ListBoxField.d.mts +1 -1
  133. package/dist/LoadingShimmer.d.mts +2 -2
  134. package/dist/{LogicRow-Bt6NPLOd.d.mts → LogicRow-CcpD-Kk3.d.mts} +3 -3
  135. package/dist/LogicRow.d.mts +1 -1
  136. package/dist/MaskedInput.d.mts +1 -1
  137. package/dist/MatchHighlight.d.mts +1 -1
  138. package/dist/{Menu-BMrsN-Jz.d.mts → Menu-C0FU9WEF.d.mts} +4 -4
  139. package/dist/{Menu-DlN0A5Nb.mjs → Menu-Dw6Rcpk6.mjs} +4 -4
  140. package/dist/{Menu-DlN0A5Nb.mjs.map → Menu-Dw6Rcpk6.mjs.map} +1 -1
  141. package/dist/Menu.d.mts +1 -1
  142. package/dist/{Modal-BoeGuR-h.d.mts → Modal-BuxggahW.d.mts} +7 -3
  143. package/dist/{Modal-Cs5cZpEr.mjs → Modal-kjUptzg1.mjs} +8 -6
  144. package/dist/Modal-kjUptzg1.mjs.map +1 -0
  145. package/dist/Modal.d.mts +1 -1
  146. package/dist/PageHeader-Czj42pyK.d.mts +40 -0
  147. package/dist/{PageHeader-CCoAJUwJ.mjs → PageHeader-DJF7nxgN.mjs} +2 -2
  148. package/dist/{PageHeader-CCoAJUwJ.mjs.map → PageHeader-DJF7nxgN.mjs.map} +1 -1
  149. package/dist/PageHeader.d.mts +2 -40
  150. package/dist/{PageLayout-BlCo4hN4.d.mts → PageLayout-TBemv7oL.d.mts} +2 -2
  151. package/dist/{PageLayout-C7ZC7GBA.mjs → PageLayout-fXJW7daI.mjs} +2 -2
  152. package/dist/{PageLayout-C7ZC7GBA.mjs.map → PageLayout-fXJW7daI.mjs.map} +1 -1
  153. package/dist/PageLayout.d.mts +1 -1
  154. package/dist/{PageLayoutFrame--HlvI4Pp.d.mts → PageLayoutFrame-DzwlkNZ1.d.mts} +1 -1
  155. package/dist/PageLayoutFrame.d.mts +1 -1
  156. package/dist/{PageSelector-BmevrorJ.d.mts → PageSelector-DXCeBUoU.d.mts} +3 -3
  157. package/dist/PageSelector.d.mts +1 -1
  158. package/dist/{Pagination-C67fsrxl.d.mts → Pagination-COcFWlha.d.mts} +2 -2
  159. package/dist/{Pagination-Du2CPW2l.mjs → Pagination-DtK-jbEY.mjs} +5 -5
  160. package/dist/{Pagination-Du2CPW2l.mjs.map → Pagination-DtK-jbEY.mjs.map} +1 -1
  161. package/dist/Pagination.d.mts +1 -1
  162. package/dist/{Pii-CFVWZ_Yx.mjs → Pii-DueIK287.mjs} +2 -2
  163. package/dist/{Pii-CFVWZ_Yx.mjs.map → Pii-DueIK287.mjs.map} +1 -1
  164. package/dist/{PillShell-jr6OyAd3.d.mts → PillShell-CXROf8gO.d.mts} +2 -2
  165. package/dist/PillShell.d.mts +1 -1
  166. package/dist/{Popover-DewrGOJB.mjs → Popover-BcII7usF.mjs} +2 -2
  167. package/dist/{Popover-DewrGOJB.mjs.map → Popover-BcII7usF.mjs.map} +1 -1
  168. package/dist/{ProgressIndicator-CdhC2LVI.d.mts → ProgressIndicator-C5sbFQcd.d.mts} +1 -1
  169. package/dist/{ProgressIndicator-xV5Cl2Bw.mjs → ProgressIndicator-CM37EU1B.mjs} +3 -3
  170. package/dist/{ProgressIndicator-xV5Cl2Bw.mjs.map → ProgressIndicator-CM37EU1B.mjs.map} +1 -1
  171. package/dist/ProgressIndicator.d.mts +1 -1
  172. package/dist/{PseudoClassProps-CverE9Ni.d.mts → PseudoClassProps-BFFh2-u8.d.mts} +1 -1
  173. package/dist/PseudoClassProps.d.mts +1 -1
  174. package/dist/{Radio-i7AEQZHb.mjs → Radio-DDT_l8rd.mjs} +4 -4
  175. package/dist/{Radio-i7AEQZHb.mjs.map → Radio-DDT_l8rd.mjs.map} +1 -1
  176. package/dist/{RadioGroup-CDEfCg-b.d.mts → RadioGroup-BxEmipHa.d.mts} +1 -1
  177. package/dist/{RadioGroup-B0KcQpS7.mjs → RadioGroup-CmD8NFCL.mjs} +2 -2
  178. package/dist/{RadioGroup-B0KcQpS7.mjs.map → RadioGroup-CmD8NFCL.mjs.map} +1 -1
  179. package/dist/RadioGroup.d.mts +1 -1
  180. package/dist/{RangeCalendar-BOt59kTG.d.mts → RangeCalendar-cZSYjuOZ.d.mts} +2 -2
  181. package/dist/RangeCalendar.d.mts +1 -1
  182. package/dist/RangeCalendarPresets.d.mts +1 -1
  183. package/dist/{RouterContext-D7HBESqO.d.mts → RouterContext-CoDbEb_X.d.mts} +2 -2
  184. package/dist/RouterContext.d.mts +1 -1
  185. package/dist/{RouterLink-dppNWLgP.d.mts → RouterLink-BnIEi8d4.d.mts} +2 -2
  186. package/dist/RouterLink.d.mts +1 -1
  187. package/dist/RuleEditorFields.d.mts +2 -2
  188. package/dist/RulesPill.d.mts +1 -1
  189. package/dist/{SearchInput-B7JYHJZI.d.mts → SearchInput-DLC7-A7K.d.mts} +2 -2
  190. package/dist/SearchInput.d.mts +1 -1
  191. package/dist/SectionHeading.d.mts +1 -1
  192. package/dist/{SegmentedControl-B2_bS806.mjs → SegmentedControl-CcKPfxBR.mjs} +2 -2
  193. package/dist/{SegmentedControl-B2_bS806.mjs.map → SegmentedControl-CcKPfxBR.mjs.map} +1 -1
  194. package/dist/{SegmentedControl-C_7mTcuL.d.mts → SegmentedControl-xjU-2IsJ.d.mts} +1 -1
  195. package/dist/SegmentedControl.d.mts +1 -1
  196. package/dist/{Select-oVJ0uLa7.mjs → Select-BJ9ACmRD.mjs} +8 -8
  197. package/dist/{Select-oVJ0uLa7.mjs.map → Select-BJ9ACmRD.mjs.map} +1 -1
  198. package/dist/{Select-BpAA5ETS.d.mts → Select-sBEBrNgo.d.mts} +3 -3
  199. package/dist/Select.d.mts +1 -1
  200. package/dist/{SingleColumnLayout-ByWxiD7d.d.mts → SingleColumnLayout-CBynMc76.d.mts} +2 -2
  201. package/dist/SingleColumnLayout.d.mts +1 -1
  202. package/dist/SmartTextInput.d.mts +6 -6
  203. package/dist/SmartTextInputField.d.mts +2 -2
  204. package/dist/SmartTextInputFunctionDialog.d.mts +4 -4
  205. package/dist/SmartTextInputListbox.d.mts +2 -2
  206. package/dist/SmartTextInputPopover.d.mts +2 -2
  207. package/dist/{Spinner-0Vqw_68r.mjs → Spinner-uVZyOh1T.mjs} +2 -2
  208. package/dist/{Spinner-0Vqw_68r.mjs.map → Spinner-uVZyOh1T.mjs.map} +1 -1
  209. package/dist/{SplitColumnLayout-DYyJabQ3.d.mts → SplitColumnLayout-BVzGbEDC.d.mts} +2 -2
  210. package/dist/SplitColumnLayout.d.mts +1 -1
  211. package/dist/{Stack-DpWl6orU.d.mts → Stack-BZyboHQl.d.mts} +2 -2
  212. package/dist/Stack.d.mts +1 -1
  213. package/dist/{StatusIndicator-QsVgjRrt.mjs → StatusIndicator-Bunn9YLV.mjs} +3 -3
  214. package/dist/{StatusIndicator-QsVgjRrt.mjs.map → StatusIndicator-Bunn9YLV.mjs.map} +1 -1
  215. package/dist/{Sticker-C260e6kl.d.mts → Sticker-CsUSNIH-.d.mts} +5 -5
  216. package/dist/{Sticker-CUqHa9Mo.mjs → Sticker-yhxtIYH8.mjs} +5 -5
  217. package/dist/{Sticker-CUqHa9Mo.mjs.map → Sticker-yhxtIYH8.mjs.map} +1 -1
  218. package/dist/Sticker.d.mts +1 -1
  219. package/dist/StringValueControl.d.mts +1 -1
  220. package/dist/Tab.d.mts +2 -2
  221. package/dist/{TabBar-w_gxXSwA.mjs → TabBar-SX8E9-Bk.mjs} +5 -5
  222. package/dist/{TabBar-w_gxXSwA.mjs.map → TabBar-SX8E9-Bk.mjs.map} +1 -1
  223. package/dist/{Table-PbYGf3PG.mjs → Table--o4ZLRbb.mjs} +8 -8
  224. package/dist/{Table-PbYGf3PG.mjs.map → Table--o4ZLRbb.mjs.map} +1 -1
  225. package/dist/{Table-BtNYI6QX.d.mts → Table-CadXF71E.d.mts} +1 -1
  226. package/dist/Table.d.mts +1 -1
  227. package/dist/{TableBody-DQ7pivxP.d.mts → TableBody-BKSHNSTo.d.mts} +1 -1
  228. package/dist/TableBody.d.mts +1 -1
  229. package/dist/{TableBox-DMYLTIpr.mjs → TableBox-3qunC9Nl.mjs} +13 -13
  230. package/dist/{TableBox-DMYLTIpr.mjs.map → TableBox-3qunC9Nl.mjs.map} +1 -1
  231. package/dist/TableBox.d.mts +2 -2
  232. package/dist/{TableBoxCell-DwAOA-oO.d.mts → TableBoxCell-BRECnVTs.d.mts} +7 -7
  233. package/dist/TableBoxCell.d.mts +1 -1
  234. package/dist/{TableBoxField-Bdj_nY7j.d.mts → TableBoxField-Lm_tn73M.d.mts} +5 -5
  235. package/dist/TableBoxField.d.mts +1 -1
  236. package/dist/{TableBoxRow-5WBwyAyn.d.mts → TableBoxRow-BS8Dc-zw.d.mts} +3 -3
  237. package/dist/TableBoxRow.d.mts +1 -1
  238. package/dist/{TableBoxRowActions-Dq_Z2ted.d.mts → TableBoxRowActions-oLMb8XcM.d.mts} +2 -2
  239. package/dist/TableBoxRowActions.d.mts +1 -1
  240. package/dist/{TableCell-DXBHZ52E.d.mts → TableCell-4u5_BgTC.d.mts} +3 -3
  241. package/dist/TableCell.d.mts +1 -1
  242. package/dist/{TableControls-C1MF2JvY.mjs → TableControls-DxSFqRwJ.mjs} +623 -131
  243. package/dist/TableControls-DxSFqRwJ.mjs.map +1 -0
  244. package/dist/{TableControls-Cw7LDHWj.d.mts → TableControls-UfObf-ZN.d.mts} +14 -7
  245. package/dist/TableControls.d.mts +1 -1
  246. package/dist/{TableControlsContext-DgoZhMpQ.d.mts → TableControlsContext-Bhtb0cMs.d.mts} +4 -4
  247. package/dist/TableControlsContext.d.mts +1 -1
  248. package/dist/{TableHead-BGUg_aXc.d.mts → TableHead-BuCQeDAq.d.mts} +1 -1
  249. package/dist/TableHead.d.mts +1 -1
  250. package/dist/{TableHeaderCell-DcZcMQyR.d.mts → TableHeaderCell-DIcQlZps.d.mts} +1 -1
  251. package/dist/TableHeaderCell.d.mts +1 -1
  252. package/dist/{TableLayout-CwYQaZlA.d.mts → TableLayout-ScEVdvvA.d.mts} +1 -1
  253. package/dist/TableLayout.d.mts +1 -1
  254. package/dist/{TableRow-Dad6_CoD.d.mts → TableRow-lCsvG0a-.d.mts} +2 -2
  255. package/dist/TableRow.d.mts +1 -1
  256. package/dist/TableTH.d.mts +1 -1
  257. package/dist/{TableViewConfigurationDropdown-BGuWAarQ.d.mts → TableViewConfigurationDropdown-BDXe2Q1Y.d.mts} +2 -2
  258. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  259. package/dist/{TechnicalSticker-RQ-4_Tdr.mjs → TechnicalSticker-CALVwnrT.mjs} +5 -5
  260. package/dist/{TechnicalSticker-RQ-4_Tdr.mjs.map → TechnicalSticker-CALVwnrT.mjs.map} +1 -1
  261. package/dist/{Text-BBMau410.d.mts → Text-RSzei6Se.d.mts} +4 -4
  262. package/dist/Text.d.mts +1 -1
  263. package/dist/{TextArea-BaA8H7s7.mjs → TextArea-CFf0Lspu.mjs} +2 -2
  264. package/dist/{TextArea-BaA8H7s7.mjs.map → TextArea-CFf0Lspu.mjs.map} +1 -1
  265. package/dist/{TextArea-Djd1uT3B.d.mts → TextArea-DFn4XuG-.d.mts} +2 -2
  266. package/dist/TextArea.d.mts +1 -1
  267. package/dist/{TextUnderlineTooltip-C4N0bqbh.d.mts → TextUnderlineTooltip-B0iYaPM1.d.mts} +3 -3
  268. package/dist/TextUnderlineTooltip.d.mts +1 -1
  269. package/dist/Tile.d.mts +1 -1
  270. package/dist/Toast.d.mts +1 -1
  271. package/dist/{Toggle-C9cZnajR.mjs → Toggle-BLdemkh_.mjs} +6 -6
  272. package/dist/{Toggle-C9cZnajR.mjs.map → Toggle-BLdemkh_.mjs.map} +1 -1
  273. package/dist/{Toggle-EYpW34LO.d.mts → Toggle-xtPgGaGD.d.mts} +1 -1
  274. package/dist/Toggle.d.mts +1 -1
  275. package/dist/{Tooltip-DogEteGl.mjs → Tooltip-B-0VRuKT.mjs} +2 -2
  276. package/dist/{Tooltip-DogEteGl.mjs.map → Tooltip-B-0VRuKT.mjs.map} +1 -1
  277. package/dist/{Tooltip-Dj-DtGKz.d.mts → Tooltip-Blfhi2gT.d.mts} +3 -3
  278. package/dist/Tooltip.d.mts +1 -1
  279. package/dist/{TruncatedText-BDNFUuhG.d.mts → TruncatedText-BMQmveJG.d.mts} +2 -2
  280. package/dist/VersionHistory.d.mts +1 -1
  281. package/dist/{VersionHistoryItem-iUabmk_y.d.mts → VersionHistoryItem-BExp7oSr.d.mts} +1 -1
  282. package/dist/VersionHistoryItem.d.mts +1 -1
  283. package/dist/WizardModal.d.mts +2 -2
  284. package/dist/{accordionTitleTypography-C7VVJvlx.d.mts → accordionTitleTypography-PMKnfoy0.d.mts} +2 -2
  285. package/dist/accordionTitleTypography.d.mts +1 -1
  286. package/dist/{chainTypes-DT-9j_sG.d.mts → chainTypes-BbFZn8a9.d.mts} +4 -4
  287. package/dist/clientFilterUtils-c5xzvoBj.d.mts +20 -0
  288. package/dist/clientFilterUtils.d.mts +2 -0
  289. package/dist/{codec-CGj8cwcj.d.mts → codec-DIp7dhcN.d.mts} +2 -2
  290. package/dist/codec.d.mts +1 -1
  291. package/dist/{color-BOm5A1Si.d.mts → color-C5B1pN1D.d.mts} +2 -2
  292. package/dist/components/Accordion/index.d.mts +1 -1
  293. package/dist/components/Accordion/index.mjs +4 -4
  294. package/dist/components/Attribute/index.mjs +4 -4
  295. package/dist/components/Badge/index.mjs +1 -1
  296. package/dist/components/Banner/index.mjs +3 -3
  297. package/dist/components/BottomPanel/index.mjs +4 -4
  298. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  299. package/dist/components/Breadcrumbs/index.mjs +1 -1
  300. package/dist/components/Button/index.d.mts +2 -2
  301. package/dist/components/Button/index.mjs +1 -1
  302. package/dist/components/ButtonGroup/index.mjs +2 -2
  303. package/dist/components/Card/index.d.mts +2 -2
  304. package/dist/components/CardV2/index.d.mts +1 -1
  305. package/dist/components/CardV2/index.mjs +1 -1
  306. package/dist/components/Checkbox/index.d.mts +1 -1
  307. package/dist/components/Checkbox/index.mjs +1 -1
  308. package/dist/components/CodeHighlight/index.mjs +3 -3
  309. package/dist/components/Combobox/index.d.mts +2 -2
  310. package/dist/components/Combobox/index.mjs +1 -1
  311. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  312. package/dist/components/DataTable/TableControls/index.d.mts +22 -20
  313. package/dist/components/DataTable/TableControls/index.mjs +2 -2
  314. package/dist/components/DataTable/index.d.mts +9 -8
  315. package/dist/components/DataTable/index.mjs +2 -1474
  316. package/dist/components/DataTable/types.d.mts +2 -166
  317. package/dist/components/DatePicker/index.d.mts +5 -5
  318. package/dist/components/DatePicker/index.mjs +1 -1
  319. package/dist/components/DropdownButton/index.mjs +1 -1
  320. package/dist/components/DropdownMenu/index.d.mts +1 -1
  321. package/dist/components/DropdownMenu/index.mjs +1 -1
  322. package/dist/components/FloatingPanel/index.mjs +5 -5
  323. package/dist/components/FormControl/index.d.mts +2 -2
  324. package/dist/components/FormControl/index.mjs +2 -2
  325. package/dist/components/FormField/index.d.mts +5 -5
  326. package/dist/components/FormField/index.mjs +1 -1
  327. package/dist/components/Grid/index.mjs +1 -1
  328. package/dist/components/HoverCopyableField/index.mjs +1 -1
  329. package/dist/components/ImageTile/index.mjs +30 -17
  330. package/dist/components/ImageTile/index.mjs.map +1 -1
  331. package/dist/components/Input/index.d.mts +1 -1
  332. package/dist/components/Input/index.mjs +1 -1
  333. package/dist/components/Link/index.mjs +1 -1
  334. package/dist/components/ListBox/index.d.mts +3 -3
  335. package/dist/components/ListBox/index.mjs +1 -1
  336. package/dist/components/MaskedInput/index.mjs +1 -1
  337. package/dist/components/Menu/index.d.mts +1 -1
  338. package/dist/components/Menu/index.mjs +1 -1
  339. package/dist/components/Modal/index.d.mts +1 -1
  340. package/dist/components/Modal/index.mjs +1 -1
  341. package/dist/components/PageHeader/index.d.mts +1 -1
  342. package/dist/components/PageHeader/index.mjs +1 -1
  343. package/dist/components/Pagination/index.d.mts +3 -3
  344. package/dist/components/Pagination/index.mjs +1 -1
  345. package/dist/components/Pii/index.mjs +1 -1
  346. package/dist/components/Popover/index.mjs +1 -1
  347. package/dist/components/ProgressBar/index.mjs +1 -1
  348. package/dist/components/ProgressIndicator/index.d.mts +1 -1
  349. package/dist/components/ProgressIndicator/index.mjs +1 -1
  350. package/dist/components/Radio/index.mjs +1 -1
  351. package/dist/components/RadioGroup/index.d.mts +1 -1
  352. package/dist/components/RadioGroup/index.mjs +1 -1
  353. package/dist/components/RightPanel/index.mjs +2 -2
  354. package/dist/components/SegmentedControl/index.d.mts +1 -1
  355. package/dist/components/SegmentedControl/index.mjs +1 -1
  356. package/dist/components/Select/index.d.mts +1 -1
  357. package/dist/components/Select/index.mjs +1 -1
  358. package/dist/components/Slider/index.mjs +2 -2
  359. package/dist/components/SmartTextInput/index.d.mts +2 -2
  360. package/dist/components/SmartTextInput/index.mjs +6 -6
  361. package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +1 -1
  362. package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +2 -2
  363. package/dist/components/Spinner/index.mjs +1 -1
  364. package/dist/components/Stack/index.d.mts +1 -1
  365. package/dist/components/StatusIndicator/index.mjs +1 -1
  366. package/dist/components/Sticker/index.d.mts +1 -1
  367. package/dist/components/Sticker/index.mjs +1 -1
  368. package/dist/components/TabBar/index.mjs +1 -1
  369. package/dist/components/Table/index.d.mts +8 -8
  370. package/dist/components/Table/index.mjs +1 -1
  371. package/dist/components/TableBox/index.d.mts +2 -2
  372. package/dist/components/TableBox/index.mjs +1 -1
  373. package/dist/components/TechnicalSticker/index.mjs +1 -1
  374. package/dist/components/Text/index.d.mts +1 -1
  375. package/dist/components/TextArea/index.d.mts +1 -1
  376. package/dist/components/TextArea/index.mjs +1 -1
  377. package/dist/components/Tile/index.mjs +2 -2
  378. package/dist/components/Toast/index.mjs +4 -4
  379. package/dist/components/Toggle/index.d.mts +1 -1
  380. package/dist/components/Toggle/index.mjs +1 -1
  381. package/dist/components/Tooltip/index.d.mts +3 -3
  382. package/dist/components/Tooltip/index.mjs +1 -1
  383. package/dist/components/VersionHistory/index.d.mts +1 -1
  384. package/dist/components/VersionHistory/index.mjs +7 -7
  385. package/dist/compound-expression.d.mts +1 -1
  386. package/dist/{constants-CwzbyAdc.d.mts → constants-4rSh8e5G.d.mts} +1 -1
  387. package/dist/constants-BaMvTUbS.d.mts +10 -0
  388. package/dist/constants.d.mts +1 -1
  389. package/dist/constants2.d.mts +2 -10
  390. package/dist/{createPath-C4jIHe68.d.mts → createPath-B_CLq82C.d.mts} +2 -2
  391. package/dist/createPath.d.mts +1 -1
  392. package/dist/{date-filter-CWgCXz85.mjs → date-filter-D0ys8s0D.mjs} +1 -1
  393. package/dist/{date-filter-CWgCXz85.mjs.map → date-filter-D0ys8s0D.mjs.map} +1 -1
  394. package/dist/{date-range-rule-value-BkbGpLNH.d.mts → date-range-rule-value-D01nn054.d.mts} +2 -2
  395. package/dist/date-range-rule-value.d.mts +1 -1
  396. package/dist/{date-rule-intent-zdKP-tW_.d.mts → date-rule-intent-B4hQ_APa.d.mts} +3 -3
  397. package/dist/date-rule-intent.d.mts +1 -1
  398. package/dist/display.d.mts +2 -2
  399. package/dist/fieldPickerOptions.d.mts +2 -2
  400. package/dist/{filter-size-context-CW1guBfI.d.mts → filter-size-context-Dj7Idc8j.d.mts} +2 -2
  401. package/dist/filter-size-context.d.mts +1 -1
  402. package/dist/filters-DDrsgRYy.d.mts +22 -0
  403. package/dist/filters.d.mts +2 -0
  404. package/dist/{formatDateTime-zyRMjfH8.d.mts → formatDateTime-Dd9inM5H.d.mts} +1 -1
  405. package/dist/formatDateTime.d.mts +1 -1
  406. package/dist/helpers-D8_2I4ZX.d.mts +90 -0
  407. package/dist/helpers.d.mts +2 -90
  408. package/dist/{i18n-CeRarJIa.mjs → i18n-BscB9FUy.mjs} +14 -2
  409. package/dist/i18n-BscB9FUy.mjs.map +1 -0
  410. package/dist/{index-C7hEdRqK.d.mts → index-DkXly4xw.d.mts} +2 -2
  411. package/dist/{index-DxFh2ArY.d.mts → index-DsjvDLF8.d.mts} +3 -3
  412. package/dist/{index-B7KIL3U6.d.mts → index-EGvEhP1j.d.mts} +2 -2
  413. package/dist/index-K614ZhWK.d.mts +1 -0
  414. package/dist/index-NKYLt_R9.d.mts +1 -0
  415. package/dist/index-VWno75SQ.d.mts +1 -0
  416. package/dist/index.d.mts +1 -1
  417. package/dist/index2.d.mts +1 -1
  418. package/dist/index3.d.mts +3 -3
  419. package/dist/index4.d.mts +1 -1
  420. package/dist/index5.d.mts +14 -14
  421. package/dist/{input-DMPo8gRT.d.mts → input-CKhARTlS.d.mts} +3 -3
  422. package/dist/{inputFields-BCNC1FWx.d.mts → inputFields-DyOZHse2.d.mts} +11 -11
  423. package/dist/inputFields.d.mts +1 -1
  424. package/dist/{intersperse-B8s6clcc.mjs → intersperse-ObkRVOag.mjs} +1 -1
  425. package/dist/{intersperse-B8s6clcc.mjs.map → intersperse-ObkRVOag.mjs.map} +1 -1
  426. package/dist/{jsonSchema-6mcLrVG3.d.mts → jsonSchema-COo0XQLA.d.mts} +1 -1
  427. package/dist/lib/PDSProvider.d.mts +3 -3
  428. package/dist/lib/PDSProvider.mjs +1 -1
  429. package/dist/lib/TruncatedText.d.mts +1 -1
  430. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  431. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  432. package/dist/lib/chainTypes.d.mts +1 -1
  433. package/dist/lib/color.d.mts +1 -1
  434. package/dist/lib/customFunctionSchema.d.mts +1 -1
  435. package/dist/lib/date-filter/index.d.mts +2 -2
  436. package/dist/lib/date-filter/index.mjs +1 -1
  437. package/dist/lib/i18n/index.d.mts +3 -3
  438. package/dist/lib/i18n/index.mjs +1 -1
  439. package/dist/lib/jsonSchema.d.mts +1 -1
  440. package/dist/lib/jsonSchemaType.d.mts +1 -1
  441. package/dist/lib/message.d.mts +1 -1
  442. package/dist/lib/methodChain.d.mts +2 -2
  443. package/dist/lib/methodChainNormalize.d.mts +2 -2
  444. package/dist/lib/methodChainTypes.d.mts +1 -1
  445. package/dist/lib/objectSchemaTypes.d.mts +1 -1
  446. package/dist/lib/platformObject.d.mts +1 -1
  447. package/dist/lib/pseudoClass.d.mts +1 -1
  448. package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
  449. package/dist/lib/router/adapters/tanstack.d.mts +1 -1
  450. package/dist/lib/router/index.d.mts +5 -5
  451. package/dist/lib/schemaOptions.d.mts +1 -1
  452. package/dist/lib/semanticColor.d.mts +1 -1
  453. package/dist/lib/useChain.d.mts +1 -1
  454. package/dist/{listbox-options-yLjqZp4H.d.mts → listbox-options-D-DyLUdi.d.mts} +3 -3
  455. package/dist/listbox-options.d.mts +1 -1
  456. package/dist/{message-C5n7wFiN.d.mts → message-Dti22dmx.d.mts} +1 -1
  457. package/dist/{methodChain-BNDytoaD.d.mts → methodChain-BAUFBbR9.d.mts} +4 -4
  458. package/dist/{methodChainTypes-BuwpPC73.d.mts → methodChainTypes-a7kHYhs7.d.mts} +2 -2
  459. package/dist/mixins/focus.d.mts +1 -1
  460. package/dist/mixins/focus.mjs +1 -1
  461. package/dist/mixins/hoverable.d.mts +2 -2
  462. package/dist/mixins/hoverable.mjs +1 -1
  463. package/dist/mixins/input.d.mts +1 -1
  464. package/dist/mixins/input.mjs +2 -2
  465. package/dist/mixins/menuItem.d.mts +2 -2
  466. package/dist/mixins/scrollbar.d.mts +1 -1
  467. package/dist/mixins/text.d.mts +1 -1
  468. package/dist/{operators-C34nhBuK.d.mts → operators-DjQXVNVI.d.mts} +3 -3
  469. package/dist/operators.d.mts +1 -1
  470. package/dist/{palette-BCszfY7I.d.mts → palette-Bp5G-S_5.d.mts} +3 -3
  471. package/dist/palette.d.mts +1 -1
  472. package/dist/patterns/CardGrouping/index.mjs +8 -8
  473. package/dist/patterns/IndexTableLayout/index.d.mts +3 -0
  474. package/dist/patterns/IndexTableLayout/index.mjs +87 -0
  475. package/dist/patterns/IndexTableLayout/index.mjs.map +1 -0
  476. package/dist/patterns/LayoutLoadingShimmer/index.mjs +3 -3
  477. package/dist/patterns/PageLayout/index.d.mts +4 -4
  478. package/dist/patterns/PageLayout/index.mjs +1 -1
  479. package/dist/patterns/WizardModal/index.mjs +3 -3
  480. package/dist/reactRouterFallback.d.mts +1 -1
  481. package/dist/relative-date-label.d.mts +1 -1
  482. package/dist/safe-parse.d.mts +1 -1
  483. package/dist/{schemaOptions-DBOUChxi.d.mts → schemaOptions-D536qhSd.d.mts} +3 -3
  484. package/dist/{semantic-Duoh2Pxp.d.mts → semantic-DjKvtUi8.d.mts} +1 -1
  485. package/dist/{semanticColor-BuG977_M.d.mts → semanticColor-CmGmGRj8.d.mts} +3 -3
  486. package/dist/{strings-CUZrwL-Q.d.mts → strings-FWNWdSn1.d.mts} +14 -2
  487. package/dist/strings.d.mts +1 -1
  488. package/dist/{text-B7hx6G99.d.mts → text-BNfECpa5.d.mts} +1 -1
  489. package/dist/{theme-BKg55Zk1.d.mts → theme-VNhXxAF3.d.mts} +3 -3
  490. package/dist/theme.d.mts +1 -1
  491. package/dist/tone.d.mts +3 -3
  492. package/dist/tree.d.mts +1 -1
  493. package/dist/{types-DEzlAdZW.d.mts → types-BMpEizJP.d.mts} +2 -2
  494. package/dist/{types-C_ZEgHNa.d.mts → types-BhHdS6QP.d.mts} +2 -2
  495. package/dist/{types-6QeQmbFm.d.mts → types-CFe4tA8Q.d.mts} +1 -1
  496. package/dist/types-CjQzH0MM.d.mts +180 -0
  497. package/dist/{types-CEQWndtF.d.mts → types-DFU6M0OL.d.mts} +4 -4
  498. package/dist/{types-BjMJFNYH.d.mts → types-DHTFd-5t.d.mts} +1 -1
  499. package/dist/{types-VgGkS4JB.d.mts → types-DfpVVjso.d.mts} +2 -2
  500. package/dist/types-Dx8PgO8a.d.mts +95 -0
  501. package/dist/{types-CgKSEQyB.d.mts → types-HxiGiwQN.d.mts} +1 -1
  502. package/dist/{types-4wnr5R9P.d.mts → types-Kmnood9Y.d.mts} +1 -1
  503. package/dist/types.d.mts +1 -1
  504. package/dist/types2.d.mts +2 -2
  505. package/dist/types3.d.mts +1 -1
  506. package/dist/types4.d.mts +2 -2
  507. package/dist/types5.d.mts +2 -2
  508. package/dist/types6.d.mts +2 -2
  509. package/dist/types7.d.mts +1 -1
  510. package/dist/{url-state-B_gTQ9uu.d.mts → url-state-D1muieS7.d.mts} +2 -2
  511. package/dist/url-state.d.mts +1 -1
  512. package/dist/{useChain-DPRVMwX8.d.mts → useChain-D5LvupTW.d.mts} +6 -6
  513. package/dist/useChainAtCursor.d.mts +6 -6
  514. package/dist/useCodeChainFunctionPanel.d.mts +1 -1
  515. package/dist/useColumnConfiguration.d.mts +34 -0
  516. package/dist/useComboboxFooterAction.d.mts +1 -1
  517. package/dist/{useFilterStateV2-BQZppUR0.d.mts → useFilterStateV2-MH3zbQFr.d.mts} +3 -3
  518. package/dist/useFilterStateV2.d.mts +1 -1
  519. package/dist/{useFormField-DAwApAKK.d.mts → useFormField-Ba8rh1CH.d.mts} +2 -2
  520. package/dist/{useFormField-BAmkdxtA.mjs → useFormField-CbNYbDdp.mjs} +2 -2
  521. package/dist/{useFormField-BAmkdxtA.mjs.map → useFormField-CbNYbDdp.mjs.map} +1 -1
  522. package/dist/useFormField.d.mts +1 -1
  523. package/dist/{useFormGroup-BZayb9fZ.mjs → useFormGroup-CsKC93Pt.mjs} +1 -1
  524. package/dist/{useFormGroup-BZayb9fZ.mjs.map → useFormGroup-CsKC93Pt.mjs.map} +1 -1
  525. package/dist/{useLocationPathname-BHL0pgiu.d.mts → useLocationPathname-OsvI7mH5.d.mts} +1 -1
  526. package/dist/useLocationPathname.d.mts +1 -1
  527. package/dist/{useTableBoxDragAndDrop-Dq30b6yY.d.mts → useTableBoxDragAndDrop-CKPIY98e.d.mts} +1 -1
  528. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  529. package/dist/useTableColumns-rLskKJhd.d.mts +72 -0
  530. package/dist/useTableColumns.d.mts +2 -72
  531. package/dist/useTruncation.d.mts +1 -1
  532. package/dist/{utilities-B2ry7_20.d.mts → utilities-BrEUGFGq.d.mts} +1 -1
  533. package/dist/utilities.d.mts +1 -1
  534. package/dist/utils/testing.d.mts +1 -1
  535. package/dist/utils.d.mts +1 -1
  536. package/dist/utils4.d.mts +5 -5
  537. package/dist/{validation-BODkbEvr.d.mts → validation-Csi2SJxm.d.mts} +3 -3
  538. package/dist/validation.d.mts +1 -1
  539. package/dist/validation2.d.mts +4 -4
  540. package/dist/{value-control-resolver-BcZiReQ7.d.mts → value-control-resolver-BoBFvQ_0.d.mts} +2 -2
  541. package/dist/value-control-resolver.d.mts +1 -1
  542. package/dist/variables/effect.d.mts +1 -1
  543. package/dist/variables/semantic.d.mts +1 -1
  544. package/llms.txt +6 -2
  545. package/package.json +5 -3
  546. package/skills/ui-authoring/COMPONENTS.md +1 -0
  547. package/skills/ui-authoring/PATTERNS.md +4 -2
  548. package/skills/ui-authoring/SKILL.md +9 -2
  549. package/skills/ui-authoring/TOKENS.md +457 -119
  550. package/dist/Combobox-CsXnJKvB.mjs.map +0 -1
  551. package/dist/DatePicker-DQHVCGnP.mjs.map +0 -1
  552. package/dist/Modal-Cs5cZpEr.mjs.map +0 -1
  553. package/dist/TableControls-C1MF2JvY.mjs.map +0 -1
  554. package/dist/components/DataTable/index.mjs.map +0 -1
  555. package/dist/i18n-CeRarJIa.mjs.map +0 -1
  556. package/dist/types-CwzwClJx.d.mts +0 -27
  557. /package/dist/{index-7in8TPrM.d.mts → index-AnhM47-e2.d.mts} +0 -0
  558. /package/dist/{index-8SLBz2NH.d.mts → index-B33elXxm.d.mts} +0 -0
  559. /package/dist/{index-B24gUwOx.d.mts → index-B4woaFSm.d.mts} +0 -0
  560. /package/dist/{index-B8M0Grl_2.d.mts → index-B6T7ov8p.d.mts} +0 -0
  561. /package/dist/{index-BFnNtGdX.d.mts → index-BNRXMhlr.d.mts} +0 -0
  562. /package/dist/{index-BjgW3E7y.d.mts → index-BOaE2xDE.d.mts} +0 -0
  563. /package/dist/{index-BwFl_eS0.d.mts → index-BPiqSRRl.d.mts} +0 -0
  564. /package/dist/{index-C3kE54DD.d.mts → index-BYd3Btr1.d.mts} +0 -0
  565. /package/dist/{index-C3usUse7.d.mts → index-BcsXXrHq.d.mts} +0 -0
  566. /package/dist/{index-C6HcjJiY.d.mts → index-Bo9LXG4r.d.mts} +0 -0
  567. /package/dist/{index-CP2eJYlK.d.mts → index-BrGZHEgX.d.mts} +0 -0
  568. /package/dist/{index-CSf15oCd.d.mts → index-Bt4QNofW.d.mts} +0 -0
  569. /package/dist/{index-CX869wwk.d.mts → index-CFuHCx9T.d.mts} +0 -0
  570. /package/dist/{index-CXaDbCtw.d.mts → index-CLTQPxoD.d.mts} +0 -0
  571. /package/dist/{index-D4DUvwPf.d.mts → index-CaqYCRmZ.d.mts} +0 -0
  572. /package/dist/{index-DB7t8whN.d.mts → index-CjDodOH2.d.mts} +0 -0
  573. /package/dist/{index-Deol7ZWO.d.mts → index-CjmAoxrR2.d.mts} +0 -0
  574. /package/dist/{index-DhiymMxa.d.mts → index-Cx0vQ6ld.d.mts} +0 -0
  575. /package/dist/{index-DjOaHFU3.d.mts → index-CzItj62a.d.mts} +0 -0
  576. /package/dist/{index-DkrC-i1D.d.mts → index-CzUpNo0e.d.mts} +0 -0
  577. /package/dist/{index-DvwPIy8X.d.mts → index-DBGd4WeR.d.mts} +0 -0
  578. /package/dist/{index-Oio5ygqN.d.mts → index-DMRtRo7y.d.mts} +0 -0
  579. /package/dist/{index-Wc1llEvP.d.mts → index-DNjQe1D8.d.mts} +0 -0
  580. /package/dist/{index-bHnO4ZKt.d.mts → index-DW3xeuzq.d.mts} +0 -0
  581. /package/dist/{index-dzI_9J-Z.d.mts → index-DZlqSwCF.d.mts} +0 -0
  582. /package/dist/{index-gpCH5158.d.mts → index-De7MV8-j.d.mts} +0 -0
  583. /package/dist/{index-lIMqGGJz.d.mts → index-DjG1RCY5.d.mts} +0 -0
  584. /package/dist/{index-luywJTzJ.d.mts → index-Dlcv6Ku22.d.mts} +0 -0
  585. /package/dist/{index-sViox9YW.d.mts → index-DrK1_jKY.d.mts} +0 -0
  586. /package/dist/{index-xAZnxq0d2.d.mts → index-IJ_PXwxI2.d.mts} +0 -0
@@ -1,151 +1,489 @@
1
1
  # Design Tokens
2
2
 
3
- How to pick values from `@persona/design-tokens`, plus the `Color` / `Spacing` / `Typography` catalog.
3
+ How to pick colors (semantic tokens, so the same job looks right in light and dark mode), plus the
4
+ `Spacing` / `Typography` / radius / elevation / chart catalog from `@persona/design-tokens`.
4
5
 
5
6
  ```tsx
6
7
  import { BorderRadius, ChartingColors, Color, Spacing, Typography } from '@persona/design-tokens';
8
+ import { semanticColor } from '@persona/design-system/lib/semanticColor';
7
9
  ```
8
10
 
9
11
  ## Color
10
12
 
11
- `Color` is an enum of named colors organized by purpose (`Text*`, `Background*`, `Border*`, and
12
- others), plus a `Core*` palette and a `Primary*` brand set.
13
+ Pick the semantic token whose name describes the color's job (`FgPrimary`, `SurfaceElevated`,
14
+ `FeedbackDanger1`, …). The full list is the `SemanticTokens` interface in
15
+ `@persona/design-system/variables/semantic`.
13
16
 
14
- Use according to this priority:
15
-
16
- 1. Purpose-named `Color.*` (`Text*`, `Background*`, `Border*`, …)
17
- 2. `Color.Core*` / `Color.Primary*` with a comment explaining the choice. For `Core*`, that comment is an `oxlint-disable-next-line rulesdir/no-core-color-tokens`.
18
- 3. Hardcoded hex (only if absolutely necessary) with a comment explaining the choice.
17
+ `Color.*` from `@persona/design-tokens` (`Core*`, `Primary*`, and the purpose-named `Text*` /
18
+ `Background*` / `Border*`) is the fixed palette the semantic tokens point to. It does not follow the
19
+ theme, so it is never the painted color — only the fallback argument, as are old theme values such as
20
+ `theme.color.background.primary`. Hardcode a hex only if absolutely necessary, with a comment
21
+ explaining the choice.
19
22
 
20
23
  ```tsx
21
- // ❌ Color.CorePurple500 / Color.PrimaryPurple / #3F48FD
22
- // ✅ Color.TextActive / Color.BackgroundButtonPrimary
24
+ // ❌ color: ${Color.TextPrimary}; / Color.CorePurple500 / #3F48FD / theme.color.text.primary
25
+ // ✅ color: ${({ theme }) => semanticColor(theme, 'FgPrimary', Color.TextPrimary)};
23
26
  ```
24
27
 
25
- | Need | Use |
26
- |------|-----|
27
- | Text | `Color.TextPrimary` / `TextSecondary` / `TextInverse` / `TextActive` / `TextDanger` / `TextDisabled` |
28
- | Page / card background | `Color.BackgroundPrimary` / `BackgroundSecondary` |
29
- | Borders | `Color.BorderHairline` / `BorderDivider` / `BorderFocus` |
30
- | Buttons | `Color.BackgroundButtonPrimary` (and Default / Danger + Hover variants) |
31
- | Inputs | `Color.BackgroundInputDefault` / `BorderInputDefault` |
32
- | Charts | `ChartingColors.Sequential` or `.Categorical` |
33
-
34
- ```tsx
35
- const Panel = styled.div`
36
- background-color: ${Color.BackgroundPrimary};
37
- border: 1px solid ${Color.BorderDivider};
38
- color: ${Color.TextPrimary};
28
+ ### Use a PDS component before you pick any token
39
29
 
40
- &:hover {
41
- background-color: ${Color.BackgroundSecondary};
42
- }
43
- `;
44
- ```
30
+ PDS components are what we want people to use: they already carry the right tokens for light and
31
+ dark mode. The most common mistake is painting tokens over a custom component instead. A custom frame
32
+ sets its own background, so dark mode never reaches it.
45
33
 
46
- ### Core
34
+ **Is there a PDS component that does this job one-for-one?** If so, use it, and delete the
35
+ hand-written color overrides — PDS already carries the right tokens. Check [COMPONENTS.md](COMPONENTS.md)
36
+ first. For styling that has no component of its own, use the PDS mixins: `inputMixin`
37
+ (`@persona/design-system/mixins/input`) for field chrome such as filter triggers, and
38
+ `semanticScrollbar` (`@persona/design-system/mixins/scrollbar`) for scrollbars.
47
39
 
48
- Each core color has shades from 50 (lightest) to 1100 (darkest):
40
+ Same job, same token: a list of pressable rows hovers like a menu, a card looks like a `Tile`, a
41
+ filter trigger looks like an input, a pill looks like an outline `Button`.
49
42
 
50
- ```tsx
51
- // Purple
52
- Color.CorePurple50 // #F4F5FF (lightest)
53
- Color.CorePurple100
54
- Color.CorePurple500 // Mid-range purple
55
- Color.CorePurple700
56
- Color.CorePurple1100 // #010334 (darkest)
57
-
58
- // Other core colors follow same pattern:
59
- // CoreRed, CoreOrange, CoreYellow, CoreGreen, CoreTeal, CoreBlue, CoreSlate
60
- ```
43
+ ### If a custom component is needed, use the same semantic tokens as its PDS equivalent uses
61
44
 
62
- ### Primary
45
+ **No exact match?** Keep the custom component and give it **the same tokens its PDS equivalent
46
+ uses**. Don't swap in a component that would lose behavior. Examples:
63
47
 
64
- ```tsx
65
- Color.PrimaryBlack // #000000
66
- Color.PrimaryWhite // #FFFFFF
67
- Color.PrimaryPurple // #3F48FD (brand purple)
68
- Color.PrimaryRed // #F04B38
69
- Color.PrimaryOrange // #F59602
70
- Color.PrimaryYellow // #DFFD2F
71
- Color.PrimaryGreen // #41D49D
72
- Color.PrimaryTeal // #36EBFD
73
- Color.PrimaryBlue // #2B7FFD
74
- ```
48
+ - A two-step wizard modal can't be rebuilt on PDS `Modal` without changing how it works, so it keeps
49
+ its frame and uses PDS Modal tokens: `SurfacePrimary` card, `BorderSubtle` header and footer
50
+ dividers, `FgPrimary` title.
51
+ - A select that has to show greyed-out (disabled) options keeps its component and uses PDS Select
52
+ tokens.
75
53
 
76
- ### Background
54
+ ### Picking semantic tokens for custom components
77
55
 
78
- ```tsx
79
- Color.BackgroundPrimary // #FFFFFF (main background)
80
- Color.BackgroundSecondary // #F5F5F6
81
-
82
- // Button backgrounds
83
- Color.BackgroundButtonDefault
84
- Color.BackgroundButtonDefaultHover
85
- Color.BackgroundButtonPrimary
86
- Color.BackgroundButtonPrimaryHover
87
- Color.BackgroundButtonDanger
88
- Color.BackgroundButtonDangerHover
89
-
90
- // Input backgrounds
91
- Color.BackgroundInputDefault
92
- Color.BackgroundInputActive
93
- Color.BackgroundInputDisabled
94
-
95
- // Label backgrounds
96
- Color.BackgroundLabelGrey
97
- Color.BackgroundLabelPurple
98
- Color.BackgroundLabelRed
99
- Color.BackgroundLabelGreen
100
- // ... and more label variants
101
-
102
- // Status indicator backgrounds
103
- Color.BackgroundStatusIndicatorSuccess
104
- Color.BackgroundStatusIndicatorWarning
105
- Color.BackgroundStatusIndicatorCritical
106
- Color.BackgroundStatusIndicatorFeature
107
- ```
56
+ For whatever is still custom, decide what the color is doing: text, surface, border, button, field,
57
+ tinted message, status or scrollbar. Pick that family from the tables below, then the role inside it.
108
58
 
109
- ### Text
59
+ For hover, pressed and disabled, use the token with that suffix (`ActionPrimaryHover`,
60
+ `InputSurfaceDisabled`). The state is part of the name. When a color must look the same in light and
61
+ dark, use the Static version.
110
62
 
111
- ```tsx
112
- Color.TextPrimary // #313131 (main text)
113
- Color.TextSecondary // #707070 (secondary text)
114
- Color.TextInverse // #FFFFFF (text on dark backgrounds)
115
- Color.TextActive // #3F48FD (active/link text)
116
- Color.TextDanger // #B81F0E (error text)
117
- Color.TextDisabled // #BDBDBD (disabled text)
118
-
119
- // Status indicator text colors
120
- Color.TextStatusIndicatorSuccess
121
- Color.TextStatusIndicatorWarning
122
- Color.TextStatusIndicatorCritical
123
- ```
63
+ Read tokens with `semanticColor(theme, 'Token', fallback)` from
64
+ `@persona/design-system/lib/semanticColor`. The fallback is what themes without semantic tokens show:
65
+ pass today's color so those themes look exactly as before. If the token's light value differs from
66
+ today's color, list the old and new color so a person can approve it (for example `FgDisabled` is
67
+ #BDBDBD where the old value was #CCCCCC). Don't read `theme.semantic` directly; the
68
+ `no-direct-theme-semantic` lint rule rejects it. For a declaration that should exist only under
69
+ semantic theming, use `semanticOnly((tokens) => …)` from the same module.
124
70
 
125
- ### Border
71
+ For a wash or a disabled fade, combine the color with an opacity token using `withAlpha` from
72
+ `@persona/design-system/lib/color` (see Opacity below for which token, and how each behaves in light
73
+ and dark). A wash reads two tokens, so get them with `semanticTokens(theme)`, branch on it, and
74
+ return today's color when the theme has no semantic tokens. For focus, use `BorderFocus` through
75
+ `@persona/design-system/mixins/focus`.
126
76
 
127
77
  ```tsx
128
- Color.BorderHairline // #F1F1F2 (subtle border)
129
- Color.BorderDivider // #E2E2E3 (section divider)
130
- Color.BorderFocus // #2B7FFD (focus state)
131
-
132
- // Input borders
133
- Color.BorderInputDefault
134
- Color.BorderInputHover
135
- Color.BorderInputActive
136
- Color.BorderInputWarning
137
- Color.BorderInputDanger
138
- Color.BorderInputDisabled
139
-
140
- // Icon borders
141
- Color.BorderIconPrimary
142
- Color.BorderIconSecondary
143
- Color.BorderIconActive
144
- Color.BorderIconSuccess
145
- Color.BorderIconWarning
146
- Color.BorderIconDanger
78
+ import { semanticColor, semanticTokens } from '@persona/design-system/lib/semanticColor';
79
+ import { withAlpha } from '@persona/design-system/lib/color';
80
+
81
+ const Row = styled.button<{ $selected: boolean }>`
82
+ color: ${({ theme }) => semanticColor(theme, 'FgPrimary', Color.TextPrimary)};
83
+ background: ${({ theme, $selected }) => {
84
+ if (!$selected) return 'transparent';
85
+ const tokens = semanticTokens(theme);
86
+ // A wash combines two tokens, so branch and keep today's color for themes without them.
87
+ return tokens ? withAlpha(tokens.SurfaceAccent, tokens.Opacity25) : Color.CorePurple50;
88
+ }};
89
+
90
+ &:hover {
91
+ background: ${({ theme }) => semanticColor(theme, 'SurfaceHover', Color.BackgroundSecondary)};
92
+ }
93
+ `;
147
94
  ```
148
95
 
96
+ #### Text and icons — Fg*
97
+
98
+ Use Fg* for text, and for icons that sit with that text. An icon takes the same token as its label.
99
+
100
+ | When | Token |
101
+ |---|---|
102
+ | The main thing to read: body, names, values, form labels, neutral button labels | `FgPrimary` |
103
+ | Names and labels in navigation: nav items, environment names, the chevron beside them | `FgPrimary` |
104
+ | A standalone icon button or chevron | `FgPrimary` |
105
+ | Supporting text: descriptions, timestamps, placeholders, helper text, empty-state messages, counts on a pill | `FgSecondary` |
106
+ | The quietest text: small chrome labels that should recede further than secondary | `FgTertiary` |
107
+ | The control is unavailable | `FgDisabled` (fallback `Color.TextDisabled`) |
108
+ | A link, the current item, a selected pill's label, or any text that should read as the brand color | `FgAccent` |
109
+ | That brand text on hover | `FgAccentHover` |
110
+ | That brand text while pressed | `FgAccentActive` |
111
+ | Brand purple that must look the same in both themes | `FgAccentStatic` |
112
+ | A label on a primary or danger button, which flips with the button fill | `FgInverse` |
113
+ | A mark or label that must stay white in both themes (a check, text on a saturated fill) | `FgInverseStatic` |
114
+ | Text that must stay dark in both themes, because the fill behind it doesn't flip | `FgPrimaryStatic` |
115
+ | Secondary text that must stay the same slate in both themes | `FgSecondaryStatic` |
116
+ | An error, a required marker, or destructive text at rest | `FgDanger1` |
117
+ | Danger text on a danger fill, or danger text in its emphasized state | `FgDanger2` |
118
+ | Caution text | `FgWarning1` |
119
+ | Warning text on a warning fill | `FgWarning2` |
120
+ | Text or an icon on a success, info, attention, feature, or miscellaneous fill | `FgSuccess`, `FgInfo`, `FgHighlight`, `FgFeature`, `FgMisc` |
121
+
122
+ `FgDanger1` and `FgWarning1` are the tokens the PDS form error and warning messages use. Use them for
123
+ any error or warning text so it matches.
124
+
125
+ `FgPrimary` follows the theme: dark on a light surface, light on a dark one. Use a Static foreground
126
+ when the fill behind the text doesn't flip or stays mid-tone, so the text doesn't flip without it.
127
+
128
+ **Icons.**
129
+ - An icon inside a button takes the button's label color. Remove any hard-coded override so it
130
+ follows the button at rest, on hover and when disabled.
131
+ - An icon on its own (nav icon, chevron, toggle) gets an explicit token. "No color" means browser
132
+ black.
133
+ - Nav icons use the same token as their label: `FgPrimary` at rest, `FgAccent` on the current item.
134
+ - Dots and marks that carry meaning (availability, status) keep their own Status or Feedback token.
135
+
136
+ #### Surfaces — Surface*
137
+
138
+ Use Surface* for neutral layout fills. A colored message, tag or status uses Feedback* or Status*
139
+ instead.
140
+
141
+ | When | Token |
142
+ |---|---|
143
+ | The canvas behind the screen | `SurfacePage` |
144
+ | The main surface content sits on: a card, a modal (PDS `Modal` is an elevated `Card` painted `SurfacePrimary`), a panel, page header, list | `SurfacePrimary` |
145
+ | A region nested inside a primary surface: a header band, a well, a grouped area | `SurfaceSecondary` |
146
+ | An empty-state box inside a table, list or form, never a fixed white | `SurfaceSecondary` |
147
+ | A further step of nesting, stronger than secondary | `SurfaceTertiary` |
148
+ | A faint separation from the parent surface | `SurfaceSubtle` |
149
+ | A sunken well: a track, a recessed slot, an inset editor | `SurfaceInset` |
150
+ | A neutral row or item under the pointer: menu items, list options, any list of pressable rows in a panel | `SurfaceHover` |
151
+ | A layer that floats *over* other content and isn't a modal: a dropdown or combobox list, popover, filter popover, tooltip, floating panel, floating action bar | `SurfaceElevated` |
152
+ | A brand-tinted selection or emphasis on a neutral surface | `SurfaceAccent` |
153
+ | That tint, held to the same color in both themes | `SurfaceAccentStatic` |
154
+
155
+ `SurfaceHover` is a temporary state. A region that is always slightly different from the body is
156
+ `SurfaceSecondary` or `SurfaceSubtle`, even if it looks similar. On a row, copy only the menu's hover
157
+ color, not the whole menu style.
158
+
159
+ A selected row or menu item is `SurfaceAccent` with `Opacity25` (`withAlpha`): solid in light mode,
160
+ a 25% wash in dark (see Opacity below).
161
+
162
+ #### Borders — Border*
163
+
164
+ There are two kinds of divider, matching the PDS source:
165
+
166
+ | When | Token |
167
+ |---|---|
168
+ | A divider that's part of a component: modal header and footer dividers, a tab bar's baseline, a card section's top rule, a select footer, a slider track, a quiet internal hairline | `BorderSubtle` (fallback `Color.BorderDivider`) |
169
+ | A rule between content items: table rows, menu sections, list items in a panel, the foot of a page header, and the edge of a card (as Tile does) | `BorderDivider` |
170
+ | The resting outline of a control that isn't a text field (outline button, pill) | `BorderDefault` |
171
+ | That outline while hovered | `BorderHover` |
172
+ | Keyboard focus | `BorderFocus` |
173
+ | A brand-colored mark of selection: an active tab underline, a selected pill's border, a selected edge | `BorderAccent` |
174
+ | A field or region in an error state | `BorderDanger` |
175
+ | A field or region in a warning state | `BorderWarning` |
176
+
177
+ Field chrome uses `InputBorder*`. `BorderDanger` and `BorderWarning` are the error and warning
178
+ strokes on those fields; the message beside them is `FgDanger1` or `FgWarning1`.
179
+
180
+ **Floating layers have no added border.** Menus, flyouts, popovers, the side-nav flyout and modals
181
+ stand apart through their surface and shadow. Don't add an edge, and remove one a custom style had.
182
+ Keep a border only when the PDS component draws one itself or the design calls for it.
183
+
184
+ **Fixed divider colors.** The fixed `Color.BorderHairline` and `Color.BorderDivider` become the
185
+ `BorderDivider` token, or `BorderSubtle` for a divider inside a component. The old color with the
186
+ same name isn't the token; it doesn't flip.
187
+
188
+ #### Scrollbars
189
+
190
+ Every scroll container gets a themed scrollbar; the browser default stays light in dark mode. Use the
191
+ `semanticScrollbar` mixin (`@persona/design-system/mixins/scrollbar`) rather than writing it by hand.
192
+ It paints:
193
+
194
+ | Part | Token |
195
+ |---|---|
196
+ | Thumb at rest | `BorderDefault` |
197
+ | Thumb on hover | `BorderHover` |
198
+ | Track | transparent, so the surface shows through |
199
+
200
+ This applies to navs, panels, dropdown lists, modal bodies and footers alike.
201
+
202
+ #### Buttons and pressable chrome — Action*
203
+
204
+ Use Action* for the fill of a control that's meant to be pressed. The surface behind the button stays
205
+ a Surface* token. Prefer PDS `Button` with the matching `variant` to hand-painting these.
206
+
207
+ | When | Rest | Hover | Pressed | Label |
208
+ |---|---|---|---|---|
209
+ | The main action | `ActionPrimary` | `ActionPrimaryHover` | `ActionPrimaryActive` | `FgInverse` |
210
+ | A destructive action | `ActionDanger` | `ActionDangerHover` | `ActionDangerActive` | `FgInverse` |
211
+ | A low-emphasis action | `ActionNeutral` | `ActionNeutralHover` | `ActionNeutralActive` | `FgPrimary` |
212
+ | An action drawn as an outline | transparent, stroke `BorderDefault` | `ActionOutlineHover` | `ActionOutlineActive` | `FgPrimary` (count `FgSecondary`, disabled `FgDisabled`) |
213
+ | A button on a dark or brand-filled background | `ActionInverse` | `ActionInverseHover` | `ActionInverseActive` | `FgPrimaryStatic` |
214
+ | Small quick actions on a list item (mark read, archive) | `ActionInverse` | `ActionInverseHover` | `ActionInverseActive` | `FgPrimaryStatic` |
215
+ | A brand tint on a pressable row, short of a full primary button | `ActionAccent` | | | `FgPrimary` or `FgAccent` |
216
+
217
+ Panel-level text actions with icons (acting on every item in the panel) use default button styling;
218
+ the icon follows the label.
219
+
220
+ **Disabled:**
221
+ - A destructive button uses `ActionDangerDisabled` when that state needs its own color; otherwise
222
+ fade the danger fill with `Opacity65`.
223
+ - Disabled neutral and inverse fills fade with `Opacity65`.
224
+ - Disabled labels on neutral actions are `FgDisabled`.
225
+ - Disabled labels on primary and danger actions stay `FgInverse`, and the whole control fades with
226
+ `Opacity65`.
227
+
228
+ #### Fields and choice controls — Input*
229
+
230
+ Use Input* for the fill and stroke of anything a person types into or toggles. For a custom field or
231
+ filter trigger, apply `inputMixin` (`@persona/design-system/mixins/input`) rather than setting these
232
+ by hand.
233
+
234
+ | When | Fill | Border |
235
+ |---|---|---|
236
+ | A text field at rest | `InputSurfaceDefault` | `InputBorderDefault` |
237
+ | That field on hover | `InputSurfaceHover` | `InputBorderHover` |
238
+ | That field when disabled | `InputSurfaceDisabled` | `InputBorderDisabled` |
239
+ | A search box built into a modal or panel header, separated by a divider rather than a field outline | transparent in every state | none |
240
+ | A checkbox, radio, or switch that needs a heavier resting stroke than a text field | `InputSurfaceDefault` | `InputBorderStrong` |
241
+ | That choice control on hover | `InputSurfaceHover` | `InputBorderHoverStrong` |
242
+ | The on or checked state | `InputSurfaceAccent` | `InputBorderAccent` |
243
+ | The on state on hover | `InputSurfaceAccentHover` | `InputSurfaceAccentHover` (intentional; PDS Checkbox and Radio do the same) |
244
+ | The on state when disabled | `InputSurfaceAccentDisabled` | `InputBorderDisabled` |
245
+ | A knob or mark that must stay white | `InputSurfaceInverseStatic` | |
246
+
247
+ Field text:
248
+ - Text inside a field is `FgPrimary`.
249
+ - Placeholder text is `FgSecondary`.
250
+ - Disabled text is `FgDisabled`.
251
+ - The check on a selected control is `FgInverseStatic`.
252
+
253
+ Fade a disabled field or choice control with `Opacity65`.
254
+
255
+ #### Tinted messages, chips and stickers — Feedback*
256
+
257
+ Use Feedback* when the color categorizes or emphasizes content: a banner, a tag, a sticker, a
258
+ highlight. Pick the hue for the meaning and the number for the strength.
259
+
260
+ | Hue | When | Tokens that exist |
261
+ |---|---|---|
262
+ | Accent | Brand emphasis | `FeedbackAccent1`–`3`, `FeedbackAccent1Static` |
263
+ | Info | Neutral information | `FeedbackInfo1`–`3` |
264
+ | Success | A positive outcome | `FeedbackSuccess1`–`3` |
265
+ | Warning | Caution | `FeedbackWarning1`–`3` |
266
+ | Highlight | Attention, a spotlight | `FeedbackHighlight1`–`2` |
267
+ | Danger | An error or a destructive category | `FeedbackDanger1`–`4` |
268
+ | Misc | A category that needs its own hue, distinct from brand and from success or danger | `FeedbackMisc1`–`2` |
269
+ | Neutral | No extra meaning; a grey chip or wash | `FeedbackNeutral1`–`5`, `FeedbackNeutral2Static` |
270
+ | Neutral Inverse | A light chip that should read as the inverse of the surrounding neutral | `FeedbackNeutralInverse` |
271
+
272
+ | Step | When |
273
+ |---|---|
274
+ | 1 | A quiet wash behind content. Text on it is `FgPrimary`. |
275
+ | 2 | The default fill for a tag or sticker. |
276
+ | 3 | A stronger fill, or the hover of a step-2 chip. |
277
+ | 4 and 5 (Danger 4, Neutral 4–5 only) | The strongest fills. Text on these is `FgInverse` or `FgInverseStatic`. |
278
+
279
+ Hover on a chip moves one step stronger in the same hue. Text on a mid-tone chip (step 2 and most of
280
+ step 3) is `FgPrimaryStatic`, so it stays dark in both themes. Text on a neutral chip that follows the
281
+ theme is `FgPrimary`.
282
+
283
+ A Static feedback token is a step locked to one color. Use it when the chip sits on a surface that
284
+ also doesn't flip, or when the highlight must match in both themes.
285
+
286
+ When you fix an icon color in a component, check that the fix doesn't reach chips or stickers that
287
+ share the same icon style.
288
+
289
+ #### Status — Status*
290
+
291
+ Use Status* when the color reports state: a record's outcome, a toast about something that just
292
+ happened, the filled part of a progress indicator. Pair the fill with the foreground of the same
293
+ meaning.
294
+
295
+ | Meaning | Fill | Foreground |
296
+ |---|---|---|
297
+ | No particular outcome | `StatusNeutral` | `FgPrimary` |
298
+ | Success | `StatusSuccess1`–`3` | `FgSuccess` |
299
+ | Information, in progress, a notice | `StatusInfo1`–`3` | `FgInfo` |
300
+ | Caution | `StatusWarning` | `FgWarning1` on an icon or helper, `FgWarning2` on a filled status |
301
+ | Attention | `StatusHighlight` | `FgHighlight` |
302
+ | Failure or a blocking error | `StatusDanger1Static`, `StatusDanger2`–`4` | `FgDanger1` at rest, `FgDanger2` on the fill |
303
+ | A product or feature callout | `StatusFeature` | `FgFeature` |
304
+ | A status that needs the extra hue | `StatusMisc` | `FgMisc` |
305
+
306
+ **Pill backgrounds are always faded.** A filled status pill takes its Status fill through `withAlpha`
307
+ with an opacity token, exactly as PDS `StatusIndicator` does; only `StatusNeutral` is used solid.
308
+ Without the fade, a pale fill and its pale foreground lose contrast in dark mode. The pairs are in
309
+ the status-pill recipe under Common recipes.
310
+
311
+ Solid Status colors are for:
312
+ - **Toast fills:** a low step across the whole toast (`StatusSuccess1`, `StatusInfo1`,
313
+ `StatusDanger2`), with `FgPrimaryStatic` for the message.
314
+ - **Marks and progress:** the high end (`StatusSuccess3`, `StatusInfo3`, `StatusDanger4`) for a
315
+ progress fill, mark or icon that has to read as that hue on its own.
316
+
317
+ `StatusDanger1Static` is the light danger wash that stays light in both themes. The other danger
318
+ steps change with the theme.
319
+
320
+ A status with no fill keeps `FgPrimary` for the label and uses the meaning's foreground token for the
321
+ icon alone.
322
+
323
+ #### Opacity
324
+
325
+ Opacity tokens are percentages (`CssPercentage`), not colors. Use them to tint a semantic color or to
326
+ fade a disabled control. Don't use them in place of a hover or active token that already exists.
327
+
328
+ | Token | Light | Dark | When |
329
+ |---|---|---|---|
330
+ | `Opacity65` | 65% | 65% | A disabled control, or a disabled label on its own fill. Behaves the same in both modes |
331
+ | `Opacity25` | 100% | 25% | Menu and selection states: a selected menu item, list option, row or pill (`SurfaceAccent` + `Opacity25`), a danger menu item on hover (`FeedbackDanger1` + `Opacity25`); also info and mild emphasis, including the info and feature status pills |
332
+ | `Opacity15` | 100% | 15% | A light wash of success, warning, danger, or attention: banners, and the success, warning, danger, attention and misc status pills |
333
+
334
+ Only `Opacity65` is a real fade in both modes. `Opacity15` and `Opacity25` take effect only in dark
335
+ mode, where they turn a saturated fill into a wash so text on it keeps its contrast. In light mode
336
+ they resolve to `100%`, so the underlying token shows solid — the light tokens are already pale
337
+ (PX-1838 tracks whether that should change). Pick the base token for how it should look in light
338
+ mode, and the opacity for how it should calm down in dark.
339
+
340
+ Menus: a neutral row on hover is `SurfaceHover` with no opacity; the selected or active row is
341
+ `SurfaceAccent` at `Opacity25`. PDS `Menu`, `ListBox`, `Select` and the menu item mixin all do this.
342
+
343
+ Pass a percentage fallback (`semanticColor(theme, 'Opacity65', '65%')`). For the CSS `opacity`
344
+ property, convert with `opacityOf` from `@persona/design-system/lib/color`.
345
+
346
+ ### Common recipes
347
+
348
+ **A section of a page.**
349
+ - Canvas `SurfacePage`; the section `SurfacePrimary`.
350
+ - Title and values `FgPrimary`; descriptions `FgSecondary`.
351
+ - Sections separated by `BorderDivider`.
352
+ - A nested header strip inside the section is `SurfaceSecondary`.
353
+
354
+ **A card or metric tile.** Use or match PDS `Tile`:
355
+ - fill `SurfacePrimary`, border `BorderDivider`
356
+ - title and value `FgPrimary`, small labels `FgSecondary`
357
+ - never the fixed `Color.BorderHairline`
358
+
359
+ **A modal.** Use PDS `Modal`. It is an elevated `Card` with:
360
+ - `SurfacePrimary` fill and a shadow, no outer border
361
+ - `BorderSubtle` header divider (none when it has tabs) and footer divider
362
+ - title `Heading size='sm'` in `FgPrimary`
363
+ - close button `Button variant='text'`
364
+ - footer buttons right-aligned in the footer slot
365
+ - body scrolling with `semanticScrollbar`
366
+
367
+ If the modal can't move to PDS `Modal` (a multi-step wizard, for example), keep its frame, apply
368
+ exactly those tokens to this one modal, and leave the shared frame alone. Menus inside it portal into
369
+ the modal's container.
370
+
371
+ **A menu, dropdown, popover or flyout.**
372
+ - `SurfaceElevated`, no added border.
373
+ - Rows hover with `SurfaceHover`; the selected row follows the selected-row recipe.
374
+ - Themed scrollbar.
375
+
376
+ **A command palette or search modal.**
377
+ - Like a modal, with no border.
378
+ - The search box is transparent with no border, separated from results by a `BorderDivider` rule.
379
+ - If pointing at a result already selects it, the selected style is enough; don't add a separate
380
+ hover color.
381
+
382
+ **A side panel.**
383
+ - `SurfaceElevated` panel with no outer border.
384
+ - `BorderDivider` under the header and between items; items hover with `SurfaceHover`.
385
+ - Per-item quick actions use the inverse button; panel-level actions use default button styling.
386
+ - Themed scrollbar.
387
+
388
+ **Navigation.**
389
+ - Labels, icons, environment names and chevrons `FgPrimary`.
390
+ - Current item: `FgAccent` on the label and icon, with `SurfaceAccent` at `Opacity25`.
391
+ - Hover `SurfaceHover`; flyouts follow the menu recipe.
392
+ - Themed scrollbar. Status dots keep their own color.
393
+
394
+ **A timeline.**
395
+ - Rail line `BorderDivider`.
396
+ - The event-type filter is a PDS `Combobox`.
397
+
398
+ **A primary action and a quiet one.**
399
+ - Primary: `ActionPrimary` and `FgInverse`.
400
+ - Quiet: `ActionNeutral` and `FgPrimary`, or an outline (`BorderDefault`, then `ActionOutlineHover` /
401
+ `ActionOutlineActive`).
402
+
403
+ **A form.**
404
+ - Use PDS inputs.
405
+ - Label `FgPrimary`, field `InputSurfaceDefault` and `InputBorderDefault`, placeholder `FgSecondary`.
406
+ - An error swaps the border to `BorderDanger` and the message to `FgDanger1`.
407
+ - A warning uses `BorderWarning` and `FgWarning1`.
408
+
409
+ **A banner.**
410
+ - Feedback at step 1, with the hue chosen from the meaning (info, success, warning, danger), with
411
+ `Opacity15` or `Opacity25` (the step shows solid in light, as a wash in dark).
412
+ - Text stays `FgPrimary`.
413
+
414
+ **A tag or sticker.**
415
+ - Feedback at step 2 in the category's hue.
416
+ - Text `FgPrimaryStatic` on a colored tag, `FgPrimary` on a neutral one.
417
+
418
+ **A status pill (a record's state).** Use or match PDS `StatusIndicator`: the Status fill faded with
419
+ `withAlpha`, and the meaning's foreground for the label and icon.
420
+
421
+ | Meaning | Background | Label and icon |
422
+ |---|---|---|
423
+ | Neutral | `StatusNeutral` (solid) | `FgPrimary` |
424
+ | Success | `StatusSuccess2` + `Opacity15` | `FgSuccess` |
425
+ | Danger | `StatusDanger3` + `Opacity15` | `FgDanger2` |
426
+ | Warning | `StatusWarning` + `Opacity15` | `FgWarning2` |
427
+ | Attention | `StatusHighlight` + `Opacity15` | `FgHighlight` |
428
+ | Misc | `StatusMisc` + `Opacity15` | `FgMisc` |
429
+ | Info | `StatusInfo2` + `Opacity25` | `FgInfo` |
430
+ | Feature | `StatusFeature` + `Opacity25` | `FgFeature` |
431
+
432
+ The fade shows only in dark mode; in light mode the opacity tokens are `100%`, so the fill is solid
433
+ (see Opacity).
434
+
435
+ **A selected row.**
436
+ - Hover is `SurfaceHover`.
437
+ - Selected is `SurfaceAccent` at `Opacity25`, with `FgAccent` on the label or `BorderAccent`
438
+ on the edge that marks the selection.
439
+
440
+ **An empty state.**
441
+ - Fill `SurfaceSecondary`, message `FgSecondary`.
442
+ - When the empty state comes from a shared component, set it at your call site; don't change the
443
+ shared component without listing every screen it reaches.
444
+
445
+ **Help text on a label.**
446
+ - Use PDS `TextUnderlineTooltip` (dashed underline) on the label instead of a separate help icon.
447
+ - Write plain, left-aligned text with no bullets, in a "Label: text" form.
448
+ - Near the side nav or a screen edge, use `align="start"` so it isn't clipped.
449
+
450
+ ### Before you hand it over
451
+
452
+ - PDS components are used wherever a one-for-one match exists. Where none exists, the component uses
453
+ its PDS equivalent's tokens.
454
+ - Every changed color uses a semantic token, with today's color as the fallback. No raw palette
455
+ (`Color.Core*`, `Color.Primary*`, `Color.Text*` …) or old theme value is the painted color.
456
+ - No new borders or outlines, except the frame a newly adopted PDS component brings (listed as a
457
+ visible change).
458
+ - Nothing is left on a fixed palette color or the browser default: icons, chevrons, bare buttons,
459
+ inputs, scrollbars, dividers, empty states, hover.
460
+ - Icons inside buttons have no color overrides.
461
+ - Dark-mode contrast was checked for text, icons and disabled states.
462
+ - Any visible light-mode change is listed with its old and new color, so it can be approved.
463
+ - Shared components that changed are listed with every screen they reach. Mirrored code wasn't
464
+ edited.
465
+ - Tests cover light, dark, and a theme without semantic tokens; washes are checked with their opacity.
466
+ - If copy moved or changed, the translation files were regenerated, not hand-edited, and existing
467
+ translations carried over.
468
+ - One area per PR, with no unrelated changes.
469
+
470
+ ### Palette (fallbacks only)
471
+
472
+ `Color` from `@persona/design-tokens` is the fixed palette. Its only place in feature code is the
473
+ `semanticColor` fallback (today's color, so themes without semantic tokens are unchanged), and
474
+ `withAlpha` / `opaqueOver` inputs.
475
+
476
+ | Group | Names |
477
+ |---|---|
478
+ | Core shades, 50 (lightest) to 1100 (darkest) | `CorePurple*`, `CoreRed*`, `CoreOrange*`, `CoreYellow*`, `CoreGreen*`, `CoreTeal*`, `CoreBlue*`, `CoreSlate*` (e.g. `CorePurple50` #F4F5FF … `CorePurple1100` #010334) |
479
+ | Brand primaries | `PrimaryBlack`, `PrimaryWhite`, `PrimaryPurple` (#3F48FD), `PrimaryRed`, `PrimaryOrange`, `PrimaryYellow`, `PrimaryGreen`, `PrimaryTeal`, `PrimaryBlue` |
480
+ | Text | `TextPrimary` (#313131), `TextSecondary` (#707070), `TextInverse`, `TextActive` (#3F48FD), `TextDanger` (#B81F0E), `TextDisabled` (#BDBDBD), `TextStatusIndicator*` |
481
+ | Backgrounds | `BackgroundPrimary` (#FFFFFF), `BackgroundSecondary` (#F5F5F6), `BackgroundButton*`, `BackgroundInput*`, `BackgroundLabel*`, `BackgroundStatusIndicator*` |
482
+ | Borders | `BorderHairline` (#F1F1F2), `BorderDivider` (#E2E2E3), `BorderFocus` (#2B7FFD), `BorderInput*`, `BorderIcon*` |
483
+
484
+ Several names share one hex (`CorePurple600`, `PrimaryPurple`, `BackgroundButtonPrimary` and
485
+ `TextActive` are all #3F48FD); use the one that matches what the code painted before.
486
+
149
487
  ## Spacing
150
488
 
151
489
  `Spacing` is an enum of fixed gaps from `0` to `56px` (`Spacing[0]`–`Spacing[9]`).