@anker-in/headless-ui 1.1.1 → 1.1.4

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 (409) hide show
  1. package/dist/cjs/biz-components/AiuiProvider/index.d.ts +4 -0
  2. package/dist/cjs/biz-components/AiuiProvider/index.js +1 -1
  3. package/dist/cjs/biz-components/AiuiProvider/index.js.map +2 -2
  4. package/dist/cjs/biz-components/AplusDesc/index.d.ts +22 -0
  5. package/dist/cjs/biz-components/AplusDesc/index.js +2 -0
  6. package/dist/cjs/biz-components/AplusDesc/index.js.map +7 -0
  7. package/dist/cjs/biz-components/DownLoad/index.d.ts +20 -0
  8. package/dist/cjs/biz-components/DownLoad/index.js +2 -0
  9. package/dist/cjs/biz-components/DownLoad/index.js.map +7 -0
  10. package/dist/cjs/biz-components/Faq/Faq.js +1 -1
  11. package/dist/cjs/biz-components/Faq/Faq.js.map +2 -2
  12. package/dist/cjs/biz-components/Features/index.js +1 -1
  13. package/dist/cjs/biz-components/Features/index.js.map +2 -2
  14. package/dist/cjs/biz-components/FootCharger/index.js.map +2 -2
  15. package/dist/cjs/biz-components/GiftBox/index.d.ts +17 -0
  16. package/dist/cjs/biz-components/GiftBox/index.js +2 -0
  17. package/dist/cjs/biz-components/GiftBox/index.js.map +7 -0
  18. package/dist/cjs/biz-components/Graphic/index.js +1 -1
  19. package/dist/cjs/biz-components/Graphic/index.js.map +2 -2
  20. package/dist/cjs/biz-components/GraphicMore/index.js +1 -1
  21. package/dist/cjs/biz-components/GraphicMore/index.js.map +2 -2
  22. package/dist/cjs/biz-components/Listing/BizProductProvider.d.ts +126 -0
  23. package/dist/cjs/biz-components/Listing/BizProductProvider.js +2 -0
  24. package/dist/cjs/biz-components/Listing/BizProductProvider.js.map +7 -0
  25. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.d.ts +2 -0
  26. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.js +2 -0
  27. package/dist/cjs/biz-components/Listing/components/PaidShipping/LearnMore.js.map +7 -0
  28. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.d.ts +10 -0
  29. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.js +2 -0
  30. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingMethod.js.map +7 -0
  31. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.d.ts +25 -0
  32. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +2 -0
  33. package/dist/cjs/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +7 -0
  34. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.d.ts +15 -0
  35. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.js +2 -0
  36. package/dist/cjs/biz-components/Listing/components/PaidShipping/index.js.map +7 -0
  37. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.d.ts +30 -0
  38. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.js +2 -0
  39. package/dist/cjs/biz-components/Listing/components/PaidShipping/type.js.map +7 -0
  40. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.d.ts +2 -0
  41. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.js +2 -0
  42. package/dist/cjs/biz-components/Listing/components/PaidShipping/utils.js.map +7 -0
  43. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +39 -0
  44. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +40 -0
  45. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +7 -0
  46. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.d.ts +10 -0
  47. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js +2 -0
  48. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js.map +7 -0
  49. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.d.ts +30 -0
  50. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  51. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  52. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +5 -0
  53. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  54. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  55. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +5 -0
  56. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +2 -0
  57. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +7 -0
  58. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +5 -0
  59. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  60. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  61. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +5 -0
  62. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  63. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  64. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +5 -0
  65. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  66. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  67. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  68. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  69. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  70. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.d.ts +43 -0
  71. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  72. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  73. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.d.ts +2 -0
  74. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  75. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  76. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.d.ts +21 -0
  77. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  78. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  79. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.d.ts +5 -0
  80. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  81. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  82. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.d.ts +1 -0
  83. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  84. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  85. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +8 -0
  86. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  87. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  88. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.d.ts +73 -0
  89. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  90. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  91. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.d.ts +6 -0
  92. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  93. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  94. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +5 -0
  95. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  96. package/dist/cjs/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  97. package/dist/cjs/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  98. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js +2 -0
  99. package/dist/cjs/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  100. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.d.ts +2 -0
  101. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  102. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  103. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.d.ts +3 -0
  104. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  105. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  106. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +12 -0
  107. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +2 -0
  108. package/dist/cjs/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  109. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.d.ts +6 -0
  110. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  111. package/dist/cjs/biz-components/Listing/components/PurchaseBar/index.js.map +7 -0
  112. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.d.ts +12 -0
  113. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.js +2 -0
  114. package/dist/cjs/biz-components/Listing/components/PurchaseBar/types.js.map +7 -0
  115. package/dist/cjs/biz-components/Listing/components/index.d.ts +3 -0
  116. package/dist/cjs/biz-components/Listing/components/index.js +2 -0
  117. package/dist/cjs/biz-components/Listing/components/index.js.map +7 -0
  118. package/dist/cjs/biz-components/Listing/const.d.ts +29 -0
  119. package/dist/cjs/biz-components/Listing/const.js +2 -0
  120. package/dist/cjs/biz-components/Listing/const.js.map +7 -0
  121. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.d.ts +14 -0
  122. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.js +2 -0
  123. package/dist/cjs/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  124. package/dist/cjs/biz-components/Listing/hooks/use-variant.d.ts +5 -0
  125. package/dist/cjs/biz-components/Listing/hooks/use-variant.js +2 -0
  126. package/dist/cjs/biz-components/Listing/hooks/use-variant.js.map +7 -0
  127. package/dist/cjs/biz-components/Listing/hooks/useBenefits.d.ts +50 -0
  128. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js +2 -0
  129. package/dist/cjs/biz-components/Listing/hooks/useBenefits.js.map +7 -0
  130. package/dist/cjs/biz-components/Listing/hooks/useCopy.d.ts +5 -0
  131. package/dist/cjs/biz-components/Listing/hooks/useCopy.js +2 -0
  132. package/dist/cjs/biz-components/Listing/hooks/useCopy.js.map +7 -0
  133. package/dist/cjs/biz-components/Listing/hooks/useDiscountEnable.d.ts +14 -0
  134. package/dist/cjs/biz-components/Listing/hooks/useDiscountEnable.js +2 -0
  135. package/dist/cjs/biz-components/Listing/hooks/useDiscountEnable.js.map +7 -0
  136. package/dist/cjs/biz-components/Listing/index.d.ts +3 -0
  137. package/dist/cjs/biz-components/Listing/index.js +2 -0
  138. package/dist/cjs/biz-components/Listing/index.js.map +7 -0
  139. package/dist/cjs/biz-components/Listing/types/graphql.d.ts +7473 -0
  140. package/dist/cjs/biz-components/Listing/types/graphql.js +2 -0
  141. package/dist/cjs/biz-components/Listing/types/graphql.js.map +7 -0
  142. package/dist/cjs/biz-components/Listing/types/product.d.ts +141 -0
  143. package/dist/cjs/biz-components/Listing/types/product.js +2 -0
  144. package/dist/cjs/biz-components/Listing/types/product.js.map +7 -0
  145. package/dist/cjs/biz-components/Listing/types/productMetafields.d.js +2 -0
  146. package/dist/cjs/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  147. package/dist/cjs/biz-components/Listing/types/type-helper.d.ts +5 -0
  148. package/dist/cjs/biz-components/Listing/types/type-helper.js +2 -0
  149. package/dist/cjs/biz-components/Listing/types/type-helper.js.map +7 -0
  150. package/dist/cjs/biz-components/Listing/types.d.ts +29 -0
  151. package/dist/cjs/biz-components/Listing/types.js +2 -0
  152. package/dist/cjs/biz-components/Listing/types.js.map +7 -0
  153. package/dist/cjs/biz-components/Listing/utils/helper.d.ts +36 -0
  154. package/dist/cjs/biz-components/Listing/utils/helper.js +2 -0
  155. package/dist/cjs/biz-components/Listing/utils/helper.js.map +7 -0
  156. package/dist/cjs/biz-components/Listing/utils/index.d.ts +37 -0
  157. package/dist/cjs/biz-components/Listing/utils/index.js +2 -0
  158. package/dist/cjs/biz-components/Listing/utils/index.js.map +7 -0
  159. package/dist/cjs/biz-components/Listing/utils/textFormat.d.ts +73 -0
  160. package/dist/cjs/biz-components/Listing/utils/textFormat.js +2 -0
  161. package/dist/cjs/biz-components/Listing/utils/textFormat.js.map +7 -0
  162. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  163. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  164. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.d.ts +2 -0
  165. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.js +1 -1
  166. package/dist/cjs/biz-components/MultiLayoutGraphicBlock/types.js.map +1 -1
  167. package/dist/cjs/biz-components/SelectStore/index.d.ts +20 -0
  168. package/dist/cjs/biz-components/SelectStore/index.js +2 -0
  169. package/dist/cjs/biz-components/SelectStore/index.js.map +7 -0
  170. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js +2 -2
  171. package/dist/cjs/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  172. package/dist/cjs/biz-components/Specs/dropdown.js +2 -2
  173. package/dist/cjs/biz-components/Specs/dropdown.js.map +2 -2
  174. package/dist/cjs/biz-components/Specs/index.js +1 -1
  175. package/dist/cjs/biz-components/Specs/index.js.map +3 -3
  176. package/dist/cjs/biz-components/Tabs/Tabs.js +1 -1
  177. package/dist/cjs/biz-components/Tabs/Tabs.js.map +2 -2
  178. package/dist/cjs/biz-components/Title/index.js +1 -1
  179. package/dist/cjs/biz-components/Title/index.js.map +2 -2
  180. package/dist/cjs/biz-components/index.d.ts +57 -1
  181. package/dist/cjs/biz-components/index.js +1 -1
  182. package/dist/cjs/biz-components/index.js.map +3 -3
  183. package/dist/cjs/components/ExposureDetector.d.ts +45 -0
  184. package/dist/cjs/components/ExposureDetector.js +2 -0
  185. package/dist/cjs/components/ExposureDetector.js.map +7 -0
  186. package/dist/cjs/components/checkbox.d.ts +1 -0
  187. package/dist/cjs/components/checkbox.js +1 -1
  188. package/dist/cjs/components/checkbox.js.map +3 -3
  189. package/dist/cjs/components/dialog.d.ts +1 -1
  190. package/dist/cjs/components/dialog.js +1 -1
  191. package/dist/cjs/components/dialog.js.map +2 -2
  192. package/dist/cjs/components/index.d.ts +1 -0
  193. package/dist/cjs/components/index.js +1 -1
  194. package/dist/cjs/components/index.js.map +3 -3
  195. package/dist/cjs/components/picture.js +1 -1
  196. package/dist/cjs/components/picture.js.map +2 -2
  197. package/dist/cjs/hooks/useExposureDetection.d.ts +69 -0
  198. package/dist/cjs/hooks/useExposureDetection.js +2 -0
  199. package/dist/cjs/hooks/useExposureDetection.js.map +7 -0
  200. package/dist/cjs/stories/carousel.stories.d.ts +3 -57
  201. package/dist/cjs/stories/carousel.stories.js.map +2 -2
  202. package/dist/esm/biz-components/AiuiProvider/index.d.ts +4 -0
  203. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  204. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  205. package/dist/esm/biz-components/AplusDesc/index.d.ts +22 -0
  206. package/dist/esm/biz-components/AplusDesc/index.js +2 -0
  207. package/dist/esm/biz-components/AplusDesc/index.js.map +7 -0
  208. package/dist/esm/biz-components/DownLoad/index.d.ts +20 -0
  209. package/dist/esm/biz-components/DownLoad/index.js +2 -0
  210. package/dist/esm/biz-components/DownLoad/index.js.map +7 -0
  211. package/dist/esm/biz-components/Faq/Faq.js +1 -1
  212. package/dist/esm/biz-components/Faq/Faq.js.map +3 -3
  213. package/dist/esm/biz-components/Features/index.js +1 -1
  214. package/dist/esm/biz-components/Features/index.js.map +2 -2
  215. package/dist/esm/biz-components/FootCharger/index.js.map +2 -2
  216. package/dist/esm/biz-components/GiftBox/index.d.ts +17 -0
  217. package/dist/esm/biz-components/GiftBox/index.js +2 -0
  218. package/dist/esm/biz-components/GiftBox/index.js.map +7 -0
  219. package/dist/esm/biz-components/Graphic/index.js +1 -1
  220. package/dist/esm/biz-components/Graphic/index.js.map +2 -2
  221. package/dist/esm/biz-components/GraphicMore/index.js +1 -1
  222. package/dist/esm/biz-components/GraphicMore/index.js.map +2 -2
  223. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +126 -0
  224. package/dist/esm/biz-components/Listing/BizProductProvider.js +2 -0
  225. package/dist/esm/biz-components/Listing/BizProductProvider.js.map +7 -0
  226. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.d.ts +2 -0
  227. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.js +2 -0
  228. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.js.map +7 -0
  229. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.d.ts +10 -0
  230. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.js +2 -0
  231. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.js.map +7 -0
  232. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.d.ts +25 -0
  233. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +2 -0
  234. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +7 -0
  235. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +15 -0
  236. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js +2 -0
  237. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js.map +7 -0
  238. package/dist/esm/biz-components/Listing/components/PaidShipping/type.d.ts +30 -0
  239. package/dist/esm/biz-components/Listing/components/PaidShipping/type.js +2 -0
  240. package/dist/esm/biz-components/Listing/components/PaidShipping/type.js.map +7 -0
  241. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.d.ts +2 -0
  242. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.js +2 -0
  243. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.js.map +7 -0
  244. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +39 -0
  245. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +40 -0
  246. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +7 -0
  247. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.d.ts +10 -0
  248. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js +2 -0
  249. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js.map +7 -0
  250. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.d.ts +30 -0
  251. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  252. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  253. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +5 -0
  254. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  255. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  256. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +5 -0
  257. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +2 -0
  258. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +7 -0
  259. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +5 -0
  260. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  261. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  262. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +5 -0
  263. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  264. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  265. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +5 -0
  266. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  267. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  268. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  269. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  270. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  271. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.d.ts +43 -0
  272. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  273. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  274. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.d.ts +2 -0
  275. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  276. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  277. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.d.ts +21 -0
  278. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  279. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  280. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.d.ts +5 -0
  281. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  282. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  283. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.d.ts +1 -0
  284. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  285. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  286. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +8 -0
  287. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  288. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  289. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.d.ts +73 -0
  290. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  291. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  292. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.d.ts +6 -0
  293. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  294. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  295. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +5 -0
  296. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  297. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  298. package/dist/esm/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  299. package/dist/esm/biz-components/Listing/components/ProductCard/index.js +2 -0
  300. package/dist/esm/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  301. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.d.ts +2 -0
  302. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  303. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  304. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.d.ts +3 -0
  305. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  306. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  307. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +12 -0
  308. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +1 -0
  309. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  310. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +6 -0
  311. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  312. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js.map +7 -0
  313. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.d.ts +12 -0
  314. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js +1 -0
  315. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js.map +7 -0
  316. package/dist/esm/biz-components/Listing/components/index.d.ts +3 -0
  317. package/dist/esm/biz-components/Listing/components/index.js +2 -0
  318. package/dist/esm/biz-components/Listing/components/index.js.map +7 -0
  319. package/dist/esm/biz-components/Listing/const.d.ts +29 -0
  320. package/dist/esm/biz-components/Listing/const.js +2 -0
  321. package/dist/esm/biz-components/Listing/const.js.map +7 -0
  322. package/dist/esm/biz-components/Listing/hooks/use-variant-media.d.ts +14 -0
  323. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js +2 -0
  324. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  325. package/dist/esm/biz-components/Listing/hooks/use-variant.d.ts +5 -0
  326. package/dist/esm/biz-components/Listing/hooks/use-variant.js +2 -0
  327. package/dist/esm/biz-components/Listing/hooks/use-variant.js.map +7 -0
  328. package/dist/esm/biz-components/Listing/hooks/useBenefits.d.ts +50 -0
  329. package/dist/esm/biz-components/Listing/hooks/useBenefits.js +2 -0
  330. package/dist/esm/biz-components/Listing/hooks/useBenefits.js.map +7 -0
  331. package/dist/esm/biz-components/Listing/hooks/useCopy.d.ts +5 -0
  332. package/dist/esm/biz-components/Listing/hooks/useCopy.js +2 -0
  333. package/dist/esm/biz-components/Listing/hooks/useCopy.js.map +7 -0
  334. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.d.ts +14 -0
  335. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.js +2 -0
  336. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.js.map +7 -0
  337. package/dist/esm/biz-components/Listing/index.d.ts +3 -0
  338. package/dist/esm/biz-components/Listing/index.js +2 -0
  339. package/dist/esm/biz-components/Listing/index.js.map +7 -0
  340. package/dist/esm/biz-components/Listing/types/graphql.d.ts +7473 -0
  341. package/dist/esm/biz-components/Listing/types/graphql.js +2 -0
  342. package/dist/esm/biz-components/Listing/types/graphql.js.map +7 -0
  343. package/dist/esm/biz-components/Listing/types/product.d.ts +141 -0
  344. package/dist/esm/biz-components/Listing/types/product.js +2 -0
  345. package/dist/esm/biz-components/Listing/types/product.js.map +7 -0
  346. package/dist/esm/biz-components/Listing/types/productMetafields.d.js +2 -0
  347. package/dist/esm/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  348. package/dist/esm/biz-components/Listing/types/type-helper.d.ts +5 -0
  349. package/dist/esm/biz-components/Listing/types/type-helper.js +1 -0
  350. package/dist/esm/biz-components/Listing/types/type-helper.js.map +7 -0
  351. package/dist/esm/biz-components/Listing/types.d.ts +29 -0
  352. package/dist/esm/biz-components/Listing/types.js +1 -0
  353. package/dist/esm/biz-components/Listing/types.js.map +7 -0
  354. package/dist/esm/biz-components/Listing/utils/helper.d.ts +36 -0
  355. package/dist/esm/biz-components/Listing/utils/helper.js +2 -0
  356. package/dist/esm/biz-components/Listing/utils/helper.js.map +7 -0
  357. package/dist/esm/biz-components/Listing/utils/index.d.ts +37 -0
  358. package/dist/esm/biz-components/Listing/utils/index.js +2 -0
  359. package/dist/esm/biz-components/Listing/utils/index.js.map +7 -0
  360. package/dist/esm/biz-components/Listing/utils/textFormat.d.ts +73 -0
  361. package/dist/esm/biz-components/Listing/utils/textFormat.js +2 -0
  362. package/dist/esm/biz-components/Listing/utils/textFormat.js.map +7 -0
  363. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  364. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  365. package/dist/esm/biz-components/MultiLayoutGraphicBlock/types.d.ts +2 -0
  366. package/dist/esm/biz-components/SelectStore/index.d.ts +20 -0
  367. package/dist/esm/biz-components/SelectStore/index.js +2 -0
  368. package/dist/esm/biz-components/SelectStore/index.js.map +7 -0
  369. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js +3 -3
  370. package/dist/esm/biz-components/ShelfDisplay/shelfDisplayItem.js.map +3 -3
  371. package/dist/esm/biz-components/Specs/dropdown.js +2 -2
  372. package/dist/esm/biz-components/Specs/dropdown.js.map +2 -2
  373. package/dist/esm/biz-components/Specs/index.js +1 -1
  374. package/dist/esm/biz-components/Specs/index.js.map +3 -3
  375. package/dist/esm/biz-components/Tabs/Tabs.js +1 -1
  376. package/dist/esm/biz-components/Tabs/Tabs.js.map +2 -2
  377. package/dist/esm/biz-components/Title/index.js +1 -1
  378. package/dist/esm/biz-components/Title/index.js.map +2 -2
  379. package/dist/esm/biz-components/index.d.ts +57 -1
  380. package/dist/esm/biz-components/index.js +1 -1
  381. package/dist/esm/biz-components/index.js.map +3 -3
  382. package/dist/esm/components/ExposureDetector.d.ts +45 -0
  383. package/dist/esm/components/ExposureDetector.js +2 -0
  384. package/dist/esm/components/ExposureDetector.js.map +7 -0
  385. package/dist/esm/components/checkbox.d.ts +1 -0
  386. package/dist/esm/components/checkbox.js +1 -1
  387. package/dist/esm/components/checkbox.js.map +3 -3
  388. package/dist/esm/components/dialog.d.ts +1 -1
  389. package/dist/esm/components/dialog.js +1 -1
  390. package/dist/esm/components/dialog.js.map +2 -2
  391. package/dist/esm/components/index.d.ts +1 -0
  392. package/dist/esm/components/index.js +1 -1
  393. package/dist/esm/components/index.js.map +3 -3
  394. package/dist/esm/components/picture.js +1 -1
  395. package/dist/esm/components/picture.js.map +2 -2
  396. package/dist/esm/hooks/useExposureDetection.d.ts +69 -0
  397. package/dist/esm/hooks/useExposureDetection.js +2 -0
  398. package/dist/esm/hooks/useExposureDetection.js.map +7 -0
  399. package/dist/esm/stories/carousel.stories.d.ts +3 -57
  400. package/dist/esm/stories/carousel.stories.js.map +2 -2
  401. package/dist/tokens/anker.css +1 -0
  402. package/dist/tokens/base.css +1 -1
  403. package/dist/tokens/eufy.css +1 -0
  404. package/dist/tokens/eufyMake.css +1 -0
  405. package/dist/tokens/solix.css +1 -0
  406. package/dist/tokens/soundcore.css +1 -0
  407. package/package.json +4 -1
  408. package/style.css +0 -8
  409. package/tailwind.config.js +20 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/index.ts"],
