@enadhq/enad-react-sdk 1.1.0 → 1.3.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 (232) 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/blocks/card-video.mjs +1 -1
  6. package/dist/client/storefront/blocks/card-video.mjs.map +1 -1
  7. package/dist/client/storefront/blocks/gallery-with-link-blocks.d.ts.map +1 -1
  8. package/dist/client/storefront/blocks/gallery-with-link-blocks.mjs +13 -5
  9. package/dist/client/storefront/blocks/gallery-with-link-blocks.mjs.map +1 -1
  10. package/dist/client/storefront/blocks/gallery.d.ts +10 -1
  11. package/dist/client/storefront/blocks/gallery.d.ts.map +1 -1
  12. package/dist/client/storefront/blocks/gallery.mjs +51 -27
  13. package/dist/client/storefront/blocks/gallery.mjs.map +1 -1
  14. package/dist/client/storefront/blocks/hero.d.ts +12 -1
  15. package/dist/client/storefront/blocks/hero.d.ts.map +1 -1
  16. package/dist/client/storefront/blocks/hero.mjs +143 -145
  17. package/dist/client/storefront/blocks/hero.mjs.map +1 -1
  18. package/dist/client/storefront/blocks/link-block-small.d.ts.map +1 -1
  19. package/dist/client/storefront/blocks/link-block-small.mjs +1 -1
  20. package/dist/client/storefront/blocks/link-block-small.mjs.map +1 -1
  21. package/dist/client/storefront/blocks/link-block.d.ts.map +1 -1
  22. package/dist/client/storefront/blocks/link-block.mjs +4 -4
  23. package/dist/client/storefront/blocks/link-block.mjs.map +1 -1
  24. package/dist/client/storefront/blocks/product-card-parts.d.ts +1 -1
  25. package/dist/client/storefront/blocks/product-card-parts.d.ts.map +1 -1
  26. package/dist/client/storefront/blocks/product-card-parts.mjs +2 -2
  27. package/dist/client/storefront/blocks/product-card-parts.mjs.map +1 -1
  28. package/dist/client/storefront/blocks/product-card.d.ts +10 -1
  29. package/dist/client/storefront/blocks/product-card.d.ts.map +1 -1
  30. package/dist/client/storefront/blocks/product-card.mjs +122 -116
  31. package/dist/client/storefront/blocks/product-card.mjs.map +1 -1
  32. package/dist/client/storefront/blocks/product-image.mjs +2 -2
  33. package/dist/client/storefront/blocks/product-image.mjs.map +1 -1
  34. package/dist/client/storefront/blocks/text-content-with-image.d.ts +14 -1
  35. package/dist/client/storefront/blocks/text-content-with-image.d.ts.map +1 -1
  36. package/dist/client/storefront/blocks/text-content-with-image.mjs +141 -164
  37. package/dist/client/storefront/blocks/text-content-with-image.mjs.map +1 -1
  38. package/dist/client/storefront/carousel/swipeable-carousel.d.ts +5 -1
  39. package/dist/client/storefront/carousel/swipeable-carousel.d.ts.map +1 -1
  40. package/dist/client/storefront/carousel/swipeable-carousel.mjs +2 -1
  41. package/dist/client/storefront/carousel/swipeable-carousel.mjs.map +1 -1
  42. package/dist/client/storefront/checkout/cart-summary.mjs +1 -1
  43. package/dist/client/storefront/checkout/cart-summary.mjs.map +1 -1
  44. package/dist/client/storefront/components/language-selector.d.ts.map +1 -1
  45. package/dist/client/storefront/components/language-selector.mjs +1 -1
  46. package/dist/client/storefront/components/language-selector.mjs.map +1 -1
  47. package/dist/client/storefront/components/product-recommendations.d.ts.map +1 -1
  48. package/dist/client/storefront/components/product-recommendations.mjs +29 -37
  49. package/dist/client/storefront/components/product-recommendations.mjs.map +1 -1
  50. package/dist/client/storefront/filters/filter-chip.d.ts +5 -2
  51. package/dist/client/storefront/filters/filter-chip.d.ts.map +1 -1
  52. package/dist/client/storefront/filters/filter-chip.mjs +6 -4
  53. package/dist/client/storefront/filters/filter-chip.mjs.map +1 -1
  54. package/dist/client/storefront/filters/filter-panel.mjs +2 -2
  55. package/dist/client/storefront/filters/filter-panel.mjs.map +1 -1
  56. package/dist/client/storefront/filters/toggle-list-view.mjs +1 -1
  57. package/dist/client/storefront/filters/toggle-list-view.mjs.map +1 -1
  58. package/dist/client/storefront/index.d.ts +12 -1
  59. package/dist/client/storefront/index.mjs +12 -1
  60. package/dist/client/storefront/layout/header.d.ts.map +1 -1
  61. package/dist/client/storefront/layout/header.mjs +1 -1
  62. package/dist/client/storefront/layout/header.mjs.map +1 -1
  63. package/dist/client/storefront/layout/mobile-menu-drawer.mjs +1 -1
  64. package/dist/client/storefront/layout/promotion-bar.d.ts.map +1 -1
  65. package/dist/client/storefront/layout/promotion-bar.mjs +3 -3
  66. package/dist/client/storefront/layout/promotion-bar.mjs.map +1 -1
  67. package/dist/client/storefront/primitives/block-heading.d.ts +40 -0
  68. package/dist/client/storefront/primitives/block-heading.d.ts.map +1 -0
  69. package/dist/client/storefront/primitives/block-heading.mjs +43 -0
  70. package/dist/client/storefront/primitives/block-heading.mjs.map +1 -0
  71. package/dist/client/storefront/primitives/button.d.ts +2 -2
  72. package/dist/client/storefront/primitives/button.d.ts.map +1 -1
  73. package/dist/client/storefront/primitives/button.mjs +4 -4
  74. package/dist/client/storefront/primitives/button.mjs.map +1 -1
  75. package/dist/client/storefront/primitives/cta-group.d.ts +25 -0
  76. package/dist/client/storefront/primitives/cta-group.d.ts.map +1 -0
  77. package/dist/client/storefront/primitives/cta-group.mjs +27 -0
  78. package/dist/client/storefront/primitives/cta-group.mjs.map +1 -0
  79. package/dist/client/storefront/primitives/image-with-hover.d.ts +18 -0
  80. package/dist/client/storefront/primitives/image-with-hover.d.ts.map +1 -0
  81. package/dist/client/storefront/primitives/image-with-hover.mjs +16 -0
  82. package/dist/client/storefront/primitives/image-with-hover.mjs.map +1 -0
  83. package/dist/client/storefront/primitives/index.d.ts +4 -1
  84. package/dist/client/storefront/primitives/index.mjs +4 -1
  85. package/dist/client/storefront/primitives/input.d.ts +1 -1
  86. package/dist/client/storefront/primitives/input.mjs.map +1 -1
  87. package/dist/client/storefront/primitives/pagination.mjs +2 -2
  88. package/dist/client/storefront/primitives/pagination.mjs.map +1 -1
  89. package/dist/client/storefront/product/quantity-picker.mjs +2 -2
  90. package/dist/client/storefront/product/quantity-picker.mjs.map +1 -1
  91. package/dist/client/storefront/types.d.ts +1 -1
  92. package/dist/client/storefront/types.d.ts.map +1 -1
  93. package/dist/client/storefront/types.mjs.map +1 -1
  94. package/dist/client/theme/apply.d.ts +1 -1
  95. package/dist/client/theme/apply.d.ts.map +1 -1
  96. package/dist/client/theme/apply.mjs +0 -12
  97. package/dist/client/theme/apply.mjs.map +1 -1
  98. package/dist/client/theme/cli.mjs +0 -16
  99. package/dist/client/theme/cli.mjs.map +1 -1
  100. package/dist/client/theme/codec.d.ts.map +1 -1
  101. package/dist/client/theme/codec.mjs +0 -2
  102. package/dist/client/theme/codec.mjs.map +1 -1
  103. package/dist/client/theme/defaults.d.ts +0 -2
  104. package/dist/client/theme/defaults.mjs +0 -2
  105. package/dist/client/theme/defaults.mjs.map +1 -1
  106. package/dist/client/ui/accordion.d.ts +12 -1
  107. package/dist/client/ui/accordion.d.ts.map +1 -1
  108. package/dist/client/ui/accordion.mjs +23 -5
  109. package/dist/client/ui/accordion.mjs.map +1 -1
  110. package/dist/client/ui/alert.d.ts +16 -7
  111. package/dist/client/ui/alert.d.ts.map +1 -1
  112. package/dist/client/ui/alert.mjs +21 -8
  113. package/dist/client/ui/alert.mjs.map +1 -1
  114. package/dist/client/ui/avatar.d.ts +10 -1
  115. package/dist/client/ui/avatar.d.ts.map +1 -1
  116. package/dist/client/ui/avatar.mjs +18 -4
  117. package/dist/client/ui/avatar.mjs.map +1 -1
  118. package/dist/client/ui/breadcrumb.d.ts +13 -1
  119. package/dist/client/ui/breadcrumb.d.ts.map +1 -1
  120. package/dist/client/ui/breadcrumb.mjs +27 -7
  121. package/dist/client/ui/breadcrumb.mjs.map +1 -1
  122. package/dist/client/ui/button.d.ts +28 -10
  123. package/dist/client/ui/button.d.ts.map +1 -1
  124. package/dist/client/ui/button.mjs +45 -20
  125. package/dist/client/ui/button.mjs.map +1 -1
  126. package/dist/client/ui/card.d.ts +20 -1
  127. package/dist/client/ui/card.d.ts.map +1 -1
  128. package/dist/client/ui/card.mjs +36 -8
  129. package/dist/client/ui/card.mjs.map +1 -1
  130. package/dist/client/ui/carousel.d.ts +9 -1
  131. package/dist/client/ui/carousel.d.ts.map +1 -1
  132. package/dist/client/ui/carousel.mjs +20 -4
  133. package/dist/client/ui/carousel.mjs.map +1 -1
  134. package/dist/client/ui/checkbox.d.ts +9 -1
  135. package/dist/client/ui/checkbox.d.ts.map +1 -1
  136. package/dist/client/ui/checkbox.mjs +12 -3
  137. package/dist/client/ui/checkbox.mjs.map +1 -1
  138. package/dist/client/ui/dialog.d.ts +13 -1
  139. package/dist/client/ui/dialog.d.ts.map +1 -1
  140. package/dist/client/ui/dialog.mjs +27 -7
  141. package/dist/client/ui/dialog.mjs.map +1 -1
  142. package/dist/client/ui/hover-card.d.ts +6 -1
  143. package/dist/client/ui/hover-card.d.ts.map +1 -1
  144. package/dist/client/ui/hover-card.mjs +4 -2
  145. package/dist/client/ui/hover-card.mjs.map +1 -1
  146. package/dist/client/ui/input.d.ts +20 -7
  147. package/dist/client/ui/input.d.ts.map +1 -1
  148. package/dist/client/ui/input.mjs +33 -9
  149. package/dist/client/ui/input.mjs.map +1 -1
  150. package/dist/client/ui/label.d.ts +6 -1
  151. package/dist/client/ui/label.d.ts.map +1 -1
  152. package/dist/client/ui/label.mjs +4 -2
  153. package/dist/client/ui/label.mjs.map +1 -1
  154. package/dist/client/ui/navigation-menu.d.ts +20 -3
  155. package/dist/client/ui/navigation-menu.d.ts.map +1 -1
  156. package/dist/client/ui/navigation-menu.mjs +34 -12
  157. package/dist/client/ui/navigation-menu.mjs.map +1 -1
  158. package/dist/client/ui/pagination.d.ts.map +1 -1
  159. package/dist/client/ui/pagination.mjs +3 -3
  160. package/dist/client/ui/pagination.mjs.map +1 -1
  161. package/dist/client/ui/popover.d.ts +11 -1
  162. package/dist/client/ui/popover.d.ts.map +1 -1
  163. package/dist/client/ui/popover.mjs +21 -5
  164. package/dist/client/ui/popover.mjs.map +1 -1
  165. package/dist/client/ui/progress.d.ts +9 -1
  166. package/dist/client/ui/progress.d.ts.map +1 -1
  167. package/dist/client/ui/progress.mjs +12 -3
  168. package/dist/client/ui/progress.mjs.map +1 -1
  169. package/dist/client/ui/select.d.ts +14 -2
  170. package/dist/client/ui/select.d.ts.map +1 -1
  171. package/dist/client/ui/select.mjs +35 -9
  172. package/dist/client/ui/select.mjs.map +1 -1
  173. package/dist/client/ui/separator.d.ts +6 -1
  174. package/dist/client/ui/separator.d.ts.map +1 -1
  175. package/dist/client/ui/separator.mjs +4 -2
  176. package/dist/client/ui/separator.mjs.map +1 -1
  177. package/dist/client/ui/sheet.d.ts +13 -1
  178. package/dist/client/ui/sheet.d.ts.map +1 -1
  179. package/dist/client/ui/sheet.mjs +35 -7
  180. package/dist/client/ui/sheet.mjs.map +1 -1
  181. package/dist/client/ui/slot-wrapper.d.ts +28 -0
  182. package/dist/client/ui/slot-wrapper.d.ts.map +1 -0
  183. package/dist/client/ui/slot-wrapper.mjs +38 -0
  184. package/dist/client/ui/slot-wrapper.mjs.map +1 -0
  185. package/dist/client/ui/tabs.d.ts +11 -1
  186. package/dist/client/ui/tabs.d.ts.map +1 -1
  187. package/dist/client/ui/tabs.mjs +21 -5
  188. package/dist/client/ui/tabs.mjs.map +1 -1
  189. package/dist/client/ui/toggle-group.d.ts +7 -4
  190. package/dist/client/ui/toggle-group.d.ts.map +1 -1
  191. package/dist/client/ui/toggle-group.mjs +4 -4
  192. package/dist/client/ui/toggle-group.mjs.map +1 -1
  193. package/dist/client/ui/toggle.d.ts +17 -8
  194. package/dist/client/ui/toggle.d.ts.map +1 -1
  195. package/dist/client/ui/toggle.mjs +11 -9
  196. package/dist/client/ui/toggle.mjs.map +1 -1
  197. package/dist/client/ui/tooltip.d.ts +6 -1
  198. package/dist/client/ui/tooltip.d.ts.map +1 -1
  199. package/dist/client/ui/tooltip.mjs +4 -2
  200. package/dist/client/ui/tooltip.mjs.map +1 -1
  201. package/dist/client/ui-resolver/button.d.ts +3 -4
  202. package/dist/client/ui-resolver/button.d.ts.map +1 -1
  203. package/dist/client/ui-resolver/button.mjs +2 -2
  204. package/dist/client/ui-resolver/button.mjs.map +1 -1
  205. package/dist/client/ui-resolver/card.d.ts +14 -1
  206. package/dist/client/ui-resolver/card.d.ts.map +1 -1
  207. package/dist/client/ui-resolver/card.mjs +3 -2
  208. package/dist/client/ui-resolver/card.mjs.map +1 -1
  209. package/dist/client/ui-resolver/context.mjs +1 -1
  210. package/dist/client/ui-resolver/context.mjs.map +1 -1
  211. package/dist/client/ui-resolver/index.d.ts +7 -4
  212. package/dist/client/ui-resolver/index.mjs +8 -6
  213. package/dist/client/ui-resolver/input.d.ts +3 -4
  214. package/dist/client/ui-resolver/input.d.ts.map +1 -1
  215. package/dist/client/ui-resolver/input.mjs +2 -2
  216. package/dist/client/ui-resolver/input.mjs.map +1 -1
  217. package/dist/client/ui-resolver/navigation-menu.d.ts +1 -2
  218. package/dist/client/ui-resolver/navigation-menu.d.ts.map +1 -1
  219. package/dist/client/ui-resolver/recipe.d.ts +95 -0
  220. package/dist/client/ui-resolver/recipe.d.ts.map +1 -0
  221. package/dist/client/ui-resolver/recipe.mjs +134 -0
  222. package/dist/client/ui-resolver/recipe.mjs.map +1 -0
  223. package/dist/client/ui-resolver/toggle.d.ts +2 -2
  224. package/dist/client/ui-resolver/toggle.mjs +2 -2
  225. package/dist/client/ui-resolver/toggle.mjs.map +1 -1
  226. package/dist/client/ui-resolver/types.d.ts +14 -0
  227. package/dist/client/ui-resolver/types.d.ts.map +1 -0
  228. package/dist/client/ui-resolver/types.mjs +1 -0
  229. package/dist/client/wishlist/wishlist-drawer.mjs +4 -4
  230. package/dist/client/wishlist/wishlist-drawer.mjs.map +1 -1
  231. package/dist/styles.css +1 -1
  232. package/package.json +4 -3
