@framingui/ui 0.6.1 → 0.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +22 -1090
  3. package/dist/chunk-7UBERMRE.mjs +180 -0
  4. package/dist/index.d.mts +3 -140
  5. package/dist/index.mjs +257 -1688
  6. package/dist/src/components/badge.d.ts +1 -1
  7. package/dist/src/components/button.d.ts +1 -1
  8. package/dist/src/components/calendar.d.ts.map +1 -1
  9. package/dist/src/components/calendar.js +12 -11
  10. package/dist/src/components/calendar.js.map +1 -1
  11. package/dist/src/components/command.d.ts +7 -7
  12. package/dist/src/components/select.js +1 -1
  13. package/dist/src/components/select.js.map +1 -1
  14. package/dist/src/components/sheet.d.ts +1 -1
  15. package/dist/src/index.d.ts +0 -1
  16. package/dist/src/index.d.ts.map +1 -1
  17. package/dist/src/index.js +0 -1
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/lib/theme-loader.d.ts +1 -0
  20. package/dist/src/lib/theme-loader.d.ts.map +1 -1
  21. package/dist/src/lib/theme-loader.js.map +1 -1
  22. package/dist/src/lib/tokens.d.ts +1 -0
  23. package/dist/src/lib/tokens.d.ts.map +1 -1
  24. package/dist/src/lib/tokens.js +1 -0
  25. package/dist/src/lib/tokens.js.map +1 -1
  26. package/dist/src/primitives/badge.d.ts +1 -1
  27. package/dist/src/primitives/button.d.ts +1 -1
  28. package/dist/src/primitives/text.d.ts +1 -1
  29. package/dist/src/templates/auth/forgot-password.d.ts +2 -2
  30. package/dist/src/templates/auth/forgot-password.d.ts.map +1 -1
  31. package/dist/src/templates/auth/forgot-password.js +2 -35
  32. package/dist/src/templates/auth/forgot-password.js.map +1 -1
  33. package/dist/src/templates/auth/login.d.ts +2 -2
  34. package/dist/src/templates/auth/login.d.ts.map +1 -1
  35. package/dist/src/templates/auth/login.js +2 -35
  36. package/dist/src/templates/auth/login.js.map +1 -1
  37. package/dist/src/templates/auth/signup.d.ts +2 -2
  38. package/dist/src/templates/auth/signup.d.ts.map +1 -1
  39. package/dist/src/templates/auth/signup.js +2 -35
  40. package/dist/src/templates/auth/signup.js.map +1 -1
  41. package/dist/src/templates/auth/verification.d.ts +2 -2
  42. package/dist/src/templates/auth/verification.d.ts.map +1 -1
  43. package/dist/src/templates/auth/verification.js +2 -35
  44. package/dist/src/templates/auth/verification.js.map +1 -1
  45. package/dist/src/templates/core/landing.d.ts +2 -2
  46. package/dist/src/templates/core/landing.d.ts.map +1 -1
  47. package/dist/src/templates/core/landing.js +2 -35
  48. package/dist/src/templates/core/landing.js.map +1 -1
  49. package/dist/src/templates/core/preferences.d.ts +2 -2
  50. package/dist/src/templates/core/preferences.d.ts.map +1 -1
  51. package/dist/src/templates/core/preferences.js +2 -41
  52. package/dist/src/templates/core/preferences.js.map +1 -1
  53. package/dist/src/templates/core/profile.d.ts +2 -2
  54. package/dist/src/templates/core/profile.d.ts.map +1 -1
  55. package/dist/src/templates/core/profile.js +2 -35
  56. package/dist/src/templates/core/profile.js.map +1 -1
  57. package/dist/src/templates/create-template.d.ts +4 -0
  58. package/dist/src/templates/create-template.d.ts.map +1 -0
  59. package/dist/src/templates/create-template.js +41 -0
  60. package/dist/src/templates/create-template.js.map +1 -0
  61. package/dist/src/templates/dashboard/overview.d.ts +2 -2
  62. package/dist/src/templates/dashboard/overview.d.ts.map +1 -1
  63. package/dist/src/templates/dashboard/overview.js +2 -56
  64. package/dist/src/templates/dashboard/overview.js.map +1 -1
  65. package/dist/src/templates/feedback/confirmation.d.ts +2 -2
  66. package/dist/src/templates/feedback/confirmation.d.ts.map +1 -1
  67. package/dist/src/templates/feedback/confirmation.js +2 -35
  68. package/dist/src/templates/feedback/confirmation.js.map +1 -1
  69. package/dist/src/templates/feedback/empty.d.ts +2 -2
  70. package/dist/src/templates/feedback/empty.d.ts.map +1 -1
  71. package/dist/src/templates/feedback/empty.js +2 -35
  72. package/dist/src/templates/feedback/empty.js.map +1 -1
  73. package/dist/src/templates/feedback/error.d.ts +2 -2
  74. package/dist/src/templates/feedback/error.d.ts.map +1 -1
  75. package/dist/src/templates/feedback/error.js +2 -35
  76. package/dist/src/templates/feedback/error.js.map +1 -1
  77. package/dist/src/templates/feedback/loading.d.ts +2 -2
  78. package/dist/src/templates/feedback/loading.d.ts.map +1 -1
  79. package/dist/src/templates/feedback/loading.js +2 -35
  80. package/dist/src/templates/feedback/loading.js.map +1 -1
  81. package/dist/src/templates/feedback/success.d.ts +2 -2
  82. package/dist/src/templates/feedback/success.d.ts.map +1 -1
  83. package/dist/src/templates/feedback/success.js +2 -35
  84. package/dist/src/templates/feedback/success.js.map +1 -1
  85. package/dist/templates/index.d.mts +142 -0
  86. package/dist/templates/index.mjs +905 -0
  87. package/dist/tsconfig.tsbuildinfo +1 -1
  88. package/package.json +18 -14
package/dist/index.mjs CHANGED
@@ -1,11 +1,18 @@
1
1
  'use client';
2
-
3
- // src/lib/utils.ts
4
- import { clsx } from "clsx";
5
- import { twMerge } from "tailwind-merge";
6
- function cn(...inputs) {
7
- return twMerge(clsx(inputs));
8
- }
2
+ import {
3
+ Button,
4
+ Card,
5
+ CardContent,
6
+ CardDescription,
7
+ CardFooter,
8
+ CardHeader,
9
+ CardTitle,
10
+ Input,
11
+ Label,
12
+ Separator,
13
+ buttonVariants,
14
+ cn
15
+ } from "./chunk-7UBERMRE.mjs";
9
16
 
10
17
  // src/lib/tokens.ts
