@persona/design-system 0.3.0 → 0.4.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 (507) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +3 -3
  3. package/dist/{Action-CnNf5T-l.d.mts → Action-CcAyQpYN.d.mts} +3 -3
  4. package/dist/Action.d.mts +1 -1
  5. package/dist/AdvancedFilterRuleRow.d.mts +5 -5
  6. package/dist/AdvancedFilterRulesPopover.d.mts +4 -4
  7. package/dist/ArrayValueControl.d.mts +1 -1
  8. package/dist/Attribute.d.mts +5 -5
  9. package/dist/AttributeGrid.d.mts +1 -1
  10. package/dist/{Badge-BqS6Nk4J.mjs → Badge-BL0J5oMa.mjs} +3 -3
  11. package/dist/{Badge-BqS6Nk4J.mjs.map → Badge-BL0J5oMa.mjs.map} +1 -1
  12. package/dist/Banner.d.mts +1 -1
  13. package/dist/BooleanValueControl.d.mts +1 -1
  14. package/dist/BottomPanel.d.mts +32 -0
  15. package/dist/{Breadcrumb-DEwZFJHF.d.mts → Breadcrumb-Df06cTnA.d.mts} +1 -1
  16. package/dist/Breadcrumb.d.mts +1 -1
  17. package/dist/{Breadcrumbs-0e_3v9FF.d.mts → Breadcrumbs-D_Gzd4_J.d.mts} +2 -2
  18. package/dist/{Breadcrumbs-CqKtnZqu.mjs → Breadcrumbs-Zi5p0HDR.mjs} +12 -12
  19. package/dist/{Breadcrumbs-CqKtnZqu.mjs.map → Breadcrumbs-Zi5p0HDR.mjs.map} +1 -1
  20. package/dist/Breadcrumbs.d.mts +1 -1
  21. package/dist/{Button-C0F0F2IL.d.mts → Button-BrI1s2-r.d.mts} +4 -4
  22. package/dist/Button.d.mts +1 -1
  23. package/dist/ButtonGroup.d.mts +1 -1
  24. package/dist/{Calendar-BvLNcHQM.d.mts → Calendar-DjnoZVcT.d.mts} +2 -2
  25. package/dist/Calendar.d.mts +1 -1
  26. package/dist/CalendarBase.d.mts +1 -1
  27. package/dist/{Card-BMCB9eFC.mjs → Card-CKrJtn1f.mjs} +4 -4
  28. package/dist/{Card-BMCB9eFC.mjs.map → Card-CKrJtn1f.mjs.map} +1 -1
  29. package/dist/{Card-BxNoIQWw.d.mts → Card-mZDNFaJy.d.mts} +4 -4
  30. package/dist/Card.d.mts +1 -1
  31. package/dist/Card2.d.mts +3 -3
  32. package/dist/{CardV2-B0ZweQYk.mjs → CardV2-CXxzl1EZ.mjs} +20 -20
  33. package/dist/{CardV2-B0ZweQYk.mjs.map → CardV2-CXxzl1EZ.mjs.map} +1 -1
  34. package/dist/{Checkbox-Bm8exUfH.d.mts → Checkbox-CwPXPLCi.d.mts} +1 -1
  35. package/dist/{Checkbox-DAvbgZgO.mjs → Checkbox-DxNHp59y.mjs} +8 -8
  36. package/dist/{Checkbox-DAvbgZgO.mjs.map → Checkbox-DxNHp59y.mjs.map} +1 -1
  37. package/dist/Checkbox.d.mts +1 -1
  38. package/dist/CheckboxGroupField.d.mts +2 -2
  39. package/dist/ChoicesValueControl.d.mts +1 -1
  40. package/dist/{Combobox-xBrxiUAu.mjs → Combobox-BUtqtzKl.mjs} +22 -22
  41. package/dist/Combobox-BUtqtzKl.mjs.map +1 -0
  42. package/dist/{Combobox-C8ue0cBP.d.mts → Combobox-C9QBItsc.d.mts} +3 -3
  43. package/dist/Combobox.d.mts +2 -2
  44. package/dist/{ComboboxBase-DJGTMf1_.d.mts → ComboboxBase-BkSpdmsT.d.mts} +8 -8
  45. package/dist/ComboboxBase.d.mts +1 -1
  46. package/dist/{ComboboxMultiSelect-D7A2bbWU.d.mts → ComboboxMultiSelect-DkVfwSKH.d.mts} +2 -2
  47. package/dist/ComboboxMultiSelect.d.mts +1 -1
  48. package/dist/{ComboboxSingleSelect-D1uzEyKj.d.mts → ComboboxSingleSelect-CpumBcDn.d.mts} +4 -4
  49. package/dist/ComboboxSingleSelect.d.mts +1 -1
  50. package/dist/{CompactBar-DMuvqaV5.d.mts → CompactBar-COxu_FDd.d.mts} +3 -3
  51. package/dist/CompactBar.d.mts +1 -1
  52. package/dist/{ConfigFormGroup-D2_sajXe.mjs → ConfigFormGroup-aSdn2r6Z.mjs} +4 -4
  53. package/dist/{ConfigFormGroup-D2_sajXe.mjs.map → ConfigFormGroup-aSdn2r6Z.mjs.map} +1 -1
  54. package/dist/{ControlBar-Dg8JeU8f.d.mts → ControlBar-DwAhPcb5.d.mts} +12 -2
  55. package/dist/ControlBar.d.mts +1 -1
  56. package/dist/DataTable.d.mts +5 -4
  57. package/dist/{DateField-Com9f2-j.d.mts → DateField-tOyrGcx1.d.mts} +2 -2
  58. package/dist/DateField.d.mts +1 -1
  59. package/dist/{DatePicker-BGO6doLx.d.mts → DatePicker-Bs9JODNg.d.mts} +2 -2
  60. package/dist/{DatePicker-BlnE2MBD.mjs → DatePicker-CLP-ajza.mjs} +95 -23
  61. package/dist/DatePicker-CLP-ajza.mjs.map +1 -0
  62. package/dist/DatePicker.d.mts +1 -1
  63. package/dist/{DateRangePicker-DfRBm9z4.d.mts → DateRangePicker-BT6-j8V7.d.mts} +24 -4
  64. package/dist/DateRangePicker.d.mts +2 -2
  65. package/dist/DateRangeValueControl.d.mts +8 -4
  66. package/dist/DateValueControl.d.mts +1 -1
  67. package/dist/{DropdownButton-CpWNRUma.mjs → DropdownButton-CCAfNZ9h.mjs} +3 -3
  68. package/dist/{DropdownButton-CpWNRUma.mjs.map → DropdownButton-CCAfNZ9h.mjs.map} +1 -1
  69. package/dist/DropdownButton.d.mts +2 -2
  70. package/dist/{DropdownMenu-CnaK78rP.d.mts → DropdownMenu-BoatixlO.d.mts} +3 -3
  71. package/dist/{DropdownMenu-BCyV8nC0.mjs → DropdownMenu-CUnf420M.mjs} +4 -4
  72. package/dist/{DropdownMenu-BCyV8nC0.mjs.map → DropdownMenu-CUnf420M.mjs.map} +1 -1
  73. package/dist/DropdownMenu.d.mts +1 -1
  74. package/dist/{ErrorProps-CN2XjaOX.d.mts → ErrorProps-C9T857Wk.d.mts} +1 -1
  75. package/dist/ErrorProps.d.mts +1 -1
  76. package/dist/{FieldRegistry-DdA63Vnh.d.mts → FieldRegistry-D6niLExM.d.mts} +2 -2
  77. package/dist/FieldRegistry.d.mts +1 -1
  78. package/dist/{FilterBar-CxNsBVrn.d.mts → FilterBar-DfBV7yKM.d.mts} +10 -4
  79. package/dist/FilterBar.d.mts +1 -1
  80. package/dist/FilterPickerMenu.d.mts +3 -3
  81. package/dist/FilterPill.d.mts +1 -1
  82. package/dist/FilterPopover.d.mts +2 -2
  83. package/dist/FloatValueControl.d.mts +1 -1
  84. package/dist/FloatingPanel.d.mts +1 -1
  85. package/dist/FloatingPanelContext.d.mts +1 -1
  86. package/dist/{FormControl-Doj2gvF0.d.mts → FormControl-0H0Jeind.d.mts} +4 -4
  87. package/dist/{FormControl-HVzZEqJH.mjs → FormControl-1BmoYFCu.mjs} +6 -6
  88. package/dist/{FormControl-HVzZEqJH.mjs.map → FormControl-1BmoYFCu.mjs.map} +1 -1
  89. package/dist/FormControl.d.mts +1 -1
  90. package/dist/FormControlLabel.d.mts +2 -2
  91. package/dist/{FormField-D8dHbqZZ.d.mts → FormField-BcaFdmo5.d.mts} +2 -2
  92. package/dist/{FormField-B9P3BWvS.mjs → FormField-oBKH25qf.mjs} +22 -22
  93. package/dist/FormField-oBKH25qf.mjs.map +1 -0
  94. package/dist/FormField.d.mts +1 -1
  95. package/dist/Grid.d.mts +38 -0
  96. package/dist/GridItem.d.mts +17 -0
  97. package/dist/{Header-CBlB65NY.d.mts → Header-BjSoTEX_.d.mts} +2 -2
  98. package/dist/Header.d.mts +1 -1
  99. package/dist/{HelperTooltip-C28h1zFl.d.mts → HelperTooltip-S20wVFCS.d.mts} +3 -3
  100. package/dist/HelperTooltip.d.mts +1 -1
  101. package/dist/{HoverCopyableField-0Bzygbp9.mjs → HoverCopyableField-GMXeF-3J.mjs} +31 -20
  102. package/dist/HoverCopyableField-GMXeF-3J.mjs.map +1 -0
  103. package/dist/HoverCopyableField.d.mts +15 -4
  104. package/dist/{IconButton-BfDlic2K.mjs → IconButton-BgL3QUVO.mjs} +9 -9
  105. package/dist/{IconButton-BfDlic2K.mjs.map → IconButton-BgL3QUVO.mjs.map} +1 -1
  106. package/dist/{IconButton-CBcW7ZU8.d.mts → IconButton-BpyOr8Ev.d.mts} +2 -2
  107. package/dist/IconButton.d.mts +1 -1
  108. package/dist/ImageTile.d.mts +2 -2
  109. package/dist/InlineCombobox.d.mts +2 -2
  110. package/dist/InlineInput.d.mts +1 -1
  111. package/dist/{Input-Bimw8KFj.mjs → Input-BWlvBYB3.mjs} +6 -6
  112. package/dist/{Input-Bimw8KFj.mjs.map → Input-BWlvBYB3.mjs.map} +1 -1
  113. package/dist/{Input-CVdjkX88.d.mts → Input-qlQVD5h0.d.mts} +5 -5
  114. package/dist/Input.d.mts +1 -1
  115. package/dist/{InputProps-BwKkmImn.d.mts → InputProps-D_7MnQfE.d.mts} +2 -2
  116. package/dist/InputProps.d.mts +1 -1
  117. package/dist/IntegerValueControl.d.mts +1 -1
  118. package/dist/LayoutLoadingSpinner.d.mts +11 -0
  119. package/dist/Link.d.mts +3 -3
  120. package/dist/{ListBox-DKZpGYjo.mjs → ListBox-9jHHEaqW.mjs} +15 -15
  121. package/dist/{ListBox-DKZpGYjo.mjs.map → ListBox-9jHHEaqW.mjs.map} +1 -1
  122. package/dist/{ListBox-CDl5oZPX.d.mts → ListBox-ZE3MYMt6.d.mts} +5 -5
  123. package/dist/ListBox.d.mts +1 -1
  124. package/dist/ListBoxField.d.mts +3 -3
  125. package/dist/{LoadingShimmer-DC2vqicd.mjs → LoadingShimmer-a2Hv0kAq.mjs} +2 -2
  126. package/dist/{LoadingShimmer-DC2vqicd.mjs.map → LoadingShimmer-a2Hv0kAq.mjs.map} +1 -1
  127. package/dist/LoadingShimmer.d.mts +2 -2
  128. package/dist/{LogicRow-CkbyvrUw.d.mts → LogicRow-CbMmaWXU.d.mts} +4 -4
  129. package/dist/LogicRow.d.mts +1 -1
  130. package/dist/MaskedInput.d.mts +2 -2
  131. package/dist/MatchHighlight.d.mts +1 -1
  132. package/dist/{Menu-Dir03WA9.mjs → Menu-38UCGcte.mjs} +6 -6
  133. package/dist/{Menu-Dir03WA9.mjs.map → Menu-38UCGcte.mjs.map} +1 -1
  134. package/dist/{Menu-CYRdEnfo.d.mts → Menu-ZShdhNd7.d.mts} +4 -4
  135. package/dist/Menu.d.mts +1 -1
  136. package/dist/{MiddleTruncatedText-GXI-CPvs.mjs → MiddleTruncatedText-DnF7F_1D.mjs} +4 -4
  137. package/dist/{MiddleTruncatedText-GXI-CPvs.mjs.map → MiddleTruncatedText-DnF7F_1D.mjs.map} +1 -1
  138. package/dist/Modal.d.mts +4 -5
  139. package/dist/{PageHeader-C2IUKhCg.mjs → PageHeader-B2-Slzhl.mjs} +4 -4
  140. package/dist/{PageHeader-C2IUKhCg.mjs.map → PageHeader-B2-Slzhl.mjs.map} +1 -1
  141. package/dist/PageHeader.d.mts +2 -2
  142. package/dist/PageLayout.d.mts +1 -1
  143. package/dist/{PageSelector-vay4jpMp.d.mts → PageSelector-BcZx4nqe.d.mts} +3 -3
  144. package/dist/PageSelector.d.mts +1 -1
  145. package/dist/{Pagination-0VhVdXv0.mjs → Pagination-CtUz0gdA.mjs} +8 -8
  146. package/dist/{Pagination-0VhVdXv0.mjs.map → Pagination-CtUz0gdA.mjs.map} +1 -1
  147. package/dist/{Pagination-ygLutOst.d.mts → Pagination-j4hF7GOk.d.mts} +2 -2
  148. package/dist/Pagination.d.mts +1 -1
  149. package/dist/{Pii-C7pA72Bh.mjs → Pii-RwKn-K84.mjs} +2 -2
  150. package/dist/{Pii-C7pA72Bh.mjs.map → Pii-RwKn-K84.mjs.map} +1 -1
  151. package/dist/Pii.d.mts +1 -1
  152. package/dist/PillShell.d.mts +1 -1
  153. package/dist/{Popover-BkDpDdaO.mjs → Popover-DlXyKYL5.mjs} +6 -6
  154. package/dist/{Popover-BkDpDdaO.mjs.map → Popover-DlXyKYL5.mjs.map} +1 -1
  155. package/dist/Popover.d.mts +1 -1
  156. package/dist/ProgressBar.d.mts +1 -1
  157. package/dist/ProgressIndicator.d.mts +6 -4
  158. package/dist/{PseudoClassProps-CcSlKNev.d.mts → PseudoClassProps-BPdn-ofQ.d.mts} +1 -1
  159. package/dist/PseudoClassProps.d.mts +1 -1
  160. package/dist/{Radio-BaFutxgV.mjs → Radio-cLL9oatf.mjs} +5 -5
  161. package/dist/{Radio-BaFutxgV.mjs.map → Radio-cLL9oatf.mjs.map} +1 -1
  162. package/dist/{RadioGroup-ClMzOZl0.mjs → RadioGroup-BGo_kXKh.mjs} +4 -4
  163. package/dist/{RadioGroup-ClMzOZl0.mjs.map → RadioGroup-BGo_kXKh.mjs.map} +1 -1
  164. package/dist/{RadioGroup-BuJaitgG.d.mts → RadioGroup-BqULCH-D.d.mts} +1 -1
  165. package/dist/RadioGroup.d.mts +1 -1
  166. package/dist/RangeCalendar.d.mts +6 -1
  167. package/dist/RangeCalendarPresets.d.mts +13 -3
  168. package/dist/ResizableVerticalPanel.d.mts +22 -0
  169. package/dist/ResizeHandle.d.mts +19 -0
  170. package/dist/RightPanel.d.mts +41 -0
  171. package/dist/RightPanelLoadingContent.d.mts +7 -0
  172. package/dist/RightPanelResizeHandle.d.mts +14 -0
  173. package/dist/RuleEditorFields.d.mts +5 -5
  174. package/dist/RulesPill.d.mts +1 -1
  175. package/dist/{SearchInput-Ca3_np5e.d.mts → SearchInput-Dc90GLTF.d.mts} +3 -3
  176. package/dist/SearchInput.d.mts +1 -1
  177. package/dist/SectionHeading.d.mts +1 -1
  178. package/dist/{SegmentedControl-DgyJL4uN.mjs → SegmentedControl-CvWJGhwy.mjs} +5 -5
  179. package/dist/{SegmentedControl-DgyJL4uN.mjs.map → SegmentedControl-CvWJGhwy.mjs.map} +1 -1
  180. package/dist/{SegmentedControl-_I4sWeD7.d.mts → SegmentedControl-Db78Pzo_.d.mts} +2 -2
  181. package/dist/SegmentedControl.d.mts +1 -1
  182. package/dist/{Select-D6MqSYVa.mjs → Select-U_vQhK1A.mjs} +12 -13
  183. package/dist/Select-U_vQhK1A.mjs.map +1 -0
  184. package/dist/{Select-vwXGlHuW.d.mts → Select-bafAe2wd.d.mts} +4 -4
  185. package/dist/Select.d.mts +1 -1
  186. package/dist/Slider.d.mts +1 -1
  187. package/dist/SliderRHF.d.mts +1 -1
  188. package/dist/SliderThumb.d.mts +1 -1
  189. package/dist/{Spacer-CJp0lwkL.mjs → Spacer-BsK8tTwA.mjs} +2 -2
  190. package/dist/{Spacer-CJp0lwkL.mjs.map → Spacer-BsK8tTwA.mjs.map} +1 -1
  191. package/dist/{Spinner-BgBCCHGo.mjs → Spinner-BTyc6glU.mjs} +3 -3
  192. package/dist/{Spinner-BgBCCHGo.mjs.map → Spinner-BTyc6glU.mjs.map} +1 -1
  193. package/dist/{Stack-Bl54WmhY.mjs → Stack-Bre2oiov.mjs} +2 -2
  194. package/dist/{Stack-Bl54WmhY.mjs.map → Stack-Bre2oiov.mjs.map} +1 -1
  195. package/dist/{Stack-CkV7k7TE.d.mts → Stack-_JcvIE31.d.mts} +2 -2
  196. package/dist/Stack.d.mts +1 -1
  197. package/dist/StatusIndicator.d.mts +1 -1
  198. package/dist/{Sticker-xtDMuOoN.mjs → Sticker-CQ6sOKUj.mjs} +6 -6
  199. package/dist/{Sticker-xtDMuOoN.mjs.map → Sticker-CQ6sOKUj.mjs.map} +1 -1
  200. package/dist/{Sticker-Dhx2wqTL.d.mts → Sticker-OKVOQt_C.d.mts} +6 -6
  201. package/dist/Sticker.d.mts +1 -1
  202. package/dist/StringValueControl.d.mts +1 -1
  203. package/dist/SwatchPicker.d.mts +1 -1
  204. package/dist/Tab.d.mts +3 -3
  205. package/dist/{TabBar-D6UocZXi.mjs → TabBar-B5NtgtgC.mjs} +7 -7
  206. package/dist/{TabBar-D6UocZXi.mjs.map → TabBar-B5NtgtgC.mjs.map} +1 -1
  207. package/dist/TabBarIconButton.d.mts +2 -2
  208. package/dist/{Table-cO7ZwGPM.d.mts → Table-BcAgCIWq.d.mts} +1 -1
  209. package/dist/{Table-D1WyUQuv.mjs → Table-DfUD3I2s.mjs} +8 -8
  210. package/dist/{Table-D1WyUQuv.mjs.map → Table-DfUD3I2s.mjs.map} +1 -1
  211. package/dist/Table.d.mts +1 -1
  212. package/dist/{TableBody-CirMgfAV.d.mts → TableBody-D-RDBun9.d.mts} +1 -1
  213. package/dist/TableBody.d.mts +1 -1
  214. package/dist/{TableBox-C5qWhr82.mjs → TableBox-0GvWjRln.mjs} +27 -21
  215. package/dist/{TableBox-C5qWhr82.mjs.map → TableBox-0GvWjRln.mjs.map} +1 -1
  216. package/dist/TableBox.d.mts +2 -2
  217. package/dist/{TableBoxCell-DmVX_tgn.d.mts → TableBoxCell-WXc57DwN.d.mts} +12 -9
  218. package/dist/TableBoxCell.d.mts +1 -1
  219. package/dist/TableBoxField.d.mts +4 -4
  220. package/dist/{TableBoxRow-nwq41Bpi.d.mts → TableBoxRow-BQz0a9vr.d.mts} +4 -4
  221. package/dist/TableBoxRow.d.mts +1 -1
  222. package/dist/{TableBoxRowActions-B4_ojiQo.d.mts → TableBoxRowActions-DfewtLrn.d.mts} +2 -2
  223. package/dist/TableBoxRowActions.d.mts +1 -1
  224. package/dist/TableCell.d.mts +1 -1
  225. package/dist/{TableControls-RwIPBxyU.d.mts → TableControls-C26vGkWZ.d.mts} +6 -9
  226. package/dist/{TableControls-CZ9iu3ma.mjs → TableControls-WUNbzSNq.mjs} +331 -113
  227. package/dist/TableControls-WUNbzSNq.mjs.map +1 -0
  228. package/dist/TableControls.d.mts +1 -1
  229. package/dist/{TableControlsContext-D_SBFZN1.d.mts → TableControlsContext-ChFsFEjR.d.mts} +2 -2
  230. package/dist/TableControlsContext.d.mts +1 -1
  231. package/dist/{TableHead-DMq_q_W0.d.mts → TableHead-PPaqXC0K.d.mts} +1 -1
  232. package/dist/TableHead.d.mts +1 -1
  233. package/dist/{TableHeaderCell-C2pqXBYO.d.mts → TableHeaderCell-K_avn-rR.d.mts} +1 -1
  234. package/dist/TableHeaderCell.d.mts +1 -1
  235. package/dist/{TableLayout-DQKu6Rcj.d.mts → TableLayout-_Hd-Tvto.d.mts} +1 -1
  236. package/dist/TableLayout.d.mts +1 -1
  237. package/dist/{TableRow-CPqZ8DK3.d.mts → TableRow-BTWf9xVC.d.mts} +2 -2
  238. package/dist/TableRow.d.mts +1 -1
  239. package/dist/TableTH.d.mts +1 -1
  240. package/dist/{TableViewConfigurationDropdown-BYPh4dIP.d.mts → TableViewConfigurationDropdown-BqB7pOh8.d.mts} +5 -3
  241. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  242. package/dist/{TechnicalSticker-DTjg6d2F.mjs → TechnicalSticker-ClRR_6Ly.mjs} +6 -6
  243. package/dist/{TechnicalSticker-DTjg6d2F.mjs.map → TechnicalSticker-ClRR_6Ly.mjs.map} +1 -1
  244. package/dist/TechnicalSticker.d.mts +1 -1
  245. package/dist/{Text-RcEfNFLx.mjs → Text-B0orb-cZ.mjs} +2 -2
  246. package/dist/{Text-RcEfNFLx.mjs.map → Text-B0orb-cZ.mjs.map} +1 -1
  247. package/dist/{Text-CfIFUyHt.d.mts → Text-CAKHcXSd.d.mts} +4 -4
  248. package/dist/Text.d.mts +1 -1
  249. package/dist/{TextArea-DhPBI_1-.d.mts → TextArea-NjdArapc.d.mts} +2 -2
  250. package/dist/{TextArea-ZMgbE_Lh.mjs → TextArea-n4IKHJKo.mjs} +4 -4
  251. package/dist/{TextArea-ZMgbE_Lh.mjs.map → TextArea-n4IKHJKo.mjs.map} +1 -1
  252. package/dist/TextArea.d.mts +1 -1
  253. package/dist/{TextUnderlineTooltip-BzmmiJlC.d.mts → TextUnderlineTooltip-Duzxfc_r.d.mts} +3 -3
  254. package/dist/TextUnderlineTooltip.d.mts +1 -1
  255. package/dist/Tile.d.mts +2 -2
  256. package/dist/Toast.d.mts +1 -1
  257. package/dist/{Toggle-BPgfSjuu.mjs → Toggle-e8DCYa6i.mjs} +7 -7
  258. package/dist/{Toggle-BPgfSjuu.mjs.map → Toggle-e8DCYa6i.mjs.map} +1 -1
  259. package/dist/{Toggle-BGGQ4Ukl.d.mts → Toggle-fh80PA8P.d.mts} +1 -1
  260. package/dist/Toggle.d.mts +1 -1
  261. package/dist/{Tooltip-D_a-RwAN.d.mts → Tooltip-DabloV0o.d.mts} +3 -3
  262. package/dist/{Tooltip-BvDbmXak.mjs → Tooltip-iJcfJqxn.mjs} +5 -5
  263. package/dist/{Tooltip-BvDbmXak.mjs.map → Tooltip-iJcfJqxn.mjs.map} +1 -1
  264. package/dist/Tooltip.d.mts +1 -1
  265. package/dist/{TruncatedText-BJnowVTx.d.mts → TruncatedText-B1W4BivL.d.mts} +2 -2
  266. package/dist/codec-B0dZTwlG.d.mts +29 -0
  267. package/dist/codec.d.mts +2 -0
  268. package/dist/components/Attribute/index.mjs +7 -7
  269. package/dist/components/Attribute/index.mjs.map +1 -1
  270. package/dist/components/Badge/index.mjs +1 -1
  271. package/dist/components/Banner/index.mjs +3 -3
  272. package/dist/components/BottomPanel/index.d.mts +2 -0
  273. package/dist/components/BottomPanel/index.mjs +293 -0
  274. package/dist/components/BottomPanel/index.mjs.map +1 -0
  275. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  276. package/dist/components/Breadcrumbs/index.mjs +1 -1
  277. package/dist/components/Button/index.d.mts +2 -2
  278. package/dist/components/Button/index.mjs +1 -1
  279. package/dist/components/ButtonGroup/index.mjs +4 -4
  280. package/dist/components/Card/index.d.mts +2 -2
  281. package/dist/components/Card/index.mjs +1 -1
  282. package/dist/components/CardV2/index.d.mts +1 -1
  283. package/dist/components/CardV2/index.mjs +1 -1
  284. package/dist/components/Checkbox/index.d.mts +1 -1
  285. package/dist/components/Checkbox/index.mjs +1 -1
  286. package/dist/components/Combobox/index.d.mts +2 -2
  287. package/dist/components/Combobox/index.mjs +1 -1
  288. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  289. package/dist/components/DataTable/TableControls/index.d.mts +19 -16
  290. package/dist/components/DataTable/TableControls/index.mjs +2 -2
  291. package/dist/components/DataTable/index.mjs +25 -25
  292. package/dist/components/DataTable/index.mjs.map +1 -1
  293. package/dist/components/DataTable/types.d.mts +2 -2
  294. package/dist/components/DatePicker/index.d.mts +5 -5
  295. package/dist/components/DatePicker/index.mjs +1 -1
  296. package/dist/components/DropdownButton/index.mjs +1 -1
  297. package/dist/components/DropdownMenu/index.d.mts +1 -1
  298. package/dist/components/DropdownMenu/index.mjs +1 -1
  299. package/dist/components/FloatingPanel/index.mjs +8 -8
  300. package/dist/components/FloatingPanel/index.mjs.map +1 -1
  301. package/dist/components/FormControl/index.d.mts +2 -2
  302. package/dist/components/FormControl/index.mjs +2 -2
  303. package/dist/components/FormField/index.d.mts +1 -1
  304. package/dist/components/FormField/index.mjs +1 -1
  305. package/dist/components/Grid/index.d.mts +3 -0
  306. package/dist/components/Grid/index.mjs +85 -0
  307. package/dist/components/Grid/index.mjs.map +1 -0
  308. package/dist/components/HoverCopyableField/index.d.mts +2 -2
  309. package/dist/components/HoverCopyableField/index.mjs +2 -2
  310. package/dist/components/ImageTile/index.mjs +10 -10
  311. package/dist/components/Input/index.d.mts +1 -1
  312. package/dist/components/Input/index.mjs +1 -1
  313. package/dist/components/Link/index.mjs +4 -4
  314. package/dist/components/Link/index.mjs.map +1 -1
  315. package/dist/components/ListBox/index.d.mts +3 -3
  316. package/dist/components/ListBox/index.mjs +1 -1
  317. package/dist/components/LoadingShimmer/index.mjs +1 -1
  318. package/dist/components/MaskedInput/index.mjs +2 -2
  319. package/dist/components/MatchHighlight/index.mjs +1 -1
  320. package/dist/components/Menu/index.d.mts +1 -1
  321. package/dist/components/Menu/index.mjs +1 -1
  322. package/dist/components/Modal/index.mjs +42 -12
  323. package/dist/components/Modal/index.mjs.map +1 -1
  324. package/dist/components/PageHeader/index.mjs +1 -1
  325. package/dist/components/Pagination/index.d.mts +3 -3
  326. package/dist/components/Pagination/index.mjs +1 -1
  327. package/dist/components/Pii/index.mjs +1 -1
  328. package/dist/components/Popover/index.mjs +1 -1
  329. package/dist/components/ProgressBar/index.mjs +2 -2
  330. package/dist/components/ProgressIndicator/index.mjs +14 -10
  331. package/dist/components/ProgressIndicator/index.mjs.map +1 -1
  332. package/dist/components/Radio/index.mjs +1 -1
  333. package/dist/components/RadioGroup/index.d.mts +1 -1
  334. package/dist/components/RadioGroup/index.mjs +1 -1
  335. package/dist/components/RightPanel/index.d.mts +2 -0
  336. package/dist/components/RightPanel/index.mjs +294 -0
  337. package/dist/components/RightPanel/index.mjs.map +1 -0
  338. package/dist/components/SegmentedControl/index.d.mts +1 -1
  339. package/dist/components/SegmentedControl/index.mjs +1 -1
  340. package/dist/components/Select/index.d.mts +1 -1
  341. package/dist/components/Select/index.mjs +1 -1
  342. package/dist/components/Slider/index.mjs +4 -4
  343. package/dist/components/Spacer/index.mjs +1 -1
  344. package/dist/components/Spinner/index.mjs +1 -1
  345. package/dist/components/Stack/index.d.mts +1 -1
  346. package/dist/components/Stack/index.mjs +1 -1
  347. package/dist/components/StatusIndicator/index.mjs +2 -2
  348. package/dist/components/Sticker/index.d.mts +1 -1
  349. package/dist/components/Sticker/index.mjs +1 -1
  350. package/dist/components/SwatchPicker/index.mjs +1 -1
  351. package/dist/components/TabBar/index.mjs +1 -1
  352. package/dist/components/Table/index.d.mts +7 -7
  353. package/dist/components/Table/index.mjs +1 -1
  354. package/dist/components/TableBox/index.d.mts +2 -2
  355. package/dist/components/TableBox/index.mjs +1 -1
  356. package/dist/components/TechnicalSticker/index.mjs +1 -1
  357. package/dist/components/Text/index.d.mts +1 -1
  358. package/dist/components/Text/index.mjs +1 -1
  359. package/dist/components/TextArea/index.d.mts +1 -1
  360. package/dist/components/TextArea/index.mjs +1 -1
  361. package/dist/components/Tile/index.mjs +5 -5
  362. package/dist/components/Toast/index.mjs +5 -5
  363. package/dist/components/Toggle/index.d.mts +1 -1
  364. package/dist/components/Toggle/index.mjs +1 -1
  365. package/dist/components/Tooltip/index.d.mts +3 -3
  366. package/dist/components/Tooltip/index.mjs +1 -1
  367. package/dist/compound-expression.d.mts +1 -1
  368. package/dist/{constants-BASogfT_.d.mts → constants-DcJ3tnwY.d.mts} +1 -1
  369. package/dist/constants.d.mts +1 -1
  370. package/dist/date-filter-BbWgAXy3.mjs +176 -0
  371. package/dist/date-filter-BbWgAXy3.mjs.map +1 -0
  372. package/dist/date-range-rule-value-DBEEWTQp.d.mts +17 -0
  373. package/dist/date-range-rule-value.d.mts +2 -0
  374. package/dist/date-rule-intent-BArNGT2E.d.mts +20 -0
  375. package/dist/date-rule-intent.d.mts +2 -0
  376. package/dist/display.d.mts +2 -2
  377. package/dist/fieldPickerOptions.d.mts +2 -2
  378. package/dist/{filter-size-context-Bw5F7082.d.mts → filter-size-context-D1UhTwOG.d.mts} +2 -2
  379. package/dist/filter-size-context.d.mts +1 -1
  380. package/dist/helpers.d.mts +1 -1
  381. package/dist/{index--5Mfhlkj.d.mts → index-DASkW991.d.mts} +2 -2
  382. package/dist/{index-C1bz13uw.d.mts → index-Dc_BgmPv.d.mts} +5 -5
  383. package/dist/{index-DiCnyORA.d.mts → index-Dpo-RP6S.d.mts} +5 -5
  384. package/dist/index-dhjtMp5F.d.mts +1 -0
  385. package/dist/index-uY8Qbwfx.d.mts +1 -0
  386. package/dist/index.d.mts +1 -1
  387. package/dist/index2.d.mts +1 -1
  388. package/dist/index3.d.mts +3 -3
  389. package/dist/index4.d.mts +14 -11
  390. package/dist/{input-CzO-6_1V.d.mts → input-M7BEIewR.d.mts} +3 -3
  391. package/dist/inputFields.d.mts +11 -11
  392. package/dist/{intersperse-yd3oMrQl.mjs → intersperse-DQAyfeEw.mjs} +1 -1
  393. package/dist/{intersperse-yd3oMrQl.mjs.map → intersperse-DQAyfeEw.mjs.map} +1 -1
  394. package/dist/lib/GlobalStyles.mjs +1 -1
  395. package/dist/lib/HeadlessAriaButton.mjs +1 -1
  396. package/dist/lib/MiddleTruncatedText.mjs +1 -1
  397. package/dist/lib/PDSProvider.d.mts +1 -1
  398. package/dist/lib/PDSProvider.mjs +1 -1
  399. package/dist/lib/TruncatedText.d.mts +1 -1
  400. package/dist/lib/TruncatedText.mjs +2 -2
  401. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  402. package/dist/lib/TruncatedTextWithTooltip.mjs +2 -2
  403. package/dist/lib/date-filter/index.d.mts +3 -0
  404. package/dist/lib/date-filter/index.mjs +2 -0
  405. package/dist/lib/embeddedSurfaceProtocol.d.mts +13 -1
  406. package/dist/lib/embeddedSurfaceProtocol.mjs +32 -5
  407. package/dist/lib/embeddedSurfaceProtocol.mjs.map +1 -1
  408. package/dist/lib/message.d.mts +1 -1
  409. package/dist/lib/pseudoClass.d.mts +8 -8
  410. package/dist/lib/useEmbeddedSurface.d.mts +31 -3
  411. package/dist/lib/useEmbeddedSurface.mjs +118 -13
  412. package/dist/lib/useEmbeddedSurface.mjs.map +1 -1
  413. package/dist/lib/useResizablePanel.d.mts +49 -0
  414. package/dist/lib/useResizablePanel.mjs +75 -0
  415. package/dist/lib/useResizablePanel.mjs.map +1 -0
  416. package/dist/{message-Cu84fcqB.d.mts → message-DaiDXonE.d.mts} +1 -1
  417. package/dist/mixins/focus.d.mts +1 -1
  418. package/dist/mixins/focus.mjs +1 -1
  419. package/dist/mixins/hoverable.d.mts +2 -2
  420. package/dist/mixins/hoverable.mjs +2 -2
  421. package/dist/mixins/input.d.mts +1 -1
  422. package/dist/mixins/input.mjs +2 -2
  423. package/dist/mixins/menuItem.d.mts +2 -2
  424. package/dist/mixins/menuItem.mjs +1 -1
  425. package/dist/mixins/print/index.mjs +1 -1
  426. package/dist/mixins/text.d.mts +1 -1
  427. package/dist/mixins/text.mjs +1 -1
  428. package/dist/{operators-CmSqHnTH.d.mts → operators-BsSl7gPE.d.mts} +10 -3
  429. package/dist/operators.d.mts +2 -2
  430. package/dist/patterns/LayoutLoadingShimmer/index.mjs +6 -6
  431. package/dist/patterns/LayoutLoadingSpinner/index.d.mts +2 -0
  432. package/dist/patterns/LayoutLoadingSpinner/index.mjs +56 -0
  433. package/dist/patterns/LayoutLoadingSpinner/index.mjs.map +1 -0
  434. package/dist/patterns/PageLayout/index.mjs +1 -1
  435. package/dist/relative-date-label.d.mts +15 -0
  436. package/dist/styledComponentsInterop-8zScIQyC.mjs +33 -0
  437. package/dist/styledComponentsInterop-8zScIQyC.mjs.map +1 -0
  438. package/dist/{text-BaQdW8qa.d.mts → text-DjTGRUM1.d.mts} +1 -1
  439. package/dist/{theme-D9Y6NOzb.d.mts → theme-Biwx2eJZ.d.mts} +1 -1
  440. package/dist/theme.d.mts +1 -1
  441. package/dist/{types-NJtAxsU1.d.mts → types-B5VmRRMR.d.mts} +5 -3
  442. package/dist/types-Bsf1VsW6.d.mts +24 -0
  443. package/dist/{types-TV9nVfSe.d.mts → types-Cg3aXHUh2.d.mts} +1 -1
  444. package/dist/{types-DEh_pXgS.d.mts → types-Df0D37uh.d.mts} +3 -1
  445. package/dist/{types-C-TkDdkG.d.mts → types-V8UJX-rk.d.mts} +14 -2
  446. package/dist/types.d.mts +1 -1
  447. package/dist/types2.d.mts +2 -2
  448. package/dist/types3.d.mts +2 -2
  449. package/dist/types4.d.mts +2 -2
  450. package/dist/types5.d.mts +2 -0
  451. package/dist/url-state-ektb0HnB.d.mts +42 -0
  452. package/dist/url-state.d.mts +2 -0
  453. package/dist/useComboboxFooterAction.d.mts +1 -1
  454. package/dist/{useFilterStateV2-C4itmN4S.d.mts → useFilterStateV2-BB14vCC-.d.mts} +3 -3
  455. package/dist/useFilterStateV2.d.mts +1 -1
  456. package/dist/{useFormField-eftOPiXj.mjs → useFormField-Bz2iMPBO.mjs} +2 -2
  457. package/dist/{useFormField-eftOPiXj.mjs.map → useFormField-Bz2iMPBO.mjs.map} +1 -1
  458. package/dist/{useFormField-B2U4GOH4.d.mts → useFormField-CQo08dR4.d.mts} +2 -2
  459. package/dist/useFormField.d.mts +1 -1
  460. package/dist/{useFormGroup-BMukAMAd.mjs → useFormGroup-CaTiD_Yt.mjs} +1 -1
  461. package/dist/{useFormGroup-BMukAMAd.mjs.map → useFormGroup-CaTiD_Yt.mjs.map} +1 -1
  462. package/dist/{useTableBoxDragAndDrop-CpemHLhL.d.mts → useTableBoxDragAndDrop-B-Dev5D6.d.mts} +1 -1
  463. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  464. package/dist/useTruncation.d.mts +1 -1
  465. package/dist/{utilities-DnSIlR1i.d.mts → utilities-BHMNnJ8h.d.mts} +1 -1
  466. package/dist/utilities.d.mts +1 -1
  467. package/dist/utils/storybook.mjs +1 -1
  468. package/dist/utils/testing.d.mts +1 -1
  469. package/dist/utils/testing.mjs +1 -1
  470. package/dist/utils.d.mts +1 -1
  471. package/dist/utils2.d.mts +12 -1
  472. package/dist/{validation-B5IXsdkE.d.mts → validation-B22QjCrV.d.mts} +3 -3
  473. package/dist/validation.d.mts +1 -1
  474. package/dist/{value-control-resolver-BPlTeIX7.d.mts → value-control-resolver-qKTH1ErF.d.mts} +5 -3
  475. package/dist/value-control-resolver.d.mts +1 -1
  476. package/dist/variables/keyframes.mjs +1 -1
  477. package/llms.txt +6 -6
  478. package/package.json +14 -2
  479. package/skills/ui-authoring/COMPONENTS.md +71 -305
  480. package/skills/ui-authoring/PATTERNS.md +364 -0
  481. package/skills/ui-authoring/SKILL.md +15 -147
  482. package/skills/ui-authoring/TOKENS.md +400 -0
  483. package/dist/Combobox-xBrxiUAu.mjs.map +0 -1
  484. package/dist/DatePicker-BlnE2MBD.mjs.map +0 -1
  485. package/dist/FormField-B9P3BWvS.mjs.map +0 -1
  486. package/dist/HoverCopyableField-0Bzygbp9.mjs.map +0 -1
  487. package/dist/Select-D6MqSYVa.mjs.map +0 -1
  488. package/dist/TableControls-CZ9iu3ma.mjs.map +0 -1
  489. package/skills/ui-authoring/EXAMPLES.md +0 -370
  490. package/skills/ui-authoring/REFERENCE.md +0 -293
  491. /package/dist/{index-BMBcfD_R.d.mts → index-8SLBz2NH.d.mts} +0 -0
  492. /package/dist/{index-BOn0AAue.d.mts → index-BINnViIh.d.mts} +0 -0
  493. /package/dist/{index-BYd3Btr1.d.mts → index-B_BBnMou.d.mts} +0 -0
  494. /package/dist/{index-CKKoxA9V.d.mts → index-BcsXXrHq.d.mts} +0 -0
  495. /package/dist/{index-CNxS4Tlu.d.mts → index-Bt4QNofW.d.mts} +0 -0
  496. /package/dist/{index-CWB6exYm.d.mts → index-BwFl_eS0.d.mts} +0 -0
  497. /package/dist/{index-CsuikFeJ.d.mts → index-CDGG7lCB.d.mts} +0 -0
  498. /package/dist/{index-CtJuGxUp.d.mts → index-CMuRFTR3.d.mts} +0 -0
  499. /package/dist/{index-CzItj62a.d.mts → index-CX869wwk.d.mts} +0 -0
  500. /package/dist/{index-D5tSVhTd.d.mts → index-CliqZ9rj.d.mts} +0 -0
  501. /package/dist/{index-DGsJdI5l.d.mts → index-CuheJfs-.d.mts} +0 -0
  502. /package/dist/{index-DkrC-i1D.d.mts → index-DBGd4WeR.d.mts} +0 -0
  503. /package/dist/{index-Es5nKSSL.d.mts → index-DDdPqD_H.d.mts} +0 -0
  504. /package/dist/{index-FtE8MXJ_.d.mts → index-DMRtRo7y.d.mts} +0 -0
  505. /package/dist/{index-IE5cwTAE2.d.mts → index-Dflz2i1X.d.mts} +0 -0
  506. /package/dist/{index-Oio5ygqN.d.mts → index-DvmLVvRD.d.mts} +0 -0
  507. /package/dist/{index-ehD5GjMH.d.mts → index-Wc1llEvP.d.mts} +0 -0
