@enadhq/enad-react-sdk 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/dist/client/cart/components/cart-drawer.mjs +3 -3
  2. package/dist/client/cart/components/cart-drawer.mjs.map +1 -1
  3. package/dist/client/cart/components/cart-trigger.mjs +1 -1
  4. package/dist/client/cart/components/cart-trigger.mjs.map +1 -1
  5. package/dist/client/storefront/checkout/cart-summary.mjs +1 -1
  6. package/dist/client/storefront/checkout/cart-summary.mjs.map +1 -1
  7. package/dist/client/storefront/components/language-selector.d.ts.map +1 -1
  8. package/dist/client/storefront/components/language-selector.mjs +1 -1
  9. package/dist/client/storefront/components/language-selector.mjs.map +1 -1
  10. package/dist/client/storefront/filters/filter-chip.mjs +1 -1
  11. package/dist/client/storefront/filters/filter-chip.mjs.map +1 -1
  12. package/dist/client/storefront/filters/filter-panel.mjs +1 -1
  13. package/dist/client/storefront/filters/filter-panel.mjs.map +1 -1
  14. package/dist/client/storefront/filters/toggle-list-view.mjs +1 -1
  15. package/dist/client/storefront/filters/toggle-list-view.mjs.map +1 -1
  16. package/dist/client/storefront/layout/promotion-bar.d.ts.map +1 -1
  17. package/dist/client/storefront/layout/promotion-bar.mjs +3 -3
  18. package/dist/client/storefront/layout/promotion-bar.mjs.map +1 -1
  19. package/dist/client/storefront/primitives/button.d.ts +2 -2
  20. package/dist/client/storefront/primitives/button.d.ts.map +1 -1
  21. package/dist/client/storefront/primitives/button.mjs +4 -4
  22. package/dist/client/storefront/primitives/button.mjs.map +1 -1
  23. package/dist/client/storefront/primitives/input.d.ts +1 -1
  24. package/dist/client/storefront/primitives/input.mjs.map +1 -1
  25. package/dist/client/storefront/primitives/pagination.mjs +2 -2
  26. package/dist/client/storefront/primitives/pagination.mjs.map +1 -1
  27. package/dist/client/storefront/product/quantity-picker.mjs +2 -2
  28. package/dist/client/storefront/product/quantity-picker.mjs.map +1 -1
  29. package/dist/client/storefront/types.d.ts +1 -1
  30. package/dist/client/storefront/types.d.ts.map +1 -1
  31. package/dist/client/storefront/types.mjs.map +1 -1
  32. package/dist/client/ui/accordion.d.ts +12 -1
  33. package/dist/client/ui/accordion.d.ts.map +1 -1
  34. package/dist/client/ui/accordion.mjs +23 -5
  35. package/dist/client/ui/accordion.mjs.map +1 -1
  36. package/dist/client/ui/alert.d.ts +16 -7
  37. package/dist/client/ui/alert.d.ts.map +1 -1
  38. package/dist/client/ui/alert.mjs +21 -8
  39. package/dist/client/ui/alert.mjs.map +1 -1
  40. package/dist/client/ui/avatar.d.ts +10 -1
  41. package/dist/client/ui/avatar.d.ts.map +1 -1
  42. package/dist/client/ui/avatar.mjs +18 -4
  43. package/dist/client/ui/avatar.mjs.map +1 -1
  44. package/dist/client/ui/breadcrumb.d.ts +13 -1
  45. package/dist/client/ui/breadcrumb.d.ts.map +1 -1
  46. package/dist/client/ui/breadcrumb.mjs +27 -7
  47. package/dist/client/ui/breadcrumb.mjs.map +1 -1
  48. package/dist/client/ui/button.d.ts +28 -10
  49. package/dist/client/ui/button.d.ts.map +1 -1
  50. package/dist/client/ui/button.mjs +45 -20
  51. package/dist/client/ui/button.mjs.map +1 -1
  52. package/dist/client/ui/card.d.ts +20 -1
  53. package/dist/client/ui/card.d.ts.map +1 -1
  54. package/dist/client/ui/card.mjs +36 -8
  55. package/dist/client/ui/card.mjs.map +1 -1
  56. package/dist/client/ui/carousel.d.ts.map +1 -1
  57. package/dist/client/ui/carousel.mjs +2 -2
  58. package/dist/client/ui/carousel.mjs.map +1 -1
  59. package/dist/client/ui/checkbox.d.ts +9 -1
  60. package/dist/client/ui/checkbox.d.ts.map +1 -1
  61. package/dist/client/ui/checkbox.mjs +12 -3
  62. package/dist/client/ui/checkbox.mjs.map +1 -1
  63. package/dist/client/ui/dialog.d.ts +13 -1
  64. package/dist/client/ui/dialog.d.ts.map +1 -1
  65. package/dist/client/ui/dialog.mjs +27 -7
  66. package/dist/client/ui/dialog.mjs.map +1 -1
  67. package/dist/client/ui/hover-card.d.ts +6 -1
  68. package/dist/client/ui/hover-card.d.ts.map +1 -1
  69. package/dist/client/ui/hover-card.mjs +4 -2
  70. package/dist/client/ui/hover-card.mjs.map +1 -1
  71. package/dist/client/ui/input.d.ts +20 -7
  72. package/dist/client/ui/input.d.ts.map +1 -1
  73. package/dist/client/ui/input.mjs +33 -9
  74. package/dist/client/ui/input.mjs.map +1 -1
  75. package/dist/client/ui/label.d.ts +6 -1
  76. package/dist/client/ui/label.d.ts.map +1 -1
  77. package/dist/client/ui/label.mjs +4 -2
  78. package/dist/client/ui/label.mjs.map +1 -1
  79. package/dist/client/ui/navigation-menu.d.ts +20 -3
  80. package/dist/client/ui/navigation-menu.d.ts.map +1 -1
  81. package/dist/client/ui/navigation-menu.mjs +34 -12
  82. package/dist/client/ui/navigation-menu.mjs.map +1 -1
  83. package/dist/client/ui/pagination.d.ts.map +1 -1
  84. package/dist/client/ui/pagination.mjs +3 -3
  85. package/dist/client/ui/pagination.mjs.map +1 -1
  86. package/dist/client/ui/popover.d.ts +11 -1
  87. package/dist/client/ui/popover.d.ts.map +1 -1
  88. package/dist/client/ui/popover.mjs +21 -5
  89. package/dist/client/ui/popover.mjs.map +1 -1
  90. package/dist/client/ui/progress.d.ts +9 -1
  91. package/dist/client/ui/progress.d.ts.map +1 -1
  92. package/dist/client/ui/progress.mjs +12 -3
  93. package/dist/client/ui/progress.mjs.map +1 -1
  94. package/dist/client/ui/select.d.ts +14 -2
  95. package/dist/client/ui/select.d.ts.map +1 -1
  96. package/dist/client/ui/select.mjs +35 -9
  97. package/dist/client/ui/select.mjs.map +1 -1
  98. package/dist/client/ui/separator.d.ts +6 -1
  99. package/dist/client/ui/separator.d.ts.map +1 -1
  100. package/dist/client/ui/separator.mjs +4 -2
  101. package/dist/client/ui/separator.mjs.map +1 -1
  102. package/dist/client/ui/sheet.d.ts +13 -1
  103. package/dist/client/ui/sheet.d.ts.map +1 -1
  104. package/dist/client/ui/sheet.mjs +35 -7
  105. package/dist/client/ui/sheet.mjs.map +1 -1
  106. package/dist/client/ui/slot-wrapper.d.ts +28 -0
  107. package/dist/client/ui/slot-wrapper.d.ts.map +1 -0
  108. package/dist/client/ui/slot-wrapper.mjs +38 -0
  109. package/dist/client/ui/slot-wrapper.mjs.map +1 -0
  110. package/dist/client/ui/tabs.d.ts +11 -1
  111. package/dist/client/ui/tabs.d.ts.map +1 -1
  112. package/dist/client/ui/tabs.mjs +21 -5
  113. package/dist/client/ui/tabs.mjs.map +1 -1
  114. package/dist/client/ui/toggle-group.d.ts +7 -4
  115. package/dist/client/ui/toggle-group.d.ts.map +1 -1
  116. package/dist/client/ui/toggle-group.mjs +4 -4
  117. package/dist/client/ui/toggle-group.mjs.map +1 -1
  118. package/dist/client/ui/toggle.d.ts +17 -8
  119. package/dist/client/ui/toggle.d.ts.map +1 -1
  120. package/dist/client/ui/toggle.mjs +11 -9
  121. package/dist/client/ui/toggle.mjs.map +1 -1
  122. package/dist/client/ui/tooltip.d.ts +6 -1
  123. package/dist/client/ui/tooltip.d.ts.map +1 -1
  124. package/dist/client/ui/tooltip.mjs +4 -2
  125. package/dist/client/ui/tooltip.mjs.map +1 -1
  126. package/dist/client/ui-resolver/button.d.ts +3 -4
  127. package/dist/client/ui-resolver/button.d.ts.map +1 -1
  128. package/dist/client/ui-resolver/button.mjs +2 -2
  129. package/dist/client/ui-resolver/button.mjs.map +1 -1
  130. package/dist/client/ui-resolver/card.d.ts +14 -1
  131. package/dist/client/ui-resolver/card.d.ts.map +1 -1
  132. package/dist/client/ui-resolver/card.mjs +3 -2
  133. package/dist/client/ui-resolver/card.mjs.map +1 -1
  134. package/dist/client/ui-resolver/context.mjs +1 -1
  135. package/dist/client/ui-resolver/context.mjs.map +1 -1
  136. package/dist/client/ui-resolver/index.d.ts +7 -4
  137. package/dist/client/ui-resolver/index.mjs +6 -4
  138. package/dist/client/ui-resolver/input.d.ts +3 -4
  139. package/dist/client/ui-resolver/input.d.ts.map +1 -1
  140. package/dist/client/ui-resolver/input.mjs +2 -2
  141. package/dist/client/ui-resolver/input.mjs.map +1 -1
  142. package/dist/client/ui-resolver/navigation-menu.d.ts +1 -2
  143. package/dist/client/ui-resolver/navigation-menu.d.ts.map +1 -1
  144. package/dist/client/ui-resolver/recipe.d.ts +95 -0
  145. package/dist/client/ui-resolver/recipe.d.ts.map +1 -0
  146. package/dist/client/ui-resolver/recipe.mjs +134 -0
  147. package/dist/client/ui-resolver/recipe.mjs.map +1 -0
  148. package/dist/client/ui-resolver/toggle.d.ts +2 -2
  149. package/dist/client/ui-resolver/toggle.mjs +2 -2
  150. package/dist/client/ui-resolver/toggle.mjs.map +1 -1
  151. package/dist/client/ui-resolver/types.d.ts +14 -0
  152. package/dist/client/ui-resolver/types.d.ts.map +1 -0
  153. package/dist/client/ui-resolver/types.mjs +1 -0
  154. package/dist/client/wishlist/wishlist-drawer.mjs +4 -4
  155. package/dist/client/wishlist/wishlist-drawer.mjs.map +1 -1
  156. package/dist/styles.css +1 -1
  157. package/package.json +2 -2
