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