@@ -1,34 +1,35 @@
1
- import { isActive, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
2
- import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
3
- import "./variables/transitions.mjs";
4
- import { paragraphMixins } from "./mixins/text.mjs";
5
- import { n as Stack, t as HStack } from "./Stack-Bl54WmhY.mjs";
1
+ import { a as styled, n as createGlobalStyle, r as css } from "./styledComponentsInterop-8zScIQyC.mjs";
6
2
  import { TruncatedText } from "./lib/TruncatedText.mjs";
7
- import { t as Card_default } from "./Card-BMCB9eFC.mjs";
8
- import { t as Spacer_default } from "./Spacer-CJp0lwkL.mjs";
9
- import { i as Paragraph, r as Label$1 } from "./Text-RcEfNFLx.mjs";
10
- import { a as Tooltip } from "./Tooltip-BvDbmXak.mjs";
3
+ import { paragraphMixins } from "./mixins/text.mjs";
4
+ import { t as Card_default } from "./Card-CKrJtn1f.mjs";
5
+ import { t as Spacer_default } from "./Spacer-BsK8tTwA.mjs";
6
+ import { i as Paragraph, r as Label$1 } from "./Text-B0orb-cZ.mjs";
7
+ import "./variables/transitions.mjs";
8
+ import { a as Tooltip } from "./Tooltip-iJcfJqxn.mjs";
9
+ import { isActive, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
11
10
  import { useScrollOverflow } from "./lib/useScrollOverflow.mjs";
12
11
  import { Z_INDICES } from "./lib/zindex.mjs";
13
- import { n as Button, t as IconButton } from "./IconButton-BfDlic2K.mjs";
14
- import { r as InputGroup } from "./Input-Bimw8KFj.mjs";
12
+ import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
13
+ import { n as Stack, t as HStack } from "./Stack-Bre2oiov.mjs";
14
+ import { n as Button, t as IconButton } from "./IconButton-BgL3QUVO.mjs";
15
+ import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-B5NtgtgC.mjs";
16
+ import { r as InputGroup } from "./Input-BWlvBYB3.mjs";
15
17
  import Input_default from "./components/Input/index.mjs";
16
- import { c as MenuList, s as MenuItem } from "./Menu-Dir03WA9.mjs";
17
- import { n as DropdownMenu_default } from "./DropdownMenu-BCyV8nC0.mjs";
18
- import { t as Combobox } from "./Combobox-xBrxiUAu.mjs";
19
- import { s as Popover_default } from "./Popover-BkDpDdaO.mjs";
20
- import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-D6UocZXi.mjs";
21
- import { t as Toggle } from "./Toggle-BPgfSjuu.mjs";
22
- import { t as ListBox } from "./ListBox-DKZpGYjo.mjs";
23
- import { m as FormField, o as ComboboxField } from "./FormField-B9P3BWvS.mjs";
24
- import { n as DatePicker, t as DateRangePicker } from "./DatePicker-BlnE2MBD.mjs";
18
+ import { c as MenuList, s as MenuItem } from "./Menu-38UCGcte.mjs";
19
+ import { n as DropdownMenu_default } from "./DropdownMenu-CUnf420M.mjs";
20
+ import { t as Combobox } from "./Combobox-BUtqtzKl.mjs";
21
+ import { s as Popover_default } from "./Popover-DlXyKYL5.mjs";
22
+ import { t as Toggle } from "./Toggle-e8DCYa6i.mjs";
23
+ import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue, t as formatDateFilterValue } from "./date-filter-BbWgAXy3.mjs";
24
+ import { t as ListBox } from "./ListBox-9jHHEaqW.mjs";
25
+ import { m as FormField, o as ComboboxField } from "./FormField-oBKH25qf.mjs";
26
+ import { n as DatePicker, t as DateRangePicker } from "./DatePicker-CLP-ajza.mjs";
25
27
  import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
26
- import styled, { createGlobalStyle, css } from "styled-components";
27
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
28
- import { Fragment as Fragment$1, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
29
- import { CaretDownIcon, CheckIcon, CircleInfoIcon, CirclePlusIcon, CopyIcon, FilterIcon, MoreIcon, PlusIcon, RotateCcwIcon, SaveIcon, SearchIcon, SettingsIcon, TrashIcon, XIcon } from "@persona/icons";
28
+ import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
29
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
30
+ import { CaretDownIcon, CheckIcon, CircleInfoIcon, CirclePlusIcon, CopyIcon, FilterIcon, MoreIcon, PlusIcon, RotateCcwIcon, SaveIcon, SearchIcon, SettingsIcon, StarIcon, TrashIcon, XIcon } from "@persona/icons";
30
31
  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, XIcon as XIcon$1 } from "@persona/icons/12px";
31
- import { debounce, isEqual, noop, startCase, union, uniqueId } from "lodash-es";
32
+ import { debounce, isEqual, noop, partition, startCase, union, uniqueId } from "lodash-es";
32
33
  import { useId } from "react-aria";
33
34
  import Fuse from "fuse.js";
34
35
  import { DragIcon as DragIcon$1 } from "@persona/icons/24px";
@@ -207,7 +208,7 @@ const CompactSearchInput = styled(SearchInput)`
207
208
  const CompactBar = ({ title, searchProps, showFilters, setShowFilters, filtersId, isLoading, propertiesButton, tableActions, "data-tour-target": dataTourTarget, filterPanel }) => {
208
209
  const autoExpandSearch = !title;
209
210
  const [showSearch, setShowSearch] = useState(autoExpandSearch);
210
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(DataTableCompactBar, {
211
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(DataTableCompactBar, {
211
212
  "data-tour-target": dataTourTarget,
212
213
  justify: "space-between",
213
214
  align: "center",
@@ -327,7 +328,7 @@ const TabOverflowContainer = styled.div`
327
328
  position: absolute;
328
329
  height: 32px;
329
330
  `;
330
- const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditViews, handleNameChange, onDuplicateView, onDeleteView, onSelectView, onResetCurrentView, onSaveView, isViewDirty, showTabContextMenu, setShowTabContextMenu, className, ...rest }) => {
331
+ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditViews, handleNameChange, onDuplicateView, onDeleteView, onSelectView, onResetCurrentView, onSaveView, onSetDefaultView, isViewDirty, showTabContextMenu, setShowTabContextMenu, className, ...rest }) => {
331
332
  const inputRef = useRef(null);
332
333
  const tab = /* @__PURE__ */ jsx(StyledTab, {
333
334
  id: `${tabIdPrefix}${view.id}`,
@@ -398,6 +399,17 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
398
399
  onKeyDown: enterProxiesClick,
399
400
  children: "Save"
400
401
  }),
402
+ onSetDefaultView && /* @__PURE__ */ jsx(MenuItem, {
403
+ id: "table-controls__view__menu-set-default",
404
+ prefixIcon: /* @__PURE__ */ jsx(StarIcon, {}),
405
+ disabled: view.isDefault,
406
+ onClick: async () => {
407
+ await onSetDefaultView(view.id);
408
+ setShowTabContextMenu(false);
409
+ },
410
+ onKeyDown: enterProxiesClick,
411
+ children: view.isDefault ? "Already the default" : "Set as default"
412
+ }),
401
413
  onDeleteView && /* @__PURE__ */ jsx(MenuItem, {
402
414
  id: "table-controls__view__menu-delete",
403
415
  prefixIcon: /* @__PURE__ */ jsx(TrashIcon, {}),
@@ -510,7 +522,7 @@ const ProductTourStyles = createGlobalStyle`
510
522
  }
