commerce-toolkit 0.5.0 → 0.7.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 (174) hide show
  1. package/dist/accordion-trigger-CpTcclGS.cjs +2 -0
  2. package/dist/accordion-trigger-CpTcclGS.cjs.map +1 -0
  3. package/dist/accordion-trigger-DFuN29lS.js +455 -0
  4. package/dist/accordion-trigger-DFuN29lS.js.map +1 -0
  5. package/dist/accordion.cjs +1 -1
  6. package/dist/accordion.js +7 -8
  7. package/dist/{alert-dismiss-EYWAId7r.js → alert-dismiss-B7_uKkyV.js} +2 -2
  8. package/dist/{alert-dismiss-EYWAId7r.js.map → alert-dismiss-B7_uKkyV.js.map} +1 -1
  9. package/dist/{alert-dismiss-m6lm9pLf.cjs → alert-dismiss-BO3hXWMt.cjs} +2 -2
  10. package/dist/{alert-dismiss-m6lm9pLf.cjs.map → alert-dismiss-BO3hXWMt.cjs.map} +1 -1
  11. package/dist/alert.cjs +1 -1
  12. package/dist/alert.js +1 -1
  13. package/dist/blog-post-card-author-CBXo2FqS.cjs +2 -0
  14. package/dist/blog-post-card-author-CBXo2FqS.cjs.map +1 -0
  15. package/dist/{blog-post-card-author-C1GuND4f.js → blog-post-card-author-VkGle9g8.js} +30 -24
  16. package/dist/blog-post-card-author-VkGle9g8.js.map +1 -0
  17. package/dist/blog-post-card.cjs +1 -1
  18. package/dist/blog-post-card.cjs.map +1 -1
  19. package/dist/blog-post-card.js +28 -34
  20. package/dist/blog-post-card.js.map +1 -1
  21. package/dist/button-BgvMm9T3.cjs +7 -0
  22. package/dist/button-BgvMm9T3.cjs.map +1 -0
  23. package/dist/{button-W0_PtryU.js → button-C0iR-l2_.js} +2 -2
  24. package/dist/button-C0iR-l2_.js.map +1 -0
  25. package/dist/carousel-next-C6jpZTlN.js +1480 -0
  26. package/dist/carousel-next-C6jpZTlN.js.map +1 -0
  27. package/dist/carousel-next-DEHDO98_.cjs +2 -0
  28. package/dist/{carousel-next-BGIZglEF.cjs.map → carousel-next-DEHDO98_.cjs.map} +1 -1
  29. package/dist/carousel.cjs +1 -1
  30. package/dist/carousel.js +1 -1
  31. package/dist/category-card-link-BXoWFETv.cjs +2 -0
  32. package/dist/category-card-link-BXoWFETv.cjs.map +1 -0
  33. package/dist/category-card-link-D85RfMpf.js +186 -0
  34. package/dist/category-card-link-D85RfMpf.js.map +1 -0
  35. package/dist/category-card.cjs +1 -1
  36. package/dist/category-card.cjs.map +1 -1
  37. package/dist/category-card.js +23 -27
  38. package/dist/category-card.js.map +1 -1
  39. package/dist/compare-card.cjs +1 -1
  40. package/dist/compare-card.js +2 -2
  41. package/dist/components/accordion/accordion.d.ts +1 -2
  42. package/dist/components/accordion/accordion.d.ts.map +1 -1
  43. package/dist/components/accordion/primitives/accordion-chevron.d.ts.map +1 -1
  44. package/dist/components/accordion/primitives/accordion-content-area.d.ts.map +1 -1
  45. package/dist/components/accordion/primitives/accordion-item.d.ts.map +1 -1
  46. package/dist/components/accordion/primitives/accordion-root.d.ts +2 -10
  47. package/dist/components/accordion/primitives/accordion-root.d.ts.map +1 -1
  48. package/dist/components/accordion/primitives/accordion-title.d.ts.map +1 -1
  49. package/dist/components/accordion/primitives.d.ts +1 -1
  50. package/dist/components/accordion/primitives.d.ts.map +1 -1
  51. package/dist/components/blog-post-card/blog-post-card.d.ts +2 -1
  52. package/dist/components/blog-post-card/blog-post-card.d.ts.map +1 -1
  53. package/dist/components/blog-post-card/primitives/blog-post-card-root.d.ts +2 -1
  54. package/dist/components/blog-post-card/primitives/blog-post-card-root.d.ts.map +1 -1
  55. package/dist/components/blog-post-card/primitives/blog-post-card-skeleton.d.ts +2 -4
  56. package/dist/components/blog-post-card/primitives/blog-post-card-skeleton.d.ts.map +1 -1
  57. package/dist/components/blog-post-card/primitives/blog-post-card-thumbnail.d.ts.map +1 -1
  58. package/dist/components/calendar/calendar.d.ts +13 -24
  59. package/dist/components/calendar/calendar.d.ts.map +1 -1
  60. package/dist/components/carousel/primitives/carousel-controls.d.ts.map +1 -1
  61. package/dist/components/carousel/primitives/carousel-root.d.ts +1 -3
  62. package/dist/components/carousel/primitives/carousel-root.d.ts.map +1 -1
  63. package/dist/components/carousel/primitives/carousel-scrollbar.d.ts.map +1 -1
  64. package/dist/components/category-card/category-card.d.ts +2 -4
  65. package/dist/components/category-card/category-card.d.ts.map +1 -1
  66. package/dist/components/category-card/primitives/category-card-fallback.d.ts.map +1 -1
  67. package/dist/components/category-card/primitives/category-card-icon.d.ts.map +1 -1
  68. package/dist/components/category-card/primitives/category-card-image.d.ts.map +1 -1
  69. package/dist/components/category-card/primitives/category-card-link.d.ts.map +1 -1
  70. package/dist/components/category-card/primitives/category-card-overlay.d.ts.map +1 -1
  71. package/dist/components/category-card/primitives/category-card-root.d.ts +2 -14
  72. package/dist/components/category-card/primitives/category-card-root.d.ts.map +1 -1
  73. package/dist/components/category-card/primitives/category-card-skeleton.d.ts.map +1 -1
  74. package/dist/components/category-card/primitives/category-card-thumbnail.d.ts.map +1 -1
  75. package/dist/components/category-card/primitives/category-card-title.d.ts.map +1 -1
  76. package/dist/components/category-card/primitives.d.ts +1 -1
  77. package/dist/components/category-card/primitives.d.ts.map +1 -1
  78. package/dist/components/price/price.d.ts +1 -1
  79. package/dist/components/price/price.d.ts.map +1 -1
  80. package/dist/components/price/primitives/price-root.d.ts +2 -4
  81. package/dist/components/price/primitives/price-root.d.ts.map +1 -1
  82. package/dist/components/product-card/primitives/product-card-checkbox.d.ts.map +1 -1
  83. package/dist/components/product-card/primitives/product-card-fallback.d.ts.map +1 -1
  84. package/dist/components/product-card/primitives/product-card-image.d.ts.map +1 -1
  85. package/dist/components/product-card/primitives/product-card-label.d.ts.map +1 -1
  86. package/dist/components/product-card/primitives/product-card-link.d.ts.map +1 -1
  87. package/dist/components/product-card/primitives/product-card-price.d.ts.map +1 -1
  88. package/dist/components/product-card/primitives/product-card-root.d.ts +2 -10
  89. package/dist/components/product-card/primitives/product-card-root.d.ts.map +1 -1
  90. package/dist/components/product-card/primitives/product-card-skeleton.d.ts.map +1 -1
  91. package/dist/components/product-card/primitives/product-card-subtitle.d.ts.map +1 -1
  92. package/dist/components/product-card/primitives/product-card-thumbnail.d.ts.map +1 -1
  93. package/dist/components/product-card/primitives/product-card-title.d.ts.map +1 -1
  94. package/dist/components/product-card/primitives.d.ts +1 -1
  95. package/dist/components/product-card/primitives.d.ts.map +1 -1
  96. package/dist/components/product-card/product-card.d.ts +2 -3
  97. package/dist/components/product-card/product-card.d.ts.map +1 -1
  98. package/dist/components/range-input/range-input.d.ts +0 -1
  99. package/dist/components/range-input/range-input.d.ts.map +1 -1
  100. package/dist/{dropdown-menu-node-CAwgTGIA.cjs → dropdown-menu-node-BDXDWc1l.cjs} +3 -3
  101. package/dist/{dropdown-menu-node-CAwgTGIA.cjs.map → dropdown-menu-node-BDXDWc1l.cjs.map} +1 -1
  102. package/dist/{dropdown-menu-node-x6qIrxA6.js → dropdown-menu-node-OJHgOERz.js} +2 -1
  103. package/dist/{dropdown-menu-node-x6qIrxA6.js.map → dropdown-menu-node-OJHgOERz.js.map} +1 -1
  104. package/dist/dropdown-menu.cjs +1 -1
  105. package/dist/dropdown-menu.js +1 -1
  106. package/dist/file-input.cjs +1 -1
  107. package/dist/file-input.js +1 -1
  108. package/dist/index.cjs +12 -7
  109. package/dist/index.cjs.map +1 -1
  110. package/dist/index.js +1525 -1417
  111. package/dist/index.js.map +1 -1
  112. package/dist/{price-strike-Ciakdz8c.js → price-strike-D9Pzzzkr.js} +9 -18
  113. package/dist/price-strike-D9Pzzzkr.js.map +1 -0
  114. package/dist/price-strike-DqOP577f.cjs +2 -0
  115. package/dist/price-strike-DqOP577f.cjs.map +1 -0
  116. package/dist/price.cjs +1 -1
  117. package/dist/price.js +1 -1
  118. package/dist/product-card-label-CP4yzMhB.js +244 -0
  119. package/dist/product-card-label-CP4yzMhB.js.map +1 -0
  120. package/dist/product-card-label-DHKOJFTo.cjs +2 -0
  121. package/dist/product-card-label-DHKOJFTo.cjs.map +1 -0
  122. package/dist/product-card-root-BnBOoYFY.js +27 -0
  123. package/dist/product-card-root-BnBOoYFY.js.map +1 -0
  124. package/dist/product-card-root-DNqlSx52.cjs +2 -0
  125. package/dist/product-card-root-DNqlSx52.cjs.map +1 -0
  126. package/dist/product-card-skeleton-BgN1OCwY.cjs +2 -0
  127. package/dist/product-card-skeleton-BgN1OCwY.cjs.map +1 -0
  128. package/dist/product-card-skeleton-C-xXJrKi.js +29 -0
  129. package/dist/product-card-skeleton-C-xXJrKi.js.map +1 -0
  130. package/dist/product-card.cjs +1 -1
  131. package/dist/product-card.js +19 -20
  132. package/dist/{reveal-trigger-ScuufoFq.js → reveal-trigger-DT_deyzM.js} +2 -2
  133. package/dist/{reveal-trigger-ScuufoFq.js.map → reveal-trigger-DT_deyzM.js.map} +1 -1
  134. package/dist/{reveal-trigger-CCTnO9e2.cjs → reveal-trigger-ntEvLci1.cjs} +2 -2
  135. package/dist/{reveal-trigger-CCTnO9e2.cjs.map → reveal-trigger-ntEvLci1.cjs.map} +1 -1
  136. package/dist/reveal.cjs +1 -1
  137. package/dist/reveal.js +1 -1
  138. package/package.json +1 -1
  139. package/dist/accordion-trigger-Bj1Laf6l.cjs +0 -2
  140. package/dist/accordion-trigger-Bj1Laf6l.cjs.map +0 -1
  141. package/dist/accordion-trigger-Cdkd0tWD.js +0 -494
  142. package/dist/accordion-trigger-Cdkd0tWD.js.map +0 -1
  143. package/dist/blog-post-card-author-B55DKFff.cjs +0 -2
  144. package/dist/blog-post-card-author-B55DKFff.cjs.map +0 -1
  145. package/dist/blog-post-card-author-C1GuND4f.js.map +0 -1
  146. package/dist/button-W0_PtryU.js.map +0 -1
  147. package/dist/button-ibzOCImJ.cjs +0 -7
  148. package/dist/button-ibzOCImJ.cjs.map +0 -1
  149. package/dist/carousel-next-BGIZglEF.cjs +0 -2
  150. package/dist/carousel-next-BzKOs3K-.js +0 -1495
  151. package/dist/carousel-next-BzKOs3K-.js.map +0 -1
  152. package/dist/category-card-link-BSmQDScF.cjs +0 -2
  153. package/dist/category-card-link-BSmQDScF.cjs.map +0 -1
  154. package/dist/category-card-link-mgtggmo_.js +0 -211
  155. package/dist/category-card-link-mgtggmo_.js.map +0 -1
  156. package/dist/chevron-down-BDpc8q6H.cjs +0 -7
  157. package/dist/chevron-down-BDpc8q6H.cjs.map +0 -1
  158. package/dist/chevron-down-CjW8zgR8.js +0 -13
  159. package/dist/chevron-down-CjW8zgR8.js.map +0 -1
  160. package/dist/price-strike-BTE4S5Na.cjs +0 -2
  161. package/dist/price-strike-BTE4S5Na.cjs.map +0 -1
  162. package/dist/price-strike-Ciakdz8c.js.map +0 -1
  163. package/dist/product-card-label-BQeJxNcX.cjs +0 -2
  164. package/dist/product-card-label-BQeJxNcX.cjs.map +0 -1
  165. package/dist/product-card-label-C6D-fYjj.js +0 -285
  166. package/dist/product-card-label-C6D-fYjj.js.map +0 -1
  167. package/dist/product-card-root-BGUa-vQ_.js +0 -43
  168. package/dist/product-card-root-BGUa-vQ_.js.map +0 -1
  169. package/dist/product-card-root-Q5lwSPd8.cjs +0 -2
  170. package/dist/product-card-root-Q5lwSPd8.cjs.map +0 -1
  171. package/dist/product-card-skeleton-B8DGleVJ.js +0 -33
  172. package/dist/product-card-skeleton-B8DGleVJ.js.map +0 -1
  173. package/dist/product-card-skeleton-CCbWpq16.cjs +0 -2
  174. package/dist/product-card-skeleton-CCbWpq16.cjs.map +0 -1
