@nayhoo/ui 0.12.1 → 0.14.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 (213) hide show
  1. package/dist/{button.css-CxDH431y.d.mts → button.css-BLr4KDtC.d.mts} +3 -0
  2. package/dist/{button.css-CxDH431y.d.ts → button.css-BLr4KDtC.d.ts} +3 -0
  3. package/dist/chunk-4A7WL3BM.mjs +12 -0
  4. package/dist/chunk-4A7WL3BM.mjs.map +1 -0
  5. package/dist/{chunk-HNOMBFLC.mjs → chunk-67WEB6LY.mjs} +8 -5
  6. package/dist/chunk-67WEB6LY.mjs.map +1 -0
  7. package/dist/{chunk-C53FYO65.mjs → chunk-FQX4V5DP.mjs} +8 -5
  8. package/dist/chunk-FQX4V5DP.mjs.map +1 -0
  9. package/dist/chunk-HGLO5LDS.mjs +1 -0
  10. package/dist/{chunk-OCXG5SMA.mjs → chunk-KYAQZHQ5.mjs} +8 -5
  11. package/dist/chunk-KYAQZHQ5.mjs.map +1 -0
  12. package/dist/{chunk-WPNBONR3.mjs → chunk-LSB5JVS2.mjs} +1 -1
  13. package/dist/chunk-LSB5JVS2.mjs.map +1 -0
  14. package/dist/{chunk-YJWLCDJE.mjs → chunk-M7HASIMW.mjs} +8 -5
  15. package/dist/chunk-M7HASIMW.mjs.map +1 -0
  16. package/dist/{chunk-OKNO3BFR.mjs → chunk-OZ2DHFQP.mjs} +12 -9
  17. package/dist/chunk-OZ2DHFQP.mjs.map +1 -0
  18. package/dist/{chunk-REMVSAGR.mjs → chunk-P2VEMZGS.mjs} +6 -2
  19. package/dist/chunk-P2VEMZGS.mjs.map +1 -0
  20. package/dist/chunk-UPZYS6TE.mjs +31 -0
  21. package/dist/chunk-UPZYS6TE.mjs.map +1 -0
  22. package/dist/{chunk-5VVYRZDU.mjs → chunk-ZSB4NTM3.mjs} +13 -10
  23. package/dist/chunk-ZSB4NTM3.mjs.map +1 -0
  24. package/dist/components/avatar.d.mts +1 -1
  25. package/dist/components/avatar.d.ts +1 -1
  26. package/dist/components/avatar.js +34 -9
  27. package/dist/components/avatar.js.map +1 -1
  28. package/dist/components/avatar.mjs +19 -15
  29. package/dist/components/avatar.mjs.map +1 -1
  30. package/dist/components/badge.d.mts +1 -1
  31. package/dist/components/badge.d.ts +1 -1
  32. package/dist/components/badge.js +24 -5
  33. package/dist/components/badge.js.map +1 -1
  34. package/dist/components/badge.mjs +7 -4
  35. package/dist/components/badge.mjs.map +1 -1
  36. package/dist/components/box.d.mts +1 -1
  37. package/dist/components/box.d.ts +1 -1
  38. package/dist/components/box.js.map +1 -1
  39. package/dist/components/box.mjs +1 -1
  40. package/dist/components/button.css +54 -48
  41. package/dist/components/button.css.map +1 -1
  42. package/dist/components/button.d.mts +1 -1
  43. package/dist/components/button.d.ts +1 -1
  44. package/dist/components/button.js +33 -11
  45. package/dist/components/button.js.map +1 -1
  46. package/dist/components/button.mjs +4 -4
  47. package/dist/components/card.d.mts +1 -1
  48. package/dist/components/card.d.ts +1 -1
  49. package/dist/components/card.js.map +1 -1
  50. package/dist/components/card.mjs.map +1 -1
  51. package/dist/components/checkbox.d.mts +1 -1
  52. package/dist/components/checkbox.d.ts +1 -1
  53. package/dist/components/checkbox.js +26 -6
  54. package/dist/components/checkbox.js.map +1 -1
  55. package/dist/components/checkbox.mjs +9 -5
  56. package/dist/components/checkbox.mjs.map +1 -1
  57. package/dist/components/container.d.mts +1 -1
  58. package/dist/components/container.d.ts +1 -1
  59. package/dist/components/container.js +24 -5
  60. package/dist/components/container.js.map +1 -1
  61. package/dist/components/container.mjs +7 -4
  62. package/dist/components/container.mjs.map +1 -1
  63. package/dist/components/dropdown-menu.d.mts +5 -1
  64. package/dist/components/dropdown-menu.d.ts +5 -1
  65. package/dist/components/dropdown-menu.js +21 -2
  66. package/dist/components/dropdown-menu.js.map +1 -1
  67. package/dist/components/dropdown-menu.mjs +3 -3
  68. package/dist/components/dropdown-menu.mjs.map +1 -1
  69. package/dist/components/flex.d.mts +1 -1
  70. package/dist/components/flex.d.ts +1 -1
  71. package/dist/components/flex.js +24 -5
  72. package/dist/components/flex.js.map +1 -1
  73. package/dist/components/flex.mjs +2 -2
  74. package/dist/components/form.d.mts +4 -1
  75. package/dist/components/form.d.ts +4 -1
  76. package/dist/components/form.js +26 -7
  77. package/dist/components/form.js.map +1 -1
  78. package/dist/components/form.mjs +9 -6
  79. package/dist/components/form.mjs.map +1 -1
  80. package/dist/components/grid.d.mts +1 -1
  81. package/dist/components/grid.d.ts +1 -1
  82. package/dist/components/grid.js +24 -5
  83. package/dist/components/grid.js.map +1 -1
  84. package/dist/components/grid.mjs +7 -4
  85. package/dist/components/grid.mjs.map +1 -1
  86. package/dist/components/icon-button.d.mts +1 -1
  87. package/dist/components/icon-button.d.ts +1 -1
  88. package/dist/components/icon-button.js +32 -10
  89. package/dist/components/icon-button.js.map +1 -1
  90. package/dist/components/icon-button.mjs +3 -3
  91. package/dist/components/label.d.mts +1 -1
  92. package/dist/components/label.d.ts +1 -1
  93. package/dist/components/label.js.map +1 -1
  94. package/dist/components/label.mjs.map +1 -1
  95. package/dist/components/link.d.mts +1 -1
  96. package/dist/components/link.d.ts +1 -1
  97. package/dist/components/link.js +24 -5
  98. package/dist/components/link.js.map +1 -1
  99. package/dist/components/link.mjs +7 -4
  100. package/dist/components/link.mjs.map +1 -1
  101. package/dist/components/menu.d.mts +3 -1
  102. package/dist/components/menu.d.ts +3 -1
  103. package/dist/components/menu.js +21 -2
  104. package/dist/components/menu.js.map +1 -1
  105. package/dist/components/menu.mjs +3 -3
  106. package/dist/components/menu.mjs.map +1 -1
  107. package/dist/components/panel.d.mts +1 -1
  108. package/dist/components/panel.d.ts +1 -1
  109. package/dist/components/panel.js.map +1 -1
  110. package/dist/components/panel.mjs.map +1 -1
  111. package/dist/components/paragraph.d.mts +1 -1
  112. package/dist/components/paragraph.d.ts +1 -1
  113. package/dist/components/paragraph.js.map +1 -1
  114. package/dist/components/paragraph.mjs.map +1 -1
  115. package/dist/components/popover.d.mts +4 -1
  116. package/dist/components/popover.d.ts +4 -1
  117. package/dist/components/popover.js.map +1 -1
  118. package/dist/components/popover.mjs +2 -2
  119. package/dist/components/popover.mjs.map +1 -1
  120. package/dist/components/select.css +54 -48
  121. package/dist/components/select.css.map +1 -1
  122. package/dist/components/select.d.mts +4 -2
  123. package/dist/components/select.d.ts +4 -2
  124. package/dist/components/select.js +30 -8
  125. package/dist/components/select.js.map +1 -1
  126. package/dist/components/select.mjs +4 -4
  127. package/dist/components/select.mjs.map +1 -1
  128. package/dist/components/separator.d.mts +1 -1
  129. package/dist/components/separator.d.ts +1 -1
  130. package/dist/components/separator.js.map +1 -1
  131. package/dist/components/separator.mjs.map +1 -1
  132. package/dist/components/skeleton.d.mts +1 -1
  133. package/dist/components/skeleton.d.ts +1 -1
  134. package/dist/components/skeleton.js +24 -5
  135. package/dist/components/skeleton.js.map +1 -1
  136. package/dist/components/skeleton.mjs +7 -4
  137. package/dist/components/skeleton.mjs.map +1 -1
  138. package/dist/components/spinner.d.mts +1 -1
  139. package/dist/components/spinner.d.ts +1 -1
  140. package/dist/components/spinner.js +24 -5
  141. package/dist/components/spinner.js.map +1 -1
  142. package/dist/components/spinner.mjs +2 -2
  143. package/dist/components/status.d.mts +1 -1
  144. package/dist/components/status.d.ts +1 -1
  145. package/dist/components/status.js +24 -5
  146. package/dist/components/status.js.map +1 -1
  147. package/dist/components/status.mjs +2 -2
  148. package/dist/components/switch.d.mts +1 -1
  149. package/dist/components/switch.d.ts +1 -1
  150. package/dist/components/switch.js +31 -9
  151. package/dist/components/switch.js.map +1 -1
  152. package/dist/components/switch.mjs +14 -8
  153. package/dist/components/switch.mjs.map +1 -1
  154. package/dist/components/text-field.d.mts +1 -1
  155. package/dist/components/text-field.d.ts +1 -1
  156. package/dist/components/text-field.js +24 -5
  157. package/dist/components/text-field.js.map +1 -1
  158. package/dist/components/text-field.mjs +7 -4
  159. package/dist/components/text-field.mjs.map +1 -1
  160. package/dist/components/text.d.mts +1 -1
  161. package/dist/components/text.d.ts +1 -1
  162. package/dist/components/text.js +24 -5
  163. package/dist/components/text.js.map +1 -1
  164. package/dist/components/text.mjs +2 -2
  165. package/dist/components/tooltip.d.mts +1 -1
  166. package/dist/components/tooltip.d.ts +1 -1
  167. package/dist/components/tooltip.js +28 -6
  168. package/dist/components/tooltip.js.map +1 -1
  169. package/dist/components/tooltip.mjs +11 -8
  170. package/dist/components/tooltip.mjs.map +1 -1
  171. package/dist/providers/index.css +54 -48
  172. package/dist/providers/index.css.map +1 -1
  173. package/dist/providers/index.d.mts +1 -4
  174. package/dist/providers/index.d.ts +1 -4
  175. package/dist/providers/index.js +46 -18
  176. package/dist/providers/index.js.map +1 -1
  177. package/dist/providers/index.mjs +6 -6
  178. package/dist/system-theme-BSCk6DG2.d.mts +5 -0
  179. package/dist/system-theme-BSCk6DG2.d.ts +5 -0
  180. package/dist/theme/index.css +189 -173
  181. package/dist/theme/index.css.map +1 -1
  182. package/dist/theme/index.d.mts +4 -2
  183. package/dist/theme/index.d.ts +4 -2
  184. package/dist/theme/index.js +6 -1
  185. package/dist/theme/index.js.map +1 -1
  186. package/dist/theme/index.mjs +4 -2
  187. package/dist/theme/index.mjs.map +1 -1
  188. package/dist/types/index.d.mts +2 -0
  189. package/dist/types/index.d.ts +2 -0
  190. package/dist/types/index.js +19 -0
  191. package/dist/types/index.js.map +1 -0
  192. package/dist/types/index.mjs +1 -0
  193. package/dist/types/index.mjs.map +1 -0
  194. package/dist/utils/index.d.mts +11 -1
  195. package/dist/utils/index.d.ts +11 -1
  196. package/dist/utils/index.js +23 -3
  197. package/dist/utils/index.js.map +1 -1
  198. package/dist/utils/index.mjs +6 -2
  199. package/package.json +5 -1
  200. package/dist/chunk-4N6P3Y54.mjs +0 -13
  201. package/dist/chunk-4N6P3Y54.mjs.map +0 -1
  202. package/dist/chunk-5VVYRZDU.mjs.map +0 -1
  203. package/dist/chunk-66WXCRN4.mjs +0 -12
  204. package/dist/chunk-66WXCRN4.mjs.map +0 -1
  205. package/dist/chunk-C53FYO65.mjs.map +0 -1
  206. package/dist/chunk-CYDWEPFL.mjs +0 -1
  207. package/dist/chunk-HNOMBFLC.mjs.map +0 -1
  208. package/dist/chunk-OCXG5SMA.mjs.map +0 -1
  209. package/dist/chunk-OKNO3BFR.mjs.map +0 -1
  210. package/dist/chunk-REMVSAGR.mjs.map +0 -1
  211. package/dist/chunk-WPNBONR3.mjs.map +0 -1
  212. package/dist/chunk-YJWLCDJE.mjs.map +0 -1
  213. /package/dist/{chunk-CYDWEPFL.mjs.map → chunk-HGLO5LDS.mjs.map} +0 -0
