@gv-tech/ui-native 2.15.2 → 2.17.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.
@@ -1,79 +1,82 @@
1
- import { jsx as e, jsxs as g, Fragment as H } from "react/jsx-runtime";
2
- import * as i from "react";
3
- import { Text as l, View as s, Pressable as re, StyleSheet as A, Platform as P, TextInput as q, TouchableOpacity as ae } from "react-native";
4
- import { clsx as oe } from "clsx";
5
- import { twMerge as ie } from "tailwind-merge";
6
- import * as b from "@rn-primitives/accordion";
7
- import { ChevronDown as L, Check as E, X as G, Circle as ne, ChevronUp as se } from "lucide-react-native";
8
- import y, { useDerivedValue as le, withTiming as z, useAnimatedStyle as W, interpolate as de, Extrapolation as ce, FadeOut as w, FadeIn as v, SlideOutRight as me, SlideInRight as fe, useSharedValue as ue, withRepeat as pe, withSequence as ge, Layout as be, FadeOutDown as he, FadeInUp as ye } from "react-native-reanimated";
9
- import { cva as R } from "class-variance-authority";
10
- import * as p from "@rn-primitives/alert-dialog";
11
- import * as T from "@rn-primitives/avatar";
12
- import * as F from "@rn-primitives/checkbox";
13
- import * as B from "@rn-primitives/collapsible";
14
- import * as c from "@rn-primitives/dialog";
15
- import * as O from "@rn-primitives/label";
16
- import * as D from "@rn-primitives/radio-group";
17
- import * as m from "@rn-primitives/select";
18
- import * as $ from "@rn-primitives/separator";
19
- import * as j from "@rn-primitives/switch";
20
- import * as N from "@rn-primitives/tabs";
21
- import { toggleVariants as X } from "@gv-tech/ui-core";
22
- import { toggleVariants as qr } from "@gv-tech/ui-core";
23
- import * as _ from "@rn-primitives/toggle";
24
- import * as I from "@rn-primitives/toggle-group";
25
- import * as k from "@rn-primitives/tooltip";
26
- import * as x from "@rn-primitives/toast";
27
- function V(r, t = l, a = {}) {
28
- return i.Children.map(r, (n) => typeof n == "string" || typeof n == "number" ? /* @__PURE__ */ e(t, { ...a, children: n }) : n);
1
+ import { jsx as r, jsxs as g, Fragment as W } from "react/jsx-runtime";
2
+ import * as a from "react";
3
+ import { Text as m, View as i, Pressable as $, StyleSheet as U, Platform as H, TextInput as ie, Modal as Se, Animated as P, AccessibilityInfo as ke, Linking as Ae, TouchableOpacity as le, ScrollView as De } from "react-native";
4
+ import { clsx as Pe } from "clsx";
5
+ import { twMerge as Oe } from "tailwind-merge";
6
+ import * as T from "@rn-primitives/accordion";
7
+ import { ChevronDown as Z, Check as de, X as ee, Circle as Ie, ChevronUp as Ve, ArrowUp as ze, Coffee as He, ExternalLink as Fe } from "lucide-react-native";
8
+ import k, { useDerivedValue as je, withTiming as Y, useAnimatedStyle as ce, interpolate as Le, Extrapolation as Be, FadeOut as j, FadeIn as L, SlideOutRight as Ee, SlideInRight as Ge, useSharedValue as Me, withRepeat as Ue, withSequence as $e, Layout as Ye, FadeOutDown as qe, FadeInUp as We } from "react-native-reanimated";
9
+ import { cva as B } from "class-variance-authority";
10
+ import * as N from "@rn-primitives/alert-dialog";
11
+ import * as E from "@rn-primitives/avatar";
12
+ import * as J from "@rn-primitives/checkbox";
13
+ import * as te from "@rn-primitives/collapsible";
14
+ import * as u from "@rn-primitives/dialog";
15
+ import * as K from "@rn-primitives/label";
16
+ import * as G from "@rn-primitives/radio-group";
17
+ import * as p from "@rn-primitives/select";
18
+ import * as me from "@rn-primitives/separator";
19
+ import * as Q from "@rn-primitives/switch";
20
+ import * as F from "@rn-primitives/tabs";
21
+ import { toggleVariants as ue } from "@gv-tech/ui-core";
22
+ import { toggleVariants as So } from "@gv-tech/ui-core";
23
+ import * as fe from "@rn-primitives/toggle";
24
+ import * as X from "@rn-primitives/toggle-group";
25
+ import * as M from "@rn-primitives/tooltip";
26
+ import * as A from "@rn-primitives/toast";
27
+ function _(t, e = m, o = {}) {
28
+ return a.Children.map(t, (s) => typeof s == "string" || typeof s == "number" ? /* @__PURE__ */ r(e, { ...o, children: s }) : s);
29
29
  }
30
- function o(...r) {
31
- return ie(oe(r));
30
+ function n(...t) {
31
+ return Oe(Pe(t));
32
32
  }
33
- const xe = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(b.Root, { ref: a, className: o("web:gap-0", r), ...t }));
34
- xe.displayName = b.Root?.displayName || "Accordion";
35
- const Ne = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(b.Item, { ref: a, className: o("border-border overflow-hidden border-b", r), ...t }));
36
- Ne.displayName = b.Item?.displayName || "AccordionItem";
37
- const we = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(b.Header, { ref: a, className: o("flex flex-row", r), ...t }));
38
- we.displayName = b.Header?.displayName || "AccordionHeader";
39
- const ve = i.forwardRef(({ className: r, children: t, ...a }, n) => {
40
- const { isExpanded: d } = b.useItemContext(), f = le(
41
- () => d ? z(1, { duration: 250 }) : z(0, { duration: 200 })
42
- ), u = W(() => ({
43
- transform: [{ rotate: `${f.value * 180}deg` }],
44
- opacity: de(f.value, [0, 1], [1, 0.8], ce.CLAMP)
33
+ function Xe(t) {
34
+ return t.toString().toLowerCase().trim().replace(/\s+/g, "-").replace(/[^\w-]+/g, "").replace(/--+/g, "-");
35
+ }
36
+ const _e = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(T.Root, { ref: o, className: n("web:gap-0", t), ...e }));
37
+ _e.displayName = T.Root?.displayName || "Accordion";
38
+ const Je = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(T.Item, { ref: o, className: n("border-border overflow-hidden border-b", t), ...e }));
39
+ Je.displayName = T.Item?.displayName || "AccordionItem";
40
+ const Ke = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(T.Header, { ref: o, className: n("flex flex-row", t), ...e }));
41
+ Ke.displayName = T.Header?.displayName || "AccordionHeader";
42
+ const Qe = a.forwardRef(({ className: t, children: e, ...o }, s) => {
43
+ const { isExpanded: l } = T.useItemContext(), d = je(
44
+ () => l ? Y(1, { duration: 250 }) : Y(0, { duration: 200 })
45
+ ), c = ce(() => ({
46
+ transform: [{ rotate: `${d.value * 180}deg` }],
47
+ opacity: Le(d.value, [0, 1], [1, 0.8], Be.CLAMP)
45
48
  }));
46
- return /* @__PURE__ */ e(b.Header, { className: "flex", children: /* @__PURE__ */ g(
47
- b.Trigger,
49
+ return /* @__PURE__ */ r(T.Header, { className: "flex", children: /* @__PURE__ */ g(
50
+ T.Trigger,
48
51
  {
49
- ref: n,
50
- className: o(
52
+ ref: s,
53
+ className: n(
51
54
  "flex flex-row items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
52
- r
55
+ t
53
56
  ),
54
- ...a,
57
+ ...o,
55
58
  children: [
56
- /* @__PURE__ */ e(H, { children: t }),
57
- /* @__PURE__ */ e(y.View, { style: u, children: /* @__PURE__ */ e(L, { className: "text-muted-foreground h-4 w-4 shrink-0 transition-transform duration-200" }) })
59
+ /* @__PURE__ */ r(W, { children: e }),
60
+ /* @__PURE__ */ r(k.View, { style: c, children: /* @__PURE__ */ r(Z, { className: "text-muted-foreground h-4 w-4 shrink-0 transition-transform duration-200" }) })
58
61
  ]
59
62
  }
60
63
  ) });
61
64
  });
62
- ve.displayName = b.Trigger?.displayName || "AccordionTrigger";
63
- const Re = i.forwardRef(({ className: r, children: t, ...a }, n) => /* @__PURE__ */ e(
64
- b.Content,
65
+ Qe.displayName = T.Trigger?.displayName || "AccordionTrigger";
66
+ const Ze = a.forwardRef(({ className: t, children: e, ...o }, s) => /* @__PURE__ */ r(
67
+ T.Content,
65
68
  {
66
- ref: n,
67
- className: o(
69
+ ref: s,
70
+ className: n(
68
71
  "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm transition-all",
69
- r
72
+ t
70
73
  ),
71
- ...a,
72
- children: /* @__PURE__ */ e(s, { className: o("pt-0 pb-4", r), children: t })
74
+ ...o,
75
+ children: /* @__PURE__ */ r(i, { className: n("pt-0 pb-4", t), children: e })
73
76
  }
74
77
  ));
75
- Re.displayName = b.Content?.displayName || "AccordionContent";
76
- const Te = R("relative w-full rounded-lg border p-4", {
78
+ Ze.displayName = T.Content?.displayName || "AccordionContent";
79
+ const et = B("relative w-full rounded-lg border p-4", {
77
80
  variants: {
78
81
  variant: {
79
82
  default: "bg-background border-border",
@@ -85,24 +88,24 @@ const Te = R("relative w-full rounded-lg border p-4", {
85
88
  defaultVariants: {
86
89
  variant: "default"
87
90
  }
88
- }), Ce = i.forwardRef(({ className: r, variant: t, children: a, ...n }, d) => /* @__PURE__ */ e(s, { ref: d, className: o(Te({ variant: t }), r), ...n, children: V(a) }));
89
- Ce.displayName = "Alert";
90
- const Se = i.forwardRef(
91
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
92
- l,
91
+ }), tt = a.forwardRef(({ className: t, variant: e, children: o, ...s }, l) => /* @__PURE__ */ r(i, { ref: l, className: n(et({ variant: e }), t), ...s, children: _(o) }));
92
+ tt.displayName = "Alert";
93
+ const rt = a.forwardRef(
94
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
95
+ m,
93
96
  {
94
- ref: a,
95
- className: o("text-foreground mb-1 leading-none font-medium tracking-tight", r),
96
- ...t
97
+ ref: o,
98
+ className: n("text-foreground mb-1 leading-none font-medium tracking-tight", t),
99
+ ...e
97
100
  }
98
101
  )
99
102
  );
100
- Se.displayName = "AlertTitle";
101
- const De = i.forwardRef(
102
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(l, { ref: a, className: o("text-muted-foreground text-sm leading-relaxed", r), ...t })
103
+ rt.displayName = "AlertTitle";
104
+ const ot = a.forwardRef(
105
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(m, { ref: o, className: n("text-muted-foreground text-sm leading-relaxed", t), ...e })
103
106
  );
104
- De.displayName = "AlertDescription";
105
- const M = R(
107
+ ot.displayName = "AlertDescription";
108
+ const re = B(
106
109
  "flex-row items-center justify-center gap-2 rounded-md transition-colors active:opacity-80",
107
110
  {
108
111
  variants: {
@@ -126,7 +129,7 @@ const M = R(
126
129
  size: "default"
127
130
  }
128
131
  }
129
- ), ke = R("text-sm font-medium", {
132
+ ), at = B("text-sm font-medium", {
130
133
  variants: {
131
134
  variant: {
132
135
  default: "text-primary-foreground",
@@ -140,100 +143,100 @@ const M = R(
140
143
  defaultVariants: {
141
144
  variant: "default"
142
145
  }
143
- }), Ae = i.forwardRef(
144
- ({ className: r, variant: t, size: a, onPress: n, children: d, disabled: f, ...u }, h) => /* @__PURE__ */ e(
145
- re,
146
+ }), q = a.forwardRef(
147
+ ({ className: t, variant: e, size: o, onPress: s, children: l, disabled: d, ...c }, f) => /* @__PURE__ */ r(
148
+ $,
146
149
  {
147
- ref: h,
148
- onPress: n,
149
- disabled: f,
150
- className: o(M({ variant: t, size: a, className: r }), f && "opacity-50"),
151
- ...u,
152
- children: V(d, l, {
153
- className: o(ke({ variant: t }))
150
+ ref: f,
151
+ onPress: s,
152
+ disabled: d,
153
+ className: n(re({ variant: e, size: o, className: t }), d && "opacity-50"),
154
+ ...c,
155
+ children: _(l, m, {
156
+ className: n(at({ variant: e }))
154
157
  })
155
158
  }
156
159
  )
157
160
  );
158
- Ae.displayName = "Button";
159
- const Jt = p.Root, Kt = p.Trigger, Pe = p.Portal, J = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(p.Overlay, { style: A.absoluteFill, asChild: !0, ref: a, ...t, children: /* @__PURE__ */ e(
160
- y.View,
161
+ q.displayName = "Button";
162
+ const zr = N.Root, Hr = N.Trigger, nt = N.Portal, pe = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(N.Overlay, { style: U.absoluteFill, asChild: !0, ref: o, ...e, children: /* @__PURE__ */ r(
163
+ k.View,
161
164
  {
162
- entering: v.duration(150),
163
- exiting: w.duration(150),
164
- className: o("z-50 flex items-center justify-center bg-black/80 p-2", r)
165
+ entering: L.duration(150),
166
+ exiting: j.duration(150),
167
+ className: n("z-50 flex items-center justify-center bg-black/80 p-2", t)
165
168
  }
166
169
  ) }));
167
- J.displayName = p.Overlay?.displayName || "AlertDialogOverlay";
168
- const ze = i.forwardRef(({ className: r, portalHost: t, overlayClassName: a, overlayStyle: n, ...d }, f) => /* @__PURE__ */ g(Pe, { hostName: t, children: [
169
- /* @__PURE__ */ e(J, { className: a, style: n }),
170
- /* @__PURE__ */ e(p.Content, { ref: f, asChild: !0, ...d, children: /* @__PURE__ */ e(
171
- y.View,
170
+ pe.displayName = N.Overlay?.displayName || "AlertDialogOverlay";
171
+ const st = a.forwardRef(({ className: t, portalHost: e, overlayClassName: o, overlayStyle: s, ...l }, d) => /* @__PURE__ */ g(nt, { hostName: e, children: [
172
+ /* @__PURE__ */ r(pe, { className: o, style: s }),
173
+ /* @__PURE__ */ r(N.Content, { ref: d, asChild: !0, ...l, children: /* @__PURE__ */ r(
174
+ k.View,
172
175
  {
173
- entering: v.duration(150),
174
- exiting: w.duration(150),
175
- className: o(
176
+ entering: L.duration(150),
177
+ exiting: j.duration(150),
178
+ className: n(
176
179
  "border-border bg-background z-50 w-full max-w-lg gap-4 rounded-xl border p-6 shadow-lg sm:rounded-lg",
177
- r
180
+ t
178
181
  )
179
182
  }
180
183
  ) })
181
184
  ] }));
182
- ze.displayName = p.Content?.displayName || "AlertDialogContent";
183
- const Ie = ({ className: r, ...t }) => /* @__PURE__ */ e(s, { className: o("flex flex-col gap-2 text-center sm:text-left", r), ...t });
184
- Ie.displayName = "AlertDialogHeader";
185
- const Ve = ({ className: r, ...t }) => /* @__PURE__ */ e(s, { className: o("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", r), ...t });
186
- Ve.displayName = "AlertDialogFooter";
187
- const Fe = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
188
- p.Title,
185
+ st.displayName = N.Content?.displayName || "AlertDialogContent";
186
+ const it = ({ className: t, ...e }) => /* @__PURE__ */ r(i, { className: n("flex flex-col gap-2 text-center sm:text-left", t), ...e });
187
+ it.displayName = "AlertDialogHeader";
188
+ const lt = ({ className: t, ...e }) => /* @__PURE__ */ r(i, { className: n("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", t), ...e });
189
+ lt.displayName = "AlertDialogFooter";
190
+ const dt = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
191
+ N.Title,
189
192
  {
190
- ref: a,
191
- className: o("native:text-xl text-foreground text-lg font-semibold", r),
192
- ...t
193
+ ref: o,
194
+ className: n("native:text-xl text-foreground text-lg font-semibold", t),
195
+ ...e
193
196
  }
194
197
  ));
195
- Fe.displayName = p.Title?.displayName || "AlertDialogTitle";
196
- const Oe = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
197
- p.Description,
198
+ dt.displayName = N.Title?.displayName || "AlertDialogTitle";
199
+ const ct = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
200
+ N.Description,
198
201
  {
199
- ref: a,
200
- className: o("native:text-base text-muted-foreground text-sm", r),
201
- ...t
202
+ ref: o,
203
+ className: n("native:text-base text-muted-foreground text-sm", t),
204
+ ...e
202
205
  }
203
206
  ));
204
- Oe.displayName = p.Description?.displayName || "AlertDialogDescription";
205
- const je = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(p.Action, { ref: a, className: o(M(), r), ...t }));
206
- je.displayName = p.Action?.displayName || "AlertDialogAction";
207
- const He = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
208
- p.Cancel,
207
+ ct.displayName = N.Description?.displayName || "AlertDialogDescription";
208
+ const mt = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(N.Action, { ref: o, className: n(re(), t), ...e }));
209
+ mt.displayName = N.Action?.displayName || "AlertDialogAction";
210
+ const ut = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
211
+ N.Cancel,
209
212
  {
210
- ref: a,
211
- className: o(M({ variant: "outline" }), "mt-2 sm:mt-0", r),
212
- ...t
213
+ ref: o,
214
+ className: n(re({ variant: "outline" }), "mt-2 sm:mt-0", t),
215
+ ...e
213
216
  }
214
217
  ));
215
- He.displayName = p.Cancel?.displayName || "AlertDialogCancel";
216
- const Qt = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "aspect-ratio is not yet implemented for React Native" }) }), Le = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
217
- T.Root,
218
+ ut.displayName = N.Cancel?.displayName || "AlertDialogCancel";
219
+ const Fr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "aspect-ratio is not yet implemented for React Native" }) }), ft = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
220
+ E.Root,
218
221
  {
219
- ref: a,
220
- className: o("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", r),
221
- ...t
222
+ ref: o,
223
+ className: n("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full", t),
224
+ ...e
222
225
  }
223
226
  ));
224
- Le.displayName = T.Root?.displayName || "Avatar";
225
- const Ge = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(T.Image, { ref: a, className: o("aspect-square h-full w-full", r), ...t }));
226
- Ge.displayName = T.Image?.displayName || "AvatarImage";
227
- const Be = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
228
- T.Fallback,
227
+ ft.displayName = E.Root?.displayName || "Avatar";
228
+ const pt = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(E.Image, { ref: o, className: n("aspect-square h-full w-full", t), ...e }));
229
+ pt.displayName = E.Image?.displayName || "AvatarImage";
230
+ const gt = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
231
+ E.Fallback,
229
232
  {
230
- ref: a,
231
- className: o("bg-muted flex h-full w-full items-center justify-center rounded-full", r),
232
- ...t
233
+ ref: o,
234
+ className: n("bg-muted flex h-full w-full items-center justify-center rounded-full", t),
235
+ ...e
233
236
  }
234
237
  ));
235
- Be.displayName = T.Fallback?.displayName || "AvatarFallback";
236
- const Me = R("flex-row items-center rounded-md border px-2 py-0.5", {
238
+ gt.displayName = E.Fallback?.displayName || "AvatarFallback";
239
+ const bt = B("flex-row items-center rounded-md border px-2 py-0.5", {
237
240
  variants: {
238
241
  variant: {
239
242
  default: "border-transparent bg-primary",
@@ -245,7 +248,7 @@ const Me = R("flex-row items-center rounded-md border px-2 py-0.5", {
245
248
  defaultVariants: {
246
249
  variant: "default"
247
250
  }
248
- }), Ue = R("text-xs font-semibold", {
251
+ }), ht = B("text-xs font-semibold", {
249
252
  variants: {
250
253
  variant: {
251
254
  default: "text-primary-foreground",
@@ -258,84 +261,84 @@ const Me = R("flex-row items-center rounded-md border px-2 py-0.5", {
258
261
  variant: "default"
259
262
  }
260
263
  });
261
- function Yt({ className: r, textClassName: t, variant: a, children: n, ...d }) {
262
- return /* @__PURE__ */ e(s, { className: o(Me({ variant: a }), r), ...d, children: V(n, l, {
263
- className: o(Ue({ variant: a }), t)
264
+ function jr({ className: t, textClassName: e, variant: o, children: s, ...l }) {
265
+ return /* @__PURE__ */ r(i, { className: n(bt({ variant: o }), t), ...l, children: _(s, m, {
266
+ className: n(ht({ variant: o }), e)
264
267
  }) });
265
268
  }
266
- const Zt = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "breadcrumb is not yet implemented for React Native" }) }), er = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "calendar is not yet implemented for React Native" }) }), qe = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(s, { ref: a, className: o("border-border bg-card rounded-xl border shadow-sm", r), ...t }));
267
- qe.displayName = "Card";
268
- const Ee = i.forwardRef(
269
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(s, { ref: a, className: o("flex flex-col space-y-1.5 p-6", r), ...t })
269
+ const Lr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "breadcrumb is not yet implemented for React Native" }) }), Br = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "calendar is not yet implemented for React Native" }) }), yt = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(i, { ref: o, className: n("border-border bg-card rounded-xl border shadow-sm", t), ...e }));
270
+ yt.displayName = "Card";
271
+ const xt = a.forwardRef(
272
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(i, { ref: o, className: n("flex flex-col space-y-1.5 p-6", t), ...e })
270
273
  );
271
- Ee.displayName = "CardHeader";
272
- const We = i.forwardRef(
273
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
274
- l,
274
+ xt.displayName = "CardHeader";
275
+ const Nt = a.forwardRef(
276
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
277
+ m,
275
278
  {
276
- ref: a,
277
- className: o("text-card-foreground text-lg leading-none font-semibold tracking-tight", r),
278
- ...t
279
+ ref: o,
280
+ className: n("text-card-foreground text-lg leading-none font-semibold tracking-tight", t),
281
+ ...e
279
282
  }
280
283
  )
281
284
  );
282
- We.displayName = "CardTitle";
283
- const $e = i.forwardRef(
284
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(l, { ref: a, className: o("text-muted-foreground text-sm", r), ...t })
285
+ Nt.displayName = "CardTitle";
286
+ const wt = a.forwardRef(
287
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(m, { ref: o, className: n("text-muted-foreground text-sm", t), ...e })
285
288
  );
286
- $e.displayName = "CardDescription";
287
- const Xe = i.forwardRef(
288
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(s, { ref: a, className: o("p-6 pt-0", r), ...t, children: V(t.children, l, { className: "text-sm text-card-foreground" }) })
289
+ wt.displayName = "CardDescription";
290
+ const vt = a.forwardRef(
291
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(i, { ref: o, className: n("p-6 pt-0", t), ...e, children: _(e.children, m, { className: "text-sm text-card-foreground" }) })
289
292
  );
290
- Xe.displayName = "CardContent";
291
- const _e = i.forwardRef(
292
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(s, { ref: a, className: o("flex flex-row items-center p-6 pt-0", r), ...t })
293
+ vt.displayName = "CardContent";
294
+ const Rt = a.forwardRef(
295
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(i, { ref: o, className: n("flex flex-row items-center p-6 pt-0", t), ...e })
293
296
  );
294
- _e.displayName = "CardFooter";
295
- const tr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "carousel is not yet implemented for React Native" }) }), rr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "chart is not yet implemented for React Native" }) }), Je = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
296
- F.Root,
297
+ Rt.displayName = "CardFooter";
298
+ const Er = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "carousel is not yet implemented for React Native" }) }), Gr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "chart is not yet implemented for React Native" }) }), Tt = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
299
+ J.Root,
297
300
  {
298
- ref: a,
299
- className: o(
301
+ ref: o,
302
+ className: n(
300
303
  "web:peer native:h-[20] native:w-[20] native:rounded border-primary web:ring-offset-background web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 h-4 w-4 shrink-0 rounded-sm border disabled:cursor-not-allowed disabled:opacity-50",
301
- t.checked && "bg-primary",
302
- r
304
+ e.checked && "bg-primary",
305
+ t
303
306
  ),
304
- ...t,
305
- children: /* @__PURE__ */ e(F.Indicator, { className: o("h-full w-full items-center justify-center"), children: /* @__PURE__ */ e(E, { size: 12, strokeWidth: P.OS === "web" ? 2.5 : 3.5, className: "text-primary-foreground" }) })
307
+ ...e,
308
+ children: /* @__PURE__ */ r(J.Indicator, { className: n("h-full w-full items-center justify-center"), children: /* @__PURE__ */ r(de, { size: 12, strokeWidth: H.OS === "web" ? 2.5 : 3.5, className: "text-primary-foreground" }) })
306
309
  }
307
310
  ));
