@orioncactuscorp/ui 1.14.0 → 1.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/README.md +65 -36
  3. package/dist/components/BackgroundIconButton/BackgroundIconButton.css +1 -1
  4. package/dist/components/Button/Button.css +1 -1
  5. package/dist/components/CheckMark/CheckMark.js +19 -17
  6. package/dist/components/Checkbox/Checkbox.css +1 -1
  7. package/dist/components/Checkbox/Checkbox.js +38 -36
  8. package/dist/components/FloatingWindow/FloatingWindow.js +138 -137
  9. package/dist/components/Interaction/Interaction.css +1 -1
  10. package/dist/components/Menu/Menu.css +1 -1
  11. package/dist/components/Menu/Menu.js +95 -87
  12. package/dist/components/Modal/Modal.css +1 -1
  13. package/dist/components/Modal/Modal.js +504 -488
  14. package/dist/components/Modal/Modal.module.scss.js +69 -62
  15. package/dist/components/Modal/keyboardSession.js +104 -0
  16. package/dist/components/Modal/snapPoints.js +95 -82
  17. package/dist/components/Modal/useModalDrag.js +587 -637
  18. package/dist/components/Modal/useModalKeyboardAvoidance.js +159 -0
  19. package/dist/components/Modal/useModalViewportGeometry.js +36 -0
  20. package/dist/components/PositionSnap/PositionSnap.css +1 -0
  21. package/dist/components/PositionSnap/PositionSnap.js +330 -0
  22. package/dist/components/PositionSnap/PositionSnap.module.scss.js +9 -0
  23. package/dist/components/PositionSnap/contexts.js +12 -0
  24. package/dist/components/PositionSnap/geometry.js +75 -0
  25. package/dist/components/PositionSnap/gesture.js +7 -0
  26. package/dist/components/PositionSnap/policy.js +60 -0
  27. package/dist/components/PositionSnap.d.ts +6 -0
  28. package/dist/components/PositionSnap.js +7 -0
  29. package/dist/components/ProgressIndicator/ProgressIndicator.css +1 -0
  30. package/dist/components/ProgressIndicator/ProgressIndicator.js +45 -0
  31. package/dist/components/ProgressIndicator/ProgressIndicator.module.scss.js +13 -0
  32. package/dist/components/ProgressIndicator.d.ts +6 -0
  33. package/dist/components/ProgressIndicator.js +4 -0
  34. package/dist/components/Radio/Radio.css +1 -1
  35. package/dist/components/Radio/Radio.js +26 -24
  36. package/dist/components/Switch/Switch.css +1 -1
  37. package/dist/components/Switch/Switch.js +18 -16
  38. package/dist/components/Tabs/Tabs.css +1 -1
  39. package/dist/components/Tooltip/Tooltip.css +1 -1
  40. package/dist/components/Tooltip/Tooltip.js +59 -56
  41. package/dist/components/Tooltip/Tooltip.module.scss.js +6 -4
  42. package/dist/components/internal/ModalPresentation.js +126 -124
  43. package/dist/components/internal/OverlayPortalContext.js +20 -0
  44. package/dist/index.js +133 -126
  45. package/dist/styles.css +12 -10
  46. package/dist/ui/src/components/CheckMark/CheckMark.d.ts +1 -1
  47. package/dist/ui/src/components/CheckMark/CheckMark.d.ts.map +1 -1
  48. package/dist/ui/src/components/CheckMark/types.d.ts +2 -1
  49. package/dist/ui/src/components/CheckMark/types.d.ts.map +1 -1
  50. package/dist/ui/src/components/Checkbox/Checkbox.d.ts +1 -1
  51. package/dist/ui/src/components/Checkbox/Checkbox.d.ts.map +1 -1
  52. package/dist/ui/src/components/Checkbox/types.d.ts +2 -1
  53. package/dist/ui/src/components/Checkbox/types.d.ts.map +1 -1
  54. package/dist/ui/src/components/FloatingWindow/FloatingWindow.d.ts.map +1 -1
  55. package/dist/ui/src/components/FloatingWindow/types.d.ts +1 -1
  56. package/dist/ui/src/components/FloatingWindow/types.d.ts.map +1 -1
  57. package/dist/ui/src/components/Interaction/index.d.ts +1 -1
  58. package/dist/ui/src/components/Interaction/index.d.ts.map +1 -1
  59. package/dist/ui/src/components/Interaction/types.d.ts +9 -1
  60. package/dist/ui/src/components/Interaction/types.d.ts.map +1 -1
  61. package/dist/ui/src/components/Menu/Menu.d.ts +2 -2
  62. package/dist/ui/src/components/Menu/Menu.d.ts.map +1 -1
  63. package/dist/ui/src/components/Menu/types.d.ts +9 -2
  64. package/dist/ui/src/components/Menu/types.d.ts.map +1 -1
  65. package/dist/ui/src/components/Modal/Modal.d.ts +1 -1
  66. package/dist/ui/src/components/Modal/Modal.d.ts.map +1 -1
  67. package/dist/ui/src/components/Modal/keyboardSession.d.ts +46 -0
  68. package/dist/ui/src/components/Modal/keyboardSession.d.ts.map +1 -0
  69. package/dist/ui/src/components/Modal/snapPoints.d.ts.map +1 -1
  70. package/dist/ui/src/components/Modal/types.d.ts +8 -1
  71. package/dist/ui/src/components/Modal/types.d.ts.map +1 -1
  72. package/dist/ui/src/components/Modal/useModalDrag.d.ts.map +1 -1
  73. package/dist/ui/src/components/Modal/useModalKeyboardAvoidance.d.ts +17 -0
  74. package/dist/ui/src/components/Modal/useModalKeyboardAvoidance.d.ts.map +1 -0
  75. package/dist/ui/src/components/Modal/useModalViewportGeometry.d.ts +9 -0
  76. package/dist/ui/src/components/Modal/useModalViewportGeometry.d.ts.map +1 -0
  77. package/dist/ui/src/components/PositionSnap/PositionSnap.d.ts +11 -0
  78. package/dist/ui/src/components/PositionSnap/PositionSnap.d.ts.map +1 -0
  79. package/dist/ui/src/components/PositionSnap/contexts.d.ts +17 -0
  80. package/dist/ui/src/components/PositionSnap/contexts.d.ts.map +1 -0
  81. package/dist/ui/src/components/PositionSnap/geometry.d.ts +31 -0
  82. package/dist/ui/src/components/PositionSnap/geometry.d.ts.map +1 -0
  83. package/dist/ui/src/components/PositionSnap/gesture.d.ts +2 -0
  84. package/dist/ui/src/components/PositionSnap/gesture.d.ts.map +1 -0
  85. package/dist/ui/src/components/PositionSnap/index.d.ts +3 -0
  86. package/dist/ui/src/components/PositionSnap/index.d.ts.map +1 -0
  87. package/dist/ui/src/components/PositionSnap/policy.d.ts +24 -0
  88. package/dist/ui/src/components/PositionSnap/policy.d.ts.map +1 -0
  89. package/dist/ui/src/components/PositionSnap/types.d.ts +31 -0
  90. package/dist/ui/src/components/PositionSnap/types.d.ts.map +1 -0
  91. package/dist/ui/src/components/ProgressIndicator/ProgressIndicator.d.ts +4 -0
  92. package/dist/ui/src/components/ProgressIndicator/ProgressIndicator.d.ts.map +1 -0
  93. package/dist/ui/src/components/ProgressIndicator/index.d.ts +3 -0
  94. package/dist/ui/src/components/ProgressIndicator/index.d.ts.map +1 -0
  95. package/dist/ui/src/components/ProgressIndicator/types.d.ts +17 -0
  96. package/dist/ui/src/components/ProgressIndicator/types.d.ts.map +1 -0
  97. package/dist/ui/src/components/Radio/Radio.d.ts +1 -1
  98. package/dist/ui/src/components/Radio/Radio.d.ts.map +1 -1
  99. package/dist/ui/src/components/Radio/types.d.ts +2 -1
  100. package/dist/ui/src/components/Radio/types.d.ts.map +1 -1
  101. package/dist/ui/src/components/Switch/Switch.d.ts +1 -1
  102. package/dist/ui/src/components/Switch/Switch.d.ts.map +1 -1
  103. package/dist/ui/src/components/Switch/types.d.ts +2 -1
  104. package/dist/ui/src/components/Switch/types.d.ts.map +1 -1
  105. package/dist/ui/src/components/Tooltip/Tooltip.d.ts +1 -1
  106. package/dist/ui/src/components/Tooltip/Tooltip.d.ts.map +1 -1
  107. package/dist/ui/src/components/Tooltip/types.d.ts +6 -0
  108. package/dist/ui/src/components/Tooltip/types.d.ts.map +1 -1
  109. package/dist/ui/src/components/internal/ModalPresentation.d.ts +2 -1
  110. package/dist/ui/src/components/internal/ModalPresentation.d.ts.map +1 -1
  111. package/dist/ui/src/components/internal/OverlayPortalContext.d.ts +10 -0
  112. package/dist/ui/src/components/internal/OverlayPortalContext.d.ts.map +1 -0
  113. package/dist/ui/src/index.d.ts +5 -1
  114. package/dist/ui/src/index.d.ts.map +1 -1
  115. package/docs/api-conventions.md +4 -0
  116. package/docs/overlay-stacking.md +48 -0
  117. package/docs/responsive-foundation-profile.md +1 -1
  118. package/docs/scss-helpers.md +110 -5
  119. package/docs/selector-contract.md +77 -2
  120. package/docs/tokens.md +2 -0
  121. package/package.json +1 -1
  122. package/src/scss/foundations/atomic.scss +9 -8
  123. package/src/scss/index.scss +2 -0
  124. package/src/scss/mixins/_fluid.scss +57 -0
  125. package/src/scss/mixins/_fluid.test.ts +87 -0
  126. package/src/scss/mixins/_gradient.scss +99 -0
  127. package/src/scss/mixins/_gradient.test.ts +111 -0
  128. package/src/scss/mixins/_responsive.scss +2 -1
  129. package/src/scss/mixins/_typo.scss +2 -1
  130. package/src/scss/mixins/_units.scss +14 -0
  131. package/src/scss/mixins/_utils.scss +3 -22