@@ -2,8 +2,8 @@ import {
2
2
  gridRecipe
3
3
  } from "../chunk-KE7EIF6L.mjs";
4
4
  import {
5
- pick
6
- } from "../chunk-4N6P3Y54.mjs";
5
+ extractVariantsFromProps
6
+ } from "../chunk-UPZYS6TE.mjs";
7
7
  import {
8
8
  mergeClasses
9
9
  } from "../chunk-7EGQM3ZL.mjs";
@@ -13,10 +13,13 @@ import { Slot } from "@radix-ui/react-slot";
13
13
  import { jsx } from "react/jsx-runtime";
14
14
  var defaultElement = "div";
15
15
  var Grid = ({ asChild, ...props }) => {
16
- const variants = pick(props, ...gridRecipe.variants());
16
+ const [variants, rest] = extractVariantsFromProps(
17
+ props,
18
+ ...gridRecipe.variants()
19
+ );
17
20
  const grid = gridRecipe(variants);
18
21
  const Comp = asChild ? Slot : defaultElement;
19
- return /* @__PURE__ */ jsx(Comp, { ...props, className: mergeClasses(grid, props.className), children: props.children });
22
+ return /* @__PURE__ */ jsx(Comp, { ...rest, className: mergeClasses(grid, rest.className), children: rest.children });
20
23
  };
21
24
  export {
22
25
  Grid
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/grid.tsx"],"sourcesContent":["import { GridVariants, gridRecipe } from \"@/theme/recipes/grid.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { pick } from \"@/utils/pick\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"div\";\n\ntype GridProps = ComponentProps<typeof defaultElement, GridVariants>;\n\nexport const Grid = ({ asChild, ...props }: GridProps) => {\n const variants = pick(props, ...gridRecipe.variants());\n const grid = gridRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp {...props} className={mergeClasses(grid, props.className)}>\n {props.children}\n </Comp>\n );\n};\n"],"mappings":";;;;;;;;;;;AAIA,SAAS,YAAY;AAYjB;AAVJ,IAAM,iBAAiB;AAIhB,IAAM,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,MAAiB;AACxD,QAAM,WAAW,KAAK,OAAO,GAAG,WAAW,SAAS,CAAC;AACrD,QAAM,OAAO,WAAW,QAAQ;AAChC,QAAM,OAAO,UAAU,OAAO;AAE9B,SACE,oBAAC,QAAM,GAAG,OAAO,WAAW,aAAa,MAAM,MAAM,SAAS,GAC3D,gBAAM,UACT;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/grid.tsx"],"sourcesContent":["import { GridVariants, gridRecipe } from \"@/theme/recipes/grid.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { extractVariantsFromProps } from \"@/utils/extract-variants\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"div\";\n\nexport type GridProps = ComponentProps<typeof defaultElement, GridVariants>;\n\nexport const Grid = ({ asChild, ...props }: GridProps) => {\n const [variants, rest] = extractVariantsFromProps(\n props,\n ...gridRecipe.variants(),\n );\n const grid = gridRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp {...rest} className={mergeClasses(grid, rest.className)}>\n {rest.children}\n </Comp>\n );\n};\n"],"mappings":";;;;;;;;;;;AAIA,SAAS,YAAY;AAejB;AAbJ,IAAM,iBAAiB;AAIhB,IAAM,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,MAAiB;AACxD,QAAM,CAAC,UAAU,IAAI,IAAI;AAAA,IACvB;AAAA,IACA,GAAG,WAAW,SAAS;AAAA,EACzB;AACA,QAAM,OAAO,WAAW,QAAQ;AAChC,QAAM,OAAO,UAAU,OAAO;AAE9B,SACE,oBAAC,QAAM,GAAG,MAAM,WAAW,aAAa,MAAM,KAAK,SAAS,GACzD,eAAK,UACR;AAEJ;","names":[]}
@@ -7,4 +7,4 @@ declare const defaultElement = "button";
7
7
  type IconButtonProps = ComponentProps<typeof defaultElement, IconButtonVariants>;
8
8
  declare const IconButton: ({ asChild, ...props }: IconButtonProps) => react_jsx_runtime.JSX.Element;
9
9
 
10
- export { IconButton };
10
+ export { IconButton, type IconButtonProps };
@@ -7,4 +7,4 @@ declare const defaultElement = "button";
7
7
  type IconButtonProps = ComponentProps<typeof defaultElement, IconButtonVariants>;
8
8
  declare const IconButton: ({ asChild, ...props }: IconButtonProps) => react_jsx_runtime.JSX.Element;
9
9
 
10
- export { IconButton };
10
+ export { IconButton, type IconButtonProps };
@@ -28,9 +28,13 @@ module.exports = __toCommonJS(icon_button_exports);
28
28
  var import_createRuntimeFn = require("@vanilla-extract/recipes/createRuntimeFn");
29
29
  var spinnerRecipe = (0, import_createRuntimeFn.createRuntimeFn)({ defaultClassName: "spinner_spinnerRecipe__15xzcy90", variantClassNames: { size: { "1": "spinner_spinnerRecipe_size_1__15xzcy91", "2": "spinner_spinnerRecipe_size_2__15xzcy92", "3": "spinner_spinnerRecipe_size_3__15xzcy93", "4": "spinner_spinnerRecipe_size_4__15xzcy94", "5": "spinner_spinnerRecipe_size_5__15xzcy95", "6": "spinner_spinnerRecipe_size_6__15xzcy96", "7": "spinner_spinnerRecipe_size_7__15xzcy97", "8": "spinner_spinnerRecipe_size_8__15xzcy98", "9": "spinner_spinnerRecipe_size_9__15xzcy99" } }, defaultVariants: { size: "3" }, compoundVariants: [] });
30
30
 
31
- // src/utils/merge-classes.ts
32
- function mergeClasses(...classes) {
33
- return classes.filter((cls) => Boolean(cls)).join(" ");
31
+ // src/utils/omit.ts
32
+ function omit(obj, ...keys) {
33
+ const ret = { ...obj };
34
+ keys.forEach((key) => {
35
+ delete ret[key];
36
+ });
37
+ return ret;
34
38
  }
35
39
 
36
40
  // src/utils/pick.ts
@@ -42,15 +46,30 @@ function pick(obj, ...keys) {
42
46
  return ret;
43
47
  }
44
48
 
49
+ // src/utils/extract-variants.ts
50
+ function extractVariantsFromProps(obj, ...keys) {
51
+ const variants = pick(obj, ...keys);
52
+ const rest = omit(obj, ...keys);
53
+ return [variants, rest];
54
+ }
55
+
56
+ // src/utils/merge-classes.ts
57
+ function mergeClasses(...classes) {
58
+ return classes.filter((cls) => Boolean(cls)).join(" ");
59
+ }
60
+
45
61
  // src/components/spinner.tsx
46
62
  var import_react_slot = require("@radix-ui/react-slot");
47
63
  var import_jsx_runtime = require("react/jsx-runtime");
48
64
  var defaultElement = "div";
49
65
  var Spinner = ({ asChild, ...props }) => {
50
- const variants = pick(props, ...spinnerRecipe.variants());
66
+ const [variants, rest] = extractVariantsFromProps(
67
+ props,
68
+ ...spinnerRecipe.variants()
69
+ );
51
70
  const spinner = spinnerRecipe(variants);
52
71
  const Comp = asChild ? import_react_slot.Slot : defaultElement;
53
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { ...props, className: mergeClasses(spinner, props.className), children: props.children });
72
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { ...rest, className: mergeClasses(spinner, rest.className), children: rest.children });
54
73
  };