308
- Je.displayName = F.Root?.displayName || "Checkbox";
309
- const ar = B.Root, or = B.Trigger, ir = B.Content, nr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "command is not yet implemented for React Native" }) }), sr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "context-menu is not yet implemented for React Native" }) }), lr = c.Root, dr = c.Trigger, Ke = c.Portal, cr = c.Close, K = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(c.Overlay, { style: A.absoluteFill, asChild: !0, ref: a, ...t, children: /* @__PURE__ */ e(
310
- y.View,
311
+ Tt.displayName = J.Root?.displayName || "Checkbox";
312
+ const Mr = te.Root, Ur = te.Trigger, $r = te.Content, Yr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "command is not yet implemented for React Native" }) }), qr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "context-menu is not yet implemented for React Native" }) }), Ct = u.Root, Wr = u.Trigger, St = u.Portal, Xr = u.Close, ge = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(u.Overlay, { style: U.absoluteFill, asChild: !0, ref: o, ...e, children: /* @__PURE__ */ r(
313
+ k.View,
311
314
  {
312
- entering: v.duration(150),
313
- exiting: w.duration(150),
314
- className: o("z-50 flex items-center justify-center bg-black/80 p-2", r)
315
+ entering: L.duration(150),
316
+ exiting: j.duration(150),
317
+ className: n("z-50 flex items-center justify-center bg-black/80 p-2", t)
315
318
  }
316
319
  ) }));
