@persona/design-system 0.3.1 → 0.5.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 (443) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/README.md +1 -1
  3. package/dist/{Action-DL3kHI9Z.d.mts → Action-C2waxwIy.d.mts} +3 -3
  4. package/dist/Action.d.mts +1 -1
  5. package/dist/AdvancedFilterRuleRow.d.mts +4 -4
  6. package/dist/AdvancedFilterRulesPopover.d.mts +3 -3
  7. package/dist/ArrayValueControl.d.mts +1 -1
  8. package/dist/Attribute.d.mts +4 -4
  9. package/dist/{Badge-BL0J5oMa.mjs → Badge-CM2TzkdE.mjs} +2 -2
  10. package/dist/{Badge-BL0J5oMa.mjs.map → Badge-CM2TzkdE.mjs.map} +1 -1
  11. package/dist/BooleanValueControl.d.mts +1 -1
  12. package/dist/BottomPanel.d.mts +32 -0
  13. package/dist/{Breadcrumb-Czgdi0xf.d.mts → Breadcrumb-Df06cTnA.d.mts} +1 -1
  14. package/dist/Breadcrumb.d.mts +1 -1
  15. package/dist/{Breadcrumbs-ed4wRDS7.mjs → Breadcrumbs-BEYQlGbW.mjs} +7 -7
  16. package/dist/{Breadcrumbs-ed4wRDS7.mjs.map → Breadcrumbs-BEYQlGbW.mjs.map} +1 -1
  17. package/dist/{Breadcrumbs-zei-cpdU.d.mts → Breadcrumbs-D_Gzd4_J.d.mts} +2 -2
  18. package/dist/Breadcrumbs.d.mts +1 -1
  19. package/dist/{Button-CKzNTpPL.d.mts → Button-CRFbWv3l.d.mts} +3 -3
  20. package/dist/Button.d.mts +1 -1
  21. package/dist/{Calendar-CcxN7y3e.d.mts → Calendar-DjnoZVcT.d.mts} +1 -1
  22. package/dist/Calendar.d.mts +1 -1
  23. package/dist/CalendarBase.d.mts +1 -1
  24. package/dist/{Card-pr4FQWjn.d.mts → Card-BoGV5tY2.d.mts} +4 -4
  25. package/dist/Card.d.mts +1 -1
  26. package/dist/Card2.d.mts +3 -3
  27. package/dist/{CardV2-D3m5EKlp.mjs → CardV2-B2wx1NE3.mjs} +11 -11
  28. package/dist/{CardV2-D3m5EKlp.mjs.map → CardV2-B2wx1NE3.mjs.map} +1 -1
  29. package/dist/{Checkbox-Bmm-r5ei.d.mts → Checkbox-CwPXPLCi.d.mts} +1 -1
  30. package/dist/{Checkbox-Ccuicmlo.mjs → Checkbox-DwZEsi7x.mjs} +5 -5
  31. package/dist/{Checkbox-Ccuicmlo.mjs.map → Checkbox-DwZEsi7x.mjs.map} +1 -1
  32. package/dist/Checkbox.d.mts +1 -1
  33. package/dist/CheckboxGroupField.d.mts +1 -1
  34. package/dist/ChoicesValueControl.d.mts +1 -1
  35. package/dist/{Combobox-Bf_Xe1BG.d.mts → Combobox-BQN5OwB-.d.mts} +3 -3
  36. package/dist/{Combobox-BGRyr_-L.mjs → Combobox-CKaVX-32.mjs} +9 -9
  37. package/dist/{Combobox-BGRyr_-L.mjs.map → Combobox-CKaVX-32.mjs.map} +1 -1
  38. package/dist/Combobox.d.mts +2 -2
  39. package/dist/{ComboboxBase-CWzN8GML.d.mts → ComboboxBase-nfHr19x-.d.mts} +7 -7
  40. package/dist/ComboboxBase.d.mts +1 -1
  41. package/dist/{ComboboxMultiSelect-iSuvyOx2.d.mts → ComboboxMultiSelect-DRNj2Mtx.d.mts} +2 -2
  42. package/dist/ComboboxMultiSelect.d.mts +1 -1
  43. package/dist/{ComboboxSingleSelect-DVRFKPi1.d.mts → ComboboxSingleSelect-BkhbEx-F.d.mts} +4 -4
  44. package/dist/ComboboxSingleSelect.d.mts +1 -1
  45. package/dist/{CompactBar-C_61pgp7.d.mts → CompactBar-CyHbWTv4.d.mts} +3 -3
  46. package/dist/CompactBar.d.mts +1 -1
  47. package/dist/{ConfigFormGroup-DGCTW3by.mjs → ConfigFormGroup-CmCRJyse.mjs} +2 -2
  48. package/dist/{ConfigFormGroup-DGCTW3by.mjs.map → ConfigFormGroup-CmCRJyse.mjs.map} +1 -1
  49. package/dist/{ControlBar-0XwbM4yC.d.mts → ControlBar-DwAhPcb5.d.mts} +12 -2
  50. package/dist/ControlBar.d.mts +1 -1
  51. package/dist/DataTable.d.mts +8 -8
  52. package/dist/{DateField-CKeSIhGy.d.mts → DateField-tOyrGcx1.d.mts} +2 -2
  53. package/dist/DateField.d.mts +1 -1
  54. package/dist/{DatePicker-B1iWrqR5.d.mts → DatePicker-Bs9JODNg.d.mts} +2 -2
  55. package/dist/{DatePicker-BNnZ6L1y.mjs → DatePicker-D2SfjS-N.mjs} +74 -19
  56. package/dist/DatePicker-D2SfjS-N.mjs.map +1 -0
  57. package/dist/DatePicker.d.mts +1 -1
  58. package/dist/{DateRangePicker-BmF9eH9R.d.mts → DateRangePicker-BT6-j8V7.d.mts} +24 -4
  59. package/dist/DateRangePicker.d.mts +2 -2
  60. package/dist/DateRangeValueControl.d.mts +8 -4
  61. package/dist/DateValueControl.d.mts +1 -1
  62. package/dist/{DropdownButton-BlVeFbJ0.mjs → DropdownButton-dpGAmVlN.mjs} +3 -3
  63. package/dist/{DropdownButton-BlVeFbJ0.mjs.map → DropdownButton-dpGAmVlN.mjs.map} +1 -1
  64. package/dist/DropdownButton.d.mts +2 -2
  65. package/dist/{DropdownMenu-82xH1AZr.mjs → DropdownMenu-CyxizDxJ.mjs} +2 -2
  66. package/dist/{DropdownMenu-82xH1AZr.mjs.map → DropdownMenu-CyxizDxJ.mjs.map} +1 -1
  67. package/dist/{DropdownMenu-DuTnq9j7.d.mts → DropdownMenu-RTxQ0Zu1.d.mts} +3 -3
  68. package/dist/DropdownMenu.d.mts +1 -1
  69. package/dist/{ErrorProps-DX50vo-U.d.mts → ErrorProps-C9T857Wk.d.mts} +1 -1
  70. package/dist/ErrorProps.d.mts +1 -1
  71. package/dist/{FieldRegistry-D1vghSC_.d.mts → FieldRegistry-D6niLExM.d.mts} +2 -2
  72. package/dist/FieldRegistry.d.mts +1 -1
  73. package/dist/{FilterBar-Ck085Dic.d.mts → FilterBar-DfBV7yKM.d.mts} +10 -4
  74. package/dist/FilterBar.d.mts +1 -1
  75. package/dist/FilterPickerMenu.d.mts +2 -2
  76. package/dist/FilterPill.d.mts +1 -1
  77. package/dist/FilterPopover.d.mts +1 -1
  78. package/dist/FloatValueControl.d.mts +1 -1
  79. package/dist/{FormControl-CfpwZGlD.d.mts → FormControl-BMYRsFkI.d.mts} +3 -3
  80. package/dist/{FormControl-D1HIqDKm.mjs → FormControl-DQFefbrI.mjs} +4 -4
  81. package/dist/{FormControl-D1HIqDKm.mjs.map → FormControl-DQFefbrI.mjs.map} +1 -1
  82. package/dist/FormControl.d.mts +1 -1
  83. package/dist/FormControlLabel.d.mts +2 -2
  84. package/dist/{FormField-0p4y0sS5.d.mts → FormField-C1DaUT5U.d.mts} +6 -7
  85. package/dist/{FormField-CVnbsNvU.mjs → FormField-C7bW-O6H.mjs} +19 -20
  86. package/dist/FormField-C7bW-O6H.mjs.map +1 -0
  87. package/dist/FormField.d.mts +1 -1
  88. package/dist/Grid.d.mts +38 -0
  89. package/dist/GridItem.d.mts +17 -0
  90. package/dist/{Header-gDUTQgWj.d.mts → Header-BKk3qESS.d.mts} +2 -2
  91. package/dist/Header.d.mts +1 -1
  92. package/dist/{HelperTooltip-CqhiRb5g.d.mts → HelperTooltip-CD_yy7Hp.d.mts} +2 -2
  93. package/dist/HelperTooltip.d.mts +1 -1
  94. package/dist/{HoverCopyableField-HWshrU_1.mjs → HoverCopyableField-Bgt639FR.mjs} +4 -4
  95. package/dist/{HoverCopyableField-HWshrU_1.mjs.map → HoverCopyableField-Bgt639FR.mjs.map} +1 -1
  96. package/dist/{IconButton-CLsHdYm7.d.mts → IconButton-Bh-JJ-0x.d.mts} +2 -2
  97. package/dist/{IconButton-BgL3QUVO.mjs → IconButton-BnSEV7eR.mjs} +5 -5
  98. package/dist/{IconButton-BgL3QUVO.mjs.map → IconButton-BnSEV7eR.mjs.map} +1 -1
  99. package/dist/IconButton.d.mts +1 -1
  100. package/dist/ImageTile.d.mts +1 -1
  101. package/dist/InlineCombobox.d.mts +1 -1
  102. package/dist/InlineInput.d.mts +1 -1
  103. package/dist/{Input-BHHWpSKN.d.mts → Input-1bDdMAgO.d.mts} +6 -6
  104. package/dist/{Input-DoB8YswA.mjs → Input-D7of_GtJ.mjs} +4 -4
  105. package/dist/{Input-DoB8YswA.mjs.map → Input-D7of_GtJ.mjs.map} +1 -1
  106. package/dist/Input.d.mts +1 -1
  107. package/dist/{InputProps-sHxlDiss.d.mts → InputProps-BBShwi8N.d.mts} +2 -2
  108. package/dist/InputProps.d.mts +1 -1
  109. package/dist/IntegerValueControl.d.mts +1 -1
  110. package/dist/{ListBox-BrY1bQ5-.d.mts → ListBox-DeFHRX2T.d.mts} +3 -3
  111. package/dist/{ListBox-B9uuMt2R.mjs → ListBox-jzXQDraS.mjs} +10 -10
  112. package/dist/{ListBox-B9uuMt2R.mjs.map → ListBox-jzXQDraS.mjs.map} +1 -1
  113. package/dist/ListBox.d.mts +1 -1
  114. package/dist/ListBoxField.d.mts +2 -2
  115. package/dist/{LoadingShimmer-dsBWRdTU.mjs → LoadingShimmer-a2Hv0kAq.mjs} +1 -1
  116. package/dist/{LoadingShimmer-dsBWRdTU.mjs.map → LoadingShimmer-a2Hv0kAq.mjs.map} +1 -1
  117. package/dist/LoadingShimmer.d.mts +2 -2
  118. package/dist/{LogicRow-9a_klV2v.d.mts → LogicRow-BOhB0uNS.d.mts} +3 -3
  119. package/dist/LogicRow.d.mts +1 -1
  120. package/dist/MaskedInput.d.mts +2 -2
  121. package/dist/MatchHighlight.d.mts +1 -1
  122. package/dist/{Menu-D4Y_J-QI.d.mts → Menu-BCVhmNEe.d.mts} +4 -4
  123. package/dist/{Menu-CHbUf9PQ.mjs → Menu-DVI8l-4Q.mjs} +3 -3
  124. package/dist/{Menu-CHbUf9PQ.mjs.map → Menu-DVI8l-4Q.mjs.map} +1 -1
  125. package/dist/Menu.d.mts +1 -1
  126. package/dist/Modal.d.mts +2 -2
  127. package/dist/{PageHeader-XxGsFLHb.mjs → PageHeader-BpGT-BM0.mjs} +2 -2
  128. package/dist/{PageHeader-XxGsFLHb.mjs.map → PageHeader-BpGT-BM0.mjs.map} +1 -1
  129. package/dist/PageHeader.d.mts +2 -2
  130. package/dist/PageLayout.d.mts +1 -1
  131. package/dist/{PageSelector-BDo3ge1E.d.mts → PageSelector-D6tffcGW.d.mts} +3 -3
  132. package/dist/PageSelector.d.mts +1 -1
  133. package/dist/{Pagination-Dcmv7bVe.d.mts → Pagination-BkjmybcI.d.mts} +2 -2
  134. package/dist/{Pagination-DvVKQLdC.mjs → Pagination-CVRTcKSG.mjs} +4 -4
  135. package/dist/{Pagination-DvVKQLdC.mjs.map → Pagination-CVRTcKSG.mjs.map} +1 -1
  136. package/dist/Pagination.d.mts +1 -1
  137. package/dist/{Pii-BD48BtZ0.mjs → Pii-CA7aCuYT.mjs} +2 -2
  138. package/dist/{Pii-BD48BtZ0.mjs.map → Pii-CA7aCuYT.mjs.map} +1 -1
  139. package/dist/PillShell-CVqpZ5iV.d.mts +85 -0
  140. package/dist/PillShell.d.mts +2 -85
  141. package/dist/{Popover-DNH8Jx1-.mjs → Popover-DlXyKYL5.mjs} +1 -1
  142. package/dist/{Popover-DNH8Jx1-.mjs.map → Popover-DlXyKYL5.mjs.map} +1 -1
  143. package/dist/ProgressIndicator.d.mts +5 -3
  144. package/dist/{PseudoClassProps-DgT5G_z5.d.mts → PseudoClassProps-BPdn-ofQ.d.mts} +1 -1
  145. package/dist/PseudoClassProps.d.mts +1 -1
  146. package/dist/{Radio-DSMPX5_2.mjs → Radio-DYGEt0FT.mjs} +3 -3
  147. package/dist/{Radio-DSMPX5_2.mjs.map → Radio-DYGEt0FT.mjs.map} +1 -1
  148. package/dist/{RadioGroup-Jl1yAvGu.d.mts → RadioGroup-DYIfRj02.d.mts} +1 -1
  149. package/dist/{RadioGroup-D5IITQLz.mjs → RadioGroup-pegXtLwD.mjs} +2 -2
  150. package/dist/{RadioGroup-D5IITQLz.mjs.map → RadioGroup-pegXtLwD.mjs.map} +1 -1
  151. package/dist/RadioGroup.d.mts +1 -1
  152. package/dist/RangeCalendar.d.mts +5 -0
  153. package/dist/RangeCalendarPresets.d.mts +12 -2
  154. package/dist/ResizableVerticalPanel.d.mts +22 -0
  155. package/dist/ResizeHandle.d.mts +19 -0
  156. package/dist/RightPanel.d.mts +41 -0
  157. package/dist/RightPanelLoadingContent.d.mts +7 -0
  158. package/dist/RightPanelResizeHandle.d.mts +14 -0
  159. package/dist/RuleEditorFields.d.mts +4 -4
  160. package/dist/RulesPill.d.mts +1 -1
  161. package/dist/{SearchInput-CaKHRC_s.d.mts → SearchInput-Dc90GLTF.d.mts} +2 -2
  162. package/dist/SearchInput.d.mts +1 -1
  163. package/dist/SectionHeading.d.mts +1 -1
  164. package/dist/{SegmentedControl-e6xDtoHC.d.mts → SegmentedControl-DIHonamg.d.mts} +1 -1
  165. package/dist/{SegmentedControl-JUgRw_M-.mjs → SegmentedControl-DwbltwDQ.mjs} +2 -2
  166. package/dist/{SegmentedControl-JUgRw_M-.mjs.map → SegmentedControl-DwbltwDQ.mjs.map} +1 -1
  167. package/dist/SegmentedControl.d.mts +1 -1
  168. package/dist/{Select-DX3toj6M.mjs → Select-CBVvPyRJ.mjs} +7 -8
  169. package/dist/Select-CBVvPyRJ.mjs.map +1 -0
  170. package/dist/{Select-CPYztD4m.d.mts → Select-DwqWnWBi.d.mts} +3 -3
  171. package/dist/Select.d.mts +1 -1
  172. package/dist/{Spinner-D3wXIoXN.mjs → Spinner-e725Rxkd.mjs} +2 -2
  173. package/dist/{Spinner-D3wXIoXN.mjs.map → Spinner-e725Rxkd.mjs.map} +1 -1
  174. package/dist/{Stack-DHaK1-dw.d.mts → Stack-6eOrxjJi.d.mts} +2 -2
  175. package/dist/Stack.d.mts +1 -1
  176. package/dist/{Sticker-CQ6sOKUj.mjs → Sticker-By3F8Aip.mjs} +4 -4
  177. package/dist/{Sticker-CQ6sOKUj.mjs.map → Sticker-By3F8Aip.mjs.map} +1 -1
  178. package/dist/{Sticker-DnSemOcW.d.mts → Sticker-Ep6N4Exq.d.mts} +5 -5
  179. package/dist/Sticker.d.mts +1 -1
  180. package/dist/StringValueControl.d.mts +1 -1
  181. package/dist/Tab.d.mts +2 -2
  182. package/dist/{TabBar-sYllYizt.mjs → TabBar-CWF65Tv4.mjs} +5 -5
  183. package/dist/{TabBar-sYllYizt.mjs.map → TabBar-CWF65Tv4.mjs.map} +1 -1
  184. package/dist/TabBarIconButton.d.mts +2 -2
  185. package/dist/{Table-CFbPINKr.d.mts → Table-BOcWdwpv.d.mts} +1 -1
  186. package/dist/{Table-C2pkP5Xg.mjs → Table-nWd5ZVbm.mjs} +6 -6
  187. package/dist/{Table-C2pkP5Xg.mjs.map → Table-nWd5ZVbm.mjs.map} +1 -1
  188. package/dist/Table.d.mts +1 -1
  189. package/dist/{TableBody-BQsGc4Lw.d.mts → TableBody-BFPFaZnD.d.mts} +1 -1
  190. package/dist/TableBody.d.mts +1 -1
  191. package/dist/{TableBox-CaTHcR4F.mjs → TableBox-Bd-H5oyh.mjs} +23 -17
  192. package/dist/{TableBox-CaTHcR4F.mjs.map → TableBox-Bd-H5oyh.mjs.map} +1 -1
  193. package/dist/TableBox.d.mts +2 -2
  194. package/dist/{TableBoxCell-52g97gEg.d.mts → TableBoxCell-Cjlc_xJz.d.mts} +11 -8
  195. package/dist/TableBoxCell.d.mts +1 -1
  196. package/dist/TableBoxField.d.mts +3 -3
  197. package/dist/{TableBoxRow-DnoumHIE.d.mts → TableBoxRow-CKDjNUsU.d.mts} +3 -3
  198. package/dist/TableBoxRow.d.mts +1 -1
  199. package/dist/{TableBoxRowActions-CDcREhP4.d.mts → TableBoxRowActions-BJ8ue3Bk.d.mts} +2 -2
  200. package/dist/TableBoxRowActions.d.mts +1 -1
  201. package/dist/TableCell.d.mts +1 -1
  202. package/dist/{TableControls-3bXyd8gS.mjs → TableControls-BnesnTue.mjs} +245 -52
  203. package/dist/TableControls-BnesnTue.mjs.map +1 -0
  204. package/dist/{TableControls-CrGGlkEG.d.mts → TableControls-D8xMNgyS.d.mts} +4 -3
  205. package/dist/TableControls.d.mts +1 -1
  206. package/dist/{TableControlsContext-BKZt2Jid.d.mts → TableControlsContext-ChFsFEjR.d.mts} +2 -2
  207. package/dist/TableControlsContext.d.mts +1 -1
  208. package/dist/{TableHead-CqVIJfjh.d.mts → TableHead-CWDxuy5V.d.mts} +1 -1
  209. package/dist/TableHead.d.mts +1 -1
  210. package/dist/{TableHeaderCell-DK4R8vdK.d.mts → TableHeaderCell-C_sIU1d7.d.mts} +1 -1
  211. package/dist/TableHeaderCell.d.mts +1 -1
  212. package/dist/{TableLayout-BcIazRB-.d.mts → TableLayout-CgGhKU_A.d.mts} +1 -1
  213. package/dist/TableLayout.d.mts +1 -1
  214. package/dist/{TableRow-DdJcjG2b.d.mts → TableRow-B1UKlbze.d.mts} +2 -2
  215. package/dist/TableRow.d.mts +1 -1
  216. package/dist/TableTH.d.mts +1 -1
  217. package/dist/{TableViewConfigurationDropdown-CHBOjw7O.d.mts → TableViewConfigurationDropdown-BqB7pOh8.d.mts} +2 -2
  218. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  219. package/dist/{TechnicalSticker-D3eeGMDR.mjs → TechnicalSticker-Ct2WnNzJ.mjs} +3 -3
  220. package/dist/{TechnicalSticker-D3eeGMDR.mjs.map → TechnicalSticker-Ct2WnNzJ.mjs.map} +1 -1
  221. package/dist/{Text-BIgrwIdS.d.mts → Text-BzzUdBdc.d.mts} +4 -4
  222. package/dist/Text.d.mts +1 -1
  223. package/dist/{TextArea-CiLttt0s.d.mts → TextArea-CGpY5xqX.d.mts} +2 -2
  224. package/dist/{TextArea-DWXuV2aZ.mjs → TextArea-CospIXEO.mjs} +2 -2
  225. package/dist/{TextArea-DWXuV2aZ.mjs.map → TextArea-CospIXEO.mjs.map} +1 -1
  226. package/dist/TextArea.d.mts +1 -1
  227. package/dist/{TextUnderlineTooltip-_7mIrZ2-.d.mts → TextUnderlineTooltip-DZYGjJq1.d.mts} +3 -3
  228. package/dist/TextUnderlineTooltip.d.mts +1 -1
  229. package/dist/Tile.d.mts +1 -1
  230. package/dist/Toast.d.mts +1 -1
  231. package/dist/{Toggle-Cav7bMxg.d.mts → Toggle-BjAivdyX.d.mts} +1 -1
  232. package/dist/{Toggle-e8DCYa6i.mjs → Toggle-Do5z1VcO.mjs} +5 -5
  233. package/dist/{Toggle-e8DCYa6i.mjs.map → Toggle-Do5z1VcO.mjs.map} +1 -1
  234. package/dist/Toggle.d.mts +1 -1
  235. package/dist/{Tooltip-iJcfJqxn.mjs → Tooltip-DSKGD33G.mjs} +2 -2
  236. package/dist/{Tooltip-iJcfJqxn.mjs.map → Tooltip-DSKGD33G.mjs.map} +1 -1
  237. package/dist/{Tooltip-DX-N-szt.d.mts → Tooltip-n3XkX4dp.d.mts} +3 -3
  238. package/dist/Tooltip.d.mts +1 -1
  239. package/dist/{TruncatedText-D2R7uy_y.d.mts → TruncatedText-C-MJPIRi.d.mts} +2 -2
  240. package/dist/codec-B0dZTwlG.d.mts +29 -0
  241. package/dist/codec.d.mts +2 -0
  242. package/dist/components/Attribute/index.mjs +3 -3
  243. package/dist/components/Badge/index.mjs +1 -1
  244. package/dist/components/Banner/index.mjs +2 -2
  245. package/dist/components/BottomPanel/index.d.mts +2 -0
  246. package/dist/components/BottomPanel/index.mjs +293 -0
  247. package/dist/components/BottomPanel/index.mjs.map +1 -0
  248. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  249. package/dist/components/Breadcrumbs/index.mjs +1 -1
  250. package/dist/components/Button/index.d.mts +2 -2
  251. package/dist/components/Button/index.mjs +1 -1
  252. package/dist/components/ButtonGroup/index.mjs +2 -2
  253. package/dist/components/Card/index.d.mts +2 -2
  254. package/dist/components/CardV2/index.d.mts +1 -1
  255. package/dist/components/CardV2/index.mjs +1 -1
  256. package/dist/components/Checkbox/index.d.mts +1 -1
  257. package/dist/components/Checkbox/index.mjs +1 -1
  258. package/dist/components/Combobox/index.d.mts +2 -2
  259. package/dist/components/Combobox/index.mjs +1 -1
  260. package/dist/components/ConfigFormGroup/index.mjs +2 -2
  261. package/dist/components/DataTable/TableControls/index.d.mts +20 -16
  262. package/dist/components/DataTable/TableControls/index.mjs +2 -2
  263. package/dist/components/DataTable/index.mjs +16 -23
  264. package/dist/components/DataTable/index.mjs.map +1 -1
  265. package/dist/components/DataTable/types.d.mts +2 -2
  266. package/dist/components/DatePicker/index.d.mts +5 -5
  267. package/dist/components/DatePicker/index.mjs +1 -1
  268. package/dist/components/DropdownButton/index.mjs +1 -1
  269. package/dist/components/DropdownMenu/index.d.mts +1 -1
  270. package/dist/components/DropdownMenu/index.mjs +1 -1
  271. package/dist/components/FloatingPanel/index.mjs +3 -3
  272. package/dist/components/FormControl/index.d.mts +2 -2
  273. package/dist/components/FormControl/index.mjs +2 -2
  274. package/dist/components/FormField/index.d.mts +1 -1
  275. package/dist/components/FormField/index.mjs +1 -1
  276. package/dist/components/Grid/index.d.mts +3 -0
  277. package/dist/components/Grid/index.mjs +85 -0
  278. package/dist/components/Grid/index.mjs.map +1 -0
  279. package/dist/components/HoverCopyableField/index.mjs +1 -1
  280. package/dist/components/ImageTile/index.mjs +7 -7
  281. package/dist/components/Input/index.d.mts +1 -1
  282. package/dist/components/Input/index.mjs +1 -1
  283. package/dist/components/Link/index.mjs +2 -2
  284. package/dist/components/ListBox/index.d.mts +3 -3
  285. package/dist/components/ListBox/index.mjs +1 -1
  286. package/dist/components/LoadingShimmer/index.mjs +1 -1
  287. package/dist/components/MaskedInput/index.mjs +1 -1
  288. package/dist/components/Menu/index.d.mts +1 -1
  289. package/dist/components/Menu/index.mjs +1 -1
  290. package/dist/components/Modal/index.mjs +2 -2
  291. package/dist/components/PageHeader/index.mjs +1 -1
  292. package/dist/components/Pagination/index.d.mts +3 -3
  293. package/dist/components/Pagination/index.mjs +1 -1
  294. package/dist/components/Pii/index.mjs +1 -1
  295. package/dist/components/Popover/index.mjs +1 -1
  296. package/dist/components/ProgressBar/index.mjs +1 -1
  297. package/dist/components/ProgressIndicator/index.mjs +13 -9
  298. package/dist/components/ProgressIndicator/index.mjs.map +1 -1
  299. package/dist/components/Radio/index.mjs +1 -1
  300. package/dist/components/RadioGroup/index.d.mts +1 -1
  301. package/dist/components/RadioGroup/index.mjs +1 -1
  302. package/dist/components/RightPanel/index.d.mts +2 -0
  303. package/dist/components/RightPanel/index.mjs +294 -0
  304. package/dist/components/RightPanel/index.mjs.map +1 -0
  305. package/dist/components/SegmentedControl/index.d.mts +1 -1
  306. package/dist/components/SegmentedControl/index.mjs +1 -1
  307. package/dist/components/Select/index.d.mts +1 -1
  308. package/dist/components/Select/index.mjs +1 -1
  309. package/dist/components/Slider/index.mjs +2 -2
  310. package/dist/components/Spinner/index.mjs +1 -1
  311. package/dist/components/Stack/index.d.mts +1 -1
  312. package/dist/components/StatusIndicator/index.mjs +1 -1
  313. package/dist/components/Sticker/index.d.mts +1 -1
  314. package/dist/components/Sticker/index.mjs +1 -1
  315. package/dist/components/TabBar/index.mjs +1 -1
  316. package/dist/components/Table/index.d.mts +7 -7
  317. package/dist/components/Table/index.mjs +1 -1
  318. package/dist/components/TableBox/index.d.mts +2 -2
  319. package/dist/components/TableBox/index.mjs +1 -1
  320. package/dist/components/TechnicalSticker/index.mjs +1 -1
  321. package/dist/components/Text/index.d.mts +1 -1
  322. package/dist/components/TextArea/index.d.mts +1 -1
  323. package/dist/components/TextArea/index.mjs +1 -1
  324. package/dist/components/Tile/index.mjs +2 -2
  325. package/dist/components/Toast/index.mjs +4 -4
  326. package/dist/components/Toggle/index.d.mts +1 -1
  327. package/dist/components/Toggle/index.mjs +1 -1
  328. package/dist/components/Tooltip/index.d.mts +3 -3
  329. package/dist/components/Tooltip/index.mjs +1 -1
  330. package/dist/compound-expression.d.mts +1 -1
  331. package/dist/{constants-bA9kCzRQ.d.mts → constants-Bs94Jw4y.d.mts} +1 -1
  332. package/dist/constants.d.mts +1 -1
  333. package/dist/date-filter-BbWgAXy3.mjs +176 -0
  334. package/dist/date-filter-BbWgAXy3.mjs.map +1 -0
  335. package/dist/date-range-rule-value-DBEEWTQp.d.mts +17 -0
  336. package/dist/date-range-rule-value.d.mts +2 -0
  337. package/dist/date-rule-intent-BArNGT2E.d.mts +20 -0
  338. package/dist/date-rule-intent.d.mts +2 -0
  339. package/dist/display.d.mts +2 -2
  340. package/dist/fieldPickerOptions.d.mts +2 -2
  341. package/dist/{filter-size-context-C7injfBh.d.mts → filter-size-context-D1UhTwOG.d.mts} +2 -2
  342. package/dist/filter-size-context.d.mts +1 -1
  343. package/dist/helpers.d.mts +1 -1
  344. package/dist/{index-d_fTFuMM.d.mts → index-CvBvfQAY.d.mts} +4 -4
  345. package/dist/{index-BPfK-u7y.d.mts → index-DASkW991.d.mts} +2 -2
  346. package/dist/{index-BxBsQi2S.d.mts → index-I_Cy3X5R.d.mts} +3 -3
  347. package/dist/index-e6k85DKM.d.mts +1 -0
  348. package/dist/index-ehD5GjMH.d.mts +1 -0
  349. package/dist/index-uY8Qbwfx.d.mts +1 -0
  350. package/dist/index.d.mts +1 -1
  351. package/dist/index2.d.mts +1 -1
  352. package/dist/index3.d.mts +3 -3
  353. package/dist/index4.d.mts +2 -11
  354. package/dist/index5.d.mts +15 -2
  355. package/dist/{input-D9FuQmlI.d.mts → input-M7BEIewR.d.mts} +3 -3
  356. package/dist/inputFields.d.mts +10 -10
  357. package/dist/{intersperse-CLkblj9A.mjs → intersperse-CRUnXmnu.mjs} +1 -1
  358. package/dist/{intersperse-CLkblj9A.mjs.map → intersperse-CRUnXmnu.mjs.map} +1 -1
  359. package/dist/lib/PDSProvider.d.mts +1 -1
  360. package/dist/lib/TruncatedText.d.mts +1 -1
  361. package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
  362. package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
  363. package/dist/lib/date-filter/index.d.mts +3 -0
  364. package/dist/lib/date-filter/index.mjs +2 -0
  365. package/dist/lib/message.d.mts +1 -1
  366. package/dist/lib/pseudoClass.d.mts +1 -1
  367. package/dist/lib/useResizablePanel.d.mts +49 -0
  368. package/dist/lib/useResizablePanel.mjs +75 -0
  369. package/dist/lib/useResizablePanel.mjs.map +1 -0
  370. package/dist/{message-CqKB5mko.d.mts → message-CyxgAWZl.d.mts} +1 -1
  371. package/dist/mixins/focus.d.mts +1 -1
  372. package/dist/mixins/hoverable.d.mts +2 -2
  373. package/dist/mixins/hoverable.mjs +1 -1
  374. package/dist/mixins/input.d.mts +1 -1
  375. package/dist/mixins/input.mjs +1 -1
  376. package/dist/mixins/menuItem.d.mts +2 -2
  377. package/dist/mixins/text.d.mts +1 -1
  378. package/dist/{operators-CgcsYzfy.d.mts → operators-CXkmvFpP.d.mts} +10 -3
  379. package/dist/operators.d.mts +2 -2
  380. package/dist/patterns/LayoutLoadingShimmer/index.mjs +4 -4
  381. package/dist/relative-date-label.d.mts +15 -0
  382. package/dist/{text-xwtyWIbE.d.mts → text-DjTGRUM1.d.mts} +1 -1
  383. package/dist/{theme-Ftogn9Wo.d.mts → theme-Biwx2eJZ.d.mts} +1 -1
  384. package/dist/theme.d.mts +1 -1
  385. package/dist/types-Bsf1VsW6.d.mts +24 -0
  386. package/dist/{types-BrNreYUU.d.mts → types-DBBfOCX1.d.mts} +5 -3
  387. package/dist/{types-0_9G0kWg.d.mts → types-Df0D37uh.d.mts} +1 -1
  388. package/dist/{types-DVsBRqjZ.d.mts → types-Ds43XULD.d.mts} +1 -1
  389. package/dist/{types-D55MZSyx.d.mts → types-V8UJX-rk.d.mts} +14 -2
  390. package/dist/types.d.mts +1 -1
  391. package/dist/types2.d.mts +2 -2
  392. package/dist/types3.d.mts +2 -2
  393. package/dist/types4.d.mts +2 -2
  394. package/dist/types5.d.mts +2 -0
  395. package/dist/url-state-M64mdtQ2.d.mts +42 -0
  396. package/dist/url-state.d.mts +2 -0
  397. package/dist/useComboboxFooterAction.d.mts +1 -1
  398. package/dist/{useFilterStateV2-D8Q8QKhS.d.mts → useFilterStateV2-gALqONXf.d.mts} +3 -3
  399. package/dist/useFilterStateV2.d.mts +1 -1
  400. package/dist/{useFormField-BBbq1izo.d.mts → useFormField-Bo7oHMof.d.mts} +2 -2
  401. package/dist/{useFormField-Bz2iMPBO.mjs → useFormField-C-K1lgmv.mjs} +2 -2
  402. package/dist/{useFormField-Bz2iMPBO.mjs.map → useFormField-C-K1lgmv.mjs.map} +1 -1
  403. package/dist/useFormField.d.mts +1 -1
  404. package/dist/{useFormGroup-CaTiD_Yt.mjs → useFormGroup-y-duFylq.mjs} +1 -1
  405. package/dist/{useFormGroup-CaTiD_Yt.mjs.map → useFormGroup-y-duFylq.mjs.map} +1 -1
  406. package/dist/{useTableBoxDragAndDrop-Bye8gJTl.d.mts → useTableBoxDragAndDrop-BrJFRSaG.d.mts} +1 -1
  407. package/dist/useTableBoxDragAndDrop.d.mts +1 -1
  408. package/dist/useTruncation.d.mts +1 -1
  409. package/dist/{utilities-Bmwk_DRn.d.mts → utilities-BHMNnJ8h.d.mts} +1 -1
  410. package/dist/utilities.d.mts +1 -1
  411. package/dist/utils.d.mts +1 -1
  412. package/dist/{validation-CAtTuHO9.d.mts → validation-BCBIvN6H.d.mts} +3 -3
  413. package/dist/validation.d.mts +1 -1
  414. package/dist/{value-control-resolver-DadI8r9a.d.mts → value-control-resolver-qKTH1ErF.d.mts} +5 -3
  415. package/dist/value-control-resolver.d.mts +1 -1
  416. package/llms.txt +3 -3
  417. package/package.json +11 -1
  418. package/skills/ui-authoring/COMPONENTS.md +2 -0
  419. package/skills/ui-authoring/PATTERNS.md +3 -1
  420. package/skills/ui-authoring/SKILL.md +2 -2
  421. package/dist/DatePicker-BNnZ6L1y.mjs.map +0 -1
  422. package/dist/FormField-CVnbsNvU.mjs.map +0 -1
  423. package/dist/Select-DX3toj6M.mjs.map +0 -1
  424. package/dist/TableControls-3bXyd8gS.mjs.map +0 -1
  425. /package/dist/{index-0-W_aPej.d.mts → index--p6oQT9I.d.mts} +0 -0
  426. /package/dist/{index-7in8TPrM.d.mts → index-7rWKHdox.d.mts} +0 -0
  427. /package/dist/{index-BINnViIh.d.mts → index-8SLBz2NH.d.mts} +0 -0
  428. /package/dist/{index-BNRXMhlr.d.mts → index-Bt4QNofW.d.mts} +0 -0
  429. /package/dist/{index-BO_854F2.d.mts → index-BwFl_eS0.d.mts} +0 -0
  430. /package/dist/{index-BSVhZrWN.d.mts → index-CCKHlTA4.d.mts} +0 -0
  431. /package/dist/{index-BrGZHEgX.d.mts → index-CMuRFTR3.d.mts} +0 -0
  432. /package/dist/{index-CCt0lwyI.d.mts → index-CRo77wc3.d.mts} +0 -0
  433. /package/dist/{index-CFhUdAHM.d.mts → index-CX869wwk.d.mts} +0 -0
  434. /package/dist/{index-CREkvfw9.d.mts → index-CuheJfs-.d.mts} +0 -0
  435. /package/dist/{index-CROz1VSV.d.mts → index-D13oYj4_.d.mts} +0 -0
  436. /package/dist/{index-CsuikFeJ.d.mts → index-D4DUvwPf.d.mts} +0 -0
  437. /package/dist/{index-CzUpNo0e.d.mts → index-D7UbuJwP.d.mts} +0 -0
  438. /package/dist/{index-DM6vVDZD.d.mts → index-DMRtRo7y.d.mts} +0 -0
  439. /package/dist/{index-DeVKzGce.d.mts → index-Dflz2i1X.d.mts} +0 -0
  440. /package/dist/{index-Jh0C5PIG.d.mts → index-DvmLVvRD.d.mts} +0 -0
  441. /package/dist/{index-Oio5ygqN.d.mts → index-Es5nKSSL.d.mts} +0 -0
  442. /package/dist/{index-PWQavSPf.d.mts → index-Wc1llEvP.d.mts} +0 -0
  443. /package/dist/{index-sViox9YW.d.mts → index-dhjtMp5F.d.mts} +0 -0
