@persona/design-system 0.10.10 → 0.10.12

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 (356) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/AdvancedFilterRuleRow.d.mts +5 -2
  3. package/dist/AdvancedFilterRulesPopover.d.mts +6 -2
  4. package/dist/ArrayValueControl.d.mts +1 -1
  5. package/dist/{Badge-BCdsVKuj.mjs → Badge-B2AJMf3d.mjs} +2 -2
  6. package/dist/{Badge-BCdsVKuj.mjs.map → Badge-B2AJMf3d.mjs.map} +1 -1
  7. package/dist/BooleanValueControl.d.mts +1 -1
  8. package/dist/{Breadcrumbs-CMf3Uvow.mjs → Breadcrumbs-DRs9eo1o.mjs} +5 -5
  9. package/dist/Breadcrumbs-DRs9eo1o.mjs.map +1 -0
  10. package/dist/{CardV2-CrV6eEQb.mjs → CardV2-DO-8COfu.mjs} +11 -8
  11. package/dist/CardV2-DO-8COfu.mjs.map +1 -0
  12. package/dist/ChartFrame.d.mts +61 -0
  13. package/dist/ChartLegend.d.mts +60 -0
  14. package/dist/ChartPopover.d.mts +155 -0
  15. package/dist/{Checkbox-Dr4LMKHV.mjs → Checkbox-BAh-wF_F.mjs} +5 -5
  16. package/dist/Checkbox-BAh-wF_F.mjs.map +1 -0
  17. package/dist/{CheckboxGroupField-Bpu2j6G2.d.mts → CheckboxGroupField-XSVAmESI.d.mts} +2 -2
  18. package/dist/CheckboxGroupField.d.mts +1 -1
  19. package/dist/ChoicesValueControl.d.mts +1 -1
  20. package/dist/{Combobox-Gb_j1dg6.mjs → Combobox-BNjYEAmv.mjs} +313 -138
  21. package/dist/Combobox-BNjYEAmv.mjs.map +1 -0
  22. package/dist/Combobox-DbcSss15.d.mts +12 -0
  23. package/dist/Combobox.d.mts +3 -3
  24. package/dist/{ComboboxBase-BPXqJHaQ.d.mts → ComboboxBase-CrFweFGi.d.mts} +61 -21
  25. package/dist/ComboboxBase.d.mts +2 -2
  26. package/dist/{ComboboxMultiSelect-BwkkSymj.d.mts → ComboboxMultiSelect-Cp5GBGQj.d.mts} +10 -6
  27. package/dist/ComboboxMultiSelect.d.mts +2 -2
  28. package/dist/{ComboboxSingleSelect-CdNNJNkp.d.mts → ComboboxSingleSelect-u7fK3Yvy.d.mts} +8 -6
  29. package/dist/ComboboxSingleSelect.d.mts +2 -2
  30. package/dist/{DataTable-BE9inUi-.d.mts → DataTable-C1mdfmQa.d.mts} +17 -7
  31. package/dist/{DataTable-CIZJ1vO8.mjs → DataTable-DdSY9mzT.mjs} +36 -23
  32. package/dist/DataTable-DdSY9mzT.mjs.map +1 -0
  33. package/dist/DataTable.d.mts +1 -1
  34. package/dist/{DatePicker-C9redLBr.mjs → DatePicker-DiilpYQg.mjs} +5 -5
  35. package/dist/{DatePicker-C9redLBr.mjs.map → DatePicker-DiilpYQg.mjs.map} +1 -1
  36. package/dist/DateRangeValueControl.d.mts +1 -1
  37. package/dist/DateValueControl.d.mts +1 -1
  38. package/dist/{DropdownButton-DpLG-cIj.mjs → DropdownButton-BxZ5hn0X.mjs} +3 -3
  39. package/dist/{DropdownButton-DpLG-cIj.mjs.map → DropdownButton-BxZ5hn0X.mjs.map} +1 -1
  40. package/dist/DropdownButton.d.mts +1 -1
  41. package/dist/{DropdownMenu-B6D4stkF.d.mts → DropdownMenu-CQR0U-zM.d.mts} +2 -2
  42. package/dist/{DropdownMenu-c8XK2Lr4.mjs → DropdownMenu-Ip75l4Th.mjs} +21 -2
  43. package/dist/DropdownMenu-Ip75l4Th.mjs.map +1 -0
  44. package/dist/DropdownMenu.d.mts +1 -1
  45. package/dist/{FieldRegistry-C2NVPhMO.d.mts → FieldRegistry-CJwGpUVK.d.mts} +2 -2
  46. package/dist/FieldRegistry.d.mts +1 -1
  47. package/dist/{FilterBar-BE_gBM0H.d.mts → FilterBar-CA4mDAXK.d.mts} +13 -5
  48. package/dist/FilterBar.d.mts +1 -1
  49. package/dist/FilterPickerMenu.d.mts +2 -2
  50. package/dist/FilterPill.d.mts +1 -1
  51. package/dist/FilterPopover.d.mts +1 -1
  52. package/dist/FloatValueControl.d.mts +3 -2
  53. package/dist/{FloatingToolbar-DLRaE0o7.mjs → FloatingToolbar-BA8Fqmrz.mjs} +35 -38
  54. package/dist/FloatingToolbar-BA8Fqmrz.mjs.map +1 -0
  55. package/dist/{FormControl-BztNXLn6.mjs → FormControl-BoKGiWdQ.mjs} +2 -2
  56. package/dist/{FormControl-BztNXLn6.mjs.map → FormControl-BoKGiWdQ.mjs.map} +1 -1
  57. package/dist/{FormField-Cf1VMvoa.mjs → FormField-yYJFkJ6R.mjs} +13 -13
  58. package/dist/{FormField-Cf1VMvoa.mjs.map → FormField-yYJFkJ6R.mjs.map} +1 -1
  59. package/dist/{HoverCopyableField-XHC_n9tp.mjs → HoverCopyableField-X2XfKTTh.mjs} +10 -5
  60. package/dist/HoverCopyableField-X2XfKTTh.mjs.map +1 -0
  61. package/dist/{IconButton-DxHB2g80.mjs → IconButton-Bj1fry_K.mjs} +4 -3
  62. package/dist/IconButton-Bj1fry_K.mjs.map +1 -0
  63. package/dist/IndexTableLayout.d.mts +11 -3
  64. package/dist/InlineCombobox.d.mts +1 -1
  65. package/dist/InlineInput.d.mts +1 -1
  66. package/dist/{Input-RHXujO9u.mjs → Input-DcbzPaax.mjs} +2 -2
  67. package/dist/{Input-RHXujO9u.mjs.map → Input-DcbzPaax.mjs.map} +1 -1
  68. package/dist/IntegerValueControl.d.mts +3 -2
  69. package/dist/{Link-D_kCyLYX.mjs → Link-B29ZMN6m.mjs} +3 -3
  70. package/dist/Link-B29ZMN6m.mjs.map +1 -0
  71. package/dist/{ListBox-BZp6exb8.mjs → ListBox-4rTgr3IJ.mjs} +6 -6
  72. package/dist/{ListBox-BZp6exb8.mjs.map → ListBox-4rTgr3IJ.mjs.map} +1 -1
  73. package/dist/{ListBox-DpFcM-dM.d.mts → ListBox-ZDaitaXR.d.mts} +2 -2
  74. package/dist/ListBox.d.mts +1 -1
  75. package/dist/{ListBoxField-DL6Zk8TU.d.mts → ListBoxField-CGvVWKyL.d.mts} +4 -4
  76. package/dist/ListBoxField.d.mts +1 -1
  77. package/dist/{LoadingShimmer-oPIv2ESr.mjs → LoadingShimmer-BVVdBeN-.mjs} +18 -20
  78. package/dist/LoadingShimmer-BVVdBeN-.mjs.map +1 -0
  79. package/dist/{LogicRow-BakOUtzx.d.mts → LogicRow-Bzp5o1sL.d.mts} +2 -2
  80. package/dist/LogicRow.d.mts +1 -1
  81. package/dist/{Menu-D6OrKCTC.d.mts → Menu-DviYNrFd.d.mts} +2 -2
  82. package/dist/Menu.d.mts +1 -1
  83. package/dist/{Modal-De5_bPJ_.mjs → Modal-CiPFqr0L.mjs} +52 -23
  84. package/dist/{Modal-De5_bPJ_.mjs.map → Modal-CiPFqr0L.mjs.map} +1 -1
  85. package/dist/{PageHeader-7_Hf6rHl.mjs → PageHeader-6KvtGED-.mjs} +2 -2
  86. package/dist/{PageHeader-7_Hf6rHl.mjs.map → PageHeader-6KvtGED-.mjs.map} +1 -1
  87. package/dist/{PageLayout-DjtGrvJa.mjs → PageLayout-CPiVnS_r.mjs} +3 -1
  88. package/dist/PageLayout-CPiVnS_r.mjs.map +1 -0
  89. package/dist/{Pagination-DMH2IaV0.mjs → Pagination-CqFvnlXc.mjs} +4 -4
  90. package/dist/{Pagination-DMH2IaV0.mjs.map → Pagination-CqFvnlXc.mjs.map} +1 -1
  91. package/dist/{Pii-24D_nSRQ.mjs → Pii-jSYND7Cn.mjs} +2 -2
  92. package/dist/{Pii-24D_nSRQ.mjs.map → Pii-jSYND7Cn.mjs.map} +1 -1
  93. package/dist/{PillShell-B7Bm-dsE.d.mts → PillShell-Bkyu5FXB.d.mts} +2 -2
  94. package/dist/PillShell.d.mts +1 -1
  95. package/dist/{Popover-DordjYNM.mjs → Popover-CVX-dfYb.mjs} +48 -18
  96. package/dist/Popover-CVX-dfYb.mjs.map +1 -0
  97. package/dist/{Radio-BlEtetrr.mjs → Radio-B1H_S-Qj.mjs} +2 -2
  98. package/dist/Radio-B1H_S-Qj.mjs.map +1 -0
  99. package/dist/{RadioGroup-CMrXmmn4.mjs → RadioGroup-7hdcVhsp.mjs} +2 -2
  100. package/dist/{RadioGroup-CMrXmmn4.mjs.map → RadioGroup-7hdcVhsp.mjs.map} +1 -1
  101. package/dist/RuleEditorFields.d.mts +2 -2
  102. package/dist/RulesPill.d.mts +1 -1
  103. package/dist/{SegmentedControl-D_DA-MU1.mjs → SegmentedControl-BNOJ1FYQ.mjs} +5 -2
  104. package/dist/SegmentedControl-BNOJ1FYQ.mjs.map +1 -0
  105. package/dist/{Select-DOlw_LPR.mjs → Select-DbWEgH5c.mjs} +5 -3
  106. package/dist/Select-DbWEgH5c.mjs.map +1 -0
  107. package/dist/{Select-CR9TjFfo.d.mts → Select-DsVeAyZy.d.mts} +2 -2
  108. package/dist/Select.d.mts +1 -1
  109. package/dist/SmartTextInputField.d.mts +2 -2
  110. package/dist/{Spinner-CXb-KUs1.mjs → Spinner-k9ZiOdTr.mjs} +1 -1
  111. package/dist/{Spinner-CXb-KUs1.mjs.map → Spinner-k9ZiOdTr.mjs.map} +1 -1
  112. package/dist/{Sticker-C1_6I08u.mjs → Sticker-4VdGEFAu.mjs} +2 -2
  113. package/dist/{Sticker-C1_6I08u.mjs.map → Sticker-4VdGEFAu.mjs.map} +1 -1
  114. package/dist/StringValueControl.d.mts +2 -1
  115. package/dist/{TabBar-BCFO38E0.mjs → TabBar-d4sdknti.mjs} +5 -5
  116. package/dist/TabBar-d4sdknti.mjs.map +1 -0
  117. package/dist/{Table-DPi4Dt5H.mjs → Table-9mNn8Q-d.mjs} +14 -6
  118. package/dist/Table-9mNn8Q-d.mjs.map +1 -0
  119. package/dist/{TableBox-DNQsgQ8x.mjs → TableBox-D9NA-s9l.mjs} +16 -12
  120. package/dist/TableBox-D9NA-s9l.mjs.map +1 -0
  121. package/dist/TableBox.d.mts +1 -1
  122. package/dist/{TableBoxCell-CsRt_5gP.d.mts → TableBoxCell-CQOL30et.d.mts} +4 -4
  123. package/dist/TableBoxCell.d.mts +1 -1
  124. package/dist/{TableBoxField-Db0Vjo6Z.d.mts → TableBoxField-z0GIFeQw.d.mts} +5 -5
  125. package/dist/TableBoxField.d.mts +1 -1
  126. package/dist/{TableBoxRow-exMlZyc4.d.mts → TableBoxRow-tb9-KMr9.d.mts} +2 -2
  127. package/dist/TableBoxRow.d.mts +1 -1
  128. package/dist/{TableBoxRowActions-UO9YN34k.d.mts → TableBoxRowActions-BZwulsFP.d.mts} +2 -2
  129. package/dist/TableBoxRowActions.d.mts +1 -1
  130. package/dist/{TableControls-BrP_BqnF.mjs → TableControls-BXykbUBf.mjs} +126 -40
  131. package/dist/TableControls-BXykbUBf.mjs.map +1 -0
  132. package/dist/{TableControls-Clo_0Mty.d.mts → TableControls-DE6eHq8h.d.mts} +4 -4
  133. package/dist/TableControls.d.mts +1 -1
  134. package/dist/{TableControlsContext-BNd6z9mD.d.mts → TableControlsContext-C2_2EuMh.d.mts} +2 -2
  135. package/dist/TableControlsContext.d.mts +1 -1
  136. package/dist/{TableViewConfigurationDropdown-Cp7ausV_.d.mts → TableViewConfigurationDropdown-DE9HFXYY.d.mts} +2 -2
  137. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  138. package/dist/{TechnicalSticker-Cq5jzYKQ.mjs → TechnicalSticker-DtV7Gawf.mjs} +5 -3
  139. package/dist/TechnicalSticker-DtV7Gawf.mjs.map +1 -0
  140. package/dist/{TextArea-Dro-HH8O.mjs → TextArea-CQ1YNi2b.mjs} +4 -5
  141. package/dist/TextArea-CQ1YNi2b.mjs.map +1 -0
  142. package/dist/{Toggle-D9MzTIZs.mjs → Toggle-CzHoIR-n.mjs} +8 -4
  143. package/dist/Toggle-CzHoIR-n.mjs.map +1 -0
  144. package/dist/{Tooltip-YViXzMdm.mjs → Tooltip-CVBxc1yf.mjs} +17 -4
  145. package/dist/Tooltip-CVBxc1yf.mjs.map +1 -0
  146. package/dist/chartColors.d.mts +92 -0
  147. package/dist/chartFrameLayout.d.mts +46 -0
  148. package/dist/{clientFilterUtils-CGHYF5NE.d.mts → clientFilterUtils-2TBUC31K.d.mts} +2 -2
  149. package/dist/clientFilterUtils.d.mts +1 -1
  150. package/dist/components/Accordion/index.mjs +22 -13
  151. package/dist/components/Accordion/index.mjs.map +1 -1
  152. package/dist/components/Attribute/index.mjs +6 -4
  153. package/dist/components/Attribute/index.mjs.map +1 -1
  154. package/dist/components/Badge/index.mjs +1 -1
  155. package/dist/components/Banner/index.mjs +1 -1
  156. package/dist/components/BottomPanel/index.mjs +7 -5
  157. package/dist/components/BottomPanel/index.mjs.map +1 -1
  158. package/dist/components/Breadcrumbs/index.mjs +1 -1
  159. package/dist/components/Button/index.mjs +1 -1
  160. package/dist/components/ButtonGroup/index.mjs +1 -1
  161. package/dist/components/CardV2/index.mjs +1 -1
  162. package/dist/components/Chart/index.d.mts +9 -0
  163. package/dist/components/Chart/index.mjs +680 -0
  164. package/dist/components/Chart/index.mjs.map +1 -0
  165. package/dist/components/Checkbox/index.mjs +1 -1
  166. package/dist/components/CodeHighlight/index.mjs +1 -1
  167. package/dist/components/Combobox/index.d.mts +5 -3
  168. package/dist/components/Combobox/index.mjs +1 -1
  169. package/dist/components/DataTable/TableControls/index.d.mts +19 -19
  170. package/dist/components/DataTable/TableControls/index.mjs +2 -2
  171. package/dist/components/DataTable/index.d.mts +5 -5
  172. package/dist/components/DataTable/index.mjs +1 -1
  173. package/dist/components/DataTable/types.d.mts +1 -1
  174. package/dist/components/DatePicker/index.mjs +1 -1
  175. package/dist/components/DropdownButton/index.mjs +1 -1
  176. package/dist/components/DropdownMenu/index.d.mts +1 -1
  177. package/dist/components/DropdownMenu/index.mjs +1 -1
  178. package/dist/components/FloatingPanel/index.mjs +16 -14
  179. package/dist/components/FloatingPanel/index.mjs.map +1 -1
  180. package/dist/components/FloatingToolbar/index.mjs +1 -1
  181. package/dist/components/FormControl/index.mjs +1 -1
  182. package/dist/components/FormField/index.d.mts +4 -4
  183. package/dist/components/FormField/index.mjs +1 -1
  184. package/dist/components/HoverCopyableField/index.mjs +1 -1
  185. package/dist/components/ImageTile/index.mjs +7 -7
  186. package/dist/components/ImageTile/index.mjs.map +1 -1
  187. package/dist/components/Input/index.mjs +1 -1
  188. package/dist/components/Link/index.mjs +1 -1
  189. package/dist/components/ListBox/index.d.mts +3 -3
  190. package/dist/components/ListBox/index.mjs +1 -1
  191. package/dist/components/LoadingShimmer/index.mjs +1 -1
  192. package/dist/components/MaskedInput/index.mjs +1 -1
  193. package/dist/components/Menu/index.d.mts +1 -1
  194. package/dist/components/Modal/index.mjs +1 -1
  195. package/dist/components/PageHeader/index.mjs +1 -1
  196. package/dist/components/Pagination/index.mjs +1 -1
  197. package/dist/components/Pii/index.mjs +1 -1
  198. package/dist/components/Popover/index.mjs +1 -1
  199. package/dist/components/ProgressBar/index.mjs +20 -3
  200. package/dist/components/ProgressBar/index.mjs.map +1 -1
  201. package/dist/components/Radio/index.mjs +1 -1
  202. package/dist/components/RadioGroup/index.mjs +1 -1
  203. package/dist/components/RichTextEditor/index.mjs +5 -5
  204. package/dist/components/RightPanel/index.mjs +28 -13
  205. package/dist/components/RightPanel/index.mjs.map +1 -1
  206. package/dist/components/SegmentedControl/index.mjs +1 -1
  207. package/dist/components/Select/index.d.mts +1 -1
  208. package/dist/components/Select/index.mjs +1 -1
  209. package/dist/components/SelectionCard/index.mjs +2 -2
  210. package/dist/components/Slider/index.mjs +3 -2
  211. package/dist/components/Slider/index.mjs.map +1 -1
  212. package/dist/components/SmartTextInput/index.mjs +9 -78
  213. package/dist/components/SmartTextInput/index.mjs.map +1 -1
  214. package/dist/{safe-parse.d.mts → components/SmartTextInput/parser/safe-parse.d.mts} +1 -1
  215. package/dist/components/SmartTextInput/parser/safe-parse.mjs +30 -0
  216. package/dist/components/SmartTextInput/parser/safe-parse.mjs.map +1 -0
  217. package/dist/{tree.d.mts → components/SmartTextInput/parser/tree.d.mts} +1 -1
  218. package/dist/components/SmartTextInput/parser/tree.mjs +42 -0
  219. package/dist/components/SmartTextInput/parser/tree.mjs.map +1 -0
  220. package/dist/components/Spinner/index.mjs +1 -1
  221. package/dist/components/Sticker/index.mjs +1 -1
  222. package/dist/components/SwatchPicker/index.mjs +2 -1
  223. package/dist/components/SwatchPicker/index.mjs.map +1 -1
  224. package/dist/components/TabBar/index.mjs +1 -1
  225. package/dist/components/Table/index.mjs +1 -1
  226. package/dist/components/TableBox/index.d.mts +1 -1
  227. package/dist/components/TableBox/index.mjs +1 -1
  228. package/dist/components/TechnicalSticker/index.mjs +1 -1
  229. package/dist/components/TextArea/index.mjs +1 -1
  230. package/dist/components/Tile/index.mjs +2 -2
  231. package/dist/components/Toast/index.mjs +16 -10
  232. package/dist/components/Toast/index.mjs.map +1 -1
  233. package/dist/components/Toggle/index.mjs +1 -1
  234. package/dist/components/Tooltip/index.mjs +1 -1
  235. package/dist/components/VersionHistory/index.mjs +5 -5
  236. package/dist/compound-expression.d.mts +1 -1
  237. package/dist/{date-range-rule-value-ASr06ClE.d.mts → date-range-rule-value-DyLlMtjr.d.mts} +2 -2
  238. package/dist/date-range-rule-value.d.mts +1 -1
  239. package/dist/display.d.mts +1 -1
  240. package/dist/duration-token.d.mts +11 -0
  241. package/dist/exit-motion.d.mts +7 -0
  242. package/dist/fieldPickerOptions.d.mts +2 -2
  243. package/dist/{filter-size-context-CmFyIPCm.d.mts → filter-size-context-DVnjmuhk.d.mts} +2 -2
  244. package/dist/filter-size-context.d.mts +1 -1
  245. package/dist/{filters-DTBc0mE7.d.mts → filters-DW7pqWv3.d.mts} +2 -2
  246. package/dist/filters.d.mts +1 -1
  247. package/dist/{helpers-CBJ2AqGZ.d.mts → helpers-BTD2kXLs.d.mts} +2 -2
  248. package/dist/helpers.d.mts +1 -1
  249. package/dist/{index-OkdnW-u5.d.mts → index-B4tE0RxY.d.mts} +3 -3
  250. package/dist/{index-kIon1vPp.d.mts → index-DTM_t7OG.d.mts} +2 -2
  251. package/dist/index4.d.mts +3 -3
  252. package/dist/index5.d.mts +1 -1
  253. package/dist/index6.d.mts +14 -14
  254. package/dist/{inputFields-DpHeZiFX.d.mts → inputFields-DnBb3NhK.d.mts} +4 -4
  255. package/dist/inputFields.d.mts +1 -1
  256. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  257. package/dist/lib/useCloseFocus.d.mts +45 -0
  258. package/dist/lib/useCloseFocus.mjs +123 -0
  259. package/dist/lib/useCloseFocus.mjs.map +1 -0
  260. package/dist/lib/useModalInsetRight.d.mts +4 -3
  261. package/dist/lib/useModalInsetRight.mjs +7 -5
  262. package/dist/lib/useModalInsetRight.mjs.map +1 -1
  263. package/dist/lint/THIRD_PARTY_NOTICES.md +30 -0
  264. package/dist/lint/index.mjs +696 -11
  265. package/dist/lint/index.mjs.map +1 -1
  266. package/dist/lint/recommended.json +7 -1
  267. package/dist/mixins/hoverable.mjs +1 -1
  268. package/dist/mixins/hoverable.mjs.map +1 -1
  269. package/dist/mixins/input.mjs +1 -0
  270. package/dist/mixins/input.mjs.map +1 -1
  271. package/dist/mixins/menuItem.mjs +2 -0
  272. package/dist/mixins/menuItem.mjs.map +1 -1
  273. package/dist/mixins/motion.d.mts +28 -0
  274. package/dist/mixins/motion.mjs +66 -0
  275. package/dist/mixins/motion.mjs.map +1 -0
  276. package/dist/motion-origin.d.mts +7 -0
  277. package/dist/motion.d.mts +63 -0
  278. package/dist/no-layout-motion.d.mts +7 -0
  279. package/dist/no-transition-all.d.mts +7 -0
  280. package/dist/{operators-BHxKZcpD.d.mts → operators-B8_k3r69.d.mts} +10 -3
  281. package/dist/operators.d.mts +2 -2
  282. package/dist/overlay-motion.d.mts +7 -0
  283. package/dist/patterns/CardGrouping/index.mjs +6 -6
  284. package/dist/patterns/CardGrouping/index.mjs.map +1 -1
  285. package/dist/patterns/IndexTableLayout/index.mjs +23 -16
  286. package/dist/patterns/IndexTableLayout/index.mjs.map +1 -1
  287. package/dist/patterns/LayoutLoadingShimmer/index.mjs +4 -4
  288. package/dist/patterns/LayoutLoadingSpinner/index.mjs +3 -1
  289. package/dist/patterns/LayoutLoadingSpinner/index.mjs.map +1 -1
  290. package/dist/patterns/PageLayout/index.mjs +1 -1
  291. package/dist/patterns/WizardModal/index.mjs +2 -2
  292. package/dist/relative-date-label.d.mts +1 -1
  293. package/dist/{types-DLnCkvTt.d.mts → types-BJqmRXFV.d.mts} +15 -1
  294. package/dist/{types-CqcbWyUY.d.mts → types-BOsCi-kZ.d.mts} +8 -2
  295. package/dist/{types-BiqzeNsa.d.mts → types-Dws2XDz2.d.mts} +2 -2
  296. package/dist/{types-BEdERA4v.d.mts → types-NO2GRlM-.d.mts} +2 -2
  297. package/dist/types4.d.mts +1 -1
  298. package/dist/types5.d.mts +1 -1
  299. package/dist/types6.d.mts +1 -1
  300. package/dist/{url-state-CXUuK3_r.d.mts → url-state-CXPmXzIZ.d.mts} +2 -2
  301. package/dist/url-state.d.mts +1 -1
  302. package/dist/useChartColors.d.mts +30 -0
  303. package/dist/useChartSeriesVisibility.d.mts +22 -0
  304. package/dist/useChartStyles.d.mts +108 -0
  305. package/dist/useColumnConfiguration.d.mts +2 -2
  306. package/dist/useComboboxFooterAction.d.mts +1 -1
  307. package/dist/{useFilterStateV2-DBpbxAEC.d.mts → useFilterStateV2-DiTS9DTg.d.mts} +3 -3
  308. package/dist/useFilterStateV2.d.mts +1 -1
  309. package/dist/{useTableColumns-Xd14vx_h.d.mts → useTableColumns-tITjHasE.d.mts} +2 -2
  310. package/dist/useTableColumns.d.mts +1 -1
  311. package/dist/useTruncation.d.mts +1 -1
  312. package/dist/useValueControlError.d.mts +26 -0
  313. package/dist/utils.d.mts +1 -1
  314. package/dist/{validation-Tgg3AhuP.d.mts → validation-BDQdQ1cY.d.mts} +3 -3
  315. package/dist/validation.d.mts +1 -1
  316. package/dist/{value-control-resolver-XQbGCdsP.d.mts → value-control-resolver-BFJZEWDn.d.mts} +9 -3
  317. package/dist/value-control-resolver.d.mts +1 -1
  318. package/dist/value-labels.d.mts +12 -0
  319. package/dist/variables/keyframes.d.mts +2 -1
  320. package/dist/variables/keyframes.mjs +9 -1
  321. package/dist/variables/keyframes.mjs.map +1 -1
  322. package/dist/variables/transitions.d.mts +31 -1
  323. package/dist/variables/transitions.mjs +50 -1
  324. package/dist/variables/transitions.mjs.map +1 -1
  325. package/llms.txt +2 -1
  326. package/package.json +20 -4
  327. package/skills/new-screen/SKILL.md +33 -0
  328. package/skills/ui-authoring/COMPONENTS.md +19 -1
  329. package/skills/ui-authoring/PATTERNS.md +57 -36
  330. package/skills/ui-authoring/STANDARD.md +78 -4
  331. package/skills/ui-authoring/TOKENS.md +27 -24
  332. package/dist/Breadcrumbs-CMf3Uvow.mjs.map +0 -1
  333. package/dist/CardV2-CrV6eEQb.mjs.map +0 -1
  334. package/dist/Checkbox-Dr4LMKHV.mjs.map +0 -1
  335. package/dist/Combobox-CIKqTYZt.d.mts +0 -11
  336. package/dist/Combobox-Gb_j1dg6.mjs.map +0 -1
  337. package/dist/DataTable-CIZJ1vO8.mjs.map +0 -1
  338. package/dist/DropdownMenu-c8XK2Lr4.mjs.map +0 -1
  339. package/dist/FloatingToolbar-DLRaE0o7.mjs.map +0 -1
  340. package/dist/HoverCopyableField-XHC_n9tp.mjs.map +0 -1
  341. package/dist/IconButton-DxHB2g80.mjs.map +0 -1
  342. package/dist/Link-D_kCyLYX.mjs.map +0 -1
  343. package/dist/LoadingShimmer-oPIv2ESr.mjs.map +0 -1
  344. package/dist/PageLayout-DjtGrvJa.mjs.map +0 -1
  345. package/dist/Popover-DordjYNM.mjs.map +0 -1
  346. package/dist/Radio-BlEtetrr.mjs.map +0 -1
  347. package/dist/SegmentedControl-D_DA-MU1.mjs.map +0 -1
  348. package/dist/Select-DOlw_LPR.mjs.map +0 -1
  349. package/dist/TabBar-BCFO38E0.mjs.map +0 -1
  350. package/dist/Table-DPi4Dt5H.mjs.map +0 -1
  351. package/dist/TableBox-DNQsgQ8x.mjs.map +0 -1
  352. package/dist/TableControls-BrP_BqnF.mjs.map +0 -1
  353. package/dist/TechnicalSticker-Cq5jzYKQ.mjs.map +0 -1
  354. package/dist/TextArea-Dro-HH8O.mjs.map +0 -1
  355. package/dist/Toggle-D9MzTIZs.mjs.map +0 -1
  356. package/dist/Tooltip-YViXzMdm.mjs.map +0 -1