@@ -1,25 +1,31 @@
1
1
  'use client';
2
- import { jsx as u, jsxs as Oe } from "react/jsx-runtime";
3
- import { useRef as A, useState as l, useMemo as Z, useLayoutEffect as ue, useEffect as Y, useCallback as g } from "react";
4
- import { Dialog as L } from "@base-ui-components/react/dialog";
5
- import lt from "@orioncactuscorp/icons/orioncactus/CloseThick";
6
- import ut from "../BackgroundIconButton/BackgroundIconButton.js";
7
- import { mergeRefs as Be } from "../../utils/mergeRefs.js";
8
- import { useModalContext as ee, ModalProvider as mt } from "./contexts.js";
9
- import { useControllableState as pt } from "./useControllableState.js";
10
- import { useModalContentBlockTransition as ft } from "./useModalContentBlockTransition.js";
11
- import { useMeasuredElement as qe } from "./useElementSize.js";
12
- import { useModalDrag as ht } from "./useModalDrag.js";
13
- import { useModalPlacement as gt } from "./useModalPlacement.js";
14
- import { useModalStackDepth as bt } from "./useModalStackDepth.js";
15
- import { resolveContentSizedBottomSheetHeight as St } from "./bottomSheetGeometry.js";
16
- import { getModalScrollState as vt } from "./modalScrollArbitration.js";
17
- import { resolveModalInitialFocus as kt } from "./initialFocus.js";
18
- import { useModalBodyScrollState as yt, ModalBodyFrame as wt, ModalSurfaceFrame as Mt, resolveModalFooterBackground as Ct, ModalFooterFrame as Ht, ModalHeaderFrame as Nt, ModalNavigationSectionFrame as Tt, mergeModalClassName as xt } from "../internal/ModalPresentation.js";
19
- import { resolveModalSnapMetrics as Ft, resolveModalPopupSnapPositions as Rt } from "./snapPoints.js";
20
- import x from "./Modal.module.scss.js";
21
- const ke = xt;
22
- function Bt(e) {
2
+ import { jsx as u, jsxs as _e } from "react/jsx-runtime";
3
+ import { useRef as A, useState as l, useMemo as Y, useLayoutEffect as Me, useEffect as X, useCallback as v } from "react";
4
+ import { Dialog as I } from "@base-ui-components/react/dialog";
5
+ import ht from "@orioncactuscorp/icons/orioncactus/CloseThick";
6
+ import gt from "../BackgroundIconButton/BackgroundIconButton.js";
7
+ import { mergeRefs as De } from "../../utils/mergeRefs.js";
8
+ import { useModalContext as Z, ModalProvider as bt } from "./contexts.js";
9
+ import { useControllableState as vt } from "./useControllableState.js";
10
+ import { useModalContentBlockTransition as yt } from "./useModalContentBlockTransition.js";
11
+ import { useMeasuredElement as We } from "./useElementSize.js";
12
+ import { useModalDrag as St } from "./useModalDrag.js";
13
+ import { useModalKeyboardAvoidance as kt } from "./useModalKeyboardAvoidance.js";
14
+ import { useModalPlacement as Mt } from "./useModalPlacement.js";
15
+ import { useModalStackDepth as Ct } from "./useModalStackDepth.js";
16
+ import { useModalViewportGeometry as Nt } from "./useModalViewportGeometry.js";
17
+ import { resolveContentSizedBottomSheetHeight as wt } from "./bottomSheetGeometry.js";
18
+ import { getModalScrollState as Ht } from "./modalScrollArbitration.js";
19
+ import { resolveModalInitialFocus as xt } from "./initialFocus.js";
20
+ import { useModalBodyScrollState as Tt, ModalBodyFrame as Rt, ModalSurfaceFrame as Ft, resolveModalFooterBackground as Bt, ModalFooterFrame as Pt, ModalHeaderFrame as At, ModalNavigationSectionFrame as Dt, mergeModalClassName as Et } from "../internal/ModalPresentation.js";
21
+ import { OverlayPortalProvider as Vt } from "../internal/OverlayPortalContext.js";
22
+ import { resolveModalSnapMetrics as jt, resolveModalPopupSnapPositions as It } from "./snapPoints.js";
23
+ import N from "./Modal.module.scss.js";
24
+ const $t = /* @__PURE__ */ new Set([
25
+ "oc-modal-reject-shake",
26
+ "oc-modal-reject-shake-replay"
27
+ ]), Ne = Et;
28
+ function Lt(e) {
23
29
  if (!e) return;
24
30
  const t = Object.entries(e).filter(
25
31
  ([n]) => n.startsWith("--")
@@ -27,91 +33,73 @@ function Bt(e) {
27
33
  if (t.length !== 0)
28
34
  return Object.fromEntries(t);
29
35
  }
30
- function $e() {
31
- return typeof window > "u" ? 0 : window.visualViewport?.height ?? window.innerHeight;
32
- }
33
- function Pt(e) {
36
+ function Ot(e) {
34
37
  const t = e.trim();
35
38
  if (!t.endsWith("px")) return;
36
39
  const n = Number.parseFloat(t);
37
40
  return Number.isFinite(n) && n > 0 ? n : void 0;
38
41
  }
39
- function Dt(e) {
42
+ function Kt(e) {
40
43
  if (!(!e || typeof window > "u"))
41
- return Pt(window.getComputedStyle(e).maxHeight);
44
+ return Ot(window.getComputedStyle(e).maxHeight);
42
45
  }
43
- function At({
46
+ function qt({
44
47
  contentTransition: e,
45
48
  placement: t,
46
49
  resize: n
47
50
  }) {
48
51
  return e !== "auto" || n !== "content" || t === "full" ? "none" : t === "bottom" ? "sheet" : "surface";
49
52
  }
50
- function Ke(e, t) {
53
+ function ze(e, t) {
51
54
  return e.resolvedBackdrop === t ? e : {
52
55
  resolvedBackdrop: t,
53
56
  exiting: t === "hidden" && e.resolvedBackdrop !== "hidden"
54
57
  };
55
58
  }
56
- function Et(e) {
57
- const [t, n] = l($e);
58
- return ue(() => {
59
- if (!e || typeof window > "u") return;
60
- const r = () => {
61
- n($e());
62
- };
63
- return r(), window.addEventListener("resize", r), window.visualViewport?.addEventListener("resize", r), () => {
64
- window.removeEventListener("resize", r), window.visualViewport?.removeEventListener(
65
- "resize",
66
- r
67
- );
68
- };
69
- }, [e]), t;
70
- }
71
- function Vt(e) {
59
+ function _t(e) {
72
60
  const t = e.trim();
73
61
  return t.endsWith("ms") ? Number.parseFloat(t) || 0 : t.endsWith("s") ? (Number.parseFloat(t) || 0) * 1e3 : 0;
74
62
  }
75
- function ye(e) {
76
- return e.split(",").reduce((t, n) => Math.max(t, Vt(n)), 0);
63
+ function we(e) {
64
+ return e.split(",").reduce((t, n) => Math.max(t, _t(n)), 0);
77
65
  }
78
- function Lt(e) {
79
- const t = window.getComputedStyle(e), n = ye(t.animationDuration), r = ye(t.animationDelay);
80
- return n + r + 250;
66
+ function Wt(e) {
67
+ const t = window.getComputedStyle(e), n = we(t.animationDuration), s = we(t.animationDelay);
68
+ return n + s + 250;
81
69
  }
82
- function jt(e) {
83
- const t = window.getComputedStyle(e), n = ye(t.transitionDuration), r = ye(t.transitionDelay);
84
- return n + r + 250;
70
+ function zt(e) {
71
+ const t = window.getComputedStyle(e), n = we(t.transitionDuration), s = we(t.transitionDelay);
72
+ return n + s + 250;
85
73
  }
86
- function It({
74
+ function Gt({
87
75
  defaultSnapPosition: e,
88
76
  node: t,
89
77
  snapPositions: n
90
78
  }) {
91
79
  if (!n?.length) return;
92
- const r = Rt({
80
+ const s = It({
93
81
  defaultSnapPosition: e,
94
82
  snapPositions: n,
95
83
  surfaceMotion: t
96
84
  });
97
- if (!r) return;
98
- const i = r.defaultTarget;
85
+ if (!s) return;
86
+ const c = s.defaultTarget;
99
87
  t.style.setProperty(
100
88
  "--oc-modal-translate-x",
101
- i.settledTranslate?.x ?? `${i.x}px`
89
+ c.settledTranslate?.x ?? `${c.x}px`
102
90
  ), t.style.setProperty(
103
91
  "--oc-modal-translate-y",
104
- i.settledTranslate?.y ?? `${i.y}px`
92
+ c.settledTranslate?.y ?? `${c.y}px`
105
93
  );
106
94
  }
107
- function zt(e) {
95
+ function Ut(e) {
108
96
  if (e && typeof e == "object" && "reason" in e && typeof e.reason == "string")
109
97
  return e.reason;
110
98
  }
111
- function ve(e) {
99
+ function Ce(e) {
112
100
  e && typeof e == "object" && "cancel" in e && typeof e.cancel == "function" && e.cancel();
113
101
  }
114
- function Ot(e, t) {
102
+ function Jt(e, t) {
115
103
  switch (t) {
116
104
  case "drag-dismiss":
117
105
  return e?.drag ?? "auto";
@@ -129,22 +117,22 @@ function Ot(e, t) {
129
117
  return e?.programmatic ?? "auto";
130
118
  }
131
119
  }
132
- function qt(e, t) {
120
+ function Qt(e, t) {
133
121
  return t > 0 && (e === "drag-dismiss" || e === "backdrop-press" || e === "outside-press");
134
122
  }
135
- function We(e, t) {
123
+ function Ge(e, t) {
136
124
  return t && (e === "backdrop-press" || e === "outside-press");
137
125
  }
138
- function $t({
126
+ function Xt({
139
127
  backdrop: e,
140
128
  canSnapPopup: t,
141
129
  placement: n,
142
- presentationState: r
130
+ presentationState: s
143
131
  }) {
144
- return e !== "auto" ? e : n === "bottom" && r === "peeked" || t ? "hidden" : "visible";
132
+ return e !== "auto" ? e : n === "bottom" && s === "peeked" || t ? "hidden" : "visible";
145
133
  }
146
- function Kt(e) {
147
- switch (zt(e)) {
134
+ function Yt(e) {
135
+ switch (Ut(e)) {
148
136
  case "close-press":
149
137
  return "close-button";
150
138
  case "outside-press":
@@ -163,433 +151,456 @@ function Ue({
163
151
  children: e,
164
152
  open: t,
165
153
  defaultOpen: n,
166
- modal: r = !0,
167
- onOpenChange: i,
168
- canCloseAttempt: f,
169
- onCloseAttempt: b,
154
+ modal: s = !0,
155
+ onOpenChange: c,
156
+ canCloseAttempt: h,
157
+ onCloseAttempt: y,
170
158
  presentationState: S,
171
- defaultPresentationState: m = "visible",
172
- onPresentationStateChange: F,
173
- disablePointerDismissal: v,
174
- navigationDepth: R = 0,
175
- dismissBehavior: k
159
+ defaultPresentationState: p = "visible",
160
+ onPresentationStateChange: H,
161
+ disablePointerDismissal: w,
162
+ navigationDepth: B = 0,
163
+ dismissBehavior: M
176
164
  }) {
177
- const y = t !== void 0, [te, j] = l(
165
+ const k = t !== void 0, [ee, $] = l(
178
166
  n ?? !1
179
- ), oe = y ? t : te, [ne, we] = l("bottom"), [I, Me] = l(!1), [o, re] = l(!1), [E, me] = l(!1), [c, pe] = l(!1), [ae, se] = l(0), [K, W] = l(0), [fe, Ce] = l(null), [he, U] = l(null), [w, C] = l({
167
+ ), L = k ? t : ee, [te, He] = l("bottom"), [O, xe] = l(!1), [o, oe] = l(!1), [D, ue] = l(!1), [i, me] = l(!1), [pe, ne] = l(0), [W, E] = l(0), [fe, re] = l(null), [he, ge] = l(null), [be, ae] = l({
180
168
  canScroll: !1,
181
169
  scrolledFromTop: !1,
182
170
  scrolledToBottom: !0
183
- }), [H, _] = pt({
171
+ }), [f, g] = vt({
184
172
  value: S,
185
- defaultValue: m,
186
- onChange: F
187
- }), B = qe(), z = qe(), N = Math.max(0, R), d = g(
188
- (a, h) => {
189
- y || j(a), i?.(a, h);
173
+ defaultValue: p,
174
+ onChange: H
175
+ }), x = We(), V = We(), se = Math.max(0, B), K = v(
176
+ (a, m) => {
177
+ k || $(a), c?.(a, m);
190
178
  },
191
- [i, y]
192
- ), P = g(
193
- (a = { reason: "programmatic" }) => f?.(a) !== !1,
194
- [f]
195
- ), D = g(
179
+ [c, k]
180
+ ), C = v(
181
+ (a = { reason: "programmatic" }) => h?.(a) !== !1,
182
+ [h]
183
+ ), d = v(
196
184
  (a = { reason: "programmatic" }) => {
197
- se((h) => h + 1);
185
+ ne((m) => m + 1);
198
186
  },
199
187
  []
200
- ), O = g(() => {
201
- W((a) => a + 1);
202
- }, []), V = g(
188
+ ), q = v(() => {
189
+ E((a) => a + 1);
190
+ }, []), _ = v(
203
191
  (a = { reason: "programmatic" }) => {
204
- if (We(a.reason, E))
192
+ if (Ge(a.reason, D))
205
193
  return !1;
206
- const h = Ot(k, a.reason);
207
- return h === "allow" ? !0 : h === "block" ? !1 : !qt(a.reason, N);
194
+ const m = Jt(M, a.reason);
195
+ return m === "allow" ? !0 : m === "block" ? !1 : !Qt(a.reason, se);
208
196
  },
209
- [E, k, N]
210
- ), q = g(
211
- (a = { reason: "programmatic" }, h = {}) => {
212
- const { commit: M = !0, skipAttempt: G = !1 } = h;
213
- return !G && We(a.reason, E) ? (ve(a.eventDetails), !1) : !G && !V(a) || !G && !P(a) || !G && b?.(a) === !1 ? (ve(a.eventDetails), D(a), !1) : (M && d(!1, a.eventDetails), !0);
197
+ [D, M, se]
198
+ ), P = v(
199
+ (a = { reason: "programmatic" }, m = {}) => {
200
+ const { commit: ve = !0, skipAttempt: T = !1 } = m;
201
+ return !T && Ge(a.reason, D) ? (Ce(a.eventDetails), !1) : !T && !_(a) || !T && !C(a) || !T && y?.(a) === !1 ? (Ce(a.eventDetails), d(a), !1) : (ve && K(!1, a.eventDetails), !0);
214
202
  },
215
203
  [
216
- P,
217
- E,
218
- V,
219
- d,
204
+ C,
220
205
  D,
221
- b
206
+ _,
207
+ K,
208
+ d,
209
+ y
222
210
  ]
223
- ), ie = g(
224
- (a, h) => {
225
- if (a && H === "peeked" && _("visible"), !a) {
226
- q({
227
- reason: Kt(h),
228
- eventDetails: h
211
+ ), ce = v(
212
+ (a, m) => {
213
+ if (a && f === "peeked" && g("visible"), !a) {
214
+ P({
215
+ reason: Yt(m),
216
+ eventDetails: m
229
217
  });
230
218
  return;
231
219
  }
232
- d(a, h);
220
+ K(a, m);
233
221
  },
234
- [d, H, q, _]
235
- ), T = H === "visible" && !c ? r : !1, ge = v || ne === "bottom" && (I || c), $ = Z(
222
+ [K, f, P, g]
223
+ ), z = f === "visible" && !i ? s : !1, ie = w || te === "bottom" && (O || i), j = Y(
236
224
  () => ({
237
- open: oe,
238
- modal: T,
239
- placement: ne,
240
- setPlacement: we,
241
- presentationState: H,
242
- setPresentationState: _,
243
- requestClose: q,
244
- canDismissByBehavior: V,
245
- canCloseAttempt: P,
246
- closeAttemptFeedbackKey: ae,
247
- notifyCloseAttemptRejected: D,
248
- disablePointerDismissal: v ?? !1,
249
- setBackdropDismissalDisabled: me,
250
- setBackgroundInteractive: pe,
251
- canPeek: I,
252
- setCanPeek: Me,
225
+ open: L,
226
+ modal: z,
227
+ placement: te,
228
+ setPlacement: He,
229
+ presentationState: f,
230
+ setPresentationState: g,
231
+ requestClose: P,
232
+ canDismissByBehavior: _,
233
+ canCloseAttempt: C,
234
+ closeAttemptFeedbackKey: pe,
235
+ notifyCloseAttemptRejected: d,
236
+ disablePointerDismissal: w ?? !1,
237
+ setBackdropDismissalDisabled: ue,
238
+ setBackgroundInteractive: me,
239
+ canPeek: O,
240
+ setCanPeek: xe,
253
241
  canRenderHandle: o,
254
- setCanRenderHandle: re,
255
- popupSnapLayoutVersion: K,
256
- notifyPopupSnapLayoutChange: O,
257
- headerHeight: B.height,
258
- footerHeight: z.height,
259
- setHeaderNode: B.setNode,
242
+ setCanRenderHandle: oe,
243
+ popupSnapLayoutVersion: W,
244
+ notifyPopupSnapLayoutChange: q,
245
+ headerHeight: x.height,
246
+ footerHeight: V.height,
247
+ setHeaderNode: x.setNode,
260
248
  titleNode: he,
261
- setTitleNode: U,
262
- setFooterNode: z.setNode,
249
+ setTitleNode: ge,
250
+ setFooterNode: V.setNode,
263
251
  bodyNode: fe,
264
- setBodyNode: Ce,
265
- scrollState: w,
266
- setScrollState: C
252
+ setBodyNode: re,
253
+ scrollState: be,
254
+ setScrollState: ae
267
255
  }),
268
256
  [
269
257
  fe,
270
- I,
271
- o,
272
- V,
273
- P,
274
- ae,
275
- z.height,
276
- z.setNode,
277
- B.height,
278
- B.setNode,
279
- T,
280
- D,
281
258
  O,
282
- K,
283
- oe,
284
- ne,
259
+ o,
260
+ _,
261
+ C,
262
+ pe,
263
+ V.height,
264
+ V.setNode,
265
+ x.height,
266
+ x.setNode,
267
+ z,
268
+ d,
285
269
  q,
270
+ W,
271
+ L,
272
+ te,
273
+ P,
274
+ be,
286
275
  w,
287
- v,
288
- H,
289
- _,
290
- U,
276
+ f,
277
+ g,
278
+ ge,
291
279
  he
292
280
  ]
293
281
  );
294
- return /* @__PURE__ */ u(mt, { value: $, children: /* @__PURE__ */ u(
295
- L.Root,
282
+ return /* @__PURE__ */ u(bt, { value: j, children: /* @__PURE__ */ u(
283
+ I.Root,
296
284
  {
297
- open: oe,
298
- modal: T,
299
- onOpenChange: ie,
300
- disablePointerDismissal: ge,
285
+ open: L,
286
+ modal: z,
287
+ onOpenChange: ce,
288
+ disablePointerDismissal: ie,
301
289
  children: e
302
290
  }
303
291
  ) });
304
292
  }
305
- function Wt({
293
+ function Zt({
306
294
  className: e = "",
307
295
  children: t,
308
296
  render: n,
309
- nativeButton: r
297
+ nativeButton: s
310
298
  }) {
311
299
  return n ? /* @__PURE__ */ u(
312
- L.Trigger,
300
+ I.Trigger,
313
301
  {
314
302
  render: n,
315
- nativeButton: r,
303
+ nativeButton: s,
316
304
  "data-oc-component": "modal-trigger",
317
305
  children: t
318
306
  }
319
307
  ) : /* @__PURE__ */ u(
320
- L.Trigger,
308
+ I.Trigger,
321
309
  {
322
- className: ke(x.trigger, e),
323
- nativeButton: r,
310
+ className: Ne(N.trigger, e),
311
+ nativeButton: s,
324
312
  "data-oc-component": "modal-trigger",
325
313
  children: t
326
314
  }
327
315
  );
328
316
  }
329
- function Ut({
317
+ function eo({
330
318
  className: e = "",
331
319
  children: t,
332
320
  variant: n = "adaptive",
333
- size: r = "medium",
334
- resize: i = "content",
335
- contentTransition: f = "auto",
336
- backdrop: b = "auto",
321
+ size: s = "medium",
322
+ resize: c = "content",
323
+ contentTransition: h = "auto",
324
+ backdrop: y = "auto",
337
325
  backdropFrom: S,
338
- drag: m = "content",
339
- peekable: F = !1,
340
- snapPoints: v,
341
- defaultSnapPoint: R,
342
- snapPositions: k,
343
- defaultSnapPosition: y,
344
- initialFocus: te,
345
- peekHeight: j,
346
- closeThreshold: oe,
347
- scrollLockTimeout: ne,
348
- container: we,
349
- style: I,
350
- ...Me
326
+ drag: p = "content",
327
+ peekable: H = !1,
328
+ snapPoints: w,
329
+ defaultSnapPoint: B,
330
+ snapPositions: M,
331
+ defaultSnapPosition: k,
332
+ initialFocus: ee,
333
+ peekHeight: $,
334
+ closeThreshold: L,
335
+ scrollLockTimeout: te,
336
+ container: He,
337
+ style: O,
338
+ ...xe
351
339
  }) {
352
- const o = ee("ModalContent"), { setCanPeek: re, setCanRenderHandle: E, setPlacement: me } = o, c = gt(n), pe = A(null), ae = A(null), se = A(null), K = A(null), [W, fe] = l(null), [Ce, he] = l(
340
+ const o = Z("ModalContent"), { setCanPeek: oe, setCanRenderHandle: D, setPlacement: ue } = o, i = Mt(n), me = A(null), pe = A(null), ne = A(null), W = A(null), [E, fe] = l(null), [re, he] = l(
353
341
  null
354
- ), U = A(0), w = A(null), C = A(null), H = A(null), [_, B] = l(), z = m === "handle" || m === "content", N = c === "popup" && z && !!k?.length, d = $t({
355
- backdrop: b,
356
- canSnapPopup: N,
357
- placement: c,
342
+ ), [ge, be] = l(null), ae = A(0), f = A(null), g = A(null), x = A(null), [V, se] = l(), K = p === "handle" || p === "content", C = i === "popup" && K && !!M?.length, d = Xt({
343
+ backdrop: y,
344
+ canSnapPopup: C,
345
+ placement: i,
358
346
  presentationState: o.presentationState
359
- }), [P, D] = l(() => ({
347
+ }), [q, _] = l(() => ({
360
348
  resolvedBackdrop: d,
361
349
  exiting: !1
362
- })), O = Z(
363
- () => Ke(P, d),
364
- [P, d]
365
- ), V = O.exiting, q = N && d === "hidden", ie = (c === "bottom" || N) && z, T = c === "bottom" && ie && F, ge = T && j !== void 0 ? j : o.headerHeight > 0 ? o.headerHeight : void 0, $ = c === "bottom" && i !== "fixed", a = Et(
366
- !!v?.length || $
367
- ), h = Z(() => {
368
- if (!(!v?.length || a <= 0))
369
- return Ft({
370
- snapPoints: v,
371
- defaultSnapPoint: R,
350
+ })), P = Y(
351
+ () => ze(q, d),
352
+ [q, d]
353
+ ), ce = P.exiting, z = C && d === "hidden", ie = (i === "bottom" || C) && K, j = i === "bottom" && ie && H, a = j && $ !== void 0 ? $ : o.headerHeight > 0 ? o.headerHeight : void 0, m = i === "bottom" && c !== "fixed", ve = Nt(o.open), T = kt({
354
+ bodyNode: o.bodyNode,
355
+ enabled: o.open && i === "bottom",
356
+ footerHeight: o.footerHeight,
357
+ surfaceNode: E,
358
+ viewportGeometry: ve,
359
+ viewportNode: ge
360
+ }), G = i === "bottom" ? T.viewportGeometry : ve, ye = G?.height ?? 0, Qe = Y(() => {
361
+ if (!(!w?.length || ye <= 0))
362
+ return jt({
363
+ snapPoints: w,
364
+ defaultSnapPoint: B,
372
365
  backdropFrom: S,
373
- viewportHeight: a
366
+ viewportHeight: ye
374
367
  });
375
- }, [S, R, v, a]), M = c === "bottom" ? h : void 0, G = bt(o.open), [be, Ge] = l(0), Se = A(!1), Je = M !== void 0 && $, He = $ && be > 0 ? be : void 0, J = M ? Je && He !== void 0 ? He : M.sheetHeight : He, Qe = M && J !== void 0 ? Math.max(0, J - M.defaultHeight) : void 0, Xe = J !== void 0, Ne = At({
376
- contentTransition: f,
377
- placement: c,
378
- resize: i
379
- }), Ye = Ne === "surface" ? "auto" : "none", Ze = Ne === "sheet" ? "auto" : "none", Pe = o.bodyNode;
380
- ft({
381
- enabled: o.open && Ne === "surface",
382
- node: Ce
383
- }), ue(() => {
384
- if (!$) {
385
- Se.current = !1;
368
+ }, [S, B, w, ye]), R = i === "bottom" ? Qe : void 0, Xe = Ct(o.open), [Se, Ye] = l(0), ke = A(!1), Ze = R !== void 0 && m, Te = m && Se > 0 ? Se : void 0, U = R ? Ze && Te !== void 0 ? Te : R.sheetHeight : Te, et = R && U !== void 0 ? Math.max(0, U - R.defaultHeight) : void 0, tt = U !== void 0, Re = qt({
369
+ contentTransition: h,
370
+ placement: i,
371
+ resize: c
372
+ }), ot = Re === "surface" ? "auto" : "none", nt = Re === "sheet" ? "auto" : "none", Ee = o.bodyNode;
373
+ yt({
374
+ enabled: o.open && Re === "surface",
375
+ node: re
376
+ }), Me(() => {
377
+ if (!m) {
378
+ ke.current = !1;
386
379
  return;
387
380
  }
388
- const s = Pe?.firstElementChild;
389
- if (!s) {
390
- Se.current = !1;
381
+ const r = Ee?.firstElementChild;
382
+ if (!r) {
383
+ ke.current = !1;
391
384
  return;
392
385
  }
393
- const p = () => {
394
- const X = s.getBoundingClientRect().height, le = St({
395
- contentHeight: X,
396
- maxHeight: Dt(W),
397
- snapHeight: M?.sheetHeight
398
- }), ze = Math.abs(be - le) > 0.5;
399
- Se.current = ze, ze && Ge(le);
386
+ const b = () => {
387
+ const Q = r.getBoundingClientRect().height, le = wt({
388
+ contentHeight: Q,
389
+ maxHeight: Kt(E),
390
+ snapHeight: R?.sheetHeight
391
+ }), qe = Math.abs(Se - le) > 0.5;
392
+ ke.current = qe, qe && Ye(le);
400
393
  };
401
- if (p(), typeof ResizeObserver > "u") return;
402
- const de = new ResizeObserver(p);
403
- return de.observe(s), () => de.disconnect();
394
+ if (b(), typeof ResizeObserver > "u") return;
395
+ const F = new ResizeObserver(b);
396
+ return F.observe(r), () => F.disconnect();
404
397
  }, [
405
- Pe,
406
- $,
407
- M?.sheetHeight,
408
- be,
409
- a,
410
- W
411
- ]), Y(() => {
412
- me(c);
413
- }, [c, me]), Y(() => {
414
- o.open || (K.current = null);
415
- }, [o.open]), Y(() => (re(T), () => re(!1)), [T, re]), Y(() => (E(ie), () => E(!1)), [ie, E]);
416
- const et = g(
417
- () => Se.current,
398
+ Ee,
399
+ m,
400
+ R?.sheetHeight,
401
+ Se,
402
+ ye,
403
+ E
404
+ ]), X(() => {
405
+ ue(i);
406
+ }, [i, ue]), X(() => {
407
+ o.open || (W.current = null);
408
+ }, [o.open]), X(() => (oe(j), () => oe(!1)), [j, oe]), X(() => (D(ie), () => D(!1)), [ie, D]);
409
+ const rt = v(
410
+ () => ke.current,
418
411
  []
419
- ), De = o.bodyNode, Ae = o.setScrollState, tt = g(() => {
420
- Ae(vt(De));
421
- }, [De, Ae]), Ee = M?.backdropFromHeight, [Ve, Le] = l(!1), ot = g((s) => {
422
- Le(!s);
412
+ ), Ve = o.bodyNode, je = o.setScrollState, at = v(() => {
413
+ je(Ht(Ve));
414
+ }, [Ve, je]), Ie = R?.backdropFromHeight, [$e, Le] = l(!1), st = v((r) => {
415
+ Le(!r);
423
416
  }, []);
424
- !o.open && Ve && Le(!1);
425
- const Te = Ee !== void 0 && Ve, { collapseBottomSheetToUndimmedSnap: xe, handlers: nt } = ht({
426
- enabled: m !== !1,
427
- drag: m,
417
+ !o.open && $e && Le(!1);
418
+ const Fe = Ie !== void 0 && $e, { collapseBottomSheetToUndimmedSnap: Be, handlers: ct } = St({
419
+ enabled: p !== !1 && !T.active,
420
+ drag: p,
428
421
  open: o.open,
429
- placement: c,
430
- surfaceMotionRef: pe,
431
- surfaceMotionNode: W,
432
- backdropRef: se,
422
+ placement: i,
423
+ surfaceMotionRef: me,
424
+ surfaceMotionNode: E,
425
+ backdropRef: ne,
433
426
  bodyNode: o.bodyNode,
434
- snapHeights: M?.snapHeights,
435
- sheetHeight: J,
436
- backdropFromHeight: Ee,
437
- onBackdropDimRestChange: ot,
438
- peekHeight: T ? j : void 0,
439
- peekFallback: T ? "header" : void 0,
427
+ snapHeights: R?.snapHeights,
428
+ sheetHeight: U,
429
+ backdropFromHeight: Ie,
430
+ onBackdropDimRestChange: st,
431
+ peekHeight: j ? $ : void 0,
432
+ peekFallback: j ? "header" : void 0,
440
433
  presentationState: o.presentationState,
441
434
  setPresentationState: o.setPresentationState,
442
435
  requestClose: o.requestClose,
443
436
  canCloseAttempt: o.canCloseAttempt,
444
437
  dismissible: !o.disablePointerDismissal && o.canDismissByBehavior({ reason: "drag-dismiss" }),
445
438
  backdropHidden: d === "hidden",
446
- visibleTranslate: Qe,
447
- shouldDeferBottomSettle: et,
448
- refreshScrollState: tt,
449
- snapPositions: N ? k : void 0,
450
- defaultSnapPosition: y,
451
- closeThreshold: oe,
452
- scrollLockTimeout: ne,
439
+ visibleTranslate: et,
440
+ shouldDeferBottomSettle: rt,
441
+ refreshScrollState: at,
442
+ snapPositions: C ? M : void 0,
443
+ defaultSnapPosition: k,
444
+ closeThreshold: L,
445
+ scrollLockTimeout: te,
453
446
  popupSnapLayoutVersion: o.popupSnapLayoutVersion
454
- }), rt = g(
455
- (s) => {
456
- pe.current = s, fe(s), s && o.open && N && K.current !== s && (It({
457
- defaultSnapPosition: y,
458
- node: s,
459
- snapPositions: k
460
- }), K.current = s);
447
+ }), it = v(
448
+ (r) => {
449
+ me.current = r, fe(r), r && o.open && C && W.current !== r && (Gt({
450
+ defaultSnapPosition: k,
451
+ node: r,
452
+ snapPositions: M
453
+ }), W.current = r);
461
454
  },
462
- [N, o.open, y, k]
463
- ), at = g((s) => {
464
- ae.current = s, he(s);
455
+ [C, o.open, k, M]
456
+ ), dt = v((r) => {
457
+ pe.current = r, he(r);
465
458
  }, []);
466
- Y(() => {
467
- const s = o.closeAttemptFeedbackKey;
468
- if (s === 0 || c !== "popup" || U.current === s) {
469
- U.current = s, B(void 0);
459
+ X(() => {
460
+ const r = o.closeAttemptFeedbackKey, b = () => {
461
+ se(void 0), g.current = null;
462
+ };
463
+ if (r === 0) {
464
+ ae.current = r, b();
465
+ return;
466
+ }
467
+ if (i !== "popup") {
468
+ b();
469
+ return;
470
+ }
471
+ if (ae.current === r) {
472
+ b();
470
473
  return;
471
474
  }
472
- const p = ae.current;
473
- if (!p) return;
474
- U.current = s, w.current !== null && window.cancelAnimationFrame(w.current), C.current !== null && window.clearTimeout(C.current), B(void 0);
475
- const de = () => {
476
- B(void 0), C.current = null;
477
- }, X = (le) => {
478
- le.target === p && le.animationName === "oc-modal-reject-shake" && (p.removeEventListener("animationend", X), C.current !== null && window.clearTimeout(C.current), de());
475
+ const F = re;
476
+ if (!F) return;
477
+ ae.current = r, f.current !== null && window.cancelAnimationFrame(f.current), g.current !== null && window.clearTimeout(g.current), b();
478
+ const Q = (le) => {
479
+ le.target === F && $t.has(le.animationName) && (F.removeEventListener("animationend", Q), g.current !== null && window.clearTimeout(g.current), b());
479
480
  };
480
- return p.addEventListener("animationend", X), w.current = window.requestAnimationFrame(() => {
481
- w.current = null, B("reject"), w.current = window.requestAnimationFrame(() => {
482
- w.current = null, C.current = window.setTimeout(() => {
483
- p.removeEventListener("animationend", X), de();
484
- }, Lt(p));
481
+ return F.addEventListener("animationend", Q), f.current = window.requestAnimationFrame(() => {
482
+ f.current = null, se(r), f.current = window.requestAnimationFrame(() => {
483
+ f.current = null, g.current = window.setTimeout(() => {
484
+ F.removeEventListener("animationend", Q), b();
485
+ }, Wt(F));
485
486
  });
486
487
  }), () => {
487
- p.removeEventListener("animationend", X), w.current !== null && (window.cancelAnimationFrame(w.current), w.current = null), C.current !== null && (window.clearTimeout(C.current), C.current = null);
488
+ F.removeEventListener("animationend", Q), f.current !== null && (window.cancelAnimationFrame(f.current), f.current = null), g.current !== null && (window.clearTimeout(g.current), g.current = null);
488
489
  };
489
- }, [o.closeAttemptFeedbackKey, c]);
490
- const je = Bt(I), st = {
491
- ...je,
490
+ }, [o.closeAttemptFeedbackKey, i, re]);
491
+ const Oe = Lt(O), lt = {
492
+ ...Oe,
492
493
  ...o.headerHeight > 0 ? { "--oc-modal-header-height": `${o.headerHeight}px` } : {},
493
494
  ...o.footerHeight > 0 ? { "--oc-modal-footer-height": `${o.footerHeight}px` } : {},
494
- ...ge !== void 0 ? { "--oc-modal-peek-height": `${ge}px` } : {},
495
- ...J !== void 0 ? { "--oc-modal-sheet-height": `${J}px` } : {}
495
+ ...a !== void 0 ? { "--oc-modal-peek-height": `${a}px` } : {},
496
+ ...U !== void 0 ? { "--oc-modal-sheet-height": `${U}px` } : {}
496
497
  // `--oc-modal-translate-y` and the inline `height` are owned imperatively
497
498
  // by the drag hook: content-size transitions pin the surface to a canvas
498
499
  // height and compensate the translate in the same frame. Rendering the
499
500
  // height here would commit the new size before that compensation runs and
500
501
  // make the sheet jump a frame early. The managed sizing CSS rule renders
501
502
  // the resting height from `--oc-modal-sheet-height`.
502
- }, Ie = {
503
+ }, Ke = {
503
504
  // Each modal reserves one backdrop slot and one viewport slot.
504
- "--oc-modal-stack-offset": G * 2
505
- }, it = o.headerHeight > 0 ? {
506
- ...I,
505
+ "--oc-modal-stack-offset": Xe * 2
506
+ }, ut = {
507
+ ...Ke,
508
+ "--_-modal-keyboard-inset": `${T.keyboardInset}px`,
509
+ "--_-modal-keyboard-inset-settled": `${T.settledKeyboardInset}px`,
510
+ ...G ? {
511
+ "--_-modal-viewport-height": `${G.height}px`,
512
+ "--_-modal-viewport-offset-left": `${G.offsetLeft}px`,
513
+ "--_-modal-viewport-offset-top": `${G.offsetTop}px`,
514
+ "--_-modal-viewport-width": `${G.width}px`
515
+ } : {}
516
+ }, mt = o.headerHeight > 0 ? {
517
+ ...O,
507
518
  "--oc-modal-header-height": `${o.headerHeight}px`
508
- } : I, ct = kt({
509
- contentNode: W,
510
- initialFocus: te,
519
+ } : O, pt = xt({
520
+ contentNode: E,
521
+ initialFocus: ee,
511
522
  modal: o.modal,
512
523
  titleNode: o.titleNode
513
- }), { setBackdropDismissalDisabled: Fe, setBackgroundInteractive: Re } = o, dt = d !== "hidden" || V;
514
- ue(() => {
515
- O !== P && D(O);
516
- }, [P, O]);
517
- const Q = g(() => {
518
- H.current !== null && (window.clearTimeout(H.current), H.current = null);
519
- }, []), ce = g(() => {
520
- d === "hidden" && (Q(), D((s) => {
521
- const p = Ke(
522
- s,
524
+ }), { setBackdropDismissalDisabled: Pe, setBackgroundInteractive: Ae } = o, ft = d !== "hidden" || ce;
525
+ Me(() => {
526
+ P !== q && _(P);
527
+ }, [q, P]);
528
+ const J = v(() => {
529
+ x.current !== null && (window.clearTimeout(x.current), x.current = null);
530
+ }, []), de = v(() => {
531
+ d === "hidden" && (J(), _((r) => {
532
+ const b = ze(
533
+ r,
523
534
  d
524
535
  );
525
- return p.resolvedBackdrop !== "hidden" || !p.exiting ? p : {
526
- ...p,
536
+ return b.resolvedBackdrop !== "hidden" || !b.exiting ? b : {
537
+ ...b,
527
538
  exiting: !1
528
539
  };
529
540
  }));
530
- }, [Q, d]);
531
- return Y(
541
+ }, [J, d]);
542
+ return X(
532
543
  () => () => {
533
- Q();
544
+ J();
534
545
  },
535
- [Q]
536
- ), ue(() => {
537
- if (!V || d !== "hidden") return;
538
- const s = se.current;
539
- if (!s) {
540
- H.current = window.setTimeout(ce, 0);
546
+ [J]
547
+ ), Me(() => {
548
+ if (!ce || d !== "hidden") return;
549
+ const r = ne.current;
550
+ if (!r) {
551
+ x.current = window.setTimeout(de, 0);
541
552
  return;
542
553
  }
543
- Q(), H.current = window.setTimeout(
544
- ce,
545
- jt(s)
554
+ J(), x.current = window.setTimeout(
555
+ de,
556
+ zt(r)
546
557
  );
547
558
  }, [
548
- Q,
559
+ J,
560
+ de,
549
561
  ce,
550
- V,
551
562
  d
552
- ]), ue(() => (Fe(d === "hidden"), Re(q || Te), () => {
553
- Fe(!1), Re(!1);
563
+ ]), Me(() => (Pe(d === "hidden"), Ae(z || Fe), () => {
564
+ Pe(!1), Ae(!1);
554
565
  }), [
555
- Te,
556
- q,
557
- d,
558
566
  Fe,
559
- Re
560
- ]), /* @__PURE__ */ Oe(L.Portal, { container: we, children: [
561
- dt ? /* @__PURE__ */ u(
562
- L.Backdrop,
567
+ z,
568
+ d,
569
+ Pe,
570
+ Ae
571
+ ]), /* @__PURE__ */ _e(I.Portal, { container: He, children: [
572
+ ft ? /* @__PURE__ */ u(
573
+ I.Backdrop,
563
574
  {
564
- ref: se,
565
- className: x.backdrop,
575
+ ref: ne,
576
+ className: N.backdrop,
566
577
  "data-oc-part": "backdrop",
567
578
  "data-oc-component": "modal-backdrop",
568
579
  "data-oc-modal-backdrop": d,
569
- "data-oc-modal-backdrop-passthrough": Te ? "true" : void 0,
570
- "data-oc-modal-placement": c,
580
+ "data-oc-modal-backdrop-passthrough": Fe ? "true" : void 0,
581
+ "data-oc-modal-placement": i,
571
582
  "data-oc-modal-presentation-state": o.presentationState,
572
- style: Ie,
573
- onTransitionCancel: (s) => {
574
- s.currentTarget === s.target && s.propertyName === "opacity" && ce();
583
+ style: Ke,
584
+ onTransitionCancel: (r) => {
585
+ r.currentTarget === r.target && r.propertyName === "opacity" && de();
575
586
  },
576
- onTransitionEnd: (s) => {
577
- s.currentTarget === s.target && s.propertyName === "opacity" && ce();
587
+ onTransitionEnd: (r) => {
588
+ r.currentTarget === r.target && r.propertyName === "opacity" && de();
578
589
  },
579
590
  onClick: () => {
580
591
  if (o.disablePointerDismissal) {
581
- if (xe()) return;
592
+ if (Be()) return;
582
593
  o.notifyCloseAttemptRejected({ reason: "backdrop-press" });
583
594
  return;
584
595
  }
585
596
  if (!o.canDismissByBehavior({ reason: "backdrop-press" })) {
586
- if (xe()) return;
597
+ if (Be()) return;
587
598
  o.notifyCloseAttemptRejected({ reason: "backdrop-press" });
588
599
  return;
589
600
  }
590
- if (c === "bottom" && T) {
601
+ if (i === "bottom" && j) {
591
602
  if (o.presentationState === "visible") {
592
- if (xe()) return;
603
+ if (Be()) return;
593
604
  o.setPresentationState("peeked");
594
605
  }
595
606
  return;
@@ -599,246 +610,251 @@ function Ut({
599
610
  }
600
611
  ) : null,
601
612
  /* @__PURE__ */ u(
602
- L.Viewport,
613
+ I.Viewport,
603
614
  {
604
- className: x.viewport,
615
+ ref: be,
616
+ className: N.viewport,
605
617
  "data-oc-part": "viewport",
606
618
  "data-oc-component": "modal-viewport",
607
- "data-oc-modal-placement": c,
608
- style: Ie,
609
- children: /* @__PURE__ */ Oe(
610
- L.Popup,
619
+ "data-oc-modal-placement": i,
620
+ "data-oc-modal-keyboard-avoiding": T.active ? "true" : void 0,
621
+ style: ut,
622
+ children: /* @__PURE__ */ u(
623
+ I.Popup,
611
624
  {
612
- ...Me,
613
- ...nt,
614
- ref: rt,
615
- initialFocus: ct,
616
- className: ke(
617
- x.surfaceMotion,
618
- x[r],
619
- e
625
+ ...xe,
626
+ ...ct,
627
+ ref: it,
628
+ initialFocus: pt,
629
+ className: Ne(
630
+ N.surfaceMotion,
631
+ N[s],
632
+ e,
633
+ V === void 0 ? void 0 : V % 2 === 0 ? N.feedbackEven : N.feedbackOdd
620
634
  ),
621
635
  "data-oc-part": "surface-motion",
622
636
  "data-oc-component": "modal-content",
623
637
  "data-oc-modal-backdrop": d,
624
638
  "data-oc-variant": n,
625
- "data-oc-size": r,
626
- "data-oc-resize": i,
627
- "data-oc-modal-feedback": c === "popup" ? _ : void 0,
628
- "data-oc-modal-placement": c,
629
- "data-oc-modal-snapping": M || N ? "true" : void 0,
630
- "data-oc-modal-sheet-sizing": Xe ? "managed" : void 0,
631
- "data-oc-modal-sheet-transition": Ze === "auto" ? "auto" : void 0,
632
- style: st,
633
- children: [
634
- c === "bottom" ? /* @__PURE__ */ u(
639
+ "data-oc-size": s,
640
+ "data-oc-resize": c,
641
+ "data-oc-modal-feedback": i === "popup" && V !== void 0 ? "reject" : void 0,
642
+ "data-oc-modal-placement": i,
643
+ "data-oc-modal-snapping": R || C ? "true" : void 0,
644
+ "data-oc-modal-sheet-sizing": tt ? "managed" : void 0,
645
+ "data-oc-modal-sheet-transition": nt === "auto" ? "auto" : void 0,
646
+ style: lt,
647
+ children: /* @__PURE__ */ _e(Vt, { container: E, children: [
648
+ i === "bottom" ? /* @__PURE__ */ u(
635
649
  "div",
636
650
  {
637
651
  "aria-hidden": "true",
638
- className: ke(
639
- x.bottomFill,
640
- x[r],
652
+ className: Ne(
653
+ N.bottomFill,
654
+ N[s],
641
655
  e
642
656
  ),
643
657
  "data-oc-part": "bottom-fill",
644
658
  "data-oc-component": "modal-bottom-fill",
645
- "data-oc-size": r,
646
- style: je
659
+ "data-oc-size": s,
660
+ style: Oe
647
661
  }
648
662
  ) : null,
649
663
  /* @__PURE__ */ u(
650
- Mt,
664
+ Ft,
651
665
  {
652
- ref: at,
666
+ ref: dt,
653
667
  className: e,
654
- contentTransition: Ye === "auto" ? "auto" : void 0,
655
- placement: c,
656
- resize: i,
668
+ contentTransition: ot === "auto" ? "auto" : void 0,
669
+ placement: i,
670
+ resize: c,
657
671
  scrollable: o.scrollState.canScroll,
658
- size: r,
659
- style: it,
672
+ size: s,
673
+ style: mt,
660
674
  variant: n,
661
675
  children: t
662
676
  }
663
677
  )
664
- ]
678
+ ] })
665
679
  }
666
680
  )
667
681
  }
668
682
  )
669
683
  ] });
670
684
  }
671
- function _t({
685
+ function to({
672
686
  className: e = "",
673
687
  title: t,
674
688
  children: n,
675
- leadingContent: r,
676
- trailingContent: i,
677
- closeLabel: f = "닫기",
678
- closeButton: b = !0,
679
- handle: S = !0,
680
- ref: m,
681
- ...F
689
+ leadingContent: s,
690
+ trailingContent: c,
691
+ bottomContent: h,
692
+ closeLabel: y = "닫기",
693
+ closeButton: S = !0,
694
+ handle: p = !0,
695
+ ref: H,
696
+ ...w
682
697
  }) {
683
- const v = ee("ModalHeader"), { setHeaderNode: R, setTitleNode: k, scrollState: y } = v, te = Z(
684
- () => Be(R, m),
685
- [m, R]
686
- ), j = Z(
687
- () => Be(k),
698
+ const B = Z("ModalHeader"), { setHeaderNode: M, setTitleNode: k, scrollState: ee } = B, $ = Y(
699
+ () => De(M, H),
700
+ [H, M]
701
+ ), L = Y(
702
+ () => De(k),
688
703
  [k]
689
704
  );
690
705
  return /* @__PURE__ */ u(
691
- Nt,
706
+ At,
692
707
  {
693
- ...F,
694
- ref: te,
708
+ ...w,
709
+ ref: $,
710
+ bottomSlot: h,
695
711
  className: e,
696
- closeContent: b ? /* @__PURE__ */ u(_e, { label: f }) : null,
697
- handleContent: S && v.canRenderHandle ? /* @__PURE__ */ u(
712
+ closeContent: S ? /* @__PURE__ */ u(Je, { label: y }) : null,
713
+ handleContent: p && B.canRenderHandle ? /* @__PURE__ */ u(
698
714
  "div",
699
715
  {
700
716
  "aria-hidden": "true",
701
- className: x.handle,
717
+ className: N.handle,
702
718
  "data-oc-part": "handle"
703
719
  }
704
720
  ) : null,
705
- leadingContent: r,
706
- sticky: y.scrolledFromTop,
721
+ leadingContent: s,
722
+ sticky: ee.scrolledFromTop,
707
723
  titleContent: t ? /* @__PURE__ */ u(
708
- L.Title,
724
+ I.Title,
709
725
  {
710
- ref: j,
711
- className: x.initialFocusTitle,
726
+ ref: L,
727
+ className: N.initialFocusTitle,
712
728
  tabIndex: -1,
713
729
  children: t
714
730
  }
715
731
  ) : void 0,
716
- trailingContent: i,
732
+ trailingContent: c,
717
733
  children: n
718
734
  }
719
735
  );
720
736
  }
721
- function Gt({
737
+ function oo({
722
738
  handle: e = !0,
723
739
  ...t
724
740
  }) {
725
- const n = ee("ModalNavigationSection"), {
726
- canRenderHandle: r,
727
- notifyPopupSnapLayoutChange: i,
728
- placement: f
741
+ const n = Z("ModalNavigationSection"), {
742
+ canRenderHandle: s,
743
+ notifyPopupSnapLayoutChange: c,
744
+ placement: h
729
745
  } = n;
730
746
  return /* @__PURE__ */ u(
731
- Tt,
747
+ Dt,
732
748
  {
733
749
  ...t,
734
- canRenderHandle: e && r,
750
+ canRenderHandle: e && s,
735
751
  onPanelMotionStateChange: () => {
736
- f === "popup" && i();
752
+ h === "popup" && c();
737
753
  }
738
754
  }
739
755
  );
740
756
  }
741
- function Jt({
757
+ function no({
742
758
  className: e = "",
743
759
  children: t,
744
760
  layout: n = "content",
745
- containerClassName: r = "",
746
- containerProps: i,
747
- ref: f,
748
- ...b
761
+ containerClassName: s = "",
762
+ containerProps: c,
763
+ ref: h,
764
+ ...y
749
765
  }) {
750
- const S = ee("ModalBody"), { bodyNode: m, setBodyNode: F, setScrollState: v } = S, { setBodyRef: R, updateScrollState: k } = yt({
751
- bodyNode: m,
752
- bodyRef: f,
753
- setBodyNode: F,
754
- setScrollState: v
766
+ const S = Z("ModalBody"), { bodyNode: p, setBodyNode: H, setScrollState: w } = S, { setBodyRef: B, updateScrollState: M } = Tt({
767
+ bodyNode: p,
768
+ bodyRef: h,
769
+ setBodyNode: H,
770
+ setScrollState: w
755
771
  });
756
772
  return /* @__PURE__ */ u(
757
- wt,
773
+ Rt,
758
774
  {
759
775
  bodyContainerProps: {
760
- ref: R,
761
- onScroll: (y) => {
762
- i?.onScroll?.(y), k(y.currentTarget);
776
+ ref: B,
777
+ onScroll: (k) => {
778
+ c?.onScroll?.(k), M(k.currentTarget);
763
779
  }
764
780
  },
765
- bodyContentProps: { ...i, className: r },
781
+ bodyContentProps: { ...c, className: s },
766
782
  layout: n,
767
- scrollAreaProps: { ...b, className: e },
783
+ scrollAreaProps: { ...y, className: e },
768
784
  children: t
769
785
  }
770
786
  );
771
787
  }
772
- function Qt({
788
+ function ro({
773
789
  className: e = "",
774
790
  children: t,
775
791
  background: n = "auto",
776
- ref: r,
777
- ...i
792
+ ref: s,
793
+ ...c
778
794
  }) {
779
- const f = ee("ModalFooter"), { scrollState: b, setFooterNode: S } = f, m = Z(
780
- () => Be(S, r),
781
- [r, S]
782
- ), F = Ct(
795
+ const h = Z("ModalFooter"), { scrollState: y, setFooterNode: S } = h, p = Y(
796
+ () => De(S, s),
797
+ [s, S]
798
+ ), H = Bt(
783
799
  n,
784
- b
800
+ y
785
801
  );
786
802
  return /* @__PURE__ */ u(
787
- Ht,
803
+ Pt,
788
804
  {
789
- ...i,
790
- ref: m,
791
- backgroundActive: F,
805
+ ...c,
806
+ ref: p,
807
+ backgroundActive: H,
792
808
  className: e,
793
809
  children: t
794
810
  }
795
811
  );
796
812
  }
797
- function _e({
813
+ function Je({
798
814
  className: e = "",
799
- children: t = /* @__PURE__ */ u(lt, {}),
815
+ children: t = /* @__PURE__ */ u(ht, {}),
800
816
  label: n = "닫기",
801
- size: r = 24,
802
- disabled: i,
803
- onClick: f,
804
- ...b
817
+ size: s = 24,
818
+ disabled: c,
819
+ onClick: h,
820
+ ...y
805
821
  }) {
806
- const S = ee("ModalClose");
822
+ const S = Z("ModalClose");
807
823
  return /* @__PURE__ */ u(
808
- ut,
824
+ gt,
809
825
  {
810
- ...b,
811
- className: ke(x.close, e),
812
- "aria-label": b["aria-label"] ?? n,
826
+ ...y,
827
+ className: Ne(N.close, e),
828
+ "aria-label": y["aria-label"] ?? n,
813
829
  "data-oc-part": "close",
814
830
  "data-oc-component": "modal-close",
815
- disabled: i,
816
- onClick: (m) => {
817
- f?.(m), !m.defaultPrevented && !i && S.requestClose({ reason: "close-button" });
831
+ disabled: c,
832
+ onClick: (p) => {
833
+ h?.(p), !p.defaultPrevented && !c && S.requestClose({ reason: "close-button" });
818
834
  },
819
- size: r,
835
+ size: s,
820
836
  children: t
821
837
  }
822
838
  );
823
839
  }
824
- const bo = Object.assign(Ue, {
840
+ const To = Object.assign(Ue, {
825
841
  Root: Ue,
826
- Trigger: Wt,
827
- Content: Ut,
828
- Header: _t,
829
- NavigationSection: Gt,
830
- Body: Jt,
831
- Footer: Qt,
832
- Close: _e
842
+ Trigger: Zt,
843
+ Content: eo,
844
+ Header: to,
845
+ NavigationSection: oo,
846
+ Body: no,
847
+ Footer: ro,
848
+ Close: Je
833
849
  });
834
850
  export {
835
- Jt as ModalBody,
836
- _e as ModalClose,
837
- Ut as ModalContent,
838
- Qt as ModalFooter,
839
- _t as ModalHeader,
840
- Gt as ModalNavigationSection,
851
+ no as ModalBody,
852
+ Je as ModalClose,
853
+ eo as ModalContent,
854
+ ro as ModalFooter,
855
+ to as ModalHeader,
856
+ oo as ModalNavigationSection,
841
857
  Ue as ModalRoot,
842
- Wt as ModalTrigger,
843
- bo as default
858
+ Zt as ModalTrigger,
859
+ To as default
844
860
  };