317
- K.displayName = c.Overlay?.displayName || "DialogOverlay";
318
- const Qe = i.forwardRef(
319
- ({ className: r, children: t, portalHost: a, overlayClassName: n, overlayStyle: d, ...f }, u) => /* @__PURE__ */ g(Ke, { hostName: a, children: [
320
- /* @__PURE__ */ e(K, { className: n, style: d }),
321
- /* @__PURE__ */ e(c.Content, { ref: u, asChild: !0, ...f, children: /* @__PURE__ */ g(
322
- y.View,
320
+ ge.displayName = u.Overlay?.displayName || "DialogOverlay";
321
+ const be = a.forwardRef(
322
+ ({ className: t, children: e, portalHost: o, overlayClassName: s, overlayStyle: l, ...d }, c) => /* @__PURE__ */ g(St, { hostName: o, children: [
323
+ /* @__PURE__ */ r(ge, { className: s, style: l }),
324
+ /* @__PURE__ */ r(u.Content, { ref: c, asChild: !0, ...d, children: /* @__PURE__ */ g(
325
+ k.View,
323
326
  {
324
- entering: v.duration(150),
325
- exiting: w.duration(150),
326
- className: o(
327
+ entering: L.duration(150),
328
+ exiting: j.duration(150),
329
+ className: n(
327
330
  "border-border bg-background z-50 w-full max-w-lg gap-4 rounded-xl border p-6 shadow-lg sm:rounded-lg",
328
- r
331
+ t
329
332
  ),
330
333
  children: [
331
- t,
334
+ e,
332
335
  /* @__PURE__ */ g(
333
- c.Close,
336
+ u.Close,
334
337
  {
335
338
  className: "ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",
336
339
  children: [
337
- /* @__PURE__ */ e(G, { size: 18, className: "text-muted-foreground" }),
338
- /* @__PURE__ */ e(s, { className: "sr-only", children: /* @__PURE__ */ e(c.Title, { children: "Close" }) })
340
+ /* @__PURE__ */ r(ee, { size: 18, className: "text-muted-foreground" }),
341
+ /* @__PURE__ */ r(i, { className: "sr-only", children: /* @__PURE__ */ r(u.Title, { children: "Close" }) })
339
342
  ]
340
343
  }
341
344
  )
@@ -344,225 +347,352 @@ const Qe = i.forwardRef(
344
347
  ) })
345
348
  ] })
346
349
  );
347
- Qe.displayName = c.Content?.displayName || "DialogContent";
348
- const Ye = ({ className: r, ...t }) => /* @__PURE__ */ e(s, { className: o("flex flex-col gap-1.5 text-center sm:text-left", r), ...t });
349
- Ye.displayName = "DialogHeader";
350
- const Ze = ({ className: r, ...t }) => /* @__PURE__ */ e(s, { className: o("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", r), ...t });
351
- Ze.displayName = "DialogFooter";
352
- const et = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
353
- c.Title,
350
+ be.displayName = u.Content?.displayName || "DialogContent";
351
+ const he = ({ className: t, ...e }) => /* @__PURE__ */ r(i, { className: n("flex flex-col gap-1.5 text-center sm:text-left", t), ...e });
352
+ he.displayName = "DialogHeader";
353
+ const kt = ({ className: t, ...e }) => /* @__PURE__ */ r(i, { className: n("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", t), ...e });
354
+ kt.displayName = "DialogFooter";
355
+ const ye = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
356
+ u.Title,
354
357
  {
355
- ref: a,
356
- className: o("native:text-xl text-foreground text-lg leading-none font-semibold tracking-tight", r),
357
- ...t
358
+ ref: o,
359
+ className: n("native:text-xl text-foreground text-lg leading-none font-semibold tracking-tight", t),
360
+ ...e
358
361
  }
359
362
  ));
360
- et.displayName = c.Title?.displayName || "DialogTitle";
361
- const tt = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
362
- c.Description,
363
+ ye.displayName = u.Title?.displayName || "DialogTitle";
364
+ const xe = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
365
+ u.Description,
363
366
  {
364
- ref: a,
365
- className: o("native:text-base text-muted-foreground text-sm", r),
366
- ...t
367
+ ref: o,
368
+ className: n("native:text-base text-muted-foreground text-sm", t),
369
+ ...e
367
370
  }
368
371
  ));
369
- tt.displayName = c.Description?.displayName || "DialogDescription";
370
- const mr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "drawer is not yet implemented for React Native" }) }), fr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "dropdown-menu is not yet implemented for React Native" }) }), ur = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "form is not yet implemented for React Native" }) }), pr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "hover-card is not yet implemented for React Native" }) }), rt = i.forwardRef(
371
- ({ className: r, placeholderClassName: t, ...a }, n) => /* @__PURE__ */ e(
372
- q,
372
+ xe.displayName = u.Description?.displayName || "DialogDescription";
373
+ const _r = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "drawer is not yet implemented for React Native" }) }), Jr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "dropdown-menu is not yet implemented for React Native" }) }), Kr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "form is not yet implemented for React Native" }) }), Qr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "hover-card is not yet implemented for React Native" }) }), At = a.forwardRef(
374
+ ({ className: t, placeholderClassName: e, ...o }, s) => /* @__PURE__ */ r(
375
+ ie,
373
376
  {
374
- ref: n,
375
- className: o(
377
+ ref: s,
378
+ className: n(
376
379
  "border-input text-foreground placeholder:text-muted-foreground focus:border-ring flex h-10 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-sm transition-colors disabled:opacity-50",
377
- r
380
+ t
378
381
  ),
379
- placeholderClassName: o("text-muted-foreground", t),
380
- ...a
382
+ placeholderClassName: n("text-muted-foreground", e),
383
+ ...o
381
384
  }
382
385
  )
383
386
  );
384
- rt.displayName = "Input";
385
- const at = i.forwardRef(({ className: r, onPress: t, onLongPress: a, onPressIn: n, onPressOut: d, ...f }, u) => /* @__PURE__ */ e(
386
- O.Root,
387
+ At.displayName = "Input";
388
+ const Dt = a.forwardRef(({ className: t, onPress: e, onLongPress: o, onPressIn: s, onPressOut: l, ...d }, c) => /* @__PURE__ */ r(
389
+ K.Root,
387
390
  {
388
391
  className: "web:cursor-default",
389
- onPress: t,
390
- onLongPress: a,
391
- onPressIn: n,
392
- onPressOut: d,
393
- children: /* @__PURE__ */ e(
394
- O.Text,
392
+ onPress: e,
393
+ onLongPress: o,
394
+ onPressIn: s,
395
+ onPressOut: l,
396
+ children: /* @__PURE__ */ r(
397
+ K.Text,
395
398
  {
396
- ref: u,
397
- className: o(
399
+ ref: c,
400
+ className: n(
398
401
  "text-foreground native:text-base web:peer-disabled:cursor-not-allowed web:peer-disabled:opacity-70 text-sm leading-none font-medium",
399
- r
402
+ t
400
403
  ),
401
- ...f
404
+ ...d
402
405
  }
403
406
  )
404
407
  }
405
408
  ));
406
- at.displayName = O.Root?.displayName || "Label";
407
- const gr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "menubar is not yet implemented for React Native" }) }), br = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "navigation-menu is not yet implemented for React Native" }) }), hr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "pagination is not yet implemented for React Native" }) }), yr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "popover is not yet implemented for React Native" }) }), xr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "progress is not yet implemented for React Native" }) }), ot = i.forwardRef(
408
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(D.Root, { className: o("web:grid gap-2", r), ...t, ref: a })
409
+ Dt.displayName = K.Root?.displayName || "Label";
410
+ const Zr = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "menubar is not yet implemented for React Native" }) }), eo = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "navigation-menu is not yet implemented for React Native" }) }), to = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "pagination is not yet implemented for React Native" }) }), oe = a.createContext({
411
+ open: !1,
412
+ setOpen: () => {
413
+ }
414
+ }), Pt = a.forwardRef(({ children: t, open: e, onOpenChange: o, ...s }, l) => {
415
+ const [d, c] = a.useState(!1), f = e !== void 0, y = f ? e : d, w = f ? o || (() => {
416
+ }) : c;
417
+ return /* @__PURE__ */ r(oe.Provider, { value: { open: y, setOpen: w }, children: /* @__PURE__ */ r(i, { ref: l, ...s, children: t }) });
418
+ });
419
+ Pt.displayName = "Popover";
420
+ const Ot = a.forwardRef(({ children: t, ...e }, o) => {
421
+ const { setOpen: s } = a.useContext(oe);
422
+ return /* @__PURE__ */ r($, { ref: o, onPress: () => s(!0), ...e, children: t });
423
+ });
424
+ Ot.displayName = "PopoverTrigger";
425
+ const It = a.forwardRef(({ ...t }, e) => /* @__PURE__ */ r(i, { ref: e, ...t }));
426
+ It.displayName = "PopoverAnchor";
427
+ const Vt = a.forwardRef(({ className: t, children: e, ...o }, s) => {
428
+ const { open: l, setOpen: d } = a.useContext(oe);
429
+ return /* @__PURE__ */ r(Se, { visible: l, transparent: !0, animationType: "fade", onRequestClose: () => d(!1), children: /* @__PURE__ */ r($, { className: "flex-1", onPress: () => d(!1), children: /* @__PURE__ */ r(i, { className: "flex-1 items-center justify-center bg-black/50", children: /* @__PURE__ */ r($, { onPress: () => {
430
+ }, children: /* @__PURE__ */ r(
431
+ i,
432
+ {
433
+ ref: s,
434
+ className: n("bg-popover border-border mx-4 w-full max-w-sm rounded-md border p-4 shadow-lg", t),
435
+ ...o,
436
+ children: e
437
+ }
438
+ ) }) }) }) });
439
+ });
440
+ Vt.displayName = "PopoverContent";
441
+ const zt = a.forwardRef(({ className: t, value: e, ...o }, s) => /* @__PURE__ */ r(
442
+ i,
443
+ {
444
+ ref: s,
445
+ className: n("bg-muted relative h-2 w-full overflow-hidden rounded-full", t),
446
+ accessibilityRole: "progressbar",
447
+ role: "progressbar",
448
+ ...o,
449
+ children: /* @__PURE__ */ r(i, { className: "bg-primary h-full rounded-full", style: { width: `${e || 0}%` } })
450
+ }
451
+ ));
452
+ zt.displayName = "Progress";
453
+ const Ht = a.forwardRef(
454
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(G.Root, { className: n("web:grid gap-2", t), ...e, ref: o })
409
455
  );
410
- ot.displayName = D.Root?.displayName || "RadioGroup";
411
- const it = i.forwardRef(
412
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
413
- D.Item,
456
+ Ht.displayName = G.Root?.displayName || "RadioGroup";
457
+ const Ft = a.forwardRef(
458
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
459
+ G.Item,
414
460
  {
415
- ref: a,
416
- className: o(
461
+ ref: o,
462
+ className: n(
417
463
  "native:h-5 native:w-5 border-primary text-primary web:ring-offset-background web:focus:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2 aspect-square h-4 w-4 rounded-full border",
418
- t.disabled && "web:cursor-not-allowed opacity-50",
419
- r
464
+ e.disabled && "web:cursor-not-allowed opacity-50",
465
+ t
420
466
  ),
421
- ...t,
422
- children: /* @__PURE__ */ e(D.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ e(ne, { className: "h-2.5 w-2.5 fill-current text-current" }) })
467
+ ...e,
468
+ children: /* @__PURE__ */ r(G.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ r(Ie, { className: "h-2.5 w-2.5 fill-current text-current" }) })
423
469
  }
424
470
  )
