@servicetitan/anvil2 3.13.0 → 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 +20 -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-ZczGbHZT.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-CEsvth0Z.js → Drawer-Mnne1lfM.js} +4 -4
- package/dist/{Drawer-CEsvth0Z.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-lIGh4xIl.js → FilterBar-Dhl_hi_5.js} +5 -5
- package/dist/{FilterBar-lIGh4xIl.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/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-D5NbV2Y8.js → Page-B-Wjr7sP.js} +213 -65
- package/dist/Page-B-Wjr7sP.js.map +1 -0
- package/dist/Page.css +117 -74
- package/dist/Page.js +1 -1
- package/dist/{Pagination-B4HCZNYw.js → Pagination-DRIKAkuE.js} +2 -2
- package/dist/{Pagination-B4HCZNYw.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-C7CCeqGW.js → RichTextEditor-B_8D0VD3.js} +9 -9
- package/dist/{RichTextEditor-C7CCeqGW.js.map → RichTextEditor-B_8D0VD3.js.map} +1 -1
- package/dist/RichTextEditor.js +1 -1
- package/dist/{SavedFiltersButton-BwnP6fuk.js → SavedFiltersButton-vZ38Mty8.js} +9 -9
- package/dist/{SavedFiltersButton-BwnP6fuk.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-lV_kQQH8.js → index-tWkeAVJW.js} +2 -2
- package/dist/{index-lV_kQQH8.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/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 +2 -2
- package/dist/Announcement-CGglhMfd.js.map +0 -1
- package/dist/DataTable-ZczGbHZT.js.map +0 -1
- package/dist/MultiSelectFieldSync-CFw607cm.js.map +0 -1
- package/dist/Page-D5NbV2Y8.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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"confirmationTypes-CG7xl50f.js","sources":["../src/internal/utils/arrayIdsEqual.ts","../src/internal/hooks/useConfirmationDraft.ts","../src/internal/types/confirmationTypes.ts"],"sourcesContent":["/**\n * Shallow set-equality of two value arrays by `id`, order-independent.\n *\n * Used as the `isEqual` comparator for `useConfirmationDraft` so that a draft\n * is considered unchanged when it holds the same set of selected items as the\n * committed value, regardless of order.\n */\nexport function arrayIdsEqual<T extends { id: string | number }>(\n a: T[],\n b: T[],\n): boolean {\n if (a === b) return true;\n if (a.length !== b.length) return false;\n const seen = new Set<string | number>();\n for (const item of a) seen.add(item.id);\n for (const item of b) {\n if (!seen.has(item.id)) return false;\n }\n return true;\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport type UseConfirmationDraftOptions<T> = {\n value: T;\n onCommit: (value: T) => void;\n isOpen: boolean;\n enabled: boolean;\n isEqual?: (a: T, b: T) => boolean;\n};\n\nexport type UseConfirmationDraftResult<T> = {\n displayValue: T;\n setDraft: (next: T) => void;\n apply: () => void;\n cancel: () => void;\n isDirty: boolean;\n};\n\nconst defaultEqual = <T>(a: T, b: T) => Object.is(a, b);\n\n/**\n * Holds a draft copy of a controlled value while a menu is open, so that\n * selections can be confirmed (`apply`) or discarded (`cancel`). When\n * `enabled` is false, `setDraft` passes through directly to `onCommit` and\n * `displayValue` always reflects the controlled `value`.\n */\nexport function useConfirmationDraft<T>({\n value,\n onCommit,\n isOpen,\n enabled,\n isEqual = defaultEqual,\n}: UseConfirmationDraftOptions<T>): UseConfirmationDraftResult<T> {\n const [draft, setDraftState] = useState<T>(value);\n const prevOpenRef = useRef(false);\n const prevValueRef = useRef(value);\n\n useEffect(() => {\n const wasOpen = prevOpenRef.current;\n const prevValue = prevValueRef.current;\n prevOpenRef.current = isOpen;\n prevValueRef.current = value;\n\n if (!enabled) return;\n\n const justOpened = isOpen && !wasOpen;\n const valueChangedWhileOpen = isOpen && !isEqual(prevValue, value);\n\n if (justOpened || valueChangedWhileOpen) {\n setDraftState(value);\n }\n }, [isOpen, enabled, value, isEqual]);\n\n const setDraft = useCallback(\n (next: T) => {\n if (!enabled) {\n onCommit(next);\n return;\n }\n setDraftState(next);\n },\n [enabled, onCommit],\n );\n\n const apply = useCallback(() => {\n if (!enabled) return;\n onCommit(draft);\n }, [enabled, onCommit, draft]);\n\n const cancel = useCallback(() => {\n if (!enabled) return;\n setDraftState(value);\n }, [enabled, value]);\n\n const displayValue = enabled ? draft : value;\n const isDirty = enabled && !isEqual(draft, value);\n\n return { displayValue, setDraft, apply, cancel, isDirty };\n}\n","/**\n * Opt-in confirmation mode for Select* and MultiSelect* components.\n *\n * When set, selection changes are held as a draft inside the open menu and\n * only commit to the controlled `value` when the user clicks Apply. Dismissing\n * the menu (Escape, click outside, toggling the trigger) discards the draft.\n *\n * `true` enables the default Apply/Cancel labels. Pass an object to customize.\n */\nexport type ConfirmationProp =\n | boolean\n | {\n applyLabel?: string;\n cancelLabel?: string;\n };\n\nexport type ResolvedConfirmation = {\n enabled: boolean;\n applyLabel: string;\n cancelLabel: string;\n};\n\nexport const resolveConfirmation = (\n prop: ConfirmationProp | undefined,\n): ResolvedConfirmation => {\n if (!prop) {\n return { enabled: false, applyLabel: \"Apply\", cancelLabel: \"Cancel\" };\n }\n if (prop === true) {\n return { enabled: true, applyLabel: \"Apply\", cancelLabel: \"Cancel\" };\n }\n return {\n enabled: true,\n applyLabel: prop.applyLabel ?? \"Apply\",\n cancelLabel: prop.cancelLabel ?? \"Cancel\",\n };\n};\n"],"names":[],"mappings":"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"}
|
package/dist/error-DR_wWdYY.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
const SvgError = (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: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z" }));
|
|
4
|
-
|
|
5
|
-
export { SvgError as S };
|
|
6
|
-
//# sourceMappingURL=error-DR_wWdYY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"error-DR_wWdYY.js","sources":["../../hammer-icon/mdi/round/error.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgError = (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: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z\" }));\nexport default SvgError;\n"],"names":[],"mappings":";;AACK,MAAC,QAAQ,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,uJAAuJ,EAAE,CAAC;;;;"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { c as cx } from './index-De1g9FRV.js';
|
|
2
|
-
import { t as themeStyles } from './ThemeProvider.module-_7m6Tav-.js';
|
|
3
|
-
|
|
4
|
-
const portalScopeClassNames = cx("anvil2", themeStyles["theme-core"]);
|
|
5
|
-
|
|
6
|
-
export { portalScopeClassNames as p };
|
|
7
|
-
//# sourceMappingURL=portalScopeClassNames-BTyv0FY8.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"portalScopeClassNames-BTyv0FY8.js","sources":["../src/internal/functions/portalScopeClassNames.ts"],"sourcesContent":["import cx from \"classnames\";\n\nimport themeStyles from \"../../providers/ThemeProvider/ThemeProvider.module.scss\";\n\n/**\n * Class names that re-establish the Anvil2 styling scope on a container.\n *\n * Native `popover` / top-layer elements (toasts, popovers, tooltips, surfaces)\n * are promoted to the top layer and live high in the DOM, escaping any ancestor\n * `AnvilProvider`'s `.anvil2` scope. Without the scope, descendants resolve none\n * of the `--a2-*` design tokens (defined on `.anvil2.theme-core`) and miss the\n * scoped component rules, so they render unstyled.\n *\n * Spread/append these class names onto such containers so they self-scope and\n * render correctly in any host context (including outside an `AnvilProvider`,\n * e.g. when an Anvil2 component is used from a legacy host).\n */\nexport const portalScopeClassNames = cx(\"anvil2\", themeStyles[\"theme-core\"]);\n"],"names":[],"mappings":";;;AAiBO,MAAM,qBAAA,GAAwB,EAAA,CAAG,QAAA,EAAU,WAAA,CAAY,YAAY,CAAC;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useInvalidateOnOptionsChange-CC_6sRp9.js","sources":["../src/internal/functions/isThenable.ts","../src/internal/components/OptionCheckbox.tsx","../src/internal/components/OptionRow.tsx","../src/internal/components/OptionContentArea.tsx","../src/internal/components/OptionsPopover/OptionsPopover.tsx","../src/internal/components/OptionsDialog/OptionsDialog.tsx","../src/beta/hooks/useAdaptiveView/useAdaptiveView.tsx","../src/internal/functions/areOptionsValueEqual.ts","../src/internal/hooks/useInvalidateOnOptionsChange.ts"],"sourcesContent":["/**\n * Returns true when `value` looks like a thenable (Promise or Promise-like).\n */\nexport function isThenable<T>(value: unknown): value is PromiseLike<T> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"then\" in value &&\n typeof (value as PromiseLike<T>).then === \"function\"\n );\n}\n","import cx from \"classnames\";\nimport { Icon } from \"../../components/Icon\";\nimport { Spinner } from \"../../components/Spinner\";\nimport CheckboxOutline from \"@servicetitan/hammer-icon/mdi/round/check_box_outline_blank.svg\";\nimport CheckboxChecked from \"@servicetitan/hammer-icon/mdi/round/check_box.svg\";\nimport CheckboxIndeterminate from \"@servicetitan/hammer-icon/mdi/round/indeterminate_check_box.svg\";\nimport type { CheckState } from \"../../types\";\nimport styles from \"./OptionCheckbox.module.scss\";\n\nexport type OptionCheckboxProps = {\n checkState: CheckState;\n className?: string;\n};\n\nconst iconMap = {\n checked: CheckboxChecked,\n unchecked: CheckboxOutline,\n indeterminate: CheckboxIndeterminate,\n} as const;\n\nexport function OptionCheckbox({ checkState, className }: OptionCheckboxProps) {\n if (checkState === \"loading\") {\n return (\n <span className={cx(styles[\"loading\"], className)}>\n <Spinner size=\"small\" aria-hidden=\"true\" />\n </span>\n );\n }\n\n return (\n <Icon\n aria-hidden=\"true\"\n size=\"large\"\n svg={iconMap[checkState]}\n className={cx(styles[\"checkbox\"], styles[checkState], className)}\n />\n );\n}\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./OptionRow.module.scss\";\n\nexport type OptionRowProps = ComponentPropsWithoutRef<\"div\"> & {\n disabled?: boolean;\n};\n\nexport const OptionRow = forwardRef<HTMLDivElement, OptionRowProps>(\n function OptionRow({ disabled, children, className, ...rest }, ref) {\n const optionRowClass = cx(\n styles[\"option-row\"],\n { [styles[\"disabled\"]]: disabled },\n className,\n );\n return (\n <div ref={ref} {...rest} className={optionRowClass}>\n {children}\n </div>\n );\n },\n);\n\nexport const OptionRowSideContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\"> & { children: ReactNode }\n>(function OptionRowSideContent({ children, className, ...rest }, ref) {\n const sideContentClass = cx(styles[\"side-content\"], className);\n return (\n <div ref={ref} {...rest} className={sideContentClass}>\n {children}\n </div>\n );\n});\n","import type { ReactNode } from \"react\";\nimport { Flex } from \"../../components/Flex\";\nimport { Text } from \"../../components/Text\";\nimport { Avatar } from \"../../components/Avatar\";\nimport { Chip } from \"../../components/Chip\";\nimport { Icon } from \"../../components/Icon\";\nimport type { OptionContent } from \"../types/optionContent\";\nimport { OptionRowSideContent } from \"./OptionRow\";\nimport styles from \"./OptionContentArea.module.scss\";\n\nexport type OptionContentAreaProps = {\n label: string;\n content?: OptionContent;\n children?: ReactNode;\n};\n\nexport function OptionContentArea({\n label,\n content,\n children,\n}: OptionContentAreaProps) {\n const hasAvatar = !!content?.avatar;\n const hasChips = !!content?.chips?.length;\n const hasIcon = !!content?.icon;\n\n return (\n <>\n {hasAvatar && (\n <OptionRowSideContent aria-hidden=\"true\">\n <Avatar size=\"medium\" {...content!.avatar!} />\n </OptionRowSideContent>\n )}\n <Flex grow={1} shrink={1} direction=\"column\" justifyContent=\"center\">\n <Text size=\"small\" className={styles[\"title\"]}>\n {content?.title ?? label}\n </Text>\n {content?.description && (\n <Text size=\"small\" className={styles[\"description\"]}>\n {content.description}\n </Text>\n )}\n {hasChips && (\n <Flex\n wrap=\"wrap\"\n gap=\"1\"\n className={styles[\"chips-row\"]}\n role=\"group\"\n aria-label=\"Tags\"\n >\n {content!.chips!.map((chip, i) => (\n <Chip key={`${chip.label}-${i}`} size=\"small\" {...chip} />\n ))}\n </Flex>\n )}\n {children}\n </Flex>\n {hasIcon && (\n <OptionRowSideContent>\n <Icon\n size=\"large\"\n svg={content!.icon!.svg}\n color={content!.icon!.color}\n aria-hidden={content!.icon!.label ? undefined : \"true\"}\n aria-label={content!.icon!.label}\n />\n </OptionRowSideContent>\n )}\n </>\n );\n}\n","import {\n type ReactNode,\n type RefObject,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\n\nimport {\n autoPlacement,\n autoUpdate,\n computePosition,\n offset,\n size,\n} from \"@floating-ui/react\";\n\nimport cx from \"classnames\";\n\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside/useOnClickOutside\";\nimport { portalScopeClassNames } from \"../../functions/portalScopeClassNames\";\n\nimport styles from \"./OptionsPopover.module.scss\";\n\nexport type OptionsPopoverProps = {\n id: string;\n children: ReactNode;\n referenceElement: RefObject<HTMLElement>;\n open: boolean;\n /**\n * Fired when the popover should close (click-outside, focus-out, or\n * Escape). On Escape, the popover restores focus to `referenceElement`\n * before invoking this callback; for other paths focus has already moved\n * elsewhere intentionally.\n */\n onClose: () => void;\n /** Controls the popover width strategy.\n * - `\"reference\"` — match the reference element's width\n * - `number` — fixed width in px\n * - `string` — any CSS width value (e.g. `\"20rem\"`)\n * - `undefined` (default) — intrinsic sizing (`max-content`)\n */\n width?: \"reference\" | number | string;\n /**\n * Optional content rendered as a full-bleed footer region inside the popover\n * shell, separated from the body by a top border. The popover suppresses its\n * own bottom padding so the footer can hug the popover's lower edge.\n */\n footer?: ReactNode;\n};\n\nfunction resolveWidth(\n width: OptionsPopoverProps[\"width\"],\n referenceWidth: number,\n): string | undefined {\n if (width === \"reference\") return `${referenceWidth}px`;\n if (typeof width === \"number\") return `${width}px`;\n if (typeof width === \"string\") return width;\n return undefined;\n}\n\nexport const OptionsPopover = (props: OptionsPopoverProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const { id, children, referenceElement, open, onClose, width, footer } =\n props;\n\n // A single click-outside on a focusable element fires both the\n // useOnClickOutside (pointerup) path and the focusout path below. Dedupe\n // so onClose runs at most once per user action.\n const lastCloseRef = useRef(0);\n const safeClose = useCallback(() => {\n const now = Date.now();\n if (now - lastCloseRef.current < 50) return;\n lastCloseRef.current = now;\n onClose();\n }, [onClose]);\n\n useOnClickOutside({\n targets: [ref.current ?? undefined, referenceElement.current ?? undefined],\n onClickOutside: safeClose,\n disable: !open,\n });\n\n useEffect(() => {\n if (open) {\n ref.current?.showPopover();\n } else {\n ref.current?.hidePopover();\n }\n }, [open]);\n\n // Close when focus leaves the popover (and isn't moving to the trigger\n // element, which has its own click/focus handling). This is the keyboard\n // counterpart to useOnClickOutside.\n useEffect(() => {\n if (!open) return;\n const popoverEl = ref.current;\n if (!popoverEl) return;\n const handleFocusOut = (e: FocusEvent) => {\n const next = e.relatedTarget as Node | null;\n if (!next) {\n // Focus moved to nothing tracked (e.g. body). Treat as exit.\n safeClose();\n return;\n }\n if (popoverEl.contains(next)) return;\n const trigger = referenceElement.current;\n if (trigger && trigger.contains(next)) return;\n safeClose();\n };\n popoverEl.addEventListener(\"focusout\", handleFocusOut);\n return () => popoverEl.removeEventListener(\"focusout\", handleFocusOut);\n }, [open, safeClose, referenceElement]);\n\n // Close on Escape from anywhere inside the popover (e.g. when focus is on\n // the footer button, where no host hook is listening). Focus is restored to\n // the reference element before onClose fires so consumers don't need to\n // manage trigger focus themselves. If a downstream handler (search input,\n // listbox) already handled Escape and called preventDefault, defer to it.\n useEffect(() => {\n if (!open) return;\n const popoverEl = ref.current;\n if (!popoverEl) return;\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key !== \"Escape\" || e.defaultPrevented) return;\n e.preventDefault();\n referenceElement.current?.focus();\n safeClose();\n };\n popoverEl.addEventListener(\"keydown\", handleKeyDown);\n return () => popoverEl.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, safeClose, referenceElement]);\n\n const updatePosition = useCallback(async () => {\n if (!ref.current || !referenceElement.current) return;\n const position = await computePosition(\n referenceElement.current,\n ref.current,\n {\n placement: \"bottom-start\",\n middleware: [\n offset(8),\n autoPlacement({\n allowedPlacements: [\n \"bottom-start\",\n \"bottom-end\",\n \"top-start\",\n \"top-end\",\n ],\n padding: 8,\n }),\n size({\n padding: 8,\n apply({ rects, elements, availableHeight, availableWidth }) {\n const resolved = resolveWidth(width, rects.reference.width);\n Object.assign(elements.floating.style, {\n ...(resolved != null && { width: resolved }),\n maxWidth: `${Math.max(0, availableWidth)}px`,\n maxHeight: `${Math.max(0, availableHeight)}px`,\n });\n },\n }),\n ],\n },\n );\n ref.current.style.left = `${position.x}px`;\n ref.current.style.top = `${position.y}px`;\n }, [ref, referenceElement, width]);\n\n useEffect(() => {\n if (!ref.current || !referenceElement.current || !open) return;\n const cleanup = autoUpdate(\n referenceElement.current,\n ref.current,\n updatePosition,\n );\n return () => {\n cleanup();\n };\n }, [referenceElement, ref, updatePosition, open]);\n\n return (\n <div\n ref={ref}\n id={id}\n className={cx(styles[\"options-popover\"], portalScopeClassNames)}\n popover=\"manual\"\n data-anv=\"popover-content\"\n data-anv-part=\"popover\"\n >\n <div className={styles[\"options-popover-body\"]}>{children}</div>\n {footer ? (\n <div className={styles[\"options-popover-footer\"]}>{footer}</div>\n ) : null}\n </div>\n );\n};\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { Flex, type FocusableElement, Text } from \"../../..\";\nimport { DialogCancelButton } from \"../../../components/Dialog/DialogCancelButton\";\nimport styles from \"./OptionsDialog.module.scss\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport { DialogContext } from \"../../../components/Dialog/internal/DialogContext\";\nimport { useDialogScrollLock } from \"../..\";\nimport { tabbable } from \"tabbable\";\n\nexport const OptionsDialog = ({\n id,\n isOpen,\n onClose,\n field,\n children,\n title,\n initialFocusResolver,\n footer,\n}: {\n id: string;\n isOpen: boolean;\n onClose: () => void;\n title: string;\n field?: React.ReactNode;\n children: React.ReactNode;\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n /** Optional content rendered below the dialog body. */\n footer?: React.ReactNode;\n}) => {\n const elRef = useRef<HTMLDialogElement>(null);\n const visualViewportHeightRef = useRef<HTMLDivElement>(null);\n\n useDialogScrollLock({\n open: isOpen,\n id,\n enableScrollChaining: false,\n elementRef: elRef,\n });\n\n const computeFocus = useCallback(\n (focusables: FocusableElement[]) => {\n if (initialFocusResolver) {\n return initialFocusResolver(focusables);\n }\n return (\n focusables.find(\n (focusable) => focusable.dataset.anv !== \"dialog-cancel-button\",\n ) || focusables[0]\n );\n },\n [initialFocusResolver],\n );\n\n useEffect(() => {\n if (isOpen) {\n elRef.current?.showModal();\n if (elRef.current) {\n computeFocus(tabbable(elRef.current)).focus();\n }\n } else {\n elRef.current?.close();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Omitting computeFocus because we don't want to show/close the dialog on computeFocus change\n }, [isOpen]);\n\n useEffect(() => {\n if (isOpen) {\n const handleResize = () => {\n if (!visualViewportHeightRef.current) return;\n visualViewportHeightRef.current.style.height = `${window.visualViewport?.height ?? 0}px`;\n visualViewportHeightRef.current.style.maxHeight = `${window.visualViewport?.height ?? 0}px`;\n };\n window.visualViewport?.addEventListener(\"resize\", handleResize);\n return () => {\n window.visualViewport?.removeEventListener(\"resize\", handleResize);\n };\n }\n }, [isOpen]);\n\n return (\n <dialog\n ref={elRef}\n id={id}\n data-anv=\"field-dialog\"\n data-anv-part=\"dialog\"\n className={styles[\"field-dialog\"]}\n onKeyDown={(e) => {\n if (e.code === \"Escape\") {\n e.preventDefault();\n onClose();\n }\n }}\n >\n <div\n className={styles[\"field-dialog-visual-viewport-height\"]}\n ref={visualViewportHeightRef}\n >\n <Flex direction=\"row\" className={styles[\"header\"]}>\n <Text variant=\"headline\" el=\"h1\">\n {title}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DialogContext.Provider value={{ close: onClose }}>\n <DialogCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close dialog\"\n icon={Close}\n />\n </DialogContext.Provider>\n </span>\n </Flex>\n {field ? (\n <Flex direction=\"column\" className={styles[\"field\"]}>\n {field}\n </Flex>\n ) : null}\n <Flex direction=\"column\" className={styles[\"content\"]}>\n {children}\n </Flex>\n {footer ? <div className={styles[\"footer\"]}>{footer}</div> : null}\n </div>\n </dialog>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useBreakpoint } from \"../../../hooks\";\n\n/**\n * The type of view to render based on device characteristics.\n */\nexport type AdaptiveView = \"mobile\" | \"desktop\";\n\n/**\n * Return type for the useAdaptiveView hook.\n */\nexport interface UseAdaptiveViewReturn {\n /**\n * The current adaptive view type.\n */\n view: AdaptiveView;\n /**\n * True when the device should use mobile-optimized UI (Dialog).\n */\n isMobile: boolean;\n /**\n * True when the device should use desktop-optimized UI (Popover).\n */\n isDesktop: boolean;\n}\n\n/**\n * Detects whether the primary pointer is coarse (touch) using CSS media query.\n * Returns false during SSR or when matchMedia is unavailable.\n */\nfunction detectCoarsePointer(): boolean {\n if (typeof window === \"undefined\" || !window.matchMedia) {\n return false;\n }\n return window.matchMedia(\"(pointer: coarse)\").matches;\n}\n\n/**\n * Custom hook for detecting whether to use mobile or desktop UI patterns.\n *\n * This hook determines the optimal UI pattern (e.g., Dialog vs Popover) by combining:\n * - Screen size via useBreakpoint (viewport width)\n * - Pointer precision via CSS media query (pointer: coarse)\n *\n * A device is considered \"mobile\" when it has both:\n * - A small screen (below md breakpoint, < 768px)\n * - A coarse pointer (touch-primary input)\n *\n * This approach correctly identifies:\n * - Mobile phones → mobile view (Dialog)\n * - iPads/tablets → desktop view (Popover) due to larger screens\n * - Touch laptops → desktop view (Popover) due to fine pointer primary\n * - Desktop → desktop view (Popover)\n *\n * @returns Object containing view type and boolean flags for mobile/desktop\n *\n * @example\n * const { isMobile } = useAdaptiveView();\n *\n * return isMobile ? (\n * <Dialog>{children}</Dialog>\n * ) : (\n * <Popover>{children}</Popover>\n * );\n */\nexport function useAdaptiveView(): UseAdaptiveViewReturn {\n const breakpoint = useBreakpoint();\n const [hasCoarsePointer, setHasCoarsePointer] = useState(detectCoarsePointer);\n\n useEffect(() => {\n setHasCoarsePointer(detectCoarsePointer());\n\n // Listen for pointer capability changes (e.g., connecting/disconnecting a mouse)\n const mediaQuery = window.matchMedia(\"(pointer: coarse)\");\n const handleChange = (e: MediaQueryListEvent) => {\n setHasCoarsePointer(e.matches);\n };\n\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }, []);\n\n const isSmallScreen = !breakpoint?.md;\n const isMobile = isSmallScreen && hasCoarsePointer;\n\n return {\n view: isMobile ? \"mobile\" : \"desktop\",\n isMobile,\n isDesktop: !isMobile,\n };\n}\n","/**\n * Deep value equality for select option lists (and nested tree nodes).\n *\n * Compares arrays and plain objects by contents so a new array/object identity\n * with the same data is treated as unchanged. Functions and React elements are\n * compared by reference.\n */\nexport function areOptionsValueEqual(a: unknown, b: unknown): boolean {\n if (Object.is(a, b)) {\n return true;\n }\n\n if (typeof a !== typeof b || a === null || b === null) {\n return false;\n }\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n return a.every((item, index) => areOptionsValueEqual(item, b[index]));\n }\n\n if (isPlainObject(a) && isPlainObject(b)) {\n // Missing keys and explicit `undefined` are equal so spreads / defaults\n // like `{ ...option, disabled: undefined }` do not look like a change.\n const keys = new Set([...Object.keys(a), ...Object.keys(b)]);\n for (const key of keys) {\n if (!areOptionsValueEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n\n return false;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n return false;\n }\n // React elements and other exotic objects should not be walked.\n if (typeof (value as { $$typeof?: unknown }).$$typeof === \"symbol\") {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n","import { useEffect, useRef } from \"react\";\nimport { areOptionsValueEqual } from \"../functions/areOptionsValueEqual\";\n\ntype InvalidatableHandle = {\n invalidate: () => void;\n};\n\n/**\n * Invalidates a select field/menu when its `options` *contents* change.\n *\n * A new array (or tree) identity with the same data does not invalidate, so\n * consumers can pass inline option literals without triggering a reload.\n *\n * @param handleRef Ref to an imperative handle that exposes `invalidate`\n * @param options The current options value (flat list or tree)\n */\nexport function useInvalidateOnOptionsChange(\n handleRef: { current: InvalidatableHandle | null },\n options: unknown,\n): void {\n const prevOptionsRef = useRef(options);\n\n useEffect(() => {\n if (areOptionsValueEqual(prevOptionsRef.current, options)) {\n prevOptionsRef.current = options;\n return;\n }\n\n prevOptionsRef.current = options;\n handleRef.current?.invalidate();\n }, [handleRef, options]);\n}\n"],"names":["CheckboxChecked","CheckboxOutline","CheckboxIndeterminate","styles","OptionRow","OptionRowSideContent","Close"],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import { useState, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
const usePrefersColorScheme = () => {
|
|
4
|
-
const [systemPrefersDark, setSystemPrefersDark] = useState();
|
|
5
|
-
useEffect(() => {
|
|
6
|
-
function isSystemDark(event) {
|
|
7
|
-
setSystemPrefersDark(event.matches);
|
|
8
|
-
}
|
|
9
|
-
if (typeof window !== "undefined") {
|
|
10
|
-
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
11
|
-
if (mediaQuery?.addEventListener != null) {
|
|
12
|
-
mediaQuery.addEventListener("change", isSystemDark);
|
|
13
|
-
} else {
|
|
14
|
-
mediaQuery.addListener(isSystemDark);
|
|
15
|
-
}
|
|
16
|
-
return () => {
|
|
17
|
-
if (mediaQuery?.addEventListener != null) {
|
|
18
|
-
mediaQuery.removeEventListener("change", isSystemDark);
|
|
19
|
-
} else {
|
|
20
|
-
mediaQuery.removeListener(isSystemDark);
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
}, []);
|
|
25
|
-
return {
|
|
26
|
-
mode: systemPrefersDark ? "dark" : "light"
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export { usePrefersColorScheme as u };
|
|
31
|
-
//# sourceMappingURL=usePrefersColorScheme-_hT7dK7_.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"usePrefersColorScheme-_hT7dK7_.js","sources":["../src/hooks/usePrefersColorScheme/usePrefersColorScheme.ts"],"sourcesContent":["import { useEffect, useState } from \"react\";\n\n/**\n * Custom hook for detecting system color scheme preference.\n *\n * Features:\n * - Detects system dark/light mode preference\n * - Listens for changes in system color scheme\n * - Supports both modern and legacy event listeners\n * - Handles SSR environments gracefully\n * - Automatically cleans up event listeners\n * - Returns consistent light/dark mode values\n *\n * @returns Object containing current color scheme mode\n */\nexport const usePrefersColorScheme = (): { mode: \"light\" | \"dark\" } => {\n const [systemPrefersDark, setSystemPrefersDark] = useState<boolean>();\n\n useEffect(() => {\n function isSystemDark(event: { matches: boolean }) {\n setSystemPrefersDark(event.matches);\n }\n if (typeof window !== \"undefined\") {\n const mediaQuery = window.matchMedia(\"(prefers-color-scheme: dark)\");\n\n if (mediaQuery?.addEventListener != null) {\n mediaQuery.addEventListener(\"change\", isSystemDark);\n } else {\n mediaQuery.addListener(isSystemDark);\n }\n\n return () => {\n if (mediaQuery?.addEventListener != null) {\n mediaQuery.removeEventListener(\"change\", isSystemDark);\n } else {\n mediaQuery.removeListener(isSystemDark);\n }\n };\n }\n }, []);\n\n return {\n mode: systemPrefersDark ? \"dark\" : \"light\",\n };\n};\n"],"names":[],"mappings":";;AAeO,MAAM,wBAAwB,MAAkC;AACrE,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,QAAA,EAAkB;AAEpE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,SAAS,aAAa,KAAA,EAA6B;AACjD,MAAA,oBAAA,CAAqB,MAAM,OAAO,CAAA;AAAA,IACpC;AACA,IAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACjC,MAAA,MAAM,UAAA,GAAa,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA;AAEnE,MAAA,IAAI,UAAA,EAAY,oBAAoB,IAAA,EAAM;AACxC,QAAA,UAAA,CAAW,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAAA,MACpD,CAAA,MAAO;AACL,QAAA,UAAA,CAAW,YAAY,YAAY,CAAA;AAAA,MACrC;AAEA,MAAA,OAAO,MAAM;AACX,QAAA,IAAI,UAAA,EAAY,oBAAoB,IAAA,EAAM;AACxC,UAAA,UAAA,CAAW,mBAAA,CAAoB,UAAU,YAAY,CAAA;AAAA,QACvD,CAAA,MAAO;AACL,UAAA,UAAA,CAAW,eAAe,YAAY,CAAA;AAAA,QACxC;AAAA,MACF,CAAA;AAAA,IACF;AAAA,EACF,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,oBAAoB,MAAA,GAAS;AAAA,GACrC;AACF;;;;"}
|
package/dist/warning-c4Wj1rI4.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
|
|
3
|
-
const SvgWarning = (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: "M4.47 21h15.06c1.54 0 2.5-1.67 1.73-3L13.73 4.99c-.77-1.33-2.69-1.33-3.46 0L2.74 18c-.77 1.33.19 3 1.73 3zM12 14c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z" }));
|
|
4
|
-
|
|
5
|
-
export { SvgWarning as S };
|
|
6
|
-
//# sourceMappingURL=warning-c4Wj1rI4.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"warning-c4Wj1rI4.js","sources":["../../hammer-icon/mdi/round/warning.svg"],"sourcesContent":["import * as React from \"react\";\nconst SvgWarning = (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: \"M4.47 21h15.06c1.54 0 2.5-1.67 1.73-3L13.73 4.99c-.77-1.33-2.69-1.33-3.46 0L2.74 18c-.77 1.33.19 3 1.73 3zM12 14c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z\" }));\nexport default SvgWarning;\n"],"names":[],"mappings":";;AACK,MAAC,UAAU,GAAG,CAAC,KAAK,qBAAqB,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,kBAAkB,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,iMAAiM,EAAE,CAAC;;;;"}
|