55
74
 
56
75
  // src/theme/recipes/icon-button.css.ts
@@ -62,17 +81,20 @@ var import_react_slot2 = require("@radix-ui/react-slot");
62
81
  var import_jsx_runtime2 = require("react/jsx-runtime");
63
82
  var defaultElement2 = "button";
64
83
  var IconButton = ({ asChild, ...props }) => {
65
- const variants = pick(props, ...iconButtonRecipe.variants());
84
+ const [variants, rest] = extractVariantsFromProps(
85
+ props,
86
+ ...iconButtonRecipe.variants()
87
+ );
66
88
  const iconButton = iconButtonRecipe(variants);
67
89
  const Comp = asChild ? import_react_slot2.Slot : defaultElement2;
68
90
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
69
91
  Comp,
70
92
  {
71
- ...props,
72
- className: mergeClasses(iconButton, props.className),
73
- disabled: props.disabled || Boolean(variants.loading),
93
+ ...rest,
94
+ className: mergeClasses(iconButton, rest.className),
95
+ disabled: rest.disabled || Boolean(variants.loading),
74
96
  children: [
75
- props.children,
97
+ rest.children,
76
98
  variants.loading && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Spinner, { style: { position: "absolute" } })
77
99
  ]
78
100
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/icon-button.tsx","../../src/theme/recipes/spinner.css.ts","../../src/utils/merge-classes.ts","../../src/utils/pick.ts","../../src/components/spinner.tsx","../../src/theme/recipes/icon-button.css.ts"],"sourcesContent":["import { Spinner } from \"@/components/spinner\";\nimport {\n IconButtonVariants,\n iconButtonRecipe,\n} from \"@/theme/recipes/icon-button.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { pick } from \"@/utils/pick\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"button\";\n\ntype IconButtonProps = ComponentProps<\n typeof defaultElement,\n IconButtonVariants\n>;\n\nexport const IconButton = ({ asChild, ...props }: IconButtonProps) => {\n const variants = pick(props, ...iconButtonRecipe.variants());\n const iconButton = iconButtonRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp\n {...props}\n className={mergeClasses(iconButton, props.className)}\n disabled={props.disabled || Boolean(variants.loading)}\n >\n {props.children}\n {variants.loading && <Spinner style={{ position: \"absolute\" }} />}\n </Comp>\n );\n};\n","import 'src/theme/animations/spin.css.ts.vanilla.css?source=QGtleWZyYW1lcyBzcGluX3NwaW5fXzkxZzI5NTAgewogIHRvIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9';\nimport 'src/theme/recipes/spinner.css.ts.vanilla.css?source=#H4sIAAAAAAAAA33P327CIBTH8fs+BZfbRY30jxa93BvsBQgtWE9SoQHc1MV3X+ocI2SHGxuT7/l9wsrNoLWy/Pl9VwPMinPaXm7Dla3JV0GI0HASHozekSV7tJwzOlasXZNV58gEWglLQB9Ag1f7gpDeWKnsjtD5QpyZQJIPYV/KcjCTsa50k/Dq57fhnDLdq07S6/T6d1taIeHsds/D5R+U1py1DAfVqOMDb+YYHM7WKu3fFnFf3IvV/491cFOchjfTx5uPCsaj/7WXxJU0cruH+wnSH/NRnq0CW6FsFS0yjE2jPFsHtkbZOloUGJtGebYJbIOyTbTYY2wa5dk2sC3KttHigLFplGc3gd2g7CZalBibRnl2G9gtym6jRYWxaZRnu8B2KNtFiweMTaM8ywLLUJZFiyPGptH9G0PpMC4bBQAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var spinnerRecipe = _7a468({defaultClassName:'spinner_spinnerRecipe__15xzcy90',variantClassNames:{size:{'1':'spinner_spinnerRecipe_size_1__15xzcy91','2':'spinner_spinnerRecipe_size_2__15xzcy92','3':'spinner_spinnerRecipe_size_3__15xzcy93','4':'spinner_spinnerRecipe_size_4__15xzcy94','5':'spinner_spinnerRecipe_size_5__15xzcy95','6':'spinner_spinnerRecipe_size_6__15xzcy96','7':'spinner_spinnerRecipe_size_7__15xzcy97','8':'spinner_spinnerRecipe_size_8__15xzcy98','9':'spinner_spinnerRecipe_size_9__15xzcy99'}},defaultVariants:{size:'3'},compoundVariants:[]});","export function mergeClasses(...classes: (string | undefined)[]): string {\n return classes.filter((cls): cls is string => Boolean(cls)).join(\" \");\n}\n","/**\n * https://stackoverflow.com/a/47232883\n */\nexport function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const ret: any = {};\n keys.forEach((key) => {\n ret[key] = obj[key];\n });\n\n return ret;\n}\n","import { SpinnerVariants, spinnerRecipe } from \"@/theme/recipes/spinner.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { pick } from \"@/utils/pick\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"div\";\n\ntype SpinnerProps = ComponentProps<typeof defaultElement, SpinnerVariants>;\n\nexport const Spinner = ({ asChild, ...props }: SpinnerProps) => {\n const variants = pick(props, ...spinnerRecipe.variants());\n const spinner = spinnerRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp {...props} className={mergeClasses(spinner, props.className)}>\n {props.children}\n </Comp>\n );\n};\n","import 'src/theme/recipes/icon-button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8WVzW7bMAyA730K77YeVMRJf1L31PWy817AkCXaZqpIhkQnaYa9+yDZTtS0Xryi2BAgtiiK/Pgj+gqF0axoiYzO/fu38PoDBDaQ55v7xX7pZsnPiyThCivNkGDtskSAJrAPXtw0wC3XArJEGw1eVhgrwbItSqqzZNaJdszhHnWVDduF2fkdia5R/CVLUCvUwEoFQe6fzNUW9XNvozSaWMnXqIJ2DRbpIHe4hyxJr5tweNU6wvKFCaMJNMXAwUkNWNWUJamXmJa88MjfcCkDaXBLsCMmQRjLCY0+qrUOLHOgQNBRyLZQPCMx4g2rsaqVd8SEUcZmCVmuXcMt6AAeltgZ5Uol6Wy2dn6jVxet9apPfvVw8evialK1soyXBDYUbSzt020VUBoLn2OsNpueS7TW+Qgbg11dJtuQ6HihQHZEXDxX1rRaDhnecPuVdQvHnOIE3f88z9N7XcBSpi+ry0NH1lyarW8mB5TMwi9tdu9Yeewfd0c7+9llVKsxx8vIcdMd6GPXhhhXymxBhqbrUsFgA5rc0FDn8qIM962ak20PSUq7FL9pueQLrhtjifvuO2fY36c8HUzO+wYIRbdcYuuGkP0KWXoIc17VIczhinVa3pxjN5GWCFr9jPiT0iTS+UC6OEc6j8zjKOltpCXHSE+VJpEuBtLrzyG9i7RgjPRUaRLp9UB6c450EZlfjZIuI61yjPRU6RzphlvkmvKqNo4G4NuR6fBq/n7McjTExqaPgzXXhOKpGwaR0+/+7DHA8uMBZlwQbuCDHI/hcARS/QVI/7kcUO6m5HrKuD3B7XwcCKd07Rjhf6vZG5B/X7Xg4dXnYXnuNpetUtEtNN7Lb9uZ25EpCgAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var iconButtonRecipe = _7a468({defaultClassName:'icon-button_iconButtonRecipe__v93z8s0',variantClassNames:{loading:{true:'icon-button_iconButtonRecipe_loading_true__v93z8s1'},size:{'1':'icon-button_iconButtonRecipe_size_1__v93z8s2','2':'icon-button_iconButtonRecipe_size_2__v93z8s3','3':'icon-button_iconButtonRecipe_size_3__v93z8s4','4':'icon-button_iconButtonRecipe_size_4__v93z8s5'},variant:{ghost:'icon-button_iconButtonRecipe_variant_ghost__v93z8s6',outline:'icon-button_iconButtonRecipe_variant_outline__v93z8s7'},round:{true:'icon-button_iconButtonRecipe_round_true__v93z8s8'}},defaultVariants:{size:'1',variant:'ghost'},compoundVariants:[]});"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,6BAA0C;AACnC,IAAI,oBAAgB,uBAAAA,iBAAO,EAAC,kBAAiB,mCAAkC,mBAAkB,EAAC,MAAK,EAAC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,yCAAwC,EAAC,GAAE,iBAAgB,EAAC,MAAK,IAAG,GAAE,kBAAiB,CAAC,EAAC,CAAC;;;ACH9iB,SAAS,gBAAgB,SAAyC;AACvE,SAAO,QAAQ,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG;AACtE;;;ACCO,SAAS,KAA2B,QAAW,MAAuB;AAE3E,QAAM,MAAW,CAAC;AAClB,OAAK,QAAQ,CAAC,QAAQ;AACpB,QAAI,GAAG,IAAI,IAAI,GAAG;AAAA,EACpB,CAAC;AAED,SAAO;AACT;;;ACPA,wBAAqB;AAYjB;AAVJ,IAAM,iBAAiB;AAIhB,IAAM,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,MAAoB;AAC9D,QAAM,WAAW,KAAK,OAAO,GAAG,cAAc,SAAS,CAAC;AACxD,QAAM,UAAU,cAAc,QAAQ;AACtC,QAAM,OAAO,UAAU,yBAAO;AAE9B,SACE,4CAAC,QAAM,GAAG,OAAO,WAAW,aAAa,SAAS,MAAM,SAAS,GAC9D,gBAAM,UACT;AAEJ;;;ACnBA,IAAAC,0BAA0C;AACnC,IAAI,uBAAmB,wBAAAC,iBAAO,EAAC,kBAAiB,yCAAwC,mBAAkB,EAAC,SAAQ,EAAC,MAAK,qDAAoD,GAAE,MAAK,EAAC,KAAI,gDAA+C,KAAI,gDAA+C,KAAI,gDAA+C,KAAI,+CAA8C,GAAE,SAAQ,EAAC,OAAM,uDAAsD,SAAQ,wDAAuD,GAAE,OAAM,EAAC,MAAK,mDAAkD,EAAC,GAAE,iBAAgB,EAAC,MAAK,KAAI,SAAQ,QAAO,GAAE,kBAAiB,CAAC,EAAC,CAAC;;;ALM/oB,IAAAC,qBAAqB;AAejB,IAAAC,sBAAA;AAbJ,IAAMC,kBAAiB;AAOhB,IAAM,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,MAAuB;AACpE,QAAM,WAAW,KAAK,OAAO,GAAG,iBAAiB,SAAS,CAAC;AAC3D,QAAM,aAAa,iBAAiB,QAAQ;AAC5C,QAAM,OAAO,UAAU,0BAAOA;AAE9B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,aAAa,YAAY,MAAM,SAAS;AAAA,MACnD,UAAU,MAAM,YAAY,QAAQ,SAAS,OAAO;AAAA,MAEnD;AAAA,cAAM;AAAA,QACN,SAAS,WAAW,6CAAC,WAAQ,OAAO,EAAE,UAAU,WAAW,GAAG;AAAA;AAAA;AAAA,EACjE;AAEJ;","names":["_7a468","import_createRuntimeFn","_7a468","import_react_slot","import_jsx_runtime","defaultElement"]}
1
+ {"version":3,"sources":["../../src/components/icon-button.tsx","../../src/theme/recipes/spinner.css.ts","../../src/utils/omit.ts","../../src/utils/pick.ts","../../src/utils/extract-variants.ts","../../src/utils/merge-classes.ts","../../src/components/spinner.tsx","../../src/theme/recipes/icon-button.css.ts"],"sourcesContent":["import { Spinner } from \"@/components/spinner\";\nimport {\n IconButtonVariants,\n iconButtonRecipe,\n} from \"@/theme/recipes/icon-button.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { extractVariantsFromProps } from \"@/utils/extract-variants\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"button\";\n\nexport type IconButtonProps = ComponentProps<\n typeof defaultElement,\n IconButtonVariants\n>;\n\nexport const IconButton = ({ asChild, ...props }: IconButtonProps) => {\n const [variants, rest] = extractVariantsFromProps(\n props,\n ...iconButtonRecipe.variants(),\n );\n const iconButton = iconButtonRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp\n {...rest}\n className={mergeClasses(iconButton, rest.className)}\n disabled={rest.disabled || Boolean(variants.loading)}\n >\n {rest.children}\n {variants.loading && <Spinner style={{ position: \"absolute\" }} />}\n </Comp>\n );\n};\n","import 'src/theme/animations/spin.css.ts.vanilla.css?source=QGtleWZyYW1lcyBzcGluX3NwaW5fXzkxZzI5NTAgewogIHRvIHsKICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7CiAgfQp9';\nimport 'src/theme/recipes/spinner.css.ts.vanilla.css?source=#H4sIAAAAAAAAA33P327CIBTH8fs+BZfbRY30jxa93BvsBQgtWE9SoQHc1MV3X+ocI2SHGxuT7/l9wsrNoLWy/Pl9VwPMinPaXm7Dla3JV0GI0HASHozekSV7tJwzOlasXZNV58gEWglLQB9Ag1f7gpDeWKnsjtD5QpyZQJIPYV/KcjCTsa50k/Dq57fhnDLdq07S6/T6d1taIeHsds/D5R+U1py1DAfVqOMDb+YYHM7WKu3fFnFf3IvV/491cFOchjfTx5uPCsaj/7WXxJU0cruH+wnSH/NRnq0CW6FsFS0yjE2jPFsHtkbZOloUGJtGebYJbIOyTbTYY2wa5dk2sC3KttHigLFplGc3gd2g7CZalBibRnl2G9gtym6jRYWxaZRnu8B2KNtFiweMTaM8ywLLUJZFiyPGptH9G0PpMC4bBQAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var spinnerRecipe = _7a468({defaultClassName:'spinner_spinnerRecipe__15xzcy90',variantClassNames:{size:{'1':'spinner_spinnerRecipe_size_1__15xzcy91','2':'spinner_spinnerRecipe_size_2__15xzcy92','3':'spinner_spinnerRecipe_size_3__15xzcy93','4':'spinner_spinnerRecipe_size_4__15xzcy94','5':'spinner_spinnerRecipe_size_5__15xzcy95','6':'spinner_spinnerRecipe_size_6__15xzcy96','7':'spinner_spinnerRecipe_size_7__15xzcy97','8':'spinner_spinnerRecipe_size_8__15xzcy98','9':'spinner_spinnerRecipe_size_9__15xzcy99'}},defaultVariants:{size:'3'},compoundVariants:[]});","export function omit<T, K extends keyof T>(obj: T, ...keys: K[]): Omit<T, K> {\n const ret = { ...obj };\n keys.forEach((key) => {\n delete ret[key];\n });\n\n return ret;\n}\n","/**\n * https://stackoverflow.com/a/47232883\n */\nexport function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const ret: any = {};\n keys.forEach((key) => {\n ret[key] = obj[key];\n });\n\n return ret;\n}\n","import { omit } from \"./omit\";\nimport { pick } from \"./pick\";\n\n/**\n * TODO\n * @param obj\n * @param keys\n * @returns [variants, props]\n */\nexport function extractVariantsFromProps<T, K extends keyof T>(\n obj: T,\n ...keys: K[]\n): [Pick<T, K>, Omit<T, K>] {\n const variants = pick(obj, ...keys);\n const rest = omit(obj, ...keys);\n\n return [variants, rest];\n}\n","export function mergeClasses(...classes: (string | undefined)[]): string {\n return classes.filter((cls): cls is string => Boolean(cls)).join(\" \");\n}\n","import { SpinnerVariants, spinnerRecipe } from \"@/theme/recipes/spinner.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { extractVariantsFromProps } from \"@/utils/extract-variants\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"div\";\n\nexport type SpinnerProps = ComponentProps<\n typeof defaultElement,\n SpinnerVariants\n>;\n\nexport const Spinner = ({ asChild, ...props }: SpinnerProps) => {\n const [variants, rest] = extractVariantsFromProps(\n props,\n ...spinnerRecipe.variants(),\n );\n const spinner = spinnerRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp {...rest} className={mergeClasses(spinner, rest.className)}>\n {rest.children}\n </Comp>\n );\n};\n","import 'src/theme/recipes/icon-button.css.ts.vanilla.css?source=#H4sIAAAAAAAAA8WVzW7bMAyA730K77YeVMRJf1L31PWy817AkCXaZqpIhkQnaYa9+yDZTtS0Xryi2BAgtiiK/Pgj+gqF0axoiYzO/fu38PoDBDaQ55v7xX7pZsnPiyThCivNkGDtskSAJrAPXtw0wC3XArJEGw1eVhgrwbItSqqzZNaJdszhHnWVDduF2fkdia5R/CVLUCvUwEoFQe6fzNUW9XNvozSaWMnXqIJ2DRbpIHe4hyxJr5tweNU6wvKFCaMJNMXAwUkNWNWUJamXmJa88MjfcCkDaXBLsCMmQRjLCY0+qrUOLHOgQNBRyLZQPCMx4g2rsaqVd8SEUcZmCVmuXcMt6AAeltgZ5Uol6Wy2dn6jVxet9apPfvVw8evialK1soyXBDYUbSzt020VUBoLn2OsNpueS7TW+Qgbg11dJtuQ6HihQHZEXDxX1rRaDhnecPuVdQvHnOIE3f88z9N7XcBSpi+ry0NH1lyarW8mB5TMwi9tdu9Yeewfd0c7+9llVKsxx8vIcdMd6GPXhhhXymxBhqbrUsFgA5rc0FDn8qIM962ak20PSUq7FL9pueQLrhtjifvuO2fY36c8HUzO+wYIRbdcYuuGkP0KWXoIc17VIczhinVa3pxjN5GWCFr9jPiT0iTS+UC6OEc6j8zjKOltpCXHSE+VJpEuBtLrzyG9i7RgjPRUaRLp9UB6c450EZlfjZIuI61yjPRU6RzphlvkmvKqNo4G4NuR6fBq/n7McjTExqaPgzXXhOKpGwaR0+/+7DHA8uMBZlwQbuCDHI/hcARS/QVI/7kcUO6m5HrKuD3B7XwcCKd07Rjhf6vZG5B/X7Xg4dXnYXnuNpetUtEtNN7Lb9uZ25EpCgAA';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var iconButtonRecipe = _7a468({defaultClassName:'icon-button_iconButtonRecipe__v93z8s0',variantClassNames:{loading:{true:'icon-button_iconButtonRecipe_loading_true__v93z8s1'},size:{'1':'icon-button_iconButtonRecipe_size_1__v93z8s2','2':'icon-button_iconButtonRecipe_size_2__v93z8s3','3':'icon-button_iconButtonRecipe_size_3__v93z8s4','4':'icon-button_iconButtonRecipe_size_4__v93z8s5'},variant:{ghost:'icon-button_iconButtonRecipe_variant_ghost__v93z8s6',outline:'icon-button_iconButtonRecipe_variant_outline__v93z8s7'},round:{true:'icon-button_iconButtonRecipe_round_true__v93z8s8'}},defaultVariants:{size:'1',variant:'ghost'},compoundVariants:[]});"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACEA,6BAA0C;AACnC,IAAI,oBAAgB,uBAAAA,iBAAO,EAAC,kBAAiB,mCAAkC,mBAAkB,EAAC,MAAK,EAAC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,0CAAyC,KAAI,yCAAwC,EAAC,GAAE,iBAAgB,EAAC,MAAK,IAAG,GAAE,kBAAiB,CAAC,EAAC,CAAC;;;ACH9iB,SAAS,KAA2B,QAAW,MAAuB;AAC3E,QAAM,MAAM,EAAE,GAAG,IAAI;AACrB,OAAK,QAAQ,CAAC,QAAQ;AACpB,WAAO,IAAI,GAAG;AAAA,EAChB,CAAC;AAED,SAAO;AACT;;;ACJO,SAAS,KAA2B,QAAW,MAAuB;AAE3E,QAAM,MAAW,CAAC;AAClB,OAAK,QAAQ,CAAC,QAAQ;AACpB,QAAI,GAAG,IAAI,IAAI,GAAG;AAAA,EACpB,CAAC;AAED,SAAO;AACT;;;ACFO,SAAS,yBACd,QACG,MACuB;AAC1B,QAAM,WAAW,KAAK,KAAK,GAAG,IAAI;AAClC,QAAM,OAAO,KAAK,KAAK,GAAG,IAAI;AAE9B,SAAO,CAAC,UAAU,IAAI;AACxB;;;ACjBO,SAAS,gBAAgB,SAAyC;AACvE,SAAO,QAAQ,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG;AACtE;;;ACEA,wBAAqB;AAkBjB;AAhBJ,IAAM,iBAAiB;AAOhB,IAAM,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,MAAoB;AAC9D,QAAM,CAAC,UAAU,IAAI,IAAI;AAAA,IACvB;AAAA,IACA,GAAG,cAAc,SAAS;AAAA,EAC5B;AACA,QAAM,UAAU,cAAc,QAAQ;AACtC,QAAM,OAAO,UAAU,yBAAO;AAE9B,SACE,4CAAC,QAAM,GAAG,MAAM,WAAW,aAAa,SAAS,KAAK,SAAS,GAC5D,eAAK,UACR;AAEJ;;;ACzBA,IAAAC,0BAA0C;AACnC,IAAI,uBAAmB,wBAAAC,iBAAO,EAAC,kBAAiB,yCAAwC,mBAAkB,EAAC,SAAQ,EAAC,MAAK,qDAAoD,GAAE,MAAK,EAAC,KAAI,gDAA+C,KAAI,gDAA+C,KAAI,gDAA+C,KAAI,+CAA8C,GAAE,SAAQ,EAAC,OAAM,uDAAsD,SAAQ,wDAAuD,GAAE,OAAM,EAAC,MAAK,mDAAkD,EAAC,GAAE,iBAAgB,EAAC,MAAK,KAAI,SAAQ,QAAO,GAAE,kBAAiB,CAAC,EAAC,CAAC;;;APM/oB,IAAAC,qBAAqB;AAkBjB,IAAAC,sBAAA;AAhBJ,IAAMC,kBAAiB;AAOhB,IAAM,aAAa,CAAC,EAAE,SAAS,GAAG,MAAM,MAAuB;AACpE,QAAM,CAAC,UAAU,IAAI,IAAI;AAAA,IACvB;AAAA,IACA,GAAG,iBAAiB,SAAS;AAAA,EAC/B;AACA,QAAM,aAAa,iBAAiB,QAAQ;AAC5C,QAAM,OAAO,UAAU,0BAAOA;AAE9B,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,aAAa,YAAY,KAAK,SAAS;AAAA,MAClD,UAAU,KAAK,YAAY,QAAQ,SAAS,OAAO;AAAA,MAElD;AAAA,aAAK;AAAA,QACL,SAAS,WAAW,6CAAC,WAAQ,OAAO,EAAE,UAAU,WAAW,GAAG;AAAA;AAAA;AAAA,EACjE;AAEJ;","names":["_7a468","import_createRuntimeFn","_7a468","import_react_slot","import_jsx_runtime","defaultElement"]}
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  IconButton
3
- } from "../chunk-OKNO3BFR.mjs";
3
+ } from "../chunk-OZ2DHFQP.mjs";
4
4
  import "../chunk-HNVVD3WS.mjs";
5
- import "../chunk-HNOMBFLC.mjs";
5
+ import "../chunk-67WEB6LY.mjs";
6
6
  import "../chunk-47YGQSLM.mjs";
7
- import "../chunk-4N6P3Y54.mjs";
7
+ import "../chunk-UPZYS6TE.mjs";
8
8
  import "../chunk-7EGQM3ZL.mjs";
9
9
  export {
10
10
  IconButton
@@ -9,4 +9,4 @@ type LabelProps = LabelPrimitive.LabelProps & Omit<TextVariants, "size"> & {
9
9
  };
10
10
  declare const Label: ({ color, size, weight, ...props }: LabelProps) => react_jsx_runtime.JSX.Element;
11
11
 
12
- export { Label };
12
+ export { Label, type LabelProps };
@@ -9,4 +9,4 @@ type LabelProps = LabelPrimitive.LabelProps & Omit<TextVariants, "size"> & {
9
9
  };
10
10
  declare const Label: ({ color, size, weight, ...props }: LabelProps) => react_jsx_runtime.JSX.Element;
11
11
 
12
- export { Label };
12
+ export { Label, type LabelProps };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/label.tsx","../../src/theme/recipes/text.css.ts","../../src/theme/styles/label.css.ts","../../src/utils/merge-classes.ts"],"sourcesContent":["import { TextVariants, textRecipe } from \"@/theme/recipes/text.css\";\nimport { label } from \"@/theme/styles/label.css\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\ntype LabelSizeVariants = \"1\" | \"2\";\n\ntype LabelProps = LabelPrimitive.LabelProps &\n Omit<TextVariants, \"size\"> & {\n size?: LabelSizeVariants;\n };\n\nconst textSize: Record<LabelSizeVariants, TextVariants[\"size\"]> = {\n 1: \"3\",\n 2: \"4\",\n};\n\nexport const Label = ({ color, size = \"1\", weight, ...props }: LabelProps) => {\n const text = textRecipe({ color, size: textSize[size], weight });\n\n return (\n <LabelPrimitive.Root\n {...props}\n className={mergeClasses(text, label, props.className)}\n >\n {props.children}\n </LabelPrimitive.Root>\n );\n};\n","import 'src/theme/recipes/text.css.ts.vanilla.css?source=#H4sIAAAAAAAAA5XUzXKCMBAH8DtPkWM9xBHED/TYN6iHHpkQFsw0BJugFTt9905QFqajib2AJNnff5Zgpg2cm9Re3oCLA6Rp2K5MfDrPyHdAiBQK6B5EuW82JNwGhFRMl0JtyMw+FLVq6Ndt+sT0C6V26L0bMVRDeZRMp2mYqAzWeVSoCZadmBZMNVQdK9CCb0jDMrvaDhi7KhfmIFm7IZms+QfWFawSsh3HGdo1MaSIyTb4CaZ/W+O1rHV60KJiusVGw67Rbq5HDVRMNYK/2kFDbxX9PRmS+KcryQCvVT7OirxZWDP8GuXl4MoDrWuNWXNvVrf+eh1lQOTs6Zg1cvhKYm+IFXZ9Ub9B/H6EERdIQ8QXHd5tup0Zb/lOXMDQEMnEAUYILn1ghCBzgHMEVz5wjmDmAGME1z4wRtD1DhcIJj5wgWDuAJcIMh+4RPDBx9qBKwQzH7hCsHCAawS5D1wjWDrABMHcBw7/nv198HpEpsN5eIVhgP97iD4OqSAXxwozimcysKaPqJ0RWS1zDCifCbhV9PzB8r9d18CZewYAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var textRecipe = _7a468({defaultClassName:'text_textRecipe__1y7s4vx0',variantClassNames:{color:{primary:'text_textRecipe_color_primary__1y7s4vx1',secondary:'text_textRecipe_color_secondary__1y7s4vx2',error:'text_textRecipe_color_error__1y7s4vx3',subtle:'text_textRecipe_color_subtle__1y7s4vx4'},size:{'1':'text_textRecipe_size_1__1y7s4vx5','2':'text_textRecipe_size_2__1y7s4vx6','3':'text_textRecipe_size_3__1y7s4vx7','4':'text_textRecipe_size_4__1y7s4vx8','5':'text_textRecipe_size_5__1y7s4vx9','6':'text_textRecipe_size_6__1y7s4vxa','7':'text_textRecipe_size_7__1y7s4vxb','8':'text_textRecipe_size_8__1y7s4vxc','9':'text_textRecipe_size_9__1y7s4vxd'},weight:{regular:'text_textRecipe_weight_regular__1y7s4vxe',medium:'text_textRecipe_weight_medium__1y7s4vxf',bold:'text_textRecipe_weight_bold__1y7s4vxg'}},defaultVariants:{size:'3'},compoundVariants:[]});","import 'src/theme/styles/label.css.ts.vanilla.css?source=LmxhYmVsX2xhYmVsX19yMW5rZ3EwIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICBjdXJzb3I6IGRlZmF1bHQ7Cn0=';\nexport var label = 'label_label__r1nkgq0';","export function mergeClasses(...classes: (string | undefined)[]): string {\n return classes.filter((cls): cls is string => Boolean(cls)).join(\" \");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,6BAA0C;AACnC,IAAI,iBAAa,uBAAAA,iBAAO,EAAC,kBAAiB,6BAA4B,mBAAkB,EAAC,OAAM,EAAC,SAAQ,2CAA0C,WAAU,6CAA4C,OAAM,yCAAwC,QAAO,yCAAwC,GAAE,MAAK,EAAC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,mCAAkC,GAAE,QAAO,EAAC,SAAQ,4CAA2C,QAAO,2CAA0C,MAAK,wCAAuC,EAAC,GAAE,iBAAgB,EAAC,MAAK,IAAG,GAAE,kBAAiB,CAAC,EAAC,CAAC;;;ACDv1B,IAAI,QAAQ;;;ACDZ,SAAS,gBAAgB,SAAyC;AACvE,SAAO,QAAQ,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG;AACtE;;;AHCA,qBAAgC;AAkB5B;AATJ,IAAM,WAA4D;AAAA,EAChE,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAK,QAAQ,GAAG,MAAM,MAAkB;AAC5E,QAAM,OAAO,WAAW,EAAE,OAAO,MAAM,SAAS,IAAI,GAAG,OAAO,CAAC;AAE/D,SACE;AAAA,IAAgB;AAAA,IAAf;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,aAAa,MAAM,OAAO,MAAM,SAAS;AAAA,MAEnD,gBAAM;AAAA;AAAA,EACT;AAEJ;","names":["_7a468"]}
1
+ {"version":3,"sources":["../../src/components/label.tsx","../../src/theme/recipes/text.css.ts","../../src/theme/styles/label.css.ts","../../src/utils/merge-classes.ts"],"sourcesContent":["import { TextVariants, textRecipe } from \"@/theme/recipes/text.css\";\nimport { label } from \"@/theme/styles/label.css\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\ntype LabelSizeVariants = \"1\" | \"2\";\n\nexport type LabelProps = LabelPrimitive.LabelProps &\n Omit<TextVariants, \"size\"> & {\n size?: LabelSizeVariants;\n };\n\nconst textSize: Record<LabelSizeVariants, TextVariants[\"size\"]> = {\n 1: \"3\",\n 2: \"4\",\n};\n\nexport const Label = ({ color, size = \"1\", weight, ...props }: LabelProps) => {\n const text = textRecipe({ color, size: textSize[size], weight });\n\n return (\n <LabelPrimitive.Root\n {...props}\n className={mergeClasses(text, label, props.className)}\n >\n {props.children}\n </LabelPrimitive.Root>\n );\n};\n","import 'src/theme/recipes/text.css.ts.vanilla.css?source=#H4sIAAAAAAAAA5XUzXKCMBAH8DtPkWM9xBHED/TYN6iHHpkQFsw0BJugFTt9905QFqajib2AJNnff5Zgpg2cm9Re3oCLA6Rp2K5MfDrPyHdAiBQK6B5EuW82JNwGhFRMl0JtyMw+FLVq6Ndt+sT0C6V26L0bMVRDeZRMp2mYqAzWeVSoCZadmBZMNVQdK9CCb0jDMrvaDhi7KhfmIFm7IZms+QfWFawSsh3HGdo1MaSIyTb4CaZ/W+O1rHV60KJiusVGw67Rbq5HDVRMNYK/2kFDbxX9PRmS+KcryQCvVT7OirxZWDP8GuXl4MoDrWuNWXNvVrf+eh1lQOTs6Zg1cvhKYm+IFXZ9Ub9B/H6EERdIQ8QXHd5tup0Zb/lOXMDQEMnEAUYILn1ghCBzgHMEVz5wjmDmAGME1z4wRtD1DhcIJj5wgWDuAJcIMh+4RPDBx9qBKwQzH7hCsHCAawS5D1wjWDrABMHcBw7/nv198HpEpsN5eIVhgP97iD4OqSAXxwozimcysKaPqJ0RWS1zDCifCbhV9PzB8r9d18CZewYAAA==';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var textRecipe = _7a468({defaultClassName:'text_textRecipe__1y7s4vx0',variantClassNames:{color:{primary:'text_textRecipe_color_primary__1y7s4vx1',secondary:'text_textRecipe_color_secondary__1y7s4vx2',error:'text_textRecipe_color_error__1y7s4vx3',subtle:'text_textRecipe_color_subtle__1y7s4vx4'},size:{'1':'text_textRecipe_size_1__1y7s4vx5','2':'text_textRecipe_size_2__1y7s4vx6','3':'text_textRecipe_size_3__1y7s4vx7','4':'text_textRecipe_size_4__1y7s4vx8','5':'text_textRecipe_size_5__1y7s4vx9','6':'text_textRecipe_size_6__1y7s4vxa','7':'text_textRecipe_size_7__1y7s4vxb','8':'text_textRecipe_size_8__1y7s4vxc','9':'text_textRecipe_size_9__1y7s4vxd'},weight:{regular:'text_textRecipe_weight_regular__1y7s4vxe',medium:'text_textRecipe_weight_medium__1y7s4vxf',bold:'text_textRecipe_weight_bold__1y7s4vxg'}},defaultVariants:{size:'3'},compoundVariants:[]});","import 'src/theme/styles/label.css.ts.vanilla.css?source=LmxhYmVsX2xhYmVsX19yMW5rZ3EwIHsKICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsKICBjdXJzb3I6IGRlZmF1bHQ7Cn0=';\nexport var label = 'label_label__r1nkgq0';","export function mergeClasses(...classes: (string | undefined)[]): string {\n return classes.filter((cls): cls is string => Boolean(cls)).join(\" \");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,6BAA0C;AACnC,IAAI,iBAAa,uBAAAA,iBAAO,EAAC,kBAAiB,6BAA4B,mBAAkB,EAAC,OAAM,EAAC,SAAQ,2CAA0C,WAAU,6CAA4C,OAAM,yCAAwC,QAAO,yCAAwC,GAAE,MAAK,EAAC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,oCAAmC,KAAI,mCAAkC,GAAE,QAAO,EAAC,SAAQ,4CAA2C,QAAO,2CAA0C,MAAK,wCAAuC,EAAC,GAAE,iBAAgB,EAAC,MAAK,IAAG,GAAE,kBAAiB,CAAC,EAAC,CAAC;;;ACDv1B,IAAI,QAAQ;;;ACDZ,SAAS,gBAAgB,SAAyC;AACvE,SAAO,QAAQ,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG;AACtE;;;AHCA,qBAAgC;AAkB5B;AATJ,IAAM,WAA4D;AAAA,EAChE,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAK,QAAQ,GAAG,MAAM,MAAkB;AAC5E,QAAM,OAAO,WAAW,EAAE,OAAO,MAAM,SAAS,IAAI,GAAG,OAAO,CAAC;AAE/D,SACE;AAAA,IAAgB;AAAA,IAAf;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,aAAa,MAAM,OAAO,MAAM,SAAS;AAAA,MAEnD,gBAAM;AAAA;AAAA,EACT;AAEJ;","names":["_7a468"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/label.tsx"],"sourcesContent":["import { TextVariants, textRecipe } from \"@/theme/recipes/text.css\";\nimport { label } from \"@/theme/styles/label.css\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\ntype LabelSizeVariants = \"1\" | \"2\";\n\ntype LabelProps = LabelPrimitive.LabelProps &\n Omit<TextVariants, \"size\"> & {\n size?: LabelSizeVariants;\n };\n\nconst textSize: Record<LabelSizeVariants, TextVariants[\"size\"]> = {\n 1: \"3\",\n 2: \"4\",\n};\n\nexport const Label = ({ color, size = \"1\", weight, ...props }: LabelProps) => {\n const text = textRecipe({ color, size: textSize[size], weight });\n\n return (\n <LabelPrimitive.Root\n {...props}\n className={mergeClasses(text, label, props.className)}\n >\n {props.children}\n </LabelPrimitive.Root>\n );\n};\n"],"mappings":";;;;;;;;;;;AAGA,YAAY,oBAAoB;AAkB5B;AATJ,IAAM,WAA4D;AAAA,EAChE,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAK,QAAQ,GAAG,MAAM,MAAkB;AAC5E,QAAM,OAAO,WAAW,EAAE,OAAO,MAAM,SAAS,IAAI,GAAG,OAAO,CAAC;AAE/D,SACE;AAAA,IAAgB;AAAA,IAAf;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,aAAa,MAAM,OAAO,MAAM,SAAS;AAAA,MAEnD,gBAAM;AAAA;AAAA,EACT;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/label.tsx"],"sourcesContent":["import { TextVariants, textRecipe } from \"@/theme/recipes/text.css\";\nimport { label } from \"@/theme/styles/label.css\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport * as LabelPrimitive from \"@radix-ui/react-label\";\n\ntype LabelSizeVariants = \"1\" | \"2\";\n\nexport type LabelProps = LabelPrimitive.LabelProps &\n Omit<TextVariants, \"size\"> & {\n size?: LabelSizeVariants;\n };\n\nconst textSize: Record<LabelSizeVariants, TextVariants[\"size\"]> = {\n 1: \"3\",\n 2: \"4\",\n};\n\nexport const Label = ({ color, size = \"1\", weight, ...props }: LabelProps) => {\n const text = textRecipe({ color, size: textSize[size], weight });\n\n return (\n <LabelPrimitive.Root\n {...props}\n className={mergeClasses(text, label, props.className)}\n >\n {props.children}\n </LabelPrimitive.Root>\n );\n};\n"],"mappings":";;;;;;;;;;;AAGA,YAAY,oBAAoB;AAkB5B;AATJ,IAAM,WAA4D;AAAA,EAChE,GAAG;AAAA,EACH,GAAG;AACL;AAEO,IAAM,QAAQ,CAAC,EAAE,OAAO,OAAO,KAAK,QAAQ,GAAG,MAAM,MAAkB;AAC5E,QAAM,OAAO,WAAW,EAAE,OAAO,MAAM,SAAS,IAAI,GAAG,OAAO,CAAC;AAE/D,SACE;AAAA,IAAgB;AAAA,IAAf;AAAA,MACE,GAAG;AAAA,MACJ,WAAW,aAAa,MAAM,OAAO,MAAM,SAAS;AAAA,MAEnD,gBAAM;AAAA;AAAA,EACT;AAEJ;","names":[]}
@@ -7,4 +7,4 @@ declare const defaultElement = "a";
7
7
  type LinkProps = ComponentProps<typeof defaultElement, LinkVariants>;
8
8
  declare const Link: ({ asChild, ...props }: LinkProps) => react_jsx_runtime.JSX.Element;
9
9
 
10
- export { Link };
10
+ export { Link, type LinkProps };
@@ -7,4 +7,4 @@ declare const defaultElement = "a";
7
7
  type LinkProps = ComponentProps<typeof defaultElement, LinkVariants>;
8
8
  declare const Link: ({ asChild, ...props }: LinkProps) => react_jsx_runtime.JSX.Element;
9
9
 
10
- export { Link };
10
+ export { Link, type LinkProps };
@@ -28,9 +28,13 @@ module.exports = __toCommonJS(link_exports);
28
28
  var import_createRuntimeFn = require("@vanilla-extract/recipes/createRuntimeFn");
29
29
  var linkRecipe = (0, import_createRuntimeFn.createRuntimeFn)({ defaultClassName: "link_linkRecipe__q6sfqz0", variantClassNames: { color: { primary: "link_linkRecipe_color_primary__q6sfqz1", secondary: "link_linkRecipe_color_secondary__q6sfqz2", error: "link_linkRecipe_color_error__q6sfqz3", subtle: "link_linkRecipe_color_subtle__q6sfqz4" } }, defaultVariants: {}, compoundVariants: [] });
30
30
 
31
- // src/utils/merge-classes.ts
32
- function mergeClasses(...classes) {
33
- return classes.filter((cls) => Boolean(cls)).join(" ");
31
+ // src/utils/omit.ts
32
+ function omit(obj, ...keys) {
33
+ const ret = { ...obj };
34
+ keys.forEach((key) => {
35
+ delete ret[key];
36
+ });
37
+ return ret;
34
38
  }
35
39
 
36
40
  // src/utils/pick.ts
@@ -42,15 +46,30 @@ function pick(obj, ...keys) {
42
46
  return ret;
43
47
  }
44
48
 
49
+ // src/utils/extract-variants.ts
50
+ function extractVariantsFromProps(obj, ...keys) {
51
+ const variants = pick(obj, ...keys);
52
+ const rest = omit(obj, ...keys);
53
+ return [variants, rest];
54
+ }
55
+
56
+ // src/utils/merge-classes.ts
57
+ function mergeClasses(...classes) {
58
+ return classes.filter((cls) => Boolean(cls)).join(" ");
59
+ }
60
+
45
61
  // src/components/link.tsx
46
62
  var import_react_slot = require("@radix-ui/react-slot");
47
63
  var import_jsx_runtime = require("react/jsx-runtime");
48
64
  var defaultElement = "a";
49
65
  var Link = ({ asChild, ...props }) => {
50
- const variants = pick(props, ...linkRecipe.variants());
66
+ const [variants, rest] = extractVariantsFromProps(
67
+ props,
68
+ ...linkRecipe.variants()
69
+ );
51
70
  const link = linkRecipe(variants);
52
71
  const Comp = asChild ? import_react_slot.Slot : defaultElement;
53
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { ...props, className: mergeClasses(link, props.className), children: props.children });
72
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Comp, { ...rest, className: mergeClasses(link, rest.className), children: rest.children });
54
73
  };