@@ -3,10 +3,18 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { Checkbox as Checkbox$1 } from "radix-ui";
4
4
 
5
5
  //#region src/client/ui/checkbox.d.ts
6
+ declare const checkboxRecipe: (props?: ({
7
+ [x: string]: string | undefined;
8
+ } & {
9
+ className?: Partial<Record<"root" | "indicator", string>> | undefined;
10
+ }) | undefined) => {
11
+ root: string;
12
+ indicator: string;
13
+ };
6
14
  declare function Checkbox({
7
15
  className,
8
16
  ...props
9
17
  }: React$1.ComponentProps<typeof Checkbox$1.Root>): react_jsx_runtime0.JSX.Element;
10
18
  //#endregion
11
- export { Checkbox };
19
+ export { Checkbox, checkboxRecipe };
12
20
  //# sourceMappingURL=checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.d.ts","names":[],"sources":["../../../src/client/ui/checkbox.tsx"],"mappings":";;;;;iBAQS,QAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,UAAA,CAAkB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"checkbox.d.ts","names":[],"sources":["../../../src/client/ui/checkbox.tsx"],"mappings":";;;;;cASM,cAAA,GAAc,KAAA;EAAA;;cAMlB,OAAA,CAAA,MAAA;AAAA;;;;iBAIO,QAAA,CAAA;EAAW,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,UAAA,CAAkB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -1,24 +1,33 @@