4
- "sourcesContent": ["export { default as Button } from './button.js'\nexport { default as Badge } from './badge.js'\nexport { Input, InputSlot } from './input.js'\n\nexport { default as Checkbox } from './checkbox.js'\n\nexport { default as Skeleton } from './skeleton.js'\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} from './dialog.js'\nexport { Popover, PopoverTrigger, PopoverContent } from './popover.js'\nexport { RadioGroup, RadioGroupItem, type RadioGroupProps, type RadioGroupItemProps } from './radio.js'\nexport { Text, type TextProps } from './text.js'\nexport { Grid, GridItem, type GridProps, type GridItemProps } from './gird.js'\nexport { Heading, type HeadingProps } from './heading.js'\nexport { Container, type ContainerProps } from './container.js'\nexport { Color, type ColorProps } from './color.js'\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n} from './drawer.js'\nexport { default as Link, type LinkProps } from './link.js'\nexport { Avatar, AvatarImage, AvatarFallback } from './avatar.js'\nexport { default as InputNumber, type InputNumberProps } from './input-number.js'\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n} from './drop-down.js'\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } from './card.js'\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n} from './carousel.js'\nexport { Tabs, TabsList, TabsTrigger, TabsContent } from './tabs.js'\nexport { Alert, AlertTitle, AlertDescription } from './alert.js'\nexport { default as Picture } from './picture.js'\nexport { default as Theme } from './theme.js'\nexport { default as Board } from './board.js'\nexport { default as LoadingDots } from './loadingDots.js'\n"],
5
- "mappings": "AAAA,OAAoB,WAAXA,MAAyB,cAClC,OAAoB,WAAXA,MAAwB,aACjC,OAAS,SAAAC,EAAO,aAAAC,MAAiB,aAEjC,OAAoB,WAAXF,MAA2B,gBAEpC,OAAoB,WAAXA,MAA2B,gBACpC,OACE,UAAAG,EACA,gBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,qBAAAC,MACK,cACP,OAAS,WAAAC,EAAS,kBAAAC,EAAgB,kBAAAC,MAAsB,eACxD,OAAS,cAAAC,EAAY,kBAAAC,MAAsE,aAC3F,OAAS,QAAAC,MAA4B,YACrC,OAAS,QAAAC,EAAM,YAAAC,MAAoD,YACnE,OAAS,WAAAC,MAAkC,eAC3C,OAAS,aAAAC,MAAsC,iBAC/C,OAAS,SAAAC,MAA8B,aACvC,OACE,UAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,qBAAAC,MACK,cACP,OAAoB,WAAXjC,MAAuC,YAChD,OAAS,UAAAkC,GAAQ,eAAAC,GAAa,kBAAAC,OAAsB,cACpD,OAAoB,WAAXpC,OAAqD,oBAC9D,OACE,gBAAAqC,GACA,uBAAAC,GACA,uBAAAC,GACA,oBAAAC,GACA,4BAAAC,GACA,yBAAAC,GACA,qBAAAC,GACA,yBAAAC,GACA,wBAAAC,GACA,qBAAAC,GACA,sBAAAC,GACA,mBAAAC,GACA,0BAAAC,GACA,0BAAAC,GACA,0BAAAC,OACK,iBACP,OAAS,QAAAC,GAAM,cAAAC,GAAY,cAAAC,GAAY,aAAAC,GAAW,mBAAAC,GAAiB,eAAAC,OAAmB,YACtF,OAEE,YAAAC,GACA,mBAAAC,GACA,gBAAAC,GACA,oBAAAC,GACA,gBAAAC,OACK,gBACP,OAAS,QAAAC,GAAM,YAAAC,GAAU,eAAAC,GAAa,eAAAC,OAAmB,YACzD,OAAS,SAAAC,GAAO,cAAAC,GAAY,oBAAAC,OAAwB,aACpD,OAAoB,WAAXrE,OAA0B,eACnC,OAAoB,WAAXA,OAAwB,aACjC,OAAoB,WAAXA,OAAwB,aACjC,OAAoB,WAAXA,OAA8B",
6
- "names": ["default", "Input", "InputSlot", "Dialog", "DialogPortal", "DialogOverlay", "DialogClose", "DialogTrigger", "DialogContent", "DialogHeader", "DialogFooter", "DialogTitle", "DialogDescription", "Popover", "PopoverTrigger", "PopoverContent", "RadioGroup", "RadioGroupItem", "Text", "Grid", "GridItem", "Heading", "Container", "Color", "Drawer", "DrawerPortal", "DrawerOverlay", "DrawerTrigger", "DrawerClose", "DrawerContent", "DrawerHeader", "DrawerFooter", "DrawerTitle", "DrawerDescription", "Avatar", "AvatarImage", "AvatarFallback", "DropdownMenu", "DropdownMenuTrigger", "DropdownMenuContent", "DropdownMenuItem", "DropdownMenuCheckboxItem", "DropdownMenuRadioItem", "DropdownMenuLabel", "DropdownMenuSeparator", "DropdownMenuShortcut", "DropdownMenuGroup", "DropdownMenuPortal", "DropdownMenuSub", "DropdownMenuSubContent", "DropdownMenuSubTrigger", "DropdownMenuRadioGroup", "Card", "CardHeader", "CardFooter", "CardTitle", "CardDescription", "CardContent", "Carousel", "CarouselContent", "CarouselItem", "CarouselPrevious", "CarouselNext", "Tabs", "TabsList", "TabsTrigger", "TabsContent", "Alert", "AlertTitle", "AlertDescription"]
4
+ "sourcesContent": ["export { default as Button } from './button.js'\nexport { default as Badge } from './badge.js'\nexport { Input, InputSlot } from './input.js'\n\nexport { default as Checkbox } from './checkbox.js'\n\nexport { default as Skeleton } from './skeleton.js'\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n} from './dialog.js'\nexport { Popover, PopoverTrigger, PopoverContent } from './popover.js'\nexport { RadioGroup, RadioGroupItem, type RadioGroupProps, type RadioGroupItemProps } from './radio.js'\nexport { Text, type TextProps } from './text.js'\nexport { Grid, GridItem, type GridProps, type GridItemProps } from './gird.js'\nexport { Heading, type HeadingProps } from './heading.js'\nexport { Container, type ContainerProps } from './container.js'\nexport { Color, type ColorProps } from './color.js'\nexport {\n Drawer,\n DrawerPortal,\n DrawerOverlay,\n DrawerTrigger,\n DrawerClose,\n DrawerContent,\n DrawerHeader,\n DrawerFooter,\n DrawerTitle,\n DrawerDescription,\n} from './drawer.js'\nexport { default as Link, type LinkProps } from './link.js'\nexport { Avatar, AvatarImage, AvatarFallback } from './avatar.js'\nexport { default as InputNumber, type InputNumberProps } from './input-number.js'\nexport {\n DropdownMenu,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuItem,\n DropdownMenuCheckboxItem,\n DropdownMenuRadioItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuShortcut,\n DropdownMenuGroup,\n DropdownMenuPortal,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuRadioGroup,\n} from './drop-down.js'\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent } from './card.js'\nexport {\n type CarouselApi,\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselPrevious,\n CarouselNext,\n} from './carousel.js'\nexport { Tabs, TabsList, TabsTrigger, TabsContent } from './tabs.js'\nexport { Alert, AlertTitle, AlertDescription } from './alert.js'\nexport { default as Picture } from './picture.js'\nexport { default as Theme } from './theme.js'\nexport { default as Board } from './board.js'\nexport { default as LoadingDots } from './loadingDots.js'\nexport { ExposureDetector, type ExposureDetectorProps } from './ExposureDetector.js'\n"],
5
+ "mappings": "AAAA,OAAoB,WAAXA,MAAyB,cAClC,OAAoB,WAAXA,MAAwB,aACjC,OAAS,SAAAC,EAAO,aAAAC,MAAiB,aAEjC,OAAoB,WAAXF,MAA2B,gBAEpC,OAAoB,WAAXA,MAA2B,gBACpC,OACE,UAAAG,EACA,gBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,qBAAAC,MACK,cACP,OAAS,WAAAC,EAAS,kBAAAC,EAAgB,kBAAAC,MAAsB,eACxD,OAAS,cAAAC,EAAY,kBAAAC,MAAsE,aAC3F,OAAS,QAAAC,MAA4B,YACrC,OAAS,QAAAC,EAAM,YAAAC,MAAoD,YACnE,OAAS,WAAAC,MAAkC,eAC3C,OAAS,aAAAC,MAAsC,iBAC/C,OAAS,SAAAC,MAA8B,aACvC,OACE,UAAAC,EACA,gBAAAC,EACA,iBAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,iBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,eAAAC,EACA,qBAAAC,MACK,cACP,OAAoB,WAAXjC,MAAuC,YAChD,OAAS,UAAAkC,GAAQ,eAAAC,GAAa,kBAAAC,OAAsB,cACpD,OAAoB,WAAXpC,OAAqD,oBAC9D,OACE,gBAAAqC,GACA,uBAAAC,GACA,uBAAAC,GACA,oBAAAC,GACA,4BAAAC,GACA,yBAAAC,GACA,qBAAAC,GACA,yBAAAC,GACA,wBAAAC,GACA,qBAAAC,GACA,sBAAAC,GACA,mBAAAC,GACA,0BAAAC,GACA,0BAAAC,GACA,0BAAAC,OACK,iBACP,OAAS,QAAAC,GAAM,cAAAC,GAAY,cAAAC,GAAY,aAAAC,GAAW,mBAAAC,GAAiB,eAAAC,OAAmB,YACtF,OAEE,YAAAC,GACA,mBAAAC,GACA,gBAAAC,GACA,oBAAAC,GACA,gBAAAC,OACK,gBACP,OAAS,QAAAC,GAAM,YAAAC,GAAU,eAAAC,GAAa,eAAAC,OAAmB,YACzD,OAAS,SAAAC,GAAO,cAAAC,GAAY,oBAAAC,OAAwB,aACpD,OAAoB,WAAXrE,OAA0B,eACnC,OAAoB,WAAXA,OAAwB,aACjC,OAAoB,WAAXA,OAAwB,aACjC,OAAoB,WAAXA,OAA8B,mBACvC,OAAS,oBAAAsE,OAAoD",
6
+ "names": ["default", "Input", "InputSlot", "Dialog", "DialogPortal", "DialogOverlay", "DialogClose", "DialogTrigger", "DialogContent", "DialogHeader", "DialogFooter", "DialogTitle", "DialogDescription", "Popover", "PopoverTrigger", "PopoverContent", "RadioGroup", "RadioGroupItem", "Text", "Grid", "GridItem", "Heading", "Container", "Color", "Drawer", "DrawerPortal", "DrawerOverlay", "DrawerTrigger", "DrawerClose", "DrawerContent", "DrawerHeader", "DrawerFooter", "DrawerTitle", "DrawerDescription", "Avatar", "AvatarImage", "AvatarFallback", "DropdownMenu", "DropdownMenuTrigger", "DropdownMenuContent", "DropdownMenuItem", "DropdownMenuCheckboxItem", "DropdownMenuRadioItem", "DropdownMenuLabel", "DropdownMenuSeparator", "DropdownMenuShortcut", "DropdownMenuGroup", "DropdownMenuPortal", "DropdownMenuSub", "DropdownMenuSubContent", "DropdownMenuSubTrigger", "DropdownMenuRadioGroup", "Card", "CardHeader", "CardFooter", "CardTitle", "CardDescription", "CardContent", "Carousel", "CarouselContent", "CarouselItem", "CarouselPrevious", "CarouselNext", "Tabs", "TabsList", "TabsTrigger", "TabsContent", "Alert", "AlertTitle", "AlertDescription", "ExposureDetector"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use client";import{jsx as S,jsxs as N}from"react/jsx-runtime";import _,{useCallback as w,useMemo as E}from"react";const L=["cdn.shopify.com","cdn.shopifycdn.net","www.facebook.com"],v=3960,z=3980,x={domains:["cdn.shopify.com","cdn.shopifycdn.net","www.facebook.com"],deviceSizes:[375,768,1024,1280,1440,1540,1920]},F=t=>L.some(s=>t==s),U=(t="")=>/\.(png|apng|jpg|jpeg|gif|svg|webp|tif)/.test(t),j=t=>{try{return new URL(t).searchParams.get("alt")||""}catch{return""}},R=t=>{try{const s=new URL(t);return s.searchParams.delete("alt"),s.toString()}catch{return t}},k=_.forwardRef(({imgClassName:t="",source:s="",quality:p=2,deviceSizes:m=[375,767,1023,1024,1279,1440,1439,1539,1919,1920],className:P,loading:b="lazy",alt:g="",...u},y)=>{const A=r=>(x?.domains||[]).some(o=>r.includes(o)),a=w(({src:r,width:c})=>{const o=c,n=R(r);try{const e=new URL(n);if(!F(e.hostname))return n;const i=e.pathname.split("/").pop()||"";if(U(i))return n?.split("/")?.map(l=>{if(A(n)&&/\.(png|apng|jpg|jpeg|gif|svg|webp|tif)(\?.*)?/.test(l)&&/_[0-9]{2,4}x/.test(n)===!1){const f=l.split(".");return f.map((h,M)=>M===f.length-2?`${h}_${o<3960?o:3980}x`:h).join(".")}return l}).join("/")}catch{return n}},[]),d=w(({srcArr:r,width:c})=>{const o=c*p,n=a({src:r[0][0],width:o}),e=r.filter(([,i])=>i&&parseInt(i,10)>=c).map(([i])=>a({src:i,width:o})).pop();return S("source",{srcSet:e||n,media:`(max-width: ${c}px)`},c)},[a,p]),I=E(()=>{if(typeof s!="string"||!s)return[];const r=s.replace(/[\r\n]/g,"").replace(/\s\s+/g," ").split(",").map(e=>e.split(" ").filter(Boolean)),c=g||r.map(e=>e[0]).filter(Boolean).map(j).find(Boolean)||"",o=m.map(e=>d({srcArr:r,width:e})),n=a({src:r[0][0],width:1920*p});return[...o,S("img",{src:n,className:`w-full ${t}`,loading:b,alt:c,...u},"default")]},[m,t,a,p,s,d,g]);return N("picture",{ref:y,className:`block overflow-hidden ${P}`,children:[I,u.children]})});var D=k;export{D as default};
1
+ "use client";import{jsx as S,jsxs as N}from"react/jsx-runtime";import _,{useCallback as w,useMemo as E}from"react";const L=["cdn.shopify.com","cdn.shopifycdn.net","www.facebook.com"],v=3960,z=3980,x={domains:["cdn.shopify.com","cdn.shopifycdn.net","www.facebook.com"],deviceSizes:[375,390,768,1024,1280,1440,1540,1920]},F=t=>L.some(s=>t==s),U=(t="")=>/\.(png|apng|jpg|jpeg|gif|svg|webp|tif)/.test(t),j=t=>{try{return new URL(t).searchParams.get("alt")||""}catch{return""}},R=t=>{try{const s=new URL(t);return s.searchParams.delete("alt"),s.toString()}catch{return t}},k=_.forwardRef(({imgClassName:t="",source:s="",quality:p=2,deviceSizes:m=[375,390,767,1023,1024,1279,1440,1439,1539,1919,1920],className:P,loading:b="lazy",alt:g="",...u},y)=>{const A=r=>(x?.domains||[]).some(o=>r.includes(o)),a=w(({src:r,width:c})=>{const o=c,n=R(r);try{const e=new URL(n);if(!F(e.hostname))return n;const i=e.pathname.split("/").pop()||"";if(U(i))return n?.split("/")?.map(l=>{if(A(n)&&/\.(png|apng|jpg|jpeg|gif|svg|webp|tif)(\?.*)?/.test(l)&&/_[0-9]{2,4}x/.test(n)===!1){const f=l.split(".");return f.map((h,M)=>M===f.length-2?`${h}_${o<3960?o:3980}x`:h).join(".")}return l}).join("/")}catch{return n}},[]),d=w(({srcArr:r,width:c})=>{const o=c*p,n=a({src:r[0][0],width:o}),e=r.filter(([,i])=>i&&parseInt(i,10)>=c).map(([i])=>a({src:i,width:o})).pop();return S("source",{srcSet:e||n,media:`(max-width: ${c}px)`},c)},[a,p]),I=E(()=>{if(typeof s!="string"||!s)return[];const r=s.replace(/[\r\n]/g,"").replace(/\s\s+/g," ").split(",").map(e=>e.split(" ").filter(Boolean)),c=g||r.map(e=>e[0]).filter(Boolean).map(j).find(Boolean)||"",o=m.map(e=>d({srcArr:r,width:e})),n=a({src:r[0][0],width:1920*p});return[...o,S("img",{src:n,className:`w-full ${t}`,loading:b,alt:c,...u},"default")]},[m,t,a,p,s,d,g]);return N("picture",{ref:y,className:`block overflow-hidden ${P}`,children:[I,u.children]})});var D=k;export{D as default};
2
2
  //# sourceMappingURL=picture.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/picture.tsx"],
4
- "sourcesContent": ["'use client'\nimport React, { useCallback, useMemo } from 'react'\n\nconst APPEND_FILE_SUFFIX_MATCH_DOMAIN = ['cdn.shopify.com', 'cdn.shopifycdn.net', 'www.facebook.com']\n\nconst MAX_SIZE = 3960\nconst FIXED_MAX_SIZE = 3980\n\nexport interface PictureProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n /** picture \u5185\u90E8img \u6807\u7B7E\u7684\u7C7B\u540D */\n imgClassName?: string\n /** \u56FE\u7247url , \u652F\u6301\u4F20\u5165\u4E0D\u540C\u5206\u8FA8\u7387\u4E0B\u7684\u56FE\u7247\uFF0C\u6BD4\u5982\uFF0C\u683C\u5F0F \"url1 1920\uFF0C url2 1080, url3 767\" */\n source?: string\n /** \u56FE\u7247\u8D28\u91CF */\n quality?: number\n /** \u54CD\u5E94\u5F0F\u56FE\u7247\uFF0C\u5BF9\u5E94picture \u4E0Bsource \u7684max-width */\n deviceSizes?: number[]\n alt?: string\n}\nconst images = {\n domains: ['cdn.shopify.com', 'cdn.shopifycdn.net', 'www.facebook.com'],\n deviceSizes: [375, 768, 1024, 1280, 1440, 1540, 1920],\n}\n\nconst isMatchDomain = (srcDomain: string) => {\n return APPEND_FILE_SUFFIX_MATCH_DOMAIN.some(domain => srcDomain == domain)\n}\nconst idMatchFileExtensions = (fileName: string = '') => /\\.(png|apng|jpg|jpeg|gif|svg|webp|tif)/.test(fileName)\n\n/**\n * \u4ECE URL \u4E2D\u89E3\u6790 alt \u53C2\u6570\n * @param url \u56FE\u7247 URL\n * @returns \u89E3\u6790\u51FA\u7684 alt \u503C\uFF0C\u5982\u679C\u6CA1\u6709\u5219\u8FD4\u56DE\u7A7A\u5B57\u7B26\u4E32\n */\nconst parseAltFromUrl = (url: string): string => {\n try {\n return new URL(url).searchParams.get('alt') || ''\n } catch {\n return ''\n }\n}\n\n/**\n * \u79FB\u9664 URL \u4E2D\u7684 alt \u53C2\u6570\n * @param url \u56FE\u7247 URL\n * @returns \u79FB\u9664 alt \u53C2\u6570\u540E\u7684 URL\n */\nconst removeAltFromUrl = (url: string): string => {\n try {\n const urlObj = new URL(url)\n urlObj.searchParams.delete('alt')\n return urlObj.toString()\n } catch {\n return url\n }\n}\n\nconst Picture = React.forwardRef<HTMLPictureElement, PictureProps>(\n (\n {\n imgClassName = '',\n source = '',\n quality = 2,\n deviceSizes = [375, 767, 1023, 1024, 1279, 1440, 1439, 1539, 1919, 1920],\n className,\n loading = 'lazy',\n alt = '',\n ...rest\n }: PictureProps,\n ref\n ) => {\n const isShopifycdn = (src: string | string[]) => {\n const domains = images?.domains || []\n return domains.some(domain => src.includes(domain))\n }\n\n const imgSrcSetsize = useCallback(({ src, width }: { src: string; width: number }) => {\n const size = width\n const cleanSrc = removeAltFromUrl(src)\n try {\n const parsedUrl = new URL(cleanSrc)\n if (!isMatchDomain(parsedUrl.hostname)) {\n return cleanSrc\n }\n const fileName = parsedUrl.pathname.split('/').pop() || ''\n if (idMatchFileExtensions(fileName)) {\n return cleanSrc\n ?.split('/')\n ?.map(item => {\n if (\n isShopifycdn(cleanSrc) &&\n /\\.(png|apng|jpg|jpeg|gif|svg|webp|tif)(\\?.*)?/.test(item) &&\n /_[0-9]{2,4}x/.test(cleanSrc) === false\n ) {\n const name = item.split('.')\n return name\n .map((v, i) => {\n if (i === name.length - 2) {\n return `${v}_${size < 3960 ? size : 3980}x`\n }\n return v\n })\n .join('.')\n }\n return item\n })\n .join('/')\n }\n } catch (error) {\n return cleanSrc\n }\n }, [])\n\n const sourceSrcSet = useCallback(\n ({ srcArr, width }: { srcArr: string[][]; width: number }) => {\n const computedWidth = width * quality\n const defaultSrc = imgSrcSetsize({ src: srcArr[0][0], width: computedWidth })\n \n const matchingSrc = srcArr\n .filter(([, breakpoint]) => breakpoint && parseInt(breakpoint, 10) >= width)\n .map(([src]) => imgSrcSetsize({ src, width: computedWidth }))\n .pop()\n \n return <source key={width} srcSet={matchingSrc || defaultSrc} media={`(max-width: ${width}px)`} />\n },\n [imgSrcSetsize, quality]\n )\n\n const sourceList = useMemo(() => {\n if (typeof source !== 'string' || !source) return []\n \n const srcArr = source\n .replace(/[\\r\\n]/g, '')\n .replace(/\\s\\s+/g, ' ')\n .split(',')\n .map(item => item.split(' ').filter(Boolean))\n\n // \u4ECE URL \u4E2D\u89E3\u6790 alt \u53C2\u6570\uFF0C\u4F18\u5148\u4F7F\u7528\u7B2C\u4E00\u4E2A\u6709 alt \u53C2\u6570\u7684 URL\n const parsedAlt = alt || srcArr\n .map(item => item[0])\n .filter(Boolean)\n .map(parseAltFromUrl)\n .find(Boolean) || ''\n\n const sources = deviceSizes.map(width => sourceSrcSet({ srcArr, width }))\n const defaultImg = imgSrcSetsize({ src: srcArr[0][0], width: 1920 * quality })\n\n return [\n ...sources,\n <img key=\"default\" src={defaultImg} className={`w-full ${imgClassName}`} loading={loading} alt={parsedAlt} {...rest} />\n ]\n }, [deviceSizes, imgClassName, imgSrcSetsize, quality, source, sourceSrcSet, alt])\n\n return (\n <picture ref={ref} className={`block overflow-hidden ${className}`}>\n {sourceList}\n {rest.children}\n </picture>\n )\n }\n)\nexport default Picture\n"],
5
- "mappings": "aA2He,cAAAA,EA+BT,QAAAC,MA/BS,oBA1Hf,OAAOC,GAAS,eAAAC,EAAa,WAAAC,MAAe,QAE5C,MAAMC,EAAkC,CAAC,kBAAmB,qBAAsB,kBAAkB,EAE9FC,EAAW,KACXC,EAAiB,KAajBC,EAAS,CACb,QAAS,CAAC,kBAAmB,qBAAsB,kBAAkB,EACrE,YAAa,CAAC,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,CACtD,EAEMC,EAAiBC,GACdL,EAAgC,KAAKM,GAAUD,GAAaC,CAAM,EAErEC,EAAwB,CAACC,EAAmB,KAAO,yCAAyC,KAAKA,CAAQ,EAOzGC,EAAmBC,GAAwB,CAC/C,GAAI,CACF,OAAO,IAAI,IAAIA,CAAG,EAAE,aAAa,IAAI,KAAK,GAAK,EACjD,MAAQ,CACN,MAAO,EACT,CACF,EAOMC,EAAoBD,GAAwB,CAChD,GAAI,CACF,MAAME,EAAS,IAAI,IAAIF,CAAG,EAC1B,OAAAE,EAAO,aAAa,OAAO,KAAK,EACzBA,EAAO,SAAS,CACzB,MAAQ,CACN,OAAOF,CACT,CACF,EAEMG,EAAUhB,EAAM,WACpB,CACE,CACE,aAAAiB,EAAe,GACf,OAAAC,EAAS,GACT,QAAAC,EAAU,EACV,YAAAC,EAAc,CAAC,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EACvE,UAAAC,EACA,QAAAC,EAAU,OACV,IAAAC,EAAM,GACN,GAAGC,CACL,EACAC,IACG,CACH,MAAMC,EAAgBC,IACJrB,GAAQ,SAAW,CAAC,GACrB,KAAKG,GAAUkB,EAAI,SAASlB,CAAM,CAAC,EAG9CmB,EAAgB3B,EAAY,CAAC,CAAE,IAAA0B,EAAK,MAAAE,CAAM,IAAsC,CACpF,MAAMC,EAAOD,EACPE,EAAWjB,EAAiBa,CAAG,EACrC,GAAI,CACF,MAAMK,EAAY,IAAI,IAAID,CAAQ,EAClC,GAAI,CAACxB,EAAcyB,EAAU,QAAQ,EACnC,OAAOD,EAET,MAAMpB,EAAWqB,EAAU,SAAS,MAAM,GAAG,EAAE,IAAI,GAAK,GACxD,GAAItB,EAAsBC,CAAQ,EAChC,OAAOoB,GACH,MAAM,GAAG,GACT,IAAIE,GAAQ,CACZ,GACEP,EAAaK,CAAQ,GACrB,gDAAgD,KAAKE,CAAI,GACzD,eAAe,KAAKF,CAAQ,IAAM,GAClC,CACA,MAAMG,EAAOD,EAAK,MAAM,GAAG,EAC3B,OAAOC,EACJ,IAAI,CAACC,EAAGC,IACHA,IAAMF,EAAK,OAAS,EACf,GAAGC,CAAC,IAAIL,EAAO,KAAOA,EAAO,IAAI,IAEnCK,CACR,EACA,KAAK,GAAG,CACb,CACA,OAAOF,CACT,CAAC,EACA,KAAK,GAAG,CAEf,MAAgB,CACd,OAAOF,CACT,CACF,EAAG,CAAC,CAAC,EAECM,EAAepC,EACnB,CAAC,CAAE,OAAAqC,EAAQ,MAAAT,CAAM,IAA6C,CAC5D,MAAMU,EAAgBV,EAAQV,EACxBqB,EAAaZ,EAAc,CAAE,IAAKU,EAAO,CAAC,EAAE,CAAC,EAAG,MAAOC,CAAc,CAAC,EAEtEE,EAAcH,EACjB,OAAO,CAAC,CAAC,CAAEI,CAAU,IAAMA,GAAc,SAASA,EAAY,EAAE,GAAKb,CAAK,EAC1E,IAAI,CAAC,CAACF,CAAG,IAAMC,EAAc,CAAE,IAAAD,EAAK,MAAOY,CAAc,CAAC,CAAC,EAC3D,IAAI,EAEP,OAAOzC,EAAC,UAAmB,OAAQ2C,GAAeD,EAAY,MAAO,eAAeX,CAAK,OAArEA,CAA4E,CAClG,EACA,CAACD,EAAeT,CAAO,CACzB,EAEMwB,EAAazC,EAAQ,IAAM,CAC/B,GAAI,OAAOgB,GAAW,UAAY,CAACA,EAAQ,MAAO,CAAC,EAEnD,MAAMoB,EAASpB,EACZ,QAAQ,UAAW,EAAE,EACrB,QAAQ,SAAU,GAAG,EACrB,MAAM,GAAG,EACT,IAAIe,GAAQA,EAAK,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC,EAGxCW,EAAYrB,GAAOe,EACtB,IAAIL,GAAQA,EAAK,CAAC,CAAC,EACnB,OAAO,OAAO,EACd,IAAIrB,CAAe,EACnB,KAAK,OAAO,GAAK,GAEdiC,EAAUzB,EAAY,IAAIS,GAASQ,EAAa,CAAE,OAAAC,EAAQ,MAAAT,CAAM,CAAC,CAAC,EAClEiB,EAAalB,EAAc,CAAE,IAAKU,EAAO,CAAC,EAAE,CAAC,EAAG,MAAO,KAAOnB,CAAQ,CAAC,EAE7E,MAAO,CACL,GAAG0B,EACH/C,EAAC,OAAkB,IAAKgD,EAAY,UAAW,UAAU7B,CAAY,GAAI,QAASK,EAAS,IAAKsB,EAAY,GAAGpB,GAAtG,SAA4G,CACvH,CACF,EAAG,CAACJ,EAAaH,EAAcW,EAAeT,EAASD,EAAQmB,EAAcd,CAAG,CAAC,EAEjF,OACExB,EAAC,WAAQ,IAAK0B,EAAK,UAAW,yBAAyBJ,CAAS,GAC7D,UAAAsB,EACAnB,EAAK,UACR,CAEJ,CACF,EACA,IAAOuB,EAAQ/B",
4
+ "sourcesContent": ["'use client'\nimport React, { useCallback, useMemo } from 'react'\n\nconst APPEND_FILE_SUFFIX_MATCH_DOMAIN = ['cdn.shopify.com', 'cdn.shopifycdn.net', 'www.facebook.com']\n\nconst MAX_SIZE = 3960\nconst FIXED_MAX_SIZE = 3980\n\nexport interface PictureProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n /** picture \u5185\u90E8img \u6807\u7B7E\u7684\u7C7B\u540D */\n imgClassName?: string\n /** \u56FE\u7247url , \u652F\u6301\u4F20\u5165\u4E0D\u540C\u5206\u8FA8\u7387\u4E0B\u7684\u56FE\u7247\uFF0C\u6BD4\u5982\uFF0C\u683C\u5F0F \"url1 1920\uFF0C url2 1080, url3 767\" */\n source?: string\n /** \u56FE\u7247\u8D28\u91CF */\n quality?: number\n /** \u54CD\u5E94\u5F0F\u56FE\u7247\uFF0C\u5BF9\u5E94picture \u4E0Bsource \u7684max-width */\n deviceSizes?: number[]\n alt?: string\n}\nconst images = {\n domains: ['cdn.shopify.com', 'cdn.shopifycdn.net', 'www.facebook.com'],\n deviceSizes: [375, 390, 768, 1024, 1280, 1440, 1540, 1920],\n}\n\nconst isMatchDomain = (srcDomain: string) => {\n return APPEND_FILE_SUFFIX_MATCH_DOMAIN.some(domain => srcDomain == domain)\n}\nconst idMatchFileExtensions = (fileName: string = '') => /\\.(png|apng|jpg|jpeg|gif|svg|webp|tif)/.test(fileName)\n\n/**\n * \u4ECE URL \u4E2D\u89E3\u6790 alt \u53C2\u6570\n * @param url \u56FE\u7247 URL\n * @returns \u89E3\u6790\u51FA\u7684 alt \u503C\uFF0C\u5982\u679C\u6CA1\u6709\u5219\u8FD4\u56DE\u7A7A\u5B57\u7B26\u4E32\n */\nconst parseAltFromUrl = (url: string): string => {\n try {\n return new URL(url).searchParams.get('alt') || ''\n } catch {\n return ''\n }\n}\n\n/**\n * \u79FB\u9664 URL \u4E2D\u7684 alt \u53C2\u6570\n * @param url \u56FE\u7247 URL\n * @returns \u79FB\u9664 alt \u53C2\u6570\u540E\u7684 URL\n */\nconst removeAltFromUrl = (url: string): string => {\n try {\n const urlObj = new URL(url)\n urlObj.searchParams.delete('alt')\n return urlObj.toString()\n } catch {\n return url\n }\n}\n\nconst Picture = React.forwardRef<HTMLPictureElement, PictureProps>(\n (\n {\n imgClassName = '',\n source = '',\n quality = 2,\n deviceSizes = [375, 390, 767, 1023, 1024, 1279, 1440, 1439, 1539, 1919, 1920],\n className,\n loading = 'lazy',\n alt = '',\n ...rest\n }: PictureProps,\n ref\n ) => {\n const isShopifycdn = (src: string | string[]) => {\n const domains = images?.domains || []\n return domains.some(domain => src.includes(domain))\n }\n\n const imgSrcSetsize = useCallback(({ src, width }: { src: string; width: number }) => {\n const size = width\n const cleanSrc = removeAltFromUrl(src)\n try {\n const parsedUrl = new URL(cleanSrc)\n if (!isMatchDomain(parsedUrl.hostname)) {\n return cleanSrc\n }\n const fileName = parsedUrl.pathname.split('/').pop() || ''\n if (idMatchFileExtensions(fileName)) {\n return cleanSrc\n ?.split('/')\n ?.map(item => {\n if (\n isShopifycdn(cleanSrc) &&\n /\\.(png|apng|jpg|jpeg|gif|svg|webp|tif)(\\?.*)?/.test(item) &&\n /_[0-9]{2,4}x/.test(cleanSrc) === false\n ) {\n const name = item.split('.')\n return name\n .map((v, i) => {\n if (i === name.length - 2) {\n return `${v}_${size < 3960 ? size : 3980}x`\n }\n return v\n })\n .join('.')\n }\n return item\n })\n .join('/')\n }\n } catch (error) {\n return cleanSrc\n }\n }, [])\n\n const sourceSrcSet = useCallback(\n ({ srcArr, width }: { srcArr: string[][]; width: number }) => {\n const computedWidth = width * quality\n const defaultSrc = imgSrcSetsize({ src: srcArr[0][0], width: computedWidth })\n \n const matchingSrc = srcArr\n .filter(([, breakpoint]) => breakpoint && parseInt(breakpoint, 10) >= width)\n .map(([src]) => imgSrcSetsize({ src, width: computedWidth }))\n .pop()\n \n return <source key={width} srcSet={matchingSrc || defaultSrc} media={`(max-width: ${width}px)`} />\n },\n [imgSrcSetsize, quality]\n )\n\n const sourceList = useMemo(() => {\n if (typeof source !== 'string' || !source) return []\n \n const srcArr = source\n .replace(/[\\r\\n]/g, '')\n .replace(/\\s\\s+/g, ' ')\n .split(',')\n .map(item => item.split(' ').filter(Boolean))\n\n // \u4ECE URL \u4E2D\u89E3\u6790 alt \u53C2\u6570\uFF0C\u4F18\u5148\u4F7F\u7528\u7B2C\u4E00\u4E2A\u6709 alt \u53C2\u6570\u7684 URL\n const parsedAlt = alt || srcArr\n .map(item => item[0])\n .filter(Boolean)\n .map(parseAltFromUrl)\n .find(Boolean) || ''\n\n const sources = deviceSizes.map(width => sourceSrcSet({ srcArr, width }))\n const defaultImg = imgSrcSetsize({ src: srcArr[0][0], width: 1920 * quality })\n\n return [\n ...sources,\n <img key=\"default\" src={defaultImg} className={`w-full ${imgClassName}`} loading={loading} alt={parsedAlt} {...rest} />\n ]\n }, [deviceSizes, imgClassName, imgSrcSetsize, quality, source, sourceSrcSet, alt])\n\n return (\n <picture ref={ref} className={`block overflow-hidden ${className}`}>\n {sourceList}\n {rest.children}\n </picture>\n )\n }\n)\nexport default Picture\n"],
5
+ "mappings": "aA2He,cAAAA,EA+BT,QAAAC,MA/BS,oBA1Hf,OAAOC,GAAS,eAAAC,EAAa,WAAAC,MAAe,QAE5C,MAAMC,EAAkC,CAAC,kBAAmB,qBAAsB,kBAAkB,EAE9FC,EAAW,KACXC,EAAiB,KAajBC,EAAS,CACb,QAAS,CAAC,kBAAmB,qBAAsB,kBAAkB,EACrE,YAAa,CAAC,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAI,CAC3D,EAEMC,EAAiBC,GACdL,EAAgC,KAAKM,GAAUD,GAAaC,CAAM,EAErEC,EAAwB,CAACC,EAAmB,KAAO,yCAAyC,KAAKA,CAAQ,EAOzGC,EAAmBC,GAAwB,CAC/C,GAAI,CACF,OAAO,IAAI,IAAIA,CAAG,EAAE,aAAa,IAAI,KAAK,GAAK,EACjD,MAAQ,CACN,MAAO,EACT,CACF,EAOMC,EAAoBD,GAAwB,CAChD,GAAI,CACF,MAAME,EAAS,IAAI,IAAIF,CAAG,EAC1B,OAAAE,EAAO,aAAa,OAAO,KAAK,EACzBA,EAAO,SAAS,CACzB,MAAQ,CACN,OAAOF,CACT,CACF,EAEMG,EAAUhB,EAAM,WACpB,CACE,CACE,aAAAiB,EAAe,GACf,OAAAC,EAAS,GACT,QAAAC,EAAU,EACV,YAAAC,EAAc,CAAC,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAC5E,UAAAC,EACA,QAAAC,EAAU,OACV,IAAAC,EAAM,GACN,GAAGC,CACL,EACAC,IACG,CACH,MAAMC,EAAgBC,IACJrB,GAAQ,SAAW,CAAC,GACrB,KAAKG,GAAUkB,EAAI,SAASlB,CAAM,CAAC,EAG9CmB,EAAgB3B,EAAY,CAAC,CAAE,IAAA0B,EAAK,MAAAE,CAAM,IAAsC,CACpF,MAAMC,EAAOD,EACPE,EAAWjB,EAAiBa,CAAG,EACrC,GAAI,CACF,MAAMK,EAAY,IAAI,IAAID,CAAQ,EAClC,GAAI,CAACxB,EAAcyB,EAAU,QAAQ,EACnC,OAAOD,EAET,MAAMpB,EAAWqB,EAAU,SAAS,MAAM,GAAG,EAAE,IAAI,GAAK,GACxD,GAAItB,EAAsBC,CAAQ,EAChC,OAAOoB,GACH,MAAM,GAAG,GACT,IAAIE,GAAQ,CACZ,GACEP,EAAaK,CAAQ,GACrB,gDAAgD,KAAKE,CAAI,GACzD,eAAe,KAAKF,CAAQ,IAAM,GAClC,CACA,MAAMG,EAAOD,EAAK,MAAM,GAAG,EAC3B,OAAOC,EACJ,IAAI,CAACC,EAAGC,IACHA,IAAMF,EAAK,OAAS,EACf,GAAGC,CAAC,IAAIL,EAAO,KAAOA,EAAO,IAAI,IAEnCK,CACR,EACA,KAAK,GAAG,CACb,CACA,OAAOF,CACT,CAAC,EACA,KAAK,GAAG,CAEf,MAAgB,CACd,OAAOF,CACT,CACF,EAAG,CAAC,CAAC,EAECM,EAAepC,EACnB,CAAC,CAAE,OAAAqC,EAAQ,MAAAT,CAAM,IAA6C,CAC5D,MAAMU,EAAgBV,EAAQV,EACxBqB,EAAaZ,EAAc,CAAE,IAAKU,EAAO,CAAC,EAAE,CAAC,EAAG,MAAOC,CAAc,CAAC,EAEtEE,EAAcH,EACjB,OAAO,CAAC,CAAC,CAAEI,CAAU,IAAMA,GAAc,SAASA,EAAY,EAAE,GAAKb,CAAK,EAC1E,IAAI,CAAC,CAACF,CAAG,IAAMC,EAAc,CAAE,IAAAD,EAAK,MAAOY,CAAc,CAAC,CAAC,EAC3D,IAAI,EAEP,OAAOzC,EAAC,UAAmB,OAAQ2C,GAAeD,EAAY,MAAO,eAAeX,CAAK,OAArEA,CAA4E,CAClG,EACA,CAACD,EAAeT,CAAO,CACzB,EAEMwB,EAAazC,EAAQ,IAAM,CAC/B,GAAI,OAAOgB,GAAW,UAAY,CAACA,EAAQ,MAAO,CAAC,EAEnD,MAAMoB,EAASpB,EACZ,QAAQ,UAAW,EAAE,EACrB,QAAQ,SAAU,GAAG,EACrB,MAAM,GAAG,EACT,IAAIe,GAAQA,EAAK,MAAM,GAAG,EAAE,OAAO,OAAO,CAAC,EAGxCW,EAAYrB,GAAOe,EACtB,IAAIL,GAAQA,EAAK,CAAC,CAAC,EACnB,OAAO,OAAO,EACd,IAAIrB,CAAe,EACnB,KAAK,OAAO,GAAK,GAEdiC,EAAUzB,EAAY,IAAIS,GAASQ,EAAa,CAAE,OAAAC,EAAQ,MAAAT,CAAM,CAAC,CAAC,EAClEiB,EAAalB,EAAc,CAAE,IAAKU,EAAO,CAAC,EAAE,CAAC,EAAG,MAAO,KAAOnB,CAAQ,CAAC,EAE7E,MAAO,CACL,GAAG0B,EACH/C,EAAC,OAAkB,IAAKgD,EAAY,UAAW,UAAU7B,CAAY,GAAI,QAASK,EAAS,IAAKsB,EAAY,GAAGpB,GAAtG,SAA4G,CACvH,CACF,EAAG,CAACJ,EAAaH,EAAcW,EAAeT,EAASD,EAAQmB,EAAcd,CAAG,CAAC,EAEjF,OACExB,EAAC,WAAQ,IAAK0B,EAAK,UAAW,yBAAyBJ,CAAS,GAC7D,UAAAsB,EACAnB,EAAK,UACR,CAEJ,CACF,EACA,IAAOuB,EAAQ/B",
6
6
  "names": ["jsx", "jsxs", "React", "useCallback", "useMemo", "APPEND_FILE_SUFFIX_MATCH_DOMAIN", "MAX_SIZE", "FIXED_MAX_SIZE", "images", "isMatchDomain", "srcDomain", "domain", "idMatchFileExtensions", "fileName", "parseAltFromUrl", "url", "removeAltFromUrl", "urlObj", "Picture", "imgClassName", "source", "quality", "deviceSizes", "className", "loading", "alt", "rest", "ref", "isShopifycdn", "src", "imgSrcSetsize", "width", "size", "cleanSrc", "parsedUrl", "item", "name", "v", "i", "sourceSrcSet", "srcArr", "computedWidth", "defaultSrc", "matchingSrc", "breakpoint", "sourceList", "parsedAlt", "sources", "defaultImg", "picture_default"]
7
7
  }