@@ -7,37 +7,40 @@ import { t as Card_default } from "./Card-DuQHyroh.mjs";
7
7
  import { t as Spacer_default } from "./Spacer-C4d9Aho6.mjs";
8
8
  import { i as Paragraph, r as Label$1 } from "./Text-D0vEReED.mjs";
9
9
  import "./variables/transitions.mjs";
10
- import { a as Tooltip } from "./Tooltip-YViXzMdm.mjs";
10
+ import { a as Tooltip } from "./Tooltip-CVBxc1yf.mjs";
11
11
  import { transparent, withAlpha } from "./lib/color.mjs";
12
12
  import { letPointerDownReachDocument } from "./lib/letPointerDownReachDocument.mjs";
13
13
  import { isActive, isDisabled, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
14
14
  import { moveItemByIndex } from "./lib/reorderItems.mjs";
15
+ import { mergeRefs as mergeRefs$1, useCloseFocus } from "./lib/useCloseFocus.mjs";
15
16
  import { useScrollOverflow } from "./lib/useScrollOverflow.mjs";
16
17
  import { Z_INDICES } from "./lib/zindex.mjs";
17
18
  import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
19
+ import { popoverMotion } from "./mixins/motion.mjs";
18
20
  import { semanticScrollbar } from "./mixins/scrollbar.mjs";
19
21
  import { n as Stack, t as HStack } from "./Stack-Bzom2BTR.mjs";
20
- import { n as Button, t as IconButton } from "./IconButton-DxHB2g80.mjs";
21
- import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-BCFO38E0.mjs";
22
- import { r as InputGroup } from "./Input-RHXujO9u.mjs";
22
+ import { n as Button, t as IconButton } from "./IconButton-Bj1fry_K.mjs";
23
+ import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-d4sdknti.mjs";
24
+ import { r as InputGroup } from "./Input-DcbzPaax.mjs";
23
25
  import Input_default from "./components/Input/index.mjs";
24
26
  import { c as MenuList, s as MenuItem } from "./Menu-BVn1jh46.mjs";
25
- import { n as DropdownMenu_default } from "./DropdownMenu-c8XK2Lr4.mjs";
26
- import { t as Combobox } from "./Combobox-Gb_j1dg6.mjs";
27
- import { n as Select, r as SelectHeader, t as Option } from "./Select-DOlw_LPR.mjs";
28
- import { s as Popover_default } from "./Popover-DordjYNM.mjs";
29
- import { i as Modal_default } from "./Modal-De5_bPJ_.mjs";
30
- import { r as DateRangePicker, t as DatePicker } from "./DatePicker-C9redLBr.mjs";
31
- import { t as ListBox } from "./ListBox-BZp6exb8.mjs";
27
+ import { n as DropdownMenu_default } from "./DropdownMenu-Ip75l4Th.mjs";
28
+ import { t as Combobox } from "./Combobox-BNjYEAmv.mjs";
29
+ import { n as Select, r as SelectHeader, t as Option } from "./Select-DbWEgH5c.mjs";
30
+ import { s as Popover_default } from "./Popover-CVX-dfYb.mjs";
31
+ import { i as Modal_default } from "./Modal-CiPFqr0L.mjs";
32
+ import { r as DateRangePicker, t as DatePicker } from "./DatePicker-DiilpYQg.mjs";
33
+ import { n as ErrorText } from "./FormControl-BoKGiWdQ.mjs";
34
+ import { t as ListBox } from "./ListBox-4rTgr3IJ.mjs";
32
35
  import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue, t as formatDateFilterValue } from "./date-filter-Bj4XkwkT.mjs";
