@mortenbrudvik/waveui 0.14.0 → 0.15.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/README.md +142 -32
- package/dist/components/data-display/InfoButton.cjs +1 -1
- package/dist/components/data-display/InfoButton.cjs.map +1 -1
- package/dist/components/data-display/InfoButton.mjs +90 -82
- package/dist/components/data-display/InfoButton.mjs.map +1 -1
- package/dist/components/data-display/InfoLabel.cjs +1 -1
- package/dist/components/data-display/InfoLabel.cjs.map +1 -1
- package/dist/components/data-display/InfoLabel.mjs +19 -18
- package/dist/components/data-display/InfoLabel.mjs.map +1 -1
- package/dist/components/feedback/MessageBarGroup.cjs +2 -0
- package/dist/components/feedback/MessageBarGroup.cjs.map +1 -0
- package/dist/components/feedback/MessageBarGroup.mjs +63 -0
- package/dist/components/feedback/MessageBarGroup.mjs.map +1 -0
- package/dist/components/feedback/ProgressBar.cjs +1 -1
- package/dist/components/feedback/ProgressBar.cjs.map +1 -1
- package/dist/components/feedback/ProgressBar.mjs +41 -39
- package/dist/components/feedback/ProgressBar.mjs.map +1 -1
- package/dist/components/feedback/Toaster.cjs +1 -1
- package/dist/components/feedback/Toaster.cjs.map +1 -1
- package/dist/components/feedback/Toaster.mjs +222 -216
- package/dist/components/feedback/Toaster.mjs.map +1 -1
- package/dist/components/layout/Accordion.cjs +1 -1
- package/dist/components/layout/Accordion.cjs.map +1 -1
- package/dist/components/layout/Accordion.mjs +124 -109
- package/dist/components/layout/Accordion.mjs.map +1 -1
- package/dist/components/layout/Carousel.cjs +1 -1
- package/dist/components/layout/Carousel.cjs.map +1 -1
- package/dist/components/layout/Carousel.mjs +207 -193
- package/dist/components/layout/Carousel.mjs.map +1 -1
- package/dist/components/layout/TabList.cjs +1 -1
- package/dist/components/layout/TabList.cjs.map +1 -1
- package/dist/components/layout/TabList.mjs +149 -108
- package/dist/components/layout/TabList.mjs.map +1 -1
- package/dist/components/layout/Tree.cjs.map +1 -1
- package/dist/components/layout/Tree.context.cjs +1 -1
- package/dist/components/layout/Tree.context.cjs.map +1 -1
- package/dist/components/layout/Tree.context.mjs +2 -1
- package/dist/components/layout/Tree.context.mjs.map +1 -1
- package/dist/components/layout/Tree.core.cjs +1 -1
- package/dist/components/layout/Tree.core.cjs.map +1 -1
- package/dist/components/layout/Tree.core.mjs +178 -165
- package/dist/components/layout/Tree.core.mjs.map +1 -1
- package/dist/components/layout/Tree.mjs.map +1 -1
- package/dist/components/navigation/Menu.popover.cjs +1 -1
- package/dist/components/navigation/Menu.popover.cjs.map +1 -1
- package/dist/components/navigation/Menu.popover.mjs +154 -168
- package/dist/components/navigation/Menu.popover.mjs.map +1 -1
- package/dist/components/navigation/Nav.cjs +1 -1
- package/dist/components/navigation/Nav.cjs.map +1 -1
- package/dist/components/navigation/Nav.mjs +156 -136
- package/dist/components/navigation/Nav.mjs.map +1 -1
- package/dist/components/navigation/NavDrawer.cjs +1 -1
- package/dist/components/navigation/NavDrawer.cjs.map +1 -1
- package/dist/components/navigation/NavDrawer.mjs +48 -45
- package/dist/components/navigation/NavDrawer.mjs.map +1 -1
- package/dist/components/overlays/Dialog.cjs +1 -1
- package/dist/components/overlays/Dialog.cjs.map +1 -1
- package/dist/components/overlays/Dialog.mjs +128 -122
- package/dist/components/overlays/Dialog.mjs.map +1 -1
- package/dist/components/overlays/Dialog.slots.cjs +1 -1
- package/dist/components/overlays/Dialog.slots.cjs.map +1 -1
- package/dist/components/overlays/Dialog.slots.mjs +12 -12
- package/dist/components/overlays/Dialog.slots.mjs.map +1 -1
- package/dist/components/overlays/Drawer.cjs.map +1 -1
- package/dist/components/overlays/Drawer.mjs.map +1 -1
- package/dist/components/overlays/Drawer.panel.cjs +1 -1
- package/dist/components/overlays/Drawer.panel.cjs.map +1 -1
- package/dist/components/overlays/Drawer.panel.mjs +97 -81
- package/dist/components/overlays/Drawer.panel.mjs.map +1 -1
- package/dist/components/overlays/Drawer.root.cjs +1 -1
- package/dist/components/overlays/Drawer.root.cjs.map +1 -1
- package/dist/components/overlays/Drawer.root.mjs +34 -31
- package/dist/components/overlays/Drawer.root.mjs.map +1 -1
- package/dist/components/overlays/Popover.cjs +1 -1
- package/dist/components/overlays/Popover.cjs.map +1 -1
- package/dist/components/overlays/Popover.mjs +231 -216
- package/dist/components/overlays/Popover.mjs.map +1 -1
- package/dist/components/overlays/TeachingPopover.cjs.map +1 -1
- package/dist/components/overlays/TeachingPopover.mjs.map +1 -1
- package/dist/components/overlays/TeachingPopover.parts.cjs +1 -1
- package/dist/components/overlays/TeachingPopover.parts.cjs.map +1 -1
- package/dist/components/overlays/TeachingPopover.parts.mjs +202 -173
- package/dist/components/overlays/TeachingPopover.parts.mjs.map +1 -1
- package/dist/components/overlays/TeachingPopover.root.cjs +1 -1
- package/dist/components/overlays/TeachingPopover.root.cjs.map +1 -1
- package/dist/components/overlays/TeachingPopover.root.mjs +108 -99
- package/dist/components/overlays/TeachingPopover.root.mjs.map +1 -1
- package/dist/components/overlays/Tooltip.cjs +1 -1
- package/dist/components/overlays/Tooltip.cjs.map +1 -1
- package/dist/components/overlays/Tooltip.mjs +66 -61
- package/dist/components/overlays/Tooltip.mjs.map +1 -1
- package/dist/components/provider/WaveProvider.cjs +1 -1
- package/dist/components/provider/WaveProvider.cjs.map +1 -1
- package/dist/components/provider/WaveProvider.mjs +26 -23
- package/dist/components/provider/WaveProvider.mjs.map +1 -1
- package/dist/hooks/useCollapsePresence.cjs +2 -0
- package/dist/hooks/useCollapsePresence.cjs.map +1 -0
- package/dist/hooks/useCollapsePresence.mjs +21 -0
- package/dist/hooks/useCollapsePresence.mjs.map +1 -0
- package/dist/hooks/useFocusBeforeClose.cjs +2 -0
- package/dist/hooks/useFocusBeforeClose.cjs.map +1 -0
- package/dist/hooks/useFocusBeforeClose.mjs +33 -0
- package/dist/hooks/useFocusBeforeClose.mjs.map +1 -0
- package/dist/hooks/useMotion.cjs +2 -0
- package/dist/hooks/useMotion.cjs.map +1 -0
- package/dist/hooks/useMotion.mjs +14 -0
- package/dist/hooks/useMotion.mjs.map +1 -0
- package/dist/hooks/usePresenceGroup.cjs +2 -0
- package/dist/hooks/usePresenceGroup.cjs.map +1 -0
- package/dist/hooks/usePresenceGroup.mjs +68 -0
- package/dist/hooks/usePresenceGroup.mjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +721 -131
- package/dist/index.d.ts +721 -131
- package/dist/index.mjs +136 -135
- package/dist/lib/classNames.cjs +1 -1
- package/dist/lib/classNames.cjs.map +1 -1
- package/dist/lib/classNames.mjs +101 -90
- package/dist/lib/classNames.mjs.map +1 -1
- package/dist/lib/motion.cjs +2 -0
- package/dist/lib/motion.cjs.map +1 -0
- package/dist/lib/motion.mjs +43 -0
- package/dist/lib/motion.mjs.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +2 -1
|
@@ -10,32 +10,34 @@ import { useIsClient as u } from "../../hooks/useIsClient.mjs";
|
|
|
10
10
|
import { usePresence as d } from "../../hooks/usePresence.mjs";
|
|
11
11
|
import { useModalLayer as f } from "../../hooks/useModalLayer.mjs";
|
|
12
12
|
import { Portal as p } from "../portal/Portal.mjs";
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import
|
|
17
|
-
import {
|
|
18
|
-
import
|
|
13
|
+
import { dialogBackdropMotion as m, dialogMotion as h } from "../../lib/motion.mjs";
|
|
14
|
+
import { useMotionClasses as g } from "../../hooks/useMotion.mjs";
|
|
15
|
+
import { getTabbableThrough as ee, usePopoverTabOrder as te } from "./Popover.shared.mjs";
|
|
16
|
+
import { ModalSurfaceContext as _, inertModalTrigger as v, useBackdropPress as ne, useModalClosePart as y, useModalDismiss as re, useModalOpenState as b, useModalOpener as ie, useModalTitle as x, useModalTrigger as S, useModalTriggerPart as C, useModalTriggerSession as w, useOpenInsideWarning as ae, useRaiseOnOpen as oe, useRequiredContext as T, useTitleRegistry as se, useUnnamedModalWarning as ce } from "./Dialog.shared.mjs";
|
|
17
|
+
import { ModalBackdrop as le, ModalCloseButton as ue } from "./Dialog.slots.mjs";
|
|
18
|
+
import * as E from "react";
|
|
19
|
+
import { Fragment as D, jsx as O, jsxs as k } from "react/jsx-runtime";
|
|
20
|
+
import { createPortal as de } from "react-dom";
|
|
19
21
|
//#region src/components/overlays/Dialog.tsx
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
var
|
|
22
|
+
var A = E.createContext(null);
|
|
23
|
+
A.displayName = "DialogContext";
|
|
24
|
+
var j = {
|
|
23
25
|
open: !1,
|
|
24
26
|
requestOpen: () => {},
|
|
25
27
|
modalType: "modal",
|
|
26
|
-
trigger:
|
|
28
|
+
trigger: v,
|
|
27
29
|
finalFocusRef: void 0,
|
|
28
30
|
unmountOnClose: !0,
|
|
29
31
|
contentId: void 0,
|
|
30
32
|
registerContentId: () => () => {}
|
|
31
33
|
};
|
|
32
|
-
function
|
|
33
|
-
return
|
|
34
|
+
function M(e) {
|
|
35
|
+
return T(A, e, "Dialog", () => j);
|
|
34
36
|
}
|
|
35
|
-
var
|
|
36
|
-
let [s, c] =
|
|
37
|
-
|
|
38
|
-
let [p, m] =
|
|
37
|
+
var N = ({ open: e, defaultOpen: t, onOpenChange: n, modalType: r = "modal", finalFocusRef: i, unmountOnClose: a = !0, children: o }) => {
|
|
38
|
+
let [s, c] = b(e, t, n), l = u(), d = s && l, f = S();
|
|
39
|
+
w(f, d);
|
|
40
|
+
let [p, m] = E.useState(void 0), h = E.useCallback((e) => (m(e), () => m((t) => t === e ? void 0 : t)), []), g = E.useMemo(() => ({
|
|
39
41
|
open: d,
|
|
40
42
|
requestOpen: c,
|
|
41
43
|
modalType: r,
|
|
@@ -54,36 +56,36 @@ var A = ({ open: e, defaultOpen: t, onOpenChange: n, modalType: r = "modal", fin
|
|
|
54
56
|
p,
|
|
55
57
|
h
|
|
56
58
|
]);
|
|
57
|
-
return /* @__PURE__ */
|
|
59
|
+
return /* @__PURE__ */ O(A.Provider, {
|
|
58
60
|
value: g,
|
|
59
61
|
children: o
|
|
60
62
|
});
|
|
61
63
|
};
|
|
62
|
-
|
|
63
|
-
var
|
|
64
|
-
let { open: t, requestOpen: n, trigger: r, contentId: i } =
|
|
65
|
-
return
|
|
64
|
+
N.displayName = "Dialog";
|
|
65
|
+
var P = (e) => {
|
|
66
|
+
let { open: t, requestOpen: n, trigger: r, contentId: i } = M("Dialog.Trigger");
|
|
67
|
+
return C({
|
|
66
68
|
open: t,
|
|
67
69
|
requestOpen: n,
|
|
68
70
|
trigger: r,
|
|
69
71
|
controlsId: i
|
|
70
72
|
}, e, "Dialog.Trigger");
|
|
71
73
|
};
|
|
72
|
-
|
|
73
|
-
var
|
|
74
|
-
let { requestOpen: t } =
|
|
75
|
-
return
|
|
74
|
+
P.displayName = "DialogTrigger";
|
|
75
|
+
var F = (e) => {
|
|
76
|
+
let { requestOpen: t } = M("Dialog.Close");
|
|
77
|
+
return y(t, e, "Dialog.Close");
|
|
76
78
|
};
|
|
77
|
-
|
|
79
|
+
F.displayName = "DialogClose";
|
|
78
80
|
var fe = {
|
|
79
81
|
small: "max-w-[400px]",
|
|
80
82
|
medium: "max-w-[600px]",
|
|
81
83
|
large: "max-w-[940px]",
|
|
82
84
|
full: "m-0 h-dvh max-h-none max-w-none rounded-none border-0 pt-[max(1.5rem,env(safe-area-inset-top))] pb-[max(1.5rem,env(safe-area-inset-bottom))] pl-[max(1.5rem,env(safe-area-inset-left))] pr-[max(1.5rem,env(safe-area-inset-right))]"
|
|
83
|
-
}, pe = "top-[max(1rem,env(safe-area-inset-top))] end-[max(1rem,env(safe-area-inset-right))] wave-rtl:end-[max(1rem,env(safe-area-inset-left))]", me = 8, he = "Dialog.Content:backdrop-ignored", ge = "Dialog.Content: `backdrop`
|
|
85
|
+
}, pe = "top-[max(1rem,env(safe-area-inset-top))] end-[max(1rem,env(safe-area-inset-right))] wave-rtl:end-[max(1rem,env(safe-area-inset-left))]", me = 8, he = "Dialog.Content:backdrop-ignored", ge = "Dialog.Content: `backdrop` and `backdropMotion` are ignored with `modalType=\"non-modal\"`: a non-modal dialog has no backdrop, so the page behind it stays usable.", _e = "Dialog.Content:non-modal-full", ve = "Dialog.Content: `size=\"full\"` with `modalType=\"non-modal\"` covers the whole page while leaving it usable, so Tab reaches controls hidden behind the dialog. Use `modalType=\"modal\"`, or a smaller size with the page's controls kept clear of it.";
|
|
84
86
|
function ye(e) {
|
|
85
|
-
let [t, n] =
|
|
86
|
-
return
|
|
87
|
+
let [t, n] = E.useState(null);
|
|
88
|
+
return E.useLayoutEffect(() => {
|
|
87
89
|
if (!e || typeof ResizeObserver > "u") return;
|
|
88
90
|
let t = new ResizeObserver((t) => {
|
|
89
91
|
let r = t[t.length - 1];
|
|
@@ -94,92 +96,96 @@ function ye(e) {
|
|
|
94
96
|
};
|
|
95
97
|
}, [e]), t;
|
|
96
98
|
}
|
|
97
|
-
var
|
|
98
|
-
let { open:
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
99
|
+
var I = ({ title: o, size: u = "medium", backdrop: v, motion: y, backdropMotion: b, closeButton: x, titleAction: S, closeLabel: C = "Close", children: w, className: T, style: D, id: de, onKeyDown: A, ref: j, ...N }) => {
|
|
100
|
+
let { open: P, requestOpen: F, modalType: I, trigger: L, finalFocusRef: R, unmountOnClose: z, registerContentId: B } = M("Dialog.Content"), { isMounted: V, ref: be, presenceProps: H } = d(P, {
|
|
101
|
+
appear: !0,
|
|
102
|
+
unmountOnExit: z
|
|
103
|
+
}), xe = H["data-presence"] === "exiting", Se = g(y, h, T), Ce = g(b, m), we = !z, Te = c("wave-dialog"), U = de ?? Te, W = c("wave-dialog-title"), G = se(), [K, Ee] = E.useState(null), q = E.useRef(null), De = E.useCallback((e) => {
|
|
104
|
+
q.current = e, Ee(e);
|
|
105
|
+
}, []), Oe = E.useCallback((e) => e ? B(U) : void 0, [B, U]), ke = l(j, De, Oe, be), J = E.useRef(null);
|
|
106
|
+
oe(P, we, J);
|
|
107
|
+
let Y = ne(q, I !== "alert"), Ae = re(F, "Dialog", Y.afterOutsidePress), X = f({
|
|
108
|
+
open: P,
|
|
109
|
+
modalType: I,
|
|
110
|
+
onDismiss: Ae,
|
|
111
|
+
refs: [q],
|
|
112
|
+
container: K,
|
|
113
|
+
triggerRef: L.focusRef,
|
|
114
|
+
finalFocusRef: R
|
|
115
|
+
}), Z = I === "non-modal", je = ie(P, L, K), Me = te({
|
|
116
|
+
enabled: P && Z,
|
|
117
|
+
surface: K,
|
|
118
|
+
anchorRef: je,
|
|
119
|
+
getPreviousStop: ee
|
|
115
120
|
});
|
|
116
|
-
|
|
117
|
-
let
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}, [
|
|
121
|
-
let
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
}, [
|
|
125
|
-
let [
|
|
126
|
-
...
|
|
127
|
-
setFooterHeight:
|
|
128
|
-
titleActionsOutlet:
|
|
129
|
-
}), [
|
|
130
|
-
if (!
|
|
131
|
-
let
|
|
132
|
-
"--wave-dialog-title-end-padding":
|
|
133
|
-
...
|
|
121
|
+
ce(P ? K : null, G.hasTitle, "Dialog.Content", "Dialog.Title"), ae(P, we, X.layerId, "Dialog");
|
|
122
|
+
let Q = Z && (v != null && typeof v != "boolean" || b !== void 0);
|
|
123
|
+
E.useEffect(() => {
|
|
124
|
+
Q && t(he, ge);
|
|
125
|
+
}, [Q]);
|
|
126
|
+
let Ne = P && Z && u === "full";
|
|
127
|
+
E.useEffect(() => {
|
|
128
|
+
Ne && t(_e, ve);
|
|
129
|
+
}, [Ne]);
|
|
130
|
+
let [Pe, Fe] = E.useState(null), [Ie, Le] = E.useState(null), $ = ye(P || xe ? Pe : null), [Re, ze] = E.useState(null), Be = E.useMemo(() => ({
|
|
131
|
+
...G.context,
|
|
132
|
+
setFooterHeight: ze,
|
|
133
|
+
titleActionsOutlet: Ie
|
|
134
|
+
}), [G.context, Ie]);
|
|
135
|
+
if (!V) return null;
|
|
136
|
+
let Ve = r(o), He = $ === null ? void 0 : $ > 0 ? `${$ + me}px` : "0px", Ue = He === void 0 ? D : {
|
|
137
|
+
"--wave-dialog-title-end-padding": He,
|
|
138
|
+
...D
|
|
134
139
|
};
|
|
135
|
-
return /* @__PURE__ */
|
|
136
|
-
ref:
|
|
137
|
-
layerId:
|
|
138
|
-
children: [!
|
|
139
|
-
backdrop:
|
|
140
|
+
return /* @__PURE__ */ k(p, {
|
|
141
|
+
ref: J,
|
|
142
|
+
layerId: X.layerId,
|
|
143
|
+
children: [!Z && /* @__PURE__ */ O(le, {
|
|
144
|
+
backdrop: v,
|
|
140
145
|
className: a.backdrop,
|
|
141
|
-
layerId:
|
|
142
|
-
open:
|
|
143
|
-
onMouseDown:
|
|
144
|
-
presenceProps:
|
|
145
|
-
|
|
146
|
-
|
|
146
|
+
layerId: X.layerId,
|
|
147
|
+
open: P,
|
|
148
|
+
onMouseDown: Y.onMouseDown,
|
|
149
|
+
presenceProps: H,
|
|
150
|
+
motionClassName: Ce
|
|
151
|
+
}), /* @__PURE__ */ O("div", {
|
|
152
|
+
...H,
|
|
147
153
|
className: e(a.positioner, "pointer-events-none fixed inset-0 flex items-center justify-center"),
|
|
148
|
-
children: /* @__PURE__ */
|
|
149
|
-
ref:
|
|
150
|
-
role:
|
|
151
|
-
id:
|
|
152
|
-
"aria-labelledby":
|
|
154
|
+
children: /* @__PURE__ */ O("div", {
|
|
155
|
+
ref: ke,
|
|
156
|
+
role: I === "alert" ? "alertdialog" : "dialog",
|
|
157
|
+
id: U,
|
|
158
|
+
"aria-labelledby": Ve ? W : G.titleId,
|
|
153
159
|
tabIndex: -1,
|
|
154
|
-
"data-modal-type":
|
|
160
|
+
"data-modal-type": I,
|
|
155
161
|
"data-size": u,
|
|
156
|
-
...
|
|
157
|
-
"data-presence":
|
|
158
|
-
style:
|
|
159
|
-
onKeyDown: i(
|
|
160
|
-
className: e(a.root, "pointer-events-auto relative m-4 flex min-w-0 max-h-[calc(100dvh-2rem)] w-full flex-col rounded-lg border border-border bg-background p-6 text-foreground shadow-64", fe[u],
|
|
161
|
-
children: /* @__PURE__ */
|
|
162
|
-
value:
|
|
162
|
+
...N,
|
|
163
|
+
"data-presence": H["data-presence"],
|
|
164
|
+
style: Ue,
|
|
165
|
+
onKeyDown: i(A, Me),
|
|
166
|
+
className: e(a.root, "pointer-events-auto relative m-4 flex min-w-0 max-h-[calc(100dvh-2rem)] w-full flex-col rounded-lg border border-border bg-background p-6 text-foreground shadow-64", fe[u], Se, T),
|
|
167
|
+
children: /* @__PURE__ */ k(_.Provider, {
|
|
168
|
+
value: Be,
|
|
163
169
|
children: [
|
|
164
|
-
|
|
165
|
-
id:
|
|
170
|
+
Ve && /* @__PURE__ */ O("h2", {
|
|
171
|
+
id: W,
|
|
166
172
|
className: e(s.root, "pe-[var(--wave-dialog-title-end-padding,2rem)] text-subtitle-1 font-semibold"),
|
|
167
173
|
children: o
|
|
168
174
|
}),
|
|
169
|
-
/* @__PURE__ */
|
|
170
|
-
ref:
|
|
175
|
+
/* @__PURE__ */ k("div", {
|
|
176
|
+
ref: Fe,
|
|
171
177
|
className: e(a.titleActions, "absolute end-4 top-4 flex items-start gap-1", u === "full" && pe),
|
|
172
178
|
children: [
|
|
173
|
-
r(
|
|
174
|
-
/* @__PURE__ */
|
|
175
|
-
ref:
|
|
179
|
+
r(S) ? n(S, "span", e(a.titleAction, "inline-flex items-center gap-1")) : null,
|
|
180
|
+
/* @__PURE__ */ O("span", {
|
|
181
|
+
ref: Le,
|
|
176
182
|
className: "contents"
|
|
177
183
|
}),
|
|
178
|
-
/* @__PURE__ */
|
|
184
|
+
/* @__PURE__ */ O(ue, {
|
|
179
185
|
componentName: "Dialog.Content",
|
|
180
|
-
closeButton:
|
|
181
|
-
closeLabel:
|
|
182
|
-
onClose: (e) =>
|
|
186
|
+
closeButton: x,
|
|
187
|
+
closeLabel: C,
|
|
188
|
+
onClose: (e) => F(!1, {
|
|
183
189
|
reason: "close-button",
|
|
184
190
|
event: e
|
|
185
191
|
}),
|
|
@@ -187,10 +193,10 @@ var N = ({ title: o, size: u = "medium", backdrop: _, closeButton: te, titleActi
|
|
|
187
193
|
})
|
|
188
194
|
]
|
|
189
195
|
}),
|
|
190
|
-
/* @__PURE__ */
|
|
196
|
+
/* @__PURE__ */ O("div", {
|
|
191
197
|
className: e(a.body, "-mx-1 mt-1 min-h-0 flex-1 overflow-y-auto scroll-pb-(--wave-dialog-footer-height) p-1 text-body-1"),
|
|
192
|
-
style:
|
|
193
|
-
children:
|
|
198
|
+
style: Re === null ? void 0 : { "--wave-dialog-footer-height": `${Re}px` },
|
|
199
|
+
children: w
|
|
194
200
|
})
|
|
195
201
|
]
|
|
196
202
|
})
|
|
@@ -198,9 +204,9 @@ var N = ({ title: o, size: u = "medium", backdrop: _, closeButton: te, titleActi
|
|
|
198
204
|
})]
|
|
199
205
|
});
|
|
200
206
|
};
|
|
201
|
-
|
|
202
|
-
var
|
|
203
|
-
let { id: u, ref: d } =
|
|
207
|
+
I.displayName = "DialogContent";
|
|
208
|
+
var L = ({ id: t, action: i, className: a, children: o, ref: c, ...l }) => {
|
|
209
|
+
let { id: u, ref: d } = x("Dialog.Title", "Dialog.Content", t, c), f = E.useContext(_)?.titleActionsOutlet, p = /* @__PURE__ */ O("h2", {
|
|
204
210
|
...l,
|
|
205
211
|
id: u,
|
|
206
212
|
ref: d,
|
|
@@ -209,14 +215,14 @@ var P = ({ id: t, action: i, className: a, children: o, ref: c, ...l }) => {
|
|
|
209
215
|
});
|
|
210
216
|
if (!r(i)) return p;
|
|
211
217
|
let m = n(i, "span", e(s.action, "inline-flex items-center gap-1"));
|
|
212
|
-
return /* @__PURE__ */
|
|
218
|
+
return /* @__PURE__ */ k(D, { children: [p, f === void 0 ? m : f && de(m, f)] });
|
|
213
219
|
};
|
|
214
|
-
|
|
215
|
-
var
|
|
216
|
-
let s =
|
|
217
|
-
return
|
|
220
|
+
L.displayName = "DialogTitle";
|
|
221
|
+
var R = "sticky -bottom-1 z-10 -mx-1 -mb-1 mt-6 flex justify-end gap-2 bg-background px-1 pb-2 pt-3", z = "mt-6 flex justify-end gap-2", B = ({ children: n, className: r, ref: i, ...a }) => {
|
|
222
|
+
let s = E.useContext(_), c = s === null, u = s?.setFooterHeight, [d, f] = E.useState(null), p = l(i, f);
|
|
223
|
+
return E.useEffect(() => {
|
|
218
224
|
c && t("Dialog.Footer:outside-content", "Dialog.Footer must be rendered inside Dialog.Content. Outside it, the footer stays on the page while the dialog is closed.");
|
|
219
|
-
}, [c]),
|
|
225
|
+
}, [c]), E.useLayoutEffect(() => {
|
|
220
226
|
if (!d || !u || typeof ResizeObserver > "u") return;
|
|
221
227
|
let e = new ResizeObserver((e) => {
|
|
222
228
|
let t = e[e.length - 1];
|
|
@@ -225,22 +231,22 @@ var F = "sticky -bottom-1 z-10 -mx-1 -mb-1 mt-6 flex justify-end gap-2 bg-backgr
|
|
|
225
231
|
return e.observe(d, { box: "border-box" }), () => {
|
|
226
232
|
e.disconnect(), u(null);
|
|
227
233
|
};
|
|
228
|
-
}, [d, u]), /* @__PURE__ */
|
|
234
|
+
}, [d, u]), /* @__PURE__ */ O("div", {
|
|
229
235
|
ref: p,
|
|
230
236
|
...a,
|
|
231
|
-
className: e(o.root, u ?
|
|
237
|
+
className: e(o.root, u ? R : z, r),
|
|
232
238
|
children: n
|
|
233
239
|
});
|
|
234
240
|
};
|
|
235
|
-
|
|
236
|
-
var
|
|
237
|
-
Trigger:
|
|
238
|
-
Content:
|
|
239
|
-
Footer:
|
|
240
|
-
Title:
|
|
241
|
-
Close:
|
|
241
|
+
B.displayName = "DialogFooter";
|
|
242
|
+
var V = /* @__PURE__ */ Object.assign(N, {
|
|
243
|
+
Trigger: P,
|
|
244
|
+
Content: I,
|
|
245
|
+
Footer: B,
|
|
246
|
+
Title: L,
|
|
247
|
+
Close: F
|
|
242
248
|
});
|
|
243
249
|
//#endregion
|
|
244
|
-
export {
|
|
250
|
+
export { V as Dialog, F as DialogClose, I as DialogContent, B as DialogFooter, L as DialogTitle, P as DialogTrigger };
|
|
245
251
|
|
|
246
252
|
//# sourceMappingURL=Dialog.mjs.map
|