55
74
  // Annotate the CommonJS export names for ESM import in node:
56
75
  0 && (module.exports = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/link.tsx","../../src/theme/recipes/link.css.ts","../../src/utils/merge-classes.ts","../../src/utils/pick.ts"],"sourcesContent":["import { LinkVariants, linkRecipe } from \"@/theme/recipes/link.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { pick } from \"@/utils/pick\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"a\";\n\ntype LinkProps = ComponentProps<typeof defaultElement, LinkVariants>;\n\nexport const Link = ({ asChild, ...props }: LinkProps) => {\n const variants = pick(props, ...linkRecipe.variants());\n const link = linkRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp {...props} className={mergeClasses(link, props.className)}>\n {props.children}\n </Comp>\n );\n};\n","import 'src/theme/recipes/link.css.ts.vanilla.css?source=#H4sIAAAAAAAAA52STW6DMBCF9zmFl4lUR4RUVUOXvUF7AGTMgEdxbGKb/LTK3Ss7QKkKpKmQjPWYefP54aVEtU398gYcK0jT/ZMt9h8R+ZwRwiSWiqKDnU0IB+XAvMwIKVmVkAMzc0ptxTjQVZquNiqD5zxa+IJCwolaYVBtExJ5RddOooKEKK3ACw5OjubAtWEOtaIDX2uVg/E61UVhwSVkXZ2GermW2iQElQCDzlfQI2RbdNSxigoshcRSuLbOlBmbRw/hCbhhhgBf88Plty+vjfVSpfEaxmW2HEswKTSvbcixOX13jvh6jla27iwhIVZLzPv6EXMnuuqpxKYwhD6ACRjDDl3MgzYhg7QyuGPm3Jqugl0TT3MRYMeUQ/7qRUubhva96S5IzPeLiX/4H7NRagtcq7zHHd/k7lq+d71xOdzN/gfDUX4wRpuWfX2TPZRf194IiO9mnjAaz7rOnOxu3eNNWM/z3vS0Ewp+N+qozeUL5NB1ldoEAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var linkRecipe = _7a468({defaultClassName:'link_linkRecipe__q6sfqz0',variantClassNames:{color:{primary:'link_linkRecipe_color_primary__q6sfqz1',secondary:'link_linkRecipe_color_secondary__q6sfqz2',error:'link_linkRecipe_color_error__q6sfqz3',subtle:'link_linkRecipe_color_subtle__q6sfqz4'}},defaultVariants:{},compoundVariants:[]});","export function mergeClasses(...classes: (string | undefined)[]): string {\n return classes.filter((cls): cls is string => Boolean(cls)).join(\" \");\n}\n","/**\n * https://stackoverflow.com/a/47232883\n */\nexport function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const ret: any = {};\n keys.forEach((key) => {\n ret[key] = obj[key];\n });\n\n return ret;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,6BAA0C;AACnC,IAAI,iBAAa,uBAAAA,iBAAO,EAAC,kBAAiB,4BAA2B,mBAAkB,EAAC,OAAM,EAAC,SAAQ,0CAAyC,WAAU,4CAA2C,OAAM,wCAAuC,QAAO,wCAAuC,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;;;ACF1U,SAAS,gBAAgB,SAAyC;AACvE,SAAO,QAAQ,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG;AACtE;;;ACCO,SAAS,KAA2B,QAAW,MAAuB;AAE3E,QAAM,MAAW,CAAC;AAClB,OAAK,QAAQ,CAAC,QAAQ;AACpB,QAAI,GAAG,IAAI,IAAI,GAAG;AAAA,EACpB,CAAC;AAED,SAAO;AACT;;;AHPA,wBAAqB;AAYjB;AAVJ,IAAM,iBAAiB;AAIhB,IAAM,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,MAAiB;AACxD,QAAM,WAAW,KAAK,OAAO,GAAG,WAAW,SAAS,CAAC;AACrD,QAAM,OAAO,WAAW,QAAQ;AAChC,QAAM,OAAO,UAAU,yBAAO;AAE9B,SACE,4CAAC,QAAM,GAAG,OAAO,WAAW,aAAa,MAAM,MAAM,SAAS,GAC3D,gBAAM,UACT;AAEJ;","names":["_7a468"]}
