@purpur/library 9.3.0 → 9.4.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.
Files changed (46) hide show
  1. package/CHANGELOG.json +12 -0
  2. package/CHANGELOG.md +8 -1
  3. package/dist/LICENSE.txt +1 -1
  4. package/dist/{comparison-table-Dmbjsqyg.mjs → comparison-table-8bOJmz-L.mjs} +104 -104
  5. package/dist/{comparison-table-Dmbjsqyg.mjs.map → comparison-table-8bOJmz-L.mjs.map} +1 -1
  6. package/dist/comparison-table-mKL2IHXW.js +2 -0
  7. package/dist/{comparison-table-CitEzX7h.js.map → comparison-table-mKL2IHXW.js.map} +1 -1
  8. package/dist/comparison-table.cjs.js +1 -1
  9. package/dist/comparison-table.es.js +1 -1
  10. package/dist/components/drawer/src/drawer-content.d.ts.map +1 -1
  11. package/dist/components/drawer/src/drawer.context.d.ts +1 -0
  12. package/dist/components/drawer/src/drawer.context.d.ts.map +1 -1
  13. package/dist/components/drawer/src/drawer.d.ts +6 -0
  14. package/dist/components/drawer/src/drawer.d.ts.map +1 -1
  15. package/dist/{date-picker-DwFDRL5Z.mjs → date-picker-CbUNbOhn.mjs} +2 -2
  16. package/dist/{date-picker-DwFDRL5Z.mjs.map → date-picker-CbUNbOhn.mjs.map} +1 -1
  17. package/dist/{date-picker-DVrcu2QU.js → date-picker-DYXNB5aU.js} +2 -2
  18. package/dist/{date-picker-DVrcu2QU.js.map → date-picker-DYXNB5aU.js.map} +1 -1
  19. package/dist/date-picker.cjs.js +1 -1
  20. package/dist/date-picker.es.js +1 -1
  21. package/dist/drawer-8Acg4wkV.mjs +574 -0
  22. package/dist/drawer-8Acg4wkV.mjs.map +1 -0
  23. package/dist/drawer-BLHgcEqb.js +2 -0
  24. package/dist/drawer-BLHgcEqb.js.map +1 -0
  25. package/dist/drawer.cjs.js +1 -1
  26. package/dist/drawer.es.js +1 -1
  27. package/dist/{index-CKCTy3ZL.mjs → index-3NV-ckDX.mjs} +4 -4
  28. package/dist/{index-CKCTy3ZL.mjs.map → index-3NV-ckDX.mjs.map} +1 -1
  29. package/dist/library.cjs.js +1 -1
  30. package/dist/library.es.js +5 -5
  31. package/dist/{modal-COZ1POGG.mjs → modal-fp37VbrH.mjs} +2 -2
  32. package/dist/{modal-COZ1POGG.mjs.map → modal-fp37VbrH.mjs.map} +1 -1
  33. package/dist/modal.es.js +1 -1
  34. package/dist/purpur.css +1 -1
  35. package/dist/{table-DUY8kQfE.mjs → table-D_sdSJyr.mjs} +2 -2
  36. package/dist/{table-DUY8kQfE.mjs.map → table-D_sdSJyr.mjs.map} +1 -1
  37. package/dist/{table-DRYW0yw4.js → table-gnGUejtb.js} +2 -2
  38. package/dist/{table-DRYW0yw4.js.map → table-gnGUejtb.js.map} +1 -1
  39. package/dist/table.cjs.js +1 -1
  40. package/dist/table.es.js +1 -1
  41. package/package.json +19 -19
  42. package/dist/comparison-table-CitEzX7h.js +0 -2
  43. package/dist/drawer-Db2Mujc6.mjs +0 -565
  44. package/dist/drawer-Db2Mujc6.mjs.map +0 -1
  45. package/dist/drawer-DlwagnO4.js +0 -2
  46. package/dist/drawer-DlwagnO4.js.map +0 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./date-picker-DVrcu2QU.js");exports.DatePicker=e.DatePicker;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./date-picker-DYXNB5aU.js");exports.DatePicker=e.DatePicker;