@@ -1,16 +1,17 @@
1
- import { o as ComboboxOptionsOrGroups } from "./ComboboxBase-CWzN8GML.mjs";
2
- import { a as TableCellProps, i as TableCell } from "./index-d_fTFuMM.mjs";
3
- import { r as TableBoxRowProps } from "./TableBoxRow-DnoumHIE.mjs";
4
- import { n as ReorderConfig, t as DragDirection } from "./useTableBoxDragAndDrop-Bye8gJTl.mjs";
5
- import { t as RowAction } from "./TableBoxRowActions-CDcREhP4.mjs";
1
+ import { o as ComboboxOptionsOrGroups } from "./ComboboxBase-nfHr19x-.mjs";
2
+ import { a as TableCellProps, i as TableCell } from "./index-CvBvfQAY.mjs";
3
+ import { r as TableBoxRowProps } from "./TableBoxRow-CKDjNUsU.mjs";
4
+ import { n as ReorderConfig, t as DragDirection } from "./useTableBoxDragAndDrop-BrJFRSaG.mjs";
5
+ import { t as RowAction } from "./TableBoxRowActions-BJ8ue3Bk.mjs";
6
+ import * as _$styled_components0 from "styled-components";
6
7
  import * as _$react from "react";
7
8
  import { ComponentPropsWithoutRef, PropsWithChildren } from "react";
