@persona/design-system 0.10.10 → 0.10.12
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 +48 -0
- package/dist/AdvancedFilterRuleRow.d.mts +5 -2
- package/dist/AdvancedFilterRulesPopover.d.mts +6 -2
- package/dist/ArrayValueControl.d.mts +1 -1
- package/dist/{Badge-BCdsVKuj.mjs → Badge-B2AJMf3d.mjs} +2 -2
- package/dist/{Badge-BCdsVKuj.mjs.map → Badge-B2AJMf3d.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumbs-CMf3Uvow.mjs → Breadcrumbs-DRs9eo1o.mjs} +5 -5
- package/dist/Breadcrumbs-DRs9eo1o.mjs.map +1 -0
- package/dist/{CardV2-CrV6eEQb.mjs → CardV2-DO-8COfu.mjs} +11 -8
- package/dist/CardV2-DO-8COfu.mjs.map +1 -0
- package/dist/ChartFrame.d.mts +61 -0
- package/dist/ChartLegend.d.mts +60 -0
- package/dist/ChartPopover.d.mts +155 -0
- package/dist/{Checkbox-Dr4LMKHV.mjs → Checkbox-BAh-wF_F.mjs} +5 -5
- package/dist/Checkbox-BAh-wF_F.mjs.map +1 -0
- package/dist/{CheckboxGroupField-Bpu2j6G2.d.mts → CheckboxGroupField-XSVAmESI.d.mts} +2 -2
- package/dist/CheckboxGroupField.d.mts +1 -1
- package/dist/ChoicesValueControl.d.mts +1 -1
- package/dist/{Combobox-Gb_j1dg6.mjs → Combobox-BNjYEAmv.mjs} +313 -138
- package/dist/Combobox-BNjYEAmv.mjs.map +1 -0
- package/dist/Combobox-DbcSss15.d.mts +12 -0
- package/dist/Combobox.d.mts +3 -3
- package/dist/{ComboboxBase-BPXqJHaQ.d.mts → ComboboxBase-CrFweFGi.d.mts} +61 -21
- package/dist/ComboboxBase.d.mts +2 -2
- package/dist/{ComboboxMultiSelect-BwkkSymj.d.mts → ComboboxMultiSelect-Cp5GBGQj.d.mts} +10 -6
- package/dist/ComboboxMultiSelect.d.mts +2 -2
- package/dist/{ComboboxSingleSelect-CdNNJNkp.d.mts → ComboboxSingleSelect-u7fK3Yvy.d.mts} +8 -6
- package/dist/ComboboxSingleSelect.d.mts +2 -2
- package/dist/{DataTable-BE9inUi-.d.mts → DataTable-C1mdfmQa.d.mts} +17 -7
- package/dist/{DataTable-CIZJ1vO8.mjs → DataTable-DdSY9mzT.mjs} +36 -23
- package/dist/DataTable-DdSY9mzT.mjs.map +1 -0
- package/dist/DataTable.d.mts +1 -1
- package/dist/{DatePicker-C9redLBr.mjs → DatePicker-DiilpYQg.mjs} +5 -5
- package/dist/{DatePicker-C9redLBr.mjs.map → DatePicker-DiilpYQg.mjs.map} +1 -1
- package/dist/DateRangeValueControl.d.mts +1 -1
- package/dist/DateValueControl.d.mts +1 -1
- package/dist/{DropdownButton-DpLG-cIj.mjs → DropdownButton-BxZ5hn0X.mjs} +3 -3
- package/dist/{DropdownButton-DpLG-cIj.mjs.map → DropdownButton-BxZ5hn0X.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +1 -1
- package/dist/{DropdownMenu-B6D4stkF.d.mts → DropdownMenu-CQR0U-zM.d.mts} +2 -2
- package/dist/{DropdownMenu-c8XK2Lr4.mjs → DropdownMenu-Ip75l4Th.mjs} +21 -2
- package/dist/DropdownMenu-Ip75l4Th.mjs.map +1 -0
- package/dist/DropdownMenu.d.mts +1 -1
- package/dist/{FieldRegistry-C2NVPhMO.d.mts → FieldRegistry-CJwGpUVK.d.mts} +2 -2
- package/dist/FieldRegistry.d.mts +1 -1
- package/dist/{FilterBar-BE_gBM0H.d.mts → FilterBar-CA4mDAXK.d.mts} +13 -5
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +2 -2
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +1 -1
- package/dist/FloatValueControl.d.mts +3 -2
- package/dist/{FloatingToolbar-DLRaE0o7.mjs → FloatingToolbar-BA8Fqmrz.mjs} +35 -38
- package/dist/FloatingToolbar-BA8Fqmrz.mjs.map +1 -0
- package/dist/{FormControl-BztNXLn6.mjs → FormControl-BoKGiWdQ.mjs} +2 -2
- package/dist/{FormControl-BztNXLn6.mjs.map → FormControl-BoKGiWdQ.mjs.map} +1 -1
- package/dist/{FormField-Cf1VMvoa.mjs → FormField-yYJFkJ6R.mjs} +13 -13
- package/dist/{FormField-Cf1VMvoa.mjs.map → FormField-yYJFkJ6R.mjs.map} +1 -1
- package/dist/{HoverCopyableField-XHC_n9tp.mjs → HoverCopyableField-X2XfKTTh.mjs} +10 -5
- package/dist/HoverCopyableField-X2XfKTTh.mjs.map +1 -0
- package/dist/{IconButton-DxHB2g80.mjs → IconButton-Bj1fry_K.mjs} +4 -3
- package/dist/IconButton-Bj1fry_K.mjs.map +1 -0
- package/dist/IndexTableLayout.d.mts +11 -3
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-RHXujO9u.mjs → Input-DcbzPaax.mjs} +2 -2
- package/dist/{Input-RHXujO9u.mjs.map → Input-DcbzPaax.mjs.map} +1 -1
- package/dist/IntegerValueControl.d.mts +3 -2
- package/dist/{Link-D_kCyLYX.mjs → Link-B29ZMN6m.mjs} +3 -3
- package/dist/Link-B29ZMN6m.mjs.map +1 -0
- package/dist/{ListBox-BZp6exb8.mjs → ListBox-4rTgr3IJ.mjs} +6 -6
- package/dist/{ListBox-BZp6exb8.mjs.map → ListBox-4rTgr3IJ.mjs.map} +1 -1
- package/dist/{ListBox-DpFcM-dM.d.mts → ListBox-ZDaitaXR.d.mts} +2 -2
- package/dist/ListBox.d.mts +1 -1
- package/dist/{ListBoxField-DL6Zk8TU.d.mts → ListBoxField-CGvVWKyL.d.mts} +4 -4
- package/dist/ListBoxField.d.mts +1 -1
- package/dist/{LoadingShimmer-oPIv2ESr.mjs → LoadingShimmer-BVVdBeN-.mjs} +18 -20
- package/dist/LoadingShimmer-BVVdBeN-.mjs.map +1 -0
- package/dist/{LogicRow-BakOUtzx.d.mts → LogicRow-Bzp5o1sL.d.mts} +2 -2
- package/dist/LogicRow.d.mts +1 -1
- package/dist/{Menu-D6OrKCTC.d.mts → Menu-DviYNrFd.d.mts} +2 -2
- package/dist/Menu.d.mts +1 -1
- package/dist/{Modal-De5_bPJ_.mjs → Modal-CiPFqr0L.mjs} +52 -23
- package/dist/{Modal-De5_bPJ_.mjs.map → Modal-CiPFqr0L.mjs.map} +1 -1
- package/dist/{PageHeader-7_Hf6rHl.mjs → PageHeader-6KvtGED-.mjs} +2 -2
- package/dist/{PageHeader-7_Hf6rHl.mjs.map → PageHeader-6KvtGED-.mjs.map} +1 -1
- package/dist/{PageLayout-DjtGrvJa.mjs → PageLayout-CPiVnS_r.mjs} +3 -1
- package/dist/PageLayout-CPiVnS_r.mjs.map +1 -0
- package/dist/{Pagination-DMH2IaV0.mjs → Pagination-CqFvnlXc.mjs} +4 -4
- package/dist/{Pagination-DMH2IaV0.mjs.map → Pagination-CqFvnlXc.mjs.map} +1 -1
- package/dist/{Pii-24D_nSRQ.mjs → Pii-jSYND7Cn.mjs} +2 -2
- package/dist/{Pii-24D_nSRQ.mjs.map → Pii-jSYND7Cn.mjs.map} +1 -1
- package/dist/{PillShell-B7Bm-dsE.d.mts → PillShell-Bkyu5FXB.d.mts} +2 -2
- package/dist/PillShell.d.mts +1 -1
- package/dist/{Popover-DordjYNM.mjs → Popover-CVX-dfYb.mjs} +48 -18
- package/dist/Popover-CVX-dfYb.mjs.map +1 -0
- package/dist/{Radio-BlEtetrr.mjs → Radio-B1H_S-Qj.mjs} +2 -2
- package/dist/Radio-B1H_S-Qj.mjs.map +1 -0
- package/dist/{RadioGroup-CMrXmmn4.mjs → RadioGroup-7hdcVhsp.mjs} +2 -2
- package/dist/{RadioGroup-CMrXmmn4.mjs.map → RadioGroup-7hdcVhsp.mjs.map} +1 -1
- package/dist/RuleEditorFields.d.mts +2 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/{SegmentedControl-D_DA-MU1.mjs → SegmentedControl-BNOJ1FYQ.mjs} +5 -2
- package/dist/SegmentedControl-BNOJ1FYQ.mjs.map +1 -0
- package/dist/{Select-DOlw_LPR.mjs → Select-DbWEgH5c.mjs} +5 -3
- package/dist/Select-DbWEgH5c.mjs.map +1 -0
- package/dist/{Select-CR9TjFfo.d.mts → Select-DsVeAyZy.d.mts} +2 -2
- package/dist/Select.d.mts +1 -1
- package/dist/SmartTextInputField.d.mts +2 -2
- package/dist/{Spinner-CXb-KUs1.mjs → Spinner-k9ZiOdTr.mjs} +1 -1
- package/dist/{Spinner-CXb-KUs1.mjs.map → Spinner-k9ZiOdTr.mjs.map} +1 -1
- package/dist/{Sticker-C1_6I08u.mjs → Sticker-4VdGEFAu.mjs} +2 -2
- package/dist/{Sticker-C1_6I08u.mjs.map → Sticker-4VdGEFAu.mjs.map} +1 -1
- package/dist/StringValueControl.d.mts +2 -1
- package/dist/{TabBar-BCFO38E0.mjs → TabBar-d4sdknti.mjs} +5 -5
- package/dist/TabBar-d4sdknti.mjs.map +1 -0
- package/dist/{Table-DPi4Dt5H.mjs → Table-9mNn8Q-d.mjs} +14 -6
- package/dist/Table-9mNn8Q-d.mjs.map +1 -0
- package/dist/{TableBox-DNQsgQ8x.mjs → TableBox-D9NA-s9l.mjs} +16 -12
- package/dist/TableBox-D9NA-s9l.mjs.map +1 -0
- package/dist/TableBox.d.mts +1 -1
- package/dist/{TableBoxCell-CsRt_5gP.d.mts → TableBoxCell-CQOL30et.d.mts} +4 -4
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/{TableBoxField-Db0Vjo6Z.d.mts → TableBoxField-z0GIFeQw.d.mts} +5 -5
- package/dist/TableBoxField.d.mts +1 -1
- package/dist/{TableBoxRow-exMlZyc4.d.mts → TableBoxRow-tb9-KMr9.d.mts} +2 -2
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-UO9YN34k.d.mts → TableBoxRowActions-BZwulsFP.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{TableControls-BrP_BqnF.mjs → TableControls-BXykbUBf.mjs} +126 -40
- package/dist/TableControls-BXykbUBf.mjs.map +1 -0
- package/dist/{TableControls-Clo_0Mty.d.mts → TableControls-DE6eHq8h.d.mts} +4 -4
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-BNd6z9mD.d.mts → TableControlsContext-C2_2EuMh.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-Cp7ausV_.d.mts → TableViewConfigurationDropdown-DE9HFXYY.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-Cq5jzYKQ.mjs → TechnicalSticker-DtV7Gawf.mjs} +5 -3
- package/dist/TechnicalSticker-DtV7Gawf.mjs.map +1 -0
- package/dist/{TextArea-Dro-HH8O.mjs → TextArea-CQ1YNi2b.mjs} +4 -5
- package/dist/TextArea-CQ1YNi2b.mjs.map +1 -0
- package/dist/{Toggle-D9MzTIZs.mjs → Toggle-CzHoIR-n.mjs} +8 -4
- package/dist/Toggle-CzHoIR-n.mjs.map +1 -0
- package/dist/{Tooltip-YViXzMdm.mjs → Tooltip-CVBxc1yf.mjs} +17 -4
- package/dist/Tooltip-CVBxc1yf.mjs.map +1 -0
- package/dist/chartColors.d.mts +92 -0
- package/dist/chartFrameLayout.d.mts +46 -0
- package/dist/{clientFilterUtils-CGHYF5NE.d.mts → clientFilterUtils-2TBUC31K.d.mts} +2 -2
- package/dist/clientFilterUtils.d.mts +1 -1
- package/dist/components/Accordion/index.mjs +22 -13
- package/dist/components/Accordion/index.mjs.map +1 -1
- package/dist/components/Attribute/index.mjs +6 -4
- package/dist/components/Attribute/index.mjs.map +1 -1
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +1 -1
- package/dist/components/BottomPanel/index.mjs +7 -5
- package/dist/components/BottomPanel/index.mjs.map +1 -1
- package/dist/components/Breadcrumbs/index.mjs +1 -1
- package/dist/components/Button/index.mjs +1 -1
- package/dist/components/ButtonGroup/index.mjs +1 -1
- package/dist/components/CardV2/index.mjs +1 -1
- package/dist/components/Chart/index.d.mts +9 -0
- package/dist/components/Chart/index.mjs +680 -0
- package/dist/components/Chart/index.mjs.map +1 -0
- package/dist/components/Checkbox/index.mjs +1 -1
- package/dist/components/CodeHighlight/index.mjs +1 -1
- package/dist/components/Combobox/index.d.mts +5 -3
- package/dist/components/Combobox/index.mjs +1 -1
- package/dist/components/DataTable/TableControls/index.d.mts +19 -19
- package/dist/components/DataTable/TableControls/index.mjs +2 -2
- package/dist/components/DataTable/index.d.mts +5 -5
- package/dist/components/DataTable/index.mjs +1 -1
- package/dist/components/DataTable/types.d.mts +1 -1
- 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 +16 -14
- package/dist/components/FloatingPanel/index.mjs.map +1 -1
- package/dist/components/FloatingToolbar/index.mjs +1 -1
- package/dist/components/FormControl/index.mjs +1 -1
- package/dist/components/FormField/index.d.mts +4 -4
- package/dist/components/FormField/index.mjs +1 -1
- package/dist/components/HoverCopyableField/index.mjs +1 -1
- package/dist/components/ImageTile/index.mjs +7 -7
- package/dist/components/ImageTile/index.mjs.map +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/Modal/index.mjs +1 -1
- package/dist/components/PageHeader/index.mjs +1 -1
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Pii/index.mjs +1 -1
- package/dist/components/Popover/index.mjs +1 -1
- package/dist/components/ProgressBar/index.mjs +20 -3
- package/dist/components/ProgressBar/index.mjs.map +1 -1
- package/dist/components/Radio/index.mjs +1 -1
- package/dist/components/RadioGroup/index.mjs +1 -1
- package/dist/components/RichTextEditor/index.mjs +5 -5
- package/dist/components/RightPanel/index.mjs +28 -13
- package/dist/components/RightPanel/index.mjs.map +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/SelectionCard/index.mjs +2 -2
- package/dist/components/Slider/index.mjs +3 -2
- package/dist/components/Slider/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/index.mjs +9 -78
- package/dist/components/SmartTextInput/index.mjs.map +1 -1
- package/dist/{safe-parse.d.mts → components/SmartTextInput/parser/safe-parse.d.mts} +1 -1
- package/dist/components/SmartTextInput/parser/safe-parse.mjs +30 -0
- package/dist/components/SmartTextInput/parser/safe-parse.mjs.map +1 -0
- package/dist/{tree.d.mts → components/SmartTextInput/parser/tree.d.mts} +1 -1
- package/dist/components/SmartTextInput/parser/tree.mjs +42 -0
- package/dist/components/SmartTextInput/parser/tree.mjs.map +1 -0
- package/dist/components/Spinner/index.mjs +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/SwatchPicker/index.mjs +2 -1
- package/dist/components/SwatchPicker/index.mjs.map +1 -1
- package/dist/components/TabBar/index.mjs +1 -1
- package/dist/components/Table/index.mjs +1 -1
- package/dist/components/TableBox/index.d.mts +1 -1
- package/dist/components/TableBox/index.mjs +1 -1
- package/dist/components/TechnicalSticker/index.mjs +1 -1
- package/dist/components/TextArea/index.mjs +1 -1
- package/dist/components/Tile/index.mjs +2 -2
- package/dist/components/Toast/index.mjs +16 -10
- package/dist/components/Toast/index.mjs.map +1 -1
- package/dist/components/Toggle/index.mjs +1 -1
- package/dist/components/Tooltip/index.mjs +1 -1
- package/dist/components/VersionHistory/index.mjs +5 -5
- package/dist/compound-expression.d.mts +1 -1
- package/dist/{date-range-rule-value-ASr06ClE.d.mts → date-range-rule-value-DyLlMtjr.d.mts} +2 -2
- package/dist/date-range-rule-value.d.mts +1 -1
- package/dist/display.d.mts +1 -1
- package/dist/duration-token.d.mts +11 -0
- package/dist/exit-motion.d.mts +7 -0
- package/dist/fieldPickerOptions.d.mts +2 -2
- package/dist/{filter-size-context-CmFyIPCm.d.mts → filter-size-context-DVnjmuhk.d.mts} +2 -2
- package/dist/filter-size-context.d.mts +1 -1
- package/dist/{filters-DTBc0mE7.d.mts → filters-DW7pqWv3.d.mts} +2 -2
- package/dist/filters.d.mts +1 -1
- package/dist/{helpers-CBJ2AqGZ.d.mts → helpers-BTD2kXLs.d.mts} +2 -2
- package/dist/helpers.d.mts +1 -1
- package/dist/{index-OkdnW-u5.d.mts → index-B4tE0RxY.d.mts} +3 -3
- package/dist/{index-kIon1vPp.d.mts → index-DTM_t7OG.d.mts} +2 -2
- package/dist/index4.d.mts +3 -3
- package/dist/index5.d.mts +1 -1
- package/dist/index6.d.mts +14 -14
- package/dist/{inputFields-DpHeZiFX.d.mts → inputFields-DnBb3NhK.d.mts} +4 -4
- package/dist/inputFields.d.mts +1 -1
- package/dist/lib/TruncatedTextWithTooltip.mjs +1 -1
- package/dist/lib/useCloseFocus.d.mts +45 -0
- package/dist/lib/useCloseFocus.mjs +123 -0
- package/dist/lib/useCloseFocus.mjs.map +1 -0
- package/dist/lib/useModalInsetRight.d.mts +4 -3
- package/dist/lib/useModalInsetRight.mjs +7 -5
- package/dist/lib/useModalInsetRight.mjs.map +1 -1
- package/dist/lint/THIRD_PARTY_NOTICES.md +30 -0
- package/dist/lint/index.mjs +696 -11
- package/dist/lint/index.mjs.map +1 -1
- package/dist/lint/recommended.json +7 -1
- package/dist/mixins/hoverable.mjs +1 -1
- package/dist/mixins/hoverable.mjs.map +1 -1
- package/dist/mixins/input.mjs +1 -0
- package/dist/mixins/input.mjs.map +1 -1
- package/dist/mixins/menuItem.mjs +2 -0
- package/dist/mixins/menuItem.mjs.map +1 -1
- package/dist/mixins/motion.d.mts +28 -0
- package/dist/mixins/motion.mjs +66 -0
- package/dist/mixins/motion.mjs.map +1 -0
- package/dist/motion-origin.d.mts +7 -0
- package/dist/motion.d.mts +63 -0
- package/dist/no-layout-motion.d.mts +7 -0
- package/dist/no-transition-all.d.mts +7 -0
- package/dist/{operators-BHxKZcpD.d.mts → operators-B8_k3r69.d.mts} +10 -3
- package/dist/operators.d.mts +2 -2
- package/dist/overlay-motion.d.mts +7 -0
- package/dist/patterns/CardGrouping/index.mjs +6 -6
- package/dist/patterns/CardGrouping/index.mjs.map +1 -1
- package/dist/patterns/IndexTableLayout/index.mjs +23 -16
- package/dist/patterns/IndexTableLayout/index.mjs.map +1 -1
- package/dist/patterns/LayoutLoadingShimmer/index.mjs +4 -4
- package/dist/patterns/LayoutLoadingSpinner/index.mjs +3 -1
- package/dist/patterns/LayoutLoadingSpinner/index.mjs.map +1 -1
- package/dist/patterns/PageLayout/index.mjs +1 -1
- package/dist/patterns/WizardModal/index.mjs +2 -2
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/{types-DLnCkvTt.d.mts → types-BJqmRXFV.d.mts} +15 -1
- package/dist/{types-CqcbWyUY.d.mts → types-BOsCi-kZ.d.mts} +8 -2
- package/dist/{types-BiqzeNsa.d.mts → types-Dws2XDz2.d.mts} +2 -2
- package/dist/{types-BEdERA4v.d.mts → types-NO2GRlM-.d.mts} +2 -2
- package/dist/types4.d.mts +1 -1
- package/dist/types5.d.mts +1 -1
- package/dist/types6.d.mts +1 -1
- package/dist/{url-state-CXUuK3_r.d.mts → url-state-CXPmXzIZ.d.mts} +2 -2
- package/dist/url-state.d.mts +1 -1
- package/dist/useChartColors.d.mts +30 -0
- package/dist/useChartSeriesVisibility.d.mts +22 -0
- package/dist/useChartStyles.d.mts +108 -0
- package/dist/useColumnConfiguration.d.mts +2 -2
- package/dist/useComboboxFooterAction.d.mts +1 -1
- package/dist/{useFilterStateV2-DBpbxAEC.d.mts → useFilterStateV2-DiTS9DTg.d.mts} +3 -3
- package/dist/useFilterStateV2.d.mts +1 -1
- package/dist/{useTableColumns-Xd14vx_h.d.mts → useTableColumns-tITjHasE.d.mts} +2 -2
- package/dist/useTableColumns.d.mts +1 -1
- package/dist/useTruncation.d.mts +1 -1
- package/dist/useValueControlError.d.mts +26 -0
- package/dist/utils.d.mts +1 -1
- package/dist/{validation-Tgg3AhuP.d.mts → validation-BDQdQ1cY.d.mts} +3 -3
- package/dist/validation.d.mts +1 -1
- package/dist/{value-control-resolver-XQbGCdsP.d.mts → value-control-resolver-BFJZEWDn.d.mts} +9 -3
- package/dist/value-control-resolver.d.mts +1 -1
- package/dist/value-labels.d.mts +12 -0
- package/dist/variables/keyframes.d.mts +2 -1
- package/dist/variables/keyframes.mjs +9 -1
- package/dist/variables/keyframes.mjs.map +1 -1
- package/dist/variables/transitions.d.mts +31 -1
- package/dist/variables/transitions.mjs +50 -1
- package/dist/variables/transitions.mjs.map +1 -1
- package/llms.txt +2 -1
- package/package.json +20 -4
- package/skills/new-screen/SKILL.md +33 -0
- package/skills/ui-authoring/COMPONENTS.md +19 -1
- package/skills/ui-authoring/PATTERNS.md +57 -36
- package/skills/ui-authoring/STANDARD.md +78 -4
- package/skills/ui-authoring/TOKENS.md +27 -24
- package/dist/Breadcrumbs-CMf3Uvow.mjs.map +0 -1
- package/dist/CardV2-CrV6eEQb.mjs.map +0 -1
- package/dist/Checkbox-Dr4LMKHV.mjs.map +0 -1
- package/dist/Combobox-CIKqTYZt.d.mts +0 -11
- package/dist/Combobox-Gb_j1dg6.mjs.map +0 -1
- package/dist/DataTable-CIZJ1vO8.mjs.map +0 -1
- package/dist/DropdownMenu-c8XK2Lr4.mjs.map +0 -1
- package/dist/FloatingToolbar-DLRaE0o7.mjs.map +0 -1
- package/dist/HoverCopyableField-XHC_n9tp.mjs.map +0 -1
- package/dist/IconButton-DxHB2g80.mjs.map +0 -1
- package/dist/Link-D_kCyLYX.mjs.map +0 -1
- package/dist/LoadingShimmer-oPIv2ESr.mjs.map +0 -1
- package/dist/PageLayout-DjtGrvJa.mjs.map +0 -1
- package/dist/Popover-DordjYNM.mjs.map +0 -1
- package/dist/Radio-BlEtetrr.mjs.map +0 -1
- package/dist/SegmentedControl-D_DA-MU1.mjs.map +0 -1
- package/dist/Select-DOlw_LPR.mjs.map +0 -1
- package/dist/TabBar-BCFO38E0.mjs.map +0 -1
- package/dist/Table-DPi4Dt5H.mjs.map +0 -1
- package/dist/TableBox-DNQsgQ8x.mjs.map +0 -1
- package/dist/TableControls-BrP_BqnF.mjs.map +0 -1
- package/dist/TechnicalSticker-Cq5jzYKQ.mjs.map +0 -1
- package/dist/TextArea-Dro-HH8O.mjs.map +0 -1
- package/dist/Toggle-D9MzTIZs.mjs.map +0 -1
- package/dist/Tooltip-YViXzMdm.mjs.map +0 -1
|
@@ -7,37 +7,40 @@ import { t as Card_default } from "./Card-DuQHyroh.mjs";
|
|
|
7
7
|
import { t as Spacer_default } from "./Spacer-C4d9Aho6.mjs";
|
|
8
8
|
import { i as Paragraph, r as Label$1 } from "./Text-D0vEReED.mjs";
|
|
9
9
|
import "./variables/transitions.mjs";
|
|
10
|
-
import { a as Tooltip } from "./Tooltip-
|
|
10
|
+
import { a as Tooltip } from "./Tooltip-CVBxc1yf.mjs";
|
|
11
11
|
import { transparent, withAlpha } from "./lib/color.mjs";
|
|
12
12
|
import { letPointerDownReachDocument } from "./lib/letPointerDownReachDocument.mjs";
|
|
13
13
|
import { isActive, isDisabled, isFocused, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
|
|
14
14
|
import { moveItemByIndex } from "./lib/reorderItems.mjs";
|
|
15
|
+
import { mergeRefs as mergeRefs$1, useCloseFocus } from "./lib/useCloseFocus.mjs";
|
|
15
16
|
import { useScrollOverflow } from "./lib/useScrollOverflow.mjs";
|
|
16
17
|
import { Z_INDICES } from "./lib/zindex.mjs";
|
|
17
18
|
import { focusOutline, focusWithinOutline } from "./mixins/focus.mjs";
|
|
19
|
+
import { popoverMotion } from "./mixins/motion.mjs";
|
|
18
20
|
import { semanticScrollbar } from "./mixins/scrollbar.mjs";
|
|
19
21
|
import { n as Stack, t as HStack } from "./Stack-Bzom2BTR.mjs";
|
|
20
|
-
import { n as Button, t as IconButton } from "./IconButton-
|
|
21
|
-
import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-
|
|
22
|
-
import { r as InputGroup } from "./Input-
|
|
22
|
+
import { n as Button, t as IconButton } from "./IconButton-Bj1fry_K.mjs";
|
|
23
|
+
import { i as TabBar, n as StyledTab, r as Tab } from "./TabBar-d4sdknti.mjs";
|
|
24
|
+
import { r as InputGroup } from "./Input-DcbzPaax.mjs";
|
|
23
25
|
import Input_default from "./components/Input/index.mjs";
|
|
24
26
|
import { c as MenuList, s as MenuItem } from "./Menu-BVn1jh46.mjs";
|
|
25
|
-
import { n as DropdownMenu_default } from "./DropdownMenu-
|
|
26
|
-
import { t as Combobox } from "./Combobox-
|
|
27
|
-
import { n as Select, r as SelectHeader, t as Option } from "./Select-
|
|
28
|
-
import { s as Popover_default } from "./Popover-
|
|
29
|
-
import { i as Modal_default } from "./Modal-
|
|
30
|
-
import { r as DateRangePicker, t as DatePicker } from "./DatePicker-
|
|
31
|
-
import {
|
|
27
|
+
import { n as DropdownMenu_default } from "./DropdownMenu-Ip75l4Th.mjs";
|
|
28
|
+
import { t as Combobox } from "./Combobox-BNjYEAmv.mjs";
|
|
29
|
+
import { n as Select, r as SelectHeader, t as Option } from "./Select-DbWEgH5c.mjs";
|
|
30
|
+
import { s as Popover_default } from "./Popover-CVX-dfYb.mjs";
|
|
31
|
+
import { i as Modal_default } from "./Modal-CiPFqr0L.mjs";
|
|
32
|
+
import { r as DateRangePicker, t as DatePicker } from "./DatePicker-DiilpYQg.mjs";
|
|
33
|
+
import { n as ErrorText } from "./FormControl-BoKGiWdQ.mjs";
|
|
34
|
+
import { t as ListBox } from "./ListBox-4rTgr3IJ.mjs";
|
|
32
35
|
import { i as selectedPresetFor, n as parseDateFilterValue, r as resolveDateFilterValue, t as formatDateFilterValue } from "./date-filter-Bj4XkwkT.mjs";
|
|
33
|
-
import { m as FormField, o as ComboboxField } from "./FormField-
|
|
34
|
-
import { t as Toggle } from "./Toggle-
|
|
36
|
+
import { m as FormField, o as ComboboxField } from "./FormField-yYJFkJ6R.mjs";
|
|
37
|
+
import { t as Toggle } from "./Toggle-CzHoIR-n.mjs";
|
|
35
38
|
import { Fragment, createContext, createElement, forwardRef, useCallback, useContext, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
|
|
36
39
|
import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
|
|
37
40
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
38
41
|
import { DateTime, Settings } from "luxon";
|
|
39
42
|
import { CaretDownIcon, CheckIcon, CircleInfoIcon, CirclePlusIcon, CopyIcon, EyeIcon, EyeOffIcon, FilterIcon, MoreIcon, PlusIcon, RotateCcwIcon, SaveIcon, SearchIcon, SettingsIcon, StarIcon, TrashIcon, XIcon } from "@persona/icons";
|
|
40
|
-
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,
|
|
43
|
+
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, StarIcon as StarIcon$1, XIcon as XIcon$1 } from "@persona/icons/12px";
|
|
41
44
|
import { debounce, isEqual, noop, partition, startCase, union, uniqueId } from "lodash-es";
|
|
42
45
|
import { useId } from "react-aria";
|
|
43
46
|
import { mergeRefs } from "@react-aria/utils";
|
|
@@ -55,7 +58,7 @@ const FormControlLabel = styled(Label$1).attrs(() => ({
|
|
|
55
58
|
weight: "bold"
|
|
56
59
|
}))`
|
|
57
60
|
margin-bottom: ${Spacing[2]};
|
|
58
|
-
transition: ${"200ms"};
|
|
61
|
+
transition: ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"};
|
|
59
62
|
display: inline-block;
|
|
60
63
|
|
|
61
64
|
${({ theme, isDisabled }) => css`
|
|
@@ -429,7 +432,7 @@ const SavedViewTab = ({ view, selected, tabIdPrefix = TAB_ID_PREFIX, canEditView
|
|
|
429
432
|
}
|
|
430
433
|
} : void 0,
|
|
431
434
|
"aria-keyshortcuts": onKeyboardMove ? "Alt+Shift+ArrowLeft Alt+Shift+ArrowRight" : void 0,
|
|
432
|
-
prefixIcon: isStarredDefault ? /* @__PURE__ */ jsx(
|
|
435
|
+
prefixIcon: isStarredDefault ? /* @__PURE__ */ jsx(StarIcon$1, { "aria-hidden": true }) : void 0,
|
|
433
436
|
suffixIcon: showMenu ? /* @__PURE__ */ jsx(MoreIcon, {}) : void 0,
|
|
434
437
|
"aria-description": isStarredDefault ? strings.defaultView : void 0,
|
|
435
438
|
"data-starred-default": isStarredDefault || void 0,
|
|
@@ -589,7 +592,7 @@ const LockedViewTab = ({ id, selected, onClick, icon = "locked", children, ...pr
|
|
|
589
592
|
id,
|
|
590
593
|
selected,
|
|
591
594
|
onClick: selected ? void 0 : onClick,
|
|
592
|
-
prefixIcon: icon === "starred" ? /* @__PURE__ */ jsx(
|
|
595
|
+
prefixIcon: icon === "starred" ? /* @__PURE__ */ jsx(StarIcon$1, { "aria-hidden": true }) : void 0,
|
|
593
596
|
suffixIcon: icon === "locked" ? /* @__PURE__ */ jsx(LockedIcon$1, {}) : void 0,
|
|
594
597
|
"data-starred-default": icon === "starred" || void 0,
|
|
595
598
|
"aria-description": icon === "starred" ? strings.defaultView : void 0,
|
|
@@ -1575,6 +1578,20 @@ const Filters = ({ compact, filterResolver, ...props }) => {
|
|
|
1575
1578
|
});
|
|
1576
1579
|
};
|
|
1577
1580
|
//#endregion
|
|
1581
|
+
//#region src/components/DataTable/TableControls/FiltersV2/FilterBar/value-labels.ts
|
|
1582
|
+
/**
|
|
1583
|
+
* Render-only overlay; never mutate/cache labels in the immutable registry. Re-evaluate
|
|
1584
|
+
* on each render so a stable host getter can read newly hydrated external names.
|
|
1585
|
+
*/
|
|
1586
|
+
function optionLabelsForDisplay(field, value, optionLabels, getValueLabel) {
|
|
1587
|
+
if (!getValueLabel || !field || field.type !== "choices" && field.type !== "multi_choices") return optionLabels;
|
|
1588
|
+
const values = Array.isArray(value) ? value : [value];
|
|
1589
|
+
return {
|
|
1590
|
+
...optionLabels,
|
|
1591
|
+
...Object.fromEntries(values.filter((entry) => typeof entry === "string").map((entry) => [entry, getValueLabel(field.id, entry) ?? optionLabels?.[entry] ?? entry]))
|
|
1592
|
+
};
|
|
1593
|
+
}
|
|
1594
|
+
//#endregion
|
|
1578
1595
|
//#region src/components/DataTable/TableControls/FiltersV2/operators.ts
|
|
1579
1596
|
/**
|
|
1580
1597
|
* Operator vocabulary per field type. The UI uses this to populate the
|
|
@@ -1737,11 +1754,26 @@ function isValuelessOperator(operator, field) {
|
|
|
1737
1754
|
const config = getConditionOperator(field, operator);
|
|
1738
1755
|
return config != null ? config.valueType === "none" : VALUELESS_OPERATORS.has(operator);
|
|
1739
1756
|
}
|
|
1757
|
+
function isEmptyRuleValue(value) {
|
|
1758
|
+
return value == null || value === "" || Array.isArray(value) && value.length === 0;
|
|
1759
|
+
}
|
|
1760
|
+
/**
|
|
1761
|
+
* The error message a condition operator's `validate` returns for `value`, or
|
|
1762
|
+
* `undefined` when the value is accepted, empty, or the operator has no
|
|
1763
|
+
* validator. Value controls show it below the input; a rule with a message
|
|
1764
|
+
* is incomplete (see `hasCompleteConditionValue`).
|
|
1765
|
+
*/
|
|
1766
|
+
function getConditionValueError(field, operator, value) {
|
|
1767
|
+
const validate = getConditionOperator(field, operator)?.validate;
|
|
1768
|
+
if (validate == null || isEmptyRuleValue(value)) return;
|
|
1769
|
+
return validate(value) || void 0;
|
|
1770
|
+
}
|
|
1740
1771
|
function hasCompleteConditionValue(rule, field) {
|
|
1741
1772
|
const config = getConditionOperator(field, rule.operator);
|
|
1742
1773
|
if (config == null) return false;
|
|
1743
1774
|
const { value } = rule;
|
|
1744
1775
|
if (config.isComplete != null && !config.isComplete(value)) return false;
|
|
1776
|
+
if (getConditionValueError(field, rule.operator, value) != null) return false;
|
|
1745
1777
|
switch (config.valueType) {
|
|
1746
1778
|
case "none": return value === null;
|
|
1747
1779
|
case "boolean": return typeof value === "boolean";
|
|
@@ -2190,7 +2222,7 @@ function RuleEditorFields({ registry, dateTimesEnabled, field, groupIndex, ruleI
|
|
|
2190
2222
|
}
|
|
2191
2223
|
//#endregion
|
|
2192
2224
|
//#region src/components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/AdvancedFilterRuleRow.tsx
|
|
2193
|
-
function AdvancedFilterRuleRow({ registry, dateTimesEnabled, groupIndex, ruleIndex, rule, size, isOpen, onClose, onDelete, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
|
|
2225
|
+
function AdvancedFilterRuleRow({ registry, getValueLabel, dateTimesEnabled, groupIndex, ruleIndex, rule, size, isOpen, onClose, onDelete, onFieldChange, onOperatorChange, onValueChange, renderValueControl }) {
|
|
2194
2226
|
const strings = usePDSStrings();
|
|
2195
2227
|
const locale = usePDSLocale();
|
|
2196
2228
|
const field = registry.get(rule.fieldId);
|
|
@@ -2198,7 +2230,7 @@ function AdvancedFilterRuleRow({ registry, dateTimesEnabled, groupIndex, ruleInd
|
|
|
2198
2230
|
const operatorConfigurable = field ? fieldHasMultipleOperators(field) : true;
|
|
2199
2231
|
const condition = ruleIndex === 0 ? strings.conditionIf : strings.conditionAnd;
|
|
2200
2232
|
const rowId = `${groupIndex}-${ruleIndex}`;
|
|
2201
|
-
const valueDisplay = isValuelessOperator(rule.operator, field) ? void 0 : valueDisplayString(rule.value, registry.optionLabelsFor(rule.fieldId), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type, {
|
|
2233
|
+
const valueDisplay = isValuelessOperator(rule.operator, field) ? void 0 : valueDisplayString(rule.value, optionLabelsForDisplay(field, rule.value, registry.optionLabelsFor(rule.fieldId), getValueLabel), carriesDateRange(rule.operator, field?.type) ? rule.relativeDate : void 0, field?.type, {
|
|
2202
2234
|
locale,
|
|
2203
2235
|
strings
|
|
2204
2236
|
});
|
|
@@ -2342,6 +2374,7 @@ const FILTER_SIZE_TOKENS = {
|
|
|
2342
2374
|
//#endregion
|
|
2343
2375
|
//#region src/components/DataTable/TableControls/FiltersV2/AdvancedFilterRulesPopover/AdvancedFilterRulesPopover.tsx
|
|
2344
2376
|
const PopoverContent = styled(PopoverPrimitive.Content)`
|
|
2377
|
+
${popoverMotion("--radix-popover-content-transform-origin")}
|
|
2345
2378
|
z-index: ${Z_INDICES.modalDropdown};
|
|
2346
2379
|
`;
|
|
2347
2380
|
const PopoverCard$1 = styled(Card_default)`
|
|
@@ -2451,7 +2484,7 @@ function groupsForRender(compound) {
|
|
|
2451
2484
|
* inline; clicking a row reveals the field/operator/value editor inside the
|
|
2452
2485
|
* row's dropdown popover.
|
|
2453
2486
|
*/
|
|
2454
|
-
const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, open, onOpenChange, renderValueControl, size, dateTimesEnabled = false }) => {
|
|
2487
|
+
const AdvancedFilterRulesPopover = ({ registry, getValueLabel, compound, onChange, trigger, open, onOpenChange, renderValueControl, size, dateTimesEnabled = false }) => {
|
|
2455
2488
|
const strings = usePDSStrings();
|
|
2456
2489
|
const resolvedSize = useFilterBarSize(size);
|
|
2457
2490
|
const subtleIconSize = resolvedSize === "sm" ? "xs" : "sm";
|
|
@@ -2465,6 +2498,9 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2465
2498
|
onOpenChange?.(next);
|
|
2466
2499
|
}, [isControlled, onOpenChange]);
|
|
2467
2500
|
const baseId = useMemo(() => uniqueId("advanced-filter-rules__"), []);
|
|
2501
|
+
const triggerRef = useRef(null);
|
|
2502
|
+
const { ref: closeFocusRef, ...closeFocus } = useCloseFocus({ triggerRef });
|
|
2503
|
+
const contentRef = useMemo(() => mergeRefs$1(popoverContentRef, closeFocusRef), [popoverContentRef, closeFocusRef]);
|
|
2468
2504
|
const fields = useMemo(() => registry.all().filter((field) => field.disabledReason == null), [registry]);
|
|
2469
2505
|
const handleAddOrGroup = useCallback(() => {
|
|
2470
2506
|
const firstField = fields[0];
|
|
@@ -2551,6 +2587,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2551
2587
|
onOpenChange: handleOpenChange,
|
|
2552
2588
|
children: [/* @__PURE__ */ jsx(PopoverPrimitive.Trigger, {
|
|
2553
2589
|
asChild: true,
|
|
2590
|
+
ref: triggerRef,
|
|
2554
2591
|
children: trigger
|
|
2555
2592
|
}), /* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(PopoverContent, {
|
|
2556
2593
|
align: "start",
|
|
@@ -2560,7 +2597,8 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2560
2597
|
"aria-label": strings.advancedFilterRules,
|
|
2561
2598
|
id: baseId,
|
|
2562
2599
|
onPointerDownCapture: letPointerDownReachDocument,
|
|
2563
|
-
|
|
2600
|
+
...closeFocus,
|
|
2601
|
+
ref: contentRef,
|
|
2564
2602
|
tabIndex: -1,
|
|
2565
2603
|
onKeyDown: (event) => {
|
|
2566
2604
|
if (event.key !== "Enter") return;
|
|
@@ -2644,6 +2682,7 @@ const AdvancedFilterRulesPopover = ({ registry, compound, onChange, trigger, ope
|
|
|
2644
2682
|
const rowId = `${groupIndex}-${ruleIndex}`;
|
|
2645
2683
|
return /* @__PURE__ */ jsx(AdvancedFilterRuleRow, {
|
|
2646
2684
|
registry,
|
|
2685
|
+
getValueLabel,
|
|
2647
2686
|
dateTimesEnabled,
|
|
2648
2687
|
groupIndex,
|
|
2649
2688
|
ruleIndex,
|
|
@@ -3083,6 +3122,41 @@ const DateValueControl = ({ field, operator, value, onChange, ariaLabel, dateTim
|
|
|
3083
3122
|
});
|
|
3084
3123
|
};
|
|
3085
3124
|
//#endregion
|
|
3125
|
+
//#region src/components/DataTable/TableControls/FiltersV2/value-controls/useValueControlError.tsx
|
|
3126
|
+
const ErrorTextSlot = styled.div`
|
|
3127
|
+
margin-top: ${Spacing[1]};
|
|
3128
|
+
`;
|
|
3129
|
+
/**
|
|
3130
|
+
* Error state for a text-like value control (`Input`). Returns the props that
|
|
3131
|
+
* put the input in its error state (red border, `aria-invalid`, linked to the
|
|
3132
|
+
* message) and the message element to render after the input, styled like
|
|
3133
|
+
* `FormField`'s `errorText`.
|
|
3134
|
+
*
|
|
3135
|
+
* With no `errorMessage` both are empty, so the control renders exactly as it
|
|
3136
|
+
* did without validation. The message is a sibling rather than a wrapper, so
|
|
3137
|
+
* the input keeps its place in the tree (and its focus) when the message
|
|
3138
|
+
* appears or clears while the user types.
|
|
3139
|
+
*/
|
|
3140
|
+
function useValueControlError(errorMessage) {
|
|
3141
|
+
const errorId = useMemo(() => uniqueId("pds_filter_value_error__"), []);
|
|
3142
|
+
if (!errorMessage) return {
|
|
3143
|
+
inputProps: {},
|
|
3144
|
+
errorText: null
|
|
3145
|
+
};
|
|
3146
|
+
return {
|
|
3147
|
+
inputProps: {
|
|
3148
|
+
hasError: true,
|
|
3149
|
+
"aria-describedby": errorId,
|
|
3150
|
+
"aria-errormessage": errorId
|
|
3151
|
+
},
|
|
3152
|
+
errorText: /* @__PURE__ */ jsx(ErrorTextSlot, { children: /* @__PURE__ */ jsx(ErrorText, {
|
|
3153
|
+
id: errorId,
|
|
3154
|
+
role: "alert",
|
|
3155
|
+
children: errorMessage
|
|
3156
|
+
}) })
|
|
3157
|
+
};
|
|
3158
|
+
}
|
|
3159
|
+
//#endregion
|
|
3086
3160
|
//#region src/components/DataTable/TableControls/FiltersV2/value-controls/utils.ts
|
|
3087
3161
|
/**
|
|
3088
3162
|
* Coerce a `FilterRuleValue` into a string suitable for an `<input>`'s
|
|
@@ -3130,7 +3204,7 @@ function numericDisplayValue(value) {
|
|
|
3130
3204
|
* `onChange` is debounced (300ms) to avoid committing on every keystroke;
|
|
3131
3205
|
* the debounce flushes on blur or Enter and cancels on unmount.
|
|
3132
3206
|
*/
|
|
3133
|
-
const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
3207
|
+
const FloatValueControl = ({ field, operator, value, onChange, ariaLabel, errorMessage }) => {
|
|
3134
3208
|
const strings = usePDSStrings();
|
|
3135
3209
|
const size = useFilterBarSize();
|
|
3136
3210
|
const [localValue, setLocalValue] = useState(() => numericDisplayValue(value));
|
|
@@ -3159,8 +3233,10 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
|
3159
3233
|
const handleKeyDown = useCallback((event) => {
|
|
3160
3234
|
if (event.key === "Enter" && !event.defaultPrevented && !event.nativeEvent.isComposing) debouncedOnChange.flush();
|
|
3161
3235
|
}, [debouncedOnChange]);
|
|
3236
|
+
const { inputProps: errorInputProps, errorText } = useValueControlError(errorMessage);
|
|
3162
3237
|
if (isValuelessOperator(operator)) return null;
|
|
3163
|
-
return /* @__PURE__ */ jsx(Input_default, {
|
|
3238
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Input_default, {
|
|
3239
|
+
...errorInputProps,
|
|
3164
3240
|
type: "number",
|
|
3165
3241
|
size,
|
|
3166
3242
|
step: "any",
|
|
@@ -3178,7 +3254,7 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
|
3178
3254
|
debouncedOnChange.flush();
|
|
3179
3255
|
setLocalValue(numericDisplayValue(value));
|
|
3180
3256
|
}
|
|
3181
|
-
});
|
|
3257
|
+
}), errorText] });
|
|
3182
3258
|
};
|
|
3183
3259
|
//#endregion
|
|
3184
3260
|
//#region src/components/DataTable/TableControls/FiltersV2/value-controls/IntegerValueControl/IntegerValueControl.tsx
|
|
@@ -3207,7 +3283,7 @@ const FloatValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
|
3207
3283
|
* `onChange` is debounced (300ms) to avoid committing on every keystroke;
|
|
3208
3284
|
* the debounce flushes on blur or Enter and cancels on unmount.
|
|
3209
3285
|
*/
|
|
3210
|
-
const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) => {
|
|
3286
|
+
const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel, errorMessage }) => {
|
|
3211
3287
|
const strings = usePDSStrings();
|
|
3212
3288
|
const size = useFilterBarSize();
|
|
3213
3289
|
const [localValue, setLocalValue] = useState(() => numericDisplayValue(value));
|
|
@@ -3236,8 +3312,10 @@ const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) =>
|
|
|
3236
3312
|
const handleKeyDown = useCallback((event) => {
|
|
3237
3313
|
if (event.key === "Enter" && !event.defaultPrevented && !event.nativeEvent.isComposing) debouncedOnChange.flush();
|
|
3238
3314
|
}, [debouncedOnChange]);
|
|
3315
|
+
const { inputProps: errorInputProps, errorText } = useValueControlError(errorMessage);
|
|
3239
3316
|
if (isValuelessOperator(operator)) return null;
|
|
3240
|
-
return /* @__PURE__ */ jsx(Input_default, {
|
|
3317
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Input_default, {
|
|
3318
|
+
...errorInputProps,
|
|
3241
3319
|
type: "number",
|
|
3242
3320
|
size,
|
|
3243
3321
|
step: 1,
|
|
@@ -3255,12 +3333,12 @@ const IntegerValueControl = ({ field, operator, value, onChange, ariaLabel }) =>
|
|
|
3255
3333
|
debouncedOnChange.flush();
|
|
3256
3334
|
setLocalValue(numericDisplayValue(value));
|
|
3257
3335
|
}
|
|
3258
|
-
});
|
|
3336
|
+
}), errorText] });
|
|
3259
3337
|
};
|
|
3260
3338
|
//#endregion
|
|
3261
3339
|
//#region src/components/DataTable/TableControls/FiltersV2/value-controls/StringValueControl/StringValueControl.tsx
|
|
3262
3340
|
const DEBOUNCE_MS = 300;
|
|
3263
|
-
function StringValueControl({ field, operator, value, onChange, ariaLabel, inputType, placeholder, id }) {
|
|
3341
|
+
function StringValueControl({ field, operator, value, onChange, ariaLabel, errorMessage, inputType, placeholder, id }) {
|
|
3264
3342
|
const generatedId = useMemo(() => uniqueId("filter_v2_string_"), []);
|
|
3265
3343
|
const inputId = id ?? generatedId;
|
|
3266
3344
|
const resolvedInputType = inputType ?? (field.type === "email" ? "email" : "text");
|
|
@@ -3273,8 +3351,10 @@ function StringValueControl({ field, operator, value, onChange, ariaLabel, input
|
|
|
3273
3351
|
useEffect(() => {
|
|
3274
3352
|
setLocalValue(typeof value === "string" ? value : "");
|
|
3275
3353
|
}, [value]);
|
|
3354
|
+
const { inputProps: errorInputProps, errorText } = useValueControlError(errorMessage);
|
|
3276
3355
|
if (isValuelessOperator(operator)) return null;
|
|
3277
|
-
return /* @__PURE__ */ jsx(Input_default, {
|
|
3356
|
+
return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Input_default, {
|
|
3357
|
+
...errorInputProps,
|
|
3278
3358
|
id: inputId,
|
|
3279
3359
|
type: resolvedInputType,
|
|
3280
3360
|
size,
|
|
@@ -3291,7 +3371,7 @@ function StringValueControl({ field, operator, value, onChange, ariaLabel, input
|
|
|
3291
3371
|
onKeyDown: (event) => {
|
|
3292
3372
|
if (event.key === "Enter" && !event.defaultPrevented && !event.nativeEvent.isComposing) debouncedOnChange.flush();
|
|
3293
3373
|
}
|
|
3294
|
-
});
|
|
3374
|
+
}), errorText] });
|
|
3295
3375
|
}
|
|
3296
3376
|
//#endregion
|
|
3297
3377
|
//#region src/components/DataTable/TableControls/FiltersV2/FilterBar/value-control-resolver.tsx
|
|
@@ -3310,8 +3390,13 @@ const RESOLVERS = {
|
|
|
3310
3390
|
float: (opts) => /* @__PURE__ */ jsx(FloatValueControl, { ...opts }),
|
|
3311
3391
|
array: (opts) => /* @__PURE__ */ jsx(ArrayValueControl, { ...opts })
|
|
3312
3392
|
};
|
|
3313
|
-
function resolveValueControl(
|
|
3314
|
-
if (
|
|
3393
|
+
function resolveValueControl(options, hostResolver) {
|
|
3394
|
+
if (options.field.condition != null && isValuelessOperator(options.operator, options.field)) return null;
|
|
3395
|
+
const errorMessage = options.errorMessage ?? getConditionValueError(options.field, options.operator, options.value);
|
|
3396
|
+
const opts = errorMessage == null ? options : {
|
|
3397
|
+
...options,
|
|
3398
|
+
errorMessage
|
|
3399
|
+
};
|
|
3315
3400
|
const hostControl = hostResolver?.(opts);
|
|
3316
3401
|
if (hostControl != null) return hostControl;
|
|
3317
3402
|
const config = getConditionOperator(opts.field, opts.operator);
|
|
@@ -3424,7 +3509,7 @@ const PillRoot = styled.span`
|
|
|
3424
3509
|
max-width: 100%;
|
|
3425
3510
|
cursor: pointer;
|
|
3426
3511
|
user-select: none;
|
|
3427
|
-
transition: background-color ${"
|
|
3512
|
+
transition: background-color ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"};
|
|
3428
3513
|
|
|
3429
3514
|
/* Keyboard focus lands on the inner body button, so the visible focus
|
|
3430
3515
|
ring is drawn on the whole pill via :focus-within. */
|
|
@@ -4557,8 +4642,8 @@ const PillsScrollTrack = styled.div`
|
|
|
4557
4642
|
-webkit-mask-image: ${({ $showLeftFade, $showRightFade }) => buildEdgeMaskImage($showLeftFade, $showRightFade)};
|
|
4558
4643
|
mask-image: ${({ $showLeftFade, $showRightFade }) => buildEdgeMaskImage($showLeftFade, $showRightFade)};
|
|
4559
4644
|
transition:
|
|
4560
|
-
-webkit-mask-image ${"200ms"}
|
|
4561
|
-
mask-image ${"200ms"}
|
|
4645
|
+
-webkit-mask-image ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"},
|
|
4646
|
+
mask-image ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"};
|
|
4562
4647
|
|
|
4563
4648
|
& > * {
|
|
4564
4649
|
flex: 0 0 auto;
|
|
@@ -4596,7 +4681,7 @@ function useStableFieldIds(fieldIds) {
|
|
|
4596
4681
|
if (previous == null || fieldIds == null || previous.length !== fieldIds.length || fieldIds.some((id, index) => previous[index] !== id)) stable.current = fieldIds;
|
|
4597
4682
|
return stable.current;
|
|
4598
4683
|
}
|
|
4599
|
-
function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, relativeDatesEnabled = false, dateTimesEnabled = false, singleUseFields = false, size = "md", valueControlResolver }) {
|
|
4684
|
+
function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = true, relativeDatesEnabled = false, dateTimesEnabled = false, singleUseFields = false, size = "md", valueControlResolver, getValueLabel }) {
|
|
4600
4685
|
const strings = usePDSStrings();
|
|
4601
4686
|
const filterState = useFilterStateV2({
|
|
4602
4687
|
registry,
|
|
@@ -4709,6 +4794,7 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
4709
4794
|
"aria-label": strings.filterBar,
|
|
4710
4795
|
children: [filterState.advancedRulesEnabled ? /* @__PURE__ */ jsx(AdvancedFilterRulesPopover, {
|
|
4711
4796
|
registry,
|
|
4797
|
+
getValueLabel,
|
|
4712
4798
|
dateTimesEnabled,
|
|
4713
4799
|
compound: filterState.state.compound,
|
|
4714
4800
|
open: rulesPopoverOpen,
|
|
@@ -4744,7 +4830,7 @@ function FilterBar({ registry, initialState, onChange, advancedRulesEnabled = tr
|
|
|
4744
4830
|
children: filterState.state.topLevelRules.map((rule) => {
|
|
4745
4831
|
const field = registry.get(rule.fieldId);
|
|
4746
4832
|
if (!field) return null;
|
|
4747
|
-
const optionLabels = registry.optionLabelsFor(field.id);
|
|
4833
|
+
const optionLabels = optionLabelsForDisplay(field, rule.value, registry.optionLabelsFor(field.id), getValueLabel);
|
|
4748
4834
|
const isOpen = editingRuleId === rule.id;
|
|
4749
4835
|
return /* @__PURE__ */ jsx(FilterPopover, {
|
|
4750
4836
|
field,
|
|
@@ -4870,7 +4956,7 @@ const StyledIconDrag = styled(DragIcon$1)`
|
|
|
4870
4956
|
opacity: 0.4;
|
|
4871
4957
|
`}
|
|
4872
4958
|
|
|
4873
|
-
transition: opacity 0.
|
|
4959
|
+
transition: opacity ${"200ms"} ${"cubic-bezier(0.4, 0, 0.2, 1)"};
|
|
4874
4960
|
|
|
4875
4961
|
path {
|
|
4876
4962
|
stroke: ${({ theme }) => semanticColor(theme, "FgPrimary", Color.CoreSlate1000)};
|
|
@@ -5585,6 +5671,6 @@ function decodeBase64(input) {
|
|
|
5585
5671
|
return decodeURIComponent(escape(atob(input)));
|
|
5586
5672
|
}
|
|
5587
5673
|
//#endregion
|
|
5588
|
-
export {
|
|
5674
|
+
export { isCompleteDateRange as A, TableControlsProvider as B, useFilterBarSize as C, getDefaultOperatorForType as D, getConditionValueError as E, FiltersContainer as F, ControlBar as H, getActiveFilters as I, isFilterActive as L, isRangeOperator as M, isValuelessOperator as N, getOperatorsForField as O, reconcileValueForOperator as P, resolveFilterTypeDefinition as R, FILTER_SIZE_TOKENS as S, emptyValueForRule as T, DataTableCompactBar as U, useTableControls as V, EMPTY_FILTER_STATE as _, encodeFilterStateToUrlParam as a, resolveValueControl as b, FilterBar_default as c, TableViewConfiguration as d, TableViewConfigurationDropdown as f, pruneToRegistry as g, isFilterStateV2 as h, decodeFilterStateFromUrl as i, isNumericComparisonOperator as j, getOperatorsForType as k, resolveDateRangeRuleValue as l, hasCompleteValue as m, applyFilterStateToSearchParams as n, FieldRegistry as o, useFilterStateV2 as p, decodeFilterStateFromString as r, buildFieldRegistry as s, FILTER_STATE_URL_PARAM as t, TableControls as u, isEmptyState as v, NUMERIC_COMPARISON_OPERATORS as w, dateRuleIntent as x, PillShell as y, TableControlsContext as z };
|
|
5589
5675
|
|
|
5590
|
-
//# sourceMappingURL=TableControls-
|
|
5676
|
+
//# sourceMappingURL=TableControls-BXykbUBf.mjs.map
|