@@ -0,0 +1,69 @@
1
+ import { type RefObject } from 'react';
2
+ export interface UseExposureDetectionOptions {
3
+ /**
4
+ * 唯一标识,用于判断是否已曝光
5
+ * 如果不提供,将使用元素的唯一标识(如果可能)
6
+ */
7
+ exposureKey?: string;
8
+ /**
9
+ * 可见性阈值,0-1 之间,默认 0.5(50%)
10
+ */
11
+ threshold?: number;
12
+ /**
13
+ * 停留时间(毫秒),默认 2000ms
14
+ */
15
+ duration?: number;
16
+ /**
17
+ * 是否只触发一次,默认 true
18
+ */
19
+ once?: boolean;
20
+ /**
21
+ * 曝光回调函数
22
+ */
23
+ onExposure?: () => void;
24
+ /**
25
+ * IntersectionObserver 的 rootMargin
26
+ */
27
+ rootMargin?: string;
28
+ }
29
+ /**
30
+ * 曝光检测 Hook
31
+ * 使用 IntersectionObserver 检测元素是否至少 50% 可见且停留时间超过指定时间
32
+ * 确保在整个页面生命周期中只曝光一次
33
+ *
34
+ * @param elementRef - 要检测的元素的 ref
35
+ * @param options - 配置选项
36
+ * @returns 返回清除计时器的方法(用于切换时清理)
37
+ *
38
+ * @example
39
+ * ```tsx
40
+ * const MyComponent = () => {
41
+ * const ref = useRef<HTMLDivElement>(null)
42
+ * const { clearTimer } = useExposureDetection(ref, {
43
+ * exposureKey: 'my-component-1',
44
+ * threshold: 0.5,
45
+ * duration: 2000,
46
+ * onExposure: () => {
47
+ * console.log('元素已曝光')
48
+ * }
49
+ * })
50
+ *
51
+ * return <div ref={ref}>内容</div>
52
+ * }
53
+ * ```
54
+ */
55
+ export declare const useExposureDetection: (elementRef: RefObject<HTMLElement>, options?: UseExposureDetectionOptions) => {
56
+ clearTimer: () => void;
57
+ };
58
+ /**
59
+ * 清除指定 key 的曝光记录(用于测试或特殊场景)
60
+ */
61
+ export declare const clearExposureRecord: (key: string) => void;
62
+ /**
63
+ * 清除所有曝光记录(用于测试或特殊场景)
64
+ */
65
+ export declare const clearAllExposureRecords: () => void;
66
+ /**
67
+ * 检查指定 key 是否已曝光
68
+ */
69
+ export declare const hasExposed: (key: string) => boolean;
@@ -0,0 +1,2 @@
1
+ import{useRef as E,useEffect as y,useCallback as h}from"react";const o=new Set,K=(r,m={})=>{const{exposureKey:i,threshold:l=.5,duration:d=2e3,once:s=!0,onExposure:a,rootMargin:x="0px"}=m,e=E(null),c=E(null),f=h(()=>{if(i)return i;if(r.current&&!c.current){const u=r.current.getAttribute("data-exposure-id");if(u)return c.current=u,u;const n=[];let t=r.current;for(;t&&t!==document.body;){const p=Array.from(t.parentElement?.children||[]).indexOf(t);n.unshift(`${t.tagName.toLowerCase()}[${p}]`),t=t.parentElement}return c.current=n.join(" > "),c.current}return c.current||""},[i,r]),g=h(()=>{e.current&&(clearTimeout(e.current),e.current=null)},[]);return y(()=>{const u=r.current;if(!u||!a)return;const n=f();if(!n){console.warn("useExposureDetection: \u65E0\u6CD5\u751F\u6210\u552F\u4E00\u7684 exposureKey\uFF0C\u8BF7\u63D0\u4F9B exposureKey \u53C2\u6570");return}if(s&&o.has(n))return;const t=new IntersectionObserver(p=>{p.forEach(b=>{b.intersectionRatio>=l?(!s||!o.has(n))&&!e.current&&(e.current=setTimeout(()=>{s&&o.has(n)||(s&&o.add(n),a())},d)):e.current&&(clearTimeout(e.current),e.current=null)})},{threshold:l,rootMargin:x});return t.observe(u),()=>{t.disconnect(),e.current&&(clearTimeout(e.current),e.current=null)}},[r,a,l,d,s,x,f]),{clearTimer:g}},O=r=>{o.delete(r)},w=()=>{o.clear()},v=r=>o.has(r);export{w as clearAllExposureRecords,O as clearExposureRecord,v as hasExposed,K as useExposureDetection};
2
+ //# sourceMappingURL=useExposureDetection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/hooks/useExposureDetection.ts"],
4
+ "sourcesContent": ["import { type RefObject, useRef, useEffect, useCallback } from 'react'\n\n// \u5168\u5C40\u66DD\u5149\u8BB0\u5F55\uFF0C\u786E\u4FDD\u6BCF\u4E2A\u5143\u7D20\u5728\u6574\u4E2A\u9875\u9762\u751F\u547D\u5468\u671F\u4E2D\u53EA\u66DD\u5149\u4E00\u6B21\nconst exposedElementsSet = new Set<string>()\n\nexport interface UseExposureDetectionOptions {\n /**\n * \u552F\u4E00\u6807\u8BC6\uFF0C\u7528\u4E8E\u5224\u65AD\u662F\u5426\u5DF2\u66DD\u5149\n * \u5982\u679C\u4E0D\u63D0\u4F9B\uFF0C\u5C06\u4F7F\u7528\u5143\u7D20\u7684\u552F\u4E00\u6807\u8BC6\uFF08\u5982\u679C\u53EF\u80FD\uFF09\n */\n exposureKey?: string\n /**\n * \u53EF\u89C1\u6027\u9608\u503C\uFF0C0-1 \u4E4B\u95F4\uFF0C\u9ED8\u8BA4 0.5\uFF0850%\uFF09\n */\n threshold?: number\n /**\n * \u505C\u7559\u65F6\u95F4\uFF08\u6BEB\u79D2\uFF09\uFF0C\u9ED8\u8BA4 2000ms\n */\n duration?: number\n /**\n * \u662F\u5426\u53EA\u89E6\u53D1\u4E00\u6B21\uFF0C\u9ED8\u8BA4 true\n */\n once?: boolean\n /**\n * \u66DD\u5149\u56DE\u8C03\u51FD\u6570\n */\n onExposure?: () => void\n /**\n * IntersectionObserver \u7684 rootMargin\n */\n rootMargin?: string\n}\n\n/**\n * \u66DD\u5149\u68C0\u6D4B Hook\n * \u4F7F\u7528 IntersectionObserver \u68C0\u6D4B\u5143\u7D20\u662F\u5426\u81F3\u5C11 50% \u53EF\u89C1\u4E14\u505C\u7559\u65F6\u95F4\u8D85\u8FC7\u6307\u5B9A\u65F6\u95F4\n * \u786E\u4FDD\u5728\u6574\u4E2A\u9875\u9762\u751F\u547D\u5468\u671F\u4E2D\u53EA\u66DD\u5149\u4E00\u6B21\n *\n * @param elementRef - \u8981\u68C0\u6D4B\u7684\u5143\u7D20\u7684 ref\n * @param options - \u914D\u7F6E\u9009\u9879\n * @returns \u8FD4\u56DE\u6E05\u9664\u8BA1\u65F6\u5668\u7684\u65B9\u6CD5\uFF08\u7528\u4E8E\u5207\u6362\u65F6\u6E05\u7406\uFF09\n *\n * @example\n * ```tsx\n * const MyComponent = () => {\n * const ref = useRef<HTMLDivElement>(null)\n * const { clearTimer } = useExposureDetection(ref, {\n * exposureKey: 'my-component-1',\n * threshold: 0.5,\n * duration: 2000,\n * onExposure: () => {\n * console.log('\u5143\u7D20\u5DF2\u66DD\u5149')\n * }\n * })\n *\n * return <div ref={ref}>\u5185\u5BB9</div>\n * }\n * ```\n */\nexport const useExposureDetection = (\n elementRef: RefObject<HTMLElement>,\n options: UseExposureDetectionOptions = {}\n) => {\n const {\n exposureKey,\n threshold = 0.5,\n duration = 2000,\n once = true,\n onExposure,\n rootMargin = '0px',\n } = options\n\n const exposureTimerRef = useRef<NodeJS.Timeout | null>(null)\n const generatedKeyRef = useRef<string | null>(null)\n\n // \u751F\u6210\u552F\u4E00\u7684\u66DD\u5149 key\n const getExposureKey = useCallback(() => {\n if (exposureKey) {\n return exposureKey\n }\n // \u5982\u679C\u6CA1\u6709\u63D0\u4F9B key\uFF0C\u5C1D\u8BD5\u4F7F\u7528\u5143\u7D20\u7684\u552F\u4E00\u6807\u8BC6\n if (elementRef.current && !generatedKeyRef.current) {\n // \u4F7F\u7528\u5143\u7D20\u7684 data-exposure-id \u5C5E\u6027\uFF0C\u6216\u8005\u751F\u6210\u4E00\u4E2A\u57FA\u4E8E\u4F4D\u7F6E\u7684 key\n const dataId = elementRef.current.getAttribute('data-exposure-id')\n if (dataId) {\n generatedKeyRef.current = dataId\n return dataId\n }\n // \u5982\u679C\u6CA1\u6709 data-exposure-id\uFF0C\u4F7F\u7528\u5143\u7D20\u5728 DOM \u4E2D\u7684\u4F4D\u7F6E\u751F\u6210 key\n const path: string[] = []\n let el: Element | null = elementRef.current\n while (el && el !== document.body) {\n const index = Array.from(el.parentElement?.children || []).indexOf(el)\n path.unshift(`${el.tagName.toLowerCase()}[${index}]`)\n el = el.parentElement\n }\n generatedKeyRef.current = path.join(' > ')\n return generatedKeyRef.current\n }\n return generatedKeyRef.current || ''\n }, [exposureKey, elementRef])\n\n // \u6E05\u9664\u8BA1\u65F6\u5668\u7684\u65B9\u6CD5\uFF08\u4E0D\u91CD\u7F6E\u66DD\u5149\u72B6\u6001\uFF09\n const clearTimer = useCallback(() => {\n if (exposureTimerRef.current) {\n clearTimeout(exposureTimerRef.current)\n exposureTimerRef.current = null\n }\n }, [])\n\n useEffect(() => {\n const element = elementRef.current\n if (!element || !onExposure) return\n\n const key = getExposureKey()\n if (!key) {\n console.warn('useExposureDetection: \u65E0\u6CD5\u751F\u6210\u552F\u4E00\u7684 exposureKey\uFF0C\u8BF7\u63D0\u4F9B exposureKey \u53C2\u6570')\n return\n }\n\n // \u5982\u679C\u5DF2\u7ECF\u66DD\u5149\u8FC7\u4E14\u8BBE\u7F6E\u4E86 once\uFF0C\u76F4\u63A5\u8FD4\u56DE\uFF0C\u4E0D\u518D\u76D1\u542C\n if (once && exposedElementsSet.has(key)) {\n return\n }\n\n const observer = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n // \u5982\u679C\u53EF\u89C1\u6027\u8FBE\u5230\u9608\u503C\uFF08\u9ED8\u8BA4 50%\uFF09\n if (entry.intersectionRatio >= threshold) {\n // \u5982\u679C\u8FD8\u6CA1\u6709\u89E6\u53D1\u8FC7\u66DD\u5149\u4E14\u6CA1\u6709\u6B63\u5728\u8BA1\u65F6\u7684\u8BA1\u65F6\u5668\uFF0C\u5F00\u59CB\u8BA1\u65F6\n if ((!once || !exposedElementsSet.has(key)) && !exposureTimerRef.current) {\n exposureTimerRef.current = setTimeout(() => {\n // \u518D\u6B21\u68C0\u67E5\u662F\u5426\u5DF2\u66DD\u5149\uFF08\u9632\u6B62\u5728\u8BA1\u65F6\u671F\u95F4\u88AB\u5176\u4ED6\u64CD\u4F5C\u89E6\u53D1\uFF09\n if (once && exposedElementsSet.has(key)) return\n\n // \u6807\u8BB0\u4E3A\u5DF2\u66DD\u5149\n if (once) {\n exposedElementsSet.add(key)\n }\n // \u89E6\u53D1\u66DD\u5149\u4E8B\u4EF6\n onExposure()\n }, duration)\n }\n } else {\n // \u5982\u679C\u53EF\u89C1\u6027\u4F4E\u4E8E\u9608\u503C\uFF0C\u6E05\u9664\u8BA1\u65F6\u5668\uFF08\u4F46\u4E0D\u79FB\u9664\u66DD\u5149\u6807\u8BB0\uFF09\n if (exposureTimerRef.current) {\n clearTimeout(exposureTimerRef.current)\n exposureTimerRef.current = null\n }\n }\n })\n },\n {\n threshold: threshold,\n rootMargin: rootMargin,\n }\n )\n\n observer.observe(element)\n\n return () => {\n observer.disconnect()\n if (exposureTimerRef.current) {\n clearTimeout(exposureTimerRef.current)\n exposureTimerRef.current = null\n }\n }\n }, [elementRef, onExposure, threshold, duration, once, rootMargin, getExposureKey])\n\n return { clearTimer }\n}\n\n/**\n * \u6E05\u9664\u6307\u5B9A key \u7684\u66DD\u5149\u8BB0\u5F55\uFF08\u7528\u4E8E\u6D4B\u8BD5\u6216\u7279\u6B8A\u573A\u666F\uFF09\n */\nexport const clearExposureRecord = (key: string) => {\n exposedElementsSet.delete(key)\n}\n\n/**\n * \u6E05\u9664\u6240\u6709\u66DD\u5149\u8BB0\u5F55\uFF08\u7528\u4E8E\u6D4B\u8BD5\u6216\u7279\u6B8A\u573A\u666F\uFF09\n */\nexport const clearAllExposureRecords = () => {\n exposedElementsSet.clear()\n}\n\n/**\n * \u68C0\u67E5\u6307\u5B9A key \u662F\u5426\u5DF2\u66DD\u5149\n */\nexport const hasExposed = (key: string): boolean => {\n return exposedElementsSet.has(key)\n}\n\n"],
5
+ "mappings": "AAAA,OAAyB,UAAAA,EAAQ,aAAAC,EAAW,eAAAC,MAAmB,QAG/D,MAAMC,EAAqB,IAAI,IAwDlBC,EAAuB,CAClCC,EACAC,EAAuC,CAAC,IACrC,CACH,KAAM,CACJ,YAAAC,EACA,UAAAC,EAAY,GACZ,SAAAC,EAAW,IACX,KAAAC,EAAO,GACP,WAAAC,EACA,WAAAC,EAAa,KACf,EAAIN,EAEEO,EAAmBb,EAA8B,IAAI,EACrDc,EAAkBd,EAAsB,IAAI,EAG5Ce,EAAiBb,EAAY,IAAM,CACvC,GAAIK,EACF,OAAOA,EAGT,GAAIF,EAAW,SAAW,CAACS,EAAgB,QAAS,CAElD,MAAME,EAASX,EAAW,QAAQ,aAAa,kBAAkB,EACjE,GAAIW,EACF,OAAAF,EAAgB,QAAUE,EACnBA,EAGT,MAAMC,EAAiB,CAAC,EACxB,IAAIC,EAAqBb,EAAW,QACpC,KAAOa,GAAMA,IAAO,SAAS,MAAM,CACjC,MAAMC,EAAQ,MAAM,KAAKD,EAAG,eAAe,UAAY,CAAC,CAAC,EAAE,QAAQA,CAAE,EACrED,EAAK,QAAQ,GAAGC,EAAG,QAAQ,YAAY,CAAC,IAAIC,CAAK,GAAG,EACpDD,EAAKA,EAAG,aACV,CACA,OAAAJ,EAAgB,QAAUG,EAAK,KAAK,KAAK,EAClCH,EAAgB,OACzB,CACA,OAAOA,EAAgB,SAAW,EACpC,EAAG,CAACP,EAAaF,CAAU,CAAC,EAGtBe,EAAalB,EAAY,IAAM,CAC/BW,EAAiB,UACnB,aAAaA,EAAiB,OAAO,EACrCA,EAAiB,QAAU,KAE/B,EAAG,CAAC,CAAC,EAEL,OAAAZ,EAAU,IAAM,CACd,MAAMoB,EAAUhB,EAAW,QAC3B,GAAI,CAACgB,GAAW,CAACV,EAAY,OAE7B,MAAMW,EAAMP,EAAe,EAC3B,GAAI,CAACO,EAAK,CACR,QAAQ,KAAK,+HAA8D,EAC3E,MACF,CAGA,GAAIZ,GAAQP,EAAmB,IAAImB,CAAG,EACpC,OAGF,MAAMC,EAAW,IAAI,qBACnBC,GAAW,CACTA,EAAQ,QAAQC,GAAS,CAEnBA,EAAM,mBAAqBjB,GAExB,CAACE,GAAQ,CAACP,EAAmB,IAAImB,CAAG,IAAM,CAACT,EAAiB,UAC/DA,EAAiB,QAAU,WAAW,IAAM,CAEtCH,GAAQP,EAAmB,IAAImB,CAAG,IAGlCZ,GACFP,EAAmB,IAAImB,CAAG,EAG5BX,EAAW,EACb,EAAGF,CAAQ,GAITI,EAAiB,UACnB,aAAaA,EAAiB,OAAO,EACrCA,EAAiB,QAAU,KAGjC,CAAC,CACH,EACA,CACE,UAAWL,EACX,WAAYI,CACd,CACF,EAEA,OAAAW,EAAS,QAAQF,CAAO,EAEjB,IAAM,CACXE,EAAS,WAAW,EAChBV,EAAiB,UACnB,aAAaA,EAAiB,OAAO,EACrCA,EAAiB,QAAU,KAE/B,CACF,EAAG,CAACR,EAAYM,EAAYH,EAAWC,EAAUC,EAAME,EAAYG,CAAc,CAAC,EAE3E,CAAE,WAAAK,CAAW,CACtB,EAKaM,EAAuBJ,GAAgB,CAClDnB,EAAmB,OAAOmB,CAAG,CAC/B,EAKaK,EAA0B,IAAM,CAC3CxB,EAAmB,MAAM,CAC3B,EAKayB,EAAcN,GAClBnB,EAAmB,IAAImB,CAAG",
6
+ "names": ["useRef", "useEffect", "useCallback", "exposedElementsSet", "useExposureDetection", "elementRef", "options", "exposureKey", "threshold", "duration", "once", "onExposure", "rootMargin", "exposureTimerRef", "generatedKeyRef", "getExposureKey", "dataId", "path", "el", "index", "clearTimer", "element", "key", "observer", "entries", "entry", "clearExposureRecord", "clearAllExposureRecords", "hasExposed"]
7
+ }
@@ -1,60 +1,6 @@
1
- import type { StoryObj } from '@storybook/react';
2
- import React from 'react';
3
- declare const meta: {
4
- title: string;
5
- component: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & {
6
- showNavigation?: boolean;
7
- navigationPosition?: "inner" | "outter";
8
- opts?: Partial<import("node_modules/embla-carousel/esm/components/Options.js").OptionsType> | undefined;
9
- plugins?: import("embla-carousel").CreatePluginType<import("node_modules/embla-carousel/esm/components/Plugins.js").LoosePluginType, {}>[] | undefined;
10
- orientation?: "horizontal" | "vertical";
11
- setApi?: (api: import("../index.js").CarouselApi) => void;
12
- } & React.RefAttributes<HTMLDivElement>>;
13
- subcomponents: {
14
- CarouselContent: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
15
- CarouselItem: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
16
- };
17
- parameters: {
18
- layout: string;
19
- docs: {
20
- description: {
21
- component: string;
22
- };
23
- };
24
- };
25
- tags: string[];
26
- argTypes: {
27
- opts: {
28
- description: string;
29
- control: {
30
- type: "object";
31
- };
32
- };
33
- showNavigation: {
34
- description: string;
35
- control: {
36
- type: "boolean";
37
- };
38
- };
39
- orientation: {
40
- description: string;
41
- control: {
42
- type: "select";
43
- };
44
- options: string[];
45
- };
46
- setApi: {
47
- description: string;
48
- };
49
- plugins: {
50
- description: string;
51
- };
52
- };
53
- args: {
54
- opts: {};
55
- orientation: "horizontal";
56
- };
57
- };
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { Carousel } from '../components/index.js';
3
+ declare const meta: Meta<typeof Carousel>;
58
4
  export default meta;