8
- import * as _$styled_components0 from "styled-components";
9
9
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
10
10
 
11
11
  //#region components/TableBox/TableBox.d.ts
12
12
  interface InlineEditConfig {
13
13
  type: 'text' | 'combobox';
14
+ readOnly?: boolean;
14
15
  options?: ComboboxOptionsOrGroups;
15
16
  /**
16
17
  * Whether to render the combobox dropdown in a portal (breaks out of overflow containers)
@@ -41,6 +42,7 @@ interface TableBoxContextValue {
41
42
  columns: Array<{
42
43
  key: string;
43
44
  title: string;
45
+ tooltip?: string;
44
46
  inlineEditConfig?: InlineEditConfig;
45
47
  }>;
46
48
  selectedKey: string | null;
@@ -113,7 +115,8 @@ interface TableBoxProps<T extends object = object> {
113
115
  /** Column definitions for the table headers. */
114
116
  columns: Array<{
115
117
  key: string;
116
- title: string; /** Inline edit configuration for this column */
118
+ title: string; /** Explanatory tooltip shown on hover of a dashed-underlined header title */
119
+ tooltip?: string; /** Inline edit configuration for this column */
117
120
  inlineEditConfig?: InlineEditConfig;
118
121
  }>;
119
122
  /** ID of the newly created row that should be focused */
@@ -270,4 +273,4 @@ declare const TableBoxCell: ({
270
273
  }: TableBoxCellProps) => _$react_jsx_runtime0.JSX.Element;
271
274
  //#endregion
272
275
  export { TableBox as a, PinnedActionsCell as i, TableBoxCellProps as n, TableBoxContext as o, InlineEditConfig as r, TableBoxProps as s, TableBoxCell as t };
273
- //# sourceMappingURL=TableBoxCell-52g97gEg.d.mts.map
276
+ //# sourceMappingURL=TableBoxCell-Cjlc_xJz.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as TableBoxCellProps, t as TableBoxCell } from "./TableBoxCell-52g97gEg.mjs";
1
+ import { n as TableBoxCellProps, t as TableBoxCell } from "./TableBoxCell-Cjlc_xJz.mjs";
2
2
  export { TableBoxCellProps, TableBoxCell as default };
@@ -1,7 +1,7 @@
1
- import { l as MenuItemProps } from "./Menu-D4Y_J-QI.mjs";
1
+ import { l as MenuItemProps } from "./Menu-BCVhmNEe.mjs";
2
2
  import { ImplementsFormField } from "./inputFields.mjs";
3
- import { r as TableBoxRowProps } from "./TableBoxRow-DnoumHIE.mjs";
4
- import { n as TableBoxCellProps, s as TableBoxProps } from "./TableBoxCell-52g97gEg.mjs";
3
+ import { r as TableBoxRowProps } from "./TableBoxRow-CKDjNUsU.mjs";
4
+ import { n as TableBoxCellProps, s as TableBoxProps } from "./TableBoxCell-Cjlc_xJz.mjs";
5
5
  import { MouseEvent, ReactNode } from "react";
6
6
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
7
7
 
@@ -1,5 +1,5 @@
1
- import { l as MenuItemProps } from "./Menu-D4Y_J-QI.mjs";
2
- import { t as TableRow } from "./TableRow-DdJcjG2b.mjs";
1
+ import { l as MenuItemProps } from "./Menu-BCVhmNEe.mjs";
2
+ import { t as TableRow } from "./TableRow-B1UKlbze.mjs";
3
3
  import { ComponentPropsWithoutRef, ReactNode } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
@@ -83,4 +83,4 @@ declare const TableBoxRowOverlay: ({
83
83
  }) => _$react_jsx_runtime0.JSX.Element;
84
84
  //#endregion
85
85
  export { TableBoxRowOverlay as n, TableBoxRowProps as r, TableBoxRow as t };
86
- //# sourceMappingURL=TableBoxRow-DnoumHIE.d.mts.map
86
+ //# sourceMappingURL=TableBoxRow-CKDjNUsU.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as TableBoxRowOverlay, r as TableBoxRowProps, t as TableBoxRow } from "./TableBoxRow-DnoumHIE.mjs";
1
+ import { n as TableBoxRowOverlay, r as TableBoxRowProps, t as TableBoxRow } from "./TableBoxRow-CKDjNUsU.mjs";
2
2
  export { TableBoxRowOverlay, TableBoxRowProps, TableBoxRow as default };
@@ -1,4 +1,4 @@
1
- import { l as MenuItemProps } from "./Menu-D4Y_J-QI.mjs";
1
+ import { l as MenuItemProps } from "./Menu-BCVhmNEe.mjs";
2
2
  import * as _$styled_components0 from "styled-components";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -54,4 +54,4 @@ declare const RowActions: ({
54
54
  }: RowActionsProps) => _$react_jsx_runtime0.JSX.Element | null;
55
55
  //#endregion
56
56
  export { RowActionsContainerWithFadeWidth as i, RowActions as n, RowActionsContainer as r, RowAction as t };
57
- //# sourceMappingURL=TableBoxRowActions-CDcREhP4.d.mts.map
57
+ //# sourceMappingURL=TableBoxRowActions-BJ8ue3Bk.d.mts.map
@@ -1,2 +1,2 @@
1
- import { i as RowActionsContainerWithFadeWidth, n as RowActions, r as RowActionsContainer, t as RowAction } from "./TableBoxRowActions-CDcREhP4.mjs";
1
+ import { i as RowActionsContainerWithFadeWidth, n as RowActions, r as RowActionsContainer, t as RowAction } from "./TableBoxRowActions-BJ8ue3Bk.mjs";
2
2
  export { RowAction, RowActions, RowActionsContainer, RowActionsContainerWithFadeWidth };
@@ -1,2 +1,2 @@
1
- import { a as TableCellProps, c as TableTD, i as TableCell, l as TableTR, n as StickyTH, o as TableCellTitle, r as TableActionTD, s as TableIconTD, t as StickyTD } from "./index-d_fTFuMM.mjs";
1
+ import { a as TableCellProps, c as TableTD, i as TableCell, l as TableTR, n as StickyTH, o as TableCellTitle, r as TableActionTD, s as TableIconTD, t as StickyTD } from "./index-CvBvfQAY.mjs";
2
2
  export { StickyTD, StickyTH, TableActionTD, TableCellProps, TableCellTitle, TableIconTD, TableTD, TableTR, TableCell as default };
@@ -1,32 +1,33 @@
1
1
  import { a as styled, n as createGlobalStyle, r as css } from "./styledComponentsInterop-8zScIQyC.mjs";
2
- import { TruncatedText } from "./lib/TruncatedText.mjs";
2
+ import { isActive, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
3
+ import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
4
+ import "./variables/transitions.mjs";
3
5
  import { paragraphMixins } from "./mixins/text.mjs";
6
+ import { TruncatedText } from "./lib/TruncatedText.mjs";
4
7
  import { t as Card_default } from "./Card-CKrJtn1f.mjs";
5
8
  import { t as Spacer_default } from "./Spacer-BsK8tTwA.mjs";
6
9
  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";
10
+ import { a as Tooltip } from "./Tooltip-DSKGD33G.mjs";
10
11
  import { useScrollOverflow } from "./lib/useScrollOverflow.mjs";
11
12
  import { Z_INDICES } from "./lib/zindex.mjs";
12
- import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
13
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 { r as InputGroup } from "./Input-DoB8YswA.mjs";
14
+ import { n as Button, t as IconButton } from "./IconButton-BnSEV7eR.mjs";
15
+ import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-CWF65Tv4.mjs";
16
+ import { r as InputGroup } from "./Input-D7of_GtJ.mjs";
16
17
  import Input_default from "./components/Input/index.mjs";
17
- import { c as MenuList, s as MenuItem } from "./Menu-CHbUf9PQ.mjs";
18
- import { n as DropdownMenu_default } from "./DropdownMenu-82xH1AZr.mjs";
19
- import { t as Combobox } from "./Combobox-BGRyr_-L.mjs";
20
- import { s as Popover_default } from "./Popover-DNH8Jx1-.mjs";
21
- import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-sYllYizt.mjs";
22
- import { t as Toggle } from "./Toggle-e8DCYa6i.mjs";
23
- import { t as ListBox } from "./ListBox-B9uuMt2R.mjs";
24
- import { m as FormField, o as ComboboxField } from "./FormField-CVnbsNvU.mjs";
25
- import { n as DatePicker, t as DateRangePicker } from "./DatePicker-BNnZ6L1y.mjs";
18
+ import { c as MenuList, s as MenuItem } from "./Menu-DVI8l-4Q.mjs";
19
+ import { n as DropdownMenu_default } from "./DropdownMenu-CyxizDxJ.mjs";
20
+ import { t as Combobox } from "./Combobox-CKaVX-32.mjs";
21
+ import { s as Popover_default } from "./Popover-DlXyKYL5.mjs";
22
+ import { t as Toggle } from "./Toggle-Do5z1VcO.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-jzXQDraS.mjs";
25
+ import { m as FormField, o as ComboboxField } from "./FormField-C7bW-O6H.mjs";
26
+ import { n as DatePicker, t as DateRangePicker } from "./DatePicker-D2SfjS-N.mjs";
26
27
  import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
27
28
  import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
28
29
  import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
29
- import { CaretDownIcon, CheckIcon, CircleInfoIcon, CirclePlusIcon, CopyIcon, FilterIcon, MoreIcon, PlusIcon, RotateCcwIcon, SaveIcon, SearchIcon, SettingsIcon, TrashIcon, XIcon } from "@persona/icons";
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
32
  import { debounce, isEqual, noop, partition, startCase, union, uniqueId } from "lodash-es";
32
33
  import { useId } from "react-aria";
@@ -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([]);
@@ -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,
@@ -1127,6 +1142,20 @@ function TableControlsProvider({ children, ...value }) {
1127
1142
  return createElement(TableControlsContext.Provider, { value }, children);
1128
1143
  }
1129
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
1130
1159
  //#region components/DataTable/TableControls/FiltersV2/operators.ts
1131
1160
  /**
1132
1161
  * Operator vocabulary per field type. The UI uses this to populate the
@@ -1233,6 +1262,15 @@ function getDefaultOperatorForType(type) {
1233
1262
  function isValuelessOperator(operator) {
1234
1263
  return VALUELESS_OPERATORS.has(operator);
1235
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
+ }
1236
1274
  function isRangeOperator(operator) {
1237
1275
  return RANGE_OPERATORS.has(operator);
1238
1276
  }
@@ -1336,9 +1374,45 @@ function reconcileValueForOperator(field, nextOperator, previousOperator, value)
1336
1374
  return value ?? emptyValueForRule(field, nextOperator);
1337
1375
  }
1338
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
1339
1411
  //#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/display.ts
1340
- function valueDisplayString(value, optionLabels) {
1412
+ function valueDisplayString(value, optionLabels, relativeDate) {
1341
1413
  if (value == null) return;
1414
+ const relativeLabel = relativePresetLabel(value, relativeDate);
1415
+ if (relativeLabel) return relativeLabel;
1342
1416
  const display = (raw) => optionLabels?.[raw] ?? raw;
1343
1417
  if (Array.isArray(value)) {
1344
1418
  if (value.length === 0) return;
@@ -1510,7 +1584,7 @@ function RuleEditorFields({ registry, field, groupIndex, ruleIndex, rule, size,
1510
1584
  field && !isValuelessOperator(rule.operator) ? /* @__PURE__ */ jsx(FormField, {
1511
1585
  label: "Value",
1512
1586
  labelProps: { size },
1513
- children: /* @__PURE__ */ jsx(Fragment$1, { 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) })
1514
1588
  }) : null
1515
1589
  ] });