1
1
  "use client";
2
2
  import { useIcon } from "../icons/icon-context.mjs";
3
3
  import { cn } from "./utils.mjs";
4
+ import { defineSlotRecipe } from "../ui-resolver/recipe.mjs";
4
5
  import "react";
5
6
  import { jsx } from "react/jsx-runtime";
6
7
  import { Checkbox as Checkbox$1 } from "radix-ui";
7
8
  //#region src/client/ui/checkbox.tsx
9
+ const checkboxRecipe = defineSlotRecipe({
10
+ slots: ["root", "indicator"],
11
+ base: {
12
+ root: "peer relative size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none hit-area-4 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary",
13
+ indicator: "grid place-content-center text-current transition-none"
14
+ }
15
+ });
16
+ const defaultClasses = checkboxRecipe();
8
17
  function Checkbox({ className, ...props }) {
9
18
  const CheckIcon = useIcon("check");
10
19
  return /* @__PURE__ */ jsx(Checkbox$1.Root, {
11
20
  "data-slot": "checkbox",
12
- className: cn("peer relative size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none hit-area-4 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary", className),
21
+ className: cn(defaultClasses.root, className),
13
22
  ...props,
14
23
  children: /* @__PURE__ */ jsx(Checkbox$1.Indicator, {
15
24
  "data-slot": "checkbox-indicator",
16
- className: "grid place-content-center text-current transition-none",
25
+ className: defaultClasses.indicator,
17
26
  children: /* @__PURE__ */ jsx(CheckIcon, { className: "size-3.5" })
18
27
  })
19
28
  });
20
29
  }