59
5
  type Story = StoryObj<typeof meta>;
60
6
  export declare const Default: Story;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/stories/carousel.stories.tsx"],
4
- "sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n Card,\n CardContent,\n} from '../components/index.js'\n\nimport React from 'react'\n\nconst meta = {\n title: 'Components/Carousel',\n component: Carousel,\n subcomponents: {\n CarouselContent,\n CarouselItem,\n },\n parameters: {\n layout: 'fullscreen',\n docs: {\n description: {\n component: '\u8F6E\u64AD\u7EC4\u4EF6, \u57FA\u4E8E\u8F7B\u91CF\u7EA7\u7EC4\u4EF6embla-carousel-react, https://www.embla-carousel.com/get-started/react/',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n opts: {\n description:\n 'embla-carousel-react \u7684\u914D\u7F6E\u53C2\u6570, \u53EF\u4EE5\u914D\u7F6Eloop: true \u5F00\u542F\u5FAA\u73AF\uFF0Calign: center | start | end \u5BF9\u9F50\u65B9\u5F0F\uFF0C \u67E5\u770B https://www.embla-carousel.com/api/options/',\n control: {\n type: 'object',\n },\n },\n showNavigation: {\n description: '\u662F\u5426\u663E\u793A\u5BFC\u822A\u70B9',\n control: {\n type: 'boolean',\n },\n },\n orientation: {\n description: '\u8F6E\u64AD\u65B9\u5411',\n control: {\n type: 'select',\n },\n options: ['horizontal', 'vertical'],\n },\n setApi: {\n description: '\u8BBE\u7F6Eapi, \u53EF\u4EE5\u901A\u8FC7\u8FD9\u4E2A\u51FD\u6570\u83B7\u53D6carousel API \u5B9E\u4F8B\uFF0C\u62FF\u5230api \u5B9E\u4F8B\u540E,\u53EF\u4EE5\u8C03\u7528api \u5B9E\u4F8B\u7684\u65B9\u6CD5\u6216\u8005\u5C5E\u6027',\n },\n plugins: {\n description:\n 'embla-carousel-react \u7684\u63D2\u4EF6,embla-carousel \u7684 Autoplay, Wheel Gesture \u7B49\u9AD8\u7EA7\u529F\u80FD \u901A\u8FC7\u63D2\u4EF6\u652F\u6301 https://www.embla-carousel.com/plugins/',\n },\n },\n args: {\n opts: {},\n orientation: 'horizontal',\n },\n} satisfies Meta<typeof Carousel>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\nexport const Default: Story = {\n args: {\n opts: {\n align: 'start',\n },\n children: (\n <>\n <CarouselContent>\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"basis-1/3\">\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-3xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </>\n ),\n },\n}\n\nexport const Vertical: Story = {\n render() {\n return (\n <Carousel\n opts={{\n align: 'start',\n }}\n orientation=\"vertical\"\n className=\"w-full max-w-xs\"\n >\n <CarouselContent className=\"-mt-1 h-[200px]\">\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"basis-1/2 pt-1\">\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-3xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n )\n },\n}\n\nconst images = [\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388_mo_path_1.png?v=1741689169',\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388.png?v=1741689169',\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388_1_mo_never_missing.png?v=1741689169',\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388_mo_path_1.png?v=1741689169',\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388.png?v=1741689169',\n]\nexport const OverrideClassName: Story = {\n render() {\n return (\n <Carousel\n opts={{\n loop: true,\n align: 'center',\n }}\n showNavigation={true}\n navigationPosition=\"outter\"\n className=\"w-full max-w-xl\"\n >\n <CarouselContent className=\"\">\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"basis-1/2\">\n <div className=\"p-1\">\n <img src={images[index]} alt=\"\" />\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious className=\"left-4\" />\n <CarouselNext className=\"right-4\" />\n </Carousel>\n )\n },\n}\nOverrideClassName.parameters = {\n layout: 'padded',\n}\n"],
5
- "mappings": "AAyEM,mBAAAA,EAOc,OAAAC,EAPd,QAAAC,MAAA,oBAxEN,OACE,YAAAC,EACA,mBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,oBAAAC,EACA,QAAAC,EACA,eAAAC,MACK,yBAEP,MAAkB,QAElB,MAAMC,EAAO,CACX,MAAO,sBACP,UAAWP,EACX,cAAe,CACb,gBAAAC,EACA,aAAAC,CACF,EACA,WAAY,CACV,OAAQ,aACR,KAAM,CACJ,YAAa,CACX,UAAW,6IACb,CACF,CACF,EACA,KAAM,CAAC,UAAU,EACjB,SAAU,CACR,KAAM,CACJ,YACE,4OACF,QAAS,CACP,KAAM,QACR,CACF,EACA,eAAgB,CACd,YAAa,6CACb,QAAS,CACP,KAAM,SACR,CACF,EACA,YAAa,CACX,YAAa,2BACb,QAAS,CACP,KAAM,QACR,EACA,QAAS,CAAC,aAAc,UAAU,CACpC,EACA,OAAQ,CACN,YAAa,mOACf,EACA,QAAS,CACP,YACE,oMACJ,CACF,EACA,KAAM,CACJ,KAAM,CAAC,EACP,YAAa,YACf,CACF,EAEA,IAAOM,EAAQD,EAGR,MAAME,EAAiB,CAC5B,KAAM,CACJ,KAAM,CACJ,MAAO,OACT,EACA,SACEV,EAAAF,EAAA,CACE,UAAAC,EAACG,EAAA,CACE,eAAM,KAAK,CAAE,OAAQ,CAAE,CAAC,EAAE,IAAI,CAACS,EAAGC,IACjCb,EAACI,EAAA,CAAyB,UAAU,YAClC,SAAAJ,EAAC,OAAI,UAAU,MACb,SAAAA,EAACO,EAAA,CACC,SAAAP,EAACQ,EAAA,CAAY,UAAU,qDACrB,SAAAR,EAAC,QAAK,UAAU,yBAA0B,SAAAa,EAAQ,EAAE,EACtD,EACF,EACF,GAPiBA,CAQnB,CACD,EACH,EACAb,EAACM,EAAA,EAAiB,EAClBN,EAACK,EAAA,EAAa,GAChB,CAEJ,CACF,EAEaS,EAAkB,CAC7B,QAAS,CACP,OACEb,EAACC,EAAA,CACC,KAAM,CACJ,MAAO,OACT,EACA,YAAY,WACZ,UAAU,kBAEV,UAAAF,EAACG,EAAA,CAAgB,UAAU,kBACxB,eAAM,KAAK,CAAE,OAAQ,CAAE,CAAC,EAAE,IAAI,CAACS,EAAGC,IACjCb,EAACI,EAAA,CAAyB,UAAU,iBAClC,SAAAJ,EAAC,OAAI,UAAU,MACb,SAAAA,EAACO,EAAA,CACC,SAAAP,EAACQ,EAAA,CAAY,UAAU,qDACrB,SAAAR,EAAC,QAAK,UAAU,yBAA0B,SAAAa,EAAQ,EAAE,EACtD,EACF,EACF,GAPiBA,CAQnB,CACD,EACH,EACAb,EAACM,EAAA,EAAiB,EAClBN,EAACK,EAAA,EAAa,GAChB,CAEJ,CACF,EAEMU,EAAS,CACb,qGACA,2FACA,8GACA,qGACA,0FACF,EACaC,EAA2B,CACtC,QAAS,CACP,OACEf,EAACC,EAAA,CACC,KAAM,CACJ,KAAM,GACN,MAAO,QACT,EACA,eAAgB,GAChB,mBAAmB,SACnB,UAAU,kBAEV,UAAAF,EAACG,EAAA,CAAgB,UAAU,GACxB,eAAM,KAAK,CAAE,OAAQ,CAAE,CAAC,EAAE,IAAI,CAACS,EAAGC,IACjCb,EAACI,EAAA,CAAyB,UAAU,YAClC,SAAAJ,EAAC,OAAI,UAAU,MACb,SAAAA,EAAC,OAAI,IAAKe,EAAOF,CAAK,EAAG,IAAI,GAAG,EAClC,GAHiBA,CAInB,CACD,EACH,EACAb,EAACM,EAAA,CAAiB,UAAU,SAAS,EACrCN,EAACK,EAAA,CAAa,UAAU,UAAU,GACpC,CAEJ,CACF,EACAW,EAAkB,WAAa,CAC7B,OAAQ,QACV",
4
+ "sourcesContent": ["import type { Meta, StoryObj } from '@storybook/react'\nimport {\n Carousel,\n CarouselContent,\n CarouselItem,\n CarouselNext,\n CarouselPrevious,\n Card,\n CardContent,\n} from '../components/index.js'\n\nimport React from 'react'\n\nconst meta: Meta<typeof Carousel> = {\n title: 'Components/Carousel',\n component: Carousel,\n subcomponents: {\n CarouselContent,\n CarouselItem,\n },\n parameters: {\n layout: 'fullscreen',\n docs: {\n description: {\n component: '\u8F6E\u64AD\u7EC4\u4EF6, \u57FA\u4E8E\u8F7B\u91CF\u7EA7\u7EC4\u4EF6embla-carousel-react, https://www.embla-carousel.com/get-started/react/',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n opts: {\n description:\n 'embla-carousel-react \u7684\u914D\u7F6E\u53C2\u6570, \u53EF\u4EE5\u914D\u7F6Eloop: true \u5F00\u542F\u5FAA\u73AF\uFF0Calign: center | start | end \u5BF9\u9F50\u65B9\u5F0F\uFF0C \u67E5\u770B https://www.embla-carousel.com/api/options/',\n control: {\n type: 'object',\n },\n },\n showNavigation: {\n description: '\u662F\u5426\u663E\u793A\u5BFC\u822A\u70B9',\n control: {\n type: 'boolean',\n },\n },\n orientation: {\n description: '\u8F6E\u64AD\u65B9\u5411',\n control: {\n type: 'select',\n },\n options: ['horizontal', 'vertical'],\n },\n setApi: {\n description: '\u8BBE\u7F6Eapi, \u53EF\u4EE5\u901A\u8FC7\u8FD9\u4E2A\u51FD\u6570\u83B7\u53D6carousel API \u5B9E\u4F8B\uFF0C\u62FF\u5230api \u5B9E\u4F8B\u540E,\u53EF\u4EE5\u8C03\u7528api \u5B9E\u4F8B\u7684\u65B9\u6CD5\u6216\u8005\u5C5E\u6027',\n },\n plugins: {\n description:\n 'embla-carousel-react \u7684\u63D2\u4EF6,embla-carousel \u7684 Autoplay, Wheel Gesture \u7B49\u9AD8\u7EA7\u529F\u80FD \u901A\u8FC7\u63D2\u4EF6\u652F\u6301 https://www.embla-carousel.com/plugins/',\n },\n },\n args: {\n opts: {},\n orientation: 'horizontal',\n },\n} satisfies Meta<typeof Carousel>\n\nexport default meta\ntype Story = StoryObj<typeof meta>\n\nexport const Default: Story = {\n args: {\n opts: {\n align: 'start',\n },\n children: (\n <>\n <CarouselContent>\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"basis-1/3\">\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-3xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </>\n ),\n },\n}\n\nexport const Vertical: Story = {\n render() {\n return (\n <Carousel\n opts={{\n align: 'start',\n }}\n orientation=\"vertical\"\n className=\"w-full max-w-xs\"\n >\n <CarouselContent className=\"-mt-1 h-[200px]\">\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"basis-1/2 pt-1\">\n <div className=\"p-1\">\n <Card>\n <CardContent className=\"flex aspect-square items-center justify-center p-6\">\n <span className=\"text-3xl font-semibold\">{index + 1}</span>\n </CardContent>\n </Card>\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious />\n <CarouselNext />\n </Carousel>\n )\n },\n}\n\nconst images = [\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388_mo_path_1.png?v=1741689169',\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388.png?v=1741689169',\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388_1_mo_never_missing.png?v=1741689169',\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388_mo_path_1.png?v=1741689169',\n 'https://cdn.shopify.com/s/files/1/0521/9411/5753/files/Frame_1312320388.png?v=1741689169',\n]\nexport const OverrideClassName: Story = {\n render() {\n return (\n <Carousel\n opts={{\n loop: true,\n align: 'center',\n }}\n showNavigation={true}\n navigationPosition=\"outter\"\n className=\"w-full max-w-xl\"\n >\n <CarouselContent className=\"\">\n {Array.from({ length: 5 }).map((_, index) => (\n <CarouselItem key={index} className=\"basis-1/2\">\n <div className=\"p-1\">\n <img src={images[index]} alt=\"\" />\n </div>\n </CarouselItem>\n ))}\n </CarouselContent>\n <CarouselPrevious className=\"left-4\" />\n <CarouselNext className=\"right-4\" />\n </Carousel>\n )\n },\n}\nOverrideClassName.parameters = {\n layout: 'padded',\n}\n"],
5
+ "mappings": "AAyEM,mBAAAA,EAOc,OAAAC,EAPd,QAAAC,MAAA,oBAxEN,OACE,YAAAC,EACA,mBAAAC,EACA,gBAAAC,EACA,gBAAAC,EACA,oBAAAC,EACA,QAAAC,EACA,eAAAC,MACK,yBAEP,MAAkB,QAElB,MAAMC,EAA8B,CAClC,MAAO,sBACP,UAAWP,EACX,cAAe,CACb,gBAAAC,EACA,aAAAC,CACF,EACA,WAAY,CACV,OAAQ,aACR,KAAM,CACJ,YAAa,CACX,UAAW,6IACb,CACF,CACF,EACA,KAAM,CAAC,UAAU,EACjB,SAAU,CACR,KAAM,CACJ,YACE,4OACF,QAAS,CACP,KAAM,QACR,CACF,EACA,eAAgB,CACd,YAAa,6CACb,QAAS,CACP,KAAM,SACR,CACF,EACA,YAAa,CACX,YAAa,2BACb,QAAS,CACP,KAAM,QACR,EACA,QAAS,CAAC,aAAc,UAAU,CACpC,EACA,OAAQ,CACN,YAAa,mOACf,EACA,QAAS,CACP,YACE,oMACJ,CACF,EACA,KAAM,CACJ,KAAM,CAAC,EACP,YAAa,YACf,CACF,EAEA,IAAOM,EAAQD,EAGR,MAAME,EAAiB,CAC5B,KAAM,CACJ,KAAM,CACJ,MAAO,OACT,EACA,SACEV,EAAAF,EAAA,CACE,UAAAC,EAACG,EAAA,CACE,eAAM,KAAK,CAAE,OAAQ,CAAE,CAAC,EAAE,IAAI,CAACS,EAAGC,IACjCb,EAACI,EAAA,CAAyB,UAAU,YAClC,SAAAJ,EAAC,OAAI,UAAU,MACb,SAAAA,EAACO,EAAA,CACC,SAAAP,EAACQ,EAAA,CAAY,UAAU,qDACrB,SAAAR,EAAC,QAAK,UAAU,yBAA0B,SAAAa,EAAQ,EAAE,EACtD,EACF,EACF,GAPiBA,CAQnB,CACD,EACH,EACAb,EAACM,EAAA,EAAiB,EAClBN,EAACK,EAAA,EAAa,GAChB,CAEJ,CACF,EAEaS,EAAkB,CAC7B,QAAS,CACP,OACEb,EAACC,EAAA,CACC,KAAM,CACJ,MAAO,OACT,EACA,YAAY,WACZ,UAAU,kBAEV,UAAAF,EAACG,EAAA,CAAgB,UAAU,kBACxB,eAAM,KAAK,CAAE,OAAQ,CAAE,CAAC,EAAE,IAAI,CAACS,EAAGC,IACjCb,EAACI,EAAA,CAAyB,UAAU,iBAClC,SAAAJ,EAAC,OAAI,UAAU,MACb,SAAAA,EAACO,EAAA,CACC,SAAAP,EAACQ,EAAA,CAAY,UAAU,qDACrB,SAAAR,EAAC,QAAK,UAAU,yBAA0B,SAAAa,EAAQ,EAAE,EACtD,EACF,EACF,GAPiBA,CAQnB,CACD,EACH,EACAb,EAACM,EAAA,EAAiB,EAClBN,EAACK,EAAA,EAAa,GAChB,CAEJ,CACF,EAEMU,EAAS,CACb,qGACA,2FACA,8GACA,qGACA,0FACF,EACaC,EAA2B,CACtC,QAAS,CACP,OACEf,EAACC,EAAA,CACC,KAAM,CACJ,KAAM,GACN,MAAO,QACT,EACA,eAAgB,GAChB,mBAAmB,SACnB,UAAU,kBAEV,UAAAF,EAACG,EAAA,CAAgB,UAAU,GACxB,eAAM,KAAK,CAAE,OAAQ,CAAE,CAAC,EAAE,IAAI,CAACS,EAAGC,IACjCb,EAACI,EAAA,CAAyB,UAAU,YAClC,SAAAJ,EAAC,OAAI,UAAU,MACb,SAAAA,EAAC,OAAI,IAAKe,EAAOF,CAAK,EAAG,IAAI,GAAG,EAClC,GAHiBA,CAInB,CACD,EACH,EACAb,EAACM,EAAA,CAAiB,UAAU,SAAS,EACrCN,EAACK,EAAA,CAAa,UAAU,UAAU,GACpC,CAEJ,CACF,EACAW,EAAkB,WAAa,CAC7B,OAAQ,QACV",
6
6
  "names": ["Fragment", "jsx", "jsxs", "Carousel", "CarouselContent", "CarouselItem", "CarouselNext", "CarouselPrevious", "Card", "CardContent", "meta", "carousel_stories_default", "Default", "_", "index", "Vertical", "images", "OverrideClassName"]
