@servicetitan/anvil2 3.12.2 → 3.13.1
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 +30 -0
- package/dist/{AiMark-Bf0x9FF3.js → AiMark-DkHvwBwf.js} +6 -5
- package/dist/{AiMark-Bf0x9FF3.js.map → AiMark-DkHvwBwf.js.map} +1 -1
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-S4D2DGx7.js → Alert-C7Y5DG99.js} +4 -4
- package/dist/{Alert-S4D2DGx7.js.map → Alert-C7Y5DG99.js.map} +1 -1
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-CGglhMfd.js → Announcement-CGTv6M31.js} +6 -5
- package/dist/Announcement-CGTv6M31.js.map +1 -0
- package/dist/Announcement.js +1 -1
- package/dist/{AnvilProvider-Deh-Vgep.js → AnvilProvider-CgYBk3YP.js} +2 -2
- package/dist/{AnvilProvider-Deh-Vgep.js.map → AnvilProvider-CgYBk3YP.js.map} +1 -1
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-lLiNUrxq.js → Avatar-D31JDNrs.js} +2 -2
- package/dist/{Avatar-lLiNUrxq.js.map → Avatar-D31JDNrs.js.map} +1 -1
- package/dist/{Avatar-ioIwH1KT.js → Avatar-DXI-w1Vi.js} +2 -2
- package/dist/{Avatar-ioIwH1KT.js.map → Avatar-DXI-w1Vi.js.map} +1 -1
- package/dist/Avatar.js +2 -2
- package/dist/{Breadcrumbs-CR1od1rZ.js → Breadcrumbs-d1lHjb_U.js} +2 -2
- package/dist/{Breadcrumbs-CR1od1rZ.js.map → Breadcrumbs-d1lHjb_U.js.map} +1 -1
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Calendar-DZnnO3m_.js → Calendar-DCyfWmSV.js} +2 -2
- package/dist/{Calendar-DZnnO3m_.js.map → Calendar-DCyfWmSV.js.map} +1 -1
- package/dist/{Calendar-B-K7eGua.js → Calendar-Db-cjtFN.js} +2 -2
- package/dist/{Calendar-B-K7eGua.js.map → Calendar-Db-cjtFN.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-CXfrIo6I.js → Checkbox-BP2sw3SJ.js} +5 -5
- package/dist/{Checkbox-CXfrIo6I.js.map → Checkbox-BP2sw3SJ.js.map} +1 -1
- package/dist/{Checkbox-D5-HJC6_.js → Checkbox-CHVDkrNO.js} +2 -2
- package/dist/{Checkbox-D5-HJC6_.js.map → Checkbox-CHVDkrNO.js.map} +1 -1
- package/dist/Checkbox.js +1 -1
- package/dist/{Chip-DLK31FkK.js → Chip-B3pbD3hQ.js} +4 -4
- package/dist/{Chip-DLK31FkK.js.map → Chip-B3pbD3hQ.js.map} +1 -1
- package/dist/Chip.js +1 -1
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-CjvD9TbJ.js → DataTable-Cl_sbvzn.js} +52 -51
- package/dist/DataTable-Cl_sbvzn.js.map +1 -0
- package/dist/DataTable.css +96 -115
- package/dist/{DateFieldRange-8JO-rJm-.js → DateFieldRange-DCHAzabV.js} +4 -4
- package/dist/{DateFieldRange-8JO-rJm-.js.map → DateFieldRange-DCHAzabV.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-CrTMTL9v.js → DateFieldSingle-TGaSOGki.js} +4 -4
- package/dist/{DateFieldSingle-CrTMTL9v.js.map → DateFieldSingle-TGaSOGki.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-Bo1V-4K2.js → DateFieldYearless-eKv8F4KX.js} +5 -5
- package/dist/{DateFieldYearless-Bo1V-4K2.js.map → DateFieldYearless-eKv8F4KX.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-rj36AQhR.js → DateFieldYearlessRange-Cl2pWyFn.js} +4 -4
- package/dist/{DateFieldYearlessRange-rj36AQhR.js.map → DateFieldYearlessRange-Cl2pWyFn.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-B39FZ-TR.js → DaysOfTheWeek-Dbgb0RsL.js} +4 -4
- package/dist/{DaysOfTheWeek-B39FZ-TR.js.map → DaysOfTheWeek-Dbgb0RsL.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-PcuDCqK7.js → Dialog-Clg6Kd96.js} +4 -4
- package/dist/{Dialog-PcuDCqK7.js.map → Dialog-Clg6Kd96.js.map} +1 -1
- package/dist/Dialog.js +1 -1
- package/dist/{Drawer-C73Ka9ra.js → Drawer-Mnne1lfM.js} +5 -5
- package/dist/{Drawer-C73Ka9ra.js.map → Drawer-Mnne1lfM.js.map} +1 -1
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.js +1 -1
- package/dist/{EditCard-CtWVEAsA.js → EditCard-NAN7IqhO.js} +2 -2
- package/dist/{EditCard-CtWVEAsA.js.map → EditCard-NAN7IqhO.js.map} +1 -1
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-BFJdJP_W.js → FieldLabel-DpYGFXmG.js} +3 -3
- package/dist/{FieldLabel-BFJdJP_W.js.map → FieldLabel-DpYGFXmG.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{FieldMessage-mTGdycSA.js → FieldMessage-8c9yA_kw.js} +4 -4
- package/dist/{FieldMessage-mTGdycSA.js.map → FieldMessage-8c9yA_kw.js.map} +1 -1
- package/dist/FieldMessage.js +1 -1
- package/dist/{FilterBar-D2NDYqTs.js → FilterBar-Dhl_hi_5.js} +5 -5
- package/dist/{FilterBar-D2NDYqTs.js.map → FilterBar-Dhl_hi_5.js.map} +1 -1
- package/dist/FilterBar.js +1 -1
- package/dist/{Helper-Bq6Npkgh.js → Helper-BHpOgh7k.js} +2 -2
- package/dist/{Helper-Bq6Npkgh.js.map → Helper-BHpOgh7k.js.map} +1 -1
- package/dist/{InputMask-DJTXKPmK.js → InputMask-DkT6npDV.js} +3 -3
- package/dist/{InputMask-DJTXKPmK.js.map → InputMask-DkT6npDV.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-CPDHEpD-.js → ListView-DeA9TBIT.js} +2 -2
- package/dist/{ListView-CPDHEpD-.js.map → ListView-DeA9TBIT.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Listbox-Of-WaRWI.js → Listbox-qjgO_Hoo.js} +2 -2
- package/dist/{Listbox-Of-WaRWI.js.map → Listbox-qjgO_Hoo.js.map} +1 -1
- package/dist/Listbox.js +1 -1
- package/dist/{Menu-BMn1CSr1.js → Menu-CM0EndhK.js} +22 -11
- package/dist/Menu-CM0EndhK.js.map +1 -0
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-CFw607cm.js → MultiSelectFieldSync-D_09Osn3.js} +58 -34
- package/dist/MultiSelectFieldSync-D_09Osn3.js.map +1 -0
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-C6afc80f.js → MultiSelectMenuSync-DkXlWa6p.js} +6 -5
- package/dist/{MultiSelectMenuSync-C6afc80f.js.map → MultiSelectMenuSync-DkXlWa6p.js.map} +1 -1
- package/dist/{NumberField-ASyiQu5l.js → NumberField-BWRgy-Xq.js} +4 -4
- package/dist/{NumberField-ASyiQu5l.js.map → NumberField-BWRgy-Xq.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-B5yLLq76.js → Page-B-Wjr7sP.js} +272 -112
- package/dist/Page-B-Wjr7sP.js.map +1 -0
- package/dist/Page.css +117 -74
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BcW9WJ2b.js → Pagination-DRIKAkuE.js} +3 -3
- package/dist/{Pagination-BcW9WJ2b.js.map → Pagination-DRIKAkuE.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CjsE5FG0.js → Popover-CVroO0T0.js} +5 -5
- package/dist/Popover-CVroO0T0.js.map +1 -0
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-C_HXy_Hx.js → ProgressBar-Cc6JQ2EH.js} +4 -5
- package/dist/{ProgressBar-C_HXy_Hx.js.map → ProgressBar-Cc6JQ2EH.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-B5KxT85j.js → Radio-BWEUnuHt.js} +5 -5
- package/dist/{Radio-B5KxT85j.js.map → Radio-BWEUnuHt.js.map} +1 -1
- package/dist/{Radio-CBQpuxLP.js → Radio-CxPskh2k.js} +2 -2
- package/dist/{Radio-CBQpuxLP.js.map → Radio-CxPskh2k.js.map} +1 -1
- package/dist/Radio.js +1 -1
- package/dist/{RichTextEditor-C8V3BajN.js → RichTextEditor-B_8D0VD3.js} +10 -10
- package/dist/{RichTextEditor-C8V3BajN.js.map → RichTextEditor-B_8D0VD3.js.map} +1 -1
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-ClghkFdA.js → SavedFiltersButton-vZ38Mty8.js} +9 -9
- package/dist/{SavedFiltersButton-ClghkFdA.js.map → SavedFiltersButton-vZ38Mty8.js.map} +1 -1
- package/dist/SavedFiltersButton.js +1 -1
- package/dist/{SelectCard-DbWOdnuI.js → SelectCard-CLQ8X_Xv.js} +3 -3
- package/dist/{SelectCard-DbWOdnuI.js.map → SelectCard-CLQ8X_Xv.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-CujwhWLB.js → SelectFieldLabel-LzRCSbOL.js} +2 -2
- package/dist/{SelectFieldLabel-CujwhWLB.js.map → SelectFieldLabel-LzRCSbOL.js.map} +1 -1
- package/dist/{SelectFieldSync-BdYCHwPd.js → SelectFieldSync-klbql5_5.js} +6 -6
- package/dist/{SelectFieldSync-BdYCHwPd.js.map → SelectFieldSync-klbql5_5.js.map} +1 -1
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DlqmXr04.js → SelectMenuSync-Bn_ksCG5.js} +4 -4
- package/dist/{SelectMenuSync-DlqmXr04.js.map → SelectMenuSync-Bn_ksCG5.js.map} +1 -1
- package/dist/{SelectOptions-Cz4mU7WG.js → SelectOptions-BjwYqKH3.js} +2 -2
- package/dist/{SelectOptions-Cz4mU7WG.js.map → SelectOptions-BjwYqKH3.js.map} +1 -1
- package/dist/{SelectTrigger-QkI2I04A.js → SelectTrigger-BO9QQqxo.js} +3 -3
- package/dist/{SelectTrigger-QkI2I04A.js.map → SelectTrigger-BO9QQqxo.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-C5C6JmDF.js → SelectTriggerBase-CeEaDrSV.js} +4 -4
- package/dist/{SelectTriggerBase-C5C6JmDF.js.map → SelectTriggerBase-CeEaDrSV.js.map} +1 -1
- package/dist/{StatusIcon-BwULopyH.js → StatusIcon-BqorkNJf.js} +13 -9
- package/dist/{StatusIcon-BwULopyH.js.map → StatusIcon-BqorkNJf.js.map} +1 -1
- package/dist/StatusIcon.css +16 -10
- package/dist/{Switch-MfbL3JVk.js → Switch-CZjpzkol.js} +3 -3
- package/dist/{Switch-MfbL3JVk.js.map → Switch-CZjpzkol.js.map} +1 -1
- package/dist/Switch.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-CEJHoh0p.js → Text-DdNE3hPR.js} +2 -2
- package/dist/{Text-CEJHoh0p.js.map → Text-DdNE3hPR.js.map} +1 -1
- package/dist/Text.js +1 -1
- package/dist/{TextField-DWbDQfHY.js → TextField-DQ0i2nlz.js} +2 -2
- package/dist/{TextField-DWbDQfHY.js.map → TextField-DQ0i2nlz.js.map} +1 -1
- package/dist/{TextField-DTbZOxwI.js → TextField-DkM8v9DE.js} +4 -4
- package/dist/{TextField-DTbZOxwI.js.map → TextField-DkM8v9DE.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-CSXwaDf6.js → Textarea-Cg5saqcU.js} +4 -4
- package/dist/{Textarea-CSXwaDf6.js.map → Textarea-Cg5saqcU.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-BlEOL-sk.js → ThemeProvider-D4dbBfHd.js} +33 -24
- package/dist/ThemeProvider-D4dbBfHd.js.map +1 -0
- package/dist/ThemeProvider.js +1 -1
- package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
- package/dist/{TimeField-BZQP8KSf.js → TimeField-DVYSA-Az.js} +4 -4
- package/dist/{TimeField-BZQP8KSf.js.map → TimeField-DVYSA-Az.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-C2z5rCrc.js → Toaster-BiPZIPzH.js} +59 -31
- package/dist/Toaster-BiPZIPzH.js.map +1 -0
- package/dist/{Toaster-B1xZq1bs.js → Toaster-D1a3ysMN.js} +41 -30
- package/dist/Toaster-D1a3ysMN.js.map +1 -0
- package/dist/{Toolbar-BDjgSnCU.js → Toolbar-DYu1UIoW.js} +5 -5
- package/dist/{Toolbar-BDjgSnCU.js.map → Toolbar-DYu1UIoW.js.map} +1 -1
- package/dist/{Toolbar-neulke7h.js → Toolbar-Dw_xAGRP.js} +4 -4
- package/dist/{Toolbar-neulke7h.js.map → Toolbar-Dw_xAGRP.js.map} +1 -1
- package/dist/Toolbar.js +2 -2
- package/dist/{ToolbarButtonToggle-C_Dq_qyS.js → ToolbarButtonToggle-0A61CKru.js} +2 -2
- package/dist/{ToolbarButtonToggle-C_Dq_qyS.js.map → ToolbarButtonToggle-0A61CKru.js.map} +1 -1
- package/dist/{Tooltip-CzrJgl98.js → Tooltip-hen6P8WV.js} +5 -5
- package/dist/Tooltip-hen6P8WV.js.map +1 -0
- package/dist/Tooltip.js +1 -1
- package/dist/TreeSelectField.js +1 -1
- package/dist/{TreeSelectFieldSync-D7ntJmDF.js → TreeSelectFieldSync-IFAs-lci.js} +6 -6
- package/dist/{TreeSelectFieldSync-D7ntJmDF.js.map → TreeSelectFieldSync-IFAs-lci.js.map} +1 -1
- package/dist/TreeSelectMenu.js +1 -1
- package/dist/{TreeSelectMenuSync-CTm2n1vJ.js → TreeSelectMenuSync-BATdOysJ.js} +5 -4
- package/dist/{TreeSelectMenuSync-CTm2n1vJ.js.map → TreeSelectMenuSync-BATdOysJ.js.map} +1 -1
- package/dist/{TypeaheadTextField-CEWM_N-N.js → TypeaheadTextField-BVtaGlCX.js} +3 -3
- package/dist/{TypeaheadTextField-CEWM_N-N.js.map → TypeaheadTextField-BVtaGlCX.js.map} +1 -1
- package/dist/TypeaheadTextField.js +1 -1
- package/dist/{YearlessDateInputWithPicker-D6N_mYDe.js → YearlessDateInputWithPicker-Cs2IQ0ma.js} +2 -2
- package/dist/{YearlessDateInputWithPicker-D6N_mYDe.js.map → YearlessDateInputWithPicker-Cs2IQ0ma.js.map} +1 -1
- package/dist/arrayIdsEqual-DnevhwqN.js +13 -0
- package/dist/arrayIdsEqual-DnevhwqN.js.map +1 -0
- package/dist/beta.js +17 -16
- package/dist/beta.js.map +1 -1
- package/dist/{bulkActionTypes-jKqcdwuO.js → bulkActionTypes-B683cPWf.js} +2 -2
- package/dist/{bulkActionTypes-jKqcdwuO.js.map → bulkActionTypes-B683cPWf.js.map} +1 -1
- package/dist/check_circle-C3DDoVXp.js +8 -0
- package/dist/check_circle-C3DDoVXp.js.map +1 -0
- package/dist/{confirmationTypes-CG7xl50f.js → confirmationTypes-DeRtO_Cw.js} +2 -13
- package/dist/confirmationTypes-DeRtO_Cw.js.map +1 -0
- package/dist/{filter-state-TEgOgQVy.js → filter-state-ClXbmO_I.js} +20 -20
- package/dist/{filter-state-TEgOgQVy.js.map → filter-state-ClXbmO_I.js.map} +1 -1
- package/dist/{index-BY2uMI6I.js → index-tWkeAVJW.js} +2 -2
- package/dist/{index-BY2uMI6I.js.map → index-tWkeAVJW.js.map} +1 -1
- package/dist/index.js +916 -58
- package/dist/index.js.map +1 -1
- package/dist/index2.css +407 -0
- package/dist/portalScopeClassNames--sU7fdKW.js +16 -0
- package/dist/portalScopeClassNames--sU7fdKW.js.map +1 -0
- package/dist/settings-Bsahaln8.js +10 -0
- package/dist/settings-Bsahaln8.js.map +1 -0
- package/dist/src/beta/components/Page/Page.d.ts +232 -0
- package/dist/src/beta/components/Page/Page.figma.d.ts +1 -0
- package/dist/src/beta/components/Page/PageContent.d.ts +24 -0
- package/dist/src/beta/components/Page/PageContext.d.ts +6 -0
- package/dist/src/beta/components/Page/PageFooter.d.ts +25 -0
- package/dist/src/beta/components/Page/PageHeader.d.ts +157 -0
- package/dist/src/beta/components/Page/PagePanel.d.ts +145 -0
- package/dist/src/beta/components/Page/PagePanelContent.d.ts +46 -0
- package/dist/src/beta/components/Page/PagePanelFooter.d.ts +34 -0
- package/dist/src/beta/components/Page/PagePanelHeader.d.ts +21 -0
- package/dist/src/beta/components/Page/PageSidebar.d.ts +57 -0
- package/dist/src/beta/components/Page/PageSidebarContext.d.ts +5 -0
- package/dist/src/beta/components/Page/PageSidebarHeader.d.ts +23 -0
- package/dist/src/beta/components/Page/index.d.ts +11 -0
- package/dist/src/beta/components/Page/internal/PagePanelContext.d.ts +11 -0
- package/dist/src/beta/components/Page/pageBreakpoint.d.ts +26 -0
- package/dist/src/beta/components/index.d.ts +1 -0
- package/dist/src/components/Page/Page.d.ts +8 -2
- package/dist/src/components/Page/PageHeader.d.ts +15 -2
- package/dist/src/components/Toast/Toaster.d.ts +5 -4
- package/dist/src/components/Toast/internal/Toaster.d.ts +21 -0
- package/dist/src/internal/components/StatusIcon/StatusIcon.d.ts +1 -1
- package/dist/src/internal/functions/portalScopeClassNames.d.ts +15 -0
- package/dist/src/internal/hooks/useCommitSelectionIfChanged.d.ts +20 -0
- package/dist/src/providers/ThemeProvider/internal/ThemeProviderContext.d.ts +8 -0
- package/dist/src/providers/ThemeProvider/themeToCssVars.d.ts +16 -0
- package/dist/{stripInlineMarkdown-BGdIj-cj.js → stripInlineMarkdown-Dz6vTyS_.js} +2 -2
- package/dist/{stripInlineMarkdown-BGdIj-cj.js.map → stripInlineMarkdown-Dz6vTyS_.js.map} +1 -1
- package/dist/{syncFilterUtils-9Pqeq8J4.js → syncFilterUtils-BbK2BCsr.js} +3 -3
- package/dist/{syncFilterUtils-9Pqeq8J4.js.map → syncFilterUtils-BbK2BCsr.js.map} +1 -1
- package/dist/{treeSync-tEqZxxHQ.js → treeSync-De2jGdy-.js} +3 -3
- package/dist/{treeSync-tEqZxxHQ.js.map → treeSync-De2jGdy-.js.map} +1 -1
- package/dist/{useDrilldown-D5iDWSx7.js → useDrilldown-BDKQkqA_.js} +3 -3
- package/dist/{useDrilldown-D5iDWSx7.js.map → useDrilldown-BDKQkqA_.js.map} +1 -1
- package/dist/{useInfiniteCombobox-DRd_Fp1w.js → useInfiniteCombobox-D7saAttF.js} +5 -5
- package/dist/{useInfiniteCombobox-DRd_Fp1w.js.map → useInfiniteCombobox-D7saAttF.js.map} +1 -1
- package/dist/{useInitialFocus-BUxEDMEG.js → useInitialFocus-BIvXK1Rp.js} +2 -2
- package/dist/{useInitialFocus-BUxEDMEG.js.map → useInitialFocus-BIvXK1Rp.js.map} +1 -1
- package/dist/{useInvalidateOnOptionsChange-CC_6sRp9.js → useInvalidateOnOptionsChange-DcYuWdMC.js} +8 -6
- package/dist/useInvalidateOnOptionsChange-DcYuWdMC.js.map +1 -0
- package/dist/{usePopoverTransitionStates-CDXCdyKa.js → usePopoverTransitionStates-B1opfxxn.js} +1 -2
- package/dist/{usePopoverTransitionStates-CDXCdyKa.js.map → usePopoverTransitionStates-B1opfxxn.js.map} +1 -1
- package/dist/usePrefersColorScheme-CwOF0TjZ.js +31 -0
- package/dist/usePrefersColorScheme-CwOF0TjZ.js.map +1 -0
- package/dist/usePrefersColorScheme.js +1 -1
- package/package.json +4 -4
- package/dist/Announcement-CGglhMfd.js.map +0 -1
- package/dist/DataTable-CjvD9TbJ.js.map +0 -1
- package/dist/Menu-BMn1CSr1.js.map +0 -1
- package/dist/MultiSelectFieldSync-CFw607cm.js.map +0 -1
- package/dist/Page-B5yLLq76.js.map +0 -1
- package/dist/Popover-CjsE5FG0.js.map +0 -1
- package/dist/ThemeProvider-BlEOL-sk.js.map +0 -1
- package/dist/Toaster-B1xZq1bs.js.map +0 -1
- package/dist/Toaster-C2z5rCrc.js.map +0 -1
- package/dist/Tooltip-CzrJgl98.js.map +0 -1
- package/dist/check_circle-CM0ukqXv.js +0 -6
- package/dist/check_circle-CM0ukqXv.js.map +0 -1
- package/dist/confirmationTypes-CG7xl50f.js.map +0 -1
- package/dist/error-DR_wWdYY.js +0 -6
- package/dist/error-DR_wWdYY.js.map +0 -1
- package/dist/portalScopeClassNames-BTyv0FY8.js +0 -7
- package/dist/portalScopeClassNames-BTyv0FY8.js.map +0 -1
- package/dist/useInvalidateOnOptionsChange-CC_6sRp9.js.map +0 -1
- package/dist/usePrefersColorScheme-_hT7dK7_.js +0 -31
- package/dist/usePrefersColorScheme-_hT7dK7_.js.map +0 -1
- package/dist/warning-c4Wj1rI4.js +0 -6
- package/dist/warning-c4Wj1rI4.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NumberField-ASyiQu5l.js","sources":["../../hammer-icon/mdi/round/remove.svg","../src/components/NumberField/NumberField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgRemove = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\" }));\nexport default SvgRemove;\n","import {\n type ReactElement,\n forwardRef,\n isValidElement,\n type ComponentPropsWithoutRef,\n useId,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { Spinner } from \"../Spinner\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport numberFieldStyles from \"./NumberField.module.scss\";\nimport { Helper, type HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport type { LayoutUtilProps, Size, DataTrackingId } from \"../../types\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport IconAdd from \"@servicetitan/hammer-icon/mdi/round/add.svg\";\nimport IconRemove from \"@servicetitan/hammer-icon/mdi/round/remove.svg\";\nimport {\n useFocusWithin,\n useLayoutPropsUtil,\n useNumberField,\n} from \"../../internal/hooks\";\nimport {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../internal/functions\";\nimport { FieldLabel } from \"../FieldLabel\";\nimport type { FieldLabelProps } from \"../../internal/types\";\n\n/**\n * Props for the NumberField component.\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"prefix\" | \"type\" | \"inputMode\" | \"value\" | \"defaultValue\" | \"onFocus\" | \"onBlur\" | \"onChange\">\n * @extends LayoutUtilProps\n * @extends FieldLabelProps\n * @extends DataTrackingId\n */\nexport type NumberFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n | \"size\"\n | \"prefix\"\n | \"type\"\n | \"inputMode\"\n | \"value\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n | \"onChange\"\n> &\n LayoutUtilProps &\n FieldLabelProps & {\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n // TODO(v4.0.0): make label required\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n */\n label?: string;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * Requires `label` to be set — the label is always needed for accessibility.\n * @default false\n */\n hideLabel?: boolean;\n prefix?: string;\n suffix?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n hint?: HelperProps[\"hint\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n loading?: boolean;\n disabled?: boolean;\n minValue?: number;\n maxValue?: number;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n step?: number;\n value?: number | null;\n defaultValue?: number | null;\n onChange?: (value: number | null) => void;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n hideControls?: boolean;\n /**\n * When `true`, applies a subdued primary background to the field to draw attention to it.\n * @default false\n */\n isHighlighted?: boolean;\n } & DataTrackingId;\n\n/**\n * NumberField component for entering numeric values, with optional\n * increment/decrement stepper controls.\n *\n * Features:\n * - Min/max value constraints and configurable `step`\n * - Fraction-digit formatting via `minimumFractionDigits`/`maximumFractionDigits`\n * - Optional `hideControls` to hide the +/- stepper buttons\n * - Label, hint, description, error, and warning messaging\n * - Loading state with spinner, and a highlighted-field variant\n * - Optional prefix/suffix content\n *\n * @example\n * <NumberField\n * label=\"Quantity\"\n * value={quantity}\n * onChange={setQuantity}\n * minValue={0}\n * maxValue={99}\n * />\n */\nexport const NumberField = forwardRef<HTMLInputElement, NumberFieldProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n error,\n errorAriaLive: _errorAriaLive,\n defaultValue: defaultValueProp,\n value: valueProp,\n label,\n moreInfo,\n prefix,\n suffix,\n size,\n required,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n id: idProp,\n description,\n hint,\n warning,\n loading,\n disabled,\n readOnly,\n labelProps,\n style,\n placeholder,\n minValue,\n maxValue,\n maximumFractionDigits = 0,\n minimumFractionDigits = 0,\n step = 1,\n hideControls = false,\n hideLabel = false,\n isHighlighted = false,\n ...rest\n } = componentProps;\n const numberFieldRef = useRef<HTMLDivElement>(null);\n\n const { props: wrapperProps } = useFocusWithin({\n onFocus: (e) => {\n onFocusProp?.(e);\n },\n onBlur: (e) => {\n onBlurProp?.(e);\n },\n });\n\n const { inputProps, inputRef, incrementButtonProps, decrementButtonProps } =\n useNumberField({\n minValue,\n maxValue,\n maximumFractionDigits,\n minimumFractionDigits,\n step,\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n label,\n readOnly,\n });\n\n const combinedInputRef = useMergeRefs([numberFieldRef, inputRef, ref]);\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const prefixUid = useId();\n const suffixUid = useId();\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"NumberField\", error);\n\n // TODO(v4.0.0): remove once label is required\n if (label === undefined) {\n warnOnce(\n \"NumberField: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const hasHelperText = hint || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const data = {\n label: childrenToString(props.label),\n prefix: childrenToString(props.prefix),\n suffix: childrenToString(props.suffix),\n description: childrenToString(props.description),\n size: props.size,\n minValue: props.minValue,\n maxValue: props.maxValue,\n step: props.step,\n maximumFractionDigits: props.maximumFractionDigits,\n minimumFractionDigits: props.minimumFractionDigits,\n };\n\n const trackingId = useTrackingId({\n name: \"NumberField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <div\n className={cx(textFieldStyles[\"textfield\"], className)}\n data-anv=\"number-field\"\n style={styleCombined}\n {...wrapperProps}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <div\n className={cx(textFieldStyles[\"input-wrapper\"], {\n [textFieldStyles[\"small\"]]: size === \"small\",\n [textFieldStyles[\"large\"]]: size === \"large\",\n [textFieldStyles[\"highlight\"]]: isHighlighted,\n [numberFieldStyles[\"small\"]]: size === \"small\",\n [numberFieldStyles[\"large\"]]: size === \"large\",\n })}\n role=\"presentation\"\n onClick={() => numberFieldRef.current?.focus()}\n >\n {prefix ? (\n <div\n aria-hidden\n className={textFieldStyles[\"prefix\"]}\n id={`prefix${prefixUid}`}\n >\n {prefix}\n </div>\n ) : null}\n <input\n id={id}\n className={cx(textFieldStyles[\"input\"], {\n [textFieldStyles[\"error\"]]: error,\n })}\n data-tracking-id={trackingId}\n {...rest}\n {...inputProps}\n required={required}\n placeholder={placeholder}\n readOnly={readOnly}\n disabled={disabled}\n ref={combinedInputRef}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : label\n ? undefined\n : placeholder\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n />\n {loading ? (\n <div\n className={textFieldStyles[\"loading-spinner-wrapper\"]}\n data-testid=\"spinner\"\n >\n <Spinner size=\"small\" />\n </div>\n ) : null}\n {suffix ? (\n <div\n className={textFieldStyles[\"suffix\"]}\n aria-hidden\n id={`suffix${suffixUid}`}\n >\n {suffix}\n </div>\n ) : null}\n {!hideControls && !disabled && !readOnly && (\n <div className={numberFieldStyles[\"stepper-buttons\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...decrementButtonProps}\n >\n <Icon svg={IconRemove} />\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...incrementButtonProps}\n >\n <Icon svg={IconAdd} />\n </Button>\n </div>\n )}\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n },\n);\n\nNumberField.displayName = \"NumberField\";\n"],"names":["IconRemove","IconAdd"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"NumberField-BWRgy-Xq.js","sources":["../../hammer-icon/mdi/round/remove.svg","../src/components/NumberField/NumberField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgRemove = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\" }));\nexport default SvgRemove;\n","import {\n type ReactElement,\n forwardRef,\n isValidElement,\n type ComponentPropsWithoutRef,\n useId,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { Spinner } from \"../Spinner\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport numberFieldStyles from \"./NumberField.module.scss\";\nimport { Helper, type HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport type { LayoutUtilProps, Size, DataTrackingId } from \"../../types\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport IconAdd from \"@servicetitan/hammer-icon/mdi/round/add.svg\";\nimport IconRemove from \"@servicetitan/hammer-icon/mdi/round/remove.svg\";\nimport {\n useFocusWithin,\n useLayoutPropsUtil,\n useNumberField,\n} from \"../../internal/hooks\";\nimport {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../internal/functions\";\nimport { FieldLabel } from \"../FieldLabel\";\nimport type { FieldLabelProps } from \"../../internal/types\";\n\n/**\n * Props for the NumberField component.\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"prefix\" | \"type\" | \"inputMode\" | \"value\" | \"defaultValue\" | \"onFocus\" | \"onBlur\" | \"onChange\">\n * @extends LayoutUtilProps\n * @extends FieldLabelProps\n * @extends DataTrackingId\n */\nexport type NumberFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n | \"size\"\n | \"prefix\"\n | \"type\"\n | \"inputMode\"\n | \"value\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n | \"onChange\"\n> &\n LayoutUtilProps &\n FieldLabelProps & {\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n // TODO(v4.0.0): make label required\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n */\n label?: string;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * Requires `label` to be set — the label is always needed for accessibility.\n * @default false\n */\n hideLabel?: boolean;\n prefix?: string;\n suffix?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n hint?: HelperProps[\"hint\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n loading?: boolean;\n disabled?: boolean;\n minValue?: number;\n maxValue?: number;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n step?: number;\n value?: number | null;\n defaultValue?: number | null;\n onChange?: (value: number | null) => void;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n hideControls?: boolean;\n /**\n * When `true`, applies a subdued primary background to the field to draw attention to it.\n * @default false\n */\n isHighlighted?: boolean;\n } & DataTrackingId;\n\n/**\n * NumberField component for entering numeric values, with optional\n * increment/decrement stepper controls.\n *\n * Features:\n * - Min/max value constraints and configurable `step`\n * - Fraction-digit formatting via `minimumFractionDigits`/`maximumFractionDigits`\n * - Optional `hideControls` to hide the +/- stepper buttons\n * - Label, hint, description, error, and warning messaging\n * - Loading state with spinner, and a highlighted-field variant\n * - Optional prefix/suffix content\n *\n * @example\n * <NumberField\n * label=\"Quantity\"\n * value={quantity}\n * onChange={setQuantity}\n * minValue={0}\n * maxValue={99}\n * />\n */\nexport const NumberField = forwardRef<HTMLInputElement, NumberFieldProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n error,\n errorAriaLive: _errorAriaLive,\n defaultValue: defaultValueProp,\n value: valueProp,\n label,\n moreInfo,\n prefix,\n suffix,\n size,\n required,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n id: idProp,\n description,\n hint,\n warning,\n loading,\n disabled,\n readOnly,\n labelProps,\n style,\n placeholder,\n minValue,\n maxValue,\n maximumFractionDigits = 0,\n minimumFractionDigits = 0,\n step = 1,\n hideControls = false,\n hideLabel = false,\n isHighlighted = false,\n ...rest\n } = componentProps;\n const numberFieldRef = useRef<HTMLDivElement>(null);\n\n const { props: wrapperProps } = useFocusWithin({\n onFocus: (e) => {\n onFocusProp?.(e);\n },\n onBlur: (e) => {\n onBlurProp?.(e);\n },\n });\n\n const { inputProps, inputRef, incrementButtonProps, decrementButtonProps } =\n useNumberField({\n minValue,\n maxValue,\n maximumFractionDigits,\n minimumFractionDigits,\n step,\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n label,\n readOnly,\n });\n\n const combinedInputRef = useMergeRefs([numberFieldRef, inputRef, ref]);\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const prefixUid = useId();\n const suffixUid = useId();\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"NumberField\", error);\n\n // TODO(v4.0.0): remove once label is required\n if (label === undefined) {\n warnOnce(\n \"NumberField: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const hasHelperText = hint || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const data = {\n label: childrenToString(props.label),\n prefix: childrenToString(props.prefix),\n suffix: childrenToString(props.suffix),\n description: childrenToString(props.description),\n size: props.size,\n minValue: props.minValue,\n maxValue: props.maxValue,\n step: props.step,\n maximumFractionDigits: props.maximumFractionDigits,\n minimumFractionDigits: props.minimumFractionDigits,\n };\n\n const trackingId = useTrackingId({\n name: \"NumberField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <div\n className={cx(textFieldStyles[\"textfield\"], className)}\n data-anv=\"number-field\"\n style={styleCombined}\n {...wrapperProps}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <div\n className={cx(textFieldStyles[\"input-wrapper\"], {\n [textFieldStyles[\"small\"]]: size === \"small\",\n [textFieldStyles[\"large\"]]: size === \"large\",\n [textFieldStyles[\"highlight\"]]: isHighlighted,\n [numberFieldStyles[\"small\"]]: size === \"small\",\n [numberFieldStyles[\"large\"]]: size === \"large\",\n })}\n role=\"presentation\"\n onClick={() => numberFieldRef.current?.focus()}\n >\n {prefix ? (\n <div\n aria-hidden\n className={textFieldStyles[\"prefix\"]}\n id={`prefix${prefixUid}`}\n >\n {prefix}\n </div>\n ) : null}\n <input\n id={id}\n className={cx(textFieldStyles[\"input\"], {\n [textFieldStyles[\"error\"]]: error,\n })}\n data-tracking-id={trackingId}\n {...rest}\n {...inputProps}\n required={required}\n placeholder={placeholder}\n readOnly={readOnly}\n disabled={disabled}\n ref={combinedInputRef}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : label\n ? undefined\n : placeholder\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n />\n {loading ? (\n <div\n className={textFieldStyles[\"loading-spinner-wrapper\"]}\n data-testid=\"spinner\"\n >\n <Spinner size=\"small\" />\n </div>\n ) : null}\n {suffix ? (\n <div\n className={textFieldStyles[\"suffix\"]}\n aria-hidden\n id={`suffix${suffixUid}`}\n >\n {suffix}\n </div>\n ) : null}\n {!hideControls && !disabled && !readOnly && (\n <div className={numberFieldStyles[\"stepper-buttons\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...decrementButtonProps}\n >\n <Icon svg={IconRemove} />\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...incrementButtonProps}\n >\n <Icon svg={IconAdd} />\n </Button>\n </div>\n )}\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n },\n);\n\nNumberField.displayName = \"NumberField\";\n"],"names":["IconRemove","IconAdd"],"mappings":"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"}
|
package/dist/NumberField.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { N as NumberField, N as default } from './NumberField-
|
|
1
|
+
export { N as NumberField, N as default } from './NumberField-BWRgy-Xq.js';
|
|
2
2
|
//# sourceMappingURL=NumberField.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
-
import * as React from 'react';
|
|
3
2
|
import { createContext, forwardRef, useContext, useState, useLayoutEffect, useRef, useEffect, useMemo, useCallback } from 'react';
|
|
4
3
|
import { c as cx } from './index-De1g9FRV.js';
|
|
5
|
-
import { P as Popover, a as usePopoverContext } from './AiMark-
|
|
4
|
+
import { P as Popover, a as usePopoverContext } from './AiMark-DkHvwBwf.js';
|
|
5
|
+
import { S as SvgSegment, a as SvgChevronLeft, b as SvgSettings } from './settings-Bsahaln8.js';
|
|
6
6
|
import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
|
|
7
7
|
import { S as SvgKeyboardArrowUp } from './keyboard_arrow_up-CxzK6LAl.js';
|
|
8
8
|
import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
|
|
@@ -10,7 +10,7 @@ import { b as BreakpointLg } from './primitive-BXgYQTTw.js';
|
|
|
10
10
|
import { useTrackingId } from './useTrackingId.js';
|
|
11
11
|
import { B as Button } from './Button-Dwh_Nd4l.js';
|
|
12
12
|
import { I as Icon } from './Icon-B5zwN7GD.js';
|
|
13
|
-
import { T as Tooltip } from './Tooltip-
|
|
13
|
+
import { T as Tooltip } from './Tooltip-hen6P8WV.js';
|
|
14
14
|
import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
15
15
|
import { F as Flex } from './Flex-CRF7gj0_.js';
|
|
16
16
|
import { L as Layout } from './Layout-C2Q2hyLG.js';
|
|
@@ -19,35 +19,36 @@ import { S as SvgEdit } from './edit-DQOiktcu.js';
|
|
|
19
19
|
import { S as SvgCheck } from './check-Cf67OWrZ.js';
|
|
20
20
|
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
21
21
|
import { B as ButtonLink } from './ButtonLink-DOFAxNvC.js';
|
|
22
|
-
import { B as Breadcrumbs } from './Breadcrumbs-
|
|
23
|
-
import { M as Menu } from './Menu-
|
|
24
|
-
import { T as TextField } from './TextField-
|
|
25
|
-
import { T as Text } from './Text-
|
|
26
|
-
import { C as Chip } from './Chip-
|
|
22
|
+
import { B as Breadcrumbs } from './Breadcrumbs-d1lHjb_U.js';
|
|
23
|
+
import { M as Menu } from './Menu-CM0EndhK.js';
|
|
24
|
+
import { T as TextField } from './TextField-DQ0i2nlz.js';
|
|
25
|
+
import { T as Text } from './Text-DdNE3hPR.js';
|
|
26
|
+
import { C as Chip } from './Chip-B3pbD3hQ.js';
|
|
27
27
|
import { createPortal } from 'react-dom';
|
|
28
|
-
import { D as Dialog } from './Dialog-
|
|
28
|
+
import { D as Dialog } from './Dialog-Clg6Kd96.js';
|
|
29
29
|
import { d as drillDownStyles, D as DrillDownContext } from './DrillDown.module-1VBKDZRA.js';
|
|
30
|
-
import { u as useDrillDownContextState } from './useInitialFocus-
|
|
30
|
+
import { u as useDrillDownContextState } from './useInitialFocus-BIvXK1Rp.js';
|
|
31
31
|
import { u as useDrillDownContext } from './useDrillDownContext-D5_NjqY4.js';
|
|
32
32
|
import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
|
|
33
33
|
|
|
34
|
-
import './Page.css';const page = "
|
|
35
|
-
const container = "
|
|
36
|
-
const panel = "
|
|
37
|
-
const open = "
|
|
38
|
-
const small = "
|
|
39
|
-
const medium = "
|
|
40
|
-
const large = "
|
|
41
|
-
const sidebar = "
|
|
42
|
-
const collapsed = "
|
|
43
|
-
const content = "
|
|
44
|
-
const noPadding = "
|
|
45
|
-
const
|
|
46
|
-
const
|
|
47
|
-
const
|
|
48
|
-
const
|
|
49
|
-
const
|
|
50
|
-
const
|
|
34
|
+
import './Page.css';const page = "_page_1hgjb_1";
|
|
35
|
+
const container = "_container_1hgjb_29";
|
|
36
|
+
const panel = "_panel_1hgjb_58";
|
|
37
|
+
const open = "_open_1hgjb_58";
|
|
38
|
+
const small = "_small_1hgjb_58";
|
|
39
|
+
const medium = "_medium_1hgjb_61";
|
|
40
|
+
const large = "_large_1hgjb_64";
|
|
41
|
+
const sidebar = "_sidebar_1hgjb_67";
|
|
42
|
+
const collapsed = "_collapsed_1hgjb_67";
|
|
43
|
+
const content = "_content_1hgjb_77";
|
|
44
|
+
const noPadding = "_noPadding_1hgjb_366";
|
|
45
|
+
const sticky = "_sticky_1hgjb_432";
|
|
46
|
+
const header = "_header_1hgjb_498";
|
|
47
|
+
const layout = "_layout_1hgjb_502";
|
|
48
|
+
const title = "_title_1hgjb_510";
|
|
49
|
+
const chips = "_chips_1hgjb_520";
|
|
50
|
+
const actions = "_actions_1hgjb_524";
|
|
51
|
+
const description = "_description_1hgjb_537";
|
|
51
52
|
const styles = {
|
|
52
53
|
page: page,
|
|
53
54
|
container: container,
|
|
@@ -59,39 +60,39 @@ const styles = {
|
|
|
59
60
|
sidebar: sidebar,
|
|
60
61
|
collapsed: collapsed,
|
|
61
62
|
content: content,
|
|
62
|
-
"content-footer": "_content-
|
|
63
|
-
"virtual-scroll-container": "_virtual-scroll-
|
|
64
|
-
"content-wrapper": "_content-
|
|
65
|
-
"footer-slot": "_footer-
|
|
66
|
-
"content-inner": "_content-
|
|
67
|
-
"content-header-inner": "_content-header-
|
|
68
|
-
"sidebar-inner": "_sidebar-
|
|
69
|
-
"sidebar-header": "_sidebar-
|
|
70
|
-
"sidebar-adaptive-trigger-container": "_sidebar-adaptive-trigger-
|
|
71
|
-
"sidebar-adaptive-trigger": "_sidebar-adaptive-
|
|
72
|
-
"sidebar-adaptive-trigger-icon": "_sidebar-adaptive-trigger-
|
|
73
|
-
"sidebar-adaptive-container": "_sidebar-adaptive-
|
|
74
|
-
"sidebar-adaptive": "_sidebar-
|
|
75
|
-
"toggle-button-wrapper": "_toggle-button-
|
|
76
|
-
"toggle-button-tooltip": "_toggle-button-
|
|
77
|
-
"toggle-button": "_toggle-
|
|
63
|
+
"content-footer": "_content-footer_1hgjb_77",
|
|
64
|
+
"virtual-scroll-container": "_virtual-scroll-container_1hgjb_84",
|
|
65
|
+
"content-wrapper": "_content-wrapper_1hgjb_92",
|
|
66
|
+
"footer-slot": "_footer-slot_1hgjb_99",
|
|
67
|
+
"content-inner": "_content-inner_1hgjb_109",
|
|
68
|
+
"content-header-inner": "_content-header-inner_1hgjb_131",
|
|
69
|
+
"sidebar-inner": "_sidebar-inner_1hgjb_195",
|
|
70
|
+
"sidebar-header": "_sidebar-header_1hgjb_234",
|
|
71
|
+
"sidebar-adaptive-trigger-container": "_sidebar-adaptive-trigger-container_1hgjb_256",
|
|
72
|
+
"sidebar-adaptive-trigger": "_sidebar-adaptive-trigger_1hgjb_256",
|
|
73
|
+
"sidebar-adaptive-trigger-icon": "_sidebar-adaptive-trigger-icon_1hgjb_277",
|
|
74
|
+
"sidebar-adaptive-container": "_sidebar-adaptive-container_1hgjb_281",
|
|
75
|
+
"sidebar-adaptive": "_sidebar-adaptive_1hgjb_256",
|
|
76
|
+
"toggle-button-wrapper": "_toggle-button-wrapper_1hgjb_295",
|
|
77
|
+
"toggle-button-tooltip": "_toggle-button-tooltip_1hgjb_304",
|
|
78
|
+
"toggle-button": "_toggle-button_1hgjb_295",
|
|
78
79
|
noPadding: noPadding,
|
|
79
|
-
"panel-
|
|
80
|
-
"
|
|
80
|
+
"panel-header": "_panel-header_1hgjb_370",
|
|
81
|
+
"panel-content": "_panel-content_1hgjb_371",
|
|
82
|
+
"panel-footer": "_panel-footer_1hgjb_372",
|
|
83
|
+
"panel-inner": "_panel-inner_1hgjb_376",
|
|
84
|
+
"drilldown-open": "_drilldown-open_1hgjb_410",
|
|
85
|
+
sticky: sticky,
|
|
81
86
|
header: header,
|
|
82
87
|
layout: layout,
|
|
83
|
-
"title-wrapper": "_title-
|
|
88
|
+
"title-wrapper": "_title-wrapper_1hgjb_510",
|
|
84
89
|
title: title,
|
|
85
|
-
"preference-action": "_preference-
|
|
90
|
+
"preference-action": "_preference-action_1hgjb_517",
|
|
86
91
|
chips: chips,
|
|
87
92
|
actions: actions,
|
|
88
93
|
description: description
|
|
89
94
|
};
|
|
90
95
|
|
|
91
|
-
const SvgSegment = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M10 18h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1zM3 7c0 .55.45 1 1 1h16c.55 0 1-.45 1-1s-.45-1-1-1H4c-.55 0-1 .45-1 1zm7 6h10c.55 0 1-.45 1-1s-.45-1-1-1H10c-.55 0-1 .45-1 1s.45 1 1 1z" }));
|
|
92
|
-
|
|
93
|
-
const SvgChevronLeft = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "1em", height: "1em", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "M14.71 6.71a.996.996 0 0 0-1.41 0L8.71 11.3a.996.996 0 0 0 0 1.41l4.59 4.59a.996.996 0 1 0 1.41-1.41L10.83 12l3.88-3.88c.39-.39.38-1.03 0-1.41z" }));
|
|
94
|
-
|
|
95
96
|
const PageSideBarContext = createContext(
|
|
96
97
|
null
|
|
97
98
|
);
|
|
@@ -240,8 +241,34 @@ const PageSidebarHeader = forwardRef(
|
|
|
240
241
|
);
|
|
241
242
|
PageSidebarHeader.displayName = "Page.SidebarHeader";
|
|
242
243
|
|
|
243
|
-
const
|
|
244
|
-
|
|
244
|
+
const renderMenuItems = (actions) => actions.map((action, index) => {
|
|
245
|
+
const icon = typeof action.icon === "function" ? action.icon : action.icon && "after" in action.icon ? action.icon.after : void 0;
|
|
246
|
+
return /* @__PURE__ */ jsx(
|
|
247
|
+
Menu.Item,
|
|
248
|
+
{
|
|
249
|
+
label: action.label,
|
|
250
|
+
onClick: action.onClick,
|
|
251
|
+
disabled: action.disabled,
|
|
252
|
+
icon,
|
|
253
|
+
className: action.className
|
|
254
|
+
},
|
|
255
|
+
index
|
|
256
|
+
);
|
|
257
|
+
});
|
|
258
|
+
const renderPrimaryMenuTrigger = (primary) => ({ ref, ...triggerProps }) => {
|
|
259
|
+
const { items: _items, label, ...buttonProps } = primary;
|
|
260
|
+
return /* @__PURE__ */ jsx(
|
|
261
|
+
Button,
|
|
262
|
+
{
|
|
263
|
+
appearance: "primary",
|
|
264
|
+
...buttonProps,
|
|
265
|
+
icon: { after: SvgKeyboardArrowDown },
|
|
266
|
+
...triggerProps,
|
|
267
|
+
ref,
|
|
268
|
+
children: label
|
|
269
|
+
}
|
|
270
|
+
);
|
|
271
|
+
};
|
|
245
272
|
const PageHeader = forwardRef(
|
|
246
273
|
(props, ref) => {
|
|
247
274
|
const {
|
|
@@ -299,53 +326,37 @@ const PageHeader = forwardRef(
|
|
|
299
326
|
) }),
|
|
300
327
|
/* @__PURE__ */ jsx(Tooltip.Content, { children: preferenceAction["aria-label"] })
|
|
301
328
|
] }));
|
|
329
|
+
const secondaryActions = actions?.secondary ?? [];
|
|
330
|
+
const primaryAction = actions?.primary;
|
|
331
|
+
const collapseSecondary = secondaryActions.length >= 3 || secondaryActions.length >= 2 && !!primaryAction;
|
|
302
332
|
const actionItems = actions && /* @__PURE__ */ jsxs(Flex, { justifyContent: "flex-end", className: styles.actions, children: [
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
] }),
|
|
331
|
-
children: actions.secondary.map((action, index) => {
|
|
332
|
-
const icon = typeof action.icon === "function" ? action.icon : action.icon && "after" in action.icon ? action.icon.after : void 0;
|
|
333
|
-
return /* @__PURE__ */ jsx(
|
|
334
|
-
Menu.Item,
|
|
335
|
-
{
|
|
336
|
-
label: action.label,
|
|
337
|
-
onClick: action.onClick,
|
|
338
|
-
disabled: action.disabled,
|
|
339
|
-
icon,
|
|
340
|
-
className: action.className
|
|
341
|
-
},
|
|
342
|
-
index
|
|
343
|
-
);
|
|
344
|
-
})
|
|
345
|
-
}
|
|
346
|
-
),
|
|
347
|
-
actions.primary && /* @__PURE__ */ jsx(Button, { appearance: "primary", ...actions.primary, children: actions.primary.label })
|
|
348
|
-
] })
|
|
333
|
+
collapseSecondary ? /* @__PURE__ */ jsx(
|
|
334
|
+
Menu,
|
|
335
|
+
{
|
|
336
|
+
trigger: ({ ref: ref2, ...rest2 }) => /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
337
|
+
/* @__PURE__ */ jsx(Tooltip.Trigger, { children: /* @__PURE__ */ jsx(
|
|
338
|
+
Button,
|
|
339
|
+
{
|
|
340
|
+
appearance: "secondary",
|
|
341
|
+
icon: SvgMoreVert,
|
|
342
|
+
"aria-label": "More actions",
|
|
343
|
+
...rest2,
|
|
344
|
+
ref: ref2
|
|
345
|
+
}
|
|
346
|
+
) }),
|
|
347
|
+
/* @__PURE__ */ jsx(Tooltip.Content, { children: "More actions" })
|
|
348
|
+
] }),
|
|
349
|
+
children: renderMenuItems(secondaryActions)
|
|
350
|
+
}
|
|
351
|
+
) : secondaryActions.map((action, index) => /* @__PURE__ */ jsx(Button, { appearance: "secondary", ...action, children: action.label }, index)),
|
|
352
|
+
primaryAction && ("items" in primaryAction ? /* @__PURE__ */ jsx(
|
|
353
|
+
Menu,
|
|
354
|
+
{
|
|
355
|
+
label: primaryAction.label,
|
|
356
|
+
trigger: renderPrimaryMenuTrigger(primaryAction),
|
|
357
|
+
children: renderMenuItems(primaryAction.items)
|
|
358
|
+
}
|
|
359
|
+
) : /* @__PURE__ */ jsx(Button, { appearance: "primary", ...primaryAction, children: primaryAction.label }))
|
|
349
360
|
] });
|
|
350
361
|
const headerClassName = cx(styles.content, styles.header, className);
|
|
351
362
|
const headerContentClassName = cx(
|
|
@@ -554,9 +565,86 @@ const PageContent = forwardRef(
|
|
|
554
565
|
);
|
|
555
566
|
PageContent.displayName = "PageContent";
|
|
556
567
|
|
|
568
|
+
const PagePanelContext = createContext({});
|
|
569
|
+
|
|
570
|
+
const PagePanelHeader = forwardRef(
|
|
571
|
+
(props, ref) => {
|
|
572
|
+
const { className, children, ...rest } = props;
|
|
573
|
+
const { headerRef } = useContext(PagePanelContext);
|
|
574
|
+
const classNames = cx(styles["panel-header"], className);
|
|
575
|
+
return /* @__PURE__ */ jsx(
|
|
576
|
+
"header",
|
|
577
|
+
{
|
|
578
|
+
className: classNames,
|
|
579
|
+
"data-anv": "page-panel-header",
|
|
580
|
+
ref: useMergeRefs([ref, headerRef]),
|
|
581
|
+
...rest,
|
|
582
|
+
children
|
|
583
|
+
}
|
|
584
|
+
);
|
|
585
|
+
}
|
|
586
|
+
);
|
|
587
|
+
PagePanelHeader.displayName = "PagePanelHeader";
|
|
588
|
+
|
|
589
|
+
const PagePanelContent = forwardRef(
|
|
590
|
+
(props, ref) => {
|
|
591
|
+
const { className, children, sticky = false, style, ...rest } = props;
|
|
592
|
+
const { headerRef } = useContext(PagePanelContext);
|
|
593
|
+
const [headerHeight, setHeaderHeight] = useState(0);
|
|
594
|
+
useEffect(() => {
|
|
595
|
+
const headerElement = headerRef?.current;
|
|
596
|
+
if (!sticky || !headerElement) return;
|
|
597
|
+
const updateHeight = () => {
|
|
598
|
+
setHeaderHeight(headerElement.offsetHeight || 0);
|
|
599
|
+
};
|
|
600
|
+
updateHeight();
|
|
601
|
+
const resizeObserver = new ResizeObserver(updateHeight);
|
|
602
|
+
resizeObserver.observe(headerElement);
|
|
603
|
+
return () => resizeObserver.disconnect();
|
|
604
|
+
}, [sticky, headerRef]);
|
|
605
|
+
const contentClassNames = cx(styles["panel-content"], className, {
|
|
606
|
+
[styles["sticky"]]: sticky
|
|
607
|
+
});
|
|
608
|
+
const stickyStyle = sticky ? { top: `${headerHeight}px` } : void 0;
|
|
609
|
+
return /* @__PURE__ */ jsx(
|
|
610
|
+
"div",
|
|
611
|
+
{
|
|
612
|
+
className: contentClassNames,
|
|
613
|
+
"data-anv": "page-panel-content",
|
|
614
|
+
ref,
|
|
615
|
+
style: { ...stickyStyle, ...style },
|
|
616
|
+
...rest,
|
|
617
|
+
children
|
|
618
|
+
}
|
|
619
|
+
);
|
|
620
|
+
}
|
|
621
|
+
);
|
|
622
|
+
PagePanelContent.displayName = "PagePanelContent";
|
|
623
|
+
|
|
624
|
+
const PagePanelFooter = forwardRef(
|
|
625
|
+
(props, ref) => {
|
|
626
|
+
const { className, children, sticky = false, ...rest } = props;
|
|
627
|
+
const classNames = cx(styles["panel-footer"], className, {
|
|
628
|
+
[styles["sticky"]]: sticky
|
|
629
|
+
});
|
|
630
|
+
return /* @__PURE__ */ jsx(
|
|
631
|
+
"footer",
|
|
632
|
+
{
|
|
633
|
+
className: classNames,
|
|
634
|
+
"data-anv": "page-panel-footer",
|
|
635
|
+
ref,
|
|
636
|
+
...rest,
|
|
637
|
+
children
|
|
638
|
+
}
|
|
639
|
+
);
|
|
640
|
+
}
|
|
641
|
+
);
|
|
642
|
+
PagePanelFooter.displayName = "PagePanelFooter";
|
|
643
|
+
|
|
557
644
|
const PagePanelInner = ({
|
|
558
645
|
style,
|
|
559
646
|
open,
|
|
647
|
+
hostedInDialog,
|
|
560
648
|
children
|
|
561
649
|
}) => {
|
|
562
650
|
const { index } = useDrillDownContext();
|
|
@@ -567,14 +655,17 @@ const PagePanelInner = ({
|
|
|
567
655
|
"div",
|
|
568
656
|
{
|
|
569
657
|
className: classNames,
|
|
570
|
-
tabIndex: typeof open !== "undefined" && open ? 0 : -1,
|
|
571
|
-
style: {
|
|
572
|
-
|
|
658
|
+
tabIndex: hostedInDialog ? void 0 : typeof open !== "undefined" && open ? 0 : -1,
|
|
659
|
+
style: {
|
|
660
|
+
...style,
|
|
661
|
+
...hostedInDialog ? {} : { overflowY: index === void 0 ? "auto" : "hidden" }
|
|
662
|
+
},
|
|
663
|
+
children
|
|
573
664
|
}
|
|
574
665
|
);
|
|
575
666
|
};
|
|
576
|
-
const PagePanel =
|
|
577
|
-
(props, ref) => {
|
|
667
|
+
const PagePanel = Object.assign(
|
|
668
|
+
forwardRef((props, ref) => {
|
|
578
669
|
const {
|
|
579
670
|
children,
|
|
580
671
|
open,
|
|
@@ -587,6 +678,7 @@ const PagePanel = forwardRef(
|
|
|
587
678
|
...rest
|
|
588
679
|
} = props;
|
|
589
680
|
const [isMobile, setIsMobile] = useState(false);
|
|
681
|
+
const headerRef = useRef(null);
|
|
590
682
|
const classNames = cx(
|
|
591
683
|
[styles.panel, drillDownStyles.panel],
|
|
592
684
|
[styles[size]],
|
|
@@ -641,7 +733,7 @@ const PagePanel = forwardRef(
|
|
|
641
733
|
open,
|
|
642
734
|
defaultDrillDownIndex,
|
|
643
735
|
onDrillDownContextChange,
|
|
644
|
-
children: /* @__PURE__ */ jsx(Dialog.Content, { children: /* @__PURE__ */ jsx(
|
|
736
|
+
children: /* @__PURE__ */ jsx(Dialog.Content, { children: /* @__PURE__ */ jsx(PagePanelContext.Provider, { value: { headerRef }, children: /* @__PURE__ */ jsx(
|
|
645
737
|
"div",
|
|
646
738
|
{
|
|
647
739
|
className: classNames,
|
|
@@ -649,13 +741,13 @@ const PagePanel = forwardRef(
|
|
|
649
741
|
"aria-disabled": !open,
|
|
650
742
|
ref,
|
|
651
743
|
...rest,
|
|
652
|
-
children
|
|
744
|
+
children: /* @__PURE__ */ jsx(PagePanelInner, { style, open, hostedInDialog: true, children })
|
|
653
745
|
}
|
|
654
|
-
) })
|
|
746
|
+
) }) })
|
|
655
747
|
}
|
|
656
748
|
);
|
|
657
749
|
}
|
|
658
|
-
return /* @__PURE__ */ jsx(DrillDownContext.Provider, { value: drillDownContextProviderValue, children: /* @__PURE__ */ jsx(
|
|
750
|
+
return /* @__PURE__ */ jsx(DrillDownContext.Provider, { value: drillDownContextProviderValue, children: /* @__PURE__ */ jsx(PagePanelContext.Provider, { value: { headerRef }, children: /* @__PURE__ */ jsx(
|
|
659
751
|
"div",
|
|
660
752
|
{
|
|
661
753
|
className: classNames,
|
|
@@ -665,7 +757,66 @@ const PagePanel = forwardRef(
|
|
|
665
757
|
...rest,
|
|
666
758
|
children: /* @__PURE__ */ jsx(PagePanelInner, { style, open, children })
|
|
667
759
|
}
|
|
668
|
-
) });
|
|
760
|
+
) }) });
|
|
761
|
+
}),
|
|
762
|
+
{
|
|
763
|
+
/**
|
|
764
|
+
* Header component for the panel that stays pinned to the top of the panel's scrollable area.
|
|
765
|
+
*
|
|
766
|
+
* Features:
|
|
767
|
+
* - Sticky positioning at the top of the panel's scrollable content
|
|
768
|
+
* - Proper semantic HTML structure
|
|
769
|
+
* - Consistent padding and styling with the design system
|
|
770
|
+
* - Supports all standard header element props
|
|
771
|
+
*
|
|
772
|
+
* @example
|
|
773
|
+
* <Page.Panel.Header>
|
|
774
|
+
* <Text variant="headline" el="h3">Panel Title</Text>
|
|
775
|
+
* </Page.Panel.Header>
|
|
776
|
+
*/
|
|
777
|
+
Header: PagePanelHeader,
|
|
778
|
+
/**
|
|
779
|
+
* Content container for the panel that holds the main scrollable content area.
|
|
780
|
+
*
|
|
781
|
+
* Features:
|
|
782
|
+
* - Grows to fill the space between the panel's header and footer
|
|
783
|
+
* - Scrolls independently of the header and footer once content overflows
|
|
784
|
+
* - Optional sticky positioning below the header, for a second sticky region (e.g. a filter bar)
|
|
785
|
+
* - Proper semantic HTML structure
|
|
786
|
+
* - Consistent padding and styling with the design system
|
|
787
|
+
* - Supports all standard div element props
|
|
788
|
+
*
|
|
789
|
+
* @example
|
|
790
|
+
* <Page.Panel.Content>
|
|
791
|
+
* <Text>Panel content goes here</Text>
|
|
792
|
+
* </Page.Panel.Content>
|
|
793
|
+
*
|
|
794
|
+
* @example
|
|
795
|
+
* // A second, sticky Content region acting as a sub-header below Page.Panel.Header
|
|
796
|
+
* <Page.Panel.Content sticky>
|
|
797
|
+
* <TextField placeholder="Filter results..." />
|
|
798
|
+
* </Page.Panel.Content>
|
|
799
|
+
* <Page.Panel.Content>
|
|
800
|
+
* <Text>Scrollable results</Text>
|
|
801
|
+
* </Page.Panel.Content>
|
|
802
|
+
*/
|
|
803
|
+
Content: PagePanelContent,
|
|
804
|
+
/**
|
|
805
|
+
* Footer component for the panel that displays action buttons and controls.
|
|
806
|
+
*
|
|
807
|
+
* Features:
|
|
808
|
+
* - Flex layout that right-aligns action buttons and wraps on overflow
|
|
809
|
+
* - Optional sticky positioning at the bottom of the panel
|
|
810
|
+
* - Proper semantic HTML structure
|
|
811
|
+
* - Consistent padding and styling with the design system
|
|
812
|
+
* - Supports all standard footer element props
|
|
813
|
+
*
|
|
814
|
+
* @example
|
|
815
|
+
* <Page.Panel.Footer sticky>
|
|
816
|
+
* <Button appearance="primary" onClick={handleSave}>Save</Button>
|
|
817
|
+
* </Page.Panel.Footer>
|
|
818
|
+
*/
|
|
819
|
+
Footer: PagePanelFooter
|
|
669
820
|
}
|
|
670
821
|
);
|
|
671
822
|
PagePanel.displayName = "PagePanel";
|
|
@@ -837,11 +988,20 @@ const Page = Object.assign(
|
|
|
837
988
|
* - Automatic mobile dialog conversion
|
|
838
989
|
* - Keyboard navigation and accessibility support
|
|
839
990
|
* - Smooth animations and transitions
|
|
991
|
+
* - Compound component structure with Header, Content, and Footer
|
|
992
|
+
* - Sticky header and optional sticky footer around a scrollable content area
|
|
840
993
|
*
|
|
841
994
|
* @example
|
|
842
995
|
* <Page.Panel open={isOpen} size="medium">
|
|
843
|
-
* <
|
|
844
|
-
*
|
|
996
|
+
* <Page.Panel.Header>
|
|
997
|
+
* <Text variant="headline" el="h3">Panel Title</Text>
|
|
998
|
+
* </Page.Panel.Header>
|
|
999
|
+
* <Page.Panel.Content>
|
|
1000
|
+
* <Text>Panel content</Text>
|
|
1001
|
+
* </Page.Panel.Content>
|
|
1002
|
+
* <Page.Panel.Footer>
|
|
1003
|
+
* <Button onClick={() => setIsOpen(false)}>Close</Button>
|
|
1004
|
+
* </Page.Panel.Footer>
|
|
845
1005
|
* </Page.Panel>
|
|
846
1006
|
*/
|
|
847
1007
|
Panel: PagePanel,
|
|
@@ -866,4 +1026,4 @@ const Page = Object.assign(
|
|
|
866
1026
|
Page.displayName = "Page";
|
|
867
1027
|
|
|
868
1028
|
export { Page as P };
|
|
869
|
-
//# sourceMappingURL=Page-
|
|
1029
|
+
//# sourceMappingURL=Page-B-Wjr7sP.js.map
|