21
30
  //#endregion
22
- export { Checkbox };
31
+ export { Checkbox, checkboxRecipe };
23
32
 
24
33
  //# sourceMappingURL=checkbox.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox.mjs","names":["CheckboxPrimitive"],"sources":["../../../src/client/ui/checkbox.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { useIcon } from \"../icons/icon-context\"\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\"\n\nimport { cn } from \"./utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n const CheckIcon = useIcon(\"check\")\n\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer relative size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none hit-area-4 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"grid place-content-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"],"mappings":";;;;;;;AAQA,SAAS,SAAS,EAChB,WACA,GAAG,SACmD;CACtD,MAAM,YAAY,QAAQ,QAAQ;AAElC,QACE,oBAACA,WAAkB,MAAnB;EACE,aAAU;EACV,WAAW,GACT,mgBACA,UACD;EACD,GAAI;YAEJ,oBAACA,WAAkB,WAAnB;GACE,aAAU;GACV,WAAU;aAEV,oBAAC,WAAD,EAAW,WAAU,YAAa,CAAA;GACN,CAAA;EACP,CAAA"}
1
+ {"version":3,"file":"checkbox.mjs","names":["CheckboxPrimitive"],"sources":["../../../src/client/ui/checkbox.tsx"],"sourcesContent":["\"use client\";\n\nimport * as React from \"react\";\nimport { useIcon } from \"../icons/icon-context\";\nimport { Checkbox as CheckboxPrimitive } from \"radix-ui\";\n\nimport { defineSlotRecipe } from \"../ui-resolver/recipe\";\nimport { cn } from \"./utils\";\n\nconst checkboxRecipe = defineSlotRecipe({\n slots: [\"root\", \"indicator\"] as const,\n base: {\n root: \"peer relative size-4 shrink-0 rounded-[4px] border border-input shadow-xs transition-shadow outline-none hit-area-4 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:bg-input/30 dark:aria-invalid:ring-destructive/40 dark:data-[state=checked]:bg-primary\",\n indicator: \"grid place-content-center text-current transition-none\",\n },\n});\n\nconst defaultClasses = checkboxRecipe();\n\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n const CheckIcon = useIcon(\"check\");\n\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(defaultClasses.root, className)}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className={defaultClasses.indicator}\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n\nexport { Checkbox, checkboxRecipe };\n"],"mappings":";;;;;;;;AASA,MAAM,iBAAiB,iBAAiB;CACtC,OAAO,CAAC,QAAQ,YAAY;CAC5B,MAAM;EACJ,MAAM;EACN,WAAW;EACZ;CACF,CAAC;AAEF,MAAM,iBAAiB,gBAAgB;AAEvC,SAAS,SAAS,EAAE,WAAW,GAAG,SAA8D;CAC9F,MAAM,YAAY,QAAQ,QAAQ;AAElC,QACE,oBAACA,WAAkB,MAAnB;EACE,aAAU;EACV,WAAW,GAAG,eAAe,MAAM,UAAU;EAC7C,GAAI;YAEJ,oBAACA,WAAkB,WAAnB;GACE,aAAU;GACV,WAAW,eAAe;aAE1B,oBAAC,WAAD,EAAW,WAAU,YAAa,CAAA;GACN,CAAA;EACP,CAAA"}
@@ -3,6 +3,18 @@ import * as react_jsx_runtime0 from "react/jsx-runtime";
3
3
  import { Dialog as Dialog$1 } from "radix-ui";
