@persona/design-system 0.7.2 → 0.8.1
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.
- package/CHANGELOG.md +273 -0
- package/dist/Accordion.d.mts +1 -1
- package/dist/AccordionItem.d.mts +1 -1
- package/dist/{Action-Cyo6KCsS.d.mts → Action-BwYS9qaG.d.mts} +3 -3
- package/dist/Action.d.mts +1 -1
- package/dist/AdvancedFilterRuleRow.d.mts +4 -2
- package/dist/AdvancedFilterRulesPopover.d.mts +5 -3
- package/dist/ArrayValueControl.d.mts +1 -1
- package/dist/Attribute.d.mts +3 -3
- package/dist/{Badge-BD0Ut46g.mjs → Badge-D-5tbZDw.mjs} +2 -2
- package/dist/{Badge-BD0Ut46g.mjs.map → Badge-D-5tbZDw.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-CYXkrKXl.d.mts → Breadcrumb-BADja8tn.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-CrXfUK1V.mjs → Breadcrumbs-CNpM0aXm.mjs} +5 -5
- package/dist/{Breadcrumbs-CrXfUK1V.mjs.map → Breadcrumbs-CNpM0aXm.mjs.map} +1 -1
- package/dist/{Breadcrumbs-CP7eUYUy.d.mts → Breadcrumbs-CxP7ktfM.d.mts} +2 -2
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-Dhiund3f.d.mts → Button-CnswHEJ2.d.mts} +4 -4
- package/dist/Button.d.mts +1 -1
- package/dist/{Calendar-CMeIZ0BO.d.mts → Calendar-Cke5IlMI.d.mts} +1 -1
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-DCYB_mtR.d.mts → Card-Bp6L08H4.d.mts} +3 -3
- package/dist/Card.d.mts +1 -1
- package/dist/{CardV2-M3o4BELp.mjs → CardV2-DEW6mw_o.mjs} +9 -7
- package/dist/{CardV2-M3o4BELp.mjs.map → CardV2-DEW6mw_o.mjs.map} +1 -1
- package/dist/{Checkbox-fWj7GkBl.d.mts → Checkbox-DUXws1Os.d.mts} +1 -1
- package/dist/{Checkbox-AjL7ucoR.mjs → Checkbox-GibG2pg5.mjs} +3 -3
- package/dist/{Checkbox-AjL7ucoR.mjs.map → Checkbox-GibG2pg5.mjs.map} +1 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/CheckboxGroupField-DzdOYIjo.d.mts +25 -0
- package/dist/CheckboxGroupField.d.mts +2 -25
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-C2b9u955.mjs → Combobox-CCDoNF9Y.mjs} +23 -10
- package/dist/Combobox-CCDoNF9Y.mjs.map +1 -0
- package/dist/{Combobox-CC-Osr57.d.mts → Combobox-CnxmKUQf.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-Evo0FRxP.d.mts → ComboboxBase-CtNrsPO9.d.mts} +8 -5
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-CvAc0FT3.d.mts → ComboboxMultiSelect-CMH6iVu4.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-CBm7x0oh.d.mts → ComboboxSingleSelect-BLPbLmMY.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-D_2qMK4y.d.mts → CompactBar-BwKIIlWz.d.mts} +4 -4
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-Cz7GeTYd.mjs → ConfigFormGroup-BQXN2Pgj.mjs} +2 -2
- package/dist/{ConfigFormGroup-Cz7GeTYd.mjs.map → ConfigFormGroup-BQXN2Pgj.mjs.map} +1 -1
- package/dist/{ControlBar-B7j9sOr9.d.mts → ControlBar-BJUY6GOX.d.mts} +7 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +4 -3
- package/dist/{DateField-BamAk9_w.d.mts → DateField-BojOHfrv.d.mts} +2 -2
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-C3xNSkPG.d.mts → DatePicker-BHVx_i_F.d.mts} +2 -2
- package/dist/{DatePicker-IgiUI3Wj.mjs → DatePicker-LPIJrc0n.mjs} +77 -42
- package/dist/DatePicker-LPIJrc0n.mjs.map +1 -0
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-C4QKMo2a.d.mts → DateRangePicker-CelDK_44.d.mts} +3 -3
- package/dist/DateRangePicker.d.mts +1 -1
- package/dist/DateRangeValueControl.d.mts +5 -3
- package/dist/DateValueControl.d.mts +8 -5
- package/dist/{DropdownButton-BWiXLMfD.mjs → DropdownButton-i5Dmxiq1.mjs} +3 -3
- package/dist/{DropdownButton-BWiXLMfD.mjs.map → DropdownButton-i5Dmxiq1.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-DL5ye-0m.d.mts → DropdownMenu-YtLxcNWt.d.mts} +2 -2
- package/dist/{DropdownMenu-CuKSNxc9.mjs → DropdownMenu-j8NWbAvM.mjs} +7 -2
- package/dist/DropdownMenu-j8NWbAvM.mjs.map +1 -0
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-BA0-m_Wp.d.mts → ErrorProps-6dRdJ4QQ.d.mts} +1 -1
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-bKxrF1gC.d.mts → FieldRegistry-DqO8HiYb.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-DhlBLWxw.d.mts → FilterBar-CpAA2Ozk.d.mts} +11 -4
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +2 -2
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +8 -2
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/{FormControl-D5xyPkST.d.mts → FormControl-B-s6G9mp.d.mts} +2 -2
- package/dist/{FormControl-DnfZTli_.mjs → FormControl-bDxFF0hl.mjs} +3 -3
- package/dist/{FormControl-DnfZTli_.mjs.map → FormControl-bDxFF0hl.mjs.map} +1 -1
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +1 -1
- package/dist/{FormField-BJZUj6jg.d.mts → FormField-D3k-f3-f.d.mts} +2 -2
- package/dist/{FormField-74TPV8-8.mjs → FormField-DbcqNcx2.mjs} +16 -16
- package/dist/{FormField-74TPV8-8.mjs.map → FormField-DbcqNcx2.mjs.map} +1 -1
- package/dist/FormField.d.mts +1 -1
- package/dist/{Grid-DOyYYsvk.mjs → Grid-CeH9E5Ai.mjs} +1 -1
- package/dist/{Grid-DOyYYsvk.mjs.map → Grid-CeH9E5Ai.mjs.map} +1 -1
- package/dist/{Header-BqEKkEp5.d.mts → Header-2K49LYkR.d.mts} +1 -1
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-mOVSuEB8.d.mts → HelperTooltip-CTHUM2nC.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/HighlightedText.d.mts +61 -0
- package/dist/{HoverCopyableField-CN3gl0ny.mjs → HoverCopyableField-BARZLhfO.mjs} +3 -3
- package/dist/{HoverCopyableField-CN3gl0ny.mjs.map → HoverCopyableField-BARZLhfO.mjs.map} +1 -1
- package/dist/{IconButton-CqTPMhjV.mjs → IconButton-BHFCjvzs.mjs} +1 -1
- package/dist/{IconButton-CqTPMhjV.mjs.map → IconButton-BHFCjvzs.mjs.map} +1 -1
- package/dist/{IconButton-CjPFhpVG.d.mts → IconButton-D5hx405r.d.mts} +2 -2
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +1 -1
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-C_3QwAAt.mjs → Input-BQN97Hzm.mjs} +7 -3
- package/dist/Input-BQN97Hzm.mjs.map +1 -0
- package/dist/{Input-CZ_6KWDN.d.mts → Input-BQbcIiVj.d.mts} +3 -3
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-lag6BM5h.d.mts → InputProps-DT1ZReZS.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/Link-Bzm4AL5J.mjs +79 -0
- package/dist/Link-Bzm4AL5J.mjs.map +1 -0
- package/dist/Link.d.mts +1 -1
- package/dist/{ListBox-nYAdYVQx.d.mts → ListBox-CdqRwBvA.d.mts} +7 -7
- package/dist/{ListBox-D4j4LCT3.mjs → ListBox-DOqN9DNl.mjs} +33 -16
- package/dist/ListBox-DOqN9DNl.mjs.map +1 -0
- package/dist/ListBox.d.mts +1 -1
- package/dist/ListBoxField-Bl2WLplO.d.mts +51 -0
- package/dist/ListBoxField.d.mts +2 -51
- package/dist/{LoadingShimmer-Dizk2sZu.mjs → LoadingShimmer-Ds7rvIUN.mjs} +13 -8
- package/dist/LoadingShimmer-Ds7rvIUN.mjs.map +1 -0
- package/dist/LoadingShimmer.d.mts +1 -1
- package/dist/{LogicRow-k4ZPtjN0.d.mts → LogicRow-CwMAn1sh.d.mts} +3 -3
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +1 -1
- package/dist/{Menu-Bu7-KBhp.d.mts → Menu-CUN9bmc1.d.mts} +3 -3
- package/dist/{Menu-Cd6oxjAe.mjs → Menu-DjW2b3Wk.mjs} +1 -1
- package/dist/{Menu-Cd6oxjAe.mjs.map → Menu-DjW2b3Wk.mjs.map} +1 -1
- package/dist/Menu.d.mts +1 -1
- package/dist/{MiddleTruncatedText-CO58jrNF.mjs → MiddleTruncatedText-DoTyfMem.mjs} +2 -2
- package/dist/{MiddleTruncatedText-CO58jrNF.mjs.map → MiddleTruncatedText-DoTyfMem.mjs.map} +1 -1
- package/dist/{Modal-Dwq-QBw_.d.mts → Modal-CGXJGrKg.d.mts} +2 -2
- package/dist/{Modal-BN0K8QXi.mjs → Modal-DHLPK65-.mjs} +6 -4
- package/dist/Modal-DHLPK65-.mjs.map +1 -0
- package/dist/Modal.d.mts +1 -1
- package/dist/{PageHeader-BTtm3hRQ.mjs → PageHeader-eI4RM_uL.mjs} +2 -2
- package/dist/{PageHeader-BTtm3hRQ.mjs.map → PageHeader-eI4RM_uL.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +1 -1
- package/dist/{PageSelector-CeGC84N1.d.mts → PageSelector-kAfYxEky.d.mts} +3 -3
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-CPd4mSnw.mjs → Pagination-6BDOn9bX.mjs} +6 -6
- package/dist/Pagination-6BDOn9bX.mjs.map +1 -0
- package/dist/{Pagination-H-CcXrCD.d.mts → Pagination-Bhr7xyd2.d.mts} +2 -2
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-Dz4woKd8.mjs → Pii-DhL1gblz.mjs} +2 -2
- package/dist/{Pii-Dz4woKd8.mjs.map → Pii-DhL1gblz.mjs.map} +1 -1
- package/dist/{PillShell-BQC-k7Rl.d.mts → PillShell-CVJL1k5I.d.mts} +2 -2
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-opVa9Xhc.mjs → Popover-CbYaWrAy.mjs} +15 -2
- package/dist/Popover-CbYaWrAy.mjs.map +1 -0
- package/dist/{ProgressIndicator-3A4Aqci6.mjs → ProgressIndicator-BpF3XLn3.mjs} +3 -3
- package/dist/ProgressIndicator-BpF3XLn3.mjs.map +1 -0
- package/dist/{ProgressIndicator-DbOLOaxJ.d.mts → ProgressIndicator-CYyM6OSx.d.mts} +1 -1
- package/dist/ProgressIndicator.d.mts +1 -1
- package/dist/{PseudoClassProps-CHtBNv8B.d.mts → PseudoClassProps-BOVN6Etr.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-Cxt89w8s.mjs → Radio-DPaX-9LH.mjs} +2 -2
- package/dist/{Radio-Cxt89w8s.mjs.map → Radio-DPaX-9LH.mjs.map} +1 -1
- package/dist/{RadioGroup-BjrfVPZQ.d.mts → RadioGroup-C0l0pdEt.d.mts} +1 -1
- package/dist/{RadioGroup-B6Cg1kdm.mjs → RadioGroup-D7f4m2Uc.mjs} +2 -2
- package/dist/{RadioGroup-B6Cg1kdm.mjs.map → RadioGroup-D7f4m2Uc.mjs.map} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/{RangeCalendar-CPnLaM-J.d.mts → RangeCalendar-BJn9V3iN.d.mts} +2 -2
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +1 -1
- package/dist/{RouterContext-CbvHIl4K.d.mts → RouterContext-BLrzYlJ_.d.mts} +2 -2
- package/dist/RouterContext.d.mts +1 -1
- package/dist/{RouterLink-v9AG9fYa.d.mts → RouterLink-BHXjhqps.d.mts} +2 -2
- package/dist/RouterLink.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +4 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SearchInput-CIjwmT8R.d.mts → SearchInput-Buh8LdIL.d.mts} +2 -2
- package/dist/SearchInput.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-Crr_aHAs.d.mts → SegmentedControl-B9qLyIIW.d.mts} +1 -1
- package/dist/{SegmentedControl-BcwfLuHA.mjs → SegmentedControl-zEvBtVj0.mjs} +3 -3
- package/dist/SegmentedControl-zEvBtVj0.mjs.map +1 -0
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-BstCz8P1.mjs → Select-BoZuM_e9.mjs} +10 -8
- package/dist/Select-BoZuM_e9.mjs.map +1 -0
- package/dist/{Select-CJQeuCiF.d.mts → Select-Cv_9PLOt.d.mts} +3 -3
- package/dist/Select.d.mts +1 -1
- package/dist/SmartTextInput.d.mts +107 -0
- package/dist/SmartTextInputCodeDialog.d.mts +18 -0
- package/dist/SmartTextInputField.d.mts +25 -0
- package/dist/SmartTextInputFunctionDialog.d.mts +37 -0
- package/dist/SmartTextInputListbox.d.mts +26 -0
- package/dist/SmartTextInputPopover.d.mts +45 -0
- package/dist/{Spinner-DplDSBqf.mjs → Spinner-CarSRiBF.mjs} +1 -1
- package/dist/{Spinner-DplDSBqf.mjs.map → Spinner-CarSRiBF.mjs.map} +1 -1
- package/dist/{Stack-ChsImaEY.mjs → Stack-CEPzs4Pb.mjs} +1 -1
- package/dist/{Stack-ChsImaEY.mjs.map → Stack-CEPzs4Pb.mjs.map} +1 -1
- package/dist/{Stack-RVptVTVi.d.mts → Stack-XzBzPvSV.d.mts} +1 -1
- package/dist/Stack.d.mts +1 -1
- package/dist/StatusIndicator-bEnMWV_S.mjs +315 -0
- package/dist/StatusIndicator-bEnMWV_S.mjs.map +1 -0
- package/dist/{Sticker-C3Eb13OQ.mjs → Sticker-B-fU8lgu.mjs} +5 -8
- package/dist/Sticker-B-fU8lgu.mjs.map +1 -0
- package/dist/{Sticker-BVX38LKi.d.mts → Sticker-DGfNuxUK.d.mts} +4 -4
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/Tab.d.mts +1 -1
- package/dist/{TabBar-BepWbJHz.mjs → TabBar-BSl5v5aa.mjs} +4 -7
- package/dist/{TabBar-BepWbJHz.mjs.map → TabBar-BSl5v5aa.mjs.map} +1 -1
- package/dist/{Table-DFiSWroB.d.mts → Table-B2V5tlfA.d.mts} +1 -1
- package/dist/{Table-B1gRr2XT.mjs → Table-msXj0glu.mjs} +22 -3
- package/dist/Table-msXj0glu.mjs.map +1 -0
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-Di9JYHDN.d.mts → TableBody-SlQe4Jyp.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-DAQ3Plqx.mjs → TableBox-CF1_Fk0j.mjs} +22 -17
- package/dist/TableBox-CF1_Fk0j.mjs.map +1 -0
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-D6h1X5ph.d.mts → TableBoxCell-BRhGeUnO.d.mts} +6 -6
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/TableBoxField-Cq9M1upV.d.mts +103 -0
- package/dist/TableBoxField.d.mts +2 -103
- package/dist/{TableBoxRow-C6l6J4mq.d.mts → TableBoxRow-DZzRYoID.d.mts} +3 -3
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-CsLN1b1J.d.mts → TableBoxRowActions-4-j3flJq.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{TableCell-WSDXw79Q.d.mts → TableCell-D5Sqb6iO.d.mts} +2 -2
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-cswMgBAr.d.mts → TableControls-B-LakH-8.d.mts} +4 -3
- package/dist/{TableControls-BxuPCUQS.mjs → TableControls-CqW_nyBY.mjs} +286 -78
- package/dist/TableControls-CqW_nyBY.mjs.map +1 -0
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-Cbh8wear.d.mts → TableControlsContext-Dh1YVmBM.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-CkL1fEg2.d.mts → TableHead-BCrVa0BY.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-K9Ry6YqO.d.mts → TableHeaderCell-CcEkDozs.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-CYRGIFEl.d.mts → TableLayout-Bhj1QBBz.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-DMHlo1eg.d.mts → TableRow-Cy1y7b9S.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-BRbOcVNc.d.mts → TableViewConfigurationDropdown-BzygLtGm.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-_LtE-PRY.mjs → TechnicalSticker-B6T7cHHc.mjs} +2 -2
- package/dist/{TechnicalSticker-_LtE-PRY.mjs.map → TechnicalSticker-B6T7cHHc.mjs.map} +1 -1
- package/dist/{Text-B69gp3X_.d.mts → Text-BVGJ-Nlw.d.mts} +3 -3
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-Cjsdl07-.d.mts → TextArea-Bzj593VO.d.mts} +2 -2
- package/dist/{TextArea-CcxltuBh.mjs → TextArea-C1CmFRiz.mjs} +2 -2
- package/dist/{TextArea-CcxltuBh.mjs.map → TextArea-C1CmFRiz.mjs.map} +1 -1
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-DDzKLCeX.d.mts → TextUnderlineTooltip-CgFmtqF_.d.mts} +2 -2
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +1 -1
- package/dist/Toast.d.mts +1 -1
- package/dist/{Toggle-DWbJOwf3.mjs → Toggle-CntyMUPJ.mjs} +9 -4
- package/dist/Toggle-CntyMUPJ.mjs.map +1 -0
- package/dist/{Toggle-B5sSdb_q.d.mts → Toggle-bSu1xAaq.d.mts} +1 -1
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-x1pFf-Mj.d.mts → Tooltip-Duw4Fz1t.d.mts} +2 -2
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-BE8FuEQm.d.mts → TruncatedText-CbTpX_R1.d.mts} +1 -1
- package/dist/VersionHistory.d.mts +23 -0
- package/dist/VersionHistoryItem-D05QYej7.d.mts +54 -0
- package/dist/VersionHistoryItem.d.mts +2 -0
- package/dist/WizardModal.d.mts +3 -3
- package/dist/{accordionTitleTypography-BYhjSN9t.d.mts → accordionTitleTypography-Leehcmb3.d.mts} +2 -2
- package/dist/accordionTitleTypography.d.mts +1 -1
- package/dist/assertNever.d.mts +5 -0
- package/dist/chainTypes-D8SGRGba.d.mts +17 -0
- package/dist/{codec-BcgsGCHE.d.mts → codec-Vsztf4fe.d.mts} +2 -2
- package/dist/codec.d.mts +1 -1
- package/dist/{color-LH7zKfKo.d.mts → color-CrlF3pba.d.mts} +9 -4
- package/dist/components/Accordion/index.d.mts +1 -1
- package/dist/components/Accordion/index.mjs +1 -1
- package/dist/components/Attribute/index.mjs +2 -2
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +1 -1
- package/dist/components/BottomPanel/index.mjs +5 -3
- package/dist/components/BottomPanel/index.mjs.map +1 -1
- package/dist/components/Breadcrumbs/index.d.mts +1 -1
- package/dist/components/Breadcrumbs/index.mjs +1 -1
- package/dist/components/Button/index.d.mts +2 -2
- package/dist/components/Button/index.mjs +1 -1
- package/dist/components/ButtonGroup/index.mjs +2 -2
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/CardV2/index.d.mts +1 -1
- package/dist/components/CardV2/index.mjs +1 -1
- package/dist/components/Checkbox/index.d.mts +1 -1
- package/dist/components/Checkbox/index.mjs +1 -1
- package/dist/components/CodeHighlight/index.mjs +3 -1
- package/dist/components/CodeHighlight/index.mjs.map +1 -1
- package/dist/components/Combobox/index.d.mts +2 -2
- package/dist/components/Combobox/index.mjs +1 -1
- package/dist/components/ConfigFormGroup/index.mjs +2 -2
- package/dist/components/DataTable/TableControls/index.d.mts +19 -19
- package/dist/components/DataTable/TableControls/index.mjs +1 -1
- package/dist/components/DataTable/index.mjs +27 -16
- package/dist/components/DataTable/index.mjs.map +1 -1
- package/dist/components/DataTable/types.d.mts +2 -2
- package/dist/components/DatePicker/index.d.mts +5 -5
- package/dist/components/DatePicker/index.mjs +1 -1
- package/dist/components/DropdownButton/index.mjs +1 -1
- package/dist/components/DropdownMenu/index.d.mts +1 -1
- package/dist/components/DropdownMenu/index.mjs +1 -1
- package/dist/components/FloatingPanel/index.mjs +10 -7
- package/dist/components/FloatingPanel/index.mjs.map +1 -1
- package/dist/components/FormControl/index.d.mts +2 -2
- package/dist/components/FormControl/index.mjs +2 -2
- package/dist/components/FormField/index.d.mts +6 -6
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/Grid/index.mjs +1 -1
- package/dist/components/HoverCopyableField/index.mjs +1 -1
- package/dist/components/ImageTile/index.mjs +13 -9
- package/dist/components/ImageTile/index.mjs.map +1 -1
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/index.mjs +1 -78
- package/dist/components/ListBox/index.d.mts +3 -3
- package/dist/components/ListBox/index.mjs +1 -1
- package/dist/components/LoadingShimmer/index.mjs +1 -1
- package/dist/components/MaskedInput/index.mjs +1 -1
- package/dist/components/Menu/index.d.mts +1 -1
- package/dist/components/Menu/index.mjs +1 -1
- package/dist/components/Modal/index.d.mts +1 -1
- package/dist/components/Modal/index.mjs +1 -1
- package/dist/components/PageHeader/index.mjs +1 -1
- package/dist/components/Pagination/index.d.mts +3 -3
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Pii/index.mjs +1 -1
- package/dist/components/Popover/index.mjs +1 -1
- package/dist/components/ProgressBar/index.mjs +1 -2
- package/dist/components/ProgressBar/index.mjs.map +1 -1
- package/dist/components/ProgressIndicator/index.d.mts +1 -1
- package/dist/components/ProgressIndicator/index.mjs +1 -1
- package/dist/components/Radio/index.mjs +1 -1
- package/dist/components/RadioGroup/index.d.mts +1 -1
- package/dist/components/RadioGroup/index.mjs +1 -1
- package/dist/components/RightPanel/index.mjs +10 -7
- package/dist/components/RightPanel/index.mjs.map +1 -1
- package/dist/components/SegmentedControl/index.d.mts +1 -1
- package/dist/components/SegmentedControl/index.mjs +1 -1
- package/dist/components/Select/index.d.mts +1 -1
- package/dist/components/Select/index.mjs +1 -1
- package/dist/components/Slider/index.mjs +1 -1
- package/dist/components/Slider/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/index.d.mts +5 -0
- package/dist/components/SmartTextInput/index.mjs +2035 -0
- package/dist/components/SmartTextInput/index.mjs.map +1 -0
- package/dist/components/SmartTextInput/parser/method-chain/parser.mjs +1 -1
- package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +2 -105
- package/dist/components/SmartTextInput/parser/smart-text/parser.mjs +1 -1
- package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +3 -72
- package/dist/components/Spinner/index.mjs +1 -1
- package/dist/components/Stack/index.d.mts +1 -1
- package/dist/components/Stack/index.mjs +1 -1
- package/dist/components/StatusIndicator/index.mjs +1 -314
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/TabBar/index.mjs +1 -1
- package/dist/components/Table/index.d.mts +8 -8
- package/dist/components/Table/index.mjs +1 -1
- package/dist/components/TableBox/index.d.mts +2 -2
- package/dist/components/TableBox/index.mjs +1 -1
- package/dist/components/TechnicalSticker/index.mjs +1 -1
- package/dist/components/Text/index.d.mts +1 -1
- package/dist/components/TextArea/index.d.mts +1 -1
- package/dist/components/TextArea/index.mjs +1 -1
- package/dist/components/Tile/index.mjs +2 -2
- package/dist/components/Toast/index.mjs +2 -2
- package/dist/components/Toast/index.mjs.map +1 -1
- package/dist/components/Toggle/index.d.mts +1 -1
- package/dist/components/Toggle/index.mjs +1 -1
- package/dist/components/Tooltip/index.d.mts +3 -3
- package/dist/components/VersionHistory/index.d.mts +3 -0
- package/dist/components/VersionHistory/index.mjs +389 -0
- package/dist/components/VersionHistory/index.mjs.map +1 -0
- package/dist/compound-expression.d.mts +1 -1
- package/dist/{constants-BpwnTzcv.d.mts → constants-CQUCM6__.d.mts} +1 -1
- package/dist/constants.d.mts +1 -1
- package/dist/{createPath-Bst12Uxr.d.mts → createPath-Bq7wYGt_.d.mts} +2 -2
- package/dist/createPath.d.mts +1 -1
- package/dist/{date-filter-CZeChs9T.mjs → date-filter-D6IfCkwp.mjs} +1 -1
- package/dist/{date-filter-CZeChs9T.mjs.map → date-filter-D6IfCkwp.mjs.map} +1 -1
- package/dist/{date-range-rule-value-C4ir2Y8W.d.mts → date-range-rule-value-DVhMQP4-.d.mts} +2 -2
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/{date-rule-intent-gKmuxMVA.d.mts → date-rule-intent-BwQ6OTVD.d.mts} +3 -3
- package/dist/date-rule-intent.d.mts +1 -1
- package/dist/display.d.mts +2 -2
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-BOpH6pBm.d.mts → filter-size-context-BjTzcZwZ.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/format-date-value.d.mts +5 -0
- package/dist/helpers.d.mts +1 -1
- package/dist/{index-C2-PBfN3.d.mts → index-BFIFjR7Q.d.mts} +2 -2
- package/dist/{index-BXdrzR0c.d.mts → index-BhDvrF4l.d.mts} +4 -4
- package/dist/{index-c0aXmZV9.d.mts → index-C-xpEL8b.d.mts} +2 -2
- package/dist/index-irNqT1qQ2.d.mts +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index2.d.mts +1 -1
- package/dist/index3.d.mts +3 -3
- package/dist/index4.d.mts +1 -1
- package/dist/index5.d.mts +14 -14
- package/dist/{input-DVJhMlxU.d.mts → input-DpHBIUpP.d.mts} +3 -3
- package/dist/inputFields-BVDurw3L.d.mts +71 -0
- package/dist/inputFields.d.mts +2 -71
- package/dist/{intersperse-Bxcrxj2Q.mjs → intersperse-bvY2gibK.mjs} +1 -1
- package/dist/{intersperse-Bxcrxj2Q.mjs.map → intersperse-bvY2gibK.mjs.map} +1 -1
- package/dist/{jsonSchema-DmdZYC4a.d.mts → jsonSchema-Bl-qzgrr.d.mts} +34 -2
- package/dist/lib/MiddleTruncatedText.mjs +1 -1
- package/dist/lib/PDSProvider.d.mts +2 -2
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedText.mjs +1 -1
- package/dist/lib/TruncatedText.mjs.map +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
- package/dist/lib/TruncatedTextWithTooltip.mjs.map +1 -1
- package/dist/lib/chainTypes.d.mts +2 -0
- package/dist/lib/chainTypes.mjs +0 -0
- package/dist/lib/color.d.mts +2 -2
- package/dist/lib/color.mjs +18 -11
- package/dist/lib/color.mjs.map +1 -1
- package/dist/lib/customFunctionSchema.d.mts +49 -0
- package/dist/lib/customFunctionSchema.mjs +299 -0
- package/dist/lib/customFunctionSchema.mjs.map +1 -0
- package/dist/lib/date-filter/index.d.mts +2 -2
- package/dist/lib/date-filter/index.mjs +1 -1
- package/dist/lib/jsonSchema.d.mts +2 -2
- package/dist/lib/jsonSchema.mjs +26 -1
- package/dist/lib/jsonSchema.mjs.map +1 -1
- package/dist/lib/jsonSchemaType.d.mts +7 -0
- package/dist/lib/jsonSchemaType.mjs +31 -0
- package/dist/lib/jsonSchemaType.mjs.map +1 -0
- package/dist/lib/letPointerDownReachDocument.d.mts +22 -0
- package/dist/lib/letPointerDownReachDocument.mjs +25 -0
- package/dist/lib/letPointerDownReachDocument.mjs.map +1 -0
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/methodChain.d.mts +3 -66
- package/dist/lib/methodChain.mjs +1 -238
- package/dist/lib/methodChainNormalize.d.mts +2 -2
- package/dist/lib/methodChainTypes.d.mts +2 -23
- package/dist/lib/objectSchemaTypes.d.mts +1 -1
- package/dist/lib/platformObject.d.mts +38 -0
- package/dist/lib/platformObject.mjs +79 -0
- package/dist/lib/platformObject.mjs.map +1 -0
- package/dist/lib/pseudoClass.d.mts +1 -1
- package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
- package/dist/lib/router/adapters/tanstack.d.mts +1 -1
- package/dist/lib/router/index.d.mts +5 -5
- package/dist/lib/schemaOptions.d.mts +2 -0
- package/dist/lib/schemaOptions.mjs +481 -0
- package/dist/lib/schemaOptions.mjs.map +1 -0
- package/dist/lib/semanticColor.d.mts +1 -1
- package/dist/lib/snakifyPath.d.mts +5 -0
- package/dist/lib/snakifyPath.mjs +11 -0
- package/dist/lib/snakifyPath.mjs.map +1 -0
- package/dist/lib/useChain.d.mts +2 -0
- package/dist/lib/useChain.mjs +2 -0
- package/dist/listbox-options-BjOkovND.d.mts +38 -0
- package/dist/listbox-options.d.mts +2 -0
- package/dist/{message-CKSLIKF0.d.mts → message-w_1-kTDE.d.mts} +1 -1
- package/dist/methodChain-B5vZEOff.d.mts +66 -0
- package/dist/methodChain-L_h8Z8Bx.mjs +241 -0
- package/dist/methodChain-L_h8Z8Bx.mjs.map +1 -0
- package/dist/methodChainTypes-BVkTI8MX.d.mts +23 -0
- package/dist/mixins/focus.d.mts +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/input.mjs +6 -14
- package/dist/mixins/input.mjs.map +1 -1
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/scrollbar.d.mts +10 -0
- package/dist/mixins/scrollbar.mjs +31 -0
- package/dist/mixins/scrollbar.mjs.map +1 -0
- package/dist/mixins/text.d.mts +1 -1
- package/dist/{operators-1_jTgYRX.d.mts → operators-BG82-g3M.d.mts} +9 -3
- package/dist/operators.d.mts +2 -2
- package/dist/{palette-CMOEyNPH.d.mts → palette-C8tyI81D.d.mts} +3 -3
- package/dist/palette.d.mts +1 -1
- package/dist/{parser-Kxos6siN.mjs → parser-BeTiVjRs.mjs} +3 -2
- package/dist/{parser-Kxos6siN.mjs.map → parser-BeTiVjRs.mjs.map} +1 -1
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
- package/dist/patterns/PageLayout/index.mjs +2 -2
- package/dist/{components → patterns}/WizardModal/index.mjs +5 -5
- package/dist/patterns/WizardModal/index.mjs.map +1 -0
- package/dist/reactRouterFallback.d.mts +1 -1
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/safe-parse.d.mts +23 -0
- package/dist/schemaOptions-DGca6x7E.d.mts +173 -0
- package/dist/{semantic-BXwNUd4a.d.mts → semantic-D1661f_6.d.mts} +2 -2
- package/dist/{semanticColor-Cru2gSys.d.mts → semanticColor-Bg0H3RUL.d.mts} +3 -3
- package/dist/{text-CxIup7HJ.d.mts → text-Iw9DKpbZ.d.mts} +1 -1
- package/dist/{theme-CW6qlONZ.d.mts → theme-BB1B6Wkz.d.mts} +3 -3
- package/dist/theme.d.mts +1 -1
- package/dist/time-range.d.mts +7 -0
- package/dist/tone.d.mts +3 -3
- package/dist/tree.d.mts +9 -0
- package/dist/{types-3iEDsymE.d.mts → types-B0ilOIfE.d.mts} +2 -2
- package/dist/types-BYRTxB0a.d.mts +72 -0
- package/dist/{types-ChkiGhjQ.d.mts → types-CI2bPi02.d.mts} +1 -1
- package/dist/types-Cs6CdZCO.d.mts +83 -0
- package/dist/{types-B-stjYNc.d.mts → types-D1DijcJv.d.mts} +1 -1
- package/dist/{types-YojUycQK.d.mts → types-DZTbvdpO.d.mts} +1 -1
- package/dist/{types-g-aqbnek.d.mts → types-DdTu747j.d.mts} +1 -1
- package/dist/{types-BEjWTkZV.d.mts → types-Dy3lZv9z.d.mts} +7 -2
- package/dist/types-M-rsm1Km.d.mts +105 -0
- package/dist/types.d.mts +1 -1
- package/dist/types2.d.mts +1 -1
- package/dist/types3.d.mts +1 -1
- package/dist/types4.d.mts +1 -1
- package/dist/types5.d.mts +1 -1
- package/dist/types6.d.mts +1 -1
- package/dist/types7.d.mts +2 -0
- package/dist/{url-state-CHK2N2fA.d.mts → url-state-DWA7UFxS.d.mts} +2 -2
- package/dist/url-state.d.mts +1 -1
- package/dist/useChain-CEsXE2Bx.d.mts +77 -0
- package/dist/useChain-CKqYGdx4.mjs +4589 -0
- package/dist/useChain-CKqYGdx4.mjs.map +1 -0
- package/dist/useChainAtCursor.d.mts +87 -0
- package/dist/useCodeChainFunctionPanel.d.mts +26 -0
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-B26e5iUx.d.mts → useFilterStateV2-DoJ9lyJx.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-BzhMbl5P.mjs → useFormField-BAmkdxtA.mjs} +2 -2
- package/dist/{useFormField-BzhMbl5P.mjs.map → useFormField-BAmkdxtA.mjs.map} +1 -1
- package/dist/{useFormField-DPFClB5h.d.mts → useFormField-BtnAYcHV.d.mts} +2 -2
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-CH3kiXoa.mjs → useFormGroup-BZayb9fZ.mjs} +1 -1
- package/dist/{useFormGroup-CH3kiXoa.mjs.map → useFormGroup-BZayb9fZ.mjs.map} +1 -1
- package/dist/{useLocationPathname-CnRd_Rzn.d.mts → useLocationPathname-pLyLOrAi.d.mts} +1 -1
- package/dist/useLocationPathname.d.mts +1 -1
- package/dist/{useTableBoxDragAndDrop-DWlG5vhl.d.mts → useTableBoxDragAndDrop-wjc_LCpC.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-BcGuP8Fd.d.mts → utilities-DL18UdPs.d.mts} +1 -1
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/storybook.mjs +1 -1
- package/dist/utils/testing.d.mts +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils4.d.mts +111 -0
- package/dist/{validation-B-Om4ANo.d.mts → validation-PeVTwtd-.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/validation2.d.mts +64 -0
- package/dist/{value-control-resolver-BiyhB8zt.d.mts → value-control-resolver-Cx_wXQFv.d.mts} +3 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/effect.d.mts +1 -1
- package/dist/variables/semantic.d.mts +1 -1
- package/dist/variables/semantic.mjs +15 -18
- package/dist/variables/semantic.mjs.map +1 -1
- package/llms.txt +1 -1
- package/package.json +32 -6
- package/skills/ui-authoring/COMPONENTS.md +1 -1
- package/skills/ui-authoring/PATTERNS.md +1 -0
- package/dist/Combobox-C2b9u955.mjs.map +0 -1
- package/dist/DatePicker-IgiUI3Wj.mjs.map +0 -1
- package/dist/DropdownMenu-CuKSNxc9.mjs.map +0 -1
- package/dist/Input-C_3QwAAt.mjs.map +0 -1
- package/dist/ListBox-D4j4LCT3.mjs.map +0 -1
- package/dist/LoadingShimmer-Dizk2sZu.mjs.map +0 -1
- package/dist/Modal-BN0K8QXi.mjs.map +0 -1
- package/dist/Pagination-CPd4mSnw.mjs.map +0 -1
- package/dist/Popover-opVa9Xhc.mjs.map +0 -1
- package/dist/ProgressIndicator-3A4Aqci6.mjs.map +0 -1
- package/dist/SegmentedControl-BcwfLuHA.mjs.map +0 -1
- package/dist/Select-BstCz8P1.mjs.map +0 -1
- package/dist/Sticker-C3Eb13OQ.mjs.map +0 -1
- package/dist/Table-B1gRr2XT.mjs.map +0 -1
- package/dist/TableBox-DAQ3Plqx.mjs.map +0 -1
- package/dist/TableControls-BxuPCUQS.mjs.map +0 -1
- package/dist/Toggle-DWbJOwf3.mjs.map +0 -1
- package/dist/components/Link/index.mjs.map +0 -1
- package/dist/components/StatusIndicator/index.mjs.map +0 -1
- package/dist/components/WizardModal/index.mjs.map +0 -1
- package/dist/lib/methodChain.mjs.map +0 -1
- /package/dist/{index--p6oQT9I.d.mts → index-7in8TPrM.d.mts} +0 -0
- /package/dist/{index-BCh-G39Y2.d.mts → index-BCq_fh4A2.d.mts} +0 -0
- /package/dist/{index-BO_854F2.d.mts → index-BINnViIh.d.mts} +0 -0
- /package/dist/{index-BwFl_eS0.d.mts → index-BjgW3E7y.d.mts} +0 -0
- /package/dist/{index-C-lwXyQ6.d.mts → index-BwXb5CoQ.d.mts} +0 -0
- /package/dist/{index-C1o2TFfS.d.mts → index-C3usUse7.d.mts} +0 -0
- /package/dist/{index-C3kE54DD.d.mts → index-C9achTF6.d.mts} +0 -0
- /package/dist/{index-CREkvfw9.d.mts → index-CCKHlTA4.d.mts} +0 -0
- /package/dist/{index-CRo77wc3.d.mts → index-CFuHCx9T.d.mts} +0 -0
- /package/dist/{index-CfCYi7PF.d.mts → index-CP2eJYlK.d.mts} +0 -0
- /package/dist/{index-CoUVmp_Q.d.mts → index-CWB6exYm.d.mts} +0 -0
- /package/dist/{index-DCTy4zg0.d.mts → index-CryTAIZM.d.mts} +0 -0
- /package/dist/{index-DWIh4oP5.d.mts → index-CuheJfs-.d.mts} +0 -0
- /package/dist/{index-De7MV8-j.d.mts → index-D-9tW2r5.d.mts} +0 -0
- /package/dist/{index-DgJfEygr.d.mts → index-D9XihFV1.d.mts} +0 -0
- /package/dist/{index-Es5nKSSL.d.mts → index-Deol7ZWO.d.mts} +0 -0
- /package/dist/{index-Qwqzz3XM.d.mts → index-DjOaHFU3.d.mts} +0 -0
- /package/dist/{index-Wc1llEvP.d.mts → index-Iujpc9_6.d.mts} +0 -0
- /package/dist/{index-bHnO4ZKt.d.mts → index-e6k85DKM.d.mts} +0 -0
- /package/dist/{index-dhjtMp5F.d.mts → index-gpCH5158.d.mts} +0 -0
- /package/dist/{components → patterns}/WizardModal/index.d.mts +0 -0
|
@@ -8,24 +8,27 @@ import { i as Paragraph, r as Label$1 } from "./Text-BdluS7Fy.mjs";
|
|
|
8
8
|
import "./variables/transitions.mjs";
|
|
9
9
|
import { a as Tooltip } from "./Tooltip-C0FuZS1C.mjs";
|
|
10
10
|
import { transparent, withAlpha } from "./lib/color.mjs";
|
|
11
|
-
import {
|
|
11
|
+
import { letPointerDownReachDocument } from "./lib/letPointerDownReachDocument.mjs";
|
|
12
|
+
import { isActive, isDisabled, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
|
|
12
13
|
import { useScrollOverflow } from "./lib/useScrollOverflow.mjs";
|
|
13
14
|
import { Z_INDICES } from "./lib/zindex.mjs";
|
|
14
15
|
import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
|
|
15
|
-
import {
|
|
16
|
-
import { n as
|
|
17
|
-
import {
|
|
18
|
-
import { r as
|
|
16
|
+
import { semanticScrollbar } from "./mixins/scrollbar.mjs";
|
|
17
|
+
import { n as Stack, t as HStack } from "./Stack-CEPzs4Pb.mjs";
|
|
18
|
+
import { n as Button, t as IconButton } from "./IconButton-BHFCjvzs.mjs";
|
|
19
|
+
import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-BSl5v5aa.mjs";
|
|
20
|
+
import { r as InputGroup } from "./Input-BQN97Hzm.mjs";
|
|
19
21
|
import Input_default from "./components/Input/index.mjs";
|
|
20
|
-
import { c as MenuList, s as MenuItem } from "./Menu-
|
|
21
|
-
import { n as DropdownMenu_default } from "./DropdownMenu-
|
|
22
|
-
import { t as Combobox } from "./Combobox-
|
|
23
|
-
import { s as Popover_default } from "./Popover-
|
|
24
|
-
import {
|
|
25
|
-
import {
|
|
26
|
-
import { t as
|
|
27
|
-
import {
|
|
28
|
-
import {
|
|
22
|
+
import { c as MenuList, s as MenuItem } from "./Menu-DjW2b3Wk.mjs";
|
|
23
|
+
import { n as DropdownMenu_default } from "./DropdownMenu-j8NWbAvM.mjs";
|
|
24
|
+
import { t as Combobox } from "./Combobox-CCDoNF9Y.mjs";
|
|
25
|
+
import { s as Popover_default } from "./Popover-CbYaWrAy.mjs";
|
|
26
|
+
import { i as Modal_default } from "./Modal-DHLPK65-.mjs";
|
|
27
|
+
import { t as Toggle } from "./Toggle-CntyMUPJ.mjs";
|
|
28
|
+
import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue, t as formatDateFilterValue } from "./date-filter-D6IfCkwp.mjs";
|
|
29
|
+
import { t as ListBox } from "./ListBox-DOqN9DNl.mjs";
|
|
30
|
+
import { m as FormField, o as ComboboxField } from "./FormField-DbcqNcx2.mjs";
|
|
31
|
+
import { r as DatePicker, t as DateRangePicker } from "./DatePicker-LPIJrc0n.mjs";
|
|
29
32
|
import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
|
|
30
33
|
import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
31
34
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -35,10 +38,10 @@ import { debounce, isEqual, noop, partition, startCase, union, uniqueId } from "
|
|
|
35
38
|
import { useId } from "react-aria";
|
|
36
39
|
import Fuse from "fuse.js";
|
|
37
40
|
import { DragIcon as DragIcon$1 } from "@persona/icons/24px";
|
|
38
|
-
import { DateTime } from "luxon";
|
|
41
|
+
import { DateTime, Settings } from "luxon";
|
|
39
42
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
40
43
|
import { DragDropContext, Draggable, Droppable } from "@hello-pangea/dnd";
|
|
41
|
-
import { parseDate } from "@internationalized/date";
|
|
44
|
+
import { parseAbsolute, parseDate, toCalendarDate, toZoned } from "@internationalized/date";
|
|
42
45
|
import { v4 } from "uuid";
|
|
43
46
|
//#region components/DataTable/FormControlLabel/FormControlLabel.ts
|
|
44
47
|
const FormControlLabel = styled(Label$1).attrs(() => ({
|
|
@@ -76,6 +79,12 @@ const CursorAnchor = styled.div`
|
|
|
76
79
|
pointer-events: none;
|
|
77
80
|
`;
|
|
78
81
|
const StyledInput = styled(Input_default)`
|
|
82
|
+
&&,
|
|
83
|
+
&&${isHovered}${isNotDisabled},
|
|
84
|
+
&&${isDisabled} {
|
|
85
|
+
background: transparent;
|
|
86
|
+
}
|
|
87
|
+
|
|
79
88
|
${({ theme, flattenDisplay }) => flattenDisplay && css`
|
|
80
89
|
border-width: 0px;
|
|
81
90
|
|
|
@@ -207,7 +216,7 @@ const CompactSearchInput = styled(SearchInput)`
|
|
|
207
216
|
* @see ControlBar.tsx
|
|
208
217
|
* @see ControlBar.spec.tsx
|
|
209
218
|
*/
|
|
210
|
-
const CompactBar = ({ title, searchProps, showFilters, setShowFilters, filtersId, isLoading, propertiesButton, tableActions, "data-tour-target": dataTourTarget, filterPanel }) => {
|
|
219
|
+
const CompactBar = ({ title, searchProps, showFilters, setShowFilters, filtersId, isLoading, isFilterPanelLoading, propertiesButton, tableActions, "data-tour-target": dataTourTarget, filterPanel }) => {
|
|
211
220
|
const autoExpandSearch = !title;
|
|
212
221
|
const [showSearch, setShowSearch] = useState(autoExpandSearch);
|
|
213
222
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(DataTableCompactBar, {
|
|
@@ -255,7 +264,8 @@ const CompactBar = ({ title, searchProps, showFilters, setShowFilters, filtersId
|
|
|
255
264
|
"aria-label": showFilters ? "Hide filters" : "Show filters",
|
|
256
265
|
"aria-expanded": showFilters,
|
|
257
266
|
"aria-controls": filtersId,
|
|
258
|
-
disabled: isLoading,
|
|
267
|
+
disabled: isLoading || isFilterPanelLoading,
|
|
268
|
+
isPending: isFilterPanelLoading,
|
|
259
269
|
active: showFilters,
|
|
260
270
|
width: "icon",
|
|
261
271
|
size: "sm",
|
|
@@ -293,6 +303,13 @@ const OVERFLOW_WIDTH_SHRINK_THRESHOLD = 16;
|
|
|
293
303
|
function enterProxiesClick(e) {
|
|
294
304
|
if (e.key === "Enter") e.target.dispatchEvent(new Event("click", { bubbles: true }));
|
|
295
305
|
}
|
|
306
|
+
const ViewNameInput = styled(Input_default)`
|
|
307
|
+
&&,
|
|
308
|
+
&&${isHovered}${isNotDisabled},
|
|
309
|
+
&&${isDisabled} {
|
|
310
|
+
background: transparent;
|
|
311
|
+
}
|
|
312
|
+
`;
|
|
296
313
|
const AddViewButton = styled(IconButton)`
|
|
297
314
|
color: ${({ theme }) => semanticColor(theme, "FgSecondary", theme.color.text.secondary)};
|
|
298
315
|
`;
|
|
@@ -305,6 +322,7 @@ const LockedTab = styled(Tab)`
|
|
|
305
322
|
const OverflowMenuList = styled(MenuList)`
|
|
306
323
|
max-height: 300px;
|
|
307
324
|
overflow: auto;
|
|
325
|
+
${semanticScrollbar}
|
|
308
326
|
`;
|
|
309
327
|
const ExpandedSearchInput = styled(SearchInput)`
|
|
310
328
|
flex-basis: 440px;
|
|
@@ -331,7 +349,7 @@ const TabOverflowContainer = styled.div`
|
|
|
331
349
|
position: absolute;
|
|
332
350
|
height: 32px;
|
|
333
351
|
`;
|
|
334
|
-
const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditViews, handleNameChange, onDuplicateView,
|
|
352
|
+
const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditViews, handleNameChange, onDuplicateView, onRequestDeleteView, onSelectView, onResetCurrentView, onSaveView, onSetDefaultView, isViewDirty, showTabContextMenu, setShowTabContextMenu, className, ...rest }) => {
|
|
335
353
|
const inputRef = useRef(null);
|
|
336
354
|
const lastSubmittedNameRef = useRef(null);
|
|
337
355
|
const submitNameChange = (newName) => {
|
|
@@ -364,7 +382,7 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
364
382
|
},
|
|
365
383
|
children: /* @__PURE__ */ jsxs(Stack, {
|
|
366
384
|
spacing: Spacing[3],
|
|
367
|
-
children: [/* @__PURE__ */ jsx(
|
|
385
|
+
children: [/* @__PURE__ */ jsx(ViewNameInput, {
|
|
368
386
|
defaultValue: view.name,
|
|
369
387
|
onBlur: (e) => submitNameChange(e.currentTarget.value),
|
|
370
388
|
onKeyDown: (e) => {
|
|
@@ -420,12 +438,12 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
420
438
|
onKeyDown: enterProxiesClick,
|
|
421
439
|
children: view.isDefault ? "Already the default" : "Set as default"
|
|
422
440
|
}),
|
|
423
|
-
|
|
441
|
+
onRequestDeleteView && /* @__PURE__ */ jsx(MenuItem, {
|
|
424
442
|
id: "table-controls__view__menu-delete",
|
|
425
443
|
prefixIcon: /* @__PURE__ */ jsx(TrashIcon, {}),
|
|
426
|
-
onClick:
|
|
427
|
-
await onDeleteView(view.id);
|
|
444
|
+
onClick: () => {
|
|
428
445
|
setShowTabContextMenu(false);
|
|
446
|
+
onRequestDeleteView(view);
|
|
429
447
|
},
|
|
430
448
|
onKeyDown: enterProxiesClick,
|
|
431
449
|
children: "Delete"
|
|
@@ -532,14 +550,22 @@ const ProductTourStyles = createGlobalStyle`
|
|
|
532
550
|
}
|
|
533
551
|
}
|
|
534
552
|
`;
|
|
535
|
-
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 }) => {
|
|
553
|
+
const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView, onDuplicateView, onDeleteView, onViewNameChange, onSaveView, onSetDefaultView, isViewDirty, canEditViews, showFilters, setShowFilters, searchProps, filtersId, propertiesButton, tableActions, isLoading, isFilterPanelLoading, showViews, selectedRows = [], bulkActions, onResetCurrentView, onClearSelection, title, "data-tour-target": dataTourTarget, compact, onError, filterPanel }) => {
|
|
536
554
|
const tabListRef = useRef(null);
|
|
537
555
|
const tabOverflowRef = useRef(null);
|
|
538
556
|
const [hiddenViews, setHiddenViews] = useState([]);
|
|
539
557
|
const [showTabContextMenu, setShowTabContextMenu] = useState(false);
|
|
558
|
+
const [pendingDeleteView, setPendingDeleteView] = useState(null);
|
|
559
|
+
const previousPendingDeleteViewRef = useRef(null);
|
|
560
|
+
const [isDeletingView, setIsDeletingView] = useState(false);
|
|
540
561
|
const [isAddingView, setIsAddingView] = useState(false);
|
|
541
562
|
const [lastVisibleViewElement, setLastVisibleViewElement] = useState(null);
|
|
542
563
|
const [tabOverflowWidth, setTabOverflowWidth] = useState(null);
|
|
564
|
+
useEffect(() => {
|
|
565
|
+
const previousPendingDeleteView = previousPendingDeleteViewRef.current;
|
|
566
|
+
if (!pendingDeleteView && previousPendingDeleteView) (document.getElementById(`${OVERFLOW_TAB_ID_PREFIX}${previousPendingDeleteView.id}`) ?? document.getElementById(`${TAB_ID_PREFIX}${previousPendingDeleteView.id}`))?.focus();
|
|
567
|
+
previousPendingDeleteViewRef.current = pendingDeleteView;
|
|
568
|
+
}, [pendingDeleteView]);
|
|
543
569
|
const onResize = useCallback(() => {
|
|
544
570
|
if (!tabListRef.current) return;
|
|
545
571
|
const containerRect = tabListRef.current.getBoundingClientRect();
|
|
@@ -598,6 +624,17 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
598
624
|
const handleNameChange = (view, newName) => {
|
|
599
625
|
if (canEditViews && view.name !== newName) onViewNameChange?.(view.id, newName);
|
|
600
626
|
};
|
|
627
|
+
const onRequestDeleteView = onDeleteView ? (view) => setPendingDeleteView(view) : void 0;
|
|
628
|
+
const confirmDeleteView = async () => {
|
|
629
|
+
if (!pendingDeleteView || !onDeleteView) return;
|
|
630
|
+
setIsDeletingView(true);
|
|
631
|
+
try {
|
|
632
|
+
await onDeleteView(pendingDeleteView.id);
|
|
633
|
+
setPendingDeleteView(null);
|
|
634
|
+
} catch {} finally {
|
|
635
|
+
setIsDeletingView(false);
|
|
636
|
+
}
|
|
637
|
+
};
|
|
601
638
|
if (compact) return /* @__PURE__ */ jsx(CompactBar, {
|
|
602
639
|
"data-tour-target": dataTourTarget,
|
|
603
640
|
title,
|
|
@@ -606,6 +643,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
606
643
|
setShowFilters,
|
|
607
644
|
filtersId,
|
|
608
645
|
isLoading,
|
|
646
|
+
isFilterPanelLoading,
|
|
609
647
|
propertiesButton,
|
|
610
648
|
tableActions,
|
|
611
649
|
filterPanel
|
|
@@ -690,7 +728,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
690
728
|
canEditViews: canEditViews ?? false,
|
|
691
729
|
handleNameChange,
|
|
692
730
|
onDuplicateView,
|
|
693
|
-
|
|
731
|
+
onRequestDeleteView,
|
|
694
732
|
onSelectView,
|
|
695
733
|
onResetCurrentView,
|
|
696
734
|
onSaveView,
|
|
@@ -719,7 +757,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
719
757
|
handleAddView: onAddView ? handleAddView : null,
|
|
720
758
|
handleNameChange,
|
|
721
759
|
onDuplicateView,
|
|
722
|
-
|
|
760
|
+
onRequestDeleteView,
|
|
723
761
|
onResetCurrentView,
|
|
724
762
|
onSaveView,
|
|
725
763
|
onSetDefaultView,
|
|
@@ -748,7 +786,8 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
748
786
|
"aria-label": showFilters ? "Hide filters" : "Show filters",
|
|
749
787
|
"aria-expanded": showFilters,
|
|
750
788
|
"aria-controls": filtersId,
|
|
751
|
-
disabled: isLoading,
|
|
789
|
+
disabled: isLoading || isFilterPanelLoading,
|
|
790
|
+
isPending: isFilterPanelLoading,
|
|
752
791
|
active: showFilters,
|
|
753
792
|
width: "icon",
|
|
754
793
|
size: "md",
|
|
@@ -758,12 +797,40 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
758
797
|
propertiesButton
|
|
759
798
|
]
|
|
760
799
|
}),
|
|
761
|
-
showFilters && filterPanel
|
|
800
|
+
showFilters && filterPanel,
|
|
801
|
+
/* @__PURE__ */ jsx(Modal_default, {
|
|
802
|
+
open: pendingDeleteView != null,
|
|
803
|
+
onOpenChange: (open) => {
|
|
804
|
+
if (!open && !isDeletingView) setPendingDeleteView(null);
|
|
805
|
+
},
|
|
806
|
+
isKeyboardDismissDisabled: isDeletingView,
|
|
807
|
+
contentProps: isDeletingView ? { showCloseButton: false } : void 0,
|
|
808
|
+
title: "Delete view?",
|
|
809
|
+
footer: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
|
|
810
|
+
variant: "basic",
|
|
811
|
+
width: "auto",
|
|
812
|
+
disabled: isDeletingView,
|
|
813
|
+
onClick: () => setPendingDeleteView(null),
|
|
814
|
+
children: "Cancel"
|
|
815
|
+
}), /* @__PURE__ */ jsx(Button, {
|
|
816
|
+
id: "table-controls__view__delete-confirm",
|
|
817
|
+
variant: "danger",
|
|
818
|
+
width: "auto",
|
|
819
|
+
isPending: isDeletingView,
|
|
820
|
+
onClick: confirmDeleteView,
|
|
821
|
+
children: "Delete"
|
|
822
|
+
})] }),
|
|
823
|
+
children: /* @__PURE__ */ jsxs(Paragraph, { children: [
|
|
824
|
+
"This will permanently delete “",
|
|
825
|
+
pendingDeleteView?.name,
|
|
826
|
+
"”. This action cannot be undone."
|
|
827
|
+
] })
|
|
828
|
+
})
|
|
762
829
|
] });
|
|
763
830
|
};
|
|
764
831
|
//#endregion
|
|
765
832
|
//#region components/DataTable/TableControls/TableControls.tsx
|
|
766
|
-
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 }) => {
|
|
833
|
+
const TableControls = ({ filterPanel, searchProps, defaultShowFilters, showFilters: controlledShowFilters, setShowFilters: controlledSetShowFilters, className, tableActions, propertiesButton, isLoading, isFilterPanelLoading, 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 }) => {
|
|
767
834
|
const filtersId = useId();
|
|
768
835
|
const [internalShowFilters, internalSetShowFilters] = useState(defaultShowFilters ?? false);
|
|
769
836
|
const showFilters = controlledShowFilters != null ? controlledShowFilters : internalShowFilters;
|
|
@@ -794,13 +861,14 @@ const TableControls = ({ filterPanel, searchProps, defaultShowFilters, showFilte
|
|
|
794
861
|
onSetDefaultView: compact ? void 0 : onSetDefaultView,
|
|
795
862
|
isViewDirty,
|
|
796
863
|
canEditViews: compact ? false : canEditViews,
|
|
797
|
-
showFilters,
|
|
798
|
-
setShowFilters: filterPanel != null && !showFiltersAlways ? setShowFilters : void 0,
|
|
864
|
+
showFilters: showFilters && (showFiltersAlways || !isFilterPanelLoading),
|
|
865
|
+
setShowFilters: (filterPanel != null || isFilterPanelLoading) && !showFiltersAlways ? setShowFilters : void 0,
|
|
799
866
|
filtersId,
|
|
800
867
|
searchProps,
|
|
801
868
|
propertiesButton: enhancedPropertiesButton,
|
|
802
869
|
tableActions,
|
|
803
870
|
isLoading,
|
|
871
|
+
isFilterPanelLoading,
|
|
804
872
|
selectedRows,
|
|
805
873
|
bulkActions,
|
|
806
874
|
onClearSelection,
|
|
@@ -1247,6 +1315,7 @@ const VALUELESS_OPERATORS = new Set(["is_empty", "is_not_empty"]);
|
|
|
1247
1315
|
* a `{ startDate, endDate }` pair for `between`.
|
|
1248
1316
|
*/
|
|
1249
1317
|
const RANGE_OPERATORS = new Set(["between"]);
|
|
1318
|
+
const TIME_COMPONENT$1 = /T\d{2}:\d{2}/;
|
|
1250
1319
|
function getOperatorsForType(type) {
|
|
1251
1320
|
return OPERATORS_BY_TYPE[type] ?? [];
|
|
1252
1321
|
}
|
|
@@ -1283,6 +1352,14 @@ function isValuelessOperator(operator) {
|
|
|
1283
1352
|
function carriesDateRange(operator, fieldType) {
|
|
1284
1353
|
return isRangeOperator(operator) || fieldType === "date_range";
|
|
1285
1354
|
}
|
|
1355
|
+
/**
|
|
1356
|
+
* Whether a rule's value control edits minute-precision date-times: the bar
|
|
1357
|
+
* and field both opt in, and the value is a range or a before/after instant
|
|
1358
|
+
* (`date` + `is` stays a whole calendar day).
|
|
1359
|
+
*/
|
|
1360
|
+
function isMinutePrecisionDate(field, operator, dateTimesEnabled) {
|
|
1361
|
+
return dateTimesEnabled && field.timeGranularity === "minute" && (field.type === "date_range" || field.type === "date" && operator !== "is");
|
|
1362
|
+
}
|
|
1286
1363
|
function isRangeOperator(operator) {
|
|
1287
1364
|
return RANGE_OPERATORS.has(operator);
|
|
1288
1365
|
}
|
|
@@ -1384,6 +1461,17 @@ function emptyValueForRule(field, operator) {
|
|
|
1384
1461
|
function reconcileValueForOperator(field, nextOperator, previousOperator, value) {
|
|
1385
1462
|
if (isValuelessOperator(nextOperator)) return null;
|
|
1386
1463
|
if (isRangeOperator(nextOperator) !== isRangeOperator(previousOperator)) return emptyValueForRule(field, nextOperator);
|
|
1464
|
+
if (field.type === "date" && nextOperator === "is" && typeof value === "string" && TIME_COMPONENT$1.test(value)) return DateTime.fromISO(value).setZone(Settings.defaultZone).toISODate();
|
|
1465
|
+
if (field.type === "date" && (previousOperator === "before" || previousOperator === "after") && (nextOperator === "before" || nextOperator === "after") && previousOperator !== nextOperator && typeof value === "string" && TIME_COMPONENT$1.test(value)) {
|
|
1466
|
+
const dateTime = DateTime.fromISO(value, { setZone: true });
|
|
1467
|
+
return nextOperator === "after" ? dateTime.set({
|
|
1468
|
+
second: 0,
|
|
1469
|
+
millisecond: 0
|
|
1470
|
+
}).toISO() : dateTime.set({
|
|
1471
|
+
second: 59,
|
|
1472
|
+
millisecond: 999
|
|
1473
|
+
}).toISO();
|
|
1474
|
+
}
|
|
1387
1475
|
return value ?? emptyValueForRule(field, nextOperator);
|
|
1388
1476
|
}
|
|
1389
1477
|
//#endregion
|
|
@@ -1406,6 +1494,14 @@ function resolveDateRangeRuleValue(rule, fieldType) {
|
|
|
1406
1494
|
return parsed ? resolveDateFilterValue(parsed) : null;
|
|
1407
1495
|
}
|
|
1408
1496
|
//#endregion
|
|
1497
|
+
//#region components/DataTable/TableControls/FiltersV2/format-date-value.ts
|
|
1498
|
+
const TIME_COMPONENT = /T\d{2}:\d{2}/;
|
|
1499
|
+
function formatDateValueForDisplay(value) {
|
|
1500
|
+
if (!TIME_COMPONENT.test(value)) return value;
|
|
1501
|
+
const dateTime = DateTime.fromISO(value).setZone(Settings.defaultZone);
|
|
1502
|
+
return dateTime.isValid ? dateTime.toFormat("MMM d, yyyy h:mm a") : value;
|
|
1503
|
+
}
|
|
1504
|
+
//#endregion
|
|
1409
1505
|
//#region components/DataTable/TableControls/FiltersV2/relative-date-label.ts
|
|
1410
1506
|
/**
|
|
1411
1507
|
* The preset name a rule should display instead of its dates, or `undefined`
|
|
@@ -1422,11 +1518,11 @@ function relativePresetLabel(value, relativeDate) {
|
|
|
1422
1518
|
}
|
|
1423
1519
|
//#endregion
|
|
1424
1520
|
//#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/display.ts
|
|
1425
|
-
function valueDisplayString(value, optionLabels, relativeDate) {
|
|
1521
|
+
function valueDisplayString(value, optionLabels, relativeDate, fieldType) {
|
|
1426
1522
|
if (value == null) return;
|
|
1427
1523
|
const relativeLabel = relativePresetLabel(value, relativeDate);
|
|
1428
1524
|
if (relativeLabel) return relativeLabel;
|
|
1429
|
-
const display = (raw) => optionLabels?.[raw] ?? raw;
|
|
1525
|
+
const display = (raw) => optionLabels?.[raw] ?? (fieldType === "date" || fieldType === "date_range" ? formatDateValueForDisplay(raw) : raw);
|
|
1430
1526
|
if (Array.isArray(value)) {
|
|
1431
1527
|
if (value.length === 0) return;
|
|
1432
1528
|
if (value.length === 1) return display(String(value[0]));
|
|
@@ -1437,8 +1533,8 @@ function valueDisplayString(value, optionLabels, relativeDate) {
|
|
|
1437
1533
|
if (typeof value === "string") return value.length > 0 ? display(value) : void 0;
|
|
1438
1534
|
if (typeof value === "object") {
|
|
1439
1535
|
const { startDate, endDate } = value;
|
|
1440
|
-
if (startDate && endDate) return `${startDate} – ${endDate}`;
|
|
1441
|
-
return startDate
|
|
1536
|
+
if (startDate && endDate) return `${display(startDate)} – ${display(endDate)}`;
|
|
1537
|
+
return startDate ? display(startDate) : endDate ? display(endDate) : void 0;
|
|
1442
1538
|
}
|
|
1443
1539
|
}
|
|
1444
1540
|
function draftValueFor(field, operator) {
|
|
@@ -1552,9 +1648,22 @@ function buildFieldPickerOptions(registry, visibleCustomFieldParents, excludeFie
|
|
|
1552
1648
|
}
|
|
1553
1649
|
//#endregion
|
|
1554
1650
|
//#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/RuleEditorFields.tsx
|
|
1555
|
-
|
|
1651
|
+
const StatementFields = styled.div`
|
|
1652
|
+
display: contents;
|
|
1653
|
+
|
|
1654
|
+
&& input,
|
|
1655
|
+
&& input${isHovered}${isNotDisabled},
|
|
1656
|
+
&& input${isDisabled},
|
|
1657
|
+
&& [role='group'],
|
|
1658
|
+
&& [role='group']${isHovered}${isNotDisabled},
|
|
1659
|
+
&& [role='group']${isDisabled} {
|
|
1660
|
+
background: transparent;
|
|
1661
|
+
}
|
|
1662
|
+
`;
|
|
1663
|
+
function RuleEditorFields({ registry, dateTimesEnabled, field, groupIndex, ruleIndex, rule, size, operators, operatorConfigurable, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
|
|
1664
|
+
const minutePrecisionValue = field != null && isMinutePrecisionDate(field, rule.operator, dateTimesEnabled);
|
|
1556
1665
|
const fieldOptions = useMemo(() => buildFieldPickerOptions(registry), [registry]);
|
|
1557
|
-
return /* @__PURE__ */ jsxs(
|
|
1666
|
+
return /* @__PURE__ */ jsxs(StatementFields, { children: [
|
|
1558
1667
|
/* @__PURE__ */ jsx(ComboboxField, {
|
|
1559
1668
|
label: "Value",
|
|
1560
1669
|
labelProps: { size },
|
|
@@ -1596,19 +1705,20 @@ function RuleEditorFields({ registry, field, groupIndex, ruleIndex, rule, size,
|
|
|
1596
1705
|
field && !isValuelessOperator(rule.operator) ? /* @__PURE__ */ jsx(FormField, {
|
|
1597
1706
|
label: "Value",
|
|
1598
1707
|
labelProps: { size },
|
|
1708
|
+
configField: minutePrecisionValue ? false : void 0,
|
|
1599
1709
|
children: /* @__PURE__ */ jsx(Fragment$1, { children: renderValueControl(field, rule.operator, rule.value, (next, relativeDate) => onValueChange(groupIndex, ruleIndex, next, relativeDate), rule.relativeDate) })
|
|
1600
1710
|
}) : null
|
|
1601
1711
|
] });
|
|
1602
1712
|
}
|
|
1603
1713
|
//#endregion
|
|
1604
1714
|
//#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/AdvancedFilterRuleRow.tsx
|
|
1605
|
-
function AdvancedFilterRuleRow({ registry, groupIndex, ruleIndex, rule, size, isOpen, onClose, onDelete, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
|
|
1715
|
+
function AdvancedFilterRuleRow({ registry, dateTimesEnabled, groupIndex, ruleIndex, rule, size, isOpen, onClose, onDelete, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
|
|
1606
1716
|
const field = registry.get(rule.fieldId);
|
|
1607
1717
|
const operators = field ? getOperatorsForField(field) : [];
|
|
1608
1718
|
const operatorConfigurable = field ? fieldHasMultipleOperators(field) : true;
|
|
1609
1719
|
const condition = ruleIndex === 0 ? "If" : "And";
|
|
1610
1720
|
const rowId = `${groupIndex}-${ruleIndex}`;
|
|
1611
|
-
const valueDisplay = isValuelessOperator(rule.operator) ? void 0 : valueDisplayString(rule.value, registry.optionLabelsFor(rule.fieldId), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0);
|
|
1721
|
+
const valueDisplay = isValuelessOperator(rule.operator) ? void 0 : valueDisplayString(rule.value, registry.optionLabelsFor(rule.fieldId), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type);
|
|
1612
1722
|
const textValue = [
|
|
1613
1723
|
condition,
|
|
1614
1724
|
field?.label ?? rule.fieldId,
|
|
@@ -1631,6 +1741,7 @@ function AdvancedFilterRuleRow({ registry, groupIndex, ruleIndex, rule, size, is
|
|
|
1631
1741
|
dropdownHeadingText: `Edit \u2018${condition}\u2019 statement`,
|
|
1632
1742
|
dropdownFormFields: /* @__PURE__ */ jsx(RuleEditorFields, {
|
|
1633
1743
|
registry,
|
|
1744
|
+
dateTimesEnabled,
|
|
1634
1745
|
field,
|
|
1635
1746
|
groupIndex,
|
|
1636
1747
|
ruleIndex,
|
|
@@ -1751,9 +1862,13 @@ const PopoverContent = styled(PopoverPrimitive.Content)`
|
|
|
1751
1862
|
z-index: ${Z_INDICES.modalDropdown};
|
|
1752
1863
|
`;
|
|
1753
1864
|
const PopoverCard = styled(Card_default)`
|
|
1754
|
-
width: 384px;
|
|
1865
|
+
width: ${({ $wide }) => $wide ? "520px" : "384px"};
|
|
1755
1866
|
max-width: calc(100vw - ${Spacing[4]});
|
|
1756
1867
|
margin-bottom: 0;
|
|
1868
|
+
|
|
1869
|
+
&& {
|
|
1870
|
+
background-color: ${({ theme }) => semanticColor(theme, "SurfaceElevated", theme.color.background.primary)};
|
|
1871
|
+
}
|
|
1757
1872
|
`;
|
|
1758
1873
|
const Header = styled.div`
|
|
1759
1874
|
display: flex;
|
|
@@ -1768,6 +1883,7 @@ const Body = styled.div`
|
|
|
1768
1883
|
padding: 0 ${Spacing[3]} ${Spacing[3]};
|
|
1769
1884
|
max-height: 60vh;
|
|
1770
1885
|
overflow-y: auto;
|
|
1886
|
+
${semanticScrollbar}
|
|
1771
1887
|
`;
|
|
1772
1888
|
/**
|
|
1773
1889
|
* Bordered container that wraps a single AndGroup. Visually mirrors the
|
|
@@ -1802,6 +1918,11 @@ const GroupHeaderActions = styled.div`
|
|
|
1802
1918
|
align-items: center;
|
|
1803
1919
|
gap: ${Spacing[1]};
|
|
1804
1920
|
`;
|
|
1921
|
+
const GroupActionsMenu = styled(DropdownMenu_default)`
|
|
1922
|
+
&& {
|
|
1923
|
+
background-color: ${({ theme }) => semanticColor(theme, "SurfaceElevated", theme.color.background.primary)};
|
|
1924
|
+
}
|
|
1925
|
+
`;
|
|
1805
1926
|
/**
|
|
1806
1927
|
* A focused-down `ListBox` for the rules in one AndGroup. Strips the
|
|
1807
1928
|
* default 204px width AND the standalone border (the parent `GroupCard`
|
|
@@ -1847,9 +1968,10 @@ function groupsForRender(compound) {
|
|
|
1847
1968
|
* inline; clicking a row reveals the field/operator/value editor inside the
|
|
1848
1969
|
* row's dropdown popover.
|
|
1849
1970
|
*/
|
|
1850
|
-
const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, open, onOpenChange, renderValueControl, size }) => {
|
|
1971
|
+
const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, open, onOpenChange, renderValueControl, size, dateTimesEnabled = false }) => {
|
|
1851
1972
|
const resolvedSize = useFilterBarSize(size);
|
|
1852
1973
|
const subtleIconSize = resolvedSize === "sm" ? "xs" : "sm";
|
|
1974
|
+
const wide = useMemo(() => dateTimesEnabled && registry.all().some((field) => field.timeGranularity === "minute"), [registry, dateTimesEnabled]);
|
|
1853
1975
|
const [internalOpen, setInternalOpen] = useState(false);
|
|
1854
1976
|
const isControlled = open != null;
|
|
1855
1977
|
const isOpen = isControlled ? open : internalOpen;
|
|
@@ -1953,6 +2075,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
1953
2075
|
role: "dialog",
|
|
1954
2076
|
"aria-label": "Advanced filter rules",
|
|
1955
2077
|
id: baseId,
|
|
2078
|
+
onPointerDownCapture: letPointerDownReachDocument,
|
|
1956
2079
|
ref: popoverContentRef,
|
|
1957
2080
|
tabIndex: -1,
|
|
1958
2081
|
onKeyDown: (event) => {
|
|
@@ -1971,6 +2094,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
1971
2094
|
},
|
|
1972
2095
|
children: /* @__PURE__ */ jsxs(PopoverCard, {
|
|
1973
2096
|
elevated: true,
|
|
2097
|
+
$wide: wide,
|
|
1974
2098
|
children: [/* @__PURE__ */ jsx(Header, { children: /* @__PURE__ */ jsx(Paragraph, {
|
|
1975
2099
|
size: resolvedSize,
|
|
1976
2100
|
color: "secondary",
|
|
@@ -1989,7 +2113,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
1989
2113
|
children: [/* @__PURE__ */ jsxs(GroupHeader, { children: [/* @__PURE__ */ jsx(GroupTitle, {
|
|
1990
2114
|
$size: resolvedSize,
|
|
1991
2115
|
children: groupTitle
|
|
1992
|
-
}), /* @__PURE__ */ jsxs(GroupHeaderActions, { children: [hideGroupMenu ? null : /* @__PURE__ */ jsx(
|
|
2116
|
+
}), /* @__PURE__ */ jsxs(GroupHeaderActions, { children: [hideGroupMenu ? null : /* @__PURE__ */ jsx(GroupActionsMenu, {
|
|
1993
2117
|
trigger: /* @__PURE__ */ jsx(IconButton, {
|
|
1994
2118
|
size: subtleIconSize,
|
|
1995
2119
|
"aria-label": `More actions for filter group ${groupIndex + 1}`,
|
|
@@ -2033,6 +2157,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2033
2157
|
const rowId = `${groupIndex}-${ruleIndex}`;
|
|
2034
2158
|
return /* @__PURE__ */ jsx(AdvancedFilterRuleRow, {
|
|
2035
2159
|
registry,
|
|
2160
|
+
dateTimesEnabled,
|
|
2036
2161
|
groupIndex,
|
|
2037
2162
|
ruleIndex,
|
|
2038
2163
|
rule,
|
|
@@ -2256,6 +2381,7 @@ function ChoicesValueControl({ field, operator, value, onChange, onCommit, ariaL
|
|
|
2256
2381
|
//#endregion
|
|
2257
2382
|
//#region components/DataTable/TableControls/FiltersV2/value-controls/DateRangeValueControl/DateRangeValueControl.tsx
|
|
2258
2383
|
const CALENDAR_DATE = /^(\d{4}-\d{2}-\d{2})/;
|
|
2384
|
+
const DATE_ONLY$1 = /^\d{4}-\d{2}-\d{2}$/;
|
|
2259
2385
|
const parseIsoDate$1 = (value) => {
|
|
2260
2386
|
if (typeof value !== "string") return;
|
|
2261
2387
|
const calendarDay = CALENDAR_DATE.exec(value)?.[1];
|
|
@@ -2271,29 +2397,63 @@ const parseIsoDate$1 = (value) => {
|
|
|
2271
2397
|
return;
|
|
2272
2398
|
}
|
|
2273
2399
|
};
|
|
2274
|
-
const
|
|
2400
|
+
const parseIsoDateTime = (value, endpoint) => {
|
|
2401
|
+
if (typeof value !== "string") return;
|
|
2402
|
+
const dateTime = DateTime.fromISO(value, DATE_ONLY$1.test(value) ? { zone: Settings.defaultZone } : {}).setZone(Settings.defaultZone);
|
|
2403
|
+
if (!dateTime.isValid) return;
|
|
2404
|
+
return DATE_ONLY$1.test(value) ? dateTime[endpoint === "start" ? "startOf" : "endOf"]("day") : dateTime;
|
|
2405
|
+
};
|
|
2406
|
+
const useDateRange = (value, relativeDate, minuteMode) => {
|
|
2275
2407
|
const parsedRelativeDate = parseDateFilterValue(relativeDate);
|
|
2276
2408
|
const parsed = parsedRelativeDate?.kind === "relative" ? parsedRelativeDate : parseDateFilterValue(value);
|
|
2277
2409
|
const resolved = parsed ? resolveDateFilterValue(parsed) : void 0;
|
|
2278
2410
|
return useMemo(() => ({
|
|
2279
|
-
startDate: parseIsoDate$1(resolved?.startDate),
|
|
2280
|
-
endDate: parseIsoDate$1(resolved?.endDate)
|
|
2281
|
-
}), [
|
|
2411
|
+
startDate: minuteMode ? parseIsoDateTime(resolved?.startDate, "start") : parseIsoDate$1(resolved?.startDate),
|
|
2412
|
+
endDate: minuteMode ? parseIsoDateTime(resolved?.endDate, "end") : parseIsoDate$1(resolved?.endDate)
|
|
2413
|
+
}), [
|
|
2414
|
+
minuteMode,
|
|
2415
|
+
resolved?.startDate,
|
|
2416
|
+
resolved?.endDate
|
|
2417
|
+
]);
|
|
2282
2418
|
};
|
|
2283
|
-
const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange, ariaLabel, hidePresets, portalContainer, visibleMonths, relativeDatesEnabled = false }) => {
|
|
2419
|
+
const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange, ariaLabel, hidePresets, portalContainer, visibleMonths, relativeDatesEnabled = false, dateTimesEnabled = false }) => {
|
|
2284
2420
|
const size = useFilterBarSize();
|
|
2285
|
-
const
|
|
2421
|
+
const minuteMode = dateTimesEnabled && field.timeGranularity === "minute";
|
|
2422
|
+
const dateRange = useDateRange(value, relativeDate, minuteMode);
|
|
2286
2423
|
const noopChange = useCallback(() => void 0, []);
|
|
2287
2424
|
const handleChange = useCallback((range) => {
|
|
2288
2425
|
if (!range?.start || !range.end || range.start.compare(range.end) > 0) {
|
|
2289
2426
|
onChange(null);
|
|
2290
2427
|
return;
|
|
2291
2428
|
}
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2429
|
+
if (!minuteMode) {
|
|
2430
|
+
onChange({
|
|
2431
|
+
startDate: range.start.toString(),
|
|
2432
|
+
endDate: range.end.toString()
|
|
2433
|
+
});
|
|
2434
|
+
return;
|
|
2435
|
+
}
|
|
2436
|
+
const zone = Settings.defaultZone.name;
|
|
2437
|
+
const toDateTime = (date) => DateTime.fromJSDate(toZoned(date, zone).toDate(), { zone });
|
|
2438
|
+
const startDate = toDateTime(range.start).set({
|
|
2439
|
+
second: 0,
|
|
2440
|
+
millisecond: 0
|
|
2295
2441
|
});
|
|
2296
|
-
|
|
2442
|
+
const endDate = toDateTime(range.end).set({
|
|
2443
|
+
second: 59,
|
|
2444
|
+
millisecond: 999
|
|
2445
|
+
});
|
|
2446
|
+
if (!startDate.isValid || !endDate.isValid) {
|
|
2447
|
+
onChange(null);
|
|
2448
|
+
return;
|
|
2449
|
+
}
|
|
2450
|
+
const startIso = startDate.toISO();
|
|
2451
|
+
const endIso = endDate.toISO();
|
|
2452
|
+
onChange(startIso && endIso ? {
|
|
2453
|
+
startDate: startIso,
|
|
2454
|
+
endDate: endIso
|
|
2455
|
+
} : null);
|
|
2456
|
+
}, [minuteMode, onChange]);
|
|
2297
2457
|
const handleDateFilterChange = useCallback((change) => {
|
|
2298
2458
|
const intent = dateRuleIntent(change, relativeDatesEnabled);
|
|
2299
2459
|
if (intent.kind === "clear") {
|
|
@@ -2305,8 +2465,8 @@ const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange,
|
|
|
2305
2465
|
return;
|
|
2306
2466
|
}
|
|
2307
2467
|
onChange({
|
|
2308
|
-
startDate: intent.range.start.toString(),
|
|
2309
|
-
endDate: intent.range.end.toString()
|
|
2468
|
+
startDate: toCalendarDate(intent.range.start).toString(),
|
|
2469
|
+
endDate: toCalendarDate(intent.range.end).toString()
|
|
2310
2470
|
}, {
|
|
2311
2471
|
kind: "relative",
|
|
2312
2472
|
preset: intent.preset
|
|
@@ -2317,6 +2477,8 @@ const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange,
|
|
|
2317
2477
|
relativeDatesEnabled
|
|
2318
2478
|
]);
|
|
2319
2479
|
const relativePreset = selectedPresetFor(parseDateFilterValue(relativeDate), relativeDatesEnabled);
|
|
2480
|
+
const hasDayEdgeBounds = dateRange.startDate !== void 0 && dateRange.endDate !== void 0 && dateRange.startDate.toMillis() === dateRange.startDate.startOf("day").toMillis() && dateRange.endDate.toMillis() === dateRange.endDate.endOf("day").toMillis();
|
|
2481
|
+
const selectedPreset = minuteMode && relativePreset === void 0 && !hasDayEdgeBounds ? null : relativePreset;
|
|
2320
2482
|
if (isValuelessOperator(operator)) return null;
|
|
2321
2483
|
const hasCompleteRange = dateRange.startDate != null && dateRange.endDate != null;
|
|
2322
2484
|
return /* @__PURE__ */ jsx(DateRangePicker, {
|
|
@@ -2327,19 +2489,30 @@ const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange,
|
|
|
2327
2489
|
label: null,
|
|
2328
2490
|
onChange: noopChange,
|
|
2329
2491
|
onDateFilterChange: handleDateFilterChange,
|
|
2330
|
-
selectedPreset
|
|
2492
|
+
selectedPreset,
|
|
2331
2493
|
portalContainer,
|
|
2332
2494
|
showClear: false,
|
|
2333
2495
|
size,
|
|
2334
|
-
visibleMonths
|
|
2496
|
+
visibleMonths,
|
|
2497
|
+
granularity: minuteMode ? "minute" : "day",
|
|
2498
|
+
hideTimeZone: !minuteMode
|
|
2335
2499
|
}, hasCompleteRange ? "range" : "empty");
|
|
2336
2500
|
};
|
|
2337
2501
|
//#endregion
|
|
2338
2502
|
//#region components/DataTable/TableControls/FiltersV2/value-controls/DateValueControl/DateValueControl.tsx
|
|
2339
|
-
const
|
|
2503
|
+
const DATE_ONLY = /^\d{4}-\d{2}-\d{2}$/;
|
|
2504
|
+
const parseIsoDate = (value, field, operator, dateTimesEnabled) => {
|
|
2340
2505
|
if (typeof value !== "string") return null;
|
|
2341
2506
|
try {
|
|
2342
|
-
|
|
2507
|
+
if (isMinutePrecisionDate(field, operator, dateTimesEnabled)) {
|
|
2508
|
+
if (DATE_ONLY.test(value)) {
|
|
2509
|
+
const dateTime = DateTime.fromISO(value, { zone: Settings.defaultZone });
|
|
2510
|
+
const iso = (operator === "after" ? dateTime.startOf("day") : dateTime.endOf("day")).toISO();
|
|
2511
|
+
return iso ? parseAbsolute(iso, Settings.defaultZone.name) : null;
|
|
2512
|
+
}
|
|
2513
|
+
return parseAbsolute(value, Settings.defaultZone.name);
|
|
2514
|
+
}
|
|
2515
|
+
return DATE_ONLY.test(value) ? parseDate(value) : toCalendarDate(parseAbsolute(value, Settings.defaultZone.name));
|
|
2343
2516
|
} catch {
|
|
2344
2517
|
return null;
|
|
2345
2518
|
}
|
|
@@ -2352,20 +2525,38 @@ const parseIsoDate = (value) => {
|
|
|
2352
2525
|
* (`is_empty` / `is_not_empty`) — those operators are themselves the
|
|
2353
2526
|
* predicate and need no companion value.
|
|
2354
2527
|
*
|
|
2355
|
-
*
|
|
2356
|
-
*
|
|
2528
|
+
* Before/after values may use minute-precision ISO instants when the field
|
|
2529
|
+
* and bar both opt in; other date values remain `YYYY-MM-DD`.
|
|
2357
2530
|
*/
|
|
2358
|
-
const DateValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
2531
|
+
const DateValueControl = ({ field, operator, value, onChange, ariaLabel, dateTimesEnabled = false }) => {
|
|
2359
2532
|
const size = useFilterBarSize();
|
|
2533
|
+
const minuteMode = isMinutePrecisionDate(field, operator, dateTimesEnabled);
|
|
2360
2534
|
const handleChange = useCallback((nextDate) => {
|
|
2361
|
-
|
|
2362
|
-
|
|
2535
|
+
if (!nextDate || !minuteMode) {
|
|
2536
|
+
onChange(nextDate ? nextDate.toString() : null);
|
|
2537
|
+
return;
|
|
2538
|
+
}
|
|
2539
|
+
const zone = Settings.defaultZone.name;
|
|
2540
|
+
const dateTime = DateTime.fromJSDate(toZoned(nextDate, zone).toDate(), { zone });
|
|
2541
|
+
onChange((operator === "after" ? dateTime.set({
|
|
2542
|
+
second: 0,
|
|
2543
|
+
millisecond: 0
|
|
2544
|
+
}) : dateTime.set({
|
|
2545
|
+
second: 59,
|
|
2546
|
+
millisecond: 999
|
|
2547
|
+
})).toISO() ?? null);
|
|
2548
|
+
}, [
|
|
2549
|
+
minuteMode,
|
|
2550
|
+
onChange,
|
|
2551
|
+
operator
|
|
2552
|
+
]);
|
|
2363
2553
|
if (isValuelessOperator(operator)) return null;
|
|
2364
2554
|
return /* @__PURE__ */ jsx(DatePicker, {
|
|
2365
|
-
value: parseIsoDate(value),
|
|
2555
|
+
value: parseIsoDate(value, field, operator, dateTimesEnabled),
|
|
2366
2556
|
size,
|
|
2367
2557
|
"aria-label": ariaLabel ?? `${field.label} value`,
|
|
2368
2558
|
onChange: handleChange,
|
|
2559
|
+
granularity: minuteMode ? "minute" : "day",
|
|
2369
2560
|
useModalZIndex: true
|
|
2370
2561
|
});
|
|
2371
2562
|
};
|
|
@@ -2683,7 +2874,7 @@ const PillRoot = styled.span`
|
|
|
2683
2874
|
background-color: ${tokens ? withAlpha(tokens.SurfaceAccent, tokens.Opacity25) : Color.CorePurple100};
|
|
2684
2875
|
color: ${semanticColor(theme, "FgAccent", Color.TextActive)};
|
|
2685
2876
|
` : css`
|
|
2686
|
-
background-color: ${semanticColor(theme, "
|
|
2877
|
+
background-color: ${semanticColor(theme, "SurfaceSecondary", theme.color.background.secondary)};
|
|
2687
2878
|
color: ${semanticColor(theme, "FgPrimary", Color.TextPrimary)};
|
|
2688
2879
|
|
|
2689
2880
|
&:hover {
|
|
@@ -2881,20 +3072,20 @@ const OverflowTooltipList = styled(Stack).attrs({
|
|
|
2881
3072
|
* `optionLabels` lookup so the pill renders human-readable option labels
|
|
2882
3073
|
* instead of raw option ids. Null / undefined collapses to an empty list.
|
|
2883
3074
|
*/
|
|
2884
|
-
function normalizeValueToDisplay(value, optionLabels, relativeDate) {
|
|
3075
|
+
function normalizeValueToDisplay(value, optionLabels, relativeDate, fieldType) {
|
|
2885
3076
|
if (value == null) return [];
|
|
2886
3077
|
const relativeLabel = relativePresetLabel(value, relativeDate);
|
|
2887
3078
|
if (relativeLabel) return [relativeLabel];
|
|
2888
|
-
const lookup = (raw) => optionLabels?.[raw] ?? raw;
|
|
3079
|
+
const lookup = (raw) => optionLabels?.[raw] ?? (fieldType === "date" || fieldType === "date_range" ? formatDateValueForDisplay(raw) : raw);
|
|
2889
3080
|
if (Array.isArray(value)) {
|
|
2890
3081
|
if (value.length > 0 && Array.isArray(value[0])) return [`${value.length} group${value.length === 1 ? "" : "s"}`];
|
|
2891
3082
|
return value.map((entry) => lookup(String(entry)));
|
|
2892
3083
|
}
|
|
2893
3084
|
if (typeof value === "object") {
|
|
2894
3085
|
const { startDate, endDate } = value;
|
|
2895
|
-
if (startDate && endDate) return [`${startDate} – ${endDate}`];
|
|
3086
|
+
if (startDate && endDate) return [`${lookup(startDate)} – ${lookup(endDate)}`];
|
|
2896
3087
|
const single = startDate || endDate;
|
|
2897
|
-
return single ? [single] : [];
|
|
3088
|
+
return single ? [lookup(single)] : [];
|
|
2898
3089
|
}
|
|
2899
3090
|
if (typeof value === "boolean") return [value ? "True" : "False"];
|
|
2900
3091
|
if (typeof value === "number") return [String(value)];
|
|
@@ -2916,7 +3107,7 @@ function buildAccessibleName(field, rule, displayedValues) {
|
|
|
2916
3107
|
const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDismiss, variant = "default", optionLabels, size, ...rest }, ref) {
|
|
2917
3108
|
const reactId = useMemo(() => uniqueId("filter-pill-"), []);
|
|
2918
3109
|
const resolvedSize = useFilterBarSize(size);
|
|
2919
|
-
const displayedValues = useMemo(() => rule && !isValuelessOperator(rule.operator) ? normalizeValueToDisplay(rule.value, optionLabels, carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0) : [], [
|
|
3110
|
+
const displayedValues = useMemo(() => rule && !isValuelessOperator(rule.operator) ? normalizeValueToDisplay(rule.value, optionLabels, carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type) : [], [
|
|
2920
3111
|
rule,
|
|
2921
3112
|
optionLabels,
|
|
2922
3113
|
field?.type
|
|
@@ -2963,9 +3154,21 @@ const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDism
|
|
|
2963
3154
|
});
|
|
2964
3155
|
//#endregion
|
|
2965
3156
|
//#region components/DataTable/TableControls/FiltersV2/FilterPopover/FilterPopover.tsx
|
|
3157
|
+
/**
|
|
3158
|
+
* Compact value controls fit the minimum width; wider controls can grow
|
|
3159
|
+
* up to 320px without overflowing, or 520px when the popover is `wide`.
|
|
3160
|
+
*/
|
|
3161
|
+
const POPOVER_MIN_WIDTH = "196px";
|
|
3162
|
+
const POPOVER_MAX_WIDTH = "320px";
|
|
3163
|
+
const POPOVER_WIDE_MAX_WIDTH = "520px";
|
|
3164
|
+
const OperatorMenu = styled(DropdownMenu_default)`
|
|
3165
|
+
&& {
|
|
3166
|
+
background-color: ${({ theme }) => semanticColor(theme, "SurfaceElevated", theme.color.background.primary)};
|
|
3167
|
+
}
|
|
3168
|
+
`;
|
|
2966
3169
|
const PopoverPanel = styled(Stack).attrs({ spacing: Spacing[0] })`
|
|
2967
|
-
min-width: ${
|
|
2968
|
-
max-width: ${
|
|
3170
|
+
min-width: ${POPOVER_MIN_WIDTH};
|
|
3171
|
+
max-width: ${({ $wide }) => $wide ? POPOVER_WIDE_MAX_WIDTH : POPOVER_MAX_WIDTH};
|
|
2969
3172
|
/* The design-system Popover.Card already supplies bg, border, shadow,
|
|
2970
3173
|
and 6px corner radius — we just constrain the inner content. */
|
|
2971
3174
|
`;
|
|
@@ -3067,7 +3270,7 @@ const Footer = styled(HStack).attrs({
|
|
|
3067
3270
|
* back through `onChangeOperator` and forwards open/close transitions
|
|
3068
3271
|
* through Radix's controlled props.
|
|
3069
3272
|
*/
|
|
3070
|
-
const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, onClose, trigger, open, onOpenChange, size }) => {
|
|
3273
|
+
const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, onClose, trigger, open, onOpenChange, size, wide = false }) => {
|
|
3071
3274
|
const resolvedSize = useFilterBarSize(size);
|
|
3072
3275
|
const valueless = isValuelessOperator(operator);
|
|
3073
3276
|
const CaretIcon = resolvedSize === "sm" ? CaretDownIcon$1 : CaretDownIcon;
|
|
@@ -3116,6 +3319,7 @@ const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, on
|
|
|
3116
3319
|
"aria-label": `Edit filter for ${field.label}`,
|
|
3117
3320
|
noPadding: true,
|
|
3118
3321
|
children: /* @__PURE__ */ jsxs(PopoverPanel, {
|
|
3322
|
+
$wide: wide,
|
|
3119
3323
|
onKeyDown: handleKeyDown,
|
|
3120
3324
|
children: [/* @__PURE__ */ jsxs(Main, {
|
|
3121
3325
|
$valueless: valueless,
|
|
@@ -3125,7 +3329,7 @@ const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, on
|
|
|
3125
3329
|
children: [/* @__PURE__ */ jsx(FieldTypeLabel, {
|
|
3126
3330
|
$size: resolvedSize,
|
|
3127
3331
|
children: /* @__PURE__ */ jsx(TruncatedText, { children: field.label })
|
|
3128
|
-
}), showOperatorSelector ? /* @__PURE__ */ jsx(
|
|
3332
|
+
}), showOperatorSelector ? /* @__PURE__ */ jsx(OperatorMenu, {
|
|
3129
3333
|
trigger: /* @__PURE__ */ jsxs(InlineOperatorTrigger, {
|
|
3130
3334
|
type: "button",
|
|
3131
3335
|
"aria-label": "Operator",
|
|
@@ -3773,7 +3977,7 @@ function useStableFieldIds(fieldIds) {
|
|
|
3773
3977
|
if (previous == null || fieldIds == null || previous.length !== fieldIds.length || fieldIds.some((id, index) => previous[index] !== id)) stable.current = fieldIds;
|
|
3774
3978
|
return stable.current;
|
|
3775
3979
|
}
|
|
3776
|
-
function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, relativeDatesEnabled = false, singleUseFields = false, size = "md", valueControlResolver }) {
|
|
3980
|
+
function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, relativeDatesEnabled = false, dateTimesEnabled = false, singleUseFields = false, size = "md", valueControlResolver }) {
|
|
3777
3981
|
const filterState = useFilterStateV2({
|
|
3778
3982
|
registry,
|
|
3779
3983
|
initialState,
|
|
@@ -3882,6 +4086,7 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
3882
4086
|
"aria-label": "Filter bar",
|
|
3883
4087
|
children: [filterState.advancedRulesEnabled ? /* @__PURE__ */ jsx(AdvancedFilterRulesPopover, {
|
|
3884
4088
|
registry,
|
|
4089
|
+
dateTimesEnabled,
|
|
3885
4090
|
compound: filterState.state.compound,
|
|
3886
4091
|
open: rulesPopoverOpen,
|
|
3887
4092
|
onOpenChange: setRulesPopoverOpen,
|
|
@@ -3895,7 +4100,8 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
3895
4100
|
relativeDate,
|
|
3896
4101
|
onChange,
|
|
3897
4102
|
layout: "inline",
|
|
3898
|
-
relativeDatesEnabled
|
|
4103
|
+
relativeDatesEnabled,
|
|
4104
|
+
dateTimesEnabled
|
|
3899
4105
|
}, valueControlResolver),
|
|
3900
4106
|
trigger: /* @__PURE__ */ jsx(RulesPill, {
|
|
3901
4107
|
compound: filterState.state.compound,
|
|
@@ -3920,6 +4126,7 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
3920
4126
|
return /* @__PURE__ */ jsx(FilterPopover, {
|
|
3921
4127
|
field,
|
|
3922
4128
|
operator: rule.operator,
|
|
4129
|
+
wide: isMinutePrecisionDate(field, rule.operator, dateTimesEnabled) && carriesDateRange(rule.operator, field.type),
|
|
3923
4130
|
onChangeOperator: (op) => {
|
|
3924
4131
|
const { relativeDate: _staleRelativeDate, ...rest } = rule;
|
|
3925
4132
|
filterState.updateTopLevelRule(rule.id, {
|
|
@@ -3942,7 +4149,8 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
3942
4149
|
});
|
|
3943
4150
|
},
|
|
3944
4151
|
onCommit: () => setEditingRuleId(null),
|
|
3945
|
-
relativeDatesEnabled
|
|
4152
|
+
relativeDatesEnabled,
|
|
4153
|
+
dateTimesEnabled
|
|
3946
4154
|
}, valueControlResolver),
|
|
3947
4155
|
onClose: () => setEditingRuleId(null),
|
|
3948
4156
|
open: isOpen,
|
|
@@ -4290,4 +4498,4 @@ function decodeBase64(input) {
|
|
|
4290
4498
|
//#endregion
|
|
4291
4499
|
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 };
|
|
4292
4500
|
|
|
4293
|
-
//# sourceMappingURL=TableControls-
|
|
4501
|
+
//# sourceMappingURL=TableControls-CqW_nyBY.mjs.map
|