commerce-toolkit 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/category-card-link-BqMAG9Op.js +211 -0
  2. package/dist/category-card-link-BqMAG9Op.js.map +1 -0
  3. package/dist/category-card-link-BwSFHFcd.cjs +2 -0
  4. package/dist/category-card-link-BwSFHFcd.cjs.map +1 -0
  5. package/dist/category-card.cjs +1 -1
  6. package/dist/category-card.cjs.map +1 -1
  7. package/dist/category-card.js +23 -218
  8. package/dist/category-card.js.map +1 -1
  9. package/dist/checkbox-indicator-GNoyS6OL.cjs +2 -0
  10. package/dist/checkbox-indicator-GNoyS6OL.cjs.map +1 -0
  11. package/dist/checkbox-indicator-os50dewx.js +18 -0
  12. package/dist/checkbox-indicator-os50dewx.js.map +1 -0
  13. package/dist/{checkbox-indicator-Cfw9uH_b.js → checkbox-root-B9W2Y8rY.js} +74 -85
  14. package/dist/checkbox-root-B9W2Y8rY.js.map +1 -0
  15. package/dist/checkbox-root-g9HcYZCP.cjs +2 -0
  16. package/dist/checkbox-root-g9HcYZCP.cjs.map +1 -0
  17. package/dist/checkbox.cjs +1 -1
  18. package/dist/checkbox.js +5 -4
  19. package/dist/checkbox.js.map +1 -1
  20. package/dist/compare-card-specs-empty-BMLUSqQL.js +281 -0
  21. package/dist/compare-card-specs-empty-BMLUSqQL.js.map +1 -0
  22. package/dist/compare-card-specs-empty-ar5CneZv.cjs +2 -0
  23. package/dist/compare-card-specs-empty-ar5CneZv.cjs.map +1 -0
  24. package/dist/compare-card.cjs +2 -0
  25. package/dist/compare-card.cjs.map +1 -0
  26. package/dist/compare-card.js +65 -0
  27. package/dist/compare-card.js.map +1 -0
  28. package/dist/components/accordion/index.d.ts.map +1 -1
  29. package/dist/components/alert/index.d.ts.map +1 -1
  30. package/dist/components/banner/index.d.ts.map +1 -1
  31. package/dist/components/blog-post-card/index.d.ts.map +1 -1
  32. package/dist/components/card/index.d.ts.map +1 -1
  33. package/dist/components/carousel/index.d.ts.map +1 -1
  34. package/dist/components/checkbox/index.d.ts.map +1 -1
  35. package/dist/components/chip/index.d.ts.map +1 -1
  36. package/dist/components/compare-card/compare-card.d.ts +45 -0
  37. package/dist/components/compare-card/compare-card.d.ts.map +1 -0
  38. package/dist/components/compare-card/index.d.ts +3 -0
  39. package/dist/components/compare-card/index.d.ts.map +1 -0
  40. package/dist/components/compare-card/primitives/compare-card-description-content.d.ts +4 -0
  41. package/dist/components/compare-card/primitives/compare-card-description-content.d.ts.map +1 -0
  42. package/dist/components/compare-card/primitives/compare-card-description-empty.d.ts +4 -0
  43. package/dist/components/compare-card/primitives/compare-card-description-empty.d.ts.map +1 -0
  44. package/dist/components/compare-card/primitives/compare-card-description-label.d.ts +4 -0
  45. package/dist/components/compare-card/primitives/compare-card-description-label.d.ts.map +1 -0
  46. package/dist/components/compare-card/primitives/compare-card-description.d.ts +4 -0
  47. package/dist/components/compare-card/primitives/compare-card-description.d.ts.map +1 -0
  48. package/dist/components/compare-card/primitives/compare-card-form-input.d.ts +4 -0
  49. package/dist/components/compare-card/primitives/compare-card-form-input.d.ts.map +1 -0
  50. package/dist/components/compare-card/primitives/compare-card-form.d.ts +4 -0
  51. package/dist/components/compare-card/primitives/compare-card-form.d.ts.map +1 -0
  52. package/dist/components/compare-card/primitives/compare-card-link.d.ts +5 -0
  53. package/dist/components/compare-card/primitives/compare-card-link.d.ts.map +1 -0
  54. package/dist/components/compare-card/primitives/compare-card-product.d.ts +4 -0
  55. package/dist/components/compare-card/primitives/compare-card-product.d.ts.map +1 -0
  56. package/dist/components/compare-card/primitives/compare-card-rating-empty.d.ts +4 -0
  57. package/dist/components/compare-card/primitives/compare-card-rating-empty.d.ts.map +1 -0
  58. package/dist/components/compare-card/primitives/compare-card-rating-label.d.ts +4 -0
  59. package/dist/components/compare-card/primitives/compare-card-rating-label.d.ts.map +1 -0
  60. package/dist/components/compare-card/primitives/compare-card-rating.d.ts +4 -0
  61. package/dist/components/compare-card/primitives/compare-card-rating.d.ts.map +1 -0
  62. package/dist/components/compare-card/primitives/compare-card-root.d.ts +4 -0
  63. package/dist/components/compare-card/primitives/compare-card-root.d.ts.map +1 -0
  64. package/dist/components/compare-card/primitives/compare-card-skeleton.d.ts +4 -0
  65. package/dist/components/compare-card/primitives/compare-card-skeleton.d.ts.map +1 -0
  66. package/dist/components/compare-card/primitives/compare-card-specs-definition.d.ts +4 -0
  67. package/dist/components/compare-card/primitives/compare-card-specs-definition.d.ts.map +1 -0
  68. package/dist/components/compare-card/primitives/compare-card-specs-empty.d.ts +4 -0
  69. package/dist/components/compare-card/primitives/compare-card-specs-empty.d.ts.map +1 -0
  70. package/dist/components/compare-card/primitives/compare-card-specs-label.d.ts +4 -0
  71. package/dist/components/compare-card/primitives/compare-card-specs-label.d.ts.map +1 -0
  72. package/dist/components/compare-card/primitives/compare-card-specs-list.d.ts +4 -0
  73. package/dist/components/compare-card/primitives/compare-card-specs-list.d.ts.map +1 -0
  74. package/dist/components/compare-card/primitives/compare-card-specs-term.d.ts +4 -0
  75. package/dist/components/compare-card/primitives/compare-card-specs-term.d.ts.map +1 -0
  76. package/dist/components/compare-card/primitives/compare-card-specs.d.ts +4 -0
  77. package/dist/components/compare-card/primitives/compare-card-specs.d.ts.map +1 -0
  78. package/dist/components/compare-card/primitives.d.ts +20 -0
  79. package/dist/components/compare-card/primitives.d.ts.map +1 -0
  80. package/dist/components/compare-drawer/index.d.ts.map +1 -1
  81. package/dist/components/cursor-pagination/index.d.ts +1 -1
  82. package/dist/components/cursor-pagination/index.d.ts.map +1 -1
  83. package/dist/components/dropdown-menu/index.d.ts.map +1 -1
  84. package/dist/components/favorite/index.d.ts.map +1 -1
  85. package/dist/components/icon/index.d.ts.map +1 -1
  86. package/dist/components/label/index.d.ts.map +1 -1
  87. package/dist/components/logo/index.d.ts.map +1 -1
  88. package/dist/components/modal/index.d.ts.map +1 -1
  89. package/dist/components/offset-pagination/index.d.ts +1 -1
  90. package/dist/components/offset-pagination/index.d.ts.map +1 -1
  91. package/dist/components/price/index.d.ts.map +1 -1
  92. package/dist/components/product-card/index.d.ts.map +1 -1
  93. package/dist/components/rating/index.d.ts.map +1 -1
  94. package/dist/components/reveal/index.d.ts.map +1 -1
  95. package/dist/components/scroll-area/index.d.ts.map +1 -1
  96. package/dist/components/side-panel/index.d.ts +3 -0
  97. package/dist/components/side-panel/index.d.ts.map +1 -0
  98. package/dist/components/side-panel/primitives/side-panel-body.d.ts +4 -0
  99. package/dist/components/side-panel/primitives/side-panel-body.d.ts.map +1 -0
  100. package/dist/components/side-panel/primitives/side-panel-close.d.ts +5 -0
  101. package/dist/components/side-panel/primitives/side-panel-close.d.ts.map +1 -0
  102. package/dist/components/side-panel/primitives/side-panel-content.d.ts +5 -0
  103. package/dist/components/side-panel/primitives/side-panel-content.d.ts.map +1 -0
  104. package/dist/components/side-panel/primitives/side-panel-header.d.ts +4 -0
  105. package/dist/components/side-panel/primitives/side-panel-header.d.ts.map +1 -0
  106. package/dist/components/side-panel/primitives/side-panel-overlay.d.ts +5 -0
  107. package/dist/components/side-panel/primitives/side-panel-overlay.d.ts.map +1 -0
  108. package/dist/components/side-panel/primitives/side-panel-portal.d.ts +5 -0
  109. package/dist/components/side-panel/primitives/side-panel-portal.d.ts.map +1 -0
  110. package/dist/components/side-panel/primitives/side-panel-root.d.ts +5 -0
  111. package/dist/components/side-panel/primitives/side-panel-root.d.ts.map +1 -0
  112. package/dist/components/side-panel/primitives/side-panel-title.d.ts +5 -0
  113. package/dist/components/side-panel/primitives/side-panel-title.d.ts.map +1 -0
  114. package/dist/components/side-panel/primitives/side-panel-trigger.d.ts +5 -0
  115. package/dist/components/side-panel/primitives/side-panel-trigger.d.ts.map +1 -0
  116. package/dist/components/side-panel/primitives.d.ts +10 -0
  117. package/dist/components/side-panel/primitives.d.ts.map +1 -0
  118. package/dist/components/side-panel/side-panel.d.ts +28 -0
  119. package/dist/components/side-panel/side-panel.d.ts.map +1 -0
  120. package/dist/components/skeleton/index.d.ts.map +1 -1
  121. package/dist/components/tabs/index.d.ts.map +1 -1
  122. package/dist/{dropdown-menu-node-C7Z-zRyr.js → dropdown-menu-node-4Pe3uXjC.js} +2 -2
  123. package/dist/{dropdown-menu-node-C7Z-zRyr.js.map → dropdown-menu-node-4Pe3uXjC.js.map} +1 -1
  124. package/dist/{dropdown-menu-node-BB7FJzMX.cjs → dropdown-menu-node-zOplWIzZ.cjs} +2 -2
  125. package/dist/{dropdown-menu-node-BB7FJzMX.cjs.map → dropdown-menu-node-zOplWIzZ.cjs.map} +1 -1
  126. package/dist/dropdown-menu.cjs +1 -1
  127. package/dist/dropdown-menu.js +1 -1
  128. package/dist/index-BppAzNV8.cjs +6 -0
  129. package/dist/index-BppAzNV8.cjs.map +1 -0
  130. package/dist/index-ChSlzMYI.js +242 -0
  131. package/dist/index-ChSlzMYI.js.map +1 -0
  132. package/dist/index.cjs +10 -5
  133. package/dist/index.cjs.map +1 -1
  134. package/dist/index.d.ts +26 -19
  135. package/dist/index.d.ts.map +1 -1
  136. package/dist/index.js +1275 -1133
  137. package/dist/index.js.map +1 -1
  138. package/dist/lib/index.d.ts.map +1 -1
  139. package/dist/modal-title-CuB6IpxH.cjs +2 -0
  140. package/dist/modal-title-CuB6IpxH.cjs.map +1 -0
  141. package/dist/modal-title-MIH3Xsp2.js +58 -0
  142. package/dist/modal-title-MIH3Xsp2.js.map +1 -0
  143. package/dist/modal.cjs +1 -1
  144. package/dist/modal.js +1 -1
  145. package/dist/offset-pagination-ellipsis-DWDhFCgW.js +79 -0
  146. package/dist/offset-pagination-ellipsis-DWDhFCgW.js.map +1 -0
  147. package/dist/offset-pagination-ellipsis-MCFHXB-5.cjs +2 -0
  148. package/dist/offset-pagination-ellipsis-MCFHXB-5.cjs.map +1 -0
  149. package/dist/offset-pagination.cjs +1 -1
  150. package/dist/offset-pagination.cjs.map +1 -1
  151. package/dist/offset-pagination.js +6 -76
  152. package/dist/offset-pagination.js.map +1 -1
  153. package/dist/product-card-label-CJmC9ICf.js +312 -0
  154. package/dist/product-card-label-CJmC9ICf.js.map +1 -0
  155. package/dist/product-card-label-D43AXtRL.cjs +2 -0
  156. package/dist/product-card-label-D43AXtRL.cjs.map +1 -0
  157. package/dist/product-card-root-4Xz4-pdL.js +43 -0
  158. package/dist/product-card-root-4Xz4-pdL.js.map +1 -0
  159. package/dist/product-card-root-BMTVhhFp.cjs +2 -0
  160. package/dist/product-card-root-BMTVhhFp.cjs.map +1 -0
  161. package/dist/product-card-skeleton-CCQkDMNl.cjs +2 -0
  162. package/dist/product-card-skeleton-CCQkDMNl.cjs.map +1 -0
  163. package/dist/product-card-skeleton-Dkqf-bfA.js +34 -0
  164. package/dist/product-card-skeleton-Dkqf-bfA.js.map +1 -0
  165. package/dist/product-card.cjs +1 -1
  166. package/dist/product-card.cjs.map +1 -1
  167. package/dist/product-card.js +25 -326
  168. package/dist/product-card.js.map +1 -1
  169. package/dist/{scroll-area-corner-DLTYMMl-.js → scroll-area-corner-Bq7PB1XK.js} +2 -2
  170. package/dist/{scroll-area-corner-DLTYMMl-.js.map → scroll-area-corner-Bq7PB1XK.js.map} +1 -1
  171. package/dist/{scroll-area-corner-CEc2oMZt.cjs → scroll-area-corner-DsyetkPH.cjs} +2 -2
  172. package/dist/{scroll-area-corner-CEc2oMZt.cjs.map → scroll-area-corner-DsyetkPH.cjs.map} +1 -1
  173. package/dist/scroll-area.cjs +1 -1
  174. package/dist/scroll-area.js +1 -1
  175. package/dist/side-panel-close-Bjcn4BEE.cjs +2 -0
  176. package/dist/side-panel-close-Bjcn4BEE.cjs.map +1 -0
  177. package/dist/side-panel-close-DVJwOxdM.js +86 -0
  178. package/dist/side-panel-close-DVJwOxdM.js.map +1 -0
  179. package/dist/side-panel.cjs +2 -0
  180. package/dist/side-panel.cjs.map +1 -0
  181. package/dist/side-panel.js +13 -0
  182. package/dist/side-panel.js.map +1 -0
  183. package/package.json +21 -1
  184. package/dist/arrow-up-right-Cfau6CiE.cjs +0 -7
  185. package/dist/arrow-up-right-Cfau6CiE.cjs.map +0 -1
  186. package/dist/arrow-up-right-D7smpXBs.js +0 -16
  187. package/dist/arrow-up-right-D7smpXBs.js.map +0 -1
  188. package/dist/checkbox-indicator-BgXRGvAh.cjs +0 -2
  189. package/dist/checkbox-indicator-BgXRGvAh.cjs.map +0 -1
  190. package/dist/checkbox-indicator-Cfw9uH_b.js.map +0 -1
  191. package/dist/modal-title-B2Yr1KDi.js +0 -288
  192. package/dist/modal-title-B2Yr1KDi.js.map +0 -1
  193. package/dist/modal-title-CpD_Fors.cjs +0 -6
  194. package/dist/modal-title-CpD_Fors.cjs.map +0 -1
  195. package/dist/price-BwaeTmkR.js +0 -53
  196. package/dist/price-BwaeTmkR.js.map +0 -1
  197. package/dist/price-CdK2ye4P.cjs +0 -2
  198. package/dist/price-CdK2ye4P.cjs.map +0 -1
  199. package/dist/primitives--2McVg9Z.js +0 -15
  200. package/dist/primitives--2McVg9Z.js.map +0 -1
  201. package/dist/primitives-DmqzDKi2.cjs +0 -2
  202. package/dist/primitives-DmqzDKi2.cjs.map +0 -1