511
523
  }
512
524
  `;
513
- const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView, onDuplicateView, onDeleteView, onViewNameChange, onSaveView, isViewDirty, canEditViews, showFilters, setShowFilters, searchProps, filtersId, propertiesButton, tableActions, isLoading, showViews, selectedRows = [], bulkActions, onResetCurrentView, onClearSelection, title, "data-tour-target": dataTourTarget, compact, onError, filterPanel }) => {
525
+ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView, onDuplicateView, onDeleteView, onViewNameChange, onSaveView, onSetDefaultView, isViewDirty, canEditViews, showFilters, setShowFilters, searchProps, filtersId, propertiesButton, tableActions, isLoading, showViews, selectedRows = [], bulkActions, onResetCurrentView, onClearSelection, title, "data-tour-target": dataTourTarget, compact, onError, filterPanel }) => {
514
526
  const tabListRef = useRef(null);
515
527
  const tabOverflowRef = useRef(null);
516
528
  const [hiddenViews, setHiddenViews] = useState([]);
@@ -617,7 +629,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
617
629
  children: displayLabel
618
630
  }, key);
619
631
  });
620
- return /* @__PURE__ */ jsxs(Fragment, { children: [
632
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
621
633
  /* @__PURE__ */ jsx(ProductTourStyles, {}),
622
634
  (title || showViews || canEditViews && onSaveView || tableActions || bulkActions) && /* @__PURE__ */ jsx(ViewsBar, {
623
635
  ref: tabListRef,
@@ -645,7 +657,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
645
657
  tableActions
646
658
  ]
647
659
  }),
648
- children: showViews && /* @__PURE__ */ jsxs(Fragment, { children: [
660
+ children: showViews && /* @__PURE__ */ jsxs(Fragment$1, { children: [
649
661
  /* @__PURE__ */ jsx(LockedViewTab, {
650
662
  id: `${TAB_ID_PREFIX}default`,
651
663
  selected: !currentView,
@@ -672,6 +684,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
672
684
  onSelectView,
673
685
  onResetCurrentView,
674
686
  onSaveView,
687
+ onSetDefaultView,
675
688
  isViewDirty: isViewDirty ?? false,
676
689
  selected: view.id === currentView,
677
690
  showTabContextMenu: showTabContextMenu && !currentViewHidden,
@@ -699,6 +712,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
699
712
  onDeleteView,
700
713
  onResetCurrentView,
701
714
  onSaveView,
715
+ onSetDefaultView,
702
716
  isViewDirty: isViewDirty ?? false,
703
717
  showTabContextMenu: showTabContextMenu && currentViewHidden,
704
718
  setShowTabContextMenu,
@@ -739,7 +753,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
739
753
  };
740
754
  //#endregion
741
755
  //#region components/DataTable/TableControls/TableControls.tsx
742
- const TableControls = ({ filterPanel, searchProps, defaultShowFilters, showFilters: controlledShowFilters, setShowFilters: controlledSetShowFilters, className, tableActions, propertiesButton, isLoading, showViews, canEditViews, onSelectView, views, currentView, onAddView, onViewNameChange, onDuplicateView, onDeleteView, onSaveView, isViewDirty, selectedRows, bulkActions, onClearSelection, title, presetViews, compact, columnConfigurationProps, showFiltersAlways = false, onError, "data-tour-target": dataTourTarget }) => {
756
+ const TableControls = ({ filterPanel, searchProps, defaultShowFilters, showFilters: controlledShowFilters, setShowFilters: controlledSetShowFilters, className, tableActions, propertiesButton, isLoading, showViews, canEditViews, onSelectView, views, currentView, onAddView, onViewNameChange, onDuplicateView, onDeleteView, onSaveView, onSetDefaultView, isViewDirty, selectedRows, bulkActions, onClearSelection, title, presetViews, compact, columnConfigurationProps, showFiltersAlways = false, onError, "data-tour-target": dataTourTarget }) => {
743
757
  const filtersId = useId();
744
758
  const [internalShowFilters, internalSetShowFilters] = useState(defaultShowFilters ?? false);
745
759
  const showFilters = controlledShowFilters != null ? controlledShowFilters : internalShowFilters;
@@ -767,6 +781,7 @@ const TableControls = ({ filterPanel, searchProps, defaultShowFilters, showFilte
767
781
  onDuplicateView: compact ? void 0 : onDuplicateView,
768
782
  onViewNameChange: compact ? void 0 : onViewNameChange,
769
783
  onSaveView: compact ? void 0 : onSaveView,
784
+ onSetDefaultView: compact ? void 0 : onSetDefaultView,
770
785
  isViewDirty,
771
786
  canEditViews: compact ? false : canEditViews,
772
787
  showFilters,
@@ -834,8 +849,35 @@ function reorder(list, startIndex, endIndex) {
834
849
  result.splice(endIndex, 0, removed);
835
850
  return result;
836
851
  }
852
+ /**
853
+ * Translates a drag result into indices into the full list. dnd reports positions among the
854
+ * rendered rows, which diverge from the full list as soon as the view is filtered.
855
+ *
856
+ * Returns null when either end cannot be resolved, in which case the drag should be ignored
857
+ * rather than applied at the wrong position.
858
+ */
859
+ function resolveDragIndices(listKeys, renderedKeys, draggableId, destinationIndex) {
860
+ const destinationKey = renderedKeys[destinationIndex];
861
+ if (destinationKey == null) return null;
862
+ const from = listKeys.indexOf(draggableId);
863
+ const to = listKeys.indexOf(destinationKey);
864
+ return from === -1 || to === -1 ? null : {
865
+ from,
866
+ to
867
+ };
868
+ }
837
869
  //#endregion
838
870
  //#region components/DataTable/TableControls/TableViewConfigurationDropdown.tsx
871
+ const SHOWN_DROPPABLE_ID = "cases-view__configure-shown-columns";
872
+ const startsCapitalized = (label) => {
873
+ const first = label.charAt(0);
874
+ return first !== "" && first === first.toUpperCase() && first !== first.toLowerCase();
875
+ };
876
+ const byLabel = (a, b) => {
877
+ const aCapitalized = startsCapitalized(a.label);
878
+ if (aCapitalized !== startsCapitalized(b.label)) return aCapitalized ? -1 : 1;
879
+ return a.label.localeCompare(b.label, void 0, { numeric: true });
880
+ };
839
881
  const DndSection = styled("div")`
