@persona/design-system 0.10.10 → 0.10.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/dist/{Action-CHWYwpYR.d.mts → Action-sLO73eKq.d.mts} +2 -2
- 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 +2 -2
- package/dist/{Badge-BCdsVKuj.mjs → Badge-DZq6ByIU.mjs} +2 -2
- package/dist/{Badge-BCdsVKuj.mjs.map → Badge-DZq6ByIU.mjs.map} +1 -1
- package/dist/BooleanValueControl.d.mts +1 -1
- package/dist/{Breadcrumbs-CMf3Uvow.mjs → Breadcrumbs-DpsNZWF9.mjs} +9 -9
- package/dist/Breadcrumbs-DpsNZWF9.mjs.map +1 -0
- package/dist/{Button-DjD8QxcY.d.mts → Button-C4a4BTjL.d.mts} +2 -2
- package/dist/Button.d.mts +1 -1
- package/dist/CalendarBase.d.mts +1 -1
- package/dist/{Card-DiUHtYg_.d.mts → Card-CPV4_mHk.d.mts} +4 -4
- package/dist/Card.d.mts +1 -1
- package/dist/Card2.d.mts +1 -1
- package/dist/CardGrouping.d.mts +1 -1
- package/dist/{CardV2-CrV6eEQb.mjs → CardV2-DCoDfEvr.mjs} +16 -13
- package/dist/CardV2-DCoDfEvr.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-C3z7UUSC.mjs} +8 -8
- package/dist/Checkbox-C3z7UUSC.mjs.map +1 -0
- package/dist/{CheckboxGroupField-Bpu2j6G2.d.mts → CheckboxGroupField-BT87OVOF.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-BkK_tosd.mjs} +300 -116
- package/dist/Combobox-BkK_tosd.mjs.map +1 -0
- package/dist/Combobox-aOJDTjzC.d.mts +12 -0
- package/dist/Combobox.d.mts +3 -3
- package/dist/{ComboboxBase-BPXqJHaQ.d.mts → ComboboxBase-Brgv5nxk.d.mts} +65 -25
- package/dist/ComboboxBase.d.mts +2 -2
- package/dist/{ComboboxMultiSelect-BwkkSymj.d.mts → ComboboxMultiSelect-DJyAv0Eg.d.mts} +10 -6
- package/dist/ComboboxMultiSelect.d.mts +2 -2
- package/dist/{ComboboxSingleSelect-CdNNJNkp.d.mts → ComboboxSingleSelect-CP8-HLKl.d.mts} +8 -6
- package/dist/ComboboxSingleSelect.d.mts +2 -2
- package/dist/{CompactBar-BLZZWtIE.d.mts → CompactBar-B0LhjrYV.d.mts} +2 -2
- package/dist/CompactBar.d.mts +1 -1
- package/dist/{ConfigFormGroup-BCTWCws5.mjs → ConfigFormGroup-DAUqAhJW.mjs} +2 -2
- package/dist/{ConfigFormGroup-BCTWCws5.mjs.map → ConfigFormGroup-DAUqAhJW.mjs.map} +1 -1
- package/dist/{DataTable-BE9inUi-.d.mts → DataTable-CSl5Jn3E.d.mts} +18 -8
- package/dist/{DataTable-CIZJ1vO8.mjs → DataTable-DiwzhNMt.mjs} +41 -28
- package/dist/DataTable-DiwzhNMt.mjs.map +1 -0
- package/dist/DataTable.d.mts +1 -1
- package/dist/{DatePicker-C9redLBr.mjs → DatePicker-BK7ioKBm.mjs} +410 -410
- package/dist/DatePicker-BK7ioKBm.mjs.map +1 -0
- package/dist/DateRangeValueControl.d.mts +1 -1
- package/dist/DateValueControl.d.mts +1 -1
- package/dist/{DropdownButton-DpLG-cIj.mjs → DropdownButton-Dp-MZ5tA.mjs} +3 -3
- package/dist/{DropdownButton-DpLG-cIj.mjs.map → DropdownButton-Dp-MZ5tA.mjs.map} +1 -1
- package/dist/DropdownButton.d.mts +2 -2
- package/dist/{DropdownMenu-B6D4stkF.d.mts → DropdownMenu-BnHPeHOm.d.mts} +3 -3
- package/dist/{DropdownMenu-c8XK2Lr4.mjs → DropdownMenu-jJSHQaih.mjs} +4 -2
- package/dist/DropdownMenu-jJSHQaih.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-DDyk14sx.d.mts} +4 -4
- package/dist/FilterBar.d.mts +1 -1
- package/dist/FilterPickerMenu.d.mts +2 -2
- package/dist/FilterPill.d.mts +1 -1
- package/dist/FilterPopover.d.mts +1 -1
- package/dist/FloatValueControl.d.mts +3 -2
- package/dist/{FloatingToolbar-DLRaE0o7.mjs → FloatingToolbar-rfKurDs8.mjs} +36 -39
- package/dist/FloatingToolbar-rfKurDs8.mjs.map +1 -0
- package/dist/{FormControl-BztNXLn6.mjs → FormControl--pbTH3bY.mjs} +3 -3
- package/dist/{FormControl-BztNXLn6.mjs.map → FormControl--pbTH3bY.mjs.map} +1 -1
- package/dist/{FormControl-BQe3GRhi.d.mts → FormControl-DPYbLcBK.d.mts} +2 -2
- package/dist/FormControl.d.mts +1 -1
- package/dist/FormControlLabel.d.mts +2 -2
- package/dist/{FormField-BW5uMzId.d.mts → FormField-CYNGm2bJ.d.mts} +2 -2
- package/dist/{FormField-Cf1VMvoa.mjs → FormField-DMxjftFw.mjs} +14 -14
- package/dist/{FormField-Cf1VMvoa.mjs.map → FormField-DMxjftFw.mjs.map} +1 -1
- package/dist/FormField.d.mts +1 -1
- package/dist/{Grid-CYpOqTUu.mjs → Grid-DVC0SSEZ.mjs} +2 -2
- package/dist/{Grid-CYpOqTUu.mjs.map → Grid-DVC0SSEZ.mjs.map} +1 -1
- package/dist/{Header-CV0Lcf0C.d.mts → Header-DaaUprCL.d.mts} +2 -2
- package/dist/Header.d.mts +1 -1
- package/dist/{HelperTooltip-BNM3pTM-.d.mts → HelperTooltip-C5BDdJSI.d.mts} +2 -2
- package/dist/HelperTooltip.d.mts +1 -1
- package/dist/HighlightedText.d.mts +1 -1
- package/dist/{HoverCopyableField-XHC_n9tp.mjs → HoverCopyableField-B2-xlwUt.mjs} +12 -7
- package/dist/HoverCopyableField-B2-xlwUt.mjs.map +1 -0
- package/dist/{IconButton-C_ReZm8v.d.mts → IconButton-7k-wjvH3.d.mts} +2 -2
- package/dist/{IconButton-DxHB2g80.mjs → IconButton-kSjnfhWt.mjs} +11 -10
- package/dist/IconButton-kSjnfhWt.mjs.map +1 -0
- package/dist/IconButton.d.mts +1 -1
- package/dist/ImageTile.d.mts +1 -1
- package/dist/IndexTableLayout.d.mts +4 -4
- package/dist/InlineCombobox.d.mts +1 -1
- package/dist/InlineInput.d.mts +1 -1
- package/dist/{Input-DH-5dKor.d.mts → Input-CwvrBsiS.d.mts} +3 -3
- package/dist/{Input-RHXujO9u.mjs → Input-TRmTBEav.mjs} +5 -5
- package/dist/{Input-RHXujO9u.mjs.map → Input-TRmTBEav.mjs.map} +1 -1
- package/dist/Input.d.mts +1 -1
- package/dist/IntegerValueControl.d.mts +3 -2
- package/dist/{Link-D_kCyLYX.mjs → Link-XvzUN8sY.mjs} +6 -6
- package/dist/Link-XvzUN8sY.mjs.map +1 -0
- package/dist/{ListBox-DpFcM-dM.d.mts → ListBox-BePQBYR7.d.mts} +3 -3
- package/dist/{ListBox-BZp6exb8.mjs → ListBox-DahM1PgU.mjs} +12 -12
- package/dist/{ListBox-BZp6exb8.mjs.map → ListBox-DahM1PgU.mjs.map} +1 -1
- package/dist/ListBox.d.mts +1 -1
- package/dist/{ListBoxField-DL6Zk8TU.d.mts → ListBoxField-lj7JN1BX.d.mts} +4 -4
- package/dist/ListBoxField.d.mts +1 -1
- package/dist/{LoadingShimmer-oPIv2ESr.mjs → LoadingShimmer-CpfKTSUs.mjs} +4 -3
- package/dist/LoadingShimmer-CpfKTSUs.mjs.map +1 -0
- package/dist/LoadingShimmer.d.mts +1 -1
- package/dist/{LogicRow-BakOUtzx.d.mts → LogicRow-Do7t7Suf.d.mts} +2 -2
- package/dist/LogicRow.d.mts +1 -1
- package/dist/MaskedInput.d.mts +2 -2
- package/dist/MatchHighlight.d.mts +1 -1
- package/dist/{Menu-BVn1jh46.mjs → Menu-BvMzSH2I.mjs} +5 -5
- package/dist/{Menu-BVn1jh46.mjs.map → Menu-BvMzSH2I.mjs.map} +1 -1
- package/dist/{Menu-D6OrKCTC.d.mts → Menu-Ca5ftvo6.d.mts} +4 -4
- package/dist/Menu.d.mts +1 -1
- package/dist/{MiddleTruncatedText-DicQsLDG.mjs → MiddleTruncatedText--jzGTD00.mjs} +2 -2
- package/dist/{MiddleTruncatedText-DicQsLDG.mjs.map → MiddleTruncatedText--jzGTD00.mjs.map} +1 -1
- package/dist/{Modal-De5_bPJ_.mjs → Modal-B6X5AgWj.mjs} +54 -25
- package/dist/{Modal-De5_bPJ_.mjs.map → Modal-B6X5AgWj.mjs.map} +1 -1
- package/dist/{Modal-CujB7DuB.d.mts → Modal-BPfFyzkw.d.mts} +3 -3
- package/dist/Modal.d.mts +1 -1
- package/dist/{PageHeader-UPiqJpIF.d.mts → PageHeader-BeBmYmUX.d.mts} +2 -2
- package/dist/{PageHeader-7_Hf6rHl.mjs → PageHeader-bhQTjuZF.mjs} +2 -2
- package/dist/{PageHeader-7_Hf6rHl.mjs.map → PageHeader-bhQTjuZF.mjs.map} +1 -1
- package/dist/PageHeader.d.mts +1 -1
- package/dist/{PageLayout-BdVM37bV.d.mts → PageLayout-BXM_pyrU.d.mts} +2 -2
- package/dist/{PageLayout-DjtGrvJa.mjs → PageLayout-DgEGcZgB.mjs} +3 -3
- package/dist/{PageLayout-DjtGrvJa.mjs.map → PageLayout-DgEGcZgB.mjs.map} +1 -1
- package/dist/PageLayout.d.mts +1 -1
- package/dist/{PageSelector-B5CcAzss.d.mts → PageSelector-C14ABZVL.d.mts} +2 -2
- package/dist/PageSelector.d.mts +1 -1
- package/dist/{Pagination-DMH2IaV0.mjs → Pagination-DE8wT55m.mjs} +5 -5
- package/dist/{Pagination-DMH2IaV0.mjs.map → Pagination-DE8wT55m.mjs.map} +1 -1
- package/dist/{Pii-24D_nSRQ.mjs → Pii-C42ZY88Y.mjs} +2 -2
- package/dist/{Pii-24D_nSRQ.mjs.map → Pii-C42ZY88Y.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-DuFjaSoq.mjs} +4 -2
- package/dist/Popover-DuFjaSoq.mjs.map +1 -0
- package/dist/Popover.d.mts +1 -1
- package/dist/ProgressBar.d.mts +1 -1
- package/dist/{ProgressIndicator-zt3ndT9U.mjs → ProgressIndicator-hy1P-RG1.mjs} +3 -3
- package/dist/{ProgressIndicator-zt3ndT9U.mjs.map → ProgressIndicator-hy1P-RG1.mjs.map} +1 -1
- package/dist/{Radio-BlEtetrr.mjs → Radio-B4TBAho6.mjs} +5 -5
- package/dist/Radio-B4TBAho6.mjs.map +1 -0
- package/dist/{RadioGroup-CMrXmmn4.mjs → RadioGroup-Bf24GKOb.mjs} +3 -3
- package/dist/{RadioGroup-CMrXmmn4.mjs.map → RadioGroup-Bf24GKOb.mjs.map} +1 -1
- package/dist/RichTextEditor.d.mts +1 -1
- package/dist/RuleEditorFields.d.mts +2 -2
- package/dist/RulesPill.d.mts +1 -1
- package/dist/SectionHeading.d.mts +1 -1
- package/dist/{SegmentedControl-D_DA-MU1.mjs → SegmentedControl-BpR7sUWO.mjs} +6 -3
- package/dist/SegmentedControl-BpR7sUWO.mjs.map +1 -0
- package/dist/{Select-CR9TjFfo.d.mts → Select-DYdn73Nh.d.mts} +2 -2
- package/dist/{Select-DOlw_LPR.mjs → Select-RdTT2KoH.mjs} +10 -8
- package/dist/Select-RdTT2KoH.mjs.map +1 -0
- package/dist/Select.d.mts +1 -1
- package/dist/SmartTextInput.d.mts +1 -1
- package/dist/SmartTextInputField.d.mts +2 -2
- package/dist/SmartTextInputFunctionDialog.d.mts +1 -1
- package/dist/SmartTextInputPopover.d.mts +1 -1
- package/dist/{Spinner-CXb-KUs1.mjs → Spinner-vcApnJzv.mjs} +2 -2
- package/dist/{Spinner-CXb-KUs1.mjs.map → Spinner-vcApnJzv.mjs.map} +1 -1
- package/dist/{Stack-CODxfzhl.d.mts → Stack-B6MrjJeW.d.mts} +2 -2
- package/dist/Stack.d.mts +1 -1
- package/dist/{StatusIndicator-CzRaEFSz.mjs → StatusIndicator-lwt35J6B.mjs} +3 -3
- package/dist/{StatusIndicator-CzRaEFSz.mjs.map → StatusIndicator-lwt35J6B.mjs.map} +1 -1
- package/dist/{Sticker-CLvRB8V5.d.mts → Sticker-C7Wv3Obx.d.mts} +4 -4
- package/dist/{Sticker-C1_6I08u.mjs → Sticker-jfOM4Yi6.mjs} +5 -5
- package/dist/{Sticker-C1_6I08u.mjs.map → Sticker-jfOM4Yi6.mjs.map} +1 -1
- package/dist/Sticker.d.mts +1 -1
- package/dist/StringValueControl.d.mts +2 -1
- package/dist/Tab.d.mts +2 -2
- package/dist/{TabBar-BCFO38E0.mjs → TabBar-DwHgbIQ6.mjs} +8 -8
- package/dist/TabBar-DwHgbIQ6.mjs.map +1 -0
- package/dist/{Table-DPi4Dt5H.mjs → Table-SMJAWqoe.mjs} +21 -13
- package/dist/Table-SMJAWqoe.mjs.map +1 -0
- package/dist/{TableBox-DNQsgQ8x.mjs → TableBox-DS8mpN3-.mjs} +21 -17
- package/dist/TableBox-DS8mpN3-.mjs.map +1 -0
- package/dist/TableBox.d.mts +1 -1
- package/dist/{TableBoxCell-CsRt_5gP.d.mts → TableBoxCell-Bo5xYEmR.d.mts} +6 -6
- package/dist/TableBoxCell.d.mts +1 -1
- package/dist/{TableBoxField-Db0Vjo6Z.d.mts → TableBoxField-CdgjSGLK.d.mts} +5 -5
- package/dist/TableBoxField.d.mts +1 -1
- package/dist/{TableBoxRow-exMlZyc4.d.mts → TableBoxRow-DuWS2iRC.d.mts} +2 -2
- package/dist/TableBoxRow.d.mts +1 -1
- package/dist/{TableBoxRowActions-UO9YN34k.d.mts → TableBoxRowActions-zW74DkXt.d.mts} +2 -2
- package/dist/TableBoxRowActions.d.mts +1 -1
- package/dist/{TableCell-CQsF7t4e.d.mts → TableCell-uv_jqT5e.d.mts} +2 -2
- package/dist/TableCell.d.mts +1 -1
- package/dist/{TableControls-Clo_0Mty.d.mts → TableControls-9vz-HfDu.d.mts} +4 -4
- package/dist/{TableControls-BrP_BqnF.mjs → TableControls-CX7BvgD2.mjs} +107 -43
- package/dist/TableControls-CX7BvgD2.mjs.map +1 -0
- package/dist/TableControls.d.mts +1 -1
- package/dist/{TableControlsContext-BNd6z9mD.d.mts → TableControlsContext-D0Hn3rwL.d.mts} +2 -2
- package/dist/TableControlsContext.d.mts +1 -1
- package/dist/{TableViewConfigurationDropdown-Cp7ausV_.d.mts → TableViewConfigurationDropdown-CZcLH8uR.d.mts} +2 -2
- package/dist/TableViewConfigurationDropdown.d.mts +1 -1
- package/dist/{TechnicalSticker-Cq5jzYKQ.mjs → TechnicalSticker-DrN45Vut.mjs} +9 -7
- package/dist/TechnicalSticker-DrN45Vut.mjs.map +1 -0
- package/dist/{Text-CvaqognH.d.mts → Text-CdHeSHCc.d.mts} +2 -2
- package/dist/Text.d.mts +1 -1
- package/dist/{TextArea-Dro-HH8O.mjs → TextArea-CQ1YNi2b.mjs} +4 -5
- package/dist/TextArea-CQ1YNi2b.mjs.map +1 -0
- package/dist/{TextUnderlineTooltip-Bd5e8KH3.d.mts → TextUnderlineTooltip-By1VVsSs.d.mts} +3 -3
- package/dist/TextUnderlineTooltip.d.mts +1 -1
- package/dist/Tile.d.mts +1 -1
- package/dist/{Toggle-D9MzTIZs.mjs → Toggle-DjmkjJlw.mjs} +13 -9
- package/dist/Toggle-DjmkjJlw.mjs.map +1 -0
- package/dist/{Tooltip-YViXzMdm.mjs → Tooltip-C2VB8I6y.mjs} +18 -5
- package/dist/Tooltip-C2VB8I6y.mjs.map +1 -0
- package/dist/{Tooltip-Ddy2Jq0K.d.mts → Tooltip-OxVvOfn8.d.mts} +3 -3
- package/dist/Tooltip.d.mts +1 -1
- package/dist/{TruncatedText-sr9Fhm3N.d.mts → TruncatedText-Dqj94BFK.d.mts} +2 -2
- package/dist/WizardModal.d.mts +1 -1
- package/dist/chartColors.d.mts +92 -0
- package/dist/chartFrameLayout.d.mts +46 -0
- package/dist/{clientFilterUtils-CGHYF5NE.d.mts → clientFilterUtils-CMLuN8kK.d.mts} +2 -2
- package/dist/clientFilterUtils.d.mts +1 -1
- package/dist/components/Accordion/index.mjs +25 -16
- package/dist/components/Accordion/index.mjs.map +1 -1
- package/dist/components/Attribute/index.mjs +8 -6
- package/dist/components/Attribute/index.mjs.map +1 -1
- package/dist/components/Badge/index.mjs +1 -1
- package/dist/components/Banner/index.mjs +3 -3
- package/dist/components/BottomPanel/index.mjs +10 -8
- package/dist/components/BottomPanel/index.mjs.map +1 -1
- package/dist/components/Breadcrumbs/index.mjs +1 -1
- package/dist/components/Button/index.d.mts +2 -2
- package/dist/components/Button/index.mjs +1 -1
- package/dist/components/ButtonGroup/index.mjs +2 -2
- package/dist/components/Card/index.d.mts +2 -2
- package/dist/components/CardV2/index.d.mts +1 -1
- package/dist/components/CardV2/index.mjs +1 -1
- package/dist/components/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 +4 -4
- package/dist/components/Combobox/index.d.mts +5 -3
- package/dist/components/Combobox/index.mjs +1 -1
- package/dist/components/ConfigFormGroup/index.mjs +1 -1
- package/dist/components/DataTable/TableControls/index.d.mts +20 -20
- 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 +20 -18
- package/dist/components/FloatingPanel/index.mjs.map +1 -1
- package/dist/components/FloatingToolbar/index.mjs +1 -1
- package/dist/components/FormControl/index.d.mts +1 -1
- package/dist/components/FormControl/index.mjs +1 -1
- 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 +10 -10
- package/dist/components/ImageTile/index.mjs.map +1 -1
- package/dist/components/Input/index.d.mts +1 -1
- package/dist/components/Input/index.mjs +1 -1
- package/dist/components/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.d.mts +1 -1
- package/dist/components/PageHeader/index.mjs +1 -1
- package/dist/components/Pagination/index.d.mts +1 -1
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Pii/index.mjs +1 -1
- package/dist/components/Popover/index.mjs +1 -1
- package/dist/components/ProgressBar/index.mjs +20 -3
- package/dist/components/ProgressBar/index.mjs.map +1 -1
- package/dist/components/ProgressIndicator/index.mjs +1 -1
- package/dist/components/Radio/index.mjs +1 -1
- package/dist/components/RadioGroup/index.mjs +1 -1
- package/dist/components/RichTextEditor/index.mjs +9 -9
- package/dist/components/RightPanel/index.mjs +30 -15
- 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 +5 -5
- package/dist/components/Slider/index.mjs +5 -4
- package/dist/components/Slider/index.mjs.map +1 -1
- package/dist/components/SmartTextInput/index.mjs +11 -18
- package/dist/components/SmartTextInput/index.mjs.map +1 -1
- package/dist/components/Spinner/index.mjs +1 -1
- package/dist/components/Stack/index.d.mts +1 -1
- package/dist/components/StatusIndicator/index.mjs +1 -1
- package/dist/components/Sticker/index.d.mts +1 -1
- package/dist/components/Sticker/index.mjs +1 -1
- package/dist/components/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.d.mts +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/Text/index.d.mts +1 -1
- package/dist/components/TextArea/index.mjs +1 -1
- package/dist/components/Tile/index.mjs +2 -2
- package/dist/components/Toast/index.mjs +19 -13
- package/dist/components/Toast/index.mjs.map +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.mjs +8 -8
- 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-By_TYKAZ.d.mts} +3 -3
- package/dist/filters.d.mts +1 -1
- package/dist/{helpers-CBJ2AqGZ.d.mts → helpers-BIHsqdyX.d.mts} +2 -2
- package/dist/helpers.d.mts +1 -1
- package/dist/{index-kIon1vPp.d.mts → index-BozzRwby.d.mts} +2 -2
- package/dist/{index-OkdnW-u5.d.mts → index-CZJp4Af6.d.mts} +3 -3
- package/dist/index2.d.mts +1 -1
- 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-BqO2H-Kj.d.mts} +6 -6
- package/dist/inputFields.d.mts +1 -1
- package/dist/lib/MiddleTruncatedText.mjs +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/colorMode.d.mts +1 -1
- package/dist/lib/useChain.d.mts +1 -1
- 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/focus.mjs +1 -1
- package/dist/mixins/hoverable.mjs +2 -2
- package/dist/mixins/hoverable.mjs.map +1 -1
- package/dist/mixins/input.mjs +3 -2
- 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 +24 -0
- package/dist/mixins/motion.mjs +44 -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 +9 -9
- package/dist/patterns/CardGrouping/index.mjs.map +1 -1
- package/dist/patterns/IndexTableLayout/index.mjs +3 -3
- 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.d.mts +1 -1
- package/dist/patterns/PageLayout/index.mjs +1 -1
- package/dist/patterns/WizardModal/index.mjs +4 -4
- package/dist/relative-date-label.d.mts +1 -1
- package/dist/tone.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-BEdERA4v.d.mts → types-C_CncajO.d.mts} +2 -2
- package/dist/{types-BiqzeNsa.d.mts → types-D5txFacG.d.mts} +3 -3
- 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/{useChain-B--KAtdN.d.mts → useChain-x9fd9Fyq.d.mts} +2 -2
- package/dist/useChainAtCursor.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-BEKJNrb1.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/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 +1 -0
- package/package.json +14 -4
- package/skills/new-screen/SKILL.md +33 -0
- package/skills/ui-authoring/COMPONENTS.md +18 -0
- package/skills/ui-authoring/PATTERNS.md +51 -34
- package/skills/ui-authoring/STANDARD.md +68 -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/DatePicker-C9redLBr.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/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
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { a as styled, r as css } from "./styledComponentsInterop-Cs5CCPRy.mjs";
|
|
2
|
-
import { semanticColor, semanticOnly, semanticTokens } from "./lib/semanticColor.mjs";
|
|
3
|
-
import { t as Card_default } from "./Card-DuQHyroh.mjs";
|
|
4
|
-
import { withAlpha } from "./lib/color.mjs";
|
|
5
2
|
import { isDisabled, isFocused, isFocusedVisible, isHovered, isNotDisabled } from "./lib/pseudoClass.mjs";
|
|
6
|
-
import {
|
|
3
|
+
import { semanticColor, semanticOnly, semanticTokens } from "./lib/semanticColor.mjs";
|
|
7
4
|
import { focusWithinOutline } from "./mixins/focus.mjs";
|
|
5
|
+
import { withAlpha } from "./lib/color.mjs";
|
|
8
6
|
import inputMixin from "./mixins/input.mjs";
|
|
9
|
-
import { t as
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
7
|
+
import { t as Card_default } from "./Card-DuQHyroh.mjs";
|
|
8
|
+
import { Z_INDICES } from "./lib/zindex.mjs";
|
|
9
|
+
import { t as IconButton } from "./IconButton-kSjnfhWt.mjs";
|
|
10
|
+
import { t as ClearButton } from "./Input-TRmTBEav.mjs";
|
|
11
|
+
import { c as MenuList, s as MenuItem } from "./Menu-BvMzSH2I.mjs";
|
|
12
|
+
import { s as Popover_default } from "./Popover-DuFjaSoq.mjs";
|
|
13
|
+
import { a as FormLabel } from "./FormControl--pbTH3bY.mjs";
|
|
15
14
|
import { BorderRadius, Color, Spacing, Typography } from "@persona/design-tokens";
|
|
15
|
+
import { forwardRef, memo, useCallback, useEffect, useRef, useState } from "react";
|
|
16
16
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
17
17
|
import { DateTime, Settings } from "luxon";
|
|
18
18
|
import { ArrowLeftIcon, ArrowRightIcon, CircleXInverseIcon } from "@persona/icons";
|
|
@@ -172,274 +172,32 @@ const CalendarGrid = ({ state, offset = {}, skipFromTabOrder = false }) => {
|
|
|
172
172
|
});
|
|
173
173
|
};
|
|
174
174
|
//#endregion
|
|
175
|
-
//#region src/components/DatePicker/Calendar/RangeCalendarPresets.tsx
|
|
176
|
-
/** The preset windows the picker offers; the codec resolves the same ids on read. */
|
|
177
|
-
const getDefaultPresets = (tz) => {
|
|
178
|
-
const now = today(tz);
|
|
179
|
-
return [
|
|
180
|
-
{
|
|
181
|
-
id: "last_7_days",
|
|
182
|
-
label: "Last 7 days",
|
|
183
|
-
range: {
|
|
184
|
-
start: now.subtract({ days: 7 }),
|
|
185
|
-
end: now
|
|
186
|
-
}
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
id: "last_14_days",
|
|
190
|
-
label: "Last 14 days",
|
|
191
|
-
range: {
|
|
192
|
-
start: now.subtract({ days: 14 }),
|
|
193
|
-
end: now
|
|
194
|
-
}
|
|
195
|
-
},
|
|
196
|
-
{
|
|
197
|
-
id: "last_30_days",
|
|
198
|
-
label: "Last 30 days",
|
|
199
|
-
range: {
|
|
200
|
-
start: now.subtract({ days: 30 }),
|
|
201
|
-
end: now
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
id: "this_month",
|
|
206
|
-
label: "This month",
|
|
207
|
-
range: {
|
|
208
|
-
start: startOfMonth(now),
|
|
209
|
-
end: now
|
|
210
|
-
}
|
|
211
|
-
},
|
|
212
|
-
{
|
|
213
|
-
id: "last_month",
|
|
214
|
-
label: "Last month",
|
|
215
|
-
range: {
|
|
216
|
-
start: startOfMonth(now.subtract({ months: 1 })),
|
|
217
|
-
end: endOfMonth(now.subtract({ months: 1 }))
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
id: "this_year",
|
|
222
|
-
label: "This year",
|
|
223
|
-
range: {
|
|
224
|
-
start: startOfYear(now),
|
|
225
|
-
end: now
|
|
226
|
-
}
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
id: "last_year",
|
|
230
|
-
label: "Last year",
|
|
231
|
-
range: {
|
|
232
|
-
start: startOfYear(now.subtract({ years: 1 })),
|
|
233
|
-
end: endOfYear(now.subtract({ years: 1 }))
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
];
|
|
237
|
-
};
|
|
238
|
-
/**
|
|
239
|
-
* Compare two date values by year/month/day only, ignoring time components.
|
|
240
|
-
*/
|
|
241
|
-
const datesMatchByDay = (a, b) => a.year === b.year && a.month === b.month && a.day === b.day;
|
|
242
|
-
const Container = styled.div`
|
|
243
|
-
display: flex;
|
|
244
|
-
flex-direction: column;
|
|
245
|
-
`;
|
|
246
|
-
const StyledPresetButton = styled(MenuItem)`
|
|
247
|
-
${({ selected }) => !selected && css`
|
|
248
|
-
&${isNotDisabled}${isHovered}, &${isNotDisabled}${isFocused} {
|
|
249
|
-
background-color: transparent;
|
|
250
|
-
}
|
|
251
|
-
`}
|
|
252
|
-
|
|
253
|
-
&:focus-visible {
|
|
254
|
-
// MenuItems default to outline: none, so we need to override it here.
|
|
255
|
-
outline: 2px solid ${({ theme }) => semanticColor(theme, "BorderFocus", Color.BorderFocus)} !important;
|
|
256
|
-
outline-offset: 1px;
|
|
257
|
-
}
|
|
258
|
-
`;
|
|
259
|
-
const PresetButton = ({ commitRange, state, preset, isSelected, setDateMode, onPresetSelect, ...props }) => {
|
|
260
|
-
const ref = useRef();
|
|
261
|
-
const { buttonProps } = useButton({ onPress: () => {
|
|
262
|
-
const commit = () => commitRange(preset.range);
|
|
263
|
-
if (onPresetSelect) onPresetSelect(preset.id, commit);
|
|
264
|
-
else commit();
|
|
265
|
-
setDateMode(null);
|
|
266
|
-
} }, ref);
|
|
267
|
-
const { "aria-current": _ariaCurrent, ...mergedProps } = mergeProps(props, buttonProps);
|
|
268
|
-
return /* @__PURE__ */ jsx(StyledPresetButton, {
|
|
269
|
-
selected: isSelected,
|
|
270
|
-
...mergedProps,
|
|
271
|
-
ref,
|
|
272
|
-
children: preset.label
|
|
273
|
-
});
|
|
274
|
-
};
|
|
275
|
-
const DateRangePickerPresets = ({ presetsFn = getDefaultPresets, commitRange, state, setDateMode, onPresetSelect, selectedPreset, ...props }) => {
|
|
276
|
-
const presets = presetsFn(Settings.defaultZone.name);
|
|
277
|
-
const { value } = state;
|
|
278
|
-
const selectedPresetIndex = value ? presets.findIndex((preset) => datesMatchByDay(preset.range.start, value.start) && datesMatchByDay(preset.range.end, value.end)) : -1;
|
|
279
|
-
const infersSelection = typeof selectedPreset === "undefined";
|
|
280
|
-
return /* @__PURE__ */ jsx(Container, {
|
|
281
|
-
...props,
|
|
282
|
-
children: /* @__PURE__ */ jsx(MenuList, {
|
|
283
|
-
"aria-label": "Date range presets",
|
|
284
|
-
children: presets.map((preset, i) => /* @__PURE__ */ jsx(PresetButton, {
|
|
285
|
-
preset,
|
|
286
|
-
commitRange,
|
|
287
|
-
state,
|
|
288
|
-
setDateMode,
|
|
289
|
-
onPresetSelect,
|
|
290
|
-
isSelected: infersSelection ? i === selectedPresetIndex : preset.id === selectedPreset
|
|
291
|
-
}, i))
|
|
292
|
-
})
|
|
293
|
-
});
|
|
294
|
-
};
|
|
295
|
-
const arePropsEqual = (prevProps, nextProps) => {
|
|
296
|
-
if (prevProps.selectedPreset !== nextProps.selectedPreset || prevProps.onPresetSelect !== nextProps.onPresetSelect || prevProps.commitRange !== nextProps.commitRange || prevProps.setDateMode !== nextProps.setDateMode || prevProps.presetsFn !== nextProps.presetsFn) return false;
|
|
297
|
-
const prevValue = prevProps.state.value;
|
|
298
|
-
const nextValue = nextProps.state.value;
|
|
299
|
-
if (!prevValue && !nextValue) return true;
|
|
300
|
-
if (!prevValue || !nextValue) return false;
|
|
301
|
-
return prevValue.start.compare(nextValue.start) === 0 && prevValue.end.compare(nextValue.end) === 0;
|
|
302
|
-
};
|
|
303
|
-
var RangeCalendarPresets_default = memo(DateRangePickerPresets, arePropsEqual);
|
|
304
|
-
//#endregion
|
|
305
175
|
//#region src/components/DatePicker/common.ts
|
|
306
176
|
const createCalendar = () => new GregorianCalendar();
|
|
307
177
|
//#endregion
|
|
308
|
-
//#region src/components/DatePicker/
|
|
309
|
-
const
|
|
310
|
-
const presetEnd = (end) => earliest(end.set({
|
|
311
|
-
hour: 23,
|
|
312
|
-
minute: 59,
|
|
313
|
-
second: 59,
|
|
314
|
-
millisecond: 999
|
|
315
|
-
}), toCalendarDateTime(now(Settings.defaultZone.name)).set({
|
|
316
|
-
second: 0,
|
|
317
|
-
millisecond: 0
|
|
318
|
-
}));
|
|
319
|
-
//#endregion
|
|
320
|
-
//#region src/components/DatePicker/Calendar/RangeCalendar.tsx
|
|
321
|
-
const RangeCalendarHeader = styled(CalendarHeader)`
|
|
322
|
-
gap: ${Spacing[5]};
|
|
323
|
-
`;
|
|
324
|
-
const CalendarHeaderMonth = styled.div`
|
|
325
|
-
display: grid;
|
|
326
|
-
grid-template-columns: minmax(auto, 1fr) auto minmax(auto, 1fr);
|
|
327
|
-
grid-template-areas: 'prev title next';
|
|
328
|
-
width: 266px;
|
|
329
|
-
align-items: center;
|
|
330
|
-
`;
|
|
331
|
-
const CalendarGrids = styled.div`
|
|
332
|
-
display: flex;
|
|
333
|
-
gap: ${Spacing[5]};
|
|
334
|
-
align-items: start;
|
|
335
|
-
`;
|
|
336
|
-
const PrevButton = styled(CalendarButton)`
|
|
337
|
-
grid-area: prev;
|
|
338
|
-
justify-self: start;
|
|
339
|
-
border-radius: ${BorderRadius.Sm};
|
|
340
|
-
`;
|
|
341
|
-
const NextButton = styled(CalendarButton)`
|
|
342
|
-
grid-area: next;
|
|
343
|
-
justify-self: end;
|
|
344
|
-
border-radius: ${BorderRadius.Sm};
|
|
345
|
-
`;
|
|
346
|
-
const RangeCalendarHeading = styled(CalendarHeading)`
|
|
347
|
-
grid-area: title;
|
|
348
|
-
`;
|
|
349
|
-
const RangeCalendarContainer = styled.div`
|
|
350
|
-
display: flex;
|
|
351
|
-
`;
|
|
352
|
-
const PresetsContainer = styled(Card_default.Body)`
|
|
353
|
-
border-right: 1px solid ${({ theme }) => semanticColor(theme, "BorderDivider", Color.BorderHairline)};
|
|
354
|
-
`;
|
|
355
|
-
const hasTimeComponent = (date) => "hour" in date;
|
|
356
|
-
const RangeCalendar = ({ calendarRef, onSelectDate, minDate, maxDate, hidePresets, visibleMonths = 2, setDateMode, onPresetSelect, selectedPreset, setValue, granularity, ...props }) => {
|
|
178
|
+
//#region src/components/DatePicker/Calendar/Calendar.tsx
|
|
179
|
+
const Calendar = (props) => {
|
|
357
180
|
const { locale } = useLocale();
|
|
358
|
-
const
|
|
359
|
-
const rangeCalendarState = useRangeCalendarState({
|
|
181
|
+
const state = useCalendarState({
|
|
360
182
|
...props,
|
|
361
|
-
minValue: minDate,
|
|
362
|
-
maxValue: maxDate,
|
|
363
|
-
visibleDuration: { months: visibleMonths },
|
|
364
183
|
locale,
|
|
365
184
|
createCalendar
|
|
366
185
|
});
|
|
367
|
-
const
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
}
|
|
374
|
-
setValue({
|
|
375
|
-
start: toZoned(toCalendarDateTime(value.start), timezoneName),
|
|
376
|
-
end: toZoned(hasTimeComponent(value.end) ? toCalendarDateTime(value.end) : presetEnd(toCalendarDateTime(value.end)), timezoneName)
|
|
377
|
-
});
|
|
378
|
-
},
|
|
379
|
-
selectDate: (date) => {
|
|
380
|
-
if (onSelectDate) {
|
|
381
|
-
onSelectDate(date);
|
|
382
|
-
rangeCalendarState.setAnchorDate(null);
|
|
383
|
-
} else rangeCalendarState.selectDate(date);
|
|
384
|
-
}
|
|
385
|
-
};
|
|
386
|
-
const commitRef = useRef(state.setValue);
|
|
387
|
-
useEffect(() => {
|
|
388
|
-
commitRef.current = state.setValue;
|
|
389
|
-
});
|
|
390
|
-
const commitRange = useCallback((value) => commitRef.current(value), []);
|
|
391
|
-
const ref = useRef();
|
|
392
|
-
const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(props, state, ref);
|
|
393
|
-
const monthDateFormatter = useDateFormatter({
|
|
394
|
-
month: "long",
|
|
395
|
-
year: "numeric",
|
|
396
|
-
timeZone: timezoneName
|
|
397
|
-
});
|
|
398
|
-
const monthHeaders = range(0, visibleMonths).map((i) => {
|
|
399
|
-
return /* @__PURE__ */ jsxs(CalendarHeaderMonth, { children: [
|
|
400
|
-
i === 0 && /* @__PURE__ */ jsx(PrevButton, {
|
|
186
|
+
const { calendarProps, prevButtonProps, nextButtonProps, title } = useCalendar(props, state);
|
|
187
|
+
return /* @__PURE__ */ jsxs(CalendarContainer, {
|
|
188
|
+
...calendarProps,
|
|
189
|
+
ref: props.calendarRef,
|
|
190
|
+
children: [/* @__PURE__ */ jsxs(CalendarHeader, { children: [
|
|
191
|
+
/* @__PURE__ */ jsx(CalendarButton, {
|
|
401
192
|
...prevButtonProps,
|
|
402
193
|
children: /* @__PURE__ */ jsx(ArrowLeftIcon, {})
|
|
403
194
|
}),
|
|
404
|
-
/* @__PURE__ */ jsx(
|
|
405
|
-
|
|
406
|
-
children: monthDateFormatter.format(state.visibleRange.start.add({ months: i }).toDate(timezoneName))
|
|
407
|
-
}),
|
|
408
|
-
i === visibleMonths - 1 && /* @__PURE__ */ jsx(NextButton, {
|
|
195
|
+
/* @__PURE__ */ jsx(CalendarHeading, { children: title }),
|
|
196
|
+
/* @__PURE__ */ jsx(CalendarButton, {
|
|
409
197
|
...nextButtonProps,
|
|
410
198
|
children: /* @__PURE__ */ jsx(ArrowRightIcon, {})
|
|
411
199
|
})
|
|
412
|
-
] },
|
|
413
|
-
});
|
|
414
|
-
const monthGrids = range(0, visibleMonths).map((i) => {
|
|
415
|
-
return /* @__PURE__ */ jsx(CalendarGrid, {
|
|
416
|
-
state,
|
|
417
|
-
offset: { months: i },
|
|
418
|
-
skipFromTabOrder: i > 0
|
|
419
|
-
}, `calendar-grid-${i}`);
|
|
420
|
-
});
|
|
421
|
-
return /* @__PURE__ */ jsxs(RangeCalendarContainer, {
|
|
422
|
-
ref: calendarRef,
|
|
423
|
-
children: [!hidePresets && /* @__PURE__ */ jsx(PresetsContainer, {
|
|
424
|
-
padding: Spacing[3],
|
|
425
|
-
children: /* @__PURE__ */ jsx(RangeCalendarPresets_default, {
|
|
426
|
-
state,
|
|
427
|
-
commitRange,
|
|
428
|
-
setDateMode,
|
|
429
|
-
onPresetSelect,
|
|
430
|
-
selectedPreset
|
|
431
|
-
})
|
|
432
|
-
}), /* @__PURE__ */ jsx(Card_default.Body, {
|
|
433
|
-
padding: Spacing[3],
|
|
434
|
-
children: /* @__PURE__ */ jsxs(CalendarContainer, {
|
|
435
|
-
...calendarProps,
|
|
436
|
-
ref,
|
|
437
|
-
children: [/* @__PURE__ */ jsxs(RangeCalendarHeader, { children: [/* @__PURE__ */ jsx(VisuallyHidden, {
|
|
438
|
-
isFocusable: false,
|
|
439
|
-
children: calendarProps["aria-label"]
|
|
440
|
-
}), monthHeaders] }), /* @__PURE__ */ jsx(CalendarGrids, { children: monthGrids })]
|
|
441
|
-
})
|
|
442
|
-
})]
|
|
200
|
+
] }), /* @__PURE__ */ jsx(CalendarGrid, { state })]
|
|
443
201
|
});
|
|
444
202
|
};
|
|
445
203
|
//#endregion
|
|
@@ -568,32 +326,396 @@ const InputBox = styled.div`
|
|
|
568
326
|
}
|
|
569
327
|
}}
|
|
570
328
|
`;
|
|
571
|
-
const DateField = forwardRef(function DateField(props, forwardedRef) {
|
|
572
|
-
const { locale } = useLocale$1();
|
|
573
|
-
const state = useDateFieldState({
|
|
329
|
+
const DateField = forwardRef(function DateField(props, forwardedRef) {
|
|
330
|
+
const { locale } = useLocale$1();
|
|
331
|
+
const state = useDateFieldState({
|
|
332
|
+
...props,
|
|
333
|
+
locale,
|
|
334
|
+
createCalendar
|
|
335
|
+
});
|
|
336
|
+
const ref = useRef();
|
|
337
|
+
const { fieldProps } = useDateField(props, state, ref);
|
|
338
|
+
return /* @__PURE__ */ jsx(InputBox, {
|
|
339
|
+
...fieldProps,
|
|
340
|
+
...props.dateFieldProps || {},
|
|
341
|
+
ref: mergeRefs(ref, forwardedRef),
|
|
342
|
+
focused: props.focused,
|
|
343
|
+
disabled: props.disabled,
|
|
344
|
+
"aria-label": props["aria-label"],
|
|
345
|
+
$size: props.size ?? "md",
|
|
346
|
+
$inputPosition: props.inputPosition,
|
|
347
|
+
$hasTimeZone: state.segments.some((segment) => segment.type === "timeZoneName"),
|
|
348
|
+
hasError: props.hasError,
|
|
349
|
+
children: state.segments.map((segment, i) => /* @__PURE__ */ jsx(DateSegment, {
|
|
350
|
+
segment,
|
|
351
|
+
state
|
|
352
|
+
}, i))
|
|
353
|
+
});
|
|
354
|
+
});
|
|
355
|
+
//#endregion
|
|
356
|
+
//#region src/components/DatePicker/DatePicker.tsx
|
|
357
|
+
const OpenButton$1 = ({ calendarRef }) => {
|
|
358
|
+
const openCalBtnRef = useRef(null);
|
|
359
|
+
const { buttonProps } = useButton({ onPress: () => {
|
|
360
|
+
if (calendarRef.current) calendarRef.current.querySelector("button[aria-label=\"Previous\"]").focus();
|
|
361
|
+
} }, openCalBtnRef);
|
|
362
|
+
return /* @__PURE__ */ jsx("button", {
|
|
363
|
+
...buttonProps,
|
|
364
|
+
ref: openCalBtnRef,
|
|
365
|
+
"aria-label": "Open calendar"
|
|
366
|
+
});
|
|
367
|
+
};
|
|
368
|
+
const DatePicker = (props) => {
|
|
369
|
+
const state = useDatePickerState(props);
|
|
370
|
+
const ref = useRef(null);
|
|
371
|
+
const fieldRef = useRef(null);
|
|
372
|
+
const { groupProps, fieldProps, calendarProps } = useDatePicker(props, state, ref);
|
|
373
|
+
const calendarRef = useRef(null);
|
|
374
|
+
const isClosingRef = useRef(false);
|
|
375
|
+
const { focusWithinProps } = useFocusWithin({
|
|
376
|
+
onFocusWithin: () => {
|
|
377
|
+
if (!state.isOpen && !isClosingRef.current) state.setOpen(true);
|
|
378
|
+
},
|
|
379
|
+
onBlurWithin: (e) => {
|
|
380
|
+
if (e.relatedTarget && !calendarRef?.current?.contains(e.relatedTarget) && state.isOpen) state.setOpen(false);
|
|
381
|
+
}
|
|
382
|
+
});
|
|
383
|
+
const handleOutsideClick = (e) => {
|
|
384
|
+
const target = e.target;
|
|
385
|
+
if (ref.current?.contains(target)) return;
|
|
386
|
+
if (state.isOpen) state.setOpen(false);
|
|
387
|
+
};
|
|
388
|
+
const handleKeyDown = useCallback((event) => {
|
|
389
|
+
if (event.key === "Enter" && !state.isOpen) {
|
|
390
|
+
event.preventDefault();
|
|
391
|
+
state.setOpen(true);
|
|
392
|
+
}
|
|
393
|
+
}, [state]);
|
|
394
|
+
return /* @__PURE__ */ jsx("div", {
|
|
395
|
+
style: {
|
|
396
|
+
display: "flex",
|
|
397
|
+
flexDirection: "column"
|
|
398
|
+
},
|
|
399
|
+
children: /* @__PURE__ */ jsxs(Popover_default, {
|
|
400
|
+
open: state.isOpen,
|
|
401
|
+
modal: false,
|
|
402
|
+
contentProps: {
|
|
403
|
+
style: { zIndex: props.useModalZIndex ? Z_INDICES.modalDropdown : Z_INDICES.dropdown },
|
|
404
|
+
align: "start",
|
|
405
|
+
"aria-modal": true,
|
|
406
|
+
onInteractOutside: handleOutsideClick,
|
|
407
|
+
onEscapeKeyDown: () => {
|
|
408
|
+
state.setOpen(false);
|
|
409
|
+
},
|
|
410
|
+
onCloseAutoFocus: (e) => {
|
|
411
|
+
e.preventDefault();
|
|
412
|
+
isClosingRef.current = true;
|
|
413
|
+
if (fieldRef.current) {
|
|
414
|
+
const firstEditableSegment = fieldRef.current.querySelector("[tabindex=\"0\"]");
|
|
415
|
+
if (firstEditableSegment instanceof HTMLElement) firstEditableSegment.focus();
|
|
416
|
+
}
|
|
417
|
+
requestAnimationFrame(() => {
|
|
418
|
+
isClosingRef.current = false;
|
|
419
|
+
});
|
|
420
|
+
},
|
|
421
|
+
noPadding: true
|
|
422
|
+
},
|
|
423
|
+
children: [/* @__PURE__ */ jsx(Popover_default.Trigger, {
|
|
424
|
+
asChild: true,
|
|
425
|
+
children: /* @__PURE__ */ jsxs("div", {
|
|
426
|
+
...mergeProps(groupProps, focusWithinProps),
|
|
427
|
+
ref,
|
|
428
|
+
style: {
|
|
429
|
+
display: "flex",
|
|
430
|
+
position: "relative"
|
|
431
|
+
},
|
|
432
|
+
children: [/* @__PURE__ */ jsx(DateField, {
|
|
433
|
+
ref: fieldRef,
|
|
434
|
+
id: props.id,
|
|
435
|
+
dateFieldProps: props.dateFieldProps,
|
|
436
|
+
disabled: props.disabled,
|
|
437
|
+
size: props.size,
|
|
438
|
+
...mergeProps(fieldProps, { onKeyDown: handleKeyDown }),
|
|
439
|
+
value: fieldProps.value ?? void 0
|
|
440
|
+
}), /* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(OpenButton$1, { calendarRef }) })]
|
|
441
|
+
})
|
|
442
|
+
}), /* @__PURE__ */ jsx(Calendar, {
|
|
443
|
+
...calendarProps,
|
|
444
|
+
autoFocus: void 0,
|
|
445
|
+
calendarRef,
|
|
446
|
+
id: "calendar-popover"
|
|
447
|
+
})]
|
|
448
|
+
})
|
|
449
|
+
});
|
|
450
|
+
};
|
|
451
|
+
//#endregion
|
|
452
|
+
//#region src/components/DatePicker/Calendar/RangeCalendarPresets.tsx
|
|
453
|
+
/** The preset windows the picker offers; the codec resolves the same ids on read. */
|
|
454
|
+
const getDefaultPresets = (tz) => {
|
|
455
|
+
const now = today(tz);
|
|
456
|
+
return [
|
|
457
|
+
{
|
|
458
|
+
id: "last_7_days",
|
|
459
|
+
label: "Last 7 days",
|
|
460
|
+
range: {
|
|
461
|
+
start: now.subtract({ days: 7 }),
|
|
462
|
+
end: now
|
|
463
|
+
}
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
id: "last_14_days",
|
|
467
|
+
label: "Last 14 days",
|
|
468
|
+
range: {
|
|
469
|
+
start: now.subtract({ days: 14 }),
|
|
470
|
+
end: now
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
id: "last_30_days",
|
|
475
|
+
label: "Last 30 days",
|
|
476
|
+
range: {
|
|
477
|
+
start: now.subtract({ days: 30 }),
|
|
478
|
+
end: now
|
|
479
|
+
}
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
id: "this_month",
|
|
483
|
+
label: "This month",
|
|
484
|
+
range: {
|
|
485
|
+
start: startOfMonth(now),
|
|
486
|
+
end: now
|
|
487
|
+
}
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
id: "last_month",
|
|
491
|
+
label: "Last month",
|
|
492
|
+
range: {
|
|
493
|
+
start: startOfMonth(now.subtract({ months: 1 })),
|
|
494
|
+
end: endOfMonth(now.subtract({ months: 1 }))
|
|
495
|
+
}
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
id: "this_year",
|
|
499
|
+
label: "This year",
|
|
500
|
+
range: {
|
|
501
|
+
start: startOfYear(now),
|
|
502
|
+
end: now
|
|
503
|
+
}
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
id: "last_year",
|
|
507
|
+
label: "Last year",
|
|
508
|
+
range: {
|
|
509
|
+
start: startOfYear(now.subtract({ years: 1 })),
|
|
510
|
+
end: endOfYear(now.subtract({ years: 1 }))
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
];
|
|
514
|
+
};
|
|
515
|
+
/**
|
|
516
|
+
* Compare two date values by year/month/day only, ignoring time components.
|
|
517
|
+
*/
|
|
518
|
+
const datesMatchByDay = (a, b) => a.year === b.year && a.month === b.month && a.day === b.day;
|
|
519
|
+
const Container = styled.div`
|
|
520
|
+
display: flex;
|
|
521
|
+
flex-direction: column;
|
|
522
|
+
`;
|
|
523
|
+
const StyledPresetButton = styled(MenuItem)`
|
|
524
|
+
${({ selected }) => !selected && css`
|
|
525
|
+
&${isNotDisabled}${isHovered}, &${isNotDisabled}${isFocused} {
|
|
526
|
+
background-color: transparent;
|
|
527
|
+
}
|
|
528
|
+
`}
|
|
529
|
+
|
|
530
|
+
&:focus-visible {
|
|
531
|
+
// MenuItems default to outline: none, so we need to override it here.
|
|
532
|
+
outline: 2px solid ${({ theme }) => semanticColor(theme, "BorderFocus", Color.BorderFocus)} !important;
|
|
533
|
+
outline-offset: 1px;
|
|
534
|
+
}
|
|
535
|
+
`;
|
|
536
|
+
const PresetButton = ({ commitRange, state, preset, isSelected, setDateMode, onPresetSelect, ...props }) => {
|
|
537
|
+
const ref = useRef();
|
|
538
|
+
const { buttonProps } = useButton({ onPress: () => {
|
|
539
|
+
const commit = () => commitRange(preset.range);
|
|
540
|
+
if (onPresetSelect) onPresetSelect(preset.id, commit);
|
|
541
|
+
else commit();
|
|
542
|
+
setDateMode(null);
|
|
543
|
+
} }, ref);
|
|
544
|
+
const { "aria-current": _ariaCurrent, ...mergedProps } = mergeProps(props, buttonProps);
|
|
545
|
+
return /* @__PURE__ */ jsx(StyledPresetButton, {
|
|
546
|
+
selected: isSelected,
|
|
547
|
+
...mergedProps,
|
|
548
|
+
ref,
|
|
549
|
+
children: preset.label
|
|
550
|
+
});
|
|
551
|
+
};
|
|
552
|
+
const DateRangePickerPresets = ({ presetsFn = getDefaultPresets, commitRange, state, setDateMode, onPresetSelect, selectedPreset, ...props }) => {
|
|
553
|
+
const presets = presetsFn(Settings.defaultZone.name);
|
|
554
|
+
const { value } = state;
|
|
555
|
+
const selectedPresetIndex = value ? presets.findIndex((preset) => datesMatchByDay(preset.range.start, value.start) && datesMatchByDay(preset.range.end, value.end)) : -1;
|
|
556
|
+
const infersSelection = typeof selectedPreset === "undefined";
|
|
557
|
+
return /* @__PURE__ */ jsx(Container, {
|
|
558
|
+
...props,
|
|
559
|
+
children: /* @__PURE__ */ jsx(MenuList, {
|
|
560
|
+
"aria-label": "Date range presets",
|
|
561
|
+
children: presets.map((preset, i) => /* @__PURE__ */ jsx(PresetButton, {
|
|
562
|
+
preset,
|
|
563
|
+
commitRange,
|
|
564
|
+
state,
|
|
565
|
+
setDateMode,
|
|
566
|
+
onPresetSelect,
|
|
567
|
+
isSelected: infersSelection ? i === selectedPresetIndex : preset.id === selectedPreset
|
|
568
|
+
}, i))
|
|
569
|
+
})
|
|
570
|
+
});
|
|
571
|
+
};
|
|
572
|
+
const arePropsEqual = (prevProps, nextProps) => {
|
|
573
|
+
if (prevProps.selectedPreset !== nextProps.selectedPreset || prevProps.onPresetSelect !== nextProps.onPresetSelect || prevProps.commitRange !== nextProps.commitRange || prevProps.setDateMode !== nextProps.setDateMode || prevProps.presetsFn !== nextProps.presetsFn) return false;
|
|
574
|
+
const prevValue = prevProps.state.value;
|
|
575
|
+
const nextValue = nextProps.state.value;
|
|
576
|
+
if (!prevValue && !nextValue) return true;
|
|
577
|
+
if (!prevValue || !nextValue) return false;
|
|
578
|
+
return prevValue.start.compare(nextValue.start) === 0 && prevValue.end.compare(nextValue.end) === 0;
|
|
579
|
+
};
|
|
580
|
+
var RangeCalendarPresets_default = memo(DateRangePickerPresets, arePropsEqual);
|
|
581
|
+
//#endregion
|
|
582
|
+
//#region src/components/DatePicker/time-range.ts
|
|
583
|
+
const earliest = (a, b) => a.compare(b) <= 0 ? a : b;
|
|
584
|
+
const presetEnd = (end) => earliest(end.set({
|
|
585
|
+
hour: 23,
|
|
586
|
+
minute: 59,
|
|
587
|
+
second: 59,
|
|
588
|
+
millisecond: 999
|
|
589
|
+
}), toCalendarDateTime(now(Settings.defaultZone.name)).set({
|
|
590
|
+
second: 0,
|
|
591
|
+
millisecond: 0
|
|
592
|
+
}));
|
|
593
|
+
//#endregion
|
|
594
|
+
//#region src/components/DatePicker/Calendar/RangeCalendar.tsx
|
|
595
|
+
const RangeCalendarHeader = styled(CalendarHeader)`
|
|
596
|
+
gap: ${Spacing[5]};
|
|
597
|
+
`;
|
|
598
|
+
const CalendarHeaderMonth = styled.div`
|
|
599
|
+
display: grid;
|
|
600
|
+
grid-template-columns: minmax(auto, 1fr) auto minmax(auto, 1fr);
|
|
601
|
+
grid-template-areas: 'prev title next';
|
|
602
|
+
width: 266px;
|
|
603
|
+
align-items: center;
|
|
604
|
+
`;
|
|
605
|
+
const CalendarGrids = styled.div`
|
|
606
|
+
display: flex;
|
|
607
|
+
gap: ${Spacing[5]};
|
|
608
|
+
align-items: start;
|
|
609
|
+
`;
|
|
610
|
+
const PrevButton = styled(CalendarButton)`
|
|
611
|
+
grid-area: prev;
|
|
612
|
+
justify-self: start;
|
|
613
|
+
border-radius: ${BorderRadius.Sm};
|
|
614
|
+
`;
|
|
615
|
+
const NextButton = styled(CalendarButton)`
|
|
616
|
+
grid-area: next;
|
|
617
|
+
justify-self: end;
|
|
618
|
+
border-radius: ${BorderRadius.Sm};
|
|
619
|
+
`;
|
|
620
|
+
const RangeCalendarHeading = styled(CalendarHeading)`
|
|
621
|
+
grid-area: title;
|
|
622
|
+
`;
|
|
623
|
+
const RangeCalendarContainer = styled.div`
|
|
624
|
+
display: flex;
|
|
625
|
+
`;
|
|
626
|
+
const PresetsContainer = styled(Card_default.Body)`
|
|
627
|
+
border-right: 1px solid ${({ theme }) => semanticColor(theme, "BorderDivider", Color.BorderHairline)};
|
|
628
|
+
`;
|
|
629
|
+
const hasTimeComponent = (date) => "hour" in date;
|
|
630
|
+
const RangeCalendar = ({ calendarRef, onSelectDate, minDate, maxDate, hidePresets, visibleMonths = 2, setDateMode, onPresetSelect, selectedPreset, setValue, granularity, ...props }) => {
|
|
631
|
+
const { locale } = useLocale();
|
|
632
|
+
const timezoneName = Settings.defaultZone.name;
|
|
633
|
+
const rangeCalendarState = useRangeCalendarState({
|
|
574
634
|
...props,
|
|
635
|
+
minValue: minDate,
|
|
636
|
+
maxValue: maxDate,
|
|
637
|
+
visibleDuration: { months: visibleMonths },
|
|
575
638
|
locale,
|
|
576
639
|
createCalendar
|
|
577
640
|
});
|
|
641
|
+
const state = {
|
|
642
|
+
...rangeCalendarState,
|
|
643
|
+
setValue: (value) => {
|
|
644
|
+
if (!value || granularity === "day") {
|
|
645
|
+
rangeCalendarState.setValue(value);
|
|
646
|
+
return;
|
|
647
|
+
}
|
|
648
|
+
setValue({
|
|
649
|
+
start: toZoned(toCalendarDateTime(value.start), timezoneName),
|
|
650
|
+
end: toZoned(hasTimeComponent(value.end) ? toCalendarDateTime(value.end) : presetEnd(toCalendarDateTime(value.end)), timezoneName)
|
|
651
|
+
});
|
|
652
|
+
},
|
|
653
|
+
selectDate: (date) => {
|
|
654
|
+
if (onSelectDate) {
|
|
655
|
+
onSelectDate(date);
|
|
656
|
+
rangeCalendarState.setAnchorDate(null);
|
|
657
|
+
} else rangeCalendarState.selectDate(date);
|
|
658
|
+
}
|
|
659
|
+
};
|
|
660
|
+
const commitRef = useRef(state.setValue);
|
|
661
|
+
useEffect(() => {
|
|
662
|
+
commitRef.current = state.setValue;
|
|
663
|
+
});
|
|
664
|
+
const commitRange = useCallback((value) => commitRef.current(value), []);
|
|
578
665
|
const ref = useRef();
|
|
579
|
-
const {
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
focused: props.focused,
|
|
585
|
-
disabled: props.disabled,
|
|
586
|
-
"aria-label": props["aria-label"],
|
|
587
|
-
$size: props.size ?? "md",
|
|
588
|
-
$inputPosition: props.inputPosition,
|
|
589
|
-
$hasTimeZone: state.segments.some((segment) => segment.type === "timeZoneName"),
|
|
590
|
-
hasError: props.hasError,
|
|
591
|
-
children: state.segments.map((segment, i) => /* @__PURE__ */ jsx(DateSegment, {
|
|
592
|
-
segment,
|
|
593
|
-
state
|
|
594
|
-
}, i))
|
|
666
|
+
const { calendarProps, prevButtonProps, nextButtonProps } = useRangeCalendar(props, state, ref);
|
|
667
|
+
const monthDateFormatter = useDateFormatter({
|
|
668
|
+
month: "long",
|
|
669
|
+
year: "numeric",
|
|
670
|
+
timeZone: timezoneName
|
|
595
671
|
});
|
|
596
|
-
|
|
672
|
+
const monthHeaders = range(0, visibleMonths).map((i) => {
|
|
673
|
+
return /* @__PURE__ */ jsxs(CalendarHeaderMonth, { children: [
|
|
674
|
+
i === 0 && /* @__PURE__ */ jsx(PrevButton, {
|
|
675
|
+
...prevButtonProps,
|
|
676
|
+
children: /* @__PURE__ */ jsx(ArrowLeftIcon, {})
|
|
677
|
+
}),
|
|
678
|
+
/* @__PURE__ */ jsx(RangeCalendarHeading, {
|
|
679
|
+
"aria-hidden": true,
|
|
680
|
+
children: monthDateFormatter.format(state.visibleRange.start.add({ months: i }).toDate(timezoneName))
|
|
681
|
+
}),
|
|
682
|
+
i === visibleMonths - 1 && /* @__PURE__ */ jsx(NextButton, {
|
|
683
|
+
...nextButtonProps,
|
|
684
|
+
children: /* @__PURE__ */ jsx(ArrowRightIcon, {})
|
|
685
|
+
})
|
|
686
|
+
] }, `calendar-month-${i}`);
|
|
687
|
+
});
|
|
688
|
+
const monthGrids = range(0, visibleMonths).map((i) => {
|
|
689
|
+
return /* @__PURE__ */ jsx(CalendarGrid, {
|
|
690
|
+
state,
|
|
691
|
+
offset: { months: i },
|
|
692
|
+
skipFromTabOrder: i > 0
|
|
693
|
+
}, `calendar-grid-${i}`);
|
|
694
|
+
});
|
|
695
|
+
return /* @__PURE__ */ jsxs(RangeCalendarContainer, {
|
|
696
|
+
ref: calendarRef,
|
|
697
|
+
children: [!hidePresets && /* @__PURE__ */ jsx(PresetsContainer, {
|
|
698
|
+
padding: Spacing[3],
|
|
699
|
+
children: /* @__PURE__ */ jsx(RangeCalendarPresets_default, {
|
|
700
|
+
state,
|
|
701
|
+
commitRange,
|
|
702
|
+
setDateMode,
|
|
703
|
+
onPresetSelect,
|
|
704
|
+
selectedPreset
|
|
705
|
+
})
|
|
706
|
+
}), /* @__PURE__ */ jsx(Card_default.Body, {
|
|
707
|
+
padding: Spacing[3],
|
|
708
|
+
children: /* @__PURE__ */ jsxs(CalendarContainer, {
|
|
709
|
+
...calendarProps,
|
|
710
|
+
ref,
|
|
711
|
+
children: [/* @__PURE__ */ jsxs(RangeCalendarHeader, { children: [/* @__PURE__ */ jsx(VisuallyHidden, {
|
|
712
|
+
isFocusable: false,
|
|
713
|
+
children: calendarProps["aria-label"]
|
|
714
|
+
}), monthHeaders] }), /* @__PURE__ */ jsx(CalendarGrids, { children: monthGrids })]
|
|
715
|
+
})
|
|
716
|
+
})]
|
|
717
|
+
});
|
|
718
|
+
};
|
|
597
719
|
//#endregion
|
|
598
720
|
//#region src/components/DatePicker/DateRangePicker.tsx
|
|
599
721
|
const DateRangeContainer = styled.div`
|
|
@@ -632,7 +754,7 @@ const CustomFormLabel = styled(FormLabel)`
|
|
|
632
754
|
margin-bottom: ${Spacing[2]};
|
|
633
755
|
${Typography.TextMediumBold};
|
|
634
756
|
`;
|
|
635
|
-
const OpenButton
|
|
757
|
+
const OpenButton = ({ onOpen, disabled }) => {
|
|
636
758
|
const openCalBtnRef = useRef(null);
|
|
637
759
|
const { buttonProps } = useButton({
|
|
638
760
|
isDisabled: disabled,
|
|
@@ -851,7 +973,7 @@ const DateRangePicker = ({ granularity = "day", hideTimeZone = true, className,
|
|
|
851
973
|
"aria-label": "Clear date range",
|
|
852
974
|
children: /* @__PURE__ */ jsx(CircleXInverseIcon, {})
|
|
853
975
|
}),
|
|
854
|
-
/* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(OpenButton
|
|
976
|
+
/* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(OpenButton, {
|
|
855
977
|
onOpen: openCalendarWithFocus,
|
|
856
978
|
disabled: props.disabled
|
|
857
979
|
}) })
|
|
@@ -946,128 +1068,6 @@ const DateRangePicker = ({ granularity = "day", hideTimeZone = true, className,
|
|
|
946
1068
|
});
|
|
947
1069
|
};
|
|
948
1070
|
//#endregion
|
|
949
|
-
|
|
950
|
-
const Calendar = (props) => {
|
|
951
|
-
const { locale } = useLocale();
|
|
952
|
-
const state = useCalendarState({
|
|
953
|
-
...props,
|
|
954
|
-
locale,
|
|
955
|
-
createCalendar
|
|
956
|
-
});
|
|
957
|
-
const { calendarProps, prevButtonProps, nextButtonProps, title } = useCalendar(props, state);
|
|
958
|
-
return /* @__PURE__ */ jsxs(CalendarContainer, {
|
|
959
|
-
...calendarProps,
|
|
960
|
-
ref: props.calendarRef,
|
|
961
|
-
children: [/* @__PURE__ */ jsxs(CalendarHeader, { children: [
|
|
962
|
-
/* @__PURE__ */ jsx(CalendarButton, {
|
|
963
|
-
...prevButtonProps,
|
|
964
|
-
children: /* @__PURE__ */ jsx(ArrowLeftIcon, {})
|
|
965
|
-
}),
|
|
966
|
-
/* @__PURE__ */ jsx(CalendarHeading, { children: title }),
|
|
967
|
-
/* @__PURE__ */ jsx(CalendarButton, {
|
|
968
|
-
...nextButtonProps,
|
|
969
|
-
children: /* @__PURE__ */ jsx(ArrowRightIcon, {})
|
|
970
|
-
})
|
|
971
|
-
] }), /* @__PURE__ */ jsx(CalendarGrid, { state })]
|
|
972
|
-
});
|
|
973
|
-
};
|
|
974
|
-
//#endregion
|
|
975
|
-
//#region src/components/DatePicker/DatePicker.tsx
|
|
976
|
-
const OpenButton = ({ calendarRef }) => {
|
|
977
|
-
const openCalBtnRef = useRef(null);
|
|
978
|
-
const { buttonProps } = useButton({ onPress: () => {
|
|
979
|
-
if (calendarRef.current) calendarRef.current.querySelector("button[aria-label=\"Previous\"]").focus();
|
|
980
|
-
} }, openCalBtnRef);
|
|
981
|
-
return /* @__PURE__ */ jsx("button", {
|
|
982
|
-
...buttonProps,
|
|
983
|
-
ref: openCalBtnRef,
|
|
984
|
-
"aria-label": "Open calendar"
|
|
985
|
-
});
|
|
986
|
-
};
|
|
987
|
-
const DatePicker = (props) => {
|
|
988
|
-
const state = useDatePickerState(props);
|
|
989
|
-
const ref = useRef(null);
|
|
990
|
-
const fieldRef = useRef(null);
|
|
991
|
-
const { groupProps, fieldProps, calendarProps } = useDatePicker(props, state, ref);
|
|
992
|
-
const calendarRef = useRef(null);
|
|
993
|
-
const isClosingRef = useRef(false);
|
|
994
|
-
const { focusWithinProps } = useFocusWithin({
|
|
995
|
-
onFocusWithin: () => {
|
|
996
|
-
if (!state.isOpen && !isClosingRef.current) state.setOpen(true);
|
|
997
|
-
},
|
|
998
|
-
onBlurWithin: (e) => {
|
|
999
|
-
if (e.relatedTarget && !calendarRef?.current?.contains(e.relatedTarget) && state.isOpen) state.setOpen(false);
|
|
1000
|
-
}
|
|
1001
|
-
});
|
|
1002
|
-
const handleOutsideClick = (e) => {
|
|
1003
|
-
const target = e.target;
|
|
1004
|
-
if (ref.current?.contains(target)) return;
|
|
1005
|
-
if (state.isOpen) state.setOpen(false);
|
|
1006
|
-
};
|
|
1007
|
-
const handleKeyDown = useCallback((event) => {
|
|
1008
|
-
if (event.key === "Enter" && !state.isOpen) {
|
|
1009
|
-
event.preventDefault();
|
|
1010
|
-
state.setOpen(true);
|
|
1011
|
-
}
|
|
1012
|
-
}, [state]);
|
|
1013
|
-
return /* @__PURE__ */ jsx("div", {
|
|
1014
|
-
style: {
|
|
1015
|
-
display: "flex",
|
|
1016
|
-
flexDirection: "column"
|
|
1017
|
-
},
|
|
1018
|
-
children: /* @__PURE__ */ jsxs(Popover_default, {
|
|
1019
|
-
open: state.isOpen,
|
|
1020
|
-
modal: false,
|
|
1021
|
-
contentProps: {
|
|
1022
|
-
style: { zIndex: props.useModalZIndex ? Z_INDICES.modalDropdown : Z_INDICES.dropdown },
|
|
1023
|
-
align: "start",
|
|
1024
|
-
"aria-modal": true,
|
|
1025
|
-
onInteractOutside: handleOutsideClick,
|
|
1026
|
-
onEscapeKeyDown: () => {
|
|
1027
|
-
state.setOpen(false);
|
|
1028
|
-
},
|
|
1029
|
-
onCloseAutoFocus: (e) => {
|
|
1030
|
-
e.preventDefault();
|
|
1031
|
-
isClosingRef.current = true;
|
|
1032
|
-
if (fieldRef.current) {
|
|
1033
|
-
const firstEditableSegment = fieldRef.current.querySelector("[tabindex=\"0\"]");
|
|
1034
|
-
if (firstEditableSegment instanceof HTMLElement) firstEditableSegment.focus();
|
|
1035
|
-
}
|
|
1036
|
-
requestAnimationFrame(() => {
|
|
1037
|
-
isClosingRef.current = false;
|
|
1038
|
-
});
|
|
1039
|
-
},
|
|
1040
|
-
noPadding: true
|
|
1041
|
-
},
|
|
1042
|
-
children: [/* @__PURE__ */ jsx(Popover_default.Trigger, {
|
|
1043
|
-
asChild: true,
|
|
1044
|
-
children: /* @__PURE__ */ jsxs("div", {
|
|
1045
|
-
...mergeProps(groupProps, focusWithinProps),
|
|
1046
|
-
ref,
|
|
1047
|
-
style: {
|
|
1048
|
-
display: "flex",
|
|
1049
|
-
position: "relative"
|
|
1050
|
-
},
|
|
1051
|
-
children: [/* @__PURE__ */ jsx(DateField, {
|
|
1052
|
-
ref: fieldRef,
|
|
1053
|
-
id: props.id,
|
|
1054
|
-
dateFieldProps: props.dateFieldProps,
|
|
1055
|
-
disabled: props.disabled,
|
|
1056
|
-
size: props.size,
|
|
1057
|
-
...mergeProps(fieldProps, { onKeyDown: handleKeyDown }),
|
|
1058
|
-
value: fieldProps.value ?? void 0
|
|
1059
|
-
}), /* @__PURE__ */ jsx(VisuallyHidden, { children: /* @__PURE__ */ jsx(OpenButton, { calendarRef }) })]
|
|
1060
|
-
})
|
|
1061
|
-
}), /* @__PURE__ */ jsx(Calendar, {
|
|
1062
|
-
...calendarProps,
|
|
1063
|
-
autoFocus: void 0,
|
|
1064
|
-
calendarRef,
|
|
1065
|
-
id: "calendar-popover"
|
|
1066
|
-
})]
|
|
1067
|
-
})
|
|
1068
|
-
});
|
|
1069
|
-
};
|
|
1070
|
-
//#endregion
|
|
1071
|
-
export { RangeCalendar as a, DateField as i, Calendar as n, DateRangePicker as r, DatePicker as t };
|
|
1071
|
+
export { Calendar as a, DateField as i, RangeCalendar as n, DatePicker as r, DateRangePicker as t };
|
|
1072
1072
|
|
|
1073
|
-
//# sourceMappingURL=DatePicker-
|
|
1073
|
+
//# sourceMappingURL=DatePicker-BK7ioKBm.mjs.map
|