7
7
  }
@@ -2,6 +2,7 @@
2
2
  --btn-bg-active-color: var(--brand-color-0);
3
3
 
4
4
  --btn-radius: 0;
5
+ --box-radius: 0;
5
6
  --radius: 0em;
6
7
 
7
8
  --brand-gradient-color-0: linear-gradient(90deg, var(--btn-bg-active-color) 0%, var(--btn-bg-active-color) 100%);
@@ -149,7 +149,7 @@
149
149
 
150
150
  .swiper-horizontal>.swiper-pagination-bullets,
151
151
  .swiper-pagination-bullets.swiper-pagination-horizontal {
152
- bottom: -24px!important;
152
+ /* bottom: -24px!important; */
153
153
  }
154
154
 
155
155
  .swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next,
@@ -6,6 +6,7 @@
6
6
 
7
7
 
8
8
  --btn-radius: 24px;
9
+ --box-radius: 16px;
9
10
 
10
11
  --radius: 40px;
11
12
  --brand-color-0: #005d8e;
@@ -4,6 +4,7 @@
4
4
 
5
5
  --brand-gradient-color-0: linear-gradient(90deg, var(--btn-bg-active-color) 0%, var(--btn-bg-active-color) 100%);
6
6
  --btn-radius: 24px;
7
+ --box-radius: 16px;
7
8
  --radius: 0em;