1
+ {"version":3,"sources":["../../src/components/link.tsx","../../src/theme/recipes/link.css.ts","../../src/utils/omit.ts","../../src/utils/pick.ts","../../src/utils/extract-variants.ts","../../src/utils/merge-classes.ts"],"sourcesContent":["import { LinkVariants, linkRecipe } from \"@/theme/recipes/link.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { extractVariantsFromProps } from \"@/utils/extract-variants\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"a\";\n\nexport type LinkProps = ComponentProps<typeof defaultElement, LinkVariants>;\n\nexport const Link = ({ asChild, ...props }: LinkProps) => {\n const [variants, rest] = extractVariantsFromProps(\n props,\n ...linkRecipe.variants(),\n );\n const link = linkRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp {...rest} className={mergeClasses(link, rest.className)}>\n {rest.children}\n </Comp>\n );\n};\n","import 'src/theme/recipes/link.css.ts.vanilla.css?source=#H4sIAAAAAAAAA52STW6DMBCF9zmFl4lUR4RUVUOXvUF7AGTMgEdxbGKb/LTK3Ss7QKkKpKmQjPWYefP54aVEtU398gYcK0jT/ZMt9h8R+ZwRwiSWiqKDnU0IB+XAvMwIKVmVkAMzc0ptxTjQVZquNiqD5zxa+IJCwolaYVBtExJ5RddOooKEKK3ACw5OjubAtWEOtaIDX2uVg/E61UVhwSVkXZ2GermW2iQElQCDzlfQI2RbdNSxigoshcRSuLbOlBmbRw/hCbhhhgBf88Plty+vjfVSpfEaxmW2HEswKTSvbcixOX13jvh6jla27iwhIVZLzPv6EXMnuuqpxKYwhD6ACRjDDl3MgzYhg7QyuGPm3Jqugl0TT3MRYMeUQ/7qRUubhva96S5IzPeLiX/4H7NRagtcq7zHHd/k7lq+d71xOdzN/gfDUX4wRpuWfX2TPZRf194IiO9mnjAaz7rOnOxu3eNNWM/z3vS0Ewp+N+qozeUL5NB1ldoEAAA=';\nimport { createRuntimeFn as _7a468 } from '@vanilla-extract/recipes/createRuntimeFn';\nexport var linkRecipe = _7a468({defaultClassName:'link_linkRecipe__q6sfqz0',variantClassNames:{color:{primary:'link_linkRecipe_color_primary__q6sfqz1',secondary:'link_linkRecipe_color_secondary__q6sfqz2',error:'link_linkRecipe_color_error__q6sfqz3',subtle:'link_linkRecipe_color_subtle__q6sfqz4'}},defaultVariants:{},compoundVariants:[]});","export function omit<T, K extends keyof T>(obj: T, ...keys: K[]): Omit<T, K> {\n const ret = { ...obj };\n keys.forEach((key) => {\n delete ret[key];\n });\n\n return ret;\n}\n","/**\n * https://stackoverflow.com/a/47232883\n */\nexport function pick<T, K extends keyof T>(obj: T, ...keys: K[]): Pick<T, K> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const ret: any = {};\n keys.forEach((key) => {\n ret[key] = obj[key];\n });\n\n return ret;\n}\n","import { omit } from \"./omit\";\nimport { pick } from \"./pick\";\n\n/**\n * TODO\n * @param obj\n * @param keys\n * @returns [variants, props]\n */\nexport function extractVariantsFromProps<T, K extends keyof T>(\n obj: T,\n ...keys: K[]\n): [Pick<T, K>, Omit<T, K>] {\n const variants = pick(obj, ...keys);\n const rest = omit(obj, ...keys);\n\n return [variants, rest];\n}\n","export function mergeClasses(...classes: (string | undefined)[]): string {\n return classes.filter((cls): cls is string => Boolean(cls)).join(\" \");\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,6BAA0C;AACnC,IAAI,iBAAa,uBAAAA,iBAAO,EAAC,kBAAiB,4BAA2B,mBAAkB,EAAC,OAAM,EAAC,SAAQ,0CAAyC,WAAU,4CAA2C,OAAM,wCAAuC,QAAO,wCAAuC,EAAC,GAAE,iBAAgB,CAAC,GAAE,kBAAiB,CAAC,EAAC,CAAC;;;ACF1U,SAAS,KAA2B,QAAW,MAAuB;AAC3E,QAAM,MAAM,EAAE,GAAG,IAAI;AACrB,OAAK,QAAQ,CAAC,QAAQ;AACpB,WAAO,IAAI,GAAG;AAAA,EAChB,CAAC;AAED,SAAO;AACT;;;ACJO,SAAS,KAA2B,QAAW,MAAuB;AAE3E,QAAM,MAAW,CAAC;AAClB,OAAK,QAAQ,CAAC,QAAQ;AACpB,QAAI,GAAG,IAAI,IAAI,GAAG;AAAA,EACpB,CAAC;AAED,SAAO;AACT;;;ACFO,SAAS,yBACd,QACG,MACuB;AAC1B,QAAM,WAAW,KAAK,KAAK,GAAG,IAAI;AAClC,QAAM,OAAO,KAAK,KAAK,GAAG,IAAI;AAE9B,SAAO,CAAC,UAAU,IAAI;AACxB;;;ACjBO,SAAS,gBAAgB,SAAyC;AACvE,SAAO,QAAQ,OAAO,CAAC,QAAuB,QAAQ,GAAG,CAAC,EAAE,KAAK,GAAG;AACtE;;;ALEA,wBAAqB;AAejB;AAbJ,IAAM,iBAAiB;AAIhB,IAAM,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,MAAiB;AACxD,QAAM,CAAC,UAAU,IAAI,IAAI;AAAA,IACvB;AAAA,IACA,GAAG,WAAW,SAAS;AAAA,EACzB;AACA,QAAM,OAAO,WAAW,QAAQ;AAChC,QAAM,OAAO,UAAU,yBAAO;AAE9B,SACE,4CAAC,QAAM,GAAG,MAAM,WAAW,aAAa,MAAM,KAAK,SAAS,GACzD,eAAK,UACR;AAEJ;","names":["_7a468"]}
@@ -2,8 +2,8 @@ import {
2
2
  linkRecipe
3
3
  } from "../chunk-JGZLOTH3.mjs";
4
4
  import {
5
- pick
6
- } from "../chunk-4N6P3Y54.mjs";
5
+ extractVariantsFromProps
6
+ } from "../chunk-UPZYS6TE.mjs";
7
7
  import {
8
8
  mergeClasses
9
9
  } from "../chunk-7EGQM3ZL.mjs";
