@persona/design-system 0.8.1 → 0.8.2
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 +40 -0
- package/dist/Accordion.d.mts +1 -1
- package/dist/AccordionItem.d.mts +1 -1
- package/dist/{Action-BwYS9qaG.d.mts → Action-C6yvIekn.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-D-5tbZDw.mjs → Badge-uY8l1p1R.mjs} +2 -2
- package/dist/{Badge-D-5tbZDw.mjs.map → Badge-uY8l1p1R.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumb-BADja8tn.d.mts → Breadcrumb-Tjk9FyiF.d.mts} +1 -1
- package/dist/Breadcrumb.d.mts +1 -1
- package/dist/{Breadcrumbs-CxP7ktfM.d.mts → Breadcrumbs-DSCbZmAx.d.mts} +2 -2
- package/dist/{Breadcrumbs-CNpM0aXm.mjs → Breadcrumbs-EQm5iiRA.mjs} +8 -8
- package/dist/{Breadcrumbs-CNpM0aXm.mjs.map → Breadcrumbs-EQm5iiRA.mjs.map} +1 -1
- package/dist/Breadcrumbs.d.mts +1 -1
- package/dist/{Button-CnswHEJ2.d.mts → Button-22DkIpYp.d.mts} +4 -4
- package/dist/Button.d.mts +1 -1
- package/dist/{Calendar-Cke5IlMI.d.mts → Calendar-DANGQNlH.d.mts} +1 -1
- package/dist/Calendar.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-Dz6jqJuJ.mjs → Card-BXNxWX5C.mjs} +4 -4
- package/dist/{Card-Dz6jqJuJ.mjs.map → Card-BXNxWX5C.mjs.map} +1 -1
- package/dist/{Card-Bp6L08H4.d.mts → Card-DQE1J3gk.d.mts} +3 -3
- package/dist/Card.d.mts +1 -1
- package/dist/{CardV2-DEW6mw_o.mjs → CardV2-Ds6e577k.mjs} +9 -9
- package/dist/{CardV2-DEW6mw_o.mjs.map → CardV2-Ds6e577k.mjs.map} +1 -1
- package/dist/{Checkbox-GibG2pg5.mjs → Checkbox-BQC_SmBt.mjs} +4 -4
- package/dist/{Checkbox-GibG2pg5.mjs.map → Checkbox-BQC_SmBt.mjs.map} +1 -1
- package/dist/{Checkbox-DUXws1Os.d.mts → Checkbox-CsJlWz-r.d.mts} +1 -1
- package/dist/Checkbox.d.mts +1 -1
- package/dist/{CheckboxGroupField-DzdOYIjo.d.mts → CheckboxGroupField-DjKp63Dr.d.mts} +3 -3
- package/dist/CheckboxGroupField.d.mts +1 -1
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-CnxmKUQf.d.mts → Combobox-D1iXiYGV.d.mts} +3 -3
- package/dist/{Combobox-CCDoNF9Y.mjs → Combobox-MCaDc7h6.mjs} +10 -10
- package/dist/{Combobox-CCDoNF9Y.mjs.map → Combobox-MCaDc7h6.mjs.map} +1 -1
- package/dist/Combobox.d.mts +2 -2
- package/dist/{ComboboxBase-CtNrsPO9.d.mts → ComboboxBase-DXhu2YSh.d.mts} +6 -6
- package/dist/ComboboxBase.d.mts +1 -1
- package/dist/{ComboboxMultiSelect-CMH6iVu4.d.mts → ComboboxMultiSelect-BSyJc46m.d.mts} +2 -2
- package/dist/ComboboxMultiSelect.d.mts +1 -1
- package/dist/{ComboboxSingleSelect-BLPbLmMY.d.mts → ComboboxSingleSelect-Dg_6h4iB.d.mts} +4 -4
- package/dist/ComboboxSingleSelect.d.mts +1 -1
- package/dist/{CompactBar-BwKIIlWz.d.mts → CompactBar-CVGNq7Zu.d.mts} +3 -3
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-BQXN2Pgj.mjs → ConfigFormGroup-CidT_cE9.mjs} +2 -2
- package/dist/{ConfigFormGroup-BQXN2Pgj.mjs.map → ConfigFormGroup-CidT_cE9.mjs.map} +1 -1
- package/dist/{ControlBar-BJUY6GOX.d.mts → ControlBar-K43YI-LU.d.mts} +17 -2
- package/dist/ControlBar.d.mts +1 -1
- package/dist/DataTable.d.mts +6 -3
- package/dist/{DateField-BojOHfrv.d.mts → DateField-DY3xCygL.d.mts} +2 -2
- package/dist/DateField.d.mts +1 -1
- package/dist/{DatePicker-BHVx_i_F.d.mts → DatePicker-C56kJLiX.d.mts} +2 -2
- package/dist/{DatePicker-LPIJrc0n.mjs → DatePicker-CKk6Hnj2.mjs} +40 -8
- package/dist/DatePicker-CKk6Hnj2.mjs.map +1 -0
- package/dist/DatePicker.d.mts +1 -1
- package/dist/{DateRangePicker-CelDK_44.d.mts → DateRangePicker-C96NKOon.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-i5Dmxiq1.mjs → DropdownButton-B-cYK2oi.mjs} +3 -3
- package/dist/{DropdownButton-i5Dmxiq1.mjs.map → DropdownButton-B-cYK2oi.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-YtLxcNWt.d.mts → DropdownMenu-BwPtzVWg.d.mts} +2 -2
- package/dist/{DropdownMenu-j8NWbAvM.mjs → DropdownMenu-CedsmO5h.mjs} +2 -2
- package/dist/{DropdownMenu-j8NWbAvM.mjs.map → DropdownMenu-CedsmO5h.mjs.map} +1 -1
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{ErrorProps-6dRdJ4QQ.d.mts → ErrorProps-C-sfKFxK.d.mts} +1 -1
- package/dist/ErrorProps.d.mts +1 -1
- package/dist/{FieldRegistry-DqO8HiYb.d.mts → FieldRegistry-C2eIbP1X.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-CpAA2Ozk.d.mts → FilterBar-BNbMjWDC.d.mts} +4 -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 +1 -1
- package/dist/FloatValueControl.d.mts +1 -1
- package/dist/{FormControl-bDxFF0hl.mjs → FormControl-C4CiA0H-.mjs} +4 -4
- package/dist/{FormControl-bDxFF0hl.mjs.map → FormControl-C4CiA0H-.mjs.map} +1 -1
- package/dist/{FormControl-B-s6G9mp.d.mts → FormControl-DICrNHcc.d.mts} +2 -2
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +1 -1
- package/dist/{FormField-DbcqNcx2.mjs → FormField-CB0yCMro.mjs} +16 -16
- package/dist/{FormField-DbcqNcx2.mjs.map → FormField-CB0yCMro.mjs.map} +1 -1
- package/dist/{FormField-D3k-f3-f.d.mts → FormField-D97xQCxF.d.mts} +2 -2
- package/dist/FormField.d.mts +1 -1
- package/dist/{Grid-CeH9E5Ai.mjs → Grid-D0mlxk8_.mjs} +1 -1
- package/dist/{Grid-CeH9E5Ai.mjs.map → Grid-D0mlxk8_.mjs.map} +1 -1
- package/dist/{Header-2K49LYkR.d.mts → Header-Ca554S1F.d.mts} +1 -1
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-CTHUM2nC.d.mts → HelperTooltip-Dk2eqeC_.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/HighlightedText.d.mts +2 -2
- package/dist/{HoverCopyableField-BARZLhfO.mjs → HoverCopyableField-CewUtxZl.mjs} +6 -6
- package/dist/{HoverCopyableField-BARZLhfO.mjs.map → HoverCopyableField-CewUtxZl.mjs.map} +1 -1
- package/dist/I18nContext-DXcImEuM.d.mts +22 -0
- package/dist/I18nContext.d.mts +2 -0
- package/dist/{IconButton-BHFCjvzs.mjs → IconButton-H5vDZOdo.mjs} +3 -3
- package/dist/{IconButton-BHFCjvzs.mjs.map → IconButton-H5vDZOdo.mjs.map} +1 -1
- package/dist/{IconButton-D5hx405r.d.mts → IconButton-Vq0MUaNj.d.mts} +2 -2
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +1 -1
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-BQbcIiVj.d.mts → Input-BRe0qyUe.d.mts} +3 -3
- package/dist/{Input-BQN97Hzm.mjs → Input-CY14-YeD.mjs} +4 -4
- package/dist/{Input-BQN97Hzm.mjs.map → Input-CY14-YeD.mjs.map} +1 -1
- package/dist/Input.d.mts +1 -1
- package/dist/{InputProps-DT1ZReZS.d.mts → InputProps-B2ngFfvF.d.mts} +2 -2
- package/dist/InputProps.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +1 -1
- package/dist/{Link-Bzm4AL5J.mjs → Link-BSuXrvTu.mjs} +2 -2
- package/dist/{Link-Bzm4AL5J.mjs.map → Link-BSuXrvTu.mjs.map} +1 -1
- package/dist/Link.d.mts +1 -1
- package/dist/{ListBox-DOqN9DNl.mjs → ListBox-2aYWNlO_.mjs} +13 -10
- package/dist/{ListBox-DOqN9DNl.mjs.map → ListBox-2aYWNlO_.mjs.map} +1 -1
- package/dist/{ListBox-CdqRwBvA.d.mts → ListBox-DzZY7IFz.d.mts} +3 -3
- package/dist/ListBox.d.mts +1 -1
- package/dist/{ListBoxField-Bl2WLplO.d.mts → ListBoxField-DT_-4_Ct.d.mts} +4 -4
- package/dist/ListBoxField.d.mts +1 -1
- package/dist/{LoadingShimmer-Ds7rvIUN.mjs → LoadingShimmer-Bqjdut7i.mjs} +1 -1
- package/dist/{LoadingShimmer-Ds7rvIUN.mjs.map → LoadingShimmer-Bqjdut7i.mjs.map} +1 -1
- package/dist/LoadingShimmer.d.mts +1 -1
- package/dist/{LogicRow-CwMAn1sh.d.mts → LogicRow-l66qss7_.d.mts} +3 -3
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/{Menu-CUN9bmc1.d.mts → Menu-DQXbnpDB.d.mts} +3 -3
- package/dist/{Menu-DjW2b3Wk.mjs → Menu-Dw6Rcpk6.mjs} +2 -2
- package/dist/{Menu-DjW2b3Wk.mjs.map → Menu-Dw6Rcpk6.mjs.map} +1 -1
- package/dist/Menu.d.mts +1 -1
- package/dist/{Modal-CGXJGrKg.d.mts → Modal-Bz5Rer1b.d.mts} +2 -2
- package/dist/{Modal-DHLPK65-.mjs → Modal-dpBu2MKp.mjs} +6 -6
- package/dist/{Modal-DHLPK65-.mjs.map → Modal-dpBu2MKp.mjs.map} +1 -1
- package/dist/Modal.d.mts +1 -1
- package/dist/{PageHeader-eI4RM_uL.mjs → PageHeader-CLO8SMXV.mjs} +3 -3
- package/dist/{PageHeader-eI4RM_uL.mjs.map → PageHeader-CLO8SMXV.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +1 -1
- package/dist/{PageSelector-kAfYxEky.d.mts → PageSelector--kFA7Xt6.d.mts} +3 -3
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-6BDOn9bX.mjs → Pagination-BEddsarh.mjs} +40 -49
- package/dist/Pagination-BEddsarh.mjs.map +1 -0
- package/dist/{Pagination-Bhr7xyd2.d.mts → Pagination-CglxJr3f.d.mts} +2 -2
- package/dist/Pagination.d.mts +1 -1
- package/dist/{Pii-DhL1gblz.mjs → Pii-Ct7yDY7d.mjs} +2 -2
- package/dist/{Pii-DhL1gblz.mjs.map → Pii-Ct7yDY7d.mjs.map} +1 -1
- package/dist/{PillShell-CVJL1k5I.d.mts → PillShell-CvJzkRFh.d.mts} +2 -2
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-CbYaWrAy.mjs → Popover-532iYFek.mjs} +3 -3
- package/dist/{Popover-CbYaWrAy.mjs.map → Popover-532iYFek.mjs.map} +1 -1
- package/dist/{ProgressIndicator-CYyM6OSx.d.mts → ProgressIndicator-Cleq0Tfb.d.mts} +1 -1
- package/dist/{ProgressIndicator-BpF3XLn3.mjs → ProgressIndicator-STyTM0Hq.mjs} +1 -1
- package/dist/{ProgressIndicator-BpF3XLn3.mjs.map → ProgressIndicator-STyTM0Hq.mjs.map} +1 -1
- package/dist/ProgressIndicator.d.mts +1 -1
- package/dist/{PseudoClassProps-BOVN6Etr.d.mts → PseudoClassProps-B2R2dyr3.d.mts} +1 -1
- package/dist/PseudoClassProps.d.mts +1 -1
- package/dist/{Radio-DPaX-9LH.mjs → Radio-BtomkCkL.mjs} +2 -2
- package/dist/{Radio-DPaX-9LH.mjs.map → Radio-BtomkCkL.mjs.map} +1 -1
- package/dist/{RadioGroup-C0l0pdEt.d.mts → RadioGroup-B3B4PCz6.d.mts} +1 -1
- package/dist/{RadioGroup-D7f4m2Uc.mjs → RadioGroup-B6UaoJRd.mjs} +2 -2
- package/dist/{RadioGroup-D7f4m2Uc.mjs.map → RadioGroup-B6UaoJRd.mjs.map} +1 -1
- package/dist/RadioGroup.d.mts +1 -1
- package/dist/{RangeCalendar-BJn9V3iN.d.mts → RangeCalendar-C24q-nvR.d.mts} +2 -2
- package/dist/RangeCalendar.d.mts +1 -1
- package/dist/RangeCalendarPresets.d.mts +1 -1
- package/dist/{RouterContext-BLrzYlJ_.d.mts → RouterContext-BhPPG7d3.d.mts} +2 -2
- package/dist/{RouterContext-CsPnkNdI.mjs → RouterContext-nPSb55p9.mjs} +1 -1
- package/dist/{RouterContext-CsPnkNdI.mjs.map → RouterContext-nPSb55p9.mjs.map} +1 -1
- package/dist/RouterContext.d.mts +1 -1
- package/dist/{RouterLink-BHXjhqps.d.mts → RouterLink-IDO10cDE.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-Buh8LdIL.d.mts → SearchInput-7pBMxhuN.d.mts} +2 -2
- package/dist/SearchInput.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-B9qLyIIW.d.mts → SegmentedControl-B9yo9yMy.d.mts} +1 -1
- package/dist/{SegmentedControl-zEvBtVj0.mjs → SegmentedControl-BNVwf7nL.mjs} +2 -2
- package/dist/{SegmentedControl-zEvBtVj0.mjs.map → SegmentedControl-BNVwf7nL.mjs.map} +1 -1
- package/dist/SegmentedControl.d.mts +1 -1
- package/dist/{Select-Cv_9PLOt.d.mts → Select-D7_npfZr.d.mts} +3 -3
- package/dist/{Select-BoZuM_e9.mjs → Select-DD7mFvR8.mjs} +7 -7
- package/dist/{Select-BoZuM_e9.mjs.map → Select-DD7mFvR8.mjs.map} +1 -1
- package/dist/Select.d.mts +1 -1
- package/dist/SmartTextInput.d.mts +9 -9
- 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/{Spacer-BFOuo0sZ.mjs → Spacer-J_HuhxX2.mjs} +1 -1
- package/dist/{Spacer-BFOuo0sZ.mjs.map → Spacer-J_HuhxX2.mjs.map} +1 -1
- package/dist/{Spinner-CarSRiBF.mjs → Spinner-uVZyOh1T.mjs} +1 -1
- package/dist/{Spinner-CarSRiBF.mjs.map → Spinner-uVZyOh1T.mjs.map} +1 -1
- package/dist/{Stack-CEPzs4Pb.mjs → Stack-BkC7FCdF.mjs} +1 -1
- package/dist/{Stack-CEPzs4Pb.mjs.map → Stack-BkC7FCdF.mjs.map} +1 -1
- package/dist/{Stack-XzBzPvSV.d.mts → Stack-opuYfQvc.d.mts} +1 -1
- package/dist/Stack.d.mts +1 -1
- package/dist/{StatusIndicator-bEnMWV_S.mjs → StatusIndicator-akDwBiBW.mjs} +1 -1
- package/dist/{StatusIndicator-bEnMWV_S.mjs.map → StatusIndicator-akDwBiBW.mjs.map} +1 -1
- package/dist/{Sticker-B-fU8lgu.mjs → Sticker-DdhSpTcV.mjs} +3 -3
- package/dist/{Sticker-B-fU8lgu.mjs.map → Sticker-DdhSpTcV.mjs.map} +1 -1
- package/dist/{Sticker-DGfNuxUK.d.mts → Sticker-rxBNVYlX.d.mts} +4 -4
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +1 -1
- package/dist/Tab.d.mts +1 -1
- package/dist/{TabBar-BSl5v5aa.mjs → TabBar-DBOPWUUa.mjs} +6 -9
- package/dist/TabBar-DBOPWUUa.mjs.map +1 -0
- package/dist/{Table-msXj0glu.mjs → Table--o4ZLRbb.mjs} +4 -4
- package/dist/{Table-msXj0glu.mjs.map → Table--o4ZLRbb.mjs.map} +1 -1
- package/dist/{Table-B2V5tlfA.d.mts → Table-Bt7zAlgQ.d.mts} +1 -1
- package/dist/Table.d.mts +1 -1
- package/dist/{TableBody-SlQe4Jyp.d.mts → TableBody-9AYpXi2y.d.mts} +1 -1
- package/dist/TableBody.d.mts +1 -1
- package/dist/{TableBox-CF1_Fk0j.mjs → TableBox-BGabyY7E.mjs} +10 -10
- package/dist/{TableBox-CF1_Fk0j.mjs.map → TableBox-BGabyY7E.mjs.map} +1 -1
- package/dist/TableBox.d.mts +2 -2
- package/dist/{TableBoxCell-BRhGeUnO.d.mts → TableBoxCell-6ovTrboM.d.mts} +6 -6
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/{TableBoxField-Cq9M1upV.d.mts → TableBoxField-mGTYb-Bz.d.mts} +5 -5
- package/dist/TableBoxField.d.mts +1 -1
- package/dist/{TableBoxRow-DZzRYoID.d.mts → TableBoxRow-56QatuNm.d.mts} +3 -3
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-4-j3flJq.d.mts → TableBoxRowActions-9rR-k_4H.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{TableCell-D5Sqb6iO.d.mts → TableCell-WD0ultKh.d.mts} +2 -2
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-CqW_nyBY.mjs → TableControls-B5UGCoO-.mjs} +561 -305
- package/dist/TableControls-B5UGCoO-.mjs.map +1 -0
- package/dist/{TableControls-B-LakH-8.d.mts → TableControls-DVO-obFo.d.mts} +6 -3
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-Dh1YVmBM.d.mts → TableControlsContext-BDl9k4o4.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableHead-BCrVa0BY.d.mts → TableHead-DqcFsWpz.d.mts} +1 -1
- package/dist/TableHead.d.mts +1 -1
- package/dist/{TableHeaderCell-CcEkDozs.d.mts → TableHeaderCell-C1PJHhXZ.d.mts} +1 -1
- package/dist/TableHeaderCell.d.mts +1 -1
- package/dist/{TableLayout-Bhj1QBBz.d.mts → TableLayout-B4qzMWXH.d.mts} +1 -1
- package/dist/TableLayout.d.mts +1 -1
- package/dist/{TableRow-Cy1y7b9S.d.mts → TableRow-B1yeAiVf.d.mts} +2 -2
- package/dist/TableRow.d.mts +1 -1
- package/dist/TableTH.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-BzygLtGm.d.mts → TableViewConfigurationDropdown-DBdUHK__.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-B6T7cHHc.mjs → TechnicalSticker-CALVwnrT.mjs} +3 -3
- package/dist/{TechnicalSticker-B6T7cHHc.mjs.map → TechnicalSticker-CALVwnrT.mjs.map} +1 -1
- package/dist/{Text-BdluS7Fy.mjs → Text-CSwFifQF.mjs} +1 -1
- package/dist/{Text-BdluS7Fy.mjs.map → Text-CSwFifQF.mjs.map} +1 -1
- package/dist/{Text-BVGJ-Nlw.d.mts → Text-D4GzsXFA.d.mts} +3 -3
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-Bzj593VO.d.mts → TextArea-BL8BTgwk.d.mts} +2 -2
- package/dist/{TextArea-C1CmFRiz.mjs → TextArea-kOkhZxNR.mjs} +2 -2
- package/dist/{TextArea-C1CmFRiz.mjs.map → TextArea-kOkhZxNR.mjs.map} +1 -1
- package/dist/TextArea.d.mts +1 -1
- package/dist/{TextUnderlineTooltip-CgFmtqF_.d.mts → TextUnderlineTooltip-Sdxqsr6y.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-CntyMUPJ.mjs → Toggle-CZF6iBql.mjs} +4 -4
- package/dist/{Toggle-CntyMUPJ.mjs.map → Toggle-CZF6iBql.mjs.map} +1 -1
- package/dist/{Toggle-bSu1xAaq.d.mts → Toggle-cUtrUIIO.d.mts} +1 -1
- package/dist/Toggle.d.mts +1 -1
- package/dist/{Tooltip-C0FuZS1C.mjs → Tooltip-B-0VRuKT.mjs} +2 -2
- package/dist/{Tooltip-C0FuZS1C.mjs.map → Tooltip-B-0VRuKT.mjs.map} +1 -1
- package/dist/{Tooltip-Duw4Fz1t.d.mts → Tooltip-CSM977L6.d.mts} +2 -2
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-CbTpX_R1.d.mts → TruncatedText-CCUrvW2a.d.mts} +1 -1
- package/dist/VersionHistory.d.mts +1 -1
- package/dist/{VersionHistoryItem-D05QYej7.d.mts → VersionHistoryItem-DBjL9S5_.d.mts} +1 -1
- package/dist/VersionHistoryItem.d.mts +1 -1
- package/dist/WizardModal.d.mts +2 -2
- package/dist/{accordionTitleTypography-Leehcmb3.d.mts → accordionTitleTypography--GAczLo7.d.mts} +2 -2
- package/dist/accordionTitleTypography.d.mts +1 -1
- package/dist/{chainTypes-D8SGRGba.d.mts → chainTypes-dY6jc22J.d.mts} +4 -4
- package/dist/{codec-Vsztf4fe.d.mts → codec-D2uE0_oJ.d.mts} +2 -2
- package/dist/codec.d.mts +1 -1
- package/dist/{color-CrlF3pba.d.mts → color-DuKiTH5t.d.mts} +2 -2
- package/dist/components/Accordion/index.d.mts +1 -1
- package/dist/components/Accordion/index.mjs +2 -2
- package/dist/components/Attribute/index.mjs +4 -4
- 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/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/CodeHighlight/index.mjs +2 -2
- package/dist/components/Combobox/index.d.mts +2 -2
- package/dist/components/Combobox/index.mjs +1 -1
- package/dist/components/ConfigFormGroup/index.mjs +2 -2
- package/dist/components/DataTable/TableControls/index.d.mts +19 -19
- package/dist/components/DataTable/TableControls/index.mjs +1 -1
- package/dist/components/DataTable/index.d.mts +2 -2
- package/dist/components/DataTable/index.mjs +83 -60
- package/dist/components/DataTable/index.mjs.map +1 -1
- package/dist/components/DataTable/types.d.mts +9 -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 +3 -3
- 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 +7 -7
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/Link/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.mjs +1 -1
- package/dist/components/Pagination/index.d.mts +3 -3
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Pii/index.mjs +1 -1
- package/dist/components/Popover/index.mjs +1 -1
- package/dist/components/ProgressBar/index.mjs +1 -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 +4 -4
- package/dist/components/SegmentedControl/index.d.mts +1 -1
- package/dist/components/SegmentedControl/index.mjs +1 -1
- package/dist/components/Select/index.d.mts +1 -1
- package/dist/components/Select/index.mjs +1 -1
- package/dist/components/Slider/index.mjs +1 -1
- package/dist/components/SmartTextInput/index.d.mts +2 -2
- package/dist/components/SmartTextInput/index.mjs +8 -8
- 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/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 +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/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 +4 -4
- 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/Tooltip/index.mjs +1 -1
- package/dist/components/VersionHistory/index.d.mts +1 -1
- package/dist/components/VersionHistory/index.mjs +8 -8
- package/dist/compound-expression.d.mts +1 -1
- package/dist/{constants-CQUCM6__.d.mts → constants-BiOvZGO5.d.mts} +1 -1
- package/dist/constants.d.mts +1 -1
- package/dist/{createPath-Bq7wYGt_.d.mts → createPath-B8EZDtSz.d.mts} +2 -2
- package/dist/createPath.d.mts +1 -1
- package/dist/{date-filter-D6IfCkwp.mjs → date-filter-CWgCXz85.mjs} +1 -1
- package/dist/{date-filter-D6IfCkwp.mjs.map → date-filter-CWgCXz85.mjs.map} +1 -1
- package/dist/{date-range-rule-value-DVhMQP4-.d.mts → date-range-rule-value-DObVM8xO.d.mts} +2 -2
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/{date-rule-intent-BwQ6OTVD.d.mts → date-rule-intent-DhMMe_wq.d.mts} +3 -3
- package/dist/date-rule-intent.d.mts +1 -1
- package/dist/display.d.mts +12 -4
- package/dist/fieldPickerOptions.d.mts +5 -3
- package/dist/{filter-size-context-BjTzcZwZ.d.mts → filter-size-context-DaBdvJHf.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/format-date-value.d.mts +6 -1
- package/dist/formatDateTime-mPH4DsDC.d.mts +30 -0
- package/dist/formatDateTime.d.mts +2 -0
- package/dist/helpers.d.mts +24 -10
- package/dist/i18n-UiE7OC4k.mjs +203 -0
- package/dist/i18n-UiE7OC4k.mjs.map +1 -0
- package/dist/{index-BFIFjR7Q.d.mts → index-Blo6W_k0.d.mts} +2 -2
- package/dist/{index-BhDvrF4l.d.mts → index-CTcM_LlP.d.mts} +3 -3
- package/dist/{index-C-xpEL8b.d.mts → index-CeUb5INA.d.mts} +2 -2
- package/dist/index-kxcPLmUx2.d.mts +1 -0
- package/dist/index.d.mts +1 -1
- package/dist/index2.d.mts +1 -1
- package/dist/index3.d.mts +3 -3
- package/dist/index4.d.mts +1 -1
- package/dist/index5.d.mts +14 -14
- package/dist/{input-DpHBIUpP.d.mts → input-D9rsMlzl.d.mts} +3 -3
- package/dist/{inputFields-BVDurw3L.d.mts → inputFields-CXelxYhd.d.mts} +11 -11
- package/dist/inputFields.d.mts +1 -1
- package/dist/{intersperse-bvY2gibK.mjs → intersperse-ObkRVOag.mjs} +1 -1
- package/dist/{intersperse-bvY2gibK.mjs.map → intersperse-ObkRVOag.mjs.map} +1 -1
- package/dist/{jsonSchema-Bl-qzgrr.d.mts → jsonSchema-BMPLdT4p.d.mts} +1 -1
- package/dist/lib/PDSProvider.d.mts +14 -2
- package/dist/lib/PDSProvider.mjs +15 -8
- package/dist/lib/PDSProvider.mjs.map +1 -1
- package/dist/lib/TruncatedText.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.mjs +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 +4 -0
- package/dist/lib/i18n/index.mjs +2 -0
- 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/methodChain.mjs +1 -1
- 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/reactRouter.mjs +1 -1
- package/dist/lib/router/adapters/tanstack.d.mts +1 -1
- package/dist/lib/router/adapters/tanstack.mjs +1 -1
- package/dist/lib/router/index.d.mts +5 -5
- package/dist/lib/router/index.mjs +2 -2
- package/dist/lib/schemaOptions.d.mts +1 -1
- package/dist/lib/schemaOptions.mjs +1 -1
- package/dist/lib/semanticColor.d.mts +1 -1
- package/dist/lib/useChain.d.mts +1 -1
- package/dist/lib/useChain.mjs +1 -1
- package/dist/{listbox-options-BjOkovND.d.mts → listbox-options-BFaMbK-g.d.mts} +3 -3
- package/dist/listbox-options.d.mts +1 -1
- package/dist/{message-w_1-kTDE.d.mts → message-BOzjC5yA.d.mts} +1 -1
- package/dist/{methodChain-B5vZEOff.d.mts → methodChain-CGTIWafl.d.mts} +4 -4
- package/dist/{methodChain-L_h8Z8Bx.mjs → methodChain-xZ1_vhbz.mjs} +1 -1
- package/dist/{methodChain-L_h8Z8Bx.mjs.map → methodChain-xZ1_vhbz.mjs.map} +1 -1
- package/dist/{methodChainTypes-BVkTI8MX.d.mts → methodChainTypes-BtSMV5OZ.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-BG82-g3M.d.mts → operators-DfvW8Kmr.d.mts} +9 -4
- package/dist/operators.d.mts +1 -1
- package/dist/{palette-C8tyI81D.d.mts → palette-CBOBcVu3.d.mts} +3 -3
- package/dist/palette.d.mts +1 -1
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +5 -5
- package/dist/patterns/PageLayout/index.mjs +2 -2
- package/dist/patterns/WizardModal/index.mjs +4 -4
- package/dist/reactRouterFallback.d.mts +1 -1
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/{router-7FYDW80v.mjs → router-COrZcVkf.mjs} +2 -2
- package/dist/{router-7FYDW80v.mjs.map → router-COrZcVkf.mjs.map} +1 -1
- package/dist/safe-parse.d.mts +1 -1
- package/dist/{schemaOptions-DGca6x7E.d.mts → schemaOptions-DTeNBwir.d.mts} +3 -3
- package/dist/{semantic-D1661f_6.d.mts → semantic-CfiNA4Yy.d.mts} +1 -1
- package/dist/{semanticColor-Bg0H3RUL.d.mts → semanticColor-BCPOKF9L.d.mts} +3 -3
- package/dist/strings-BaQZhOjo.d.mts +143 -0
- package/dist/strings.d.mts +2 -0
- package/dist/{text-Iw9DKpbZ.d.mts → text-ucZmPNyH.d.mts} +1 -1
- package/dist/{theme-BB1B6Wkz.d.mts → theme-CAPmp1it.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-DdTu747j.d.mts → types-B1KzKgBp.d.mts} +1 -1
- package/dist/{types-BYRTxB0a.d.mts → types-BB5WwerD.d.mts} +2 -2
- package/dist/{types-B0ilOIfE.d.mts → types-BfrEduGv.d.mts} +2 -2
- package/dist/{types-CI2bPi02.d.mts → types-CBfgdnuB.d.mts} +1 -1
- package/dist/{types-D1DijcJv.d.mts → types-ClbV4wNp.d.mts} +1 -1
- package/dist/{types-DZTbvdpO.d.mts → types-CoTzVfFl.d.mts} +1 -1
- package/dist/{types-Cs6CdZCO.d.mts → types-CptsgFbu.d.mts} +4 -4
- package/dist/{types-Dy3lZv9z.d.mts → types-Rj-C3LGL.d.mts} +2 -2
- package/dist/{types-M-rsm1Km.d.mts → types-l-arEBLb.d.mts} +1 -1
- package/dist/types.d.mts +1 -1
- package/dist/types2.d.mts +1 -1
- package/dist/types3.d.mts +1 -1
- package/dist/types4.d.mts +1 -1
- package/dist/types5.d.mts +1 -1
- package/dist/types6.d.mts +1 -1
- package/dist/types7.d.mts +1 -1
- package/dist/{url-state-DWA7UFxS.d.mts → url-state-CrnZ3Ocy.d.mts} +2 -2
- package/dist/url-state.d.mts +1 -1
- package/dist/{useChain-CKqYGdx4.mjs → useChain-Cu4KDfFk.mjs} +2 -2
- package/dist/{useChain-CKqYGdx4.mjs.map → useChain-Cu4KDfFk.mjs.map} +1 -1
- package/dist/{useChain-CEsXE2Bx.d.mts → useChain-DQq1UsGZ.d.mts} +6 -6
- package/dist/useChainAtCursor.d.mts +6 -6
- package/dist/useCodeChainFunctionPanel.d.mts +1 -1
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-DoJ9lyJx.d.mts → useFilterStateV2-CGGABOcq.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useFormField-BtnAYcHV.d.mts → useFormField-4w9TNFgD.d.mts} +2 -2
- package/dist/{useFormField-BAmkdxtA.mjs → useFormField-CbNYbDdp.mjs} +2 -2
- package/dist/{useFormField-BAmkdxtA.mjs.map → useFormField-CbNYbDdp.mjs.map} +1 -1
- package/dist/useFormField.d.mts +1 -1
- package/dist/{useFormGroup-BZayb9fZ.mjs → useFormGroup-CsKC93Pt.mjs} +1 -1
- package/dist/{useFormGroup-BZayb9fZ.mjs.map → useFormGroup-CsKC93Pt.mjs.map} +1 -1
- package/dist/{useLocationPathname-pLyLOrAi.d.mts → useLocationPathname-CZwH8h5n.d.mts} +1 -1
- package/dist/useLocationPathname.d.mts +1 -1
- package/dist/{useTableBoxDragAndDrop-wjc_LCpC.d.mts → useTableBoxDragAndDrop-Bw93rNFH.d.mts} +1 -1
- package/dist/useTableBoxDragAndDrop.d.mts +1 -1
- package/dist/{useToggle-DUHQjohK.mjs → useToggle-DRzCDqrc.mjs} +1 -1
- package/dist/{useToggle-DUHQjohK.mjs.map → useToggle-DRzCDqrc.mjs.map} +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/{utilities-DL18UdPs.d.mts → utilities-B8PzMOza.d.mts} +1 -1
- package/dist/utilities.d.mts +1 -1
- package/dist/utils/storybook.mjs +1 -1
- package/dist/utils/testing.d.mts +1 -1
- package/dist/utils.d.mts +1 -1
- package/dist/utils4.d.mts +5 -5
- package/dist/{validation-PeVTwtd-.d.mts → validation-DP8f6tgh.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/validation2.d.mts +4 -4
- package/dist/{value-control-resolver-Cx_wXQFv.d.mts → value-control-resolver-CwjOaVAn.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 +1 -1
- package/package.json +3 -1
- package/skills/ui-authoring/COMPONENTS.md +1 -0
- package/skills/ui-authoring/SKILL.md +23 -0
- package/dist/DatePicker-LPIJrc0n.mjs.map +0 -1
- package/dist/Pagination-6BDOn9bX.mjs.map +0 -1
- package/dist/TabBar-BSl5v5aa.mjs.map +0 -1
- package/dist/TableControls-CqW_nyBY.mjs.map +0 -1
- /package/dist/{index-7in8TPrM.d.mts → index-1-AkepUA.d.mts} +0 -0
- /package/dist/{index-BCq_fh4A2.d.mts → index-B-Y-ZG2x.d.mts} +0 -0
- /package/dist/{index-BINnViIh.d.mts → index-BO_854F2.d.mts} +0 -0
- /package/dist/{index-BMBcfD_R.d.mts → index-BSVhZrWN.d.mts} +0 -0
- /package/dist/{index-BOn0AAue.d.mts → index-BYARwRq7.d.mts} +0 -0
- /package/dist/{index-BjgW3E7y.d.mts → index-B_BBnMou.d.mts} +0 -0
- /package/dist/{index-BwXb5CoQ.d.mts → index-BbPybiOV.d.mts} +0 -0
- /package/dist/{index-C3usUse7.d.mts → index-Bt4QNofW.d.mts} +0 -0
- /package/dist/{index-CCKHlTA4.d.mts → index-CCt0lwyI.d.mts} +0 -0
- /package/dist/{index-CP2eJYlK.d.mts → index-CIABef8t.d.mts} +0 -0
- /package/dist/{index-CWB6exYm.d.mts → index-CTHojwxd.d.mts} +0 -0
- /package/dist/{index-CuYZJcK3.d.mts → index-CliqZ9rj.d.mts} +0 -0
- /package/dist/{index-CuheJfs-.d.mts → index-Cm-1i165.d.mts} +0 -0
- /package/dist/{index-D-9tW2r5.d.mts → index-CzItj62a.d.mts} +0 -0
- /package/dist/{index-D9XihFV1.d.mts → index-CzUpNo0e.d.mts} +0 -0
- /package/dist/{index-Deol7ZWO.d.mts → index-D-giXKyu.d.mts} +0 -0
- /package/dist/{index-Dflz2i1X.d.mts → index-DGsJdI5l.d.mts} +0 -0
- /package/dist/{index-DjOaHFU3.d.mts → index-DMRtRo7y.d.mts} +0 -0
- /package/dist/{index-DkrC-i1D.d.mts → index-DUF59i3Q2.d.mts} +0 -0
- /package/dist/{index-DrK1_jKY.d.mts → index-DgJfEygr.d.mts} +0 -0
- /package/dist/{index-Iujpc9_6.d.mts → index-Es5nKSSL.d.mts} +0 -0
- /package/dist/{index-e6k85DKM.d.mts → index-NKYLt_R9.d.mts} +0 -0
- /package/dist/{index-gpCH5158.d.mts → index-Qwqzz3XM.d.mts} +0 -0
- /package/dist/{index-irNqT1qQ2.d.mts → index-T2S0_qsg.d.mts} +0 -0
- /package/dist/{index-xmouCHX9.d.mts → index-bHnO4ZKt.d.mts} +0 -0
|
@@ -1,45 +1,49 @@
|
|
|
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-UiE7OC4k.mjs";
|
|
2
3
|
import { TruncatedText } from "./lib/TruncatedText.mjs";
|
|
3
4
|
import { semanticColor, semanticOnly, semanticTokens } from "./lib/semanticColor.mjs";
|
|
4
5
|
import { paragraphMixins } from "./mixins/text.mjs";
|
|
5
|
-
import { t as Card_default } from "./Card-
|
|
6
|
-
import { t as Spacer_default } from "./Spacer-
|
|
7
|
-
import { i as Paragraph, r as Label$1 } from "./Text-
|
|
6
|
+
import { t as Card_default } from "./Card-BXNxWX5C.mjs";
|
|
7
|
+
import { t as Spacer_default } from "./Spacer-J_HuhxX2.mjs";
|
|
8
|
+
import { i as Paragraph, r as Label$1 } from "./Text-CSwFifQF.mjs";
|
|
8
9
|
import "./variables/transitions.mjs";
|
|
9
|
-
import { a as Tooltip } from "./Tooltip-
|
|
10
|
+
import { a as Tooltip } from "./Tooltip-B-0VRuKT.mjs";
|
|
10
11
|
import { transparent, withAlpha } from "./lib/color.mjs";
|
|
11
12
|
import { letPointerDownReachDocument } from "./lib/letPointerDownReachDocument.mjs";
|
|
12
13
|
import { isActive, isDisabled, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
|
|
14
|
+
import { moveItemByIndex } from "./lib/reorderItems.mjs";
|
|
13
15
|
import { useScrollOverflow } from "./lib/useScrollOverflow.mjs";
|
|
14
16
|
import { Z_INDICES } from "./lib/zindex.mjs";
|
|
15
17
|
import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
|
|
16
18
|
import { semanticScrollbar } from "./mixins/scrollbar.mjs";
|
|
17
|
-
import { n as Stack, t as HStack } from "./Stack-
|
|
18
|
-
import { n as Button, t as IconButton } from "./IconButton-
|
|
19
|
-
import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-
|
|
20
|
-
import { r as InputGroup } from "./Input-
|
|
19
|
+
import { n as Stack, t as HStack } from "./Stack-BkC7FCdF.mjs";
|
|
20
|
+
import { n as Button, t as IconButton } from "./IconButton-H5vDZOdo.mjs";
|
|
21
|
+
import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-DBOPWUUa.mjs";
|
|
22
|
+
import { r as InputGroup } from "./Input-CY14-YeD.mjs";
|
|
21
23
|
import Input_default from "./components/Input/index.mjs";
|
|
22
|
-
import { c as MenuList, s as MenuItem } from "./Menu-
|
|
23
|
-
import { n as DropdownMenu_default } from "./DropdownMenu-
|
|
24
|
-
import { t as Combobox } from "./Combobox-
|
|
25
|
-
import { s as Popover_default } from "./Popover-
|
|
26
|
-
import { i as Modal_default } from "./Modal-
|
|
27
|
-
import { t as Toggle } from "./Toggle-
|
|
28
|
-
import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue, t as formatDateFilterValue } from "./date-filter-
|
|
29
|
-
import { t as ListBox } from "./ListBox-
|
|
30
|
-
import { m as FormField, o as ComboboxField } from "./FormField-
|
|
31
|
-
import { r as DatePicker, t as DateRangePicker } from "./DatePicker-
|
|
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-MCaDc7h6.mjs";
|
|
27
|
+
import { s as Popover_default } from "./Popover-532iYFek.mjs";
|
|
28
|
+
import { i as Modal_default } from "./Modal-dpBu2MKp.mjs";
|
|
29
|
+
import { t as Toggle } from "./Toggle-CZF6iBql.mjs";
|
|
30
|
+
import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue, t as formatDateFilterValue } from "./date-filter-CWgCXz85.mjs";
|
|
31
|
+
import { t as ListBox } from "./ListBox-2aYWNlO_.mjs";
|
|
32
|
+
import { m as FormField, o as ComboboxField } from "./FormField-CB0yCMro.mjs";
|
|
33
|
+
import { r as DatePicker, t as DateRangePicker } from "./DatePicker-CKk6Hnj2.mjs";
|
|
32
34
|
import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
|
|
33
35
|
import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
34
36
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
35
|
-
import {
|
|
37
|
+
import { DateTime, Settings } from "luxon";
|
|
38
|
+
import { CaretDownIcon, CheckIcon, CircleInfoIcon, CirclePlusIcon, CopyIcon, EyeIcon, EyeOffIcon, FilterIcon, MoreIcon, PlusIcon, RotateCcwIcon, SaveIcon, SearchIcon, SettingsIcon, StarIcon, TrashIcon, XIcon } from "@persona/icons";
|
|
36
39
|
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";
|
|
37
40
|
import { debounce, isEqual, noop, partition, startCase, union, uniqueId } from "lodash-es";
|
|
38
41
|
import { useId } from "react-aria";
|
|
39
42
|
import Fuse from "fuse.js";
|
|
40
43
|
import { DragIcon as DragIcon$1 } from "@persona/icons/24px";
|
|
41
|
-
import { DateTime, Settings } from "luxon";
|
|
42
44
|
import * as PopoverPrimitive from "@radix-ui/react-popover";
|
|
45
|
+
import { DndContext, PointerSensor, closestCenter, useSensor, useSensors } from "@dnd-kit/core";
|
|
46
|
+
import { SortableContext, horizontalListSortingStrategy, useSortable } from "@dnd-kit/sortable";
|
|
43
47
|
import { DragDropContext, Draggable, Droppable } from "@hello-pangea/dnd";
|
|
44
48
|
import { parseAbsolute, parseDate, toCalendarDate, toZoned } from "@internationalized/date";
|
|
45
49
|
import { v4 } from "uuid";
|
|
@@ -96,21 +100,33 @@ const StyledInput = styled(Input_default)`
|
|
|
96
100
|
`;
|
|
97
101
|
const SearchInput = ({ className, title = "Search", handleInput, handleOnFocus = noop, onBlur = noop, id, value, placeholder, dataTest, autoFocus, useClearIcon = false, disabled = false, disabledTooltip, anchorTooltipToCursor = false, size = "md", leftIcon = size === "sm" ? /* @__PURE__ */ jsx(SearchIcon$1, {}) : /* @__PURE__ */ jsx(SearchIcon, {}), flattenDisplay = false, maxLength }) => {
|
|
98
102
|
const [innerValue, setInnerValue] = useState(value);
|
|
103
|
+
const pendingEmissionsRef = useRef([]);
|
|
104
|
+
const emit = useCallback((next) => {
|
|
105
|
+
pendingEmissionsRef.current.push(next);
|
|
106
|
+
handleInput(next);
|
|
107
|
+
}, [handleInput]);
|
|
99
108
|
const handleChange = useCallback(({ target }) => {
|
|
100
109
|
setInnerValue(target.value);
|
|
101
|
-
|
|
102
|
-
}, [
|
|
110
|
+
emit(target.value);
|
|
111
|
+
}, [emit, setInnerValue]);
|
|
103
112
|
useEffect(() => {
|
|
113
|
+
const pending = pendingEmissionsRef.current;
|
|
114
|
+
const pendingIndex = pending.lastIndexOf(value);
|
|
115
|
+
if (pendingIndex >= 0 && pendingIndex < pending.length - 1) {
|
|
116
|
+
pending.splice(0, pendingIndex + 1);
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
pending.length = 0;
|
|
104
120
|
setInnerValue(value);
|
|
105
121
|
}, [value]);
|
|
106
122
|
const inputRef = useRef(null);
|
|
107
123
|
const handleClear = useCallback(() => {
|
|
108
124
|
setInnerValue("");
|
|
109
|
-
|
|
125
|
+
emit("");
|
|
110
126
|
handleOnFocus();
|
|
111
127
|
inputRef.current?.focus();
|
|
112
128
|
}, [
|
|
113
|
-
|
|
129
|
+
emit,
|
|
114
130
|
handleOnFocus,
|
|
115
131
|
inputRef,
|
|
116
132
|
setInnerValue
|
|
@@ -217,6 +233,7 @@ const CompactSearchInput = styled(SearchInput)`
|
|
|
217
233
|
* @see ControlBar.spec.tsx
|
|
218
234
|
*/
|
|
219
235
|
const CompactBar = ({ title, searchProps, showFilters, setShowFilters, filtersId, isLoading, isFilterPanelLoading, propertiesButton, tableActions, "data-tour-target": dataTourTarget, filterPanel }) => {
|
|
236
|
+
const strings = usePDSStrings();
|
|
220
237
|
const autoExpandSearch = !title;
|
|
221
238
|
const [showSearch, setShowSearch] = useState(autoExpandSearch);
|
|
222
239
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs(DataTableCompactBar, {
|
|
@@ -253,7 +270,7 @@ const CompactBar = ({ title, searchProps, showFilters, setShowFilters, filtersId
|
|
|
253
270
|
variant: "text",
|
|
254
271
|
width: "icon",
|
|
255
272
|
size: "sm",
|
|
256
|
-
"aria-label":
|
|
273
|
+
"aria-label": strings.showSearchBar,
|
|
257
274
|
onClick: () => setShowSearch(true),
|
|
258
275
|
children: /* @__PURE__ */ jsx(SearchIcon, {})
|
|
259
276
|
})),
|
|
@@ -261,7 +278,7 @@ const CompactBar = ({ title, searchProps, showFilters, setShowFilters, filtersId
|
|
|
261
278
|
id: "table-controls__view-tab-filters",
|
|
262
279
|
variant: "text",
|
|
263
280
|
onClick: () => setShowFilters?.(!showFilters),
|
|
264
|
-
"aria-label": showFilters ?
|
|
281
|
+
"aria-label": showFilters ? strings.hideFilters : strings.showFilters,
|
|
265
282
|
"aria-expanded": showFilters,
|
|
266
283
|
"aria-controls": filtersId,
|
|
267
284
|
disabled: isLoading || isFilterPanelLoading,
|
|
@@ -299,7 +316,9 @@ const rectContainsRect = (parent, child) => {
|
|
|
299
316
|
//#region components/DataTable/TableControls/ControlBar.tsx
|
|
300
317
|
const TAB_ID_PREFIX = "table-controls__view-tab_";
|
|
301
318
|
const OVERFLOW_TAB_ID_PREFIX = "table-controls__view-tab-overflow_";
|
|
319
|
+
const ADD_VIEW_BUTTON_ID = "table-controls__view-tab-new";
|
|
302
320
|
const OVERFLOW_WIDTH_SHRINK_THRESHOLD = 16;
|
|
321
|
+
const OVERFLOW_GAP = 8;
|
|
303
322
|
function enterProxiesClick(e) {
|
|
304
323
|
if (e.key === "Enter") e.target.dispatchEvent(new Event("click", { bubbles: true }));
|
|
305
324
|
}
|
|
@@ -313,6 +332,39 @@ const ViewNameInput = styled(Input_default)`
|
|
|
313
332
|
const AddViewButton = styled(IconButton)`
|
|
314
333
|
color: ${({ theme }) => semanticColor(theme, "FgSecondary", theme.color.text.secondary)};
|
|
315
334
|
`;
|
|
335
|
+
const HideViewButton = styled(IconButton)`
|
|
336
|
+
position: absolute;
|
|
337
|
+
top: 50%;
|
|
338
|
+
right: 0;
|
|
339
|
+
transform: translateY(-50%);
|
|
340
|
+
opacity: 0;
|
|
341
|
+
color: ${({ theme }) => semanticColor(theme, "FgSecondary", theme.color.text.secondary)};
|
|
342
|
+
background-color: ${({ theme }) => semanticColor(theme, "SurfacePrimary", theme.color.white)};
|
|
343
|
+
box-shadow: -${Spacing[2]} 0 ${Spacing[2]}
|
|
344
|
+
${({ theme }) => semanticColor(theme, "SurfacePrimary", theme.color.white)};
|
|
345
|
+
|
|
346
|
+
/* The icon's own "XIcon" title would otherwise replace the button's "Hide view" tooltip. */
|
|
347
|
+
svg {
|
|
348
|
+
pointer-events: none;
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
/* Without hover, a tap on the tab's edge must not land on the invisible button. */
|
|
352
|
+
@media (hover: none) {
|
|
353
|
+
pointer-events: none;
|
|
354
|
+
}
|
|
355
|
+
`;
|
|
356
|
+
const TabSlot = styled.div`
|
|
357
|
+
position: relative;
|
|
358
|
+
display: inline-flex;
|
|
359
|
+
|
|
360
|
+
&:hover,
|
|
361
|
+
&:has(:focus-visible) {
|
|
362
|
+
${HideViewButton} {
|
|
363
|
+
opacity: 1;
|
|
364
|
+
pointer-events: auto;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
`;
|
|
316
368
|
const LockedTab = styled(Tab)`
|
|
317
369
|
svg {
|
|
318
370
|
height: 12px;
|
|
@@ -349,7 +401,9 @@ const TabOverflowContainer = styled.div`
|
|
|
349
401
|
position: absolute;
|
|
350
402
|
height: 32px;
|
|
351
403
|
`;
|
|
352
|
-
const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditViews, handleNameChange, onDuplicateView, onRequestDeleteView, onSelectView, onResetCurrentView, onSaveView, onSetDefaultView, isViewDirty, showTabContextMenu, setShowTabContextMenu, className, ...rest }) => {
|
|
404
|
+
const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditViews, handleNameChange, onDuplicateView, onRequestDeleteView, onSelectView, onResetCurrentView, onSaveView, onSetDefaultView, onViewHiddenChange, onHideView, onKeyboardMove, isHidden = false, isViewDirty, showTabContextMenu, setShowTabContextMenu, className, ...rest }) => {
|
|
405
|
+
const strings = usePDSStrings();
|
|
406
|
+
const showMenu = selected && (canEditViews || !!onViewHiddenChange);
|
|
353
407
|
const inputRef = useRef(null);
|
|
354
408
|
const lastSubmittedNameRef = useRef(null);
|
|
355
409
|
const submitNameChange = (newName) => {
|
|
@@ -363,12 +417,20 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
363
417
|
"aria-selected": selected,
|
|
364
418
|
role: "tab",
|
|
365
419
|
onClick: !selected ? () => onSelectView?.(view.id) : void 0,
|
|
366
|
-
|
|
420
|
+
onKeyDown: onKeyboardMove ? (e) => {
|
|
421
|
+
if (e.altKey && e.shiftKey && (e.key === "ArrowLeft" || e.key === "ArrowRight")) {
|
|
422
|
+
e.preventDefault();
|
|
423
|
+
e.stopPropagation();
|
|
424
|
+
onKeyboardMove(view.id, e.key === "ArrowLeft" ? -1 : 1);
|
|
425
|
+
}
|
|
426
|
+
} : void 0,
|
|
427
|
+
"aria-keyshortcuts": onKeyboardMove ? "Alt+Shift+ArrowLeft Alt+Shift+ArrowRight" : void 0,
|
|
428
|
+
suffixIcon: showMenu ? /* @__PURE__ */ jsx(MoreIcon, {}) : void 0,
|
|
367
429
|
className,
|
|
368
430
|
...rest,
|
|
369
431
|
children: view.name
|
|
370
432
|
});
|
|
371
|
-
if (
|
|
433
|
+
if (showMenu) return /* @__PURE__ */ jsx(Popover_default, {
|
|
372
434
|
trigger: tab,
|
|
373
435
|
open: showTabContextMenu,
|
|
374
436
|
onOpenChange: (open) => {
|
|
@@ -382,7 +444,7 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
382
444
|
},
|
|
383
445
|
children: /* @__PURE__ */ jsxs(Stack, {
|
|
384
446
|
spacing: Spacing[3],
|
|
385
|
-
children: [/* @__PURE__ */ jsx(ViewNameInput, {
|
|
447
|
+
children: [canEditViews && /* @__PURE__ */ jsx(ViewNameInput, {
|
|
386
448
|
defaultValue: view.name,
|
|
387
449
|
onBlur: (e) => submitNameChange(e.currentTarget.value),
|
|
388
450
|
onKeyDown: (e) => {
|
|
@@ -393,7 +455,7 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
393
455
|
}), /* @__PURE__ */ jsxs(MenuList, {
|
|
394
456
|
padding: Spacing[0],
|
|
395
457
|
children: [
|
|
396
|
-
onDuplicateView && /* @__PURE__ */ jsx(MenuItem, {
|
|
458
|
+
canEditViews && onDuplicateView && /* @__PURE__ */ jsx(MenuItem, {
|
|
397
459
|
id: "table-controls__view__menu-duplicate",
|
|
398
460
|
prefixIcon: /* @__PURE__ */ jsx(CopyIcon, {}),
|
|
399
461
|
onClick: async () => {
|
|
@@ -407,14 +469,14 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
407
469
|
}
|
|
408
470
|
},
|
|
409
471
|
onKeyDown: enterProxiesClick,
|
|
410
|
-
children:
|
|
472
|
+
children: strings.duplicateView
|
|
411
473
|
}),
|
|
412
474
|
canEditViews && onResetCurrentView && /* @__PURE__ */ jsx(MenuItem, {
|
|
413
475
|
id: "table-controls__view__menu-reset",
|
|
414
476
|
prefixIcon: /* @__PURE__ */ jsx(RotateCcwIcon, {}),
|
|
415
477
|
onClick: onResetCurrentView,
|
|
416
478
|
onKeyDown: enterProxiesClick,
|
|
417
|
-
children:
|
|
479
|
+
children: strings.resetView
|
|
418
480
|
}),
|
|
419
481
|
canEditViews && onSaveView && /* @__PURE__ */ jsx(MenuItem, {
|
|
420
482
|
id: "table-controls__view__menu-save",
|
|
@@ -425,9 +487,9 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
425
487
|
setShowTabContextMenu(false);
|
|
426
488
|
},
|
|
427
489
|
onKeyDown: enterProxiesClick,
|
|
428
|
-
children:
|
|
490
|
+
children: strings.saveViewMenuItem
|
|
429
491
|
}),
|
|
430
|
-
onSetDefaultView && /* @__PURE__ */ jsx(MenuItem, {
|
|
492
|
+
canEditViews && onSetDefaultView && /* @__PURE__ */ jsx(MenuItem, {
|
|
431
493
|
id: "table-controls__view__menu-set-default",
|
|
432
494
|
prefixIcon: /* @__PURE__ */ jsx(StarIcon, {}),
|
|
433
495
|
disabled: view.isDefault,
|
|
@@ -436,9 +498,20 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
436
498
|
setShowTabContextMenu(false);
|
|
437
499
|
},
|
|
438
500
|
onKeyDown: enterProxiesClick,
|
|
439
|
-
children: view.isDefault ?
|
|
501
|
+
children: view.isDefault ? strings.alreadyDefaultView : strings.setAsDefaultView
|
|
440
502
|
}),
|
|
441
|
-
|
|
503
|
+
onViewHiddenChange && /* @__PURE__ */ jsx(MenuItem, {
|
|
504
|
+
id: "table-controls__view__menu-toggle-hidden",
|
|
505
|
+
prefixIcon: isHidden ? /* @__PURE__ */ jsx(EyeIcon, {}) : /* @__PURE__ */ jsx(EyeOffIcon, {}),
|
|
506
|
+
onClick: () => {
|
|
507
|
+
setShowTabContextMenu(false);
|
|
508
|
+
if (isHidden) onViewHiddenChange(view.id, false);
|
|
509
|
+
else onHideView?.(view.id);
|
|
510
|
+
},
|
|
511
|
+
onKeyDown: enterProxiesClick,
|
|
512
|
+
children: isHidden ? strings.showView : strings.hideView
|
|
513
|
+
}),
|
|
514
|
+
canEditViews && onRequestDeleteView && /* @__PURE__ */ jsx(MenuItem, {
|
|
442
515
|
id: "table-controls__view__menu-delete",
|
|
443
516
|
prefixIcon: /* @__PURE__ */ jsx(TrashIcon, {}),
|
|
444
517
|
onClick: () => {
|
|
@@ -446,7 +519,7 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
446
519
|
onRequestDeleteView(view);
|
|
447
520
|
},
|
|
448
521
|
onKeyDown: enterProxiesClick,
|
|
449
|
-
children:
|
|
522
|
+
children: strings.delete
|
|
450
523
|
})
|
|
451
524
|
]
|
|
452
525
|
})]
|
|
@@ -454,6 +527,36 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
454
527
|
});
|
|
455
528
|
return tab;
|
|
456
529
|
};
|
|
530
|
+
const SavedViewTabSlot = ({ slotRef, slotStyle, ...props }) => {
|
|
531
|
+
const { view, selected, onViewHiddenChange, onHideView } = props;
|
|
532
|
+
const strings = usePDSStrings();
|
|
533
|
+
return /* @__PURE__ */ jsxs(TabSlot, {
|
|
534
|
+
ref: slotRef,
|
|
535
|
+
"data-tab-view": true,
|
|
536
|
+
"data-tab-slot": true,
|
|
537
|
+
style: slotStyle,
|
|
538
|
+
children: [/* @__PURE__ */ jsx(SavedViewTab, { ...props }), !selected && onViewHiddenChange && /* @__PURE__ */ jsx(HideViewButton, {
|
|
539
|
+
id: `table-controls__view-tab-hide_${view.id}`,
|
|
540
|
+
"aria-label": strings.hideViewNamed(view.name),
|
|
541
|
+
title: strings.hideViewTitle,
|
|
542
|
+
onClick: () => onHideView?.(view.id),
|
|
543
|
+
children: /* @__PURE__ */ jsx(XIcon, {})
|
|
544
|
+
})]
|
|
545
|
+
});
|
|
546
|
+
};
|
|
547
|
+
const SortableSavedViewTab = (props) => {
|
|
548
|
+
const { setNodeRef, listeners, transform, transition, isDragging } = useSortable({ id: props.view.id });
|
|
549
|
+
return /* @__PURE__ */ jsx(SavedViewTabSlot, {
|
|
550
|
+
...props,
|
|
551
|
+
...listeners,
|
|
552
|
+
slotRef: setNodeRef,
|
|
553
|
+
slotStyle: {
|
|
554
|
+
transform: transform ? `translate3d(${transform.x}px, 0, 0)` : void 0,
|
|
555
|
+
transition,
|
|
556
|
+
zIndex: isDragging ? 1 : void 0
|
|
557
|
+
}
|
|
558
|
+
});
|
|
559
|
+
};
|
|
457
560
|
/**
|
|
458
561
|
* A tab that is locked and does not support editing or actions.
|
|
459
562
|
*/
|
|
@@ -470,37 +573,46 @@ const LockedViewTab = ({ id, selected, onClick, children, ...props }) => {
|
|
|
470
573
|
const OverflowSavedViewTab = styled(SavedViewTab)`
|
|
471
574
|
margin-left: ${Spacing[2]};
|
|
472
575
|
`;
|
|
473
|
-
const TabOverflow = forwardRef(function TabOverflow({ hiddenViews, currentView: currentViewId, handleAddView,
|
|
576
|
+
const TabOverflow = forwardRef(function TabOverflow({ overflowViews, hiddenViews, currentView: currentViewId, handleAddView, onOpenView, onViewHiddenChange, canEditViews, left, ...rest }, ref) {
|
|
577
|
+
const strings = usePDSStrings();
|
|
474
578
|
const [filter, setFilter] = useState("");
|
|
475
579
|
const [openPopover, setOpenPopover] = useState(false);
|
|
476
|
-
const
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
hiddenViews,
|
|
580
|
+
const menuViews = useMemo(() => [...overflowViews, ...hiddenViews], [overflowViews, hiddenViews]);
|
|
581
|
+
const currentView = useMemo(() => menuViews.find((view) => view.id === currentViewId), [currentViewId, menuViews]);
|
|
582
|
+
const filteredViews = useMemo(() => menuViews.filter((view) => view.name.toLowerCase().includes(filter.toLowerCase()) && view.id !== currentView?.id), [
|
|
583
|
+
menuViews,
|
|
481
584
|
filter,
|
|
482
585
|
currentView
|
|
483
586
|
]);
|
|
587
|
+
const moreCount = menuViews.length - (currentView ? 1 : 0);
|
|
588
|
+
const renderMenuItem = (view) => /* @__PURE__ */ jsx(MenuItem, {
|
|
589
|
+
id: `${OVERFLOW_TAB_ID_PREFIX}${view.id}`,
|
|
590
|
+
onClick: () => {
|
|
591
|
+
onOpenView(view.id);
|
|
592
|
+
setOpenPopover(false);
|
|
593
|
+
},
|
|
594
|
+
onKeyDown: enterProxiesClick,
|
|
595
|
+
children: view.name
|
|
596
|
+
}, view.id);
|
|
484
597
|
return /* @__PURE__ */ jsxs(TabOverflowContainer, {
|
|
485
598
|
ref,
|
|
486
|
-
style:
|
|
487
|
-
if (!lastVisibleViewElement) return;
|
|
488
|
-
return { left: lastVisibleViewElement.offsetLeft + lastVisibleViewElement.offsetWidth + 8 };
|
|
489
|
-
}, [lastVisibleViewElement]),
|
|
599
|
+
style: left != null ? { left } : void 0,
|
|
490
600
|
children: [
|
|
491
601
|
currentView && /* @__PURE__ */ jsx(OverflowSavedViewTab, {
|
|
492
602
|
view: currentView,
|
|
493
603
|
canEditViews,
|
|
494
604
|
selected: true,
|
|
495
605
|
tabIdPrefix: OVERFLOW_TAB_ID_PREFIX,
|
|
606
|
+
onViewHiddenChange,
|
|
607
|
+
isHidden: hiddenViews.some((view) => view.id === currentView.id),
|
|
496
608
|
...rest
|
|
497
609
|
}),
|
|
498
|
-
|
|
499
|
-
trigger: /* @__PURE__ */
|
|
610
|
+
moreCount > 0 && /* @__PURE__ */ jsxs(Popover_default, {
|
|
611
|
+
trigger: /* @__PURE__ */ jsx(Button, {
|
|
500
612
|
variant: "basic",
|
|
501
613
|
size: "sm",
|
|
502
614
|
width: "auto",
|
|
503
|
-
children:
|
|
615
|
+
children: strings.moreViews(moreCount)
|
|
504
616
|
}),
|
|
505
617
|
contentProps: {
|
|
506
618
|
align: "start",
|
|
@@ -514,27 +626,17 @@ const TabOverflow = forwardRef(function TabOverflow({ hiddenViews, currentView:
|
|
|
514
626
|
children: [/* @__PURE__ */ jsx(Input_default, {
|
|
515
627
|
value: filter,
|
|
516
628
|
onChange: (e) => setFilter(e.target.value),
|
|
517
|
-
placeholder:
|
|
629
|
+
placeholder: strings.searchViews
|
|
518
630
|
}), /* @__PURE__ */ jsx(OverflowMenuList, {
|
|
519
631
|
padding: Spacing[0],
|
|
520
|
-
children: filteredViews.map(
|
|
521
|
-
return /* @__PURE__ */ jsx(MenuItem, {
|
|
522
|
-
id: `${OVERFLOW_TAB_ID_PREFIX}${view.id}`,
|
|
523
|
-
onClick: () => {
|
|
524
|
-
onSelectView?.(view.id);
|
|
525
|
-
setOpenPopover(false);
|
|
526
|
-
},
|
|
527
|
-
onKeyDown: enterProxiesClick,
|
|
528
|
-
children: view.name
|
|
529
|
-
}, view.id);
|
|
530
|
-
})
|
|
632
|
+
children: filteredViews.map(renderMenuItem)
|
|
531
633
|
})]
|
|
532
634
|
}),
|
|
533
635
|
canEditViews && handleAddView && /* @__PURE__ */ jsx(AddViewButton, {
|
|
534
636
|
id: `${OVERFLOW_TAB_ID_PREFIX}overflow-new`,
|
|
535
637
|
onClick: handleAddView,
|
|
536
638
|
size: "md",
|
|
537
|
-
"aria-label":
|
|
639
|
+
"aria-label": strings.addNewView,
|
|
538
640
|
children: /* @__PURE__ */ jsx(CirclePlusIcon, {})
|
|
539
641
|
})
|
|
540
642
|
]
|
|
@@ -550,48 +652,60 @@ const ProductTourStyles = createGlobalStyle`
|
|
|
550
652
|
}
|
|
551
653
|
}
|
|
552
654
|
`;
|
|
553
|
-
const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView, onDuplicateView, onDeleteView, onViewNameChange, onSaveView, onSetDefaultView, isViewDirty, canEditViews, showFilters, setShowFilters, searchProps, filtersId, propertiesButton, tableActions, isLoading, isFilterPanelLoading, showViews, selectedRows = [], bulkActions, onResetCurrentView, onClearSelection, title, "data-tour-target": dataTourTarget, compact, onError, filterPanel }) => {
|
|
655
|
+
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 }) => {
|
|
656
|
+
const strings = usePDSStrings();
|
|
554
657
|
const tabListRef = useRef(null);
|
|
555
658
|
const tabOverflowRef = useRef(null);
|
|
556
|
-
const [
|
|
659
|
+
const [overflowViews, setOverflowViews] = useState([]);
|
|
557
660
|
const [showTabContextMenu, setShowTabContextMenu] = useState(false);
|
|
558
661
|
const [pendingDeleteView, setPendingDeleteView] = useState(null);
|
|
559
662
|
const previousPendingDeleteViewRef = useRef(null);
|
|
560
663
|
const [isDeletingView, setIsDeletingView] = useState(false);
|
|
561
664
|
const [isAddingView, setIsAddingView] = useState(false);
|
|
562
|
-
const [
|
|
665
|
+
const [overflowLeft, setOverflowLeft] = useState(null);
|
|
563
666
|
const [tabOverflowWidth, setTabOverflowWidth] = useState(null);
|
|
667
|
+
const [isAddViewOverflowing, setIsAddViewOverflowing] = useState(false);
|
|
564
668
|
useEffect(() => {
|
|
565
669
|
const previousPendingDeleteView = previousPendingDeleteViewRef.current;
|
|
566
670
|
if (!pendingDeleteView && previousPendingDeleteView) (document.getElementById(`${OVERFLOW_TAB_ID_PREFIX}${previousPendingDeleteView.id}`) ?? document.getElementById(`${TAB_ID_PREFIX}${previousPendingDeleteView.id}`))?.focus();
|
|
567
671
|
previousPendingDeleteViewRef.current = pendingDeleteView;
|
|
568
672
|
}, [pendingDeleteView]);
|
|
673
|
+
const [shownViews, hiddenViews] = useMemo(() => {
|
|
674
|
+
const hiddenIds = new Set(hiddenViewIds);
|
|
675
|
+
const allViews = views ?? [];
|
|
676
|
+
return [allViews.filter((view) => !hiddenIds.has(view.id)), allViews.filter((view) => hiddenIds.has(view.id))];
|
|
677
|
+
}, [views, hiddenViewIds]);
|
|
569
678
|
const onResize = useCallback(() => {
|
|
570
679
|
if (!tabListRef.current) return;
|
|
571
680
|
const containerRect = tabListRef.current.getBoundingClientRect();
|
|
572
681
|
const tabListContainer = tabListRef.current;
|
|
573
|
-
const
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
const lastVisibleViewElement = tabElements[firstHiddenIndex - 1];
|
|
582
|
-
if (lastVisibleViewElement) setLastVisibleViewElement(lastVisibleViewElement);
|
|
583
|
-
}
|
|
584
|
-
setHiddenViews((firstHiddenIndex === -1 ? [] : views?.slice(firstHiddenIndex)) || []);
|
|
682
|
+
const firstOverflowIndex = Array.from(tabListContainer.querySelectorAll("[data-tab-view]")).findIndex((el) => !rectContainsRect(containerRect, el.getBoundingClientRect()));
|
|
683
|
+
const nextOverflowViews = firstOverflowIndex === -1 ? [] : shownViews.slice(firstOverflowIndex);
|
|
684
|
+
setOverflowViews((prev) => prev.length === nextOverflowViews.length && prev.every((view, index) => view === nextOverflowViews[index]) ? prev : nextOverflowViews);
|
|
685
|
+
const firstRowElements = Array.from(tabListContainer.children).filter((el) => el instanceof HTMLElement && el !== tabOverflowRef.current && rectContainsRect(containerRect, el.getBoundingClientRect()));
|
|
686
|
+
const anchor = firstRowElements[firstRowElements.length - 1];
|
|
687
|
+
setOverflowLeft(anchor ? anchor.offsetLeft + anchor.offsetWidth + OVERFLOW_GAP : null);
|
|
688
|
+
const addViewButton = tabListContainer.querySelector(`#${ADD_VIEW_BUTTON_ID}`);
|
|
689
|
+
setIsAddViewOverflowing(addViewButton instanceof HTMLElement && !firstRowElements.includes(addViewButton));
|
|
585
690
|
const tabOverflowWidth = tabOverflowRef.current?.getBoundingClientRect().width;
|
|
586
691
|
if (tabOverflowWidth) setTabOverflowWidth((prev) => prev != null && prev > tabOverflowWidth && prev - tabOverflowWidth < OVERFLOW_WIDTH_SHRINK_THRESHOLD ? prev : tabOverflowWidth);
|
|
587
|
-
}, [
|
|
692
|
+
}, [shownViews]);
|
|
588
693
|
useLayoutEffect(() => {
|
|
589
|
-
|
|
694
|
+
const tabList = tabListRef.current;
|
|
695
|
+
if (!showViews || !tabList) return;
|
|
590
696
|
const resizeObserver = new ResizeObserver(() => {
|
|
591
697
|
onResize();
|
|
592
698
|
});
|
|
593
|
-
|
|
699
|
+
const observeTabList = () => {
|
|
700
|
+
resizeObserver.disconnect();
|
|
701
|
+
resizeObserver.observe(tabList);
|
|
702
|
+
Array.from(tabList.children).forEach((child) => resizeObserver.observe(child));
|
|
703
|
+
};
|
|
704
|
+
const mutationObserver = new MutationObserver(observeTabList);
|
|
705
|
+
observeTabList();
|
|
706
|
+
mutationObserver.observe(tabList, { childList: true });
|
|
594
707
|
return () => {
|
|
708
|
+
mutationObserver.disconnect();
|
|
595
709
|
resizeObserver.disconnect();
|
|
596
710
|
};
|
|
597
711
|
}, [onResize, showViews]);
|
|
@@ -600,12 +714,78 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
600
714
|
}, [
|
|
601
715
|
onResize,
|
|
602
716
|
showViews,
|
|
603
|
-
|
|
717
|
+
shownViews
|
|
718
|
+
]);
|
|
719
|
+
const isCurrentViewInOverflow = useMemo(() => !!currentView && [...overflowViews, ...hiddenViews].some((view) => view.id === currentView), [
|
|
720
|
+
currentView,
|
|
721
|
+
overflowViews,
|
|
722
|
+
hiddenViews
|
|
604
723
|
]);
|
|
605
|
-
const
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
724
|
+
const sensors = useSensors(useSensor(PointerSensor, { activationConstraint: { distance: 5 } }));
|
|
725
|
+
const dragBoundsRef = useRef(null);
|
|
726
|
+
const handleDragStart = () => {
|
|
727
|
+
const tabList = tabListRef.current;
|
|
728
|
+
if (!tabList) return;
|
|
729
|
+
const tabListRect = tabList.getBoundingClientRect();
|
|
730
|
+
const visibleSlotRects = Array.from(tabList.querySelectorAll("[data-tab-view]")).map((slot) => slot.getBoundingClientRect()).filter((rect) => rectContainsRect(tabListRect, rect));
|
|
731
|
+
dragBoundsRef.current = visibleSlotRects.length > 0 ? {
|
|
732
|
+
left: visibleSlotRects[0].left,
|
|
733
|
+
right: visibleSlotRects[visibleSlotRects.length - 1].right,
|
|
734
|
+
bottom: tabListRect.bottom
|
|
735
|
+
} : null;
|
|
736
|
+
};
|
|
737
|
+
const closestVisibleTabCenter = useCallback((args) => {
|
|
738
|
+
const bounds = dragBoundsRef.current;
|
|
739
|
+
return closestCenter({
|
|
740
|
+
...args,
|
|
741
|
+
droppableContainers: args.droppableContainers.filter((container) => {
|
|
742
|
+
const rect = args.droppableRects.get(container.id);
|
|
743
|
+
return bounds == null || rect != null && rect.bottom <= bounds.bottom + 1;
|
|
744
|
+
})
|
|
745
|
+
});
|
|
746
|
+
}, []);
|
|
747
|
+
const restrictToVisibleSavedTabs = useCallback(({ transform, draggingNodeRect }) => {
|
|
748
|
+
const bounds = dragBoundsRef.current;
|
|
749
|
+
if (!bounds || !draggingNodeRect) return {
|
|
750
|
+
...transform,
|
|
751
|
+
y: 0
|
|
752
|
+
};
|
|
753
|
+
const minX = bounds.left - draggingNodeRect.left;
|
|
754
|
+
const maxX = bounds.right - draggingNodeRect.right;
|
|
755
|
+
return {
|
|
756
|
+
...transform,
|
|
757
|
+
x: Math.min(Math.max(transform.x, minX), maxX),
|
|
758
|
+
y: 0
|
|
759
|
+
};
|
|
760
|
+
}, []);
|
|
761
|
+
const moveView = (viewId, toIndex) => {
|
|
762
|
+
if (!views || !onReorderViews) return;
|
|
763
|
+
const viewIds = views.map((view) => view.id);
|
|
764
|
+
const reordered = moveItemByIndex(viewIds, viewIds.indexOf(viewId), toIndex);
|
|
765
|
+
if (reordered !== viewIds) onReorderViews(reordered);
|
|
766
|
+
};
|
|
767
|
+
const indexOfView = (viewId) => views?.findIndex((view) => view.id === viewId) ?? -1;
|
|
768
|
+
const openViewFromMenu = (viewId) => {
|
|
769
|
+
if (hiddenViews.some((view) => view.id === viewId)) onViewHiddenChange?.(viewId, false);
|
|
770
|
+
moveView(viewId, 0);
|
|
771
|
+
onSelectView?.(viewId);
|
|
772
|
+
};
|
|
773
|
+
const handleDragEnd = ({ active, over }) => {
|
|
774
|
+
if (over) moveView(String(active.id), indexOfView(String(over.id)));
|
|
775
|
+
};
|
|
776
|
+
const hideView = (viewId) => {
|
|
777
|
+
const index = shownViews.findIndex((view) => view.id === viewId);
|
|
778
|
+
const isCurrent = viewId === currentView;
|
|
779
|
+
const focusTarget = isCurrent ? void 0 : shownViews[index + 1] ?? shownViews[index - 1];
|
|
780
|
+
onViewHiddenChange?.(viewId, true);
|
|
781
|
+
if (isCurrent) onSelectView?.(null);
|
|
782
|
+
document.getElementById(`${TAB_ID_PREFIX}${focusTarget ? focusTarget.id : "default"}`)?.focus();
|
|
783
|
+
};
|
|
784
|
+
const moveViewWithKeyboard = (viewId, direction) => {
|
|
785
|
+
const neighbor = shownViews[shownViews.findIndex((view) => view.id === viewId) + direction];
|
|
786
|
+
if (!neighbor) return;
|
|
787
|
+
moveView(viewId, indexOfView(neighbor.id));
|
|
788
|
+
};
|
|
609
789
|
const handleAddView = async () => {
|
|
610
790
|
try {
|
|
611
791
|
setIsAddingView(true);
|
|
@@ -677,97 +857,115 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
677
857
|
children: displayLabel
|
|
678
858
|
}, key);
|
|
679
859
|
});
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
onClick:
|
|
713
|
-
"
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
selected,
|
|
721
|
-
onClick: () => onSelectView?.(view.id),
|
|
722
|
-
children: view.name
|
|
723
|
-
}, view.id);
|
|
724
|
-
}),
|
|
725
|
-
views?.map((view) => {
|
|
726
|
-
return /* @__PURE__ */ jsx(SavedViewTab, {
|
|
727
|
-
view,
|
|
728
|
-
canEditViews: canEditViews ?? false,
|
|
729
|
-
handleNameChange,
|
|
730
|
-
onDuplicateView,
|
|
731
|
-
onRequestDeleteView,
|
|
732
|
-
onSelectView,
|
|
733
|
-
onResetCurrentView,
|
|
734
|
-
onSaveView,
|
|
735
|
-
onSetDefaultView,
|
|
736
|
-
isViewDirty: isViewDirty ?? false,
|
|
737
|
-
selected: view.id === currentView,
|
|
738
|
-
showTabContextMenu: showTabContextMenu && !currentViewHidden,
|
|
739
|
-
setShowTabContextMenu,
|
|
740
|
-
"data-tab-view": true
|
|
741
|
-
}, view.id);
|
|
742
|
-
}),
|
|
743
|
-
canEditViews && onAddView && /* @__PURE__ */ jsx(AddViewButton, {
|
|
744
|
-
id: "table-controls__view-tab-new",
|
|
745
|
-
size: "md",
|
|
746
|
-
onClick: handleAddView,
|
|
747
|
-
"aria-label": "Add new view",
|
|
748
|
-
"data-tour-target": "saved-views-add-button",
|
|
749
|
-
children: /* @__PURE__ */ jsx(CirclePlusIcon, {})
|
|
860
|
+
const showViewsBar = title || showViews || canEditViews && onSaveView || tableActions || bulkActions;
|
|
861
|
+
const getSavedViewTabProps = (view) => ({
|
|
862
|
+
view,
|
|
863
|
+
onKeyboardMove: onReorderViews ? moveViewWithKeyboard : void 0,
|
|
864
|
+
onHideView: hideView,
|
|
865
|
+
canEditViews: canEditViews ?? false,
|
|
866
|
+
handleNameChange,
|
|
867
|
+
onDuplicateView,
|
|
868
|
+
onRequestDeleteView,
|
|
869
|
+
onSelectView,
|
|
870
|
+
onResetCurrentView,
|
|
871
|
+
onSaveView,
|
|
872
|
+
onSetDefaultView,
|
|
873
|
+
onViewHiddenChange,
|
|
874
|
+
isViewDirty: isViewDirty ?? false,
|
|
875
|
+
selected: view.id === currentView,
|
|
876
|
+
showTabContextMenu: showTabContextMenu && !isCurrentViewInOverflow,
|
|
877
|
+
setShowTabContextMenu
|
|
878
|
+
});
|
|
879
|
+
const viewsBar = /* @__PURE__ */ jsx(ViewsBar, {
|
|
880
|
+
ref: tabListRef,
|
|
881
|
+
title,
|
|
882
|
+
maxTabChars: 25,
|
|
883
|
+
$isAddingView: isAddingView,
|
|
884
|
+
"data-tour-target": dataTourTarget,
|
|
885
|
+
actions: /* @__PURE__ */ jsxs(HStack, {
|
|
886
|
+
spacing: Spacing[3],
|
|
887
|
+
align: "center",
|
|
888
|
+
style: tabOverflowWidth ? { paddingLeft: `${tabOverflowWidth + 16}px` } : void 0,
|
|
889
|
+
children: [
|
|
890
|
+
canEditViews && onSaveView && /* @__PURE__ */ jsx(Button, {
|
|
891
|
+
id: "table-controls__view-tab-save",
|
|
892
|
+
onClick: onSaveView,
|
|
893
|
+
"aria-label": strings.saveCurrentView,
|
|
894
|
+
disabled: !isViewDirty || isLoading,
|
|
895
|
+
size: "sm",
|
|
896
|
+
variant: "basic",
|
|
897
|
+
width: "auto",
|
|
898
|
+
"data-tour-target": "saved-views-save-button",
|
|
899
|
+
children: strings.saveView
|
|
750
900
|
}),
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
currentView,
|
|
755
|
-
onSelectView,
|
|
756
|
-
canEditViews: canEditViews ?? false,
|
|
757
|
-
handleAddView: onAddView ? handleAddView : null,
|
|
758
|
-
handleNameChange,
|
|
759
|
-
onDuplicateView,
|
|
760
|
-
onRequestDeleteView,
|
|
761
|
-
onResetCurrentView,
|
|
762
|
-
onSaveView,
|
|
763
|
-
onSetDefaultView,
|
|
764
|
-
isViewDirty: isViewDirty ?? false,
|
|
765
|
-
showTabContextMenu: showTabContextMenu && currentViewHidden,
|
|
766
|
-
setShowTabContextMenu,
|
|
767
|
-
lastVisibleViewElement
|
|
768
|
-
})
|
|
769
|
-
] })
|
|
901
|
+
bulkActionButtons,
|
|
902
|
+
tableActions
|
|
903
|
+
]
|
|
770
904
|
}),
|
|
905
|
+
children: showViews && /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
906
|
+
/* @__PURE__ */ jsx(LockedViewTab, {
|
|
907
|
+
id: `${TAB_ID_PREFIX}default`,
|
|
908
|
+
selected: !currentView,
|
|
909
|
+
onClick: () => onSelectView?.(null),
|
|
910
|
+
"data-tour-target": "saved-views-default-view",
|
|
911
|
+
children: strings.defaultView
|
|
912
|
+
}),
|
|
913
|
+
presetViews?.map((view) => {
|
|
914
|
+
const selected = view.id === currentView;
|
|
915
|
+
return /* @__PURE__ */ jsx(LockedViewTab, {
|
|
916
|
+
id: `${TAB_ID_PREFIX}preset-${view.id}`,
|
|
917
|
+
selected,
|
|
918
|
+
onClick: () => onSelectView?.(view.id),
|
|
919
|
+
children: view.name
|
|
920
|
+
}, view.id);
|
|
921
|
+
}),
|
|
922
|
+
onReorderViews ? /* @__PURE__ */ jsx(SortableContext, {
|
|
923
|
+
items: shownViews.map((view) => view.id),
|
|
924
|
+
strategy: horizontalListSortingStrategy,
|
|
925
|
+
children: shownViews.map((view) => /* @__PURE__ */ jsx(SortableSavedViewTab, { ...getSavedViewTabProps(view) }, view.id))
|
|
926
|
+
}) : shownViews.map((view) => /* @__PURE__ */ jsx(SavedViewTabSlot, { ...getSavedViewTabProps(view) }, view.id)),
|
|
927
|
+
canEditViews && onAddView && /* @__PURE__ */ jsx(AddViewButton, {
|
|
928
|
+
id: ADD_VIEW_BUTTON_ID,
|
|
929
|
+
size: "md",
|
|
930
|
+
onClick: handleAddView,
|
|
931
|
+
"aria-label": strings.addNewView,
|
|
932
|
+
"data-tour-target": "saved-views-add-button",
|
|
933
|
+
children: /* @__PURE__ */ jsx(CirclePlusIcon, {})
|
|
934
|
+
}),
|
|
935
|
+
(overflowViews.length > 0 || hiddenViews.length > 0) && /* @__PURE__ */ jsx(TabOverflow, {
|
|
936
|
+
ref: tabOverflowRef,
|
|
937
|
+
overflowViews,
|
|
938
|
+
hiddenViews,
|
|
939
|
+
currentView,
|
|
940
|
+
onSelectView,
|
|
941
|
+
onOpenView: openViewFromMenu,
|
|
942
|
+
canEditViews: canEditViews ?? false,
|
|
943
|
+
handleAddView: onAddView && isAddViewOverflowing ? handleAddView : null,
|
|
944
|
+
handleNameChange,
|
|
945
|
+
onDuplicateView,
|
|
946
|
+
onRequestDeleteView,
|
|
947
|
+
onResetCurrentView,
|
|
948
|
+
onSaveView,
|
|
949
|
+
onSetDefaultView,
|
|
950
|
+
onViewHiddenChange,
|
|
951
|
+
onHideView: hideView,
|
|
952
|
+
isViewDirty: isViewDirty ?? false,
|
|
953
|
+
showTabContextMenu: showTabContextMenu && isCurrentViewInOverflow,
|
|
954
|
+
setShowTabContextMenu,
|
|
955
|
+
left: overflowLeft
|
|
956
|
+
})
|
|
957
|
+
] })
|
|
958
|
+
});
|
|
959
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
960
|
+
/* @__PURE__ */ jsx(ProductTourStyles, {}),
|
|
961
|
+
showViewsBar && (onReorderViews ? /* @__PURE__ */ jsx(DndContext, {
|
|
962
|
+
sensors,
|
|
963
|
+
collisionDetection: closestVisibleTabCenter,
|
|
964
|
+
modifiers: [restrictToVisibleSavedTabs],
|
|
965
|
+
onDragStart: handleDragStart,
|
|
966
|
+
onDragEnd: handleDragEnd,
|
|
967
|
+
children: viewsBar
|
|
968
|
+
}) : viewsBar),
|
|
771
969
|
/* @__PURE__ */ jsxs(HStack, {
|
|
772
970
|
align: "center",
|
|
773
971
|
spacing: Spacing[2],
|
|
@@ -783,7 +981,7 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
783
981
|
id: "table-controls__view-tab-filters",
|
|
784
982
|
variant: "basic",
|
|
785
983
|
onClick: () => setShowFilters?.(!showFilters),
|
|
786
|
-
"aria-label": showFilters ?
|
|
984
|
+
"aria-label": showFilters ? strings.hideFilters : strings.showFilters,
|
|
787
985
|
"aria-expanded": showFilters,
|
|
788
986
|
"aria-controls": filtersId,
|
|
789
987
|
disabled: isLoading || isFilterPanelLoading,
|
|
@@ -805,32 +1003,28 @@ const ControlBar = ({ presetViews, currentView, onSelectView, views, onAddView,
|
|
|
805
1003
|
},
|
|
806
1004
|
isKeyboardDismissDisabled: isDeletingView,
|
|
807
1005
|
contentProps: isDeletingView ? { showCloseButton: false } : void 0,
|
|
808
|
-
title:
|
|
1006
|
+
title: strings.deleteViewTitle,
|
|
809
1007
|
footer: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Button, {
|
|
810
1008
|
variant: "basic",
|
|
811
1009
|
width: "auto",
|
|
812
1010
|
disabled: isDeletingView,
|
|
813
1011
|
onClick: () => setPendingDeleteView(null),
|
|
814
|
-
children:
|
|
1012
|
+
children: strings.cancel
|
|
815
1013
|
}), /* @__PURE__ */ jsx(Button, {
|
|
816
1014
|
id: "table-controls__view__delete-confirm",
|
|
817
1015
|
variant: "danger",
|
|
818
1016
|
width: "auto",
|
|
819
1017
|
isPending: isDeletingView,
|
|
820
1018
|
onClick: confirmDeleteView,
|
|
821
|
-
children:
|
|
1019
|
+
children: strings.delete
|
|
822
1020
|
})] }),
|
|
823
|
-
children: /* @__PURE__ */
|
|
824
|
-
"This will permanently delete “",
|
|
825
|
-
pendingDeleteView?.name,
|
|
826
|
-
"”. This action cannot be undone."
|
|
827
|
-
] })
|
|
1021
|
+
children: /* @__PURE__ */ jsx(Paragraph, { children: strings.deleteViewConfirmation(pendingDeleteView?.name ?? "") })
|
|
828
1022
|
})
|
|
829
1023
|
] });
|
|
830
1024
|
};
|
|
831
1025
|
//#endregion
|
|
832
1026
|
//#region components/DataTable/TableControls/TableControls.tsx
|
|
833
|
-
const TableControls = ({ filterPanel, searchProps, defaultShowFilters, showFilters: controlledShowFilters, setShowFilters: controlledSetShowFilters, className, tableActions, propertiesButton, isLoading, isFilterPanelLoading, showViews, canEditViews, onSelectView, views, currentView, onAddView, onViewNameChange, onDuplicateView, onDeleteView, onSaveView, onSetDefaultView, isViewDirty, selectedRows, bulkActions, onClearSelection, title, presetViews, compact, columnConfigurationProps, showFiltersAlways = false, onError, "data-tour-target": dataTourTarget }) => {
|
|
1027
|
+
const TableControls = ({ 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, isViewDirty, selectedRows, bulkActions, onClearSelection, title, presetViews, compact, columnConfigurationProps, showFiltersAlways = false, onError, "data-tour-target": dataTourTarget }) => {
|
|
834
1028
|
const filtersId = useId();
|
|
835
1029
|
const [internalShowFilters, internalSetShowFilters] = useState(defaultShowFilters ?? false);
|
|
836
1030
|
const showFilters = controlledShowFilters != null ? controlledShowFilters : internalShowFilters;
|
|
@@ -851,12 +1045,15 @@ const TableControls = ({ filterPanel, searchProps, defaultShowFilters, showFilte
|
|
|
851
1045
|
children: /* @__PURE__ */ jsx(ControlBar, {
|
|
852
1046
|
showViews: compact ? false : showViews,
|
|
853
1047
|
views: compact ? void 0 : views,
|
|
1048
|
+
hiddenViewIds: compact ? void 0 : hiddenViewIds,
|
|
854
1049
|
onSelectView: compact ? void 0 : onSelectView,
|
|
855
1050
|
currentView: compact ? void 0 : currentView,
|
|
856
1051
|
onAddView: compact ? void 0 : onAddView,
|
|
857
1052
|
onDeleteView: compact ? void 0 : onDeleteView,
|
|
858
1053
|
onDuplicateView: compact ? void 0 : onDuplicateView,
|
|
859
1054
|
onViewNameChange: compact ? void 0 : onViewNameChange,
|
|
1055
|
+
onReorderViews: compact ? void 0 : onReorderViews,
|
|
1056
|
+
onViewHiddenChange: compact ? void 0 : onViewHiddenChange,
|
|
860
1057
|
onSaveView: compact ? void 0 : onSaveView,
|
|
861
1058
|
onSetDefaultView: compact ? void 0 : onSetDefaultView,
|
|
862
1059
|
isViewDirty,
|
|
@@ -992,6 +1189,7 @@ const PopoverCard$1 = styled(Card_default)`
|
|
|
992
1189
|
padding: ${Spacing[4]};
|
|
993
1190
|
`;
|
|
994
1191
|
const TriggerIconButton = forwardRef(function TriggerIconButton({ disabled, ...elemProps }, ref) {
|
|
1192
|
+
const strings = usePDSStrings();
|
|
995
1193
|
return /* @__PURE__ */ jsx(Button, {
|
|
996
1194
|
disabled,
|
|
997
1195
|
width: "icon",
|
|
@@ -1000,21 +1198,22 @@ const TriggerIconButton = forwardRef(function TriggerIconButton({ disabled, ...e
|
|
|
1000
1198
|
...elemProps,
|
|
1001
1199
|
ref,
|
|
1002
1200
|
"data-tour-target": "table-properties-button",
|
|
1003
|
-
"aria-label":
|
|
1201
|
+
"aria-label": strings.tableProperties,
|
|
1004
1202
|
children: /* @__PURE__ */ jsx(SettingsIcon, {})
|
|
1005
1203
|
});
|
|
1006
1204
|
});
|
|
1007
1205
|
const TooltipButtonWrapper = styled("div")`
|
|
1008
1206
|
display: inline-block;
|
|
1009
1207
|
`;
|
|
1010
|
-
const TableViewConfigurationDropdown = ({ disabled = false, disabledTooltipMessage
|
|
1208
|
+
const TableViewConfigurationDropdown = ({ disabled = false, disabledTooltipMessage, size = "md", variant = "basic", ...props }) => {
|
|
1209
|
+
const strings = usePDSStrings();
|
|
1011
1210
|
return disabled ? /* @__PURE__ */ jsx(Tooltip, {
|
|
1012
1211
|
trigger: /* @__PURE__ */ jsx(TooltipButtonWrapper, { children: /* @__PURE__ */ jsx(TriggerIconButton, {
|
|
1013
1212
|
disabled: true,
|
|
1014
1213
|
size,
|
|
1015
1214
|
variant
|
|
1016
1215
|
}) }),
|
|
1017
|
-
children: disabledTooltipMessage
|
|
1216
|
+
children: disabledTooltipMessage ?? strings.configureViewPermissionDenied
|
|
1018
1217
|
}) : /* @__PURE__ */ jsxs(Popover_default, { children: [/* @__PURE__ */ jsx(Popover_default.Trigger, {
|
|
1019
1218
|
asChild: true,
|
|
1020
1219
|
children: /* @__PURE__ */ jsx(TriggerIconButton, {
|
|
@@ -1034,6 +1233,7 @@ const TableViewConfigurationDropdown = ({ disabled = false, disabledTooltipMessa
|
|
|
1034
1233
|
})] });
|
|
1035
1234
|
};
|
|
1036
1235
|
const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateColumnConfiguration, getColumnDisabled, sortByRelevance = false }) => {
|
|
1236
|
+
const strings = usePDSStrings();
|
|
1037
1237
|
const [searchTerm, setSearchTerm] = useState("");
|
|
1038
1238
|
const fuse = useMemo(() => {
|
|
1039
1239
|
return new Fuse(attributeOptions, sortByRelevance ? {
|
|
@@ -1130,7 +1330,7 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
|
|
|
1130
1330
|
/* @__PURE__ */ jsx(Label$1, {
|
|
1131
1331
|
size: "lg",
|
|
1132
1332
|
weight: "bold",
|
|
1133
|
-
children:
|
|
1333
|
+
children: strings.configureColumns
|
|
1134
1334
|
}),
|
|
1135
1335
|
/* @__PURE__ */ jsx(Spacer_default, { height: 2 }),
|
|
1136
1336
|
/* @__PURE__ */ jsx(SearchContainer, { children: /* @__PURE__ */ jsx(StyledSearchInput, {
|
|
@@ -1138,12 +1338,12 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
|
|
|
1138
1338
|
value: searchTerm,
|
|
1139
1339
|
handleInput: setSearchTerm,
|
|
1140
1340
|
size: "md",
|
|
1141
|
-
placeholder:
|
|
1341
|
+
placeholder: strings.searchColumns,
|
|
1142
1342
|
dataTest: "checklist-item-panel-item-table__search"
|
|
1143
1343
|
}) }),
|
|
1144
1344
|
/* @__PURE__ */ jsx(Spacer_default, { height: 2 }),
|
|
1145
1345
|
shownDndItemProps.length > 0 || hiddenDndItemProps.length > 0 ? /* @__PURE__ */ jsxs(DndSection, { children: [
|
|
1146
|
-
shownDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children:
|
|
1346
|
+
shownDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children: strings.shownColumns }), /* @__PURE__ */ jsx(DragDropContext, {
|
|
1147
1347
|
onDragEnd: handleDragEnd,
|
|
1148
1348
|
children: /* @__PURE__ */ jsx(Droppable, {
|
|
1149
1349
|
droppableId: SHOWN_DROPPABLE_ID,
|
|
@@ -1179,8 +1379,8 @@ const TableViewConfiguration = ({ columnConfiguration, attributeOptions, updateC
|
|
|
1179
1379
|
})
|
|
1180
1380
|
})] }),
|
|
1181
1381
|
/* @__PURE__ */ jsx(Spacer_default, { height: 2 }),
|
|
1182
|
-
hiddenDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children:
|
|
1183
|
-
] }) : /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Paragraph, { children:
|
|
1382
|
+
hiddenDndItemProps.length > 0 && /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx(Paragraph, { children: strings.hiddenColumns }), hiddenDndItemProps.map((props) => /* @__PURE__ */ jsx(AttributeDnd, { ...props }, props.column.key))] })
|
|
1383
|
+
] }) : /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Paragraph, { children: strings.noMatchingColumns }) })
|
|
1184
1384
|
] });
|
|
1185
1385
|
};
|
|
1186
1386
|
const OverflowText = styled("div")`
|
|
@@ -1189,6 +1389,7 @@ const OverflowText = styled("div")`
|
|
|
1189
1389
|
display: flex;
|
|
1190
1390
|
`;
|
|
1191
1391
|
const AttributeDnd = ({ column, index, isDisabled = false, isToggled, shouldDisableDrag, handleToggle }) => {
|
|
1392
|
+
const strings = usePDSStrings();
|
|
1192
1393
|
return /* @__PURE__ */ jsxs(DndItemWrapper, { children: [
|
|
1193
1394
|
/* @__PURE__ */ jsx(StyledIconDrag, {
|
|
1194
1395
|
$active: true,
|
|
@@ -1203,7 +1404,7 @@ const AttributeDnd = ({ column, index, isDisabled = false, isToggled, shouldDisa
|
|
|
1203
1404
|
value: isToggled,
|
|
1204
1405
|
disabled: isDisabled,
|
|
1205
1406
|
onChange: handleToggle,
|
|
1206
|
-
"aria-label": isToggled ?
|
|
1407
|
+
"aria-label": isToggled ? strings.hideColumn(column.label) : strings.showColumn(column.label)
|
|
1207
1408
|
}) })
|
|
1208
1409
|
] }, `${column.key}-${index}`);
|
|
1209
1410
|
};
|
|
@@ -1382,20 +1583,21 @@ function fieldHasMultipleOperators(field) {
|
|
|
1382
1583
|
return getOperatorsForField(field).length > 1;
|
|
1383
1584
|
}
|
|
1384
1585
|
/**
|
|
1385
|
-
* Human-readable operator labels for the operator dropdown and filled pill
|
|
1586
|
+
* Human-readable operator labels for the operator dropdown and filled pill, as keys into the
|
|
1587
|
+
* translatable `CommonStrings` table (English defaults: "is", "is not", "contains", ...).
|
|
1386
1588
|
*/
|
|
1387
|
-
const
|
|
1388
|
-
is: "
|
|
1389
|
-
is_not: "
|
|
1390
|
-
contains: "
|
|
1391
|
-
does_not_contain: "
|
|
1392
|
-
is_empty: "
|
|
1393
|
-
is_not_empty: "
|
|
1394
|
-
is_true: "
|
|
1395
|
-
is_false: "
|
|
1396
|
-
before: "
|
|
1397
|
-
after: "
|
|
1398
|
-
between: "
|
|
1589
|
+
const OPERATOR_LABEL_KEYS = {
|
|
1590
|
+
is: "operatorIs",
|
|
1591
|
+
is_not: "operatorIsNot",
|
|
1592
|
+
contains: "operatorContains",
|
|
1593
|
+
does_not_contain: "operatorDoesNotContain",
|
|
1594
|
+
is_empty: "operatorIsEmpty",
|
|
1595
|
+
is_not_empty: "operatorIsNotEmpty",
|
|
1596
|
+
is_true: "operatorIsTrue",
|
|
1597
|
+
is_false: "operatorIsFalse",
|
|
1598
|
+
before: "operatorBefore",
|
|
1599
|
+
after: "operatorAfter",
|
|
1600
|
+
between: "operatorBetween"
|
|
1399
1601
|
};
|
|
1400
1602
|
/**
|
|
1401
1603
|
* Field-type-specific label overrides. The operator vocabulary itself
|
|
@@ -1403,18 +1605,18 @@ const OPERATOR_LABELS = {
|
|
|
1403
1605
|
* labels can be more specific where the generic label is ambiguous.
|
|
1404
1606
|
*
|
|
1405
1607
|
* Only present for `(fieldType, operator)` pairs that diverge from the
|
|
1406
|
-
* generic label; everything else falls through to `
|
|
1608
|
+
* generic label; everything else falls through to `OPERATOR_LABEL_KEYS`.
|
|
1407
1609
|
*/
|
|
1408
|
-
const
|
|
1409
|
-
is: "
|
|
1410
|
-
is_not: "
|
|
1610
|
+
const OPERATOR_LABEL_KEYS_BY_TYPE = { multi_choices: {
|
|
1611
|
+
is: "operatorIsAnyOf",
|
|
1612
|
+
is_not: "operatorIsNoneOf"
|
|
1411
1613
|
} };
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
return
|
|
1614
|
+
/**
|
|
1615
|
+
* The label for `operator`, specialized for `fieldType` where the generic label is ambiguous.
|
|
1616
|
+
* Pass `strings` from `usePDSStrings()` to translate it; English when omitted.
|
|
1617
|
+
*/
|
|
1618
|
+
function getOperatorLabel(operator, fieldType, strings = DEFAULT_COMMON_STRINGS) {
|
|
1619
|
+
return strings[fieldType && OPERATOR_LABEL_KEYS_BY_TYPE[fieldType]?.[operator] || OPERATOR_LABEL_KEYS[operator]];
|
|
1418
1620
|
}
|
|
1419
1621
|
/**
|
|
1420
1622
|
* Empty-but-present value seeded when a rule switches from a valueless operator
|
|
@@ -1496,10 +1698,15 @@ function resolveDateRangeRuleValue(rule, fieldType) {
|
|
|
1496
1698
|
//#endregion
|
|
1497
1699
|
//#region components/DataTable/TableControls/FiltersV2/format-date-value.ts
|
|
1498
1700
|
const TIME_COMPONENT = /T\d{2}:\d{2}/;
|
|
1499
|
-
|
|
1701
|
+
/**
|
|
1702
|
+
* Display form of a minute-precision filter value ("Oct 5, 2011 2:48 PM"). Date-only values are
|
|
1703
|
+
* returned untouched. Pass the `PDSProvider` locale (`usePDSLocale()`) to follow it; omitted or
|
|
1704
|
+
* en-US keeps the English format.
|
|
1705
|
+
*/
|
|
1706
|
+
function formatDateValueForDisplay(value, locale) {
|
|
1500
1707
|
if (!TIME_COMPONENT.test(value)) return value;
|
|
1501
1708
|
const dateTime = DateTime.fromISO(value).setZone(Settings.defaultZone);
|
|
1502
|
-
return dateTime.isValid ? dateTime
|
|
1709
|
+
return dateTime.isValid ? formatDateTime(dateTime, { locale }) : value;
|
|
1503
1710
|
}
|
|
1504
1711
|
//#endregion
|
|
1505
1712
|
//#region components/DataTable/TableControls/FiltersV2/relative-date-label.ts
|
|
@@ -1518,17 +1725,20 @@ function relativePresetLabel(value, relativeDate) {
|
|
|
1518
1725
|
}
|
|
1519
1726
|
//#endregion
|
|
1520
1727
|
//#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/display.ts
|
|
1521
|
-
function valueDisplayString(value, optionLabels, relativeDate, fieldType) {
|
|
1728
|
+
function valueDisplayString(value, optionLabels, relativeDate, fieldType, { locale, strings = DEFAULT_COMMON_STRINGS } = {}) {
|
|
1522
1729
|
if (value == null) return;
|
|
1523
1730
|
const relativeLabel = relativePresetLabel(value, relativeDate);
|
|
1524
1731
|
if (relativeLabel) return relativeLabel;
|
|
1525
|
-
const display = (raw) => optionLabels?.[raw] ?? (fieldType === "date" || fieldType === "date_range" ? formatDateValueForDisplay(raw) : raw);
|
|
1732
|
+
const display = (raw) => optionLabels?.[raw] ?? (fieldType === "date" || fieldType === "date_range" ? formatDateValueForDisplay(raw, locale) : raw);
|
|
1526
1733
|
if (Array.isArray(value)) {
|
|
1527
1734
|
if (value.length === 0) return;
|
|
1528
1735
|
if (value.length === 1) return display(String(value[0]));
|
|
1529
1736
|
return `${display(String(value[0]))} +${value.length - 1}`;
|
|
1530
1737
|
}
|
|
1531
|
-
if (typeof value === "boolean")
|
|
1738
|
+
if (typeof value === "boolean") {
|
|
1739
|
+
const label = value ? strings.booleanTrue : strings.booleanFalse;
|
|
1740
|
+
return label === (value ? DEFAULT_COMMON_STRINGS.booleanTrue : DEFAULT_COMMON_STRINGS.booleanFalse) ? String(value) : label;
|
|
1741
|
+
}
|
|
1532
1742
|
if (typeof value === "number") return String(value);
|
|
1533
1743
|
if (typeof value === "string") return value.length > 0 ? display(value) : void 0;
|
|
1534
1744
|
if (typeof value === "object") {
|
|
@@ -1619,8 +1829,10 @@ function nodeToOptions(node) {
|
|
|
1619
1829
|
* submenu entirely. Omit it (or pass `undefined`) to show every group.
|
|
1620
1830
|
*
|
|
1621
1831
|
* `excludeFieldIds`, when provided, drops those fields from the tree.
|
|
1832
|
+
*
|
|
1833
|
+
* `fieldsLabel` names the custom-field submenu; pass `usePDSStrings().fields` to translate it.
|
|
1622
1834
|
*/
|
|
1623
|
-
function buildFieldPickerOptions(registry, visibleCustomFieldParents, excludeFieldIds) {
|
|
1835
|
+
function buildFieldPickerOptions(registry, visibleCustomFieldParents, excludeFieldIds, fieldsLabel = FIELDS_SUBMENU_LABEL) {
|
|
1624
1836
|
const systemFields = registry.systemFieldsList();
|
|
1625
1837
|
const customGroups = registry.customFieldGroups();
|
|
1626
1838
|
const excluded = excludeFieldIds == null ? null : new Set(excludeFieldIds);
|
|
@@ -1640,7 +1852,7 @@ function buildFieldPickerOptions(registry, visibleCustomFieldParents, excludeFie
|
|
|
1640
1852
|
}
|
|
1641
1853
|
const customOptions = nodeToOptions(customRoot);
|
|
1642
1854
|
if (customOptions.length > 0) tree.push({
|
|
1643
|
-
label:
|
|
1855
|
+
label: fieldsLabel,
|
|
1644
1856
|
nested: true,
|
|
1645
1857
|
options: customOptions
|
|
1646
1858
|
});
|
|
@@ -1661,29 +1873,30 @@ const StatementFields = styled.div`
|
|
|
1661
1873
|
}
|
|
1662
1874
|
`;
|
|
1663
1875
|
function RuleEditorFields({ registry, dateTimesEnabled, field, groupIndex, ruleIndex, rule, size, operators, operatorConfigurable, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
|
|
1876
|
+
const strings = usePDSStrings();
|
|
1664
1877
|
const minutePrecisionValue = field != null && isMinutePrecisionDate(field, rule.operator, dateTimesEnabled);
|
|
1665
|
-
const fieldOptions = useMemo(() => buildFieldPickerOptions(registry), [registry]);
|
|
1878
|
+
const fieldOptions = useMemo(() => buildFieldPickerOptions(registry, void 0, void 0, strings.fields), [registry, strings.fields]);
|
|
1666
1879
|
return /* @__PURE__ */ jsxs(StatementFields, { children: [
|
|
1667
1880
|
/* @__PURE__ */ jsx(ComboboxField, {
|
|
1668
|
-
label:
|
|
1881
|
+
label: strings.value,
|
|
1669
1882
|
labelProps: { size },
|
|
1670
|
-
"aria-label":
|
|
1883
|
+
"aria-label": strings.fieldForRule(ruleIndex + 1, groupIndex + 1),
|
|
1671
1884
|
size,
|
|
1672
1885
|
options: fieldOptions,
|
|
1673
1886
|
value: rule.fieldId,
|
|
1674
1887
|
onChange: (next) => {
|
|
1675
1888
|
if (typeof next === "string") onFieldChange(groupIndex, ruleIndex, next);
|
|
1676
1889
|
},
|
|
1677
|
-
placeholder:
|
|
1890
|
+
placeholder: strings.selectField,
|
|
1678
1891
|
portal: false
|
|
1679
1892
|
}),
|
|
1680
1893
|
operatorConfigurable ? /* @__PURE__ */ jsx(ComboboxField, {
|
|
1681
|
-
label:
|
|
1894
|
+
label: strings.operator,
|
|
1682
1895
|
labelProps: { size },
|
|
1683
|
-
"aria-label":
|
|
1896
|
+
"aria-label": strings.operatorForRule(ruleIndex + 1, groupIndex + 1),
|
|
1684
1897
|
size,
|
|
1685
1898
|
options: operators.map((op) => ({
|
|
1686
|
-
label: getOperatorLabel(op, field?.type),
|
|
1899
|
+
label: getOperatorLabel(op, field?.type, strings),
|
|
1687
1900
|
value: op
|
|
1688
1901
|
})),
|
|
1689
1902
|
value: rule.operator,
|
|
@@ -1692,18 +1905,18 @@ function RuleEditorFields({ registry, dateTimesEnabled, field, groupIndex, ruleI
|
|
|
1692
1905
|
},
|
|
1693
1906
|
portal: false
|
|
1694
1907
|
}) : /* @__PURE__ */ jsx(FormField, {
|
|
1695
|
-
label:
|
|
1908
|
+
label: strings.operator,
|
|
1696
1909
|
labelProps: { size },
|
|
1697
1910
|
children: /* @__PURE__ */ jsx(Input_default, {
|
|
1698
1911
|
size,
|
|
1699
|
-
"aria-label":
|
|
1700
|
-
value: getOperatorLabel(rule.operator, field?.type),
|
|
1912
|
+
"aria-label": strings.operatorForRule(ruleIndex + 1, groupIndex + 1),
|
|
1913
|
+
value: getOperatorLabel(rule.operator, field?.type, strings),
|
|
1701
1914
|
disabled: true,
|
|
1702
1915
|
readOnly: true
|
|
1703
1916
|
})
|
|
1704
1917
|
}),
|
|
1705
1918
|
field && !isValuelessOperator(rule.operator) ? /* @__PURE__ */ jsx(FormField, {
|
|
1706
|
-
label:
|
|
1919
|
+
label: strings.value,
|
|
1707
1920
|
labelProps: { size },
|
|
1708
1921
|
configField: minutePrecisionValue ? false : void 0,
|
|
1709
1922
|
children: /* @__PURE__ */ jsx(Fragment$1, { children: renderValueControl(field, rule.operator, rule.value, (next, relativeDate) => onValueChange(groupIndex, ruleIndex, next, relativeDate), rule.relativeDate) })
|
|
@@ -1713,16 +1926,21 @@ function RuleEditorFields({ registry, dateTimesEnabled, field, groupIndex, ruleI
|
|
|
1713
1926
|
//#endregion
|
|
1714
1927
|
//#region components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/AdvancedFilterRuleRow.tsx
|
|
1715
1928
|
function AdvancedFilterRuleRow({ registry, dateTimesEnabled, groupIndex, ruleIndex, rule, size, isOpen, onClose, onDelete, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
|
|
1929
|
+
const strings = usePDSStrings();
|
|
1930
|
+
const locale = usePDSLocale();
|
|
1716
1931
|
const field = registry.get(rule.fieldId);
|
|
1717
1932
|
const operators = field ? getOperatorsForField(field) : [];
|
|
1718
1933
|
const operatorConfigurable = field ? fieldHasMultipleOperators(field) : true;
|
|
1719
|
-
const condition = ruleIndex === 0 ?
|
|
1934
|
+
const condition = ruleIndex === 0 ? strings.conditionIf : strings.conditionAnd;
|
|
1720
1935
|
const rowId = `${groupIndex}-${ruleIndex}`;
|
|
1721
|
-
const valueDisplay = isValuelessOperator(rule.operator) ? void 0 : valueDisplayString(rule.value, registry.optionLabelsFor(rule.fieldId), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type
|
|
1936
|
+
const valueDisplay = isValuelessOperator(rule.operator) ? void 0 : valueDisplayString(rule.value, registry.optionLabelsFor(rule.fieldId), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type, {
|
|
1937
|
+
locale,
|
|
1938
|
+
strings
|
|
1939
|
+
});
|
|
1722
1940
|
const textValue = [
|
|
1723
1941
|
condition,
|
|
1724
1942
|
field?.label ?? rule.fieldId,
|
|
1725
|
-
getOperatorLabel(rule.operator, field?.type),
|
|
1943
|
+
getOperatorLabel(rule.operator, field?.type, strings),
|
|
1726
1944
|
valueDisplay
|
|
1727
1945
|
].filter(Boolean).join(" ");
|
|
1728
1946
|
return /* @__PURE__ */ jsx(ListBox.LogicRow, {
|
|
@@ -1730,7 +1948,7 @@ function AdvancedFilterRuleRow({ registry, dateTimesEnabled, groupIndex, ruleInd
|
|
|
1730
1948
|
condition,
|
|
1731
1949
|
hideCondition: true,
|
|
1732
1950
|
attributeName: field?.label ?? rule.fieldId,
|
|
1733
|
-
operator: getOperatorLabel(rule.operator, field?.type),
|
|
1951
|
+
operator: getOperatorLabel(rule.operator, field?.type, strings),
|
|
1734
1952
|
matchLevelName: valueDisplay,
|
|
1735
1953
|
textValue,
|
|
1736
1954
|
size,
|
|
@@ -1738,7 +1956,7 @@ function AdvancedFilterRuleRow({ registry, dateTimesEnabled, groupIndex, ruleInd
|
|
|
1738
1956
|
if (isOpen) onClose();
|
|
1739
1957
|
},
|
|
1740
1958
|
onDelete,
|
|
1741
|
-
dropdownHeadingText:
|
|
1959
|
+
dropdownHeadingText: strings.editStatement(condition),
|
|
1742
1960
|
dropdownFormFields: /* @__PURE__ */ jsx(RuleEditorFields, {
|
|
1743
1961
|
registry,
|
|
1744
1962
|
dateTimesEnabled,
|
|
@@ -1969,6 +2187,7 @@ function groupsForRender(compound) {
|
|
|
1969
2187
|
* row's dropdown popover.
|
|
1970
2188
|
*/
|
|
1971
2189
|
const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, open, onOpenChange, renderValueControl, size, dateTimesEnabled = false }) => {
|
|
2190
|
+
const strings = usePDSStrings();
|
|
1972
2191
|
const resolvedSize = useFilterBarSize(size);
|
|
1973
2192
|
const subtleIconSize = resolvedSize === "sm" ? "xs" : "sm";
|
|
1974
2193
|
const wide = useMemo(() => dateTimesEnabled && registry.all().some((field) => field.timeGranularity === "minute"), [registry, dateTimesEnabled]);
|
|
@@ -2073,7 +2292,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2073
2292
|
sideOffset: 8,
|
|
2074
2293
|
collisionPadding: 8,
|
|
2075
2294
|
role: "dialog",
|
|
2076
|
-
"aria-label":
|
|
2295
|
+
"aria-label": strings.advancedFilterRules,
|
|
2077
2296
|
id: baseId,
|
|
2078
2297
|
onPointerDownCapture: letPointerDownReachDocument,
|
|
2079
2298
|
ref: popoverContentRef,
|
|
@@ -2098,25 +2317,25 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2098
2317
|
children: [/* @__PURE__ */ jsx(Header, { children: /* @__PURE__ */ jsx(Paragraph, {
|
|
2099
2318
|
size: resolvedSize,
|
|
2100
2319
|
color: "secondary",
|
|
2101
|
-
children:
|
|
2320
|
+
children: strings.advancedFilterRules
|
|
2102
2321
|
}) }), /* @__PURE__ */ jsxs(Body, { children: [groupsForRender(compound).map((group, groupIndex, renderableGroups) => {
|
|
2103
|
-
const groupTitle = groupIndex === 0 ?
|
|
2322
|
+
const groupTitle = groupIndex === 0 ? strings.conditionIf : strings.conditionOr;
|
|
2104
2323
|
const isSynthetic = group.synthetic;
|
|
2105
2324
|
const isOnlyGroup = renderableGroups.length === 1;
|
|
2106
2325
|
const isEmptyGroup = group.rules.length === 0;
|
|
2107
2326
|
const hideGroupMenu = isOnlyGroup && isEmptyGroup;
|
|
2108
|
-
const deleteGroupLabel = isOnlyGroup && !isEmptyGroup ?
|
|
2327
|
+
const deleteGroupLabel = isOnlyGroup && !isEmptyGroup ? strings.clearAll : strings.deleteGroup;
|
|
2109
2328
|
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(GroupCard, {
|
|
2110
2329
|
"data-test": `advanced-filter-rules__group-${groupIndex}`,
|
|
2111
2330
|
role: "group",
|
|
2112
|
-
"aria-label":
|
|
2331
|
+
"aria-label": strings.filterGroup(groupIndex + 1),
|
|
2113
2332
|
children: [/* @__PURE__ */ jsxs(GroupHeader, { children: [/* @__PURE__ */ jsx(GroupTitle, {
|
|
2114
2333
|
$size: resolvedSize,
|
|
2115
2334
|
children: groupTitle
|
|
2116
2335
|
}), /* @__PURE__ */ jsxs(GroupHeaderActions, { children: [hideGroupMenu ? null : /* @__PURE__ */ jsx(GroupActionsMenu, {
|
|
2117
2336
|
trigger: /* @__PURE__ */ jsx(IconButton, {
|
|
2118
2337
|
size: subtleIconSize,
|
|
2119
|
-
"aria-label":
|
|
2338
|
+
"aria-label": strings.moreActionsForFilterGroup(groupIndex + 1),
|
|
2120
2339
|
"data-test": `advanced-filter-rules__group-more-${groupIndex}`,
|
|
2121
2340
|
children: /* @__PURE__ */ jsx(MoreIcon$1, {})
|
|
2122
2341
|
}),
|
|
@@ -2138,16 +2357,16 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2138
2357
|
}), /* @__PURE__ */ jsx(IconButton, {
|
|
2139
2358
|
size: subtleIconSize,
|
|
2140
2359
|
onClick: () => handleAddRuleToGroup(groupIndex),
|
|
2141
|
-
"aria-label":
|
|
2360
|
+
"aria-label": strings.addRuleToFilterGroup(groupIndex + 1),
|
|
2142
2361
|
"data-test": `advanced-filter-rules__add-rule-${groupIndex}`,
|
|
2143
2362
|
children: /* @__PURE__ */ jsx(PlusIcon$1, {})
|
|
2144
2363
|
})] })] }), group.rules.length === 0 ? /* @__PURE__ */ jsx(Paragraph, {
|
|
2145
2364
|
size: resolvedSize,
|
|
2146
2365
|
color: "secondary",
|
|
2147
2366
|
style: { padding: Spacing[2] },
|
|
2148
|
-
children:
|
|
2367
|
+
children: strings.noRulesYet
|
|
2149
2368
|
}) : /* @__PURE__ */ jsx(RulesListBox, {
|
|
2150
|
-
"aria-label":
|
|
2369
|
+
"aria-label": strings.rulesInGroup(groupIndex + 1),
|
|
2151
2370
|
selectionMode: "single",
|
|
2152
2371
|
size: resolvedSize,
|
|
2153
2372
|
fullWidth: true,
|
|
@@ -2180,7 +2399,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2180
2399
|
prefixIcon: /* @__PURE__ */ jsx(PlusIcon, {}),
|
|
2181
2400
|
onClick: handleAddOrGroup,
|
|
2182
2401
|
"data-test": "advanced-filter-rules__add-or-group",
|
|
2183
|
-
children:
|
|
2402
|
+
children: strings.orGroup
|
|
2184
2403
|
}) })] })]
|
|
2185
2404
|
})
|
|
2186
2405
|
}) })]
|
|
@@ -2220,6 +2439,7 @@ const stringValue = (value) => {
|
|
|
2220
2439
|
* scalar?", so we never produce an array-of-values from this control.
|
|
2221
2440
|
*/
|
|
2222
2441
|
const ArrayValueControl = ({ field, operator, value, onChange, onCommit, ariaLabel, layout = "popover" }) => {
|
|
2442
|
+
const strings = usePDSStrings();
|
|
2223
2443
|
const size = useFilterBarSize();
|
|
2224
2444
|
const [localValue, setLocalValue] = useState(() => stringDisplayValue(value));
|
|
2225
2445
|
useEffect(() => {
|
|
@@ -2234,7 +2454,7 @@ const ArrayValueControl = ({ field, operator, value, onChange, onCommit, ariaLab
|
|
|
2234
2454
|
onCommit?.();
|
|
2235
2455
|
}, [onChange, onCommit]);
|
|
2236
2456
|
if (isValuelessOperator(operator)) return null;
|
|
2237
|
-
const label = ariaLabel ??
|
|
2457
|
+
const label = ariaLabel ?? strings.fieldValue(field.label);
|
|
2238
2458
|
if ((field.itemType ?? "string") === "choices") return /* @__PURE__ */ jsx(Combobox, {
|
|
2239
2459
|
"aria-label": label,
|
|
2240
2460
|
options: (field.options ?? []).map((opt) => ({
|
|
@@ -2243,14 +2463,14 @@ const ArrayValueControl = ({ field, operator, value, onChange, onCommit, ariaLab
|
|
|
2243
2463
|
})),
|
|
2244
2464
|
value: stringValue(value),
|
|
2245
2465
|
onChange: handleComboboxChange,
|
|
2246
|
-
placeholder:
|
|
2466
|
+
placeholder: strings.selectAnOptionPlaceholder,
|
|
2247
2467
|
size,
|
|
2248
2468
|
embedded: layout === "popover"
|
|
2249
2469
|
});
|
|
2250
2470
|
return /* @__PURE__ */ jsx(Input_default, {
|
|
2251
2471
|
type: "text",
|
|
2252
2472
|
size,
|
|
2253
|
-
placeholder:
|
|
2473
|
+
placeholder: strings.enterAValue,
|
|
2254
2474
|
"aria-label": label,
|
|
2255
2475
|
value: localValue,
|
|
2256
2476
|
onChange: (e) => handleTextChange(e.target.value)
|
|
@@ -2259,10 +2479,10 @@ const ArrayValueControl = ({ field, operator, value, onChange, onCommit, ariaLab
|
|
|
2259
2479
|
//#endregion
|
|
2260
2480
|
//#region components/DataTable/TableControls/FiltersV2/value-controls/BooleanValueControl/BooleanValueControl.tsx
|
|
2261
2481
|
const OPTIONS = [{
|
|
2262
|
-
|
|
2482
|
+
labelKey: "booleanTrue",
|
|
2263
2483
|
value: true
|
|
2264
2484
|
}, {
|
|
2265
|
-
|
|
2485
|
+
labelKey: "booleanFalse",
|
|
2266
2486
|
value: false
|
|
2267
2487
|
}];
|
|
2268
2488
|
const Row = styled.button`
|
|
@@ -2309,11 +2529,12 @@ const Root = styled.div`
|
|
|
2309
2529
|
* for valueless operators (`is_empty`, `is_not_empty`).
|
|
2310
2530
|
*/
|
|
2311
2531
|
function BooleanValueControl({ operator, value, onChange, ariaLabel }) {
|
|
2532
|
+
const strings = usePDSStrings();
|
|
2312
2533
|
if (isValuelessOperator(operator)) return null;
|
|
2313
2534
|
const selected = typeof value === "boolean" ? value : null;
|
|
2314
2535
|
return /* @__PURE__ */ jsx(Root, {
|
|
2315
2536
|
role: "radiogroup",
|
|
2316
|
-
"aria-label": ariaLabel ??
|
|
2537
|
+
"aria-label": ariaLabel ?? strings.booleanValue,
|
|
2317
2538
|
children: OPTIONS.map((opt) => {
|
|
2318
2539
|
const isSelected = selected === opt.value;
|
|
2319
2540
|
return /* @__PURE__ */ jsxs(Row, {
|
|
@@ -2322,7 +2543,7 @@ function BooleanValueControl({ operator, value, onChange, ariaLabel }) {
|
|
|
2322
2543
|
"aria-checked": isSelected,
|
|
2323
2544
|
$selected: isSelected,
|
|
2324
2545
|
onClick: () => onChange(opt.value),
|
|
2325
|
-
children: [opt.
|
|
2546
|
+
children: [strings[opt.labelKey], isSelected ? /* @__PURE__ */ jsx(CheckIcon, { "aria-hidden": true }) : null]
|
|
2326
2547
|
}, String(opt.value));
|
|
2327
2548
|
})
|
|
2328
2549
|
});
|
|
@@ -2341,6 +2562,7 @@ const EMPTY_VALUES = [];
|
|
|
2341
2562
|
* valueless (e.g. `is_empty`).
|
|
2342
2563
|
*/
|
|
2343
2564
|
function ChoicesValueControl({ field, operator, value, onChange, onCommit, ariaLabel, trigger, layout = "popover", multiple = false }) {
|
|
2565
|
+
const strings = usePDSStrings();
|
|
2344
2566
|
const generatedId = useMemo(() => uniqueId(multiple ? "filter_v2_multi_choices_" : "filter_v2_choices_"), [multiple]);
|
|
2345
2567
|
const size = useFilterBarSize();
|
|
2346
2568
|
const options = field.options ?? EMPTY_OPTIONS;
|
|
@@ -2352,8 +2574,8 @@ function ChoicesValueControl({ field, operator, value, onChange, onCommit, ariaL
|
|
|
2352
2574
|
size,
|
|
2353
2575
|
"aria-label": ariaLabel ?? field.label,
|
|
2354
2576
|
placeholder: field.label,
|
|
2355
|
-
searchPlaceholder:
|
|
2356
|
-
emptyStateMessage:
|
|
2577
|
+
searchPlaceholder: strings.searchPlaceholder,
|
|
2578
|
+
emptyStateMessage: strings.noMatches,
|
|
2357
2579
|
options,
|
|
2358
2580
|
values,
|
|
2359
2581
|
trigger,
|
|
@@ -2407,16 +2629,32 @@ const useDateRange = (value, relativeDate, minuteMode) => {
|
|
|
2407
2629
|
const parsedRelativeDate = parseDateFilterValue(relativeDate);
|
|
2408
2630
|
const parsed = parsedRelativeDate?.kind === "relative" ? parsedRelativeDate : parseDateFilterValue(value);
|
|
2409
2631
|
const resolved = parsed ? resolveDateFilterValue(parsed) : void 0;
|
|
2410
|
-
|
|
2411
|
-
|
|
2412
|
-
|
|
2413
|
-
|
|
2632
|
+
const isRelative = parsed?.kind === "relative";
|
|
2633
|
+
const nowMinuteMillis = minuteMode && isRelative ? DateTime.now().setZone(Settings.defaultZone).set({
|
|
2634
|
+
second: 0,
|
|
2635
|
+
millisecond: 0
|
|
2636
|
+
}).toMillis() : void 0;
|
|
2637
|
+
return useMemo(() => {
|
|
2638
|
+
const startDate = minuteMode ? parseIsoDateTime(resolved?.startDate, "start") : parseIsoDate$1(resolved?.startDate);
|
|
2639
|
+
let endDate = minuteMode ? parseIsoDateTime(resolved?.endDate, "end") : parseIsoDate$1(resolved?.endDate);
|
|
2640
|
+
if (minuteMode && isRelative && endDate && nowMinuteMillis !== void 0) {
|
|
2641
|
+
const now = DateTime.fromMillis(nowMinuteMillis, { zone: Settings.defaultZone });
|
|
2642
|
+
if (endDate.toMillis() > now.toMillis()) endDate = now;
|
|
2643
|
+
}
|
|
2644
|
+
return {
|
|
2645
|
+
startDate,
|
|
2646
|
+
endDate
|
|
2647
|
+
};
|
|
2648
|
+
}, [
|
|
2649
|
+
isRelative,
|
|
2414
2650
|
minuteMode,
|
|
2651
|
+
nowMinuteMillis,
|
|
2415
2652
|
resolved?.startDate,
|
|
2416
2653
|
resolved?.endDate
|
|
2417
2654
|
]);
|
|
2418
2655
|
};
|
|
2419
2656
|
const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange, ariaLabel, hidePresets, portalContainer, visibleMonths, relativeDatesEnabled = false, dateTimesEnabled = false }) => {
|
|
2657
|
+
const strings = usePDSStrings();
|
|
2420
2658
|
const size = useFilterBarSize();
|
|
2421
2659
|
const minuteMode = dateTimesEnabled && field.timeGranularity === "minute";
|
|
2422
2660
|
const dateRange = useDateRange(value, relativeDate, minuteMode);
|
|
@@ -2482,7 +2720,7 @@ const DateRangeValueControl = ({ field, operator, value, relativeDate, onChange,
|
|
|
2482
2720
|
if (isValuelessOperator(operator)) return null;
|
|
2483
2721
|
const hasCompleteRange = dateRange.startDate != null && dateRange.endDate != null;
|
|
2484
2722
|
return /* @__PURE__ */ jsx(DateRangePicker, {
|
|
2485
|
-
"aria-label": ariaLabel ??
|
|
2723
|
+
"aria-label": ariaLabel ?? strings.fieldValue(field.label),
|
|
2486
2724
|
calendarZIndex: Z_INDICES.modalDropdown,
|
|
2487
2725
|
dateRange,
|
|
2488
2726
|
hidePresets,
|
|
@@ -2529,6 +2767,7 @@ const parseIsoDate = (value, field, operator, dateTimesEnabled) => {
|
|
|
2529
2767
|
* and bar both opt in; other date values remain `YYYY-MM-DD`.
|
|
2530
2768
|
*/
|
|
2531
2769
|
const DateValueControl = ({ field, operator, value, onChange, ariaLabel, dateTimesEnabled = false }) => {
|
|
2770
|
+
const strings = usePDSStrings();
|
|
2532
2771
|
const size = useFilterBarSize();
|
|
2533
2772
|
const minuteMode = isMinutePrecisionDate(field, operator, dateTimesEnabled);
|
|
2534
2773
|
const handleChange = useCallback((nextDate) => {
|
|
@@ -2554,7 +2793,7 @@ const DateValueControl = ({ field, operator, value, onChange, ariaLabel, dateTim
|
|
|
2554
2793
|
return /* @__PURE__ */ jsx(DatePicker, {
|
|
2555
2794
|
value: parseIsoDate(value, field, operator, dateTimesEnabled),
|
|
2556
2795
|
size,
|
|
2557
|
-
"aria-label": ariaLabel ??
|
|
2796
|
+
"aria-label": ariaLabel ?? strings.fieldValue(field.label),
|
|
2558
2797
|
onChange: handleChange,
|
|
2559
2798
|
granularity: minuteMode ? "minute" : "day",
|
|
2560
2799
|
useModalZIndex: true
|
|
@@ -2608,6 +2847,7 @@ function numericDisplayValue(value) {
|
|
|
2608
2847
|
* the debounce flushes on blur and on unmount so no pending value is lost.
|
|
2609
2848
|
*/
|
|
2610
2849
|
const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
2850
|
+
const strings = usePDSStrings();
|
|
2611
2851
|
const size = useFilterBarSize();
|
|
2612
2852
|
const [localValue, setLocalValue] = useState(() => numericDisplayValue(value));
|
|
2613
2853
|
const isFocusedRef = useRef(false);
|
|
@@ -2638,8 +2878,8 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
|
2638
2878
|
size,
|
|
2639
2879
|
step: "any",
|
|
2640
2880
|
inputMode: "decimal",
|
|
2641
|
-
placeholder:
|
|
2642
|
-
"aria-label": ariaLabel ??
|
|
2881
|
+
placeholder: strings.enterANumber,
|
|
2882
|
+
"aria-label": ariaLabel ?? strings.fieldValue(field.label),
|
|
2643
2883
|
value: localValue,
|
|
2644
2884
|
onChange: (e) => handleChange(e.target.value),
|
|
2645
2885
|
onFocus: () => {
|
|
@@ -2679,6 +2919,7 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
|
2679
2919
|
* the debounce flushes on blur and on unmount so no pending value is lost.
|
|
2680
2920
|
*/
|
|
2681
2921
|
const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
2922
|
+
const strings = usePDSStrings();
|
|
2682
2923
|
const size = useFilterBarSize();
|
|
2683
2924
|
const [localValue, setLocalValue] = useState(() => numericDisplayValue(value));
|
|
2684
2925
|
const isFocusedRef = useRef(false);
|
|
@@ -2709,8 +2950,8 @@ const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) =>
|
|
|
2709
2950
|
size,
|
|
2710
2951
|
step: 1,
|
|
2711
2952
|
inputMode: "numeric",
|
|
2712
|
-
placeholder:
|
|
2713
|
-
"aria-label": ariaLabel ??
|
|
2953
|
+
placeholder: strings.enterANumber,
|
|
2954
|
+
"aria-label": ariaLabel ?? strings.fieldValue(field.label),
|
|
2714
2955
|
value: localValue,
|
|
2715
2956
|
onChange: (e) => handleChange(e.target.value),
|
|
2716
2957
|
onFocus: () => {
|
|
@@ -2806,14 +3047,21 @@ const TriggerWrapper = styled.span`
|
|
|
2806
3047
|
}
|
|
2807
3048
|
`}
|
|
2808
3049
|
`;
|
|
2809
|
-
const FilterPickerMenu = ({ registry, onPickField, triggerLabel
|
|
3050
|
+
const FilterPickerMenu = ({ registry, onPickField, triggerLabel, compact = false, disabled = false, visibleCustomFieldParents, excludeFieldIds, size, ...rest }) => {
|
|
2810
3051
|
const resolvedSize = useFilterBarSize(size);
|
|
2811
|
-
const
|
|
2812
|
-
const
|
|
3052
|
+
const strings = usePDSStrings();
|
|
3053
|
+
const resolvedTriggerLabel = triggerLabel ?? strings.filter;
|
|
3054
|
+
const unfilteredOptions = useMemo(() => buildFieldPickerOptions(registry, visibleCustomFieldParents, void 0, strings.fields), [
|
|
3055
|
+
registry,
|
|
3056
|
+
visibleCustomFieldParents,
|
|
3057
|
+
strings.fields
|
|
3058
|
+
]);
|
|
3059
|
+
const options = useMemo(() => excludeFieldIds == null || excludeFieldIds.length === 0 ? unfilteredOptions : buildFieldPickerOptions(registry, visibleCustomFieldParents, excludeFieldIds, strings.fields), [
|
|
2813
3060
|
registry,
|
|
2814
3061
|
visibleCustomFieldParents,
|
|
2815
3062
|
excludeFieldIds,
|
|
2816
|
-
unfilteredOptions
|
|
3063
|
+
unfilteredOptions,
|
|
3064
|
+
strings.fields
|
|
2817
3065
|
]);
|
|
2818
3066
|
const handleChange = useCallback((value) => {
|
|
2819
3067
|
if (value == null) return;
|
|
@@ -2825,7 +3073,7 @@ const FilterPickerMenu = ({ registry, onPickField, triggerLabel = "Filter", comp
|
|
|
2825
3073
|
const trigger = compact ? /* @__PURE__ */ jsx(IconButton, {
|
|
2826
3074
|
size: resolvedSize,
|
|
2827
3075
|
disabled,
|
|
2828
|
-
"aria-label":
|
|
3076
|
+
"aria-label": resolvedTriggerLabel,
|
|
2829
3077
|
children: /* @__PURE__ */ jsx(CirclePlusIcon, {})
|
|
2830
3078
|
}) : /* @__PURE__ */ jsx(Button, {
|
|
2831
3079
|
variant: "text",
|
|
@@ -2833,7 +3081,7 @@ const FilterPickerMenu = ({ registry, onPickField, triggerLabel = "Filter", comp
|
|
|
2833
3081
|
width: "auto",
|
|
2834
3082
|
prefixIcon: /* @__PURE__ */ jsx(CirclePlusIcon, {}),
|
|
2835
3083
|
disabled,
|
|
2836
|
-
children:
|
|
3084
|
+
children: resolvedTriggerLabel
|
|
2837
3085
|
});
|
|
2838
3086
|
return /* @__PURE__ */ jsx(TriggerWrapper, {
|
|
2839
3087
|
...rest,
|
|
@@ -2843,7 +3091,7 @@ const FilterPickerMenu = ({ registry, onPickField, triggerLabel = "Filter", comp
|
|
|
2843
3091
|
value: null,
|
|
2844
3092
|
onChange: handleChange,
|
|
2845
3093
|
size: resolvedSize,
|
|
2846
|
-
"aria-label":
|
|
3094
|
+
"aria-label": strings.filterFieldPicker,
|
|
2847
3095
|
trigger
|
|
2848
3096
|
})
|
|
2849
3097
|
});
|
|
@@ -3072,13 +3320,13 @@ const OverflowTooltipList = styled(Stack).attrs({
|
|
|
3072
3320
|
* `optionLabels` lookup so the pill renders human-readable option labels
|
|
3073
3321
|
* instead of raw option ids. Null / undefined collapses to an empty list.
|
|
3074
3322
|
*/
|
|
3075
|
-
function normalizeValueToDisplay(value, optionLabels, relativeDate, fieldType) {
|
|
3323
|
+
function normalizeValueToDisplay(value, optionLabels, relativeDate, fieldType, strings = DEFAULT_COMMON_STRINGS, locale) {
|
|
3076
3324
|
if (value == null) return [];
|
|
3077
3325
|
const relativeLabel = relativePresetLabel(value, relativeDate);
|
|
3078
3326
|
if (relativeLabel) return [relativeLabel];
|
|
3079
|
-
const lookup = (raw) => optionLabels?.[raw] ?? (fieldType === "date" || fieldType === "date_range" ? formatDateValueForDisplay(raw) : raw);
|
|
3327
|
+
const lookup = (raw) => optionLabels?.[raw] ?? (fieldType === "date" || fieldType === "date_range" ? formatDateValueForDisplay(raw, locale) : raw);
|
|
3080
3328
|
if (Array.isArray(value)) {
|
|
3081
|
-
if (value.length > 0 && Array.isArray(value[0])) return [
|
|
3329
|
+
if (value.length > 0 && Array.isArray(value[0])) return [strings.groupCount(value.length)];
|
|
3082
3330
|
return value.map((entry) => lookup(String(entry)));
|
|
3083
3331
|
}
|
|
3084
3332
|
if (typeof value === "object") {
|
|
@@ -3087,7 +3335,7 @@ function normalizeValueToDisplay(value, optionLabels, relativeDate, fieldType) {
|
|
|
3087
3335
|
const single = startDate || endDate;
|
|
3088
3336
|
return single ? [lookup(single)] : [];
|
|
3089
3337
|
}
|
|
3090
|
-
if (typeof value === "boolean") return [value ?
|
|
3338
|
+
if (typeof value === "boolean") return [value ? strings.booleanTrue : strings.booleanFalse];
|
|
3091
3339
|
if (typeof value === "number") return [String(value)];
|
|
3092
3340
|
return [lookup(value)];
|
|
3093
3341
|
}
|
|
@@ -3097,22 +3345,26 @@ function normalizeValueToDisplay(value, optionLabels, relativeDate, fieldType) {
|
|
|
3097
3345
|
* relying on child text nodes because the chip components don't always read
|
|
3098
3346
|
* cleanly when concatenated by the AT.
|
|
3099
3347
|
*/
|
|
3100
|
-
function buildAccessibleName(field, rule, displayedValues) {
|
|
3348
|
+
function buildAccessibleName(field, rule, displayedValues, strings = DEFAULT_COMMON_STRINGS) {
|
|
3101
3349
|
if (rule == null) return field.label;
|
|
3102
3350
|
if (!isValuelessOperator(rule.operator) && displayedValues.length === 0) return field.label;
|
|
3103
|
-
const operatorLabel = getOperatorLabel(rule.operator, field.type);
|
|
3351
|
+
const operatorLabel = getOperatorLabel(rule.operator, field.type, strings);
|
|
3104
3352
|
if (isValuelessOperator(rule.operator)) return `${field.label} ${operatorLabel}`;
|
|
3105
3353
|
return `${field.label} ${operatorLabel} ${displayedValues.join(", ")}`;
|
|
3106
3354
|
}
|
|
3107
3355
|
const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDismiss, variant = "default", optionLabels, size, ...rest }, ref) {
|
|
3108
3356
|
const reactId = useMemo(() => uniqueId("filter-pill-"), []);
|
|
3109
3357
|
const resolvedSize = useFilterBarSize(size);
|
|
3110
|
-
const
|
|
3358
|
+
const strings = usePDSStrings();
|
|
3359
|
+
const locale = usePDSLocale();
|
|
3360
|
+
const displayedValues = useMemo(() => rule && !isValuelessOperator(rule.operator) ? normalizeValueToDisplay(rule.value, optionLabels, carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type, strings, locale) : [], [
|
|
3111
3361
|
rule,
|
|
3112
3362
|
optionLabels,
|
|
3113
|
-
field?.type
|
|
3363
|
+
field?.type,
|
|
3364
|
+
strings,
|
|
3365
|
+
locale
|
|
3114
3366
|
]);
|
|
3115
|
-
const accessibleName = buildAccessibleName(field, rule, displayedValues);
|
|
3367
|
+
const accessibleName = buildAccessibleName(field, rule, displayedValues, strings);
|
|
3116
3368
|
const hasRule = rule != null;
|
|
3117
3369
|
const isComplete = hasRule && (isValuelessOperator(rule.operator) || displayedValues.length > 0);
|
|
3118
3370
|
const firstValue = displayedValues[0];
|
|
@@ -3122,14 +3374,14 @@ const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDism
|
|
|
3122
3374
|
ref,
|
|
3123
3375
|
variant,
|
|
3124
3376
|
size: resolvedSize,
|
|
3125
|
-
bodyAriaLabel:
|
|
3377
|
+
bodyAriaLabel: strings.editFilter(accessibleName),
|
|
3126
3378
|
onBodyClick: onClick,
|
|
3127
3379
|
onDismiss,
|
|
3128
|
-
dismissAriaLabel:
|
|
3380
|
+
dismissAriaLabel: strings.removeFilter(accessibleName),
|
|
3129
3381
|
...rest,
|
|
3130
3382
|
children: [
|
|
3131
3383
|
/* @__PURE__ */ jsx(FieldLabel, { children: /* @__PURE__ */ jsx(TruncatedText, { children: field.label }) }),
|
|
3132
|
-
isComplete && hasRule && /* @__PURE__ */ jsx(OperatorLabel, { children: getOperatorLabel(rule.operator, field.type) }),
|
|
3384
|
+
isComplete && hasRule && /* @__PURE__ */ jsx(OperatorLabel, { children: getOperatorLabel(rule.operator, field.type, strings) }),
|
|
3133
3385
|
isComplete && hasRule && !isValuelessOperator(rule.operator) && firstValue != null && /* @__PURE__ */ jsxs(ValueChipGroup, { children: [/* @__PURE__ */ jsx(ValueChip, {
|
|
3134
3386
|
$variant: variant,
|
|
3135
3387
|
$size: resolvedSize,
|
|
@@ -3145,7 +3397,7 @@ const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDism
|
|
|
3145
3397
|
hideArrow: true,
|
|
3146
3398
|
children: /* @__PURE__ */ jsx(OverflowTooltipList, {
|
|
3147
3399
|
id: overflowTooltipId,
|
|
3148
|
-
"aria-label":
|
|
3400
|
+
"aria-label": strings.additionalValues,
|
|
3149
3401
|
children: overflowValues.map((entry, index) => /* @__PURE__ */ jsx("li", { children: entry }, `${entry}-${index}`))
|
|
3150
3402
|
})
|
|
3151
3403
|
})] })
|
|
@@ -3154,13 +3406,10 @@ const FilterPill = forwardRef(function FilterPill({ field, rule, onClick, onDism
|
|
|
3154
3406
|
});
|
|
3155
3407
|
//#endregion
|
|
3156
3408
|
//#region components/DataTable/TableControls/FiltersV2/FilterPopover/FilterPopover.tsx
|
|
3157
|
-
/**
|
|
3158
|
-
* Compact value controls fit the minimum width; wider controls can grow
|
|
3159
|
-
* up to 320px without overflowing, or 520px when the popover is `wide`.
|
|
3160
|
-
*/
|
|
3409
|
+
/** Wide controls size to their content while retaining a viewport gutter. */
|
|
3161
3410
|
const POPOVER_MIN_WIDTH = "196px";
|
|
3162
3411
|
const POPOVER_MAX_WIDTH = "320px";
|
|
3163
|
-
const POPOVER_WIDE_MAX_WIDTH =
|
|
3412
|
+
const POPOVER_WIDE_MAX_WIDTH = `calc(100vw - ${Spacing[4]} - ${Spacing[4]})`;
|
|
3164
3413
|
const OperatorMenu = styled(DropdownMenu_default)`
|
|
3165
3414
|
&& {
|
|
3166
3415
|
background-color: ${({ theme }) => semanticColor(theme, "SurfaceElevated", theme.color.background.primary)};
|
|
@@ -3168,7 +3417,7 @@ const OperatorMenu = styled(DropdownMenu_default)`
|
|
|
3168
3417
|
`;
|
|
3169
3418
|
const PopoverPanel = styled(Stack).attrs({ spacing: Spacing[0] })`
|
|
3170
3419
|
min-width: ${POPOVER_MIN_WIDTH};
|
|
3171
|
-
max-width: ${({ $wide }) => $wide ?
|
|
3420
|
+
max-width: ${({ $wide }) => $wide ? "none" : POPOVER_MAX_WIDTH};
|
|
3172
3421
|
/* The design-system Popover.Card already supplies bg, border, shadow,
|
|
3173
3422
|
and 6px corner radius — we just constrain the inner content. */
|
|
3174
3423
|
`;
|
|
@@ -3271,6 +3520,7 @@ const Footer = styled(HStack).attrs({
|
|
|
3271
3520
|
* through Radix's controlled props.
|
|
3272
3521
|
*/
|
|
3273
3522
|
const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, onClose, trigger, open, onOpenChange, size, wide = false }) => {
|
|
3523
|
+
const strings = usePDSStrings();
|
|
3274
3524
|
const resolvedSize = useFilterBarSize(size);
|
|
3275
3525
|
const valueless = isValuelessOperator(operator);
|
|
3276
3526
|
const CaretIcon = resolvedSize === "sm" ? CaretDownIcon$1 : CaretDownIcon;
|
|
@@ -3316,8 +3566,12 @@ const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, on
|
|
|
3316
3566
|
sideOffset: 4,
|
|
3317
3567
|
avoidCollisions: true,
|
|
3318
3568
|
zIndex: Z_INDICES.floatingBar,
|
|
3319
|
-
"aria-label":
|
|
3569
|
+
"aria-label": strings.editFilterFor(field.label),
|
|
3320
3570
|
noPadding: true,
|
|
3571
|
+
style: wide ? {
|
|
3572
|
+
width: "max-content",
|
|
3573
|
+
maxWidth: POPOVER_WIDE_MAX_WIDTH
|
|
3574
|
+
} : void 0,
|
|
3321
3575
|
children: /* @__PURE__ */ jsxs(PopoverPanel, {
|
|
3322
3576
|
$wide: wide,
|
|
3323
3577
|
onKeyDown: handleKeyDown,
|
|
@@ -3332,9 +3586,9 @@ const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, on
|
|
|
3332
3586
|
}), showOperatorSelector ? /* @__PURE__ */ jsx(OperatorMenu, {
|
|
3333
3587
|
trigger: /* @__PURE__ */ jsxs(InlineOperatorTrigger, {
|
|
3334
3588
|
type: "button",
|
|
3335
|
-
"aria-label":
|
|
3589
|
+
"aria-label": strings.operator,
|
|
3336
3590
|
$size: resolvedSize,
|
|
3337
|
-
children: [getOperatorLabel(operator, field.type), /* @__PURE__ */ jsx(CaretIcon, { "aria-hidden": "true" })]
|
|
3591
|
+
children: [getOperatorLabel(operator, field.type, strings), /* @__PURE__ */ jsx(CaretIcon, { "aria-hidden": "true" })]
|
|
3338
3592
|
}),
|
|
3339
3593
|
align: "start",
|
|
3340
3594
|
portal: true,
|
|
@@ -3342,9 +3596,9 @@ const FilterPopover = ({ field, operator, onChangeOperator, valueControlSlot, on
|
|
|
3342
3596
|
children: operatorOptions.map((op) => /* @__PURE__ */ jsx(DropdownMenu_default.Item, {
|
|
3343
3597
|
size: resolvedSize,
|
|
3344
3598
|
onClick: () => onChangeOperator(op),
|
|
3345
|
-
children: getOperatorLabel(op, field.type)
|
|
3599
|
+
children: getOperatorLabel(op, field.type, strings)
|
|
3346
3600
|
}, op))
|
|
3347
|
-
}) : /* @__PURE__ */ jsx("span", { children: getOperatorLabel(operator, field.type) })]
|
|
3601
|
+
}) : /* @__PURE__ */ jsx("span", { children: getOperatorLabel(operator, field.type, strings) })]
|
|
3348
3602
|
}), !valueless ? /* @__PURE__ */ jsx(ValueSlot, {
|
|
3349
3603
|
ref: valueSlotRef,
|
|
3350
3604
|
children: valueControlSlot
|
|
@@ -3416,11 +3670,12 @@ const CountChip = styled.span`
|
|
|
3416
3670
|
*/
|
|
3417
3671
|
const RulesPill = forwardRef(function RulesPill({ compound, enabled, onClick, isOpen = false, "aria-label": ariaLabel, "data-test": dataTest, size, ...rest }, ref) {
|
|
3418
3672
|
const resolvedSize = useFilterBarSize(size);
|
|
3673
|
+
const strings = usePDSStrings();
|
|
3419
3674
|
if (!enabled) return null;
|
|
3420
3675
|
const count = countRules(compound);
|
|
3421
3676
|
const hasCount = count > 0;
|
|
3422
3677
|
const variant = isOpen ? "active" : "default";
|
|
3423
|
-
const accessibleName = hasCount ?
|
|
3678
|
+
const accessibleName = hasCount ? strings.rulesWithCount(count) : strings.rules;
|
|
3424
3679
|
return /* @__PURE__ */ jsxs(PillShell, {
|
|
3425
3680
|
ref,
|
|
3426
3681
|
variant,
|
|
@@ -3430,7 +3685,7 @@ const RulesPill = forwardRef(function RulesPill({ compound, enabled, onClick, is
|
|
|
3430
3685
|
"data-test": dataTest ?? "rules-pill__trigger",
|
|
3431
3686
|
"aria-expanded": isOpen,
|
|
3432
3687
|
...rest,
|
|
3433
|
-
children: [/* @__PURE__ */ jsx(Label, { children:
|
|
3688
|
+
children: [/* @__PURE__ */ jsx(Label, { children: strings.rules }), hasCount && /* @__PURE__ */ jsx(CountChip, {
|
|
3434
3689
|
$variant: variant,
|
|
3435
3690
|
$size: resolvedSize,
|
|
3436
3691
|
"data-test": "rules-pill__count",
|
|
@@ -3978,6 +4233,7 @@ function useStableFieldIds(fieldIds) {
|
|
|
3978
4233
|
return stable.current;
|
|
3979
4234
|
}
|
|
3980
4235
|
function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, relativeDatesEnabled = false, dateTimesEnabled = false, singleUseFields = false, size = "md", valueControlResolver }) {
|
|
4236
|
+
const strings = usePDSStrings();
|
|
3981
4237
|
const filterState = useFilterStateV2({
|
|
3982
4238
|
registry,
|
|
3983
4239
|
initialState,
|
|
@@ -4083,7 +4339,7 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
4083
4339
|
value: { size },
|
|
4084
4340
|
children: /* @__PURE__ */ jsxs(Bar, {
|
|
4085
4341
|
role: "toolbar",
|
|
4086
|
-
"aria-label":
|
|
4342
|
+
"aria-label": strings.filterBar,
|
|
4087
4343
|
children: [filterState.advancedRulesEnabled ? /* @__PURE__ */ jsx(AdvancedFilterRulesPopover, {
|
|
4088
4344
|
registry,
|
|
4089
4345
|
dateTimesEnabled,
|
|
@@ -4498,4 +4754,4 @@ function decodeBase64(input) {
|
|
|
4498
4754
|
//#endregion
|
|
4499
4755
|
export { TableControlsProvider as A, getOperatorsForType as C, reconcileValueForOperator as D, isValuelessOperator as E, ControlBar as F, DataTableCompactBar as I, TableViewConfiguration as M, TableViewConfigurationDropdown as N, dateRuleIntent as O, TableControls as P, getOperatorsForField as S, isRangeOperator as T, FILTER_SIZE_TOKENS as _, encodeFilterStateToUrlParam as a, emptyValueForRule as b, FilterBar_default as c, isFilterStateV2 as d, pruneToRegistry as f, resolveValueControl as g, PillShell as h, decodeFilterStateFromUrl as i, useTableControls as j, TableControlsContext as k, useFilterStateV2 as l, isEmptyState as m, applyFilterStateToSearchParams as n, FieldRegistry as o, EMPTY_FILTER_STATE as p, decodeFilterStateFromString as r, buildFieldRegistry as s, FILTER_STATE_URL_PARAM as t, hasCompleteValue as u, useFilterBarSize as v, isCompleteDateRange as w, getDefaultOperatorForType as x, resolveDateRangeRuleValue as y };
|
|
4500
4756
|
|
|
4501
|
-
//# sourceMappingURL=TableControls-
|
|
4757
|
+
//# sourceMappingURL=TableControls-B5UGCoO-.mjs.map
|