1516
1590
  }
@@ -1522,7 +1596,7 @@ function AdvancedFilterRuleRow({ registry, groupIndex, ruleIndex, rule, size, is
1522
1596
  const operatorConfigurable = field ? fieldHasMultipleOperators(field) : true;
1523
1597
  const condition = ruleIndex === 0 ? "If" : "And";
1524
1598
  const rowId = `${groupIndex}-${ruleIndex}`;
1525
- 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);
1526
1600
  const textValue = [
1527
1601
  condition,
1528
1602
  field?.label ?? rule.fieldId,
@@ -1844,13 +1918,14 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
1844
1918
  onChange,
1845
1919
  registry
1846
1920
  ]);
1847
- const handleValueChange = useCallback((groupIndex, ruleIndex, nextValue) => {
1921
+ const handleValueChange = useCallback((groupIndex, ruleIndex, nextValue, relativeDate) => {
1848
1922
  const prev = compound.groups[groupIndex]?.rules[ruleIndex];
1849
1923
  if (!prev) return;
1924
+ const { relativeDate: _previousRelativeDate, ...rest } = prev;
1850
1925
  onChange(setRuleInGroup(compound, groupIndex, ruleIndex, {
1851
- fieldId: prev.fieldId,
1852
- operator: prev.operator,
1853
- value: nextValue
1926
+ ...rest,
1927
+ value: nextValue,
1928
+ ...relativeDate ? { relativeDate } : {}
1854
1929
  }));
1855
1930
  }, [compound, onChange]);
1856
1931
  return /* @__PURE__ */ jsxs(PopoverPrimitive.Root, {
@@ -2184,20 +2259,19 @@ const parseIsoDate$1 = (value) => {
2184
2259
  return;
2185
2260
  }
2186
2261
  };
2187
- const readIsoEndpoints = (value) => {
2188
- if (value == null || typeof value !== "object" || Array.isArray(value)) return {};
2189
- return value;
2190
- };
2191
- const useDateRange = (value) => {
2192
- 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;
2193
2266
  return useMemo(() => ({
2194
- startDate: parseIsoDate$1(startDate),
2195
- endDate: parseIsoDate$1(endDate)
2196
- }), [startDate, endDate]);
2267
+ startDate: parseIsoDate$1(resolved?.startDate),
2268
+ endDate: parseIsoDate$1(resolved?.endDate)
2269
+ }), [resolved?.startDate, resolved?.endDate]);
2197
2270
  };