840
882
  max-height: 400px;
841
883
 
@@ -912,10 +954,20 @@ const TableViewConfigurationDropdown = ({ disabled = false, disabledTooltipMessa
912
954
  })
913
955
  })] });
914
956
  };
915
- const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateColumnConfiguration, getColumnDisabled }) => {
957
+ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateColumnConfiguration, getColumnDisabled, sortByRelevance = false }) => {
916
958
  const [searchTerm, setSearchTerm] = useState("");
917
959
  const fuse = useMemo(() => {
918
- return new Fuse(attributeOptions, {
960
+ return new Fuse(attributeOptions, sortByRelevance ? {
961
+ shouldSort: true,
962
+ threshold: .3,
963
+ ignoreLocation: true,
964
+ includeScore: true,
965
+ minMatchCharLength: 1,
966
+ keys: [{
967
+ name: "label",
968
+ weight: 1
969
+ }]
970
+ } : {
919
971
  shouldSort: false,
920
972
  threshold: .4,
921
973
  location: 0,
@@ -926,27 +978,49 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
926
978
  weight: 1
927
979
  }]
928
980
  });
929
- }, [attributeOptions]);
981
+ }, [attributeOptions, sortByRelevance]);
930
982
  const allOptions = useMemo(() => union(attributeOptions, columnConfiguration), [attributeOptions, columnConfiguration]);