@@ -13,10 +13,13 @@ import { Slot } from "@radix-ui/react-slot";
13
13
  import { jsx } from "react/jsx-runtime";
14
14
  var defaultElement = "a";
15
15
  var Link = ({ asChild, ...props }) => {
16
- const variants = pick(props, ...linkRecipe.variants());
16
+ const [variants, rest] = extractVariantsFromProps(
17
+ props,
18
+ ...linkRecipe.variants()
19
+ );
17
20
  const link = linkRecipe(variants);
18
21
  const Comp = asChild ? Slot : defaultElement;
19
- return /* @__PURE__ */ jsx(Comp, { ...props, className: mergeClasses(link, props.className), children: props.children });
22
+ return /* @__PURE__ */ jsx(Comp, { ...rest, className: mergeClasses(link, rest.className), children: rest.children });
20
23
  };
21
24
  export {
22
25
  Link
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/components/link.tsx"],"sourcesContent":["import { LinkVariants, linkRecipe } from \"@/theme/recipes/link.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { pick } from \"@/utils/pick\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"a\";\n\ntype LinkProps = ComponentProps<typeof defaultElement, LinkVariants>;\n\nexport const Link = ({ asChild, ...props }: LinkProps) => {\n const variants = pick(props, ...linkRecipe.variants());\n const link = linkRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp {...props} className={mergeClasses(link, props.className)}>\n {props.children}\n </Comp>\n );\n};\n"],"mappings":";;;;;;;;;;;AAIA,SAAS,YAAY;AAYjB;AAVJ,IAAM,iBAAiB;AAIhB,IAAM,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,MAAiB;AACxD,QAAM,WAAW,KAAK,OAAO,GAAG,WAAW,SAAS,CAAC;AACrD,QAAM,OAAO,WAAW,QAAQ;AAChC,QAAM,OAAO,UAAU,OAAO;AAE9B,SACE,oBAAC,QAAM,GAAG,OAAO,WAAW,aAAa,MAAM,MAAM,SAAS,GAC3D,gBAAM,UACT;AAEJ;","names":[]}
1
+ {"version":3,"sources":["../../src/components/link.tsx"],"sourcesContent":["import { LinkVariants, linkRecipe } from \"@/theme/recipes/link.css\";\nimport { ComponentProps } from \"@/types/component-props\";\nimport { extractVariantsFromProps } from \"@/utils/extract-variants\";\nimport { mergeClasses } from \"@/utils/merge-classes\";\nimport { Slot } from \"@radix-ui/react-slot\";\n\nconst defaultElement = \"a\";\n\nexport type LinkProps = ComponentProps<typeof defaultElement, LinkVariants>;\n\nexport const Link = ({ asChild, ...props }: LinkProps) => {\n const [variants, rest] = extractVariantsFromProps(\n props,\n ...linkRecipe.variants(),\n );\n const link = linkRecipe(variants);\n const Comp = asChild ? Slot : defaultElement;\n\n return (\n <Comp {...rest} className={mergeClasses(link, rest.className)}>\n {rest.children}\n </Comp>\n );\n};\n"],"mappings":";;;;;;;;;;;AAIA,SAAS,YAAY;AAejB;AAbJ,IAAM,iBAAiB;AAIhB,IAAM,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,MAAiB;AACxD,QAAM,CAAC,UAAU,IAAI,IAAI;AAAA,IACvB;AAAA,IACA,GAAG,WAAW,SAAS;AAAA,EACzB;AACA,QAAM,OAAO,WAAW,QAAQ;AAChC,QAAM,OAAO,UAAU,OAAO;AAE9B,SACE,oBAAC,QAAM,GAAG,MAAM,WAAW,aAAa,MAAM,KAAK,SAAS,GACzD,eAAK,UACR;AAEJ;","names":[]}
@@ -18,7 +18,9 @@ type MenuCheckboxItemProps = MenuPrimitive.MenuCheckboxItemProps;
18
18
  declare const MenuCheckboxItem: ({ ...props }: MenuCheckboxItemProps) => react_jsx_runtime.JSX.Element;