4
4
 
5
5
  //#region src/client/ui/dialog.d.ts
6
+ declare const dialogRecipe: (props?: ({
7
+ [x: string]: string | undefined;
8
+ } & {
9
+ className?: Partial<Record<"overlay" | "content" | "title" | "description" | "header" | "footer", string>> | undefined;
10
+ }) | undefined) => {
11
+ overlay: string;
12
+ content: string;
13
+ title: string;
14
+ description: string;
15
+ header: string;
16
+ footer: string;
17
+ };
6
18
  declare function Dialog({
7
19
  ...props
8
20
  }: React$1.ComponentProps<typeof Dialog$1.Root>): react_jsx_runtime0.JSX.Element;
@@ -41,5 +53,5 @@ declare function DialogDescription({
41
53
  ...props
42
54
  }: React$1.ComponentProps<typeof Dialog$1.Description>): react_jsx_runtime0.JSX.Element;
43
55
  //#endregion
44
- export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger };
56
+ export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, dialogRecipe };
45
57
  //# sourceMappingURL=dialog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.d.ts","names":[],"sources":["../../../src/client/ui/dialog.tsx"],"mappings":";;;;;iBAOS,MAAA,CAAA;EAAA,GAAY;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAItE,aAAA,CAAA;EAAA,GAAmB;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAIhF,YAAA,CAAA;EAAA,GAAkB;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,MAAA,IAAO,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAI9E,WAAA,CAAA;EAAA,GAAiB;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,KAAA,IAAM,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAI5E,aAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAa9C,aAAA,CAAA;EACP,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAkB9C,YAAA,CAAA;EAAe,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUjE,YAAA,CAAA;EAAe,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUjE,WAAA,CAAA;EAAc,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,KAAA,IAAM,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUvF,iBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,WAAA,IAAY,kBAAA,CAAA,GAAA,CAAA,OAAA"}