33
- import { m as FormField, o as ComboboxField } from "./FormField-Cf1VMvoa.mjs";
34
- import { t as Toggle } from "./Toggle-D9MzTIZs.mjs";
36
+ import { m as FormField, o as ComboboxField } from "./FormField-yYJFkJ6R.mjs";
37
+ import { t as Toggle } from "./Toggle-CzHoIR-n.mjs";
35
38
  import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
36
39
  import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
37
40
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
38
41
  import { DateTime, Settings } from "luxon";
39
42
  import { CaretDownIcon, CheckIcon, CircleInfoIcon, CirclePlusIcon, CopyIcon, EyeIcon, EyeOffIcon, FilterIcon, MoreIcon, PlusIcon, RotateCcwIcon, SaveIcon, SearchIcon, SettingsIcon, StarIcon, TrashIcon, XIcon } from "@persona/icons";
40
- import { CaretDownIcon as CaretDownIcon$1, CircleInfoIcon as CircleInfoIcon$1, LockedIcon as LockedIcon$1, MoreIcon as MoreIcon$1, PlusIcon as PlusIcon$1, SearchIcon as SearchIcon$1, StarFillIcon, XIcon as XIcon$1 } from "@persona/icons/12px";
43
+ import { CaretDownIcon as CaretDownIcon$1, CircleInfoIcon as CircleInfoIcon$1, LockedIcon as LockedIcon$1, MoreIcon as MoreIcon$1, PlusIcon as PlusIcon$1, SearchIcon as SearchIcon$1, StarIcon as StarIcon$1, XIcon as XIcon$1 } from "@persona/icons/12px";
41
44
  import { debounce, isEqual, noop, partition, startCase, union, uniqueId } from "lodash-es";