@@ -1,2 +0,0 @@
1
- "use strict";const i=require("react/jsx-runtime"),a=require("./utils-DoxiiusW.cjs");function s({className:t,colorScheme:e="light",children:r,...c}){return i.jsx("div",{className:a.cn("text-base font-semibold",{light:"text-[var(--price-light-text,hsl(var(--foreground)))]",dark:"text-[var(--price-dark-text,hsl(var(--background)))]"}[e],t),"data-slot":"price-root",...c,children:r})}function n({className:t,children:e,...r}){return i.jsx("span",{className:a.cn(t),"data-slot":"price-default",...r,children:e})}function o({className:t,children:e,...r}){return i.jsx("span",{className:a.cn("font-normal line-through opacity-50",t),"data-slot":"price-strike",...r,children:e})}exports.PriceDefault=n;exports.PriceRoot=s;exports.PriceStrike=o;
2
- //# sourceMappingURL=price-strike-BTE4S5Na.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"price-strike-BTE4S5Na.cjs","sources":["../src/components/price/primitives/price-root.tsx","../src/components/price/primitives/price-default.tsx","../src/components/price/primitives/price-strike.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type PriceRootProps = ComponentProps<'div'> & {\n colorScheme?: 'light' | 'dark';\n};\n\nexport function PriceRoot({\n className,\n colorScheme = 'light',\n children,\n ...props\n}: PriceRootProps) {\n return (\n <div\n className={cn(\n 'text-base font-semibold',\n {\n light: 'text-[var(--price-light-text,hsl(var(--foreground)))]',\n dark: 'text-[var(--price-dark-text,hsl(var(--background)))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"price-root\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type PriceDefaultProps = ComponentProps<'span'>;\n\nexport function PriceDefault({ className, children, ...props }: PriceDefaultProps) {\n return (\n <span className={cn(className)} data-slot=\"price-default\" {...props}>\n {children}\n </span>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type PriceStrikeProps = ComponentProps<'span'>;\n\nexport function PriceStrike({ className, children, ...props }: PriceStrikeProps) {\n return (\n <span\n className={cn('font-normal line-through opacity-50', className)}\n data-slot=\"price-strike\"\n {...props}\n >\n {children}\n </span>\n );\n}\n"],"names":["PriceRoot","className","colorScheme","children","props","jsx","cn","PriceDefault","PriceStrike"],"mappings":"oFAQO,SAASA,EAAU,CACxB,UAAAC,EACA,YAAAC,EAAc,QACd,SAAAC,EACA,GAAGC,CACL,EAAmB,CACjB,OACEC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,0BACA,CACE,MAAO,wDACP,KAAM,sDAAA,EACNJ,CAAW,EACbD,CAAA,EAEF,YAAU,aACT,GAAGG,EAEH,SAAAD,CAAA,CAAA,CAGP,CCxBO,SAASI,EAAa,CAAE,UAAAN,EAAW,SAAAE,EAAU,GAAGC,GAA4B,CACjF,OACEC,MAAC,OAAA,CAAK,UAAWC,EAAAA,GAAGL,CAAS,EAAG,YAAU,gBAAiB,GAAGG,EAC3D,SAAAD,CAAA,CACH,CAEJ,CCNO,SAASK,EAAY,CAAE,UAAAP,EAAW,SAAAE,EAAU,GAAGC,GAA2B,CAC/E,OACEC,EAAAA,IAAC,OAAA,CACC,UAAWC,EAAAA,GAAG,sCAAuCL,CAAS,EAC9D,YAAU,eACT,GAAGG,EAEH,SAAAD,CAAA,CAAA,CAGP"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"price-strike-Ciakdz8c.js","sources":["../src/components/price/primitives/price-root.tsx","../src/components/price/primitives/price-default.tsx","../src/components/price/primitives/price-strike.tsx"],"sourcesContent":["import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type PriceRootProps = ComponentProps<'div'> & {\n colorScheme?: 'light' | 'dark';\n};\n\nexport function PriceRoot({\n className,\n colorScheme = 'light',\n children,\n ...props\n}: PriceRootProps) {\n return (\n <div\n className={cn(\n 'text-base font-semibold',\n {\n light: 'text-[var(--price-light-text,hsl(var(--foreground)))]',\n dark: 'text-[var(--price-dark-text,hsl(var(--background)))]',\n }[colorScheme],\n className,\n )}\n data-slot=\"price-root\"\n {...props}\n >\n {children}\n </div>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type PriceDefaultProps = ComponentProps<'span'>;\n\nexport function PriceDefault({ className, children, ...props }: PriceDefaultProps) {\n return (\n <span className={cn(className)} data-slot=\"price-default\" {...props}>\n {children}\n </span>\n );\n}\n","import type { ComponentProps } from 'react';\n\nimport { cn } from '@/lib';\n\nexport type PriceStrikeProps = ComponentProps<'span'>;\n\nexport function PriceStrike({ className, children, ...props }: PriceStrikeProps) {\n return (\n <span\n className={cn('font-normal line-through opacity-50', className)}\n data-slot=\"price-strike\"\n {...props}\n >\n {children}\n </span>\n );\n}\n"],"names":["PriceRoot","className","colorScheme","children","props","jsx","cn","PriceDefault","PriceStrike"],"mappings":";;AAQO,SAASA,EAAU;AAAA,EACxB,WAAAC;AAAA,EACA,aAAAC,IAAc;AAAA,EACd,UAAAC;AAAA,EACA,GAAGC;AACL,GAAmB;AACjB,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,QAAA,EACNJ,CAAW;AAAA,QACbD;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGG;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;ACxBO,SAASI,EAAa,EAAE,WAAAN,GAAW,UAAAE,GAAU,GAAGC,KAA4B;AACjF,SACE,gBAAAC,EAAC,QAAA,EAAK,WAAWC,EAAGL,CAAS,GAAG,aAAU,iBAAiB,GAAGG,GAC3D,UAAAD,EAAA,CACH;AAEJ;ACNO,SAASK,EAAY,EAAE,WAAAP,GAAW,UAAAE,GAAU,GAAGC,KAA2B;AAC/E,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,uCAAuCL,CAAS;AAAA,MAC9D,aAAU;AAAA,MACT,GAAGG;AAAA,MAEH,UAAAD;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,2 +0,0 @@
1
- "use strict";const o=require("react/jsx-runtime"),c=require("./utils-DoxiiusW.cjs"),d=require("./product-card-root-Q5lwSPd8.cjs"),u=require("./index-DGaxX11V.cjs"),s=require("./price-strike-BTE4S5Na.cjs"),l=require("./checkbox-indicator-DVkOzOV6.cjs"),m=require("./check-DJilMvC6.cjs"),f=require("./label-CP55xclp.cjs");function i({children:a,shape:t="rounded",className:r,variant:e="primary",...n}){return o.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%))]"}[e],r),...n,children:a})}function h({className:a,id:t,label:r,...e}){return o.jsx(l.CheckboxRoot,{className:a,...e,children:o.jsx(l.CheckboxIndicator,{children:o.jsx(m.default,{absoluteStrokeWidth:!0,className:"h-4 w-4",color:"currentColor"})})})}function x({className:a,children:t,...r}){return o.jsx("div",{className:c.cn("relative",a),"data-slot":"product-card-preview",...r,children:t})}function v({className:a,children:t,...r}){const{aspectRatio:e,colorScheme:n}=d.useProductCard();return o.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"}[e],{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 p({className:a,children:t,asChild:r=!1,...e}){const{colorScheme:n}=d.useProductCard(),g=r?u.Slot:"img";return o.jsx(g,{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",...e})}function k({className:a,children:t,...r}){return o.jsx(i,{className:c.cn("absolute left-3 top-3",a),"data-slot":"product-card-badge",shape:"rounded",...r,children:t})}function C({className:a,children:t,...r}){const{colorScheme:e}=d.useProductCard();return o.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)]"}[e],a),"data-slot":"product-card-fallback",...r,children:t})}function P({asChild:a=!1,className:t,...r}){const{colorScheme:e}=d.useProductCard(),n=a?u.Slot:"a";return o.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)))]"}[e],t),"data-slot":"product-card-link",...r})}function j({children:a,className:t,...r}){return o.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 _({children:a,className:t,...r}){return o.jsx("div",{className:c.cn("relative flex-1 text-sm @[16rem]:text-base",t),"data-slot":"product-card-header",...r,children:a})}function y({className:a,children:t,...r}){const{colorScheme:e}=d.useProductCard();return o.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)))]"}[e]),"data-slot":"product-card-title",...r,children:t})}function N({children:a,className:t,...r}){const{colorScheme:e}=d.useProductCard();return o.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))]"}[e],t),"data-slot":"product-card-subtitle",...r,children:a})}function b({className:a,colorScheme:t="light",price:r,...e}){return o.jsxs(s.PriceRoot,{className:a,colorScheme:t,...e,children:[r.type==="range"&&o.jsxs(o.Fragment,{children:[o.jsx(s.PriceDefault,{children:r.minValue})," – ",o.jsx(s.PriceDefault,{children:r.maxValue})]}),r.type==="sale"&&o.jsxs(o.Fragment,{children:[o.jsx(s.PriceStrike,{children:r.currentValue})," ",o.jsx(s.PriceDefault,{children:r.previousValue})]}),r.type==="default"&&o.jsx(s.PriceDefault,{children:r.value})]})}function w({className:a,price:t,...r}){const{colorScheme:e}=d.useProductCard();return o.jsx(b,{className:c.cn("mt-2",a),colorScheme:e,"data-slot":"product-card-price",price:t,...r})}function S({className:a,children:t,...r}){return o.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 q({className:a,...t}){return o.jsx(h,{className:c.cn(a),"data-slot":"product-card-checkbox",...t})}function D({className:a,children:t,...r}){const{colorScheme:e}=d.useProductCard();return o.jsx(f.Label,{className:c.cn({light:"text-[var(--product-card-light-text,hsl(var(--foreground)))]",dark:"text-[var(--product-card-dark-text,hsl(var(--background)))]"}[e],a),"data-slot":"product-card-label",...r,children:t})}exports.Badge=i;exports.Checkbox=h;exports.Price=b;exports.ProductCardBadge=k;exports.ProductCardCheckbox=q;exports.ProductCardCompare=S;exports.ProductCardDetails=j;exports.ProductCardFallback=C;exports.ProductCardHeader=_;exports.ProductCardImage=p;exports.ProductCardLabel=D;exports.ProductCardLink=P;exports.ProductCardPreview=x;exports.ProductCardPrice=w;exports.ProductCardSubtitle=N;exports.ProductCardThumbnail=v;exports.ProductCardTitle=y;
2
- //# sourceMappingURL=product-card-label-BQeJxNcX.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-card-label-BQeJxNcX.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","../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 id?: string;\n label?: string;\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 * --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-font-family: var(--font-family-body);\n * }\n * ```\n */\nexport function Checkbox({ className, id, label, ...props }: CheckboxProps) {\n return (\n <CheckboxPrimitive.Root className={className} {...props}>\n <CheckboxPrimitive.Indicator>\n <Check absoluteStrokeWidth 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\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(\n {\n light: 'text-[var(--product-card-light-text,hsl(var(--foreground)))]',\n dark: 'text-[var(--product-card-dark-text,hsl(var(--background)))]',\n }[colorScheme],\n className,\n )}\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","id","label","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","Check","ProductCardPreview","ProductCardThumbnail","aspectRatio","colorScheme","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","ProductCardLabel","Label"],"mappings":"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"}
@@ -1,285 +0,0 @@
1
- import { jsx as o, jsxs as s, Fragment as i } from "react/jsx-runtime";
2
- import { c } from "./utils-CRiPKpXj.js";
3
- import { u as d } from "./product-card-root-BGUa-vQ_.js";
4
- import { S as u } from "./index-DD8W7cMj.js";
5
- import { P as m, a as l, b as f } from "./price-strike-Ciakdz8c.js";
6
- import { C as h, a as g } from "./checkbox-indicator-sO8XNm-j.js";
7
- import b from "./check-ChGAB_3v.js";
8
- import { L as p } from "./label-C2HI4Bjj.js";
9
- function v({
10
- children: a,
11
- shape: t = "rounded",
12
- className: r,
13
- variant: e = "primary",
14
- ...n
15
- }) {
16
- return /* @__PURE__ */ o(
17
- "span",
18
- {
19
- className: c(
20
- "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))]",
21
- {
22
- pill: "rounded-full",
23
- rounded: "rounded"
24
- }[t],
25
- {
26
- primary: "bg-[var(--badge-primary-background,color-mix(in_oklab,hsl(var(--primary)),white_75%))]",
27
- warning: "bg-[var(--badge-warning-background,color-mix(in_oklab,hsl(var(--warning)),white_75%))]",
28
- error: "bg-[var(--badge-error-background,color-mix(in_oklab,hsl(var(--error)),white_75%))]",
29
- success: "bg-[var(--badge-success-background,color-mix(in_oklab,hsl(var(--success)),white_75%))]",
30
- info: "bg-[var(--badge-info-background,color-mix(in_oklab,hsl(var(--info)),white_75%))]"
31
- }[e],
32
- r
33
- ),
34
- ...n,
35
- children: a
36
- }
37
- );
38
- }
39
- function k({ className: a, id: t, label: r, ...e }) {
40
- return /* @__PURE__ */ o(h, { className: a, ...e, children: /* @__PURE__ */ o(g, { children: /* @__PURE__ */ o(b, { absoluteStrokeWidth: !0, className: "h-4 w-4", color: "currentColor" }) }) });
41
- }
42
- function V({ className: a, children: t, ...r }) {
43
- return /* @__PURE__ */ o("div", { className: c("relative", a), "data-slot": "product-card-preview", ...r, children: t });
44
- }
45
- function B({ className: a, children: t, ...r }) {
46
- const { aspectRatio: e, colorScheme: n } = d();
47
- return /* @__PURE__ */ o(
48
- "div",
49
- {
50
- className: c(
51
- "relative overflow-hidden rounded-[var(--product-card-border-radius,1rem)]",
52
- {
53
- "5:6": "aspect-[5/6]",
54
- "3:4": "aspect-[3/4]",
55
- "1:1": "aspect-square"
56
- }[e],
57
- {
58
- light: "bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]",
59
- dark: "bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]"
60
- }[n],
61
- a
62
- ),
63
- "data-slot": "product-card-thumbnail",
64
- ...r,
65
- children: t
66
- }
67
- );
68
- }
69
- function R({
70
- className: a,
71
- children: t,
72
- asChild: r = !1,
73
- ...e
74
- }) {
75
- const { colorScheme: n } = d();
76
- return /* @__PURE__ */ o(
77
- r ? u : "img",
78
- {
79
- className: c(
80
- "h-full w-full scale-100 select-none object-cover transition-transform duration-500 ease-out group-hover:scale-110",
81
- {
82
- light: "bg-[var(--product-card-light-background,hsl(var(--contrast-100)))]",
83
- dark: "bg-[var(--product-card-dark-background,hsl(var(--contrast-500)))]"
84
- }[n],
85
- a
86
- ),
87
- "data-slot": "product-card-image",
88
- ...e
89
- }
90
- );
91
- }
92
- function D({ className: a, children: t, ...r }) {
93
- return /* @__PURE__ */ o(
94
- v,
95
- {
96
- className: c("absolute left-3 top-3", a),
97
- "data-slot": "product-card-badge",
98
- shape: "rounded",
99
- ...r,
100
- children: t
101
- }
102
- );
103
- }
104
- function F({ className: a, children: t, ...r }) {
105
- const { colorScheme: e } = d();
106
- return /* @__PURE__ */ o(
107
- "div",
108
- {
109
- className: c(
110
- "break-words p-4 text-4xl font-bold leading-none tracking-tight transition-transform duration-500 ease-out group-hover:scale-105",
111
- {
112
- light: "[color:color-mix(in_oklab,hsl(var(--foreground))_30%,transparent)]",
113
- dark: "[color:color-mix(in_oklab,hsl(var(--background))_30%,transparent)]"
114
- }[e],
115
- a
116
- ),
117
- "data-slot": "product-card-fallback",
118
- ...r,
119
- children: t
120
- }
121
- );
122
- }
123
- function I({ asChild: a = !1, className: t, ...r }) {
124
- const { colorScheme: e } = d();
125
- return /* @__PURE__ */ o(
126
- a ? u : "a",
127
- {
128
- className: c(
129
- "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",
130
- {
131
- light: "ring-offset-[var(--product-card-light-offset,hsl(var(--background)))]",
132
- dark: "ring-offset-[var(--product-card-dark-offset,hsl(var(--foreground)))]"
133
- }[e],
134
- t
135
- ),
136
- "data-slot": "product-card-link",
137
- ...r
138
- }
139
- );
140
- }
141
- function T({ children: a, className: t, ...r }) {
142
- return /* @__PURE__ */ o(
143
- "div",
144
- {
145
- className: c(
146
- "mt-2 flex flex-col items-start gap-x-4 gap-y-3 px-1 @xs:mt-3 @xs:flex-row",
147
- t
148
- ),
149
- "data-slot": "product-card-details",
150
- ...r,
151
- children: a
152
- }
153
- );
154
- }
155
- function q({ children: a, className: t, ...r }) {
156
- return /* @__PURE__ */ o(
157
- "div",
158
- {
159
- className: c("relative flex-1 text-sm @[16rem]:text-base", t),
160
- "data-slot": "product-card-header",
161
- ...r,
162
- children: a
163
- }
164
- );
165
- }
166
- function H({ className: a, children: t, ...r }) {
167
- const { colorScheme: e } = d();
168
- return /* @__PURE__ */ o(
169
- "h3",
170
- {
171
- className: c(
172
- "block font-semibold",
173
- {
174
- light: "text-[var(--product-card-light-title,hsl(var(--foreground)))]",
175
- dark: "text-[var(--product-card-dark-title,hsl(var(--background)))]"
176
- }[e]
177
- ),
178
- "data-slot": "product-card-title",
179
- ...r,
180
- children: t
181
- }
182
- );
183
- }
184
- function W({ children: a, className: t, ...r }) {
185
- const { colorScheme: e } = d();
186
- return /* @__PURE__ */ o(
187
- "span",
188
- {
189
- className: c(
190
- "block text-sm font-normal",
191
- {
192
- light: "text-[var(--product-card-light-subtitle,color-mix(in_oklab,hsl(var(--foreground))_75%,transparent))]",
193
- dark: "text-[var(--product-card-dark-subtitle,color-mix(in_oklab,hsl(var(--background))_75%,transparent))]"
194
- }[e],
195
- t
196
- ),
197
- "data-slot": "product-card-subtitle",
198
- ...r,
199
- children: a
200
- }
201
- );
202
- }
203
- function x({ className: a, colorScheme: t = "light", price: r, ...e }) {
204
- return /* @__PURE__ */ s(m, { className: a, colorScheme: t, ...e, children: [
205
- r.type === "range" && /* @__PURE__ */ s(i, { children: [
206
- /* @__PURE__ */ o(l, { children: r.minValue }),
207
- " – ",
208
- /* @__PURE__ */ o(l, { children: r.maxValue })
209
- ] }),
210
- r.type === "sale" && /* @__PURE__ */ s(i, { children: [
211
- /* @__PURE__ */ o(f, { children: r.currentValue }),
212
- " ",
213
- /* @__PURE__ */ o(l, { children: r.previousValue })
214
- ] }),
215
- r.type === "default" && /* @__PURE__ */ o(l, { children: r.value })
216
- ] });
217
- }
218
- function z({ className: a, price: t, ...r }) {
219
- const { colorScheme: e } = d();
220
- return /* @__PURE__ */ o(
221
- x,
222
- {
223
- className: c("mt-2", a),
224
- colorScheme: e,
225
- "data-slot": "product-card-price",
226
- price: t,
227
- ...r
228
- }
229
- );
230
- }
231
- function A({ className: a, children: t, ...r }) {
232
- return /* @__PURE__ */ o(
233
- "div",
234
- {
235
- className: c(
236
- "font-(family-name:--checkbox-font-family,var(--font-family-body)) flex shrink-0 items-center gap-2",
237
- a
238
- ),
239
- "data-slot": "product-card-compare",
240
- ...r,
241
- children: t
242
- }
243
- );
244
- }
245
- function E({ className: a, ...t }) {
246
- return /* @__PURE__ */ o(k, { className: c(a), "data-slot": "product-card-checkbox", ...t });
247
- }
248
- function G({ className: a, children: t, ...r }) {
249
- const { colorScheme: e } = d();
250
- return /* @__PURE__ */ o(
251
- p,
252
- {
253
- className: c(
254
- {
255
- light: "text-[var(--product-card-light-text,hsl(var(--foreground)))]",
256
- dark: "text-[var(--product-card-dark-text,hsl(var(--background)))]"
257
- }[e],
258
- a
259
- ),
260
- "data-slot": "product-card-label",
261
- ...r,
262
- children: t
263
- }
264
- );
265
- }
266
- export {
267
- v as B,
268
- k as C,
269
- V as P,
270
- B as a,
271
- R as b,
272
- D as c,
273
- F as d,
274
- I as e,
275
- T as f,
276
- q as g,
277
- H as h,
278
- W as i,
279
- z as j,
280
- A as k,
281
- E as l,
282
- G as m,
283
- x as n
284
- };
285
- //# sourceMappingURL=product-card-label-C6D-fYjj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-card-label-C6D-fYjj.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","../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 id?: string;\n label?: string;\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 * --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-font-family: var(--font-family-body);\n * }\n * ```\n */\nexport function Checkbox({ className, id, label, ...props }: CheckboxProps) {\n return (\n <CheckboxPrimitive.Root className={className} {...props}>\n <CheckboxPrimitive.Indicator>\n <Check absoluteStrokeWidth 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\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(\n {\n light: 'text-[var(--product-card-light-text,hsl(var(--foreground)))]',\n dark: 'text-[var(--product-card-dark-text,hsl(var(--background)))]',\n }[colorScheme],\n className,\n )}\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","id","label","CheckboxPrimitive.Root","CheckboxPrimitive.Indicator","Check","ProductCardPreview","ProductCardThumbnail","aspectRatio","colorScheme","useProductCard","ProductCardImage","asChild","Slot","ProductCardBadge","ProductCardFallback","ProductCardLink","ProductCardDetails","ProductCardHeader","ProductCardTitle","ProductCardSubtitle","Price","price","PricePrimitive.Root","jsxs","Fragment","PricePrimitive.Default","PricePrimitive.Strike","ProductCardPrice","ProductCardCompare","ProductCardCheckbox","ProductCardLabel","Label"],"mappings":";;;;;;;;AA0BO,SAASA,EAAM;AAAA,EACpB,UAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,WAAAC;AAAA,EACA,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,GAAe;AACb,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,MAAM;AAAA,UACN,SAAS;AAAA,QAAA,EACTL,CAAK;AAAA,QACP;AAAA,UACE,SACE;AAAA,UACF,SACE;AAAA,UACF,OACE;AAAA,UACF,SACE;AAAA,UACF,MAAM;AAAA,QAAA,EACNE,CAAO;AAAA,QACTD;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACvBO,SAASO,EAAS,EAAE,WAAAL,GAAW,IAAAM,GAAI,OAAAC,GAAO,GAAGL,KAAwB;AAC1E,SACE,gBAAAC,EAACK,GAAA,EAAuB,WAAAR,GAAuB,GAAGE,GAChD,4BAACO,GAAA,EACC,UAAA,gBAAAN,EAACO,GAAA,EAAM,qBAAmB,IAAC,WAAU,WAAU,OAAM,eAAA,CAAe,GACtE,GACF;AAEJ;ACtCO,SAASC,EAAmB,EAAE,WAAAX,GAAW,UAAAF,GAAU,GAAGI,KAAkC;AAC7F,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAG,YAAYJ,CAAS,GAAG,aAAU,wBAAwB,GAAGE,GAC7E,UAAAJ,EAAA,CACH;AAEJ;ACHO,SAASc,EAAqB,EAAE,WAAAZ,GAAW,UAAAF,GAAU,GAAGI,KAAoC;AACjG,QAAM,EAAE,aAAAW,GAAa,aAAAC,EAAA,IAAgBC,EAAA;AAErC,SACE,gBAAAZ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,OAAO;AAAA,UACP,OAAO;AAAA,QAAA,EACPS,CAAW;AAAA,QACb;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,QAAA,EACNC,CAAW;AAAA,QACbd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACrBO,SAASkB,EAAiB;AAAA,EAC/B,WAAAhB;AAAA,EACA,UAAAF;AAAA,EACA,SAAAmB,IAAU;AAAA,EACV,GAAGf;AACL,GAA0B;AACxB,QAAM,EAAE,aAAAY,EAAA,IAAgBC,EAAA;AAIxB,SACE,gBAAAZ;AAAA,IAHgBc,IAAUC,IAAO;AAAA,IAGhC;AAAA,MACC,WAAWd;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,QAAA,EACNU,CAAW;AAAA,QACbd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;AC7BO,SAASiB,EAAiB,EAAE,WAAAnB,GAAW,UAAAF,GAAU,GAAGI,KAAgC;AACzF,SACE,gBAAAC;AAAA,IAACN;AAAA,IAAA;AAAA,MACC,WAAWO,EAAG,yBAAyBJ,CAAS;AAAA,MAChD,aAAU;AAAA,MACV,OAAM;AAAA,MACL,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACTO,SAASsB,EAAoB,EAAE,WAAApB,GAAW,UAAAF,GAAU,GAAGI,KAAmC;AAC/F,QAAM,EAAE,aAAAY,EAAA,IAAgBC,EAAA;AAExB,SACE,gBAAAZ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,QAAA,EACNU,CAAW;AAAA,QACbd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;AChBO,SAASuB,EAAgB,EAAE,SAAAJ,IAAU,IAAO,WAAAjB,GAAW,GAAGE,KAA+B;AAC9F,QAAM,EAAE,aAAAY,EAAA,IAAgBC,EAAA;AAIxB,SACE,gBAAAZ;AAAA,IAHgBc,IAAUC,IAAO;AAAA,IAGhC;AAAA,MACC,WAAWd;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,QAAA,EACNU,CAAW;AAAA,QACbd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,IAAA;AAAA,EAAA;AAGV;ACzBO,SAASoB,EAAmB,EAAE,UAAAxB,GAAU,WAAAE,GAAW,GAAGE,KAAkC;AAC7F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACbO,SAASyB,EAAkB,EAAE,UAAAzB,GAAU,WAAAE,GAAW,GAAGE,KAAiC;AAC3F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAG,8CAA8CJ,CAAS;AAAA,MACrE,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACPO,SAAS0B,EAAiB,EAAE,WAAAxB,GAAW,UAAAF,GAAU,GAAGI,KAAgC;AACzF,QAAM,EAAE,aAAAY,EAAA,IAAgBC,EAAA;AAExB,SACE,gBAAAZ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,QAAA,EACNU,CAAW;AAAA,MAAA;AAAA,MAEf,aAAU;AAAA,MACT,GAAGZ;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;AClBO,SAAS2B,EAAoB,EAAE,UAAA3B,GAAU,WAAAE,GAAW,GAAGE,KAAmC;AAC/F,QAAM,EAAE,aAAAY,EAAA,IAAgBC,EAAA;AAExB,SACE,gBAAAZ;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACA;AAAA,UACE,OACE;AAAA,UACF,MAAM;AAAA,QAAA,EACNU,CAAW;AAAA,QACbd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACSO,SAAS4B,EAAM,EAAE,WAAA1B,GAAW,aAAAc,IAAc,SAAS,OAAAa,GAAO,GAAGzB,KAAqB;AACvF,2BACG0B,GAAA,EAAoB,WAAA5B,GAAsB,aAAAc,GAA2B,GAAGZ,GACtE,UAAA;AAAA,IAAAyB,EAAM,SAAS,WACd,gBAAAE,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAA3B,EAAC4B,GAAA,EAAwB,UAAAJ,EAAM,SAAA,CAAS;AAAA,MACvC;AAAA,MACD,gBAAAxB,EAAC4B,GAAA,EAAwB,YAAM,SAAA,CAAS;AAAA,IAAA,GAC1C;AAAA,IAEDJ,EAAM,SAAS,UACd,gBAAAE,EAAAC,GAAA,EACE,UAAA;AAAA,MAAA,gBAAA3B,EAAC6B,GAAA,EAAuB,UAAAL,EAAM,aAAA,CAAa;AAAA,MAAyB;AAAA,MACpE,gBAAAxB,EAAC4B,GAAA,EAAwB,YAAM,cAAA,CAAc;AAAA,IAAA,GAC/C;AAAA,IAEDJ,EAAM,SAAS,aAAa,gBAAAxB,EAAC4B,GAAA,EAAwB,YAAM,MAAA,CAAM;AAAA,EAAA,GACpE;AAEJ;ACjDO,SAASE,EAAiB,EAAE,WAAAjC,GAAW,OAAA2B,GAAO,GAAGzB,KAAgC;AACtF,QAAM,EAAE,aAAAY,EAAA,IAAgBC,EAAA;AAExB,SACE,gBAAAZ;AAAA,IAACuB;AAAA,IAAA;AAAA,MACC,WAAWtB,EAAG,QAAQJ,CAAS;AAAA,MAC/B,aAAAc;AAAA,MACA,aAAU;AAAA,MACV,OAAAa;AAAA,MACC,GAAGzB;AAAA,IAAA;AAAA,EAAA;AAGV;ACdO,SAASgC,EAAmB,EAAE,WAAAlC,GAAW,UAAAF,GAAU,GAAGI,KAAkC;AAC7F,SACE,gBAAAC;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;ACVO,SAASqC,EAAoB,EAAE,WAAAnC,GAAW,GAAGE,KAAmC;AACrF,SAAO,gBAAAC,EAACE,KAAS,WAAWD,EAAGJ,CAAS,GAAG,aAAU,yBAAyB,GAAGE,GAAO;AAC1F;ACDO,SAASkC,EAAiB,EAAE,WAAApC,GAAW,UAAAF,GAAU,GAAGI,KAAgC;AACzF,QAAM,EAAE,aAAAY,EAAA,IAAgBC,EAAA;AAExB,SACE,gBAAAZ;AAAA,IAACkC;AAAA,IAAA;AAAA,MACC,WAAWjC;AAAA,QACT;AAAA,UACE,OAAO;AAAA,UACP,MAAM;AAAA,QAAA,EACNU,CAAW;AAAA,QACbd;AAAA,MAAA;AAAA,MAEF,aAAU;AAAA,MACT,GAAGE;AAAA,MAEH,UAAAJ;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -1,43 +0,0 @@
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-CRiPKpXj.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-BGUa-vQ_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-card-root-BGUa-vQ_.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;"}
@@ -1,2 +0,0 @@
1
- "use strict";const u=require("react/jsx-runtime"),r=require("react"),l=require("./utils-DoxiiusW.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-Q5lwSPd8.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-card-root-Q5lwSPd8.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"}
@@ -1,33 +0,0 @@
1
- import { jsxs as a, jsx as e } from "react/jsx-runtime";
2
- import { u as m } from "./product-card-root-BGUa-vQ_.js";
3
- import { c as t } from "./utils-CRiPKpXj.js";
4
- import { S as d } from "./skeleton-root-BIYF02UE.js";
5
- import { S as l } from "./skeleton-box-D0XcgPLs.js";
6
- import { S as r } from "./skeleton-text-BCsnfhcU.js";
7
- function N({ className: o, ...s }) {
8
- const { aspectRatio: c } = m();
9
- return /* @__PURE__ */ a(d, { className: t(o), "data-slot": "product-card-skeleton", ...s, children: [
10
- /* @__PURE__ */ e(
11
- l,
12
- {
13
- className: t(
14
- "rounded-[var(--product-card-border-radius,1rem)]",
15
- {
16
- "5:6": "aspect-[5/6]",
17
- "3:4": "aspect-[3/4]",
18
- "1:1": "aspect-square"
19
- }[c]
20
- )
21
- }
22
- ),
23
- /* @__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: [
24
- /* @__PURE__ */ e(r, { characterCount: 10, className: "rounded" }),
25
- /* @__PURE__ */ e(r, { characterCount: 8, className: "rounded" }),
26
- /* @__PURE__ */ e(r, { characterCount: 6, className: "rounded" })
27
- ] }) })
28
- ] });
29
- }
30
- export {
31
- N as P
32
- };
33
- //# sourceMappingURL=product-card-skeleton-B8DGleVJ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-card-skeleton-B8DGleVJ.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 +0,0 @@
1
- "use strict";const e=require("react/jsx-runtime"),c=require("./product-card-root-Q5lwSPd8.cjs"),s=require("./utils-DoxiiusW.cjs"),n=require("./skeleton-root-Bahq1UoM.cjs"),d=require("./skeleton-box-BsY5q4RG.cjs"),t=require("./skeleton-text-BxefRRo2.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-CCbWpq16.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"product-card-skeleton-CCbWpq16.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":"+PAQO,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"}