@@ -1,9 +1,29 @@
1
1
  "use client";
2
2
  import { cn } from "./utils.mjs";
3
+ import { defineSlotRecipe } from "../ui-resolver/recipe.mjs";
3
4
  import "react";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
6
  import { Dialog as Dialog$1 } from "radix-ui";
6
7
  //#region src/client/ui/dialog.tsx
8
+ const dialogRecipe = defineSlotRecipe({
9
+ slots: [
10
+ "overlay",
11
+ "content",
12
+ "header",
13
+ "footer",
14
+ "title",
15
+ "description"
16
+ ],
17
+ base: {
18
+ overlay: "fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
19
+ content: "fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-[var(--enad-card-radius)] border bg-background p-6 shadow-[var(--enad-shadow-lg)] duration-200 sm:max-w-lg 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%]",
20
+ header: "flex flex-col gap-2 text-center sm:text-left",
21
+ footer: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",
22
+ title: "text-lg font-semibold leading-none",
23
+ description: "text-sm text-muted-foreground"
24
+ }
25
+ });
26
+ const defaultClasses = dialogRecipe();
7
27
  function Dialog({ ...props }) {
8
28
  return /* @__PURE__ */ jsx(Dialog$1.Root, {
9
29
  "data-slot": "dialog",
@@ -31,14 +51,14 @@ function DialogClose({ ...props }) {
31
51
  function DialogOverlay({ className, ...props }) {
32
52
  return /* @__PURE__ */ jsx(Dialog$1.Overlay, {
33
53
  "data-slot": "dialog-overlay",
34
- className: cn("fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0", className),
54
+ className: cn(defaultClasses.overlay, className),
35
55
  ...props
36
56
  });
37
57
  }
38
58
  function DialogContent({ className, children, ...props }) {
39
59
  return /* @__PURE__ */ jsxs(DialogPortal, { children: [/* @__PURE__ */ jsx(DialogOverlay, {}), /* @__PURE__ */ jsx(Dialog$1.Content, {
40
60
  "data-slot": "dialog-content",
41
- className: cn("fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-[var(--enad-card-radius)] border bg-background p-6 shadow-[var(--enad-shadow-lg)] duration-200 sm:max-w-lg 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%]", className),
61
+ className: cn(defaultClasses.content, className),
42
62
  ...props,
43
63
  children
44
64
  })] });
@@ -46,32 +66,32 @@ function DialogContent({ className, children, ...props }) {
46
66
  function DialogHeader({ className, ...props }) {
47
67
  return /* @__PURE__ */ jsx("div", {
48
68
  "data-slot": "dialog-header",
49
- className: cn("flex flex-col gap-2 text-center sm:text-left", className),
69
+ className: cn(defaultClasses.header, className),
50
70
  ...props
51
71
  });
52
72
  }
53
73
  function DialogFooter({ className, ...props }) {
54
74
  return /* @__PURE__ */ jsx("div", {
55
75
  "data-slot": "dialog-footer",
56
- className: cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className),
76
+ className: cn(defaultClasses.footer, className),
57
77
  ...props
58
78
  });
59
79
  }
60
80
  function DialogTitle({ className, ...props }) {
61
81
  return /* @__PURE__ */ jsx(Dialog$1.Title, {
62
82
  "data-slot": "dialog-title",
63
- className: cn("text-lg font-semibold leading-none", className),
83
+ className: cn(defaultClasses.title, className),
64
84
  ...props
65
85
  });
66
86
  }
67
87
  function DialogDescription({ className, ...props }) {
68
88
  return /* @__PURE__ */ jsx(Dialog$1.Description, {
69
89
  "data-slot": "dialog-description",
70
- className: cn("text-sm text-muted-foreground", className),
90
+ className: cn(defaultClasses.description, className),
71
91
  ...props
72
92
  });
73
93
  }
74
94
  //#endregion
75
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
95
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, dialogRecipe };
76
96
 
77
97
  //# sourceMappingURL=dialog.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.mjs","names":["DialogPrimitive"],"sources":["../../../src/client/ui/dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\n\nimport { cn } from \"./utils\";\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(\n \"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n className,\n )}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(\n \"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-[var(--enad-card-radius)] border bg-background p-6 shadow-[var(--enad-shadow-lg)] duration-200 sm:max-w-lg 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%]\",\n className,\n )}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-header\"\n className={cn(\"flex flex-col gap-2 text-center sm:text-left\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"dialog-footer\"\n className={cn(\"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(\"text-lg font-semibold leading-none\", className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(\"text-sm text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogClose,\n DialogOverlay,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n};\n"],"mappings":";;;;;;AAOA,SAAS,OAAO,EAAE,GAAG,SAA4D;AAC/E,QAAO,oBAACA,SAAgB,MAAjB;EAAsB,aAAU;EAAS,GAAI;EAAS,CAAA;;AAG/D,SAAS,cAAc,EAAE,GAAG,SAA+D;AACzF,QAAO,oBAACA,SAAgB,SAAjB;EAAyB,aAAU;EAAiB,GAAI;EAAS,CAAA;;AAG1E,SAAS,aAAa,EAAE,GAAG,SAA8D;AACvF,QAAO,oBAACA,SAAgB,QAAjB;EAAwB,aAAU;EAAgB,GAAI;EAAS,CAAA;;AAGxE,SAAS,YAAY,EAAE,GAAG,SAA6D;AACrF,QAAO,oBAACA,SAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAI;EAAS,CAAA;;AAGtE,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;AACvD,QACE,oBAACA,SAAgB,SAAjB;EACE,aAAU;EACV,WAAW,GACT,0JACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,cAAc,EACrB,WACA,UACA,GAAG,SACoD;AACvD,QACE,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,eAAD,EAAiB,CAAA,EACjB,oBAACA,SAAgB,SAAjB;EACE,aAAU;EACV,WAAW,GACT,mkBACA,UACD;EACD,GAAI;EAEH;EACuB,CAAA,CACb,EAAA,CAAA;;AAInB,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,gDAAgD,UAAU;EACxE,GAAI;EACJ,CAAA;;AAIN,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GAAG,0DAA0D,UAAU;EAClF,GAAI;EACJ,CAAA;;AAIN,SAAS,YAAY,EAAE,WAAW,GAAG,SAA6D;AAChG,QACE,oBAACA,SAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,sCAAsC,UAAU;EAC9D,GAAI;EACJ,CAAA;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAACA,SAAgB,aAAjB;EACE,aAAU;EACV,WAAW,GAAG,iCAAiC,UAAU;EACzD,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"dialog.mjs","names":["DialogPrimitive"],"sources":["../../../src/client/ui/dialog.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { Dialog as DialogPrimitive } from \"radix-ui\";\n\nimport { defineSlotRecipe } from \"../ui-resolver/recipe\";\nimport { cn } from \"./utils\";\n\nconst dialogRecipe = defineSlotRecipe({\n slots: [\"overlay\", \"content\", \"header\", \"footer\", \"title\", \"description\"] as const,\n base: {\n overlay:\n \"fixed inset-0 z-50 bg-black/50 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n content:\n \"fixed top-[50%] left-[50%] z-50 grid w-full max-w-[calc(100%-2rem)] translate-x-[-50%] translate-y-[-50%] gap-4 rounded-[var(--enad-card-radius)] border bg-background p-6 shadow-[var(--enad-shadow-lg)] duration-200 sm:max-w-lg 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%]\",\n header: \"flex flex-col gap-2 text-center sm:text-left\",\n footer: \"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end\",\n title: \"text-lg font-semibold leading-none\",\n description: \"text-sm text-muted-foreground\",\n },\n});\n\nconst defaultClasses = dialogRecipe();\n\nfunction Dialog({ ...props }: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogTrigger({ ...props }: React.ComponentProps<typeof DialogPrimitive.Trigger>) {\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\n}\n\nfunction DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>) {\n return <DialogPrimitive.Portal data-slot=\"dialog-portal\" {...props} />;\n}\n\nfunction DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogOverlay({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Overlay>) {\n return (\n <DialogPrimitive.Overlay\n data-slot=\"dialog-overlay\"\n className={cn(defaultClasses.overlay, className)}\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <DialogPortal>\n <DialogOverlay />\n <DialogPrimitive.Content\n data-slot=\"dialog-content\"\n className={cn(defaultClasses.content, className)}\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </DialogPortal>\n );\n}\n\nfunction DialogHeader({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-header\" className={cn(defaultClasses.header, className)} {...props} />\n );\n}\n\nfunction DialogFooter({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div data-slot=\"dialog-footer\" className={cn(defaultClasses.footer, className)} {...props} />\n );\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n data-slot=\"dialog-title\"\n className={cn(defaultClasses.title, className)}\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n data-slot=\"dialog-description\"\n className={cn(defaultClasses.description, className)}\n {...props}\n />\n );\n}\n\nexport {\n Dialog,\n DialogTrigger,\n DialogPortal,\n DialogClose,\n DialogOverlay,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n dialogRecipe,\n};\n"],"mappings":";;;;;;;AAQA,MAAM,eAAe,iBAAiB;CACpC,OAAO;EAAC;EAAW;EAAW;EAAU;EAAU;EAAS;EAAc;CACzE,MAAM;EACJ,SACE;EACF,SACE;EACF,QAAQ;EACR,QAAQ;EACR,OAAO;EACP,aAAa;EACd;CACF,CAAC;AAEF,MAAM,iBAAiB,cAAc;AAErC,SAAS,OAAO,EAAE,GAAG,SAA4D;AAC/E,QAAO,oBAACA,SAAgB,MAAjB;EAAsB,aAAU;EAAS,GAAI;EAAS,CAAA;;AAG/D,SAAS,cAAc,EAAE,GAAG,SAA+D;AACzF,QAAO,oBAACA,SAAgB,SAAjB;EAAyB,aAAU;EAAiB,GAAI;EAAS,CAAA;;AAG1E,SAAS,aAAa,EAAE,GAAG,SAA8D;AACvF,QAAO,oBAACA,SAAgB,QAAjB;EAAwB,aAAU;EAAgB,GAAI;EAAS,CAAA;;AAGxE,SAAS,YAAY,EAAE,GAAG,SAA6D;AACrF,QAAO,oBAACA,SAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAI;EAAS,CAAA;;AAGtE,SAAS,cAAc,EACrB,WACA,GAAG,SACoD;AACvD,QACE,oBAACA,SAAgB,SAAjB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,SAAS,UAAU;EAChD,GAAI;EACJ,CAAA;;AAIN,SAAS,cAAc,EACrB,WACA,UACA,GAAG,SACoD;AACvD,QACE,qBAAC,cAAD,EAAA,UAAA,CACE,oBAAC,eAAD,EAAiB,CAAA,EACjB,oBAACA,SAAgB,SAAjB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,SAAS,UAAU;EAChD,GAAI;EAEH;EACuB,CAAA,CACb,EAAA,CAAA;;AAInB,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC,OAAD;EAAK,aAAU;EAAgB,WAAW,GAAG,eAAe,QAAQ,UAAU;EAAE,GAAI;EAAS,CAAA;;AAIjG,SAAS,aAAa,EAAE,WAAW,GAAG,SAAsC;AAC1E,QACE,oBAAC,OAAD;EAAK,aAAU;EAAgB,WAAW,GAAG,eAAe,QAAQ,UAAU;EAAE,GAAI;EAAS,CAAA;;AAIjG,SAAS,YAAY,EAAE,WAAW,GAAG,SAA6D;AAChG,QACE,oBAACA,SAAgB,OAAjB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,OAAO,UAAU;EAC9C,GAAI;EACJ,CAAA;;AAIN,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;AAC3D,QACE,oBAACA,SAAgB,aAAjB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,aAAa,UAAU;EACpD,GAAI;EACJ,CAAA"}
@@ -3,6 +3,11 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { HoverCard as HoverCard$1 } from "radix-ui";
4
4
 
5
5
  //#region src/client/ui/hover-card.d.ts
6
+ declare const hoverCardContentRecipe: (props?: ({
7
+ [x: string]: string | undefined;
8
+ } & {
9
+ className?: string;
10
+ }) | undefined) => string;
6
11
  declare function HoverCard({
7
12
  ...props
8
13
  }: React$1.ComponentProps<typeof HoverCard$1.Root>): react_jsx_runtime0.JSX.Element;
@@ -16,5 +21,5 @@ declare function HoverCardContent({
16
21
  ...props
17
22
  }: React$1.ComponentProps<typeof HoverCard$1.Content>): react_jsx_runtime0.JSX.Element;
18
23
  //#endregion
19
- export { HoverCard, HoverCardContent, HoverCardTrigger };
24
+ export { HoverCard, HoverCardContent, HoverCardTrigger, hoverCardContentRecipe };
20
25
  //# sourceMappingURL=hover-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.d.ts","names":[],"sources":["../../../src/client/ui/hover-card.tsx"],"mappings":";;;;;iBAOS,SAAA,CAAA;EAAA,GAAe;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAI5E,gBAAA,CAAA;EAAA,GAAsB;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAItF,gBAAA,CAAA;EACP,SAAA;EACA,KAAA;EACA,UAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"hover-card.d.ts","names":[],"sources":["../../../src/client/ui/hover-card.tsx"],"mappings":";;;;;cAQM,sBAAA,GAAsB,KAAA;EAAA;;;;iBAInB,SAAA,CAAA;EAAA,GAAe;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAI5E,gBAAA,CAAA;EAAA,GAAsB;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAItF,gBAAA,CAAA;EACP,SAAA;EACA,KAAA;EACA,UAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,WAAA,CAAmB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,9 +1,11 @@
1
1
  "use client";
2
2
  import { cn } from "./utils.mjs";
3
+ import { defineRecipe } from "../ui-resolver/recipe.mjs";
3
4
  import "react";
4
5
  import { jsx } from "react/jsx-runtime";
5
6
  import { HoverCard as HoverCard$1 } from "radix-ui";
6
7
  //#region src/client/ui/hover-card.tsx
8
+ const hoverCardContentRecipe = defineRecipe({ base: "z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-[var(--enad-card-radius)] border bg-popover p-4 text-popover-foreground shadow-[var(--enad-shadow-md)] outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95" });
7
9
  function HoverCard({ ...props }) {
8
10
  return /* @__PURE__ */ jsx(HoverCard$1.Root, {
9
11
  "data-slot": "hover-card",
@@ -21,11 +23,11 @@ function HoverCardContent({ className, align = "center", sideOffset = 4, ...prop
21
23
  "data-slot": "hover-card-content",
22
24
  align,
23
25
  sideOffset,
24
- className: cn("z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-[var(--enad-card-radius)] border bg-popover p-4 text-popover-foreground shadow-[var(--enad-shadow-md)] outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95", className),
26
+ className: cn(hoverCardContentRecipe({ className })),
25
27
  ...props
26
28
  }) });
27
29
  }
28
30
  //#endregion
29
- export { HoverCard, HoverCardContent, HoverCardTrigger };
31
+ export { HoverCard, HoverCardContent, HoverCardTrigger, hoverCardContentRecipe };
30
32
 
31
33
  //# sourceMappingURL=hover-card.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.mjs","names":["HoverCardPrimitive"],"sources":["../../../src/client/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { HoverCard as HoverCardPrimitive } from \"radix-ui\";\n\nimport { cn } from \"./utils\";\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal>\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-[var(--enad-card-radius)] border bg-popover p-4 text-popover-foreground shadow-[var(--enad-shadow-md)] outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n className,\n )}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent };\n"],"mappings":";;;;;;AAOA,SAAS,UAAU,EAAE,GAAG,SAA+D;AACrF,QAAO,oBAACA,YAAmB,MAApB;EAAyB,aAAU;EAAa,GAAI;EAAS,CAAA;;AAGtE,SAAS,iBAAiB,EAAE,GAAG,SAAkE;AAC/F,QAAO,oBAACA,YAAmB,SAApB;EAA4B,aAAU;EAAqB,GAAI;EAAS,CAAA;;AAGjF,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;AAC1D,QACE,oBAACA,YAAmB,QAApB,EAAA,UACE,oBAACA,YAAmB,SAApB;EACE,aAAU;EACH;EACK;EACZ,WAAW,GACT,ihBACA,UACD;EACD,GAAI;EACJ,CAAA,EACwB,CAAA"}
1
+ {"version":3,"file":"hover-card.mjs","names":["HoverCardPrimitive"],"sources":["../../../src/client/ui/hover-card.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { HoverCard as HoverCardPrimitive } from \"radix-ui\";\n\nimport { defineRecipe } from \"../ui-resolver/recipe\";\nimport { cn } from \"./utils\";\n\nconst hoverCardContentRecipe = defineRecipe({\n base: \"z-50 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-[var(--enad-card-radius)] border bg-popover p-4 text-popover-foreground shadow-[var(--enad-shadow-md)] outline-hidden data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95\",\n});\n\nfunction HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>) {\n return <HoverCardPrimitive.Root data-slot=\"hover-card\" {...props} />;\n}\n\nfunction HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {\n return <HoverCardPrimitive.Trigger data-slot=\"hover-card-trigger\" {...props} />;\n}\n\nfunction HoverCardContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {\n return (\n <HoverCardPrimitive.Portal>\n <HoverCardPrimitive.Content\n data-slot=\"hover-card-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(hoverCardContentRecipe({ className }))}\n {...props}\n />\n </HoverCardPrimitive.Portal>\n );\n}\n\nexport { HoverCard, HoverCardTrigger, HoverCardContent, hoverCardContentRecipe };\n"],"mappings":";;;;;;;AAQA,MAAM,yBAAyB,aAAa,EAC1C,MAAM,ihBACP,CAAC;AAEF,SAAS,UAAU,EAAE,GAAG,SAA+D;AACrF,QAAO,oBAACA,YAAmB,MAApB;EAAyB,aAAU;EAAa,GAAI;EAAS,CAAA;;AAGtE,SAAS,iBAAiB,EAAE,GAAG,SAAkE;AAC/F,QAAO,oBAACA,YAAmB,SAApB;EAA4B,aAAU;EAAqB,GAAI;EAAS,CAAA;;AAGjF,SAAS,iBAAiB,EACxB,WACA,QAAQ,UACR,aAAa,GACb,GAAG,SACuD;AAC1D,QACE,oBAACA,YAAmB,QAApB,EAAA,UACE,oBAACA,YAAmB,SAApB;EACE,aAAU;EACH;EACK;EACZ,WAAW,GAAG,uBAAuB,EAAE,WAAW,CAAC,CAAC;EACpD,GAAI;EACJ,CAAA,EACwB,CAAA"}
@@ -1,18 +1,31 @@
1
1
  import * as React$1 from "react";
2
2
  import * as react_jsx_runtime0 from "react/jsx-runtime";
3
- import { VariantProps } from "class-variance-authority";
4
- import * as class_variance_authority_types0 from "class-variance-authority/types";
5
3
 
6
4
  //#region src/client/ui/input.d.ts
7
- declare const inputVariants: (props?: ({
8
- variant?: "bordered" | "underline" | null | undefined;
9
- } & class_variance_authority_types0.ClassProp) | undefined) => string;
5
+ declare const inputRecipe: (props?: ({
6
+ variant?: "outlined" | "plain" | undefined;
7
+ } & {
8
+ className?: string;
9
+ }) | undefined) => string;
10
+ type InputVariant = "outlined" | "plain";
11
+ interface InputProps extends React$1.ComponentProps<"input"> {
12
+ variant?: InputVariant;
13
+ startSlot?: React$1.ReactNode;
14
+ endSlot?: React$1.ReactNode;
15
+ }
10
16
  declare function Input({
11
17
  className,
12
18
  type,
13
19
  variant,
20
+ startSlot,
21
+ endSlot,
14
22
  ...props
15
- }: React$1.ComponentProps<"input"> & VariantProps<typeof inputVariants>): react_jsx_runtime0.JSX.Element;
23
+ }: InputProps): react_jsx_runtime0.JSX.Element;
24
+ declare const inputVariants: (props?: ({
25
+ variant?: "outlined" | "plain" | undefined;
26
+ } & {
27
+ className?: string;
28
+ }) | undefined) => string;
16
29
  //#endregion
17
- export { Input, inputVariants };
30
+ export { Input, type InputProps, type InputVariant, inputRecipe, inputVariants };
18
31
  //# sourceMappingURL=input.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.d.ts","names":[],"sources":["../../../src/client/ui/input.tsx"],"mappings":";;;;;;cAKM,aAAA,GAAa,KAAA;;IAsBlB,+BAAA,CAAA,SAAA;AAAA,iBAEQ,KAAA,CAAA;EACP,SAAA;EACA,IAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,YAA0B,YAAA,QAAoB,aAAA,IAAc,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"input.d.ts","names":[],"sources":["../../../src/client/ui/input.tsx"],"mappings":";;;;cAKM,WAAA,GAAW,KAAA;;;;;KAsBZ,YAAA;AAAA,UAEK,UAAA,SAAmB,OAAA,CAAM,cAAA;EACjC,OAAA,GAAU,YAAA;EACV,SAAA,GAAY,OAAA,CAAM,SAAA;EAClB,OAAA,GAAU,OAAA,CAAM,SAAA;AAAA;AAAA,iBAGT,KAAA,CAAA;EACP,SAAA;EACA,IAAA;EACA,OAAA;EACA,SAAA;EACA,OAAA;EAAA,GACG;AAAA,GACF,UAAA,GAAU,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAuCP,aAAA,GAAa,KAAA"}
@@ -1,28 +1,52 @@
1
1
  import { cn } from "./utils.mjs";
2
+ import { defineRecipe } from "../ui-resolver/recipe.mjs";
2
3
  import "react";
3
- import { jsx } from "react/jsx-runtime";
4
- import { cva } from "class-variance-authority";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
5
  //#region src/client/ui/input.tsx
6
- const inputVariants = cva("w-full min-w-0 bg-transparent text-base transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", {
6
+ const inputRecipe = defineRecipe({
7
+ base: "w-full min-w-0 bg-transparent text-base transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
7
8
  variants: { variant: {
8
- bordered: cn("h-[var(--enad-control-height)] rounded-[var(--enad-input-radius)] border border-input px-3 py-1 shadow-xs dark:bg-input/30", "file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40"),
9
- underline: cn("border-b border-input pb-2 pr-8", "focus-visible:border-foreground", "aria-invalid:border-destructive")
9
+ outlined: cn("h-[var(--enad-input-height)] rounded-[var(--enad-input-radius)] border border-input px-[var(--enad-input-px)] py-1 shadow-xs dark:bg-input/30", "file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground", "focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50", "aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40"),
10
+ plain: cn("border-b border-input pb-2 pr-8", "focus-visible:border-foreground", "aria-invalid:border-destructive")
10
11
  } },
11
- defaultVariants: { variant: "bordered" }
12
+ defaultVariants: { variant: "outlined" }
12
13
  });
13
- function Input({ className, type, variant = "bordered", ...props }) {
14
+ function Input({ className, type, variant = "outlined", startSlot, endSlot, ...props }) {
15
+ if (startSlot || endSlot) return /* @__PURE__ */ jsxs("div", {
16
+ className: cn(inputRecipe({ variant }), "flex items-center gap-2", className),
17
+ children: [
18
+ startSlot && /* @__PURE__ */ jsx("span", {
19
+ "aria-hidden": "true",
20
+ className: "shrink-0 text-muted-foreground [&_svg]:size-4",
21
+ children: startSlot
22
+ }),
23
+ /* @__PURE__ */ jsx("input", {
24
+ type,
25
+ "data-slot": "input",
26
+ "data-variant": variant,
27
+ className: "min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground",
28
+ ...props
29
+ }),
30
+ endSlot && /* @__PURE__ */ jsx("span", {
31
+ "aria-hidden": "true",
32
+ className: "shrink-0 text-muted-foreground [&_svg]:size-4",
33
+ children: endSlot
34
+ })
35
+ ]
36
+ });
14
37
  return /* @__PURE__ */ jsx("input", {
15
38
  type,
16
39
  "data-slot": "input",
17
40
  "data-variant": variant,
18
- className: cn(inputVariants({
41
+ className: cn(inputRecipe({
19
42
  variant,
20
43
  className
21
44
  })),
22
45
  ...props
23
46
  });
24
47
  }
48
+ const inputVariants = inputRecipe;
25
49
  //#endregion
26
- export { Input, inputVariants };
50
+ export { Input, inputRecipe, inputVariants };
27
51
 
28
52
  //# sourceMappingURL=input.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"input.mjs","names":[],"sources":["../../../src/client/ui/input.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport { cn } from \"./utils\";\n\nconst inputVariants = cva(\n \"w-full min-w-0 bg-transparent text-base transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n {\n variants: {\n variant: {\n bordered: cn(\n \"h-[var(--enad-control-height)] rounded-[var(--enad-input-radius)] border border-input px-3 py-1 shadow-xs dark:bg-input/30\",\n \"file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n ),\n underline: cn(\n \"border-b border-input pb-2 pr-8\",\n \"focus-visible:border-foreground\",\n \"aria-invalid:border-destructive\",\n ),\n },\n },\n defaultVariants: {\n variant: \"bordered\",\n },\n },\n);\n\nfunction Input({\n className,\n type,\n variant = \"bordered\",\n ...props\n}: React.ComponentProps<\"input\"> & VariantProps<typeof inputVariants>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n data-variant={variant}\n className={cn(inputVariants({ variant, className }))}\n {...props}\n />\n );\n}\n\nexport { Input, inputVariants };\n"],"mappings":";;;;;AAKA,MAAM,gBAAgB,IACpB,uQACA;CACE,UAAU,EACR,SAAS;EACP,UAAU,GACR,8HACA,kHACA,iFACA,yGACD;EACD,WAAW,GACT,mCACA,mCACA,kCACD;EACF,EACF;CACD,iBAAiB,EACf,SAAS,YACV;CACF,CACF;AAED,SAAS,MAAM,EACb,WACA,MACA,UAAU,YACV,GAAG,SACkE;AACrE,QACE,oBAAC,SAAD;EACQ;EACN,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,cAAc;GAAE;GAAS;GAAW,CAAC,CAAC;EACpD,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"input.mjs","names":[],"sources":["../../../src/client/ui/input.tsx"],"sourcesContent":["import * as React from \"react\";\n\nimport { defineRecipe } from \"../ui-resolver/recipe\";\nimport { cn } from \"./utils\";\n\nconst inputRecipe = defineRecipe({\n base: \"w-full min-w-0 bg-transparent text-base transition-[color,box-shadow] outline-none selection:bg-primary selection:text-primary-foreground placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n variants: {\n variant: {\n outlined: cn(\n \"h-[var(--enad-input-height)] rounded-[var(--enad-input-radius)] border border-input px-[var(--enad-input-px)] py-1 shadow-xs dark:bg-input/30\",\n \"file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground\",\n \"focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50\",\n \"aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40\",\n ),\n plain: cn(\n \"border-b border-input pb-2 pr-8\",\n \"focus-visible:border-foreground\",\n \"aria-invalid:border-destructive\",\n ),\n },\n },\n defaultVariants: {\n variant: \"outlined\",\n },\n});\n\ntype InputVariant = \"outlined\" | \"plain\";\n\ninterface InputProps extends React.ComponentProps<\"input\"> {\n variant?: InputVariant;\n startSlot?: React.ReactNode;\n endSlot?: React.ReactNode;\n}\n\nfunction Input({\n className,\n type,\n variant = \"outlined\",\n startSlot,\n endSlot,\n ...props\n}: InputProps) {\n if (startSlot || endSlot) {\n return (\n <div className={cn(inputRecipe({ variant }), \"flex items-center gap-2\", className)}>\n {startSlot && (\n <span aria-hidden=\"true\" className=\"shrink-0 text-muted-foreground [&_svg]:size-4\">\n {startSlot}\n </span>\n )}\n <input\n type={type}\n data-slot=\"input\"\n data-variant={variant}\n className=\"min-w-0 flex-1 bg-transparent outline-none placeholder:text-muted-foreground\"\n {...props}\n />\n {endSlot && (\n <span aria-hidden=\"true\" className=\"shrink-0 text-muted-foreground [&_svg]:size-4\">\n {endSlot}\n </span>\n )}\n </div>\n );\n }\n\n return (\n <input\n type={type}\n data-slot=\"input\"\n data-variant={variant}\n className={cn(inputRecipe({ variant, className }))}\n {...props}\n />\n );\n}\n\nexport { Input, inputRecipe, type InputProps, type InputVariant };\n\n// Backward compat\nconst inputVariants = inputRecipe;\nexport { inputVariants };\n"],"mappings":";;;;;AAKA,MAAM,cAAc,aAAa;CAC/B,MAAM;CACN,UAAU,EACR,SAAS;EACP,UAAU,GACR,iJACA,kHACA,iFACA,yGACD;EACD,OAAO,GACL,mCACA,mCACA,kCACD;EACF,EACF;CACD,iBAAiB,EACf,SAAS,YACV;CACF,CAAC;AAUF,SAAS,MAAM,EACb,WACA,MACA,UAAU,YACV,WACA,SACA,GAAG,SACU;AACb,KAAI,aAAa,QACf,QACE,qBAAC,OAAD;EAAK,WAAW,GAAG,YAAY,EAAE,SAAS,CAAC,EAAE,2BAA2B,UAAU;YAAlF;GACG,aACC,oBAAC,QAAD;IAAM,eAAY;IAAO,WAAU;cAChC;IACI,CAAA;GAET,oBAAC,SAAD;IACQ;IACN,aAAU;IACV,gBAAc;IACd,WAAU;IACV,GAAI;IACJ,CAAA;GACD,WACC,oBAAC,QAAD;IAAM,eAAY;IAAO,WAAU;cAChC;IACI,CAAA;GAEL;;AAIV,QACE,oBAAC,SAAD;EACQ;EACN,aAAU;EACV,gBAAc;EACd,WAAW,GAAG,YAAY;GAAE;GAAS;GAAW,CAAC,CAAC;EAClD,GAAI;EACJ,CAAA;;AAON,MAAM,gBAAgB"}
@@ -3,10 +3,15 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { Label as Label$1 } from "radix-ui";
4
4
 
5
5
  //#region src/client/ui/label.d.ts
6
+ declare const labelRecipe: (props?: ({
7
+ [x: string]: string | undefined;
8
+ } & {
9
+ className?: string;
10
+ }) | undefined) => string;
6
11
  declare function Label({
7
12
  className,
8
13
  ...props
9
14
  }: React$1.ComponentProps<typeof Label$1.Root>): react_jsx_runtime0.JSX.Element;
10
15
  //#endregion
11
- export { Label };
16
+ export { Label, labelRecipe };
12
17
  //# sourceMappingURL=label.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.d.ts","names":[],"sources":["../../../src/client/ui/label.tsx"],"mappings":";;;;;iBAKS,KAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,OAAA,CAAe,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"label.d.ts","names":[],"sources":["../../../src/client/ui/label.tsx"],"mappings":";;;;;cAMM,WAAA,GAAW,KAAA;EAAA;;;;iBAIR,KAAA,CAAA;EAAQ,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,OAAA,CAAe,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,16 +1,18 @@
1
1
  import { cn } from "./utils.mjs";
2
+ import { defineRecipe } from "../ui-resolver/recipe.mjs";
2
3
  import "react";
3
4
  import { jsx } from "react/jsx-runtime";
4
5
  import { Label as Label$1 } from "radix-ui";
5
6
  //#region src/client/ui/label.tsx
7
+ const labelRecipe = defineRecipe({ base: "flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50" });
6
8
  function Label({ className, ...props }) {
7
9
  return /* @__PURE__ */ jsx(Label$1.Root, {
8
10
  "data-slot": "label",
9
- className: cn("flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50", className),
11
+ className: cn(labelRecipe({ className })),
10
12
  ...props
11
13
  });
12
14
  }
13
15
  //#endregion
14
- export { Label };
16
+ export { Label, labelRecipe };
15
17
 
16
18
  //# sourceMappingURL=label.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"label.mjs","names":["LabelPrimitive"],"sources":["../../../src/client/ui/label.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { Label as LabelPrimitive } from \"radix-ui\"\n\nimport { cn } from \"./utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"mappings":";;;;;AAKA,SAAS,MAAM,EACb,WACA,GAAG,SACgD;AACnD,QACE,oBAACA,QAAe,MAAhB;EACE,aAAU;EACV,WAAW,GACT,uNACA,UACD;EACD,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"label.mjs","names":["LabelPrimitive"],"sources":["../../../src/client/ui/label.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { Label as LabelPrimitive } from \"radix-ui\";\n\nimport { defineRecipe } from \"../ui-resolver/recipe\";\nimport { cn } from \"./utils\";\n\nconst labelRecipe = defineRecipe({\n base: \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n});\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root data-slot=\"label\" className={cn(labelRecipe({ className }))} {...props} />\n );\n}\n\nexport { Label, labelRecipe };\n"],"mappings":";;;;;;AAMA,MAAM,cAAc,aAAa,EAC/B,MAAM,uNACP,CAAC;AAEF,SAAS,MAAM,EAAE,WAAW,GAAG,SAA2D;AACxF,QACE,oBAACA,QAAe,MAAhB;EAAqB,aAAU;EAAQ,WAAW,GAAG,YAAY,EAAE,WAAW,CAAC,CAAC;EAAE,GAAI;EAAS,CAAA"}
@@ -1,9 +1,27 @@
1
1
  import * as React$1 from "react";
2
2
  import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { NavigationMenu as NavigationMenu$1 } from "radix-ui";
4
- import * as class_variance_authority_types0 from "class-variance-authority/types";
5
4
 
6
5
  //#region src/client/ui/navigation-menu.d.ts
6
+ declare const navigationMenuRecipe: (props?: ({
7
+ [x: string]: string | undefined;
8
+ } & {
9
+ className?: Partial<Record<"root" | "item" | "content" | "list" | "link" | "indicator" | "viewport", string>> | undefined;
10
+ }) | undefined) => {
11
+ root: string;
12
+ item: string;
13
+ content: string;
14
+ list: string;
15
+ link: string;
16
+ indicator: string;
17
+ viewport: string;
18
+ };
19
+ declare const navigationMenuTriggerRecipe: (props?: ({
20
+ [x: string]: string | undefined;
21
+ } & {
22
+ className?: string;
23
+ }) | undefined) => string;
24
+ declare const navigationMenuTriggerStyle: () => string;
7
25
  declare function NavigationMenu({
8
26
  className,
9
27
  children,
@@ -20,7 +38,6 @@ declare function NavigationMenuItem({
20
38
  className,
21
39
  ...props
22
40
  }: React$1.ComponentProps<typeof NavigationMenu$1.Item>): react_jsx_runtime0.JSX.Element;
23
- declare const navigationMenuTriggerStyle: (props?: class_variance_authority_types0.ClassProp | undefined) => string;
24
41
  declare function NavigationMenuTrigger({
25
42
  className,
26
43
  children,
@@ -43,5 +60,5 @@ declare function NavigationMenuIndicator({
43
60
  ...props
44
61
  }: React$1.ComponentProps<typeof NavigationMenu$1.Indicator>): react_jsx_runtime0.JSX.Element;
45
62
  //#endregion
46
- export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
63
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuRecipe, navigationMenuTriggerRecipe, navigationMenuTriggerStyle };
47
64
  //# sourceMappingURL=navigation-menu.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-menu.d.ts","names":[],"sources":["../../../src/client/ui/navigation-menu.tsx"],"mappings":";;;;;;iBAOS,cAAA,CAAA;EACP,SAAA;EACA,QAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,IAAA;EACrD,QAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAiBQ,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAanD,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,cAUtD,0BAAA,GAA0B,KAAA,GAE/B,+BAAA,CAF+B,SAAA;AAAA,iBAIvB,qBAAA,CAAA;EACP,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAkBtD,qBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBActD,sBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,QAAA,IAAS,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAmBvD,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAanD,uBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,SAAA,IAAU,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"navigation-menu.d.ts","names":[],"sources":["../../../src/client/ui/navigation-menu.tsx"],"mappings":";;;;;cAOM,oBAAA,GAAoB,KAAA;EAAA;;cAcxB,OAAA,CAAA,MAAA;AAAA;;;;;;;;;cAEI,2BAAA,GAA2B,KAAA;EAAA;;;;cAK3B,0BAAA;AAAA,iBAIG,cAAA,CAAA;EACP,SAAA;EACA,QAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,IAAA;EACrD,QAAA;AAAA,IACD,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAcQ,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUnD,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUnD,qBAAA,CAAA;EACP,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAkBtD,qBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUtD,sBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,QAAA,IAAS,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAYvD,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUnD,uBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,gBAAA,CAAwB,SAAA,IAAU,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,15 +1,38 @@
1
1
  import { useIcon } from "../icons/icon-context.mjs";
2
2
  import { cn } from "./utils.mjs";
3
+ import { defineRecipe, defineSlotRecipe } from "../ui-resolver/recipe.mjs";
3
4
  import "react";
4
5
  import { jsx, jsxs } from "react/jsx-runtime";
5
- import { cva } from "class-variance-authority";
6
6
  import { NavigationMenu as NavigationMenu$1 } from "radix-ui";
7
7
  //#region src/client/ui/navigation-menu.tsx
8
+ const navigationMenuRecipe = defineSlotRecipe({
9
+ slots: [
10
+ "root",
11
+ "list",
12
+ "item",
13
+ "content",
14
+ "viewport",
15
+ "link",
16
+ "indicator"
17
+ ],
18
+ base: {
19
+ root: "group/navigation-menu relative flex max-w-max flex-1 items-center justify-center",
20
+ list: "group flex flex-1 list-none items-center justify-center gap-1",
21
+ item: "relative",
22
+ content: "top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95",
23
+ viewport: "origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-[var(--enad-card-radius)] border bg-popover text-popover-foreground shadow-[var(--enad-shadow-md)] data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]",
24
+ link: "flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none hover:bg-accent-muted hover:text-accent-muted-foreground focus:bg-accent-muted focus:text-accent-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:hover:bg-accent data-[active=true]:focus:bg-accent [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground",
25
+ indicator: "top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in"
26
+ }
27
+ });
28
+ const navigationMenuTriggerRecipe = defineRecipe({ base: "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-[color,box-shadow] outline-none hover:bg-accent-muted hover:text-accent-muted-foreground focus:bg-accent-muted focus:text-accent-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent" });
29
+ const navigationMenuTriggerStyle = () => navigationMenuTriggerRecipe();
30
+ const defaultClasses = navigationMenuRecipe();
8
31
  function NavigationMenu({ className, children, viewport = true, ...props }) {
9
32
  return /* @__PURE__ */ jsxs(NavigationMenu$1.Root, {
10
33
  "data-slot": "navigation-menu",
11
34
  "data-viewport": viewport,
12
- className: cn("group/navigation-menu relative flex max-w-max flex-1 items-center justify-center", className),
35
+ className: cn(defaultClasses.root, className),
13
36
  ...props,
14
37
  children: [children, viewport && /* @__PURE__ */ jsx(NavigationMenuViewport, {})]
15
38
  });
@@ -17,23 +40,22 @@ function NavigationMenu({ className, children, viewport = true, ...props }) {
17
40
  function NavigationMenuList({ className, ...props }) {
18
41
  return /* @__PURE__ */ jsx(NavigationMenu$1.List, {
19
42
  "data-slot": "navigation-menu-list",
20
- className: cn("group flex flex-1 list-none items-center justify-center gap-1", className),
43
+ className: cn(defaultClasses.list, className),
21
44
  ...props
22
45
  });
23
46
  }
24
47
  function NavigationMenuItem({ className, ...props }) {
25
48
  return /* @__PURE__ */ jsx(NavigationMenu$1.Item, {
26
49
  "data-slot": "navigation-menu-item",
27
- className: cn("relative", className),
50
+ className: cn(defaultClasses.item, className),
28
51
  ...props
29
52
  });
30
53
  }
31
- const navigationMenuTriggerStyle = cva("group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-[color,box-shadow] outline-none hover:bg-accent-muted hover:text-accent-muted-foreground focus:bg-accent-muted focus:text-accent-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent");
32
54
  function NavigationMenuTrigger({ className, children, ...props }) {
33
55
  const ChevronDownIcon = useIcon("chevronDown");
34
56
  return /* @__PURE__ */ jsxs(NavigationMenu$1.Trigger, {
35
57
  "data-slot": "navigation-menu-trigger",
36
- className: cn(navigationMenuTriggerStyle(), "group", className),
58
+ className: cn(navigationMenuTriggerRecipe(), "group", className),
37
59
  ...props,
38
60
  children: [
39
61
  children,
@@ -48,16 +70,16 @@ function NavigationMenuTrigger({ className, children, ...props }) {
48
70
  function NavigationMenuContent({ className, ...props }) {
49
71
  return /* @__PURE__ */ jsx(NavigationMenu$1.Content, {
50
72
  "data-slot": "navigation-menu-content",
51
- className: cn("top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto", "group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95", className),
73
+ className: cn(defaultClasses.content, className),
52
74
  ...props
53
75
  });
54
76
  }
55
77
  function NavigationMenuViewport({ className, ...props }) {
56
78
  return /* @__PURE__ */ jsx("div", {
57
- className: cn("absolute top-full left-0 isolate z-50 flex justify-center"),
79
+ className: "absolute top-full left-0 isolate z-50 flex justify-center",
58
80
  children: /* @__PURE__ */ jsx(NavigationMenu$1.Viewport, {
59
81
  "data-slot": "navigation-menu-viewport",
60
- className: cn("origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-[var(--enad-card-radius)] border bg-popover text-popover-foreground shadow-[var(--enad-shadow-md)] data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]", className),
82
+ className: cn(defaultClasses.viewport, className),
61
83
  ...props
62
84
  })
63
85
  });
@@ -65,19 +87,19 @@ function NavigationMenuViewport({ className, ...props }) {
65
87
  function NavigationMenuLink({ className, ...props }) {
66
88
  return /* @__PURE__ */ jsx(NavigationMenu$1.Link, {
67
89
  "data-slot": "navigation-menu-link",
68
- className: cn("flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none hover:bg-accent-muted hover:text-accent-muted-foreground focus:bg-accent-muted focus:text-accent-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:hover:bg-accent data-[active=true]:focus:bg-accent [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground", className),
90
+ className: cn(defaultClasses.link, className),
69
91
  ...props
70
92
  });
71
93
  }
72
94
  function NavigationMenuIndicator({ className, ...props }) {
73
95
  return /* @__PURE__ */ jsx(NavigationMenu$1.Indicator, {
74
96
  "data-slot": "navigation-menu-indicator",
75
- className: cn("top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in", className),
97
+ className: cn(defaultClasses.indicator, className),
76
98
  ...props,
77
99
  children: /* @__PURE__ */ jsx("div", { className: "relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md" })
78
100
  });
79
101
  }
80
102
  //#endregion
81
- export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuTriggerStyle };
103
+ export { NavigationMenu, NavigationMenuContent, NavigationMenuIndicator, NavigationMenuItem, NavigationMenuLink, NavigationMenuList, NavigationMenuTrigger, NavigationMenuViewport, navigationMenuRecipe, navigationMenuTriggerRecipe, navigationMenuTriggerStyle };
82
104
 
83
105
  //# sourceMappingURL=navigation-menu.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"navigation-menu.mjs","names":["NavigationMenuPrimitive"],"sources":["../../../src/client/ui/navigation-menu.tsx"],"sourcesContent":["import * as React from \"react\"\nimport { cva } from \"class-variance-authority\"\nimport { useIcon } from \"../icons/icon-context\"\nimport { NavigationMenu as NavigationMenuPrimitive } from \"radix-ui\"\n\nimport { cn } from \"./utils\"\n\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(\n \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n className\n )}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n )\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(\n \"group flex flex-1 list-none items-center justify-center gap-1\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(\"relative\", className)}\n {...props}\n />\n )\n}\n\nconst navigationMenuTriggerStyle = cva(\n \"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-[color,box-shadow] outline-none hover:bg-accent-muted hover:text-accent-muted-foreground focus:bg-accent-muted focus:text-accent-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\"\n)\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n const ChevronDownIcon = useIcon(\"chevronDown\")\n\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerStyle(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n )\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(\n \"top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto\",\n \"group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div\n className={cn(\n \"absolute top-full left-0 isolate z-50 flex justify-center\"\n )}\n >\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-[var(--enad-card-radius)] border bg-popover text-popover-foreground shadow-[var(--enad-shadow-md)] data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n className\n )}\n {...props}\n />\n </div>\n )\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(\n \"flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none hover:bg-accent-muted hover:text-accent-muted-foreground focus:bg-accent-muted focus:text-accent-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:hover:bg-accent data-[active=true]:focus:bg-accent [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in\",\n className\n )}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n )\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n}\n"],"mappings":";;;;;;;AAOA,SAAS,eAAe,EACtB,WACA,UACA,WAAW,MACX,GAAG,SAGF;AACD,QACE,qBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,iBAAe;EACf,WAAW,GACT,oFACA,UACD;EACD,GAAI;YAPN,CASG,UACA,YAAY,oBAAC,wBAAD,EAA0B,CAAA,CACV;;;AAInC,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GACT,iEACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAAG,YAAY,UAAU;EACpC,GAAI;EACJ,CAAA;;AAIN,MAAM,6BAA6B,IACjC,uhBACD;AAED,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;CAC/D,MAAM,kBAAkB,QAAQ,cAAc;AAE9C,QACE,qBAACA,iBAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GAAG,4BAA4B,EAAE,SAAS,UAAU;EAC/D,GAAI;YAHN;GAKG;GAAU;GACX,oBAAC,iBAAD;IACE,WAAU;IACV,eAAY;IACZ,CAAA;GAC8B;;;AAItC,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAACA,iBAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GACT,oWACA,6hCACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,OAAD;EACE,WAAW,GACT,4DACD;YAED,oBAACA,iBAAwB,UAAzB;GACE,aAAU;GACV,WAAW,GACT,qYACA,UACD;GACD,GAAI;GACJ,CAAA;EACE,CAAA;;AAIV,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GACT,ifACA,UACD;EACD,GAAI;EACJ,CAAA;;AAIN,SAAS,wBAAwB,EAC/B,WACA,GAAG,SAC8D;AACjE,QACE,oBAACA,iBAAwB,WAAzB;EACE,aAAU;EACV,WAAW,GACT,gMACA,UACD;EACD,GAAI;YAEJ,oBAAC,OAAD,EAAK,WAAU,0EAA2E,CAAA;EACxD,CAAA"}
1
+ {"version":3,"file":"navigation-menu.mjs","names":["NavigationMenuPrimitive"],"sources":["../../../src/client/ui/navigation-menu.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useIcon } from \"../icons/icon-context\";\nimport { NavigationMenu as NavigationMenuPrimitive } from \"radix-ui\";\n\nimport { defineSlotRecipe, defineRecipe } from \"../ui-resolver/recipe\";\nimport { cn } from \"./utils\";\n\nconst navigationMenuRecipe = defineSlotRecipe({\n slots: [\"root\", \"list\", \"item\", \"content\", \"viewport\", \"link\", \"indicator\"] as const,\n base: {\n root: \"group/navigation-menu relative flex max-w-max flex-1 items-center justify-center\",\n list: \"group flex flex-1 list-none items-center justify-center gap-1\",\n item: \"relative\",\n content:\n \"top-0 left-0 w-full p-2 pr-2.5 data-[motion=from-end]:slide-in-from-right-52 data-[motion=from-start]:slide-in-from-left-52 data-[motion=to-end]:slide-out-to-right-52 data-[motion=to-start]:slide-out-to-left-52 data-[motion^=from-]:animate-in data-[motion^=from-]:fade-in data-[motion^=to-]:animate-out data-[motion^=to-]:fade-out md:absolute md:w-auto group-data-[viewport=false]/navigation-menu:top-full group-data-[viewport=false]/navigation-menu:mt-1.5 group-data-[viewport=false]/navigation-menu:overflow-hidden group-data-[viewport=false]/navigation-menu:rounded-md group-data-[viewport=false]/navigation-menu:border group-data-[viewport=false]/navigation-menu:bg-popover group-data-[viewport=false]/navigation-menu:text-popover-foreground group-data-[viewport=false]/navigation-menu:shadow group-data-[viewport=false]/navigation-menu:duration-200 **:data-[slot=navigation-menu-link]:focus:ring-0 **:data-[slot=navigation-menu-link]:focus:outline-none group-data-[viewport=false]/navigation-menu:data-[state=closed]:animate-out group-data-[viewport=false]/navigation-menu:data-[state=closed]:fade-out-0 group-data-[viewport=false]/navigation-menu:data-[state=closed]:zoom-out-95 group-data-[viewport=false]/navigation-menu:data-[state=open]:animate-in group-data-[viewport=false]/navigation-menu:data-[state=open]:fade-in-0 group-data-[viewport=false]/navigation-menu:data-[state=open]:zoom-in-95\",\n viewport:\n \"origin-top-center relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-[var(--enad-card-radius)] border bg-popover text-popover-foreground shadow-[var(--enad-shadow-md)] data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:zoom-in-90 md:w-[var(--radix-navigation-menu-viewport-width)]\",\n link: \"flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none hover:bg-accent-muted hover:text-accent-muted-foreground focus:bg-accent-muted focus:text-accent-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground data-[active=true]:hover:bg-accent data-[active=true]:focus:bg-accent [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground\",\n indicator:\n \"top-full z-[1] flex h-1.5 items-end justify-center overflow-hidden data-[state=hidden]:animate-out data-[state=hidden]:fade-out data-[state=visible]:animate-in data-[state=visible]:fade-in\",\n },\n});\n\nconst navigationMenuTriggerRecipe = defineRecipe({\n base: \"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-[color,box-shadow] outline-none hover:bg-accent-muted hover:text-accent-muted-foreground focus:bg-accent-muted focus:text-accent-muted-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50 focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=open]:bg-accent/50 data-[state=open]:text-accent-foreground data-[state=open]:hover:bg-accent data-[state=open]:focus:bg-accent\",\n});\n\n// Backward compat\nconst navigationMenuTriggerStyle = () => navigationMenuTriggerRecipe();\n\nconst defaultClasses = navigationMenuRecipe();\n\nfunction NavigationMenu({\n className,\n children,\n viewport = true,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Root> & {\n viewport?: boolean;\n}) {\n return (\n <NavigationMenuPrimitive.Root\n data-slot=\"navigation-menu\"\n data-viewport={viewport}\n className={cn(defaultClasses.root, className)}\n {...props}\n >\n {children}\n {viewport && <NavigationMenuViewport />}\n </NavigationMenuPrimitive.Root>\n );\n}\n\nfunction NavigationMenuList({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.List>) {\n return (\n <NavigationMenuPrimitive.List\n data-slot=\"navigation-menu-list\"\n className={cn(defaultClasses.list, className)}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuItem({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Item>) {\n return (\n <NavigationMenuPrimitive.Item\n data-slot=\"navigation-menu-item\"\n className={cn(defaultClasses.item, className)}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuTrigger({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Trigger>) {\n const ChevronDownIcon = useIcon(\"chevronDown\");\n\n return (\n <NavigationMenuPrimitive.Trigger\n data-slot=\"navigation-menu-trigger\"\n className={cn(navigationMenuTriggerRecipe(), \"group\", className)}\n {...props}\n >\n {children}{\" \"}\n <ChevronDownIcon\n className=\"relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180\"\n aria-hidden=\"true\"\n />\n </NavigationMenuPrimitive.Trigger>\n );\n}\n\nfunction NavigationMenuContent({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Content>) {\n return (\n <NavigationMenuPrimitive.Content\n data-slot=\"navigation-menu-content\"\n className={cn(defaultClasses.content, className)}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuViewport({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Viewport>) {\n return (\n <div className=\"absolute top-full left-0 isolate z-50 flex justify-center\">\n <NavigationMenuPrimitive.Viewport\n data-slot=\"navigation-menu-viewport\"\n className={cn(defaultClasses.viewport, className)}\n {...props}\n />\n </div>\n );\n}\n\nfunction NavigationMenuLink({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Link>) {\n return (\n <NavigationMenuPrimitive.Link\n data-slot=\"navigation-menu-link\"\n className={cn(defaultClasses.link, className)}\n {...props}\n />\n );\n}\n\nfunction NavigationMenuIndicator({\n className,\n ...props\n}: React.ComponentProps<typeof NavigationMenuPrimitive.Indicator>) {\n return (\n <NavigationMenuPrimitive.Indicator\n data-slot=\"navigation-menu-indicator\"\n className={cn(defaultClasses.indicator, className)}\n {...props}\n >\n <div className=\"relative top-[60%] h-2 w-2 rotate-45 rounded-tl-sm bg-border shadow-md\" />\n </NavigationMenuPrimitive.Indicator>\n );\n}\n\nexport {\n NavigationMenu,\n NavigationMenuList,\n NavigationMenuItem,\n NavigationMenuContent,\n NavigationMenuTrigger,\n NavigationMenuLink,\n NavigationMenuIndicator,\n NavigationMenuViewport,\n navigationMenuTriggerStyle,\n navigationMenuRecipe,\n navigationMenuTriggerRecipe,\n};\n"],"mappings":";;;;;;;AAOA,MAAM,uBAAuB,iBAAiB;CAC5C,OAAO;EAAC;EAAQ;EAAQ;EAAQ;EAAW;EAAY;EAAQ;EAAY;CAC3E,MAAM;EACJ,MAAM;EACN,MAAM;EACN,MAAM;EACN,SACE;EACF,UACE;EACF,MAAM;EACN,WACE;EACH;CACF,CAAC;AAEF,MAAM,8BAA8B,aAAa,EAC/C,MAAM,whBACP,CAAC;AAGF,MAAM,mCAAmC,6BAA6B;AAEtE,MAAM,iBAAiB,sBAAsB;AAE7C,SAAS,eAAe,EACtB,WACA,UACA,WAAW,MACX,GAAG,SAGF;AACD,QACE,qBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,iBAAe;EACf,WAAW,GAAG,eAAe,MAAM,UAAU;EAC7C,GAAI;YAJN,CAMG,UACA,YAAY,oBAAC,wBAAD,EAA0B,CAAA,CACV;;;AAInC,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,MAAM,UAAU;EAC7C,GAAI;EACJ,CAAA;;AAIN,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,MAAM,UAAU;EAC7C,GAAI;EACJ,CAAA;;AAIN,SAAS,sBAAsB,EAC7B,WACA,UACA,GAAG,SAC4D;CAC/D,MAAM,kBAAkB,QAAQ,cAAc;AAE9C,QACE,qBAACA,iBAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GAAG,6BAA6B,EAAE,SAAS,UAAU;EAChE,GAAI;YAHN;GAKG;GAAU;GACX,oBAAC,iBAAD;IACE,WAAU;IACV,eAAY;IACZ,CAAA;GAC8B;;;AAItC,SAAS,sBAAsB,EAC7B,WACA,GAAG,SAC4D;AAC/D,QACE,oBAACA,iBAAwB,SAAzB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,SAAS,UAAU;EAChD,GAAI;EACJ,CAAA;;AAIN,SAAS,uBAAuB,EAC9B,WACA,GAAG,SAC6D;AAChE,QACE,oBAAC,OAAD;EAAK,WAAU;YACb,oBAACA,iBAAwB,UAAzB;GACE,aAAU;GACV,WAAW,GAAG,eAAe,UAAU,UAAU;GACjD,GAAI;GACJ,CAAA;EACE,CAAA;;AAIV,SAAS,mBAAmB,EAC1B,WACA,GAAG,SACyD;AAC5D,QACE,oBAACA,iBAAwB,MAAzB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,MAAM,UAAU;EAC7C,GAAI;EACJ,CAAA;;AAIN,SAAS,wBAAwB,EAC/B,WACA,GAAG,SAC8D;AACjE,QACE,oBAACA,iBAAwB,WAAzB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,WAAW,UAAU;EAClD,GAAI;YAEJ,oBAAC,OAAD,EAAK,WAAU,0EAA2E,CAAA;EACxD,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"pagination.d.ts","names":[],"sources":["../../../src/client/ui/pagination.tsx"],"mappings":";;;;;iBAMS,UAAA,CAAA;EAAa,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAY/D,iBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,SAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUpB,cAAA,CAAA;EAAA,GAAoB;AAAA,GAAS,OAAA,CAAM,cAAA,SAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,KAI3D,mBAAA;EACH,QAAA;AAAA,IACE,IAAA,CAAK,OAAA,CAAM,cAAA,QAAsB,MAAA,aACnC,OAAA,CAAM,cAAA;AAAA,iBAEC,cAAA,CAAA;EACP,SAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,mBAAA,GAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAqBb,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,cAAA,IAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAgBrC,cAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,cAAA,IAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAgBrC,kBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,WAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"pagination.d.ts","names":[],"sources":["../../../src/client/ui/pagination.tsx"],"mappings":";;;;;iBAMS,UAAA,CAAA;EAAa,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAW/D,iBAAA,CAAA;EAAoB,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,SAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUrE,cAAA,CAAA;EAAA,GAAoB;AAAA,GAAS,OAAA,CAAM,cAAA,SAAoB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,KAI3D,mBAAA;EACH,QAAA;AAAA,IACE,IAAA,CAAK,OAAA,CAAM,cAAA,QAAsB,MAAA,aACnC,OAAA,CAAM,cAAA;AAAA,iBAEC,cAAA,CAAA;EACP,SAAA;EACA,QAAA;EACA,IAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,mBAAA,GAAmB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAqBb,kBAAA,CAAA;EAAqB,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,cAAA,IAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAgBvF,cAAA,CAAA;EAAiB,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,cAAA,IAAe,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAgBnF,kBAAA,CAAA;EAAqB,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,WAAsB,kBAAA,CAAA,GAAA,CAAA,OAAA"}