2198
- const DateRangeValueControl = ({ field, operator, value, onChange, ariaLabel, hidePresets, portalContainer, visibleMonths }) => {
2271
+ const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange, ariaLabel, hidePresets, portalContainer, visibleMonths, relativeDatesEnabled = false }) => {
2199
2272
  const size = useFilterBarSize();
2200
- const dateRange = useDateRange(value);
2273
+ const dateRange = useDateRange(value, relativeDate);
2274
+ const noopChange = useCallback(() => void 0, []);
2201
2275
  const handleChange = useCallback((range) => {
2202
2276
  if (!range?.start || !range.end || range.start.compare(range.end) > 0) {
2203
2277
  onChange(null);
@@ -2208,6 +2282,29 @@ const DateRangeValueControl = ({ field, operator, value, onChange, ariaLabel, hi
2208
2282
  endDate: range.end.toString()
2209
2283
  });
2210
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);
2211
2308
  if (isValuelessOperator(operator)) return null;
2212
2309
  const hasCompleteRange = dateRange.startDate != null && dateRange.endDate != null;
2213
2310
  return /* @__PURE__ */ jsx(DateRangePicker, {
@@ -2216,7 +2313,9 @@ const DateRangeValueControl = ({ field, operator, value, onChange, ariaLabel, hi
2216
2313
  dateRange,
2217
2314
  hidePresets,
2218
2315
  label: null,
2219
- onChange: handleChange,
2316
+ onChange: noopChange,
2317
+ onDateFilterChange: handleDateFilterChange,
2318
+ selectedPreset: relativePreset,
2220
2319
  portalContainer,
2221
2320
  showClear: false,
2222
2321
  size,
@@ -2761,8 +2860,10 @@ const OverflowTooltipList = styled(Stack).attrs({
2761
2860
  * `optionLabels` lookup so the pill renders human-readable option labels
2762
2861
  * instead of raw option ids. Null / undefined collapses to an empty list.
2763
2862
  */
2764
- function normalizeValueToDisplay(value, optionLabels) {
2863
+ function normalizeValueToDisplay(value, optionLabels, relativeDate) {
2765
2864
  if (value == null) return [];
2865
+ const relativeLabel = relativePresetLabel(value, relativeDate);
2866
+ if (relativeLabel) return [relativeLabel];
2766
2867
  const lookup = (raw) => optionLabels?.[raw] ?? raw;
2767
2868
  if (Array.isArray(value)) {
2768
2869
  if (value.length > 0 && Array.isArray(value[0])) return [`${value.length} group${value.length === 1 ? "" : "s"}`];
@@ -2794,7 +2895,11 @@ function buildAccessibleName(field, rule, displayedValues) {
2794
2895
  const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDismiss, variant = "default", optionLabels, size, ...rest }, ref) {
2795
2896
  const reactId = useMemo(() => uniqueId("filter-pill-"), []);
2796
2897
  const resolvedSize = useFilterBarSize(size);
2797
- 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
+ ]);
2798
2903
  const accessibleName = buildAccessibleName(field, rule, displayedValues);
2799
2904
  const hasRule = rule != null;
2800
2905
  const isComplete = hasRule && (isValuelessOperator(rule.operator) || displayedValues.length > 0);
@@ -3115,6 +3220,10 @@ const EMPTY_FILTER_STATE = Object.freeze({
3115
3220
  topLevelRules: [],
3116
3221
  compound: Object.freeze({ groups: [] })
3117
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
+ }
3118
3227
  //#endregion
3119
3228
  //#region components/DataTable/TableControls/FiltersV2/validation.ts
3120
3229
  /**
@@ -3640,7 +3749,7 @@ function useStableFieldIds(fieldIds) {
3640
3749
  if (previous == null || fieldIds == null || previous.length !== fieldIds.length || fieldIds.some((id, index) => previous[index] !== id)) stable.current = fieldIds;
3641
3750
  return stable.current;
3642
3751
  }
3643
- 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 }) {
3644
3753
  const filterState = useFilterStateV2({
3645
3754
  registry,
3646
3755
  initialState,
@@ -3755,12 +3864,14 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
3755
3864
  onChange: (compound) => {
3756
3865
  filterState.setCompound(compound);
3757
3866
  },
3758
- renderValueControl: (field, operator, value, onChange) => resolveValueControl({
3867
+ renderValueControl: (field, operator, value, onChange, relativeDate) => resolveValueControl({
3759
3868
  field,
3760
3869
  operator,
3761
3870
  value,
3871
+ relativeDate,
3762
3872
  onChange,
3763
- layout: "inline"
3873
+ layout: "inline",
3874
+ relativeDatesEnabled
3764
3875
  }, valueControlResolver),
3765
3876
  trigger: /* @__PURE__ */ jsx(RulesPill, {
3766
3877
  compound: filterState.state.compound,
@@ -3786,8 +3897,9 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
3786
3897
  field,
3787
3898
  operator: rule.operator,
3788
3899
  onChangeOperator: (op) => {
3900
+ const { relativeDate: _staleRelativeDate, ...rest } = rule;
3789
3901
  filterState.updateTopLevelRule(rule.id, {
3790
- ...rule,
3902
+ ...rest,
3791
3903
  operator: op,
3792
3904
  value: reconcileValueForOperator(field, op, rule.operator, rule.value)
3793
3905
  });
@@ -3796,11 +3908,17 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
3796
3908
  field,
3797
3909
  operator: rule.operator,
3798
3910
  value: rule.value,
3799
- onChange: (value) => filterState.updateTopLevelRule(rule.id, {
3800
- ...rule,
3801
- value
3802
- }),
3803
- 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
3804
3922
  }, valueControlResolver),
3805
3923
  onClose: () => setEditingRuleId(null),
3806
3924
  open: isOpen,
@@ -4070,6 +4188,81 @@ function normalizeFieldSource(raw) {
4070
4188
  return raw === "system" ? "system" : "custom";
4071
4189
  }
4072
4190
  //#endregion
4073
- 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 { TableControlsProvider as A, getOperatorsForType as C, reconcileValueForOperator as D, isValuelessOperator as E, ControlBar as F, DataTableCompactBar as I, TableViewConfiguration as M, TableViewConfigurationDropdown as N, dateRuleIntent as O, TableControls as P, getOperatorsForField as S, isRangeOperator as T, FILTER_SIZE_TOKENS as _, encodeFilterStateToUrlParam as a, emptyValueForRule as b, FilterBar_default as c, isFilterStateV2 as d, pruneToRegistry as f, resolveValueControl as g, PillShell as h, decodeFilterStateFromUrl as i, useTableControls as j, TableControlsContext 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, useFilterBarSize as v, isCompleteDateRange as w, getDefaultOperatorForType as x, resolveDateRangeRuleValue as y };
4074
4267
 
4075
- //# sourceMappingURL=TableControls-3bXyd8gS.mjs.map
4268
+ //# sourceMappingURL=TableControls-BnesnTue.mjs.map