@planningcenter/tapestry 3.8.1-rc.2 → 3.8.1-rc.4
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/modal/Modal.d.ts +4 -4
- package/dist/components/modal/Modal.d.ts.map +1 -1
- package/dist/components/modal/Modal.js +33 -89
- package/dist/components/modal/Modal.js.map +1 -1
- package/dist/index.css +63 -49
- package/dist/index.css.map +1 -1
- package/dist/reactRender.css +1008 -994
- package/dist/reactRender.css.map +1 -1
- package/dist/reactRenderLegacy.css +1008 -994
- package/dist/reactRenderLegacy.css.map +1 -1
- package/dist/unstable.css +63 -49
- package/dist/unstable.css.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./index.css";
|
|
2
|
-
import React, { type
|
|
2
|
+
import React, { type HTMLAttributes } from "react";
|
|
3
3
|
export type ModalSize = "sm" | "md" | "lg" | "xl";
|
|
4
4
|
export interface ModalProps {
|
|
5
5
|
/**
|
|
@@ -10,11 +10,11 @@ export interface ModalProps {
|
|
|
10
10
|
dismissible?: boolean;
|
|
11
11
|
/** Fires on every dismissal — Esc, backdrop, close button, or programmatic. */
|
|
12
12
|
onClose?: () => void;
|
|
13
|
-
/** Controls the
|
|
13
|
+
/** Controls the modal. */
|
|
14
14
|
open: boolean;
|
|
15
15
|
/** Default `'md'`. */
|
|
16
16
|
size?: ModalSize;
|
|
17
17
|
}
|
|
18
|
-
export type ModalElementProps = Omit<
|
|
19
|
-
export declare const Modal: React.ForwardRefExoticComponent<Omit<React.
|
|
18
|
+
export type ModalElementProps = Omit<HTMLAttributes<HTMLElement>, keyof ModalProps | "role"> & ModalProps;
|
|
19
|
+
export declare const Modal: React.ForwardRefExoticComponent<Omit<React.HTMLAttributes<HTMLElement>, "role" | keyof ModalProps> & ModalProps & React.RefAttributes<HTMLElement>>;
|
|
20
20
|
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAIpB,OAAO,KAAK,EAAE,EAEZ,KAAK,cAAc,EAIpB,MAAM,OAAO,CAAA;AAMd,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAA;AAEjD,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,0FAA0F;IAC1F,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,+EAA+E;IAC/E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,0BAA0B;IAC1B,IAAI,EAAE,OAAO,CAAA;IACb,sBAAsB;IACtB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB;AAED,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAClC,cAAc,CAAC,WAAW,CAAC,EAC3B,MAAM,UAAU,GAAG,MAAM,CAC1B,GACC,UAAU,CAAA;AAEZ,eAAO,MAAM,KAAK,qJAiFhB,CAAA"}
|
|
@@ -1,111 +1,55 @@
|
|
|
1
1
|
import { useId } from '../../utilities/useId.js';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import React__default, { forwardRef, useRef, useEffect, useCallback } from 'react';
|
|
4
|
+
import { Dialog } from 'react-aria-components/Dialog';
|
|
5
|
+
import { ModalOverlay, Modal as Modal$1 } from 'react-aria-components/Modal';
|
|
4
6
|
import { ModalContext } from './ModalContext.js';
|
|
5
7
|
|
|
6
|
-
function supportsRequestClose(dialogEl) {
|
|
7
|
-
return "requestClose" in dialogEl;
|
|
8
|
-
}
|
|
9
|
-
function supportsClosedBy(dialogEl) {
|
|
10
|
-
return "closedBy" in dialogEl;
|
|
11
|
-
}
|
|
12
|
-
function getActiveFocusableElement() {
|
|
13
|
-
return document.activeElement instanceof HTMLElement
|
|
14
|
-
? document.activeElement
|
|
15
|
-
: null;
|
|
16
|
-
}
|
|
17
|
-
function isBackdropClick(event, dialogEl) {
|
|
18
|
-
return event.target === dialogEl;
|
|
19
|
-
}
|
|
20
|
-
function closeViaRequestOrDirect(dialogEl, dismissible) {
|
|
21
|
-
const dialogWithRequestClose = dialogEl;
|
|
22
|
-
if (supportsRequestClose(dialogEl)) {
|
|
23
|
-
dialogWithRequestClose.requestClose?.();
|
|
24
|
-
}
|
|
25
|
-
else if (dismissible) {
|
|
26
|
-
dialogEl.close();
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
8
|
const Modal = forwardRef(function Modal({ children, className, dismissible = false, id, onClose, open, size = "md", ...restProps }, ref) {
|
|
30
9
|
const stableId = useId();
|
|
31
10
|
const modalId = id || `tds-modal-${stableId}`;
|
|
32
11
|
const titleId = `${modalId}-title`;
|
|
33
12
|
const subtitleId = `${modalId}-subtitle`;
|
|
34
|
-
const dialogRef = useRef(null);
|
|
35
|
-
const previouslyFocusedElementRef = useRef(null);
|
|
36
13
|
const onCloseRef = useRef(onClose);
|
|
37
|
-
const requestClose = () => {
|
|
38
|
-
const dialogEl = dialogRef.current;
|
|
39
|
-
if (dialogEl)
|
|
40
|
-
closeViaRequestOrDirect(dialogEl, dismissible);
|
|
41
|
-
};
|
|
42
|
-
const contextValue = { dismissible, requestClose, subtitleId, titleId };
|
|
43
14
|
useEffect(() => {
|
|
44
15
|
onCloseRef.current = onClose;
|
|
45
16
|
}, [onClose]);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
ref.current = element;
|
|
53
|
-
}
|
|
54
|
-
}, [ref]);
|
|
55
|
-
useEffect(() => {
|
|
56
|
-
const dialogEl = dialogRef.current;
|
|
57
|
-
if (!dialogEl)
|
|
17
|
+
// Tracks whether the current "open" has already been reported to
|
|
18
|
+
// `onClose`, so a dismiss gesture (Esc/backdrop/close button) and the
|
|
19
|
+
// `open=false` re-render it causes don't both fire the callback.
|
|
20
|
+
const reportedOpenRef = useRef(open);
|
|
21
|
+
const notifyClose = useCallback(() => {
|
|
22
|
+
if (!reportedOpenRef.current)
|
|
58
23
|
return;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
63
|
-
else if (!open && dialogEl.open) {
|
|
64
|
-
dialogEl.close();
|
|
65
|
-
}
|
|
66
|
-
}, [open]);
|
|
24
|
+
reportedOpenRef.current = false;
|
|
25
|
+
onCloseRef.current?.();
|
|
26
|
+
}, []);
|
|
67
27
|
useEffect(() => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
return;
|
|
71
|
-
const handleClose = () => {
|
|
72
|
-
onCloseRef.current?.();
|
|
73
|
-
previouslyFocusedElementRef.current?.focus();
|
|
74
|
-
previouslyFocusedElementRef.current = null;
|
|
75
|
-
};
|
|
76
|
-
const handleCancel = (event) => {
|
|
77
|
-
if (!dismissible)
|
|
78
|
-
event.preventDefault();
|
|
79
|
-
};
|
|
80
|
-
dialogEl.addEventListener("close", handleClose);
|
|
81
|
-
dialogEl.addEventListener("cancel", handleCancel);
|
|
82
|
-
let handleBackdropClick;
|
|
83
|
-
if (supportsClosedBy(dialogEl)) {
|
|
84
|
-
dialogEl.setAttribute("closedby", dismissible ? "any" : "none");
|
|
28
|
+
if (open) {
|
|
29
|
+
reportedOpenRef.current = true;
|
|
85
30
|
}
|
|
86
31
|
else {
|
|
87
|
-
|
|
88
|
-
if (isBackdropClick(event, dialogEl)) {
|
|
89
|
-
closeViaRequestOrDirect(dialogEl, dismissible);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
dialogEl.addEventListener("click", handleBackdropClick);
|
|
32
|
+
notifyClose();
|
|
93
33
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
"tds-modal--
|
|
104
|
-
"tds-modal--
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
34
|
+
}, [open, notifyClose]);
|
|
35
|
+
const contextValue = {
|
|
36
|
+
dismissible,
|
|
37
|
+
requestClose: notifyClose,
|
|
38
|
+
subtitleId,
|
|
39
|
+
titleId,
|
|
40
|
+
};
|
|
41
|
+
const frameClassName = classNames("tds-modal-frame", {
|
|
42
|
+
"tds-modal-frame--lg": size === "lg",
|
|
43
|
+
"tds-modal-frame--sm": size === "sm",
|
|
44
|
+
"tds-modal-frame--xl": size === "xl",
|
|
45
|
+
});
|
|
46
|
+
return (React__default.createElement(ModalOverlay, { className: "tds-modal-overlay", isDismissable: dismissible, isKeyboardDismissDisabled: !dismissible, isOpen: open, onOpenChange: (isOpen) => {
|
|
47
|
+
if (!isOpen)
|
|
48
|
+
notifyClose();
|
|
49
|
+
} },
|
|
50
|
+
React__default.createElement(Modal$1, { className: frameClassName },
|
|
51
|
+
React__default.createElement(Dialog, { ...restProps, ref: ref, "aria-describedby": subtitleId, "aria-labelledby": titleId, className: classNames("tds-modal", className), id: modalId },
|
|
52
|
+
React__default.createElement(ModalContext.Provider, { value: contextValue }, children)))));
|
|
109
53
|
});
|
|
110
54
|
Modal.displayName = "Modal";
|
|
111
55
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Modal.js","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport { useId } from \"@utilities/useId\"\nimport classNames from \"classnames\"\nimport React, {\n
|
|
1
|
+
{"version":3,"file":"Modal.js","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import \"./index.css\"\n\nimport { useId } from \"@utilities/useId\"\nimport classNames from \"classnames\"\nimport React, {\n forwardRef,\n type HTMLAttributes,\n useCallback,\n useEffect,\n useRef,\n} from \"react\"\nimport { Dialog } from \"react-aria-components/Dialog\"\nimport { Modal as AriaModal, ModalOverlay } from \"react-aria-components/Modal\"\n\nimport { ModalContext } from \"./ModalContext\"\n\nexport type ModalSize = \"sm\" | \"md\" | \"lg\" | \"xl\"\n\nexport interface ModalProps {\n /**\n * A `<ModalHeader>` followed by a `<ModalBody>` and a `<ModalFooter>`.\n */\n children: React.ReactNode\n /** Default `false`. `true` enables Esc, backdrop-click, and the close button together. */\n dismissible?: boolean\n /** Fires on every dismissal — Esc, backdrop, close button, or programmatic. */\n onClose?: () => void\n /** Controls the modal. */\n open: boolean\n /** Default `'md'`. */\n size?: ModalSize\n}\n\nexport type ModalElementProps = Omit<\n HTMLAttributes<HTMLElement>,\n keyof ModalProps | \"role\"\n> &\n ModalProps\n\nexport const Modal = forwardRef<HTMLElement, ModalElementProps>(function Modal(\n {\n children,\n className,\n dismissible = false,\n id,\n onClose,\n open,\n size = \"md\",\n ...restProps\n }: ModalElementProps,\n ref\n) {\n const stableId = useId()\n const modalId = id || `tds-modal-${stableId}`\n const titleId = `${modalId}-title`\n const subtitleId = `${modalId}-subtitle`\n\n const onCloseRef = useRef(onClose)\n useEffect(() => {\n onCloseRef.current = onClose\n }, [onClose])\n\n // Tracks whether the current \"open\" has already been reported to\n // `onClose`, so a dismiss gesture (Esc/backdrop/close button) and the\n // `open=false` re-render it causes don't both fire the callback.\n const reportedOpenRef = useRef(open)\n\n const notifyClose = useCallback(() => {\n if (!reportedOpenRef.current) return\n reportedOpenRef.current = false\n onCloseRef.current?.()\n }, [])\n\n useEffect(() => {\n if (open) {\n reportedOpenRef.current = true\n } else {\n notifyClose()\n }\n }, [open, notifyClose])\n\n const contextValue = {\n dismissible,\n requestClose: notifyClose,\n subtitleId,\n titleId,\n }\n\n const frameClassName = classNames(\"tds-modal-frame\", {\n \"tds-modal-frame--lg\": size === \"lg\",\n \"tds-modal-frame--sm\": size === \"sm\",\n \"tds-modal-frame--xl\": size === \"xl\",\n })\n\n return (\n <ModalOverlay\n className=\"tds-modal-overlay\"\n isDismissable={dismissible}\n isKeyboardDismissDisabled={!dismissible}\n isOpen={open}\n onOpenChange={(isOpen) => {\n if (!isOpen) notifyClose()\n }}\n >\n <AriaModal className={frameClassName}>\n <Dialog\n {...restProps}\n ref={ref}\n aria-describedby={subtitleId}\n aria-labelledby={titleId}\n className={classNames(\"tds-modal\", className)}\n id={modalId}\n >\n <ModalContext.Provider value={contextValue}>\n {children}\n </ModalContext.Provider>\n </Dialog>\n </AriaModal>\n </ModalOverlay>\n )\n})\n\nModal.displayName = \"Modal\"\n"],"names":["React","AriaModal"],"mappings":";;;;;;;AAuCO,MAAM,KAAK,GAAG,UAAU,CAAiC,SAAS,KAAK,CAC5E,EACE,QAAQ,EACR,SAAS,EACT,WAAW,GAAG,KAAK,EACnB,EAAE,EACF,OAAO,EACP,IAAI,EACJ,IAAI,GAAG,IAAI,EACX,GAAG,SAAS,EACM,EACpB,GAAG,EAAA;AAEH,IAAA,MAAM,QAAQ,GAAG,KAAK,EAAE;AACxB,IAAA,MAAM,OAAO,GAAG,EAAE,IAAI,CAAA,UAAA,EAAa,QAAQ,EAAE;AAC7C,IAAA,MAAM,OAAO,GAAG,CAAA,EAAG,OAAO,QAAQ;AAClC,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,OAAO,WAAW;AAExC,IAAA,MAAM,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC;IAClC,SAAS,CAAC,MAAK;AACb,QAAA,UAAU,CAAC,OAAO,GAAG,OAAO;AAC9B,IAAA,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;;;;AAKb,IAAA,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC;AAEpC,IAAA,MAAM,WAAW,GAAG,WAAW,CAAC,MAAK;QACnC,IAAI,CAAC,eAAe,CAAC,OAAO;YAAE;AAC9B,QAAA,eAAe,CAAC,OAAO,GAAG,KAAK;AAC/B,QAAA,UAAU,CAAC,OAAO,IAAI;IACxB,CAAC,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;QACb,IAAI,IAAI,EAAE;AACR,YAAA,eAAe,CAAC,OAAO,GAAG,IAAI;QAChC;aAAO;AACL,YAAA,WAAW,EAAE;QACf;AACF,IAAA,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAEvB,IAAA,MAAM,YAAY,GAAG;QACnB,WAAW;AACX,QAAA,YAAY,EAAE,WAAW;QACzB,UAAU;QACV,OAAO;KACR;AAED,IAAA,MAAM,cAAc,GAAG,UAAU,CAAC,iBAAiB,EAAE;QACnD,qBAAqB,EAAE,IAAI,KAAK,IAAI;QACpC,qBAAqB,EAAE,IAAI,KAAK,IAAI;QACpC,qBAAqB,EAAE,IAAI,KAAK,IAAI;AACrC,KAAA,CAAC;IAEF,QACEA,cAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EACX,SAAS,EAAC,mBAAmB,EAC7B,aAAa,EAAE,WAAW,EAC1B,yBAAyB,EAAE,CAAC,WAAW,EACvC,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,CAAC,MAAM,KAAI;AACvB,YAAA,IAAI,CAAC,MAAM;AAAE,gBAAA,WAAW,EAAE;QAC5B,CAAC,EAAA;AAED,QAAAA,cAAA,CAAA,aAAA,CAACC,OAAS,EAAA,EAAC,SAAS,EAAE,cAAc,EAAA;YAClCD,cAAA,CAAA,aAAA,CAAC,MAAM,OACD,SAAS,EACb,GAAG,EAAE,GAAG,EAAA,kBAAA,EACU,UAAU,EAAA,iBAAA,EACX,OAAO,EACxB,SAAS,EAAE,UAAU,CAAC,WAAW,EAAE,SAAS,CAAC,EAC7C,EAAE,EAAE,OAAO,EAAA;AAEX,gBAAAA,cAAA,CAAA,aAAA,CAAC,YAAY,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,YAAY,EAAA,EACvC,QAAQ,CACa,CACjB,CACC,CACC;AAEnB,CAAC;AAED,KAAK,CAAC,WAAW,GAAG,OAAO;;;;"}
|
package/dist/index.css
CHANGED
|
@@ -4985,76 +4985,90 @@ a.tds-dropdown-item:is(:hover, :active){
|
|
|
4985
4985
|
line-height:1.35;
|
|
4986
4986
|
}
|
|
4987
4987
|
|
|
4988
|
-
.tds-modal{
|
|
4989
|
-
|
|
4990
|
-
|
|
4991
|
-
|
|
4992
|
-
|
|
4993
|
-
|
|
4994
|
-
|
|
4995
|
-
|
|
4996
|
-
|
|
4988
|
+
.tds-modal-overlay{
|
|
4989
|
+
position:fixed;
|
|
4990
|
+
inset:0;
|
|
4991
|
+
z-index:1000;
|
|
4992
|
+
display:flex;
|
|
4993
|
+
align-items:center;
|
|
4994
|
+
justify-content:center;
|
|
4995
|
+
background:hsl(0 0% 0% / 40%);
|
|
4996
|
+
}
|
|
4997
4997
|
|
|
4998
|
-
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
padding-inline:0;
|
|
5002
|
-
background:var(--t-surface-color-card);
|
|
4998
|
+
.tds-modal-overlay[data-entering]{
|
|
4999
|
+
animation:tds-modal-overlay-fade var(--t-duration-300) var(--t-ease-out);
|
|
5000
|
+
}
|
|
5003
5001
|
|
|
5004
|
-
|
|
5005
|
-
|
|
5006
|
-
|
|
5002
|
+
.tds-modal-overlay[data-exiting]{
|
|
5003
|
+
animation:tds-modal-overlay-fade var(--t-duration-200) var(--t-ease-in) reverse;
|
|
5004
|
+
}
|
|
5007
5005
|
|
|
5008
|
-
|
|
5009
|
-
|
|
5010
|
-
|
|
5006
|
+
@keyframes tds-modal-overlay-fade{
|
|
5007
|
+
from{
|
|
5008
|
+
opacity:0;
|
|
5009
|
+
}
|
|
5011
5010
|
}
|
|
5012
5011
|
|
|
5013
|
-
.tds-modal
|
|
5014
|
-
|
|
5015
|
-
--tds-modal-backdrop-opacity:1;
|
|
5016
|
-
--tds-modal-scale:1;
|
|
5017
|
-
--tds-modal-transition-duration:var(--t-duration-300);
|
|
5018
|
-
--tds-modal-transition-timing-function:var(--t-ease-out);
|
|
5012
|
+
.tds-modal-frame{
|
|
5013
|
+
--tds-modal-width:600px;
|
|
5019
5014
|
|
|
5020
|
-
|
|
5021
|
-
|
|
5015
|
+
display:flex;
|
|
5016
|
+
justify-content:center;
|
|
5017
|
+
width:min(var(--tds-modal-width), calc(100% - 48px));
|
|
5018
|
+
}
|
|
5022
5019
|
|
|
5023
|
-
.tds-modal
|
|
5024
|
-
|
|
5025
|
-
opacity:var(--tds-modal-backdrop-opacity);
|
|
5026
|
-
transition:var(--tds-modal-backdrop-transition);
|
|
5020
|
+
.tds-modal-frame[data-entering]{
|
|
5021
|
+
animation:tds-modal-zoom var(--t-duration-300) var(--t-ease-out);
|
|
5027
5022
|
}
|
|
5028
5023
|
|
|
5029
|
-
|
|
5030
|
-
|
|
5031
|
-
--tds-modal-opacity:0;
|
|
5032
|
-
--tds-modal-scale:.96;
|
|
5024
|
+
.tds-modal-frame[data-exiting]{
|
|
5025
|
+
animation:tds-modal-zoom var(--t-duration-200) var(--t-ease-in) reverse;
|
|
5033
5026
|
}
|
|
5034
5027
|
|
|
5035
|
-
|
|
5036
|
-
|
|
5028
|
+
.tds-modal-frame--sm{
|
|
5029
|
+
--tds-modal-width:400px;
|
|
5030
|
+
}
|
|
5031
|
+
|
|
5032
|
+
.tds-modal-frame--lg{
|
|
5033
|
+
--tds-modal-width:800px;
|
|
5034
|
+
}
|
|
5035
|
+
|
|
5036
|
+
.tds-modal-frame--xl{
|
|
5037
|
+
--tds-modal-width:1000px;
|
|
5038
|
+
}
|
|
5039
|
+
|
|
5040
|
+
@keyframes tds-modal-zoom{
|
|
5041
|
+
from{
|
|
5042
|
+
opacity:0;
|
|
5043
|
+
scale:.96;
|
|
5037
5044
|
}
|
|
5038
5045
|
}
|
|
5039
5046
|
|
|
5040
5047
|
@media (prefers-reduced-motion: reduce){
|
|
5041
|
-
.tds-modal
|
|
5042
|
-
|
|
5043
|
-
|
|
5048
|
+
.tds-modal-overlay[data-entering],
|
|
5049
|
+
.tds-modal-overlay[data-exiting],
|
|
5050
|
+
.tds-modal-frame[data-entering],
|
|
5051
|
+
.tds-modal-frame[data-exiting]{
|
|
5052
|
+
animation:none;
|
|
5044
5053
|
}
|
|
5045
5054
|
}
|
|
5046
5055
|
|
|
5047
|
-
.tds-modal
|
|
5048
|
-
|
|
5049
|
-
|
|
5056
|
+
.tds-modal{
|
|
5057
|
+
display:flex;
|
|
5058
|
+
flex-direction:column;
|
|
5059
|
+
width:100%;
|
|
5060
|
+
padding-block:var(--t-spacing-3);
|
|
5061
|
+
padding-inline:0;
|
|
5062
|
+
background:var(--t-surface-color-card);
|
|
5050
5063
|
|
|
5051
|
-
|
|
5052
|
-
--
|
|
5064
|
+
border:0;
|
|
5065
|
+
border-radius:var(--t-border-radius-lg);
|
|
5066
|
+
box-shadow:0 4px 18px 0 #0003;
|
|
5053
5067
|
}
|
|
5054
5068
|
|
|
5055
|
-
.tds-modal
|
|
5056
|
-
|
|
5057
|
-
}
|
|
5069
|
+
.tds-modal:focus{
|
|
5070
|
+
outline:none;
|
|
5071
|
+
}
|
|
5058
5072
|
|
|
5059
5073
|
.tds-modal-header{
|
|
5060
5074
|
display:grid;
|