@orioncactuscorp/ui 1.8.0 → 1.9.0
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/dist/components/Accordion/Accordion.css +1 -1
- package/dist/components/Button/Button.css +1 -1
- package/dist/components/Checkbox/Checkbox.css +1 -1
- package/dist/components/Modal/Modal.css +1 -1
- package/dist/components/Modal/Modal.js +696 -544
- package/dist/components/Modal/bottomSheetGeometry.js +88 -0
- package/dist/components/Modal/modalScrollArbitration.js +8 -7
- package/dist/components/Modal/snapPoints.js +9 -8
- package/dist/components/Modal/useModalContentBlockTransition.js +64 -0
- package/dist/components/Modal/useModalDrag.js +917 -788
- package/dist/components/Radio/Radio.css +1 -1
- package/dist/components/ScrollArea/ScrollArea.css +1 -1
- package/dist/components/ScrollArea/ScrollArea.js +250 -223
- package/dist/components/ScrollArea/useScrollAreaGeometryStabilizer.js +36 -0
- package/dist/components/TextButton/TextButton.css +1 -1
- package/dist/components/TextButton/TextButton.module.scss.js +8 -6
- package/dist/styles.css +7 -7
- package/dist/ui/src/components/Modal/Modal.d.ts +1 -1
- package/dist/ui/src/components/Modal/Modal.d.ts.map +1 -1
- package/dist/ui/src/components/Modal/bottomSheetGeometry.d.ts +36 -0
- package/dist/ui/src/components/Modal/bottomSheetGeometry.d.ts.map +1 -0
- package/dist/ui/src/components/Modal/index.d.ts +1 -1
- package/dist/ui/src/components/Modal/index.d.ts.map +1 -1
- package/dist/ui/src/components/Modal/modalScrollArbitration.d.ts +2 -1
- package/dist/ui/src/components/Modal/modalScrollArbitration.d.ts.map +1 -1
- package/dist/ui/src/components/Modal/snapPoints.d.ts +1 -0
- package/dist/ui/src/components/Modal/snapPoints.d.ts.map +1 -1
- package/dist/ui/src/components/Modal/types.d.ts +8 -0
- package/dist/ui/src/components/Modal/types.d.ts.map +1 -1
- package/dist/ui/src/components/Modal/useModalContentBlockTransition.d.ts +5 -0
- package/dist/ui/src/components/Modal/useModalContentBlockTransition.d.ts.map +1 -0
- package/dist/ui/src/components/Modal/useModalDrag.d.ts +5 -1
- package/dist/ui/src/components/Modal/useModalDrag.d.ts.map +1 -1
- package/dist/ui/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/ui/src/components/ScrollArea/useScrollAreaGeometryStabilizer.d.ts +11 -0
- package/dist/ui/src/components/ScrollArea/useScrollAreaGeometryStabilizer.d.ts.map +1 -0
- package/package.json +2 -1
- package/src/scss/mixins/_element.scss +161 -14
- package/src/scss/mixins/_element.test.ts +94 -5
- package/src/scss/mixins/_icon.scss +27 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ModalBodyProps, ModalCloseProps, ModalContentProps, ModalFooterProps, ModalHeaderProps, ModalNavigationSectionProps, ModalRootProps, ModalTriggerProps } from './types';
|
|
2
2
|
export declare function ModalRoot({ children, open, defaultOpen, modal, onOpenChange, canCloseAttempt: canCloseAttemptProp, onCloseAttempt, presentationState: presentationStateProp, defaultPresentationState, onPresentationStateChange, disablePointerDismissal, navigationDepth, dismissBehavior, }: ModalRootProps): import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export declare function ModalTrigger({ className, children, render, nativeButton, }: ModalTriggerProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
-
export declare function ModalContent({ className, children, variant, size, resize, backdrop, drag, peekable, snapPoints, defaultSnapPoint, snapPositions, defaultSnapPosition, initialFocus, peekHeight, closeThreshold, scrollLockTimeout, container, style, ...props }: ModalContentProps): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function ModalContent({ className, children, variant, size, resize, contentTransition, backdrop, drag, peekable, snapPoints, defaultSnapPoint, snapPositions, defaultSnapPosition, initialFocus, peekHeight, closeThreshold, scrollLockTimeout, container, style, ...props }: ModalContentProps): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
export declare function ModalHeader({ className, title, children, leadingContent, trailingContent, closeLabel, closeButton, handle, ref, ...props }: ModalHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
export declare function ModalNavigationSection({ className, title, children, expanded, defaultExpanded, onExpandedChange, disabled, forceMount, handle, headingLevel, indicator, titleAsDialogTitle, navigationProps, panelProps, panelContentProps, ref, style, ...props }: ModalNavigationSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
export declare function ModalBody({ className, children, layout, containerClassName, containerProps, ref, ...props }: ModalBodyProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EACV,cAAc,EAId,eAAe,EAEf,iBAAiB,EAGjB,gBAAgB,EAChB,gBAAgB,EAEhB,2BAA2B,EAG3B,cAAc,EAEd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAuSjB,wBAAgB,SAAS,CAAC,EACxB,QAAQ,EACR,IAAI,EACJ,WAAW,EACX,KAAY,EACZ,YAAY,EACZ,eAAe,EAAE,mBAAmB,EACpC,cAAc,EACd,iBAAiB,EAAE,qBAAqB,EACxC,wBAAoC,EACpC,yBAAyB,EACzB,uBAAuB,EACvB,eAAmB,EACnB,eAAe,GAChB,EAAE,cAAc,2CAkNhB;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAc,EACd,QAAQ,EACR,MAAM,EACN,YAAY,GACb,EAAE,iBAAiB,2CAsBnB;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAc,EACd,QAAQ,EACR,OAAoB,EACpB,IAAe,EACf,MAAkB,EAClB,iBAA0B,EAC1B,QAAiB,EACjB,IAAgB,EAChB,QAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EACT,EAAE,iBAAiB,2CAoiBnB;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAc,EACd,KAAK,EACL,QAAQ,EACR,cAAc,EACd,eAAe,EACf,UAAiB,EACjB,WAAkB,EAClB,MAAa,EACb,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,2CAqDlB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,SAAc,EACd,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,eAAsB,EACtB,gBAAgB,EAChB,QAAgB,EAChB,UAAiB,EACjB,MAAa,EACb,YAAgB,EAChB,SAAS,EACT,kBAAyB,EACzB,eAAe,EACf,UAAU,EACV,iBAAiB,EACjB,GAAG,EACH,KAAK,EACL,GAAG,KAAK,EACT,EAAE,2BAA2B,2CAqK7B;AAED,wBAAgB,SAAS,CAAC,EACxB,SAAc,EACd,QAAQ,EACR,MAAkB,EAClB,kBAAuB,EACvB,cAAc,EACd,GAAG,EACH,GAAG,KAAK,EACT,EAAE,cAAc,2CAgEhB;AAED,wBAAgB,WAAW,CAAC,EAC1B,SAAc,EACd,QAAQ,EACR,UAAmB,EACnB,GAAG,EACH,GAAG,KAAK,EACT,EAAE,gBAAgB,2CA8BlB;AAED,wBAAgB,UAAU,CAAC,EACzB,SAAc,EACd,QAA6B,EAC7B,KAAY,EACZ,IAAS,EACT,QAAQ,EACR,OAAO,EACP,GAAG,KAAK,EACT,EAAE,eAAe,2CAsBjB;AAED,QAAA,MAAM,KAAK;;;;;;;;;CAST,CAAC;AAEH,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type BottomSheetRestState = {
|
|
2
|
+
kind: 'default-snap';
|
|
3
|
+
} | {
|
|
4
|
+
index: number;
|
|
5
|
+
kind: 'snap';
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'expanded';
|
|
8
|
+
} | {
|
|
9
|
+
kind: 'custom';
|
|
10
|
+
};
|
|
11
|
+
export interface BottomSheetRestStateOptions {
|
|
12
|
+
defaultTranslate: number;
|
|
13
|
+
sheetHeight: number;
|
|
14
|
+
snapHeights: readonly number[];
|
|
15
|
+
translate: number;
|
|
16
|
+
}
|
|
17
|
+
export interface ResizedBottomSheetTranslateOptions {
|
|
18
|
+
currentTranslate: number;
|
|
19
|
+
fallbackTranslate: number;
|
|
20
|
+
restState: BottomSheetRestState;
|
|
21
|
+
previousDefaultTranslate: number;
|
|
22
|
+
previousSheetHeight: number;
|
|
23
|
+
previousSnapHeights: readonly number[];
|
|
24
|
+
targetSheetHeight: number;
|
|
25
|
+
targetDefaultTranslate: number;
|
|
26
|
+
targetSnapHeights: readonly number[];
|
|
27
|
+
}
|
|
28
|
+
export interface ContentSizedBottomSheetHeightOptions {
|
|
29
|
+
contentHeight: number;
|
|
30
|
+
maxHeight?: number;
|
|
31
|
+
snapHeight?: number;
|
|
32
|
+
}
|
|
33
|
+
export declare function resolveContentSizedBottomSheetHeight({ contentHeight, maxHeight, snapHeight, }: ContentSizedBottomSheetHeightOptions): number;
|
|
34
|
+
export declare function resolveBottomSheetRestState({ defaultTranslate, sheetHeight, snapHeights, translate, }: BottomSheetRestStateOptions): BottomSheetRestState;
|
|
35
|
+
export declare function resolveResizedBottomSheetTranslate({ currentTranslate, fallbackTranslate, restState, previousDefaultTranslate, previousSheetHeight, previousSnapHeights, targetSheetHeight, targetDefaultTranslate, targetSnapHeights, }: ResizedBottomSheetTranslateOptions): number;
|
|
36
|
+
//# sourceMappingURL=bottomSheetGeometry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bottomSheetGeometry.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/bottomSheetGeometry.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,GACxB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GACpB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAEvB,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,kCAAkC;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,oBAAoB,CAAC;IAChC,wBAAwB,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,iBAAiB,EAAE,SAAS,MAAM,EAAE,CAAC;CACtC;AAED,MAAM,WAAW,oCAAoC;IACnD,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAuBD,wBAAgB,oCAAoC,CAAC,EACnD,aAAa,EACb,SAAS,EACT,UAAU,GACX,EAAE,oCAAoC,UAOtC;AAED,wBAAgB,2BAA2B,CAAC,EAC1C,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,SAAS,GACV,EAAE,2BAA2B,GAAG,oBAAoB,CAkCpD;AAED,wBAAgB,kCAAkC,CAAC,EACjD,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,wBAAwB,EACxB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,GAClB,EAAE,kCAAkC,UAyDpC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default, ModalBody, ModalClose, ModalContent, ModalFooter, ModalHeader, ModalNavigationSection, ModalRoot, ModalTrigger, } from './Modal';
|
|
2
|
-
export type { ModalBackdrop, ModalBodyLayout, ModalBodyProps, ModalCloseAttemptDetails, ModalCloseAttemptReason, ModalCloseProps, ModalContentProps, ModalDismissBehavior, ModalDismissBehaviorValue, ModalDrag, ModalFooterProps, ModalHeaderProps, ModalInitialFocus, ModalNavigationHeadingLevel, ModalNavigationSectionProps, ModalPlacement, ModalPresentationState, ModalResize, ModalRootProps, ModalSize, ModalSnapPoint, ModalSnapPosition, ModalTriggerProps, ModalVariant, } from './types';
|
|
2
|
+
export type { ModalBackdrop, ModalBodyLayout, ModalBodyProps, ModalCloseAttemptDetails, ModalCloseAttemptReason, ModalCloseProps, ModalContentTransition, ModalContentProps, ModalDismissBehavior, ModalDismissBehaviorValue, ModalDrag, ModalFooterProps, ModalHeaderProps, ModalInitialFocus, ModalNavigationHeadingLevel, ModalNavigationSectionProps, ModalPlacement, ModalPresentationState, ModalResize, ModalRootProps, ModalSize, ModalSnapPoint, ModalSnapPosition, ModalTriggerProps, ModalVariant, } from './types';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,aAAa,EACb,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,sBAAsB,EACtB,SAAS,EACT,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,aAAa,EACb,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EACjB,oBAAoB,EACpB,yBAAyB,EACzB,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,2BAA2B,EAC3B,2BAA2B,EAC3B,cAAc,EACd,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,SAAS,EACT,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GACb,MAAM,SAAS,CAAC"}
|
|
@@ -20,11 +20,12 @@ export declare function shouldLockModalBodyTouchScroll({ target, chrome, bodyNod
|
|
|
20
20
|
chrome: boolean;
|
|
21
21
|
bodyNode: HTMLElement | null;
|
|
22
22
|
}): boolean;
|
|
23
|
-
export declare function getBottomTouchDragDecision({ target, deltaY, chrome, bodyNode, }: {
|
|
23
|
+
export declare function getBottomTouchDragDecision({ target, deltaY, chrome, bodyNode, canExpand, }: {
|
|
24
24
|
target: EventTarget | null;
|
|
25
25
|
deltaY: number;
|
|
26
26
|
chrome: boolean;
|
|
27
27
|
bodyNode: HTMLElement | null;
|
|
28
|
+
canExpand?: boolean;
|
|
28
29
|
}): TouchDragDecision;
|
|
29
30
|
export declare function getPopupTouchDragDecision({ target, bodyNode, }: {
|
|
30
31
|
target: EventTarget | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modalScrollArbitration.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/modalScrollArbitration.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CAAC;AA6BH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAAG,IAAI,GACvB,IAAI,IAAI,WAAW,CAIrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,WAIrD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,WAMxD;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAAG,IAAI,GACvB,gBAAgB,CAMlB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,QAAQ,EAAE,WAAW,GAAG,IAAI,sBAY7B;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,EAAE,OAAO,QAUhB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,WA0BhE;AA+CD,wBAAgB,8BAA8B,CAAC,EAC7C,MAAM,EACN,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B,WAWA;AAED,wBAAgB,0BAA0B,CAAC,EACzC,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,
|
|
1
|
+
{"version":3,"file":"modalScrollArbitration.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/modalScrollArbitration.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe,EAAE,OAAO,CAAC;IACzB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC,CAAC;AA6BH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAAG,IAAI,GACvB,IAAI,IAAI,WAAW,CAIrB;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,WAIrD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,IAAI,WAMxD;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAAG,IAAI,GACvB,gBAAgB,CAMlB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,GAAG,IAAI,EACtB,QAAQ,EAAE,WAAW,GAAG,IAAI,sBAY7B;AAED,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,EAAE,OAAO,QAUhB;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,WA0BhE;AA+CD,wBAAgB,8BAA8B,CAAC,EAC7C,MAAM,EACN,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B,WAWA;AAED,wBAAgB,0BAA0B,CAAC,EACzC,MAAM,EACN,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,GACV,EAAE;IACD,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,GAAG,iBAAiB,CA6BpB;AAED,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;CAC9B,GAAG,iBAAiB,CAUpB"}
|
|
@@ -16,6 +16,7 @@ export declare function resolveModalSnapMetrics({ snapPoints, defaultSnapPoint,
|
|
|
16
16
|
}): {
|
|
17
17
|
snapHeights: number[];
|
|
18
18
|
sheetHeight: number;
|
|
19
|
+
defaultHeight: number;
|
|
19
20
|
visibleTranslate: number;
|
|
20
21
|
} | undefined;
|
|
21
22
|
export declare function resolveModalPopupSnapPositions({ defaultSnapPosition, snapPositions, surfaceMotion, }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snapPoints.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/snapPoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjE,MAAM,WAAW,yCAAyC;IACxD,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,iBAAiB,CAAC;IACvB,gBAAgB,CAAC,EAAE,yCAAyC,CAAC;IAC7D,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAaD,wBAAgB,uBAAuB,CAAC,EACtC,UAAU,EACV,gBAAgB,EAChB,cAAc,GACf,EAAE;IACD,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;CACxB
|
|
1
|
+
{"version":3,"file":"snapPoints.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/snapPoints.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjE,MAAM,WAAW,yCAAyC;IACxD,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,iBAAiB,CAAC;IACvB,gBAAgB,CAAC,EAAE,yCAAyC,CAAC;IAC7D,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAaD,wBAAgB,uBAAuB,CAAC,EACtC,UAAU,EACV,gBAAgB,EAChB,cAAc,GACf,EAAE;IACD,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;CACxB;;;;;cA0BA;AAkED,wBAAgB,8BAA8B,CAAC,EAC7C,mBAAmB,EACnB,aAAa,EACb,aAAa,GACd,EAAE;IACD,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC5C,aAAa,EAAE,WAAW,CAAC;CAC5B;;;;;;;;;cA2DA"}
|
|
@@ -5,6 +5,7 @@ export type ModalVariant = 'adaptive' | 'bottom' | 'popup' | 'full';
|
|
|
5
5
|
export type ModalPlacement = Exclude<ModalVariant, 'adaptive'>;
|
|
6
6
|
export type ModalSize = 'small' | 'medium' | 'large';
|
|
7
7
|
export type ModalResize = 'content' | 'fixed';
|
|
8
|
+
export type ModalContentTransition = 'auto' | 'none';
|
|
8
9
|
export type ModalBodyLayout = 'content' | 'fill';
|
|
9
10
|
export type ModalPresentationState = 'visible' | 'peeked';
|
|
10
11
|
export type ModalBackdrop = 'auto' | 'visible' | 'hidden';
|
|
@@ -85,6 +86,13 @@ export interface ModalContentProps extends Omit<React.ComponentPropsWithoutRef<'
|
|
|
85
86
|
variant?: ModalVariant;
|
|
86
87
|
size?: ModalSize;
|
|
87
88
|
resize?: ModalResize;
|
|
89
|
+
/**
|
|
90
|
+
* Animates ModalContent block-size changes caused by replacing depth views or
|
|
91
|
+
* other content. Popup surfaces animate their content block, while bottom
|
|
92
|
+
* sheets animate their geometry layer so sheet height and translate stay in
|
|
93
|
+
* one owner.
|
|
94
|
+
*/
|
|
95
|
+
contentTransition?: ModalContentTransition;
|
|
88
96
|
backdrop?: ModalBackdrop;
|
|
89
97
|
drag?: ModalDrag;
|
|
90
98
|
peekable?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC7E,OAAO,KAAK,EACV,+BAA+B,EAC/B,yBAAyB,EAC1B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AACpE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;AAC/D,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,OAAO,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,SAAS,GAAG,MAAM,CAAC;AACjD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC1D,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC1D,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AACrD,MAAM,MAAM,2BAA2B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;AACpD,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,MAAM,GACN,OAAO,GACP,KAAK,GACL,QAAQ,GACR,UAAU,GACV,WAAW,GACX,aAAa,GACb,cAAc,CAAC;AACnB,MAAM,MAAM,iBAAiB,GACzB,OAAO,CACL,KAAK,CAAC,wBAAwB,CAAC,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,EACvE,SAAS,CACV,GACD,SAAS,CAAC;AACd,MAAM,MAAM,yBAAyB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AACnE,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,yBAAyB,CAAC;IACjC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,MAAM,CAAC,EAAE,yBAAyB,CAAC;IACnC,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,WAAW,CAAC,EAAE,yBAAyB,CAAC;IACxC,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AACD,MAAM,MAAM,uBAAuB,GAC/B,cAAc,GACd,gBAAgB,GAChB,eAAe,GACf,YAAY,GACZ,WAAW,GACX,cAAc,GACd,cAAc,CAAC;AAEnB,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,uBAAuB,CAAC;IAChC,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,OAAO,GAAG,YAAY,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/D;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,GAAG,IAAI,CAAC;IACxE;;;;OAIG;IACH,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,wBAAwB,KAAK,OAAO,GAAG,IAAI,CAAC;IACvE,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,wBAAwB,CAAC,EAAE,sBAAsB,CAAC;IAClD,yBAAyB,CAAC,EAAE,CAC1B,iBAAiB,EAAE,sBAAsB,KACtC,IAAI,CAAC;IACV,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrD,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAC7C,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EACrC,UAAU,GAAG,WAAW,GAAG,OAAO,CACnC;IACC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAC5B,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,cAAc,CAAC;IAClC,aAAa,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACpC,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAC5C,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC,EACrC,OAAO,CACR;IACC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA4B,SAAQ,IAAI,CACvD,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,EACtC,OAAO,GAAG,UAAU,CACrB;IACC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,SAAS,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,eAAe,CAAC,EAAE,IAAI,CACpB,KAAK,CAAC,wBAAwB,CAAC,QAAQ,CAAC,EACxC,eAAe,GAAG,eAAe,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CACrE,CAAC;IACF,UAAU,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;IACrE,iBAAiB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;CAC7E;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAC1C,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,EAClC,UAAU,CACX;IACC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB,cAAc,CAAC,EAAE,IAAI,CACnB,KAAK,CAAC,wBAAwB,CAAC,SAAS,CAAC,EACzC,UAAU,GAAG,WAAW,GAAG,KAAK,CACjC,CAAC;IACF,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,KAAK,CAAC,qBAAqB,CAAC,QAAQ,CAAC;IAC7E,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,+BAA+B,EAC/B,UAAU,GAAG,MAAM,CACpB,GAAG;IACF,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useModalContentBlockTransition.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/useModalContentBlockTransition.ts"],"names":[],"mappings":"AAmBA,wBAAgB,8BAA8B,CAAC,EAC7C,OAAO,EACP,IAAI,GACL,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,WAAW,GAAG,IAAI,CAAC;CAC1B,QAoIA"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { default as React } from 'react';
|
|
2
2
|
import { ModalCloseAttemptDetails, ModalDrag, ModalPlacement, ModalSnapPosition } from './types';
|
|
3
|
-
export declare function useModalDrag({ enabled, drag, open, placement, surfaceMotionRef, backdropRef, bodyNode, snapHeights, snapPositions, defaultSnapPosition, peekHeight, peekFallback, presentationState, setPresentationState, requestClose, canCloseAttempt, dismissible, visibleTranslate, closeThreshold, scrollLockTimeout, popupSnapLayoutVersion, }: {
|
|
3
|
+
export declare function useModalDrag({ enabled, drag, open, placement, surfaceMotionRef, surfaceMotionNode, backdropRef, bodyNode, snapHeights, sheetHeight, snapPositions, defaultSnapPosition, peekHeight, peekFallback, presentationState, setPresentationState, requestClose, canCloseAttempt, dismissible, preserveShadowOpacity, visibleTranslate, shouldDeferBottomSettle, closeThreshold, scrollLockTimeout, popupSnapLayoutVersion, }: {
|
|
4
4
|
enabled: boolean;
|
|
5
5
|
drag: ModalDrag;
|
|
6
6
|
open: boolean;
|
|
7
7
|
placement: ModalPlacement;
|
|
8
8
|
surfaceMotionRef: React.RefObject<HTMLDivElement | null>;
|
|
9
|
+
surfaceMotionNode: HTMLDivElement | null;
|
|
9
10
|
backdropRef: React.RefObject<HTMLDivElement | null>;
|
|
10
11
|
bodyNode: HTMLElement | null;
|
|
11
12
|
snapHeights?: readonly number[];
|
|
13
|
+
sheetHeight?: number;
|
|
12
14
|
snapPositions?: readonly ModalSnapPosition[];
|
|
13
15
|
defaultSnapPosition?: ModalSnapPosition;
|
|
14
16
|
peekHeight?: number;
|
|
@@ -21,7 +23,9 @@ export declare function useModalDrag({ enabled, drag, open, placement, surfaceMo
|
|
|
21
23
|
}) => boolean;
|
|
22
24
|
canCloseAttempt: (details?: ModalCloseAttemptDetails) => boolean;
|
|
23
25
|
dismissible?: boolean;
|
|
26
|
+
preserveShadowOpacity?: boolean;
|
|
24
27
|
visibleTranslate?: number;
|
|
28
|
+
shouldDeferBottomSettle?: () => boolean;
|
|
25
29
|
closeThreshold?: number;
|
|
26
30
|
scrollLockTimeout?: number;
|
|
27
31
|
popupSnapLayoutVersion?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useModalDrag.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/useModalDrag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EACV,wBAAwB,EACxB,SAAS,EACT,cAAc,EACd,iBAAiB,EAClB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"useModalDrag.d.ts","sourceRoot":"","sources":["../../../../../src/components/Modal/useModalDrag.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EACV,wBAAwB,EACxB,SAAS,EACT,cAAc,EACd,iBAAiB,EAClB,MAAM,SAAS,CAAC;AA07BjB,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,QAAQ,EACR,WAAgC,EAChC,WAAW,EACX,aAAoC,EACpC,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,WAAkB,EAClB,qBAA6B,EAC7B,gBAAoB,EACpB,uBAAuB,EACvB,cAAqB,EACrB,iBAAuB,EACvB,sBAA0B,GAC3B,EAAE;IACD,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,cAAc,CAAC;IAC1B,gBAAgB,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACzD,iBAAiB,EAAE,cAAc,GAAG,IAAI,CAAC;IACzC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,QAAQ,EAAE,WAAW,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,QAAQ,CAAC;IACxB,iBAAiB,EAAE,SAAS,GAAG,QAAQ,CAAC;IACxC,oBAAoB,EAAE,CAAC,iBAAiB,EAAE,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC;IACxE,YAAY,EAAE,CACZ,OAAO,CAAC,EAAE,wBAAwB,EAClC,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,KAClD,OAAO,CAAC;IACb,eAAe,EAAE,CAAC,OAAO,CAAC,EAAE,wBAAwB,KAAK,OAAO,CAAC;IACjE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uBAAuB,CAAC,EAAE,MAAM,OAAO,CAAC;IACxC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;2BAw7CW,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;2BAmNlC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;yBAiNlC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;6BAAlC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;kCAWlC,KAAK,CAAC,YAAY,CAAC,cAAc,CAAC;0BA2IlC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;wBA0LhC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;;EA2I3C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScrollArea/ScrollArea.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"ScrollArea.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScrollArea/ScrollArea.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA4DzE,wBAAgB,UAAU,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,EAAE,EAC9D,EAAE,EACF,IAAY,EACZ,QAAQ,EACR,SAAc,EACd,GAAG,EACH,mBAAmB,EAAE,eAA+B,EACpD,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,CAAC,CAAC,GACnB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,MAAM,eAAe,CAAC,CAAC,CAAC,CAAC,2CA44BlE;AAED,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,KAAK,EAAE,EACvE,EAAE,EACF,QAAQ,EACR,SAAc,EACd,GAAG,EACH,mBAAmB,EAAE,eAAyC,EAC9D,GAAG,KAAK,EACT,EAAE,wBAAwB,CAAC,CAAC,CAAC,2CAyB7B;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
interface ScrollAreaGeometryStabilizerOptions {
|
|
2
|
+
enabled: boolean;
|
|
3
|
+
getGeometrySignature: () => string;
|
|
4
|
+
updateGeometry: () => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function useScrollAreaGeometryStabilizer({ enabled, getGeometrySignature, updateGeometry, }: ScrollAreaGeometryStabilizerOptions): {
|
|
7
|
+
cancelGeometryUpdate: () => void;
|
|
8
|
+
scheduleGeometryUpdate: () => void;
|
|
9
|
+
};
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=useScrollAreaGeometryStabilizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useScrollAreaGeometryStabilizer.d.ts","sourceRoot":"","sources":["../../../../../src/components/ScrollArea/useScrollAreaGeometryStabilizer.ts"],"names":[],"mappings":"AAQA,UAAU,mCAAmC;IAC3C,OAAO,EAAE,OAAO,CAAC;IACjB,oBAAoB,EAAE,MAAM,MAAM,CAAC;IACnC,cAAc,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,wBAAgB,+BAA+B,CAAC,EAC9C,OAAO,EACP,oBAAoB,EACpB,cAAc,GACf,EAAE,mCAAmC;;;EA4DrC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orioncactuscorp/ui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.9.0",
|
|
4
4
|
"description": "orioncactus UI foundations and core primitives",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
"test:run": "vitest run",
|
|
89
89
|
"test:coverage": "vitest run --coverage",
|
|
90
90
|
"test:e2e": "bun run --cwd ../.. build && bun run --cwd ../.. example:build && playwright test",
|
|
91
|
+
"test:e2e:ci": "bun run --cwd ../.. example:build && playwright test",
|
|
91
92
|
"storybook": "node ../../scripts/storybook-watchdog.mjs --cwd packages/ui --port 6006",
|
|
92
93
|
"storybook:direct": "storybook dev -p 6006",
|
|
93
94
|
"build-storybook": "storybook build"
|
|
@@ -57,53 +57,200 @@
|
|
|
57
57
|
@return math.div(math.floor($spread * $precision), $precision) * 1px;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
$oc-border-side-tokens: (top, right, bottom, left) !default;
|
|
61
|
+
$oc-border-placement-tokens: (inset, outer) !default;
|
|
62
|
+
$oc-border-style-tokens: (solid) !default;
|
|
63
|
+
|
|
64
|
+
@function _oc-border-is-side-token($value) {
|
|
65
|
+
@return $value == all or list.index($oc-border-side-tokens, $value) != null;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
@function _oc-border-is-placement-token($value) {
|
|
69
|
+
@return list.index($oc-border-placement-tokens, $value) != null;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
@function _oc-border-is-style-token($value) {
|
|
73
|
+
@return list.index($oc-border-style-tokens, $value) != null;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
@function _oc-border-list-looks-like-shorthand($value) {
|
|
77
|
+
@each $item in $value {
|
|
78
|
+
@if meta.type-of($item) == 'number' or _oc-border-is-side-token($item) or _oc-border-is-placement-token($item) or _oc-border-is-style-token($item) {
|
|
79
|
+
@return true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
@return false;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
@function _oc-border-flatten-args($args) {
|
|
87
|
+
$tokens: ();
|
|
88
|
+
|
|
89
|
+
@each $arg in $args {
|
|
90
|
+
@if meta.type-of($arg) == 'list' and list.separator($arg) == space and not list.is-bracketed($arg) and _oc-border-list-looks-like-shorthand($arg) {
|
|
91
|
+
@each $item in $arg {
|
|
92
|
+
$tokens: list.append($tokens, $item);
|
|
93
|
+
}
|
|
94
|
+
} @else {
|
|
95
|
+
$tokens: list.append($tokens, $arg);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@return $tokens;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
@function _oc-border-negative($width) {
|
|
103
|
+
@if meta.type-of($width) == 'number' {
|
|
104
|
+
@return -$width;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@return calc(#{$width} * -1);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@function _oc-border-shadow-item($width, $color, $side, $placement) {
|
|
111
|
+
@if $side == all {
|
|
112
|
+
@if $placement == inset {
|
|
113
|
+
@return inset 0 0 0 $width $color;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
@return 0 0 0 $width $color;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
@if $placement == inset {
|
|
120
|
+
@if $side == top {
|
|
121
|
+
@return inset 0 $width 0 0 $color;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@if $side == right {
|
|
125
|
+
@return inset _oc-border-negative($width) 0 0 0 $color;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
@if $side == bottom {
|
|
129
|
+
@return inset 0 _oc-border-negative($width) 0 0 $color;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
@return inset $width 0 0 0 $color;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
@if $side == top {
|
|
136
|
+
@return 0 _oc-border-negative($width) 0 0 $color;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
@if $side == right {
|
|
140
|
+
@return $width 0 0 0 $color;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
@if $side == bottom {
|
|
144
|
+
@return 0 $width 0 0 $color;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@return _oc-border-negative($width) 0 0 0 $color;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
@function _oc-border-shadow($width, $color, $sides, $placement) {
|
|
151
|
+
@if list.index($sides, all) != null {
|
|
152
|
+
@return _oc-border-shadow-item($width, $color, all, $placement);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
$shadows: ();
|
|
156
|
+
|
|
157
|
+
@each $side in $sides {
|
|
158
|
+
$shadows: list.append($shadows, _oc-border-shadow-item($width, $color, $side, $placement), comma);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
@return $shadows;
|
|
162
|
+
}
|
|
163
|
+
|
|
60
164
|
@function _oc-border-args($args) {
|
|
61
|
-
$
|
|
165
|
+
$tokens: _oc-border-flatten-args($args);
|
|
166
|
+
$count: list.length($tokens);
|
|
167
|
+
$width: null;
|
|
168
|
+
$color: null;
|
|
169
|
+
$sides: ();
|
|
170
|
+
$placement: inset;
|
|
62
171
|
|
|
63
172
|
@if $count == 0 {
|
|
64
|
-
@return (1px,
|
|
173
|
+
@return (1px, currentcolor, (all), inset);
|
|
65
174
|
}
|
|
66
175
|
|
|
67
|
-
@if $
|
|
68
|
-
$
|
|
176
|
+
@if list.length($args) == 2 and list.length(list.nth($args, 1)) == 1 and not _oc-border-is-side-token(list.nth($args, 1)) and not _oc-border-is-placement-token(list.nth($args, 1)) {
|
|
177
|
+
$second: list.nth($args, 2);
|
|
69
178
|
|
|
70
|
-
@if
|
|
71
|
-
@return ($
|
|
179
|
+
@if not _oc-border-is-side-token($second) and not _oc-border-is-placement-token($second) and not _oc-border-is-style-token($second) {
|
|
180
|
+
@return (list.nth($args, 1), $second, (all), inset);
|
|
72
181
|
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
@each $token in $tokens {
|
|
185
|
+
@if meta.type-of($token) == 'number' {
|
|
186
|
+
@if $width != null {
|
|
187
|
+
@error 'oc-border accepts only one width token.';
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
$width: $token;
|
|
191
|
+
} @else if _oc-border-is-side-token($token) {
|
|
192
|
+
@if $token == all {
|
|
193
|
+
$sides: (all);
|
|
194
|
+
} @else if list.index($sides, all) == null and list.index($sides, $token) == null {
|
|
195
|
+
$sides: list.append($sides, $token);
|
|
196
|
+
}
|
|
197
|
+
} @else if _oc-border-is-placement-token($token) {
|
|
198
|
+
@if $placement != inset and $placement != $token {
|
|
199
|
+
@error 'oc-border accepts only one placement token.';
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
$placement: $token;
|
|
203
|
+
} @else if _oc-border-is-style-token($token) {
|
|
204
|
+
// Box-shadow strokes only support solid rendering; the token is accepted for CSS border shorthand familiarity.
|
|
205
|
+
} @else {
|
|
206
|
+
@if $color != null {
|
|
207
|
+
@error 'oc-border accepts only one color token.';
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
$color: $token;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
@if $width == null {
|
|
215
|
+
$width: 1px;
|
|
216
|
+
}
|
|
73
217
|
|
|
74
|
-
|
|
218
|
+
@if $color == null {
|
|
219
|
+
$color: currentcolor;
|
|
75
220
|
}
|
|
76
221
|
|
|
77
|
-
@if $
|
|
78
|
-
|
|
222
|
+
@if list.length($sides) == 0 {
|
|
223
|
+
$sides: (all);
|
|
79
224
|
}
|
|
80
225
|
|
|
81
|
-
@
|
|
226
|
+
@return ($width, $color, $sides, $placement);
|
|
82
227
|
}
|
|
83
228
|
|
|
84
229
|
@mixin oc-border($args...) {
|
|
85
230
|
$resolved: _oc-border-args($args);
|
|
86
231
|
$width: list.nth($resolved, 1);
|
|
87
232
|
$color: list.nth($resolved, 2);
|
|
233
|
+
$sides: list.nth($resolved, 3);
|
|
234
|
+
$placement: list.nth($resolved, 4);
|
|
88
235
|
|
|
89
|
-
box-shadow:
|
|
236
|
+
box-shadow: _oc-border-shadow($width, $color, $sides, $placement);
|
|
90
237
|
|
|
91
238
|
@if _oc-border-is-half-px($width) {
|
|
92
239
|
/* stylelint-disable block-no-redundant-nested-style-rules, media-feature-range-notation -- WebKit rounds fractional inset strokes differently by DPR; nested selectors keep the correction scoped. */
|
|
93
240
|
@supports (-webkit-backdrop-filter: none) {
|
|
94
241
|
& {
|
|
95
|
-
box-shadow:
|
|
242
|
+
box-shadow: _oc-border-shadow(_oc-border-webkit-base-spread($width), $color, $sides, $placement);
|
|
96
243
|
}
|
|
97
244
|
|
|
98
245
|
@media only screen and (resolution: 2dppx) {
|
|
99
246
|
& {
|
|
100
|
-
box-shadow:
|
|
247
|
+
box-shadow: _oc-border-shadow(_oc-border-webkit-device-spread($width, 2), $color, $sides, $placement);
|
|
101
248
|
}
|
|
102
249
|
}
|
|
103
250
|
|
|
104
251
|
@media only screen and (resolution: 3dppx) {
|
|
105
252
|
& {
|
|
106
|
-
box-shadow:
|
|
253
|
+
box-shadow: _oc-border-shadow(_oc-border-webkit-device-spread($width, 3), $color, $sides, $placement);
|
|
107
254
|
}
|
|
108
255
|
}
|
|
109
256
|
}
|
|
@@ -2,7 +2,7 @@ import { compileString } from 'sass';
|
|
|
2
2
|
import { describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
4
|
describe('oc-border mixin', () => {
|
|
5
|
-
it('emits a 1px
|
|
5
|
+
it('emits a 1px currentcolor inset border by default', () => {
|
|
6
6
|
const result = compileString(
|
|
7
7
|
`
|
|
8
8
|
@use 'element' as *;
|
|
@@ -16,7 +16,7 @@ describe('oc-border mixin', () => {
|
|
|
16
16
|
},
|
|
17
17
|
);
|
|
18
18
|
|
|
19
|
-
expect(result.css).toContain('box-shadow: inset 0 0 0 1px
|
|
19
|
+
expect(result.css).toContain('box-shadow: inset 0 0 0 1px currentcolor;');
|
|
20
20
|
});
|
|
21
21
|
|
|
22
22
|
it('treats a single non-number argument as the border color', () => {
|
|
@@ -54,6 +54,76 @@ describe('oc-border mixin', () => {
|
|
|
54
54
|
expect(result.css).not.toContain('@supports');
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
+
it('accepts CSS-like space-separated border shorthand', () => {
|
|
58
|
+
const result = compileString(
|
|
59
|
+
`
|
|
60
|
+
@use 'element' as *;
|
|
61
|
+
|
|
62
|
+
.target {
|
|
63
|
+
@include oc-border(1px solid top outer var(--stroke));
|
|
64
|
+
}
|
|
65
|
+
`,
|
|
66
|
+
{
|
|
67
|
+
loadPaths: ['src/scss/mixins'],
|
|
68
|
+
},
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
expect(result.css).toContain('box-shadow: 0 -1px 0 0 var(--stroke);');
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it('accepts solid as a no-op style token for border shorthand familiarity', () => {
|
|
75
|
+
const result = compileString(
|
|
76
|
+
`
|
|
77
|
+
@use 'element' as *;
|
|
78
|
+
|
|
79
|
+
.target {
|
|
80
|
+
@include oc-border(1px solid black);
|
|
81
|
+
}
|
|
82
|
+
`,
|
|
83
|
+
{
|
|
84
|
+
loadPaths: ['src/scss/mixins'],
|
|
85
|
+
},
|
|
86
|
+
);
|
|
87
|
+
|
|
88
|
+
expect(result.css).toContain('box-shadow: inset 0 0 0 1px black;');
|
|
89
|
+
});
|
|
90
|
+
|
|
91
|
+
it('emits multiple side shadows in shorthand order', () => {
|
|
92
|
+
const result = compileString(
|
|
93
|
+
`
|
|
94
|
+
@use 'element' as *;
|
|
95
|
+
|
|
96
|
+
.target {
|
|
97
|
+
@include oc-border(1px top right var(--stroke));
|
|
98
|
+
}
|
|
99
|
+
`,
|
|
100
|
+
{
|
|
101
|
+
loadPaths: ['src/scss/mixins'],
|
|
102
|
+
},
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
expect(result.css).toContain(
|
|
106
|
+
'box-shadow: inset 0 1px 0 0 var(--stroke), inset -1px 0 0 0 var(--stroke);',
|
|
107
|
+
);
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
it('keeps comma-separated width and color calls compatible', () => {
|
|
111
|
+
const result = compileString(
|
|
112
|
+
`
|
|
113
|
+
@use 'element' as *;
|
|
114
|
+
|
|
115
|
+
.target {
|
|
116
|
+
@include oc-border(1px, var(--stroke));
|
|
117
|
+
}
|
|
118
|
+
`,
|
|
119
|
+
{
|
|
120
|
+
loadPaths: ['src/scss/mixins'],
|
|
121
|
+
},
|
|
122
|
+
);
|
|
123
|
+
|
|
124
|
+
expect(result.css).toContain('box-shadow: inset 0 0 0 1px var(--stroke);');
|
|
125
|
+
});
|
|
126
|
+
|
|
57
127
|
it('adds WebKit DPR correction for 1.5px borders', () => {
|
|
58
128
|
const result = compileString(
|
|
59
129
|
`
|
|
@@ -68,14 +138,33 @@ describe('oc-border mixin', () => {
|
|
|
68
138
|
},
|
|
69
139
|
);
|
|
70
140
|
|
|
71
|
-
expect(result.css).toContain('box-shadow: inset 0 0 0 1.5px
|
|
141
|
+
expect(result.css).toContain('box-shadow: inset 0 0 0 1.5px currentcolor;');
|
|
72
142
|
expect(result.css).toContain('@supports (-webkit-backdrop-filter: none)');
|
|
73
|
-
expect(result.css).toContain('box-shadow: inset 0 0 0 1px
|
|
143
|
+
expect(result.css).toContain('box-shadow: inset 0 0 0 1px currentcolor;');
|
|
74
144
|
expect(result.css).toContain('@media only screen and (resolution: 2dppx)');
|
|
75
145
|
expect(result.css).toContain('@media only screen and (resolution: 3dppx)');
|
|
76
146
|
expect(result.css).toContain(
|
|
77
|
-
'box-shadow: inset 0 0 0 1.6666px
|
|
147
|
+
'box-shadow: inset 0 0 0 1.6666px currentcolor;',
|
|
148
|
+
);
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
it('applies WebKit DPR correction to directional outer borders', () => {
|
|
152
|
+
const result = compileString(
|
|
153
|
+
`
|
|
154
|
+
@use 'element' as *;
|
|
155
|
+
|
|
156
|
+
.target {
|
|
157
|
+
@include oc-border(1.5px bottom outer var(--stroke));
|
|
158
|
+
}
|
|
159
|
+
`,
|
|
160
|
+
{
|
|
161
|
+
loadPaths: ['src/scss/mixins'],
|
|
162
|
+
},
|
|
78
163
|
);
|
|
164
|
+
|
|
165
|
+
expect(result.css).toContain('box-shadow: 0 1.5px 0 0 var(--stroke);');
|
|
166
|
+
expect(result.css).toContain('box-shadow: 0 1px 0 0 var(--stroke);');
|
|
167
|
+
expect(result.css).toContain('box-shadow: 0 1.6666px 0 0 var(--stroke);');
|
|
79
168
|
});
|
|
80
169
|
|
|
81
170
|
it('generalizes WebKit DPR correction for half-pixel borders', () => {
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Sizes an SvgIcon slot from the inherited line box.
|
|
2
|
+
// block-size(높이)만 line box 기준으로 잡고 inline-size는 auto라, SVG viewBox 비율대로
|
|
3
|
+
// 너비가 따라온다. 강제 1:1이 아니라 종횡비 보존.
|
|
4
|
+
// - $inset: line box에서 뺄 breathing room (raw em). 컴포넌트가 $inset-var CSS 변수로
|
|
5
|
+
// size별 override 가능하고, mixin 인자는 그 변수의 default다.
|
|
6
|
+
// - $fallback: `1lh` 미지원(pre-2023) 브라우저 전용. 생략 시 line height를 1.5em로
|
|
7
|
+
// 가정해 `1.5em - inset*2`로 자동 근사한다. 새 컴포넌트는 신경 쓸 필요 없다.
|
|
8
|
+
@mixin oc-icon-box($size-var, $inset-var, $inset: 0.1875em, $fallback: null) {
|
|
9
|
+
$inset-expr: var(#{$inset-var}, #{$inset});
|
|
10
|
+
$fallback-size: $fallback;
|
|
11
|
+
|
|
12
|
+
@if $fallback == null {
|
|
13
|
+
$fallback-size: calc(1.5em - (#{$inset-expr} * 2));
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
inline-size: auto;
|
|
17
|
+
|
|
18
|
+
// BEGIN 1lh fallback layer — `1lh`이 완전 baseline이 되면 이 base 선언과 @supports
|
|
19
|
+
// 래퍼를 지우고 @supports 안의 block-size 한 줄만 이 자리로 올리면 된다. call site 무영향.
|
|
20
|
+
block-size: var(#{$size-var}, #{$fallback-size});
|
|
21
|
+
@supports (block-size: 1lh) {
|
|
22
|
+
// stylelint-disable-next-line no-invalid-position-declaration -- mixin body는 항상 selector 안에서 @include된다
|
|
23
|
+
block-size: var(#{$size-var}, calc(1lh - (#{$inset-expr} * 2)));
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// END 1lh fallback layer — 위 base 선언 + @supports 래퍼만 삭제.
|
|
27
|
+
}
|