@@ -0,0 +1,312 @@
1
+ import { jsx as o, jsxs as s, Fragment as i } from "react/jsx-runtime";
2
+ import { c } from "./utils-BOGlfttm.js";
3
+ import { u as l } from "./product-card-root-4Xz4-pdL.js";
4
+ import { C as f } from "./checkbox-root-B9W2Y8rY.js";
5
+ import { S as u } from "./index-DD8W7cMj.js";
6
+ import { P as b, a as n, b as h } from "./price-strike-Br_Yriv9.js";
7
+ import { C as g } from "./checkbox-indicator-os50dewx.js";
8
+ import p from "./check-ChGAB_3v.js";
9
+ import * as v from "react";
10
+ import { P as k } from "./index-BzgbBl8b.js";
11
+ function x({
12
+ children: a,
13
+ shape: t = "rounded",
14
+ className: r,
15
+ variant: e = "primary",
16
+ ...d
17
+ }) {
18
+ return /* @__PURE__ */ o(
19
+ "span",
20
+ {
21
+ className: c(
22
+ "px-2 py-0.5 text-xs uppercase tracking-tighter text-[var(--badge-text,hsl(var(--foreground)))] [font-family:var(--badge-font-family,var(--font-family-mono))]",
23
+ {
24
+ pill: "rounded-full",
25
+ rounded: "rounded"
26
+ }[t],
27
+ {
28
+ primary: "bg-[var(--badge-primary-background,color-mix(in_oklab,hsl(var(--primary)),white_75%))]",
29
+ warning: "bg-[var(--badge-warning-background,color-mix(in_oklab,hsl(var(--warning)),white_75%))]",
30
+ error: "bg-[var(--badge-error-background,color-mix(in_oklab,hsl(var(--error)),white_75%))]",
31
+ success: "bg-[var(--badge-success-background,color-mix(in_oklab,hsl(var(--success)),white_75%))]",
32
+ info: "bg-[var(--badge-info-background,color-mix(in_oklab,hsl(var(--info)),white_75%))]"
33
+ }[e],
34
+ r
35
+ ),
36
+ ...d,
37
+ children: a
38
+ }
39
+ );
40
+ }
41
+ function C({ className: a, colorScheme: t = "light", ...r }) {
42
+ return /* @__PURE__ */ o(f, { className: a, colorScheme: t, ...r, children: /* @__PURE__ */ o(g, { children: /* @__PURE__ */ o(p, { className: "h-4 w-4", color: "currentColor" }) }) });
43
+ }
44
+ function I({ className: a, children: t, ...r }) {
45
+ return /* @__PURE__ */ o("div", { className: c("relative", a), "data-slot": "product-card-preview", ...r, children: t });
46
+ }
47
+ function T({ className: a, children: t, ...r }) {
48
+ const { aspectRatio: e, colorScheme: d } = l();
49
+ return /* @__PURE__ */ o(
50
+ "div",
51
+ {
52
+ className: c(
53
+ "relative overflow-hidden rounded-[var(--product-card-border-radius,1rem)]",
54
+ {
55
+ "5:6": "aspect-[5/6]",
56
+ "3:4": "aspect-[3/4]",
57
+ "1:1": "aspect-square"
58
+ }[e],
59
+ {
60
+ light: "bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]",
61
+ dark: "bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]"
62
+ }[d],
63
+ a
64
+ ),
65
+ "data-slot": "product-card-thumbnail",
66
+ ...r,
67
+ children: t
68
+ }
69
+ );
70
+ }
71
+ function q({
72
+ className: a,
73
+ children: t,
74
+ asChild: r = !1,
75
+ ...e
76
+ }) {
77
+ const { colorScheme: d } = l();
78
+ return /* @__PURE__ */ o(
79
+ r ? u : "img",
80
+ {
81
+ className: c(
82
+ "h-full w-full scale-100 select-none object-cover transition-transform duration-500 ease-out group-hover:scale-110",
83
+ {
84
+ light: "bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]",
85
+ dark: "bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]"
86
+ }[d],
87
+ a
88
+ ),
89
+ "data-slot": "product-card-image",
90
+ ...e
91
+ }
92
+ );
93
+ }
94
+ function A({ className: a, children: t, ...r }) {
95
+ return /* @__PURE__ */ o(
96
+ x,
97
+ {
98
+ className: c("absolute left-3 top-3", a),
99
+ "data-slot": "product-card-badge",
100
+ shape: "rounded",
101
+ ...r,
102
+ children: t
103
+ }
104
+ );
105
+ }
106
+ function E({ className: a, children: t, ...r }) {
107
+ const { colorScheme: e } = l();
108
+ return /* @__PURE__ */ o(
109
+ "div",
110
+ {
111
+ className: c(
112
+ "break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out group-hover:scale-105",
113
+ {
114
+ light: "[color:color-mix(in_oklab,hsl(var(--foreground))_30%,transparent)]",
115
+ dark: "[color:color-mix(in_oklab,hsl(var(--background))_30%,transparent)]"
116
+ }[e],
117
+ a
118
+ ),
119
+ "data-slot": "product-card-fallback",
120
+ ...r,
121
+ children: t
122
+ }
123
+ );
124
+ }
125
+ function H({ asChild: a = !1, className: t, ...r }) {
126
+ const { colorScheme: e } = l();
127
+ return /* @__PURE__ */ o(
128
+ a ? u : "a",
129
+ {
130
+ className: c(
131
+ "absolute inset-0 rounded-[var(--product-card-border-radius,1rem)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--product-card-focus,hsl(var(--primary)))] focus-visible:ring-offset-4",
132
+ {
133
+ light: "ring-offset-[var(--product-card-light-offset,hsl(var(--background)))]",
134
+ dark: "ring-offset-[var(--product-card-dark-offset,hsl(var(--foreground)))]"
135
+ }[e],
136
+ t
137
+ ),
138
+ "data-slot": "product-card-link",
139
+ ...r
140
+ }
141
+ );
142
+ }
143
+ function $({ children: a, className: t, ...r }) {
144
+ return /* @__PURE__ */ o(
145
+ "div",
146
+ {
147
+ className: c(
148
+ "mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row",
149
+ t
150
+ ),
151
+ "data-slot": "product-card-details",
152
+ ...r,
153
+ children: a
154
+ }
155
+ );
156
+ }
157
+ function z({ children: a, className: t, ...r }) {
158
+ return /* @__PURE__ */ o(
159
+ "div",
160
+ {
161
+ className: c("relative flex-1 text-sm @[16rem]:text-base", t),
162
+ "data-slot": "product-card-header",
163
+ ...r,
164
+ children: a
165
+ }
166
+ );
167
+ }
168
+ function G({ className: a, children: t, ...r }) {
169
+ const { colorScheme: e } = l();
170
+ return /* @__PURE__ */ o(
171
+ "h3",
172
+ {
173
+ className: c(
174
+ "block font-semibold",
175
+ {
176
+ light: "text-[var(--product-card-light-title,hsl(var(--foreground)))]",
177
+ dark: "text-[var(--product-card-dark-title,hsl(var(--background)))]"
178
+ }[e]
179
+ ),
180
+ "data-slot": "product-card-title",
181
+ ...r,
182
+ children: t
183
+ }
184
+ );
185
+ }
186
+ function J({ children: a, className: t, ...r }) {
187
+ const { colorScheme: e } = l();
188
+ return /* @__PURE__ */ o(
189
+ "span",
190
+ {
191
+ className: c(
192
+ "block text-sm font-normal",
193
+ {
194
+ light: "text-[var(--product-card-light-subtitle,color-mix(in_oklab,hsl(var(--foreground))_75%,transparent))]",
195
+ dark: "text-[var(--product-card-dark-subtitle,color-mix(in_oklab,hsl(var(--background))_75%,transparent))]"
196
+ }[e],
197
+ t
198
+ ),
199
+ "data-slot": "product-card-subtitle",
200
+ ...r,
201
+ children: a
202
+ }
203
+ );
204
+ }
205
+ function P({ className: a, colorScheme: t = "light", price: r, ...e }) {
206
+ return /* @__PURE__ */ s(b, { className: a, colorScheme: t, ...e, children: [
207
+ r.type === "range" && /* @__PURE__ */ s(i, { children: [
208
+ /* @__PURE__ */ o(n, { children: r.minValue }),
209
+ " – ",
210
+ /* @__PURE__ */ o(n, { children: r.maxValue })
211
+ ] }),
212
+ r.type === "sale" && /* @__PURE__ */ s(i, { children: [
213
+ /* @__PURE__ */ o(h, { children: r.currentValue }),
214
+ " ",
215
+ /* @__PURE__ */ o(n, { children: r.previousValue })
216
+ ] }),
217
+ r.type === "default" && /* @__PURE__ */ o(n, { children: r.value })
218
+ ] });
219
+ }
220
+ function K({ className: a, price: t, ...r }) {
221
+ const { colorScheme: e } = l();
222
+ return /* @__PURE__ */ o(
223
+ P,
224
+ {
225
+ className: c("mt-2", a),
226
+ colorScheme: e,
227
+ "data-slot": "product-card-price",
228
+ price: t,
229
+ ...r
230
+ }
231
+ );
232
+ }
233
+ function O({ className: a, children: t, ...r }) {
234
+ return /* @__PURE__ */ o(
235
+ "div",
236
+ {
237
+ className: c(
238
+ "font-(family-name:--checkbox-font-family,var(--font-family-body)) flex shrink-0 items-center gap-2",
239
+ a
240
+ ),
241
+ "data-slot": "product-card-compare",
242
+ ...r,
243
+ children: t
244
+ }
245
+ );
246
+ }
247
+ function Q({ className: a, ...t }) {
248
+ return /* @__PURE__ */ o(C, { className: c(a), "data-slot": "product-card-checkbox", ...t });
249
+ }
250
+ var N = "Label", m = v.forwardRef((a, t) => /* @__PURE__ */ o(
251
+ k.label,
252
+ {
253
+ ...a,
254
+ ref: t,
255
+ onMouseDown: (r) => {
256
+ r.target.closest("button, input, select, textarea") || (a.onMouseDown?.(r), !r.defaultPrevented && r.detail > 1 && r.preventDefault());
257
+ }
258
+ }
259
+ ));
260
+ m.displayName = N;
261
+ var w = m;
262
+ function y({ className: a, children: t, colorScheme: r = "light", ...e }) {
263
+ return /* @__PURE__ */ o(
264
+ w,
265
+ {
266
+ className: c(
267
+ "cursor-pointer text-sm peer-disabled:cursor-not-allowed peer-disabled:opacity-50",
268
+ {
269
+ light: "text-[var(--checkbox-light-label,hsl(var(--foreground)))]",
270
+ dark: "text-[var(--checkbox-dark-label,hsl(var(--background)))]"
271
+ }[r]
272
+ ),
273
+ "data-slot": "label",
274
+ ...e,
275
+ children: t
276
+ }
277
+ );
278
+ }
279
+ function U({ className: a, children: t, ...r }) {
280
+ const { colorScheme: e } = l();
281
+ return /* @__PURE__ */ o(
282
+ y,
283
+ {
284
+ className: c(a),
285
+ colorScheme: e,
286
+ "data-slot": "product-card-label",
287
+ ...r,
288
+ children: t
289
+ }
290
+ );
291
+ }
292
+ export {
293
+ x as B,
294
+ C,
295
+ y as L,
296
+ I as P,
297
+ T as a,
298
+ q as b,
299
+ A as c,
300
+ E as d,
301
+ H as e,
302
+ $ as f,
303
+ z as g,
304
+ G as h,
305
+ J as i,
306
+ K as j,
307
+ O as k,
308
+ Q as l,
309
+ U as m,
310
+ P as n
311
+ };
312
+ //# sourceMappingURL=product-card-label-CJmC9ICf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card-label-CJmC9ICf.js","sources":["../src/components/badge/badge.tsx","../src/components/checkbox/checkbox.tsx","../src/components/product-card/primitives/product-card-preview.tsx","../src/components/product-card/primitives/product-card-thumbnail.tsx","../src/components/product-card/primitives/product-card-image.tsx","../src/components/product-card/primitives/product-card-badge.tsx","../src/components/product-card/primitives/product-card-fallback.tsx","../src/components/product-card/primitives/product-card-link.tsx","../src/components/product-card/primitives/product-card-details.tsx","../src/components/product-card/primitives/product-card-header.tsx","../src/components/product-card/primitives/product-card-title.tsx","../src/components/product-card/primitives/product-card-subtitle.tsx","../src/components/price/price.tsx","../src/components/product-card/primitives/product-card-price.tsx","../src/components/product-card/primitives/product-card-compare.tsx","../src/components/product-card/primitives/product-card-checkbox.tsx","../node_modules/.pnpm/@radix-ui+react-label@2.1.7_@types+react-dom@19.2.2_@types+react@19.2.2__@types+react@19.2.2__h3esd6u5mwikxnlir43mok2s5m/node_modules/@radix-ui/react-label/dist/index.mjs","../src/components/label/label.tsx","../src/components/product-card/primitives/product-card-label.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BadgeProps = ComponentProps<'span'> & {\n children: string;\n shape?: 'pill' | 'rounded';\n variant?: 'primary' | 'warning' | 'error' | 'success' | 'info';\n};\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --badge-primary-background: color-mix(in oklab, hsl(var(--primary)), white 75%);\n * --badge-success-background: color-mix(in oklab, hsl(var(--success)), white 75%);\n * --badge-warning-background: color-mix(in oklab, hsl(var(--warning)), white 75%);\n * --badge-error-background: color-mix(in oklab, hsl(var(--error)), white 75%);\n * --badge-info-background: color-mix(in oklab, hsl(var(--info)), white 75%);\n * --badge-text: hsl(var(--foreground));\n * --badge-font-family: var(--font-family-mono);\n * }\n * ```\n */\nexport function Badge({\n children,\n shape = 'rounded',\n className,\n variant = 'primary',\n ...props\n}: BadgeProps) {\n return (\n <span\n className={cn(\n 'px-2 py-0.5 text-xs uppercase tracking-tighter text-[var(--badge-text,hsl(var(--foreground)))] [font-family:var(--badge-font-family,var(--font-family-mono))]',\n {\n pill: 'rounded-full',\n rounded: 'rounded',\n }[shape],\n {\n primary:\n 'bg-[var(--badge-primary-background,color-mix(in_oklab,hsl(var(--primary)),white_75%))]',\n warning:\n 'bg-[var(--badge-warning-background,color-mix(in_oklab,hsl(var(--warning)),white_75%))]',\n error:\n 'bg-[var(--badge-error-background,color-mix(in_oklab,hsl(var(--error)),white_75%))]',\n success:\n 'bg-[var(--badge-success-background,color-mix(in_oklab,hsl(var(--success)),white_75%))]',\n info: 'bg-[var(--badge-info-background,color-mix(in_oklab,hsl(var(--info)),white_75%))]',\n }[variant],\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n","'use client';\n\nimport { Check } from 'lucide-react';\nimport type { ComponentProps } from 'react';\n\nimport * as CheckboxPrimitive from '@/components/checkbox';\n\nexport type CheckboxProps = ComponentProps<typeof CheckboxPrimitive.Root>;\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --checkbox-focus: var(--primary);\n * --checkbox-light-label: var(--foreground);\n * --checkbox-light-error: var(--error);\n * --checkbox-light-unchecked-border: var(--contrast-200);\n * --checkbox-light-unchecked-border-hover: var(--contrast-300);\n * --checkbox-light-unchecked-background: var(--background);\n * --checkbox-light-unchecked-icon: var(--foreground);\n * --checkbox-light-checked-border: var(--foreground);\n * --checkbox-light-checked-border-hover: var(--foreground);\n * --checkbox-light-checked-background: var(--foreground);\n * --checkbox-light-checked-icon: var(--background);\n * --checkbox-light-disabled-border: var(--contrast-200);\n * --checkbox-light-disabled-background: var(--contrast-100);\n * --checkbox-light-disabled-icon: var(--contrast-300);\n * --checkbox-dark-label: var(--background);\n * --checkbox-dark-error: var(--error);\n * --checkbox-dark-unchecked-border: var(--contrast-400);\n * --checkbox-dark-unchecked-border-hover: var(--contrast-300);\n * --checkbox-dark-unchecked-background: var(--foreground);\n * --checkbox-dark-unchecked-icon: var(--background);\n * --checkbox-dark-checked-border: var(--background);\n * --checkbox-dark-checked-border-hover: var(--background);\n * --checkbox-dark-checked-background: var(--foreground);\n * --checkbox-dark-checked-icon: var(--foreground);\n * --checkbox-dark-disabled-border: var(--contrast-200);\n * --checkbox-dark-disabled-background: var(--contrast-100);\n * --checkbox-dark-disabled-icon: var(--contrast-300);\n * --checkbox-font-family: var(--font-family-body);\n * }\n * ```\n */\nexport function Checkbox({ className, colorScheme = 'light', ...props }: CheckboxProps) {\n return (\n <CheckboxPrimitive.Root className={className} colorScheme={colorScheme} {...props}>\n <CheckboxPrimitive.Indicator>\n <Check className=\"h-4 w-4\" color=\"currentColor\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ProductCardPreviewProps = ComponentProps<'div'>;\n\nexport function ProductCardPreview({ className, children, ...props }: ProductCardPreviewProps) {\n return (\n <div className={cn('relative', className)} data-slot=\"product-card-preview\" {...props}>\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardThumbnailProps = ComponentProps<'div'>;\n\nexport function ProductCardThumbnail({ className, children, ...props }: ProductCardThumbnailProps) {\n const { aspectRatio, colorScheme } = useProductCard();\n\n return (\n <div\n className={cn(\n 'relative overflow-hidden rounded-[var(--product-card-border-radius,1rem)]',\n {\n '5:6': 'aspect-[5/6]',\n '3:4': 'aspect-[3/4]',\n '1:1': 'aspect-square',\n }[aspectRatio],\n {\n light: 'bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]',\n dark: 'bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-thumbnail\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport interface ProductCardImageProps extends ComponentProps<'img'> {\n asChild?: boolean;\n}\n\nexport function ProductCardImage({\n className,\n children,\n asChild = false,\n ...props\n}: ProductCardImageProps) {\n const { colorScheme } = useProductCard();\n\n const Component = asChild ? Slot : 'img';\n\n return (\n <Component\n className={cn(\n 'h-full w-full scale-100 select-none object-cover transition-transform duration-500 ease-out group-hover:scale-110',\n {\n light: 'bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]',\n dark: 'bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-image\"\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { Badge } from '@/components/badge';\nimport { cn } from '@/lib';\n\nexport type ProductCardBadgeProps = ComponentProps<typeof Badge>;\n\nexport function ProductCardBadge({ className, children, ...props }: ProductCardBadgeProps) {\n return (\n <Badge\n className={cn('absolute left-3 top-3', className)}\n data-slot=\"product-card-badge\"\n shape=\"rounded\"\n {...props}\n >\n {children}\n </Badge>\n );\n}\n","'use client';\n\nimport { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardFallbackProps = ComponentProps<'div'>;\n\nexport function ProductCardFallback({ className, children, ...props }: ProductCardFallbackProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <div\n className={cn(\n 'break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out group-hover:scale-105',\n {\n light: '[color:color-mix(in_oklab,hsl(var(--foreground))_30%,transparent)]',\n dark: '[color:color-mix(in_oklab,hsl(var(--background))_30%,transparent)]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-fallback\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport interface ProductCardLinkProps extends ComponentProps<'a'> {\n asChild?: boolean;\n}\n\nexport function ProductCardLink({ asChild = false, className, ...props }: ProductCardLinkProps) {\n const { colorScheme } = useProductCard();\n\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn(\n 'absolute inset-0 rounded-[var(--product-card-border-radius,1rem)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--product-card-focus,hsl(var(--primary)))] focus-visible:ring-offset-4',\n {\n light: 'ring-offset-[var(--product-card-light-offset,hsl(var(--background)))]',\n dark: 'ring-offset-[var(--product-card-dark-offset,hsl(var(--foreground)))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-link\"\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ProductCardDetailsProps = ComponentProps<'div'>;\n\nexport function ProductCardDetails({ children, className, ...props }: ProductCardDetailsProps) {\n return (\n <div\n className={cn(\n 'mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row',\n className,\n )}\n data-slot=\"product-card-details\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ProductCardHeaderProps = ComponentProps<'div'>;\n\nexport function ProductCardHeader({ children, className, ...props }: ProductCardHeaderProps) {\n return (\n <div\n className={cn('relative flex-1 text-sm @[16rem]:text-base', className)}\n data-slot=\"product-card-header\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardTitleProps = ComponentProps<'h3'>;\n\nexport function ProductCardTitle({ className, children, ...props }: ProductCardTitleProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <h3\n className={cn(\n 'block font-semibold',\n {\n light: 'text-[var(--product-card-light-title,hsl(var(--foreground)))]',\n dark: 'text-[var(--product-card-dark-title,hsl(var(--background)))]',\n }[colorScheme],\n )}\n data-slot=\"product-card-title\"\n {...props}\n >\n {children}\n </h3>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardSubtitleProps = ComponentProps<'span'>;\n\nexport function ProductCardSubtitle({ children, className, ...props }: ProductCardSubtitleProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <span\n className={cn(\n 'block text-sm font-normal',\n {\n light:\n 'text-[var(--product-card-light-subtitle,color-mix(in_oklab,hsl(var(--foreground))_75%,transparent))]',\n dark: 'text-[var(--product-card-dark-subtitle,color-mix(in_oklab,hsl(var(--background))_75%,transparent))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-subtitle\"\n {...props}\n >\n {children}\n </span>\n );\n}\n","import * as PricePrimitive from '@/components/price';\n\ninterface PriceDefault {\n type: 'default';\n value: string;\n}\n\ninterface PriceRange {\n type: 'range';\n minValue: string;\n maxValue: string;\n}\n\ninterface PriceSale {\n type: 'sale';\n previousValue: string;\n currentValue: string;\n}\n\ntype PriceType = PriceDefault | PriceRange | PriceSale;\n\nexport interface PriceProps extends PricePrimitive.RootProps {\n price: PriceType;\n}\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --price-light-text: hsl(var(--foreground));\n * --price-light-sale-text: hsl(var(--foreground));\n * --price-dark-text: hsl(var(--background));\n * --price-dark-sale-text: hsl(var(--background));\n * }\n * ```\n */\nexport function Price({ className, colorScheme = 'light', price, ...props }: PriceProps) {\n return (\n <PricePrimitive.Root className={className} colorScheme={colorScheme} {...props}>\n {price.type === 'range' && (\n <>\n <PricePrimitive.Default>{price.minValue}</PricePrimitive.Default>\n {' – '}\n <PricePrimitive.Default>{price.maxValue}</PricePrimitive.Default>\n </>\n )}\n {price.type === 'sale' && (\n <>\n <PricePrimitive.Strike>{price.currentValue}</PricePrimitive.Strike>{' '}\n <PricePrimitive.Default>{price.previousValue}</PricePrimitive.Default>\n </>\n )}\n {price.type === 'default' && <PricePrimitive.Default>{price.value}</PricePrimitive.Default>}\n </PricePrimitive.Root>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { Price } from '@/components/price';\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardPriceProps = ComponentProps<typeof Price>;\n\nexport function ProductCardPrice({ className, price, ...props }: ProductCardPriceProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <Price\n className={cn('mt-2', className)}\n colorScheme={colorScheme}\n data-slot=\"product-card-price\"\n price={price}\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ProductCardCompareProps = ComponentProps<'div'>;\n\nexport function ProductCardCompare({ className, children, ...props }: ProductCardCompareProps) {\n return (\n <div\n className={cn(\n 'font-(family-name:--checkbox-font-family,var(--font-family-body)) flex shrink-0 items-center gap-2',\n className,\n )}\n data-slot=\"product-card-compare\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { Checkbox } from '@/components/checkbox';\nimport { cn } from '@/lib';\n\nexport type ProductCardCheckboxProps = ComponentProps<typeof Checkbox>;\n\nexport function ProductCardCheckbox({ className, ...props }: ProductCardCheckboxProps) {\n return <Checkbox className={cn(className)} data-slot=\"product-card-checkbox\" {...props} />;\n}\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as LabelPrimitive from '@radix-ui/react-label';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type LabelProps = ComponentProps<typeof LabelPrimitive.Root> & {\n colorScheme?: 'light' | 'dark';\n};\n\nexport function Label({ className, children, colorScheme = 'light', ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n className={cn(\n 'cursor-pointer text-sm peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n {\n light: 'text-[var(--checkbox-light-label,hsl(var(--foreground)))]',\n dark: 'text-[var(--checkbox-dark-label,hsl(var(--background)))]',\n }[colorScheme],\n )}\n data-slot=\"label\"\n {...props}\n >\n {children}\n </LabelPrimitive.Root>\n );\n}\n","'use client';\n\nimport { ComponentProps } from 'react';\n\nimport { Label } from '@/components/label';\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardLabelProps = ComponentProps<typeof Label>;\n\nexport function ProductCardLabel({ className, children, ...props }: ProductCardLabelProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <Label\n className={cn(className)}\n colorScheme={colorScheme}\n data-slot=\"product-card-label\"\n {...props}\n >\n {children}\n </Label>\n );\n}\n"],"names":["Badge","children","shape","className","variant","props","jsx","cn","Checkbox","colorScheme","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","Check","ProductCardPreview","ProductCardThumbnail","aspectRatio","useProductCard","ProductCardImage","asChild","Slot","ProductCardBadge","ProductCardFallback","ProductCardLink","ProductCardDetails","ProductCardHeader","ProductCardTitle","ProductCardSubtitle","Price","price","PricePrimitive.Root","jsxs","Fragment","PricePrimitive.Default","PricePrimitive.Strike","ProductCardPrice","ProductCardCompare","ProductCardCheckbox","NAME","Label","React","forwardedRef","Primitive","event","Root","LabelPrimitive.Root","ProductCardLabel"],"mappings":"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","x_google_ignoreList":[16]}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),c=require("./utils-LBH114_M.cjs"),d=require("./product-card-root-BMTVhhFp.cjs"),m=require("./checkbox-root-g9HcYZCP.cjs"),l=require("./index-DGaxX11V.cjs"),s=require("./price-strike-DD2WNPQX.cjs"),x=require("./checkbox-indicator-GNoyS6OL.cjs"),p=require("./check-DJilMvC6.cjs"),v=require("react"),k=require("./index-Bw7_huW8.cjs");function P(a){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const r in a)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(a,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:()=>a[r]})}}return t.default=a,Object.freeze(t)}const C=P(v);function u({children:a,shape:t="rounded",className:r,variant:o="primary",...n}){return e.jsx("span",{className:c.cn("px-2 py-0.5 text-xs uppercase tracking-tighter text-[var(--badge-text,hsl(var(--foreground)))] [font-family:var(--badge-font-family,var(--font-family-mono))]",{pill:"rounded-full",rounded:"rounded"}[t],{primary:"bg-[var(--badge-primary-background,color-mix(in_oklab,hsl(var(--primary)),white_75%))]",warning:"bg-[var(--badge-warning-background,color-mix(in_oklab,hsl(var(--warning)),white_75%))]",error:"bg-[var(--badge-error-background,color-mix(in_oklab,hsl(var(--error)),white_75%))]",success:"bg-[var(--badge-success-background,color-mix(in_oklab,hsl(var(--success)),white_75%))]",info:"bg-[var(--badge-info-background,color-mix(in_oklab,hsl(var(--info)),white_75%))]"}[o],r),...n,children:a})}function i({className:a,colorScheme:t="light",...r}){return e.jsx(m.CheckboxRoot,{className:a,colorScheme:t,...r,children:e.jsx(x.CheckboxIndicator,{children:e.jsx(p.default,{className:"h-4 w-4",color:"currentColor"})})})}function j({className:a,children:t,...r}){return e.jsx("div",{className:c.cn("relative",a),"data-slot":"product-card-preview",...r,children:t})}function y({className:a,children:t,...r}){const{aspectRatio:o,colorScheme:n}=d.useProductCard();return e.jsx("div",{className:c.cn("relative overflow-hidden rounded-[var(--product-card-border-radius,1rem)]",{"5:6":"aspect-[5/6]","3:4":"aspect-[3/4]","1:1":"aspect-square"}[o],{light:"bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]",dark:"bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]"}[n],a),"data-slot":"product-card-thumbnail",...r,children:t})}function N({className:a,children:t,asChild:r=!1,...o}){const{colorScheme:n}=d.useProductCard(),h=r?l.Slot:"img";return e.jsx(h,{className:c.cn("h-full w-full scale-100 select-none object-cover transition-transform duration-500 ease-out group-hover:scale-110",{light:"bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]",dark:"bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]"}[n],a),"data-slot":"product-card-image",...o})}function w({className:a,children:t,...r}){return e.jsx(u,{className:c.cn("absolute left-3 top-3",a),"data-slot":"product-card-badge",shape:"rounded",...r,children:t})}function _({className:a,children:t,...r}){const{colorScheme:o}=d.useProductCard();return e.jsx("div",{className:c.cn("break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out group-hover:scale-105",{light:"[color:color-mix(in_oklab,hsl(var(--foreground))_30%,transparent)]",dark:"[color:color-mix(in_oklab,hsl(var(--background))_30%,transparent)]"}[o],a),"data-slot":"product-card-fallback",...r,children:t})}function S({asChild:a=!1,className:t,...r}){const{colorScheme:o}=d.useProductCard(),n=a?l.Slot:"a";return e.jsx(n,{className:c.cn("absolute inset-0 rounded-[var(--product-card-border-radius,1rem)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--product-card-focus,hsl(var(--primary)))] focus-visible:ring-offset-4",{light:"ring-offset-[var(--product-card-light-offset,hsl(var(--background)))]",dark:"ring-offset-[var(--product-card-dark-offset,hsl(var(--foreground)))]"}[o],t),"data-slot":"product-card-link",...r})}function q({children:a,className:t,...r}){return e.jsx("div",{className:c.cn("mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row",t),"data-slot":"product-card-details",...r,children:a})}function D({children:a,className:t,...r}){return e.jsx("div",{className:c.cn("relative flex-1 text-sm @[16rem]:text-base",t),"data-slot":"product-card-header",...r,children:a})}function R({className:a,children:t,...r}){const{colorScheme:o}=d.useProductCard();return e.jsx("h3",{className:c.cn("block font-semibold",{light:"text-[var(--product-card-light-title,hsl(var(--foreground)))]",dark:"text-[var(--product-card-dark-title,hsl(var(--background)))]"}[o]),"data-slot":"product-card-title",...r,children:t})}function L({children:a,className:t,...r}){const{colorScheme:o}=d.useProductCard();return e.jsx("span",{className:c.cn("block text-sm font-normal",{light:"text-[var(--product-card-light-subtitle,color-mix(in_oklab,hsl(var(--foreground))_75%,transparent))]",dark:"text-[var(--product-card-dark-subtitle,color-mix(in_oklab,hsl(var(--background))_75%,transparent))]"}[o],t),"data-slot":"product-card-subtitle",...r,children:a})}function b({className:a,colorScheme:t="light",price:r,...o}){return e.jsxs(s.PriceRoot,{className:a,colorScheme:t,...o,children:[r.type==="range"&&e.jsxs(e.Fragment,{children:[e.jsx(s.PriceDefault,{children:r.minValue})," – ",e.jsx(s.PriceDefault,{children:r.maxValue})]}),r.type==="sale"&&e.jsxs(e.Fragment,{children:[e.jsx(s.PriceStrike,{children:r.currentValue})," ",e.jsx(s.PriceDefault,{children:r.previousValue})]}),r.type==="default"&&e.jsx(s.PriceDefault,{children:r.value})]})}function O({className:a,price:t,...r}){const{colorScheme:o}=d.useProductCard();return e.jsx(b,{className:c.cn("mt-2",a),colorScheme:o,"data-slot":"product-card-price",price:t,...r})}function T({className:a,children:t,...r}){return e.jsx("div",{className:c.cn("font-(family-name:--checkbox-font-family,var(--font-family-body)) flex shrink-0 items-center gap-2",a),"data-slot":"product-card-compare",...r,children:t})}function B({className:a,...t}){return e.jsx(i,{className:c.cn(a),"data-slot":"product-card-checkbox",...t})}var F="Label",f=C.forwardRef((a,t)=>e.jsx(k.Primitive.label,{...a,ref:t,onMouseDown:r=>{r.target.closest("button, input, select, textarea")||(a.onMouseDown?.(r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));f.displayName=F;var I=f;function g({className:a,children:t,colorScheme:r="light",...o}){return e.jsx(I,{className:c.cn("cursor-pointer text-sm peer-disabled:cursor-not-allowed peer-disabled:opacity-50",{light:"text-[var(--checkbox-light-label,hsl(var(--foreground)))]",dark:"text-[var(--checkbox-dark-label,hsl(var(--background)))]"}[r]),"data-slot":"label",...o,children:t})}function M({className:a,children:t,...r}){const{colorScheme:o}=d.useProductCard();return e.jsx(g,{className:c.cn(a),colorScheme:o,"data-slot":"product-card-label",...r,children:t})}exports.Badge=u;exports.Checkbox=i;exports.Label=g;exports.Price=b;exports.ProductCardBadge=w;exports.ProductCardCheckbox=B;exports.ProductCardCompare=T;exports.ProductCardDetails=q;exports.ProductCardFallback=_;exports.ProductCardHeader=D;exports.ProductCardImage=N;exports.ProductCardLabel=M;exports.ProductCardLink=S;exports.ProductCardPreview=j;exports.ProductCardPrice=O;exports.ProductCardSubtitle=L;exports.ProductCardThumbnail=y;exports.ProductCardTitle=R;
2
+ //# sourceMappingURL=product-card-label-D43AXtRL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card-label-D43AXtRL.cjs","sources":["../src/components/badge/badge.tsx","../src/components/checkbox/checkbox.tsx","../src/components/product-card/primitives/product-card-preview.tsx","../src/components/product-card/primitives/product-card-thumbnail.tsx","../src/components/product-card/primitives/product-card-image.tsx","../src/components/product-card/primitives/product-card-badge.tsx","../src/components/product-card/primitives/product-card-fallback.tsx","../src/components/product-card/primitives/product-card-link.tsx","../src/components/product-card/primitives/product-card-details.tsx","../src/components/product-card/primitives/product-card-header.tsx","../src/components/product-card/primitives/product-card-title.tsx","../src/components/product-card/primitives/product-card-subtitle.tsx","../src/components/price/price.tsx","../src/components/product-card/primitives/product-card-price.tsx","../src/components/product-card/primitives/product-card-compare.tsx","../src/components/product-card/primitives/product-card-checkbox.tsx","../node_modules/.pnpm/@radix-ui+react-label@2.1.7_@types+react-dom@19.2.2_@types+react@19.2.2__@types+react@19.2.2__h3esd6u5mwikxnlir43mok2s5m/node_modules/@radix-ui/react-label/dist/index.mjs","../src/components/label/label.tsx","../src/components/product-card/primitives/product-card-label.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type BadgeProps = ComponentProps<'span'> & {\n children: string;\n shape?: 'pill' | 'rounded';\n variant?: 'primary' | 'warning' | 'error' | 'success' | 'info';\n};\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --badge-primary-background: color-mix(in oklab, hsl(var(--primary)), white 75%);\n * --badge-success-background: color-mix(in oklab, hsl(var(--success)), white 75%);\n * --badge-warning-background: color-mix(in oklab, hsl(var(--warning)), white 75%);\n * --badge-error-background: color-mix(in oklab, hsl(var(--error)), white 75%);\n * --badge-info-background: color-mix(in oklab, hsl(var(--info)), white 75%);\n * --badge-text: hsl(var(--foreground));\n * --badge-font-family: var(--font-family-mono);\n * }\n * ```\n */\nexport function Badge({\n children,\n shape = 'rounded',\n className,\n variant = 'primary',\n ...props\n}: BadgeProps) {\n return (\n <span\n className={cn(\n 'px-2 py-0.5 text-xs uppercase tracking-tighter text-[var(--badge-text,hsl(var(--foreground)))] [font-family:var(--badge-font-family,var(--font-family-mono))]',\n {\n pill: 'rounded-full',\n rounded: 'rounded',\n }[shape],\n {\n primary:\n 'bg-[var(--badge-primary-background,color-mix(in_oklab,hsl(var(--primary)),white_75%))]',\n warning:\n 'bg-[var(--badge-warning-background,color-mix(in_oklab,hsl(var(--warning)),white_75%))]',\n error:\n 'bg-[var(--badge-error-background,color-mix(in_oklab,hsl(var(--error)),white_75%))]',\n success:\n 'bg-[var(--badge-success-background,color-mix(in_oklab,hsl(var(--success)),white_75%))]',\n info: 'bg-[var(--badge-info-background,color-mix(in_oklab,hsl(var(--info)),white_75%))]',\n }[variant],\n className,\n )}\n {...props}\n >\n {children}\n </span>\n );\n}\n","'use client';\n\nimport { Check } from 'lucide-react';\nimport type { ComponentProps } from 'react';\n\nimport * as CheckboxPrimitive from '@/components/checkbox';\n\nexport type CheckboxProps = ComponentProps<typeof CheckboxPrimitive.Root>;\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --checkbox-focus: var(--primary);\n * --checkbox-light-label: var(--foreground);\n * --checkbox-light-error: var(--error);\n * --checkbox-light-unchecked-border: var(--contrast-200);\n * --checkbox-light-unchecked-border-hover: var(--contrast-300);\n * --checkbox-light-unchecked-background: var(--background);\n * --checkbox-light-unchecked-icon: var(--foreground);\n * --checkbox-light-checked-border: var(--foreground);\n * --checkbox-light-checked-border-hover: var(--foreground);\n * --checkbox-light-checked-background: var(--foreground);\n * --checkbox-light-checked-icon: var(--background);\n * --checkbox-light-disabled-border: var(--contrast-200);\n * --checkbox-light-disabled-background: var(--contrast-100);\n * --checkbox-light-disabled-icon: var(--contrast-300);\n * --checkbox-dark-label: var(--background);\n * --checkbox-dark-error: var(--error);\n * --checkbox-dark-unchecked-border: var(--contrast-400);\n * --checkbox-dark-unchecked-border-hover: var(--contrast-300);\n * --checkbox-dark-unchecked-background: var(--foreground);\n * --checkbox-dark-unchecked-icon: var(--background);\n * --checkbox-dark-checked-border: var(--background);\n * --checkbox-dark-checked-border-hover: var(--background);\n * --checkbox-dark-checked-background: var(--foreground);\n * --checkbox-dark-checked-icon: var(--foreground);\n * --checkbox-dark-disabled-border: var(--contrast-200);\n * --checkbox-dark-disabled-background: var(--contrast-100);\n * --checkbox-dark-disabled-icon: var(--contrast-300);\n * --checkbox-font-family: var(--font-family-body);\n * }\n * ```\n */\nexport function Checkbox({ className, colorScheme = 'light', ...props }: CheckboxProps) {\n return (\n <CheckboxPrimitive.Root className={className} colorScheme={colorScheme} {...props}>\n <CheckboxPrimitive.Indicator>\n <Check className=\"h-4 w-4\" color=\"currentColor\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ProductCardPreviewProps = ComponentProps<'div'>;\n\nexport function ProductCardPreview({ className, children, ...props }: ProductCardPreviewProps) {\n return (\n <div className={cn('relative', className)} data-slot=\"product-card-preview\" {...props}>\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardThumbnailProps = ComponentProps<'div'>;\n\nexport function ProductCardThumbnail({ className, children, ...props }: ProductCardThumbnailProps) {\n const { aspectRatio, colorScheme } = useProductCard();\n\n return (\n <div\n className={cn(\n 'relative overflow-hidden rounded-[var(--product-card-border-radius,1rem)]',\n {\n '5:6': 'aspect-[5/6]',\n '3:4': 'aspect-[3/4]',\n '1:1': 'aspect-square',\n }[aspectRatio],\n {\n light: 'bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]',\n dark: 'bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-thumbnail\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport interface ProductCardImageProps extends ComponentProps<'img'> {\n asChild?: boolean;\n}\n\nexport function ProductCardImage({\n className,\n children,\n asChild = false,\n ...props\n}: ProductCardImageProps) {\n const { colorScheme } = useProductCard();\n\n const Component = asChild ? Slot : 'img';\n\n return (\n <Component\n className={cn(\n 'h-full w-full scale-100 select-none object-cover transition-transform duration-500 ease-out group-hover:scale-110',\n {\n light: 'bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]',\n dark: 'bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-image\"\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { Badge } from '@/components/badge';\nimport { cn } from '@/lib';\n\nexport type ProductCardBadgeProps = ComponentProps<typeof Badge>;\n\nexport function ProductCardBadge({ className, children, ...props }: ProductCardBadgeProps) {\n return (\n <Badge\n className={cn('absolute left-3 top-3', className)}\n data-slot=\"product-card-badge\"\n shape=\"rounded\"\n {...props}\n >\n {children}\n </Badge>\n );\n}\n","'use client';\n\nimport { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardFallbackProps = ComponentProps<'div'>;\n\nexport function ProductCardFallback({ className, children, ...props }: ProductCardFallbackProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <div\n className={cn(\n 'break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out group-hover:scale-105',\n {\n light: '[color:color-mix(in_oklab,hsl(var(--foreground))_30%,transparent)]',\n dark: '[color:color-mix(in_oklab,hsl(var(--background))_30%,transparent)]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-fallback\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport { Slot } from '@radix-ui/react-slot';\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport interface ProductCardLinkProps extends ComponentProps<'a'> {\n asChild?: boolean;\n}\n\nexport function ProductCardLink({ asChild = false, className, ...props }: ProductCardLinkProps) {\n const { colorScheme } = useProductCard();\n\n const Component = asChild ? Slot : 'a';\n\n return (\n <Component\n className={cn(\n 'absolute inset-0 rounded-[var(--product-card-border-radius,1rem)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--product-card-focus,hsl(var(--primary)))] focus-visible:ring-offset-4',\n {\n light: 'ring-offset-[var(--product-card-light-offset,hsl(var(--background)))]',\n dark: 'ring-offset-[var(--product-card-dark-offset,hsl(var(--foreground)))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-link\"\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ProductCardDetailsProps = ComponentProps<'div'>;\n\nexport function ProductCardDetails({ children, className, ...props }: ProductCardDetailsProps) {\n return (\n <div\n className={cn(\n 'mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row',\n className,\n )}\n data-slot=\"product-card-details\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ProductCardHeaderProps = ComponentProps<'div'>;\n\nexport function ProductCardHeader({ children, className, ...props }: ProductCardHeaderProps) {\n return (\n <div\n className={cn('relative flex-1 text-sm @[16rem]:text-base', className)}\n data-slot=\"product-card-header\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardTitleProps = ComponentProps<'h3'>;\n\nexport function ProductCardTitle({ className, children, ...props }: ProductCardTitleProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <h3\n className={cn(\n 'block font-semibold',\n {\n light: 'text-[var(--product-card-light-title,hsl(var(--foreground)))]',\n dark: 'text-[var(--product-card-dark-title,hsl(var(--background)))]',\n }[colorScheme],\n )}\n data-slot=\"product-card-title\"\n {...props}\n >\n {children}\n </h3>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardSubtitleProps = ComponentProps<'span'>;\n\nexport function ProductCardSubtitle({ children, className, ...props }: ProductCardSubtitleProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <span\n className={cn(\n 'block text-sm font-normal',\n {\n light:\n 'text-[var(--product-card-light-subtitle,color-mix(in_oklab,hsl(var(--foreground))_75%,transparent))]',\n dark: 'text-[var(--product-card-dark-subtitle,color-mix(in_oklab,hsl(var(--background))_75%,transparent))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"product-card-subtitle\"\n {...props}\n >\n {children}\n </span>\n );\n}\n","import * as PricePrimitive from '@/components/price';\n\ninterface PriceDefault {\n type: 'default';\n value: string;\n}\n\ninterface PriceRange {\n type: 'range';\n minValue: string;\n maxValue: string;\n}\n\ninterface PriceSale {\n type: 'sale';\n previousValue: string;\n currentValue: string;\n}\n\ntype PriceType = PriceDefault | PriceRange | PriceSale;\n\nexport interface PriceProps extends PricePrimitive.RootProps {\n price: PriceType;\n}\n\n/**\n * This component supports various CSS variables for theming. Here's a comprehensive list, along\n * with their default values:\n *\n * ```css\n * :root {\n * --price-light-text: hsl(var(--foreground));\n * --price-light-sale-text: hsl(var(--foreground));\n * --price-dark-text: hsl(var(--background));\n * --price-dark-sale-text: hsl(var(--background));\n * }\n * ```\n */\nexport function Price({ className, colorScheme = 'light', price, ...props }: PriceProps) {\n return (\n <PricePrimitive.Root className={className} colorScheme={colorScheme} {...props}>\n {price.type === 'range' && (\n <>\n <PricePrimitive.Default>{price.minValue}</PricePrimitive.Default>\n {' – '}\n <PricePrimitive.Default>{price.maxValue}</PricePrimitive.Default>\n </>\n )}\n {price.type === 'sale' && (\n <>\n <PricePrimitive.Strike>{price.currentValue}</PricePrimitive.Strike>{' '}\n <PricePrimitive.Default>{price.previousValue}</PricePrimitive.Default>\n </>\n )}\n {price.type === 'default' && <PricePrimitive.Default>{price.value}</PricePrimitive.Default>}\n </PricePrimitive.Root>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { Price } from '@/components/price';\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardPriceProps = ComponentProps<typeof Price>;\n\nexport function ProductCardPrice({ className, price, ...props }: ProductCardPriceProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <Price\n className={cn('mt-2', className)}\n colorScheme={colorScheme}\n data-slot=\"product-card-price\"\n price={price}\n {...props}\n />\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type ProductCardCompareProps = ComponentProps<'div'>;\n\nexport function ProductCardCompare({ className, children, ...props }: ProductCardCompareProps) {\n return (\n <div\n className={cn(\n 'font-(family-name:--checkbox-font-family,var(--font-family-body)) flex shrink-0 items-center gap-2',\n className,\n )}\n data-slot=\"product-card-compare\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","'use client';\n\nimport type { ComponentProps } from 'react';\n\nimport { Checkbox } from '@/components/checkbox';\nimport { cn } from '@/lib';\n\nexport type ProductCardCheckboxProps = ComponentProps<typeof Checkbox>;\n\nexport function ProductCardCheckbox({ className, ...props }: ProductCardCheckboxProps) {\n return <Checkbox className={cn(className)} data-slot=\"product-card-checkbox\" {...props} />;\n}\n","\"use client\";\n\n// src/label.tsx\nimport * as React from \"react\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NAME = \"Label\";\nvar Label = React.forwardRef((props, forwardedRef) => {\n return /* @__PURE__ */ jsx(\n Primitive.label,\n {\n ...props,\n ref: forwardedRef,\n onMouseDown: (event) => {\n const target = event.target;\n if (target.closest(\"button, input, select, textarea\")) return;\n props.onMouseDown?.(event);\n if (!event.defaultPrevented && event.detail > 1) event.preventDefault();\n }\n }\n );\n});\nLabel.displayName = NAME;\nvar Root = Label;\nexport {\n Label,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","import * as LabelPrimitive from '@radix-ui/react-label';\nimport type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type LabelProps = ComponentProps<typeof LabelPrimitive.Root> & {\n colorScheme?: 'light' | 'dark';\n};\n\nexport function Label({ className, children, colorScheme = 'light', ...props }: LabelProps) {\n return (\n <LabelPrimitive.Root\n className={cn(\n 'cursor-pointer text-sm peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n {\n light: 'text-[var(--checkbox-light-label,hsl(var(--foreground)))]',\n dark: 'text-[var(--checkbox-dark-label,hsl(var(--background)))]',\n }[colorScheme],\n )}\n data-slot=\"label\"\n {...props}\n >\n {children}\n </LabelPrimitive.Root>\n );\n}\n","'use client';\n\nimport { ComponentProps } from 'react';\n\nimport { Label } from '@/components/label';\nimport { useProductCard } from '@/components/product-card';\nimport { cn } from '@/lib';\n\nexport type ProductCardLabelProps = ComponentProps<typeof Label>;\n\nexport function ProductCardLabel({ className, children, ...props }: ProductCardLabelProps) {\n const { colorScheme } = useProductCard();\n\n return (\n <Label\n className={cn(className)}\n colorScheme={colorScheme}\n data-slot=\"product-card-label\"\n {...props}\n >\n {children}\n </Label>\n );\n}\n"],"names":["Badge","children","shape","className","variant","props","jsx","cn","Checkbox","colorScheme","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","Check","ProductCardPreview","ProductCardThumbnail","aspectRatio","useProductCard","ProductCardImage","asChild","Component","Slot","ProductCardBadge","ProductCardFallback","ProductCardLink","ProductCardDetails","ProductCardHeader","ProductCardTitle","ProductCardSubtitle","Price","price","PricePrimitive.Root","jsxs","Fragment","PricePrimitive.Default","PricePrimitive.Strike","ProductCardPrice","ProductCardCompare","ProductCardCheckbox","NAME","Label","React","forwardedRef","Primitive","event","Root","LabelPrimitive.Root","ProductCardLabel"],"mappings":"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","x_google_ignoreList":[16]}
@@ -0,0 +1,43 @@
1
+ import { jsx as n } from "react/jsx-runtime";
2
+ import { createContext as i, useMemo as m, use as f } from "react";
3
+ import { c as l } from "./utils-BOGlfttm.js";
4
+ const a = i(void 0);
5
+ function p({
6
+ className: o,
7
+ children: d,
8
+ as: e,
9
+ colorScheme: t = "light",
10
+ aspectRatio: r = "5:6",
11
+ ...u
12
+ }) {
13
+ const c = e ?? "article", s = m(
14
+ () => ({
15
+ colorScheme: t,
16
+ aspectRatio: r
17
+ }),
18
+ [t, r]
19
+ );
20
+ return /* @__PURE__ */ n(a.Provider, { value: s, children: /* @__PURE__ */ n(
21
+ c,
22
+ {
23
+ className: l(
24
+ "group w-full max-w-md font-[var(--product-card-font-family,var(--font-family-body))] @container",
25
+ o
26
+ ),
27
+ "data-slot": "product-card-root",
28
+ ...u,
29
+ children: d
30
+ }
31
+ ) });
32
+ }
33
+ function v() {
34
+ const o = f(a);
35
+ if (o === void 0)
36
+ throw new Error("useProductCard must be used within an ProductCardRoot");
37
+ return o;
38
+ }
39
+ export {
40
+ p as P,
41
+ v as u
42
+ };
43
+ //# sourceMappingURL=product-card-root-4Xz4-pdL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card-root-4Xz4-pdL.js","sources":["../src/components/product-card/primitives/product-card-root.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, use, useMemo } from 'react';\nimport type { ComponentProps, ElementType } from 'react';\n\nimport { cn } from '@/lib';\n\ninterface ProductCardContext {\n colorScheme: 'light' | 'dark';\n aspectRatio: '5:6' | '3:4' | '1:1';\n}\n\nexport const ProductCardContext = createContext<ProductCardContext | undefined>(undefined);\n\nexport type ProductCardRootProps<E extends ElementType = 'article'> = Omit<\n ComponentProps<E>,\n 'as'\n> & {\n as?: E;\n colorScheme?: 'light' | 'dark';\n aspectRatio?: '5:6' | '3:4' | '1:1';\n};\n\nexport function ProductCardRoot<T extends ElementType = 'article'>({\n className,\n children,\n as,\n colorScheme = 'light',\n aspectRatio = '5:6',\n ...props\n}: ProductCardRootProps<T>) {\n const ProductCardRootElement = as ?? 'article';\n\n const contextValues = useMemo(\n () => ({\n colorScheme,\n aspectRatio,\n }),\n [colorScheme, aspectRatio],\n );\n\n return (\n <ProductCardContext.Provider value={contextValues}>\n <ProductCardRootElement\n className={cn(\n 'group w-full max-w-md font-[var(--product-card-font-family,var(--font-family-body))] @container',\n className,\n )}\n data-slot=\"product-card-root\"\n {...props}\n >\n {children}\n </ProductCardRootElement>\n </ProductCardContext.Provider>\n );\n}\n\nexport function useProductCard() {\n const context = use(ProductCardContext);\n\n if (context === undefined) {\n throw new Error('useProductCard must be used within an ProductCardRoot');\n }\n\n return context;\n}\n"],"names":["ProductCardContext","createContext","ProductCardRoot","className","children","as","colorScheme","aspectRatio","props","ProductCardRootElement","contextValues","useMemo","jsx","cn","useProductCard","context","use"],"mappings":";;;AAYO,MAAMA,IAAqBC,EAA8C,MAAS;AAWlF,SAASC,EAAmD;AAAA,EACjE,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,IAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,aAAAC,IAAc;AAAA,EACd,GAAGC;AACL,GAA4B;AAC1B,QAAMC,IAAyBJ,KAAM,WAE/BK,IAAgBC;AAAA,IACpB,OAAO;AAAA,MACL,aAAAL;AAAA,MACA,aAAAC;AAAA,IAAA;AAAA,IAEF,CAACD,GAAaC,CAAW;AAAA,EAAA;AAG3B,SACE,gBAAAK,EAACZ,EAAmB,UAAnB,EAA4B,OAAOU,GAClC,UAAA,gBAAAE;AAAA,IAACH;AAAA,IAAA;AAAA,MACC,WAAWI;AAAA,QACT;AAAA,QACAV;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGK;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA,GAEL;AAEJ;AAEO,SAASU,IAAiB;AAC/B,QAAMC,IAAUC,EAAIhB,CAAkB;AAEtC,MAAIe,MAAY;AACd,UAAM,IAAI,MAAM,uDAAuD;AAGzE,SAAOA;AACT;"}
@@ -0,0 +1,2 @@
1
+ "use strict";const u=require("react/jsx-runtime"),r=require("react"),l=require("./utils-LBH114_M.cjs"),n=r.createContext(void 0);function C({className:t,children:c,as:d,colorScheme:o="light",aspectRatio:e="5:6",...a}){const s=d??"article",i=r.useMemo(()=>({colorScheme:o,aspectRatio:e}),[o,e]);return u.jsx(n.Provider,{value:i,children:u.jsx(s,{className:l.cn("group w-full max-w-md font-[var(--product-card-font-family,var(--font-family-body))] @container",t),"data-slot":"product-card-root",...a,children:c})})}function f(){const t=r.use(n);if(t===void 0)throw new Error("useProductCard must be used within an ProductCardRoot");return t}exports.ProductCardRoot=C;exports.useProductCard=f;
2
+ //# sourceMappingURL=product-card-root-BMTVhhFp.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card-root-BMTVhhFp.cjs","sources":["../src/components/product-card/primitives/product-card-root.tsx"],"sourcesContent":["'use client';\n\nimport { createContext, use, useMemo } from 'react';\nimport type { ComponentProps, ElementType } from 'react';\n\nimport { cn } from '@/lib';\n\ninterface ProductCardContext {\n colorScheme: 'light' | 'dark';\n aspectRatio: '5:6' | '3:4' | '1:1';\n}\n\nexport const ProductCardContext = createContext<ProductCardContext | undefined>(undefined);\n\nexport type ProductCardRootProps<E extends ElementType = 'article'> = Omit<\n ComponentProps<E>,\n 'as'\n> & {\n as?: E;\n colorScheme?: 'light' | 'dark';\n aspectRatio?: '5:6' | '3:4' | '1:1';\n};\n\nexport function ProductCardRoot<T extends ElementType = 'article'>({\n className,\n children,\n as,\n colorScheme = 'light',\n aspectRatio = '5:6',\n ...props\n}: ProductCardRootProps<T>) {\n const ProductCardRootElement = as ?? 'article';\n\n const contextValues = useMemo(\n () => ({\n colorScheme,\n aspectRatio,\n }),\n [colorScheme, aspectRatio],\n );\n\n return (\n <ProductCardContext.Provider value={contextValues}>\n <ProductCardRootElement\n className={cn(\n 'group w-full max-w-md font-[var(--product-card-font-family,var(--font-family-body))] @container',\n className,\n )}\n data-slot=\"product-card-root\"\n {...props}\n >\n {children}\n </ProductCardRootElement>\n </ProductCardContext.Provider>\n );\n}\n\nexport function useProductCard() {\n const context = use(ProductCardContext);\n\n if (context === undefined) {\n throw new Error('useProductCard must be used within an ProductCardRoot');\n }\n\n return context;\n}\n"],"names":["ProductCardContext","createContext","ProductCardRoot","className","children","as","colorScheme","aspectRatio","props","ProductCardRootElement","contextValues","useMemo","jsx","cn","useProductCard","context","use"],"mappings":"uGAYaA,EAAqBC,EAAAA,cAA8C,MAAS,EAWlF,SAASC,EAAmD,CACjE,UAAAC,EACA,SAAAC,EACA,GAAAC,EACA,YAAAC,EAAc,QACd,YAAAC,EAAc,MACd,GAAGC,CACL,EAA4B,CAC1B,MAAMC,EAAyBJ,GAAM,UAE/BK,EAAgBC,EAAAA,QACpB,KAAO,CACL,YAAAL,EACA,YAAAC,CAAA,GAEF,CAACD,EAAaC,CAAW,CAAA,EAG3B,OACEK,EAAAA,IAACZ,EAAmB,SAAnB,CAA4B,MAAOU,EAClC,SAAAE,EAAAA,IAACH,EAAA,CACC,UAAWI,EAAAA,GACT,kGACAV,CAAA,EAEF,YAAU,oBACT,GAAGK,EAEH,SAAAJ,CAAA,CAAA,EAEL,CAEJ,CAEO,SAASU,GAAiB,CAC/B,MAAMC,EAAUC,EAAAA,IAAIhB,CAAkB,EAEtC,GAAIe,IAAY,OACd,MAAM,IAAI,MAAM,uDAAuD,EAGzE,OAAOA,CACT"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("react/jsx-runtime"),c=require("./product-card-root-BMTVhhFp.cjs"),s=require("./utils-LBH114_M.cjs"),n=require("./skeleton-root-uIgjea8b.cjs"),d=require("./skeleton-box-yQLivCqg.cjs"),t=require("./skeleton-text-CLzoDFvz.cjs");require("./checkbox-root-g9HcYZCP.cjs");function l({className:r,...o}){const{aspectRatio:a}=c.useProductCard();return e.jsxs(n.SkeletonRoot,{className:s.cn(r),"data-slot":"product-card-skeleton",...o,children:[e.jsx(d.SkeletonBox,{className:s.cn("rounded-[var(--product-card-border-radius,1rem)]",{"5:6":"aspect-[5/6]","3:4":"aspect-[3/4]","1:1":"aspect-square"}[a])}),e.jsx("div",{className:"mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row",children:e.jsxs("div",{className:"flex-1 text-sm @[16rem]:text-base",children:[e.jsx(t.SkeletonText,{characterCount:10,className:"rounded"}),e.jsx(t.SkeletonText,{characterCount:8,className:"rounded"}),e.jsx(t.SkeletonText,{characterCount:6,className:"rounded"})]})})]})}exports.ProductCardSkeleton=l;
2
+ //# sourceMappingURL=product-card-skeleton-CCQkDMNl.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card-skeleton-CCQkDMNl.cjs","sources":["../src/components/product-card/primitives/product-card-skeleton.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport * as SkeletonPrimitive from '@/components/skeleton';\nimport { cn } from '@/lib';\n\nexport type ProductCardSkeletonProps = ComponentProps<typeof SkeletonPrimitive.Root>;\n\nexport function ProductCardSkeleton({ className, ...props }: ProductCardSkeletonProps) {\n const { aspectRatio } = useProductCard();\n\n return (\n <SkeletonPrimitive.Root className={cn(className)} data-slot=\"product-card-skeleton\" {...props}>\n <SkeletonPrimitive.Box\n className={cn(\n 'rounded-[var(--product-card-border-radius,1rem)]',\n {\n '5:6': 'aspect-[5/6]',\n '3:4': 'aspect-[3/4]',\n '1:1': 'aspect-square',\n }[aspectRatio],\n )}\n />\n <div className=\"mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row\">\n <div className=\"flex-1 text-sm @[16rem]:text-base\">\n <SkeletonPrimitive.Text characterCount={10} className=\"rounded\" />\n <SkeletonPrimitive.Text characterCount={8} className=\"rounded\" />\n <SkeletonPrimitive.Text characterCount={6} className=\"rounded\" />\n </div>\n </div>\n </SkeletonPrimitive.Root>\n );\n}\n"],"names":["ProductCardSkeleton","className","props","aspectRatio","useProductCard","jsxs","SkeletonPrimitive.Root","cn","jsx","SkeletonPrimitive.Box","SkeletonPrimitive.Text"],"mappings":"uSAQO,SAASA,EAAoB,CAAE,UAAAC,EAAW,GAAGC,GAAmC,CACrF,KAAM,CAAE,YAAAC,CAAA,EAAgBC,iBAAA,EAExB,OACEC,OAACC,EAAAA,aAAA,CAAuB,UAAWC,EAAAA,GAAGN,CAAS,EAAG,YAAU,wBAAyB,GAAGC,EACtF,SAAA,CAAAM,EAAAA,IAACC,EAAAA,YAAA,CACC,UAAWF,EAAAA,GACT,mDACA,CACE,MAAO,eACP,MAAO,eACP,MAAO,eAAA,EACPJ,CAAW,CAAA,CACf,CAAA,QAED,MAAA,CAAI,UAAU,4EACb,SAAAE,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACb,SAAA,CAAAG,EAAAA,IAACE,EAAAA,aAAA,CAAuB,eAAgB,GAAI,UAAU,UAAU,QAC/DA,EAAAA,aAAA,CAAuB,eAAgB,EAAG,UAAU,UAAU,QAC9DA,EAAAA,aAAA,CAAuB,eAAgB,EAAG,UAAU,SAAA,CAAU,CAAA,CAAA,CACjE,CAAA,CACF,CAAA,EACF,CAEJ"}
@@ -0,0 +1,34 @@
1
+ import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
+ import { u as m } from "./product-card-root-4Xz4-pdL.js";
3
+ import { c as t } from "./utils-BOGlfttm.js";
4
+ import { S as d } from "./skeleton-root-DHW28LoV.js";
5
+ import { S as l } from "./skeleton-box-BSzQ5f9Y.js";
6
+ import { S as r } from "./skeleton-text-Dd4GbnEz.js";
7
+ import "./checkbox-root-B9W2Y8rY.js";
8
+ function S({ className: o, ...s }) {
9
+ const { aspectRatio: c } = m();
10
+ return /* @__PURE__ */ a(d, { className: t(o), "data-slot": "product-card-skeleton", ...s, children: [
11
+ /* @__PURE__ */ e(
12
+ l,
13
+ {
14
+ className: t(
15
+ "rounded-[var(--product-card-border-radius,1rem)]",
16
+ {
17
+ "5:6": "aspect-[5/6]",
18
+ "3:4": "aspect-[3/4]",
19
+ "1:1": "aspect-square"
20
+ }[c]
21
+ )
22
+ }
23
+ ),
24
+ /* @__PURE__ */ e("div", { className: "mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row", children: /* @__PURE__ */ a("div", { className: "flex-1 text-sm @[16rem]:text-base", children: [
25
+ /* @__PURE__ */ e(r, { characterCount: 10, className: "rounded" }),
26
+ /* @__PURE__ */ e(r, { characterCount: 8, className: "rounded" }),
27
+ /* @__PURE__ */ e(r, { characterCount: 6, className: "rounded" })
28
+ ] }) })
29
+ ] });
30
+ }
31
+ export {
32
+ S as P
33
+ };
34
+ //# sourceMappingURL=product-card-skeleton-Dkqf-bfA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"product-card-skeleton-Dkqf-bfA.js","sources":["../src/components/product-card/primitives/product-card-skeleton.tsx"],"sourcesContent":["import { ComponentProps } from 'react';\n\nimport { useProductCard } from '@/components/product-card';\nimport * as SkeletonPrimitive from '@/components/skeleton';\nimport { cn } from '@/lib';\n\nexport type ProductCardSkeletonProps = ComponentProps<typeof SkeletonPrimitive.Root>;\n\nexport function ProductCardSkeleton({ className, ...props }: ProductCardSkeletonProps) {\n const { aspectRatio } = useProductCard();\n\n return (\n <SkeletonPrimitive.Root className={cn(className)} data-slot=\"product-card-skeleton\" {...props}>\n <SkeletonPrimitive.Box\n className={cn(\n 'rounded-[var(--product-card-border-radius,1rem)]',\n {\n '5:6': 'aspect-[5/6]',\n '3:4': 'aspect-[3/4]',\n '1:1': 'aspect-square',\n }[aspectRatio],\n )}\n />\n <div className=\"mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row\">\n <div className=\"flex-1 text-sm @[16rem]:text-base\">\n <SkeletonPrimitive.Text characterCount={10} className=\"rounded\" />\n <SkeletonPrimitive.Text characterCount={8} className=\"rounded\" />\n <SkeletonPrimitive.Text characterCount={6} className=\"rounded\" />\n </div>\n </div>\n </SkeletonPrimitive.Root>\n );\n}\n"],"names":["ProductCardSkeleton","className","props","aspectRatio","useProductCard","jsxs","SkeletonPrimitive.Root","cn","jsx","SkeletonPrimitive.Box","SkeletonPrimitive.Text"],"mappings":";;;;;;;AAQO,SAASA,EAAoB,EAAE,WAAAC,GAAW,GAAGC,KAAmC;AACrF,QAAM,EAAE,aAAAC,EAAA,IAAgBC,EAAA;AAExB,SACE,gBAAAC,EAACC,GAAA,EAAuB,WAAWC,EAAGN,CAAS,GAAG,aAAU,yBAAyB,GAAGC,GACtF,UAAA;AAAA,IAAA,gBAAAM;AAAA,MAACC;AAAAA,MAAA;AAAA,QACC,WAAWF;AAAA,UACT;AAAA,UACA;AAAA,YACE,OAAO;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,UAAA,EACPJ,CAAW;AAAA,QAAA;AAAA,MACf;AAAA,IAAA;AAAA,sBAED,OAAA,EAAI,WAAU,6EACb,UAAA,gBAAAE,EAAC,OAAA,EAAI,WAAU,qCACb,UAAA;AAAA,MAAA,gBAAAG,EAACE,GAAA,EAAuB,gBAAgB,IAAI,WAAU,WAAU;AAAA,wBAC/DA,GAAA,EAAuB,gBAAgB,GAAG,WAAU,WAAU;AAAA,wBAC9DA,GAAA,EAAuB,gBAAgB,GAAG,WAAU,UAAA,CAAU;AAAA,IAAA,EAAA,CACjE,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),d=require("react"),c=require("./utils-LBH114_M.cjs"),i=require("./checkbox-indicator-BgXRGvAh.cjs"),f=require("./index-DGaxX11V.cjs"),m=require("./price-CdK2ye4P.cjs"),g=require("./skeleton-root-uIgjea8b.cjs"),v=require("./skeleton-box-yQLivCqg.cjs"),u=require("./skeleton-text-CLzoDFvz.cjs"),k=require("./check-DJilMvC6.cjs"),C=require("./index-Bw7_huW8.cjs");function j(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const r in t)if(r!=="default"){const o=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(e,r,o.get?o:{enumerable:!0,get:()=>t[r]})}}return e.default=t,Object.freeze(e)}const P=j(d),x=d.createContext(void 0);function N({className:t,children:e,as:r,colorScheme:o="light",aspectRatio:s="5:6",...l}){const b=r??"article",h=d.useMemo(()=>({colorScheme:o,aspectRatio:s}),[o,s]);return a.jsx(x.Provider,{value:h,children:a.jsx(b,{className:c.cn("group w-full max-w-md font-[var(--product-card-font-family,var(--font-family-body))] @container",t),"data-slot":"product-card-root",...l,children:e})})}function n(){const t=d.use(x);if(t===void 0)throw new Error("useProductCard must be used within an ProductCardRoot");return t}function S({className:t,children:e,...r}){return a.jsx("div",{className:c.cn("relative",t),"data-slot":"product-card-content",...r,children:e})}function w({className:t,children:e,...r}){return a.jsx("div",{className:c.cn("relative",t),"data-slot":"product-card-preview",...r,children:e})}function y({className:t,children:e,...r}){const{aspectRatio:o,colorScheme:s}=n();return a.jsx("div",{className:c.cn("relative overflow-hidden rounded-[var(--product-card-border-radius,1rem)]",{"5:6":"aspect-[5/6]","3:4":"aspect-[3/4]","1:1":"aspect-square"}[o],{light:"bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]",dark:"bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]"}[s],t),"data-slot":"product-card-thumbnail",...r,children:e})}function q({className:t,children:e,asChild:r=!1,...o}){const{colorScheme:s}=n(),l=r?f.Slot:"img";return a.jsx(l,{className:c.cn("h-full w-full scale-100 select-none object-cover transition-transform duration-500 ease-out group-hover:scale-110",{light:"bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]",dark:"bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]"}[s],t),"data-slot":"product-card-image",...o})}function R({className:t,children:e,...r}){return a.jsx(m.Badge,{className:c.cn("absolute left-3 top-3",t),"data-slot":"product-card-badge",shape:"rounded",...r,children:e})}function _({className:t,children:e,...r}){const{colorScheme:o}=n();return a.jsx("div",{className:c.cn("break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out group-hover:scale-105",{light:"[color:color-mix(in_oklab,hsl(var(--foreground))_30%,transparent)]",dark:"[color:color-mix(in_oklab,hsl(var(--background))_30%,transparent)]"}[o],t),"data-slot":"product-card-fallback",...r,children:e})}function T({asChild:t=!1,className:e,...r}){const{colorScheme:o}=n(),s=t?f.Slot:"a";return a.jsx(s,{className:c.cn("absolute inset-0 rounded-[var(--product-card-border-radius,1rem)] focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--product-card-focus,hsl(var(--primary)))] focus-visible:ring-offset-4",{light:"ring-offset-[var(--product-card-light-offset,hsl(var(--background)))]",dark:"ring-offset-[var(--product-card-dark-offset,hsl(var(--foreground)))]"}[o],e),"data-slot":"product-card-link",...r})}function D({children:t,className:e,...r}){return a.jsx("div",{className:c.cn("mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row",e),"data-slot":"product-card-details",...r,children:t})}function L({children:t,className:e,...r}){return a.jsx("div",{className:c.cn("relative flex-1 text-sm @[16rem]:text-base",e),"data-slot":"product-card-header",...r,children:t})}function M({className:t,children:e,...r}){const{colorScheme:o}=n();return a.jsx("h3",{className:c.cn("block font-semibold",{light:"text-[var(--product-card-light-title,hsl(var(--foreground)))]",dark:"text-[var(--product-card-dark-title,hsl(var(--background)))]"}[o]),"data-slot":"product-card-title",...r,children:e})}function O({children:t,className:e,...r}){const{colorScheme:o}=n();return a.jsx("span",{className:c.cn("block text-sm font-normal",{light:"text-[var(--product-card-light-subtitle,color-mix(in_oklab,hsl(var(--foreground))_75%,transparent))]",dark:"text-[var(--product-card-dark-subtitle,color-mix(in_oklab,hsl(var(--background))_75%,transparent))]"}[o],e),"data-slot":"product-card-subtitle",...r,children:t})}function B({className:t,price:e,...r}){const{colorScheme:o}=n();return a.jsx(m.Price,{className:c.cn("mt-2",t),colorScheme:o,"data-slot":"product-card-price",price:e,...r})}function I({className:t,...e}){const{aspectRatio:r}=n();return a.jsxs(g.SkeletonRoot,{className:c.cn(t),"data-slot":"product-card-skeleton",...e,children:[a.jsx(v.SkeletonBox,{className:c.cn("rounded-[var(--product-card-border-radius,1rem)]",{"5:6":"aspect-[5/6]","3:4":"aspect-[3/4]","1:1":"aspect-square"}[r])}),a.jsx("div",{className:"mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row",children:a.jsxs("div",{className:"flex-1 text-sm @[16rem]:text-base",children:[a.jsx(u.SkeletonText,{characterCount:10,className:"rounded"}),a.jsx(u.SkeletonText,{characterCount:8,className:"rounded"}),a.jsx(u.SkeletonText,{characterCount:6,className:"rounded"})]})})]})}function E({className:t,children:e,...r}){return a.jsx("div",{className:c.cn("font-(family-name:--checkbox-font-family,var(--font-family-body)) flex shrink-0 items-center gap-2",t),"data-slot":"product-card-compare",...r,children:e})}function F({className:t,colorScheme:e="light",...r}){return a.jsx(i.CheckboxRoot,{className:t,colorScheme:e,...r,children:a.jsx(i.CheckboxIndicator,{children:a.jsx(k.default,{className:"h-4 w-4",color:"currentColor"})})})}function H({className:t,...e}){return a.jsx(F,{className:c.cn(t),"data-slot":"product-card-checkbox",...e})}var $="Label",p=P.forwardRef((t,e)=>a.jsx(C.Primitive.label,{...t,ref:e,onMouseDown:r=>{r.target.closest("button, input, select, textarea")||(t.onMouseDown?.(r),!r.defaultPrevented&&r.detail>1&&r.preventDefault())}}));p.displayName=$;var z=p;function A({className:t,children:e,colorScheme:r="light",...o}){return a.jsx(z,{className:c.cn("cursor-pointer text-sm peer-disabled:cursor-not-allowed peer-disabled:opacity-50",{light:"text-[var(--checkbox-light-label,hsl(var(--foreground)))]",dark:"text-[var(--checkbox-dark-label,hsl(var(--background)))]"}[r]),"data-slot":"label",...o,children:e})}function V({className:t,children:e,...r}){const{colorScheme:o}=n();return a.jsx(A,{className:c.cn(t),colorScheme:o,"data-slot":"product-card-label",...r,children:e})}exports.Badge=R;exports.Checkbox=H;exports.Compare=E;exports.Content=S;exports.Details=D;exports.Fallback=_;exports.Header=L;exports.Image=q;exports.Label=V;exports.Link=T;exports.Preview=w;exports.Price=B;exports.Root=N;exports.Skeleton=I;exports.Subtitle=O;exports.Thumbnail=y;exports.Title=M;exports.useProductCard=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./product-card-root-BMTVhhFp.cjs"),a=require("react/jsx-runtime"),c=require("./utils-LBH114_M.cjs"),r=require("./product-card-label-D43AXtRL.cjs"),u=require("./product-card-skeleton-CCQkDMNl.cjs");function C({className:e,children:d,...o}){return a.jsx("div",{className:c.cn("relative",e),"data-slot":"product-card-content",...o,children:d})}exports.Root=t.ProductCardRoot;exports.useProductCard=t.useProductCard;exports.Badge=r.ProductCardBadge;exports.Checkbox=r.ProductCardCheckbox;exports.Compare=r.ProductCardCompare;exports.Details=r.ProductCardDetails;exports.Fallback=r.ProductCardFallback;exports.Header=r.ProductCardHeader;exports.Image=r.ProductCardImage;exports.Label=r.ProductCardLabel;exports.Link=r.ProductCardLink;exports.Preview=r.ProductCardPreview;exports.Price=r.ProductCardPrice;exports.Subtitle=r.ProductCardSubtitle;exports.Thumbnail=r.ProductCardThumbnail;exports.Title=r.ProductCardTitle;exports.Skeleton=u.ProductCardSkeleton;exports.Content=C;
2
2
  //# sourceMappingURL=product-card.cjs.map