@still-forest/canopy 0.27.0 → 0.28.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.
@@ -0,0 +1,1141 @@
1
+ import { j as a } from "./jsx-runtime.js";
2
+ import { c as l } from "./index2.js";
3
+ import { i as be, u as ve, j as he } from "./SelectInput.js";
4
+ import * as g from "react";
5
+ import x, { Fragment as ye, useState as je, useEffect as Ne, useMemo as Ce } from "react";
6
+ import { c as U, u as $, a as X, P as _, d as Y, b as we, q as ke, R as Ae, r as _e, C as Ie, o as Re, T as Me, p as Pe, h as Ee, O as ze } from "./popover.js";
7
+ import { c as N, u as J, f as L, S as Q, C as W, g as Se, h as De } from "./calendar.js";
8
+ import { X as Oe, S as Te } from "./Table.js";
9
+ /**
10
+ * @license lucide-react v0.525.0 - ISC
11
+ *
12
+ * This source code is licensed under the ISC license.
13
+ * See the LICENSE file in the root directory of this source tree.
14
+ */
15
+ const $e = [
16
+ ["path", { d: "m17 18-6-6 6-6", key: "1yerx2" }],
17
+ ["path", { d: "M7 6v12", key: "1p53r6" }]
18
+ ], Le = N("chevron-first", $e);
19
+ /**
20
+ * @license lucide-react v0.525.0 - ISC
21
+ *
22
+ * This source code is licensed under the ISC license.
23
+ * See the LICENSE file in the root directory of this source tree.
24
+ */
25
+ const Ve = [
26
+ ["path", { d: "m7 18 6-6-6-6", key: "lwmzdw" }],
27
+ ["path", { d: "M17 6v12", key: "1o0aio" }]
28
+ ], Be = N("chevron-last", Ve);
29
+ /**
30
+ * @license lucide-react v0.525.0 - ISC
31
+ *
32
+ * This source code is licensed under the ISC license.
33
+ * See the LICENSE file in the root directory of this source tree.
34
+ */
35
+ const Ge = [
36
+ ["path", { d: "M21.801 10A10 10 0 1 1 17 3.335", key: "yps3ct" }],
37
+ ["path", { d: "m9 11 3 3L22 4", key: "1pflzl" }]
38
+ ], He = N("circle-check-big", Ge);
39
+ /**
40
+ * @license lucide-react v0.525.0 - ISC
41
+ *
42
+ * This source code is licensed under the ISC license.
43
+ * See the LICENSE file in the root directory of this source tree.
44
+ */
45
+ const Fe = [
46
+ ["circle", { cx: "12", cy: "12", r: "1", key: "41hilf" }],
47
+ ["circle", { cx: "19", cy: "12", r: "1", key: "1wjl8i" }],
48
+ ["circle", { cx: "5", cy: "12", r: "1", key: "1pcz8c" }]
49
+ ], qe = N("ellipsis", Fe);
50
+ /**
51
+ * @license lucide-react v0.525.0 - ISC
52
+ *
53
+ * This source code is licensed under the ISC license.
54
+ * See the LICENSE file in the root directory of this source tree.
55
+ */
56
+ const Ke = [
57
+ ["circle", { cx: "12", cy: "12", r: "10", key: "1mglay" }],
58
+ ["path", { d: "M12 16v-4", key: "1dtifu" }],
59
+ ["path", { d: "M12 8h.01", key: "e9boi3" }]
60
+ ], Ue = N("info", Ke);
61
+ /**
62
+ * @license lucide-react v0.525.0 - ISC
63
+ *
64
+ * This source code is licensed under the ISC license.
65
+ * See the LICENSE file in the root directory of this source tree.
66
+ */
67
+ const Xe = [
68
+ ["path", { d: "m15 9-6 6", key: "1uzhvr" }],
69
+ [
70
+ "path",
71
+ {
72
+ d: "M2.586 16.726A2 2 0 0 1 2 15.312V8.688a2 2 0 0 1 .586-1.414l4.688-4.688A2 2 0 0 1 8.688 2h6.624a2 2 0 0 1 1.414.586l4.688 4.688A2 2 0 0 1 22 8.688v6.624a2 2 0 0 1-.586 1.414l-4.688 4.688a2 2 0 0 1-1.414.586H8.688a2 2 0 0 1-1.414-.586z",
73
+ key: "2d38gg"
74
+ }
75
+ ],
76
+ ["path", { d: "m9 9 6 6", key: "z0biqf" }]
77
+ ], Ye = N("octagon-x", Xe);
78
+ /**
79
+ * @license lucide-react v0.525.0 - ISC
80
+ *
81
+ * This source code is licensed under the ISC license.
82
+ * See the LICENSE file in the root directory of this source tree.
83
+ */
84
+ const Je = [
85
+ [
86
+ "path",
87
+ {
88
+ d: "m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",
89
+ key: "wmoenq"
90
+ }
91
+ ],
92
+ ["path", { d: "M12 9v4", key: "juzpu7" }],
93
+ ["path", { d: "M12 17h.01", key: "p32p05" }]
94
+ ], Qe = N("triangle-alert", Je);
95
+ var M = "Collapsible", [We, Z] = U(M), [Ze, V] = We(M), ee = g.forwardRef(
96
+ (e, t) => {
97
+ const {
98
+ __scopeCollapsible: o,
99
+ open: n,
100
+ defaultOpen: s,
101
+ disabled: i,
102
+ onOpenChange: r,
103
+ ...c
104
+ } = e, [u, p] = $({
105
+ prop: n,
106
+ defaultProp: s ?? !1,
107
+ onChange: r,
108
+ caller: M
109
+ });
110
+ return /* @__PURE__ */ a.jsx(
111
+ Ze,
112
+ {
113
+ scope: o,
114
+ disabled: i,
115
+ contentId: X(),
116
+ open: u,
117
+ onOpenToggle: g.useCallback(() => p((m) => !m), [p]),
118
+ children: /* @__PURE__ */ a.jsx(
119
+ _.div,
120
+ {
121
+ "data-state": G(u),
122
+ "data-disabled": i ? "" : void 0,
123
+ ...c,
124
+ ref: t
125
+ }
126
+ )
127
+ }
128
+ );
129
+ }
130
+ );
131
+ ee.displayName = M;
132
+ var te = "CollapsibleTrigger", ae = g.forwardRef(
133
+ (e, t) => {
134
+ const { __scopeCollapsible: o, ...n } = e, s = V(te, o);
135
+ return /* @__PURE__ */ a.jsx(
136
+ _.button,
137
+ {
138
+ type: "button",
139
+ "aria-controls": s.contentId,
140
+ "aria-expanded": s.open || !1,
141
+ "data-state": G(s.open),
142
+ "data-disabled": s.disabled ? "" : void 0,
143
+ disabled: s.disabled,
144
+ ...n,
145
+ ref: t,
146
+ onClick: Y(e.onClick, s.onOpenToggle)
147
+ }
148
+ );
149
+ }
150
+ );
151
+ ae.displayName = te;
152
+ var B = "CollapsibleContent", re = g.forwardRef(
153
+ (e, t) => {
154
+ const { forceMount: o, ...n } = e, s = V(B, e.__scopeCollapsible);
155
+ return /* @__PURE__ */ a.jsx(we, { present: o || s.open, children: ({ present: i }) => /* @__PURE__ */ a.jsx(et, { ...n, ref: t, present: i }) });
156
+ }
157
+ );
158
+ re.displayName = B;
159
+ var et = g.forwardRef((e, t) => {
160
+ const { __scopeCollapsible: o, present: n, children: s, ...i } = e, r = V(B, o), [c, u] = g.useState(n), p = g.useRef(null), m = J(t, p), f = g.useRef(0), C = f.current, v = g.useRef(0), I = v.current, h = r.open || c, y = g.useRef(h), j = g.useRef(void 0);
161
+ return g.useEffect(() => {
162
+ const d = requestAnimationFrame(() => y.current = !1);
163
+ return () => cancelAnimationFrame(d);
164
+ }, []), ke(() => {
165
+ const d = p.current;
166
+ if (d) {
167
+ j.current = j.current || {
168
+ transitionDuration: d.style.transitionDuration,
169
+ animationName: d.style.animationName
170
+ }, d.style.transitionDuration = "0s", d.style.animationName = "none";
171
+ const w = d.getBoundingClientRect();
172
+ f.current = w.height, v.current = w.width, y.current || (d.style.transitionDuration = j.current.transitionDuration, d.style.animationName = j.current.animationName), u(n);
173
+ }
174
+ }, [r.open, n]), /* @__PURE__ */ a.jsx(
175
+ _.div,
176
+ {
177
+ "data-state": G(r.open),
178
+ "data-disabled": r.disabled ? "" : void 0,
179
+ id: r.contentId,
180
+ hidden: !h,
181
+ ...i,
182
+ ref: m,
183
+ style: {
184
+ "--radix-collapsible-content-height": C ? `${C}px` : void 0,
185
+ "--radix-collapsible-content-width": I ? `${I}px` : void 0,
186
+ ...e.style
187
+ },
188
+ children: h && s
189
+ }
190
+ );
191
+ });
192
+ function G(e) {
193
+ return e ? "open" : "closed";
194
+ }
195
+ var tt = ee, at = ae, rt = re, b = "Accordion", ot = ["Home", "End", "ArrowDown", "ArrowUp", "ArrowLeft", "ArrowRight"], [H, nt, st] = be(b), [P, Wt] = U(b, [
196
+ st,
197
+ Z
198
+ ]), F = Z(), oe = x.forwardRef(
199
+ (e, t) => {
200
+ const { type: o, ...n } = e, s = n, i = n;
201
+ return /* @__PURE__ */ a.jsx(H.Provider, { scope: e.__scopeAccordion, children: o === "multiple" ? /* @__PURE__ */ a.jsx(dt, { ...i, ref: t }) : /* @__PURE__ */ a.jsx(ct, { ...s, ref: t }) });
202
+ }
203
+ );
204
+ oe.displayName = b;
205
+ var [ne, it] = P(b), [se, lt] = P(
206
+ b,
207
+ { collapsible: !1 }
208
+ ), ct = x.forwardRef(
209
+ (e, t) => {
210
+ const {
211
+ value: o,
212
+ defaultValue: n,
213
+ onValueChange: s = () => {
214
+ },
215
+ collapsible: i = !1,
216
+ ...r
217
+ } = e, [c, u] = $({
218
+ prop: o,
219
+ defaultProp: n ?? "",
220
+ onChange: s,
221
+ caller: b
222
+ });
223
+ return /* @__PURE__ */ a.jsx(
224
+ ne,
225
+ {
226
+ scope: e.__scopeAccordion,
227
+ value: x.useMemo(() => c ? [c] : [], [c]),
228
+ onItemOpen: u,
229
+ onItemClose: x.useCallback(() => i && u(""), [i, u]),
230
+ children: /* @__PURE__ */ a.jsx(se, { scope: e.__scopeAccordion, collapsible: i, children: /* @__PURE__ */ a.jsx(ie, { ...r, ref: t }) })
231
+ }
232
+ );
233
+ }
234
+ ), dt = x.forwardRef((e, t) => {
235
+ const {
236
+ value: o,
237
+ defaultValue: n,
238
+ onValueChange: s = () => {
239
+ },
240
+ ...i
241
+ } = e, [r, c] = $({
242
+ prop: o,
243
+ defaultProp: n ?? [],
244
+ onChange: s,
245
+ caller: b
246
+ }), u = x.useCallback(
247
+ (m) => c((f = []) => [...f, m]),
248
+ [c]
249
+ ), p = x.useCallback(
250
+ (m) => c((f = []) => f.filter((C) => C !== m)),
251
+ [c]
252
+ );
253
+ return /* @__PURE__ */ a.jsx(
254
+ ne,
255
+ {
256
+ scope: e.__scopeAccordion,
257
+ value: r,
258
+ onItemOpen: u,
259
+ onItemClose: p,
260
+ children: /* @__PURE__ */ a.jsx(se, { scope: e.__scopeAccordion, collapsible: !0, children: /* @__PURE__ */ a.jsx(ie, { ...i, ref: t }) })
261
+ }
262
+ );
263
+ }), [ut, E] = P(b), ie = x.forwardRef(
264
+ (e, t) => {
265
+ const { __scopeAccordion: o, disabled: n, dir: s, orientation: i = "vertical", ...r } = e, c = x.useRef(null), u = J(c, t), p = nt(o), f = ve(s) === "ltr", C = Y(e.onKeyDown, (v) => {
266
+ if (!ot.includes(v.key)) return;
267
+ const I = v.target, h = p().filter((O) => !O.ref.current?.disabled), y = h.findIndex((O) => O.ref.current === I), j = h.length;
268
+ if (y === -1) return;
269
+ v.preventDefault();
270
+ let d = y;
271
+ const w = 0, z = j - 1, S = () => {
272
+ d = y + 1, d > z && (d = w);
273
+ }, D = () => {
274
+ d = y - 1, d < w && (d = z);
275
+ };
276
+ switch (v.key) {
277
+ case "Home":
278
+ d = w;
279
+ break;
280
+ case "End":
281
+ d = z;
282
+ break;
283
+ case "ArrowRight":
284
+ i === "horizontal" && (f ? S() : D());
285
+ break;
286
+ case "ArrowDown":
287
+ i === "vertical" && S();
288
+ break;
289
+ case "ArrowLeft":
290
+ i === "horizontal" && (f ? D() : S());
291
+ break;
292
+ case "ArrowUp":
293
+ i === "vertical" && D();
294
+ break;
295
+ }
296
+ const fe = d % j;
297
+ h[fe].ref.current?.focus();
298
+ });
299
+ return /* @__PURE__ */ a.jsx(
300
+ ut,
301
+ {
302
+ scope: o,
303
+ disabled: n,
304
+ direction: s,
305
+ orientation: i,
306
+ children: /* @__PURE__ */ a.jsx(H.Slot, { scope: o, children: /* @__PURE__ */ a.jsx(
307
+ _.div,
308
+ {
309
+ ...r,
310
+ "data-orientation": i,
311
+ ref: u,
312
+ onKeyDown: n ? void 0 : C
313
+ }
314
+ ) })
315
+ }
316
+ );
317
+ }
318
+ ), R = "AccordionItem", [pt, q] = P(R), le = x.forwardRef(
319
+ (e, t) => {
320
+ const { __scopeAccordion: o, value: n, ...s } = e, i = E(R, o), r = it(R, o), c = F(o), u = X(), p = n && r.value.includes(n) || !1, m = i.disabled || e.disabled;
321
+ return /* @__PURE__ */ a.jsx(
322
+ pt,
323
+ {
324
+ scope: o,
325
+ open: p,
326
+ disabled: m,
327
+ triggerId: u,
328
+ children: /* @__PURE__ */ a.jsx(
329
+ tt,
330
+ {
331
+ "data-orientation": i.orientation,
332
+ "data-state": xe(p),
333
+ ...c,
334
+ ...s,
335
+ ref: t,
336
+ disabled: m,
337
+ open: p,
338
+ onOpenChange: (f) => {
339
+ f ? r.onItemOpen(n) : r.onItemClose(n);
340
+ }
341
+ }
342
+ )
343
+ }
344
+ );
345
+ }
346
+ );
347
+ le.displayName = R;
348
+ var ce = "AccordionHeader", de = x.forwardRef(
349
+ (e, t) => {
350
+ const { __scopeAccordion: o, ...n } = e, s = E(b, o), i = q(ce, o);
351
+ return /* @__PURE__ */ a.jsx(
352
+ _.h3,
353
+ {
354
+ "data-orientation": s.orientation,
355
+ "data-state": xe(i.open),
356
+ "data-disabled": i.disabled ? "" : void 0,
357
+ ...n,
358
+ ref: t
359
+ }
360
+ );
361
+ }
362
+ );
363
+ de.displayName = ce;
364
+ var T = "AccordionTrigger", ue = x.forwardRef(
365
+ (e, t) => {
366
+ const { __scopeAccordion: o, ...n } = e, s = E(b, o), i = q(T, o), r = lt(T, o), c = F(o);
367
+ return /* @__PURE__ */ a.jsx(H.ItemSlot, { scope: o, children: /* @__PURE__ */ a.jsx(
368
+ at,
369
+ {
370
+ "aria-disabled": i.open && !r.collapsible || void 0,
371
+ "data-orientation": s.orientation,
372
+ id: i.triggerId,
373
+ ...c,
374
+ ...n,
375
+ ref: t
376
+ }
377
+ ) });
378
+ }
379
+ );
380
+ ue.displayName = T;
381
+ var pe = "AccordionContent", me = x.forwardRef(
382
+ (e, t) => {
383
+ const { __scopeAccordion: o, ...n } = e, s = E(b, o), i = q(pe, o), r = F(o);
384
+ return /* @__PURE__ */ a.jsx(
385
+ rt,
386
+ {
387
+ role: "region",
388
+ "aria-labelledby": i.triggerId,
389
+ "data-orientation": s.orientation,
390
+ ...r,
391
+ ...n,
392
+ ref: t,
393
+ style: {
394
+ "--radix-accordion-content-height": "var(--radix-collapsible-content-height)",
395
+ "--radix-accordion-content-width": "var(--radix-collapsible-content-width)",
396
+ ...e.style
397
+ }
398
+ }
399
+ );
400
+ }
401
+ );
402
+ me.displayName = pe;
403
+ function xe(e) {
404
+ return e ? "open" : "closed";
405
+ }
406
+ var mt = oe, xt = le, gt = de, ft = ue, bt = me;
407
+ function Zt({ ...e }) {
408
+ return /* @__PURE__ */ a.jsx(mt, { "data-slot": "accordion", ...e });
409
+ }
410
+ function ea({ className: e, ...t }) {
411
+ return /* @__PURE__ */ a.jsx(
412
+ xt,
413
+ {
414
+ className: l("border-b last:border-b-0", e),
415
+ "data-slot": "accordion-item",
416
+ ...t
417
+ }
418
+ );
419
+ }
420
+ function ta({ className: e, children: t, ...o }) {
421
+ return /* @__PURE__ */ a.jsx(gt, { className: "flex", children: /* @__PURE__ */ a.jsxs(
422
+ ft,
423
+ {
424
+ className: l(
425
+ "flex flex-1 items-start justify-between gap-4 rounded-md py-4 text-left font-medium text-sm outline-none transition-all hover:underline focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
426
+ e
427
+ ),
428
+ "data-slot": "accordion-trigger",
429
+ ...o,
430
+ children: [
431
+ t,
432
+ /* @__PURE__ */ a.jsx(he, { className: "pointer-events-none size-4 shrink-0 translate-y-0.5 text-muted-foreground transition-transform duration-200" })
433
+ ]
434
+ }
435
+ ) });
436
+ }
437
+ function aa({ className: e, children: t, ...o }) {
438
+ return /* @__PURE__ */ a.jsx(
439
+ bt,
440
+ {
441
+ className: "overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",
442
+ "data-slot": "accordion-content",
443
+ ...o,
444
+ children: /* @__PURE__ */ a.jsx("div", { className: l("pt-0 pb-4", e), children: t })
445
+ }
446
+ );
447
+ }
448
+ const vt = L(
449
+ "relative w-full rounded-lg border px-3 py-2 text-sm grid has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr] grid-cols-[0_1fr] has-[>svg]:gap-x-3 gap-y-0.5 items-start [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
450
+ {
451
+ variants: {
452
+ variant: {
453
+ info: "bg-info-foreground text-info border-info [&>svg]:text-current *:data-[slot=alert-description]:text-info-600",
454
+ success: "bg-success-foreground text-success border-success [&>svg]:text-current *:data-[slot=alert-description]:text-success-600",
455
+ warning: "bg-warning-foreground text-warning border-warning [&>svg]:text-current *:data-[slot=alert-description]:text-warning/80",
456
+ error: "bg-destructive-foreground text-destructive border-destructive [&>svg]:text-current *:data-[slot=alert-description]:text-destructive/80"
457
+ }
458
+ },
459
+ defaultVariants: {
460
+ variant: "info"
461
+ }
462
+ }
463
+ );
464
+ function ht({ className: e, variant: t, ...o }) {
465
+ return /* @__PURE__ */ a.jsx("div", { className: l(vt({ variant: t }), e), "data-slot": "alert", role: "alert", ...o });
466
+ }
467
+ function yt({ className: e, ...t }) {
468
+ return /* @__PURE__ */ a.jsx(
469
+ "div",
470
+ {
471
+ className: l("col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight", e),
472
+ "data-slot": "alert-title",
473
+ ...t
474
+ }
475
+ );
476
+ }
477
+ function jt({ className: e, ...t }) {
478
+ return /* @__PURE__ */ a.jsx(
479
+ "div",
480
+ {
481
+ className: l("col-start-2 grid justify-items-start gap-1 text-sm [&_p]:leading-relaxed", e),
482
+ "data-slot": "alert-description",
483
+ ...t
484
+ }
485
+ );
486
+ }
487
+ const Nt = {
488
+ success: He,
489
+ info: Ue,
490
+ error: Ye,
491
+ warning: Qe
492
+ }, ra = ({ type: e, title: t, message: o, className: n = "" }) => {
493
+ const s = Nt[e];
494
+ return /* @__PURE__ */ a.jsxs(ht, { className: n, variant: e, children: [
495
+ /* @__PURE__ */ a.jsx(s, { className: "h-4 w-4", "data-testid": `alert-icon-${e}` }),
496
+ t ? /* @__PURE__ */ a.jsx(yt, { children: t }) : null,
497
+ /* @__PURE__ */ a.jsx(jt, { children: o })
498
+ ] });
499
+ }, Ct = L(
500
+ "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
501
+ {
502
+ variants: {
503
+ variant: {
504
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
505
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
506
+ destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
507
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
508
+ }
509
+ },
510
+ defaultVariants: {
511
+ variant: "default"
512
+ }
513
+ }
514
+ );
515
+ function wt({
516
+ className: e,
517
+ variant: t,
518
+ asChild: o = !1,
519
+ ...n
520
+ }) {
521
+ const s = o ? Q : "span";
522
+ return /* @__PURE__ */ a.jsx(s, { className: l(Ct({ variant: t }), e), "data-slot": "badge", ...n });
523
+ }
524
+ const kt = L(
525
+ "inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
526
+ {
527
+ variants: {
528
+ color: {
529
+ red: "bg-red-500",
530
+ orange: "bg-orange-500",
531
+ amber: "bg-amber-500",
532
+ yellow: "bg-yellow-500",
533
+ lime: "bg-lime-500",
534
+ green: "bg-green-500",
535
+ emerald: "bg-emerald-500",
536
+ teal: "bg-teal-500",
537
+ cyan: "bg-cyan-500",
538
+ sky: "bg-sky-500",
539
+ blue: "bg-blue-500",
540
+ indigo: "bg-indigo-500",
541
+ violet: "bg-violet-500",
542
+ purple: "bg-purple-500",
543
+ fuchsia: "bg-fuchsia-500",
544
+ pink: "bg-pink-500",
545
+ rose: "bg-rose-500",
546
+ slate: "bg-slate-500",
547
+ gray: "bg-gray-500",
548
+ zinc: "bg-zinc-500",
549
+ neutral: "bg-neutral-500",
550
+ stone: "bg-stone-500",
551
+ white: "bg-white",
552
+ black: "bg-black"
553
+ },
554
+ variant: {
555
+ default: "border-transparent",
556
+ secondary: "border-transparent",
557
+ destructive: "border-transparent",
558
+ outline: ""
559
+ }
560
+ },
561
+ compoundVariants: [
562
+ {
563
+ color: "red",
564
+ variant: "outline",
565
+ className: "border-red-500 bg-transparent text-red-500"
566
+ },
567
+ {
568
+ color: "orange",
569
+ variant: "outline",
570
+ className: "border-orange-500 bg-transparent text-orange-500"
571
+ },
572
+ {
573
+ color: "amber",
574
+ variant: "outline",
575
+ className: "border-amber-500 bg-transparent text-amber-500"
576
+ },
577
+ {
578
+ color: "yellow",
579
+ variant: "outline",
580
+ className: "border-yellow-500 bg-transparent text-yellow-500"
581
+ },
582
+ {
583
+ color: "lime",
584
+ variant: "outline",
585
+ className: "border-lime-500 bg-transparent text-lime-500"
586
+ },
587
+ {
588
+ color: "green",
589
+ variant: "outline",
590
+ className: "border-green-500 bg-transparent text-green-500"
591
+ },
592
+ {
593
+ color: "emerald",
594
+ variant: "outline",
595
+ className: "border-emerald-500 bg-transparent text-emerald-500"
596
+ },
597
+ {
598
+ color: "teal",
599
+ variant: "outline",
600
+ className: "border-teal-500 bg-transparent text-teal-500"
601
+ },
602
+ {
603
+ color: "cyan",
604
+ variant: "outline",
605
+ className: "border-cyan-500 bg-transparent text-cyan-500"
606
+ },
607
+ {
608
+ color: "sky",
609
+ variant: "outline",
610
+ className: "border-sky-500 bg-transparent text-sky-500"
611
+ },
612
+ {
613
+ color: "blue",
614
+ variant: "outline",
615
+ className: "border-blue-500 bg-transparent text-blue-500"
616
+ },
617
+ {
618
+ color: "indigo",
619
+ variant: "outline",
620
+ className: "border-indigo-500 bg-transparent text-indigo-500"
621
+ },
622
+ {
623
+ color: "violet",
624
+ variant: "outline",
625
+ className: "border-violet-500 bg-transparent text-violet-500"
626
+ },
627
+ {
628
+ color: "purple",
629
+ variant: "outline",
630
+ className: "border-purple-500 bg-transparent text-purple-500"
631
+ },
632
+ {
633
+ color: "fuchsia",
634
+ variant: "outline",
635
+ className: "border-fuchsia-500 bg-transparent text-fuchsia-500"
636
+ },
637
+ {
638
+ color: "pink",
639
+ variant: "outline",
640
+ className: "border-pink-500 bg-transparent text-pink-500"
641
+ },
642
+ {
643
+ color: "rose",
644
+ variant: "outline",
645
+ className: "border-rose-500 bg-transparent text-rose-500"
646
+ },
647
+ {
648
+ color: "slate",
649
+ variant: "outline",
650
+ className: "border-slate-500 bg-transparent text-slate-500"
651
+ },
652
+ {
653
+ color: "gray",
654
+ variant: "outline",
655
+ className: "border-gray-500 bg-transparent text-gray-500"
656
+ },
657
+ {
658
+ color: "zinc",
659
+ variant: "outline",
660
+ className: "border-zinc-500 bg-transparent text-zinc-500"
661
+ },
662
+ {
663
+ color: "neutral",
664
+ variant: "outline",
665
+ className: "border-neutral-500 bg-transparent text-neutral-500"
666
+ },
667
+ {
668
+ color: "stone",
669
+ variant: "outline",
670
+ className: "border-stone-500 bg-transparent text-stone-500"
671
+ },
672
+ {
673
+ color: "white",
674
+ variant: "outline",
675
+ className: "border-black bg-transparent text-black"
676
+ },
677
+ {
678
+ color: "black",
679
+ variant: "outline",
680
+ className: "border-black bg-transparent text-black"
681
+ }
682
+ ]
683
+ }
684
+ ), oa = ({ label: e, onClick: t, className: o, variant: n = "default", color: s }) => {
685
+ if (s && !(n === "default" || n === "outline"))
686
+ throw new Error(
687
+ `Color ${s} is not allowed for variant '${n}'. Only default and outline variants support color.`
688
+ );
689
+ const i = l(
690
+ "cursor-default",
691
+ !!t && "cursor-pointer",
692
+ kt({ color: s, variant: n }),
693
+ {
694
+ "text-white": s === "black" && n !== "outline",
695
+ "text-black": s === "white" && n !== "outline"
696
+ },
697
+ {
698
+ "border-1 border-black": s === "white"
699
+ },
700
+ o
701
+ );
702
+ return /* @__PURE__ */ a.jsx(wt, { className: i, onClick: t, variant: n, children: e });
703
+ };
704
+ function At({ ...e }) {
705
+ return /* @__PURE__ */ a.jsx("nav", { "aria-label": "breadcrumb", "data-slot": "breadcrumb", ...e });
706
+ }
707
+ function _t({ className: e, ...t }) {
708
+ return /* @__PURE__ */ a.jsx(
709
+ "ol",
710
+ {
711
+ className: l(
712
+ "flex flex-wrap items-center gap-1.5 break-words text-muted-foreground text-sm sm:gap-2.5",
713
+ e
714
+ ),
715
+ "data-slot": "breadcrumb-list",
716
+ ...t
717
+ }
718
+ );
719
+ }
720
+ function It({ className: e, ...t }) {
721
+ return /* @__PURE__ */ a.jsx("li", { className: l("inline-flex items-center gap-1.5", e), "data-slot": "breadcrumb-item", ...t });
722
+ }
723
+ function ge({
724
+ asChild: e,
725
+ className: t,
726
+ ...o
727
+ }) {
728
+ const n = e ? Q : "a";
729
+ return /* @__PURE__ */ a.jsx(n, { className: l("transition-colors hover:text-foreground", t), "data-slot": "breadcrumb-link", ...o });
730
+ }
731
+ function Rt({ className: e, ...t }) {
732
+ return /* @__PURE__ */ a.jsx(
733
+ "span",
734
+ {
735
+ "aria-current": "page",
736
+ "aria-disabled": "true",
737
+ className: l("font-normal text-foreground", e),
738
+ "data-slot": "breadcrumb-page",
739
+ ...t
740
+ }
741
+ );
742
+ }
743
+ function Mt({ children: e, className: t, ...o }) {
744
+ return /* @__PURE__ */ a.jsx(
745
+ "li",
746
+ {
747
+ "aria-hidden": "true",
748
+ className: l("[&>svg]:size-3.5", t),
749
+ "data-slot": "breadcrumb-separator",
750
+ role: "presentation",
751
+ ...o,
752
+ children: e ?? /* @__PURE__ */ a.jsx(W, {})
753
+ }
754
+ );
755
+ }
756
+ const Pt = ({ to: e, label: t }) => /* @__PURE__ */ a.jsx(ge, { className: "font-display", href: e, children: t }), Et = ({ label: e }) => /* @__PURE__ */ a.jsx(Rt, { className: "font-display", children: e }), na = ({ breadcrumbs: e, linkComponent: t, pageComponent: o, className: n }) => {
757
+ const s = t || Pt, i = o || Et;
758
+ return /* @__PURE__ */ a.jsx(At, { className: l("my-4", n), children: /* @__PURE__ */ a.jsx(_t, { children: e.map(({ to: r, label: c }, u) => /* @__PURE__ */ a.jsxs(ye, { children: [
759
+ /* @__PURE__ */ a.jsxs(It, { children: [
760
+ r && /* @__PURE__ */ a.jsx(ge, { asChild: !0, className: "font-display", children: /* @__PURE__ */ a.jsx(s, { label: c, to: r }) }),
761
+ !r && /* @__PURE__ */ a.jsx(i, { label: c })
762
+ ] }),
763
+ u < e.length - 1 && /* @__PURE__ */ a.jsx(Mt, {})
764
+ ] }, c)) }) });
765
+ };
766
+ function sa({ className: e, ...t }) {
767
+ return /* @__PURE__ */ a.jsx(
768
+ "div",
769
+ {
770
+ className: l("flex flex-col gap-6 rounded-xl border bg-card py-6 text-card-foreground shadow-sm", e),
771
+ "data-slot": "card",
772
+ ...t
773
+ }
774
+ );
775
+ }
776
+ function ia({ className: e, ...t }) {
777
+ return /* @__PURE__ */ a.jsx(
778
+ "div",
779
+ {
780
+ className: l(
781
+ "@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-data-[slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6",
782
+ e
783
+ ),
784
+ "data-slot": "card-header",
785
+ ...t
786
+ }
787
+ );
788
+ }
789
+ function la({ className: e, ...t }) {
790
+ return /* @__PURE__ */ a.jsx("div", { className: l("font-semibold leading-none", e), "data-slot": "card-title", ...t });
791
+ }
792
+ function ca({ className: e, ...t }) {
793
+ return /* @__PURE__ */ a.jsx("div", { className: l("text-muted-foreground text-sm", e), "data-slot": "card-description", ...t });
794
+ }
795
+ function da({ className: e, ...t }) {
796
+ return /* @__PURE__ */ a.jsx(
797
+ "div",
798
+ {
799
+ className: l("col-start-2 row-span-2 row-start-1 self-start justify-self-end", e),
800
+ "data-slot": "card-action",
801
+ ...t
802
+ }
803
+ );
804
+ }
805
+ function ua({ className: e, ...t }) {
806
+ return /* @__PURE__ */ a.jsx("div", { className: l("px-6", e), "data-slot": "card-content", ...t });
807
+ }
808
+ function pa({ className: e, ...t }) {
809
+ return /* @__PURE__ */ a.jsx("div", { className: l("flex items-center px-6 [.border-t]:pt-6", e), "data-slot": "card-footer", ...t });
810
+ }
811
+ function zt({ ...e }) {
812
+ return /* @__PURE__ */ a.jsx(Ae, { "data-slot": "dialog", ...e });
813
+ }
814
+ function St({ ...e }) {
815
+ return /* @__PURE__ */ a.jsx(_e, { "data-slot": "dialog-trigger", ...e });
816
+ }
817
+ function Dt({ ...e }) {
818
+ return /* @__PURE__ */ a.jsx(Ee, { "data-slot": "dialog-portal", ...e });
819
+ }
820
+ function Ot({ className: e, ...t }) {
821
+ return /* @__PURE__ */ a.jsx(
822
+ ze,
823
+ {
824
+ className: l(
825
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-50 bg-black/50 data-[state=closed]:animate-out data-[state=open]:animate-in",
826
+ e
827
+ ),
828
+ "data-slot": "dialog-overlay",
829
+ ...t
830
+ }
831
+ );
832
+ }
833
+ function Tt({ className: e, children: t, ...o }) {
834
+ return /* @__PURE__ */ a.jsxs(Dt, { "data-slot": "dialog-portal", children: [
835
+ /* @__PURE__ */ a.jsx(Ot, {}),
836
+ /* @__PURE__ */ a.jsxs(
837
+ Ie,
838
+ {
839
+ className: l(
840
+ "data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-lg border bg-background p-6 shadow-lg duration-200 data-[state=closed]:animate-out data-[state=open]:animate-in sm:max-w-lg",
841
+ e
842
+ ),
843
+ "data-slot": "dialog-content",
844
+ ...o,
845
+ children: [
846
+ t,
847
+ /* @__PURE__ */ a.jsxs(Re, { className: "absolute top-4 right-4 rounded-xs opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-hidden focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", children: [
848
+ /* @__PURE__ */ a.jsx(Oe, {}),
849
+ /* @__PURE__ */ a.jsx("span", { className: "sr-only", children: "Close" })
850
+ ] })
851
+ ]
852
+ }
853
+ )
854
+ ] });
855
+ }
856
+ function $t({ className: e, ...t }) {
857
+ return /* @__PURE__ */ a.jsx(
858
+ "div",
859
+ {
860
+ className: l("flex flex-col gap-2 text-center sm:text-left", e),
861
+ "data-slot": "dialog-header",
862
+ ...t
863
+ }
864
+ );
865
+ }
866
+ function Lt({ className: e, ...t }) {
867
+ return /* @__PURE__ */ a.jsx(
868
+ Me,
869
+ {
870
+ className: l("font-semibold text-lg leading-none", e),
871
+ "data-slot": "dialog-title",
872
+ ...t
873
+ }
874
+ );
875
+ }
876
+ function Vt({ className: e, ...t }) {
877
+ return /* @__PURE__ */ a.jsx(
878
+ Pe,
879
+ {
880
+ className: l("text-muted-foreground text-sm", e),
881
+ "data-slot": "dialog-description",
882
+ ...t
883
+ }
884
+ );
885
+ }
886
+ const ma = ({ trigger: e, children: t, title: o, description: n, open: s, onOpenChange: i }) => {
887
+ const r = s !== void 0, [c, u] = je(r ? s : !1);
888
+ if (Ne(() => {
889
+ r && u(s);
890
+ }, [s, r]), !e && !r)
891
+ throw new Error("Trigger must be provided if modal state is not controlled through open, onOpenChange props.");
892
+ const p = (m) => {
893
+ u(m), i?.(m);
894
+ };
895
+ return /* @__PURE__ */ a.jsxs(zt, { onOpenChange: p, open: c, children: [
896
+ /* @__PURE__ */ a.jsx(St, { asChild: !0, children: e }),
897
+ /* @__PURE__ */ a.jsxs(Tt, { children: [
898
+ (o || n) && /* @__PURE__ */ a.jsxs($t, { children: [
899
+ o && /* @__PURE__ */ a.jsx(Lt, { children: o }),
900
+ n && /* @__PURE__ */ a.jsx(Vt, { children: n })
901
+ ] }),
902
+ t
903
+ ] })
904
+ ] });
905
+ };
906
+ function Bt({ className: e, ...t }) {
907
+ return /* @__PURE__ */ a.jsx(
908
+ "nav",
909
+ {
910
+ "aria-label": "pagination",
911
+ className: l("mx-auto flex w-full justify-center", e),
912
+ "data-slot": "pagination",
913
+ ...t
914
+ }
915
+ );
916
+ }
917
+ function Gt({ className: e, ...t }) {
918
+ return /* @__PURE__ */ a.jsx("ul", { className: l("flex flex-row items-center gap-1", e), "data-slot": "pagination-content", ...t });
919
+ }
920
+ function k({ ...e }) {
921
+ return /* @__PURE__ */ a.jsx("li", { "data-slot": "pagination-item", ...e });
922
+ }
923
+ function A({ className: e, isActive: t, size: o = "icon", ...n }) {
924
+ return /* @__PURE__ */ a.jsx(
925
+ "a",
926
+ {
927
+ "aria-current": t ? "page" : void 0,
928
+ className: l(
929
+ Se({
930
+ variant: t ? "outline" : "ghost",
931
+ size: o
932
+ }),
933
+ e
934
+ ),
935
+ "data-active": t,
936
+ "data-slot": "pagination-link",
937
+ ...n
938
+ }
939
+ );
940
+ }
941
+ function Ht({ className: e, ...t }) {
942
+ return /* @__PURE__ */ a.jsxs(
943
+ A,
944
+ {
945
+ "aria-label": "Go to previous page",
946
+ className: l("gap-1 px-2.5 sm:pl-2.5", e),
947
+ size: "default",
948
+ ...t,
949
+ children: [
950
+ /* @__PURE__ */ a.jsx(De, {}),
951
+ /* @__PURE__ */ a.jsx("span", { className: "hidden sm:block", children: "Previous" })
952
+ ]
953
+ }
954
+ );
955
+ }
956
+ function Ft({ className: e, ...t }) {
957
+ return /* @__PURE__ */ a.jsxs(
958
+ A,
959
+ {
960
+ "aria-label": "Go to next page",
961
+ className: l("gap-1 px-2.5 sm:pr-2.5", e),
962
+ size: "default",
963
+ ...t,
964
+ children: [
965
+ /* @__PURE__ */ a.jsx("span", { className: "hidden sm:block", children: "Next" }),
966
+ /* @__PURE__ */ a.jsx(W, {})
967
+ ]
968
+ }
969
+ );
970
+ }
971
+ function K({ className: e, ...t }) {
972
+ return /* @__PURE__ */ a.jsxs(
973
+ "span",
974
+ {
975
+ "aria-hidden": !0,
976
+ className: l("flex size-9 items-center justify-center", e),
977
+ "data-slot": "pagination-ellipsis",
978
+ ...t,
979
+ children: [
980
+ /* @__PURE__ */ a.jsx(qe, { className: "size-4" }),
981
+ /* @__PURE__ */ a.jsx("span", { className: "sr-only", children: "More pages" })
982
+ ]
983
+ }
984
+ );
985
+ }
986
+ const xa = ({ pageCount: e, currentPage: t, onChange: o }) => {
987
+ const n = Math.max(1, e), s = Math.max(1, Math.min(t, n)), i = Ce(() => n === 1 ? [1] : s <= 3 ? Array.from({ length: Math.min(3, n) }, (r, c) => c + 1) : s >= n - 2 ? Array.from(
988
+ { length: Math.min(3, n) },
989
+ (r, c) => n - Math.min(3, n) + c + 1
990
+ ) : [s - 1, s, s + 1], [s, n]);
991
+ return /* @__PURE__ */ a.jsx(Bt, { children: /* @__PURE__ */ a.jsxs(Gt, { children: [
992
+ /* @__PURE__ */ a.jsx(k, { children: /* @__PURE__ */ a.jsxs(
993
+ A,
994
+ {
995
+ "aria-disabled": t === 1,
996
+ "aria-label": "Go to first page",
997
+ className: "h-auto w-auto cursor-pointer gap-1 px-2.5 py-2 has-[>svg]:px-3 sm:pl-2.5",
998
+ onClick: () => o(1),
999
+ style: { opacity: t === 1 ? 0.5 : 1, pointerEvents: t === 1 ? "none" : "auto" },
1000
+ tabIndex: t === 1 ? -1 : void 0,
1001
+ children: [
1002
+ /* @__PURE__ */ a.jsx(Le, {}),
1003
+ /* @__PURE__ */ a.jsx("span", { className: "hidden sm:block", children: "First" })
1004
+ ]
1005
+ }
1006
+ ) }),
1007
+ /* @__PURE__ */ a.jsx(k, { children: /* @__PURE__ */ a.jsx(
1008
+ Ht,
1009
+ {
1010
+ "aria-disabled": t === 1,
1011
+ "aria-label": "Go to previous page",
1012
+ className: "cursor-pointer",
1013
+ onClick: () => o(Math.max(t - 1, 1)),
1014
+ style: {
1015
+ opacity: t === 1 ? 0.5 : 1,
1016
+ pointerEvents: t === 1 ? "none" : "auto"
1017
+ },
1018
+ tabIndex: t === 1 ? -1 : void 0
1019
+ }
1020
+ ) }),
1021
+ i[0] > 1 && /* @__PURE__ */ a.jsx(K, { "aria-label": "More pages" }),
1022
+ i.map((r) => /* @__PURE__ */ a.jsx(k, { children: /* @__PURE__ */ a.jsx(
1023
+ A,
1024
+ {
1025
+ "aria-current": t === r ? "page" : void 0,
1026
+ "aria-label": `Go to page ${r}`,
1027
+ className: "cursor-pointer",
1028
+ isActive: t === r,
1029
+ onClick: () => o(r),
1030
+ children: r
1031
+ }
1032
+ ) }, r)),
1033
+ i[i.length - 1] < e && /* @__PURE__ */ a.jsx(K, { "aria-label": "More pages" }),
1034
+ /* @__PURE__ */ a.jsx(k, { children: /* @__PURE__ */ a.jsx(
1035
+ Ft,
1036
+ {
1037
+ "aria-disabled": t === e,
1038
+ "aria-label": "Go to next page",
1039
+ className: "cursor-pointer",
1040
+ onClick: () => o(Math.min(t + 1, e)),
1041
+ style: {
1042
+ opacity: t === e ? 0.5 : 1,
1043
+ pointerEvents: t === e ? "none" : "auto"
1044
+ },
1045
+ tabIndex: t === e ? -1 : void 0
1046
+ }
1047
+ ) }),
1048
+ /* @__PURE__ */ a.jsx(k, { children: /* @__PURE__ */ a.jsxs(
1049
+ A,
1050
+ {
1051
+ "aria-disabled": t === e,
1052
+ "aria-label": "Go to last page",
1053
+ className: "h-auto w-auto cursor-pointer gap-1 px-2.5 py-2 has-[>svg]:px-3 sm:pl-2.5",
1054
+ onClick: () => o(e),
1055
+ style: {
1056
+ opacity: t === e ? 0.5 : 1,
1057
+ pointerEvents: t === e ? "none" : "auto"
1058
+ },
1059
+ tabIndex: t === e ? -1 : void 0,
1060
+ children: [
1061
+ "Last",
1062
+ /* @__PURE__ */ a.jsx(Be, {})
1063
+ ]
1064
+ }
1065
+ ) })
1066
+ ] }) });
1067
+ }, ga = ({ className: e, orientation: t = "horizontal", gap: o, ...n }) => {
1068
+ const s = t === "vertical", r = o ?? (s ? "2" : "4");
1069
+ return /* @__PURE__ */ a.jsx(
1070
+ Te,
1071
+ {
1072
+ className: l(
1073
+ !s && {
1074
+ "my-0": r === "0",
1075
+ "my-1": r === "1",
1076
+ "my-2": r === "2",
1077
+ "my-3": r === "3",
1078
+ "my-4": r === "4",
1079
+ "my-5": r === "5",
1080
+ "my-6": r === "6",
1081
+ "my-7": r === "7",
1082
+ "my-8": r === "8",
1083
+ "my-9": r === "9",
1084
+ "my-10": r === "10",
1085
+ "my-11": r === "11",
1086
+ "my-12": r === "12",
1087
+ "my-13": r === "13",
1088
+ "my-14": r === "14",
1089
+ "my-15": r === "15",
1090
+ "my-16": r === "16"
1091
+ },
1092
+ s && {
1093
+ "mx-0": r === "0",
1094
+ "mx-1": r === "1",
1095
+ "mx-2": r === "2",
1096
+ "mx-3": r === "3",
1097
+ "mx-4": r === "4",
1098
+ "mx-5": r === "5",
1099
+ "mx-6": r === "6",
1100
+ "mx-7": r === "7",
1101
+ "mx-8": r === "8",
1102
+ "mx-9": r === "9",
1103
+ "mx-10": r === "10",
1104
+ "mx-11": r === "11",
1105
+ "mx-12": r === "12",
1106
+ "mx-13": r === "13",
1107
+ "mx-14": r === "14",
1108
+ "mx-15": r === "15",
1109
+ "mx-16": r === "16"
1110
+ },
1111
+ e
1112
+ ),
1113
+ orientation: t,
1114
+ role: "separator",
1115
+ ...n
1116
+ }
1117
+ );
1118
+ };
1119
+ function fa({ className: e, ...t }) {
1120
+ return /* @__PURE__ */ a.jsx("div", { className: l("animate-pulse rounded-md bg-accent", e), "data-slot": "skeleton", ...t });
1121
+ }
1122
+ export {
1123
+ Zt as A,
1124
+ oa as B,
1125
+ sa as C,
1126
+ ma as M,
1127
+ xa as P,
1128
+ ga as S,
1129
+ ea as a,
1130
+ ta as b,
1131
+ aa as c,
1132
+ ra as d,
1133
+ na as e,
1134
+ da as f,
1135
+ ua as g,
1136
+ ca as h,
1137
+ pa as i,
1138
+ ia as j,
1139
+ la as k,
1140
+ fa as l
1141
+ };