42
45
  import { useId } from "react-aria";
43
46
  import { mergeRefs } from "@react-aria/utils";
@@ -55,7 +58,7 @@ const FormControlLabel = styled(Label$1).attrs(() => ({
55
58
  weight: "bold"
56
59
  }))`
57
60
  margin-bottom: ${Spacing[2]};
58
- transition: ${"200ms"};
61
+ transition: ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"};
59
62
  display: inline-block;
60
63
 
61
64
  ${({ theme, isDisabled }) => css`
@@ -429,7 +432,7 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
429
432
  }
430
433
  } : void 0,
431
434
  "aria-keyshortcuts": onKeyboardMove ? "Alt+Shift+ArrowLeft Alt+Shift+ArrowRight" : void 0,
432
- prefixIcon: isStarredDefault ? /* @__PURE__ */ jsx(StarFillIcon, { "aria-hidden": true }) : void 0,
435
+ prefixIcon: isStarredDefault ? /* @__PURE__ */ jsx(StarIcon$1, { "aria-hidden": true }) : void 0,
433
436
  suffixIcon: showMenu ? /* @__PURE__ */ jsx(MoreIcon, {}) : void 0,
434
437
  "aria-description": isStarredDefault ? strings.defaultView : void 0,
435
438
  "data-starred-default": isStarredDefault || void 0,