425
471
  );
426
- it.displayName = D.Item?.displayName || "RadioGroupItem";
427
- const Nr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "ResizablePanelGroup is not yet implemented for React Native" }) }), wr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "ResizablePanel is not yet implemented for React Native" }) }), vr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "ResizableHandle is not yet implemented for React Native" }) }), Rr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "scroll-area is not yet implemented for React Native" }) }), Tr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "Search is not yet implemented for React Native" }) }), Cr = m.Root, Sr = m.Group, Dr = m.Value, nt = i.forwardRef(
428
- ({ className: r, children: t, ...a }, n) => /* @__PURE__ */ g(
429
- m.Trigger,
472
+ Ft.displayName = G.Item?.displayName || "RadioGroupItem";
473
+ const ro = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "ResizablePanelGroup is not yet implemented for React Native" }) }), oo = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "ResizablePanel is not yet implemented for React Native" }) }), ao = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "ResizableHandle is not yet implemented for React Native" }) }), no = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "scroll-area is not yet implemented for React Native" }) }), so = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "Search is not yet implemented for React Native" }) }), io = p.Root, lo = p.Group, co = p.Value, jt = a.forwardRef(
474
+ ({ className: t, children: e, ...o }, s) => /* @__PURE__ */ g(
475
+ p.Trigger,
430
476
  {
431
- ref: n,
432
- className: o(
477
+ ref: s,
478
+ className: n(
433
479
  "native:h-12 border-input bg-background text-muted-foreground web:ring-offset-background web:focus:outline-none web:focus:ring-2 web:focus:ring-ring web:focus:ring-offset-2 flex h-10 flex-row items-center justify-between rounded-md border px-3 py-2 text-sm [&>span]:line-clamp-1",
434
- a.disabled && "web:cursor-not-allowed opacity-50",
435
- r
480
+ o.disabled && "web:cursor-not-allowed opacity-50",
481
+ t
436
482
  ),
437
- ...a,
483
+ ...o,
438
484
  children: [
439
- /* @__PURE__ */ e(H, { children: t }),
440
- /* @__PURE__ */ e(L, { size: 16, "aria-hidden": !0, className: "text-foreground opacity-50" })
485
+ /* @__PURE__ */ r(W, { children: e }),
486
+ /* @__PURE__ */ r(Z, { size: 16, "aria-hidden": !0, className: "text-foreground opacity-50" })
441
487
  ]
442
488
  }
443
489
  )
444
490
  );
445
- nt.displayName = m.Trigger?.displayName || "SelectTrigger";
446
- const Q = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
447
- m.ScrollUpButton,
491
+ jt.displayName = p.Trigger?.displayName || "SelectTrigger";
492
+ const Ne = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
493
+ p.ScrollUpButton,
448
494
  {
449
- ref: a,
450
- className: o("flex cursor-default items-center justify-center py-1", r),
451
- ...t,
452
- children: /* @__PURE__ */ e(se, { size: 14, className: "text-foreground" })
495
+ ref: o,
496
+ className: n("flex cursor-default items-center justify-center py-1", t),
497
+ ...e,
498
+ children: /* @__PURE__ */ r(Ve, { size: 14, className: "text-foreground" })
453
499
  }
454
500
  ));
455
- Q.displayName = m.ScrollUpButton?.displayName || "SelectScrollUpButton";
456
- const Y = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
457
- m.ScrollDownButton,
501
+ Ne.displayName = p.ScrollUpButton?.displayName || "SelectScrollUpButton";
502
+ const we = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
503
+ p.ScrollDownButton,
458
504
  {
459
- ref: a,
460
- className: o("flex cursor-default items-center justify-center py-1", r),
461
- ...t,
462
- children: /* @__PURE__ */ e(L, { size: 14, className: "text-foreground" })
505
+ ref: o,
506
+ className: n("flex cursor-default items-center justify-center py-1", t),
507
+ ...e,
508
+ children: /* @__PURE__ */ r(Z, { size: 14, className: "text-foreground" })
463
509
  }
464
510
  ));