19
19
  type MenuLabelProps = MenuPrimitive.MenuLabelProps;
20
20
  declare const MenuLabel: ({ ...props }: MenuLabelProps) => react_jsx_runtime.JSX.Element;
21
+ type MenuRadioGroupProps = MenuPrimitive.MenuRadioGroupProps;
21
22
  declare const MenuRadioGroup: react.ForwardRefExoticComponent<MenuPrimitive.MenuRadioGroupProps & react.RefAttributes<HTMLDivElement>>;
23
+ type MenuGroupProps = MenuPrimitive.MenuGroupProps;
22
24
  declare const MenuGroup: react.ForwardRefExoticComponent<MenuPrimitive.MenuGroupProps & react.RefAttributes<HTMLDivElement>>;
23
25
 
24
- export { Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuRadioGroup, MenuRadioItem, MenuSeparator };
26
+ export { Menu, MenuCheckboxItem, type MenuCheckboxItemProps, MenuContent, type MenuContentProps, MenuGroup, type MenuGroupProps, MenuItem, type MenuItemProps, MenuLabel, type MenuLabelProps, type MenuProps, MenuRadioGroup, type MenuRadioGroupProps, MenuRadioItem, type MenuRadioItemProps, MenuSeparator, type MenuSeparatorProps };
@@ -18,7 +18,9 @@ type MenuCheckboxItemProps = MenuPrimitive.MenuCheckboxItemProps;
18
18
  declare const MenuCheckboxItem: ({ ...props }: MenuCheckboxItemProps) => react_jsx_runtime.JSX.Element;
