@persona/design-system 0.2.1 → 0.3.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 +27 -0
- package/README.md +3 -3
- package/dist/{Action-DnR0YTxO.d.mts → Action-DL3kHI9Z.d.mts} +3 -3
- package/dist/Action.d.mts +1 -1
- package/dist/AdvancedFilterRuleRow.d.mts +2 -2
- package/dist/AdvancedFilterRulesPopover.d.mts +2 -2
- package/dist/ArrayValueControl.d.mts +1 -1
- package/dist/Attribute.d.mts +4 -4
- package/dist/{Badge-DRn_r6is.mjs → Badge-BL0J5oMa.mjs} +3 -3
- package/dist/{Badge-DRn_r6is.mjs.map → Badge-BL0J5oMa.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-DEwZFJHF.d.mts → Breadcrumb-Czgdi0xf.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-Byf2ye6H.mjs → Breadcrumbs-ed4wRDS7.mjs} +10 -10
- package/dist/{Breadcrumbs-Byf2ye6H.mjs.map → Breadcrumbs-ed4wRDS7.mjs.map} +1 -1
- package/dist/{Breadcrumbs-0e_3v9FF.d.mts → Breadcrumbs-zei-cpdU.d.mts} +2 -2
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-DkjwN_Op.d.mts → Button-CKzNTpPL.d.mts} +3 -3
- package/dist/Button.d.mts +1 -1
- package/dist/Calendar-CcxN7y3e.d.mts +12 -0
- package/dist/Calendar.d.mts +2 -12
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-CLTkZLKr.mjs → Card-CKrJtn1f.mjs} +5 -5
- package/dist/{Card-CLTkZLKr.mjs.map → Card-CKrJtn1f.mjs.map} +1 -1
- package/dist/{Card-DxFajLnx.d.mts → Card-pr4FQWjn.d.mts} +4 -4
- package/dist/Card.d.mts +1 -1
- package/dist/Card2.d.mts +4 -4
- package/dist/{CardV2-m9yOInMU.mjs → CardV2-D3m5EKlp.mjs} +19 -13
- package/dist/CardV2-D3m5EKlp.mjs.map +1 -0
- package/dist/{Checkbox-CU27-Aa8.mjs → Checkbox-Ccuicmlo.mjs} +8 -8
- package/dist/Checkbox-Ccuicmlo.mjs.map +1 -0
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-DhTUY8JT.mjs → Combobox-BGRyr_-L.mjs} +12 -12
- package/dist/{Combobox-DhTUY8JT.mjs.map → Combobox-BGRyr_-L.mjs.map} +1 -1
- package/dist/{Combobox-BgKEHP9p.d.mts → Combobox-Bf_Xe1BG.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-Dmzn8a53.d.mts → ComboboxBase-CWzN8GML.d.mts} +7 -7
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-BLKUKNEW.d.mts → ComboboxMultiSelect-iSuvyOx2.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-Kpl-iOok.d.mts → ComboboxSingleSelect-DVRFKPi1.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-E9hPDRvI.d.mts → CompactBar-C_61pgp7.d.mts} +3 -3
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-GgzSDzgL.mjs → ConfigFormGroup-DGCTW3by.mjs} +3 -3
- package/dist/{ConfigFormGroup-GgzSDzgL.mjs.map → ConfigFormGroup-DGCTW3by.mjs.map} +1 -1
- package/dist/{ControlBar-DYrjBDzu.d.mts → ControlBar-0XwbM4yC.d.mts} +2 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +3 -3
- package/dist/DateField-CKeSIhGy.d.mts +23 -0
- package/dist/DateField.d.mts +2 -23
- package/dist/DatePicker-B1iWrqR5.d.mts +19 -0
- package/dist/{DatePicker-DpGvo7Bd.mjs → DatePicker-BNnZ6L1y.mjs} +37 -19
- package/dist/DatePicker-BNnZ6L1y.mjs.map +1 -0
- package/dist/DatePicker.d.mts +2 -19
- package/dist/DateRangePicker-BmF9eH9R.d.mts +53 -0
- package/dist/DateRangePicker.d.mts +2 -53
- package/dist/DateRangeValueControl.d.mts +19 -0
- package/dist/DateValueControl.d.mts +1 -1
- package/dist/{DropdownButton-DGgfGW_o.mjs → DropdownButton-BlVeFbJ0.mjs} +3 -3
- package/dist/{DropdownButton-DGgfGW_o.mjs.map → DropdownButton-BlVeFbJ0.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-DZIFSJXD.mjs → DropdownMenu-82xH1AZr.mjs} +3 -3
- package/dist/{DropdownMenu-DZIFSJXD.mjs.map → DropdownMenu-82xH1AZr.mjs.map} +1 -1
- package/dist/{DropdownMenu-B2t3Bwky.d.mts → DropdownMenu-DuTnq9j7.d.mts} +3 -3
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{FieldRegistry-COyIA4VU.d.mts → FieldRegistry-D1vghSC_.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-CS2YjiTr.d.mts → FilterBar-Ck085Dic.d.mts} +5 -8
- 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 +2 -12
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/FloatingPanel.d.mts +80 -0
- package/dist/FloatingPanelContext.d.mts +33 -0
- package/dist/FloatingPanelRenderer.d.mts +7 -0
- package/dist/{FormControl-CZFmub1N.d.mts → FormControl-CfpwZGlD.d.mts} +2 -2
- package/dist/{FormControl-BIXJ-FPI.mjs → FormControl-D1HIqDKm.mjs} +6 -6
- package/dist/FormControl-D1HIqDKm.mjs.map +1 -0
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +2 -2
- package/dist/{FormField-8rlT8pm0.d.mts → FormField-0p4y0sS5.d.mts} +2 -2
- package/dist/{FormField-DcGQvgNW.mjs → FormField-CVnbsNvU.mjs} +46 -44
- package/dist/FormField-CVnbsNvU.mjs.map +1 -0
- package/dist/FormField.d.mts +1 -1
- package/dist/{Header-OLZuv8fF.d.mts → Header-gDUTQgWj.d.mts} +2 -2
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-CJDG7Ugp.d.mts → HelperTooltip-CqhiRb5g.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/{HoverCopyableField-BHdCaR-R.mjs → HoverCopyableField-HWshrU_1.mjs} +32 -21
- package/dist/HoverCopyableField-HWshrU_1.mjs.map +1 -0
- package/dist/HoverCopyableField.d.mts +14 -3
- package/dist/{IconButton-DC4rh6ow.mjs → IconButton-BgL3QUVO.mjs} +9 -9
- package/dist/IconButton-BgL3QUVO.mjs.map +1 -0
- package/dist/{IconButton-Dc17jZPG.d.mts → IconButton-CLsHdYm7.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-DsS4J78T.d.mts → Input-BHHWpSKN.d.mts} +5 -5
- package/dist/{Input-PWfwMSJ7.mjs → Input-DoB8YswA.mjs} +5 -5
- package/dist/{Input-PWfwMSJ7.mjs.map → Input-DoB8YswA.mjs.map} +1 -1
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-Buxtnz77.d.mts → InputProps-sHxlDiss.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/LayoutLoadingSpinner.d.mts +11 -0
- package/dist/Link.d.mts +2 -2
- package/dist/{ListBox-BwD-q7wF.mjs → ListBox-B9uuMt2R.mjs} +23 -16
- package/dist/ListBox-B9uuMt2R.mjs.map +1 -0
- package/dist/{ListBox-Nl9aOBeh.d.mts → ListBox-BrY1bQ5-.d.mts} +3 -3
- package/dist/ListBox.d.mts +1 -1
- package/dist/ListBoxField.d.mts +5 -2
- package/dist/{LoadingShimmer-BPYPtFE1.mjs → LoadingShimmer-dsBWRdTU.mjs} +2 -2
- package/dist/{LoadingShimmer-BPYPtFE1.mjs.map → LoadingShimmer-dsBWRdTU.mjs.map} +1 -1
- package/dist/LoadingShimmer.d.mts +2 -2
- package/dist/{LogicRow-BAREMenx.d.mts → LogicRow-9a_klV2v.d.mts} +3 -3
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/MatchHighlight.d.mts +1 -1
- package/dist/{Menu-DpM8o234.mjs → Menu-CHbUf9PQ.mjs} +5 -5
- package/dist/{Menu-DpM8o234.mjs.map → Menu-CHbUf9PQ.mjs.map} +1 -1
- package/dist/{Menu-DM9OoZ71.d.mts → Menu-D4Y_J-QI.d.mts} +4 -4
- package/dist/Menu.d.mts +1 -1
- package/dist/{MiddleTruncatedText-Bzpg3zAU.mjs → MiddleTruncatedText-DnF7F_1D.mjs} +2 -2
- package/dist/{MiddleTruncatedText-Bzpg3zAU.mjs.map → MiddleTruncatedText-DnF7F_1D.mjs.map} +1 -1
- package/dist/Modal.d.mts +4 -5
- package/dist/{PageHeader-Dq-J3san.mjs → PageHeader-XxGsFLHb.mjs} +4 -4
- package/dist/{PageHeader-Dq-J3san.mjs.map → PageHeader-XxGsFLHb.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +2 -2
- package/dist/PageLayout.d.mts +1 -1
- package/dist/{PageSelector-Ca4TcyxG.d.mts → PageSelector-BDo3ge1E.d.mts} +2 -2
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-GALyid4q.mjs → Pagination-DvVKQLdC.mjs} +8 -8
- package/dist/{Pagination-GALyid4q.mjs.map → Pagination-DvVKQLdC.mjs.map} +1 -1
- package/dist/{Pii-BalLvfze.mjs → Pii-BD48BtZ0.mjs} +2 -2
- package/dist/{Pii-BalLvfze.mjs.map → Pii-BD48BtZ0.mjs.map} +1 -1
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-BZ5Bs80y.mjs → Popover-DNH8Jx1-.mjs} +4 -4
- package/dist/{Popover-BZ5Bs80y.mjs.map → Popover-DNH8Jx1-.mjs.map} +1 -1
- package/dist/{PseudoClassProps-CcSlKNev.d.mts → PseudoClassProps-DgT5G_z5.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-CtPz3EzX.mjs → Radio-DSMPX5_2.mjs} +5 -5
- package/dist/Radio-DSMPX5_2.mjs.map +1 -0
- package/dist/{RadioGroup-sjBzFE_-.mjs → RadioGroup-D5IITQLz.mjs} +3 -3
- package/dist/{RadioGroup-sjBzFE_-.mjs.map → RadioGroup-D5IITQLz.mjs.map} +1 -1
- package/dist/{RadioGroup-Xn46ovrV.d.mts → RadioGroup-Jl1yAvGu.d.mts} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +2 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SearchInput-Try11aJD.d.mts → SearchInput-CaKHRC_s.d.mts} +2 -2
- package/dist/SearchInput.d.mts +1 -1
- package/dist/Section.d.mts +1 -1
- package/dist/SectionHeading.d.mts +77 -2
- package/dist/{SegmentedControl-BugnH-h2.mjs → SegmentedControl-JUgRw_M-.mjs} +3 -3
- package/dist/{SegmentedControl-BugnH-h2.mjs.map → SegmentedControl-JUgRw_M-.mjs.map} +1 -1
- package/dist/{SegmentedControl-DckAdhcD.d.mts → SegmentedControl-e6xDtoHC.d.mts} +1 -1
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-BmJ1OjXA.d.mts → Select-CPYztD4m.d.mts} +3 -3
- package/dist/{Select-DL-AjL0Q.mjs → Select-DX3toj6M.mjs} +10 -10
- package/dist/{Select-DL-AjL0Q.mjs.map → Select-DX3toj6M.mjs.map} +1 -1
- package/dist/Select.d.mts +1 -1
- package/dist/{Spacer-Ln3KChb5.mjs → Spacer-BsK8tTwA.mjs} +2 -2
- package/dist/{Spacer-Ln3KChb5.mjs.map → Spacer-BsK8tTwA.mjs.map} +1 -1
- package/dist/{Spinner-BgBCCHGo.mjs → Spinner-D3wXIoXN.mjs} +3 -3
- package/dist/{Spinner-BgBCCHGo.mjs.map → Spinner-D3wXIoXN.mjs.map} +1 -1
- package/dist/{Stack-ckRN7LrP.mjs → Stack-Bre2oiov.mjs} +2 -2
- package/dist/{Stack-ckRN7LrP.mjs.map → Stack-Bre2oiov.mjs.map} +1 -1
- package/dist/{Stack-CbcJykx9.d.mts → Stack-DHaK1-dw.d.mts} +2 -2
- package/dist/Stack.d.mts +1 -1
- package/dist/{Sticker-B0TbkV4o.mjs → Sticker-CQ6sOKUj.mjs} +6 -6
- package/dist/{Sticker-B0TbkV4o.mjs.map → Sticker-CQ6sOKUj.mjs.map} +1 -1
- package/dist/{Sticker-BIVuastf.d.mts → Sticker-DnSemOcW.d.mts} +5 -5
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/Tab.d.mts +2 -2
- package/dist/{TabBar-DLf4Hwa4.mjs → TabBar-sYllYizt.mjs} +6 -6
- package/dist/{TabBar-DLf4Hwa4.mjs.map → TabBar-sYllYizt.mjs.map} +1 -1
- package/dist/TabBarIconButton.d.mts +2 -2
- package/dist/{Table-C-mx8Uj0.mjs → Table-C2pkP5Xg.mjs} +7 -7
- package/dist/{Table-C-mx8Uj0.mjs.map → Table-C2pkP5Xg.mjs.map} +1 -1
- package/dist/{Table-8jXlKYLy.d.mts → Table-CFbPINKr.d.mts} +1 -1
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-ByEcFueE.d.mts → TableBody-BQsGc4Lw.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-DGjKVQFO.mjs → TableBox-CaTHcR4F.mjs} +15 -15
- package/dist/{TableBox-DGjKVQFO.mjs.map → TableBox-CaTHcR4F.mjs.map} +1 -1
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-BmoPs1u1.d.mts → TableBoxCell-52g97gEg.d.mts} +7 -7
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/TableBoxField.d.mts +3 -3
- package/dist/{TableBoxRow-BAYvEDjT.d.mts → TableBoxRow-DnoumHIE.d.mts} +3 -3
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-DRs4MdK0.d.mts → TableBoxRowActions-CDcREhP4.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-BK8DCsqi.mjs → TableControls-3bXyd8gS.mjs} +247 -103
- package/dist/TableControls-3bXyd8gS.mjs.map +1 -0
- package/dist/{TableControls-DscP6fyt.d.mts → TableControls-CrGGlkEG.d.mts} +4 -8
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-BeJ7GHPN.d.mts → TableControlsContext-BKZt2Jid.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-g3afLl5B.d.mts → TableHead-CqVIJfjh.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-CWTMf2Fe.d.mts → TableHeaderCell-DK4R8vdK.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-hPlVO3dD.d.mts → TableLayout-BcIazRB-.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-lvjbVccA.d.mts → TableRow-DdJcjG2b.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-Ccxtk5dA.d.mts → TableViewConfigurationDropdown-CHBOjw7O.d.mts} +5 -3
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-BrvR0zhC.mjs → TechnicalSticker-D3eeGMDR.mjs} +6 -6
- package/dist/{TechnicalSticker-BrvR0zhC.mjs.map → TechnicalSticker-D3eeGMDR.mjs.map} +1 -1
- package/dist/{Text-hEoPeOc9.mjs → Text-B0orb-cZ.mjs} +2 -2
- package/dist/{Text-hEoPeOc9.mjs.map → Text-B0orb-cZ.mjs.map} +1 -1
- package/dist/{Text-CfIFUyHt.d.mts → Text-BIgrwIdS.d.mts} +4 -4
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-DiKEhpfD.d.mts → TextArea-CiLttt0s.d.mts} +2 -2
- package/dist/{TextArea-BFsXUkuj.mjs → TextArea-DWXuV2aZ.mjs} +3 -3
- package/dist/{TextArea-BFsXUkuj.mjs.map → TextArea-DWXuV2aZ.mjs.map} +1 -1
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-Bs6Jn5yr.d.mts → TextUnderlineTooltip-_7mIrZ2-.d.mts} +3 -3
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +1 -1
- package/dist/Toast.d.mts +1 -1
- package/dist/{Toggle-oukvAn6V.d.mts → Toggle-Cav7bMxg.d.mts} +1 -1
- package/dist/{Toggle-CC2FTAKS.mjs → Toggle-e8DCYa6i.mjs} +6 -6
- package/dist/{Toggle-CC2FTAKS.mjs.map → Toggle-e8DCYa6i.mjs.map} +1 -1
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-0iXDCV2O.d.mts → Tooltip-DX-N-szt.d.mts} +3 -3
- package/dist/{Tooltip-CDvOu1UN.mjs → Tooltip-iJcfJqxn.mjs} +4 -4
- package/dist/{Tooltip-CDvOu1UN.mjs.map → Tooltip-iJcfJqxn.mjs.map} +1 -1
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-CdeU19Ev.d.mts → TruncatedText-D2R7uy_y.d.mts} +2 -2
- package/dist/components/Attribute/index.mjs +8 -9
- package/dist/components/Attribute/index.mjs.map +1 -1
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +3 -3
- 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 +3 -3
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/Card/index.mjs +1 -1
- package/dist/components/CardV2/index.d.mts +3 -2
- package/dist/components/CardV2/index.mjs +2 -2
- package/dist/components/Checkbox/index.mjs +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 +16 -16
- package/dist/components/DataTable/TableControls/index.mjs +2 -2
- package/dist/components/DataTable/index.mjs +22 -24
- 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 +4 -4
- 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.d.mts +5 -0
- package/dist/components/FloatingPanel/index.mjs +635 -0
- package/dist/components/FloatingPanel/index.mjs.map +1 -0
- package/dist/components/FormControl/index.d.mts +2 -2
- package/dist/components/FormControl/index.mjs +2 -2
- package/dist/components/FormField/index.d.mts +1 -1
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/HoverCopyableField/index.d.mts +2 -2
- package/dist/components/HoverCopyableField/index.mjs +2 -2
- package/dist/components/ImageTile/index.mjs +9 -9
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/index.mjs +3 -3
- package/dist/components/Link/index.mjs.map +1 -1
- 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/MatchHighlight/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.mjs +46 -17
- package/dist/components/Modal/index.mjs.map +1 -1
- package/dist/components/PageHeader/index.mjs +1 -1
- package/dist/components/Pagination/index.d.mts +1 -1
- 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 +4 -4
- package/dist/components/ProgressBar/index.mjs.map +1 -1
- package/dist/components/ProgressIndicator/index.mjs +2 -2
- 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/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 +5 -5
- package/dist/components/Slider/index.mjs.map +1 -1
- package/dist/components/Spacer/index.mjs +1 -1
- 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 +2 -2
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/SwatchPicker/index.mjs +1 -1
- package/dist/components/TabBar/index.mjs +1 -1
- package/dist/components/Table/index.d.mts +7 -7
- 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/Text/index.mjs +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 +5 -5
- package/dist/components/Toast/index.mjs +5 -5
- 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/Tooltip/index.mjs +1 -1
- package/dist/compound-expression.d.mts +1 -1
- package/dist/display.d.mts +1 -1
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-C1TvrE_O.d.mts → filter-size-context-C7injfBh.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/{index-BC4edEsD.d.mts → index-BPfK-u7y.d.mts} +2 -2
- package/dist/{index-CdaoOvFH.d.mts → index-BxBsQi2S.d.mts} +3 -3
- package/dist/{index-DJn4AeE4.d.mts → index-d_fTFuMM.d.mts} +4 -4
- 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 +11 -11
- package/dist/{input-D3Qd6dI8.d.mts → input-D9FuQmlI.d.mts} +2 -2
- package/dist/inputFields.d.mts +10 -24
- package/dist/{intersperse-yd3oMrQl.mjs → intersperse-CLkblj9A.mjs} +1 -1
- package/dist/{intersperse-yd3oMrQl.mjs.map → intersperse-CLkblj9A.mjs.map} +1 -1
- package/dist/lib/ConfigContext.d.mts +4 -1
- package/dist/lib/ConfigContext.mjs.map +1 -1
- package/dist/lib/GlobalStyles.mjs +1 -1
- package/dist/lib/HeadlessAriaButton.mjs +1 -1
- package/dist/lib/MiddleTruncatedText.mjs +1 -1
- package/dist/lib/PDSProvider.d.mts +1 -1
- package/dist/lib/PDSProvider.mjs +1 -1
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedText.mjs +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
- package/dist/lib/embeddedSurfaceProtocol.d.mts +13 -1
- package/dist/lib/embeddedSurfaceProtocol.mjs +32 -5
- package/dist/lib/embeddedSurfaceProtocol.mjs.map +1 -1
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/pseudoClass.d.mts +1 -1
- package/dist/lib/useEmbeddedSurface.d.mts +31 -3
- package/dist/lib/useEmbeddedSurface.mjs +118 -13
- package/dist/lib/useEmbeddedSurface.mjs.map +1 -1
- package/dist/{message-CsK3sIq0.d.mts → message-CqKB5mko.d.mts} +1 -1
- package/dist/mixins/focus.d.mts +1 -1
- package/dist/mixins/focus.mjs +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/hoverable.mjs +2 -2
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/input.mjs +2 -2
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/menuItem.mjs +1 -1
- package/dist/mixins/print/index.mjs +1 -1
- package/dist/mixins/text.d.mts +1 -1
- package/dist/mixins/text.mjs +1 -1
- package/dist/{operators-C_xPzItk.d.mts → operators-CgcsYzfy.d.mts} +24 -3
- package/dist/operators.d.mts +2 -2
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +6 -6
- package/dist/patterns/LayoutLoadingSpinner/index.d.mts +2 -0
- package/dist/patterns/LayoutLoadingSpinner/index.mjs +56 -0
- package/dist/patterns/LayoutLoadingSpinner/index.mjs.map +1 -0
- package/dist/patterns/PageLayout/index.mjs +1 -1
- package/dist/styledComponentsInterop-8zScIQyC.mjs +33 -0
- package/dist/styledComponentsInterop-8zScIQyC.mjs.map +1 -0
- package/dist/{text-BaQdW8qa.d.mts → text-xwtyWIbE.d.mts} +1 -1
- package/dist/{theme-D9Y6NOzb.d.mts → theme-Ftogn9Wo.d.mts} +1 -1
- package/dist/theme.d.mts +1 -1
- package/dist/{types-CjHuZoVJ.d.mts → types-0_9G0kWg.d.mts} +3 -1
- package/dist/{types-BKEwt0uq.d.mts → types-BrNreYUU.d.mts} +2 -2
- package/dist/{types-mb3woqzE.d.mts → types-D55MZSyx.d.mts} +6 -3
- package/dist/types.d.mts +1 -1
- package/dist/types2.d.mts +1 -1
- package/dist/types3.d.mts +1 -1
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-CGzRyv0i.d.mts → useFilterStateV2-D8Q8QKhS.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-DhwEi45-.d.mts → useFormField-BBbq1izo.d.mts} +1 -1
- package/dist/{useFormField-eftOPiXj.mjs → useFormField-Bz2iMPBO.mjs} +2 -2
- package/dist/{useFormField-eftOPiXj.mjs.map → useFormField-Bz2iMPBO.mjs.map} +1 -1
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-BMukAMAd.mjs → useFormGroup-CaTiD_Yt.mjs} +1 -1
- package/dist/{useFormGroup-BMukAMAd.mjs.map → useFormGroup-CaTiD_Yt.mjs.map} +1 -1
- package/dist/{useTableBoxDragAndDrop-CsnN52lx.d.mts → useTableBoxDragAndDrop-Bye8gJTl.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/{useToggle-3k3EkV8V.mjs → useToggle-Bo3yd14Y.mjs} +1 -1
- package/dist/{useToggle-3k3EkV8V.mjs.map → useToggle-Bo3yd14Y.mjs.map} +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-DnSIlR1i.d.mts → utilities-Bmwk_DRn.d.mts} +1 -1
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/storybook.mjs +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils2.d.mts +12 -1
- package/dist/utils3.d.mts +7 -0
- package/dist/{validation-BdP2vajF.d.mts → validation-CAtTuHO9.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/{value-control-resolver-CiGEHQAc.d.mts → value-control-resolver-DadI8r9a.d.mts} +2 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/keyframes.mjs +1 -1
- package/llms.txt +5 -5
- package/package.json +8 -3
- package/skills/ui-authoring/COMPONENTS.md +69 -305
- package/skills/ui-authoring/PATTERNS.md +362 -0
- package/skills/ui-authoring/SKILL.md +15 -147
- package/skills/ui-authoring/TOKENS.md +400 -0
- package/dist/CardV2-m9yOInMU.mjs.map +0 -1
- package/dist/Checkbox-CU27-Aa8.mjs.map +0 -1
- package/dist/DatePicker-DpGvo7Bd.mjs.map +0 -1
- package/dist/FormControl-BIXJ-FPI.mjs.map +0 -1
- package/dist/FormField-DcGQvgNW.mjs.map +0 -1
- package/dist/HoverCopyableField-BHdCaR-R.mjs.map +0 -1
- package/dist/IconButton-DC4rh6ow.mjs.map +0 -1
- package/dist/ListBox-BwD-q7wF.mjs.map +0 -1
- package/dist/Radio-CtPz3EzX.mjs.map +0 -1
- package/dist/SectionHeading-DvP9NEgN.d.mts +0 -71
- package/dist/TableControls-BK8DCsqi.mjs.map +0 -1
- package/skills/ui-authoring/EXAMPLES.md +0 -370
- package/skills/ui-authoring/REFERENCE.md +0 -293
- /package/dist/{index-7rWKHdox.d.mts → index-BSVhZrWN.d.mts} +0 -0
- /package/dist/{index-B4woaFSm.d.mts → index-BrGZHEgX.d.mts} +0 -0
- /package/dist/{index-BOn0AAue.d.mts → index-BwAfCVZH2.d.mts} +0 -0
- /package/dist/{index-CKKoxA9V.d.mts → index-CDGG7lCB.d.mts} +0 -0
- /package/dist/{index-CRo77wc3.d.mts → index-CFhUdAHM.d.mts} +0 -0
- /package/dist/{index-Ci-uuV07.d.mts → index-CROz1VSV.d.mts} +0 -0
- /package/dist/{index-DDdPqD_H.d.mts → index-DA6_cwf8.d.mts} +0 -0
- /package/dist/{index-Es5nKSSL.d.mts → index-DM6vVDZD.d.mts} +0 -0
- /package/dist/{index-FtE8MXJ_.d.mts → index-Jh0C5PIG.d.mts} +0 -0
- /package/dist/{index-ehD5GjMH.d.mts → index-PWQavSPf.d.mts} +0 -0
- /package/dist/{index-uMNhmxEh.d.mts → index-sViox9YW.d.mts} +0 -0
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
|
|
3
|
-
import "./variables/transitions.mjs";
|
|
4
|
-
import { paragraphMixins } from "./mixins/text.mjs";
|
|
1
|
+
import { a as styled, n as createGlobalStyle, r as css } from "./styledComponentsInterop-8zScIQyC.mjs";
|
|
5
2
|
import { TruncatedText } from "./lib/TruncatedText.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import { t as
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
3
|
+
import { paragraphMixins } from "./mixins/text.mjs";
|
|
4
|
+
import { t as Card_default } from "./Card-CKrJtn1f.mjs";
|
|
5
|
+
import { t as Spacer_default } from "./Spacer-BsK8tTwA.mjs";
|
|
6
|
+
import { i as Paragraph, r as Label$1 } from "./Text-B0orb-cZ.mjs";
|
|
7
|
+
import "./variables/transitions.mjs";
|
|
8
|
+
import { a as Tooltip } from "./Tooltip-iJcfJqxn.mjs";
|
|
9
|
+
import { isActive, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
|
|
10
10
|
import { useScrollOverflow } from "./lib/useScrollOverflow.mjs";
|
|
11
11
|
import { Z_INDICES } from "./lib/zindex.mjs";
|
|
12
|
-
import {
|
|
13
|
-
import { n as
|
|
14
|
-
import {
|
|
12
|
+
import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
|
|
13
|
+
import { n as Stack, t as HStack } from "./Stack-Bre2oiov.mjs";
|
|
14
|
+
import { n as Button, t as IconButton } from "./IconButton-BgL3QUVO.mjs";
|
|
15
|
+
import { r as InputGroup } from "./Input-DoB8YswA.mjs";
|
|
15
16
|
import Input_default from "./components/Input/index.mjs";
|
|
16
|
-
import { c as MenuList, s as MenuItem } from "./Menu-
|
|
17
|
-
import { n as DropdownMenu_default } from "./DropdownMenu-
|
|
18
|
-
import { t as Combobox } from "./Combobox-
|
|
19
|
-
import { s as Popover_default } from "./Popover-
|
|
20
|
-
import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-
|
|
21
|
-
import { t as Toggle } from "./Toggle-
|
|
22
|
-
import { t as ListBox } from "./ListBox-
|
|
23
|
-
import { m as FormField, o as ComboboxField } from "./FormField-
|
|
24
|
-
import { n as DatePicker } from "./DatePicker-
|
|
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";
|
|
25
26
|
import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
|
|
26
|
-
import styled, { createGlobalStyle, css } from "styled-components";
|
|
27
27
|
import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
28
28
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
29
29
|
import { CaretDownIcon, CheckIcon, CircleInfoIcon, CirclePlusIcon, CopyIcon, FilterIcon, MoreIcon, PlusIcon, RotateCcwIcon, SaveIcon, SearchIcon, SettingsIcon, TrashIcon, XIcon } from "@persona/icons";
|
|
30
30
|
import { CaretDownIcon as CaretDownIcon$1, CircleInfoIcon as CircleInfoIcon$1, LockedIcon as LockedIcon$1, MoreIcon as MoreIcon$1, PlusIcon as PlusIcon$1, SearchIcon as SearchIcon$1, XIcon as XIcon$1 } from "@persona/icons/12px";
|
|
31
|
-
import { isEqual, noop, startCase, uniqueId } from "lodash";
|
|
32
|
-
import { debounce as debounce$1, union, uniqueId as uniqueId$1 } from "lodash/fp.js";
|
|
31
|
+
import { debounce, isEqual, noop, partition, startCase, union, uniqueId } from "lodash-es";
|
|
33
32
|
import { useId } from "react-aria";
|
|
34
33
|
import Fuse from "fuse.js";
|
|
35
34
|
import { DragIcon as DragIcon$1 } from "@persona/icons/24px";
|
|
35
|
+
import { DateTime } from "luxon";
|
|
36
36
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
37
37
|
import { DragDropContext, Draggable, Droppable } from "@hello-pangea/dnd";
|
|
38
38
|
import { parseDate } from "@internationalized/date";
|
|
@@ -834,8 +834,35 @@ function reorder(list, startIndex, endIndex) {
|
|
|
834
834
|
result.splice(endIndex, 0, removed);
|
|
835
835
|
return result;
|
|
836
836
|
}
|
|
837
|
+
/**
|
|
838
|
+
* Translates a drag result into indices into the full list. dnd reports positions among the
|
|
839
|
+
* rendered rows, which diverge from the full list as soon as the view is filtered.
|
|
840
|
+
*
|
|
841
|
+
* Returns null when either end cannot be resolved, in which case the drag should be ignored
|
|
842
|
+
* rather than applied at the wrong position.
|
|
843
|
+
*/
|
|
844
|
+
function resolveDragIndices(listKeys, renderedKeys, draggableId, destinationIndex) {
|
|
845
|
+
const destinationKey = renderedKeys[destinationIndex];
|
|
846
|
+
if (destinationKey == null) return null;
|
|
847
|
+
const from = listKeys.indexOf(draggableId);
|
|
848
|
+
const to = listKeys.indexOf(destinationKey);
|
|
849
|
+
return from === -1 || to === -1 ? null : {
|
|
850
|
+
from,
|
|
851
|
+
to
|
|
852
|
+
};
|
|
853
|
+
}
|
|
837
854
|
//#endregion
|
|
838
855
|
//#region components/DataTable/TableControls/TableViewConfigurationDropdown.tsx
|
|
856
|
+
const SHOWN_DROPPABLE_ID = "cases-view__configure-shown-columns";
|
|
857
|
+
const startsCapitalized = (label) => {
|
|
858
|
+
const first = label.charAt(0);
|
|
859
|
+
return first !== "" && first === first.toUpperCase() && first !== first.toLowerCase();
|
|
860
|
+
};
|
|
861
|
+
const byLabel = (a, b) => {
|
|
862
|
+
const aCapitalized = startsCapitalized(a.label);
|
|
863
|
+
if (aCapitalized !== startsCapitalized(b.label)) return aCapitalized ? -1 : 1;
|
|
864
|
+
return a.label.localeCompare(b.label, void 0, { numeric: true });
|
|
865
|
+
};
|
|
839
866
|
const DndSection = styled("div")`
|
|
840
867
|
max-height: 400px;
|
|
841
868
|
|
|
@@ -912,10 +939,20 @@ const TableViewConfigurationDropdown = ({ disabled = false, disabledTooltipMessa
|
|
|
912
939
|
})
|
|
913
940
|
})] });
|
|
914
941
|
};
|
|
915
|
-
const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateColumnConfiguration, getColumnDisabled }) => {
|
|
942
|
+
const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateColumnConfiguration, getColumnDisabled, sortByRelevance = false }) => {
|
|
916
943
|
const [searchTerm, setSearchTerm] = useState("");
|
|
917
944
|
const fuse = useMemo(() => {
|
|
918
|
-
return new Fuse(attributeOptions, {
|
|
945
|
+
return new Fuse(attributeOptions, sortByRelevance ? {
|
|
946
|
+
shouldSort: true,
|
|
947
|
+
threshold: .3,
|
|
948
|
+
ignoreLocation: true,
|
|
949
|
+
includeScore: true,
|
|
950
|
+
minMatchCharLength: 1,
|
|
951
|
+
keys: [{
|
|
952
|
+
name: "label",
|
|
953
|
+
weight: 1
|
|
954
|
+
}]
|
|
955
|
+
} : {
|
|
919
956
|
shouldSort: false,
|
|
920
957
|
threshold: .4,
|
|
921
958
|
location: 0,
|
|
@@ -926,27 +963,49 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
|
|
|
926
963
|
weight: 1
|
|
927
964
|
}]
|
|
928
965
|
});
|
|
929
|
-
}, [attributeOptions]);
|
|
966
|
+
}, [attributeOptions, sortByRelevance]);
|
|
930
967
|
const allOptions = useMemo(() => union(attributeOptions, columnConfiguration), [attributeOptions, columnConfiguration]);
|
|
931
|
-
const filteredSearchOptions =
|
|
968
|
+
const filteredSearchOptions = useMemo(() => {
|
|
969
|
+
if (searchTerm === "") return allOptions;
|
|
970
|
+
const results = fuse.search(searchTerm);
|
|
971
|
+
if (!sortByRelevance) return results.map(({ item }) => item);
|
|
972
|
+
return [...results].sort((a, b) => (a.score ?? 0) - (b.score ?? 0) || byLabel(a.item, b.item)).map(({ item }) => item);
|
|
973
|
+
}, [
|
|
974
|
+
allOptions,
|
|
975
|
+
fuse,
|
|
976
|
+
searchTerm,
|
|
977
|
+
sortByRelevance
|
|
978
|
+
]);
|
|
932
979
|
const hiddenAttributes = useMemo(() => {
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
980
|
+
const columnConfigurationKeys = new Set(columnConfiguration.map((c) => c.key));
|
|
981
|
+
const hidden = filteredSearchOptions.filter((attribute) => !columnConfigurationKeys.has(attribute.key));
|
|
982
|
+
if (!sortByRelevance || searchTerm !== "") return hidden;
|
|
983
|
+
const [systemColumns, customFields] = partition(hidden, (a) => !a.isCustomField);
|
|
984
|
+
return [...systemColumns, ...[...customFields].sort(byLabel)];
|
|
985
|
+
}, [
|
|
986
|
+
columnConfiguration,
|
|
987
|
+
filteredSearchOptions,
|
|
988
|
+
sortByRelevance,
|
|
989
|
+
searchTerm
|
|
990
|
+
]);
|
|
937
991
|
const filteredShownAttributes = useMemo(() => {
|
|
938
992
|
return columnConfiguration.filter((column) => filteredSearchOptions.map((o) => o.key).includes(column.key));
|
|
939
993
|
}, [columnConfiguration, filteredSearchOptions]);
|
|
940
994
|
const handleDragEnd = (result, _provided) => {
|
|
941
995
|
const { destination, source } = result;
|
|
942
996
|
if (!destination || destination.droppableId === source.droppableId && destination.index === source.index) return;
|
|
943
|
-
|
|
997
|
+
const indices = resolveDragIndices(columnConfiguration.map((c) => c.key), filteredShownAttributes.map((c) => c.key), result.draggableId, destination.index);
|
|
998
|
+
if (!indices) return;
|
|
999
|
+
updateColumnConfiguration(reorder(columnConfiguration, indices.from, indices.to));
|
|
944
1000
|
};
|
|
945
1001
|
const generateShownAttributesToggle = (column) => () => {
|
|
946
1002
|
updateColumnConfiguration(columnConfiguration.filter((a) => a.key !== column.key));
|
|
947
1003
|
};
|
|
948
1004
|
const generateHiddenAttributesToggle = (column) => () => {
|
|
949
|
-
updateColumnConfiguration(columnConfiguration.concat(
|
|
1005
|
+
updateColumnConfiguration(columnConfiguration.concat({
|
|
1006
|
+
key: column.key,
|
|
1007
|
+
label: column.label
|
|
1008
|
+
}));
|
|
950
1009
|
};
|
|
951
1010
|
const shownColumnIds = useMemo(() => {
|
|
952
1011
|
return columnConfiguration.map((c) => c.key);
|
|
@@ -993,7 +1052,7 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
|
|
|
993
1052
|
shownDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children: "Shown attributes" }), /* @__PURE__ */ jsx(DragDropContext, {
|
|
994
1053
|
onDragEnd: handleDragEnd,
|
|
995
1054
|
children: /* @__PURE__ */ jsx(Droppable, {
|
|
996
|
-
droppableId:
|
|
1055
|
+
droppableId: SHOWN_DROPPABLE_ID,
|
|
997
1056
|
renderClone: (provided, _snapshot, rubric) => {
|
|
998
1057
|
return /* @__PURE__ */ jsx("div", {
|
|
999
1058
|
...provided.draggableProps,
|
|
@@ -1026,41 +1085,7 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
|
|
|
1026
1085
|
})
|
|
1027
1086
|
})] }),
|
|
1028
1087
|
/* @__PURE__ */ jsx(Spacer_default, { height: 2 }),
|
|
1029
|
-
hiddenDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children: "Hidden attributes" }), /* @__PURE__ */ jsx(
|
|
1030
|
-
onDragEnd: handleDragEnd,
|
|
1031
|
-
children: /* @__PURE__ */ jsx(Droppable, {
|
|
1032
|
-
droppableId: "cases-view__configure-hidden-columns",
|
|
1033
|
-
renderClone: (provided, _snapshot, rubric) => {
|
|
1034
|
-
return /* @__PURE__ */ jsx("div", {
|
|
1035
|
-
...provided.draggableProps,
|
|
1036
|
-
...provided.dragHandleProps,
|
|
1037
|
-
ref: provided.innerRef,
|
|
1038
|
-
children: /* @__PURE__ */ jsx(AttributeDnd, { ...hiddenDndItemProps[rubric.source.index] })
|
|
1039
|
-
});
|
|
1040
|
-
},
|
|
1041
|
-
children: (provided) => {
|
|
1042
|
-
return /* @__PURE__ */ jsxs("div", {
|
|
1043
|
-
ref: provided.innerRef,
|
|
1044
|
-
...provided.droppableProps,
|
|
1045
|
-
children: [hiddenDndItemProps.map((props, idx) => {
|
|
1046
|
-
return /* @__PURE__ */ jsx(Draggable, {
|
|
1047
|
-
draggableId: props.column.key,
|
|
1048
|
-
index: idx,
|
|
1049
|
-
isDragDisabled: props.shouldDisableDrag,
|
|
1050
|
-
children: (provided) => {
|
|
1051
|
-
return /* @__PURE__ */ jsx("div", {
|
|
1052
|
-
ref: provided.innerRef,
|
|
1053
|
-
...provided.draggableProps,
|
|
1054
|
-
...provided.dragHandleProps,
|
|
1055
|
-
children: /* @__PURE__ */ jsx(AttributeDnd, { ...props })
|
|
1056
|
-
});
|
|
1057
|
-
}
|
|
1058
|
-
}, `${props.column.key}`);
|
|
1059
|
-
}), provided.placeholder]
|
|
1060
|
-
});
|
|
1061
|
-
}
|
|
1062
|
-
})
|
|
1063
|
-
})] })
|
|
1088
|
+
hiddenDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children: "Hidden attributes" }), hiddenDndItemProps.map((props) => /* @__PURE__ */ jsx(AttributeDnd, { ...props }, props.column.key))] })
|
|
1064
1089
|
] }) : /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Paragraph, { children: "No matching attributes" }) })
|
|
1065
1090
|
] });
|
|
1066
1091
|
};
|
|
@@ -1158,6 +1183,7 @@ const OPERATORS_BY_TYPE = {
|
|
|
1158
1183
|
"is",
|
|
1159
1184
|
"before",
|
|
1160
1185
|
"after",
|
|
1186
|
+
"between",
|
|
1161
1187
|
"is_empty",
|
|
1162
1188
|
"is_not_empty"
|
|
1163
1189
|
],
|
|
@@ -1172,6 +1198,14 @@ const OPERATORS_BY_TYPE = {
|
|
|
1172
1198
|
};
|
|
1173
1199
|
/** Operators that have no value control (the operator itself is the predicate). */
|
|
1174
1200
|
const VALUELESS_OPERATORS = new Set(["is_empty", "is_not_empty"]);
|
|
1201
|
+
/**
|
|
1202
|
+
* Operators whose value is a {@link DateRangeFilterValue} rather than the
|
|
1203
|
+
* scalar its field type would otherwise carry. The value control, the draft
|
|
1204
|
+
* seed, and every validator branch on this rather than on field type alone —
|
|
1205
|
+
* a `date` field carries an ISO day string for `is` / `before` / `after` and
|
|
1206
|
+
* a `{ startDate, endDate }` pair for `between`.
|
|
1207
|
+
*/
|
|
1208
|
+
const RANGE_OPERATORS = new Set(["between"]);
|
|
1175
1209
|
function getOperatorsForType(type) {
|
|
1176
1210
|
return OPERATORS_BY_TYPE[type] ?? [];
|
|
1177
1211
|
}
|
|
@@ -1199,6 +1233,19 @@ function getDefaultOperatorForType(type) {
|
|
|
1199
1233
|
function isValuelessOperator(operator) {
|
|
1200
1234
|
return VALUELESS_OPERATORS.has(operator);
|
|
1201
1235
|
}
|
|
1236
|
+
function isRangeOperator(operator) {
|
|
1237
|
+
return RANGE_OPERATORS.has(operator);
|
|
1238
|
+
}
|
|
1239
|
+
/**
|
|
1240
|
+
* Whether `value` carries both endpoints of a range. Shared by the pill,
|
|
1241
|
+
* the validators, and the serialize boundary so "complete enough to send"
|
|
1242
|
+
* has one definition.
|
|
1243
|
+
*/
|
|
1244
|
+
function isCompleteDateRange(value) {
|
|
1245
|
+
if (value == null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
1246
|
+
const { startDate, endDate } = value;
|
|
1247
|
+
return typeof startDate === "string" && startDate.length > 0 && typeof endDate === "string" && endDate.length > 0;
|
|
1248
|
+
}
|
|
1202
1249
|
/**
|
|
1203
1250
|
* Whether a concrete field's operator selector should be shown. A field
|
|
1204
1251
|
* pinned to one operator renders it as static text rather than a caret that
|
|
@@ -1220,7 +1267,8 @@ const OPERATOR_LABELS = {
|
|
|
1220
1267
|
is_true: "is true",
|
|
1221
1268
|
is_false: "is false",
|
|
1222
1269
|
before: "before",
|
|
1223
|
-
after: "after"
|
|
1270
|
+
after: "after",
|
|
1271
|
+
between: "is between"
|
|
1224
1272
|
};
|
|
1225
1273
|
/**
|
|
1226
1274
|
* Field-type-specific label overrides. The operator vocabulary itself
|
|
@@ -1253,6 +1301,40 @@ function emptyValueForFieldType(type) {
|
|
|
1253
1301
|
default: return "";
|
|
1254
1302
|
}
|
|
1255
1303
|
}
|
|
1304
|
+
/**
|
|
1305
|
+
* Empty endpoints are written as `''` rather than omitted so the object still
|
|
1306
|
+
* reads as a date range after a JSON round-trip — `undefined` keys don't
|
|
1307
|
+
* survive `JSON.stringify`, and a bare `{}` is indistinguishable from a
|
|
1308
|
+
* corrupted value at the validation boundary.
|
|
1309
|
+
*/
|
|
1310
|
+
function emptyDateRange() {
|
|
1311
|
+
return {
|
|
1312
|
+
startDate: "",
|
|
1313
|
+
endDate: ""
|
|
1314
|
+
};
|
|
1315
|
+
}
|
|
1316
|
+
/**
|
|
1317
|
+
* Empty-but-present value for a concrete `(field, operator)` pair. Prefer this
|
|
1318
|
+
* over {@link emptyValueForFieldType} anywhere an operator is in hand: the same
|
|
1319
|
+
* `date` field seeds an empty string for `before` and an empty range for
|
|
1320
|
+
* `between`.
|
|
1321
|
+
*/
|
|
1322
|
+
function emptyValueForRule(field, operator) {
|
|
1323
|
+
if (isValuelessOperator(operator)) return null;
|
|
1324
|
+
if (isRangeOperator(operator) || field.type === "date_range") return emptyDateRange();
|
|
1325
|
+
return emptyValueForFieldType(field.type);
|
|
1326
|
+
}
|
|
1327
|
+
/**
|
|
1328
|
+
* Carry `value` across an operator change, replacing it with a fresh draft
|
|
1329
|
+
* when the two operators disagree about value shape. Switching a date pill
|
|
1330
|
+
* from `after` to `between` must not leave the old ISO day string behind —
|
|
1331
|
+
* the range control can't read it and the wire format would reject it.
|
|
1332
|
+
*/
|
|
1333
|
+
function reconcileValueForOperator(field, nextOperator, previousOperator, value) {
|
|
1334
|
+
if (isValuelessOperator(nextOperator)) return null;
|
|
1335
|
+
if (isRangeOperator(nextOperator) !== isRangeOperator(previousOperator)) return emptyValueForRule(field, nextOperator);
|
|
1336
|
+
return value ?? emptyValueForRule(field, nextOperator);
|
|
1337
|
+
}
|
|
1256
1338
|
//#endregion
|
|
1257
1339
|
//#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/display.ts
|
|
1258
1340
|
function valueDisplayString(value, optionLabels) {
|
|
@@ -1266,10 +1348,16 @@ function valueDisplayString(value, optionLabels) {
|
|
|
1266
1348
|
if (typeof value === "boolean") return value ? "true" : "false";
|
|
1267
1349
|
if (typeof value === "number") return String(value);
|
|
1268
1350
|
if (typeof value === "string") return value.length > 0 ? display(value) : void 0;
|
|
1351
|
+
if (typeof value === "object") {
|
|
1352
|
+
const { startDate, endDate } = value;
|
|
1353
|
+
if (startDate && endDate) return `${startDate} – ${endDate}`;
|
|
1354
|
+
return startDate || endDate || void 0;
|
|
1355
|
+
}
|
|
1269
1356
|
}
|
|
1270
1357
|
function draftValueFor(field, operator) {
|
|
1271
1358
|
if (isValuelessOperator(operator)) return null;
|
|
1272
1359
|
if (field.type === "boolean") return true;
|
|
1360
|
+
if (isRangeOperator(operator)) return emptyValueForRule(field, operator);
|
|
1273
1361
|
if (field.type === "multi_choices") return [];
|
|
1274
1362
|
return "";
|
|
1275
1363
|
}
|
|
@@ -1745,12 +1833,17 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
1745
1833
|
const handleOperatorChange = useCallback((groupIndex, ruleIndex, nextOperator) => {
|
|
1746
1834
|
const prev = compound.groups[groupIndex]?.rules[ruleIndex];
|
|
1747
1835
|
if (!prev) return;
|
|
1836
|
+
const field = registry.get(prev.fieldId);
|
|
1748
1837
|
onChange(setRuleInGroup(compound, groupIndex, ruleIndex, {
|
|
1749
1838
|
fieldId: prev.fieldId,
|
|
1750
1839
|
operator: nextOperator,
|
|
1751
|
-
value:
|
|
1840
|
+
value: field ? reconcileValueForOperator(field, nextOperator, prev.operator, prev.value) : null
|
|
1752
1841
|
}));
|
|
1753
|
-
}, [
|
|
1842
|
+
}, [
|
|
1843
|
+
compound,
|
|
1844
|
+
onChange,
|
|
1845
|
+
registry
|
|
1846
|
+
]);
|
|
1754
1847
|
const handleValueChange = useCallback((groupIndex, ruleIndex, nextValue) => {
|
|
1755
1848
|
const prev = compound.groups[groupIndex]?.rules[ruleIndex];
|
|
1756
1849
|
if (!prev) return;
|
|
@@ -2074,6 +2167,63 @@ function ChoicesValueControl({ field, operator, value, onChange, onCommit, ariaL
|
|
|
2074
2167
|
});
|
|
2075
2168
|
}
|
|
2076
2169
|
//#endregion
|
|
2170
|
+
//#region components/DataTable/TableControls/FiltersV2/value-controls/DateRangeValueControl/DateRangeValueControl.tsx
|
|
2171
|
+
const CALENDAR_DATE = /^(\d{4}-\d{2}-\d{2})/;
|
|
2172
|
+
const parseIsoDate$1 = (value) => {
|
|
2173
|
+
if (typeof value !== "string") return;
|
|
2174
|
+
const calendarDay = CALENDAR_DATE.exec(value)?.[1];
|
|
2175
|
+
if (calendarDay == null) return;
|
|
2176
|
+
try {
|
|
2177
|
+
const parsed = parseDate(calendarDay);
|
|
2178
|
+
return DateTime.fromObject({
|
|
2179
|
+
year: parsed.year,
|
|
2180
|
+
month: parsed.month,
|
|
2181
|
+
day: parsed.day
|
|
2182
|
+
});
|
|
2183
|
+
} catch {
|
|
2184
|
+
return;
|
|
2185
|
+
}
|
|
2186
|
+
};
|
|
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);
|
|
2193
|
+
return useMemo(() => ({
|
|
2194
|
+
startDate: parseIsoDate$1(startDate),
|
|
2195
|
+
endDate: parseIsoDate$1(endDate)
|
|
2196
|
+
}), [startDate, endDate]);
|
|
2197
|
+
};
|
|
2198
|
+
const DateRangeValueControl = ({ field, operator, value, onChange, ariaLabel, hidePresets, portalContainer, visibleMonths }) => {
|
|
2199
|
+
const size = useFilterBarSize();
|
|
2200
|
+
const dateRange = useDateRange(value);
|
|
2201
|
+
const handleChange = useCallback((range) => {
|
|
2202
|
+
if (!range?.start || !range.end || range.start.compare(range.end) > 0) {
|
|
2203
|
+
onChange(null);
|
|
2204
|
+
return;
|
|
2205
|
+
}
|
|
2206
|
+
onChange({
|
|
2207
|
+
startDate: range.start.toString(),
|
|
2208
|
+
endDate: range.end.toString()
|
|
2209
|
+
});
|
|
2210
|
+
}, [onChange]);
|
|
2211
|
+
if (isValuelessOperator(operator)) return null;
|
|
2212
|
+
const hasCompleteRange = dateRange.startDate != null && dateRange.endDate != null;
|
|
2213
|
+
return /* @__PURE__ */ jsx(DateRangePicker, {
|
|
2214
|
+
"aria-label": ariaLabel ?? `${field.label} value`,
|
|
2215
|
+
calendarZIndex: Z_INDICES.modalDropdown,
|
|
2216
|
+
dateRange,
|
|
2217
|
+
hidePresets,
|
|
2218
|
+
label: null,
|
|
2219
|
+
onChange: handleChange,
|
|
2220
|
+
portalContainer,
|
|
2221
|
+
showClear: false,
|
|
2222
|
+
size,
|
|
2223
|
+
visibleMonths
|
|
2224
|
+
}, hasCompleteRange ? "range" : "empty");
|
|
2225
|
+
};
|
|
2226
|
+
//#endregion
|
|
2077
2227
|
//#region components/DataTable/TableControls/FiltersV2/value-controls/DateValueControl/DateValueControl.tsx
|
|
2078
2228
|
const parseIsoDate = (value) => {
|
|
2079
2229
|
if (typeof value !== "string") return null;
|
|
@@ -2159,7 +2309,7 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
|
2159
2309
|
const size = useFilterBarSize();
|
|
2160
2310
|
const [localValue, setLocalValue] = useState(() => numericDisplayValue(value));
|
|
2161
2311
|
const isFocusedRef = useRef(false);
|
|
2162
|
-
const debouncedOnChange = useMemo(() => debounce
|
|
2312
|
+
const debouncedOnChange = useMemo(() => debounce(onChange, 300), [onChange]);
|
|
2163
2313
|
useEffect(() => {
|
|
2164
2314
|
const cancelPendingChange = () => {
|
|
2165
2315
|
debouncedOnChange.cancel();
|
|
@@ -2230,7 +2380,7 @@ const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) =>
|
|
|
2230
2380
|
const size = useFilterBarSize();
|
|
2231
2381
|
const [localValue, setLocalValue] = useState(() => numericDisplayValue(value));
|
|
2232
2382
|
const isFocusedRef = useRef(false);
|
|
2233
|
-
const debouncedOnChange = useMemo(() => debounce
|
|
2383
|
+
const debouncedOnChange = useMemo(() => debounce(onChange, 300), [onChange]);
|
|
2234
2384
|
useEffect(() => {
|
|
2235
2385
|
const cancelPendingChange = () => {
|
|
2236
2386
|
debouncedOnChange.cancel();
|
|
@@ -2280,7 +2430,7 @@ function StringValueControl({ field, operator, value, onChange, ariaLabel, input
|
|
|
2280
2430
|
const resolvedInputType = inputType ?? (field.type === "email" ? "email" : "text");
|
|
2281
2431
|
const size = useFilterBarSize();
|
|
2282
2432
|
const [localValue, setLocalValue] = useState(typeof value === "string" ? value : "");
|
|
2283
|
-
const debouncedOnChange = useMemo(() => debounce
|
|
2433
|
+
const debouncedOnChange = useMemo(() => debounce(onChange, DEBOUNCE_MS), [onChange]);
|
|
2284
2434
|
useEffect(() => () => {
|
|
2285
2435
|
debouncedOnChange.cancel();
|
|
2286
2436
|
}, [debouncedOnChange]);
|
|
@@ -2318,7 +2468,8 @@ const RESOLVERS = {
|
|
|
2318
2468
|
...opts
|
|
2319
2469
|
}),
|
|
2320
2470
|
boolean: (opts) => /* @__PURE__ */ jsx(BooleanValueControl, { ...opts }),
|
|
2321
|
-
date: (opts) => /* @__PURE__ */ jsx(DateValueControl, { ...opts }),
|
|
2471
|
+
date: (opts) => isRangeOperator(opts.operator) ? /* @__PURE__ */ jsx(DateRangeValueControl, { ...opts }) : /* @__PURE__ */ jsx(DateValueControl, { ...opts }),
|
|
2472
|
+
date_range: (opts) => /* @__PURE__ */ jsx(DateRangeValueControl, { ...opts }),
|
|
2322
2473
|
integer: (opts) => /* @__PURE__ */ jsx(IntegerValueControl, { ...opts }),
|
|
2323
2474
|
float: (opts) => /* @__PURE__ */ jsx(FloatValueControl, { ...opts }),
|
|
2324
2475
|
array: (opts) => /* @__PURE__ */ jsx(ArrayValueControl, { ...opts })
|
|
@@ -2618,9 +2769,10 @@ function normalizeValueToDisplay(value, optionLabels) {
|
|
|
2618
2769
|
return value.map((entry) => lookup(String(entry)));
|
|
2619
2770
|
}
|
|
2620
2771
|
if (typeof value === "object") {
|
|
2621
|
-
const
|
|
2622
|
-
if (
|
|
2623
|
-
|
|
2772
|
+
const { startDate, endDate } = value;
|
|
2773
|
+
if (startDate && endDate) return [`${startDate} – ${endDate}`];
|
|
2774
|
+
const single = startDate || endDate;
|
|
2775
|
+
return single ? [single] : [];
|
|
2624
2776
|
}
|
|
2625
2777
|
if (typeof value === "boolean") return [value ? "True" : "False"];
|
|
2626
2778
|
if (typeof value === "number") return [String(value)];
|
|
@@ -2640,7 +2792,7 @@ function buildAccessibleName(field, rule, displayedValues) {
|
|
|
2640
2792
|
return `${field.label} ${operatorLabel} ${displayedValues.join(", ")}`;
|
|
2641
2793
|
}
|
|
2642
2794
|
const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDismiss, variant = "default", optionLabels, size, ...rest }, ref) {
|
|
2643
|
-
const reactId = useMemo(() => uniqueId
|
|
2795
|
+
const reactId = useMemo(() => uniqueId("filter-pill-"), []);
|
|
2644
2796
|
const resolvedSize = useFilterBarSize(size);
|
|
2645
2797
|
const displayedValues = useMemo(() => rule && !isValuelessOperator(rule.operator) ? normalizeValueToDisplay(rule.value, optionLabels) : [], [rule, optionLabels]);
|
|
2646
2798
|
const accessibleName = buildAccessibleName(field, rule, displayedValues);
|
|
@@ -2789,7 +2941,7 @@ const Footer = styled(HStack).attrs({
|
|
|
2789
2941
|
* back through `onChangeOperator` and forwards open/close transitions
|
|
2790
2942
|
* through Radix's controlled props.
|
|
2791
2943
|
*/
|
|
2792
|
-
const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, onClose, trigger, open, onOpenChange, size
|
|
2944
|
+
const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, onClose, trigger, open, onOpenChange, size }) => {
|
|
2793
2945
|
const resolvedSize = useFilterBarSize(size);
|
|
2794
2946
|
const valueless = isValuelessOperator(operator);
|
|
2795
2947
|
const CaretIcon = resolvedSize === "sm" ? CaretDownIcon$1 : CaretDownIcon;
|
|
@@ -2827,15 +2979,14 @@ const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, on
|
|
|
2827
2979
|
return /* @__PURE__ */ jsxs(Popover_default, {
|
|
2828
2980
|
open,
|
|
2829
2981
|
onOpenChange: handleOpenChange,
|
|
2830
|
-
portalProps: portalContainer ? { container: portalContainer } : void 0,
|
|
2831
2982
|
children: [/* @__PURE__ */ jsx(Popover_default.Trigger, {
|
|
2832
2983
|
asChild: true,
|
|
2833
2984
|
children: trigger
|
|
2834
2985
|
}), /* @__PURE__ */ jsx(Popover_default.Card, {
|
|
2835
2986
|
align: "start",
|
|
2836
2987
|
sideOffset: 4,
|
|
2837
|
-
avoidCollisions:
|
|
2838
|
-
zIndex: Z_INDICES.
|
|
2988
|
+
avoidCollisions: true,
|
|
2989
|
+
zIndex: Z_INDICES.floatingBar,
|
|
2839
2990
|
"aria-label": `Edit filter for ${field.label}`,
|
|
2840
2991
|
noPadding: true,
|
|
2841
2992
|
children: /* @__PURE__ */ jsxs(PopoverPanel, {
|
|
@@ -2857,7 +3008,6 @@ const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, on
|
|
|
2857
3008
|
}),
|
|
2858
3009
|
align: "start",
|
|
2859
3010
|
portal: true,
|
|
2860
|
-
portalProps: portalContainer ? { container: portalContainer } : void 0,
|
|
2861
3011
|
zIndex: Z_INDICES.layeredDropdown,
|
|
2862
3012
|
children: operatorOptions.map((op) => /* @__PURE__ */ jsx(DropdownMenu_default.Item, {
|
|
2863
3013
|
size: resolvedSize,
|
|
@@ -2988,7 +3138,8 @@ const OPERATOR_SET = new Set([
|
|
|
2988
3138
|
"is_true",
|
|
2989
3139
|
"is_false",
|
|
2990
3140
|
"before",
|
|
2991
|
-
"after"
|
|
3141
|
+
"after",
|
|
3142
|
+
"between"
|
|
2992
3143
|
]);
|
|
2993
3144
|
/**
|
|
2994
3145
|
* Returns `true` when `value` is a structurally-valid `FilterStateV2`,
|
|
@@ -3037,7 +3188,7 @@ function isFilterRuleValue(value) {
|
|
|
3037
3188
|
}
|
|
3038
3189
|
if (typeof value === "object") {
|
|
3039
3190
|
const record = value;
|
|
3040
|
-
if ("startDate"
|
|
3191
|
+
if (Object.keys(record).every((key) => key === "startDate" || key === "endDate")) {
|
|
3041
3192
|
const { startDate, endDate } = record;
|
|
3042
3193
|
return (startDate == null || typeof startDate === "string") && (endDate == null || typeof endDate === "string");
|
|
3043
3194
|
}
|
|
@@ -3127,6 +3278,7 @@ function isDraftRuleValue(rule, registry) {
|
|
|
3127
3278
|
if (isValuelessOperator(rule.operator)) return false;
|
|
3128
3279
|
const field = registry.get(rule.fieldId);
|
|
3129
3280
|
if (!field) return false;
|
|
3281
|
+
if (isRangeOperator(rule.operator)) return !isCompleteDateRange(rule.value);
|
|
3130
3282
|
switch (field.type) {
|
|
3131
3283
|
case "multi_choices":
|
|
3132
3284
|
case "tags_conditions": return Array.isArray(rule.value) && rule.value.length === 0;
|
|
@@ -3141,18 +3293,14 @@ function isRuleAllowed(rule, registry, options = { allowDraftValues: false }) {
|
|
|
3141
3293
|
if (!registry.operatorsFor(rule.fieldId).includes(rule.operator)) return false;
|
|
3142
3294
|
if (isValuelessOperator(rule.operator)) return rule.value == null;
|
|
3143
3295
|
if (options.allowDraftValues && isDraftRuleValue(rule, registry)) return true;
|
|
3296
|
+
if (isRangeOperator(rule.operator)) return isCompleteDateRange(rule.value);
|
|
3144
3297
|
if (registry.get(rule.fieldId)?.type === "boolean") return typeof rule.value === "boolean";
|
|
3145
3298
|
if (registry.get(rule.fieldId)?.type === "date") return typeof rule.value === "string" && rule.value.length > 0;
|
|
3146
3299
|
if (registry.get(rule.fieldId)?.type === "multi_choices") {
|
|
3147
3300
|
if (Array.isArray(rule.value)) return rule.value.length > 0;
|
|
3148
3301
|
return typeof rule.value === "string" && rule.value.length > 0;
|
|
3149
3302
|
}
|
|
3150
|
-
if (registry.get(rule.fieldId)?.type === "date_range")
|
|
3151
|
-
const value = rule.value;
|
|
3152
|
-
if (value == null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
3153
|
-
const { startDate, endDate } = value;
|
|
3154
|
-
return typeof startDate === "string" && startDate.length > 0 && typeof endDate === "string" && endDate.length > 0;
|
|
3155
|
-
}
|
|
3303
|
+
if (registry.get(rule.fieldId)?.type === "date_range") return isCompleteDateRange(rule.value);
|
|
3156
3304
|
if (registry.get(rule.fieldId)?.type === "tags_conditions") return Array.isArray(rule.value) && rule.value.length > 0;
|
|
3157
3305
|
return rule.value != null && typeof rule.value !== "boolean";
|
|
3158
3306
|
}
|
|
@@ -3171,16 +3319,13 @@ function hasCompleteValue(rule, registry) {
|
|
|
3171
3319
|
if (isValuelessOperator(rule.operator)) return rule.value == null;
|
|
3172
3320
|
const { value } = rule;
|
|
3173
3321
|
if (value == null) return false;
|
|
3322
|
+
if (isRangeOperator(rule.operator)) return isCompleteDateRange(value);
|
|
3174
3323
|
switch (registry.get(rule.fieldId)?.type) {
|
|
3175
3324
|
case "boolean": return typeof value === "boolean";
|
|
3176
3325
|
case "date": return typeof value === "string" && value.length > 0;
|
|
3177
3326
|
case "multi_choices": return Array.isArray(value) ? value.length > 0 : typeof value === "string" && value.length > 0;
|
|
3178
3327
|
case "tags_conditions": return Array.isArray(value) && value.length > 0;
|
|
3179
|
-
case "date_range":
|
|
3180
|
-
if (typeof value !== "object" || Array.isArray(value)) return false;
|
|
3181
|
-
const { startDate, endDate } = value;
|
|
3182
|
-
return typeof startDate === "string" && startDate.length > 0 && typeof endDate === "string" && endDate.length > 0;
|
|
3183
|
-
}
|
|
3328
|
+
case "date_range": return isCompleteDateRange(value);
|
|
3184
3329
|
default:
|
|
3185
3330
|
if (typeof value === "string") return value.length > 0;
|
|
3186
3331
|
if (Array.isArray(value)) return value.length > 0;
|
|
@@ -3495,7 +3640,7 @@ function useStableFieldIds(fieldIds) {
|
|
|
3495
3640
|
if (previous == null || fieldIds == null || previous.length !== fieldIds.length || fieldIds.some((id, index) => previous[index] !== id)) stable.current = fieldIds;
|
|
3496
3641
|
return stable.current;
|
|
3497
3642
|
}
|
|
3498
|
-
function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, singleUseFields = false, size = "md", valueControlResolver
|
|
3643
|
+
function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, singleUseFields = false, size = "md", valueControlResolver }) {
|
|
3499
3644
|
const filterState = useFilterStateV2({
|
|
3500
3645
|
registry,
|
|
3501
3646
|
initialState,
|
|
@@ -3644,7 +3789,7 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
3644
3789
|
filterState.updateTopLevelRule(rule.id, {
|
|
3645
3790
|
...rule,
|
|
3646
3791
|
operator: op,
|
|
3647
|
-
value:
|
|
3792
|
+
value: reconcileValueForOperator(field, op, rule.operator, rule.value)
|
|
3648
3793
|
});
|
|
3649
3794
|
},
|
|
3650
3795
|
valueControlSlot: resolveValueControl({
|
|
@@ -3660,7 +3805,6 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
3660
3805
|
onClose: () => setEditingRuleId(null),
|
|
3661
3806
|
open: isOpen,
|
|
3662
3807
|
onOpenChange: (open) => setEditingRuleId(open ? rule.id : null),
|
|
3663
|
-
portalContainer,
|
|
3664
3808
|
trigger: /* @__PURE__ */ jsx(FilterPill, {
|
|
3665
3809
|
ref: (node) => {
|
|
3666
3810
|
if (node) pillNodesRef.current.set(rule.id, node);
|
|
@@ -3926,6 +4070,6 @@ function normalizeFieldSource(raw) {
|
|
|
3926
4070
|
return raw === "system" ? "system" : "custom";
|
|
3927
4071
|
}
|
|
3928
4072
|
//#endregion
|
|
3929
|
-
export { DataTableCompactBar as S,
|
|
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 };
|
|
3930
4074
|
|
|
3931
|
-
//# sourceMappingURL=TableControls-
|
|
4075
|
+
//# sourceMappingURL=TableControls-3bXyd8gS.mjs.map
|