465
- Y.displayName = m.ScrollDownButton?.displayName || "SelectScrollDownButton";
466
- const st = i.forwardRef(
467
- ({ className: r, children: t, position: a = "popper", portalHost: n, overlayClassName: d, overlayStyle: f, ...u }, h) => {
468
- const { open: S } = m.useRootContext();
469
- return /* @__PURE__ */ g(m.Portal, { hostName: n, children: [
470
- /* @__PURE__ */ e(m.Overlay, { style: P.OS !== "web" ? A.absoluteFill : void 0, asChild: !0, children: /* @__PURE__ */ e(y.View, { className: d, style: f }) }),
511
+ we.displayName = p.ScrollDownButton?.displayName || "SelectScrollDownButton";
512
+ const Lt = a.forwardRef(
513
+ ({ className: t, children: e, position: o = "popper", portalHost: s, overlayClassName: l, overlayStyle: d, ...c }, f) => {
514
+ const { open: y } = p.useRootContext();
515
+ return /* @__PURE__ */ g(p.Portal, { hostName: s, children: [
516
+ /* @__PURE__ */ r(p.Overlay, { style: H.OS !== "web" ? U.absoluteFill : void 0, asChild: !0, children: /* @__PURE__ */ r(k.View, { className: l, style: d }) }),
471
517
  /* @__PURE__ */ g(
472
- m.Content,
518
+ p.Content,
473
519
  {
474
- ref: h,
475
- className: o(
520
+ ref: f,
521
+ className: n(
476
522
  "border-border bg-popover data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] rounded-md border shadow-md",
477
- a === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
478
- S ? "web:zoom-in-95 web:animate-in web:fade-in-0" : "web:zoom-out-95 web:animate-out web:fade-out-0",
479
- r
523
+ o === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",
524
+ y ? "web:zoom-in-95 web:animate-in web:fade-in-0" : "web:zoom-out-95 web:animate-out web:fade-out-0",
525
+ t
480
526
  ),
481
- position: a,
482
- ...u,
527
+ position: o,
528
+ ...c,
483
529
  children: [
484
- /* @__PURE__ */ e(Q, {}),
485
- /* @__PURE__ */ e(
486
- m.Viewport,
530
+ /* @__PURE__ */ r(Ne, {}),
531
+ /* @__PURE__ */ r(
532
+ p.Viewport,
487
533
  {
488
- className: o(
534
+ className: n(
489
535
  "p-1",
490
- a === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
536
+ o === "popper" && "h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"
491
537
  ),
492
- children: t
538
+ children: e
493
539
  }
494
540
  ),
495
- /* @__PURE__ */ e(Y, {})
541
+ /* @__PURE__ */ r(we, {})
496
542
  ]
497
543
  }
498
544
  )
499
545
  ] });
500
546
  }
501
547
  );
502
- st.displayName = m.Content?.displayName || "SelectContent";
503
- const lt = i.forwardRef(
504
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
505
- m.Label,
548
+ Lt.displayName = p.Content?.displayName || "SelectContent";
549
+ const Bt = a.forwardRef(
550
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
551
+ p.Label,
506
552
  {
507
- ref: a,
508
- className: o("text-popover-foreground py-1.5 pr-2 pl-8 text-sm font-semibold", r),
509
- ...t
553
+ ref: o,
554
+ className: n("text-popover-foreground py-1.5 pr-2 pl-8 text-sm font-semibold", t),
555
+ ...e
510
556
  }
511
557
  )
512
558
  );
513
- lt.displayName = m.Label?.displayName || "SelectLabel";
514
- const dt = i.forwardRef(
515
- ({ className: r, children: t, label: a, ...n }, d) => {
516
- const f = a || (typeof t == "string" ? t : "");
559
+ Bt.displayName = p.Label?.displayName || "SelectLabel";
560
+ const Et = a.forwardRef(
561
+ ({ className: t, children: e, label: o, ...s }, l) => {
562
+ const d = o || (typeof e == "string" ? e : "");
517
563
  return /* @__PURE__ */ g(
518
- m.Item,
564
+ p.Item,
519
565
  {
520
- ref: d,
521
- label: f,
522
- className: o(
566
+ ref: l,
567
+ label: d,
568
+ className: n(
523
569
  "web:hover:bg-accent/50 web:focus:bg-accent web:focus:text-accent-foreground web:hover:text-accent-foreground relative flex w-full cursor-default flex-row items-center rounded-sm py-1.5 pr-2 pl-8 text-sm outline-none select-none data-[disabled]:opacity-50",
524
- n.disabled && "web:pointer-events-none",
525
- r
570
+ s.disabled && "web:pointer-events-none",
571
+ t
526
572
  ),
527
- ...n,
573
+ ...s,
528
574
  children: [
529
- /* @__PURE__ */ e(
530
- s,
575
+ /* @__PURE__ */ r(
576
+ i,
531
577
  {
532
578
  className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
533
- children: /* @__PURE__ */ e(m.ItemIndicator, { children: /* @__PURE__ */ e(E, { size: 14, strokeWidth: 3, className: "text-popover-foreground" }) })
579
+ children: /* @__PURE__ */ r(p.ItemIndicator, { children: /* @__PURE__ */ r(de, { size: 14, strokeWidth: 3, className: "text-popover-foreground" }) })
534
580
  }
535
581
  ),
536
- /* @__PURE__ */ e(m.ItemText, { className: "text-popover-foreground native:text-base text-sm", children: t })
582
+ /* @__PURE__ */ r(p.ItemText, { className: "text-popover-foreground native:text-base text-sm", children: e })
537
583
  ]
538
584
  }
539
585
  );
540
586
  }
541
587
  );
542
- dt.displayName = m.Item?.displayName || "SelectItem";
543
- const ct = i.forwardRef(
544
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
545
- m.Separator,
588
+ Et.displayName = p.Item?.displayName || "SelectItem";
589
+ const Gt = a.forwardRef(
590
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
591
+ p.Separator,
546
592
  {
547
- ref: a,
548
- className: o("bg-muted -mx-1 my-1 h-px", r),
549
- ...t
593
+ ref: o,
594
+ className: n("bg-muted -mx-1 my-1 h-px", t),
595
+ ...e
550
596
  }
551
597
  )
552
598
  );
553
- ct.displayName = m.Separator?.displayName || "SelectSeparator";
554
- const mt = i.forwardRef(({ className: r, orientation: t = "horizontal", decorative: a = !0, ...n }, d) => /* @__PURE__ */ e(
555
- $.Root,
556
- {
557
- ref: d,
558
- decorative: a,
559
- orientation: t,
560
- className: o("bg-border shrink-0", t === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", r),
561
- ...n
599
+ Gt.displayName = p.Separator?.displayName || "SelectSeparator";
600
+ const Mt = a.forwardRef(
601
+ ({
602
+ threshold: t = 240,
603
+ exitDuration: e = 450,
604
+ behavior: o,
605
+ // Native uses 'smooth' or just scrolls
606
+ label: s = "Scroll to top",
607
+ className: l,
608
+ scrollRef: d,
609
+ animationDuration: c = 300,
610
+ ...f
611
+ }, y) => {
612
+ const [w, O] = a.useState(!1), [I, V] = a.useState(!1), b = a.useRef(new P.Value(0)).current, h = a.useRef(new P.Value(20)).current, v = () => {
613
+ P.parallel([
614
+ P.timing(b, {
615
+ toValue: 1,
616
+ duration: c,
617
+ useNativeDriver: !0
618
+ }),
619
+ P.timing(h, {
620
+ toValue: 0,
621
+ duration: c,
622
+ useNativeDriver: !0
623
+ })
624
+ ]).start();
625
+ }, R = () => {
626
+ P.parallel([
627
+ P.timing(b, {
628
+ toValue: 0,
629
+ duration: c,
630
+ useNativeDriver: !0
631
+ }),
632
+ P.timing(h, {
633
+ toValue: 20,
634
+ duration: c,
635
+ useNativeDriver: !0
636
+ })
637
+ ]).start(() => {
638
+ I || O(!1);
639
+ });
640
+ }, D = (C) => {
641
+ const x = C.nativeEvent.contentOffset.y;
642
+ if (I) {
643
+ x <= t && (O(!1), V(!1));
644
+ return;
645
+ }
646
+ x > t && !w ? (O(!0), v()) : x <= t && w && R();
647
+ }, z = () => {
648
+ V(!0), R(), setTimeout(() => {
649
+ if (d?.current) {
650
+ const C = d.current;
651
+ "scrollToOffset" in C && typeof C.scrollToOffset == "function" ? C.scrollToOffset({ offset: 0, animated: o !== "auto" }) : "scrollTo" in C && typeof C.scrollTo == "function" && C.scrollTo({ y: 0, animated: o !== "auto" });
652
+ }
653
+ (H.OS === "ios" || H.OS === "android") && ke.announceForAccessibility("Scrolled to top");
654
+ }, e);
655
+ };
656
+ return a.useImperativeHandle(y, () => ({
657
+ handleScroll: D,
658
+ scrollToTop: z
659
+ })), !w && !I ? null : /* @__PURE__ */ r(
660
+ i,
661
+ {
662
+ pointerEvents: "box-none",
663
+ style: {
664
+ position: "absolute",
665
+ bottom: 24,
666
+ right: 24,
667
+ zIndex: 50
668
+ },
669
+ children: /* @__PURE__ */ r(
670
+ P.View,
671
+ {
672
+ style: {
673
+ opacity: b,
674
+ transform: [{ translateY: h }]
675
+ },
676
+ children: /* @__PURE__ */ r(
677
+ q,
678
+ {
679
+ variant: "outline",
680
+ size: "icon",
681
+ className: n("bg-background/80 h-12 w-12 rounded-full border-2 shadow-lg", l),
682
+ onPress: z,
683
+ "aria-label": s,
684
+ ...f,
685
+ children: /* @__PURE__ */ r(ze, { size: 24, className: "text-foreground" })
686
+ }
687
+ )
688
+ }
689
+ )
690
+ }
691
+ );
562
692
  }
563
- ));
564
- mt.displayName = $.Root?.displayName || "Separator";
565
- const U = i.createContext(void 0), ft = R("text-foreground", {
693
+ );
694
+ Mt.displayName = "ScrollToTop";
695
+ const ae = a.createContext(void 0), Ut = B("text-foreground", {
566
696
  variants: {
567
697
  variant: {
568
698
  h1: "text-4xl font-extrabold tracking-tight",
@@ -579,58 +709,163 @@ const U = i.createContext(void 0), ft = R("text-foreground", {
579
709
  defaultVariants: {
580
710
  variant: "body"
581
711
  }
582
- }), C = i.forwardRef(
583
- ({ className: r, variant: t = "body", children: a, ...n }, d) => /* @__PURE__ */ e(l, { ref: d, className: o(ft({ variant: t, className: r })), ...n, children: a })
712
+ }), S = a.forwardRef(
713
+ ({ className: t, variant: e = "body", children: o, ...s }, l) => /* @__PURE__ */ r(m, { ref: l, className: n(Ut({ variant: e, className: t })), ...s, children: o })
584
714
  );
585
- C.displayName = "Text";
586
- const kr = c.Root, Ar = c.Trigger, Pr = c.Close, ut = c.Portal, Z = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
587
- c.Overlay,
715
+ S.displayName = "Text";
716
+ const $t = (t) => {
717
+ const e = t.trim();
718
+ return e.endsWith("/") ? e.slice(0, -1) : e;
719
+ }, Yt = (t) => t.trim().replace(/^@+/, ""), qt = (t, e) => {
720
+ const o = $t(t), s = encodeURIComponent(Yt(e));
721
+ return `${o}/${s}`;
722
+ };
723
+ function mo({
724
+ supportUrl: t = "https://www.buymeacoffee.com",
725
+ creatorId: e,
726
+ title: o = "Buy me a coffee",
727
+ description: s = "Support the project directly from this panel.",
728
+ open: l,
729
+ defaultOpen: d = !1,
730
+ onOpenChange: c,
731
+ positionClassName: f,
732
+ buttonClassName: y,
733
+ panelClassName: w,
734
+ className: O,
735
+ ...I
736
+ }) {
737
+ const V = l !== void 0, [b, h] = a.useState(d), v = V ? l : b, R = a.useCallback(
738
+ (x) => {
739
+ V || h(x), c?.(x);
740
+ },
741
+ [V, c]
742
+ ), D = a.useMemo(() => qt(t, e), [e, t]), z = a.useCallback(async () => {
743
+ try {
744
+ await Ae.openURL(D);
745
+ } catch (x) {
746
+ console.warn("Failed to open external link:", x);
747
+ }
748
+ }, [D]), C = /* @__PURE__ */ r(
749
+ i,
750
+ {
751
+ style: {
752
+ position: "absolute",
753
+ bottom: 24,
754
+ right: 24,
755
+ zIndex: 50
756
+ },
757
+ className: f,
758
+ children: /* @__PURE__ */ r(
759
+ q,
760
+ {
761
+ variant: "outline",
762
+ size: "icon",
763
+ className: n(
764
+ "h-14 w-14 rounded-full border border-black/15 bg-[#ffdd00] shadow-lg",
765
+ y,
766
+ O
767
+ ),
768
+ onPress: () => R(!0),
769
+ "aria-label": "Support this project",
770
+ ...I,
771
+ children: /* @__PURE__ */ r(He, { size: 24, className: "text-black" })
772
+ }
773
+ )
774
+ }
775
+ );
776
+ return /* @__PURE__ */ g(W, { children: [
777
+ C,
778
+ /* @__PURE__ */ r(Ct, { open: v, onOpenChange: R, children: /* @__PURE__ */ g(be, { className: n("max-w-sm", w), children: [
779
+ /* @__PURE__ */ g(he, { children: [
780
+ /* @__PURE__ */ r(ye, { children: o }),
781
+ /* @__PURE__ */ r(xe, { children: s })
782
+ ] }),
783
+ /* @__PURE__ */ g(i, { className: "flex flex-col gap-4", children: [
784
+ /* @__PURE__ */ r(i, { className: "overflow-hidden rounded-md border", children: /* @__PURE__ */ r(i, { className: "bg-muted flex h-48 items-center justify-center", children: /* @__PURE__ */ g(S, { className: "text-muted-foreground text-center text-sm", children: [
785
+ "Embedded support form would appear here on web.",
786
+ `
787
+ `,
788
+ "On mobile, this opens the external support page."
789
+ ] }) }) }),
790
+ /* @__PURE__ */ g(i, { className: "text-muted-foreground flex items-center justify-between gap-2 text-xs", children: [
791
+ /* @__PURE__ */ r(S, { className: "text-muted-foreground flex-1 text-xs", children: "If the embedded checkout is unavailable, open the support page directly." }),
792
+ /* @__PURE__ */ g(
793
+ q,
794
+ {
795
+ variant: "outline",
796
+ size: "sm",
797
+ onPress: z,
798
+ className: "flex flex-row items-center gap-1",
799
+ children: [
800
+ /* @__PURE__ */ r(S, { className: "text-xs", children: "Open Buy Me a Coffee" }),
801
+ /* @__PURE__ */ r(Fe, { size: 12, className: "text-muted-foreground" })
802
+ ]
803
+ }
804
+ )
805
+ ] })
806
+ ] })
807
+ ] }) })
808
+ ] });
809
+ }
810
+ const Wt = a.forwardRef(({ className: t, orientation: e = "horizontal", decorative: o = !0, ...s }, l) => /* @__PURE__ */ r(
811
+ me.Root,
588
812
  {
589
- style: P.OS !== "web" ? A.absoluteFill : void 0,
813
+ ref: l,
814
+ decorative: o,
815
+ orientation: e,
816
+ className: n("bg-border shrink-0", e === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]", t),
817
+ ...s
818
+ }
819
+ ));
820
+ Wt.displayName = me.Root?.displayName || "Separator";
821
+ const uo = u.Root, fo = u.Trigger, po = u.Close, Xt = u.Portal, ve = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
822
+ u.Overlay,
823
+ {
824
+ style: H.OS !== "web" ? U.absoluteFill : void 0,
590
825
  asChild: !0,
591
- ref: a,
592
- ...t,
593
- children: /* @__PURE__ */ e(
594
- y.View,
826
+ ref: o,
827
+ ...e,
828
+ children: /* @__PURE__ */ r(
829
+ k.View,
595
830
  {
596
- entering: v.duration(150),
597
- exiting: w.duration(150),
598
- className: o("web:cursor-default absolute inset-0 z-50 bg-black/80", r)
831
+ entering: L.duration(150),
832
+ exiting: j.duration(150),
833
+ className: n("web:cursor-default absolute inset-0 z-50 bg-black/80", t)
599
834
  }
600
835
  )
601
836
  }
602
837
  ));
603
- Z.displayName = c.Overlay?.displayName || "SheetOverlay";
604
- const pt = i.forwardRef(
605
- ({ className: r, children: t, side: a = "right", overlayClassName: n, overlayStyle: d, ...f }, u) => {
606
- const h = P.OS === "web", S = h ? void 0 : fe, te = h ? void 0 : me;
607
- return /* @__PURE__ */ g(ut, { children: [
608
- /* @__PURE__ */ e(Z, { className: n, style: d }),
609
- /* @__PURE__ */ e(c.Content, { ref: u, asChild: !0, ...f, children: /* @__PURE__ */ g(
610
- y.View,
838
+ ve.displayName = u.Overlay?.displayName || "SheetOverlay";
839
+ const _t = a.forwardRef(
840
+ ({ className: t, children: e, side: o = "right", overlayClassName: s, overlayStyle: l, ...d }, c) => {
841
+ const f = H.OS === "web", y = f ? void 0 : Ge, w = f ? void 0 : Ee;
842
+ return /* @__PURE__ */ g(Xt, { children: [
843
+ /* @__PURE__ */ r(ve, { className: s, style: l }),
844
+ /* @__PURE__ */ r(u.Content, { ref: c, asChild: !0, ...d, children: /* @__PURE__ */ g(
845
+ k.View,
611
846
  {
612
- entering: S,
613
- exiting: te,
614
- className: o(
847
+ entering: y,
848
+ exiting: w,
849
+ className: n(
615
850
  "bg-background web:cursor-default web:duration-200 web:ease-in-out absolute z-50 h-full w-3/4 gap-4 p-6 shadow-lg",
616
- a === "right" && "border-border data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right top-0 right-0 border-l",
617
- a === "left" && "border-border data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left top-0 left-0 border-r",
618
- a === "top" && "border-border data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top top-0 w-full border-b",
619
- a === "bottom" && "border-border data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom bottom-0 w-full border-t",
620
- r
851
+ o === "right" && "border-border data-[state=closed]:slide-out-to-right data-[state=open]:slide-in-from-right top-0 right-0 border-l",
852
+ o === "left" && "border-border data-[state=closed]:slide-out-to-left data-[state=open]:slide-in-from-left top-0 left-0 border-r",
853
+ o === "top" && "border-border data-[state=closed]:slide-out-to-top data-[state=open]:slide-in-from-top top-0 w-full border-b",
854
+ o === "bottom" && "border-border data-[state=closed]:slide-out-to-bottom data-[state=open]:slide-in-from-bottom bottom-0 w-full border-t",
855
+ t
621
856
  ),
622
857
  children: [
623
- t,
858
+ e,
624
859
  /* @__PURE__ */ g(
625
- c.Close,
860
+ u.Close,
626
861
  {
627
- className: o(
862
+ className: n(
628
863
  "ring-offset-background focus:ring-ring data-[state=open]:bg-secondary absolute top-4 right-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none",
629
864
  "web:absolute web:right-4 web:top-4"
630
865
  ),
631
866
  children: [
632
- /* @__PURE__ */ e(G, { size: 24, className: "text-muted-foreground" }),
633
- /* @__PURE__ */ e(C, { className: "sr-only", children: "Close" })
867
+ /* @__PURE__ */ r(ee, { size: 24, className: "text-muted-foreground" }),
868
+ /* @__PURE__ */ r(S, { className: "sr-only", children: "Close" })
634
869
  ]
635
870
  }
636
871
  )
@@ -640,46 +875,46 @@ const pt = i.forwardRef(
640
875
  ] });
641
876
  }
642
877
  );
643
- pt.displayName = c.Content?.displayName || "SheetContent";
644
- const gt = ({ className: r, ...t }) => /* @__PURE__ */ e(s, { className: o("flex flex-col space-y-2 text-center sm:text-left", r), ...t });
645
- gt.displayName = "SheetHeader";
646
- const bt = ({ className: r, ...t }) => /* @__PURE__ */ e(s, { className: o("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", r), ...t });
647
- bt.displayName = "SheetFooter";
648
- const ht = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(c.Title, { ref: a, className: o("text-foreground text-lg font-semibold", r), ...t }));
649
- ht.displayName = c.Title?.displayName || "SheetTitle";
650
- const yt = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(c.Description, { ref: a, className: o("text-muted-foreground text-sm", r), ...t }));
651
- yt.displayName = c.Description?.displayName || "SheetDescription";
652
- function zr({ className: r, ...t }) {
653
- const a = ue(0.5);
654
- i.useEffect(() => {
655
- a.value = pe(
656
- ge(z(0.2, { duration: 500 }), z(0.5, { duration: 500 })),
878
+ _t.displayName = u.Content?.displayName || "SheetContent";
879
+ const Jt = ({ className: t, ...e }) => /* @__PURE__ */ r(i, { className: n("flex flex-col space-y-2 text-center sm:text-left", t), ...e });
880
+ Jt.displayName = "SheetHeader";
881
+ const Kt = ({ className: t, ...e }) => /* @__PURE__ */ r(i, { className: n("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", t), ...e });
882
+ Kt.displayName = "SheetFooter";
883
+ const Qt = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(u.Title, { ref: o, className: n("text-foreground text-lg font-semibold", t), ...e }));
884
+ Qt.displayName = u.Title?.displayName || "SheetTitle";
885
+ const Zt = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(u.Description, { ref: o, className: n("text-muted-foreground text-sm", t), ...e }));
886
+ Zt.displayName = u.Description?.displayName || "SheetDescription";
887
+ function go({ className: t, ...e }) {
888
+ const o = Me(0.5);
889
+ a.useEffect(() => {
890
+ o.value = Ue(
891
+ $e(Y(0.2, { duration: 500 }), Y(0.5, { duration: 500 })),
657
892
  -1,
658
893
  !0
659
894
  );
660
895
  }, []);
661
- const n = W(() => ({
662
- opacity: a.value
896
+ const s = ce(() => ({
897
+ opacity: o.value
663
898
  }));
664
- return /* @__PURE__ */ e(y.View, { className: o("bg-muted rounded-md", r), style: n, ...t });
899
+ return /* @__PURE__ */ r(k.View, { className: n("bg-muted rounded-md", t), style: s, ...e });
665
900
  }
666
- const Ir = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "slider is not yet implemented for React Native" }) }), Vr = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "Toaster (Sonner) is not yet implemented for React Native" }) }), xt = i.forwardRef(
667
- ({ className: r, checked: t, onCheckedChange: a, ...n }, d) => /* @__PURE__ */ e(
668
- j.Root,
901
+ const bo = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "slider is not yet implemented for React Native" }) }), ho = () => /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "Toaster (Sonner) is not yet implemented for React Native" }) }), er = a.forwardRef(
902
+ ({ className: t, checked: e, onCheckedChange: o, ...s }, l) => /* @__PURE__ */ r(
903
+ Q.Root,
669
904
  {
670
- className: o(
905
+ className: n(
671
906
  "peer focus-visible:ring-ring focus-visible:ring-offset-background data-[state=checked]:bg-primary data-[state=unchecked]:bg-input inline-flex h-6 w-11 shrink-0 cursor-pointer flex-row items-center rounded-full border-2 border-transparent transition-colors focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50",
672
- r
907
+ t
673
908
  ),
674
- ...n,
675
- checked: t ?? !1,
676
- onCheckedChange: a || (() => {
909
+ ...s,
910
+ checked: e ?? !1,
911
+ onCheckedChange: o || (() => {
677
912
  }),
678
- ref: d,
679
- children: /* @__PURE__ */ e(
680
- j.Thumb,
913
+ ref: l,
914
+ children: /* @__PURE__ */ r(
915
+ Q.Thumb,
681
916
  {
682
- className: o(
917
+ className: n(
683
918
  "bg-background pointer-events-none block h-5 w-5 rounded-full shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0"
684
919
  )
685
920
  }
@@ -687,404 +922,529 @@ const Ir = () => /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { childre
687
922
  }
688
923
  )
689
924
  );
690
- xt.displayName = j.Root?.displayName || "Switch";
691
- const Nt = i.forwardRef(
692
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(s, { ref: a, className: o("w-full caption-bottom text-sm", r), ...t })
925
+ er.displayName = Q.Root?.displayName || "Switch";
926
+ const tr = a.forwardRef(
927
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(i, { ref: o, className: n("w-full caption-bottom text-sm", t), ...e })
693
928
  );
694
- Nt.displayName = "Table";
695
- const wt = i.forwardRef(
696
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(s, { ref: a, className: o("border-border border-b", r), ...t })
929
+ tr.displayName = "Table";
930
+ const rr = a.forwardRef(
931
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(i, { ref: o, className: n("border-border border-b", t), ...e })
697
932
  );
698
- wt.displayName = "TableHeader";
699
- const vt = i.forwardRef(
700
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(s, { ref: a, className: o("flex-1", r), ...t })
933
+ rr.displayName = "TableHeader";
934
+ const or = a.forwardRef(
935
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(i, { ref: o, className: n("flex-1", t), ...e })
701
936
  );
702
- vt.displayName = "TableBody";
703
- const Rt = i.forwardRef(
704
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(s, { ref: a, className: o("bg-muted/50 font-medium [&>tr]:last:border-b-0", r), ...t })
937
+ or.displayName = "TableBody";
938
+ const ar = a.forwardRef(
939
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(i, { ref: o, className: n("bg-muted/50 font-medium [&>tr]:last:border-b-0", t), ...e })
705
940
  );
706
- Rt.displayName = "TableFooter";
707
- const Tt = i.forwardRef(
708
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
709
- s,
941
+ ar.displayName = "TableFooter";
942
+ const nr = a.forwardRef(
943
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
944
+ i,
710
945
  {
711
- ref: a,
712
- className: o(
946
+ ref: o,
947
+ className: n(
713
948
  "border-border hover:bg-muted/50 data-[state=selected]:bg-muted flex-row border-b transition-colors",
714
- r
949
+ t
715
950
  ),
716
- ...t
951
+ ...e
717
952
  }
718
953
  )
719
954
  );
720
- Tt.displayName = "TableRow";
721
- const Ct = i.forwardRef(
722
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
723
- C,
955
+ nr.displayName = "TableRow";
956
+ const sr = a.forwardRef(
957
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
958
+ S,
724
959
  {
725
- ref: a,
726
- className: o(
960
+ ref: o,
961
+ className: n(
727
962
  "text-muted-foreground h-12 px-4 text-left align-middle font-medium [&:has([role=checkbox])]:pr-0",
728
- r
963
+ t
729
964
  ),
730
- ...t
965
+ ...e
731
966
  }
732
967
  )
733
968
  );
734
- Ct.displayName = "TableHead";
735
- const St = i.forwardRef(
736
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(C, { ref: a, className: o("p-4 align-middle [&:has([role=checkbox])]:pr-0", r), ...t })
969
+ sr.displayName = "TableHead";
970
+ const ir = a.forwardRef(
971
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(S, { ref: o, className: n("p-4 align-middle [&:has([role=checkbox])]:pr-0", t), ...e })
737
972
  );
738
- St.displayName = "TableCell";
739
- const Dt = i.forwardRef(
740
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(C, { ref: a, className: o("text-muted-foreground mt-4 text-sm", r), ...t })
973
+ ir.displayName = "TableCell";
974
+ const lr = a.forwardRef(
975
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(S, { ref: o, className: n("text-muted-foreground mt-4 text-sm", t), ...e })
741
976
  );
742
- Dt.displayName = "TableCaption";
743
- const Fr = N.Root, kt = i.forwardRef(
744
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
745
- N.List,
977
+ lr.displayName = "TableCaption";
978
+ const dr = a.forwardRef((t, e) => /* @__PURE__ */ r(F.Root, { ref: e, ...t }));
979
+ dr.displayName = "Tabs";
980
+ const cr = a.forwardRef(
981
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
982
+ F.List,
746
983
  {
747
- ref: a,
748
- className: o(
984
+ ref: o,
985
+ className: n(
749
986
  "bg-muted text-muted-foreground inline-flex h-10 flex-row items-center justify-center rounded-md p-1",
750
- r
987
+ t
751
988
  ),
752
- ...t
989
+ ...e
753
990
  }
754
991
  )
755
992
  );
756
- kt.displayName = N.List?.displayName || "TabsList";
757
- const At = i.forwardRef(
758
- ({ className: r, ...t }, a) => {
759
- const { value: n } = N.useRootContext();
760
- return /* @__PURE__ */ e(
761
- U.Provider,
993
+ cr.displayName = F.List?.displayName || "TabsList";
994
+ const mr = a.forwardRef(
995
+ ({ className: t, ...e }, o) => {
996
+ const { value: s } = F.useRootContext();
997
+ return /* @__PURE__ */ r(
998
+ ae.Provider,
762
999
  {
763
- value: o(
1000
+ value: n(
764
1001
  "text-sm native:text-base font-medium text-muted-foreground web:transition-all",
765
- n === t.value && "text-foreground"
1002
+ s === e.value && "text-foreground"
766
1003
  ),
767
- children: /* @__PURE__ */ e(
768
- N.Trigger,
1004
+ children: /* @__PURE__ */ r(
1005
+ F.Trigger,
769
1006
  {
770
- ref: a,
771
- className: o(
1007
+ ref: o,
1008
+ className: n(
772
1009
  "ring-offset-background focus-visible:ring-ring inline-flex items-center justify-center rounded-sm px-3 py-1.5 text-sm font-medium whitespace-nowrap transition-all focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50",
773
- t.disabled && "opacity-50",
774
- n === t.value && "bg-background shadow-foreground/10 shadow-sm",
775
- r
1010
+ e.disabled && "opacity-50",
1011
+ s === e.value && "bg-background shadow-foreground/10 shadow-sm",
1012
+ t
776
1013
  ),
777
- ...t
1014
+ ...e
778
1015
  }
779
1016
  )
780
1017
  }
781
1018
  );
782
1019
  }
783
1020
  );
784
- At.displayName = N.Trigger?.displayName || "TabsTrigger";
785
- const Pt = i.forwardRef(
786
- ({ className: r, ...t }, a) => /* @__PURE__ */ e(
787
- N.Content,
1021
+ mr.displayName = F.Trigger?.displayName || "TabsTrigger";
1022
+ const ur = a.forwardRef(
1023
+ ({ className: t, ...e }, o) => /* @__PURE__ */ r(
1024
+ F.Content,
788
1025
  {
789
- ref: a,
790
- className: o(
1026
+ ref: o,
1027
+ className: n(
791
1028
  "ring-offset-background focus-visible:ring-ring mt-2 focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:outline-none",
792
- r
1029
+ t
793
1030
  ),
794
- ...t
1031
+ ...e
795
1032
  }
796
1033
  )
797
1034
  );
798
- Pt.displayName = N.Content?.displayName || "TabsContent";
799
- const zt = i.forwardRef(
800
- ({ className: r, placeholderClassName: t, ...a }, n) => /* @__PURE__ */ e(
801
- q,
1035
+ ur.displayName = F.Content?.displayName || "TabsContent";
1036
+ const fr = a.forwardRef(
1037
+ ({ className: t, placeholderClassName: e, ...o }, s) => /* @__PURE__ */ r(
1038
+ ie,
802
1039
  {
803
- ref: n,
1040
+ ref: s,
804
1041
  multiline: !0,
805
- numberOfLines: a.numberOfLines || 3,
806
- className: o(
1042
+ numberOfLines: o.numberOfLines || 3,
1043
+ className: n(
807
1044
  "border-input bg-background text-foreground placeholder:text-muted-foreground focus:border-ring flex min-h-[80px] w-full rounded-md border px-3 py-2 text-base shadow-sm transition-colors disabled:opacity-50",
808
- r
1045
+ t
809
1046
  ),
810
- placeholderClassName: o("text-muted-foreground", t),
1047
+ placeholderClassName: n("text-muted-foreground", e),
811
1048
  textAlignVertical: "top",
812
- ...a
1049
+ ...o
813
1050
  }
814
1051
  )
815
1052
  );
816
- zt.displayName = "Textarea";
817
- const It = i.forwardRef(
818
- ({ className: r, variant: t, size: a, ...n }, d) => /* @__PURE__ */ e(
819
- U.Provider,
1053
+ fr.displayName = "Textarea";
1054
+ const pr = a.forwardRef(
1055
+ ({ className: t, variant: e, size: o, ...s }, l) => /* @__PURE__ */ r(
1056
+ ae.Provider,
820
1057
  {
821
- value: o(
1058
+ value: n(
822
1059
  "text-sm native:text-base text-foreground font-medium",
823
- n.pressed && "text-accent-foreground",
824
- r
1060
+ s.pressed && "text-accent-foreground",
1061
+ t
825
1062
  ),
826
- children: /* @__PURE__ */ e(
827
- _.Root,
1063
+ children: /* @__PURE__ */ r(
1064
+ fe.Root,
828
1065
  {
829
- ref: d,
830
- className: o(X({ variant: t, size: a, className: r })),
831
- ...n,
832
- pressed: n.pressed || !1,
833
- onPressedChange: n.onPressedChange || (() => {
1066
+ ref: l,
1067
+ className: n(ue({ variant: e, size: o, className: t })),
1068
+ ...s,
1069
+ pressed: s.pressed || !1,
1070
+ onPressedChange: s.onPressedChange || (() => {
834
1071
  })
835
1072
  }
836
1073
  )
837
1074
  }
838
1075
  )
839
1076
  );
840
- It.displayName = _.Root?.displayName || "Toggle";
841
- const ee = i.createContext({
1077
+ pr.displayName = fe.Root?.displayName || "Toggle";
1078
+ const Re = a.createContext({
842
1079
  size: "default",
843
1080
  variant: "default"
844
- }), Vt = i.forwardRef(
845
- ({ className: r, variant: t, size: a, children: n, type: d, value: f, onValueChange: u, ...h }, S) => /* @__PURE__ */ e(
846
- I.Root,
1081
+ }), gr = a.forwardRef(
1082
+ ({ className: t, variant: e, size: o, children: s, type: l, value: d, onValueChange: c, ...f }, y) => /* @__PURE__ */ r(
1083
+ X.Root,
847
1084
  {
848
- ref: S,
849
- type: d,
850
- value: f,
851
- onValueChange: u,
852
- className: o("flex flex-row items-center justify-center gap-1", r),
853
- ...h,
854
- children: /* @__PURE__ */ e(ee.Provider, { value: { variant: t, size: a }, children: n })
1085
+ ref: y,
1086
+ type: l,
1087
+ value: d,
1088
+ onValueChange: c,
1089
+ className: n("flex flex-row items-center justify-center gap-1", t),
1090
+ ...f,
1091
+ children: /* @__PURE__ */ r(Re.Provider, { value: { variant: e, size: o }, children: s })
855
1092
  }
856
1093
  )
857
1094
  );
858
- Vt.displayName = I.Root?.displayName || "ToggleGroup";
859
- const Ft = i.forwardRef(
860
- ({ className: r, children: t, variant: a, size: n, value: d, ...f }, u) => {
861
- const h = i.useContext(ee);
862
- return /* @__PURE__ */ e(
863
- U.Provider,
1095
+ gr.displayName = X.Root?.displayName || "ToggleGroup";
1096
+ const br = a.forwardRef(
1097
+ ({ className: t, children: e, variant: o, size: s, value: l, ...d }, c) => {
1098
+ const f = a.useContext(Re);
1099
+ return /* @__PURE__ */ r(
1100
+ ae.Provider,
864
1101
  {
865
- value: o(
1102
+ value: n(
866
1103
  "text-sm native:text-base text-foreground font-medium",
867
- f.disabled && "web:cursor-not-allowed opacity-50",
868
- d === "" && "text-accent-foreground",
869
- r
1104
+ d.disabled && "web:cursor-not-allowed opacity-50",
1105
+ l === "" && "text-accent-foreground",
1106
+ t
870
1107
  ),
871
- children: /* @__PURE__ */ e(
872
- I.Item,
1108
+ children: /* @__PURE__ */ r(
1109
+ X.Item,
873
1110
  {
874
- ref: u,
875
- value: d,
876
- className: o(
877
- X({
878
- variant: h.variant || a,
879
- size: h.size || n
1111
+ ref: c,
1112
+ value: l,
1113
+ className: n(
1114
+ ue({
1115
+ variant: f.variant || o,
1116
+ size: f.size || s
880
1117
  }),
881
- r
1118
+ t
882
1119
  ),
883
- ...f,
884
- children: t
1120
+ ...d,
1121
+ children: e
885
1122
  }
886
1123
  )
887
1124
  }
888
1125
  );
889
1126
  }
890
1127
  );
891
- Ft.displayName = I.Item?.displayName || "ToggleGroupItem";
892
- const Or = k.Root, jr = k.Trigger, Ot = i.forwardRef(
893
- ({ className: r, portalHost: t, ...a }, n) => /* @__PURE__ */ e(k.Portal, { hostName: t, children: /* @__PURE__ */ e(k.Overlay, { style: P.OS !== "web" ? A.absoluteFill : void 0, children: /* @__PURE__ */ e(
894
- y.View,
895
- {
896
- entering: v,
897
- exiting: w,
898
- className: o(
899
- "border-border bg-popover web:animate-in web:fade-in-0 web:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md border px-3 py-1.5 shadow-md",
900
- r
901
- ),
902
- children: /* @__PURE__ */ e(C, { className: "text-popover-foreground native:text-base text-sm", children: a.children })
903
- }
904
- ) }) })
905
- );
906
- Ot.displayName = k.Content?.displayName || "TooltipContent";
907
- const Hr = ({ children: r }) => /* @__PURE__ */ e(H, { children: r }), jt = i.forwardRef(({ className: r, variant: t = "default", ...a }, n) => /* @__PURE__ */ e(
908
- x.Root,
1128
+ br.displayName = X.Item?.displayName || "ToggleGroupItem";
1129
+ const yo = M.Root, xo = M.Trigger, hr = a.forwardRef(({ className: t, portalHost: e, ...o }, s) => /* @__PURE__ */ r(M.Portal, { hostName: e, children: /* @__PURE__ */ r(M.Overlay, { style: H.OS !== "web" ? U.absoluteFill : void 0, children: /* @__PURE__ */ r(
1130
+ k.View,
909
1131
  {
910
- ref: n,
911
- className: o(
1132
+ entering: L,
1133
+ exiting: j,
1134
+ className: n(
1135
+ "border-border bg-popover web:animate-in web:fade-in-0 web:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md border px-3 py-1.5 shadow-md",
1136
+ t
1137
+ ),
1138
+ children: /* @__PURE__ */ r(S, { className: "text-popover-foreground native:text-base text-sm", children: o.children })
1139
+ }
1140
+ ) }) }));
1141
+ hr.displayName = M.Content?.displayName || "TooltipContent";
1142
+ const No = ({ children: t }) => /* @__PURE__ */ r(W, { children: t }), yr = a.forwardRef(({ className: t, variant: e = "default", ...o }, s) => /* @__PURE__ */ r(
1143
+ A.Root,
1144
+ {
1145
+ ref: s,
1146
+ className: n(
912
1147
  "group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-lg",
913
- t === "default" ? "border-border bg-background" : "border-destructive bg-destructive",
914
- r
1148
+ e === "default" ? "border-border bg-background" : "border-destructive bg-destructive",
1149
+ t
915
1150
  ),
916
- ...a,
917
- children: /* @__PURE__ */ e(y.View, { entering: ye, exiting: he, layout: be, className: "w-full flex-row items-center", children: a.children })
1151
+ ...o,
1152
+ children: /* @__PURE__ */ r(k.View, { entering: We, exiting: qe, layout: Ye, className: "w-full flex-row items-center", children: o.children })
918
1153
  }
919
1154
  ));
920
- jt.displayName = x.Root.displayName;
921
- const Ht = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(x.Title, { ref: a, className: o("text-foreground text-sm font-semibold", r), ...t }));
922
- Ht.displayName = x.Title.displayName;
923
- const Lt = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
924
- x.Description,
1155
+ yr.displayName = A.Root?.displayName || "Toast";
1156
+ const xr = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(A.Title, { ref: o, className: n("text-foreground text-sm font-semibold", t), ...e }));
1157
+ xr.displayName = A.Title?.displayName || "ToastTitle";
1158
+ const Nr = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
1159
+ A.Description,
925
1160
  {
926
- ref: a,
927
- className: o("text-muted-foreground text-sm opacity-90", r),
928
- ...t
1161
+ ref: o,
1162
+ className: n("text-muted-foreground text-sm opacity-90", t),
1163
+ ...e
929
1164
  }
930
1165
  ));
931
- Lt.displayName = x.Description.displayName;
932
- const Gt = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
933
- x.Close,
1166
+ Nr.displayName = A.Description?.displayName || "ToastDescription";
1167
+ const wr = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
1168
+ A.Close,
934
1169
  {
935
- ref: a,
936
- className: o(
1170
+ ref: o,
1171
+ className: n(
937
1172
  "text-foreground/50 hover:text-foreground absolute top-1 right-1 rounded-md p-1 opacity-0 transition-opacity group-hover:opacity-100 focus:opacity-100 focus:ring-1 focus:outline-none",
938
- r
1173
+ t
939
1174
  ),
940
- ...t,
941
- children: /* @__PURE__ */ e(G, { size: 16, className: "text-muted-foreground" })
1175
+ ...e,
1176
+ children: /* @__PURE__ */ r(ee, { size: 16, className: "text-muted-foreground" })
942
1177
  }
943
1178
  ));
944
- Gt.displayName = x.Close.displayName;
945
- const Bt = i.forwardRef(({ className: r, ...t }, a) => /* @__PURE__ */ e(
946
- x.Action,
1179
+ wr.displayName = A.Close?.displayName || "ToastClose";
1180
+ const vr = a.forwardRef(({ className: t, ...e }, o) => /* @__PURE__ */ r(
1181
+ A.Action,
947
1182
  {
948
- ref: a,
949
- className: o(
1183
+ ref: o,
1184
+ className: n(
950
1185
  "hover:bg-secondary focus:ring-ring inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors focus:ring-1 focus:outline-none disabled:pointer-events-none disabled:opacity-50",
951
- r
1186
+ t
952
1187
  ),
953
- ...t
1188
+ ...e
954
1189
  }
955
1190
  ));
956
- Bt.displayName = x.Action.displayName;
957
- function Lr({ children: r }) {
958
- return /* @__PURE__ */ e(s, { style: { flex: 1 }, children: r });
1191
+ vr.displayName = A.Action?.displayName || "ToastAction";
1192
+ function wo({ children: t }) {
1193
+ return /* @__PURE__ */ r(i, { style: { flex: 1 }, children: t });
1194
+ }
1195
+ function vo() {
1196
+ return /* @__PURE__ */ r(le, { onPress: () => {
1197
+ }, children: /* @__PURE__ */ r(i, { style: { padding: 10, backgroundColor: "#eee", borderRadius: 5 }, children: /* @__PURE__ */ r(m, { children: "Toggle Theme" }) }) });
1198
+ }
1199
+ function Ro() {
1200
+ return /* @__PURE__ */ r(i, { children: /* @__PURE__ */ r(m, { children: "Toaster is not yet implemented for React Native" }) });
1201
+ }
1202
+ const Te = a.createContext(void 0);
1203
+ function ne() {
1204
+ const t = a.useContext(Te);
1205
+ if (!t)
1206
+ throw new Error("useTOC must be used within a TableOfContents provider");
1207
+ return t;
1208
+ }
1209
+ function se({ children: t, activeId: e }) {
1210
+ const [o, s] = a.useState([]), [l, d] = a.useState(null), c = a.useRef(null), f = a.useMemo(() => {
1211
+ const b = e || l;
1212
+ return o.find((h) => h.id === b)?.text || null;
1213
+ }, [o, l, e]), y = a.useCallback((b, h, v, R) => {
1214
+ s((D) => {
1215
+ const z = D.find((x) => x.id === b);
1216
+ return z && Math.abs(z.pageY - R) < 1 ? D : (z ? D.map((x) => x.id === b ? { id: b, text: h, level: v, pageY: R } : x) : [...D, { id: b, text: h, level: v, pageY: R }]).sort((x, Ce) => x.pageY - Ce.pageY);
1217
+ });
1218
+ }, []), w = a.useCallback((b) => {
1219
+ s((h) => h.filter((v) => v.id !== b));
1220
+ }, []), O = a.useCallback(
1221
+ (b) => {
1222
+ const h = o.find((v) => v.id === b);
1223
+ h && c.current && c.current.scrollTo({ y: h.pageY - 20, animated: !0 });
1224
+ },
1225
+ [o]
1226
+ ), I = a.useCallback(
1227
+ (b) => {
1228
+ const h = b.nativeEvent.contentOffset.y;
1229
+ let v = null;
1230
+ for (let R = o.length - 1; R >= 0; R--)
1231
+ if (h >= o[R].pageY - 100) {
1232
+ v = o[R].id;
1233
+ break;
1234
+ }
1235
+ v !== l && d(v);
1236
+ },
1237
+ [o, l]
1238
+ ), V = a.useMemo(
1239
+ () => ({
1240
+ headings: o,
1241
+ activeId: e || l,
1242
+ activeHeadingText: f,
1243
+ registerHeading: y,
1244
+ unregisterHeading: w,
1245
+ scrollToHeading: O,
1246
+ onScroll: I,
1247
+ scrollViewRef: c
1248
+ }),
1249
+ [
1250
+ o,
1251
+ l,
1252
+ e,
1253
+ f,
1254
+ y,
1255
+ w,
1256
+ O,
1257
+ I
1258
+ ]
1259
+ );
1260
+ return /* @__PURE__ */ r(Te.Provider, { value: V, children: /* @__PURE__ */ r(i, { className: "flex-1", children: t }) });
1261
+ }
1262
+ function Rr({
1263
+ children: t,
1264
+ level: e = 2,
1265
+ id: o,
1266
+ className: s
1267
+ }) {
1268
+ const { registerHeading: l, unregisterHeading: d } = ne(), c = o || Xe(t), f = a.useCallback(
1269
+ (y) => {
1270
+ const { y: w } = y.nativeEvent.layout;
1271
+ l(c, t, e, w);
1272
+ },
1273
+ [c, t, e, l]
1274
+ );
1275
+ return a.useEffect(() => () => d(c), [c, d]), /* @__PURE__ */ r(i, { onLayout: f, children: /* @__PURE__ */ r(S, { variant: e === 1 ? "h1" : e === 2 ? "h2" : e === 3 ? "h3" : "h4", className: s, children: t }) });
959
1276
  }
960
- function Gr() {
961
- return /* @__PURE__ */ e(ae, { onPress: () => {
962
- }, children: /* @__PURE__ */ e(s, { style: { padding: 10, backgroundColor: "#eee", borderRadius: 5 }, children: /* @__PURE__ */ e(l, { children: "Toggle Theme" }) }) });
1277
+ function Tr({ className: t }) {
1278
+ const { headings: e, activeId: o, scrollToHeading: s } = ne();
1279
+ if (e.length === 0)
1280
+ return null;
1281
+ const l = Math.min(...e.map((d) => d.level));
1282
+ return /* @__PURE__ */ g(i, { className: n("space-y-2 p-4", t), children: [
1283
+ /* @__PURE__ */ r(S, { variant: "overline", className: "mb-2 font-bold", children: "On this page" }),
1284
+ e.map((d) => {
1285
+ const c = o === d.id, f = (d.level - l) * 16;
1286
+ return /* @__PURE__ */ r(
1287
+ le,
1288
+ {
1289
+ onPress: () => s(d.id),
1290
+ style: { paddingLeft: f },
1291
+ className: "py-1",
1292
+ children: /* @__PURE__ */ r(m, { className: n("text-sm", c ? "text-primary font-bold" : "text-muted-foreground"), children: d.text })
1293
+ },
1294
+ d.id
1295
+ );
1296
+ })
1297
+ ] });
963
1298
  }
964
- function Br() {
965
- return /* @__PURE__ */ e(s, { children: /* @__PURE__ */ e(l, { children: "Toaster is not yet implemented for React Native" }) });
1299
+ function Cr({ children: t, className: e }) {
1300
+ const { scrollViewRef: o, onScroll: s } = ne();
1301
+ return /* @__PURE__ */ r(
1302
+ De,
1303
+ {
1304
+ ref: o,
1305
+ onScroll: s,
1306
+ className: n("flex-1", e),
1307
+ ...H.OS !== "web" && {
1308
+ scrollEventThrottle: 16,
1309
+ contentContainerStyle: { padding: 16 }
1310
+ },
1311
+ children: t
1312
+ }
1313
+ );
966
1314
  }
1315
+ se.List = Tr;
1316
+ se.Content = Cr;
1317
+ se.Heading = Rr;
967
1318
  export {
968
- xe as Accordion,
969
- Re as AccordionContent,
970
- Ne as AccordionItem,
971
- ve as AccordionTrigger,
972
- Ce as Alert,
973
- De as AlertDescription,
974
- Jt as AlertDialog,
975
- je as AlertDialogAction,
976
- He as AlertDialogCancel,
977
- ze as AlertDialogContent,
978
- Oe as AlertDialogDescription,
979
- Ve as AlertDialogFooter,
980
- Ie as AlertDialogHeader,
981
- J as AlertDialogOverlay,
982
- Pe as AlertDialogPortal,
983
- Fe as AlertDialogTitle,
984
- Kt as AlertDialogTrigger,
985
- Se as AlertTitle,
986
- Qt as AspectRatio,
987
- Le as Avatar,
988
- Be as AvatarFallback,
989
- Ge as AvatarImage,
990
- Yt as Badge,
991
- Zt as Breadcrumb,
992
- Ae as Button,
993
- er as Calendar,
994
- qe as Card,
995
- Xe as CardContent,
996
- $e as CardDescription,
997
- _e as CardFooter,
998
- Ee as CardHeader,
999
- We as CardTitle,
1000
- tr as Carousel,
1001
- rr as Chart,
1002
- Je as Checkbox,
1003
- ar as Collapsible,
1004
- ir as CollapsibleContent,
1005
- or as CollapsibleTrigger,
1006
- nr as Command,
1007
- sr as ContextMenu,
1008
- lr as Dialog,
1009
- cr as DialogClose,
1010
- Qe as DialogContent,
1011
- tt as DialogDescription,
1012
- Ze as DialogFooter,
1013
- Ye as DialogHeader,
1014
- et as DialogTitle,
1015
- dr as DialogTrigger,
1016
- mr as Drawer,
1017
- fr as DropdownMenu,
1018
- ur as Form,
1019
- pr as HoverCard,
1020
- rt as Input,
1021
- at as Label,
1022
- gr as Menubar,
1023
- br as NavigationMenu,
1024
- hr as Pagination,
1025
- yr as Popover,
1026
- xr as Progress,
1027
- ot as RadioGroup,
1028
- it as RadioGroupItem,
1029
- vr as ResizableHandle,
1030
- wr as ResizablePanel,
1031
- Nr as ResizablePanelGroup,
1032
- Rr as ScrollArea,
1033
- Tr as Search,
1034
- Cr as Select,
1035
- st as SelectContent,
1036
- Sr as SelectGroup,
1037
- dt as SelectItem,
1038
- lt as SelectLabel,
1039
- Y as SelectScrollDownButton,
1040
- Q as SelectScrollUpButton,
1041
- ct as SelectSeparator,
1042
- nt as SelectTrigger,
1043
- Dr as SelectValue,
1044
- mt as Separator,
1045
- kr as Sheet,
1046
- Pr as SheetClose,
1047
- pt as SheetContent,
1048
- yt as SheetDescription,
1049
- bt as SheetFooter,
1050
- gt as SheetHeader,
1051
- Z as SheetOverlay,
1052
- ut as SheetPortal,
1053
- ht as SheetTitle,
1054
- Ar as SheetTrigger,
1055
- zr as Skeleton,
1056
- Ir as Slider,
1057
- Vr as Sonner,
1058
- xt as Switch,
1059
- Nt as Table,
1060
- vt as TableBody,
1061
- Dt as TableCaption,
1062
- St as TableCell,
1063
- Rt as TableFooter,
1064
- Ct as TableHead,
1065
- wt as TableHeader,
1066
- Tt as TableRow,
1067
- Fr as Tabs,
1068
- Pt as TabsContent,
1069
- kt as TabsList,
1070
- At as TabsTrigger,
1071
- C as Text,
1072
- zt as Textarea,
1073
- Lr as ThemeProvider,
1074
- Gr as ThemeToggle,
1075
- jt as Toast,
1076
- Br as Toaster,
1077
- It as Toggle,
1078
- Vt as ToggleGroup,
1079
- Ft as ToggleGroupItem,
1080
- Or as Tooltip,
1081
- Ot as TooltipContent,
1082
- Hr as TooltipProvider,
1083
- jr as TooltipTrigger,
1084
- Me as badgeVariants,
1085
- M as buttonVariants,
1086
- o as cn,
1087
- ft as textVariants,
1088
- qr as toggleVariants,
1089
- V as wrapTextChildren
1319
+ _e as Accordion,
1320
+ Ze as AccordionContent,
1321
+ Je as AccordionItem,
1322
+ Qe as AccordionTrigger,
1323
+ tt as Alert,
1324
+ ot as AlertDescription,
1325
+ zr as AlertDialog,
1326
+ mt as AlertDialogAction,
1327
+ ut as AlertDialogCancel,
1328
+ st as AlertDialogContent,
1329
+ ct as AlertDialogDescription,
1330
+ lt as AlertDialogFooter,
1331
+ it as AlertDialogHeader,
1332
+ pe as AlertDialogOverlay,
1333
+ nt as AlertDialogPortal,
1334
+ dt as AlertDialogTitle,
1335
+ Hr as AlertDialogTrigger,
1336
+ rt as AlertTitle,
1337
+ Fr as AspectRatio,
1338
+ ft as Avatar,
1339
+ gt as AvatarFallback,
1340
+ pt as AvatarImage,
1341
+ jr as Badge,
1342
+ Lr as Breadcrumb,
1343
+ q as Button,
1344
+ Br as Calendar,
1345
+ yt as Card,
1346
+ vt as CardContent,
1347
+ wt as CardDescription,
1348
+ Rt as CardFooter,
1349
+ xt as CardHeader,
1350
+ Nt as CardTitle,
1351
+ Er as Carousel,
1352
+ Gr as Chart,
1353
+ Tt as Checkbox,
1354
+ Mr as Collapsible,
1355
+ $r as CollapsibleContent,
1356
+ Ur as CollapsibleTrigger,
1357
+ Yr as Command,
1358
+ qr as ContextMenu,
1359
+ Ct as Dialog,
1360
+ Xr as DialogClose,
1361
+ be as DialogContent,
1362
+ xe as DialogDescription,
1363
+ kt as DialogFooter,
1364
+ he as DialogHeader,
1365
+ ye as DialogTitle,
1366
+ Wr as DialogTrigger,
1367
+ _r as Drawer,
1368
+ Jr as DropdownMenu,
1369
+ Kr as Form,
1370
+ Qr as HoverCard,
1371
+ At as Input,
1372
+ Dt as Label,
1373
+ Zr as Menubar,
1374
+ eo as NavigationMenu,
1375
+ to as Pagination,
1376
+ Pt as Popover,
1377
+ It as PopoverAnchor,
1378
+ Vt as PopoverContent,
1379
+ Ot as PopoverTrigger,
1380
+ zt as Progress,
1381
+ Ht as RadioGroup,
1382
+ Ft as RadioGroupItem,
1383
+ ao as ResizableHandle,
1384
+ oo as ResizablePanel,
1385
+ ro as ResizablePanelGroup,
1386
+ no as ScrollArea,
1387
+ Mt as ScrollToTop,
1388
+ so as Search,
1389
+ io as Select,
1390
+ Lt as SelectContent,
1391
+ lo as SelectGroup,
1392
+ Et as SelectItem,
1393
+ Bt as SelectLabel,
1394
+ we as SelectScrollDownButton,
1395
+ Ne as SelectScrollUpButton,
1396
+ Gt as SelectSeparator,
1397
+ jt as SelectTrigger,
1398
+ co as SelectValue,
1399
+ Wt as Separator,
1400
+ uo as Sheet,
1401
+ po as SheetClose,
1402
+ _t as SheetContent,
1403
+ Zt as SheetDescription,
1404
+ Kt as SheetFooter,
1405
+ Jt as SheetHeader,
1406
+ ve as SheetOverlay,
1407
+ Xt as SheetPortal,
1408
+ Qt as SheetTitle,
1409
+ fo as SheetTrigger,
1410
+ go as Skeleton,
1411
+ bo as Slider,
1412
+ ho as Sonner,
1413
+ mo as SupportFab,
1414
+ er as Switch,
1415
+ tr as Table,
1416
+ or as TableBody,
1417
+ lr as TableCaption,
1418
+ ir as TableCell,
1419
+ ar as TableFooter,
1420
+ sr as TableHead,
1421
+ rr as TableHeader,
1422
+ se as TableOfContents,
1423
+ Cr as TableOfContentsContent,
1424
+ Rr as TableOfContentsHeading,
1425
+ Tr as TableOfContentsList,
1426
+ nr as TableRow,
1427
+ dr as Tabs,
1428
+ ur as TabsContent,
1429
+ cr as TabsList,
1430
+ mr as TabsTrigger,
1431
+ S as Text,
1432
+ fr as Textarea,
1433
+ wo as ThemeProvider,
1434
+ vo as ThemeToggle,
1435
+ yr as Toast,
1436
+ Ro as Toaster,
1437
+ pr as Toggle,
1438
+ gr as ToggleGroup,
1439
+ br as ToggleGroupItem,
1440
+ yo as Tooltip,
1441
+ hr as TooltipContent,
1442
+ No as TooltipProvider,
1443
+ xo as TooltipTrigger,
1444
+ bt as badgeVariants,
1445
+ re as buttonVariants,
1446
+ n as cn,
1447
+ Ut as textVariants,
1448
+ So as toggleVariants,
1449
+ _ as wrapTextChildren
1090
1450
  };