931
- const filteredSearchOptions = searchTerm === "" ? allOptions : fuse.search(searchTerm).map(({ item }) => item);
983
+ const filteredSearchOptions = useMemo(() => {
984
+ if (searchTerm === "") return allOptions;
985
+ const results = fuse.search(searchTerm);
986
+ if (!sortByRelevance) return results.map(({ item }) => item);
987
+ return [...results].sort((a, b) => (a.score ?? 0) - (b.score ?? 0) || byLabel(a.item, b.item)).map(({ item }) => item);
988
+ }, [
989
+ allOptions,
990
+ fuse,
991
+ searchTerm,
992
+ sortByRelevance
993
+ ]);
932
994
  const hiddenAttributes = useMemo(() => {
933
- return filteredSearchOptions.filter((attribute) => {
934
- return !columnConfiguration.map((c) => c.key).includes(attribute.key);
935
- });
936
- }, [columnConfiguration, filteredSearchOptions]);
995
+ const columnConfigurationKeys = new Set(columnConfiguration.map((c) => c.key));
996
+ const hidden = filteredSearchOptions.filter((attribute) => !columnConfigurationKeys.has(attribute.key));
997
+ if (!sortByRelevance || searchTerm !== "") return hidden;
998
+ const [systemColumns, customFields] = partition(hidden, (a) => !a.isCustomField);
999
+ return [...systemColumns, ...[...customFields].sort(byLabel)];
1000
+ }, [
1001
+ columnConfiguration,
1002
+ filteredSearchOptions,
1003
+ sortByRelevance,
1004
+ searchTerm
1005
+ ]);
937
1006
  const filteredShownAttributes = useMemo(() => {
938
1007
  return columnConfiguration.filter((column) => filteredSearchOptions.map((o) => o.key).includes(column.key));
939
1008
  }, [columnConfiguration, filteredSearchOptions]);