8
9
 
9
10
  --brand-color-0: #3adb67;
@@ -3,6 +3,7 @@
3
3
  --brand-gradient-color-0: linear-gradient(90deg, #2C7ED0 0%, #00A9E1 43%, #00DB84 100%);
4
4
 
5
5
  --btn-radius: -0px;
6
+ --box-radius: 0;
6
7
  --radius: 0em;
7
8
 
8
9
  --brand-color-0: #00BEFA;
@@ -4,6 +4,7 @@
4
4
  --brand-gradient-color-0: linear-gradient(90deg, var(--btn-bg-active-color) 0%, var(--btn-bg-active-color) 100%);
5
5
 
6
6
  --btn-radius: 24px;
7
+ --box-radius: 16px;
7
8
 
8
9
  --radius: 0em;
9
10
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anker-in/headless-ui",
3
- "version": "1.1.1",
3
+ "version": "1.1.4",
4
4
  "type": "commonjs",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/cjs/index.d.ts",
@@ -106,6 +106,9 @@
106
106
  "autoprefixer": "^10.4.19",
107
107
  "class-variance-authority": "^0.7.0",
108
108
  "clsx": "^2.1.1",
109
+ "copy-to-clipboard": "^3.3.3",
110
+ "decimal.js": "^10.6.0",
111
+ "embla-carousel": "^8.6.0",
109
112
  "embla-carousel-autoplay": "^8.5.2",
110
113
  "embla-carousel-class-names": "^8.5.2",
111
114
  "embla-carousel-react": "^8.6.0",
package/style.css CHANGED
@@ -1645,14 +1645,6 @@ video {
1645
1645
  outline: 2px solid transparent;
1646
1646
  outline-offset: 2px;
1647
1647
  }
1648
- .focus\:ring-2:focus {
1649
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
1650
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
1651
- box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
1652
- }
1653
- .focus\:ring-offset-2:focus {
1654
- --tw-ring-offset-width: 2px;
1655
- }
1656
1648
  .focus-visible\:outline-none:focus-visible {
1657
1649
  outline: 2px solid transparent;
1658
1650
  outline-offset: 2px;
@@ -13,9 +13,29 @@ module.exports = {
13
13
  'm-tablet': { max: '1440px' },
14
14
  tablet: '768px', // ≥768px 平板
15
15
  laptop: '1025px', // ≥1025px 小桌面
16
+ 'mid-desktop': '1280px', // ≥1280px 中桌面
16
17
  desktop: '1440px', // ≥1440px 大桌面
17
18
  'lg-desktop': '1920px', // ≥1920px 超大屏
18
19
  },
20
+ keyframes: {
21
+ 'marquee-scroll': {
22
+ from: { transform: 'translateY(0%)' },
23
+ to: { transform: 'translateY(-50%)' },
24
+ },
25
+ 'scroll-text': {
26
+ '0%': { transform: 'translateY(0)' },
27
+ '50%': { transform: 'translateY(calc(-100% + 3rem))' },
28
+ '50.1%': { transform: 'translateY(calc(-100% + 3rem))' },
29
+ '100%': { transform: 'translateY(0)' },
30
+ },
31
+ },
32
+ animation: {
33
+ 'marquee-scroll': 'marquee-scroll 20s linear infinite',
34
+ 'scroll-text': 'scroll-text 2s ease-in-out infinite',
35
+ },
36
+ maskImage: {
37
+ 'fade-vertical': 'linear-gradient(to bottom, transparent, black 20%, black 80%, transparent)',
38
+ },
19
39
  colors: {
20
40
  brand: {
21
41
  0: 'var(--brand-color-0)',