@persona/design-system 0.9.0 → 0.10.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 +59 -0
- package/README.md +1 -1
- package/dist/Accordion.d.mts +1 -1
- package/dist/AccordionItem.d.mts +1 -1
- package/dist/{Action-DcK0fRrq.d.mts → Action-DT8WqfEg.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 +3 -3
- package/dist/{Badge-DLuyKRCQ.mjs → Badge-Bvn3afds.mjs} +2 -2
- package/dist/{Badge-DLuyKRCQ.mjs.map → Badge-Bvn3afds.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-CEHEUe8l.d.mts → Breadcrumb-BDbY1Ffu.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-BQ-Gj6UV.d.mts → Breadcrumbs-C2ThOYJ-.d.mts} +2 -2
- package/dist/{Breadcrumbs-B8aXFPdV.mjs → Breadcrumbs-CQUe9VTM.mjs} +4 -4
- package/dist/{Breadcrumbs-B8aXFPdV.mjs.map → Breadcrumbs-CQUe9VTM.mjs.map} +1 -1
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-DKUomFPj.d.mts → Button-CyjqQa5v.d.mts} +4 -4
- package/dist/Button.d.mts +1 -1
- package/dist/{Calendar-BvsTQ3e1.d.mts → Calendar-DAfQCLOJ.d.mts} +1 -1
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-DMXDx1W7.d.mts → Card-CzRHVUFo.d.mts} +3 -3
- package/dist/Card.d.mts +1 -1
- package/dist/CardGrouping.d.mts +2 -2
- package/dist/{CardV2-JPGFAqui.mjs → CardV2-Dp4eHSE-.mjs} +6 -6
- package/dist/{CardV2-JPGFAqui.mjs.map → CardV2-Dp4eHSE-.mjs.map} +1 -1
- package/dist/{Checkbox-CVa8WOf2.d.mts → Checkbox-B2MZShdu.d.mts} +1 -1
- package/dist/{Checkbox-iSBIpu0l.mjs → Checkbox-BaJ-dGdX.mjs} +7 -3
- package/dist/{Checkbox-iSBIpu0l.mjs.map → Checkbox-BaJ-dGdX.mjs.map} +1 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/{CheckboxGroupField-BMJwuTpJ.d.mts → CheckboxGroupField-BYB4OBlW.d.mts} +3 -3
- package/dist/CheckboxGroupField.d.mts +1 -1
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-BkpRqaxB.mjs → Combobox-CcFJo68g.mjs} +16 -8
- package/dist/Combobox-CcFJo68g.mjs.map +1 -0
- package/dist/{Combobox-C2R9eTPr.d.mts → Combobox-DH5ycYlG.d.mts} +3 -3
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-BghIk4Vk.d.mts → ComboboxBase-BQQSKUBU.d.mts} +6 -6
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-CIOHnhrv.d.mts → ComboboxMultiSelect-Da3Gv1k5.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-C1JZxli3.d.mts → ComboboxSingleSelect-BUDovONU.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-DPJAY1NB.d.mts → CompactBar-D12R7Nm2.d.mts} +3 -3
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-BBIJsQgy.mjs → ConfigFormGroup-CidT_cE9.mjs} +2 -2
- package/dist/{ConfigFormGroup-BBIJsQgy.mjs.map → ConfigFormGroup-CidT_cE9.mjs.map} +1 -1
- package/dist/{ControlBar-Cg36sjz3.d.mts → ControlBar-D9KflqmH.d.mts} +22 -9
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable-95ZxiPlV.mjs +1547 -0
- package/dist/DataTable-95ZxiPlV.mjs.map +1 -0
- package/dist/DataTable-fZ7SNbIH.d.mts +439 -0
- package/dist/DataTable.d.mts +2 -396
- package/dist/{DateField-BXUuqbnb.d.mts → DateField-DLz13Ksl.d.mts} +2 -2
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-CjuR6ORz.mjs → DatePicker-D0cvVbzq.mjs} +369 -369
- package/dist/DatePicker-D0cvVbzq.mjs.map +1 -0
- package/dist/{DatePicker-Cmn1vViU.d.mts → DatePicker-DYVWmbrb.d.mts} +2 -2
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-CKhp9Obv.d.mts → DateRangePicker-Be8TYtjz.d.mts} +3 -3
- package/dist/DateRangePicker.d.mts +1 -1
- package/dist/DateRangeValueControl.d.mts +2 -2
- package/dist/DateValueControl.d.mts +1 -1
- package/dist/{DropdownButton-CRJDAGjJ.mjs → DropdownButton-5oNcpsOq.mjs} +3 -3
- package/dist/{DropdownButton-CRJDAGjJ.mjs.map → DropdownButton-5oNcpsOq.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-C2BHv8Lc.mjs → DropdownMenu-CedsmO5h.mjs} +2 -2
- package/dist/{DropdownMenu-C2BHv8Lc.mjs.map → DropdownMenu-CedsmO5h.mjs.map} +1 -1
- package/dist/{DropdownMenu-CNkQDiJr.d.mts → DropdownMenu-DAa2kNrt.d.mts} +2 -2
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-oCHtJzEB.d.mts → ErrorProps-DH0fzeGf.d.mts} +1 -1
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-B7P4wC7y.d.mts → FieldRegistry-d5tGpSch.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-clWmrKkT.d.mts → FilterBar-Bh18VyOK.d.mts} +4 -4
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +2 -2
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +1 -1
- package/dist/FloatValueControl.d.mts +5 -4
- package/dist/FloatingActionBar-CpvLefPm.d.mts +41 -0
- package/dist/FloatingActionBar.d.mts +2 -41
- package/dist/{FormControl-jfjKwUfK.mjs → FormControl-C4CiA0H-.mjs} +3 -3
- package/dist/{FormControl-jfjKwUfK.mjs.map → FormControl-C4CiA0H-.mjs.map} +1 -1
- package/dist/{FormControl-C44o35FL.d.mts → FormControl-DEG_0oXt.d.mts} +2 -2
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +1 -1
- package/dist/{FormField-C3nUzhGT.mjs → FormField-cSG93kuo.mjs} +15 -15
- package/dist/{FormField-C3nUzhGT.mjs.map → FormField-cSG93kuo.mjs.map} +1 -1
- package/dist/{FormField-CXznMtuS.d.mts → FormField-mLbXDJ9B.d.mts} +2 -2
- package/dist/FormField.d.mts +1 -1
- package/dist/{Grid-D0mlxk8_.mjs → Grid-DXVkhyNQ.mjs} +1 -1
- package/dist/{Grid-D0mlxk8_.mjs.map → Grid-DXVkhyNQ.mjs.map} +1 -1
- package/dist/{Header-DvpIsOUN.d.mts → Header-ayDu4VWE.d.mts} +1 -1
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-C4tgbLYw.d.mts → HelperTooltip-BB9Vznnx.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/HighlightedText.d.mts +2 -2
- package/dist/{HoverCopyableField-1_LHm80n.mjs → HoverCopyableField-D-BubaRd.mjs} +2 -2
- package/dist/{HoverCopyableField-1_LHm80n.mjs.map → HoverCopyableField-D-BubaRd.mjs.map} +1 -1
- package/dist/{I18nContext-DlvagRAO.d.mts → I18nContext-TXS9M8t5.d.mts} +2 -2
- package/dist/I18nContext.d.mts +1 -1
- package/dist/{IconButton-Bt3WyiGq.d.mts → IconButton-Bigvu1Q4.d.mts} +2 -2
- package/dist/{IconButton-Cqxfmrea.mjs → IconButton-HWx5Hlmi.mjs} +8 -5
- package/dist/{IconButton-Cqxfmrea.mjs.map → IconButton-HWx5Hlmi.mjs.map} +1 -1
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +4 -3
- package/dist/IndexTableLayout.d.mts +45 -0
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-CAsOWM0S.d.mts → Input-Bg4bi6VZ.d.mts} +3 -3
- package/dist/{Input-Cg2HxteL.mjs → Input-Dap055xf.mjs} +3 -3
- package/dist/{Input-Cg2HxteL.mjs.map → Input-Dap055xf.mjs.map} +1 -1
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-BU9iiBBz.d.mts → InputProps-Bl-G826g.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/Inserter-BKVrJ4M5.d.mts +12 -0
- package/dist/Inserter.d.mts +2 -12
- package/dist/IntegerValueControl.d.mts +5 -4
- package/dist/Link.d.mts +1 -1
- package/dist/{ListBox--IH6uofo.d.mts → ListBox-Bj5c626-.d.mts} +3 -3
- package/dist/{ListBox-CjNokYs6.mjs → ListBox-C80J7DCG.mjs} +7 -7
- package/dist/{ListBox-CjNokYs6.mjs.map → ListBox-C80J7DCG.mjs.map} +1 -1
- package/dist/ListBox.d.mts +1 -1
- package/dist/{ListBoxField-BUKop1Ca.d.mts → ListBoxField-DsJRabgE.d.mts} +4 -4
- package/dist/ListBoxField.d.mts +1 -1
- package/dist/{LoadingShimmer-C73hJqaW.mjs → LoadingShimmer-Bqjdut7i.mjs} +1 -1
- package/dist/{LoadingShimmer-C73hJqaW.mjs.map → LoadingShimmer-Bqjdut7i.mjs.map} +1 -1
- package/dist/LoadingShimmer.d.mts +1 -1
- package/dist/{LogicRow-C8Hdl8xB.d.mts → LogicRow-CcpD-Kk3.d.mts} +3 -3
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/{Menu-BSHJpKyL.d.mts → Menu-C0FU9WEF.d.mts} +2 -2
- package/dist/{Menu-CwKmfxKI.mjs → Menu-Dw6Rcpk6.mjs} +1 -1
- package/dist/{Menu-CwKmfxKI.mjs.map → Menu-Dw6Rcpk6.mjs.map} +1 -1
- package/dist/Menu.d.mts +1 -1
- package/dist/{Modal-CoUHxtgN.d.mts → Modal-BuxggahW.d.mts} +6 -2
- package/dist/{Modal-BBIJVhv2.mjs → Modal-kjUptzg1.mjs} +7 -5
- package/dist/Modal-kjUptzg1.mjs.map +1 -0
- package/dist/Modal.d.mts +1 -1
- package/dist/PageHeader-Czj42pyK.d.mts +40 -0
- package/dist/{PageHeader-5GyfuGLe.mjs → PageHeader-DJF7nxgN.mjs} +2 -2
- package/dist/{PageHeader-5GyfuGLe.mjs.map → PageHeader-DJF7nxgN.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +2 -40
- package/dist/{PageLayout-C7hDmoy_.d.mts → PageLayout-TBemv7oL.d.mts} +1 -1
- package/dist/{PageLayout-C7ZC7GBA.mjs → PageLayout-fXJW7daI.mjs} +2 -2
- package/dist/{PageLayout-C7ZC7GBA.mjs.map → PageLayout-fXJW7daI.mjs.map} +1 -1
- package/dist/PageLayout.d.mts +1 -1
- package/dist/{PageLayoutFrame--HlvI4Pp.d.mts → PageLayoutFrame-DzwlkNZ1.d.mts} +1 -1
- package/dist/PageLayoutFrame.d.mts +1 -1
- package/dist/{PageSelector-CrUb586l.d.mts → PageSelector-DXCeBUoU.d.mts} +3 -3
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-C67fsrxl.d.mts → Pagination-COcFWlha.d.mts} +2 -2
- package/dist/{Pagination-c4YBCy5d.mjs → Pagination-DtK-jbEY.mjs} +5 -5
- package/dist/{Pagination-c4YBCy5d.mjs.map → Pagination-DtK-jbEY.mjs.map} +1 -1
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-oW_2TUUc.mjs → Pii-DueIK287.mjs} +2 -2
- package/dist/{Pii-oW_2TUUc.mjs.map → Pii-DueIK287.mjs.map} +1 -1
- package/dist/{PillShell-BkYHghx0.d.mts → PillShell-CXROf8gO.d.mts} +2 -2
- package/dist/PillShell.d.mts +1 -1
- package/dist/{ProgressIndicator-CdhC2LVI.d.mts → ProgressIndicator-C5sbFQcd.d.mts} +1 -1
- package/dist/{ProgressIndicator-STyTM0Hq.mjs → ProgressIndicator-CM37EU1B.mjs} +1 -1
- package/dist/{ProgressIndicator-STyTM0Hq.mjs.map → ProgressIndicator-CM37EU1B.mjs.map} +1 -1
- package/dist/ProgressIndicator.d.mts +1 -1
- package/dist/{PseudoClassProps-CverE9Ni.d.mts → PseudoClassProps-BFFh2-u8.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-CHme6WTz.mjs → Radio-DDT_l8rd.mjs} +2 -2
- package/dist/{Radio-CHme6WTz.mjs.map → Radio-DDT_l8rd.mjs.map} +1 -1
- package/dist/{RadioGroup-CDEfCg-b.d.mts → RadioGroup-BxEmipHa.d.mts} +1 -1
- package/dist/{RadioGroup-DOLRqHIZ.mjs → RadioGroup-CmD8NFCL.mjs} +2 -2
- package/dist/{RadioGroup-DOLRqHIZ.mjs.map → RadioGroup-CmD8NFCL.mjs.map} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/{RangeCalendar-BOt59kTG.d.mts → RangeCalendar-cZSYjuOZ.d.mts} +2 -2
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +1 -1
- package/dist/{RouterContext-D7HBESqO.d.mts → RouterContext-CoDbEb_X.d.mts} +2 -2
- package/dist/RouterContext.d.mts +1 -1
- package/dist/{RouterLink-dppNWLgP.d.mts → RouterLink-BnIEi8d4.d.mts} +2 -2
- package/dist/RouterLink.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +2 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SearchInput-B7JYHJZI.d.mts → SearchInput-DLC7-A7K.d.mts} +2 -2
- package/dist/SearchInput.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-d9tHqWce.mjs → SegmentedControl-CcKPfxBR.mjs} +2 -2
- package/dist/{SegmentedControl-d9tHqWce.mjs.map → SegmentedControl-CcKPfxBR.mjs.map} +1 -1
- package/dist/{SegmentedControl-C_7mTcuL.d.mts → SegmentedControl-xjU-2IsJ.d.mts} +1 -1
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-Da6UZicF.mjs → Select-BJ9ACmRD.mjs} +5 -5
- package/dist/{Select-Da6UZicF.mjs.map → Select-BJ9ACmRD.mjs.map} +1 -1
- package/dist/{Select-Ek-A2Cpo.d.mts → Select-sBEBrNgo.d.mts} +3 -3
- package/dist/Select.d.mts +1 -1
- package/dist/{SingleColumnLayout-ByWxiD7d.d.mts → SingleColumnLayout-CBynMc76.d.mts} +2 -2
- package/dist/SingleColumnLayout.d.mts +1 -1
- package/dist/SmartTextInput.d.mts +6 -6
- package/dist/SmartTextInputField.d.mts +2 -2
- package/dist/SmartTextInputFunctionDialog.d.mts +4 -4
- package/dist/SmartTextInputListbox.d.mts +2 -2
- package/dist/SmartTextInputPopover.d.mts +1 -1
- package/dist/{Spinner-C4UyK9If.mjs → Spinner-uVZyOh1T.mjs} +1 -1
- package/dist/{Spinner-C4UyK9If.mjs.map → Spinner-uVZyOh1T.mjs.map} +1 -1
- package/dist/{SplitColumnLayout-DYyJabQ3.d.mts → SplitColumnLayout-BVzGbEDC.d.mts} +2 -2
- package/dist/SplitColumnLayout.d.mts +1 -1
- package/dist/{Stack-D0Dt776K.d.mts → Stack-BZyboHQl.d.mts} +1 -1
- package/dist/Stack.d.mts +1 -1
- package/dist/{StatusIndicator-akDwBiBW.mjs → StatusIndicator-Bunn9YLV.mjs} +1 -1
- package/dist/{StatusIndicator-akDwBiBW.mjs.map → StatusIndicator-Bunn9YLV.mjs.map} +1 -1
- package/dist/{Sticker-Cit5EKiU.d.mts → Sticker-CsUSNIH-.d.mts} +4 -4
- package/dist/{Sticker-_vmpUMfk.mjs → Sticker-yhxtIYH8.mjs} +2 -2
- package/dist/{Sticker-_vmpUMfk.mjs.map → Sticker-yhxtIYH8.mjs.map} +1 -1
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/Tab.d.mts +1 -1
- package/dist/{TabBar-CmYqreN0.mjs → TabBar-SX8E9-Bk.mjs} +3 -3
- package/dist/{TabBar-CmYqreN0.mjs.map → TabBar-SX8E9-Bk.mjs.map} +1 -1
- package/dist/{Table-CV8nogHu.mjs → Table--o4ZLRbb.mjs} +2 -2
- package/dist/{Table-CV8nogHu.mjs.map → Table--o4ZLRbb.mjs.map} +1 -1
- package/dist/{Table-BtNYI6QX.d.mts → Table-CadXF71E.d.mts} +1 -1
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-DQ7pivxP.d.mts → TableBody-BKSHNSTo.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-vCTkOPlC.mjs → TableBox-3qunC9Nl.mjs} +7 -7
- package/dist/{TableBox-vCTkOPlC.mjs.map → TableBox-3qunC9Nl.mjs.map} +1 -1
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-BkJ587Lf.d.mts → TableBoxCell-BRECnVTs.d.mts} +6 -6
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/{TableBoxField-Dj9Cx9NP.d.mts → TableBoxField-Lm_tn73M.d.mts} +5 -5
- package/dist/TableBoxField.d.mts +1 -1
- package/dist/{TableBoxRow-CpR9Cti1.d.mts → TableBoxRow-BS8Dc-zw.d.mts} +3 -3
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-Bj-LZaI7.d.mts → TableBoxRowActions-oLMb8XcM.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{TableCell-DOjW6ADs.d.mts → TableCell-4u5_BgTC.d.mts} +2 -2
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-BtKBTGYR.mjs → TableControls-DxSFqRwJ.mjs} +693 -133
- package/dist/TableControls-DxSFqRwJ.mjs.map +1 -0
- package/dist/{TableControls-Cw7LDHWj.d.mts → TableControls-UfObf-ZN.d.mts} +14 -7
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-DgoZhMpQ.d.mts → TableControlsContext-Bhtb0cMs.d.mts} +4 -4
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-BGUg_aXc.d.mts → TableHead-BuCQeDAq.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-DcZcMQyR.d.mts → TableHeaderCell-DIcQlZps.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-CwYQaZlA.d.mts → TableLayout-ScEVdvvA.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-Dad6_CoD.d.mts → TableRow-lCsvG0a-.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-BGuWAarQ.d.mts → TableViewConfigurationDropdown-BDXe2Q1Y.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-BhUxOU-L.mjs → TechnicalSticker-CALVwnrT.mjs} +1 -1
- package/dist/{TechnicalSticker-BhUxOU-L.mjs.map → TechnicalSticker-CALVwnrT.mjs.map} +1 -1
- package/dist/{Text-CUhW_agW.d.mts → Text-RSzei6Se.d.mts} +3 -3
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-J_EscGvm.mjs → TextArea-CFf0Lspu.mjs} +2 -2
- package/dist/{TextArea-J_EscGvm.mjs.map → TextArea-CFf0Lspu.mjs.map} +1 -1
- package/dist/{TextArea-Djd1uT3B.d.mts → TextArea-DFn4XuG-.d.mts} +2 -2
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-DCVONTD0.d.mts → TextUnderlineTooltip-B0iYaPM1.d.mts} +2 -2
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +1 -1
- package/dist/Toast.d.mts +1 -1
- package/dist/{Toggle-BEOoATjS.mjs → Toggle-BLdemkh_.mjs} +2 -2
- package/dist/{Toggle-BEOoATjS.mjs.map → Toggle-BLdemkh_.mjs.map} +1 -1
- package/dist/{Toggle-EYpW34LO.d.mts → Toggle-xtPgGaGD.d.mts} +1 -1
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-DLK9Q2Rg.d.mts → Tooltip-Blfhi2gT.d.mts} +2 -2
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-B_u70y6w.d.mts → TruncatedText-BMQmveJG.d.mts} +1 -1
- package/dist/VersionHistory.d.mts +1 -1
- package/dist/{VersionHistoryItem-iUabmk_y.d.mts → VersionHistoryItem-BExp7oSr.d.mts} +1 -1
- package/dist/VersionHistoryItem.d.mts +1 -1
- package/dist/WizardModal.d.mts +2 -2
- package/dist/{accordionTitleTypography-C7VVJvlx.d.mts → accordionTitleTypography-PMKnfoy0.d.mts} +2 -2
- package/dist/accordionTitleTypography.d.mts +1 -1
- package/dist/{chainTypes-DT-9j_sG.d.mts → chainTypes-BbFZn8a9.d.mts} +4 -4
- package/dist/clientFilterUtils-c5xzvoBj.d.mts +20 -0
- package/dist/clientFilterUtils.d.mts +2 -0
- package/dist/{codec-CGj8cwcj.d.mts → codec-DIp7dhcN.d.mts} +2 -2
- package/dist/codec.d.mts +1 -1
- package/dist/{color-BOm5A1Si.d.mts → color-C5B1pN1D.d.mts} +2 -2
- package/dist/components/Accordion/index.d.mts +1 -1
- package/dist/components/Attribute/index.mjs +2 -2
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +1 -1
- package/dist/components/BottomPanel/index.mjs +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 +2 -2
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/CardV2/index.d.mts +1 -1
- package/dist/components/CardV2/index.mjs +1 -1
- package/dist/components/Checkbox/index.d.mts +1 -1
- package/dist/components/Checkbox/index.mjs +1 -1
- package/dist/components/CodeHighlight/index.mjs +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 +22 -20
- package/dist/components/DataTable/TableControls/index.mjs +2 -2
- package/dist/components/DataTable/index.d.mts +9 -8
- package/dist/components/DataTable/index.mjs +2 -1474
- package/dist/components/DataTable/types.d.mts +2 -166
- 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 +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 +5 -5
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/Grid/index.mjs +1 -1
- package/dist/components/HoverCopyableField/index.mjs +1 -1
- package/dist/components/ImageTile/index.mjs +28 -15
- package/dist/components/ImageTile/index.mjs.map +1 -1
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/ListBox/index.d.mts +3 -3
- package/dist/components/ListBox/index.mjs +1 -1
- package/dist/components/LoadingShimmer/index.mjs +1 -1
- package/dist/components/MaskedInput/index.mjs +1 -1
- package/dist/components/Menu/index.d.mts +1 -1
- package/dist/components/Menu/index.mjs +1 -1
- package/dist/components/Modal/index.d.mts +1 -1
- package/dist/components/Modal/index.mjs +1 -1
- package/dist/components/PageHeader/index.d.mts +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/ProgressIndicator/index.d.mts +1 -1
- package/dist/components/ProgressIndicator/index.mjs +1 -1
- package/dist/components/Radio/index.mjs +1 -1
- package/dist/components/RadioGroup/index.d.mts +1 -1
- package/dist/components/RadioGroup/index.mjs +1 -1
- package/dist/components/RightPanel/index.mjs +2 -2
- 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/SmartTextInput/index.d.mts +2 -2
- package/dist/components/SmartTextInput/index.mjs +7 -6
- package/dist/components/SmartTextInput/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/parser/method-chain/types.d.mts +1 -1
- package/dist/components/SmartTextInput/parser/smart-text/types.d.mts +2 -2
- package/dist/components/Spinner/index.mjs +1 -1
- package/dist/components/Stack/index.d.mts +1 -1
- package/dist/components/StatusIndicator/index.mjs +1 -1
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/TabBar/index.mjs +1 -1
- package/dist/components/Table/index.d.mts +8 -8
- package/dist/components/Table/index.mjs +1 -1
- package/dist/components/TableBox/index.d.mts +2 -2
- package/dist/components/TableBox/index.mjs +1 -1
- package/dist/components/TechnicalSticker/index.mjs +1 -1
- package/dist/components/Text/index.d.mts +1 -1
- package/dist/components/TextArea/index.d.mts +1 -1
- package/dist/components/TextArea/index.mjs +1 -1
- package/dist/components/Tile/index.mjs +1 -1
- package/dist/components/Toast/index.mjs +1 -1
- package/dist/components/Toggle/index.d.mts +1 -1
- package/dist/components/Toggle/index.mjs +1 -1
- package/dist/components/Tooltip/index.d.mts +3 -3
- package/dist/components/VersionHistory/index.d.mts +1 -1
- package/dist/components/VersionHistory/index.mjs +6 -6
- package/dist/compound-expression.d.mts +1 -1
- package/dist/{constants-CwzbyAdc.d.mts → constants-4rSh8e5G.d.mts} +1 -1
- package/dist/constants-BaMvTUbS.d.mts +10 -0
- package/dist/constants.d.mts +1 -1
- package/dist/constants2.d.mts +2 -10
- package/dist/{createPath-C4jIHe68.d.mts → createPath-B_CLq82C.d.mts} +2 -2
- package/dist/createPath.d.mts +1 -1
- package/dist/{date-filter-B8PKh5vg.mjs → date-filter-D0ys8s0D.mjs} +1 -1
- package/dist/{date-filter-B8PKh5vg.mjs.map → date-filter-D0ys8s0D.mjs.map} +1 -1
- package/dist/{date-range-rule-value-BTlHwhVf.d.mts → date-range-rule-value-D01nn054.d.mts} +2 -2
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/{date-rule-intent-zdKP-tW_.d.mts → date-rule-intent-B4hQ_APa.d.mts} +3 -3
- package/dist/date-rule-intent.d.mts +1 -1
- package/dist/display.d.mts +2 -2
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-D3ZSzFKe.d.mts → filter-size-context-Dj7Idc8j.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/filters-DDrsgRYy.d.mts +22 -0
- package/dist/filters.d.mts +2 -0
- package/dist/{formatDateTime-zyRMjfH8.d.mts → formatDateTime-Dd9inM5H.d.mts} +1 -1
- package/dist/formatDateTime.d.mts +1 -1
- package/dist/helpers-D8_2I4ZX.d.mts +90 -0
- package/dist/helpers.d.mts +2 -90
- package/dist/{i18n-DeJa-arS.mjs → i18n-BscB9FUy.mjs} +18 -3
- package/dist/i18n-BscB9FUy.mjs.map +1 -0
- package/dist/{index-B13LwAGD.d.mts → index-DkXly4xw.d.mts} +2 -2
- package/dist/{index-DHmZDtDG.d.mts → index-DsjvDLF8.d.mts} +3 -3
- package/dist/{index-B7KIL3U6.d.mts → index-EGvEhP1j.d.mts} +2 -2
- package/dist/index-K614ZhWK.d.mts +1 -0
- package/dist/index-NKYLt_R9.d.mts +1 -0
- package/dist/index-VWno75SQ.d.mts +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index2.d.mts +1 -1
- package/dist/index3.d.mts +3 -3
- package/dist/index4.d.mts +1 -1
- package/dist/index5.d.mts +15 -15
- package/dist/{input-DMPo8gRT.d.mts → input-CKhARTlS.d.mts} +3 -3
- package/dist/{inputFields-DHdFgzS2.d.mts → inputFields-DyOZHse2.d.mts} +11 -11
- package/dist/inputFields.d.mts +1 -1
- package/dist/{intersperse-DWUGtKug.mjs → intersperse-ObkRVOag.mjs} +1 -1
- package/dist/{intersperse-DWUGtKug.mjs.map → intersperse-ObkRVOag.mjs.map} +1 -1
- package/dist/{jsonSchema-6mcLrVG3.d.mts → jsonSchema-COo0XQLA.d.mts} +1 -1
- package/dist/lib/PDSProvider.d.mts +3 -3
- package/dist/lib/PDSProvider.mjs +1 -1
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/chainTypes.d.mts +1 -1
- package/dist/lib/color.d.mts +1 -1
- package/dist/lib/customFunctionSchema.d.mts +1 -1
- package/dist/lib/date-filter/index.d.mts +2 -2
- package/dist/lib/date-filter/index.mjs +1 -1
- package/dist/lib/i18n/index.d.mts +3 -3
- package/dist/lib/i18n/index.mjs +1 -1
- package/dist/lib/jsonSchema.d.mts +1 -1
- package/dist/lib/jsonSchemaType.d.mts +1 -1
- package/dist/lib/message.d.mts +1 -1
- package/dist/lib/methodChain.d.mts +2 -2
- package/dist/lib/methodChainNormalize.d.mts +2 -2
- package/dist/lib/methodChainTypes.d.mts +1 -1
- package/dist/lib/objectSchemaTypes.d.mts +1 -1
- package/dist/lib/platformObject.d.mts +1 -1
- package/dist/lib/pseudoClass.d.mts +1 -1
- package/dist/lib/router/adapters/reactRouter.d.mts +1 -1
- package/dist/lib/router/adapters/tanstack.d.mts +1 -1
- package/dist/lib/router/index.d.mts +5 -5
- package/dist/lib/schemaOptions.d.mts +1 -1
- package/dist/lib/semanticColor.d.mts +1 -1
- package/dist/lib/useChain.d.mts +1 -1
- package/dist/{listbox-options-yLjqZp4H.d.mts → listbox-options-D-DyLUdi.d.mts} +3 -3
- package/dist/listbox-options.d.mts +1 -1
- package/dist/{message-C5n7wFiN.d.mts → message-Dti22dmx.d.mts} +1 -1
- package/dist/{methodChain-BNDytoaD.d.mts → methodChain-BAUFBbR9.d.mts} +4 -4
- package/dist/{methodChainTypes-BuwpPC73.d.mts → methodChainTypes-a7kHYhs7.d.mts} +2 -2
- package/dist/mixins/focus.d.mts +1 -1
- package/dist/mixins/hoverable.d.mts +2 -2
- package/dist/mixins/input.d.mts +1 -1
- package/dist/mixins/menuItem.d.mts +2 -2
- package/dist/mixins/scrollbar.d.mts +1 -1
- package/dist/mixins/text.d.mts +1 -1
- package/dist/{operators-B12UYEsV.d.mts → operators-DjQXVNVI.d.mts} +33 -5
- package/dist/operators.d.mts +2 -2
- package/dist/{palette-BCszfY7I.d.mts → palette-Bp5G-S_5.d.mts} +3 -3
- package/dist/palette.d.mts +1 -1
- package/dist/patterns/CardGrouping/index.mjs +4 -4
- package/dist/patterns/IndexTableLayout/index.d.mts +3 -0
- package/dist/patterns/IndexTableLayout/index.mjs +87 -0
- package/dist/patterns/IndexTableLayout/index.mjs.map +1 -0
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +4 -4
- package/dist/patterns/PageLayout/index.d.mts +4 -4
- package/dist/patterns/PageLayout/index.mjs +1 -1
- package/dist/patterns/WizardModal/index.mjs +3 -3
- package/dist/reactRouterFallback.d.mts +1 -1
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/safe-parse.d.mts +1 -1
- package/dist/{schemaOptions-DBOUChxi.d.mts → schemaOptions-D536qhSd.d.mts} +3 -3
- package/dist/{semantic-Duoh2Pxp.d.mts → semantic-DjKvtUi8.d.mts} +1 -1
- package/dist/{semanticColor-BuG977_M.d.mts → semanticColor-CmGmGRj8.d.mts} +3 -3
- package/dist/{strings-DQ3vxBj8.d.mts → strings-FWNWdSn1.d.mts} +18 -2
- package/dist/strings.d.mts +1 -1
- package/dist/{text-B7hx6G99.d.mts → text-BNfECpa5.d.mts} +1 -1
- package/dist/{theme-BKg55Zk1.d.mts → theme-VNhXxAF3.d.mts} +3 -3
- package/dist/theme.d.mts +1 -1
- package/dist/tone.d.mts +3 -3
- package/dist/tree.d.mts +1 -1
- package/dist/{types-CM8L7-ij.d.mts → types-BMpEizJP.d.mts} +6 -2
- package/dist/{types-eemD0jxb.d.mts → types-BhHdS6QP.d.mts} +2 -2
- package/dist/{types-6QeQmbFm.d.mts → types-CFe4tA8Q.d.mts} +1 -1
- package/dist/types-CjQzH0MM.d.mts +180 -0
- package/dist/{types-CEQWndtF.d.mts → types-DFU6M0OL.d.mts} +4 -4
- package/dist/{types-BjMJFNYH.d.mts → types-DHTFd-5t.d.mts} +1 -1
- package/dist/{types-VgGkS4JB.d.mts → types-DfpVVjso.d.mts} +2 -2
- package/dist/types-Dx8PgO8a.d.mts +95 -0
- package/dist/{types-CgKSEQyB.d.mts → types-HxiGiwQN.d.mts} +1 -1
- package/dist/{types-4wnr5R9P.d.mts → types-Kmnood9Y.d.mts} +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types2.d.mts +2 -2
- package/dist/types3.d.mts +1 -1
- package/dist/types4.d.mts +2 -2
- package/dist/types5.d.mts +2 -2
- package/dist/types6.d.mts +2 -2
- package/dist/types7.d.mts +1 -1
- package/dist/{url-state-BW1mN6WQ.d.mts → url-state-D1muieS7.d.mts} +2 -2
- package/dist/url-state.d.mts +1 -1
- package/dist/{useChain-BreIP4fW.d.mts → useChain-D5LvupTW.d.mts} +6 -6
- package/dist/useChainAtCursor.d.mts +6 -6
- package/dist/useCodeChainFunctionPanel.d.mts +1 -1
- package/dist/useColumnConfiguration.d.mts +34 -0
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-B8VebPBe.d.mts → useFilterStateV2-MH3zbQFr.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-DAwApAKK.d.mts → useFormField-Ba8rh1CH.d.mts} +2 -2
- package/dist/{useFormField-J0LiPcpm.mjs → useFormField-CbNYbDdp.mjs} +2 -2
- package/dist/{useFormField-J0LiPcpm.mjs.map → useFormField-CbNYbDdp.mjs.map} +1 -1
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-CALbrUkl.mjs → useFormGroup-CsKC93Pt.mjs} +1 -1
- package/dist/{useFormGroup-CALbrUkl.mjs.map → useFormGroup-CsKC93Pt.mjs.map} +1 -1
- package/dist/{useLocationPathname-BHL0pgiu.d.mts → useLocationPathname-OsvI7mH5.d.mts} +1 -1
- package/dist/useLocationPathname.d.mts +1 -1
- package/dist/{useTableBoxDragAndDrop-Dq30b6yY.d.mts → useTableBoxDragAndDrop-CKPIY98e.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/useTableColumns-rLskKJhd.d.mts +72 -0
- package/dist/useTableColumns.d.mts +2 -72
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-B2ry7_20.d.mts → utilities-BrEUGFGq.d.mts} +1 -1
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/testing.d.mts +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils4.d.mts +5 -5
- package/dist/{validation-ZHnFPRP6.d.mts → validation-Csi2SJxm.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/validation2.d.mts +4 -4
- package/dist/{value-control-resolver-D3qzy8Kk.d.mts → value-control-resolver-BoBFvQ_0.d.mts} +2 -2
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/variables/effect.d.mts +1 -1
- package/dist/variables/semantic.d.mts +1 -1
- package/llms.txt +6 -2
- package/package.json +5 -3
- package/skills/ui-authoring/COMPONENTS.md +1 -0
- package/skills/ui-authoring/PATTERNS.md +4 -2
- package/skills/ui-authoring/SKILL.md +9 -2
- package/skills/ui-authoring/TOKENS.md +457 -119
- package/dist/Combobox-BkpRqaxB.mjs.map +0 -1
- package/dist/DatePicker-CjuR6ORz.mjs.map +0 -1
- package/dist/Modal-BBIJVhv2.mjs.map +0 -1
- package/dist/TableControls-BtKBTGYR.mjs.map +0 -1
- package/dist/components/DataTable/index.mjs.map +0 -1
- package/dist/i18n-DeJa-arS.mjs.map +0 -1
- package/dist/types-CwzwClJx.d.mts +0 -27
- /package/dist/{index-7in8TPrM.d.mts → index-AnhM47-e2.d.mts} +0 -0
- /package/dist/{index-8SLBz2NH.d.mts → index-B33elXxm.d.mts} +0 -0
- /package/dist/{index-B24gUwOx.d.mts → index-B4woaFSm.d.mts} +0 -0
- /package/dist/{index-B8M0Grl_2.d.mts → index-B6T7ov8p.d.mts} +0 -0
- /package/dist/{index-BFnNtGdX.d.mts → index-BNRXMhlr.d.mts} +0 -0
- /package/dist/{index-BjgW3E7y.d.mts → index-BOaE2xDE.d.mts} +0 -0
- /package/dist/{index-BwFl_eS0.d.mts → index-BPiqSRRl.d.mts} +0 -0
- /package/dist/{index-C3kE54DD.d.mts → index-BYd3Btr1.d.mts} +0 -0
- /package/dist/{index-C3usUse7.d.mts → index-BcsXXrHq.d.mts} +0 -0
- /package/dist/{index-C6HcjJiY.d.mts → index-Bo9LXG4r.d.mts} +0 -0
- /package/dist/{index-CP2eJYlK.d.mts → index-BrGZHEgX.d.mts} +0 -0
- /package/dist/{index-CSf15oCd.d.mts → index-Bt4QNofW.d.mts} +0 -0
- /package/dist/{index-CX869wwk.d.mts → index-CFuHCx9T.d.mts} +0 -0
- /package/dist/{index-CXaDbCtw.d.mts → index-CLTQPxoD.d.mts} +0 -0
- /package/dist/{index-D4DUvwPf.d.mts → index-CaqYCRmZ.d.mts} +0 -0
- /package/dist/{index-DB7t8whN.d.mts → index-CjDodOH2.d.mts} +0 -0
- /package/dist/{index-Deol7ZWO.d.mts → index-CjmAoxrR2.d.mts} +0 -0
- /package/dist/{index-DhiymMxa.d.mts → index-Cx0vQ6ld.d.mts} +0 -0
- /package/dist/{index-DjOaHFU3.d.mts → index-CzItj62a.d.mts} +0 -0
- /package/dist/{index-DkrC-i1D.d.mts → index-CzUpNo0e.d.mts} +0 -0
- /package/dist/{index-DvwPIy8X.d.mts → index-DBGd4WeR.d.mts} +0 -0
- /package/dist/{index-Oio5ygqN.d.mts → index-DMRtRo7y.d.mts} +0 -0
- /package/dist/{index-Wc1llEvP.d.mts → index-DNjQe1D8.d.mts} +0 -0
- /package/dist/{index-bHnO4ZKt.d.mts → index-DW3xeuzq.d.mts} +0 -0
- /package/dist/{index-dzI_9J-Z.d.mts → index-DZlqSwCF.d.mts} +0 -0
- /package/dist/{index-gpCH5158.d.mts → index-De7MV8-j.d.mts} +0 -0
- /package/dist/{index-lIMqGGJz.d.mts → index-DjG1RCY5.d.mts} +0 -0
- /package/dist/{index-luywJTzJ.d.mts → index-Dlcv6Ku22.d.mts} +0 -0
- /package/dist/{index-sViox9YW.d.mts → index-DrK1_jKY.d.mts} +0 -0
- /package/dist/{index-xAZnxq0d2.d.mts → index-IJ_PXwxI2.d.mts} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { a as styled, n as createGlobalStyle, r as css } from "./styledComponentsInterop-NxwFjeA4.mjs";
|
|
2
|
-
import { c as usePDSLocale, i as formatDateTime, l as usePDSStrings, u as DEFAULT_COMMON_STRINGS } from "./i18n-
|
|
2
|
+
import { c as usePDSLocale, i as formatDateTime, l as usePDSStrings, u as DEFAULT_COMMON_STRINGS } from "./i18n-BscB9FUy.mjs";
|
|
3
3
|
import { TruncatedText } from "./lib/TruncatedText.mjs";
|
|
4
4
|
import { semanticColor, semanticOnly, semanticTokens } from "./lib/semanticColor.mjs";
|
|
5
5
|
import { paragraphMixins } from "./mixins/text.mjs";
|
|
@@ -17,20 +17,21 @@ import { Z_INDICES } from "./lib/zindex.mjs";
|
|
|
17
17
|
import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
|
|
18
18
|
import { semanticScrollbar } from "./mixins/scrollbar.mjs";
|
|
19
19
|
import { n as Stack, t as HStack } from "./Stack-BkC7FCdF.mjs";
|
|
20
|
-
import {
|
|
21
|
-
import { n as
|
|
22
|
-
import {
|
|
23
|
-
import { r as InputGroup } from "./Input-Cg2HxteL.mjs";
|
|
20
|
+
import { n as Button, t as IconButton } from "./IconButton-HWx5Hlmi.mjs";
|
|
21
|
+
import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-SX8E9-Bk.mjs";
|
|
22
|
+
import { r as InputGroup } from "./Input-Dap055xf.mjs";
|
|
24
23
|
import Input_default from "./components/Input/index.mjs";
|
|
25
|
-
import { c as MenuList, s as MenuItem } from "./Menu-
|
|
26
|
-
import { n as DropdownMenu_default } from "./DropdownMenu-
|
|
27
|
-
import { t as Combobox } from "./Combobox-
|
|
24
|
+
import { c as MenuList, s as MenuItem } from "./Menu-Dw6Rcpk6.mjs";
|
|
25
|
+
import { n as DropdownMenu_default } from "./DropdownMenu-CedsmO5h.mjs";
|
|
26
|
+
import { t as Combobox } from "./Combobox-CcFJo68g.mjs";
|
|
27
|
+
import { n as Select, r as SelectHeader, t as Option } from "./Select-BJ9ACmRD.mjs";
|
|
28
28
|
import { s as Popover_default } from "./Popover-BcII7usF.mjs";
|
|
29
|
-
import { i as Modal_default } from "./Modal-
|
|
30
|
-
import { t as
|
|
31
|
-
import { t as
|
|
32
|
-
import {
|
|
33
|
-
import {
|
|
29
|
+
import { i as Modal_default } from "./Modal-kjUptzg1.mjs";
|
|
30
|
+
import { r as DateRangePicker, t as DatePicker } from "./DatePicker-D0cvVbzq.mjs";
|
|
31
|
+
import { t as Toggle } from "./Toggle-BLdemkh_.mjs";
|
|
32
|
+
import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue, t as formatDateFilterValue } from "./date-filter-D0ys8s0D.mjs";
|
|
33
|
+
import { t as ListBox } from "./ListBox-C80J7DCG.mjs";
|
|
34
|
+
import { m as FormField, o as ComboboxField } from "./FormField-cSG93kuo.mjs";
|
|
34
35
|
import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
|
|
35
36
|
import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
36
37
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -45,8 +46,8 @@ import { DragIcon as DragIcon$1 } from "@persona/icons/24px";
|
|
|
45
46
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
46
47
|
import { DndContext, PointerSensor, closestCenter, pointerWithin, useSensor, useSensors } from "@dnd-kit/core";
|
|
47
48
|
import { SortableContext, horizontalListSortingStrategy, useSortable } from "@dnd-kit/sortable";
|
|
48
|
-
import { DragDropContext, Draggable, Droppable } from "@hello-pangea/dnd";
|
|
49
49
|
import { parseAbsolute, parseDate, toCalendarDate, toZoned } from "@internationalized/date";
|
|
50
|
+
import { DragDropContext, Draggable, Droppable } from "@hello-pangea/dnd";
|
|
50
51
|
import { v4 } from "uuid";
|
|
51
52
|
//#region components/DataTable/FormControlLabel/FormControlLabel.ts
|
|
52
53
|
const FormControlLabel = styled(Label$1).attrs(() => ({
|
|
@@ -403,9 +404,10 @@ const TabOverflowContainer = styled.div`
|
|
|
403
404
|
position: absolute;
|
|
404
405
|
height: 32px;
|
|
405
406
|
`;
|
|
406
|
-
const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditViews, handleNameChange, onDuplicateView, onRequestDeleteView, onSelectView, onResetCurrentView, onSaveView,
|
|
407
|
+
const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditViews, handleNameChange, onDuplicateView, onRequestDeleteView, onSelectView, onResetCurrentView, onSaveView, onRequestSetDefaultView, onRequestUnsetDefaultView, onViewHiddenChange, onHideView, onKeyboardMove, isHidden = false, isViewDirty, showTabContextMenu, setShowTabContextMenu, className, ...rest }) => {
|
|
407
408
|
const strings = usePDSStrings();
|
|
408
409
|
const showMenu = selected && (canEditViews || !!onViewHiddenChange);
|
|
410
|
+
const onRequestDefaultViewChange = view.isDefault ? onRequestUnsetDefaultView : onRequestSetDefaultView;
|
|
409
411
|
const inputRef = useRef(null);
|
|
410
412
|
const lastSubmittedNameRef = useRef(null);
|
|
411
413
|
const submitNameChange = (newName) => {
|
|
@@ -491,16 +493,15 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
491
493
|
onKeyDown: enterProxiesClick,
|
|
492
494
|
children: strings.saveViewMenuItem
|
|
493
495
|
}),
|
|
494
|
-
canEditViews &&
|
|
495
|
-
id:
|
|
496
|
+
canEditViews && onRequestDefaultViewChange && /* @__PURE__ */ jsx(MenuItem, {
|
|
497
|
+
id: `table-controls__view__menu-${view.isDefault ? "unset" : "set"}-default`,
|
|
496
498
|
prefixIcon: /* @__PURE__ */ jsx(StarIcon, {}),
|
|
497
|
-
|
|
498
|
-
onClick: async () => {
|
|
499
|
-
await onSetDefaultView(view.id);
|
|
499
|
+
onClick: () => {
|
|
500
500
|
setShowTabContextMenu(false);
|
|
501
|
+
onRequestDefaultViewChange(view);
|
|
501
502
|
},
|
|
502
503
|
onKeyDown: enterProxiesClick,
|
|
503
|
-
children: view.isDefault ? strings.
|
|
504
|
+
children: view.isDefault ? strings.unsetDefaultView : strings.setAsDefaultView
|
|
504
505
|
}),
|
|
505
506
|
onViewHiddenChange && /* @__PURE__ */ jsx(MenuItem, {
|
|
506
507
|
id: "table-controls__view__menu-toggle-hidden",
|
|
@@ -670,24 +671,26 @@ const ProductTourStyles = createGlobalStyle`
|
|
|
670
671
|
}
|
|
671
672
|
}
|
|
672
673
|
`;
|
|
673
|
-
const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewIds, onAddView, onDuplicateView, onDeleteView, onViewNameChange, onReorderViews, onViewHiddenChange, onSaveView, onSetDefaultView, isViewDirty, canEditViews, showFilters, setShowFilters, searchProps, filtersId, propertiesButton, tableActions, isLoading, isFilterPanelLoading, showViews, selectedRows = [], bulkActions, onResetCurrentView, onClearSelection, title, "data-tour-target": dataTourTarget, compact, onError, filterPanel }) => {
|
|
674
|
+
const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewIds, onAddView, onDuplicateView, onDeleteView, onViewNameChange, onReorderViews, onViewHiddenChange, onSaveView, onSetDefaultView, onUnsetDefaultView, isViewDirty, canEditViews, showFilters, setShowFilters, searchProps, filtersId, propertiesButton, tableActions, isLoading, isFilterPanelLoading, showViews, selectedRows = [], bulkActions, onResetCurrentView, onClearSelection, title, "data-tour-target": dataTourTarget, compact, onError, filterPanel }) => {
|
|
674
675
|
const strings = usePDSStrings();
|
|
675
676
|
const tabListRef = useRef(null);
|
|
676
677
|
const tabOverflowRef = useRef(null);
|
|
677
678
|
const [overflowViews, setOverflowViews] = useState([]);
|
|
678
679
|
const [showTabContextMenu, setShowTabContextMenu] = useState(false);
|
|
679
|
-
const [
|
|
680
|
-
const
|
|
681
|
-
const
|
|
680
|
+
const [viewAction, setViewAction] = useState(null);
|
|
681
|
+
const pendingViewAction = viewAction?.isOpen ? viewAction : null;
|
|
682
|
+
const previousPendingViewRef = useRef(null);
|
|
683
|
+
const isChangingViewRef = useRef(false);
|
|
684
|
+
const [isChangingView, setIsChangingView] = useState(false);
|
|
682
685
|
const [isAddingView, setIsAddingView] = useState(false);
|
|
683
686
|
const [overflowLeft, setOverflowLeft] = useState(null);
|
|
684
687
|
const [tabOverflowWidth, setTabOverflowWidth] = useState(null);
|
|
685
688
|
const [isAddViewOverflowing, setIsAddViewOverflowing] = useState(false);
|
|
686
689
|
useEffect(() => {
|
|
687
|
-
const
|
|
688
|
-
if (!
|
|
689
|
-
|
|
690
|
-
}, [
|
|
690
|
+
const previousPendingView = previousPendingViewRef.current;
|
|
691
|
+
if (!pendingViewAction && previousPendingView) (document.getElementById(`${OVERFLOW_TAB_ID_PREFIX}${previousPendingView.id}`) ?? document.getElementById(`${TAB_ID_PREFIX}${previousPendingView.id}`))?.focus({ preventScroll: true });
|
|
692
|
+
previousPendingViewRef.current = pendingViewAction?.view ?? null;
|
|
693
|
+
}, [pendingViewAction]);
|
|
691
694
|
const [shownViews, hiddenViews] = useMemo(() => {
|
|
692
695
|
const hiddenIds = new Set(hiddenViewIds);
|
|
693
696
|
const allViews = views ?? [];
|
|
@@ -826,15 +829,65 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
|
|
|
826
829
|
const handleNameChange = (view, newName) => {
|
|
827
830
|
if (canEditViews && view.name !== newName) onViewNameChange?.(view.id, newName);
|
|
828
831
|
};
|
|
829
|
-
const onRequestDeleteView = onDeleteView ? (view) =>
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
832
|
+
const onRequestDeleteView = onDeleteView ? (view) => setViewAction({
|
|
833
|
+
view,
|
|
834
|
+
action: "delete",
|
|
835
|
+
isOpen: true
|
|
836
|
+
}) : void 0;
|
|
837
|
+
const onRequestSetDefaultView = onSetDefaultView ? (view) => setViewAction({
|
|
838
|
+
view,
|
|
839
|
+
action: "set-default",
|
|
840
|
+
isOpen: true
|
|
841
|
+
}) : void 0;
|
|
842
|
+
const onRequestUnsetDefaultView = onUnsetDefaultView ? (view) => setViewAction({
|
|
843
|
+
view,
|
|
844
|
+
action: "unset-default",
|
|
845
|
+
isOpen: true
|
|
846
|
+
}) : void 0;
|
|
847
|
+
const getViewActionConfig = (action) => {
|
|
848
|
+
switch (action) {
|
|
849
|
+
case "set-default": return {
|
|
850
|
+
title: strings.setDefaultViewTitle,
|
|
851
|
+
confirmation: strings.setDefaultViewConfirmation,
|
|
852
|
+
label: strings.setAsDefaultView,
|
|
853
|
+
onConfirm: onSetDefaultView
|
|
854
|
+
};
|
|
855
|
+
case "unset-default": return {
|
|
856
|
+
title: strings.unsetDefaultViewTitle,
|
|
857
|
+
confirmation: strings.unsetDefaultViewConfirmation,
|
|
858
|
+
label: strings.unsetDefaultView,
|
|
859
|
+
onConfirm: onUnsetDefaultView
|
|
860
|
+
};
|
|
861
|
+
case "delete": return {
|
|
862
|
+
title: strings.deleteViewTitle,
|
|
863
|
+
confirmation: strings.deleteViewConfirmation,
|
|
864
|
+
label: strings.delete,
|
|
865
|
+
onConfirm: onDeleteView
|
|
866
|
+
};
|
|
867
|
+
}
|
|
868
|
+
};
|
|
869
|
+
const displayedActionConfig = getViewActionConfig(viewAction?.action ?? "delete");
|
|
870
|
+
const closeViewAction = () => {
|
|
871
|
+
setViewAction((previous) => previous && {
|
|
872
|
+
...previous,
|
|
873
|
+
isOpen: false
|
|
874
|
+
});
|
|
875
|
+
};
|
|
876
|
+
const confirmViewAction = async () => {
|
|
877
|
+
if (!pendingViewAction || isChangingViewRef.current) return;
|
|
878
|
+
const onConfirm = getViewActionConfig(pendingViewAction.action).onConfirm;
|
|
879
|
+
if (!onConfirm) {
|
|
880
|
+
closeViewAction();
|
|
881
|
+
return;
|
|
882
|
+
}
|
|
883
|
+
isChangingViewRef.current = true;
|
|
884
|
+
setIsChangingView(true);
|
|
833
885
|
try {
|
|
834
|
-
await
|
|
835
|
-
|
|
886
|
+
await onConfirm(pendingViewAction.view.id);
|
|
887
|
+
closeViewAction();
|
|
836
888
|
} catch {} finally {
|
|
837
|
-
|
|
889
|
+
isChangingViewRef.current = false;
|
|
890
|
+
setIsChangingView(false);
|
|
838
891
|
}
|
|
839
892
|
};
|
|
840
893
|
if (compact) return /* @__PURE__ */ jsx(CompactBar, {
|
|
@@ -891,7 +944,8 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
|
|
|
891
944
|
onSelectView,
|
|
892
945
|
onResetCurrentView,
|
|
893
946
|
onSaveView,
|
|
894
|
-
|
|
947
|
+
onRequestSetDefaultView,
|
|
948
|
+
onRequestUnsetDefaultView,
|
|
895
949
|
onViewHiddenChange,
|
|
896
950
|
isViewDirty: isViewDirty ?? false,
|
|
897
951
|
selected: view.id === currentView,
|
|
@@ -968,7 +1022,8 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
|
|
|
968
1022
|
onRequestDeleteView,
|
|
969
1023
|
onResetCurrentView,
|
|
970
1024
|
onSaveView,
|
|
971
|
-
|
|
1025
|
+
onRequestSetDefaultView,
|
|
1026
|
+
onRequestUnsetDefaultView,
|
|
972
1027
|
onViewHiddenChange,
|
|
973
1028
|
onHideView: hideView,
|
|
974
1029
|
isViewDirty: isViewDirty ?? false,
|
|
@@ -1019,94 +1074,438 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, hiddenViewI
|
|
|
1019
1074
|
}),
|
|
1020
1075
|
showFilters && filterPanel,
|
|
1021
1076
|
/* @__PURE__ */ jsx(Modal_default, {
|
|
1022
|
-
open:
|
|
1077
|
+
open: pendingViewAction != null,
|
|
1023
1078
|
onOpenChange: (open) => {
|
|
1024
|
-
if (!open && !
|
|
1079
|
+
if (!open && !isChangingViewRef.current) closeViewAction();
|
|
1025
1080
|
},
|
|
1026
|
-
isKeyboardDismissDisabled:
|
|
1027
|
-
contentProps:
|
|
1028
|
-
title:
|
|
1081
|
+
isKeyboardDismissDisabled: isChangingView,
|
|
1082
|
+
contentProps: isChangingView ? { showCloseButton: false } : void 0,
|
|
1083
|
+
title: displayedActionConfig.title,
|
|
1029
1084
|
footer: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
|
|
1030
1085
|
variant: "basic",
|
|
1031
1086
|
width: "auto",
|
|
1032
|
-
disabled:
|
|
1033
|
-
onClick: () =>
|
|
1087
|
+
disabled: isChangingView,
|
|
1088
|
+
onClick: () => {
|
|
1089
|
+
if (!isChangingViewRef.current) closeViewAction();
|
|
1090
|
+
},
|
|
1034
1091
|
children: strings.cancel
|
|
1035
1092
|
}), /* @__PURE__ */ jsx(Button, {
|
|
1036
|
-
id:
|
|
1037
|
-
variant: "danger",
|
|
1093
|
+
id: `table-controls__view__${viewAction?.action ?? "delete"}-confirm`,
|
|
1094
|
+
variant: viewAction?.action === "delete" ? "danger" : "primary",
|
|
1038
1095
|
width: "auto",
|
|
1039
|
-
isPending:
|
|
1040
|
-
onClick:
|
|
1041
|
-
children:
|
|
1096
|
+
isPending: isChangingView,
|
|
1097
|
+
onClick: confirmViewAction,
|
|
1098
|
+
children: displayedActionConfig.label
|
|
1042
1099
|
})] }),
|
|
1043
|
-
children: /* @__PURE__ */ jsx(Paragraph, { children:
|
|
1100
|
+
children: /* @__PURE__ */ jsx(Paragraph, { children: displayedActionConfig.confirmation(viewAction?.view.name ?? "") })
|
|
1044
1101
|
})
|
|
1045
1102
|
] });
|
|
1046
1103
|
};
|
|
1047
1104
|
//#endregion
|
|
1048
|
-
//#region components/DataTable/TableControls/
|
|
1049
|
-
const
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1105
|
+
//#region components/DataTable/TableControls/TableControlsContext.ts
|
|
1106
|
+
const TableControlsContext = createContext({
|
|
1107
|
+
filters: [],
|
|
1108
|
+
activeFilters: [],
|
|
1109
|
+
setActiveFilters: () => {}
|
|
1110
|
+
});
|
|
1111
|
+
function useTableControls() {
|
|
1112
|
+
return useContext(TableControlsContext);
|
|
1113
|
+
}
|
|
1114
|
+
function TableControlsProvider({ children, ...value }) {
|
|
1115
|
+
return createElement(TableControlsContext.Provider, { value }, children);
|
|
1116
|
+
}
|
|
1117
|
+
//#endregion
|
|
1118
|
+
//#region components/DataTable/TableControls/filters.tsx
|
|
1119
|
+
const SegmentedControl = styled.div`
|
|
1120
|
+
display: grid;
|
|
1121
|
+
grid-template-columns: min-content minmax(auto, max-content);
|
|
1122
|
+
|
|
1123
|
+
> *:first-child:not(:last-child) {
|
|
1124
|
+
border-top-right-radius: 0;
|
|
1125
|
+
border-bottom-right-radius: 0;
|
|
1126
|
+
}
|
|
1127
|
+
|
|
1128
|
+
> *:last-child:not(:first-child) {
|
|
1129
|
+
border-top-left-radius: 0;
|
|
1130
|
+
border-bottom-left-radius: 0;
|
|
1131
|
+
margin-left: -1px;
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
/* Segments overlap by a pixel, so lift the focused one to keep its outline on top. */
|
|
1135
|
+
> *:focus-visible,
|
|
1136
|
+
> *:has(:focus-visible) {
|
|
1137
|
+
position: relative;
|
|
1138
|
+
z-index: 1;
|
|
1139
|
+
}
|
|
1140
|
+
`;
|
|
1141
|
+
const AddFilterButton = styled(Button)`
|
|
1142
|
+
opacity: 0;
|
|
1143
|
+
color: ${({ theme }) => theme.color.text.secondary};
|
|
1144
|
+
|
|
1145
|
+
@media (hover: none) {
|
|
1146
|
+
opacity: 1;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
&:focus-visible {
|
|
1150
|
+
opacity: 1;
|
|
1151
|
+
}
|
|
1152
|
+
`;
|
|
1153
|
+
const FiltersContainer = styled.div`
|
|
1154
|
+
display: flex;
|
|
1155
|
+
flex-wrap: wrap;
|
|
1156
|
+
gap: ${Spacing[2]};
|
|
1157
|
+
width: 100%;
|
|
1158
|
+
|
|
1159
|
+
&:hover {
|
|
1160
|
+
${AddFilterButton} {
|
|
1161
|
+
opacity: 1;
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
`;
|
|
1165
|
+
const FilterCombobox = styled.div`
|
|
1166
|
+
min-width: ${({ $compact }) => $compact ? "150px" : "200px"};
|
|
1167
|
+
max-width: ${({ $compact, $multiple }) => $compact && !$multiple ? "150px" : "250px"};
|
|
1168
|
+
|
|
1169
|
+
${({ $isFilterSelectSibling }) => $isFilterSelectSibling && css`
|
|
1170
|
+
input[role='combobox'] {
|
|
1171
|
+
border-top-left-radius: 0;
|
|
1172
|
+
border-bottom-left-radius: 0;
|
|
1173
|
+
}
|
|
1174
|
+
`}
|
|
1175
|
+
`;
|
|
1176
|
+
const InputFilter = ({ config, compact, onActiveChange }) => {
|
|
1177
|
+
const [value, setValue] = useState(config.value);
|
|
1178
|
+
const onChangeRef = useRef(config.onChange);
|
|
1179
|
+
onChangeRef.current = config.onChange;
|
|
1180
|
+
const onActiveChangeRef = useRef(onActiveChange);
|
|
1181
|
+
onActiveChangeRef.current = onActiveChange;
|
|
1182
|
+
const debouncedOnChange = useMemo(() => debounce((nextValue) => {
|
|
1183
|
+
onActiveChangeRef.current(nextValue.length > 0);
|
|
1184
|
+
onChangeRef.current(nextValue);
|
|
1185
|
+
}, 300), []);
|
|
1186
|
+
useEffect(() => setValue(config.value), [config.value]);
|
|
1187
|
+
useEffect(() => () => debouncedOnChange.cancel(), [debouncedOnChange]);
|
|
1188
|
+
return /* @__PURE__ */ jsx(Input_default, {
|
|
1189
|
+
"aria-label": config.name,
|
|
1190
|
+
placeholder: config.placeholder,
|
|
1191
|
+
size: compact ? "sm" : void 0,
|
|
1192
|
+
value,
|
|
1193
|
+
onChange: ({ target: { value: nextValue } }) => {
|
|
1194
|
+
setValue(nextValue);
|
|
1195
|
+
debouncedOnChange(nextValue);
|
|
1196
|
+
}
|
|
1197
|
+
});
|
|
1198
|
+
};
|
|
1199
|
+
const SelectFilter = ({ config, compact, onActiveChange }) => {
|
|
1200
|
+
const strings = usePDSStrings();
|
|
1201
|
+
return /* @__PURE__ */ jsx(Select, {
|
|
1202
|
+
"aria-label": config.name,
|
|
1203
|
+
placeholder: config.placeholder ?? strings.selectFilterOption,
|
|
1204
|
+
value: config.value,
|
|
1205
|
+
width: "auto",
|
|
1206
|
+
minWidth: 150,
|
|
1207
|
+
size: compact ? "sm" : void 0,
|
|
1208
|
+
onValueChange: (value) => {
|
|
1209
|
+
onActiveChange(Boolean(value));
|
|
1210
|
+
config.onChange(value);
|
|
1211
|
+
},
|
|
1212
|
+
portal: true,
|
|
1213
|
+
children: config.options.map((option) => /* @__PURE__ */ jsx(Option, {
|
|
1214
|
+
value: option.value,
|
|
1215
|
+
children: option.label ?? option.value
|
|
1216
|
+
}, option.value))
|
|
1217
|
+
});
|
|
1218
|
+
};
|
|
1219
|
+
const builtInDefinitions = {
|
|
1220
|
+
input: {
|
|
1221
|
+
render: ({ config, compact, onActiveChange }) => {
|
|
1222
|
+
if (config.type !== "input") return null;
|
|
1223
|
+
return /* @__PURE__ */ jsx(InputFilter, {
|
|
1224
|
+
config,
|
|
1225
|
+
compact,
|
|
1226
|
+
onActiveChange
|
|
1227
|
+
}, config.id);
|
|
1228
|
+
},
|
|
1229
|
+
isActive: (config) => config.type === "input" && Boolean(config.value),
|
|
1230
|
+
clear: (config) => {
|
|
1231
|
+
if (config.type === "input") if (config.onDelete) config.onDelete();
|
|
1232
|
+
else config.onChange("");
|
|
1233
|
+
}
|
|
1234
|
+
},
|
|
1235
|
+
select: {
|
|
1236
|
+
render: ({ config, compact, onActiveChange }) => {
|
|
1237
|
+
if (config.type !== "select") return null;
|
|
1238
|
+
return /* @__PURE__ */ jsx(SelectFilter, {
|
|
1239
|
+
config,
|
|
1240
|
+
compact,
|
|
1241
|
+
onActiveChange
|
|
1242
|
+
});
|
|
1243
|
+
},
|
|
1244
|
+
isActive: (config) => config.type === "select" && Boolean(config.value),
|
|
1245
|
+
clear: (config) => config.type === "select" && config.onChange("")
|
|
1246
|
+
},
|
|
1247
|
+
multiselect: {
|
|
1248
|
+
render: ({ config, compact, isFilterSelectSibling, onActiveChange }) => {
|
|
1249
|
+
if (config.type !== "multiselect") return null;
|
|
1250
|
+
return /* @__PURE__ */ jsx(FilterCombobox, {
|
|
1251
|
+
$compact: compact,
|
|
1252
|
+
$isFilterSelectSibling: isFilterSelectSibling,
|
|
1253
|
+
$multiple: true,
|
|
1254
|
+
children: /* @__PURE__ */ jsx(Combobox, {
|
|
1255
|
+
"aria-label": config.name,
|
|
1256
|
+
multiple: true,
|
|
1257
|
+
options: config.options.map((option) => ({
|
|
1258
|
+
...option,
|
|
1259
|
+
label: option.label ?? option.value
|
|
1260
|
+
})),
|
|
1261
|
+
values: config.value,
|
|
1262
|
+
onValuesChange: (values) => {
|
|
1263
|
+
onActiveChange(values.length > 0);
|
|
1264
|
+
config.onChange(values);
|
|
1265
|
+
},
|
|
1266
|
+
placeholder: config.placeholder,
|
|
1267
|
+
size: compact ? "sm" : void 0,
|
|
1268
|
+
truncate: true
|
|
1269
|
+
})
|
|
1270
|
+
});
|
|
1271
|
+
},
|
|
1272
|
+
isActive: (config) => config.type === "multiselect" && config.value.length > 0,
|
|
1273
|
+
clear: (config) => config.type === "multiselect" && config.onChange([])
|
|
1274
|
+
},
|
|
1275
|
+
combobox: {
|
|
1276
|
+
render: ({ config, compact, isFilterSelectSibling, onActiveChange }) => {
|
|
1277
|
+
if (config.type !== "combobox") return null;
|
|
1278
|
+
return /* @__PURE__ */ jsx(ComboboxFilter, {
|
|
1279
|
+
config,
|
|
1280
|
+
compact,
|
|
1281
|
+
isFilterSelectSibling,
|
|
1282
|
+
onActiveChange
|
|
1283
|
+
});
|
|
1284
|
+
},
|
|
1285
|
+
isActive: (config) => config.type === "combobox" && (config.multiple ? Boolean(config.values?.length) : Boolean(config.value)),
|
|
1286
|
+
clear: (config) => {
|
|
1287
|
+
if (config.type === "combobox") if (config.multiple) config.onValuesChange?.([]);
|
|
1288
|
+
else config.onChange?.(null);
|
|
1289
|
+
}
|
|
1290
|
+
},
|
|
1291
|
+
daterange: {
|
|
1292
|
+
render: ({ config, compact, onActiveChange }) => {
|
|
1293
|
+
if (config.type !== "daterange") return null;
|
|
1294
|
+
return /* @__PURE__ */ jsx(DateRangePicker, {
|
|
1295
|
+
"aria-label": config.name,
|
|
1296
|
+
dateRange: config.value,
|
|
1297
|
+
label: null,
|
|
1298
|
+
onChange: (range) => {
|
|
1299
|
+
onActiveChange(range != null);
|
|
1300
|
+
config.onChange(range);
|
|
1301
|
+
},
|
|
1302
|
+
showClear: false,
|
|
1303
|
+
size: compact ? "sm" : void 0
|
|
1304
|
+
});
|
|
1305
|
+
},
|
|
1306
|
+
isActive: (config) => config.type === "daterange" && Boolean(config.value?.startDate || config.value?.endDate),
|
|
1307
|
+
clear: (config) => config.type === "daterange" && config.onChange(null)
|
|
1308
|
+
}
|
|
1309
|
+
};
|
|
1310
|
+
const ComboboxFilter = ({ config, compact, isFilterSelectSibling, onActiveChange }) => {
|
|
1311
|
+
if (config.multiple) {
|
|
1312
|
+
const { id: _id, name: _name, type: _type, enabled: _enabled, disabledReason: _disabledReason, required: _required, onFilterSelect: _onFilterSelect, defaultVisible: _defaultVisible, group: _group, htmlId: _htmlId, ...comboboxProps } = config;
|
|
1313
|
+
return /* @__PURE__ */ jsx(FilterCombobox, {
|
|
1314
|
+
$compact: compact,
|
|
1315
|
+
$isFilterSelectSibling: isFilterSelectSibling,
|
|
1316
|
+
$multiple: true,
|
|
1317
|
+
children: /* @__PURE__ */ jsx(Combobox, {
|
|
1318
|
+
...comboboxProps,
|
|
1319
|
+
"aria-label": config.name,
|
|
1320
|
+
size: compact ? "sm" : void 0,
|
|
1321
|
+
onValuesChange: (values) => {
|
|
1322
|
+
onActiveChange(values.length > 0);
|
|
1323
|
+
config.onValuesChange?.(values);
|
|
1324
|
+
}
|
|
1325
|
+
})
|
|
1326
|
+
});
|
|
1327
|
+
}
|
|
1328
|
+
const { id: _id, name: _name, type: _type, enabled: _enabled, disabledReason: _disabledReason, required: _required, onFilterSelect: _onFilterSelect, defaultVisible: _defaultVisible, group: _group, htmlId: _htmlId, ...comboboxProps } = config;
|
|
1329
|
+
return /* @__PURE__ */ jsx(FilterCombobox, {
|
|
1330
|
+
$compact: compact,
|
|
1331
|
+
$isFilterSelectSibling: isFilterSelectSibling,
|
|
1332
|
+
$multiple: false,
|
|
1333
|
+
children: /* @__PURE__ */ jsx(Combobox, {
|
|
1334
|
+
...comboboxProps,
|
|
1335
|
+
"aria-label": config.name,
|
|
1336
|
+
size: compact ? "sm" : void 0,
|
|
1337
|
+
onChange: (value) => {
|
|
1338
|
+
onActiveChange(Boolean(value));
|
|
1339
|
+
config.onChange?.(value);
|
|
1340
|
+
}
|
|
1341
|
+
})
|
|
1342
|
+
});
|
|
1343
|
+
};
|
|
1344
|
+
function resolveFilterTypeDefinition(config, filterResolver) {
|
|
1345
|
+
return filterResolver?.(config) ?? builtInDefinitions[config.type];
|
|
1346
|
+
}
|
|
1347
|
+
function isFilterActive(config, filterResolver) {
|
|
1348
|
+
return config.required === true || resolveFilterTypeDefinition(config, filterResolver)?.isActive(config) === true;
|
|
1349
|
+
}
|
|
1350
|
+
const getHighestId = (activeFilters) => activeFilters.reduce((highestId, filter) => Math.max(highestId, filter.id), 0);
|
|
1351
|
+
const getActiveFilters = (filters, activeFilters = [], includeDefaultVisible = false, filterResolver) => {
|
|
1352
|
+
let currentId = getHighestId(activeFilters);
|
|
1353
|
+
const activeByConfigId = new Map(activeFilters.flatMap((filter) => filter.config ? [[filter.config.id, filter]] : []));
|
|
1354
|
+
return filters.filter((filter) => isFilterActive(filter, filterResolver) || includeDefaultVisible && filter.defaultVisible).map((filter) => {
|
|
1355
|
+
return {
|
|
1356
|
+
id: activeByConfigId.get(filter.id)?.id ?? ++currentId,
|
|
1357
|
+
config: filter,
|
|
1358
|
+
isConfiguring: false
|
|
1359
|
+
};
|
|
1360
|
+
}).sort((first, second) => first.id - second.id);
|
|
1361
|
+
};
|
|
1362
|
+
const createUnsetFilter = (activeFilters) => ({
|
|
1363
|
+
id: getHighestId(activeFilters) + 1,
|
|
1364
|
+
isConfiguring: true
|
|
1365
|
+
});
|
|
1366
|
+
const synchronizeActiveFilters = (filters, activeFilters, filterResolver) => {
|
|
1367
|
+
if (filters.length === 0) return activeFilters.length === 0 ? activeFilters : [];
|
|
1368
|
+
const refreshed = activeFilters.flatMap((active) => {
|
|
1369
|
+
if (!active.config) return [active];
|
|
1370
|
+
const config = filters.find((filter) => filter.id === active.config?.id);
|
|
1371
|
+
if (config) return [{
|
|
1372
|
+
...active,
|
|
1373
|
+
config
|
|
1374
|
+
}];
|
|
1375
|
+
return active.isConfiguring ? [active] : [];
|
|
1376
|
+
});
|
|
1377
|
+
const activeFromConfig = getActiveFilters(filters, refreshed, false, filterResolver);
|
|
1378
|
+
const activeConfigIds = new Set(activeFromConfig.flatMap((active) => active.config ? [active.config.id] : []));
|
|
1379
|
+
const retainedDefaultVisible = refreshed.filter((active) => active.config?.defaultVisible && !activeConfigIds.has(active.config.id));
|
|
1380
|
+
const configuring = refreshed.filter((active) => active.isConfiguring && (!active.config || !activeConfigIds.has(active.config.id)));
|
|
1381
|
+
const next = [
|
|
1382
|
+
...activeFromConfig,
|
|
1383
|
+
...retainedDefaultVisible,
|
|
1384
|
+
...configuring
|
|
1385
|
+
].sort((first, second) => first.id - second.id);
|
|
1386
|
+
return next.length === 0 ? [createUnsetFilter(activeFilters)] : next;
|
|
1387
|
+
};
|
|
1388
|
+
const Filter = ({ config, compact, hideFilterSelection, filterResolver }) => {
|
|
1389
|
+
const { activeFilters, setActiveFilters } = useTableControls();
|
|
1390
|
+
const strings = usePDSStrings();
|
|
1391
|
+
const definition = config ? resolveFilterTypeDefinition(config, filterResolver) : void 0;
|
|
1392
|
+
const onActiveChange = (active) => {
|
|
1393
|
+
setActiveFilters(activeFilters.map((filter) => filter.config?.id === config?.id ? {
|
|
1394
|
+
...filter,
|
|
1395
|
+
isConfiguring: !active
|
|
1396
|
+
} : filter));
|
|
1397
|
+
};
|
|
1398
|
+
const content = config && definition?.render({
|
|
1399
|
+
config,
|
|
1400
|
+
compact,
|
|
1401
|
+
isFilterSelectSibling: !hideFilterSelection,
|
|
1402
|
+
onActiveChange
|
|
1403
|
+
});
|
|
1404
|
+
if (hideFilterSelection) return /* @__PURE__ */ jsx(Fragment$1, { children: content });
|
|
1405
|
+
return /* @__PURE__ */ jsxs(SegmentedControl, {
|
|
1406
|
+
id: config?.htmlId,
|
|
1407
|
+
role: "group",
|
|
1408
|
+
"aria-label": config?.name ? strings.filterGroupLabel(config.name) : strings.filter,
|
|
1409
|
+
children: [/* @__PURE__ */ jsx(FilterSelection, {
|
|
1410
|
+
value: config?.id,
|
|
1411
|
+
disabled: config?.required,
|
|
1097
1412
|
compact,
|
|
1098
|
-
|
|
1099
|
-
|
|
1413
|
+
filterResolver
|
|
1414
|
+
}), content]
|
|
1415
|
+
});
|
|
1416
|
+
};
|
|
1417
|
+
const FilterSelection = ({ value, disabled, compact, filterResolver }) => {
|
|
1418
|
+
const strings = usePDSStrings();
|
|
1419
|
+
const { filters, activeFilters, setActiveFilters } = useTableControls();
|
|
1420
|
+
const options = useMemo(() => filters.filter((filter) => filter.id === value || !activeFilters.some((active) => active.config?.id === filter.id)).filter((filter) => !filter.group || filter.id === value || !activeFilters.some((active) => active.config?.group === filter.group && active.config?.id !== value)), [
|
|
1421
|
+
activeFilters,
|
|
1422
|
+
filters,
|
|
1423
|
+
value
|
|
1424
|
+
]);
|
|
1425
|
+
const replaceFilter = (nextId) => {
|
|
1426
|
+
const next = filters.find((filter) => filter.id === nextId);
|
|
1427
|
+
const previous = filters.find((filter) => filter.id === value);
|
|
1428
|
+
if (!next) return;
|
|
1429
|
+
if (!value) {
|
|
1430
|
+
setActiveFilters(activeFilters.map((active) => active.config ? active : {
|
|
1431
|
+
...active,
|
|
1432
|
+
config: next
|
|
1433
|
+
}));
|
|
1434
|
+
next.onFilterSelect?.();
|
|
1435
|
+
return;
|
|
1436
|
+
}
|
|
1437
|
+
if (previous) resolveFilterTypeDefinition(previous, filterResolver)?.clear(previous);
|
|
1438
|
+
setActiveFilters(activeFilters.map((active) => active.config?.id === value ? {
|
|
1439
|
+
...active,
|
|
1440
|
+
config: next,
|
|
1441
|
+
isConfiguring: true
|
|
1442
|
+
} : active));
|
|
1443
|
+
next.onFilterSelect?.();
|
|
1444
|
+
};
|
|
1445
|
+
const removeFilter = () => {
|
|
1446
|
+
const current = filters.find((filter) => filter.id === value);
|
|
1447
|
+
if (current) resolveFilterTypeDefinition(current, filterResolver)?.clear(current);
|
|
1448
|
+
setActiveFilters(activeFilters.filter((active) => active.config?.id !== value));
|
|
1449
|
+
};
|
|
1450
|
+
return /* @__PURE__ */ jsx(Select, {
|
|
1451
|
+
"aria-label": strings.filterType,
|
|
1452
|
+
width: "auto",
|
|
1453
|
+
minWidth: 120,
|
|
1454
|
+
placeholder: strings.selectFilterType,
|
|
1455
|
+
value,
|
|
1456
|
+
size: compact ? "sm" : void 0,
|
|
1457
|
+
disabled,
|
|
1458
|
+
onValueChange: replaceFilter,
|
|
1459
|
+
portal: true,
|
|
1460
|
+
header: /* @__PURE__ */ jsx(SelectHeader, {
|
|
1461
|
+
title: strings.filterType,
|
|
1462
|
+
menuTriggerLabel: strings.filterActions,
|
|
1463
|
+
menuItems: /* @__PURE__ */ jsx(DropdownMenu_default.Item, {
|
|
1464
|
+
onClick: removeFilter,
|
|
1465
|
+
children: strings.deleteFilter
|
|
1466
|
+
})
|
|
1467
|
+
}),
|
|
1468
|
+
children: options.map((filter) => {
|
|
1469
|
+
const isDisabled = Boolean(filter.disabledReason) && filter.id !== value;
|
|
1470
|
+
const option = /* @__PURE__ */ jsx(Option, {
|
|
1471
|
+
value: filter.id,
|
|
1472
|
+
disabled: isDisabled,
|
|
1473
|
+
style: isDisabled ? { pointerEvents: "auto" } : void 0,
|
|
1474
|
+
children: filter.name
|
|
1475
|
+
}, filter.id);
|
|
1476
|
+
return isDisabled ? /* @__PURE__ */ jsx(Tooltip, {
|
|
1477
|
+
trigger: option,
|
|
1478
|
+
side: "top",
|
|
1479
|
+
children: filter.disabledReason
|
|
1480
|
+
}, filter.id) : option;
|
|
1100
1481
|
})
|
|
1101
1482
|
});
|
|
1102
1483
|
};
|
|
1103
|
-
const
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
const
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1484
|
+
const Filters = ({ compact, filterResolver, ...props }) => {
|
|
1485
|
+
const strings = usePDSStrings();
|
|
1486
|
+
const { filters, activeFilters, setActiveFilters } = useTableControls();
|
|
1487
|
+
const hasNewFilter = activeFilters.some((filter) => !filter.config);
|
|
1488
|
+
const hideFilterSelection = Boolean(compact && filters.length > 0 && filters.every((filter) => filter.required));
|
|
1489
|
+
return /* @__PURE__ */ jsxs(FiltersContainer, {
|
|
1490
|
+
...props,
|
|
1491
|
+
children: [activeFilters.map((filter) => /* @__PURE__ */ jsx(Filter, {
|
|
1492
|
+
config: filter.config,
|
|
1493
|
+
compact,
|
|
1494
|
+
hideFilterSelection,
|
|
1495
|
+
filterResolver
|
|
1496
|
+
}, filter.id)), /* @__PURE__ */ jsx(AddFilterButton, {
|
|
1497
|
+
id: "table-controls__add-filter-button",
|
|
1498
|
+
type: "button",
|
|
1499
|
+
variant: "text",
|
|
1500
|
+
width: "icon",
|
|
1501
|
+
size: compact ? "sm" : "md",
|
|
1502
|
+
"aria-label": strings.addFilter,
|
|
1503
|
+
disabled: hasNewFilter || activeFilters.length >= filters.length,
|
|
1504
|
+
onClick: () => setActiveFilters([...activeFilters, createUnsetFilter(activeFilters)]),
|
|
1505
|
+
children: /* @__PURE__ */ jsx(CirclePlusIcon, {})
|
|
1506
|
+
})]
|
|
1507
|
+
});
|
|
1508
|
+
};
|
|
1110
1509
|
//#endregion
|
|
1111
1510
|
//#region components/DataTable/dnd/StyledIconDrag.tsx
|
|
1112
1511
|
const StyledIconDrag = styled(DragIcon$1)`
|
|
@@ -1431,18 +1830,111 @@ const AttributeDnd = ({ column, index, isDisabled = false, isToggled, shouldDisa
|
|
|
1431
1830
|
] }, `${column.key}-${index}`);
|
|
1432
1831
|
};
|
|
1433
1832
|
//#endregion
|
|
1434
|
-
//#region components/DataTable/TableControls/
|
|
1435
|
-
const
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
|
|
1442
|
-
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1833
|
+
//#region components/DataTable/TableControls/TableControls.tsx
|
|
1834
|
+
const EMPTY_FILTERS = [];
|
|
1835
|
+
const resolveFilterArea = (filterPanel, configuredFilterPanel) => filterPanel ?? configuredFilterPanel;
|
|
1836
|
+
const hasNewFilterId = (currentIds, previousIds) => {
|
|
1837
|
+
const previous = new Set(previousIds.split("\0").filter(Boolean));
|
|
1838
|
+
return currentIds.split("\0").some((id) => id !== "" && !previous.has(id));
|
|
1839
|
+
};
|
|
1840
|
+
const TableControls = ({ filters = EMPTY_FILTERS, filterResolver, filterPanel, searchProps, defaultShowFilters, showFilters: controlledShowFilters, setShowFilters: controlledSetShowFilters, className, tableActions, propertiesButton, isLoading, isFilterPanelLoading, showViews, canEditViews, onSelectView, views, hiddenViewIds, currentView, onAddView, onViewNameChange, onReorderViews, onViewHiddenChange, onDuplicateView, onDeleteView, onSaveView, onSetDefaultView, onUnsetDefaultView, isViewDirty, selectedRows, bulkActions, onClearSelection, title, presetViews, compact, columnConfigurationProps, showFiltersAlways = false, onError, "data-tour-target": dataTourTarget }) => {
|
|
1841
|
+
const filtersId = useId();
|
|
1842
|
+
const enabledFilters = useMemo(() => filters.filter((filter) => filter.enabled !== false), [filters]);
|
|
1843
|
+
const [activeFilters, setActiveFilters] = useState(() => getActiveFilters(enabledFilters, [], true, filterResolver));
|
|
1844
|
+
const resolvedFilterPanel = resolveFilterArea(filterPanel, enabledFilters.length > 0 ? /* @__PURE__ */ jsx(TableControlsProvider, {
|
|
1845
|
+
filters: enabledFilters,
|
|
1846
|
+
activeFilters,
|
|
1847
|
+
setActiveFilters,
|
|
1848
|
+
children: /* @__PURE__ */ jsx(Filters, {
|
|
1849
|
+
id: filtersId,
|
|
1850
|
+
compact,
|
|
1851
|
+
filterResolver
|
|
1852
|
+
})
|
|
1853
|
+
}) : void 0);
|
|
1854
|
+
const [internalShowFilters, internalSetShowFilters] = useState(defaultShowFilters ?? (filterPanel == null && activeFilters.length > 0));
|
|
1855
|
+
useEffect(() => {
|
|
1856
|
+
setActiveFilters((current) => synchronizeActiveFilters(enabledFilters, current, filterResolver));
|
|
1857
|
+
}, [enabledFilters, filterResolver]);
|
|
1858
|
+
const activeFilterIds = enabledFilters.filter((filter) => isFilterActive(filter, filterResolver)).map((filter) => filter.id).sort().join("\0");
|
|
1859
|
+
const configuredFilterIds = activeFilters.flatMap((filter) => filter.config ? [filter.config.id] : []).sort().join("\0");
|
|
1860
|
+
const previousActiveFilterIds = useRef(activeFilterIds);
|
|
1861
|
+
const previousConfiguredFilterIds = useRef(configuredFilterIds);
|
|
1862
|
+
useEffect(() => {
|
|
1863
|
+
const becameActive = hasNewFilterId(activeFilterIds, previousActiveFilterIds.current);
|
|
1864
|
+
const newlyConfigured = hasNewFilterId(configuredFilterIds, previousConfiguredFilterIds.current);
|
|
1865
|
+
previousActiveFilterIds.current = activeFilterIds;
|
|
1866
|
+
previousConfiguredFilterIds.current = configuredFilterIds;
|
|
1867
|
+
if (defaultShowFilters == null && filterPanel == null && (becameActive || newlyConfigured)) internalSetShowFilters(true);
|
|
1868
|
+
}, [
|
|
1869
|
+
activeFilterIds,
|
|
1870
|
+
configuredFilterIds,
|
|
1871
|
+
defaultShowFilters,
|
|
1872
|
+
filterPanel
|
|
1873
|
+
]);
|
|
1874
|
+
const showFilters = controlledShowFilters != null ? controlledShowFilters : internalShowFilters;
|
|
1875
|
+
const setShowFilters = controlledSetShowFilters != null ? controlledSetShowFilters : internalSetShowFilters;
|
|
1876
|
+
const enhancedPropertiesButton = useMemo(() => {
|
|
1877
|
+
if (!columnConfigurationProps && !propertiesButton) return;
|
|
1878
|
+
const elements = [];
|
|
1879
|
+
if (propertiesButton) elements.push(propertiesButton);
|
|
1880
|
+
if (columnConfigurationProps) elements.push(/* @__PURE__ */ jsx(TableViewConfigurationDropdown, {
|
|
1881
|
+
disabled: false,
|
|
1882
|
+
...columnConfigurationProps
|
|
1883
|
+
}, "column-config"));
|
|
1884
|
+
if (elements.length === 1) return elements[0];
|
|
1885
|
+
return /* @__PURE__ */ jsx(StyledEnhancedPropertiesButton, { children: elements });
|
|
1886
|
+
}, [columnConfigurationProps, propertiesButton]);
|
|
1887
|
+
return /* @__PURE__ */ jsx(Container, {
|
|
1888
|
+
className,
|
|
1889
|
+
children: /* @__PURE__ */ jsx(ControlBar, {
|
|
1890
|
+
showViews: compact ? false : showViews,
|
|
1891
|
+
views: compact ? void 0 : views,
|
|
1892
|
+
hiddenViewIds: compact ? void 0 : hiddenViewIds,
|
|
1893
|
+
onSelectView: compact ? void 0 : onSelectView,
|
|
1894
|
+
currentView: compact ? void 0 : currentView,
|
|
1895
|
+
onAddView: compact ? void 0 : onAddView,
|
|
1896
|
+
onDeleteView: compact ? void 0 : onDeleteView,
|
|
1897
|
+
onDuplicateView: compact ? void 0 : onDuplicateView,
|
|
1898
|
+
onViewNameChange: compact ? void 0 : onViewNameChange,
|
|
1899
|
+
onReorderViews: compact ? void 0 : onReorderViews,
|
|
1900
|
+
onViewHiddenChange: compact ? void 0 : onViewHiddenChange,
|
|
1901
|
+
onSaveView: compact ? void 0 : onSaveView,
|
|
1902
|
+
...!compact && onSetDefaultView ? {
|
|
1903
|
+
onSetDefaultView,
|
|
1904
|
+
onUnsetDefaultView
|
|
1905
|
+
} : {
|
|
1906
|
+
onSetDefaultView: void 0,
|
|
1907
|
+
onUnsetDefaultView: void 0
|
|
1908
|
+
},
|
|
1909
|
+
isViewDirty,
|
|
1910
|
+
canEditViews: compact ? false : canEditViews,
|
|
1911
|
+
showFilters: showFilters && (showFiltersAlways || !isFilterPanelLoading),
|
|
1912
|
+
setShowFilters: (resolvedFilterPanel != null || isFilterPanelLoading) && !showFiltersAlways ? setShowFilters : void 0,
|
|
1913
|
+
filtersId,
|
|
1914
|
+
searchProps,
|
|
1915
|
+
propertiesButton: enhancedPropertiesButton,
|
|
1916
|
+
tableActions,
|
|
1917
|
+
isLoading,
|
|
1918
|
+
isFilterPanelLoading,
|
|
1919
|
+
selectedRows,
|
|
1920
|
+
bulkActions,
|
|
1921
|
+
onClearSelection,
|
|
1922
|
+
title,
|
|
1923
|
+
"data-tour-target": dataTourTarget,
|
|
1924
|
+
presetViews: compact ? void 0 : presetViews,
|
|
1925
|
+
compact,
|
|
1926
|
+
onError,
|
|
1927
|
+
filterPanel: resolvedFilterPanel
|
|
1928
|
+
})
|
|
1929
|
+
});
|
|
1930
|
+
};
|
|
1931
|
+
const Container = styled(Stack)`
|
|
1932
|
+
margin-bottom: ${Spacing[2]};
|
|
1933
|
+
`;
|
|
1934
|
+
const StyledEnhancedPropertiesButton = styled.div`
|
|
1935
|
+
display: flex;
|
|
1936
|
+
gap: ${Spacing[1]};
|
|
1937
|
+
`;
|
|
1446
1938
|
//#endregion
|
|
1447
1939
|
//#region components/DataTable/TableControls/FiltersV2/date-rule-intent.ts
|
|
1448
1940
|
function dateRuleIntent(change, writesEnabled) {
|
|
@@ -1528,6 +2020,55 @@ const OPERATORS_BY_TYPE = {
|
|
|
1528
2020
|
signals: ["is"],
|
|
1529
2021
|
date_range: ["is"]
|
|
1530
2022
|
};
|
|
2023
|
+
/**
|
|
2024
|
+
* Numeric comparison operators. Together with `is` (is equal to) they give
|
|
2025
|
+
* `integer` and `float` fields greater-than / less-than / equal-to filtering.
|
|
2026
|
+
* Inclusive bounds are deliberately not offered: "at least 5" is
|
|
2027
|
+
* `gt 5` OR `is 5`, built with the Rules editor.
|
|
2028
|
+
*
|
|
2029
|
+
* They are opt-in rather than part of the default numeric vocabulary above:
|
|
2030
|
+
* a host whose backend serializes them lists them in the field's
|
|
2031
|
+
* `allowedOperators` (e.g. `['is', ...NUMERIC_COMPARISON_OPERATORS]`).
|
|
2032
|
+
* Adding them to the default vocabulary would surface operators in every
|
|
2033
|
+
* existing numeric field whose host can't serialize them.
|
|
2034
|
+
*/
|
|
2035
|
+
const NUMERIC_COMPARISON_OPERATORS = ["gt", "lt"];
|
|
2036
|
+
const NUMERIC_COMPARISON_OPERATOR_SET = new Set(NUMERIC_COMPARISON_OPERATORS);
|
|
2037
|
+
const NUMERIC_FIELD_TYPES = new Set(["integer", "float"]);
|
|
2038
|
+
function isNumericComparisonOperator(operator) {
|
|
2039
|
+
return NUMERIC_COMPARISON_OPERATOR_SET.has(operator);
|
|
2040
|
+
}
|
|
2041
|
+
/**
|
|
2042
|
+
* Whether a comparison value is complete for a numeric field: a finite
|
|
2043
|
+
* number, and a safe integer when the field is an `integer`. Strings are
|
|
2044
|
+
* rejected — the numeric value controls always emit numbers, so a string
|
|
2045
|
+
* here is a corrupted or hand-crafted rule the backend can't compare.
|
|
2046
|
+
*/
|
|
2047
|
+
function isCompleteNumericComparisonValue(value, fieldType) {
|
|
2048
|
+
if (typeof value !== "number" || !Number.isFinite(value)) return false;
|
|
2049
|
+
return fieldType === "integer" ? Number.isSafeInteger(value) : true;
|
|
2050
|
+
}
|
|
2051
|
+
/**
|
|
2052
|
+
* Carry `value` into a numeric comparison. Equality rules on numeric fields
|
|
2053
|
+
* tolerate strings (v1 URLs hydrate `'5'`), but a comparison is only complete
|
|
2054
|
+
* with a number, so a numeric string is converted — truncated on `integer`
|
|
2055
|
+
* fields, matching what `IntegerValueControl` emits — and anything else
|
|
2056
|
+
* becomes an empty draft rather than a committed rule validation rejects.
|
|
2057
|
+
*/
|
|
2058
|
+
function numericComparisonValue(value, fieldType) {
|
|
2059
|
+
const parsed = typeof value === "number" ? value : typeof value === "string" && value.trim() !== "" ? Number(value) : NaN;
|
|
2060
|
+
if (!Number.isFinite(parsed)) return "";
|
|
2061
|
+
const normalized = fieldType === "integer" ? Math.trunc(parsed) : parsed;
|
|
2062
|
+
return isCompleteNumericComparisonValue(normalized, fieldType) ? normalized : "";
|
|
2063
|
+
}
|
|
2064
|
+
/**
|
|
2065
|
+
* Whether `(fieldType, operator)` is a built-in numeric comparison — the
|
|
2066
|
+
* case validators and labels specialize. Comparisons on non-numeric types
|
|
2067
|
+
* (only reachable through `condition`) are not.
|
|
2068
|
+
*/
|
|
2069
|
+
function isNumericComparison(operator, fieldType) {
|
|
2070
|
+
return fieldType != null && NUMERIC_FIELD_TYPES.has(fieldType) && isNumericComparisonOperator(operator);
|
|
2071
|
+
}
|
|
1531
2072
|
/** Operators that have no value control (the operator itself is the predicate). */
|
|
1532
2073
|
const VALUELESS_OPERATORS = new Set(["is_empty", "is_not_empty"]);
|
|
1533
2074
|
/**
|
|
@@ -1652,10 +2193,24 @@ const OPERATOR_LABEL_KEYS = {
|
|
|
1652
2193
|
* Only present for `(fieldType, operator)` pairs that diverge from the
|
|
1653
2194
|
* generic label; everything else falls through to `OPERATOR_LABEL_KEYS`.
|
|
1654
2195
|
*/
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
2196
|
+
/**
|
|
2197
|
+
* Numeric fields read as a sentence ("Members is equal to 5", "Members is greater
|
|
2198
|
+
* than 5") rather than the generic "is" / bare `>` labels. `is_not` keeps the
|
|
2199
|
+
* generic "is not".
|
|
2200
|
+
*/
|
|
2201
|
+
const NUMERIC_LABEL_KEYS = {
|
|
2202
|
+
is: "operatorIsEqualTo",
|
|
2203
|
+
gt: "operatorIsGreaterThan",
|
|
2204
|
+
lt: "operatorIsLessThan"
|
|
2205
|
+
};
|
|
2206
|
+
const OPERATOR_LABEL_KEYS_BY_TYPE = {
|
|
2207
|
+
multi_choices: {
|
|
2208
|
+
is: "operatorIsAnyOf",
|
|
2209
|
+
is_not: "operatorIsNoneOf"
|
|
2210
|
+
},
|
|
2211
|
+
integer: NUMERIC_LABEL_KEYS,
|
|
2212
|
+
float: NUMERIC_LABEL_KEYS
|
|
2213
|
+
};
|
|
1659
2214
|
/**
|
|
1660
2215
|
* The label for `operator`, specialized for `fieldType` where the generic label is ambiguous.
|
|
1661
2216
|
* Pass `strings` from `usePDSStrings()` to translate it; English when omitted.
|
|
@@ -1721,6 +2276,7 @@ function reconcileValueForOperator(field, nextOperator, previousOperator, value)
|
|
|
1721
2276
|
if (isValuelessOperator(nextOperator, field)) return null;
|
|
1722
2277
|
if (field.condition != null) return getConditionOperator(field, nextOperator)?.valueType === getConditionOperator(field, previousOperator)?.valueType ? value ?? emptyValueForRule(field, nextOperator) : emptyValueForRule(field, nextOperator);
|
|
1723
2278
|
if (isRangeOperator(nextOperator) !== isRangeOperator(previousOperator)) return emptyValueForRule(field, nextOperator);
|
|
2279
|
+
if (isNumericComparison(nextOperator, field.type)) return numericComparisonValue(value, field.type);
|
|
1724
2280
|
if (field.type === "date" && nextOperator === "is" && typeof value === "string" && TIME_COMPONENT$1.test(value)) return DateTime.fromISO(value).setZone(Settings.defaultZone).toISODate();
|
|
1725
2281
|
if (field.type === "date" && (previousOperator === "before" || previousOperator === "after") && (nextOperator === "before" || nextOperator === "after") && previousOperator !== nextOperator && typeof value === "string" && TIME_COMPONENT$1.test(value)) {
|
|
1726
2282
|
const dateTime = DateTime.fromISO(value, { setZone: true });
|
|
@@ -2931,10 +3487,11 @@ function numericDisplayValue(value) {
|
|
|
2931
3487
|
/**
|
|
2932
3488
|
* Float-typed value control for the Filter UI v2 popover.
|
|
2933
3489
|
*
|
|
2934
|
-
* Used for `float` fields with operators `is` / `is_not
|
|
3490
|
+
* Used for `float` fields with operators `is` / `is_not`, and with the
|
|
3491
|
+
* opt-in comparisons `gt` / `lt` when the field's
|
|
3492
|
+
* `allowedOperators` lists them — all carry a single number. The popover
|
|
2935
3493
|
* renders nothing when the operator is valueless (`is_empty` /
|
|
2936
|
-
* `is_not_empty`). Range operators are not part of the
|
|
2937
|
-
* field vocabulary.
|
|
3494
|
+
* `is_not_empty`). Range operators are not part of the numeric vocabulary.
|
|
2938
3495
|
*
|
|
2939
3496
|
* The control accepts decimal input and emits a `number` via `onChange`.
|
|
2940
3497
|
* We keep local display state as a string so partial input like `"3."` is
|
|
@@ -3008,10 +3565,11 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
|
3008
3565
|
/**
|
|
3009
3566
|
* Integer-typed value control for the Filter UI v2 popover.
|
|
3010
3567
|
*
|
|
3011
|
-
* Used for `integer` fields with operators `is` / `is_not
|
|
3568
|
+
* Used for `integer` fields with operators `is` / `is_not`, and with the
|
|
3569
|
+
* opt-in comparisons `gt` / `lt` when the field's
|
|
3570
|
+
* `allowedOperators` lists them — all carry a single number. The popover
|
|
3012
3571
|
* renders nothing when the operator is valueless (`is_empty` /
|
|
3013
|
-
* `is_not_empty`). Range operators are not part of the
|
|
3014
|
-
* field vocabulary.
|
|
3572
|
+
* `is_not_empty`). Range operators are not part of the numeric vocabulary.
|
|
3015
3573
|
*
|
|
3016
3574
|
* The control accepts any numeric input but always emits an integer via
|
|
3017
3575
|
* `onChange`. We truncate (rather than round) so that typing `3` -> `3.` -> `3.7`
|
|
@@ -4050,6 +4608,7 @@ function isRuleAllowed(rule, registry, options = { allowDraftValues: false }) {
|
|
|
4050
4608
|
if (isValuelessOperator(rule.operator)) return rule.value == null;
|
|
4051
4609
|
if (options.allowDraftValues && isDraftRuleValue(rule, registry)) return true;
|
|
4052
4610
|
if (isRangeOperator(rule.operator)) return isCompleteDateRange(rule.value);
|
|
4611
|
+
if (isNumericComparison(rule.operator, field.type)) return isCompleteNumericComparisonValue(rule.value, field.type);
|
|
4053
4612
|
if (registry.get(rule.fieldId)?.type === "boolean") return typeof rule.value === "boolean";
|
|
4054
4613
|
if (registry.get(rule.fieldId)?.type === "date") return typeof rule.value === "string" && rule.value.length > 0;
|
|
4055
4614
|
if (registry.get(rule.fieldId)?.type === "multi_choices") {
|
|
@@ -4079,6 +4638,7 @@ function hasCompleteValue(rule, registry) {
|
|
|
4079
4638
|
const { value } = rule;
|
|
4080
4639
|
if (value == null) return false;
|
|
4081
4640
|
if (isRangeOperator(rule.operator)) return isCompleteDateRange(value);
|
|
4641
|
+
if (field != null && isNumericComparison(rule.operator, field.type)) return isCompleteNumericComparisonValue(value, field.type);
|
|
4082
4642
|
switch (registry.get(rule.fieldId)?.type) {
|
|
4083
4643
|
case "boolean": return typeof value === "boolean";
|
|
4084
4644
|
case "date": return typeof value === "string" && value.length > 0;
|
|
@@ -4930,6 +5490,6 @@ function decodeBase64(input) {
|
|
|
4930
5490
|
return decodeURIComponent(escape(atob(input)));
|
|
4931
5491
|
}
|
|
4932
5492
|
//#endregion
|
|
4933
|
-
export {
|
|
5493
|
+
export { dateRuleIntent as A, useTableControls as B, getOperatorsForField as C, isRangeOperator as D, isNumericComparisonOperator as E, getActiveFilters as F, DataTableCompactBar as H, isFilterActive as I, resolveFilterTypeDefinition as L, TableViewConfiguration as M, TableViewConfigurationDropdown as N, isValuelessOperator as O, FiltersContainer as P, TableControlsContext as R, getDefaultOperatorForType as S, isCompleteDateRange as T, ControlBar as V, FILTER_SIZE_TOKENS as _, encodeFilterStateToUrlParam as a, NUMERIC_COMPARISON_OPERATORS as b, FilterBar_default as c, isFilterStateV2 as d, pruneToRegistry as f, resolveValueControl as g, PillShell as h, decodeFilterStateFromUrl as i, TableControls as j, reconcileValueForOperator as k, useFilterStateV2 as l, isEmptyState as m, applyFilterStateToSearchParams as n, FieldRegistry as o, EMPTY_FILTER_STATE as p, decodeFilterStateFromString as r, buildFieldRegistry as s, FILTER_STATE_URL_PARAM as t, hasCompleteValue as u, useFilterBarSize as v, getOperatorsForType as w, emptyValueForRule as x, resolveDateRangeRuleValue as y, TableControlsProvider as z };
|
|
4934
5494
|
|
|
4935
|
-
//# sourceMappingURL=TableControls-
|
|
5495
|
+
//# sourceMappingURL=TableControls-DxSFqRwJ.mjs.map
|