940
1009
  const handleDragEnd = (result, _provided) => {
941
1010
  const { destination, source } = result;
942
1011
  if (!destination || destination.droppableId === source.droppableId && destination.index === source.index) return;
943
- updateColumnConfiguration(reorder(columnConfiguration, source.index, destination.index));
1012
+ const indices = resolveDragIndices(columnConfiguration.map((c) => c.key), filteredShownAttributes.map((c) => c.key), result.draggableId, destination.index);
1013
+ if (!indices) return;
1014
+ updateColumnConfiguration(reorder(columnConfiguration, indices.from, indices.to));
944
1015
  };
945
1016
  const generateShownAttributesToggle = (column) => () => {
946
1017
  updateColumnConfiguration(columnConfiguration.filter((a) => a.key !== column.key));
947
1018
  };
948
1019
  const generateHiddenAttributesToggle = (column) => () => {
949
- updateColumnConfiguration(columnConfiguration.concat(column));
1020
+ updateColumnConfiguration(columnConfiguration.concat({
1021
+ key: column.key,
1022
+ label: column.label
1023
+ }));
950
1024
  };
951
1025
  const shownColumnIds = useMemo(() => {
952
1026
  return columnConfiguration.map((c) => c.key);
@@ -993,7 +1067,7 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
993
1067
  shownDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children: "Shown attributes" }), /* @__PURE__ */ jsx(DragDropContext, {
994
1068
  onDragEnd: handleDragEnd,
995
1069
  children: /* @__PURE__ */ jsx(Droppable, {
996
- droppableId: "cases-view__configure-shown-columns",
1070
+ droppableId: SHOWN_DROPPABLE_ID,
997
1071
  renderClone: (provided, _snapshot, rubric) => {
998
1072
  return /* @__PURE__ */ jsx("div", {
999
1073
  ...provided.draggableProps,
@@ -1026,41 +1100,7 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
1026
1100
  })
1027
1101
  })] }),
1028
1102
  /* @__PURE__ */ jsx(Spacer_default, { height: 2 }),
1029
- hiddenDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children: "Hidden attributes" }), /* @__PURE__ */ jsx(DragDropContext, {
1030
- onDragEnd: handleDragEnd,
1031
- children: /* @__PURE__ */ jsx(Droppable, {
1032
- droppableId: "cases-view__configure-hidden-columns",
1033
- renderClone: (provided, _snapshot, rubric) => {
1034
- return /* @__PURE__ */ jsx("div", {
1035
- ...provided.draggableProps,
1036
- ...provided.dragHandleProps,
1037
- ref: provided.innerRef,
1038
- children: /* @__PURE__ */ jsx(AttributeDnd, { ...hiddenDndItemProps[rubric.source.index] })
1039
- });
1040
- },
1041
- children: (provided) => {
1042
- return /* @__PURE__ */ jsxs("div", {
1043
- ref: provided.innerRef,
1044
- ...provided.droppableProps,
1045
- children: [hiddenDndItemProps.map((props, idx) => {
1046
- return /* @__PURE__ */ jsx(Draggable, {
1047
- draggableId: props.column.key,
1048
- index: idx,
1049
- isDragDisabled: props.shouldDisableDrag,
1050
- children: (provided) => {
1051
- return /* @__PURE__ */ jsx("div", {
1052
- ref: provided.innerRef,
1053
- ...provided.draggableProps,
1054
- ...provided.dragHandleProps,
1055
- children: /* @__PURE__ */ jsx(AttributeDnd, { ...props })
1056
- });
1057
- }
1058
- }, `${props.column.key}`);
1059
- }), provided.placeholder]
1060
- });
1061
- }
1062
- })
1063
- })] })
1103
+ hiddenDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children: "Hidden attributes" }), hiddenDndItemProps.map((props) => /* @__PURE__ */ jsx(AttributeDnd, { ...props }, props.column.key))] })
1064
1104
  ] }) : /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Paragraph, { children: "No matching attributes" }) })
1065
1105
  ] });
1066
1106
  };
@@ -1102,6 +1142,20 @@ function TableControlsProvider({ children, ...value }) {
1102
1142
  return createElement(TableControlsContext.Provider, { value }, children);
1103
1143
  }
1104
1144
  //#endregion
1145
+ //#region components/DataTable/TableControls/FiltersV2/date-rule-intent.ts
1146
+ function dateRuleIntent(change, writesEnabled) {
1147
+ if (change.source === "clear") return { kind: "clear" };
1148
+ if (change.source === "calendar" || !writesEnabled) return change.range == null ? { kind: "clear" } : {
1149
+ kind: "absolute",
1150
+ range: change.range
1151
+ };
1152
+ return {
1153
+ kind: "relative",
1154
+ preset: change.preset,
1155
+ range: change.range
1156
+ };
1157
+ }
1158
+ //#endregion
1105
1159
  //#region components/DataTable/TableControls/FiltersV2/operators.ts
1106
1160
  /**
1107
1161
  * Operator vocabulary per field type. The UI uses this to populate the
@@ -1208,6 +1262,15 @@ function getDefaultOperatorForType(type) {
1208
1262
  function isValuelessOperator(operator) {
1209
1263
  return VALUELESS_OPERATORS.has(operator);
1210
1264
  }
1265
+ /**
1266
+ * Whether a rule's value is a date range: a range operator, or a field that is
1267
+ * one by type. Relative metadata only describes a range, so resolving or
1268
+ * labelling it on a scalar rule would put a `{ startDate, endDate }` object
1269
+ * where the wire expects a day string.
1270
+ */
1271
+ function carriesDateRange(operator, fieldType) {
1272
+ return isRangeOperator(operator) || fieldType === "date_range";
1273
+ }
1211
1274
  function isRangeOperator(operator) {
1212
1275
  return RANGE_OPERATORS.has(operator);
1213
1276
  }
@@ -1311,9 +1374,45 @@ function reconcileValueForOperator(field, nextOperator, previousOperator, value)
1311
1374
  return value ?? emptyValueForRule(field, nextOperator);
1312
1375
  }
1313
1376
  //#endregion