@@ -589,7 +592,7 @@ const LockedViewTab = ({ id, selected, onClick, icon = "locked", children, ...pr
589
592
  id,
590
593
  selected,
591
594
  onClick: selected ? void 0 : onClick,
592
- prefixIcon: icon === "starred" ? /* @__PURE__ */ jsx(StarFillIcon, { "aria-hidden": true }) : void 0,
595
+ prefixIcon: icon === "starred" ? /* @__PURE__ */ jsx(StarIcon$1, { "aria-hidden": true }) : void 0,
593
596
  suffixIcon: icon === "locked" ? /* @__PURE__ */ jsx(LockedIcon$1, {}) : void 0,
594
597
  "data-starred-default": icon === "starred" || void 0,
595
598
  "aria-description": icon === "starred" ? strings.defaultView : void 0,
@@ -1575,6 +1578,20 @@ const Filters = ({ compact, filterResolver, ...props }) => {
1575
1578
  });
1576
1579
  };
1577
1580
  //#endregion
1581
+ //#region src/components/DataTable/TableControls/FiltersV2/FilterBar/value-labels.ts
1582
+ /**
1583
+ * Render-only overlay; never mutate/cache labels in the immutable registry. Re-evaluate
1584
+ * on each render so a stable host getter can read newly hydrated external names.
1585
+ */
1586
+ function optionLabelsForDisplay(field, value, optionLabels, getValueLabel) {
1587
+ if (!getValueLabel || !field || field.type !== "choices" && field.type !== "multi_choices") return optionLabels;
1588
+ const values = Array.isArray(value) ? value : [value];
1589
+ return {
1590
+ ...optionLabels,
1591
+ ...Object.fromEntries(values.filter((entry) => typeof entry === "string").map((entry) => [entry, getValueLabel(field.id, entry) ?? optionLabels?.[entry] ?? entry]))
1592
+ };
1593
+ }
1594
+ //#endregion
1578
1595
  //#region src/components/DataTable/TableControls/FiltersV2/operators.ts
