@servicetitan/anvil2 1.49.3 → 1.49.5
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 +28 -0
- package/dist/{Calendar-BkJs1qTF.js → Calendar-BP6r1sP9.js} +2 -2
- package/dist/{Calendar-BkJs1qTF.js.map → Calendar-BP6r1sP9.js.map} +1 -1
- package/dist/{Calendar-WHERvu2Y.js → Calendar-CLSm88D2.js} +2 -2
- package/dist/{Calendar-WHERvu2Y.js.map → Calendar-CLSm88D2.js.map} +1 -1
- package/dist/Calendar.js +2 -2
- package/dist/{Checkbox-Bhjj-jM4.js → Checkbox-DwuDx-t4.js} +4 -3
- package/dist/{Checkbox-Bhjj-jM4.js.map → Checkbox-DwuDx-t4.js.map} +1 -1
- package/dist/{Checkbox-C5Qjq_tU.js → Checkbox-PkAk1Saq.js} +2 -2
- package/dist/{Checkbox-C5Qjq_tU.js.map → Checkbox-PkAk1Saq.js.map} +1 -1
- package/dist/Checkbox.js +2 -2
- package/dist/Checkbox.module-D4EgXL0i.js +27 -0
- package/dist/Checkbox.module-D4EgXL0i.js.map +1 -0
- package/dist/Combobox-DNCq-jkq.js +4281 -0
- package/dist/Combobox-DNCq-jkq.js.map +1 -0
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-BkNCMaVu.js → DataTable-BIhmpU0v.js} +7 -7
- package/dist/{DataTable-BkNCMaVu.js.map → DataTable-BIhmpU0v.js.map} +1 -1
- package/dist/{DateField-BNleIuS8.js → DateField-DsGHTMZ1.js} +6 -6
- package/dist/{DateField-BNleIuS8.js.map → DateField-DsGHTMZ1.js.map} +1 -1
- package/dist/DateField.js +1 -1
- package/dist/{DateFieldRange-BBgvno-_.js → DateFieldRange-Ct979nxF.js} +7 -7
- package/dist/{DateFieldRange-BBgvno-_.js.map → DateFieldRange-Ct979nxF.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-Bcwkxogy.js → DateFieldSingle-frMHnRSg.js} +7 -7
- package/dist/{DateFieldSingle-Bcwkxogy.js.map → DateFieldSingle-frMHnRSg.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DnVJaBBq.js → DateFieldYearless-po9ieLod.js} +3 -3
- package/dist/{DateFieldYearless-DnVJaBBq.js.map → DateFieldYearless-po9ieLod.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BivGidsU.js → DateFieldYearlessRange-Dy8a8O1n.js} +3 -3
- package/dist/{DateFieldYearlessRange-BivGidsU.js.map → DateFieldYearlessRange-Dy8a8O1n.js.map} +1 -1
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-Dn6zHxpt.js → DaysOfTheWeek-2_k3T4n4.js} +3 -3
- package/dist/{DaysOfTheWeek-Dn6zHxpt.js.map → DaysOfTheWeek-2_k3T4n4.js.map} +1 -1
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Dialog-CxH4Vnbb.js → Dialog-BT7a5KNT.js} +46 -67
- package/dist/Dialog-BT7a5KNT.js.map +1 -0
- package/dist/Dialog.css +33 -27
- package/dist/Dialog.js +2 -1
- package/dist/Dialog.js.map +1 -1
- package/dist/DialogCancelButton-sTEfx5kf.js +50 -0
- package/dist/DialogCancelButton-sTEfx5kf.js.map +1 -0
- package/dist/{Drawer-BLfDJU-e.js → Drawer-scQFylHI.js} +41 -21
- package/dist/Drawer-scQFylHI.js.map +1 -0
- package/dist/Drawer.css +35 -25
- package/dist/Drawer.js +1 -1
- package/dist/{DrawerContext-D4tWTLVf.js → DrawerContext-Cs3k160L.js} +127 -2
- package/dist/{DrawerContext-D4tWTLVf.js.map → DrawerContext-Cs3k160L.js.map} +1 -1
- package/dist/{FieldLabel-CHMCV9wX.js → FieldLabel-BIStrC2x.js} +2 -2
- package/dist/{FieldLabel-CHMCV9wX.js.map → FieldLabel-BIStrC2x.js.map} +1 -1
- package/dist/FieldLabel.js +1 -1
- package/dist/{InputMask-Cd01c3Tj.js → InputMask-A5LDdyxL.js} +3 -3
- package/dist/{InputMask-Cd01c3Tj.js.map → InputMask-A5LDdyxL.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{ListView-CZ5T8bR1.js → ListView-5cRssdYI.js} +2 -2
- package/dist/{ListView-CZ5T8bR1.js.map → ListView-5cRssdYI.js.map} +1 -1
- package/dist/ListView.js +1 -1
- package/dist/{Menu-DUAfSImY.js → Menu-Cn2JJe1Y.js} +2 -2
- package/dist/{Menu-DUAfSImY.js.map → Menu-Cn2JJe1Y.js.map} +1 -1
- package/dist/Menu.js +1 -1
- package/dist/{NumberField-C62E56_v.js → NumberField-BUFymKV3.js} +2 -2
- package/dist/{NumberField-C62E56_v.js.map → NumberField-BUFymKV3.js.map} +1 -1
- package/dist/NumberField.js +1 -1
- package/dist/{Page-CGZQ-nsg.js → Page-Dgpz2WD7.js} +5 -5
- package/dist/{Page-CGZQ-nsg.js.map → Page-Dgpz2WD7.js.map} +1 -1
- package/dist/Page.js +1 -1
- package/dist/{Pagination-BHEEnNas.js → Pagination-CnF6yBr5.js} +2 -2
- package/dist/{Pagination-BHEEnNas.js.map → Pagination-CnF6yBr5.js.map} +1 -1
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-CIPg_ZgX.js → Popover-CcMDyKTj.js} +2 -2
- package/dist/{Popover-CIPg_ZgX.js.map → Popover-CcMDyKTj.js.map} +1 -1
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-CUpF9fFW.js → ProgressBar-R_UjSR4o.js} +2 -2
- package/dist/{ProgressBar-CUpF9fFW.js.map → ProgressBar-R_UjSR4o.js.map} +1 -1
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-CyCFna1X.js → Radio-CLR1m8N9.js} +2 -2
- package/dist/{Radio-CyCFna1X.js.map → Radio-CLR1m8N9.js.map} +1 -1
- package/dist/Radio.js +2 -2
- package/dist/{RadioGroup-DRS2EjVH.js → RadioGroup-m46C69uO.js} +2 -2
- package/dist/{RadioGroup-DRS2EjVH.js.map → RadioGroup-m46C69uO.js.map} +1 -1
- package/dist/{SelectCard-lBcnP5j5.js → SelectCard-DViLgRGh.js} +3 -3
- package/dist/{SelectCard-lBcnP5j5.js.map → SelectCard-DViLgRGh.js.map} +1 -1
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.d.ts +2 -0
- package/dist/SelectField.js +2 -0
- package/dist/SelectField.js.map +1 -0
- package/dist/SelectFieldSync-DF05HvD4.js +1009 -0
- package/dist/SelectFieldSync-DF05HvD4.js.map +1 -0
- package/dist/SelectFieldSync.css +168 -0
- package/dist/{SelectTrigger-qvoGCkb1.js → SelectTrigger-BSzOoRsu.js} +2 -2
- package/dist/{SelectTrigger-qvoGCkb1.js.map → SelectTrigger-BSzOoRsu.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-C4gebtca.js → SelectTriggerBase-CfmRIFRs.js} +17 -39
- package/dist/SelectTriggerBase-CfmRIFRs.js.map +1 -0
- package/dist/SelectTriggerBase.module-DUhQNr6j.js +33 -0
- package/dist/SelectTriggerBase.module-DUhQNr6j.js.map +1 -0
- package/dist/Table.js +1 -1
- package/dist/{TextField-CygbgVVt.js → TextField-B08U4_rt.js} +2 -2
- package/dist/{TextField-CygbgVVt.js.map → TextField-B08U4_rt.js.map} +1 -1
- package/dist/{TextField-CpVkZxMT.js → TextField-D29fTRGR.js} +2 -2
- package/dist/{TextField-CpVkZxMT.js.map → TextField-D29fTRGR.js.map} +1 -1
- package/dist/TextField.js +1 -1
- package/dist/{Textarea-DacevzmW.js → Textarea-Dl4w2-t0.js} +2 -2
- package/dist/{Textarea-DacevzmW.js.map → Textarea-Dl4w2-t0.js.map} +1 -1
- package/dist/Textarea.js +1 -1
- package/dist/{TimeField-BkOB5ESa.js → TimeField-Dpi3fMsn.js} +4 -4
- package/dist/{TimeField-BkOB5ESa.js.map → TimeField-Dpi3fMsn.js.map} +1 -1
- package/dist/TimeField.js +1 -1
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-Dg7M4W4U.js → Toaster-B0ogInIl.js} +23 -23
- package/dist/{Toaster-Dg7M4W4U.js.map → Toaster-B0ogInIl.js.map} +1 -1
- package/dist/{Toaster-BxbR-XcR.js → Toaster-CRNOANCk.js} +2 -2
- package/dist/{Toaster-BxbR-XcR.js.map → Toaster-CRNOANCk.js.map} +1 -1
- package/dist/Toaster.css +56 -53
- package/dist/{Toolbar-is5509wJ.js → Toolbar-CPldWSNJ.js} +11 -11
- package/dist/{Toolbar-is5509wJ.js.map → Toolbar-CPldWSNJ.js.map} +1 -1
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-CZsoFe6C.js → Tooltip-BbfLb3pI.js} +2 -2
- package/dist/{Tooltip-CZsoFe6C.js.map → Tooltip-BbfLb3pI.js.map} +1 -1
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-MHLlAdrH.js → YearlessDateInputWithPicker-LiMI-Oer.js} +4 -4
- package/dist/{YearlessDateInputWithPicker-MHLlAdrH.js.map → YearlessDateInputWithPicker-LiMI-Oer.js.map} +1 -1
- package/dist/assets/icons/st/titan_intelligence.svg +1 -1
- package/dist/assets/icons/st/transactional.svg +1 -0
- package/dist/assets/icons/st.ts +1 -0
- package/dist/beta/components/SelectField/SelectField.d.ts +2 -0
- package/dist/beta/components/SelectField/SelectFieldSync.d.ts +39 -0
- package/dist/beta/components/SelectField/index.d.ts +3 -0
- package/dist/beta/components/SelectField/internal/FieldDialog/FieldDialog.d.ts +8 -0
- package/dist/beta/components/SelectField/internal/FieldPopover/FieldPopover.d.ts +8 -0
- package/dist/beta/components/SelectField/internal/InView.d.ts +34 -0
- package/dist/beta/components/SelectField/internal/SelectFieldInput.d.ts +53 -0
- package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +28 -0
- package/dist/beta/components/SelectField/internal/SelectFieldList.d.ts +26 -0
- package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +14 -0
- package/dist/beta/components/SelectField/internal/useCombo.d.ts +30 -0
- package/dist/beta/components/SelectField/stories/SelectField.stories.data.d.ts +32 -0
- package/dist/beta/components/SelectField/types.d.ts +232 -0
- package/dist/beta/components/Table/types.d.ts +1 -1
- package/dist/beta/components/index.d.ts +1 -0
- package/dist/beta/hooks/index.d.ts +1 -0
- package/dist/beta/hooks/useAdaptiveView.d.ts +50 -0
- package/dist/beta/index.d.ts +1 -0
- package/dist/beta.js +5 -4
- package/dist/beta.js.map +1 -1
- package/dist/components/ButtonToggle/ButtonToggle.d.ts +1 -1
- package/dist/components/Dialog/Dialog.d.ts +3 -1
- package/dist/components/Dialog/DialogContent.d.ts +22 -2
- package/dist/components/Dialog/internal/DialogContext.d.ts +1 -0
- package/dist/components/Drawer/Drawer.d.ts +3 -1
- package/dist/components/Drawer/DrawerContent.d.ts +22 -3
- package/dist/components/Drawer/internal/DrawerContext.d.ts +4 -0
- package/dist/{indeterminate_check_box-RY9zr3xS.js → indeterminate_check_box-B4zobNlt.js} +2 -27
- package/dist/{indeterminate_check_box-RY9zr3xS.js.map → indeterminate_check_box-B4zobNlt.js.map} +1 -1
- package/dist/index.js +34 -33
- package/dist/index.js.map +1 -1
- package/dist/internal/hooks/index.d.ts +1 -0
- package/dist/internal/hooks/useDebouncedCallback/index.d.ts +1 -0
- package/dist/internal/hooks/useDebouncedCallback/useDebouncedCallback.d.ts +28 -0
- package/dist/internal/hooks/useSelectFieldLoading/index.d.ts +1 -0
- package/dist/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +102 -0
- package/dist/{Combobox-RjBDpgFV.js → match-sorter.esm-CtBw0MrM.js} +4 -4278
- package/dist/match-sorter.esm-CtBw0MrM.js.map +1 -0
- package/dist/useDialogScrollLock-BW-aVboo.js +41 -0
- package/dist/useDialogScrollLock-BW-aVboo.js.map +1 -0
- package/dist/{useInitialFocus-Cl_Txu7W.js → useInitialFocus-BpmW7pDB.js} +4 -41
- package/dist/useInitialFocus-BpmW7pDB.js.map +1 -0
- package/dist/{usePopoverSupport-CWTCDfN2.js → usePopoverSupport-CCSCHnit.js} +2 -2
- package/dist/{usePopoverSupport-CWTCDfN2.js.map → usePopoverSupport-CCSCHnit.js.map} +1 -1
- package/dist/{utils-aSAOVHjX.js → utils-CeT0omsG.js} +2 -2
- package/dist/{utils-aSAOVHjX.js.map → utils-CeT0omsG.js.map} +1 -1
- package/package.json +2 -2
- package/dist/Combobox-RjBDpgFV.js.map +0 -1
- package/dist/Dialog-CxH4Vnbb.js.map +0 -1
- package/dist/Drawer-BLfDJU-e.js.map +0 -1
- package/dist/SelectTriggerBase-C4gebtca.js.map +0 -1
- package/dist/useInitialFocus-Cl_Txu7W.js.map +0 -1
- /package/dist/{indeterminate_check_box.css → Checkbox.css} +0 -0
|
@@ -1,36 +1,37 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { useContext, forwardRef, useRef, useId, useCallback,
|
|
2
|
+
import { useContext, forwardRef, useState, useEffect, useRef, useId, useCallback, useMemo } from 'react';
|
|
3
3
|
import { S as SvgClose } from './close-DZj38AEh.js';
|
|
4
4
|
import { T as Text } from './Text-kPA-VzsB.js';
|
|
5
5
|
import { B as Button } from './Button-92_FKAyV.js';
|
|
6
|
-
import { a as DrawerContext } from './DrawerContext-
|
|
6
|
+
import { a as DrawerContext } from './DrawerContext-Cs3k160L.js';
|
|
7
7
|
import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
|
|
8
8
|
import { useTrackingId } from './useTrackingId.js';
|
|
9
9
|
import { c as cx } from './index-tZvMCc77.js';
|
|
10
|
-
import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-Dg7M4W4U.js';
|
|
11
|
-
import { u as useDialogTransitionStates, a as useKeyboardFocusables, b as useDialogScrollLock, c as useInitialFocus } from './useInitialFocus-Cl_Txu7W.js';
|
|
12
|
-
import { r as registerLayer, a as unregisterLayer, b as useOnClickOutside } from './useOnClickOutside-BDzuUjmY.js';
|
|
13
10
|
import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
|
|
11
|
+
import { a as ToastProvider, b as ToasterPopover, c as ToasterContent } from './Toaster-B0ogInIl.js';
|
|
12
|
+
import { u as useDialogTransitionStates, a as useKeyboardFocusables, b as useInitialFocus } from './useInitialFocus-BpmW7pDB.js';
|
|
13
|
+
import { u as useDialogScrollLock } from './useDialogScrollLock-BW-aVboo.js';
|
|
14
|
+
import { r as registerLayer, a as unregisterLayer, b as useOnClickOutside } from './useOnClickOutside-BDzuUjmY.js';
|
|
14
15
|
|
|
15
|
-
import './Drawer.css';const drawer = "
|
|
16
|
-
const container = "
|
|
17
|
-
const content = "
|
|
18
|
-
const header = "
|
|
19
|
-
const footer = "
|
|
20
|
-
const remove = "
|
|
21
|
-
const large = "
|
|
22
|
-
const sticky = "
|
|
16
|
+
import './Drawer.css';const drawer = "_drawer_k2741_2";
|
|
17
|
+
const container = "_container_k2741_29";
|
|
18
|
+
const content = "_content_k2741_41";
|
|
19
|
+
const header = "_header_k2741_47";
|
|
20
|
+
const footer = "_footer_k2741_70";
|
|
21
|
+
const remove = "_remove_k2741_87";
|
|
22
|
+
const large = "_large_k2741_96";
|
|
23
|
+
const sticky = "_sticky_k2741_99";
|
|
23
24
|
const styles = {
|
|
24
25
|
drawer: drawer,
|
|
25
26
|
container: container,
|
|
26
27
|
content: content,
|
|
27
28
|
header: header,
|
|
28
|
-
"close-container": "_close-
|
|
29
|
+
"close-container": "_close-container_k2741_63",
|
|
29
30
|
footer: footer,
|
|
30
31
|
remove: remove,
|
|
31
32
|
large: large,
|
|
32
33
|
sticky: sticky,
|
|
33
|
-
"close-button": "_close-
|
|
34
|
+
"close-button": "_close-button_k2741_115"
|
|
34
35
|
};
|
|
35
36
|
|
|
36
37
|
function useDrawerContext() {
|
|
@@ -78,6 +79,7 @@ DrawerCancelButton.displayName = "DrawerCancelButton";
|
|
|
78
79
|
const DrawerHeader = forwardRef(
|
|
79
80
|
(props, ref) => {
|
|
80
81
|
const { className, children } = props;
|
|
82
|
+
const { headerRef } = useDrawerContext();
|
|
81
83
|
const data = {
|
|
82
84
|
children: childrenToString(props.children)
|
|
83
85
|
};
|
|
@@ -93,7 +95,7 @@ const DrawerHeader = forwardRef(
|
|
|
93
95
|
className: drawerHeaderClasses,
|
|
94
96
|
"data-anv": "drawer-header",
|
|
95
97
|
"data-tracking-id": trackingId,
|
|
96
|
-
ref,
|
|
98
|
+
ref: useMergeRefs([ref, headerRef]),
|
|
97
99
|
children: [
|
|
98
100
|
/* @__PURE__ */ jsx(Text, { variant: "headline", el: "h1", children }),
|
|
99
101
|
/* @__PURE__ */ jsx("span", { className: styles["close-container"], children: /* @__PURE__ */ jsx(
|
|
@@ -136,14 +138,31 @@ DrawerFooter.displayName = "DrawerFooter";
|
|
|
136
138
|
|
|
137
139
|
const DrawerContent = forwardRef(
|
|
138
140
|
(props, ref) => {
|
|
139
|
-
const { className,
|
|
140
|
-
const
|
|
141
|
+
const { children, className, sticky = false, ...rest } = props;
|
|
142
|
+
const { headerRef } = useDrawerContext();
|
|
143
|
+
const [headerHeight, setHeaderHeight] = useState(0);
|
|
144
|
+
useEffect(() => {
|
|
145
|
+
const headerElement = headerRef?.current;
|
|
146
|
+
if (!sticky || !headerElement) return;
|
|
147
|
+
const updateHeight = () => {
|
|
148
|
+
setHeaderHeight(headerElement.offsetHeight || 0);
|
|
149
|
+
};
|
|
150
|
+
updateHeight();
|
|
151
|
+
const resizeObserver = new ResizeObserver(updateHeight);
|
|
152
|
+
resizeObserver.observe(headerElement);
|
|
153
|
+
return () => resizeObserver.disconnect();
|
|
154
|
+
}, [sticky, headerRef]);
|
|
155
|
+
const contentClassNames = cx(styles["content"], className, {
|
|
156
|
+
[styles["sticky"]]: sticky
|
|
157
|
+
});
|
|
158
|
+
const stickyStyle = sticky ? { top: `${headerHeight}px` } : void 0;
|
|
141
159
|
return /* @__PURE__ */ jsx(
|
|
142
160
|
"div",
|
|
143
161
|
{
|
|
144
|
-
className:
|
|
162
|
+
className: contentClassNames,
|
|
145
163
|
"data-anv": "drawer-content",
|
|
146
164
|
ref,
|
|
165
|
+
style: { ...stickyStyle, ...rest.style },
|
|
147
166
|
...rest,
|
|
148
167
|
children
|
|
149
168
|
}
|
|
@@ -178,6 +197,7 @@ const DrawerElement = forwardRef(
|
|
|
178
197
|
const elRef = useRef(null);
|
|
179
198
|
const contentRef = useRef(null);
|
|
180
199
|
const toasterRef = useRef(null);
|
|
200
|
+
const headerRef = useRef(null);
|
|
181
201
|
const combinedRef = useMergeRefs([elRef, ref]);
|
|
182
202
|
const id = useId();
|
|
183
203
|
const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {
|
|
@@ -264,7 +284,7 @@ const DrawerElement = forwardRef(
|
|
|
264
284
|
}
|
|
265
285
|
};
|
|
266
286
|
const contextValue = useMemo(() => {
|
|
267
|
-
return { close: () => onClose?.() };
|
|
287
|
+
return { close: () => onClose?.(), headerRef };
|
|
268
288
|
}, [onClose]);
|
|
269
289
|
return (
|
|
270
290
|
// dialog element does seem to be interactive on MDN guideline
|
|
@@ -376,4 +396,4 @@ const Drawer = Object.assign(DrawerElement, {
|
|
|
376
396
|
});
|
|
377
397
|
|
|
378
398
|
export { Drawer as D, DrawerCancelButton as a, DrawerFooter as b, DrawerHeader as c, DrawerContent as d };
|
|
379
|
-
//# sourceMappingURL=Drawer-
|
|
399
|
+
//# sourceMappingURL=Drawer-scQFylHI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer-scQFylHI.js","sources":["../src/components/Drawer/internal/useDrawerContext.ts","../src/components/Drawer/DrawerCancelButton.tsx","../src/components/Drawer/DrawerHeader.tsx","../src/components/Drawer/DrawerFooter.tsx","../src/components/Drawer/DrawerContent.tsx","../src/components/Drawer/Drawer.tsx"],"sourcesContent":["import { useContext } from \"react\";\nimport { DrawerContext } from \"./DrawerContext\";\n\n/**\n * Hook to access the drawer context.\n *\n * @returns The drawer context containing close function and ref\n * @throws Error if used outside of a DrawerContextProvider\n */\nexport function useDrawerContext() {\n const context = useContext(DrawerContext);\n if (!context) {\n throw new Error(\n \"useDrawerContext must be used within a DrawerContextProvider\",\n );\n }\n return context;\n}\n","import { MouseEvent, forwardRef } from \"react\";\nimport { Button, ButtonProps } from \"../Button\";\nimport { DataTrackingId } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/**\n * Props for the DrawerCancelButton component\n * @extends ButtonProps\n */\nexport type DrawerCancelButtonProps = ButtonProps & DataTrackingId;\n\n/**\n * A button component that automatically closes the drawer when clicked.\n *\n * Features:\n * - Automatically closes the drawer when clicked\n * - Extends Button component functionality\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard button props\n * - Proper focus management\n * - Can be used anywhere within the drawer context\n *\n * @example\n * <DrawerCancelButton appearance=\"ghost\" size=\"small\">\n * Cancel\n * </DrawerCancelButton>\n */\nexport const DrawerCancelButton = forwardRef<\n HTMLButtonElement,\n DrawerCancelButtonProps\n>((props, ref) => {\n const { onClick, ...rest } = props;\n const { close } = useDrawerContext();\n const data = {\n children: childrenToString(props.children),\n appearance: props.appearance,\n size: props.size,\n type: props.type,\n };\n\n const trackingId = useTrackingId({\n name: \"DrawerCancelButton\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const onClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n close();\n };\n return (\n <Button\n aria-label=\"Close drawer\"\n data-anv=\"drawer-cancel-button\"\n data-tracking-id={trackingId}\n onClick={onClickHandler}\n ref={ref}\n {...rest}\n />\n );\n});\n\nDrawerCancelButton.displayName = \"DrawerCancelButton\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport styles from \"./Drawer.module.scss\";\nimport { Text } from \"../Text\";\nimport { DrawerCancelButton } from \"./DrawerCancelButton\";\nimport cx from \"classnames\";\nimport { DataTrackingId } from \"../../types\";\nimport { childrenToString } from \"../../internal/functions\";\nimport { useTrackingId, useMergeRefs } from \"../../hooks\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/**\n * Props for the DrawerHeader component\n * @extends ComponentPropsWithoutRef<\"header\">\n */\nexport type DrawerHeaderProps = ComponentPropsWithoutRef<\"header\"> &\n DataTrackingId;\n\n/**\n * Header component for the drawer that displays a title and close button.\n *\n * Features:\n * - Displays the drawer title as a headline\n * - Includes an accessible close button\n * - Sticky positioning at the top of the drawer\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Automatic close functionality\n *\n * @example\n * <Drawer.Header>Settings</Drawer.Header>\n */\nexport const DrawerHeader = forwardRef<HTMLHeadElement, DrawerHeaderProps>(\n (props, ref) => {\n const { className, children } = props;\n const { headerRef } = useDrawerContext();\n const data = {\n children: childrenToString(props.children),\n };\n\n const trackingId = useTrackingId({\n name: \"DrawerHeader\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const drawerHeaderClasses = cx(styles.header, className);\n\n return (\n <header\n className={drawerHeaderClasses}\n data-anv=\"drawer-header\"\n data-tracking-id={trackingId}\n ref={useMergeRefs([ref, headerRef])}\n >\n <Text variant=\"headline\" el=\"h1\">\n {children}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DrawerCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close drawer\"\n data-anv=\"drawer-header-close-button\"\n icon={Close}\n />\n </span>\n </header>\n );\n },\n);\n\nDrawerHeader.displayName = \"DrawerHeader\";\n","import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport styles from \"./Drawer.module.scss\";\nimport cx from \"classnames\";\n\n/**\n * Props for the DrawerFooter component\n * @extends ComponentPropsWithoutRef<\"footer\">\n */\nexport type DrawerFooterProps = ComponentPropsWithoutRef<\"footer\"> & {\n /**\n * When true, the footer will stick to the bottom of the drawer.\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * Footer component for the drawer that displays action buttons and controls.\n *\n * Features:\n * - Flexible layout for action buttons and controls\n * - Optional sticky positioning at the bottom\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard footer element props\n * - Responsive design that adapts to content\n *\n * @example\n * <Drawer.Footer sticky>\n * <Button onClick={handleSave}>Save</Button>\n * <Button onClick={handleCancel}>Cancel</Button>\n * </Drawer.Footer>\n */\nexport const DrawerFooter = forwardRef<HTMLElement, DrawerFooterProps>(\n (props, ref) => {\n const { className, children, sticky = false, ...rest } = props;\n const drawerFooterClasses = cx(styles.footer, className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n return (\n <footer\n className={drawerFooterClasses}\n data-anv=\"drawer-footer\"\n ref={ref}\n {...rest}\n >\n {children}\n </footer>\n );\n },\n);\n\nDrawerFooter.displayName = \"DrawerFooter\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useEffect,\n useState,\n} from \"react\";\nimport styles from \"./Drawer.module.scss\";\nimport cx from \"classnames\";\nimport { useDrawerContext } from \"./internal/useDrawerContext\";\n\n/**\n * Props for the DrawerContent component\n * @extends ComponentPropsWithoutRef<\"div\">\n */\nexport type DrawerContentProps = ComponentPropsWithoutRef<\"div\"> & {\n /**\n * When true, the content will stick below the header during scroll.\n * @default false\n */\n sticky?: boolean;\n};\n\n/**\n * Content container for the drawer that holds the main content area.\n *\n * Features:\n * - Flexible content area with proper spacing\n * - Scrollable content when needed\n * - Optional sticky positioning below header\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard div element props\n * - Responsive design that adapts to content\n * - Proper focus management\n *\n * @example\n * // Basic content\n * <Drawer.Content>\n * <p>This is the main content of the drawer.</p>\n * </Drawer.Content>\n *\n * @example\n * // Sticky content (e.g., search field that remains visible while scrolling)\n * <Drawer.Content sticky>\n * <TextField placeholder=\"Filter results...\" />\n * </Drawer.Content>\n */\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(\n (props, ref) => {\n const { children, className, sticky = false, ...rest } = props;\n const { headerRef } = useDrawerContext();\n const [headerHeight, setHeaderHeight] = useState(0);\n\n useEffect(() => {\n const headerElement = headerRef?.current;\n if (!sticky || !headerElement) return;\n\n const updateHeight = () => {\n setHeaderHeight(headerElement.offsetHeight || 0);\n };\n\n updateHeight();\n const resizeObserver = new ResizeObserver(updateHeight);\n resizeObserver.observe(headerElement);\n\n return () => resizeObserver.disconnect();\n }, [sticky, headerRef]);\n\n const contentClassNames = cx(styles[\"content\"], className, {\n [styles[\"sticky\"]]: sticky,\n });\n\n const stickyStyle = sticky ? { top: `${headerHeight}px` } : undefined;\n\n return (\n <div\n className={contentClassNames}\n data-anv=\"drawer-content\"\n ref={ref}\n style={{ ...stickyStyle, ...rest.style }}\n {...rest}\n >\n {children}\n </div>\n );\n },\n);\n\nDrawerContent.displayName = \"DrawerContent\";\n","import styles from \"./Drawer.module.scss\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n useRef,\n useId,\n useCallback,\n useEffect,\n SyntheticEvent,\n KeyboardEvent,\n useMemo,\n} from \"react\";\nimport { DrawerHeader } from \"./DrawerHeader\";\nimport { DrawerFooter } from \"./DrawerFooter\";\nimport { DrawerContent } from \"./DrawerContent\";\nimport { DrawerCancelButton } from \"./DrawerCancelButton\";\nimport {\n OpenCloseTransitionStateEffects,\n useDialogScrollLock,\n useDialogTransitionStates,\n useKeyboardFocusables,\n useOnClickOutside,\n} from \"../../internal/hooks\";\nimport {\n FocusableElement,\n DisableCloseOnEscapeOrClickProps,\n Size,\n} from \"../../types\";\nimport { registerLayer, unregisterLayer } from \"../../internal/utils\";\nimport { useMergeRefs } from \"../../hooks\";\nimport cx from \"classnames\";\nimport { ToastProvider } from \"../Toast/internal/ToastProvider\";\nimport { ToasterPopover } from \"../Toast/internal/ToasterPopover\";\nimport { ToasterContent } from \"../Toast/internal/Toaster\";\nimport { DrawerContext } from \"./internal/DrawerContext\";\nimport { useInitialFocus } from \"../Dialog/internal/useInitialFocus\";\n\n/**\n * Props for the Drawer component\n * @extends ComponentPropsWithoutRef<\"dialog\">\n * @extends DialogTransitionStateEffects\n * @extends DisableCloseOnEscapeOrClickProps\n */\nexport type DrawerProps = ComponentPropsWithoutRef<\"dialog\"> &\n OpenCloseTransitionStateEffects &\n DisableCloseOnEscapeOrClickProps & {\n /**\n * The size of the drawer.\n * @default \"medium\"\n */\n size?: Extract<Size, \"medium\" | \"large\">;\n /**\n * Controls whether the drawer is open or closed.\n * @default false\n */\n open?: boolean;\n /**\n * Callback function called after the drawer is animated closed.\n */\n onClose?: () => void;\n /**\n * Callback function called when the drawer opens.\n * @deprecated Use onOpenAnimationStart or onOpenAnimationComplete instead\n */\n onOpen?: () => void;\n /**\n * Callback when clicking outside the drawer\n */\n onClickOutside?: (e: globalThis.MouseEvent) => void;\n /**\n * Enables scroll chaining behavior.\n * @link https://developer.mozilla.org/en-US/docs/Glossary/Scroll_chaining\n */\n enableScrollChaining?: boolean;\n /**\n * Given an array of focusable elements, return the initial focus target.\n * @param focusables - The focusable elements to pick from\n * @returns The initial focus target\n */\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n };\n\nconst DrawerElement = forwardRef<HTMLDialogElement, DrawerProps>(\n (props, ref) => {\n const {\n className,\n open = false,\n children,\n onOpen,\n onClose,\n // onCancel is destructured so that it is not passed to the dialog in ...rest\n onCancel,\n onKeyDown,\n disableCloseOnEscape = false,\n onClickOutside,\n disableCloseOnClickOutside = false,\n size = \"medium\",\n enableScrollChaining,\n onOpenAnimationStart,\n onOpenAnimationComplete,\n onCloseAnimationStart,\n onCloseAnimationComplete,\n initialFocusResolver,\n ...rest\n } = props;\n\n const elRef = useRef<HTMLDialogElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const toasterRef = useRef<HTMLDivElement>(null);\n const headerRef = useRef<HTMLElement>(null);\n const combinedRef = useMergeRefs([elRef, ref]);\n const id = useId();\n\n const { state, isOpenOrOpening } = useDialogTransitionStates(elRef, open, {\n onOpenAnimationStart: useCallback(() => {\n onOpenAnimationStart?.();\n }, [onOpenAnimationStart]),\n onOpenAnimationComplete: useCallback(() => {\n onOpenAnimationComplete?.();\n onOpen?.(); // DEPRECATED\n }, [onOpen, onOpenAnimationComplete]),\n onCloseAnimationStart: useCallback(() => {\n onCloseAnimationStart?.();\n }, [onCloseAnimationStart]),\n onCloseAnimationComplete: useCallback(() => {\n onCloseAnimationComplete?.();\n }, [onCloseAnimationComplete]),\n });\n\n const classNames = cx([styles.drawer], className, {\n [styles.remove]: state === \"closing\",\n [styles.large]: size === \"large\",\n });\n\n const { focusables } = useKeyboardFocusables(contentRef, {\n observeChange: false,\n });\n const firstFocusable = focusables?.[0];\n const lastFocusable = focusables?.[focusables.length - 1];\n\n useDialogScrollLock({\n open: isOpenOrOpening,\n id,\n enableScrollChaining,\n elementRef: elRef,\n });\n\n // Register/unregister with layer manager for proper stacking\n useEffect(() => {\n if (open) {\n registerLayer(id);\n } else {\n unregisterLayer(id);\n }\n\n // Cleanup when component unmounts\n return () => {\n unregisterLayer(id);\n };\n }, [open, id]);\n\n const computeFocus = useCallback((focusables: FocusableElement[]) => {\n return (\n focusables.find(\n (focusable) => focusable.dataset.anv !== \"drawer-header-close-button\",\n ) || focusables[0]\n );\n }, []);\n\n useInitialFocus(elRef, {\n computeFocus: initialFocusResolver || computeFocus,\n });\n\n const onCancelHandler = (e: SyntheticEvent<HTMLDialogElement>) => {\n e.preventDefault();\n\n if (disableCloseOnEscape) return;\n onClose?.();\n };\n\n useOnClickOutside({\n onOutsidePress: (e) => {\n if (!open) return;\n onClickOutside?.(e);\n },\n targets: [\n contentRef.current as HTMLElement,\n toasterRef.current as HTMLElement,\n ],\n onClose: () => {\n if (disableCloseOnClickOutside || !open) return;\n onClose?.();\n },\n layerId: id,\n });\n\n const onKeyDownHandler = (e: KeyboardEvent<HTMLDialogElement>) => {\n onKeyDown?.(e);\n if (e.code === \"Tab\") {\n if (e.shiftKey && e.target === firstFocusable) {\n e.preventDefault();\n (lastFocusable as HTMLElement)?.focus();\n return;\n }\n if (e.target === lastFocusable && !e.shiftKey) {\n e.preventDefault();\n (firstFocusable as HTMLElement)?.focus();\n return;\n }\n }\n };\n\n const contextValue = useMemo(() => {\n return { close: () => onClose?.(), headerRef };\n }, [onClose]);\n\n return (\n // dialog element does seem to be interactive on MDN guideline\n <dialog\n className={classNames}\n data-anv=\"drawer\"\n data-anv-scroll-chaining={enableScrollChaining}\n data-anv-transition-state={state}\n ref={combinedRef}\n onCancel={onCancelHandler}\n onKeyDown={onKeyDownHandler}\n {...rest}\n >\n <ToastProvider isDialogToaster={isOpenOrOpening}>\n <ToasterPopover>\n <ToasterContent id=\"drawer-toaster\" ref={toasterRef} />\n </ToasterPopover>\n </ToastProvider>\n <DrawerContext.Provider value={contextValue}>\n <section\n ref={contentRef}\n className={styles.container}\n data-open={isOpenOrOpening}\n >\n {children}\n </section>\n </DrawerContext.Provider>\n </dialog>\n );\n },\n);\nDrawerElement.displayName = \"Drawer\";\n\n/**\n * A slide-out drawer component that provides a modal-like experience from the side of the screen.\n *\n * Features:\n * - Slide-in animation from the side of the screen\n * - Keyboard navigation with focus trapping\n * - Escape key and click outside to close\n * - Configurable size variants (medium, large)\n * - Built-in toast support for notifications\n * - Automatic scroll locking when open\n * - Accessible with proper ARIA attributes\n * - Compound component structure with Header, Footer, Content, and CancelButton\n * - Transition state callbacks for animation control\n * - Optional scroll chaining support\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Drawer open={isOpen} onClose={handleClose} size=\"medium\">\n * <Drawer.Header>Settings</Drawer.Header>\n * <Drawer.Content>Drawer content goes here</Drawer.Content>\n * <Drawer.Footer>\n * <Button onClick={handleSave}>Save</Button>\n * <Drawer.CancelButton>Cancel</Drawer.CancelButton>\n * </Drawer.Footer>\n * </Drawer>\n */\nexport const Drawer = Object.assign(DrawerElement, {\n /**\n * Header component for the drawer that displays a title and close button.\n *\n * Features:\n * - Displays the drawer title as a headline\n * - Includes an accessible close button\n * - Sticky positioning at the top of the drawer\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Automatic close functionality\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Drawer.Header>Settings</Drawer.Header>\n */\n Header: DrawerHeader,\n /**\n * Footer component for the drawer that displays action buttons and controls.\n *\n * Features:\n * - Flexible layout for action buttons and controls\n * - Optional sticky positioning at the bottom\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard footer element props\n * - Responsive design that adapts to content\n *\n * @example\n * <Drawer.Footer sticky>\n * <Button onClick={handleSave}>Save</Button>\n * <Drawer.CancelButton>Cancel</Drawer.CancelButton>\n * </Drawer.Footer>\n */\n Footer: DrawerFooter,\n /**\n * Content container for the drawer that holds the main content area.\n *\n * Features:\n * - Flexible content area with proper spacing\n * - Scrollable content when needed\n * - Proper semantic HTML structure\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard div element props\n * - Responsive design that adapts to content\n * - Proper focus management\n *\n * @example\n * <Drawer.Content>\n * <p>This is the main content of the drawer.</p>\n * <p>It can contain any type of content.</p>\n * </Drawer.Content>\n */\n Content: DrawerContent,\n /**\n * A button component that automatically closes the drawer when clicked.\n *\n * Features:\n * - Automatically closes the drawer when clicked\n * - Extends Button component functionality\n * - Accessible with proper ARIA attributes\n * - Consistent styling with the design system\n * - Supports all standard button props\n * - Proper focus management\n * - Can be used anywhere within the drawer context\n * - Automatic tracking ID generation for analytics\n *\n * @example\n * <Drawer.CancelButton appearance=\"ghost\" size=\"small\">\n * Cancel\n * </Drawer.CancelButton>\n */\n CancelButton: DrawerCancelButton,\n});\n"],"names":["Close","focusables"],"mappings":"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"}
|
package/dist/Drawer.css
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
@layer starter, reset, base, state, application;
|
|
2
2
|
@layer base {
|
|
3
|
-
.
|
|
3
|
+
._drawer_k2741_2 {
|
|
4
4
|
border: none;
|
|
5
5
|
background: transparent;
|
|
6
6
|
padding-block: 0;
|
|
7
7
|
padding-inline: 0;
|
|
8
8
|
outline: none;
|
|
9
|
-
animation: _close-
|
|
9
|
+
animation: _close-drawer_k2741_1 2s forwards;
|
|
10
10
|
transition: width 200ms;
|
|
11
11
|
width: 35rem;
|
|
12
12
|
height: 100%;
|
|
@@ -21,13 +21,13 @@
|
|
|
21
21
|
--xpos: 10rem;
|
|
22
22
|
--drawer-padding: 1.5rem;
|
|
23
23
|
}
|
|
24
|
-
.
|
|
25
|
-
animation: _open-
|
|
24
|
+
._drawer_k2741_2[open] {
|
|
25
|
+
animation: _open-drawer_k2741_1 300ms forwards;
|
|
26
26
|
}
|
|
27
|
-
.
|
|
28
|
-
animation: _open-
|
|
27
|
+
._drawer_k2741_2[open]::backdrop {
|
|
28
|
+
animation: _open-backdrop_k2741_1 200ms forwards;
|
|
29
29
|
}
|
|
30
|
-
.
|
|
30
|
+
._drawer_k2741_2 ._container_k2741_29 {
|
|
31
31
|
font-family: var(--font-family-base, "Nunito Sans", sans-serif);
|
|
32
32
|
font-size: 100%;
|
|
33
33
|
color: var(--foreground-color, #141414);
|
|
@@ -39,13 +39,13 @@
|
|
|
39
39
|
overflow: auto;
|
|
40
40
|
overscroll-behavior: contain;
|
|
41
41
|
}
|
|
42
|
-
.
|
|
42
|
+
._drawer_k2741_2 ._container_k2741_29 ._content_k2741_41 {
|
|
43
43
|
flex-grow: 1;
|
|
44
44
|
font-size: 1rem;
|
|
45
45
|
padding: var(--drawer-padding);
|
|
46
46
|
isolation: isolate;
|
|
47
47
|
}
|
|
48
|
-
.
|
|
48
|
+
._header_k2741_47 {
|
|
49
49
|
position: sticky;
|
|
50
50
|
inset-block-start: 0;
|
|
51
51
|
display: flex;
|
|
@@ -57,18 +57,18 @@
|
|
|
57
57
|
font-size: 1rem;
|
|
58
58
|
z-index: 1;
|
|
59
59
|
}
|
|
60
|
-
.
|
|
60
|
+
._header_k2741_47 h1 {
|
|
61
61
|
margin-block: 0;
|
|
62
62
|
margin-inline: 0;
|
|
63
63
|
}
|
|
64
|
-
.
|
|
64
|
+
._header_k2741_47 ._close-container_k2741_63 {
|
|
65
65
|
display: flex;
|
|
66
66
|
justify-content: center;
|
|
67
67
|
align-items: center;
|
|
68
68
|
width: 1.5625rem;
|
|
69
69
|
height: 1.5625rem;
|
|
70
70
|
}
|
|
71
|
-
.
|
|
71
|
+
._footer_k2741_70 {
|
|
72
72
|
display: flex;
|
|
73
73
|
gap: 0.75rem;
|
|
74
74
|
justify-content: flex-end;
|
|
@@ -81,29 +81,39 @@
|
|
|
81
81
|
}
|
|
82
82
|
@layer state {
|
|
83
83
|
@media (prefers-reduced-motion: reduce) {
|
|
84
|
-
.
|
|
84
|
+
._drawer_k2741_2 {
|
|
85
85
|
--xpos: 0;
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
-
.
|
|
89
|
-
animation: _close-
|
|
88
|
+
._drawer_k2741_2._remove_k2741_87[open] {
|
|
89
|
+
animation: _close-drawer_k2741_1 300ms forwards;
|
|
90
90
|
}
|
|
91
|
-
.
|
|
92
|
-
animation: _close-
|
|
91
|
+
._drawer_k2741_2._remove_k2741_87[open]::backdrop {
|
|
92
|
+
animation: _close-backdrop_k2741_1 200ms forwards;
|
|
93
93
|
}
|
|
94
|
-
.
|
|
94
|
+
._drawer_k2741_2::backdrop {
|
|
95
95
|
background: #040404;
|
|
96
96
|
}
|
|
97
|
-
.
|
|
97
|
+
._drawer_k2741_2._large_k2741_96 {
|
|
98
98
|
width: 48rem;
|
|
99
99
|
}
|
|
100
|
-
.
|
|
100
|
+
._drawer_k2741_2 ._content_k2741_41._sticky_k2741_99 {
|
|
101
|
+
position: sticky;
|
|
102
|
+
flex-grow: 0;
|
|
103
|
+
z-index: 1;
|
|
104
|
+
background-color: var(--background-color, #ffffff);
|
|
105
|
+
padding-block-end: 0.25rem;
|
|
106
|
+
}
|
|
107
|
+
._drawer_k2741_2 ._content_k2741_41._sticky_k2741_99 + ._content_k2741_41 {
|
|
108
|
+
padding-block-start: 0.25rem;
|
|
109
|
+
}
|
|
110
|
+
._drawer_k2741_2 ._footer_k2741_70._sticky_k2741_99 {
|
|
101
111
|
position: sticky;
|
|
102
112
|
inset-block-end: 0;
|
|
103
113
|
}
|
|
104
114
|
}
|
|
105
115
|
@layer application {
|
|
106
|
-
.
|
|
116
|
+
._drawer_k2741_2 ._header_k2741_47 ._close-button_k2741_115 {
|
|
107
117
|
color: var(--foreground-color, #141414);
|
|
108
118
|
}
|
|
109
119
|
}
|
|
@@ -111,7 +121,7 @@
|
|
|
111
121
|
overflow: hidden;
|
|
112
122
|
}
|
|
113
123
|
|
|
114
|
-
@keyframes _open-
|
|
124
|
+
@keyframes _open-drawer_k2741_1 {
|
|
115
125
|
from {
|
|
116
126
|
opacity: 0;
|
|
117
127
|
transform: translateX(var(--xpos));
|
|
@@ -121,7 +131,7 @@
|
|
|
121
131
|
transform: translateX(0%);
|
|
122
132
|
}
|
|
123
133
|
}
|
|
124
|
-
@keyframes _close-
|
|
134
|
+
@keyframes _close-drawer_k2741_1 {
|
|
125
135
|
from {
|
|
126
136
|
opacity: 1;
|
|
127
137
|
transform: translateX(0%);
|
|
@@ -131,7 +141,7 @@
|
|
|
131
141
|
transform: translateX(var(--xpos));
|
|
132
142
|
}
|
|
133
143
|
}
|
|
134
|
-
@keyframes _open-
|
|
144
|
+
@keyframes _open-backdrop_k2741_1 {
|
|
135
145
|
from {
|
|
136
146
|
opacity: 0;
|
|
137
147
|
}
|
|
@@ -139,7 +149,7 @@
|
|
|
139
149
|
opacity: 0.6;
|
|
140
150
|
}
|
|
141
151
|
}
|
|
142
|
-
@keyframes _close-
|
|
152
|
+
@keyframes _close-backdrop_k2741_1 {
|
|
143
153
|
from {
|
|
144
154
|
opacity: 0.6;
|
|
145
155
|
}
|
package/dist/Drawer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { D as Drawer, a as DrawerCancelButton, d as DrawerContent, b as DrawerFooter, c as DrawerHeader, D as default } from './Drawer-
|
|
1
|
+
export { D as Drawer, a as DrawerCancelButton, d as DrawerContent, b as DrawerFooter, c as DrawerHeader, D as default } from './Drawer-scQFylHI.js';
|
|
2
2
|
//# sourceMappingURL=Drawer.js.map
|
|
@@ -870,6 +870,9 @@ function isTypeableCombobox(element) {
|
|
|
870
870
|
* @see https://floating-ui.com/docs/virtual-elements
|
|
871
871
|
*/
|
|
872
872
|
|
|
873
|
+
const sides = ['top', 'right', 'bottom', 'left'];
|
|
874
|
+
const alignments = ['start', 'end'];
|
|
875
|
+
const placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + "-" + alignments[0], side + "-" + alignments[1]), []);
|
|
873
876
|
const min = Math.min;
|
|
874
877
|
const max = Math.max;
|
|
875
878
|
const round = Math.round;
|
|
@@ -1294,6 +1297,109 @@ const arrow$3 = options => ({
|
|
|
1294
1297
|
}
|
|
1295
1298
|
});
|
|
1296
1299
|
|
|
1300
|
+
function getPlacementList(alignment, autoAlignment, allowedPlacements) {
|
|
1301
|
+
const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);
|
|
1302
|
+
return allowedPlacementsSortedByAlignment.filter(placement => {
|
|
1303
|
+
if (alignment) {
|
|
1304
|
+
return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);
|
|
1305
|
+
}
|
|
1306
|
+
return true;
|
|
1307
|
+
});
|
|
1308
|
+
}
|
|
1309
|
+
/**
|
|
1310
|
+
* Optimizes the visibility of the floating element by choosing the placement
|
|
1311
|
+
* that has the most space available automatically, without needing to specify a
|
|
1312
|
+
* preferred placement. Alternative to `flip`.
|
|
1313
|
+
* @see https://floating-ui.com/docs/autoPlacement
|
|
1314
|
+
*/
|
|
1315
|
+
const autoPlacement$2 = function (options) {
|
|
1316
|
+
if (options === void 0) {
|
|
1317
|
+
options = {};
|
|
1318
|
+
}
|
|
1319
|
+
return {
|
|
1320
|
+
name: 'autoPlacement',
|
|
1321
|
+
options,
|
|
1322
|
+
async fn(state) {
|
|
1323
|
+
var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;
|
|
1324
|
+
const {
|
|
1325
|
+
rects,
|
|
1326
|
+
middlewareData,
|
|
1327
|
+
placement,
|
|
1328
|
+
platform,
|
|
1329
|
+
elements
|
|
1330
|
+
} = state;
|
|
1331
|
+
const {
|
|
1332
|
+
crossAxis = false,
|
|
1333
|
+
alignment,
|
|
1334
|
+
allowedPlacements = placements,
|
|
1335
|
+
autoAlignment = true,
|
|
1336
|
+
...detectOverflowOptions
|
|
1337
|
+
} = evaluate(options, state);
|
|
1338
|
+
const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;
|
|
1339
|
+
const overflow = await detectOverflow(state, detectOverflowOptions);
|
|
1340
|
+
const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;
|
|
1341
|
+
const currentPlacement = placements$1[currentIndex];
|
|
1342
|
+
if (currentPlacement == null) {
|
|
1343
|
+
return {};
|
|
1344
|
+
}
|
|
1345
|
+
const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));
|
|
1346
|
+
|
|
1347
|
+
// Make `computeCoords` start from the right place.
|
|
1348
|
+
if (placement !== currentPlacement) {
|
|
1349
|
+
return {
|
|
1350
|
+
reset: {
|
|
1351
|
+
placement: placements$1[0]
|
|
1352
|
+
}
|
|
1353
|
+
};
|
|
1354
|
+
}
|
|
1355
|
+
const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];
|
|
1356
|
+
const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {
|
|
1357
|
+
placement: currentPlacement,
|
|
1358
|
+
overflows: currentOverflows
|
|
1359
|
+
}];
|
|
1360
|
+
const nextPlacement = placements$1[currentIndex + 1];
|
|
1361
|
+
|
|
1362
|
+
// There are more placements to check.
|
|
1363
|
+
if (nextPlacement) {
|
|
1364
|
+
return {
|
|
1365
|
+
data: {
|
|
1366
|
+
index: currentIndex + 1,
|
|
1367
|
+
overflows: allOverflows
|
|
1368
|
+
},
|
|
1369
|
+
reset: {
|
|
1370
|
+
placement: nextPlacement
|
|
1371
|
+
}
|
|
1372
|
+
};
|
|
1373
|
+
}
|
|
1374
|
+
const placementsSortedByMostSpace = allOverflows.map(d => {
|
|
1375
|
+
const alignment = getAlignment(d.placement);
|
|
1376
|
+
return [d.placement, alignment && crossAxis ?
|
|
1377
|
+
// Check along the mainAxis and main crossAxis side.
|
|
1378
|
+
d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :
|
|
1379
|
+
// Check only the mainAxis.
|
|
1380
|
+
d.overflows[0], d.overflows];
|
|
1381
|
+
}).sort((a, b) => a[1] - b[1]);
|
|
1382
|
+
const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,
|
|
1383
|
+
// Aligned placements should not check their opposite crossAxis
|
|
1384
|
+
// side.
|
|
1385
|
+
getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));
|
|
1386
|
+
const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];
|
|
1387
|
+
if (resetPlacement !== placement) {
|
|
1388
|
+
return {
|
|
1389
|
+
data: {
|
|
1390
|
+
index: currentIndex + 1,
|
|
1391
|
+
overflows: allOverflows
|
|
1392
|
+
},
|
|
1393
|
+
reset: {
|
|
1394
|
+
placement: resetPlacement
|
|
1395
|
+
}
|
|
1396
|
+
};
|
|
1397
|
+
}
|
|
1398
|
+
return {};
|
|
1399
|
+
}
|
|
1400
|
+
};
|
|
1401
|
+
};
|
|
1402
|
+
|
|
1297
1403
|
/**
|
|
1298
1404
|
* Optimizes the visibility of the floating element by flipping the `placement`
|
|
1299
1405
|
* in order to keep it in view when the preferred placement(s) will overflow the
|
|
@@ -2423,6 +2529,14 @@ function autoUpdate(reference, floating, update, options) {
|
|
|
2423
2529
|
*/
|
|
2424
2530
|
const offset$1 = offset$2;
|
|
2425
2531
|
|
|
2532
|
+
/**
|
|
2533
|
+
* Optimizes the visibility of the floating element by choosing the placement
|
|
2534
|
+
* that has the most space available automatically, without needing to specify a
|
|
2535
|
+
* preferred placement. Alternative to `flip`.
|
|
2536
|
+
* @see https://floating-ui.com/docs/autoPlacement
|
|
2537
|
+
*/
|
|
2538
|
+
const autoPlacement$1 = autoPlacement$2;
|
|
2539
|
+
|
|
2426
2540
|
/**
|
|
2427
2541
|
* Optimizes the visibility of the floating element by shifting it in order to
|
|
2428
2542
|
* keep it in view when it will overflow the clipping boundary.
|
|
@@ -2803,6 +2917,17 @@ const size = (options, deps) => ({
|
|
|
2803
2917
|
options: [options, deps]
|
|
2804
2918
|
});
|
|
2805
2919
|
|
|
2920
|
+
/**
|
|
2921
|
+
* Optimizes the visibility of the floating element by choosing the placement
|
|
2922
|
+
* that has the most space available automatically, without needing to specify a
|
|
2923
|
+
* preferred placement. Alternative to `flip`.
|
|
2924
|
+
* @see https://floating-ui.com/docs/autoPlacement
|
|
2925
|
+
*/
|
|
2926
|
+
const autoPlacement = (options, deps) => ({
|
|
2927
|
+
...autoPlacement$1(options),
|
|
2928
|
+
options: [options, deps]
|
|
2929
|
+
});
|
|
2930
|
+
|
|
2806
2931
|
/**
|
|
2807
2932
|
* Provides data to position an inner element of the floating element so that it
|
|
2808
2933
|
* appears centered to the reference element.
|
|
@@ -6595,5 +6720,5 @@ const DialogContext = createContext(null);
|
|
|
6595
6720
|
|
|
6596
6721
|
const DrawerContext = createContext(null);
|
|
6597
6722
|
|
|
6598
|
-
export { autoUpdate as A, computePosition as B, safeShowPopover as C, DialogContext as D, safeHidePopover as E, FloatingTree as F, useDelayGroup as G, FloatingArrow as H, useDelayGroupContext as I, arrow as J, useFocus as K, DrawerContext as a, useListItem as b, useFloatingTree as c, useFloatingParentNodeId as d, useFloatingNodeId as e, useFloating as f, flip as g, shift as h, size as i, useHover as j, safePolygon as k, limitShift as l, useClick as m, useRole as n, offset as o, useDismiss as p, useListNavigation as q, useTypeahead as r, supportsPopover as s, tabbable as t, useMergeRefs as u, useInteractions as v, FloatingNode as w, FloatingList as x, FloatingPortal as y, FloatingFocusManager as z };
|
|
6599
|
-
//# sourceMappingURL=DrawerContext-
|
|
6723
|
+
export { autoUpdate as A, computePosition as B, safeShowPopover as C, DialogContext as D, safeHidePopover as E, FloatingTree as F, useDelayGroup as G, FloatingArrow as H, useDelayGroupContext as I, arrow as J, useFocus as K, autoPlacement as L, DrawerContext as a, useListItem as b, useFloatingTree as c, useFloatingParentNodeId as d, useFloatingNodeId as e, useFloating as f, flip as g, shift as h, size as i, useHover as j, safePolygon as k, limitShift as l, useClick as m, useRole as n, offset as o, useDismiss as p, useListNavigation as q, useTypeahead as r, supportsPopover as s, tabbable as t, useMergeRefs as u, useInteractions as v, FloatingNode as w, FloatingList as x, FloatingPortal as y, FloatingFocusManager as z };
|
|
6724
|
+
//# sourceMappingURL=DrawerContext-Cs3k160L.js.map
|