1377
+ //#region components/DataTable/TableControls/FiltersV2/date-range-rule-value.ts
1378
+ /**
1379
+ * The absolute bounds a rule should be queried with, or `null` when it does not
1380
+ * carry a date range.
1381
+ *
1382
+ * Relative metadata wins over the stored snapshot: the snapshot is a picture of
1383
+ * the window when it was saved, and the point of a relative rule is that the
1384
+ * window moves. The operator gate is part of this rather than the caller's job —
1385
+ * metadata only ever describes a range, so resolving it onto a scalar rule
1386
+ * would put a `{ startDate, endDate }` object where the wire expects a day.
1387
+ */
1388
+ function resolveDateRangeRuleValue(rule, fieldType) {
1389
+ if (!carriesDateRange(rule.operator, fieldType)) return null;
1390
+ const relative = parseDateFilterValue(rule.relativeDate);
1391
+ if (relative?.kind === "relative") return resolveDateFilterValue(relative);
1392
+ const parsed = parseDateFilterValue(rule.value);
1393
+ return parsed ? resolveDateFilterValue(parsed) : null;
1394
+ }
1395
+ //#endregion
1396
+ //#region components/DataTable/TableControls/FiltersV2/relative-date-label.ts
1397
+ /**
1398
+ * The preset name a rule should display instead of its dates, or `undefined`
1399
+ * when it has none and the caller should fall back to rendering the value.
1400
+ *
1401
+ * Completeness is checked against the same predicate the serialize boundary
1402
+ * uses: labelling a rule `hasCompleteValue` drops would advertise a filter the
1403
+ * request never carries.
1404
+ */
1405
+ function relativePresetLabel(value, relativeDate) {
1406
+ const parsed = relativeDate ? parseDateFilterValue(relativeDate) : null;
1407
+ if (parsed?.kind !== "relative" || !isCompleteDateRange(value)) return;
1408
+ return formatDateFilterValue(parsed) ?? void 0;
1409
+ }
1410
+ //#endregion
1314
1411
  //#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/display.ts