2
2
  //# sourceMappingURL=date-picker.cjs.js.map
@@ -1,4 +1,4 @@
1
- import { D as a } from "./date-picker-DwFDRL5Z.mjs";
1
+ import { D as a } from "./date-picker-CbUNbOhn.mjs";
2
2
  export {
3
3
  a as DatePicker
4
4
  };
@@ -0,0 +1,574 @@
1
+ import { jsx as e, jsxs as g, Fragment as I } from "react/jsx-runtime";
2
+ import H, { createContext as wr, forwardRef as z, useContext as hr, useRef as G, useEffect as fr } from "react";
3
+ import { a as mr, T as U, C as $r, D as vr, P as J, O as yr, b as br, R as gr } from "./index-3NV-ckDX.mjs";
4
+ import { c as k } from "./bind-CU-R61T-.mjs";
5
+ import { b as Q, a as F } from "./button-4-yWOgtD.mjs";
6
+ import { H as Z, D as B } from "./heading-xwBuT_-9.mjs";
7
+ import { l as Dr } from "./chevron-left.es-UFhf3v35.mjs";
8
+ import { r as Nr } from "./close.es-BPmk2wkU.mjs";
9
+ import { V as rr } from "./visually-hidden-BYFkJEp1.mjs";
10
+ import { R as jr, V as Pr, S as zr, T as Sr } from "./index-B8Mazo6u.mjs";
11
+ const ar = wr(null), Or = "_slideUp_9zrj7_1", xr = "_slideDown_9zrj7_1", kr = "_slideInRight_9zrj7_1", Ar = "_slideInLeft_9zrj7_1", Cr = "_slideOutRight_9zrj7_1", Er = "_slideOutLeft_9zrj7_1", Vr = "_fadeIn_9zrj7_1", Lr = "_fadeOut_9zrj7_1", Mr = {
12
+ "purpur-drawer-content": "_purpur-drawer-content_9zrj7_1",
13
+ slideUp: Or,
14
+ slideDown: xr,
15
+ "purpur-drawer-content--left": "_purpur-drawer-content--left_9zrj7_21",
16
+ "purpur-drawer-content--right": "_purpur-drawer-content--right_9zrj7_24",
17
+ "purpur-drawer-content--fit-to-content": "_purpur-drawer-content--fit-to-content_9zrj7_27",
18
+ slideInRight: kr,
19
+ slideInLeft: Ar,
20
+ slideOutRight: Cr,
21
+ slideOutLeft: Er,
22
+ "purpur-drawer-content__content-container": "_purpur-drawer-content__content-container_9zrj7_63",
23
+ "purpur-drawer-content__description": "_purpur-drawer-content__description_9zrj7_68",
24
+ "purpur-drawer-content--ai": "_purpur-drawer-content--ai_9zrj7_78",
25
+ "purpur-drawer-overlay": "_purpur-drawer-overlay_9zrj7_82",
26
+ fadeIn: Vr,
27
+ fadeOut: Lr
28
+ }, Ur = {
29
+ "purpur-drawer-container--header": "_purpur-drawer-container--header_1csed_1",
30
+ "purpur-drawer-container--ai": "_purpur-drawer-container--ai_1csed_4",
31
+ "purpur-drawer-container--body": "_purpur-drawer-container--body_1csed_7",
32
+ "purpur-drawer-container--sticky": "_purpur-drawer-container--sticky_1csed_15",
33
+ "purpur-drawer-container--footer": "_purpur-drawer-container--footer_1csed_23"
34
+ }, Yr = k.bind(Ur), Y = "purpur-drawer-container", x = z(
35
+ ({
36
+ ["data-testid"]: r = "purpur-drawer-container",
37
+ children: a,
38
+ className: o,
39
+ drawerVariant: n = "default",
40
+ variant: u = "body",
41
+ stickyFooter: c,
42
+ ...s
43
+ }, d) => {
44
+ const p = Yr([
45
+ Y,
46
+ {
47
+ [`${Y}--${u}`]: u,
48
+ [`${Y}--sticky`]: c,
49
+ [`${Y}--ai`]: n === "ai"
50
+ },
51
+ o
52
+ ]);
53
+ return /* @__PURE__ */ e("div", { className: p, "data-testid": r, ref: d, ...s, children: a });
54
+ }
55
+ );
56
+ x.displayName = "DrawerContainer";
57
+ const Hr = {
58
+ "purpur-drawer-frame": "_purpur-drawer-frame_vjt35_1",
59
+ "purpur-drawer-frame--ai": "_purpur-drawer-frame--ai_vjt35_11",
60
+ "purpur-drawer-frame--without-back-button": "_purpur-drawer-frame--without-back-button_vjt35_14",
61
+ "purpur-drawer-frame__header": "_purpur-drawer-frame__header_vjt35_14",
62
+ "purpur-drawer-frame--with-back-button": "_purpur-drawer-frame--with-back-button_vjt35_17",
63
+ "purpur-drawer-frame--left": "_purpur-drawer-frame--left_vjt35_21",
64
+ "purpur-drawer-frame--right": "_purpur-drawer-frame--right_vjt35_25",
65
+ "purpur-drawer-frame--sticky-footer": "_purpur-drawer-frame--sticky-footer_vjt35_36",
66
+ "purpur-drawer-frame__body": "_purpur-drawer-frame__body_vjt35_42",
67
+ "purpur-drawer-frame--fit-to-content": "_purpur-drawer-frame--fit-to-content_vjt35_46",
68
+ "purpur-drawer-frame__footer": "_purpur-drawer-frame__footer_vjt35_55",
69
+ "purpur-drawer-frame__content-container": "_purpur-drawer-frame__content-container_vjt35_58",
70
+ "purpur-drawer-frame__content-container--no-footer": "_purpur-drawer-frame__content-container--no-footer_vjt35_63"
71
+ }, Rr = {
72
+ "purpur-drawer-handle": "_purpur-drawer-handle_lz3ca_1",
73
+ "purpur-drawer-handle--ai": "_purpur-drawer-handle--ai_lz3ca_22"
74
+ }, Fr = (r, a, o, n, u, c) => ({
75
+ onPointerDown: (t) => {
76
+ r.current = { y: t.clientY };
77
+ },
78
+ onPointerMove: (t) => {
79
+ if (!r.current)
80
+ return;
81
+ const i = t.clientY - r.current.y, h = !!a.current, f = Math.max(0, i), _ = t.pointerType === "touch" ? 10 : 2, l = { y: f }, y = { originalEvent: t, delta: l };
82
+ h ? (a.current = l, n(y)) : er(l, 0) ? (a.current = l, o(), t.target.setPointerCapture(t.pointerId)) : Math.abs(i) > _ && (r.current = null);
83
+ },
84
+ onPointerUp: (t) => {
85
+ const i = a.current, h = t.target;
86
+ if (h.hasPointerCapture(t.pointerId) && h.releasePointerCapture(t.pointerId), a.current = null, r.current = null, i) {
87
+ const f = t.currentTarget, _ = { originalEvent: t, delta: i };
88
+ er(i, 0) && i.y > 200 ? c(_) : u(), f.addEventListener("click", (l) => l.preventDefault(), {
89
+ once: !0
90
+ });
91
+ }
92
+ }
93
+ }), er = (r, a = 0) => Math.abs(r.y) > a, Ir = k.bind(Rr), tr = "purpur-drawer-handle", nr = z(
94
+ ({
95
+ ["data-testid"]: r = "purpur-drawer-handle",
96
+ className: a,
97
+ onSwipeStart: o,
98
+ onSwipeMove: n,
99
+ onSwipeCancel: u,
100
+ onSwipeEnd: c,
101
+ variant: s = "default",
102
+ ...d
103
+ }, p) => {
104
+ const t = Ir([tr, { [`${tr}--ai`]: s === "ai" }, a]), i = H.useRef(null), h = H.useRef(null), { onPointerDown: f, onPointerMove: _, onPointerUp: l } = Fr(
105
+ h,
106
+ i,
107
+ o,
108
+ n,
109
+ u,
110
+ c
111
+ );
112
+ return /* @__PURE__ */ e(
113
+ "div",
114
+ {
115
+ className: t,
116
+ "data-testid": r,
117
+ onPointerDown: f,
118
+ onPointerMove: _,
119
+ onPointerUp: l,
120
+ ref: p,
121
+ ...d
122
+ }
123
+ );
124
+ }
125
+ );
126
+ nr.displayName = "DrawerHandle";
127
+ const Kr = {
128
+ "purpur-drawer-header": "_purpur-drawer-header_1dlfk_1",
129
+ "purpur-drawer-header__row": "_purpur-drawer-header__row_1dlfk_4",
130
+ "purpur-drawer-header__row--with-back-button": "_purpur-drawer-header__row--with-back-button_1dlfk_7",
131
+ "purpur-drawer-header__left": "_purpur-drawer-header__left_1dlfk_10",
132
+ "purpur-drawer-header__right": "_purpur-drawer-header__right_1dlfk_13",
133
+ "purpur-drawer-header__close-button": "_purpur-drawer-header__close-button_1dlfk_16",
134
+ "purpur-drawer-header__back-button--only-icon": "_purpur-drawer-header__back-button--only-icon_1dlfk_27",
135
+ "purpur-drawer-header__title": "_purpur-drawer-header__title_1dlfk_30"
136
+ }, N = k.bind(Kr), v = "purpur-drawer-header", or = z(
137
+ ({
138
+ ["data-testid"]: r = "purpur-drawer-header",
139
+ backButton: a,
140
+ backButtonText: o,
141
+ backButtonOnlyIcon: n,
142
+ className: u,
143
+ closeButtonAriaLabel: c,
144
+ headerContent: s,
145
+ onBackButtonClick: d,
146
+ onCloseClick: p,
147
+ title: t,
148
+ variant: i = "default",
149
+ ...h
150
+ }, f) => {
151
+ const _ = N([v, { [`${v}--ai`]: i === "ai" }, u]), l = !!(a && o && d), y = i === "ai", D = p ? H.Fragment : mr;
152
+ return /* @__PURE__ */ g("div", { className: _, "data-testid": r, ref: f, ...h, children: [
153
+ /* @__PURE__ */ g(
154
+ "div",
155
+ {
156
+ className: N([
157
+ `${v}__row`,
158
+ {
159
+ [`${v}__row--with-back-button`]: l
160
+ }
161
+ ]),
162
+ "data-testid": `${r}-row`,
163
+ children: [
164
+ /* @__PURE__ */ e("div", { className: N(`${v}__left`), children: l ? /* @__PURE__ */ g(
165
+ Q,
166
+ {
167
+ "aria-label": n ? o : "",
168
+ className: N([
169
+ `${v}__back-button`,
170
+ {
171
+ [`${v}__back-button--only-icon`]: n
172
+ }
173
+ ]),
174
+ "data-testid": `${r}-back-button`,
175
+ iconOnly: n,
176
+ negative: y,
177
+ onClick: d,
178
+ size: "sm",
179
+ variant: n ? F.TERTIARY_PURPLE : F.TEXT,
180
+ children: [
181
+ /* @__PURE__ */ e(Dr, { size: "sm" }),
182
+ !n && o
183
+ ]
184
+ }
185
+ ) : s ? /* @__PURE__ */ g(I, { children: [
186
+ s,
187
+ /* @__PURE__ */ e(rr, { asChild: !0, children: /* @__PURE__ */ e(U, { children: t }) })
188
+ ] }) : /* @__PURE__ */ e(U, { asChild: !0, children: /* @__PURE__ */ e(
189
+ Z,
190
+ {
191
+ className: N(`${v}__title`),
192
+ "data-testid": `${r}-title`,
193
+ negative: y,
194
+ tag: "h2",
195
+ variant: B.DISPLAY10,
196
+ tabIndex: -1,
197
+ children: t
198
+ }
199
+ ) }) }),
200
+ /* @__PURE__ */ e("div", { className: N(`${v}__right`), children: /* @__PURE__ */ e(D, { ...p ? {} : { asChild: !0 }, children: /* @__PURE__ */ e(
201
+ Q,
202
+ {
203
+ "aria-label": c,
204
+ className: N(`${v}__close-button`),
205
+ iconOnly: !0,
206
+ negative: y,
207
+ onClick: p,
208
+ size: "sm",
209
+ variant: F.TERTIARY_PURPLE,
210
+ children: /* @__PURE__ */ e(Nr, { size: "sm" })
211
+ }
212
+ ) }) })
213
+ ]
214
+ }
215
+ ),
216
+ l && (s ? /* @__PURE__ */ g(I, { children: [
217
+ s,
218
+ /* @__PURE__ */ e(rr, { asChild: !0, children: /* @__PURE__ */ e(U, { children: t }) })
219
+ ] }) : /* @__PURE__ */ e(U, { asChild: !0, children: /* @__PURE__ */ e(
220
+ Z,
221
+ {
222
+ "data-testid": `${r}-title-with-back-button`,
223
+ className: N(`${v}__title`),
224
+ negative: y,
225
+ tag: "h2",
226
+ tabIndex: -1,
227
+ variant: B.DISPLAY10,
228
+ children: t
229
+ }
230
+ ) }))
231
+ ] });
232
+ }
233
+ );
234
+ or.displayName = "DrawerHeader";
235
+ const Tr = {
236
+ "purpur-drawer-scroll-area__root": "_purpur-drawer-scroll-area__root_vzgxi_1",
237
+ "purpur-drawer-scroll-area__root--fit-to-content": "_purpur-drawer-scroll-area__root--fit-to-content_vzgxi_4",
238
+ "purpur-drawer-scroll-area__viewport": "_purpur-drawer-scroll-area__viewport_vzgxi_10",
239
+ "purpur-drawer-scroll-area__scrollbar": "_purpur-drawer-scroll-area__scrollbar_vzgxi_14",
240
+ "purpur-drawer-scroll-area--ai": "_purpur-drawer-scroll-area--ai_vzgxi_25",
241
+ "purpur-drawer-scroll-area__thumb": "_purpur-drawer-scroll-area__thumb_vzgxi_29"
242
+ }, C = k.bind(Tr), P = "purpur-drawer-scroll-area", K = z(
243
+ ({
244
+ ["data-testid"]: r = "purpur-drawer-scroll-area",
245
+ children: a,
246
+ className: o,
247
+ drawerVariant: n = "default",
248
+ fitToContent: u = !1,
249
+ ...c
250
+ }, s) => {
251
+ const d = C([
252
+ P,
253
+ { [`${P}--ai`]: n === "ai" },
254
+ o
255
+ ]);
256
+ return /* @__PURE__ */ e("div", { className: d, "data-testid": r, ref: s, ...c, children: /* @__PURE__ */ g(
257
+ jr,
258
+ {
259
+ className: C(`${P}__root`, {
260
+ [`${P}__root--fit-to-content`]: u
261
+ }),
262
+ children: [
263
+ /* @__PURE__ */ e(Pr, { className: C(`${P}__viewport`), children: a }),
264
+ /* @__PURE__ */ e(
265
+ zr,
266
+ {
267
+ className: C(`${P}__scrollbar`),
268
+ orientation: "vertical",
269
+ children: /* @__PURE__ */ e(Sr, { className: C(`${P}__thumb`) })
270
+ }
271
+ )
272
+ ]
273
+ }
274
+ ) });
275
+ }
276
+ );
277
+ K.displayName = "DrawerScrollArea";
278
+ const S = k.bind(Hr), m = "purpur-drawer-frame", sr = z(
279
+ ({
280
+ ["data-testid"]: r = "purpur-drawer-frame",
281
+ backButton: a,
282
+ backButtonText: o,
283
+ backButtonOnlyIcon: n,
284
+ children: u,
285
+ className: c,
286
+ closeButtonAriaLabel: s,
287
+ fitToContent: d = !1,
288
+ footerContent: p,
289
+ headerContent: t,
290
+ onBackButtonClick: i,
291
+ onCloseClick: h,
292
+ onSwipeStart: f,
293
+ onSwipeMove: _,
294
+ onSwipeCancel: l,
295
+ onSwipeEnd: y,
296
+ title: D,
297
+ stickyFooter: b,
298
+ position: E = "right",
299
+ variant: w = "default",
300
+ ...A
301
+ }, V) => {
302
+ const L = !!(a && o && i), R = w === "ai", M = S([
303
+ m,
304
+ {
305
+ [`${m}--fit-to-content`]: d,
306
+ [`${m}--sticky-footer`]: b,
307
+ [`${m}--left`]: E === "left",
308
+ [`${m}--right`]: E === "right",
309
+ [`${m}--without-back-button`]: !L,
310
+ [`${m}--with-back-button`]: L,
311
+ [`${m}--ai`]: R
312
+ },
313
+ c
314
+ ]);
315
+ return /* @__PURE__ */ g("div", { className: M, "data-testid": r, ref: V, ...A, children: [
316
+ /* @__PURE__ */ e(
317
+ nr,
318
+ {
319
+ onSwipeStart: f,
320
+ onSwipeMove: _,
321
+ onSwipeCancel: l,
322
+ onSwipeEnd: y,
323
+ variant: w
324
+ }
325
+ ),
326
+ /* @__PURE__ */ e(
327
+ x,
328
+ {
329
+ className: S(`${m}__header`),
330
+ variant: "header",
331
+ stickyFooter: b,
332
+ drawerVariant: w,
333
+ children: /* @__PURE__ */ e(
334
+ or,
335
+ {
336
+ title: D,
337
+ headerContent: t,
338
+ backButtonOnlyIcon: n,
339
+ backButton: a,
340
+ backButtonText: o,
341
+ closeButtonAriaLabel: s,
342
+ onBackButtonClick: i,
343
+ onCloseClick: h,
344
+ variant: w
345
+ }
346
+ )
347
+ }
348
+ ),
349
+ b ? /* @__PURE__ */ g(I, { children: [
350
+ /* @__PURE__ */ e(
351
+ K,
352
+ {
353
+ className: S(`${m}__body`),
354
+ "data-testid": `${r}-sticky-footer-scroll-area`,
355
+ fitToContent: d,
356
+ drawerVariant: w,
357
+ children: /* @__PURE__ */ e(x, { stickyFooter: !0, drawerVariant: w, children: u })
358
+ }
359
+ ),
360
+ p && /* @__PURE__ */ e(
361
+ x,
362
+ {
363
+ className: S(`${m}__footer`),
364
+ "data-testid": `${r}-sticky-footer`,
365
+ variant: "footer",
366
+ stickyFooter: b,
367
+ drawerVariant: w,
368
+ children: p
369
+ }
370
+ )
371
+ ] }) : /* @__PURE__ */ e(
372
+ K,
373
+ {
374
+ className: S(`${m}__body`),
375
+ "data-testid": `${r}-scroll-area`,
376
+ fitToContent: d,
377
+ drawerVariant: w,
378
+ children: /* @__PURE__ */ g(
379
+ "div",
380
+ {
381
+ className: S([
382
+ `${m}__content-container`,
383
+ { [`${m}__content-container--no-footer`]: !p }
384
+ ]),
385
+ children: [
386
+ /* @__PURE__ */ e(x, { stickyFooter: b, drawerVariant: w, children: u }),
387
+ p && /* @__PURE__ */ e(
388
+ x,
389
+ {
390
+ "data-testid": `${r}-footer`,
391
+ stickyFooter: b,
392
+ variant: "footer",
393
+ drawerVariant: w,
394
+ children: p
395
+ }
396
+ )
397
+ ]
398
+ }
399
+ )
400
+ }
401
+ )
402
+ ] });
403
+ }
404
+ );
405
+ sr.displayName = "DrawerFrame";
406
+ const qr = (r, a) => ({
407
+ onSwipeStart: () => {
408
+ r.current && r.current.setAttribute("data-swipe", "start");
409
+ },
410
+ onSwipeMove: (s) => {
411
+ if (!r.current)
412
+ return;
413
+ const { y: d } = s.delta;
414
+ r.current.setAttribute("data-swipe", "move"), r.current.style.setProperty("--purpur-drawer-swipe-move-y", `${d}px`);
415
+ },
416
+ onSwipeCancel: () => {
417
+ r.current && (r.current.setAttribute("data-swipe", "cancel"), r.current.style.removeProperty("--purpur-drawer-swipe-move-y"), r.current.style.removeProperty("--purpur-drawer-swipe-end-y"));
418
+ },
419
+ onSwipeEnd: (s) => {
420
+ if (!r.current)
421
+ return;
422
+ const { y: d } = s.delta;
423
+ r.current.setAttribute("data-swipe", "end"), r.current.style.removeProperty("--purpur-drawer-swipe-move-y"), r.current.style.setProperty("--purpur-drawer-swipe-end-y", `${d}px`), a?.(!1);
424
+ }
425
+ }), O = k.bind(Mr), j = "purpur-drawer-content", dr = z(
426
+ ({
427
+ ["data-testid"]: r = "purpur-drawer-content",
428
+ backButton: a = !1,
429
+ backButtonText: o,
430
+ backButtonOnlyIcon: n = !1,
431
+ bodyText: u,
432
+ children: c,
433
+ className: s,
434
+ closeButtonAriaLabel: d,
435
+ disableCloseOnClickOutside: p = !1,
436
+ fitToContent: t = !1,
437
+ footerContent: i,
438
+ headerContent: h,
439
+ onBackButtonClick: f,
440
+ onCloseClick: _,
441
+ stickyFooter: l = !1,
442
+ title: y,
443
+ zIndex: D,
444
+ position: b = "right",
445
+ ...E
446
+ }, w) => {
447
+ const A = hr(ar), V = A?.variant ?? "default", L = A?.isModal ?? !0, R = O([
448
+ j,
449
+ {
450
+ [`${j}--fit-to-content`]: t,
451
+ [`${j}--left`]: b === "left",
452
+ [`${j}--right`]: b === "right",
453
+ [`${j}--ai`]: V === "ai"
454
+ },
455
+ s
456
+ ]), M = G(null), q = G(null), ir = ($) => {
457
+ q.current = $, typeof w == "function" ? w($) : w && (w.current = $);
458
+ }, { onSwipeStart: cr, onSwipeMove: pr, onSwipeCancel: lr, onSwipeEnd: _r } = qr(
459
+ q,
460
+ A?.onOpenChange ?? null
461
+ ), W = /* @__PURE__ */ e(
462
+ $r,
463
+ {
464
+ onPointerDownOutside: ($) => {
465
+ if (p) {
466
+ $.preventDefault();
467
+ return;
468
+ }
469
+ _ && ($.preventDefault(), _());
470
+ },
471
+ onEscapeKeyDown: ($) => {
472
+ _ && ($.preventDefault(), _());
473
+ },
474
+ onOpenAutoFocus: () => {
475
+ const $ = M.current;
476
+ if ($) {
477
+ const X = $.querySelector("h2");
478
+ X && setTimeout(() => {
479
+ X.focus();
480
+ });
481
+ }
482
+ },
483
+ className: R,
484
+ "data-testid": r,
485
+ ref: ir,
486
+ ...!u && { "aria-describedby": void 0 },
487
+ ...E,
488
+ children: /* @__PURE__ */ e(
489
+ sr,
490
+ {
491
+ backButton: a,
492
+ backButtonText: o,
493
+ backButtonOnlyIcon: n,
494
+ closeButtonAriaLabel: d,
495
+ className: O(`${j}__drawer-frame`),
496
+ fitToContent: t,
497
+ footerContent: i,
498
+ headerContent: h,
499
+ ref: M,
500
+ onBackButtonClick: f,
501
+ onCloseClick: _,
502
+ onSwipeStart: cr,
503
+ onSwipeMove: pr,
504
+ onSwipeCancel: lr,
505
+ onSwipeEnd: _r,
506
+ stickyFooter: l,
507
+ title: y,
508
+ position: b,
509
+ variant: V,
510
+ children: u ? /* @__PURE__ */ g("div", { className: O(`${j}__content-container`), children: [
511
+ /* @__PURE__ */ e(
512
+ vr,
513
+ {
514
+ className: O(`${j}__description`),
515
+ "data-testid": `${r}-description`,
516
+ children: u
517
+ }
518
+ ),
519
+ /* @__PURE__ */ e("div", { children: c })
520
+ ] }) : c
521
+ }
522
+ )
523
+ }
524
+ );
525
+ return L ? /* @__PURE__ */ e(J, { children: /* @__PURE__ */ e(
526
+ yr,
527
+ {
528
+ className: O("purpur-drawer-overlay"),
529
+ style: D ? { zIndex: D } : void 0,
530
+ "data-testid": `${r}-overlay`,
531
+ children: W
532
+ }
533
+ ) }) : /* @__PURE__ */ e(J, { children: /* @__PURE__ */ e(
534
+ "div",
535
+ {
536
+ className: O("purpur-drawer-overlay"),
537
+ style: D ? { zIndex: D } : void 0,
538
+ "data-testid": `${r}-overlay`,
539
+ children: W
540
+ }
541
+ ) });
542
+ }
543
+ );
544
+ dr.displayName = "DrawerContent";
545
+ const ur = z(
546
+ ({ ["data-testid"]: r = "purpur-drawer-trigger", children: a, ...o }, n) => /* @__PURE__ */ e(br, { asChild: !0, "data-testid": r, ref: n, ...o, children: a })
547
+ );
548
+ ur.displayName = "DrawerTrigger";
549
+ const T = ({
550
+ ["data-testid"]: r = "purpur-drawer",
551
+ children: a,
552
+ className: o,
553
+ isModal: n = !0,
554
+ onOpenChange: u,
555
+ open: c = !1,
556
+ variant: s = "default",
557
+ ...d
558
+ }) => {
559
+ const [p, t] = H.useState(c), i = (f) => {
560
+ t(f), u?.(f);
561
+ };
562
+ fr(() => {
563
+ t(c);
564
+ }, [c]);
565
+ const h = { isModal: n, onOpenChange: i, variant: s };
566
+ return /* @__PURE__ */ e(ar.Provider, { value: h, children: /* @__PURE__ */ e("div", { className: o, "data-testid": r, ...d, children: /* @__PURE__ */ e(gr, { open: p, onOpenChange: i, modal: n, children: a }) }) });
567
+ };
568
+ T.Trigger = ur;
569
+ T.Content = dr;
570
+ T.displayName = "Drawer";
571
+ export {
572
+ T as D
573
+ };
574
+ //# sourceMappingURL=drawer-8Acg4wkV.mjs.map