11
18
  var tokenVars = {
@@ -46,7 +53,8 @@ var tokenVars = {
46
53
  md: "var(--tekton-radius-md)",
47
54
  lg: "var(--tekton-radius-lg)",
48
55
  xl: "var(--tekton-radius-xl)",
49
- full: "var(--tekton-radius-full)"
56
+ full: "var(--tekton-radius-full)",
57
+ select: "var(--tekton-radius-select)"
50
58
  },
51
59
  // ========================================
52
60
  // Spacing Tokens (4px base)
@@ -295,147 +303,10 @@ function getMotionTransition(transition, motionSafe) {
295
303
  return transition;
296
304
  }
297
305
 
298
- // src/components/button.tsx
299
- import * as React from "react";
300
- import { Slot } from "@radix-ui/react-slot";
306
+ // src/components/badge.tsx
301
307
  import { cva } from "class-variance-authority";
302
308
  import { jsx } from "react/jsx-runtime";
303
- var buttonVariants = cva(
304
- "inline-flex items-center justify-center whitespace-nowrap rounded-[var(--tekton-radius-xl)] text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
305
- {
306
- variants: {
307
- variant: {
308
- default: "bg-[var(--tekton-bg-primary)] text-[var(--tekton-bg-primary-foreground)] hover:bg-[var(--tekton-bg-primary)]/90",
309
- destructive: "bg-[var(--tekton-bg-destructive)] text-[var(--tekton-bg-destructive-foreground)] hover:bg-[var(--tekton-bg-destructive)]/90",
310
- outline: "border border-[var(--tekton-border-input)] bg-[var(--tekton-bg-background)] hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
311
- secondary: "bg-[var(--tekton-bg-secondary)] text-[var(--tekton-bg-secondary-foreground)] hover:bg-[var(--tekton-bg-secondary)]/80",
312
- ghost: "hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
313
- link: "text-[var(--tekton-bg-primary)] underline-offset-4 hover:underline"
314
- },
315
- size: {
316
- default: "h-10 px-[var(--tekton-spacing-4)] py-[var(--tekton-spacing-2)]",
317
- sm: "h-9 rounded-[var(--tekton-radius-xl)] px-[var(--tekton-spacing-3)]",
318
- lg: "h-11 rounded-[var(--tekton-radius-xl)] px-[var(--tekton-spacing-8)]",
319
- icon: "h-10 w-10"
320
- }
321
- },
322
- defaultVariants: {
323
- variant: "default",
324
- size: "default"
325
- }
326
- }
327
- );
328
- var Button = React.forwardRef(
329
- ({ className, variant, size, asChild = false, ...props }, ref) => {
330
- const Comp = asChild ? Slot : "button";
331
- return /* @__PURE__ */ jsx(Comp, { className: cn(buttonVariants({ variant, size, className })), ref, ...props });
332
- }
333
- );
334
- Button.displayName = "Button";
335
-
336
- // src/components/input.tsx
337
- import * as React2 from "react";
338
- import { jsx as jsx2 } from "react/jsx-runtime";
339
- var Input = React2.forwardRef(
340
- ({ className, type, ...props }, ref) => {
341
- return /* @__PURE__ */ jsx2(
342
- "input",
343
- {
344
- type,
345
- className: cn(
346
- "flex h-10 w-full rounded-[var(--tekton-radius-md)] border border-[var(--tekton-border-input)] bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-sm ring-offset-[var(--tekton-bg-background)] file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-[var(--tekton-bg-muted-foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
347
- className
348
- ),
349
- ref,
350
- ...props
351
- }
352
- );
353
- }
354
- );
355
- Input.displayName = "Input";
356
-
357
- // src/components/label.tsx
358
- import * as React3 from "react";
359
- import * as LabelPrimitive from "@radix-ui/react-label";
360
- import { cva as cva2 } from "class-variance-authority";
361
- import { jsx as jsx3 } from "react/jsx-runtime";
362
- var labelVariants = cva2(
363
- "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
364
- );
365
- var Label = React3.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(LabelPrimitive.Root, { ref, className: cn(labelVariants(), className), ...props }));
366
- Label.displayName = LabelPrimitive.Root.displayName;
367
-
368
- // src/components/card.tsx
369
- import * as React4 from "react";
370
- import { jsx as jsx4 } from "react/jsx-runtime";
371
- var Card = React4.forwardRef(
372
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
373
- "div",
374
- {
375
- ref,
376
- className: cn(
377
- "rounded-[var(--tekton-radius-lg)] border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-card)] text-[var(--tekton-bg-card-foreground)] shadow-sm",
378
- className
379
- ),
380
- ...props
381
- }
382
- )
383
- );
384
- Card.displayName = "Card";
385
- var CardHeader = React4.forwardRef(
386
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
387
- "div",
388
- {
389
- ref,
390
- className: cn(
391
- "flex flex-col space-y-[var(--tekton-spacing-2)] p-[var(--tekton-spacing-6)]",
392
- className
393
- ),
394
- ...props
395
- }
396
- )
397
- );
398
- CardHeader.displayName = "CardHeader";
399
- var CardTitle = React4.forwardRef(
400
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
401
- "h3",
402
- {
403
- ref,
404
- className: cn("text-2xl font-semibold leading-none tracking-tight", className),
405
- ...props
406
- }
407
- )
408
- );
409
- CardTitle.displayName = "CardTitle";
410
- var CardDescription = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
411
- "p",
412
- {
413
- ref,
414
- className: cn("text-sm text-[var(--tekton-bg-muted-foreground)]", className),
415
- ...props
416
- }
417
- ));
418
- CardDescription.displayName = "CardDescription";
419
- var CardContent = React4.forwardRef(
420
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx4("div", { ref, className: cn("p-[var(--tekton-spacing-6)] pt-0", className), ...props })
421
- );
422
- CardContent.displayName = "CardContent";
423
- var CardFooter = React4.forwardRef(
424
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx4(
425
- "div",
426
- {
427
- ref,
428
- className: cn("flex items-center p-[var(--tekton-spacing-6)] pt-0", className),
429
- ...props
430
- }
431
- )
432
- );
433
- CardFooter.displayName = "CardFooter";
434
-
435
- // src/components/badge.tsx
436
- import { cva as cva3 } from "class-variance-authority";
437
- import { jsx as jsx5 } from "react/jsx-runtime";
438
- var badgeVariants = cva3(
309
+ var badgeVariants = cva(
439
310
  "inline-flex items-center rounded-[var(--tekton-radius-full)] border px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-1)] text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-[var(--tekton-border-ring)] focus:ring-offset-2",
440
311
  {
441
312
  variants: {
@@ -452,14 +323,14 @@ var badgeVariants = cva3(
452
323
  }
453
324
  );
454
325
  function Badge({ className, variant, ...props }) {
455
- return /* @__PURE__ */ jsx5("div", { className: cn(badgeVariants({ variant }), className), ...props });
326
+ return /* @__PURE__ */ jsx("div", { className: cn(badgeVariants({ variant }), className), ...props });
456
327
  }
457
328
 
458
329
  // src/components/avatar.tsx
459
- import * as React5 from "react";
330
+ import * as React from "react";
460
331
  import * as AvatarPrimitive from "@radix-ui/react-avatar";
461
- import { jsx as jsx6 } from "react/jsx-runtime";
462
- var Avatar = React5.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx6(
332
+ import { jsx as jsx2 } from "react/jsx-runtime";
333
+ var Avatar = React.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx2(
463
334
  AvatarPrimitive.Root,
464
335
  {
465
336
  ref,
@@ -472,7 +343,7 @@ var Avatar = React5.forwardRef(({ className, children, ...props }, ref) => /* @_
472
343
  }
473
344
  ));
474
345
  Avatar.displayName = AvatarPrimitive.Root.displayName;
475
- var AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
346
+ var AvatarImage = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
476
347
  AvatarPrimitive.Image,
477
348
  {
478
349
  ref,
@@ -481,7 +352,7 @@ var AvatarImage = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE
481
352
  }
482
353
  ));
483
354
  AvatarImage.displayName = AvatarPrimitive.Image.displayName;
484
- var AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx6(
355
+ var AvatarFallback = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx2(
485
356
  AvatarPrimitive.Fallback,
486
357
  {
487
358
  ref,
@@ -494,32 +365,12 @@ var AvatarFallback = React5.forwardRef(({ className, ...props }, ref) => /* @__P
494
365
  ));
495
366
  AvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;
496
367
 
497
- // src/components/separator.tsx
498
- import * as React6 from "react";
499
- import * as SeparatorPrimitive from "@radix-ui/react-separator";
500
- import { jsx as jsx7 } from "react/jsx-runtime";
501
- var Separator = React6.forwardRef(({ className, orientation = "horizontal", decorative = true, ...props }, ref) => /* @__PURE__ */ jsx7(
502
- SeparatorPrimitive.Root,
503
- {
504
- ref,
505
- decorative,
506
- orientation,
507
- className: cn(
508
- "shrink-0 bg-[var(--tekton-border-default)]",
509
- orientation === "horizontal" ? "h-[1px] w-full" : "h-full w-[1px]",
510
- className
511
- ),
512
- ...props
513
- }
514
- ));
515
- Separator.displayName = SeparatorPrimitive.Root.displayName;
516
-
517
368
  // src/components/checkbox.tsx
518
- import * as React7 from "react";
369
+ import * as React2 from "react";
519
370
  import * as CheckboxPrimitive from "@radix-ui/react-checkbox";
520
371
  import { Check } from "lucide-react";
521
- import { jsx as jsx8 } from "react/jsx-runtime";
522
- var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx8(
372
+ import { jsx as jsx3 } from "react/jsx-runtime";
373
+ var Checkbox = React2.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx3(
523
374
  CheckboxPrimitive.Root,
524
375
  {
525
376
  ref,
@@ -528,18 +379,18 @@ var Checkbox = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__
528
379
  className
529
380
  ),
530
381
  ...props,
531
- children: /* @__PURE__ */ jsx8(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ jsx8(Check, { className: "h-4 w-4" }) })
382
+ children: /* @__PURE__ */ jsx3(CheckboxPrimitive.Indicator, { className: cn("flex items-center justify-center text-current"), children: /* @__PURE__ */ jsx3(Check, { className: "h-4 w-4" }) })
532
383
  }
533
384
  ));
534
385
  Checkbox.displayName = CheckboxPrimitive.Root.displayName;
535
386
 
536
387
  // src/components/radio-group.tsx
537
- import * as React8 from "react";
388
+ import * as React3 from "react";
538
389
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
539
390
  import { Circle } from "lucide-react";
540
- import { jsx as jsx9 } from "react/jsx-runtime";
541
- var RadioGroup = React8.forwardRef(({ className, ...props }, ref) => {
542
- return /* @__PURE__ */ jsx9(
391
+ import { jsx as jsx4 } from "react/jsx-runtime";
392
+ var RadioGroup = React3.forwardRef(({ className, ...props }, ref) => {
393
+ return /* @__PURE__ */ jsx4(
543
394
  RadioGroupPrimitive.Root,
544
395
  {
545
396
  className: cn("grid gap-[var(--tekton-spacing-2)]", className),
@@ -549,8 +400,8 @@ var RadioGroup = React8.forwardRef(({ className, ...props }, ref) => {
549
400
  );
550
401
  });
551
402
  RadioGroup.displayName = RadioGroupPrimitive.Root.displayName;
552
- var RadioGroupItem = React8.forwardRef(({ className, ...props }, ref) => {
553
- return /* @__PURE__ */ jsx9(
403
+ var RadioGroupItem = React3.forwardRef(({ className, ...props }, ref) => {
404
+ return /* @__PURE__ */ jsx4(
554
405
  RadioGroupPrimitive.Item,
555
406
  {
556
407
  ref,
@@ -559,17 +410,17 @@ var RadioGroupItem = React8.forwardRef(({ className, ...props }, ref) => {
559
410
  className
560
411
  ),
561
412
  ...props,
562
- children: /* @__PURE__ */ jsx9(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx9(Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
413
+ children: /* @__PURE__ */ jsx4(RadioGroupPrimitive.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx4(Circle, { className: "h-2.5 w-2.5 fill-current text-current" }) })
563
414
  }
564
415
  );
565
416
  });
566
417
  RadioGroupItem.displayName = RadioGroupPrimitive.Item.displayName;
567
418
 
568
419
  // src/components/switch.tsx
569
- import * as React9 from "react";
420
+ import * as React4 from "react";
570
421
  import * as SwitchPrimitives from "@radix-ui/react-switch";
571
- import { jsx as jsx10 } from "react/jsx-runtime";
572
- var Switch = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
422
+ import { jsx as jsx5 } from "react/jsx-runtime";
423
+ var Switch = React4.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx5(
573
424
  SwitchPrimitives.Root,
574
425
  {
575
426
  className: cn(
@@ -578,7 +429,7 @@ var Switch = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
578
429
  ),
579
430
  ...props,
580
431
  ref,
581
- children: /* @__PURE__ */ jsx10(
432
+ children: /* @__PURE__ */ jsx5(
582
433
  SwitchPrimitives.Thumb,
583
434
  {
584
435
  className: cn(
@@ -591,11 +442,11 @@ var Switch = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */
591
442
  Switch.displayName = SwitchPrimitives.Root.displayName;
592
443
 
593
444
  // src/components/textarea.tsx
594
- import * as React10 from "react";
595
- import { jsx as jsx11 } from "react/jsx-runtime";
596
- var Textarea = React10.forwardRef(
445
+ import * as React5 from "react";
446
+ import { jsx as jsx6 } from "react/jsx-runtime";
447
+ var Textarea = React5.forwardRef(
597
448
  ({ className, ...props }, ref) => {
598
- return /* @__PURE__ */ jsx11(
449
+ return /* @__PURE__ */ jsx6(
599
450
  "textarea",
600
451
  {
601
452
  className: cn(
@@ -611,9 +462,9 @@ var Textarea = React10.forwardRef(
611
462
  Textarea.displayName = "Textarea";
612
463
 
613
464
  // src/components/skeleton.tsx
614
- import { jsx as jsx12 } from "react/jsx-runtime";
465
+ import { jsx as jsx7 } from "react/jsx-runtime";
615
466
  function Skeleton({ className, ...props }) {
616
- return /* @__PURE__ */ jsx12(
467
+ return /* @__PURE__ */ jsx7(
617
468
  "div",
618
469
  {
619
470
  className: cn(
@@ -626,24 +477,24 @@ function Skeleton({ className, ...props }) {
626
477
  }
627
478
 
628
479
  // src/components/scroll-area.tsx
629
- import * as React11 from "react";
480
+ import * as React6 from "react";
630
481
  import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
631
- import { jsx as jsx13, jsxs } from "react/jsx-runtime";
632
- var ScrollArea = React11.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
482
+ import { jsx as jsx8, jsxs } from "react/jsx-runtime";
483
+ var ScrollArea = React6.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs(
633
484
  ScrollAreaPrimitive.Root,
634
485
  {
635
486
  ref,
636
487
  className: cn("relative overflow-hidden", className),
637
488
  ...props,
638
489
  children: [
639
- /* @__PURE__ */ jsx13(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
640
- /* @__PURE__ */ jsx13(ScrollBar, {}),
641
- /* @__PURE__ */ jsx13(ScrollAreaPrimitive.Corner, {})
490
+ /* @__PURE__ */ jsx8(ScrollAreaPrimitive.Viewport, { className: "h-full w-full rounded-[inherit]", children }),
491
+ /* @__PURE__ */ jsx8(ScrollBar, {}),
492
+ /* @__PURE__ */ jsx8(ScrollAreaPrimitive.Corner, {})
642
493
  ]
643
494
  }
644
495
  ));
645
496
  ScrollArea.displayName = ScrollAreaPrimitive.Root.displayName;
646
- var ScrollBar = React11.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx13(
497
+ var ScrollBar = React6.forwardRef(({ className, orientation = "vertical", ...props }, ref) => /* @__PURE__ */ jsx8(
647
498
  ScrollAreaPrimitive.ScrollAreaScrollbar,
648
499
  {
649
500
  ref,
@@ -655,56 +506,56 @@ var ScrollBar = React11.forwardRef(({ className, orientation = "vertical", ...pr
655
506
  className
656
507
  ),
657
508
  ...props,
658
- children: /* @__PURE__ */ jsx13(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-[var(--tekton-radius-full)] bg-[var(--tekton-border-default)]" })
509
+ children: /* @__PURE__ */ jsx8(ScrollAreaPrimitive.ScrollAreaThumb, { className: "relative flex-1 rounded-[var(--tekton-radius-full)] bg-[var(--tekton-border-default)]" })
659
510
  }
660
511
  ));
661
512
  ScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName;
662
513
 
663
514
  // src/components/select.tsx
664
- import * as React12 from "react";
515
+ import * as React7 from "react";
665
516
  import * as SelectPrimitive from "@radix-ui/react-select";
666
517
  import { Check as Check2, ChevronDown, ChevronUp } from "lucide-react";
667
- import { jsx as jsx14, jsxs as jsxs2 } from "react/jsx-runtime";
518
+ import { jsx as jsx9, jsxs as jsxs2 } from "react/jsx-runtime";
668
519
  var Select = SelectPrimitive.Root;
669
520
  var SelectGroup = SelectPrimitive.Group;
670
521
  var SelectValue = SelectPrimitive.Value;
671
- var SelectTrigger = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
522
+ var SelectTrigger = React7.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
672
523
  SelectPrimitive.Trigger,
673
524
  {
674
525
  ref,
675
526
  className: cn(
676
- "flex h-10 w-full items-center justify-between rounded-[var(--tekton-radius-md)] border border-[var(--tekton-border-input)] bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-sm ring-offset-[var(--tekton-bg-background)] placeholder:text-[var(--tekton-bg-muted-foreground)] focus:outline-none focus:ring-2 focus:ring-[var(--tekton-border-ring)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
527
+ "flex h-10 w-full items-center justify-between rounded-[var(--tekton-radius-select,var(--tekton-radius-md))] border border-[var(--tekton-border-input)] bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-sm ring-offset-[var(--tekton-bg-background)] placeholder:text-[var(--tekton-bg-muted-foreground)] focus:outline-none focus:ring-2 focus:ring-[var(--tekton-border-ring)] focus:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",
677
528
  className
678
529
  ),
679
530
  ...props,
680
531
  children: [
681
532
  children,
682
- /* @__PURE__ */ jsx14(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx14(ChevronDown, { className: "h-4 w-4 opacity-50" }) })
533
+ /* @__PURE__ */ jsx9(SelectPrimitive.Icon, { asChild: true, children: /* @__PURE__ */ jsx9(ChevronDown, { className: "h-4 w-4 opacity-50" }) })
683
534
  ]
684
535
  }
685
536
  ));
686
537
  SelectTrigger.displayName = SelectPrimitive.Trigger.displayName;
687
- var SelectScrollUpButton = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
538
+ var SelectScrollUpButton = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
688
539
  SelectPrimitive.ScrollUpButton,
689
540
  {
690
541
  ref,
691
542
  className: cn("flex cursor-default items-center justify-center py-1", className),
692
543
  ...props,
693
- children: /* @__PURE__ */ jsx14(ChevronUp, { className: "h-4 w-4" })
544
+ children: /* @__PURE__ */ jsx9(ChevronUp, { className: "h-4 w-4" })
694
545
  }
695
546
  ));
696
547
  SelectScrollUpButton.displayName = SelectPrimitive.ScrollUpButton.displayName;
697
- var SelectScrollDownButton = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
548
+ var SelectScrollDownButton = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
698
549
  SelectPrimitive.ScrollDownButton,
699
550
  {
700
551
  ref,
701
552
  className: cn("flex cursor-default items-center justify-center py-1", className),
702
553
  ...props,
703
- children: /* @__PURE__ */ jsx14(ChevronDown, { className: "h-4 w-4" })
554
+ children: /* @__PURE__ */ jsx9(ChevronDown, { className: "h-4 w-4" })
704
555
  }
705
556
  ));
706
557
  SelectScrollDownButton.displayName = SelectPrimitive.ScrollDownButton.displayName;
707
- var SelectContent = React12.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx14(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
558
+ var SelectContent = React7.forwardRef(({ className, children, position = "popper", ...props }, ref) => /* @__PURE__ */ jsx9(SelectPrimitive.Portal, { children: /* @__PURE__ */ jsxs2(
708
559
  SelectPrimitive.Content,
709
560
  {
710
561
  ref,
@@ -716,8 +567,8 @@ var SelectContent = React12.forwardRef(({ className, children, position = "poppe
716
567
  position,
717
568
  ...props,
718
569
  children: [
719
- /* @__PURE__ */ jsx14(SelectScrollUpButton, {}),
720
- /* @__PURE__ */ jsx14(
570
+ /* @__PURE__ */ jsx9(SelectScrollUpButton, {}),
571
+ /* @__PURE__ */ jsx9(
721
572
  SelectPrimitive.Viewport,
722
573
  {
723
574
  className: cn(
@@ -727,12 +578,12 @@ var SelectContent = React12.forwardRef(({ className, children, position = "poppe
727
578
  children
728
579
  }
729
580
  ),
730
- /* @__PURE__ */ jsx14(SelectScrollDownButton, {})
581
+ /* @__PURE__ */ jsx9(SelectScrollDownButton, {})
731
582
  ]
732
583
  }
733
584
  ) }));
734
585
  SelectContent.displayName = SelectPrimitive.Content.displayName;
735
- var SelectLabel = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
586
+ var SelectLabel = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
736
587
  SelectPrimitive.Label,
737
588
  {
738
589
  ref,
@@ -744,7 +595,7 @@ var SelectLabel = React12.forwardRef(({ className, ...props }, ref) => /* @__PUR
744
595
  }
745
596
  ));
746
597
  SelectLabel.displayName = SelectPrimitive.Label.displayName;
747
- var SelectItem = React12.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
598
+ var SelectItem = React7.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs2(
748
599
  SelectPrimitive.Item,
749
600
  {
750
601
  ref,
@@ -754,13 +605,13 @@ var SelectItem = React12.forwardRef(({ className, children, ...props }, ref) =>
754
605
  ),
755
606
  ...props,
756
607
  children: [
757
- /* @__PURE__ */ jsx14("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx14(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx14(Check2, { className: "h-4 w-4" }) }) }),
758
- /* @__PURE__ */ jsx14(SelectPrimitive.ItemText, { children })
608
+ /* @__PURE__ */ jsx9("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx9(SelectPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx9(Check2, { className: "h-4 w-4" }) }) }),
609
+ /* @__PURE__ */ jsx9(SelectPrimitive.ItemText, { children })
759
610
  ]
760
611
  }
761
612
  ));
762
613
  SelectItem.displayName = SelectPrimitive.Item.displayName;
763
- var SelectSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
614
+ var SelectSeparator = React7.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx9(
764
615
  SelectPrimitive.Separator,
765
616
  {
766
617
  ref,
@@ -771,15 +622,15 @@ var SelectSeparator = React12.forwardRef(({ className, ...props }, ref) => /* @_
771
622
  SelectSeparator.displayName = SelectPrimitive.Separator.displayName;
772
623
 
773
624
  // src/components/dialog.tsx
774
- import * as React13 from "react";
625
+ import * as React8 from "react";
775
626
  import * as DialogPrimitive from "@radix-ui/react-dialog";
776
627
  import { X } from "lucide-react";
777
- import { jsx as jsx15, jsxs as jsxs3 } from "react/jsx-runtime";
628
+ import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
778
629
  var Dialog = DialogPrimitive.Root;
779
630
  var DialogTrigger = DialogPrimitive.Trigger;
780
631
  var DialogPortal = DialogPrimitive.Portal;
781
632
  var DialogClose = DialogPrimitive.Close;
782
- var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
633
+ var DialogOverlay = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
783
634
  DialogPrimitive.Overlay,
784
635
  {
785
636
  ref,
@@ -791,8 +642,8 @@ var DialogOverlay = React13.forwardRef(({ className, ...props }, ref) => /* @__P
791
642
  }
792
643
  ));
793
644
  DialogOverlay.displayName = DialogPrimitive.Overlay.displayName;
794
- var DialogContent = React13.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs3(DialogPortal, { children: [
795
- /* @__PURE__ */ jsx15(DialogOverlay, {}),
645
+ var DialogContent = React8.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs3(DialogPortal, { children: [
646
+ /* @__PURE__ */ jsx10(DialogOverlay, {}),
796
647
  /* @__PURE__ */ jsxs3(
797
648
  DialogPrimitive.Content,
798
649
  {
@@ -805,17 +656,17 @@ var DialogContent = React13.forwardRef(({ className, children, ...props }, ref)
805
656
  children: [
806
657
  children,
807
658
  /* @__PURE__ */ jsxs3(DialogPrimitive.Close, { className: "absolute right-4 top-4 rounded-sm opacity-70 ring-offset-white transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-neutral-400 focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-neutral-100 data-[state=open]:text-neutral-500", children: [
808
- /* @__PURE__ */ jsx15(X, { className: "h-4 w-4" }),
809
- /* @__PURE__ */ jsx15("span", { className: "sr-only", children: "Close" })
659
+ /* @__PURE__ */ jsx10(X, { className: "h-4 w-4" }),
660
+ /* @__PURE__ */ jsx10("span", { className: "sr-only", children: "Close" })
810
661
  ] })
811
662
  ]
812
663
  }
813
664
  )
814
665
  ] }));
815
666
  DialogContent.displayName = DialogPrimitive.Content.displayName;
816
- var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx15("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
667
+ var DialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx10("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
817
668
  DialogHeader.displayName = "DialogHeader";
818
- var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx15(
669
+ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx10(
819
670
  "div",
820
671
  {
821
672
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -823,7 +674,7 @@ var DialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx15(
823
674
  }
824
675
  );
825
676
  DialogFooter.displayName = "DialogFooter";
826
- var DialogTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
677
+ var DialogTitle = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
827
678
  DialogPrimitive.Title,
828
679
  {
829
680
  ref,
@@ -832,7 +683,7 @@ var DialogTitle = React13.forwardRef(({ className, ...props }, ref) => /* @__PUR
832
683
  }
833
684
  ));
834
685
  DialogTitle.displayName = DialogPrimitive.Title.displayName;
835
- var DialogDescription = React13.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx15(
686
+ var DialogDescription = React8.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx10(
836
687
  DialogPrimitive.Description,
837
688
  {
838
689
  ref,
@@ -843,17 +694,17 @@ var DialogDescription = React13.forwardRef(({ className, ...props }, ref) => /*
843
694
  DialogDescription.displayName = DialogPrimitive.Description.displayName;
844
695
 
845
696
  // src/components/dropdown-menu.tsx
846
- import * as React14 from "react";
697
+ import * as React9 from "react";
847
698
  import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
848
699
  import { Check as Check3, ChevronRight, Circle as Circle2 } from "lucide-react";
849
- import { jsx as jsx16, jsxs as jsxs4 } from "react/jsx-runtime";
700
+ import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
850
701
  var DropdownMenu = DropdownMenuPrimitive.Root;
851
702
  var DropdownMenuTrigger = DropdownMenuPrimitive.Trigger;
852
703
  var DropdownMenuGroup = DropdownMenuPrimitive.Group;
853
704
  var DropdownMenuPortal = DropdownMenuPrimitive.Portal;
854
705
  var DropdownMenuSub = DropdownMenuPrimitive.Sub;
855
706
  var DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup;
856
- var DropdownMenuSubTrigger = React14.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
707
+ var DropdownMenuSubTrigger = React9.forwardRef(({ className, inset, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
857
708
  DropdownMenuPrimitive.SubTrigger,
858
709
  {
859
710
  ref,
@@ -865,12 +716,12 @@ var DropdownMenuSubTrigger = React14.forwardRef(({ className, inset, children, .
865
716
  ...props,
866
717
  children: [
867
718
  children,
868
- /* @__PURE__ */ jsx16(ChevronRight, { className: "ml-auto h-4 w-4" })
719
+ /* @__PURE__ */ jsx11(ChevronRight, { className: "ml-auto h-4 w-4" })
869
720
  ]
870
721
  }
871
722
  ));
872
723
  DropdownMenuSubTrigger.displayName = DropdownMenuPrimitive.SubTrigger.displayName;
873
- var DropdownMenuSubContent = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
724
+ var DropdownMenuSubContent = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
874
725
  DropdownMenuPrimitive.SubContent,
875
726
  {
876
727
  ref,
@@ -882,7 +733,7 @@ var DropdownMenuSubContent = React14.forwardRef(({ className, ...props }, ref) =
882
733
  }
883
734
  ));
884
735
  DropdownMenuSubContent.displayName = DropdownMenuPrimitive.SubContent.displayName;
885
- var DropdownMenuContent = React14.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx16(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx16(
736
+ var DropdownMenuContent = React9.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx11(DropdownMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx11(
886
737
  DropdownMenuPrimitive.Content,
887
738
  {
888
739
  ref,
@@ -895,7 +746,7 @@ var DropdownMenuContent = React14.forwardRef(({ className, sideOffset = 4, ...pr
895
746
  }
896
747
  ) }));
897
748
  DropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName;
898
- var DropdownMenuItem = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
749
+ var DropdownMenuItem = React9.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
899
750
  DropdownMenuPrimitive.Item,
900
751
  {
901
752
  ref,
@@ -908,7 +759,7 @@ var DropdownMenuItem = React14.forwardRef(({ className, inset, ...props }, ref)
908
759
  }
909
760
  ));
910
761
  DropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName;
911
- var DropdownMenuCheckboxItem = React14.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs4(
762
+ var DropdownMenuCheckboxItem = React9.forwardRef(({ className, children, checked, ...props }, ref) => /* @__PURE__ */ jsxs4(
912
763
  DropdownMenuPrimitive.CheckboxItem,
913
764
  {
914
765
  ref,
@@ -919,13 +770,13 @@ var DropdownMenuCheckboxItem = React14.forwardRef(({ className, children, checke
919
770
  checked,
920
771
  ...props,
921
772
  children: [
922
- /* @__PURE__ */ jsx16("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx16(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(Check3, { className: "h-4 w-4" }) }) }),
773
+ /* @__PURE__ */ jsx11("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx11(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(Check3, { className: "h-4 w-4" }) }) }),
923
774
  children
924
775
  ]
925
776
  }
926
777
  ));
927
778
  DropdownMenuCheckboxItem.displayName = DropdownMenuPrimitive.CheckboxItem.displayName;
928
- var DropdownMenuRadioItem = React14.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
779
+ var DropdownMenuRadioItem = React9.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs4(
929
780
  DropdownMenuPrimitive.RadioItem,
930
781
  {
931
782
  ref,
@@ -935,13 +786,13 @@ var DropdownMenuRadioItem = React14.forwardRef(({ className, children, ...props
935
786
  ),
936
787
  ...props,
937
788
  children: [
938
- /* @__PURE__ */ jsx16("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx16(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx16(Circle2, { className: "h-2 w-2 fill-current" }) }) }),
789
+ /* @__PURE__ */ jsx11("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx11(DropdownMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx11(Circle2, { className: "h-2 w-2 fill-current" }) }) }),
939
790
  children
940
791
  ]
941
792
  }
942
793
  ));
943
794
  DropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName;
944
- var DropdownMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx16(
795
+ var DropdownMenuLabel = React9.forwardRef(({ className, inset, ...props }, ref) => /* @__PURE__ */ jsx11(
945
796
  DropdownMenuPrimitive.Label,
946
797
  {
947
798
  ref,
@@ -954,7 +805,7 @@ var DropdownMenuLabel = React14.forwardRef(({ className, inset, ...props }, ref)
954
805
  }
955
806
  ));
956
807
  DropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName;
957
- var DropdownMenuSeparator = React14.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx16(
808
+ var DropdownMenuSeparator = React9.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx11(
958
809
  DropdownMenuPrimitive.Separator,
959
810
  {
960
811
  ref,
@@ -964,22 +815,22 @@ var DropdownMenuSeparator = React14.forwardRef(({ className, ...props }, ref) =>
964
815
  ));
965
816
  DropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName;
966
817
  var DropdownMenuShortcut = ({ className, ...props }) => {
967
- return /* @__PURE__ */ jsx16("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
818
+ return /* @__PURE__ */ jsx11("span", { className: cn("ml-auto text-xs tracking-widest opacity-60", className), ...props });
968
819
  };
969
820
  DropdownMenuShortcut.displayName = "DropdownMenuShortcut";
970
821
 
971
822
  // src/components/table.tsx
972
- import * as React15 from "react";
973
- import { jsx as jsx17 } from "react/jsx-runtime";
974
- var Table = React15.forwardRef(
975
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx17("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx17("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
823
+ import * as React10 from "react";
824
+ import { jsx as jsx12 } from "react/jsx-runtime";
825
+ var Table = React10.forwardRef(
826
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx12("div", { className: "relative w-full overflow-auto", children: /* @__PURE__ */ jsx12("table", { ref, className: cn("w-full caption-bottom text-sm", className), ...props }) })
976
827
  );
977
828
  Table.displayName = "Table";
978
- var TableHeader = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
829
+ var TableHeader = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12("thead", { ref, className: cn("[&_tr]:border-b", className), ...props }));
979
830
  TableHeader.displayName = "TableHeader";
980
- var TableBody = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props }));
831
+ var TableBody = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12("tbody", { ref, className: cn("[&_tr:last-child]:border-0", className), ...props }));
981
832
  TableBody.displayName = "TableBody";
982
- var TableFooter = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
833
+ var TableFooter = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
983
834
  "tfoot",
984
835
  {
985
836
  ref,
@@ -991,8 +842,8 @@ var TableFooter = React15.forwardRef(({ className, ...props }, ref) => /* @__PUR
991
842
  }
992
843
  ));
993
844
  TableFooter.displayName = "TableFooter";
994
- var TableRow = React15.forwardRef(
995
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
845
+ var TableRow = React10.forwardRef(
846
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
996
847
  "tr",
997
848
  {
998
849
  ref,
@@ -1005,7 +856,7 @@ var TableRow = React15.forwardRef(
1005
856
  )
1006
857
  );
1007
858
  TableRow.displayName = "TableRow";
1008
- var TableHead = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
859
+ var TableHead = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
1009
860
  "th",
1010
861
  {
1011
862
  ref,
@@ -1017,7 +868,7 @@ var TableHead = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE_
1017
868
  }
1018
869
  ));
1019
870
  TableHead.displayName = "TableHead";
1020
- var TableCell = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
871
+ var TableCell = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
1021
872
  "td",
1022
873
  {
1023
874
  ref,
@@ -1029,7 +880,7 @@ var TableCell = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE_
1029
880
  }
1030
881
  ));
1031
882
  TableCell.displayName = "TableCell";
1032
- var TableCaption = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
883
+ var TableCaption = React10.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx12(
1033
884
  "caption",
1034
885
  {
1035
886
  ref,
@@ -1043,11 +894,11 @@ var TableCaption = React15.forwardRef(({ className, ...props }, ref) => /* @__PU
1043
894
  TableCaption.displayName = "TableCaption";
1044
895
 
1045
896
  // src/components/tabs.tsx
1046
- import * as React16 from "react";
897
+ import * as React11 from "react";
1047
898
  import * as TabsPrimitive from "@radix-ui/react-tabs";
1048
- import { jsx as jsx18 } from "react/jsx-runtime";
899
+ import { jsx as jsx13 } from "react/jsx-runtime";
1049
900
  var Tabs = TabsPrimitive.Root;
1050
- var TabsList = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
901
+ var TabsList = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
1051
902
  TabsPrimitive.List,
1052
903
  {
1053
904
  ref,
@@ -1059,7 +910,7 @@ var TabsList = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__
1059
910
  }
1060
911
  ));
1061
912
  TabsList.displayName = TabsPrimitive.List.displayName;
1062
- var TabsTrigger = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
913
+ var TabsTrigger = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
1063
914
  TabsPrimitive.Trigger,
1064
915
  {
1065
916
  ref,
@@ -1071,7 +922,7 @@ var TabsTrigger = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
1071
922
  }
1072
923
  ));
1073
924
  TabsTrigger.displayName = TabsPrimitive.Trigger.displayName;
1074
- var TabsContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
925
+ var TabsContent = React11.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx13(
1075
926
  TabsPrimitive.Content,
1076
927
  {
1077
928
  ref,
@@ -1085,13 +936,13 @@ var TabsContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PUR
1085
936
  TabsContent.displayName = TabsPrimitive.Content.displayName;
1086
937
 
1087
938
  // src/components/toast.tsx
1088
- import * as React17 from "react";
939
+ import * as React12 from "react";
1089
940
  import * as ToastPrimitives from "@radix-ui/react-toast";
1090
- import { cva as cva4 } from "class-variance-authority";
941
+ import { cva as cva2 } from "class-variance-authority";
1091
942
  import { X as X2 } from "lucide-react";
1092
- import { jsx as jsx19 } from "react/jsx-runtime";
943
+ import { jsx as jsx14 } from "react/jsx-runtime";
1093
944
  var ToastProvider = ToastPrimitives.Provider;
1094
- var ToastViewport = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
945
+ var ToastViewport = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1095
946
  ToastPrimitives.Viewport,
1096
947
  {
1097
948
  ref,
@@ -1103,7 +954,7 @@ var ToastViewport = React17.forwardRef(({ className, ...props }, ref) => /* @__P
1103
954
  }
1104
955
  ));
1105
956
  ToastViewport.displayName = ToastPrimitives.Viewport.displayName;
1106
- var toastVariants = cva4(
957
+ var toastVariants = cva2(
1107
958
  "group pointer-events-auto relative flex w-full items-center justify-between space-x-[var(--tekton-spacing-4)] overflow-hidden rounded-[var(--tekton-radius-md)] border border-[var(--tekton-border-default)] p-[var(--tekton-spacing-6)] pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",
1108
959
  {
1109
960
  variants: {
@@ -1117,8 +968,8 @@ var toastVariants = cva4(
1117
968
  }
1118
969
  }
1119
970
  );
1120
- var Toast = React17.forwardRef(({ className, variant, ...props }, ref) => {
1121
- return /* @__PURE__ */ jsx19(
971
+ var Toast = React12.forwardRef(({ className, variant, ...props }, ref) => {
972
+ return /* @__PURE__ */ jsx14(
1122
973
  ToastPrimitives.Root,
1123
974
  {
1124
975
  ref,
@@ -1128,7 +979,7 @@ var Toast = React17.forwardRef(({ className, variant, ...props }, ref) => {
1128
979
  );
1129
980
  });
1130
981
  Toast.displayName = ToastPrimitives.Root.displayName;
1131
- var ToastAction = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
982
+ var ToastAction = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1132
983
  ToastPrimitives.Action,
1133
984
  {
1134
985
  ref,
@@ -1140,7 +991,7 @@ var ToastAction = React17.forwardRef(({ className, ...props }, ref) => /* @__PUR
1140
991
  }
1141
992
  ));
1142
993
  ToastAction.displayName = ToastPrimitives.Action.displayName;
1143
- var ToastClose = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
994
+ var ToastClose = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1144
995
  ToastPrimitives.Close,
1145
996
  {
1146
997
  ref,
@@ -1150,13 +1001,13 @@ var ToastClose = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE
1150
1001
  ),
1151
1002
  "toast-close": "",
1152
1003
  ...props,
1153
- children: /* @__PURE__ */ jsx19(X2, { className: "h-4 w-4" })
1004
+ children: /* @__PURE__ */ jsx14(X2, { className: "h-4 w-4" })
1154
1005
  }
1155
1006
  ));
1156
1007
  ToastClose.displayName = ToastPrimitives.Close.displayName;
1157
- var ToastTitle = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
1008
+ var ToastTitle = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(ToastPrimitives.Title, { ref, className: cn("text-sm font-semibold", className), ...props }));
1158
1009
  ToastTitle.displayName = ToastPrimitives.Title.displayName;
1159
- var ToastDescription = React17.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx19(
1010
+ var ToastDescription = React12.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx14(
1160
1011
  ToastPrimitives.Description,
1161
1012
  {
1162
1013
  ref,
@@ -1167,13 +1018,13 @@ var ToastDescription = React17.forwardRef(({ className, ...props }, ref) => /* @
1167
1018
  ToastDescription.displayName = ToastPrimitives.Description.displayName;
1168
1019
 
1169
1020
  // src/components/tooltip.tsx
1170
- import * as React18 from "react";
1021
+ import * as React13 from "react";
1171
1022
  import * as TooltipPrimitive from "@radix-ui/react-tooltip";
1172
- import { jsx as jsx20 } from "react/jsx-runtime";
1023
+ import { jsx as jsx15 } from "react/jsx-runtime";
1173
1024
  var TooltipProvider = TooltipPrimitive.Provider;
1174
1025
  var Tooltip = TooltipPrimitive.Root;
1175
1026
  var TooltipTrigger = TooltipPrimitive.Trigger;
1176
- var TooltipContent = React18.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx20(
1027
+ var TooltipContent = React13.forwardRef(({ className, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx15(
1177
1028
  TooltipPrimitive.Content,
1178
1029
  {
1179
1030
  ref,
@@ -1188,12 +1039,12 @@ var TooltipContent = React18.forwardRef(({ className, sideOffset = 4, ...props }
1188
1039
  TooltipContent.displayName = TooltipPrimitive.Content.displayName;
1189
1040
 
1190
1041
  // src/components/popover.tsx
1191
- import * as React19 from "react";
1042
+ import * as React14 from "react";
1192
1043
  import * as PopoverPrimitive from "@radix-ui/react-popover";
1193
- import { jsx as jsx21 } from "react/jsx-runtime";
1044
+ import { jsx as jsx16 } from "react/jsx-runtime";
1194
1045
  var Popover = PopoverPrimitive.Root;
1195
1046
  var PopoverTrigger = PopoverPrimitive.Trigger;
1196
- var PopoverContent = React19.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx21(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx21(
1047
+ var PopoverContent = React14.forwardRef(({ className, align = "center", sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx16(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx16(
1197
1048
  PopoverPrimitive.Content,
1198
1049
  {
1199
1050
  ref,
@@ -1209,16 +1060,16 @@ var PopoverContent = React19.forwardRef(({ className, align = "center", sideOffs
1209
1060
  PopoverContent.displayName = PopoverPrimitive.Content.displayName;
1210
1061
 
1211
1062
  // src/components/sheet.tsx
1212
- import * as React20 from "react";
1063
+ import * as React15 from "react";
1213
1064
  import * as SheetPrimitive from "@radix-ui/react-dialog";
1214
- import { cva as cva5 } from "class-variance-authority";
1065
+ import { cva as cva3 } from "class-variance-authority";
1215
1066
  import { X as X3 } from "lucide-react";
1216
- import { jsx as jsx22, jsxs as jsxs5 } from "react/jsx-runtime";
1067
+ import { jsx as jsx17, jsxs as jsxs5 } from "react/jsx-runtime";
1217
1068
  var Sheet = SheetPrimitive.Root;
1218
1069
  var SheetTrigger = SheetPrimitive.Trigger;
1219
1070
  var SheetClose = SheetPrimitive.Close;
1220
1071
  var SheetPortal = SheetPrimitive.Portal;
1221
- var SheetOverlay = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
1072
+ var SheetOverlay = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1222
1073
  SheetPrimitive.Overlay,
1223
1074
  {
1224
1075
  className: cn(
@@ -1230,7 +1081,7 @@ var SheetOverlay = React20.forwardRef(({ className, ...props }, ref) => /* @__PU
1230
1081
  }
1231
1082
  ));
1232
1083
  SheetOverlay.displayName = SheetPrimitive.Overlay.displayName;
1233
- var sheetVariants = cva5(
1084
+ var sheetVariants = cva3(
1234
1085
  "fixed z-50 gap-[var(--tekton-spacing-4)] bg-[var(--tekton-bg-background)] p-[var(--tekton-spacing-6)] shadow-lg transition ease-in-out data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:duration-300 data-[state=open]:duration-500",
1235
1086
  {
1236
1087
  variants: {
@@ -1246,18 +1097,18 @@ var sheetVariants = cva5(
1246
1097
  }
1247
1098
  }
1248
1099
  );
1249
- var SheetContent = React20.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(SheetPortal, { children: [
1250
- /* @__PURE__ */ jsx22(SheetOverlay, {}),
1100
+ var SheetContent = React15.forwardRef(({ side = "right", className, children, ...props }, ref) => /* @__PURE__ */ jsxs5(SheetPortal, { children: [
1101
+ /* @__PURE__ */ jsx17(SheetOverlay, {}),
1251
1102
  /* @__PURE__ */ jsxs5(SheetPrimitive.Content, { ref, className: cn(sheetVariants({ side }), className), ...props, children: [
1252
1103
  children,
1253
1104
  /* @__PURE__ */ jsxs5(SheetPrimitive.Close, { className: "absolute right-4 top-4 rounded-[var(--tekton-radius-sm)] opacity-70 ring-offset-[var(--tekton-bg-background)] transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-[var(--tekton-border-ring)] focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-[var(--tekton-bg-secondary)]", children: [
1254
- /* @__PURE__ */ jsx22(X3, { className: "h-4 w-4" }),
1255
- /* @__PURE__ */ jsx22("span", { className: "sr-only", children: "Close" })
1105
+ /* @__PURE__ */ jsx17(X3, { className: "h-4 w-4" }),
1106
+ /* @__PURE__ */ jsx17("span", { className: "sr-only", children: "Close" })
1256
1107
  ] })
1257
1108
  ] })
1258
1109
  ] }));
1259
1110
  SheetContent.displayName = SheetPrimitive.Content.displayName;
1260
- var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx22(
1111
+ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx17(
1261
1112
  "div",
1262
1113
  {
1263
1114
  className: cn(
@@ -1268,7 +1119,7 @@ var SheetHeader = ({ className, ...props }) => /* @__PURE__ */ jsx22(
1268
1119
  }
1269
1120
  );
1270
1121
  SheetHeader.displayName = "SheetHeader";
1271
- var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx22(
1122
+ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx17(
1272
1123
  "div",
1273
1124
  {
1274
1125
  className: cn(
@@ -1279,7 +1130,7 @@ var SheetFooter = ({ className, ...props }) => /* @__PURE__ */ jsx22(
1279
1130
  }
1280
1131
  );
1281
1132
  SheetFooter.displayName = "SheetFooter";
1282
- var SheetTitle = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
1133
+ var SheetTitle = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1283
1134
  SheetPrimitive.Title,
1284
1135
  {
1285
1136
  ref,
@@ -1288,7 +1139,7 @@ var SheetTitle = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE
1288
1139
  }
1289
1140
  ));
1290
1141
  SheetTitle.displayName = SheetPrimitive.Title.displayName;
1291
- var SheetDescription = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
1142
+ var SheetDescription = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx17(
1292
1143
  SheetPrimitive.Description,
1293
1144
  {
1294
1145
  ref,
@@ -1299,13 +1150,13 @@ var SheetDescription = React20.forwardRef(({ className, ...props }, ref) => /* @
1299
1150
  SheetDescription.displayName = SheetPrimitive.Description.displayName;
1300
1151
 
1301
1152
  // src/components/alert-dialog.tsx
1302
- import * as React21 from "react";
1153
+ import * as React16 from "react";
1303
1154
  import * as AlertDialogPrimitive from "@radix-ui/react-alert-dialog";
1304
- import { jsx as jsx23, jsxs as jsxs6 } from "react/jsx-runtime";
1155
+ import { jsx as jsx18, jsxs as jsxs6 } from "react/jsx-runtime";
1305
1156
  var AlertDialog = AlertDialogPrimitive.Root;
1306
1157
  var AlertDialogTrigger = AlertDialogPrimitive.Trigger;
1307
1158
  var AlertDialogPortal = AlertDialogPrimitive.Portal;
1308
- var AlertDialogOverlay = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1159
+ var AlertDialogOverlay = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1309
1160
  AlertDialogPrimitive.Overlay,
1310
1161
  {
1311
1162
  className: cn(
@@ -1317,9 +1168,9 @@ var AlertDialogOverlay = React21.forwardRef(({ className, ...props }, ref) => /*
1317
1168
  }
1318
1169
  ));
1319
1170
  AlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName;
1320
- var AlertDialogContent = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs6(AlertDialogPortal, { children: [
1321
- /* @__PURE__ */ jsx23(AlertDialogOverlay, {}),
1322
- /* @__PURE__ */ jsx23(
1171
+ var AlertDialogContent = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs6(AlertDialogPortal, { children: [
1172
+ /* @__PURE__ */ jsx18(AlertDialogOverlay, {}),
1173
+ /* @__PURE__ */ jsx18(
1323
1174
  AlertDialogPrimitive.Content,
1324
1175
  {
1325
1176
  ref,
@@ -1332,9 +1183,9 @@ var AlertDialogContent = React21.forwardRef(({ className, ...props }, ref) => /*
1332
1183
  )
1333
1184
  ] }));
1334
1185
  AlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName;
1335
- var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx23("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
1186
+ var AlertDialogHeader = ({ className, ...props }) => /* @__PURE__ */ jsx18("div", { className: cn("flex flex-col space-y-2 text-center sm:text-left", className), ...props });
1336
1187
  AlertDialogHeader.displayName = "AlertDialogHeader";
1337
- var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx23(
1188
+ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx18(
1338
1189
  "div",
1339
1190
  {
1340
1191
  className: cn("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2", className),
@@ -1342,7 +1193,7 @@ var AlertDialogFooter = ({ className, ...props }) => /* @__PURE__ */ jsx23(
1342
1193
  }
1343
1194
  );
1344
1195
  AlertDialogFooter.displayName = "AlertDialogFooter";
1345
- var AlertDialogTitle = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1196
+ var AlertDialogTitle = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1346
1197
  AlertDialogPrimitive.Title,
1347
1198
  {
1348
1199
  ref,
@@ -1351,7 +1202,7 @@ var AlertDialogTitle = React21.forwardRef(({ className, ...props }, ref) => /* @
1351
1202
  }
1352
1203
  ));
1353
1204
  AlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName;
1354
- var AlertDialogDescription = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1205
+ var AlertDialogDescription = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1355
1206
  AlertDialogPrimitive.Description,
1356
1207
  {
1357
1208
  ref,
@@ -1360,9 +1211,9 @@ var AlertDialogDescription = React21.forwardRef(({ className, ...props }, ref) =
1360
1211
  }
1361
1212
  ));
1362
1213
  AlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName;
1363
- var AlertDialogAction = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
1214
+ var AlertDialogAction = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(AlertDialogPrimitive.Action, { ref, className: cn(buttonVariants(), className), ...props }));
1364
1215
  AlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName;
1365
- var AlertDialogCancel = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1216
+ var AlertDialogCancel = React16.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx18(
1366
1217
  AlertDialogPrimitive.Cancel,
1367
1218
  {
1368
1219
  ref,
@@ -1373,10 +1224,10 @@ var AlertDialogCancel = React21.forwardRef(({ className, ...props }, ref) => /*
1373
1224
  AlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName;
1374
1225
 
1375
1226
  // src/components/progress.tsx
1376
- import * as React22 from "react";
1227
+ import * as React17 from "react";
1377
1228
  import * as ProgressPrimitive from "@radix-ui/react-progress";
1378
- import { jsx as jsx24 } from "react/jsx-runtime";
1379
- var Progress = React22.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx24(
1229
+ import { jsx as jsx19 } from "react/jsx-runtime";
1230
+ var Progress = React17.forwardRef(({ className, value, ...props }, ref) => /* @__PURE__ */ jsx19(
1380
1231
  ProgressPrimitive.Root,
1381
1232
  {
1382
1233
  ref,
@@ -1389,7 +1240,7 @@ var Progress = React22.forwardRef(({ className, value, ...props }, ref) => /* @_
1389
1240
  className
1390
1241
  ),
1391
1242
  ...props,
1392
- children: /* @__PURE__ */ jsx24(
1243
+ children: /* @__PURE__ */ jsx19(
1393
1244
  ProgressPrimitive.Indicator,
1394
1245
  {
1395
1246
  className: "h-full w-full flex-1 bg-[var(--tekton-bg-primary)] transition-all",
@@ -1401,10 +1252,10 @@ var Progress = React22.forwardRef(({ className, value, ...props }, ref) => /* @_
1401
1252
  Progress.displayName = ProgressPrimitive.Root.displayName;
1402
1253
 
1403
1254
  // src/components/sidebar.tsx
1404
- import * as React23 from "react";
1405
- import { cva as cva6 } from "class-variance-authority";
1406
- import { jsx as jsx25, jsxs as jsxs7 } from "react/jsx-runtime";
1407
- var sidebarVariants = cva6(
1255
+ import * as React18 from "react";
1256
+ import { cva as cva4 } from "class-variance-authority";
1257
+ import { jsx as jsx20, jsxs as jsxs7 } from "react/jsx-runtime";
1258
+ var sidebarVariants = cva4(
1408
1259
  "flex flex-col border-r border-[var(--tekton-border-default)] bg-[var(--tekton-bg-background)] transition-all duration-300",
1409
1260
  {
1410
1261
  variants: {
@@ -1424,7 +1275,7 @@ var sidebarVariants = cva6(
1424
1275
  }
1425
1276
  }
1426
1277
  );
1427
- var sidebarHeaderVariants = cva6(
1278
+ var sidebarHeaderVariants = cva4(
1428
1279
  "flex items-center gap-[var(--tekton-spacing-2)] border-b border-[var(--tekton-border-default)] bg-[var(--tekton-bg-card)] p-[var(--tekton-spacing-4)]",
1429
1280
  {
1430
1281
  variants: {
@@ -1439,7 +1290,7 @@ var sidebarHeaderVariants = cva6(
1439
1290
  }
1440
1291
  }
1441
1292
  );
1442
- var sidebarContentVariants = cva6("flex-1 overflow-y-auto p-[var(--tekton-spacing-4)]", {
1293
+ var sidebarContentVariants = cva4("flex-1 overflow-y-auto p-[var(--tekton-spacing-4)]", {
1443
1294
  variants: {
1444
1295
  spacing: {
1445
1296
  default: "space-y-[var(--tekton-spacing-2)]",
@@ -1451,7 +1302,7 @@ var sidebarContentVariants = cva6("flex-1 overflow-y-auto p-[var(--tekton-spacin
1451
1302
  spacing: "default"
1452
1303
  }
1453
1304
  });
1454
- var sidebarItemVariants = cva6(
1305
+ var sidebarItemVariants = cva4(
1455
1306
  "flex w-full items-center gap-[var(--tekton-spacing-3)] rounded-[var(--tekton-radius-md)] px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
1456
1307
  {
1457
1308
  variants: {
@@ -1465,24 +1316,24 @@ var sidebarItemVariants = cva6(
1465
1316
  }
1466
1317
  }
1467
1318
  );
1468
- var sidebarSectionVariants = cva6("space-y-[var(--tekton-spacing-1)]", {
1319
+ var sidebarSectionVariants = cva4("space-y-[var(--tekton-spacing-1)]", {
1469
1320
  variants: {}
1470
1321
  });
1471
- var sidebarSectionTitleVariants = cva6(
1322
+ var sidebarSectionTitleVariants = cva4(
1472
1323
  "px-[var(--tekton-spacing-3)] py-[var(--tekton-spacing-2)] text-xs font-semibold uppercase tracking-wider text-[var(--tekton-text-muted-foreground)]",
1473
1324
  {
1474
1325
  variants: {}
1475
1326
  }
1476
1327
  );
1477
- var sidebarFooterVariants = cva6(
1328
+ var sidebarFooterVariants = cva4(
1478
1329
  "border-t border-[var(--tekton-border-default)] p-[var(--tekton-spacing-4)]",
1479
1330
  {
1480
1331
  variants: {}
1481
1332
  }
1482
1333
  );
1483
- var Sidebar = React23.forwardRef(
1334
+ var Sidebar = React18.forwardRef(
1484
1335
  ({ className, variant, size, collapsed, ...props }, ref) => {
1485
- return /* @__PURE__ */ jsx25(
1336
+ return /* @__PURE__ */ jsx20(
1486
1337
  "div",
1487
1338
  {
1488
1339
  ref,
@@ -1495,19 +1346,19 @@ var Sidebar = React23.forwardRef(
1495
1346
  }
1496
1347
  );
1497
1348
  Sidebar.displayName = "Sidebar";
1498
- var SidebarHeader = React23.forwardRef(
1349
+ var SidebarHeader = React18.forwardRef(
1499
1350
  ({ className, size, ...props }, ref) => {
1500
- return /* @__PURE__ */ jsx25("div", { ref, className: cn(sidebarHeaderVariants({ size, className })), ...props });
1351
+ return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarHeaderVariants({ size, className })), ...props });
1501
1352
  }
1502
1353
  );
1503
1354
  SidebarHeader.displayName = "SidebarHeader";
1504
- var SidebarContent = React23.forwardRef(
1355
+ var SidebarContent = React18.forwardRef(
1505
1356
  ({ className, spacing, ...props }, ref) => {
1506
- return /* @__PURE__ */ jsx25("div", { ref, className: cn(sidebarContentVariants({ spacing, className })), ...props });
1357
+ return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarContentVariants({ spacing, className })), ...props });
1507
1358
  }
1508
1359
  );
1509
1360
  SidebarContent.displayName = "SidebarContent";
1510
- var SidebarItem = React23.forwardRef(
1361
+ var SidebarItem = React18.forwardRef(
1511
1362
  ({ className, variant, icon, badge, children, active, ...props }, ref) => {
1512
1363
  return /* @__PURE__ */ jsxs7(
1513
1364
  "button",
@@ -1516,25 +1367,25 @@ var SidebarItem = React23.forwardRef(
1516
1367
  className: cn(sidebarItemVariants({ variant: active ? "active" : variant, className })),
1517
1368
  ...props,
1518
1369
  children: [
1519
- icon && /* @__PURE__ */ jsx25("span", { className: "flex-shrink-0", children: icon }),
1520
- /* @__PURE__ */ jsx25("span", { className: "flex-1 truncate text-left", children }),
1521
- badge && /* @__PURE__ */ jsx25("span", { className: "flex-shrink-0", children: badge })
1370
+ icon && /* @__PURE__ */ jsx20("span", { className: "flex-shrink-0", children: icon }),
1371
+ /* @__PURE__ */ jsx20("span", { className: "flex-1 truncate text-left", children }),
1372
+ badge && /* @__PURE__ */ jsx20("span", { className: "flex-shrink-0", children: badge })
1522
1373
  ]
1523
1374
  }
1524
1375
  );
1525
1376
  }
1526
1377
  );
1527
1378
  SidebarItem.displayName = "SidebarItem";
1528
- var SidebarSection = React23.forwardRef(
1379
+ var SidebarSection = React18.forwardRef(
1529
1380
  ({ className, title, collapsed, children, ...props }, ref) => {
1530
- const [isCollapsed, setIsCollapsed] = React23.useState(collapsed ?? false);
1531
- React23.useEffect(() => {
1381
+ const [isCollapsed, setIsCollapsed] = React18.useState(collapsed ?? false);
1382
+ React18.useEffect(() => {
1532
1383
  if (collapsed !== void 0) {
1533
1384
  setIsCollapsed(collapsed);
1534
1385
  }
1535
1386
  }, [collapsed]);
1536
1387
  return /* @__PURE__ */ jsxs7("div", { ref, className: cn(sidebarSectionVariants({ className })), ...props, children: [
1537
- title && /* @__PURE__ */ jsx25(
1388
+ title && /* @__PURE__ */ jsx20(
1538
1389
  "button",
1539
1390
  {
1540
1391
  className: cn(
@@ -1545,7 +1396,7 @@ var SidebarSection = React23.forwardRef(
1545
1396
  "aria-expanded": !isCollapsed,
1546
1397
  children: /* @__PURE__ */ jsxs7("span", { className: "flex items-center justify-between", children: [
1547
1398
  title,
1548
- /* @__PURE__ */ jsx25(
1399
+ /* @__PURE__ */ jsx20(
1549
1400
  "span",
1550
1401
  {
1551
1402
  className: cn("transition-transform", isCollapsed ? "rotate-0" : "rotate-90"),
@@ -1556,30 +1407,30 @@ var SidebarSection = React23.forwardRef(
1556
1407
  ] })
1557
1408
  }
1558
1409
  ),
1559
- !isCollapsed && /* @__PURE__ */ jsx25("div", { className: "space-y-[var(--tekton-spacing-1)]", children })
1410
+ !isCollapsed && /* @__PURE__ */ jsx20("div", { className: "space-y-[var(--tekton-spacing-1)]", children })
1560
1411
  ] });
1561
1412
  }
1562
1413
  );
1563
1414
  SidebarSection.displayName = "SidebarSection";
1564
- var SidebarSectionTitle = React23.forwardRef(
1415
+ var SidebarSectionTitle = React18.forwardRef(
1565
1416
  ({ className, ...props }, ref) => {
1566
- return /* @__PURE__ */ jsx25("div", { ref, className: cn(sidebarSectionTitleVariants({ className })), ...props });
1417
+ return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarSectionTitleVariants({ className })), ...props });
1567
1418
  }
1568
1419
  );
1569
1420
  SidebarSectionTitle.displayName = "SidebarSectionTitle";
1570
- var SidebarFooter = React23.forwardRef(
1421
+ var SidebarFooter = React18.forwardRef(
1571
1422
  ({ className, ...props }, ref) => {
1572
- return /* @__PURE__ */ jsx25("div", { ref, className: cn(sidebarFooterVariants({ className })), ...props });
1423
+ return /* @__PURE__ */ jsx20("div", { ref, className: cn(sidebarFooterVariants({ className })), ...props });
1573
1424
  }
1574
1425
  );
1575
1426
  SidebarFooter.displayName = "SidebarFooter";
1576
1427
 
1577
1428
  // src/components/navigation-menu.tsx
1578
- import * as React24 from "react";
1429
+ import * as React19 from "react";
1579
1430
  import * as NavigationMenuPrimitive from "@radix-ui/react-navigation-menu";
1580
- import { cva as cva7 } from "class-variance-authority";
1581
- import { jsx as jsx26, jsxs as jsxs8 } from "react/jsx-runtime";
1582
- var NavigationMenu = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1431
+ import { cva as cva5 } from "class-variance-authority";
1432
+ import { jsx as jsx21, jsxs as jsxs8 } from "react/jsx-runtime";
1433
+ var NavigationMenu = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1583
1434
  NavigationMenuPrimitive.Root,
1584
1435
  {
1585
1436
  ref,
@@ -1587,12 +1438,12 @@ var NavigationMenu = React24.forwardRef(({ className, children, ...props }, ref)
1587
1438
  ...props,
1588
1439
  children: [
1589
1440
  children,
1590
- /* @__PURE__ */ jsx26(NavigationMenuViewport, {})
1441
+ /* @__PURE__ */ jsx21(NavigationMenuViewport, {})
1591
1442
  ]
1592
1443
  }
1593
1444
  ));
1594
1445
  NavigationMenu.displayName = NavigationMenuPrimitive.Root.displayName;
1595
- var NavigationMenuList = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
1446
+ var NavigationMenuList = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1596
1447
  NavigationMenuPrimitive.List,
1597
1448
  {
1598
1449
  ref,
@@ -1605,10 +1456,10 @@ var NavigationMenuList = React24.forwardRef(({ className, ...props }, ref) => /*
1605
1456
  ));
1606
1457
  NavigationMenuList.displayName = NavigationMenuPrimitive.List.displayName;
1607
1458
  var NavigationMenuItem = NavigationMenuPrimitive.Item;
1608
- var navigationMenuTriggerStyle = cva7(
1459
+ var navigationMenuTriggerStyle = cva5(
1609
1460
  "group inline-flex h-10 w-max items-center justify-center rounded-[var(--tekton-radius-md)] bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-4)] py-[var(--tekton-spacing-2)] text-sm font-medium transition-colors hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)] focus:bg-[var(--tekton-bg-accent)] focus:text-[var(--tekton-bg-accent-foreground)] focus:outline-none disabled:pointer-events-none disabled:opacity-50 data-[active]:bg-[var(--tekton-bg-accent)]/50 data-[state=open]:bg-[var(--tekton-bg-accent)]/50"
1610
1461
  );
1611
- var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1462
+ var NavigationMenuTrigger = React19.forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsxs8(
1612
1463
  NavigationMenuPrimitive.Trigger,
1613
1464
  {
1614
1465
  ref,
@@ -1617,7 +1468,7 @@ var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props
1617
1468
  children: [
1618
1469
  children,
1619
1470
  " ",
1620
- /* @__PURE__ */ jsx26(
1471
+ /* @__PURE__ */ jsx21(
1621
1472
  "svg",
1622
1473
  {
1623
1474
  width: "12",
@@ -1627,7 +1478,7 @@ var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props
1627
1478
  xmlns: "http://www.w3.org/2000/svg",
1628
1479
  className: "relative top-[1px] ml-1 h-3 w-3 transition duration-200 group-data-[state=open]:rotate-180",
1629
1480
  "aria-hidden": "true",
1630
- children: /* @__PURE__ */ jsx26(
1481
+ children: /* @__PURE__ */ jsx21(
1631
1482
  "path",
1632
1483
  {
1633
1484
  d: "M2.5 4.5L6 8L9.5 4.5",
@@ -1643,7 +1494,7 @@ var NavigationMenuTrigger = React24.forwardRef(({ className, children, ...props
1643
1494
  }
1644
1495
  ));
1645
1496
  NavigationMenuTrigger.displayName = NavigationMenuPrimitive.Trigger.displayName;
1646
- var NavigationMenuContent = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
1497
+ var NavigationMenuContent = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1647
1498
  NavigationMenuPrimitive.Content,
1648
1499
  {
1649
1500
  ref,
@@ -1656,7 +1507,7 @@ var NavigationMenuContent = React24.forwardRef(({ className, ...props }, ref) =>
1656
1507
  ));
1657
1508
  NavigationMenuContent.displayName = NavigationMenuPrimitive.Content.displayName;
1658
1509
  var NavigationMenuLink = NavigationMenuPrimitive.Link;
1659
- var NavigationMenuViewport = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx26(
1510
+ var NavigationMenuViewport = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21("div", { className: cn("absolute left-0 top-full flex justify-center"), children: /* @__PURE__ */ jsx21(
1660
1511
  NavigationMenuPrimitive.Viewport,
1661
1512
  {
1662
1513
  className: cn(
@@ -1668,7 +1519,7 @@ var NavigationMenuViewport = React24.forwardRef(({ className, ...props }, ref) =
1668
1519
  }
1669
1520
  ) }));
1670
1521
  NavigationMenuViewport.displayName = NavigationMenuPrimitive.Viewport.displayName;
1671
- var NavigationMenuIndicator = React24.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx26(
1522
+ var NavigationMenuIndicator = React19.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx21(
1672
1523
  NavigationMenuPrimitive.Indicator,
1673
1524
  {
1674
1525
  ref,
@@ -1677,16 +1528,16 @@ var NavigationMenuIndicator = React24.forwardRef(({ className, ...props }, ref)
1677
1528
  className
1678
1529
  ),
1679
1530
  ...props,
1680
- children: /* @__PURE__ */ jsx26("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-[var(--tekton-border-default)] shadow-md" })
1531
+ children: /* @__PURE__ */ jsx21("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-[var(--tekton-border-default)] shadow-md" })
1681
1532
  }
1682
1533
  ));
1683
1534
  NavigationMenuIndicator.displayName = NavigationMenuPrimitive.Indicator.displayName;
1684
1535
 
1685
1536
  // src/components/breadcrumb.tsx
1686
- import * as React25 from "react";
1687
- import { cva as cva8 } from "class-variance-authority";
1688
- import { jsx as jsx27, jsxs as jsxs9 } from "react/jsx-runtime";
1689
- var breadcrumbVariants = cva8("flex items-center gap-[var(--tekton-spacing-2)]", {
1537
+ import * as React20 from "react";
1538
+ import { cva as cva6 } from "class-variance-authority";
1539
+ import { jsx as jsx22, jsxs as jsxs9 } from "react/jsx-runtime";
1540
+ var breadcrumbVariants = cva6("flex items-center gap-[var(--tekton-spacing-2)]", {
1690
1541
  variants: {
1691
1542
  size: {
1692
1543
  sm: "text-xs",
@@ -1698,13 +1549,13 @@ var breadcrumbVariants = cva8("flex items-center gap-[var(--tekton-spacing-2)]",
1698
1549
  size: "default"
1699
1550
  }
1700
1551
  });
1701
- var breadcrumbListVariants = cva8("flex flex-wrap items-center gap-1.5 break-words", {
1552
+ var breadcrumbListVariants = cva6("flex flex-wrap items-center gap-1.5 break-words", {
1702
1553
  variants: {}
1703
1554
  });
1704
- var breadcrumbItemVariants = cva8("inline-flex items-center gap-1.5", {
1555
+ var breadcrumbItemVariants = cva6("inline-flex items-center gap-1.5", {
1705
1556
  variants: {}
1706
1557
  });
1707
- var breadcrumbLinkVariants = cva8(
1558
+ var breadcrumbLinkVariants = cva6(
1708
1559
  "transition-colors hover:text-[var(--tekton-bg-foreground)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 rounded-[var(--tekton-radius-sm)]",
1709
1560
  {
1710
1561
  variants: {
@@ -1718,18 +1569,18 @@ var breadcrumbLinkVariants = cva8(
1718
1569
  }
1719
1570
  }
1720
1571
  );
1721
- var breadcrumbSeparatorVariants = cva8("text-[var(--tekton-text-muted-foreground)] select-none", {
1572
+ var breadcrumbSeparatorVariants = cva6("text-[var(--tekton-text-muted-foreground)] select-none", {
1722
1573
  variants: {}
1723
1574
  });
1724
- var breadcrumbEllipsisVariants = cva8(
1575
+ var breadcrumbEllipsisVariants = cva6(
1725
1576
  "inline-flex h-9 w-9 items-center justify-center text-[var(--tekton-text-muted-foreground)]",
1726
1577
  {
1727
1578
  variants: {}
1728
1579
  }
1729
1580
  );
1730
- var Breadcrumb = React25.forwardRef(
1581
+ var Breadcrumb = React20.forwardRef(
1731
1582
  ({ className, size, separator: _separator = "/", ...props }, ref) => {
1732
- return /* @__PURE__ */ jsx27(
1583
+ return /* @__PURE__ */ jsx22(
1733
1584
  "nav",
1734
1585
  {
1735
1586
  ref,
@@ -1741,18 +1592,18 @@ var Breadcrumb = React25.forwardRef(
1741
1592
  }
1742
1593
  );
1743
1594
  Breadcrumb.displayName = "Breadcrumb";
1744
- var BreadcrumbList = React25.forwardRef(
1745
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx27("ol", { ref, className: cn(breadcrumbListVariants({ className })), ...props })
1595
+ var BreadcrumbList = React20.forwardRef(
1596
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx22("ol", { ref, className: cn(breadcrumbListVariants({ className })), ...props })
1746
1597
  );
1747
1598
  BreadcrumbList.displayName = "BreadcrumbList";
1748
- var BreadcrumbItem = React25.forwardRef(
1749
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx27("li", { ref, className: cn(breadcrumbItemVariants({ className })), ...props })
1599
+ var BreadcrumbItem = React20.forwardRef(
1600
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx22("li", { ref, className: cn(breadcrumbItemVariants({ className })), ...props })
1750
1601
  );
1751
1602
  BreadcrumbItem.displayName = "BreadcrumbItem";
1752
- var BreadcrumbLink = React25.forwardRef(
1603
+ var BreadcrumbLink = React20.forwardRef(
1753
1604
  ({ className, active, asChild = false, ...props }, ref) => {
1754
- const Comp = asChild ? React25.Fragment : "a";
1755
- return /* @__PURE__ */ jsx27(
1605
+ const Comp = asChild ? React20.Fragment : "a";
1606
+ return /* @__PURE__ */ jsx22(
1756
1607
  Comp,
1757
1608
  {
1758
1609
  ref: asChild ? void 0 : ref,
@@ -1765,8 +1616,8 @@ var BreadcrumbLink = React25.forwardRef(
1765
1616
  }
1766
1617
  );
1767
1618
  BreadcrumbLink.displayName = "BreadcrumbLink";
1768
- var BreadcrumbPage = React25.forwardRef(
1769
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx27(
1619
+ var BreadcrumbPage = React20.forwardRef(
1620
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx22(
1770
1621
  "span",
1771
1622
  {
1772
1623
  ref,
@@ -1783,8 +1634,8 @@ var BreadcrumbPage = React25.forwardRef(
1783
1634
  )
1784
1635
  );
1785
1636
  BreadcrumbPage.displayName = "BreadcrumbPage";
1786
- var BreadcrumbSeparator = React25.forwardRef(
1787
- ({ children, className, ...props }, ref) => /* @__PURE__ */ jsx27(
1637
+ var BreadcrumbSeparator = React20.forwardRef(
1638
+ ({ children, className, ...props }, ref) => /* @__PURE__ */ jsx22(
1788
1639
  "li",
1789
1640
  {
1790
1641
  ref,
@@ -1797,7 +1648,7 @@ var BreadcrumbSeparator = React25.forwardRef(
1797
1648
  )
1798
1649
  );
1799
1650
  BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
1800
- var BreadcrumbEllipsis = React25.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs9(
1651
+ var BreadcrumbEllipsis = React20.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs9(
1801
1652
  "span",
1802
1653
  {
1803
1654
  ref,
@@ -1806,7 +1657,7 @@ var BreadcrumbEllipsis = React25.forwardRef(({ className, ...props }, ref) => /*
1806
1657
  className: cn(breadcrumbEllipsisVariants({ className })),
1807
1658
  ...props,
1808
1659
  children: [
1809
- /* @__PURE__ */ jsx27(
1660
+ /* @__PURE__ */ jsx22(
1810
1661
  "svg",
1811
1662
  {
1812
1663
  width: "15",
@@ -1815,7 +1666,7 @@ var BreadcrumbEllipsis = React25.forwardRef(({ className, ...props }, ref) => /*
1815
1666
  fill: "none",
1816
1667
  xmlns: "http://www.w3.org/2000/svg",
1817
1668
  "aria-hidden": "true",
1818
- children: /* @__PURE__ */ jsx27(
1669
+ children: /* @__PURE__ */ jsx22(
1819
1670
  "path",
1820
1671
  {
1821
1672
  d: "M3.625 7.5C3.625 8.12132 3.12132 8.625 2.5 8.625C1.87868 8.625 1.375 8.12132 1.375 7.5C1.375 6.87868 1.87868 6.375 2.5 6.375C3.12132 6.375 3.625 6.87868 3.625 7.5ZM8.625 7.5C8.625 8.12132 8.12132 8.625 7.5 8.625C6.87868 8.625 6.375 8.12132 6.375 7.5C6.375 6.87868 6.87868 6.375 7.5 6.375C8.12132 6.375 8.625 6.87868 8.625 7.5ZM12.5 8.625C13.1213 8.625 13.625 8.12132 13.625 7.5C13.625 6.87868 13.1213 6.375 12.5 6.375C11.8787 6.375 11.375 6.87868 11.375 7.5C11.375 8.12132 11.8787 8.625 12.5 8.625Z",
@@ -1826,17 +1677,17 @@ var BreadcrumbEllipsis = React25.forwardRef(({ className, ...props }, ref) => /*
1826
1677
  )
1827
1678
  }
1828
1679
  ),
1829
- /* @__PURE__ */ jsx27("span", { className: "sr-only", children: "More" })
1680
+ /* @__PURE__ */ jsx22("span", { className: "sr-only", children: "More" })
1830
1681
  ]
1831
1682
  }
1832
1683
  ));
1833
1684
  BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
1834
1685
 
1835
1686
  // src/components/command.tsx
1836
- import * as React26 from "react";
1687
+ import * as React21 from "react";
1837
1688
  import { Command as CommandPrimitive } from "cmdk";
1838
- import { jsx as jsx28, jsxs as jsxs10 } from "react/jsx-runtime";
1839
- var Command = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
1689
+ import { jsx as jsx23, jsxs as jsxs10 } from "react/jsx-runtime";
1690
+ var Command = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1840
1691
  CommandPrimitive,
1841
1692
  {
1842
1693
  ref,
@@ -1852,24 +1703,24 @@ var CommandDialog = ({
1852
1703
  children,
1853
1704
  ...props
1854
1705
  }) => {
1855
- return /* @__PURE__ */ jsx28(
1706
+ return /* @__PURE__ */ jsx23(
1856
1707
  CommandPrimitive.Dialog,
1857
1708
  {
1858
1709
  ...props,
1859
1710
  className: cn(
1860
1711
  "fixed inset-0 z-50 bg-[var(--tekton-bg-background)]/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0"
1861
1712
  ),
1862
- children: /* @__PURE__ */ jsx28("div", { className: "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-background)] p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", children: /* @__PURE__ */ jsx28(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-[var(--tekton-text-muted-foreground)] [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) })
1713
+ children: /* @__PURE__ */ jsx23("div", { className: "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-[var(--tekton-border-default)] bg-[var(--tekton-bg-background)] p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg", children: /* @__PURE__ */ jsx23(Command, { className: "[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-[var(--tekton-text-muted-foreground)] [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5", children }) })
1863
1714
  }
1864
1715
  );
1865
1716
  };
1866
- var CommandInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs10(
1717
+ var CommandInput = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs10(
1867
1718
  "div",
1868
1719
  {
1869
1720
  className: "flex items-center border-b border-[var(--tekton-border-default)] px-3",
1870
1721
  "cmdk-input-wrapper": "",
1871
1722
  children: [
1872
- /* @__PURE__ */ jsx28(
1723
+ /* @__PURE__ */ jsx23(
1873
1724
  "svg",
1874
1725
  {
1875
1726
  width: "15",
@@ -1878,7 +1729,7 @@ var CommandInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PU
1878
1729
  fill: "none",
1879
1730
  xmlns: "http://www.w3.org/2000/svg",
1880
1731
  className: "mr-2 h-4 w-4 shrink-0 opacity-50",
1881
- children: /* @__PURE__ */ jsx28(
1732
+ children: /* @__PURE__ */ jsx23(
1882
1733
  "path",
1883
1734
  {
1884
1735
  d: "M10 6.5C10 8.433 8.433 10 6.5 10C4.567 10 3 8.433 3 6.5C3 4.567 4.567 3 6.5 3C8.433 3 10 4.567 10 6.5ZM9.30884 10.0159C8.53901 10.6318 7.56251 11 6.5 11C4.01472 11 2 8.98528 2 6.5C2 4.01472 4.01472 2 6.5 2C8.98528 2 11 4.01472 11 6.5C11 7.56251 10.6318 8.53901 10.0159 9.30884L12.8536 12.1464C13.0488 12.3417 13.0488 12.6583 12.8536 12.8536C12.6583 13.0488 12.3417 13.0488 12.1464 12.8536L9.30884 10.0159Z",
@@ -1889,7 +1740,7 @@ var CommandInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PU
1889
1740
  )
1890
1741
  }
1891
1742
  ),
1892
- /* @__PURE__ */ jsx28(
1743
+ /* @__PURE__ */ jsx23(
1893
1744
  CommandPrimitive.Input,
1894
1745
  {
1895
1746
  ref,
@@ -1904,7 +1755,7 @@ var CommandInput = React26.forwardRef(({ className, ...props }, ref) => /* @__PU
1904
1755
  }
1905
1756
  ));
1906
1757
  CommandInput.displayName = CommandPrimitive.Input.displayName;
1907
- var CommandList = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
1758
+ var CommandList = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1908
1759
  CommandPrimitive.List,
1909
1760
  {
1910
1761
  ref,
@@ -1913,7 +1764,7 @@ var CommandList = React26.forwardRef(({ className, ...props }, ref) => /* @__PUR
1913
1764
  }
1914
1765
  ));
1915
1766
  CommandList.displayName = CommandPrimitive.List.displayName;
1916
- var CommandEmpty = React26.forwardRef((props, ref) => /* @__PURE__ */ jsx28(
1767
+ var CommandEmpty = React21.forwardRef((props, ref) => /* @__PURE__ */ jsx23(
1917
1768
  CommandPrimitive.Empty,
1918
1769
  {
1919
1770
  ref,
@@ -1922,7 +1773,7 @@ var CommandEmpty = React26.forwardRef((props, ref) => /* @__PURE__ */ jsx28(
1922
1773
  }
1923
1774
  ));
1924
1775
  CommandEmpty.displayName = CommandPrimitive.Empty.displayName;
1925
- var CommandGroup = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
1776
+ var CommandGroup = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1926
1777
  CommandPrimitive.Group,
1927
1778
  {
1928
1779
  ref,
@@ -1934,7 +1785,7 @@ var CommandGroup = React26.forwardRef(({ className, ...props }, ref) => /* @__PU
1934
1785
  }
1935
1786
  ));
1936
1787
  CommandGroup.displayName = CommandPrimitive.Group.displayName;
1937
- var CommandSeparator = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
1788
+ var CommandSeparator = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1938
1789
  CommandPrimitive.Separator,
1939
1790
  {
1940
1791
  ref,
@@ -1943,7 +1794,7 @@ var CommandSeparator = React26.forwardRef(({ className, ...props }, ref) => /* @
1943
1794
  }
1944
1795
  ));
1945
1796
  CommandSeparator.displayName = CommandPrimitive.Separator.displayName;
1946
- var CommandItem = React26.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx28(
1797
+ var CommandItem = React21.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx23(
1947
1798
  CommandPrimitive.Item,
1948
1799
  {
1949
1800
  ref,
@@ -1956,7 +1807,7 @@ var CommandItem = React26.forwardRef(({ className, ...props }, ref) => /* @__PUR
1956
1807
  ));
1957
1808
  CommandItem.displayName = CommandPrimitive.Item.displayName;
1958
1809
  var CommandShortcut = ({ className, ...props }) => {
1959
- return /* @__PURE__ */ jsx28(
1810
+ return /* @__PURE__ */ jsx23(
1960
1811
  "span",
1961
1812
  {
1962
1813
  className: cn(
@@ -1971,28 +1822,29 @@ CommandShortcut.displayName = "CommandShortcut";
1971
1822
 
1972
1823
  // src/components/calendar.tsx
1973
1824
  import { DayPicker } from "react-day-picker";
1974
- import { jsx as jsx29 } from "react/jsx-runtime";
1825
+ import { jsx as jsx24 } from "react/jsx-runtime";
1975
1826
  function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
1976
- return /* @__PURE__ */ jsx29(
1827
+ return /* @__PURE__ */ jsx24(
1977
1828
  DayPicker,
1978
1829
  {
1979
1830
  showOutsideDays,
1980
1831
  className: cn("p-3", className),
1981
1832
  classNames: {
1982
1833
  months: "relative flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0 w-full",
1983
- month: "space-y-4 w-full relative",
1984
- month_caption: "flex justify-center items-center h-9 relative",
1834
+ month: "space-y-4 w-full",
1835
+ caption: "relative flex justify-center items-center h-9 w-full",
1836
+ month_caption: "flex items-center",
1985
1837
  caption_label: "text-sm font-black text-[var(--tekton-bg-foreground)]",
1986
- nav: "absolute top-0 inset-x-0 flex items-center justify-between h-9 z-10 px-2",
1838
+ nav: "absolute inset-0 flex items-center justify-between pointer-events-none z-10 px-2",
1987
1839
  button_previous: cn(
1988
1840
  "inline-flex items-center justify-center whitespace-nowrap rounded-[var(--tekton-radius-md)] text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
1989
1841
  "hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
1990
- "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
1842
+ "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 pointer-events-auto"
1991
1843
  ),
1992
1844
  button_next: cn(
1993
1845
  "inline-flex items-center justify-center whitespace-nowrap rounded-[var(--tekton-radius-md)] text-sm font-medium ring-offset-[var(--tekton-bg-background)] transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--tekton-border-ring)] focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
1994
1846
  "hover:bg-[var(--tekton-bg-accent)] hover:text-[var(--tekton-bg-accent-foreground)]",
1995
- "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100"
1847
+ "h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100 pointer-events-auto"
1996
1848
  ),
1997
1849
  month_grid: "w-full border-collapse space-y-1",
1998
1850
  weekdays: "flex w-full",
@@ -2016,7 +1868,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
2016
1868
  components: {
2017
1869
  Chevron: ({ orientation }) => {
2018
1870
  if (orientation === "left") {
2019
- return /* @__PURE__ */ jsx29(
1871
+ return /* @__PURE__ */ jsx24(
2020
1872
  "svg",
2021
1873
  {
2022
1874
  width: "15",
@@ -2025,7 +1877,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
2025
1877
  fill: "none",
2026
1878
  xmlns: "http://www.w3.org/2000/svg",
2027
1879
  className: "h-4 w-4",
2028
- children: /* @__PURE__ */ jsx29(
1880
+ children: /* @__PURE__ */ jsx24(
2029
1881
  "path",
2030
1882
  {
2031
1883
  d: "M8.84182 3.13514C9.04327 3.32401 9.05348 3.64042 8.86462 3.84188L5.43521 7.49991L8.86462 11.1579C9.05348 11.3594 9.04327 11.6758 8.84182 11.8647C8.64036 12.0535 8.32394 12.0433 8.13508 11.8419L4.38508 7.84188C4.20477 7.64955 4.20477 7.35027 4.38508 7.15794L8.13508 3.15794C8.32394 2.95648 8.64036 2.94628 8.84182 3.13514Z",
@@ -2037,7 +1889,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
2037
1889
  }
2038
1890
  );
2039
1891
  }
2040
- return /* @__PURE__ */ jsx29(
1892
+ return /* @__PURE__ */ jsx24(
2041
1893
  "svg",
2042
1894
  {
2043
1895
  width: "15",
@@ -2046,7 +1898,7 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
2046
1898
  fill: "none",
2047
1899
  xmlns: "http://www.w3.org/2000/svg",
2048
1900
  className: "h-4 w-4",
2049
- children: /* @__PURE__ */ jsx29(
1901
+ children: /* @__PURE__ */ jsx24(
2050
1902
  "path",
2051
1903
  {
2052
1904
  d: "M6.1584 3.13508C6.35985 2.94621 6.67627 2.95642 6.86514 3.15788L10.6151 7.15788C10.7954 7.3502 10.7954 7.64949 10.6151 7.84182L6.86514 11.8418C6.67627 12.0433 6.35985 12.0535 6.1584 11.8646C5.95694 11.6757 5.94673 11.3593 6.1356 11.1579L9.565 7.49985L6.1356 3.84182C5.94673 3.64036 5.95694 3.32394 6.1584 3.13508Z",
@@ -2064,1259 +1916,6 @@ function Calendar({ className, classNames, showOutsideDays = true, ...props }) {
2064
1916
  );
2065
1917
  }
2066
1918
  Calendar.displayName = "Calendar";
2067
-
2068
- // src/templates/types.ts
2069
- var DEFAULT_RESPONSIVE_LAYOUT = {
2070
- mobile: {
2071
- padding: "var(--tekton-layout-padding-mobile)",
2072
- // 16px
2073
- gap: "var(--tekton-layout-gap-mobile)",
2074
- // 16px
2075
- columns: 4
2076
- },
2077
- tablet: {
2078
- padding: "var(--tekton-layout-padding-tablet)",
2079
- // 32px
2080
- gap: "var(--tekton-layout-gap-tablet)",
2081
- // 24px
2082
- columns: 8
2083
- },
2084
- desktop: {
2085
- padding: "var(--tekton-layout-padding-desktop)",
2086
- // 64px
2087
- gap: "var(--tekton-layout-gap-desktop)",
2088
- // 32px
2089
- columns: 12
2090
- }
2091
- };
2092
- var DEFAULT_BREAKPOINTS = {
2093
- mobile: 768,
2094
- tablet: 1024,
2095
- desktop: 1024
2096
- };
2097
-
2098
- // src/templates/registry.ts
2099
- var TemplateRegistry = class _TemplateRegistry {
2100
- static instance;
2101
- templates;
2102
- constructor() {
2103
- this.templates = /* @__PURE__ */ new Map();
2104
- }
2105
- /**
2106
- * Get singleton instance
2107
- */
2108
- static getInstance() {
2109
- if (!_TemplateRegistry.instance) {
2110
- _TemplateRegistry.instance = new _TemplateRegistry();
2111
- }
2112
- return _TemplateRegistry.instance;
2113
- }
2114
- /**
2115
- * Register a template
2116
- */
2117
- register(template) {
2118
- if (this.templates.has(template.id)) {
2119
- console.warn(`Template "${template.id}" is already registered. Overwriting.`);
2120
- }
2121
- this.templates.set(template.id, {
2122
- template,
2123
- metadata: {
2124
- usageCount: 0
2125
- }
2126
- });
2127
- }
2128
- /**
2129
- * Register multiple templates
2130
- */
2131
- registerMany(templates) {
2132
- templates.forEach((template) => this.register(template));
2133
- }
2134
- /**
2135
- * Get template by ID
2136
- */
2137
- get(id) {
2138
- const entry = this.templates.get(id);
2139
- if (entry) {
2140
- entry.metadata.usageCount++;
2141
- entry.metadata.lastUsed = (/* @__PURE__ */ new Date()).toISOString();
2142
- return entry.template;
2143
- }
2144
- return void 0;
2145
- }
2146
- /**
2147
- * Get all templates
2148
- */
2149
- getAll() {
2150
- return Array.from(this.templates.values()).map((entry) => entry.template);
2151
- }
2152
- /**
2153
- * Get templates by category
2154
- */
2155
- getByCategory(category) {
2156
- return this.getAll().filter((template) => template.category === category);
2157
- }
2158
- /**
2159
- * Find templates by required components
2160
- * Returns templates that include ALL specified components
2161
- */
2162
- findByRequiredComponents(components) {
2163
- return this.getAll().filter((template) => {
2164
- return components.every((component) => template.requiredComponents.includes(component));
2165
- });
2166
- }
2167
- /**
2168
- * Search templates by keyword
2169
- * Searches in: id, name, description, tags
2170
- */
2171
- search(keyword) {
2172
- const lowerKeyword = keyword.toLowerCase();
2173
- return this.getAll().filter((template) => {
2174
- return template.id.toLowerCase().includes(lowerKeyword) || template.name.toLowerCase().includes(lowerKeyword) || template.description.toLowerCase().includes(lowerKeyword) || template.tags?.some((tag) => tag.toLowerCase().includes(lowerKeyword));
2175
- });
2176
- }
2177
- /**
2178
- * Get template metadata
2179
- */
2180
- getMetadata(id) {
2181
- return this.templates.get(id)?.metadata;
2182
- }
2183
- /**
2184
- * Get most used templates
2185
- */
2186
- getMostUsed(limit = 10) {
2187
- return Array.from(this.templates.values()).sort((a, b) => b.metadata.usageCount - a.metadata.usageCount).slice(0, limit).map((entry) => entry.template);
2188
- }
2189
- /**
2190
- * Get recently used templates
2191
- */
2192
- getRecentlyUsed(limit = 10) {
2193
- return Array.from(this.templates.values()).filter((entry) => entry.metadata.lastUsed).sort((a, b) => {
2194
- const dateA = new Date(a.metadata.lastUsed).getTime();
2195
- const dateB = new Date(b.metadata.lastUsed).getTime();
2196
- return dateB - dateA;
2197
- }).slice(0, limit).map((entry) => entry.template);
2198
- }
2199
- /**
2200
- * Clear all templates
2201
- */
2202
- clear() {
2203
- this.templates.clear();
2204
- }
2205
- /**
2206
- * Get template count
2207
- */
2208
- count() {
2209
- return this.templates.size;
2210
- }
2211
- /**
2212
- * Check if template exists
2213
- */
2214
- has(id) {
2215
- return this.templates.has(id);
2216
- }
2217
- /**
2218
- * Remove template
2219
- */
2220
- remove(id) {
2221
- return this.templates.delete(id);
2222
- }
2223
- };
2224
- var templateRegistry = TemplateRegistry.getInstance();
2225
-
2226
- // src/templates/auth/login.tsx
2227
- import { Fragment as Fragment2, jsx as jsx30, jsxs as jsxs11 } from "react/jsx-runtime";
2228
- function LoginTemplateComponent({
2229
- children,
2230
- className = "",
2231
- slots = {},
2232
- texts = {},
2233
- options = {}
2234
- }) {
2235
- const title = texts.title || "Welcome Back";
2236
- const subtitle = texts.subtitle || "Sign in to your account";
2237
- const buttonLabel = texts.button_label || "Sign In";
2238
- const showSocialLogin = options.social_login ?? false;
2239
- const showRememberMe = options.remember_me ?? false;
2240
- return /* @__PURE__ */ jsxs11(
2241
- "div",
2242
- {
2243
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
2244
- children: [
2245
- /* @__PURE__ */ jsxs11(Card, { className: "w-full max-w-md", children: [
2246
- /* @__PURE__ */ jsxs11(CardHeader, { children: [
2247
- slots.logo && /* @__PURE__ */ jsx30("div", { className: "mb-[var(--tekton-spacing-4)]", children: slots.logo }),
2248
- /* @__PURE__ */ jsx30(CardTitle, { children: title }),
2249
- /* @__PURE__ */ jsx30(CardDescription, { children: subtitle })
2250
- ] }),
2251
- /* @__PURE__ */ jsxs11(CardContent, { className: "space-y-[var(--tekton-spacing-4)]", children: [
2252
- /* @__PURE__ */ jsxs11("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2253
- /* @__PURE__ */ jsx30(Label, { htmlFor: "email", children: "Email" }),
2254
- /* @__PURE__ */ jsx30(Input, { id: "email", type: "email", placeholder: "Enter your email" })
2255
- ] }),
2256
- /* @__PURE__ */ jsxs11("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2257
- /* @__PURE__ */ jsxs11("div", { className: "flex items-center justify-between", children: [
2258
- /* @__PURE__ */ jsx30(Label, { htmlFor: "password", children: "Password" }),
2259
- slots.forgotPassword && /* @__PURE__ */ jsx30("div", { children: slots.forgotPassword })
2260
- ] }),
2261
- /* @__PURE__ */ jsx30(Input, { id: "password", type: "password", placeholder: "Enter your password" })
2262
- ] }),
2263
- showRememberMe && slots.rememberMe && /* @__PURE__ */ jsx30("div", { className: "flex items-center space-x-[var(--tekton-spacing-2)]", children: slots.rememberMe }),
2264
- /* @__PURE__ */ jsx30(Button, { className: "w-full", children: buttonLabel }),
2265
- showSocialLogin && slots.socialLogin && /* @__PURE__ */ jsxs11(Fragment2, { children: [
2266
- /* @__PURE__ */ jsxs11("div", { className: "relative", children: [
2267
- /* @__PURE__ */ jsx30("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx30(Separator, {}) }),
2268
- /* @__PURE__ */ jsx30("div", { className: "relative flex justify-center text-xs uppercase", children: /* @__PURE__ */ jsx30("span", { className: "bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-2)] text-[var(--tekton-text-muted-foreground)]", children: "Or continue with" }) })
2269
- ] }),
2270
- /* @__PURE__ */ jsx30("div", { className: "grid grid-cols-2 gap-[var(--tekton-spacing-4)]", children: slots.socialLogin })
2271
- ] })
2272
- ] }),
2273
- /* @__PURE__ */ jsx30(CardFooter, { children: slots.footer || /* @__PURE__ */ jsxs11("p", { className: "text-sm text-center w-full text-[var(--tekton-text-muted-foreground)]", children: [
2274
- "Don't have an account?",
2275
- " ",
2276
- /* @__PURE__ */ jsx30("a", { href: "#", className: "text-[var(--tekton-text-primary)] hover:underline", children: "Sign up" })
2277
- ] }) })
2278
- ] }),
2279
- children
2280
- ]
2281
- }
2282
- );
2283
- }
2284
- var LoginTemplate = {
2285
- id: "auth.login",
2286
- name: "Login",
2287
- category: "auth",
2288
- description: "Standard login screen with email and password",
2289
- skeleton: {
2290
- shell: "centered-card",
2291
- page: "auth-page",
2292
- sections: [
2293
- {
2294
- id: "login-form",
2295
- name: "Login Form",
2296
- slot: "main",
2297
- required: true,
2298
- Component: LoginTemplateComponent
2299
- }
2300
- ]
2301
- },
2302
- layout: {
2303
- type: "centered",
2304
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2305
- },
2306
- customizable: {
2307
- texts: ["title", "subtitle", "button_label"],
2308
- optional: ["social_login", "remember_me"],
2309
- slots: ["logo", "forgotPassword", "rememberMe", "socialLogin", "footer"]
2310
- },
2311
- requiredComponents: ["Button", "Input", "Form", "Card", "Label"],
2312
- Component: LoginTemplateComponent,
2313
- version: "1.0.0",
2314
- created: "2026-01-31",
2315
- updated: "2026-01-31",
2316
- tags: ["auth", "login", "form"]
2317
- };
2318
-
2319
- // src/templates/auth/signup.tsx
2320
- import { Fragment as Fragment3, jsx as jsx31, jsxs as jsxs12 } from "react/jsx-runtime";
2321
- function SignupTemplateComponent({
2322
- children,
2323
- className = "",
2324
- slots = {},
2325
- texts = {},
2326
- options = {}
2327
- }) {
2328
- const title = texts.title || "Create Account";
2329
- const subtitle = texts.subtitle || "Sign up to get started";
2330
- const buttonLabel = texts.button_label || "Sign Up";
2331
- const showSocialSignup = options.social_signup ?? false;
2332
- return /* @__PURE__ */ jsxs12(
2333
- "div",
2334
- {
2335
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
2336
- children: [
2337
- /* @__PURE__ */ jsxs12(Card, { className: "w-full max-w-md", children: [
2338
- /* @__PURE__ */ jsxs12(CardHeader, { children: [
2339
- slots.logo && /* @__PURE__ */ jsx31("div", { className: "mb-[var(--tekton-spacing-4)]", children: slots.logo }),
2340
- /* @__PURE__ */ jsx31(CardTitle, { children: title }),
2341
- /* @__PURE__ */ jsx31(CardDescription, { children: subtitle })
2342
- ] }),
2343
- /* @__PURE__ */ jsxs12(CardContent, { className: "space-y-[var(--tekton-spacing-4)]", children: [
2344
- /* @__PURE__ */ jsxs12("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2345
- /* @__PURE__ */ jsx31(Label, { htmlFor: "name", children: "Name" }),
2346
- /* @__PURE__ */ jsx31(Input, { id: "name", type: "text", placeholder: "Enter your name" })
2347
- ] }),
2348
- /* @__PURE__ */ jsxs12("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2349
- /* @__PURE__ */ jsx31(Label, { htmlFor: "email", children: "Email" }),
2350
- /* @__PURE__ */ jsx31(Input, { id: "email", type: "email", placeholder: "Enter your email" })
2351
- ] }),
2352
- /* @__PURE__ */ jsxs12("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2353
- /* @__PURE__ */ jsx31(Label, { htmlFor: "password", children: "Password" }),
2354
- /* @__PURE__ */ jsx31(Input, { id: "password", type: "password", placeholder: "Enter your password" })
2355
- ] }),
2356
- /* @__PURE__ */ jsxs12("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2357
- /* @__PURE__ */ jsx31(Label, { htmlFor: "password-confirm", children: "Confirm Password" }),
2358
- /* @__PURE__ */ jsx31(Input, { id: "password-confirm", type: "password", placeholder: "Confirm your password" })
2359
- ] }),
2360
- slots.termsCheckbox && /* @__PURE__ */ jsx31("div", { className: "flex items-start space-x-[var(--tekton-spacing-2)]", children: slots.termsCheckbox }),
2361
- /* @__PURE__ */ jsx31(Button, { className: "w-full", children: buttonLabel }),
2362
- showSocialSignup && slots.socialSignup && /* @__PURE__ */ jsxs12(Fragment3, { children: [
2363
- /* @__PURE__ */ jsxs12("div", { className: "relative", children: [
2364
- /* @__PURE__ */ jsx31("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx31(Separator, {}) }),
2365
- /* @__PURE__ */ jsx31("div", { className: "relative flex justify-center text-xs uppercase", children: /* @__PURE__ */ jsx31("span", { className: "bg-[var(--tekton-bg-background)] px-[var(--tekton-spacing-2)] text-[var(--tekton-text-muted-foreground)]", children: "Or sign up with" }) })
2366
- ] }),
2367
- /* @__PURE__ */ jsx31("div", { className: "grid grid-cols-2 gap-[var(--tekton-spacing-4)]", children: slots.socialSignup })
2368
- ] })
2369
- ] }),
2370
- /* @__PURE__ */ jsx31(CardFooter, { children: slots.footer || /* @__PURE__ */ jsxs12("p", { className: "text-sm text-center w-full text-[var(--tekton-text-muted-foreground)]", children: [
2371
- "Already have an account?",
2372
- " ",
2373
- /* @__PURE__ */ jsx31("a", { href: "#", className: "text-[var(--tekton-text-primary)] hover:underline", children: "Sign in" })
2374
- ] }) })
2375
- ] }),
2376
- children
2377
- ]
2378
- }
2379
- );
2380
- }
2381
- var SignupTemplate = {
2382
- id: "auth.signup",
2383
- name: "Signup",
2384
- category: "auth",
2385
- description: "Standard signup screen with name, email, and password",
2386
- skeleton: {
2387
- shell: "centered-card",
2388
- page: "auth-page",
2389
- sections: [
2390
- {
2391
- id: "signup-form",
2392
- name: "Signup Form",
2393
- slot: "main",
2394
- required: true,
2395
- Component: SignupTemplateComponent
2396
- }
2397
- ]
2398
- },
2399
- layout: {
2400
- type: "centered",
2401
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2402
- },
2403
- customizable: {
2404
- texts: ["title", "subtitle", "button_label"],
2405
- optional: ["social_signup"],
2406
- slots: ["logo", "termsCheckbox", "socialSignup", "footer"]
2407
- },
2408
- requiredComponents: ["Button", "Input", "Form", "Card", "Label", "Checkbox"],
2409
- Component: SignupTemplateComponent,
2410
- version: "1.0.0",
2411
- created: "2026-02-01",
2412
- updated: "2026-02-01",
2413
- tags: ["auth", "signup", "registration", "form"]
2414
- };
2415
-
2416
- // src/templates/auth/forgot-password.tsx
2417
- import { jsx as jsx32, jsxs as jsxs13 } from "react/jsx-runtime";
2418
- function ForgotPasswordTemplateComponent({
2419
- children,
2420
- className = "",
2421
- slots = {},
2422
- texts = {}
2423
- }) {
2424
- const title = texts.title || "Forgot Password?";
2425
- const subtitle = texts.subtitle || "Enter your email address and we'll send you a reset link";
2426
- const buttonLabel = texts.button_label || "Send Reset Link";
2427
- return /* @__PURE__ */ jsxs13(
2428
- "div",
2429
- {
2430
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
2431
- children: [
2432
- /* @__PURE__ */ jsxs13(Card, { className: "w-full max-w-md", children: [
2433
- /* @__PURE__ */ jsxs13(CardHeader, { children: [
2434
- slots.logo && /* @__PURE__ */ jsx32("div", { className: "mb-[var(--tekton-spacing-4)]", children: slots.logo }),
2435
- /* @__PURE__ */ jsx32(CardTitle, { children: title }),
2436
- /* @__PURE__ */ jsx32(CardDescription, { children: subtitle })
2437
- ] }),
2438
- /* @__PURE__ */ jsxs13(CardContent, { className: "space-y-[var(--tekton-spacing-4)]", children: [
2439
- /* @__PURE__ */ jsxs13("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2440
- /* @__PURE__ */ jsx32(Label, { htmlFor: "email", children: "Email" }),
2441
- /* @__PURE__ */ jsx32(Input, { id: "email", type: "email", placeholder: "Enter your email" })
2442
- ] }),
2443
- /* @__PURE__ */ jsx32(Button, { className: "w-full", children: buttonLabel })
2444
- ] }),
2445
- /* @__PURE__ */ jsx32(CardFooter, { children: slots.footer || /* @__PURE__ */ jsxs13("p", { className: "text-sm text-center w-full text-[var(--tekton-text-muted-foreground)]", children: [
2446
- "Remember your password?",
2447
- " ",
2448
- /* @__PURE__ */ jsx32("a", { href: "#", className: "text-[var(--tekton-text-primary)] hover:underline", children: "Back to login" })
2449
- ] }) })
2450
- ] }),
2451
- children
2452
- ]
2453
- }
2454
- );
2455
- }
2456
- var ForgotPasswordTemplate = {
2457
- id: "auth.forgot-password",
2458
- name: "Forgot Password",
2459
- category: "auth",
2460
- description: "Password reset screen with email input",
2461
- skeleton: {
2462
- shell: "centered-card",
2463
- page: "auth-page",
2464
- sections: [
2465
- {
2466
- id: "forgot-password-form",
2467
- name: "Forgot Password Form",
2468
- slot: "main",
2469
- required: true,
2470
- Component: ForgotPasswordTemplateComponent
2471
- }
2472
- ]
2473
- },
2474
- layout: {
2475
- type: "centered",
2476
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2477
- },
2478
- customizable: {
2479
- texts: ["title", "subtitle", "button_label"],
2480
- optional: [],
2481
- slots: ["logo", "footer"]
2482
- },
2483
- requiredComponents: ["Button", "Input", "Form", "Card", "Label"],
2484
- Component: ForgotPasswordTemplateComponent,
2485
- version: "1.0.0",
2486
- created: "2026-02-01",
2487
- updated: "2026-02-01",
2488
- tags: ["auth", "password", "reset", "forgot"]
2489
- };
2490
-
2491
- // src/templates/auth/verification.tsx
2492
- import { jsx as jsx33, jsxs as jsxs14 } from "react/jsx-runtime";
2493
- function VerificationTemplateComponent({
2494
- children,
2495
- className = "",
2496
- slots = {},
2497
- texts = {},
2498
- options = {}
2499
- }) {
2500
- const title = texts.title || "Verify Your Email";
2501
- const subtitle = texts.subtitle || "We've sent a verification link to your email address";
2502
- const buttonLabel = texts.button_label || "Continue";
2503
- const showResend = options.show_resend ?? true;
2504
- const userEmail = options.user_email || "user@example.com";
2505
- return /* @__PURE__ */ jsxs14(
2506
- "div",
2507
- {
2508
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
2509
- children: [
2510
- /* @__PURE__ */ jsxs14(Card, { className: "w-full max-w-md", children: [
2511
- /* @__PURE__ */ jsxs14(CardHeader, { children: [
2512
- slots.icon && /* @__PURE__ */ jsx33("div", { className: "mb-[var(--tekton-spacing-4)]", children: slots.icon }),
2513
- /* @__PURE__ */ jsx33(CardTitle, { children: title }),
2514
- /* @__PURE__ */ jsx33(CardDescription, { children: subtitle })
2515
- ] }),
2516
- /* @__PURE__ */ jsxs14(CardContent, { className: "space-y-[var(--tekton-spacing-4)]", children: [
2517
- /* @__PURE__ */ jsx33("div", { className: "bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-3)] rounded-[var(--tekton-radius-md)] text-center", children: /* @__PURE__ */ jsx33("p", { className: "text-sm font-medium", children: userEmail }) }),
2518
- /* @__PURE__ */ jsx33(Button, { className: "w-full", children: buttonLabel }),
2519
- showResend && /* @__PURE__ */ jsx33("div", { className: "text-center", children: /* @__PURE__ */ jsxs14("p", { className: "text-sm text-[var(--tekton-text-muted-foreground)]", children: [
2520
- "Didn't receive the email?",
2521
- " ",
2522
- /* @__PURE__ */ jsx33("button", { className: "text-[var(--tekton-text-primary)] hover:underline", children: "Resend" })
2523
- ] }) })
2524
- ] }),
2525
- /* @__PURE__ */ jsx33(CardFooter, { children: slots.footer || /* @__PURE__ */ jsxs14("p", { className: "text-sm text-center w-full text-[var(--tekton-text-muted-foreground)]", children: [
2526
- "Wrong email?",
2527
- " ",
2528
- /* @__PURE__ */ jsx33("a", { href: "#", className: "text-[var(--tekton-text-primary)] hover:underline", children: "Change email address" })
2529
- ] }) })
2530
- ] }),
2531
- children
2532
- ]
2533
- }
2534
- );
2535
- }
2536
- var VerificationTemplate = {
2537
- id: "auth.verification",
2538
- name: "Email Verification",
2539
- category: "auth",
2540
- description: "Email verification screen with resend option",
2541
- skeleton: {
2542
- shell: "centered-card",
2543
- page: "auth-page",
2544
- sections: [
2545
- {
2546
- id: "verification-message",
2547
- name: "Verification Message",
2548
- slot: "main",
2549
- required: true,
2550
- Component: VerificationTemplateComponent
2551
- }
2552
- ]
2553
- },
2554
- layout: {
2555
- type: "centered",
2556
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2557
- },
2558
- customizable: {
2559
- texts: ["title", "subtitle", "button_label"],
2560
- optional: ["show_resend", "user_email"],
2561
- slots: ["icon", "footer"]
2562
- },
2563
- requiredComponents: ["Button", "Card"],
2564
- Component: VerificationTemplateComponent,
2565
- version: "1.0.0",
2566
- created: "2026-02-01",
2567
- updated: "2026-02-01",
2568
- tags: ["auth", "verification", "email", "confirm"]
2569
- };
2570
-
2571
- // src/templates/core/landing.tsx
2572
- import { jsx as jsx34, jsxs as jsxs15 } from "react/jsx-runtime";
2573
- function LandingTemplateComponent({
2574
- children,
2575
- className = "",
2576
- slots = {},
2577
- texts = {}
2578
- }) {
2579
- const title = texts.title || "Welcome Back";
2580
- const subtitle = texts.subtitle || "Start a new conversation or continue where you left off";
2581
- const ctaLabel = texts.cta_label || "New Conversation";
2582
- return /* @__PURE__ */ jsxs15("div", { className: `min-h-screen flex ${className}`, children: [
2583
- slots.sidebar && /* @__PURE__ */ jsx34("aside", { className: "w-64 border-r border-[var(--tekton-border-default)] bg-[var(--tekton-bg-muted)]", children: slots.sidebar }),
2584
- /* @__PURE__ */ jsxs15("main", { className: "flex-1 flex flex-col", children: [
2585
- slots.header && /* @__PURE__ */ jsx34("header", { className: "border-b border-[var(--tekton-border-default)] p-[var(--tekton-spacing-4)]", children: slots.header }),
2586
- /* @__PURE__ */ jsx34("div", { className: "flex-1 flex flex-col items-center justify-center p-[var(--tekton-spacing-8)]", children: /* @__PURE__ */ jsxs15("div", { className: "max-w-2xl w-full text-center space-y-[var(--tekton-spacing-6)]", children: [
2587
- /* @__PURE__ */ jsxs15("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2588
- /* @__PURE__ */ jsx34("h1", { className: "text-3xl font-bold", children: title }),
2589
- /* @__PURE__ */ jsx34("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: subtitle })
2590
- ] }),
2591
- /* @__PURE__ */ jsx34("div", { children: /* @__PURE__ */ jsx34(Button, { size: "lg", children: ctaLabel }) }),
2592
- slots.recentActivity && /* @__PURE__ */ jsx34("div", { className: "mt-[var(--tekton-spacing-8)]", children: slots.recentActivity }),
2593
- slots.suggestions && /* @__PURE__ */ jsx34("div", { className: "mt-[var(--tekton-spacing-6)]", children: slots.suggestions })
2594
- ] }) })
2595
- ] }),
2596
- children
2597
- ] });
2598
- }
2599
- var LandingTemplate = {
2600
- id: "core.landing",
2601
- name: "Landing",
2602
- category: "marketing",
2603
- description: "Main dashboard landing page with sidebar and CTA",
2604
- skeleton: {
2605
- shell: "sidebar-layout",
2606
- page: "main-page",
2607
- sections: [
2608
- {
2609
- id: "landing-content",
2610
- name: "Landing Content",
2611
- slot: "main",
2612
- required: true,
2613
- Component: LandingTemplateComponent
2614
- }
2615
- ]
2616
- },
2617
- layout: {
2618
- type: "sidebar",
2619
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2620
- },
2621
- customizable: {
2622
- texts: ["title", "subtitle", "cta_label"],
2623
- optional: [],
2624
- slots: ["sidebar", "header", "recentActivity", "suggestions"]
2625
- },
2626
- requiredComponents: ["Button"],
2627
- Component: LandingTemplateComponent,
2628
- version: "1.0.0",
2629
- created: "2026-02-01",
2630
- updated: "2026-02-01",
2631
- tags: ["core", "landing", "dashboard", "home"]
2632
- };
2633
-
2634
- // src/templates/core/preferences.tsx
2635
- import { jsx as jsx35, jsxs as jsxs16 } from "react/jsx-runtime";
2636
- function PreferencesTemplateComponent({
2637
- children,
2638
- className = "",
2639
- slots = {},
2640
- texts = {}
2641
- }) {
2642
- const title = texts.title || "Preferences";
2643
- const subtitle = texts.subtitle || "Manage your account settings and preferences";
2644
- const saveLabel = texts.save_label || "Save Changes";
2645
- return /* @__PURE__ */ jsxs16("div", { className: `min-h-screen flex ${className}`, children: [
2646
- slots.settingsNav && /* @__PURE__ */ jsx35("aside", { className: "w-64 border-r border-[var(--tekton-border-default)] p-[var(--tekton-spacing-4)] bg-[var(--tekton-bg-muted)]", children: slots.settingsNav }),
2647
- /* @__PURE__ */ jsx35("main", { className: "flex-1 p-[var(--tekton-spacing-8)]", children: /* @__PURE__ */ jsxs16("div", { className: "max-w-3xl", children: [
2648
- /* @__PURE__ */ jsxs16("div", { className: "mb-[var(--tekton-spacing-8)]", children: [
2649
- /* @__PURE__ */ jsx35("h1", { className: "text-3xl font-bold mb-[var(--tekton-spacing-2)]", children: title }),
2650
- /* @__PURE__ */ jsx35("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: subtitle })
2651
- ] }),
2652
- /* @__PURE__ */ jsxs16("div", { className: "space-y-[var(--tekton-spacing-6)]", children: [
2653
- slots.generalSettings && /* @__PURE__ */ jsxs16(Card, { children: [
2654
- /* @__PURE__ */ jsxs16(CardHeader, { children: [
2655
- /* @__PURE__ */ jsx35(CardTitle, { children: "General" }),
2656
- /* @__PURE__ */ jsx35(CardDescription, { children: "Manage your general preferences" })
2657
- ] }),
2658
- /* @__PURE__ */ jsx35(CardContent, { children: slots.generalSettings })
2659
- ] }),
2660
- slots.appearanceSettings && /* @__PURE__ */ jsxs16(Card, { children: [
2661
- /* @__PURE__ */ jsxs16(CardHeader, { children: [
2662
- /* @__PURE__ */ jsx35(CardTitle, { children: "Appearance" }),
2663
- /* @__PURE__ */ jsx35(CardDescription, { children: "Customize the look and feel" })
2664
- ] }),
2665
- /* @__PURE__ */ jsx35(CardContent, { children: slots.appearanceSettings })
2666
- ] }),
2667
- slots.notificationsSettings && /* @__PURE__ */ jsxs16(Card, { children: [
2668
- /* @__PURE__ */ jsxs16(CardHeader, { children: [
2669
- /* @__PURE__ */ jsx35(CardTitle, { children: "Notifications" }),
2670
- /* @__PURE__ */ jsx35(CardDescription, { children: "Manage notification preferences" })
2671
- ] }),
2672
- /* @__PURE__ */ jsx35(CardContent, { children: slots.notificationsSettings })
2673
- ] }),
2674
- slots.additionalSettings && slots.additionalSettings
2675
- ] }),
2676
- /* @__PURE__ */ jsxs16("div", { className: "mt-[var(--tekton-spacing-8)] flex justify-end gap-[var(--tekton-spacing-4)]", children: [
2677
- /* @__PURE__ */ jsx35(Button, { variant: "outline", children: "Cancel" }),
2678
- /* @__PURE__ */ jsx35(Button, { children: saveLabel })
2679
- ] })
2680
- ] }) }),
2681
- children
2682
- ] });
2683
- }
2684
- var PreferencesTemplate = {
2685
- id: "core.preferences",
2686
- name: "Preferences",
2687
- category: "form",
2688
- description: "Settings and preferences page with categorized options",
2689
- skeleton: {
2690
- shell: "sidebar-layout",
2691
- page: "settings-page",
2692
- sections: [
2693
- {
2694
- id: "preferences-content",
2695
- name: "Preferences Content",
2696
- slot: "main",
2697
- required: true,
2698
- Component: PreferencesTemplateComponent
2699
- }
2700
- ]
2701
- },
2702
- layout: {
2703
- type: "sidebar",
2704
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2705
- },
2706
- customizable: {
2707
- texts: ["title", "subtitle", "save_label"],
2708
- optional: [],
2709
- slots: [
2710
- "settingsNav",
2711
- "generalSettings",
2712
- "appearanceSettings",
2713
- "notificationsSettings",
2714
- "additionalSettings"
2715
- ]
2716
- },
2717
- requiredComponents: ["Button", "Card", "Switch", "Select"],
2718
- Component: PreferencesTemplateComponent,
2719
- version: "1.0.0",
2720
- created: "2026-02-01",
2721
- updated: "2026-02-01",
2722
- tags: ["core", "settings", "preferences", "configuration"]
2723
- };
2724
-
2725
- // src/templates/core/profile.tsx
2726
- import { jsx as jsx36, jsxs as jsxs17 } from "react/jsx-runtime";
2727
- function ProfileTemplateComponent({
2728
- children,
2729
- className = "",
2730
- slots = {},
2731
- texts = {},
2732
- options = {}
2733
- }) {
2734
- const title = texts.title || "Profile";
2735
- const subtitle = texts.subtitle || "Manage your profile information";
2736
- const saveLabel = texts.save_label || "Save Changes";
2737
- const userName = String(options.user_name || "John Doe");
2738
- const userEmail = String(options.user_email || "john@example.com");
2739
- return /* @__PURE__ */ jsxs17("div", { className: `min-h-screen p-[var(--tekton-spacing-8)] ${className}`, children: [
2740
- /* @__PURE__ */ jsxs17("div", { className: "max-w-3xl mx-auto", children: [
2741
- /* @__PURE__ */ jsxs17("div", { className: "mb-[var(--tekton-spacing-8)]", children: [
2742
- /* @__PURE__ */ jsx36("h1", { className: "text-3xl font-bold mb-[var(--tekton-spacing-2)]", children: title }),
2743
- /* @__PURE__ */ jsx36("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: subtitle })
2744
- ] }),
2745
- /* @__PURE__ */ jsxs17(Card, { children: [
2746
- /* @__PURE__ */ jsxs17(CardHeader, { children: [
2747
- /* @__PURE__ */ jsx36(CardTitle, { children: "Personal Information" }),
2748
- /* @__PURE__ */ jsx36(CardDescription, { children: "Update your profile details" })
2749
- ] }),
2750
- /* @__PURE__ */ jsxs17(CardContent, { className: "space-y-[var(--tekton-spacing-6)]", children: [
2751
- slots.avatar && /* @__PURE__ */ jsxs17("div", { className: "flex items-center gap-[var(--tekton-spacing-4)]", children: [
2752
- /* @__PURE__ */ jsx36("div", { children: slots.avatar }),
2753
- /* @__PURE__ */ jsxs17("div", { children: [
2754
- /* @__PURE__ */ jsx36(Button, { variant: "outline", size: "sm", children: "Change Photo" }),
2755
- /* @__PURE__ */ jsx36("p", { className: "text-xs text-[var(--tekton-text-muted-foreground)] mt-[var(--tekton-spacing-2)]", children: "JPG, PNG. Max 2MB" })
2756
- ] })
2757
- ] }),
2758
- /* @__PURE__ */ jsxs17("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2759
- /* @__PURE__ */ jsx36(Label, { htmlFor: "name", children: "Name" }),
2760
- /* @__PURE__ */ jsx36(Input, { id: "name", type: "text", defaultValue: userName })
2761
- ] }),
2762
- /* @__PURE__ */ jsxs17("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2763
- /* @__PURE__ */ jsx36(Label, { htmlFor: "email", children: "Email" }),
2764
- /* @__PURE__ */ jsx36(Input, { id: "email", type: "email", defaultValue: userEmail, disabled: true }),
2765
- /* @__PURE__ */ jsx36("p", { className: "text-xs text-[var(--tekton-text-muted-foreground)]", children: "Contact support to change your email address" })
2766
- ] }),
2767
- slots.bioField && /* @__PURE__ */ jsx36("div", { className: "space-y-[var(--tekton-spacing-2)]", children: slots.bioField }),
2768
- slots.additionalFields && slots.additionalFields
2769
- ] })
2770
- ] }),
2771
- slots.additionalSections && /* @__PURE__ */ jsx36("div", { className: "mt-[var(--tekton-spacing-6)]", children: slots.additionalSections }),
2772
- /* @__PURE__ */ jsxs17("div", { className: "mt-[var(--tekton-spacing-8)] flex justify-end gap-[var(--tekton-spacing-4)]", children: [
2773
- /* @__PURE__ */ jsx36(Button, { variant: "outline", children: "Cancel" }),
2774
- /* @__PURE__ */ jsx36(Button, { children: saveLabel })
2775
- ] })
2776
- ] }),
2777
- children
2778
- ] });
2779
- }
2780
- var ProfileTemplate = {
2781
- id: "core.profile",
2782
- name: "Profile",
2783
- category: "form",
2784
- description: "User profile page with editable information",
2785
- skeleton: {
2786
- shell: "centered-layout",
2787
- page: "profile-page",
2788
- sections: [
2789
- {
2790
- id: "profile-content",
2791
- name: "Profile Content",
2792
- slot: "main",
2793
- required: true,
2794
- Component: ProfileTemplateComponent
2795
- }
2796
- ]
2797
- },
2798
- layout: {
2799
- type: "centered",
2800
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2801
- },
2802
- customizable: {
2803
- texts: ["title", "subtitle", "save_label"],
2804
- optional: ["user_name", "user_email"],
2805
- slots: ["avatar", "bioField", "additionalFields", "additionalSections"]
2806
- },
2807
- requiredComponents: ["Button", "Input", "Form", "Card", "Label", "Avatar"],
2808
- Component: ProfileTemplateComponent,
2809
- version: "1.0.0",
2810
- created: "2026-02-01",
2811
- updated: "2026-02-01",
2812
- tags: ["core", "profile", "account", "user"]
2813
- };
2814
-
2815
- // src/templates/feedback/loading.tsx
2816
- import { jsx as jsx37, jsxs as jsxs18 } from "react/jsx-runtime";
2817
- function LoadingTemplateComponent({
2818
- children,
2819
- className = "",
2820
- slots = {},
2821
- texts = {},
2822
- options = {}
2823
- }) {
2824
- const message = texts.message || "Loading...";
2825
- const showMessage = options.show_message ?? true;
2826
- return /* @__PURE__ */ jsxs18(
2827
- "div",
2828
- {
2829
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
2830
- children: [
2831
- /* @__PURE__ */ jsxs18("div", { className: "flex flex-col items-center gap-[var(--tekton-spacing-4)]", children: [
2832
- slots.spinner || /* @__PURE__ */ jsx37("div", { className: "animate-spin rounded-full h-12 w-12 border-b-2 border-[var(--tekton-border-primary)]" }),
2833
- showMessage && /* @__PURE__ */ jsx37("p", { className: "text-sm text-[var(--tekton-text-muted-foreground)]", children: message })
2834
- ] }),
2835
- children
2836
- ]
2837
- }
2838
- );
2839
- }
2840
- var LoadingTemplate = {
2841
- id: "feedback.loading",
2842
- name: "Loading",
2843
- category: "feedback",
2844
- description: "Loading state screen with spinner and optional message",
2845
- skeleton: {
2846
- shell: "centered",
2847
- page: "feedback-page",
2848
- sections: [
2849
- {
2850
- id: "loading-indicator",
2851
- name: "Loading Indicator",
2852
- slot: "main",
2853
- required: true,
2854
- Component: LoadingTemplateComponent
2855
- }
2856
- ]
2857
- },
2858
- layout: {
2859
- type: "centered",
2860
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2861
- },
2862
- customizable: {
2863
- texts: ["message"],
2864
- optional: ["show_message"],
2865
- slots: ["spinner"]
2866
- },
2867
- requiredComponents: [],
2868
- Component: LoadingTemplateComponent,
2869
- version: "1.0.0",
2870
- created: "2026-02-01",
2871
- updated: "2026-02-01",
2872
- tags: ["feedback", "loading", "spinner", "state"]
2873
- };
2874
-
2875
- // src/templates/feedback/error.tsx
2876
- import { jsx as jsx38, jsxs as jsxs19 } from "react/jsx-runtime";
2877
- function ErrorTemplateComponent({
2878
- children,
2879
- className = "",
2880
- slots = {},
2881
- texts = {},
2882
- options = {}
2883
- }) {
2884
- const title = texts.title || "Something Went Wrong";
2885
- const message = texts.message || "An error occurred. Please try again.";
2886
- const retryLabel = texts.retry_label || "Try Again";
2887
- const showRetry = options.show_retry ?? true;
2888
- return /* @__PURE__ */ jsxs19(
2889
- "div",
2890
- {
2891
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
2892
- children: [
2893
- /* @__PURE__ */ jsxs19("div", { className: "max-w-md text-center space-y-[var(--tekton-spacing-6)]", children: [
2894
- slots.icon || /* @__PURE__ */ jsx38("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx38("div", { className: "rounded-full bg-[var(--tekton-bg-destructive)] bg-opacity-10 p-[var(--tekton-spacing-4)]", children: /* @__PURE__ */ jsx38(
2895
- "svg",
2896
- {
2897
- xmlns: "http://www.w3.org/2000/svg",
2898
- className: "h-12 w-12 text-[var(--tekton-text-destructive)]",
2899
- fill: "none",
2900
- viewBox: "0 0 24 24",
2901
- stroke: "currentColor",
2902
- children: /* @__PURE__ */ jsx38(
2903
- "path",
2904
- {
2905
- strokeLinecap: "round",
2906
- strokeLinejoin: "round",
2907
- strokeWidth: 2,
2908
- d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
2909
- }
2910
- )
2911
- }
2912
- ) }) }),
2913
- /* @__PURE__ */ jsxs19("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
2914
- /* @__PURE__ */ jsx38("h2", { className: "text-2xl font-bold", children: title }),
2915
- /* @__PURE__ */ jsx38("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: message })
2916
- ] }),
2917
- slots.errorDetails && /* @__PURE__ */ jsx38("div", { className: "text-left bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-4)] rounded-[var(--tekton-radius-md)] text-sm", children: slots.errorDetails }),
2918
- /* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-[var(--tekton-spacing-3)]", children: [
2919
- showRetry && /* @__PURE__ */ jsx38(Button, { className: "w-full", children: retryLabel }),
2920
- slots.additionalActions && slots.additionalActions
2921
- ] })
2922
- ] }),
2923
- children
2924
- ]
2925
- }
2926
- );
2927
- }
2928
- var ErrorTemplate = {
2929
- id: "feedback.error",
2930
- name: "Error",
2931
- category: "feedback",
2932
- description: "Error state screen with message and retry option",
2933
- skeleton: {
2934
- shell: "centered",
2935
- page: "feedback-page",
2936
- sections: [
2937
- {
2938
- id: "error-message",
2939
- name: "Error Message",
2940
- slot: "main",
2941
- required: true,
2942
- Component: ErrorTemplateComponent
2943
- }
2944
- ]
2945
- },
2946
- layout: {
2947
- type: "centered",
2948
- responsive: DEFAULT_RESPONSIVE_LAYOUT
2949
- },
2950
- customizable: {
2951
- texts: ["title", "message", "retry_label"],
2952
- optional: ["show_retry"],
2953
- slots: ["icon", "errorDetails", "additionalActions"]
2954
- },
2955
- requiredComponents: ["Button"],
2956
- Component: ErrorTemplateComponent,
2957
- version: "1.0.0",
2958
- created: "2026-02-01",
2959
- updated: "2026-02-01",
2960
- tags: ["feedback", "error", "failure", "state"]
2961
- };
2962
-
2963
- // src/templates/feedback/empty.tsx
2964
- import { jsx as jsx39, jsxs as jsxs20 } from "react/jsx-runtime";
2965
- function EmptyTemplateComponent({
2966
- children,
2967
- className = "",
2968
- slots = {},
2969
- texts = {},
2970
- options = {}
2971
- }) {
2972
- const title = texts.title || "No Items Found";
2973
- const message = texts.message || "Get started by creating your first item";
2974
- const ctaLabel = texts.cta_label || "Create New";
2975
- const showCta = options.show_cta ?? true;
2976
- return /* @__PURE__ */ jsxs20(
2977
- "div",
2978
- {
2979
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
2980
- children: [
2981
- /* @__PURE__ */ jsxs20("div", { className: "max-w-md text-center space-y-[var(--tekton-spacing-6)]", children: [
2982
- slots.illustration || /* @__PURE__ */ jsx39("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx39("div", { className: "rounded-full bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-8)]", children: /* @__PURE__ */ jsx39(
2983
- "svg",
2984
- {
2985
- xmlns: "http://www.w3.org/2000/svg",
2986
- className: "h-16 w-16 text-[var(--tekton-text-muted-foreground)]",
2987
- fill: "none",
2988
- viewBox: "0 0 24 24",
2989
- stroke: "currentColor",
2990
- children: /* @__PURE__ */ jsx39(
2991
- "path",
2992
- {
2993
- strokeLinecap: "round",
2994
- strokeLinejoin: "round",
2995
- strokeWidth: 2,
2996
- d: "M20 13V6a2 2 0 00-2-2H6a2 2 0 00-2 2v7m16 0v5a2 2 0 01-2 2H6a2 2 0 01-2-2v-5m16 0h-2.586a1 1 0 00-.707.293l-2.414 2.414a1 1 0 01-.707.293h-3.172a1 1 0 01-.707-.293l-2.414-2.414A1 1 0 006.586 13H4"
2997
- }
2998
- )
2999
- }
3000
- ) }) }),
3001
- /* @__PURE__ */ jsxs20("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
3002
- /* @__PURE__ */ jsx39("h2", { className: "text-2xl font-bold", children: title }),
3003
- /* @__PURE__ */ jsx39("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: message })
3004
- ] }),
3005
- showCta && /* @__PURE__ */ jsx39("div", { children: /* @__PURE__ */ jsx39(Button, { size: "lg", children: ctaLabel }) }),
3006
- slots.helpText && /* @__PURE__ */ jsx39("div", { className: "text-sm text-[var(--tekton-text-muted-foreground)]", children: slots.helpText })
3007
- ] }),
3008
- children
3009
- ]
3010
- }
3011
- );
3012
- }
3013
- var EmptyTemplate = {
3014
- id: "feedback.empty",
3015
- name: "Empty",
3016
- category: "feedback",
3017
- description: "Empty state screen with call-to-action",
3018
- skeleton: {
3019
- shell: "centered",
3020
- page: "feedback-page",
3021
- sections: [
3022
- {
3023
- id: "empty-state",
3024
- name: "Empty State",
3025
- slot: "main",
3026
- required: true,
3027
- Component: EmptyTemplateComponent
3028
- }
3029
- ]
3030
- },
3031
- layout: {
3032
- type: "centered",
3033
- responsive: DEFAULT_RESPONSIVE_LAYOUT
3034
- },
3035
- customizable: {
3036
- texts: ["title", "message", "cta_label"],
3037
- optional: ["show_cta"],
3038
- slots: ["illustration", "helpText"]
3039
- },
3040
- requiredComponents: ["Button"],
3041
- Component: EmptyTemplateComponent,
3042
- version: "1.0.0",
3043
- created: "2026-02-01",
3044
- updated: "2026-02-01",
3045
- tags: ["feedback", "empty", "state", "no-data"]
3046
- };
3047
-
3048
- // src/templates/feedback/confirmation.tsx
3049
- import { jsx as jsx40, jsxs as jsxs21 } from "react/jsx-runtime";
3050
- function ConfirmationTemplateComponent({
3051
- children,
3052
- className = "",
3053
- slots = {},
3054
- texts = {},
3055
- options = {}
3056
- }) {
3057
- const title = texts.title || "Are You Sure?";
3058
- const message = texts.message || "This action cannot be undone.";
3059
- const confirmLabel = texts.confirm_label || "Confirm";
3060
- const cancelLabel = texts.cancel_label || "Cancel";
3061
- const isDestructive = options.is_destructive ?? false;
3062
- return /* @__PURE__ */ jsxs21(
3063
- "div",
3064
- {
3065
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
3066
- children: [
3067
- /* @__PURE__ */ jsxs21(Card, { className: "w-full max-w-md", children: [
3068
- /* @__PURE__ */ jsxs21(CardHeader, { children: [
3069
- isDestructive && slots.warningIcon && /* @__PURE__ */ jsx40("div", { className: "mb-[var(--tekton-spacing-2)]", children: slots.warningIcon }),
3070
- /* @__PURE__ */ jsx40(CardTitle, { children: title }),
3071
- /* @__PURE__ */ jsx40(CardDescription, { children: message })
3072
- ] }),
3073
- /* @__PURE__ */ jsx40(CardContent, { children: slots.details && /* @__PURE__ */ jsx40("div", { className: "bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-4)] rounded-[var(--tekton-radius-md)] text-sm", children: slots.details }) }),
3074
- /* @__PURE__ */ jsxs21(CardFooter, { className: "flex justify-end gap-[var(--tekton-spacing-3)]", children: [
3075
- /* @__PURE__ */ jsx40(Button, { variant: "outline", children: cancelLabel }),
3076
- /* @__PURE__ */ jsx40(Button, { variant: isDestructive ? "destructive" : "default", children: confirmLabel })
3077
- ] })
3078
- ] }),
3079
- children
3080
- ]
3081
- }
3082
- );
3083
- }
3084
- var ConfirmationTemplate = {
3085
- id: "feedback.confirmation",
3086
- name: "Confirmation",
3087
- category: "feedback",
3088
- description: "Confirmation dialog for important actions",
3089
- skeleton: {
3090
- shell: "centered-card",
3091
- page: "feedback-page",
3092
- sections: [
3093
- {
3094
- id: "confirmation-dialog",
3095
- name: "Confirmation Dialog",
3096
- slot: "main",
3097
- required: true,
3098
- Component: ConfirmationTemplateComponent
3099
- }
3100
- ]
3101
- },
3102
- layout: {
3103
- type: "centered",
3104
- responsive: DEFAULT_RESPONSIVE_LAYOUT
3105
- },
3106
- customizable: {
3107
- texts: ["title", "message", "confirm_label", "cancel_label"],
3108
- optional: ["is_destructive"],
3109
- slots: ["warningIcon", "details"]
3110
- },
3111
- requiredComponents: ["Button", "Card"],
3112
- Component: ConfirmationTemplateComponent,
3113
- version: "1.0.0",
3114
- created: "2026-02-01",
3115
- updated: "2026-02-01",
3116
- tags: ["feedback", "confirmation", "dialog", "warning"]
3117
- };
3118
-
3119
- // src/templates/feedback/success.tsx
3120
- import { jsx as jsx41, jsxs as jsxs22 } from "react/jsx-runtime";
3121
- function SuccessTemplateComponent({
3122
- children,
3123
- className = "",
3124
- slots = {},
3125
- texts = {},
3126
- options = {}
3127
- }) {
3128
- const title = texts.title || "Success!";
3129
- const message = texts.message || "Your action was completed successfully";
3130
- const ctaLabel = texts.cta_label || "Continue";
3131
- const showCta = options.show_cta ?? true;
3132
- return /* @__PURE__ */ jsxs22(
3133
- "div",
3134
- {
3135
- className: `min-h-screen flex items-center justify-center p-[var(--tekton-spacing-4)] ${className}`,
3136
- children: [
3137
- /* @__PURE__ */ jsxs22("div", { className: "max-w-md text-center space-y-[var(--tekton-spacing-6)]", children: [
3138
- slots.icon || /* @__PURE__ */ jsx41("div", { className: "flex justify-center", children: /* @__PURE__ */ jsx41("div", { className: "rounded-full bg-[var(--tekton-bg-success)] bg-opacity-10 p-[var(--tekton-spacing-4)]", children: /* @__PURE__ */ jsx41(
3139
- "svg",
3140
- {
3141
- xmlns: "http://www.w3.org/2000/svg",
3142
- className: "h-12 w-12 text-[var(--tekton-text-success)]",
3143
- fill: "none",
3144
- viewBox: "0 0 24 24",
3145
- stroke: "currentColor",
3146
- children: /* @__PURE__ */ jsx41(
3147
- "path",
3148
- {
3149
- strokeLinecap: "round",
3150
- strokeLinejoin: "round",
3151
- strokeWidth: 2,
3152
- d: "M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"
3153
- }
3154
- )
3155
- }
3156
- ) }) }),
3157
- /* @__PURE__ */ jsxs22("div", { className: "space-y-[var(--tekton-spacing-2)]", children: [
3158
- /* @__PURE__ */ jsx41("h2", { className: "text-2xl font-bold", children: title }),
3159
- /* @__PURE__ */ jsx41("p", { className: "text-[var(--tekton-text-muted-foreground)]", children: message })
3160
- ] }),
3161
- slots.details && /* @__PURE__ */ jsx41("div", { className: "text-left bg-[var(--tekton-bg-muted)] p-[var(--tekton-spacing-4)] rounded-[var(--tekton-radius-md)] text-sm", children: slots.details }),
3162
- showCta && /* @__PURE__ */ jsx41("div", { children: /* @__PURE__ */ jsx41(Button, { className: "w-full", size: "lg", children: ctaLabel }) }),
3163
- slots.additionalActions && /* @__PURE__ */ jsx41("div", { className: "flex flex-col gap-[var(--tekton-spacing-3)]", children: slots.additionalActions })
3164
- ] }),
3165
- children
3166
- ]
3167
- }
3168
- );
3169
- }
3170
- var SuccessTemplate = {
3171
- id: "feedback.success",
3172
- name: "Success",
3173
- category: "feedback",
3174
- description: "Success state screen with confirmation message",
3175
- skeleton: {
3176
- shell: "centered",
3177
- page: "feedback-page",
3178
- sections: [
3179
- {
3180
- id: "success-message",
3181
- name: "Success Message",
3182
- slot: "main",
3183
- required: true,
3184
- Component: SuccessTemplateComponent
3185
- }
3186
- ]
3187
- },
3188
- layout: {
3189
- type: "centered",
3190
- responsive: DEFAULT_RESPONSIVE_LAYOUT
3191
- },
3192
- customizable: {
3193
- texts: ["title", "message", "cta_label"],
3194
- optional: ["show_cta"],
3195
- slots: ["icon", "details", "additionalActions"]
3196
- },
3197
- requiredComponents: ["Button"],
3198
- Component: SuccessTemplateComponent,
3199
- version: "1.0.0",
3200
- created: "2026-02-01",
3201
- updated: "2026-02-01",
3202
- tags: ["feedback", "success", "confirmation", "state"]
3203
- };
3204
-
3205
- // src/templates/dashboard/overview.tsx
3206
- import { jsx as jsx42, jsxs as jsxs23 } from "react/jsx-runtime";
3207
- function DashboardTemplateComponent({
3208
- children,
3209
- className = "",
3210
- slots = {},
3211
- texts = {}
3212
- }) {
3213
- const title = texts.title || "Dashboard";
3214
- const subtitle = texts.subtitle || "Welcome to your dashboard";
3215
- return /* @__PURE__ */ jsxs23("div", { className: `min-h-screen flex ${className}`, children: [
3216
- slots.sidebar && /* @__PURE__ */ jsx42("aside", { className: "w-64 border-r border-[var(--tekton-border-default)] bg-[var(--tekton-bg-card)] hidden lg:block", children: slots.sidebar }),
3217
- /* @__PURE__ */ jsxs23("main", { className: "flex-1 overflow-auto bg-[var(--tekton-bg-background)]", children: [
3218
- /* @__PURE__ */ jsx42("header", { className: "sticky top-0 z-10 border-b border-[var(--tekton-border-default)] bg-[var(--tekton-bg-background)]/80 backdrop-blur-md p-[var(--tekton-spacing-4)]", children: /* @__PURE__ */ jsxs23("div", { className: "flex items-center justify-between", children: [
3219
- /* @__PURE__ */ jsxs23("div", { children: [
3220
- /* @__PURE__ */ jsx42("h1", { className: "text-2xl font-bold text-[var(--tekton-text-foreground)]", children: title }),
3221
- /* @__PURE__ */ jsx42("p", { className: "text-sm text-[var(--tekton-text-muted-foreground)]", children: subtitle })
3222
- ] }),
3223
- slots.headerActions && /* @__PURE__ */ jsx42("div", { children: slots.headerActions })
3224
- ] }) }),
3225
- /* @__PURE__ */ jsxs23("div", { className: "py-[var(--tekton-layout-section-py,var(--tekton-spacing-6))] px-[var(--tekton-layout-container-px,var(--tekton-spacing-6))] space-y-[var(--tekton-layout-stack-gap,var(--tekton-spacing-6))] max-w-[var(--tekton-layout-container-xl)] mx-auto", children: [
3226
- slots.metrics && /* @__PURE__ */ jsx42("div", { className: "grid gap-[var(--tekton-spacing-4)] grid-cols-2 lg:grid-cols-4", children: slots.metrics }),
3227
- /* @__PURE__ */ jsx42(Separator, {}),
3228
- /* @__PURE__ */ jsxs23("div", { className: "grid gap-x-[var(--tekton-layout-grid-gap-x,var(--tekton-spacing-6))] gap-y-[var(--tekton-layout-grid-gap-y,var(--tekton-spacing-6))] lg:grid-cols-12", children: [
3229
- slots.primaryContent && /* @__PURE__ */ jsx42("div", { className: "lg:col-span-8 space-y-[var(--tekton-layout-stack-gap,var(--tekton-spacing-6))]", children: slots.primaryContent }),
3230
- slots.secondaryContent && /* @__PURE__ */ jsx42("div", { className: "lg:col-span-4 space-y-[var(--tekton-layout-stack-gap,var(--tekton-spacing-6))]", children: /* @__PURE__ */ jsxs23(Card, { className: "h-full", children: [
3231
- /* @__PURE__ */ jsxs23(CardHeader, { children: [
3232
- /* @__PURE__ */ jsx42(CardTitle, { children: texts.secondary_title || "Activity" }),
3233
- /* @__PURE__ */ jsx42(CardDescription, { children: texts.secondary_description || "Recent updates" })
3234
- ] }),
3235
- /* @__PURE__ */ jsx42(CardContent, { className: "p-0", children: slots.secondaryContent })
3236
- ] }) })
3237
- ] }),
3238
- slots.additionalSections && /* @__PURE__ */ jsx42("div", { children: slots.additionalSections })
3239
- ] })
3240
- ] }),
3241
- children
3242
- ] });
3243
- }
3244
- var DashboardTemplate = {
3245
- id: "dashboard.overview",
3246
- name: "Dashboard Overview",
3247
- category: "dashboard",
3248
- description: "Standard dashboard layout with sidebar, metrics, and content areas (12-column grid)",
3249
- skeleton: {
3250
- shell: "sidebar-layout",
3251
- page: "dashboard-page",
3252
- sections: [
3253
- {
3254
- id: "dashboard-sidebar",
3255
- name: "Sidebar Navigation",
3256
- slot: "sidebar",
3257
- required: false,
3258
- Component: () => null
3259
- },
3260
- {
3261
- id: "dashboard-main",
3262
- name: "Main Content",
3263
- slot: "primaryContent",
3264
- required: true,
3265
- Component: () => null
3266
- },
3267
- {
3268
- id: "dashboard-side",
3269
- name: "Side Panel",
3270
- slot: "secondaryContent",
3271
- required: false,
3272
- Component: () => null
3273
- }
3274
- ]
3275
- },
3276
- layout: {
3277
- type: "sidebar",
3278
- responsive: DEFAULT_RESPONSIVE_LAYOUT
3279
- },
3280
- customizable: {
3281
- texts: ["title", "subtitle", "texts.secondary_title", "texts.secondary_description"],
3282
- optional: ["metrics", "additionalSections"],
3283
- slots: [
3284
- "sidebar",
3285
- "headerActions",
3286
- "metrics",
3287
- "primaryContent",
3288
- "secondaryContent",
3289
- "additionalSections"
3290
- ]
3291
- },
3292
- requiredComponents: ["Card", "Separator"],
3293
- Component: DashboardTemplateComponent,
3294
- version: "1.1.0",
3295
- created: "2026-01-31",
3296
- updated: "2026-02-01",
3297
- tags: ["dashboard", "overview", "analytics"]
3298
- };
3299
-
3300
- // src/templates/index.ts
3301
- templateRegistry.registerMany([
3302
- // Auth
3303
- LoginTemplate,
3304
- SignupTemplate,
3305
- ForgotPasswordTemplate,
3306
- VerificationTemplate,
3307
- // Core
3308
- LandingTemplate,
3309
- PreferencesTemplate,
3310
- ProfileTemplate,
3311
- // Feedback
3312
- LoadingTemplate,
3313
- ErrorTemplate,
3314
- EmptyTemplate,
3315
- ConfirmationTemplate,
3316
- SuccessTemplate,
3317
- // Dashboard
3318
- DashboardTemplate
3319
- ]);
3320
1919
  export {
3321
1920
  AlertDialog,
3322
1921
  AlertDialogAction,
@@ -3358,12 +1957,6 @@ export {
3358
1957
  CommandList,
3359
1958
  CommandSeparator,
3360
1959
  CommandShortcut,
3361
- ConfirmationTemplate,
3362
- ConfirmationTemplateComponent,
3363
- DEFAULT_BREAKPOINTS,
3364
- DEFAULT_RESPONSIVE_LAYOUT,
3365
- DashboardTemplate,
3366
- DashboardTemplateComponent,
3367
1960
  Dialog,
3368
1961
  DialogClose,
3369
1962
  DialogContent,
@@ -3389,20 +1982,8 @@ export {
3389
1982
  DropdownMenuSubContent,
3390
1983
  DropdownMenuSubTrigger,
3391
1984
  DropdownMenuTrigger,
3392
- EmptyTemplate,
3393
- EmptyTemplateComponent,
3394
- ErrorTemplate,
3395
- ErrorTemplateComponent,
3396
- ForgotPasswordTemplate,
3397
- ForgotPasswordTemplateComponent,
3398
1985
  Input,
3399
1986
  Label,
3400
- LandingTemplate,
3401
- LandingTemplateComponent,
3402
- LoadingTemplate,
3403
- LoadingTemplateComponent,
3404
- LoginTemplate,
3405
- LoginTemplateComponent,
3406
1987
  NavigationMenu,
3407
1988
  NavigationMenuContent,
3408
1989
  NavigationMenuIndicator,
@@ -3414,10 +1995,6 @@ export {
3414
1995
  Popover,
3415
1996
  PopoverContent,
3416
1997
  PopoverTrigger,
3417
- PreferencesTemplate,
3418
- PreferencesTemplateComponent,
3419
- ProfileTemplate,
3420
- ProfileTemplateComponent,
3421
1998
  Progress,
3422
1999
  RadioGroup,
3423
2000
  RadioGroupItem,
@@ -3451,11 +2028,7 @@ export {
3451
2028
  SidebarItem,
3452
2029
  SidebarSection,
3453
2030
  SidebarSectionTitle,
3454
- SignupTemplate,
3455
- SignupTemplateComponent,
3456
2031
  Skeleton,
3457
- SuccessTemplate,
3458
- SuccessTemplateComponent,
3459
2032
  Switch,
3460
2033
  Table,
3461
2034
  TableBody,
@@ -3469,7 +2042,6 @@ export {
3469
2042
  TabsContent,
3470
2043
  TabsList,
3471
2044
  TabsTrigger,
3472
- TemplateRegistry,
3473
2045
  Textarea,
3474
2046
  Toast,
3475
2047
  ToastAction,
@@ -3482,8 +2054,6 @@ export {
3482
2054
  TooltipContent,
3483
2055
  TooltipProvider,
3484
2056
  TooltipTrigger,
3485
- VerificationTemplate,
3486
- VerificationTemplateComponent,
3487
2057
  badgeVariants,
3488
2058
  buttonVariants,
3489
2059
  cn,
@@ -3501,7 +2071,6 @@ export {
3501
2071
  setThemeId,
3502
2072
  sidebarVariants,
3503
2073
  slideVariants,
3504
- templateRegistry,
3505
2074
  themeToCSS,
3506
2075
  tokenVars,
3507
2076
  transitions,