1315
- function valueDisplayString(value, optionLabels) {
1412
+ function valueDisplayString(value, optionLabels, relativeDate) {
1316
1413
  if (value == null) return;
1414
+ const relativeLabel = relativePresetLabel(value, relativeDate);
1415
+ if (relativeLabel) return relativeLabel;
1317
1416
  const display = (raw) => optionLabels?.[raw] ?? raw;
1318
1417
  if (Array.isArray(value)) {
1319
1418
  if (value.length === 0) return;
@@ -1443,7 +1542,7 @@ function buildFieldPickerOptions(registry, visibleCustomFieldParents, excludeFie
1443
1542
  //#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/RuleEditorFields.tsx
1444
1543
  function RuleEditorFields({ registry, field, groupIndex, ruleIndex, rule, size, operators, operatorConfigurable, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
1445
1544
  const fieldOptions = useMemo(() => buildFieldPickerOptions(registry), [registry]);
1446
- return /* @__PURE__ */ jsxs(Fragment, { children: [
1545
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
1447
1546
  /* @__PURE__ */ jsx(ComboboxField, {
1448
1547
  label: "Value",
1449
1548
  labelProps: { size },
@@ -1485,7 +1584,7 @@ function RuleEditorFields({ registry, field, groupIndex, ruleIndex, rule, size,
1485
1584
  field && !isValuelessOperator(rule.operator) ? /* @__PURE__ */ jsx(FormField, {
1486
1585
  label: "Value",
1487
1586
  labelProps: { size },
1488
- children: /* @__PURE__ */ jsx(Fragment, { children: renderValueControl(field, rule.operator, rule.value, (next) => onValueChange(groupIndex, ruleIndex, next)) })
1587
+ children: /* @__PURE__ */ jsx(Fragment$1, { children: renderValueControl(field, rule.operator, rule.value, (next, relativeDate) => onValueChange(groupIndex, ruleIndex, next, relativeDate), rule.relativeDate) })
1489
1588
  }) : null
1490
1589
  ] });
1491
1590
  }
@@ -1497,7 +1596,7 @@ function AdvancedFilterRuleRow({ registry, groupIndex, ruleIndex, rule, size, is
1497
1596
  const operatorConfigurable = field ? fieldHasMultipleOperators(field) : true;
1498
1597
  const condition = ruleIndex === 0 ? "If" : "And";
1499
1598
  const rowId = `${groupIndex}-${ruleIndex}`;
1500
- const valueDisplay = isValuelessOperator(rule.operator) ? void 0 : valueDisplayString(rule.value, registry.optionLabelsFor(rule.fieldId));
1599
+ const valueDisplay = isValuelessOperator(rule.operator) ? void 0 : valueDisplayString(rule.value, registry.optionLabelsFor(rule.fieldId), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0);
1501
1600
  const textValue = [
1502
1601
  condition,
1503
1602
  field?.label ?? rule.fieldId,
@@ -1819,13 +1918,14 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
1819
1918
  onChange,
1820
1919
  registry
1821
1920
  ]);
1822
- const handleValueChange = useCallback((groupIndex, ruleIndex, nextValue) => {
1921
+ const handleValueChange = useCallback((groupIndex, ruleIndex, nextValue, relativeDate) => {
1823
1922
  const prev = compound.groups[groupIndex]?.rules[ruleIndex];
1824
1923
  if (!prev) return;
1924
+ const { relativeDate: _previousRelativeDate, ...rest } = prev;
1825
1925
  onChange(setRuleInGroup(compound, groupIndex, ruleIndex, {
1826
- fieldId: prev.fieldId,
1827
- operator: prev.operator,
1828
- value: nextValue
1926
+ ...rest,
1927
+ value: nextValue,
1928
+ ...relativeDate ? { relativeDate } : {}
1829
1929
  }));
1830
1930
  }, [compound, onChange]);
1831
1931
  return /* @__PURE__ */ jsxs(PopoverPrimitive.Root, {
@@ -1870,7 +1970,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
1870
1970
  const isEmptyGroup = group.rules.length === 0;
1871
1971
  const hideGroupMenu = isOnlyGroup && isEmptyGroup;
1872
1972
  const deleteGroupLabel = isOnlyGroup && !isEmptyGroup ? "Clear all" : "Delete group";
1873
- return /* @__PURE__ */ jsx(Fragment$1, { children: /* @__PURE__ */ jsxs(GroupCard, {
1973
+ return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(GroupCard, {
1874
1974
  "data-test": `advanced-filter-rules__group-${groupIndex}`,
1875
1975
  role: "group",
1876
1976
  "aria-label": `Filter group ${groupIndex + 1}`,
@@ -2159,20 +2259,19 @@ const parseIsoDate$1 = (value) => {
2159
2259
  return;
2160
2260
  }
2161
2261
  };
2162
- const readIsoEndpoints = (value) => {
2163
- if (value == null || typeof value !== "object" || Array.isArray(value)) return {};
2164
- return value;
2165
- };
2166
- const useDateRange = (value) => {
2167
- const { startDate, endDate } = readIsoEndpoints(value);
2262
+ const useDateRange = (value, relativeDate) => {
2263
+ const parsedRelativeDate = parseDateFilterValue(relativeDate);
2264
+ const parsed = parsedRelativeDate?.kind === "relative" ? parsedRelativeDate : parseDateFilterValue(value);
2265
+ const resolved = parsed ? resolveDateFilterValue(parsed) : void 0;
2168
2266
  return useMemo(() => ({
2169
- startDate: parseIsoDate$1(startDate),
2170
- endDate: parseIsoDate$1(endDate)
2171
- }), [startDate, endDate]);
2267
+ startDate: parseIsoDate$1(resolved?.startDate),
2268
+ endDate: parseIsoDate$1(resolved?.endDate)
2269
+ }), [resolved?.startDate, resolved?.endDate]);
2172
2270
  };
2173
- const DateRangeValueControl = ({ field, operator, value, onChange, ariaLabel, hidePresets, portalContainer, visibleMonths }) => {
2271
+ const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange, ariaLabel, hidePresets, portalContainer, visibleMonths, relativeDatesEnabled = false }) => {
2174
2272
  const size = useFilterBarSize();
2175
- const dateRange = useDateRange(value);
2273
+ const dateRange = useDateRange(value, relativeDate);
2274
+ const noopChange = useCallback(() => void 0, []);
2176
2275
  const handleChange = useCallback((range) => {
2177
2276
  if (!range?.start || !range.end || range.start.compare(range.end) > 0) {
2178
2277
  onChange(null);
@@ -2183,6 +2282,29 @@ const DateRangeValueControl = ({ field, operator, value, onChange, ariaLabel, hi
2183
2282
  endDate: range.end.toString()
2184
2283
  });
2185
2284
  }, [onChange]);
2285
+ const handleDateFilterChange = useCallback((change) => {
2286
+ const intent = dateRuleIntent(change, relativeDatesEnabled);
2287
+ if (intent.kind === "clear") {
2288
+ handleChange(null);
2289
+ return;
2290
+ }
2291
+ if (intent.kind === "absolute") {
2292
+ handleChange(intent.range);
2293
+ return;
2294
+ }
2295
+ onChange({
2296
+ startDate: intent.range.start.toString(),
2297
+ endDate: intent.range.end.toString()
2298
+ }, {
2299
+ kind: "relative",
2300
+ preset: intent.preset
2301
+ });
2302
+ }, [
2303
+ handleChange,
2304
+ onChange,
2305
+ relativeDatesEnabled
2306
+ ]);
2307
+ const relativePreset = selectedPresetFor(parseDateFilterValue(relativeDate), relativeDatesEnabled);
2186
2308
  if (isValuelessOperator(operator)) return null;
2187
2309
  const hasCompleteRange = dateRange.startDate != null && dateRange.endDate != null;
2188
2310
  return /* @__PURE__ */ jsx(DateRangePicker, {
@@ -2191,7 +2313,9 @@ const DateRangeValueControl = ({ field, operator, value, onChange, ariaLabel, hi
2191
2313
  dateRange,
2192
2314
  hidePresets,
2193
2315
  label: null,
2194
- onChange: handleChange,
2316
+ onChange: noopChange,
2317
+ onDateFilterChange: handleDateFilterChange,
2318
+ selectedPreset: relativePreset,
2195
2319
  portalContainer,
2196
2320
  showClear: false,
2197
2321
  size,
@@ -2666,7 +2790,7 @@ const PillShell = forwardRef(function PillShell({ variant, children, bodyAriaLab
2666
2790
  "aria-haspopup": "dialog",
2667
2791
  "aria-expanded": ariaExpanded,
2668
2792
  children
2669
- }), onDismiss ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(DismissibleCaretWrapper, {
2793
+ }), onDismiss ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(DismissibleCaretWrapper, {
2670
2794
  "aria-hidden": "true",
2671
2795
  $size: resolvedSize,
2672
2796
  children: /* @__PURE__ */ jsx(CaretIcon, {})
@@ -2736,8 +2860,10 @@ const OverflowTooltipList = styled(Stack).attrs({
2736
2860
  * `optionLabels` lookup so the pill renders human-readable option labels
2737
2861
  * instead of raw option ids. Null / undefined collapses to an empty list.
2738
2862
  */
2739
- function normalizeValueToDisplay(value, optionLabels) {
2863
+ function normalizeValueToDisplay(value, optionLabels, relativeDate) {
2740
2864
  if (value == null) return [];
2865
+ const relativeLabel = relativePresetLabel(value, relativeDate);
2866
+ if (relativeLabel) return [relativeLabel];
2741
2867
  const lookup = (raw) => optionLabels?.[raw] ?? raw;
2742
2868
  if (Array.isArray(value)) {
2743
2869
  if (value.length > 0 && Array.isArray(value[0])) return [`${value.length} group${value.length === 1 ? "" : "s"}`];
@@ -2769,7 +2895,11 @@ function buildAccessibleName(field, rule, displayedValues) {
2769
2895
  const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDismiss, variant = "default", optionLabels, size, ...rest }, ref) {
2770
2896
  const reactId = useMemo(() => uniqueId("filter-pill-"), []);
2771
2897
  const resolvedSize = useFilterBarSize(size);
2772
- const displayedValues = useMemo(() => rule && !isValuelessOperator(rule.operator) ? normalizeValueToDisplay(rule.value, optionLabels) : [], [rule, optionLabels]);
2898
+ const displayedValues = useMemo(() => rule && !isValuelessOperator(rule.operator) ? normalizeValueToDisplay(rule.value, optionLabels, carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0) : [], [
2899
+ rule,
2900
+ optionLabels,
2901
+ field?.type
2902
+ ]);
2773
2903
  const accessibleName = buildAccessibleName(field, rule, displayedValues);
2774
2904
  const hasRule = rule != null;
2775
2905
  const isComplete = hasRule && (isValuelessOperator(rule.operator) || displayedValues.length > 0);
@@ -3090,6 +3220,10 @@ const EMPTY_FILTER_STATE = Object.freeze({
3090
3220
  topLevelRules: [],
3091
3221
  compound: Object.freeze({ groups: [] })
3092
3222
  });
3223
+ /** True when no filters are applied — no pills and no compound groups. */
3224
+ function isEmptyState(state) {
3225
+ return state.topLevelRules.length === 0 && state.compound.groups.length === 0;
3226
+ }
3093
3227
  //#endregion
3094
3228
  //#region components/DataTable/TableControls/FiltersV2/validation.ts
3095
3229
  /**
@@ -3615,7 +3749,7 @@ function useStableFieldIds(fieldIds) {
3615
3749
  if (previous == null || fieldIds == null || previous.length !== fieldIds.length || fieldIds.some((id, index) => previous[index] !== id)) stable.current = fieldIds;
3616
3750
  return stable.current;
3617
3751
  }
3618
- function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, singleUseFields = false, size = "md", valueControlResolver }) {
3752
+ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, relativeDatesEnabled = false, singleUseFields = false, size = "md", valueControlResolver }) {
3619
3753
  const filterState = useFilterStateV2({
3620
3754
  registry,
3621
3755
  initialState,
@@ -3730,19 +3864,21 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
3730
3864
  onChange: (compound) => {
3731
3865
  filterState.setCompound(compound);
3732
3866
  },
3733
- renderValueControl: (field, operator, value, onChange) => resolveValueControl({
3867
+ renderValueControl: (field, operator, value, onChange, relativeDate) => resolveValueControl({
3734
3868
  field,
3735
3869
  operator,
3736
3870
  value,
3871
+ relativeDate,
3737
3872
  onChange,
3738
- layout: "inline"
3873
+ layout: "inline",
3874
+ relativeDatesEnabled
3739
3875
  }, valueControlResolver),
3740
3876
  trigger: /* @__PURE__ */ jsx(RulesPill, {
3741
3877
  compound: filterState.state.compound,
3742
3878
  enabled: true,
3743
3879
  isOpen: rulesPopoverOpen
3744
3880
  })
3745
- }) : null, hasPills ? /* @__PURE__ */ jsxs(Fragment, { children: [filterState.advancedRulesEnabled ? /* @__PURE__ */ jsx(Divider, {
3881
+ }) : null, hasPills ? /* @__PURE__ */ jsxs(Fragment$1, { children: [filterState.advancedRulesEnabled ? /* @__PURE__ */ jsx(Divider, {
3746
3882
  "aria-hidden": "true",
3747
3883
  $size: size
3748
3884
  }) : null, /* @__PURE__ */ jsxs(PillsScrollRegion, {
@@ -3761,8 +3897,9 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
3761
3897
  field,
3762
3898
  operator: rule.operator,
3763
3899
  onChangeOperator: (op) => {
3900
+ const { relativeDate: _staleRelativeDate, ...rest } = rule;
3764
3901
  filterState.updateTopLevelRule(rule.id, {
3765
- ...rule,
3902
+ ...rest,
3766
3903
  operator: op,
3767
3904
  value: reconcileValueForOperator(field, op, rule.operator, rule.value)
3768
3905
  });
@@ -3771,11 +3908,17 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
3771
3908
  field,
3772
3909
  operator: rule.operator,
3773
3910
  value: rule.value,
3774
- onChange: (value) => filterState.updateTopLevelRule(rule.id, {
3775
- ...rule,
3776
- value
3777
- }),
3778
- onCommit: () => setEditingRuleId(null)
3911
+ relativeDate: rule.relativeDate,
3912
+ onChange: (value, relativeDate) => {
3913
+ const { relativeDate: _staleRelativeDate, ...rest } = rule;
3914
+ filterState.updateTopLevelRule(rule.id, {
3915
+ ...rest,
3916
+ value,
3917
+ ...relativeDate ? { relativeDate } : {}
3918
+ });
3919
+ },
3920
+ onCommit: () => setEditingRuleId(null),
3921
+ relativeDatesEnabled
3779
3922
  }, valueControlResolver),
3780
3923
  onClose: () => setEditingRuleId(null),
3781
3924
  open: isOpen,
@@ -4045,6 +4188,81 @@ function normalizeFieldSource(raw) {
4045
4188
  return raw === "system" ? "system" : "custom";
4046
4189
  }
4047
4190
  //#endregion
4048
- export { TableViewConfigurationDropdown as C, DataTableCompactBar as E, TableViewConfiguration as S, ControlBar as T, isValuelessOperator as _, hasCompleteValue as a, TableControlsProvider as b, EMPTY_FILTER_STATE as c, emptyValueForRule as d, getDefaultOperatorForType as f, isRangeOperator as g, isCompleteDateRange as h, useFilterStateV2 as i, resolveValueControl as l, getOperatorsForType as m, buildFieldRegistry as n, isFilterStateV2 as o, getOperatorsForField as p, FilterBar_default as r, pruneToRegistry as s, FieldRegistry as t, useFilterBarSize as u, reconcileValueForOperator as v, TableControls as w, useTableControls as x, TableControlsContext as y };
4191
+ //#region components/DataTable/TableControls/FiltersV2/url-state.ts
4192
+ /**
4193
+ * URL state encoding/decoding for the `fv2=` namespace.
4194
+ *
4195
+ * v2 URL state is base64'd JSON of `FilterStateV2`. Encoding is a lossless
4196
+ * mirror of the in-memory shape — no schema migrations required when the
4197
+ * vocabulary grows because the type already models OR-of-AND.
4198
+ *
4199
+ * Hosts that persist filter state elsewhere (saved views, session storage)
4200
+ * store the same encoded string the URL carries; see
4201
+ * {@link decodeFilterStateFromString}.
4202
+ */
4203
+ /** The query param the FilterBar's full rule state travels in. */
4204
+ const FILTER_STATE_URL_PARAM = "fv2";
4205
+ /** Read `fv2=…` from a query string and return the decoded state. */
4206
+ function decodeFilterStateFromUrl(search) {
4207
+ const raw = (typeof search === "string" ? new URLSearchParams(search) : search).get("fv2");
4208
+ if (raw == null) return {
4209
+ state: EMPTY_FILTER_STATE,
4210
+ hadParam: false,
4211
+ invalid: false
4212
+ };
4213
+ const decoded = tryDecode(raw);
4214
+ if (decoded == null) return {
4215
+ state: EMPTY_FILTER_STATE,
4216
+ hadParam: true,
4217
+ invalid: true
4218
+ };
4219
+ return {
4220
+ state: decoded,
4221
+ hadParam: true,
4222
+ invalid: false
4223
+ };
4224
+ }
4225
+ /**
4226
+ * Produce a `fv2=…` segment for the given state. Returns `null` when the
4227
+ * state is empty — callers should treat that as "no param at all" so URLs
4228
+ * stay clean in the common case of no filters.
4229
+ */
4230
+ function encodeFilterStateToUrlParam(state) {
4231
+ if (isEmptyState(state)) return null;
4232
+ return encodeBase64(JSON.stringify(state));
4233
+ }
4234
+ function applyFilterStateToSearchParams(params, state) {
4235
+ const encoded = encodeFilterStateToUrlParam(state);
4236
+ if (encoded == null) params.delete("fv2");
4237
+ else params.set("fv2", encoded);
4238
+ return params;
4239
+ }
4240
+ /**
4241
+ * Decode a bare base64 string (as produced by {@link encodeFilterStateToUrlParam})
4242
+ * back into a {@link FilterStateV2}, or `null` when it is absent/corrupt/from a
4243
+ * future vocabulary.
4244
+ */
4245
+ function decodeFilterStateFromString(raw) {
4246
+ if (raw == null || raw === "") return null;
4247
+ return tryDecode(raw);
4248
+ }
4249
+ function tryDecode(raw) {
4250
+ try {
4251
+ const json = decodeBase64(raw);
4252
+ const parsed = JSON.parse(json);
4253
+ if (!isFilterStateV2(parsed)) return null;
4254
+ return parsed;
4255
+ } catch {
4256
+ return null;
4257
+ }
4258
+ }
4259
+ function encodeBase64(input) {
4260
+ return btoa(unescape(encodeURIComponent(input)));
4261
+ }
4262
+ function decodeBase64(input) {
4263
+ return decodeURIComponent(escape(atob(input)));
4264
+ }
4265
+ //#endregion
4266
+ export { TableViewConfiguration as A, isRangeOperator as C, TableControlsContext as D, dateRuleIntent as E, TableControls as M, ControlBar as N, TableControlsProvider as O, DataTableCompactBar as P, isCompleteDateRange as S, reconcileValueForOperator as T, resolveDateRangeRuleValue as _, encodeFilterStateToUrlParam as a, getOperatorsForField as b, FilterBar_default as c, isFilterStateV2 as d, pruneToRegistry as f, useFilterBarSize as g, resolveValueControl as h, decodeFilterStateFromUrl as i, TableViewConfigurationDropdown as j, useTableControls as k, useFilterStateV2 as l, isEmptyState as m, applyFilterStateToSearchParams as n, FieldRegistry as o, EMPTY_FILTER_STATE as p, decodeFilterStateFromString as r, buildFieldRegistry as s, FILTER_STATE_URL_PARAM as t, hasCompleteValue as u, emptyValueForRule as v, isValuelessOperator as w, getOperatorsForType as x, getDefaultOperatorForType as y };
4049
4267
 
4050
- //# sourceMappingURL=TableControls-CZ9iu3ma.mjs.map
4268
+ //# sourceMappingURL=TableControls-WUNbzSNq.mjs.map