1579
1596
  /**
1580
1597
  * Operator vocabulary per field type. The UI uses this to populate the
@@ -1737,11 +1754,26 @@ function isValuelessOperator(operator, field) {
1737
1754
  const config = getConditionOperator(field, operator);
1738
1755
  return config != null ? config.valueType === "none" : VALUELESS_OPERATORS.has(operator);
1739
1756
  }
1757
+ function isEmptyRuleValue(value) {
1758
+ return value == null || value === "" || Array.isArray(value) && value.length === 0;
1759
+ }
1760
+ /**
1761
+ * The error message a condition operator's `validate` returns for `value`, or
1762
+ * `undefined` when the value is accepted, empty, or the operator has no
1763
+ * validator. Value controls show it below the input; a rule with a message
1764
+ * is incomplete (see `hasCompleteConditionValue`).
1765
+ */
1766
+ function getConditionValueError(field, operator, value) {
1767
+ const validate = getConditionOperator(field, operator)?.validate;
1768
+ if (validate == null || isEmptyRuleValue(value)) return;
1769
+ return validate(value) || void 0;
1770
+ }
1740
1771
  function hasCompleteConditionValue(rule, field) {
1741
1772
  const config = getConditionOperator(field, rule.operator);
1742
1773
  if (config == null) return false;
1743
1774
  const { value } = rule;
1744
1775
  if (config.isComplete != null && !config.isComplete(value)) return false;
1776
+ if (getConditionValueError(field, rule.operator, value) != null) return false;
1745
1777
  switch (config.valueType) {
1746
1778
  case "none": return value === null;
1747
1779
  case "boolean": return typeof value === "boolean";
@@ -2190,7 +2222,7 @@ function RuleEditorFields({ registry, dateTimesEnabled, field, groupIndex, ruleI
2190
2222
  }
2191
2223
  //#endregion
2192
2224
  //#region src/components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/AdvancedFilterRuleRow.tsx
2193
- function AdvancedFilterRuleRow({ registry, dateTimesEnabled, groupIndex, ruleIndex, rule, size, isOpen, onClose, onDelete, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
2225
+ function AdvancedFilterRuleRow({ registry, getValueLabel, dateTimesEnabled, groupIndex, ruleIndex, rule, size, isOpen, onClose, onDelete, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
2194
2226
  const strings = usePDSStrings();
2195
2227
  const locale = usePDSLocale();
2196
2228
  const field = registry.get(rule.fieldId);
@@ -2198,7 +2230,7 @@ function AdvancedFilterRuleRow({ registry, dateTimesEnabled, groupIndex, ruleInd
2198
2230
  const operatorConfigurable = field ? fieldHasMultipleOperators(field) : true;
2199
2231
  const condition = ruleIndex === 0 ? strings.conditionIf : strings.conditionAnd;
2200
2232
  const rowId = `${groupIndex}-${ruleIndex}`;
2201
- const valueDisplay = isValuelessOperator(rule.operator, field) ? void 0 : valueDisplayString(rule.value, registry.optionLabelsFor(rule.fieldId), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type, {
2233
+ const valueDisplay = isValuelessOperator(rule.operator, field) ? void 0 : valueDisplayString(rule.value, optionLabelsForDisplay(field, rule.value, registry.optionLabelsFor(rule.fieldId), getValueLabel), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type, {
2202
2234
  locale,
2203
2235
  strings
2204
2236
  });
@@ -2342,6 +2374,7 @@ const FILTER_SIZE_TOKENS = {
2342
2374
  //#endregion
2343
2375
  //#region src/components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/AdvancedFilterRulesPopover.tsx
2344
2376
  const PopoverContent = styled(PopoverPrimitive.Content)`
2377
+ ${popoverMotion("--radix-popover-content-transform-origin")}
2345
2378
  z-index: ${Z_INDICES.modalDropdown};
2346
2379
  `;
2347
2380
  const PopoverCard$1 = styled(Card_default)`
@@ -2451,7 +2484,7 @@ function groupsForRender(compound) {
2451
2484
  * inline; clicking a row reveals the field/operator/value editor inside the
2452
2485
  * row's dropdown popover.
2453
2486
  */
2454
- const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, open, onOpenChange, renderValueControl, size, dateTimesEnabled = false }) => {
2487
+ const AdvancedFilterRulesPopover = ({ registry, getValueLabel, compound, onChange, trigger, open, onOpenChange, renderValueControl, size, dateTimesEnabled = false }) => {
2455
2488
  const strings = usePDSStrings();
2456
2489
  const resolvedSize = useFilterBarSize(size);
2457
2490
  const subtleIconSize = resolvedSize === "sm" ? "xs" : "sm";
@@ -2465,6 +2498,9 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
2465
2498
  onOpenChange?.(next);
2466
2499
  }, [isControlled, onOpenChange]);
2467
2500
  const baseId = useMemo(() => uniqueId("advanced-filter-rules__"), []);
2501
+ const triggerRef = useRef(null);
2502
+ const { ref: closeFocusRef, ...closeFocus } = useCloseFocus({ triggerRef });
2503
+ const contentRef = useMemo(() => mergeRefs$1(popoverContentRef, closeFocusRef), [popoverContentRef, closeFocusRef]);
2468
2504
  const fields = useMemo(() => registry.all().filter((field) => field.disabledReason == null), [registry]);
2469
2505
  const handleAddOrGroup = useCallback(() => {
2470
2506
  const firstField = fields[0];
@@ -2551,6 +2587,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
2551
2587
  onOpenChange: handleOpenChange,
2552
2588
  children: [/* @__PURE__ */ jsx(PopoverPrimitive.Trigger, {
2553
2589
  asChild: true,
2590
+ ref: triggerRef,
2554
2591
  children: trigger
2555
2592
  }), /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverContent, {
2556
2593
  align: "start",
@@ -2560,7 +2597,8 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
2560
2597
  "aria-label": strings.advancedFilterRules,
2561
2598
  id: baseId,
2562
2599
  onPointerDownCapture: letPointerDownReachDocument,
2563
- ref: popoverContentRef,
2600
+ ...closeFocus,
2601
+ ref: contentRef,
2564
2602
  tabIndex: -1,
2565
2603
  onKeyDown: (event) => {
2566
2604
  if (event.key !== "Enter") return;
@@ -2644,6 +2682,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
2644
2682
  const rowId = `${groupIndex}-${ruleIndex}`;
2645
2683
  return /* @__PURE__ */ jsx(AdvancedFilterRuleRow, {
2646
2684
  registry,
2685
+ getValueLabel,
2647
2686
  dateTimesEnabled,
2648
2687
  groupIndex,
2649
2688
  ruleIndex,
@@ -3083,6 +3122,41 @@ const DateValueControl = ({ field, operator, value, onChange, ariaLabel, dateTim
3083
3122
  });
3084
3123
  };
3085
3124
  //#endregion
3125
+ //#region src/components/DataTable/TableControls/FiltersV2/value-controls/useValueControlError.tsx
3126
+ const ErrorTextSlot = styled.div`
3127
+ margin-top: ${Spacing[1]};
3128
+ `;
3129
+ /**
3130
+ * Error state for a text-like value control (`Input`). Returns the props that
3131
+ * put the input in its error state (red border, `aria-invalid`, linked to the
3132
+ * message) and the message element to render after the input, styled like
3133
+ * `FormField`'s `errorText`.
3134
+ *
3135
+ * With no `errorMessage` both are empty, so the control renders exactly as it
3136
+ * did without validation. The message is a sibling rather than a wrapper, so
3137
+ * the input keeps its place in the tree (and its focus) when the message
3138
+ * appears or clears while the user types.
3139
+ */
3140
+ function useValueControlError(errorMessage) {
3141
+ const errorId = useMemo(() => uniqueId("pds_filter_value_error__"), []);
3142
+ if (!errorMessage) return {
3143
+ inputProps: {},
3144
+ errorText: null
3145
+ };
3146
+ return {
3147
+ inputProps: {
3148
+ hasError: true,
3149
+ "aria-describedby": errorId,
3150
+ "aria-errormessage": errorId
3151
+ },
3152
+ errorText: /* @__PURE__ */ jsx(ErrorTextSlot, { children: /* @__PURE__ */ jsx(ErrorText, {
3153
+ id: errorId,
3154
+ role: "alert",
3155
+ children: errorMessage
3156
+ }) })
3157
+ };
3158
+ }
3159
+ //#endregion
3086
3160
  //#region src/components/DataTable/TableControls/FiltersV2/value-controls/utils.ts
3087
3161
  /**
3088
3162
  * Coerce a `FilterRuleValue` into a string suitable for an `<input>`'s
@@ -3130,7 +3204,7 @@ function numericDisplayValue(value) {
3130
3204
  * `onChange` is debounced (300ms) to avoid committing on every keystroke;
3131
3205
  * the debounce flushes on blur or Enter and cancels on unmount.
3132
3206
  */
3133
- const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
3207
+ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel, errorMessage }) => {
3134
3208
  const strings = usePDSStrings();
3135
3209
  const size = useFilterBarSize();
3136
3210
  const [localValue, setLocalValue] = useState(() => numericDisplayValue(value));
@@ -3159,8 +3233,10 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
3159
3233
  const handleKeyDown = useCallback((event) => {
3160
3234
  if (event.key === "Enter" && !event.defaultPrevented && !event.nativeEvent.isComposing) debouncedOnChange.flush();
3161
3235
  }, [debouncedOnChange]);
3236
+ const { inputProps: errorInputProps, errorText } = useValueControlError(errorMessage);
3162
3237
  if (isValuelessOperator(operator)) return null;
3163
- return /* @__PURE__ */ jsx(Input_default, {
3238
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Input_default, {
3239
+ ...errorInputProps,
3164
3240
  type: "number",
3165
3241
  size,
3166
3242
  step: "any",
@@ -3178,7 +3254,7 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
3178
3254
  debouncedOnChange.flush();
3179
3255
  setLocalValue(numericDisplayValue(value));
3180
3256
  }
3181
- });
3257
+ }), errorText] });
3182
3258
  };
3183
3259
  //#endregion
3184
3260
  //#region src/components/DataTable/TableControls/FiltersV2/value-controls/IntegerValueControl/IntegerValueControl.tsx
@@ -3207,7 +3283,7 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
3207
3283
  * `onChange` is debounced (300ms) to avoid committing on every keystroke;
3208
3284
  * the debounce flushes on blur or Enter and cancels on unmount.
3209
3285
  */
3210
- const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
3286
+ const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel, errorMessage }) => {
3211
3287
  const strings = usePDSStrings();
3212
3288
  const size = useFilterBarSize();
3213
3289
  const [localValue, setLocalValue] = useState(() => numericDisplayValue(value));
@@ -3236,8 +3312,10 @@ const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) =>
3236
3312
  const handleKeyDown = useCallback((event) => {
3237
3313
  if (event.key === "Enter" && !event.defaultPrevented && !event.nativeEvent.isComposing) debouncedOnChange.flush();
3238
3314
  }, [debouncedOnChange]);
3315
+ const { inputProps: errorInputProps, errorText } = useValueControlError(errorMessage);
3239
3316
  if (isValuelessOperator(operator)) return null;
3240
- return /* @__PURE__ */ jsx(Input_default, {
3317
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Input_default, {
3318
+ ...errorInputProps,
3241
3319
  type: "number",
3242
3320
  size,
3243
3321
  step: 1,
@@ -3255,12 +3333,12 @@ const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) =>
3255
3333
  debouncedOnChange.flush();
3256
3334
  setLocalValue(numericDisplayValue(value));
3257
3335
  }
3258
- });
3336
+ }), errorText] });
3259
3337
  };
3260
3338
  //#endregion
3261
3339
  //#region src/components/DataTable/TableControls/FiltersV2/value-controls/StringValueControl/StringValueControl.tsx
3262
3340
  const DEBOUNCE_MS = 300;
3263
- function StringValueControl({ field, operator, value, onChange, ariaLabel, inputType, placeholder, id }) {
3341
+ function StringValueControl({ field, operator, value, onChange, ariaLabel, errorMessage, inputType, placeholder, id }) {
3264
3342
  const generatedId = useMemo(() => uniqueId("filter_v2_string_"), []);
3265
3343
  const inputId = id ?? generatedId;
3266
3344
  const resolvedInputType = inputType ?? (field.type === "email" ? "email" : "text");
@@ -3273,8 +3351,10 @@ function StringValueControl({ field, operator, value, onChange, ariaLabel, input
3273
3351
  useEffect(() => {
3274
3352
  setLocalValue(typeof value === "string" ? value : "");
3275
3353
  }, [value]);
3354
+ const { inputProps: errorInputProps, errorText } = useValueControlError(errorMessage);
3276
3355
  if (isValuelessOperator(operator)) return null;
3277
- return /* @__PURE__ */ jsx(Input_default, {
3356
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Input_default, {
3357
+ ...errorInputProps,
3278
3358
  id: inputId,
3279
3359
  type: resolvedInputType,
3280
3360
  size,
@@ -3291,7 +3371,7 @@ function StringValueControl({ field, operator, value, onChange, ariaLabel, input
3291
3371
  onKeyDown: (event) => {
3292
3372
  if (event.key === "Enter" && !event.defaultPrevented && !event.nativeEvent.isComposing) debouncedOnChange.flush();
3293
3373
  }
3294
- });
3374
+ }), errorText] });
3295
3375
  }
3296
3376
  //#endregion
3297
3377
  //#region src/components/DataTable/TableControls/FiltersV2/FilterBar/value-control-resolver.tsx
@@ -3310,8 +3390,13 @@ const RESOLVERS = {
3310
3390
  float: (opts) => /* @__PURE__ */ jsx(FloatValueControl, { ...opts }),
3311
3391
  array: (opts) => /* @__PURE__ */ jsx(ArrayValueControl, { ...opts })
3312
3392
  };
3313
- function resolveValueControl(opts, hostResolver) {
3314
- if (opts.field.condition != null && isValuelessOperator(opts.operator, opts.field)) return null;
3393
+ function resolveValueControl(options, hostResolver) {
3394
+ if (options.field.condition != null && isValuelessOperator(options.operator, options.field)) return null;
3395
+ const errorMessage = options.errorMessage ?? getConditionValueError(options.field, options.operator, options.value);
3396
+ const opts = errorMessage == null ? options : {
3397
+ ...options,
3398
+ errorMessage
3399
+ };
3315
3400
  const hostControl = hostResolver?.(opts);
3316
3401
  if (hostControl != null) return hostControl;
3317
3402
  const config = getConditionOperator(opts.field, opts.operator);
@@ -3424,7 +3509,7 @@ const PillRoot = styled.span`
3424
3509
  max-width: 100%;
3425
3510
  cursor: pointer;
3426
3511
  user-select: none;
3427
- transition: background-color ${"150ms"} ease-out;
3512
+ transition: background-color ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"};
3428
3513
 
3429
3514
  /* Keyboard focus lands on the inner body button, so the visible focus
3430
3515
  ring is drawn on the whole pill via :focus-within. */
@@ -4557,8 +4642,8 @@ const PillsScrollTrack = styled.div`
4557
4642
  -webkit-mask-image: ${({ $showLeftFade, $showRightFade }) => buildEdgeMaskImage($showLeftFade, $showRightFade)};
4558
4643
  mask-image: ${({ $showLeftFade, $showRightFade }) => buildEdgeMaskImage($showLeftFade, $showRightFade)};
4559
4644
  transition:
4560
- -webkit-mask-image ${"200ms"} ease-out,
4561
- mask-image ${"200ms"} ease-out;
4645
+ -webkit-mask-image ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"},
4646
+ mask-image ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"};
4562
4647
 
4563
4648
  & > * {
4564
4649
  flex: 0 0 auto;
@@ -4596,7 +4681,7 @@ function useStableFieldIds(fieldIds) {
4596
4681
  if (previous == null || fieldIds == null || previous.length !== fieldIds.length || fieldIds.some((id, index) => previous[index] !== id)) stable.current = fieldIds;
4597
4682
  return stable.current;
4598
4683
  }
4599
- function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, relativeDatesEnabled = false, dateTimesEnabled = false, singleUseFields = false, size = "md", valueControlResolver }) {
4684
+ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, relativeDatesEnabled = false, dateTimesEnabled = false, singleUseFields = false, size = "md", valueControlResolver, getValueLabel }) {
4600
4685
  const strings = usePDSStrings();
4601
4686
  const filterState = useFilterStateV2({
4602
4687
  registry,
@@ -4709,6 +4794,7 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
4709
4794
  "aria-label": strings.filterBar,
4710
4795
  children: [filterState.advancedRulesEnabled ? /* @__PURE__ */ jsx(AdvancedFilterRulesPopover, {
4711
4796
  registry,
4797
+ getValueLabel,
4712
4798
  dateTimesEnabled,
4713
4799
  compound: filterState.state.compound,
4714
4800
  open: rulesPopoverOpen,
@@ -4744,7 +4830,7 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
4744
4830
  children: filterState.state.topLevelRules.map((rule) => {
4745
4831
  const field = registry.get(rule.fieldId);
4746
4832
  if (!field) return null;
4747
- const optionLabels = registry.optionLabelsFor(field.id);
4833
+ const optionLabels = optionLabelsForDisplay(field, rule.value, registry.optionLabelsFor(field.id), getValueLabel);
4748
4834
  const isOpen = editingRuleId === rule.id;
4749
4835
  return /* @__PURE__ */ jsx(FilterPopover, {
4750
4836
  field,
@@ -4870,7 +4956,7 @@ const StyledIconDrag = styled(DragIcon$1)`
4870
4956
  opacity: 0.4;
4871
4957
  `}
4872
4958
 
4873
- transition: opacity 0.2s ease-in-out;
4959
+ transition: opacity ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"};
4874
4960
 
4875
4961
  path {
4876
4962
  stroke: ${({ theme }) => semanticColor(theme, "FgPrimary", Color.CoreSlate1000)};
@@ -5585,6 +5671,6 @@ function decodeBase64(input) {
5585
5671
  return decodeURIComponent(escape(atob(input)));
5586
5672
  }
5587
5673
  //#endregion
5588
- export { isNumericComparisonOperator as A, useTableControls as B, useFilterBarSize as C, getOperatorsForField as D, getDefaultOperatorForType as E, getActiveFilters as F, DataTableCompactBar as H, isFilterActive as I, resolveFilterTypeDefinition as L, isValuelessOperator as M, reconcileValueForOperator as N, getOperatorsForType as O, FiltersContainer as P, TableControlsContext as R, FILTER_SIZE_TOKENS as S, emptyValueForRule as T, ControlBar as V, EMPTY_FILTER_STATE as _, encodeFilterStateToUrlParam as a, resolveValueControl as b, FilterBar_default as c, TableViewConfiguration as d, TableViewConfigurationDropdown as f, pruneToRegistry as g, isFilterStateV2 as h, decodeFilterStateFromUrl as i, isRangeOperator as j, isCompleteDateRange as k, resolveDateRangeRuleValue as l, hasCompleteValue as m, applyFilterStateToSearchParams as n, FieldRegistry as o, useFilterStateV2 as p, decodeFilterStateFromString as r, buildFieldRegistry as s, FILTER_STATE_URL_PARAM as t, TableControls as u, isEmptyState as v, NUMERIC_COMPARISON_OPERATORS as w, dateRuleIntent as x, PillShell as y, TableControlsProvider as z };
5674
+ export { isCompleteDateRange as A, TableControlsProvider as B, useFilterBarSize as C, getDefaultOperatorForType as D, getConditionValueError as E, FiltersContainer as F, ControlBar as H, getActiveFilters as I, isFilterActive as L, isRangeOperator as M, isValuelessOperator as N, getOperatorsForField as O, reconcileValueForOperator as P, resolveFilterTypeDefinition as R, FILTER_SIZE_TOKENS as S, emptyValueForRule as T, DataTableCompactBar as U, useTableControls as V, EMPTY_FILTER_STATE as _, encodeFilterStateToUrlParam as a, resolveValueControl as b, FilterBar_default as c, TableViewConfiguration as d, TableViewConfigurationDropdown as f, pruneToRegistry as g, isFilterStateV2 as h, decodeFilterStateFromUrl as i, isNumericComparisonOperator as j, getOperatorsForType as k, resolveDateRangeRuleValue as l, hasCompleteValue as m, applyFilterStateToSearchParams as n, FieldRegistry as o, useFilterStateV2 as p, decodeFilterStateFromString as r, buildFieldRegistry as s, FILTER_STATE_URL_PARAM as t, TableControls as u, isEmptyState as v, NUMERIC_COMPARISON_OPERATORS as w, dateRuleIntent as x, PillShell as y, TableControlsContext as z };
5589
5675
 
5590
- //# sourceMappingURL=TableControls-BrP_BqnF.mjs.map
5676
+ //# sourceMappingURL=TableControls-BXykbUBf.mjs.map