19
19
  type MenuLabelProps = MenuPrimitive.MenuLabelProps;
20
20
  declare const MenuLabel: ({ ...props }: MenuLabelProps) => react_jsx_runtime.JSX.Element;
21
+ type MenuRadioGroupProps = MenuPrimitive.MenuRadioGroupProps;
21
22
  declare const MenuRadioGroup: react.ForwardRefExoticComponent<MenuPrimitive.MenuRadioGroupProps & react.RefAttributes<HTMLDivElement>>;
23
+ type MenuGroupProps = MenuPrimitive.MenuGroupProps;
22
24
  declare const MenuGroup: react.ForwardRefExoticComponent<MenuPrimitive.MenuGroupProps & react.RefAttributes<HTMLDivElement>>;
23
25
 
24
- export { Menu, MenuCheckboxItem, MenuContent, MenuGroup, MenuItem, MenuLabel, MenuRadioGroup, MenuRadioItem, MenuSeparator };
26
+ export { Menu, MenuCheckboxItem, type MenuCheckboxItemProps, MenuContent, type MenuContentProps, MenuGroup, type MenuGroupProps, MenuItem, type MenuItemProps, MenuLabel, type MenuLabelProps, type MenuProps, MenuRadioGroup, type MenuRadioGroupProps, MenuRadioItem, type MenuRadioItemProps, MenuSeparator, type MenuSeparatorProps };
@@ -67,6 +67,15 @@ var flexRecipe = (0, import_createRuntimeFn.createRuntimeFn)(function() {
67
67
  return x;
68
68
  }());
69
69
 
70
+ // src/utils/omit.ts
71
+ function omit(obj, ...keys) {
72
+ const ret = { ...obj };
73
+ keys.forEach((key) => {
74
+ delete ret[key];
75
+ });
76
+ return ret;
77
+ }
78
+
70
79
  // src/utils/pick.ts
71
80
  function pick(obj, ...keys) {
72
81
  const ret = {};
@@ -76,15 +85,25 @@ function pick(obj, ...keys) {
76
85
  return ret;
77
86
  }
78
87
 
88
+ // src/utils/extract-variants.ts
89
+ function extractVariantsFromProps(obj, ...keys) {
90
+ const variants = pick(obj, ...keys);
91
+ const rest = omit(obj, ...keys);
92
+ return [variants, rest];
93
+ }
94
+
79
95
  // src/components/flex.tsx
80
96
  var import_react_slot2 = require("@radix-ui/react-slot");
81
97
  var import_jsx_runtime2 = require("react/jsx-runtime");
82
98
  var defaultElement2 = "div";
83
99
  var Flex = ({ asChild, ...props }) => {
84
- const variants = pick(props, ...flexRecipe.variants());
100
+ const [variants, rest] = extractVariantsFromProps(
101
+ props,
102
+ ...flexRecipe.variants()
103
+ );
85
104
  const flex = flexRecipe(variants);
86
105
  const Comp = asChild ? import_react_slot2.Slot : defaultElement2;
87
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Comp, { ...props, className: mergeClasses(flex, props.className), children: props.children });
106
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Comp, { ...rest, className: mergeClasses(flex, rest.className), children: rest.children });
88
107
  };
89
108
 
90
109
  // src/theme/styles/menu.css.ts