1
+ {"version":3,"file":"dialog.d.ts","names":[],"sources":["../../../src/client/ui/dialog.tsx"],"mappings":";;;;;cAQM,YAAA,GAAY,KAAA;EAAA;;cAYhB,OAAA,CAAA,MAAA;AAAA;;;;;;;;iBAIO,MAAA,CAAA;EAAA,GAAY;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,IAAA,IAAK,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAItE,aAAA,CAAA;EAAA,GAAmB;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAIhF,YAAA,CAAA;EAAA,GAAkB;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,MAAA,IAAO,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAI9E,WAAA,CAAA;EAAA,GAAiB;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,KAAA,IAAM,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAI5E,aAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAU9C,aAAA,CAAA;EACP,SAAA;EACA,QAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,OAAA,IAAQ,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAe9C,YAAA,CAAA;EAAe,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAMjE,YAAA,CAAA;EAAe,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,UAAqB,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAMjE,WAAA,CAAA;EAAc,SAAA;EAAA,GAAc;AAAA,GAAS,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,KAAA,IAAM,kBAAA,CAAA,GAAA,CAAA,OAAA;AAAA,iBAUvF,iBAAA,CAAA;EACP,SAAA;EAAA,GACG;AAAA,GACF,OAAA,CAAM,cAAA,QAAsB,QAAA,CAAgB,WAAA,IAAY,kBAAA,CAAA,GAAA,CAAA,OAAA"}
@@ -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"}