@anker-in/headless-ui 1.1.2 → 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 (405) 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/Specs/dropdown.js +2 -2
  171. package/dist/cjs/biz-components/Specs/dropdown.js.map +2 -2
  172. package/dist/cjs/biz-components/Specs/index.js +1 -1
  173. package/dist/cjs/biz-components/Specs/index.js.map +3 -3
  174. package/dist/cjs/biz-components/Tabs/Tabs.js +1 -1
  175. package/dist/cjs/biz-components/Tabs/Tabs.js.map +2 -2
  176. package/dist/cjs/biz-components/Title/index.js +1 -1
  177. package/dist/cjs/biz-components/Title/index.js.map +2 -2
  178. package/dist/cjs/biz-components/index.d.ts +57 -1
  179. package/dist/cjs/biz-components/index.js +1 -1
  180. package/dist/cjs/biz-components/index.js.map +3 -3
  181. package/dist/cjs/components/ExposureDetector.d.ts +45 -0
  182. package/dist/cjs/components/ExposureDetector.js +2 -0
  183. package/dist/cjs/components/ExposureDetector.js.map +7 -0
  184. package/dist/cjs/components/checkbox.d.ts +1 -0
  185. package/dist/cjs/components/checkbox.js +1 -1
  186. package/dist/cjs/components/checkbox.js.map +3 -3
  187. package/dist/cjs/components/dialog.d.ts +1 -1
  188. package/dist/cjs/components/dialog.js +1 -1
  189. package/dist/cjs/components/dialog.js.map +2 -2
  190. package/dist/cjs/components/index.d.ts +1 -0
  191. package/dist/cjs/components/index.js +1 -1
  192. package/dist/cjs/components/index.js.map +3 -3
  193. package/dist/cjs/components/picture.js +1 -1
  194. package/dist/cjs/components/picture.js.map +2 -2
  195. package/dist/cjs/hooks/useExposureDetection.d.ts +69 -0
  196. package/dist/cjs/hooks/useExposureDetection.js +2 -0
  197. package/dist/cjs/hooks/useExposureDetection.js.map +7 -0
  198. package/dist/cjs/stories/carousel.stories.d.ts +3 -57
  199. package/dist/cjs/stories/carousel.stories.js.map +2 -2
  200. package/dist/esm/biz-components/AiuiProvider/index.d.ts +4 -0
  201. package/dist/esm/biz-components/AiuiProvider/index.js +1 -1
  202. package/dist/esm/biz-components/AiuiProvider/index.js.map +2 -2
  203. package/dist/esm/biz-components/AplusDesc/index.d.ts +22 -0
  204. package/dist/esm/biz-components/AplusDesc/index.js +2 -0
  205. package/dist/esm/biz-components/AplusDesc/index.js.map +7 -0
  206. package/dist/esm/biz-components/DownLoad/index.d.ts +20 -0
  207. package/dist/esm/biz-components/DownLoad/index.js +2 -0
  208. package/dist/esm/biz-components/DownLoad/index.js.map +7 -0
  209. package/dist/esm/biz-components/Faq/Faq.js +1 -1
  210. package/dist/esm/biz-components/Faq/Faq.js.map +3 -3
  211. package/dist/esm/biz-components/Features/index.js +1 -1
  212. package/dist/esm/biz-components/Features/index.js.map +2 -2
  213. package/dist/esm/biz-components/FootCharger/index.js.map +2 -2
  214. package/dist/esm/biz-components/GiftBox/index.d.ts +17 -0
  215. package/dist/esm/biz-components/GiftBox/index.js +2 -0
  216. package/dist/esm/biz-components/GiftBox/index.js.map +7 -0
  217. package/dist/esm/biz-components/Graphic/index.js +1 -1
  218. package/dist/esm/biz-components/Graphic/index.js.map +2 -2
  219. package/dist/esm/biz-components/GraphicMore/index.js +1 -1
  220. package/dist/esm/biz-components/GraphicMore/index.js.map +2 -2
  221. package/dist/esm/biz-components/Listing/BizProductProvider.d.ts +126 -0
  222. package/dist/esm/biz-components/Listing/BizProductProvider.js +2 -0
  223. package/dist/esm/biz-components/Listing/BizProductProvider.js.map +7 -0
  224. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.d.ts +2 -0
  225. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.js +2 -0
  226. package/dist/esm/biz-components/Listing/components/PaidShipping/LearnMore.js.map +7 -0
  227. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.d.ts +10 -0
  228. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.js +2 -0
  229. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingMethod.js.map +7 -0
  230. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.d.ts +25 -0
  231. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js +2 -0
  232. package/dist/esm/biz-components/Listing/components/PaidShipping/ShippingPolicyModal.js.map +7 -0
  233. package/dist/esm/biz-components/Listing/components/PaidShipping/index.d.ts +15 -0
  234. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js +2 -0
  235. package/dist/esm/biz-components/Listing/components/PaidShipping/index.js.map +7 -0
  236. package/dist/esm/biz-components/Listing/components/PaidShipping/type.d.ts +30 -0
  237. package/dist/esm/biz-components/Listing/components/PaidShipping/type.js +2 -0
  238. package/dist/esm/biz-components/Listing/components/PaidShipping/type.js.map +7 -0
  239. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.d.ts +2 -0
  240. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.js +2 -0
  241. package/dist/esm/biz-components/Listing/components/PaidShipping/utils.js.map +7 -0
  242. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.d.ts +39 -0
  243. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js +40 -0
  244. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/BenefitsTab.js.map +7 -0
  245. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.d.ts +10 -0
  246. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js +2 -0
  247. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/ModalContainer.js.map +7 -0
  248. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.d.ts +30 -0
  249. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js +2 -0
  250. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js.map +7 -0
  251. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.d.ts +5 -0
  252. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js +2 -0
  253. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductBundle/index.js.map +7 -0
  254. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.d.ts +5 -0
  255. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js +2 -0
  256. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js.map +7 -0
  257. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.d.ts +5 -0
  258. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js +2 -0
  259. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js.map +7 -0
  260. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.d.ts +5 -0
  261. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js +2 -0
  262. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js.map +7 -0
  263. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.d.ts +5 -0
  264. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js +2 -0
  265. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/ProductOptions/index.js.map +7 -0
  266. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.d.ts +2 -0
  267. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js +2 -0
  268. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/index.js.map +7 -0
  269. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.d.ts +43 -0
  270. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js +2 -0
  271. package/dist/esm/biz-components/Listing/components/ProductCard/ProductDetail/types.js.map +7 -0
  272. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.d.ts +2 -0
  273. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js +2 -0
  274. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/CompareModal.js.map +7 -0
  275. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.d.ts +21 -0
  276. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js +2 -0
  277. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/Select.js.map +7 -0
  278. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.d.ts +5 -0
  279. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js +2 -0
  280. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/ShopifyColorOption.js.map +7 -0
  281. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.d.ts +1 -0
  282. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js +2 -0
  283. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/components/SpecsModal.js.map +7 -0
  284. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.d.ts +8 -0
  285. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js +2 -0
  286. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/index.js.map +7 -0
  287. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.d.ts +73 -0
  288. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js +2 -0
  289. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGallery/types.js.map +7 -0
  290. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.d.ts +6 -0
  291. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js +2 -0
  292. package/dist/esm/biz-components/Listing/components/ProductCard/ProductGridBox.js.map +7 -0
  293. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.d.ts +5 -0
  294. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js +2 -0
  295. package/dist/esm/biz-components/Listing/components/ProductCard/ProductSummary/index.js.map +7 -0
  296. package/dist/esm/biz-components/Listing/components/ProductCard/index.d.ts +2 -0
  297. package/dist/esm/biz-components/Listing/components/ProductCard/index.js +2 -0
  298. package/dist/esm/biz-components/Listing/components/ProductCard/index.js.map +7 -0
  299. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.d.ts +2 -0
  300. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js +2 -0
  301. package/dist/esm/biz-components/Listing/components/PurchaseBar/ProductActions/index.js.map +7 -0
  302. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.d.ts +3 -0
  303. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js +2 -0
  304. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/index.js.map +7 -0
  305. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.d.ts +12 -0
  306. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js +1 -0
  307. package/dist/esm/biz-components/Listing/components/PurchaseBar/ScrollSpyNav/types.js.map +7 -0
  308. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.d.ts +6 -0
  309. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js +2 -0
  310. package/dist/esm/biz-components/Listing/components/PurchaseBar/index.js.map +7 -0
  311. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.d.ts +12 -0
  312. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js +1 -0
  313. package/dist/esm/biz-components/Listing/components/PurchaseBar/types.js.map +7 -0
  314. package/dist/esm/biz-components/Listing/components/index.d.ts +3 -0
  315. package/dist/esm/biz-components/Listing/components/index.js +2 -0
  316. package/dist/esm/biz-components/Listing/components/index.js.map +7 -0
  317. package/dist/esm/biz-components/Listing/const.d.ts +29 -0
  318. package/dist/esm/biz-components/Listing/const.js +2 -0
  319. package/dist/esm/biz-components/Listing/const.js.map +7 -0
  320. package/dist/esm/biz-components/Listing/hooks/use-variant-media.d.ts +14 -0
  321. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js +2 -0
  322. package/dist/esm/biz-components/Listing/hooks/use-variant-media.js.map +7 -0
  323. package/dist/esm/biz-components/Listing/hooks/use-variant.d.ts +5 -0
  324. package/dist/esm/biz-components/Listing/hooks/use-variant.js +2 -0
  325. package/dist/esm/biz-components/Listing/hooks/use-variant.js.map +7 -0
  326. package/dist/esm/biz-components/Listing/hooks/useBenefits.d.ts +50 -0
  327. package/dist/esm/biz-components/Listing/hooks/useBenefits.js +2 -0
  328. package/dist/esm/biz-components/Listing/hooks/useBenefits.js.map +7 -0
  329. package/dist/esm/biz-components/Listing/hooks/useCopy.d.ts +5 -0
  330. package/dist/esm/biz-components/Listing/hooks/useCopy.js +2 -0
  331. package/dist/esm/biz-components/Listing/hooks/useCopy.js.map +7 -0
  332. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.d.ts +14 -0
  333. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.js +2 -0
  334. package/dist/esm/biz-components/Listing/hooks/useDiscountEnable.js.map +7 -0
  335. package/dist/esm/biz-components/Listing/index.d.ts +3 -0
  336. package/dist/esm/biz-components/Listing/index.js +2 -0
  337. package/dist/esm/biz-components/Listing/index.js.map +7 -0
  338. package/dist/esm/biz-components/Listing/types/graphql.d.ts +7473 -0
  339. package/dist/esm/biz-components/Listing/types/graphql.js +2 -0
  340. package/dist/esm/biz-components/Listing/types/graphql.js.map +7 -0
  341. package/dist/esm/biz-components/Listing/types/product.d.ts +141 -0
  342. package/dist/esm/biz-components/Listing/types/product.js +2 -0
  343. package/dist/esm/biz-components/Listing/types/product.js.map +7 -0
  344. package/dist/esm/biz-components/Listing/types/productMetafields.d.js +2 -0
  345. package/dist/esm/biz-components/Listing/types/productMetafields.d.js.map +7 -0
  346. package/dist/esm/biz-components/Listing/types/type-helper.d.ts +5 -0
  347. package/dist/esm/biz-components/Listing/types/type-helper.js +1 -0
  348. package/dist/esm/biz-components/Listing/types/type-helper.js.map +7 -0
  349. package/dist/esm/biz-components/Listing/types.d.ts +29 -0
  350. package/dist/esm/biz-components/Listing/types.js +1 -0
  351. package/dist/esm/biz-components/Listing/types.js.map +7 -0
  352. package/dist/esm/biz-components/Listing/utils/helper.d.ts +36 -0
  353. package/dist/esm/biz-components/Listing/utils/helper.js +2 -0
  354. package/dist/esm/biz-components/Listing/utils/helper.js.map +7 -0
  355. package/dist/esm/biz-components/Listing/utils/index.d.ts +37 -0
  356. package/dist/esm/biz-components/Listing/utils/index.js +2 -0
  357. package/dist/esm/biz-components/Listing/utils/index.js.map +7 -0
  358. package/dist/esm/biz-components/Listing/utils/textFormat.d.ts +73 -0
  359. package/dist/esm/biz-components/Listing/utils/textFormat.js +2 -0
  360. package/dist/esm/biz-components/Listing/utils/textFormat.js.map +7 -0
  361. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js +1 -1
  362. package/dist/esm/biz-components/MultiLayoutGraphicBlock/MultiLayoutGraphicBlock.js.map +3 -3
  363. package/dist/esm/biz-components/MultiLayoutGraphicBlock/types.d.ts +2 -0
  364. package/dist/esm/biz-components/SelectStore/index.d.ts +20 -0
  365. package/dist/esm/biz-components/SelectStore/index.js +2 -0
  366. package/dist/esm/biz-components/SelectStore/index.js.map +7 -0
  367. package/dist/esm/biz-components/Specs/dropdown.js +2 -2
  368. package/dist/esm/biz-components/Specs/dropdown.js.map +2 -2
  369. package/dist/esm/biz-components/Specs/index.js +1 -1
  370. package/dist/esm/biz-components/Specs/index.js.map +3 -3
  371. package/dist/esm/biz-components/Tabs/Tabs.js +1 -1
  372. package/dist/esm/biz-components/Tabs/Tabs.js.map +2 -2
  373. package/dist/esm/biz-components/Title/index.js +1 -1
  374. package/dist/esm/biz-components/Title/index.js.map +2 -2
  375. package/dist/esm/biz-components/index.d.ts +57 -1
  376. package/dist/esm/biz-components/index.js +1 -1
  377. package/dist/esm/biz-components/index.js.map +3 -3
  378. package/dist/esm/components/ExposureDetector.d.ts +45 -0
  379. package/dist/esm/components/ExposureDetector.js +2 -0
  380. package/dist/esm/components/ExposureDetector.js.map +7 -0
  381. package/dist/esm/components/checkbox.d.ts +1 -0
  382. package/dist/esm/components/checkbox.js +1 -1
  383. package/dist/esm/components/checkbox.js.map +3 -3
  384. package/dist/esm/components/dialog.d.ts +1 -1
  385. package/dist/esm/components/dialog.js +1 -1
  386. package/dist/esm/components/dialog.js.map +2 -2
  387. package/dist/esm/components/index.d.ts +1 -0
  388. package/dist/esm/components/index.js +1 -1
  389. package/dist/esm/components/index.js.map +3 -3
  390. package/dist/esm/components/picture.js +1 -1
  391. package/dist/esm/components/picture.js.map +2 -2
  392. package/dist/esm/hooks/useExposureDetection.d.ts +69 -0
  393. package/dist/esm/hooks/useExposureDetection.js +2 -0
  394. package/dist/esm/hooks/useExposureDetection.js.map +7 -0
  395. package/dist/esm/stories/carousel.stories.d.ts +3 -57
  396. package/dist/esm/stories/carousel.stories.js.map +2 -2
  397. package/dist/tokens/anker.css +1 -0
  398. package/dist/tokens/base.css +1 -1
  399. package/dist/tokens/eufy.css +1 -0
  400. package/dist/tokens/eufyMake.css +1 -0
  401. package/dist/tokens/solix.css +1 -0
  402. package/dist/tokens/soundcore.css +1 -0
  403. package/package.json +4 -1
  404. package/style.css +0 -8
  405. package/tailwind.config.js +20 -0
@@ -32,6 +32,62 @@ export { default as CreativeModule } from './CreativeModule/index.js';
32
32
  export { default as GraphicOverlay } from './GraphicOverlay/index.js';
33
33
  export { default as Specs } from './Specs/index.js';
34
34
  export { default as TabGroup } from './TabsGroup/index.js';
35
+ export { default as Listing } from './Listing/index.js';
36
+ export { default as BizProductProvider } from './Listing/BizProductProvider.js';
37
+ export { default as PurchaseBar } from './Listing/components/PurchaseBar/index.js';
38
+ export { default as ProductActions } from './Listing/components/PurchaseBar/ProductActions/index.js';
39
+ export { default as ProductCard } from './Listing/components/ProductCard/index.js';
40
+ export { default as ProductBenefitsTabs } from './Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js';
41
+ export { default as ProductHighlight } from './Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js';
42
+ export { default as ProductFreeGift } from './Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js';
43
+ export { default as ProductExchangePurchase } from './Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js';
44
+ export { default as ProductOptions } from './Listing/components/ProductCard/ProductDetail/ProductOptions/index.js';
45
+ export { default as ProductBundle } from './Listing/components/ProductCard/ProductDetail/ProductBundle/index.js';
46
+ export { default as ProductGridBox } from './Listing/components/ProductCard/ProductGridBox.js';
47
+ export { default as ProductGallery } from './Listing/components/ProductCard/ProductGallery/index.js';
48
+ export { default as ProductDetail } from './Listing/components/ProductCard/ProductDetail/index.js';
49
+ export { default as ProductSummary } from './Listing/components/ProductCard/ProductSummary/index.js';
50
+ export { default as BenefitsTab } from './Listing/components/ProductCard/ProductDetail/BenefitsTab';
51
+ export { default as PaidShipping } from './Listing/components/PaidShipping/index.js';
52
+ export { default as GraphicMore } from './GraphicMore/index.js';
35
53
  export { default as Features } from './Features/index.js';
54
+ export { default as AplusDesc } from './AplusDesc/index.js';
55
+ export { default as GiftBox } from './GiftBox/index.js';
56
+ export { default as SelectStore } from './SelectStore/index.js';
57
+ export { default as DownLoad } from './DownLoad/index.js';
36
58
  export { default as FootCharger } from './FootCharger/index.js';
37
- export { default as GraphicMore } from './GraphicMore/index.js';
59
+ export declare const PAYLOAD_COMPONENT_MAP: {
60
+ 'ipc-aplusdesc': string;
61
+ 'ipc-banner': string;
62
+ 'ipc-brand-equity': string;
63
+ 'ipc-category': string;
64
+ 'ipc-collection-banner': string;
65
+ 'ipc-collection-shelves': string;
66
+ 'ipc-creativemodule': string;
67
+ 'ipc-download': string;
68
+ 'ipc-evaluate': string;
69
+ 'ipc-faq': string;
70
+ 'ipc-features': string;
71
+ 'ipc-footcharger': string;
72
+ 'ipc-ga-block': string;
73
+ 'ipc-giftbox': string;
74
+ 'ipc-graphic': string;
75
+ 'ipc-graphicmore': string;
76
+ 'ipc-graphicoverlay': string;
77
+ 'ipc-marquee': string;
78
+ 'ipc-mediaplayerbase': string;
79
+ 'ipc-mediaplayermulti': string;
80
+ 'ipc-mediaplayersticky': string;
81
+ 'ipc-member-equity': string;
82
+ 'ipc-mlg-block': string;
83
+ 'ipc-search-page-tabs': string;
84
+ 'ipc-selectstore': string;
85
+ 'ipc-shelfdisplay': string;
86
+ 'ipc-slogan': string;
87
+ 'ipc-spacer': string;
88
+ 'ipc-specs': string;
89
+ 'ipc-tabs': string;
90
+ 'ipc-text-marquee': string;
91
+ 'ipc-title': string;
92
+ 'ipc-whychoose': string;
93
+ };
@@ -1,2 +1,2 @@
1
- "use strict";var R=Object.create;var p=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var z=Object.getOwnPropertyNames;var J=Object.getPrototypeOf,K=Object.prototype.hasOwnProperty;var Q=(a,r)=>{for(var o in r)p(a,o,{get:r[o],enumerable:!0})},s=(a,r,o,u)=>{if(r&&typeof r=="object"||typeof r=="function")for(let f of z(r))!K.call(a,f)&&f!==o&&p(a,f,{get:()=>r[f],enumerable:!(u=W(r,f))||u.enumerable});return a};var e=(a,r,o)=>(o=a!=null?R(J(a)):{},s(r||!a||!a.__esModule?p(o,"default",{value:a,enumerable:!0}):o,a)),U=a=>s(p({},"__esModule",{value:!0}),a);var V={};Q(V,{AccordionCards:()=>P.default,AiuiProvider:()=>L.default,BrandEquity:()=>d.default,Category:()=>n.default,CreativeModule:()=>H.default,Evaluate:()=>h.default,Faq:()=>q.default,Features:()=>w.default,FootCharger:()=>D.default,FooterNavigation:()=>E.default,Graphic:()=>G.default,GraphicAttractionBlock:()=>v.default,GraphicMore:()=>O.default,GraphicOverlay:()=>I.default,HeaderNavigation:()=>T.default,HeroBanner:()=>M.default,IPC_SEARCH_PAGE:()=>l.IPC_SEARCH_PAGE,Marquee:()=>C.default,MarqueeImageContent:()=>t.MarqueeImageContent,MarqueeItem:()=>t.MarqueeItem,MarqueeTextContent:()=>t.MarqueeTextContent,MediaPlayerBase:()=>g.default,MediaPlayerMulti:()=>B.default,MediaPlayerSticky:()=>S.default,MemberEquity:()=>m.default,MultiLayoutGraphicBlock:()=>A.default,SearchPage:()=>b.default,SearchPageTabType:()=>l.SearchPageTabType,ShelfDisplay:()=>y.default,Slogan:()=>x.default,Spacer:()=>c.default,Specs:()=>N.default,TabGroup:()=>_.default,Tabs:()=>j.default,Title:()=>i.default,WhyChoose:()=>k.default,withLayout:()=>F.withLayout});module.exports=U(V);var d=e(require("./BrandEquity/index.js")),m=e(require("./MemberEquity/index.js")),x=e(require("./Slogan/index.js")),i=e(require("./Title/index.js")),c=e(require("./Spacer/index.js")),y=e(require("./ShelfDisplay/index.js")),h=e(require("./Evaluate/index.js")),n=e(require("./Category/index.js")),M=e(require("./HeroBanner/index.js")),P=e(require("./AccordionCards/index.js")),G=e(require("./Graphic/index.js")),g=e(require("./MediaPlayerBase/index.js")),S=e(require("./MediaPlayerSticky/index.js")),B=e(require("./MediaPlayerMulti/index.js")),C=e(require("./Marquee/index.js")),k=e(require("./WhyChoose/index.js")),q=e(require("./Faq/index.js")),t=require("./Marquee/index.js"),A=e(require("./MultiLayoutGraphicBlock/index.js")),v=e(require("./GraphicAttractionBlock/index.js")),T=e(require("./HeaderNavigation/index.js")),E=e(require("./FooterNavigation/index.js")),b=e(require("./SearchPage/index.js")),l=require("./SearchPage/types.js"),F=require("../shared/Styles.js"),L=e(require("./AiuiProvider/index.js")),j=e(require("./Tabs/index.js")),H=e(require("./CreativeModule/index.js")),I=e(require("./GraphicOverlay/index.js")),N=e(require("./Specs/index.js")),_=e(require("./TabsGroup/index.js")),w=e(require("./Features/index.js")),D=e(require("./FootCharger/index.js")),O=e(require("./GraphicMore/index.js"));
1
+ "use strict";var ce=Object.create;var l=Object.defineProperty;var ue=Object.getOwnPropertyDescriptor;var se=Object.getOwnPropertyNames;var de=Object.getPrototypeOf,me=Object.prototype.hasOwnProperty;var xe=(a,r)=>{for(var t in r)l(a,t,{get:r[t],enumerable:!0})},c=(a,r,t,i)=>{if(r&&typeof r=="object"||typeof r=="function")for(let p of se(r))!me.call(a,p)&&p!==t&&l(a,p,{get:()=>r[p],enumerable:!(i=ue(r,p))||i.enumerable});return a};var e=(a,r,t)=>(t=a!=null?ce(de(a)):{},c(r||!a||!a.__esModule?l(t,"default",{value:a,enumerable:!0}):t,a)),ne=a=>c(l({},"__esModule",{value:!0}),a);var ye={};xe(ye,{AccordionCards:()=>g.default,AiuiProvider:()=>D.default,AplusDesc:()=>oe.default,BenefitsTab:()=>ee.default,BizProductProvider:()=>j.default,BrandEquity:()=>u.default,Category:()=>y.default,CreativeModule:()=>O.default,DownLoad:()=>fe.default,Evaluate:()=>h.default,Faq:()=>C.default,Features:()=>te.default,FootCharger:()=>ie.default,FooterNavigation:()=>T.default,GiftBox:()=>pe.default,Graphic:()=>M.default,GraphicAttractionBlock:()=>k.default,GraphicMore:()=>re.default,GraphicOverlay:()=>w.default,HeaderNavigation:()=>A.default,HeroBanner:()=>P.default,IPC_SEARCH_PAGE:()=>f.IPC_SEARCH_PAGE,Listing:()=>_.default,Marquee:()=>b.default,MarqueeImageContent:()=>o.MarqueeImageContent,MarqueeItem:()=>o.MarqueeItem,MarqueeTextContent:()=>o.MarqueeTextContent,MediaPlayerBase:()=>B.default,MediaPlayerMulti:()=>G.default,MediaPlayerSticky:()=>S.default,MemberEquity:()=>s.default,MultiLayoutGraphicBlock:()=>v.default,PAYLOAD_COMPONENT_MAP:()=>he,PaidShipping:()=>ae.default,ProductActions:()=>W.default,ProductBenefitsTabs:()=>R.default,ProductBundle:()=>U.default,ProductCard:()=>z.default,ProductDetail:()=>Z.default,ProductExchangePurchase:()=>K.default,ProductFreeGift:()=>J.default,ProductGallery:()=>X.default,ProductGridBox:()=>V.default,ProductHighlight:()=>Y.default,ProductOptions:()=>Q.default,ProductSummary:()=>$.default,PurchaseBar:()=>I.default,SearchPage:()=>E.default,SearchPageTabType:()=>f.SearchPageTabType,SelectStore:()=>le.default,ShelfDisplay:()=>n.default,Slogan:()=>d.default,Spacer:()=>x.default,Specs:()=>H.default,TabGroup:()=>N.default,Tabs:()=>F.default,Title:()=>m.default,WhyChoose:()=>q.default,withLayout:()=>L.withLayout});module.exports=ne(ye);var u=e(require("./BrandEquity/index.js")),s=e(require("./MemberEquity/index.js")),d=e(require("./Slogan/index.js")),m=e(require("./Title/index.js")),x=e(require("./Spacer/index.js")),n=e(require("./ShelfDisplay/index.js")),h=e(require("./Evaluate/index.js")),y=e(require("./Category/index.js")),P=e(require("./HeroBanner/index.js")),g=e(require("./AccordionCards/index.js")),M=e(require("./Graphic/index.js")),B=e(require("./MediaPlayerBase/index.js")),S=e(require("./MediaPlayerSticky/index.js")),G=e(require("./MediaPlayerMulti/index.js")),b=e(require("./Marquee/index.js")),q=e(require("./WhyChoose/index.js")),C=e(require("./Faq/index.js")),o=require("./Marquee/index.js"),v=e(require("./MultiLayoutGraphicBlock/index.js")),k=e(require("./GraphicAttractionBlock/index.js")),A=e(require("./HeaderNavigation/index.js")),T=e(require("./FooterNavigation/index.js")),E=e(require("./SearchPage/index.js")),f=require("./SearchPage/types.js"),L=require("../shared/Styles.js"),D=e(require("./AiuiProvider/index.js")),F=e(require("./Tabs/index.js")),O=e(require("./CreativeModule/index.js")),w=e(require("./GraphicOverlay/index.js")),H=e(require("./Specs/index.js")),N=e(require("./TabsGroup/index.js")),_=e(require("./Listing/index.js")),j=e(require("./Listing/BizProductProvider.js")),I=e(require("./Listing/components/PurchaseBar/index.js")),W=e(require("./Listing/components/PurchaseBar/ProductActions/index.js")),z=e(require("./Listing/components/ProductCard/index.js")),R=e(require("./Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js")),Y=e(require("./Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js")),J=e(require("./Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js")),K=e(require("./Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js")),Q=e(require("./Listing/components/ProductCard/ProductDetail/ProductOptions/index.js")),U=e(require("./Listing/components/ProductCard/ProductDetail/ProductBundle/index.js")),V=e(require("./Listing/components/ProductCard/ProductGridBox.js")),X=e(require("./Listing/components/ProductCard/ProductGallery/index.js")),Z=e(require("./Listing/components/ProductCard/ProductDetail/index.js")),$=e(require("./Listing/components/ProductCard/ProductSummary/index.js")),ee=e(require("./Listing/components/ProductCard/ProductDetail/BenefitsTab")),ae=e(require("./Listing/components/PaidShipping/index.js")),re=e(require("./GraphicMore/index.js")),te=e(require("./Features/index.js")),oe=e(require("./AplusDesc/index.js")),pe=e(require("./GiftBox/index.js")),le=e(require("./SelectStore/index.js")),fe=e(require("./DownLoad/index.js")),ie=e(require("./FootCharger/index.js"));const he={"ipc-aplusdesc":"AplusDesc","ipc-banner":"Banner","ipc-brand-equity":"BrandEquity","ipc-category":"Category","ipc-collection-banner":"CollectionBanner","ipc-collection-shelves":"CollectionShelves","ipc-creativemodule":"CreativeModule","ipc-download":"DownLoad","ipc-evaluate":"Evaluate","ipc-faq":"Faq","ipc-features":"Features","ipc-footcharger":"FootCharger","ipc-ga-block":"GraphicAttractionBlock","ipc-giftbox":"GiftBox","ipc-graphic":"Graphic","ipc-graphicmore":"GraphicMore","ipc-graphicoverlay":"GraphicOverlay","ipc-marquee":"Marquee","ipc-mediaplayerbase":"MediaPlayerBase","ipc-mediaplayermulti":"MediaPlayerMulti","ipc-mediaplayersticky":"MediaPlayerSticky","ipc-member-equity":"MemberEquity","ipc-mlg-block":"MultiLayoutGraphicBlock","ipc-search-page-tabs":"SearchPageBlock","ipc-selectstore":"SelectStore","ipc-shelfdisplay":"ShelfDisplay","ipc-slogan":"Slogan","ipc-spacer":"Spacer","ipc-specs":"Specs","ipc-tabs":"Tabs","ipc-text-marquee":"TextMarquee","ipc-title":"Title","ipc-whychoose":"WhyChoose"};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/biz-components/index.ts"],
4
- "sourcesContent": ["export { default as BrandEquity } from './BrandEquity/index.js'\nexport { default as MemberEquity } from './MemberEquity/index.js'\nexport { default as Slogan } from './Slogan/index.js'\nexport { default as Title } from './Title/index.js'\nexport { default as Spacer } from './Spacer/index.js'\nexport { default as ShelfDisplay } from './ShelfDisplay/index.js'\nexport { default as Evaluate } from './Evaluate/index.js'\nexport { default as Category } from './Category/index.js'\nexport { default as HeroBanner } from './HeroBanner/index.js'\nexport { default as AccordionCards } from './AccordionCards/index.js'\nexport { default as Graphic } from './Graphic/index.js'\nexport { default as MediaPlayerBase } from './MediaPlayerBase/index.js'\nexport { default as MediaPlayerSticky } from './MediaPlayerSticky/index.js'\nexport { default as MediaPlayerMulti } from './MediaPlayerMulti/index.js'\nexport { default as Marquee } from './Marquee/index.js'\nexport { default as WhyChoose } from './WhyChoose/index.js'\nexport { default as Faq } from './Faq/index.js'\nexport { MarqueeItem, MarqueeImageContent, MarqueeTextContent } from './Marquee/index.js'\nexport { default as MultiLayoutGraphicBlock } from './MultiLayoutGraphicBlock/index.js'\nexport type { MultiLayoutGraphicBlockProps } from './MultiLayoutGraphicBlock/index.js'\nexport { default as GraphicAttractionBlock } from './GraphicAttractionBlock/index.js'\nexport type { GraphicAttractionBlockProps } from './GraphicAttractionBlock/index.js'\nexport { default as HeaderNavigation } from './HeaderNavigation/index.js'\nexport { default as FooterNavigation } from './FooterNavigation/index.js'\nexport { default as SearchPage } from './SearchPage/index.js'\nexport type { SearchPageProps } from './SearchPage/types.js'\nexport { IPC_SEARCH_PAGE, SearchPageTabType } from './SearchPage/types.js'\n\nexport { withLayout } from '../shared/Styles.js'\nexport { default as AiuiProvider } from './AiuiProvider/index.js'\nexport { default as Tabs } from './Tabs/index.js'\nexport { default as CreativeModule } from './CreativeModule/index.js'\nexport { default as GraphicOverlay } from './GraphicOverlay/index.js'\nexport { default as Specs } from './Specs/index.js'\nexport { default as TabGroup } from './TabsGroup/index.js'\n\nexport { default as Features } from './Features/index.js'\nexport { default as FootCharger } from './FootCharger/index.js'\nexport { default as GraphicMore } from './GraphicMore/index.js'"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,2hCAAAE,EAAAF,GAAA,IAAAG,EAAuC,qCACvCC,EAAwC,sCACxCC,EAAkC,gCAClCC,EAAiC,+BACjCC,EAAkC,gCAClCC,EAAwC,sCACxCC,EAAoC,kCACpCC,EAAoC,kCACpCC,EAAsC,oCACtCC,EAA0C,wCAC1CC,EAAmC,iCACnCC,EAA2C,yCAC3CC,EAA6C,2CAC7CC,EAA4C,0CAC5CC,EAAmC,iCACnCC,EAAqC,mCACrCC,EAA+B,6BAC/BF,EAAqE,8BACrEG,EAAmD,iDAEnDC,EAAkD,gDAElDC,EAA4C,0CAC5CC,EAA4C,0CAC5CC,EAAsC,oCAEtCC,EAAmD,iCAEnDC,EAA2B,+BAC3BC,EAAwC,sCACxCC,EAAgC,8BAChCC,EAA0C,wCAC1CC,EAA0C,wCAC1CC,EAAiC,+BACjCC,EAAoC,mCAEpCC,EAAoC,kCACpCC,EAAuC,qCACvCC,EAAuC",
6
- "names": ["biz_components_exports", "__export", "__toCommonJS", "import_BrandEquity", "import_MemberEquity", "import_Slogan", "import_Title", "import_Spacer", "import_ShelfDisplay", "import_Evaluate", "import_Category", "import_HeroBanner", "import_AccordionCards", "import_Graphic", "import_MediaPlayerBase", "import_MediaPlayerSticky", "import_MediaPlayerMulti", "import_Marquee", "import_WhyChoose", "import_Faq", "import_MultiLayoutGraphicBlock", "import_GraphicAttractionBlock", "import_HeaderNavigation", "import_FooterNavigation", "import_SearchPage", "import_types", "import_Styles", "import_AiuiProvider", "import_Tabs", "import_CreativeModule", "import_GraphicOverlay", "import_Specs", "import_TabsGroup", "import_Features", "import_FootCharger", "import_GraphicMore"]
4
+ "sourcesContent": ["export { default as BrandEquity } from './BrandEquity/index.js'\nexport { default as MemberEquity } from './MemberEquity/index.js'\nexport { default as Slogan } from './Slogan/index.js'\nexport { default as Title } from './Title/index.js'\nexport { default as Spacer } from './Spacer/index.js'\nexport { default as ShelfDisplay } from './ShelfDisplay/index.js'\nexport { default as Evaluate } from './Evaluate/index.js'\nexport { default as Category } from './Category/index.js'\nexport { default as HeroBanner } from './HeroBanner/index.js'\nexport { default as AccordionCards } from './AccordionCards/index.js'\nexport { default as Graphic } from './Graphic/index.js'\nexport { default as MediaPlayerBase } from './MediaPlayerBase/index.js'\nexport { default as MediaPlayerSticky } from './MediaPlayerSticky/index.js'\nexport { default as MediaPlayerMulti } from './MediaPlayerMulti/index.js'\nexport { default as Marquee } from './Marquee/index.js'\nexport { default as WhyChoose } from './WhyChoose/index.js'\nexport { default as Faq } from './Faq/index.js'\nexport { MarqueeItem, MarqueeImageContent, MarqueeTextContent } from './Marquee/index.js'\nexport { default as MultiLayoutGraphicBlock } from './MultiLayoutGraphicBlock/index.js'\nexport type { MultiLayoutGraphicBlockProps } from './MultiLayoutGraphicBlock/index.js'\nexport { default as GraphicAttractionBlock } from './GraphicAttractionBlock/index.js'\nexport type { GraphicAttractionBlockProps } from './GraphicAttractionBlock/index.js'\nexport { default as HeaderNavigation } from './HeaderNavigation/index.js'\nexport { default as FooterNavigation } from './FooterNavigation/index.js'\nexport { default as SearchPage } from './SearchPage/index.js'\nexport type { SearchPageProps } from './SearchPage/types.js'\nexport { IPC_SEARCH_PAGE, SearchPageTabType } from './SearchPage/types.js'\n\nexport { withLayout } from '../shared/Styles.js'\nexport { default as AiuiProvider } from './AiuiProvider/index.js'\nexport { default as Tabs } from './Tabs/index.js'\nexport { default as CreativeModule } from './CreativeModule/index.js'\nexport { default as GraphicOverlay } from './GraphicOverlay/index.js'\nexport { default as Specs } from './Specs/index.js'\nexport { default as TabGroup } from './TabsGroup/index.js'\n\nexport { default as Listing } from './Listing/index.js'\nexport { default as BizProductProvider } from './Listing/BizProductProvider.js'\nexport { default as PurchaseBar } from './Listing/components/PurchaseBar/index.js'\nexport { default as ProductActions } from './Listing/components/PurchaseBar/ProductActions/index.js'\nexport { default as ProductCard } from './Listing/components/ProductCard/index.js'\nexport { default as ProductBenefitsTabs } from './Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js'\nexport { default as ProductHighlight } from './Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js'\nexport { default as ProductFreeGift } from './Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js'\nexport { default as ProductExchangePurchase } from './Listing/components/ProductCard/ProductDetail/ProductExchangePurchase/index.js'\nexport { default as ProductOptions } from './Listing/components/ProductCard/ProductDetail/ProductOptions/index.js'\nexport { default as ProductBundle } from './Listing/components/ProductCard/ProductDetail/ProductBundle/index.js'\nexport { default as ProductGridBox } from './Listing/components/ProductCard/ProductGridBox.js'\nexport { default as ProductGallery } from './Listing/components/ProductCard/ProductGallery/index.js'\nexport { default as ProductDetail } from './Listing/components/ProductCard/ProductDetail/index.js'\nexport { default as ProductSummary } from './Listing/components/ProductCard/ProductSummary/index.js'\nexport { default as BenefitsTab } from './Listing/components/ProductCard/ProductDetail/BenefitsTab'\nexport { default as PaidShipping } from './Listing/components/PaidShipping/index.js'\n\nexport { default as GraphicMore } from './GraphicMore/index.js'\nexport { default as Features } from './Features/index.js'\nexport { default as AplusDesc } from './AplusDesc/index.js'\nexport { default as GiftBox } from './GiftBox/index.js'\nexport { default as SelectStore } from './SelectStore/index.js'\nexport { default as DownLoad } from './DownLoad/index.js'\nexport { default as FootCharger } from './FootCharger/index.js'\n\nexport const PAYLOAD_COMPONENT_MAP = {\n 'ipc-aplusdesc': 'AplusDesc',\n 'ipc-banner': 'Banner',\n 'ipc-brand-equity': 'BrandEquity',\n 'ipc-category': 'Category',\n 'ipc-collection-banner': 'CollectionBanner',\n 'ipc-collection-shelves': 'CollectionShelves',\n 'ipc-creativemodule': 'CreativeModule',\n 'ipc-download': 'DownLoad',\n 'ipc-evaluate': 'Evaluate',\n 'ipc-faq': 'Faq',\n 'ipc-features': 'Features',\n 'ipc-footcharger': 'FootCharger',\n 'ipc-ga-block': 'GraphicAttractionBlock',\n 'ipc-giftbox': 'GiftBox',\n 'ipc-graphic': 'Graphic',\n 'ipc-graphicmore': 'GraphicMore',\n 'ipc-graphicoverlay': 'GraphicOverlay',\n 'ipc-marquee': 'Marquee',\n 'ipc-mediaplayerbase': 'MediaPlayerBase',\n 'ipc-mediaplayermulti': 'MediaPlayerMulti',\n 'ipc-mediaplayersticky': 'MediaPlayerSticky',\n 'ipc-member-equity': 'MemberEquity',\n 'ipc-mlg-block': 'MultiLayoutGraphicBlock',\n 'ipc-search-page-tabs': 'SearchPageBlock',\n 'ipc-selectstore': 'SelectStore',\n 'ipc-shelfdisplay': 'ShelfDisplay',\n 'ipc-slogan': 'Slogan',\n 'ipc-spacer': 'Spacer',\n 'ipc-specs': 'Specs',\n 'ipc-tabs': 'Tabs',\n 'ipc-text-marquee': 'TextMarquee',\n 'ipc-title': 'Title',\n 'ipc-whychoose': 'WhyChoose',\n}\n"],
5
+ "mappings": "skBAAA,IAAAA,GAAA,GAAAC,GAAAD,GAAA,m7BAAAE,GAAA,wtBAAAC,GAAAH,IAAA,IAAAI,EAAuC,qCACvCC,EAAwC,sCACxCC,EAAkC,gCAClCC,EAAiC,+BACjCC,EAAkC,gCAClCC,EAAwC,sCACxCC,EAAoC,kCACpCC,EAAoC,kCACpCC,EAAsC,oCACtCC,EAA0C,wCAC1CC,EAAmC,iCACnCC,EAA2C,yCAC3CC,EAA6C,2CAC7CC,EAA4C,0CAC5CC,EAAmC,iCACnCC,EAAqC,mCACrCC,EAA+B,6BAC/BF,EAAqE,8BACrEG,EAAmD,iDAEnDC,EAAkD,gDAElDC,EAA4C,0CAC5CC,EAA4C,0CAC5CC,EAAsC,oCAEtCC,EAAmD,iCAEnDC,EAA2B,+BAC3BC,EAAwC,sCACxCC,EAAgC,8BAChCC,EAA0C,wCAC1CC,EAA0C,wCAC1CC,EAAiC,+BACjCC,EAAoC,mCAEpCC,EAAmC,iCACnCC,EAA8C,8CAC9CC,EAAuC,wDACvCC,EAA0C,uEAC1CC,EAAuC,wDACvCC,EAA+C,0FAC/CC,EAA4C,uFAC5CC,EAA2C,sFAC3CC,EAAmD,8FACnDC,EAA0C,qFAC1CC,EAAyC,oFACzCC,EAA0C,iEAC1CC,EAA0C,uEAC1CC,EAAyC,sEACzCC,EAA0C,uEAC1CC,GAAuC,yEACvCC,GAAwC,yDAExCC,GAAuC,qCACvCC,GAAoC,kCACpCC,GAAqC,mCACrCC,GAAmC,iCACnCC,GAAuC,qCACvCC,GAAoC,kCACpCC,GAAuC,qCAEhC,MAAMvD,GAAwB,CACnC,gBAAiB,YACjB,aAAc,SACd,mBAAoB,cACpB,eAAgB,WAChB,wBAAyB,mBACzB,yBAA0B,oBAC1B,qBAAsB,iBACtB,eAAgB,WAChB,eAAgB,WAChB,UAAW,MACX,eAAgB,WAChB,kBAAmB,cACnB,eAAgB,yBAChB,cAAe,UACf,cAAe,UACf,kBAAmB,cACnB,qBAAsB,iBACtB,cAAe,UACf,sBAAuB,kBACvB,uBAAwB,mBACxB,wBAAyB,oBACzB,oBAAqB,eACrB,gBAAiB,0BACjB,uBAAwB,kBACxB,kBAAmB,cACnB,mBAAoB,eACpB,aAAc,SACd,aAAc,SACd,YAAa,QACb,WAAY,OACZ,mBAAoB,cACpB,YAAa,QACb,gBAAiB,WACnB",
6
+ "names": ["biz_components_exports", "__export", "PAYLOAD_COMPONENT_MAP", "__toCommonJS", "import_BrandEquity", "import_MemberEquity", "import_Slogan", "import_Title", "import_Spacer", "import_ShelfDisplay", "import_Evaluate", "import_Category", "import_HeroBanner", "import_AccordionCards", "import_Graphic", "import_MediaPlayerBase", "import_MediaPlayerSticky", "import_MediaPlayerMulti", "import_Marquee", "import_WhyChoose", "import_Faq", "import_MultiLayoutGraphicBlock", "import_GraphicAttractionBlock", "import_HeaderNavigation", "import_FooterNavigation", "import_SearchPage", "import_types", "import_Styles", "import_AiuiProvider", "import_Tabs", "import_CreativeModule", "import_GraphicOverlay", "import_Specs", "import_TabsGroup", "import_Listing", "import_BizProductProvider", "import_PurchaseBar", "import_ProductActions", "import_ProductCard", "import_ProductBenefitsTabs", "import_ProductHighlight", "import_ProductFreeGift", "import_ProductExchangePurchase", "import_ProductOptions", "import_ProductBundle", "import_ProductGridBox", "import_ProductGallery", "import_ProductDetail", "import_ProductSummary", "import_BenefitsTab", "import_PaidShipping", "import_GraphicMore", "import_Features", "import_AplusDesc", "import_GiftBox", "import_SelectStore", "import_DownLoad", "import_FootCharger"]
7
7
  }
@@ -0,0 +1,45 @@
1
+ import React, { type ReactNode } from 'react';
2
+ import { type UseExposureDetectionOptions } from '../hooks/useExposureDetection.js';
3
+ export interface ExposureDetectorProps extends Omit<UseExposureDetectionOptions, 'onExposure'> {
4
+ /**
5
+ * 子元素
6
+ */
7
+ children: ReactNode;
8
+ /**
9
+ * 曝光回调函数
10
+ */
11
+ onExposure?: () => void;
12
+ /**
13
+ * 包装元素的标签,默认 'div'
14
+ */
15
+ as?: keyof JSX.IntrinsicElements;
16
+ /**
17
+ * 包装元素的 className
18
+ */
19
+ className?: string;
20
+ /**
21
+ * 包装元素的 style
22
+ */
23
+ style?: React.CSSProperties;
24
+ }
25
+ /**
26
+ * 曝光检测组件
27
+ * 使用 IntersectionObserver 检测子元素是否至少 50% 可见且停留时间超过指定时间
28
+ * 确保在整个页面生命周期中只曝光一次
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * <ExposureDetector
33
+ * exposureKey="my-component-1"
34
+ * threshold={0.5}
35
+ * duration={2000}
36
+ * onExposure={() => {
37
+ * console.log('元素已曝光')
38
+ * }}
39
+ * >
40
+ * <div>内容</div>
41
+ * </ExposureDetector>
42
+ * ```
43
+ */
44
+ export declare const ExposureDetector: React.FC<ExposureDetectorProps>;
45
+ export default ExposureDetector;
@@ -0,0 +1,2 @@
1
+ "use strict";var R=Object.create;var n=Object.defineProperty;var D=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var o in t)n(e,o,{get:t[o],enumerable:!0})},i=(e,t,o,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of y(t))!O.call(e,r)&&r!==o&&n(e,r,{get:()=>t[r],enumerable:!(s=D(t,r))||s.enumerable});return e};var S=(e,t,o)=>(o=e!=null?R(N(e)):{},i(t||!e||!e.__esModule?n(o,"default",{value:e,enumerable:!0}):o,e)),v=e=>i(n({},"__esModule",{value:!0}),e);var U={};P(U,{ExposureDetector:()=>x,default:()=>C});module.exports=v(U);var p=S(require("react")),u=require("../hooks/useExposureDetection.js");const x=({children:e,onExposure:t,exposureKey:o,threshold:s=.5,duration:r=2e3,once:a=!0,rootMargin:E="0px",as:l="div",className:m,style:f,...d})=>{const c=(0,p.useRef)(null);return(0,u.useExposureDetection)(c,{exposureKey:o,threshold:s,duration:r,once:a,onExposure:t,rootMargin:E}),p.default.createElement(l,{ref:c,className:m,style:f,...d},e)};var C=x;
2
+ //# sourceMappingURL=ExposureDetector.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/ExposureDetector.tsx"],
4
+ "sourcesContent": ["import React, { useRef, type ReactNode } from 'react'\nimport { useExposureDetection, type UseExposureDetectionOptions } from '../hooks/useExposureDetection.js'\n\nexport interface ExposureDetectorProps extends Omit<UseExposureDetectionOptions, 'onExposure'> {\n /**\n * \u5B50\u5143\u7D20\n */\n children: ReactNode\n /**\n * \u66DD\u5149\u56DE\u8C03\u51FD\u6570\n */\n onExposure?: () => void\n /**\n * \u5305\u88C5\u5143\u7D20\u7684\u6807\u7B7E\uFF0C\u9ED8\u8BA4 'div'\n */\n as?: keyof JSX.IntrinsicElements\n /**\n * \u5305\u88C5\u5143\u7D20\u7684 className\n */\n className?: string\n /**\n * \u5305\u88C5\u5143\u7D20\u7684 style\n */\n style?: React.CSSProperties\n}\n\n/**\n * \u66DD\u5149\u68C0\u6D4B\u7EC4\u4EF6\n * \u4F7F\u7528 IntersectionObserver \u68C0\u6D4B\u5B50\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 * @example\n * ```tsx\n * <ExposureDetector\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 * <div>\u5185\u5BB9</div>\n * </ExposureDetector>\n * ```\n */\nexport const ExposureDetector: React.FC<ExposureDetectorProps> = ({\n children,\n onExposure,\n exposureKey,\n threshold = 0.5,\n duration = 2000,\n once = true,\n rootMargin = '0px',\n as: Component = 'div',\n className,\n style,\n ...rest\n}) => {\n const elementRef = useRef<HTMLElement>(null)\n\n useExposureDetection(elementRef, {\n exposureKey,\n threshold,\n duration,\n once,\n onExposure,\n rootMargin,\n })\n\n return React.createElement(\n Component,\n {\n ref: elementRef,\n className,\n style,\n ...rest,\n },\n children\n )\n}\n\nexport default ExposureDetector\n\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,EAAA,YAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAA8C,oBAC9CC,EAAuE,4CA4ChE,MAAMJ,EAAoD,CAAC,CAChE,SAAAK,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EAAY,GACZ,SAAAC,EAAW,IACX,KAAAC,EAAO,GACP,WAAAC,EAAa,MACb,GAAIC,EAAY,MAChB,UAAAC,EACA,MAAAC,EACA,GAAGC,CACL,IAAM,CACJ,MAAMC,KAAa,UAAoB,IAAI,EAE3C,iCAAqBA,EAAY,CAC/B,YAAAT,EACA,UAAAC,EACA,SAAAC,EACA,KAAAC,EACA,WAAAJ,EACA,WAAAK,CACF,CAAC,EAEM,EAAAM,QAAM,cACXL,EACA,CACE,IAAKI,EACL,UAAAH,EACA,MAAAC,EACA,GAAGC,CACL,EACAV,CACF,CACF,EAEA,IAAOJ,EAAQD",
6
+ "names": ["ExposureDetector_exports", "__export", "ExposureDetector", "ExposureDetector_default", "__toCommonJS", "import_react", "import_useExposureDetection", "children", "onExposure", "exposureKey", "threshold", "duration", "once", "rootMargin", "Component", "className", "style", "rest", "elementRef", "React"]
7
+ }
@@ -5,6 +5,7 @@ declare const checkboxVariants: (props?: ({
5
5
  size?: "base" | "lg" | "sm" | null | undefined;
6
6
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
7
  interface CheckboxProps extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>, VariantProps<typeof checkboxVariants> {
8
+ iconClassName?: string;
8
9
  }
9
10
  declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLButtonElement>>;
10
11
  export default Checkbox;
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var l=Object.create;var s=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var k=Object.getPrototypeOf,u=Object.prototype.hasOwnProperty;var y=(e,o)=>{for(var i in o)s(e,i,{get:o[i],enumerable:!0})},n=(e,o,i,t)=>{if(o&&typeof o=="object"||typeof o=="function")for(let r of h(o))!u.call(e,r)&&r!==i&&s(e,r,{get:()=>o[r],enumerable:!(t=x(o,r))||t.enumerable});return e};var b=(e,o,i)=>(i=e!=null?l(k(e)):{},n(o||!e||!e.__esModule?s(i,"default",{value:e,enumerable:!0}):i,e)),C=e=>n(s({},"__esModule",{value:!0}),e);var R={};y(R,{default:()=>g});module.exports=C(R);var a=require("react/jsx-runtime"),v=b(require("react")),f=b(require("@radix-ui/react-checkbox")),d=require("@radix-ui/react-icons"),c=require("../helpers/index.js"),m=require("class-variance-authority");const P=(0,m.cva)("border-primary ring-offset-background focus-visible:ring-ring data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground disabled:bg-btn-primary-disabled peer shrink-0 rounded-sm border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",{variants:{size:{sm:"size-[14px]",base:"size-4",lg:"size-5"}},defaultVariants:{size:"base"}}),p=v.forwardRef(({className:e,size:o,...i},t)=>(0,a.jsx)(f.Root,{ref:t,className:(0,c.cn)(P({size:o}),e),...i,children:(0,a.jsx)(f.Indicator,{className:(0,c.cn)("flex size-full items-center justify-center text-current"),children:(0,a.jsx)(d.CheckIcon,{})})}));p.displayName="Checkbox";var g=p;
1
+ "use strict";"use client";var b=Object.create;var a=Object.defineProperty;var m=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,g=Object.prototype.hasOwnProperty;var k=(e,o)=>{for(var t in o)a(e,t,{get:o[t],enumerable:!0})},n=(e,o,t,s)=>{if(o&&typeof o=="object"||typeof o=="function")for(let i of h(o))!g.call(e,i)&&i!==t&&a(e,i,{get:()=>o[i],enumerable:!(s=m(o,i))||s.enumerable});return e};var l=(e,o,t)=>(t=e!=null?b(x(e)):{},n(o||!e||!e.__esModule?a(t,"default",{value:e,enumerable:!0}):t,e)),u=e=>n(a({},"__esModule",{value:!0}),e);var R={};k(R,{default:()=>P});module.exports=u(R);var r=require("react/jsx-runtime"),v=l(require("react")),d=l(require("@radix-ui/react-checkbox")),c=require("../helpers/index.js"),p=require("class-variance-authority");const C=e=>(0,r.jsx)("svg",{width:"20",height:"20",viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e,children:(0,r.jsx)("path",{d:"M7.5 15.8333L1.66667 10L3.75 7.91667L7.5 11.6667L16.25 3L18.3333 5.08333L7.5 15.8333Z",fill:"currentColor"})}),y=(0,p.cva)("border-primary ring-offset-background focus-visible:ring-ring data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground disabled:bg-btn-primary-disabled peer shrink-0 rounded-sm border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",{variants:{size:{sm:"size-[14px]",base:"size-4",lg:"size-5"}},defaultVariants:{size:"base"}}),f=v.forwardRef(({className:e,size:o,iconClassName:t,...s},i)=>(0,r.jsx)(d.Root,{ref:i,className:(0,c.cn)(y({size:o}),e),...s,children:(0,r.jsx)(d.Indicator,{className:(0,c.cn)("flex size-full items-center justify-center text-current"),children:(0,r.jsx)(C,{width:16,height:12,className:t})})}));f.displayName="Checkbox";var P=f;
2
2
  //# sourceMappingURL=checkbox.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/checkbox.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { CheckIcon } from '@radix-ui/react-icons'\n\nimport { cn } from '../helpers/index.js'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nconst checkboxVariants = cva(\n 'border-primary ring-offset-background focus-visible:ring-ring data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground disabled:bg-btn-primary-disabled peer shrink-0 rounded-sm border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'size-[14px]',\n base: 'size-4',\n lg: 'size-5',\n },\n },\n defaultVariants: {\n size: 'base',\n },\n }\n)\n\ninterface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>,\n VariantProps<typeof checkboxVariants> {}\n\nconst Checkbox = React.forwardRef<React.ElementRef<typeof CheckboxPrimitive.Root>, CheckboxProps>(\n ({ className, size, ...props }, ref) => (\n <CheckboxPrimitive.Root ref={ref} className={cn(checkboxVariants({ size }), className)} {...props}>\n <CheckboxPrimitive.Indicator className={cn('flex size-full items-center justify-center text-current')}>\n <CheckIcon />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n)\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\nexport type { CheckboxProps }\n"],
5
- "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAiCQ,IAAAI,EAAA,6BA/BRC,EAAuB,oBACvBC,EAAmC,uCACnCC,EAA0B,iCAE1BC,EAAmB,+BACnBC,EAAuC,oCAEvC,MAAMC,KAAmB,OACvB,0UACA,CACE,SAAU,CACR,KAAM,CACJ,GAAI,cACJ,KAAM,SACN,GAAI,QACN,CACF,EACA,gBAAiB,CACf,KAAM,MACR,CACF,CACF,EAMMC,EAAWN,EAAM,WACrB,CAAC,CAAE,UAAAO,EAAW,KAAAC,EAAM,GAAGC,CAAM,EAAGC,OAC9B,OAACT,EAAkB,KAAlB,CAAuB,IAAKS,EAAK,aAAW,MAAGL,EAAiB,CAAE,KAAAG,CAAK,CAAC,EAAGD,CAAS,EAAI,GAAGE,EAC1F,mBAACR,EAAkB,UAAlB,CAA4B,aAAW,MAAG,yDAAyD,EAClG,mBAAC,cAAU,EACb,EACF,CAEJ,EACAK,EAAS,YAAc,WAEvB,IAAOT,EAAQS",
6
- "names": ["checkbox_exports", "__export", "checkbox_default", "__toCommonJS", "import_jsx_runtime", "React", "CheckboxPrimitive", "import_react_icons", "import_helpers", "import_class_variance_authority", "checkboxVariants", "Checkbox", "className", "size", "props", "ref"]
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\n// import { CheckIcon } from '@radix-ui/react-icons'\n\nimport { cn } from '../helpers/index.js'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\n\nconst CheckIcon = (props: React.SVGProps<SVGSVGElement>) => {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.5 15.8333L1.66667 10L3.75 7.91667L7.5 11.6667L16.25 3L18.3333 5.08333L7.5 15.8333Z\"\n fill=\"currentColor\"\n />\n </svg>\n )\n}\n\nconst checkboxVariants = cva(\n 'border-primary ring-offset-background focus-visible:ring-ring data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground disabled:bg-btn-primary-disabled peer shrink-0 rounded-sm border focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50',\n {\n variants: {\n size: {\n sm: 'size-[14px]',\n base: 'size-4',\n lg: 'size-5',\n },\n },\n defaultVariants: {\n size: 'base',\n },\n }\n)\n\ninterface CheckboxProps\n extends React.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>,\n VariantProps<typeof checkboxVariants> {\n iconClassName?: string\n}\n\nconst Checkbox = React.forwardRef<React.ElementRef<typeof CheckboxPrimitive.Root>, CheckboxProps>(\n ({ className, size, iconClassName, ...props }, ref) => (\n <CheckboxPrimitive.Root ref={ref} className={cn(checkboxVariants({ size }), className)} {...props}>\n <CheckboxPrimitive.Indicator className={cn('flex size-full items-center justify-center text-current')}>\n <CheckIcon width={16} height={12} className={iconClassName} />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n)\nCheckbox.displayName = 'Checkbox'\n\nexport default Checkbox\nexport type { CheckboxProps }\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAaM,IAAAI,EAAA,6BAXNC,EAAuB,oBACvBC,EAAmC,uCAGnCC,EAAmB,+BACnBC,EAAuC,oCAGvC,MAAMC,EAAaC,MAEf,OAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,MAAM,6BAA8B,GAAGA,EACjG,mBAAC,QACC,EAAE,wFACF,KAAK,eACP,EACF,EAIEC,KAAmB,OACvB,0UACA,CACE,SAAU,CACR,KAAM,CACJ,GAAI,cACJ,KAAM,SACN,GAAI,QACN,CACF,EACA,gBAAiB,CACf,KAAM,MACR,CACF,CACF,EAQMC,EAAWP,EAAM,WACrB,CAAC,CAAE,UAAAQ,EAAW,KAAAC,EAAM,cAAAC,EAAe,GAAGL,CAAM,EAAGM,OAC7C,OAACV,EAAkB,KAAlB,CAAuB,IAAKU,EAAK,aAAW,MAAGL,EAAiB,CAAE,KAAAG,CAAK,CAAC,EAAGD,CAAS,EAAI,GAAGH,EAC1F,mBAACJ,EAAkB,UAAlB,CAA4B,aAAW,MAAG,yDAAyD,EAClG,mBAACG,EAAA,CAAU,MAAO,GAAI,OAAQ,GAAI,UAAWM,EAAe,EAC9D,EACF,CAEJ,EACAH,EAAS,YAAc,WAEvB,IAAOV,EAAQU",
6
+ "names": ["checkbox_exports", "__export", "checkbox_default", "__toCommonJS", "import_jsx_runtime", "React", "CheckboxPrimitive", "import_helpers", "import_class_variance_authority", "CheckIcon", "props", "checkboxVariants", "Checkbox", "className", "size", "iconClassName", "ref"]
7
7
  }
@@ -4,7 +4,7 @@ declare const Dialog: React.FC<DialogPrimitive.DialogProps>;
4
4
  declare const DialogTrigger: React.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React.RefAttributes<HTMLButtonElement>>;
5
5
  declare const DialogPortal: React.FC<DialogPrimitive.DialogPortalProps>;
6
6
  declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
7
- declare const DialogOverlay: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogOverlayProps & React.RefAttributes<HTMLDivElement>, "ref"> & React.RefAttributes<HTMLDivElement>>;
7
+ declare const DialogOverlay: React.ForwardRefExoticComponent<DialogPrimitive.DialogOverlayProps & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
8
8
  declare const DialogContent: React.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogContentProps & React.RefAttributes<HTMLDivElement>, "ref"> & {
9
9
  overlayClassName?: string;
10
10
  } & React.RefAttributes<HTMLDivElement>>;
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var C=Object.create;var r=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var h=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var E=(e,t)=>{for(var a in t)r(e,a,{get:t[a],enumerable:!0})},v=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of T(t))!w.call(e,s)&&s!==a&&r(e,s,{get:()=>t[s],enumerable:!(n=x(t,s))||n.enumerable});return e};var R=(e,t,a)=>(a=e!=null?C(h(e)):{},v(t||!e||!e.__esModule?r(a,"default",{value:e,enumerable:!0}):a,e)),H=e=>v(r({},"__esModule",{value:!0}),e);var z={};E(z,{Dialog:()=>c,DialogClose:()=>b,DialogContent:()=>p,DialogDescription:()=>u,DialogFooter:()=>y,DialogHeader:()=>g,DialogOverlay:()=>m,DialogPortal:()=>f,DialogTitle:()=>D,DialogTrigger:()=>P});module.exports=H(z);var i=require("react/jsx-runtime"),d=R(require("react")),o=R(require("@radix-ui/react-dialog")),N=require("@radix-ui/react-icons"),l=require("../helpers/index.js");const c=o.Root;c.displayName="Dialog";const P=o.Trigger,f=o.Portal,b=o.Close,m=d.forwardRef(({className:e,...t},a)=>(0,i.jsx)(o.Overlay,{ref:a,className:(0,l.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[1000] bg-black/80",e),...t}));m.displayName=o.Overlay.displayName;const p=d.forwardRef(({className:e,children:t,overlayClassName:a,...n},s)=>(0,i.jsxs)(f,{children:[(0,i.jsx)(m,{className:a}),(0,i.jsxs)(o.Content,{ref:s,className:(0,l.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] tablet:rounded-lg fixed left-1/2 top-1/2 z-[1001] grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 shadow-lg duration-200",e),...n,children:[t,(0,i.jsxs)(o.Close,{className:"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none",children:[(0,i.jsx)(N.Cross2Icon,{className:"size-4"}),(0,i.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));p.displayName=o.Content.displayName;const g=({className:e,...t})=>(0,i.jsx)("div",{className:(0,l.cn)("tablet:text-left flex flex-col space-y-1.5 text-center",e),...t});g.displayName="DialogHeader";const y=({className:e,...t})=>(0,i.jsx)("div",{className:(0,l.cn)("tablet:flex-row tablet:justify-end tablet:space-x-2 flex flex-col-reverse",e),...t});y.displayName="DialogFooter";const D=d.forwardRef(({className:e,...t},a)=>(0,i.jsx)(o.Title,{ref:a,className:(0,l.cn)("text-lg font-semibold leading-none tracking-tight",e),...t}));D.displayName=o.Title.displayName;const u=d.forwardRef(({className:e,...t},a)=>(0,i.jsx)(o.Description,{ref:a,className:(0,l.cn)("text-muted-foreground text-sm",e),...t}));u.displayName=o.Description.displayName;
1
+ "use strict";"use client";var x=Object.create;var r=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var H=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var h=(e,t)=>{for(var a in t)r(e,a,{get:t[a],enumerable:!0})},v=(e,t,a,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of T(t))!w.call(e,l)&&l!==a&&r(e,l,{get:()=>t[l],enumerable:!(n=C(t,l))||n.enumerable});return e};var N=(e,t,a)=>(a=e!=null?x(H(e)):{},v(t||!e||!e.__esModule?r(a,"default",{value:e,enumerable:!0}):a,e)),E=e=>v(r({},"__esModule",{value:!0}),e);var L={};h(L,{Dialog:()=>c,DialogClose:()=>P,DialogContent:()=>f,DialogDescription:()=>u,DialogFooter:()=>D,DialogHeader:()=>g,DialogOverlay:()=>m,DialogPortal:()=>p,DialogTitle:()=>y,DialogTrigger:()=>b});module.exports=E(L);var i=require("react/jsx-runtime"),d=N(require("react")),o=N(require("@radix-ui/react-dialog")),R=require("@radix-ui/react-icons"),s=require("../helpers/index.js");const c=o.Root;c.displayName="Dialog";const b=o.Trigger,p=o.Portal,P=o.Close,m=d.forwardRef(({className:e,...t},a)=>(0,i.jsx)(o.Overlay,{ref:a,className:(0,s.cn)("data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[1000] bg-black/80",e),...t}));m.displayName=o.Overlay.displayName;const f=d.forwardRef(({className:e,children:t,overlayClassName:a,...n},l)=>(0,i.jsxs)(p,{children:[(0,i.jsx)(m,{className:a}),(0,i.jsxs)(o.Content,{ref:l,className:(0,s.cn)("bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] tablet:rounded-lg fixed left-1/2 top-1/2 z-[1001] grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 shadow-lg duration-200",e),...n,children:[t,(0,i.jsxs)(o.Close,{className:"dialog-close-button ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none",children:[(0,i.jsx)(R.Cross2Icon,{className:"size-4 dialog-close-icon"}),(0,i.jsx)("span",{className:"sr-only",children:"Close"})]})]})]}));f.displayName=o.Content.displayName;const g=({className:e,...t})=>(0,i.jsx)("div",{className:(0,s.cn)("tablet:text-left flex flex-col space-y-1.5 text-center",e),...t});g.displayName="DialogHeader";const D=({className:e,...t})=>(0,i.jsx)("div",{className:(0,s.cn)("tablet:flex-row tablet:justify-end tablet:space-x-2 flex flex-col-reverse",e),...t});D.displayName="DialogFooter";const y=d.forwardRef(({className:e,...t},a)=>(0,i.jsx)(o.Title,{ref:a,className:(0,s.cn)("text-lg font-semibold leading-none tracking-tight",e),...t}));y.displayName=o.Title.displayName;const u=d.forwardRef(({className:e,...t},a)=>(0,i.jsx)(o.Description,{ref:a,className:(0,s.cn)("text-muted-foreground text-sm",e),...t}));u.displayName=o.Description.displayName;
2
2
  //# sourceMappingURL=dialog.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/dialog.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { Cross2Icon } from '@radix-ui/react-icons'\n\nimport { cn } from '../helpers/index.js'\n\nconst Dialog = DialogPrimitive.Root\nDialog.displayName = 'Dialog'\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\nconst DialogOverlay = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Overlay>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[1000] bg-black/80',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n overlayClassName?: string\n }\n>(({ className, children, overlayClassName, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay className={overlayClassName} />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] tablet:rounded-lg fixed left-1/2 top-1/2 z-[1001] grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 shadow-lg duration-200',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:pointer-events-none\">\n <Cross2Icon className=\"size-4\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('tablet:text-left flex flex-col space-y-1.5 text-center', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('tablet:flex-row tablet:justify-end tablet:space-x-2 flex flex-col-reverse', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n"],
5
- "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,gBAAAC,EAAA,kBAAAC,EAAA,sBAAAC,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,kBAAAC,EAAA,iBAAAC,EAAA,gBAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAZ,GAqBE,IAAAa,EAAA,6BAnBFC,EAAuB,oBACvBC,EAAiC,qCACjCC,EAA2B,iCAE3BC,EAAmB,+BAEnB,MAAMf,EAASa,EAAgB,KAC/Bb,EAAO,YAAc,SAErB,MAAMS,EAAgBI,EAAgB,QAEhCN,EAAeM,EAAgB,OAE/BZ,EAAcY,EAAgB,MAE9BP,EAAgBM,EAAM,WAG1B,CAAC,CAAE,UAAAI,EAAW,GAAGC,CAAM,EAAGC,OAC1B,OAACL,EAAgB,QAAhB,CACC,IAAKK,EACL,aAAW,MACT,8JACAF,CACF,EACC,GAAGC,EACN,CACD,EACDX,EAAc,YAAcO,EAAgB,QAAQ,YAEpD,MAAMX,EAAgBU,EAAM,WAK1B,CAAC,CAAE,UAAAI,EAAW,SAAAG,EAAU,iBAAAC,EAAkB,GAAGH,CAAM,EAAGC,OACtD,QAACX,EAAA,CACC,oBAACD,EAAA,CAAc,UAAWc,EAAkB,KAC5C,QAACP,EAAgB,QAAhB,CACC,IAAKK,EACL,aAAW,MACT,8fACAF,CACF,EACC,GAAGC,EAEH,UAAAE,KACD,QAACN,EAAgB,MAAhB,CAAsB,UAAU,gRAC/B,oBAAC,cAAW,UAAU,SAAS,KAC/B,OAAC,QAAK,UAAU,UAAU,iBAAK,GACjC,GACF,GACF,CACD,EACDX,EAAc,YAAcW,EAAgB,QAAQ,YAEpD,MAAMR,EAAe,CAAC,CAAE,UAAAW,EAAW,GAAGC,CAAM,OAC1C,OAAC,OAAI,aAAW,MAAG,yDAA0DD,CAAS,EAAI,GAAGC,EAAO,EAEtGZ,EAAa,YAAc,eAE3B,MAAMD,EAAe,CAAC,CAAE,UAAAY,EAAW,GAAGC,CAAM,OAC1C,OAAC,OACC,aAAW,MAAG,4EAA6ED,CAAS,EACnG,GAAGC,EACN,EAEFb,EAAa,YAAc,eAE3B,MAAMI,EAAcI,EAAM,WAGxB,CAAC,CAAE,UAAAI,EAAW,GAAGC,CAAM,EAAGC,OAC1B,OAACL,EAAgB,MAAhB,CACC,IAAKK,EACL,aAAW,MAAG,oDAAqDF,CAAS,EAC3E,GAAGC,EACN,CACD,EACDT,EAAY,YAAcK,EAAgB,MAAM,YAEhD,MAAMV,EAAoBS,EAAM,WAG9B,CAAC,CAAE,UAAAI,EAAW,GAAGC,CAAM,EAAGC,OAC1B,OAACL,EAAgB,YAAhB,CAA4B,IAAKK,EAAK,aAAW,MAAG,gCAAiCF,CAAS,EAAI,GAAGC,EAAO,CAC9G,EACDd,EAAkB,YAAcU,EAAgB,YAAY",
4
+ "sourcesContent": ["'use client'\n\nimport * as React from 'react'\nimport * as DialogPrimitive from '@radix-ui/react-dialog'\nimport { Cross2Icon } from '@radix-ui/react-icons'\n\nimport { cn } from '../helpers/index.js'\n\nconst Dialog = DialogPrimitive.Root\nDialog.displayName = 'Dialog'\n\nconst DialogTrigger = DialogPrimitive.Trigger\n\nconst DialogPortal = DialogPrimitive.Portal\n\nconst DialogClose = DialogPrimitive.Close\n\ntype OverlayProps = DialogPrimitive.DialogOverlayProps & React.HTMLAttributes<HTMLDivElement>\n\nconst DialogOverlay = React.forwardRef<HTMLDivElement, OverlayProps>(({ className, ...props }, ref) => (\n <DialogPrimitive.Overlay\n ref={ref}\n className={cn(\n 'data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 fixed inset-0 z-[1000] bg-black/80',\n className\n )}\n {...props}\n />\n))\nDialogOverlay.displayName = DialogPrimitive.Overlay.displayName\n\nconst DialogContent = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Content> & {\n overlayClassName?: string\n }\n>(({ className, children, overlayClassName, ...props }, ref) => (\n <DialogPortal>\n <DialogOverlay className={overlayClassName} />\n <DialogPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-background data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] tablet:rounded-lg fixed left-1/2 top-1/2 z-[1001] grid w-full max-w-lg -translate-x-1/2 -translate-y-1/2 gap-4 border p-6 shadow-lg duration-200',\n className\n )}\n {...props}\n >\n {children}\n <DialogPrimitive.Close className=\"dialog-close-button ring-offset-background focus:ring-ring data-[state=open]:bg-accent data-[state=open]:text-muted-foreground absolute right-4 top-4 rounded-sm opacity-70 transition-opacity hover:opacity-100 disabled:pointer-events-none\">\n <Cross2Icon className=\"size-4 dialog-close-icon\" />\n <span className=\"sr-only\">Close</span>\n </DialogPrimitive.Close>\n </DialogPrimitive.Content>\n </DialogPortal>\n))\nDialogContent.displayName = DialogPrimitive.Content.displayName\n\nconst DialogHeader = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div className={cn('tablet:text-left flex flex-col space-y-1.5 text-center', className)} {...props} />\n)\nDialogHeader.displayName = 'DialogHeader'\n\nconst DialogFooter = ({ className, ...props }: React.HTMLAttributes<HTMLDivElement>) => (\n <div\n className={cn('tablet:flex-row tablet:justify-end tablet:space-x-2 flex flex-col-reverse', className)}\n {...props}\n />\n)\nDialogFooter.displayName = 'DialogFooter'\n\nconst DialogTitle = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Title>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Title\n ref={ref}\n className={cn('text-lg font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n))\nDialogTitle.displayName = DialogPrimitive.Title.displayName\n\nconst DialogDescription = React.forwardRef<\n React.ElementRef<typeof DialogPrimitive.Description>,\n React.ComponentPropsWithoutRef<typeof DialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n <DialogPrimitive.Description ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n))\nDialogDescription.displayName = DialogPrimitive.Description.displayName\n\nexport {\n Dialog,\n DialogPortal,\n DialogOverlay,\n DialogClose,\n DialogTrigger,\n DialogContent,\n DialogHeader,\n DialogFooter,\n DialogTitle,\n DialogDescription,\n}\n"],
5
+ "mappings": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,YAAAE,EAAA,gBAAAC,EAAA,kBAAAC,EAAA,sBAAAC,EAAA,iBAAAC,EAAA,iBAAAC,EAAA,kBAAAC,EAAA,iBAAAC,EAAA,gBAAAC,EAAA,kBAAAC,IAAA,eAAAC,EAAAZ,GAoBE,IAAAa,EAAA,6BAlBFC,EAAuB,oBACvBC,EAAiC,qCACjCC,EAA2B,iCAE3BC,EAAmB,+BAEnB,MAAMf,EAASa,EAAgB,KAC/Bb,EAAO,YAAc,SAErB,MAAMS,EAAgBI,EAAgB,QAEhCN,EAAeM,EAAgB,OAE/BZ,EAAcY,EAAgB,MAI9BP,EAAgBM,EAAM,WAAyC,CAAC,CAAE,UAAAI,EAAW,GAAGC,CAAM,EAAGC,OAC7F,OAACL,EAAgB,QAAhB,CACC,IAAKK,EACL,aAAW,MACT,8JACAF,CACF,EACC,GAAGC,EACN,CACD,EACDX,EAAc,YAAcO,EAAgB,QAAQ,YAEpD,MAAMX,EAAgBU,EAAM,WAK1B,CAAC,CAAE,UAAAI,EAAW,SAAAG,EAAU,iBAAAC,EAAkB,GAAGH,CAAM,EAAGC,OACtD,QAACX,EAAA,CACC,oBAACD,EAAA,CAAc,UAAWc,EAAkB,KAC5C,QAACP,EAAgB,QAAhB,CACC,IAAKK,EACL,aAAW,MACT,8fACAF,CACF,EACC,GAAGC,EAEH,UAAAE,KACD,QAACN,EAAgB,MAAhB,CAAsB,UAAU,gPAC/B,oBAAC,cAAW,UAAU,2BAA2B,KACjD,OAAC,QAAK,UAAU,UAAU,iBAAK,GACjC,GACF,GACF,CACD,EACDX,EAAc,YAAcW,EAAgB,QAAQ,YAEpD,MAAMR,EAAe,CAAC,CAAE,UAAAW,EAAW,GAAGC,CAAM,OAC1C,OAAC,OAAI,aAAW,MAAG,yDAA0DD,CAAS,EAAI,GAAGC,EAAO,EAEtGZ,EAAa,YAAc,eAE3B,MAAMD,EAAe,CAAC,CAAE,UAAAY,EAAW,GAAGC,CAAM,OAC1C,OAAC,OACC,aAAW,MAAG,4EAA6ED,CAAS,EACnG,GAAGC,EACN,EAEFb,EAAa,YAAc,eAE3B,MAAMI,EAAcI,EAAM,WAGxB,CAAC,CAAE,UAAAI,EAAW,GAAGC,CAAM,EAAGC,OAC1B,OAACL,EAAgB,MAAhB,CACC,IAAKK,EACL,aAAW,MAAG,oDAAqDF,CAAS,EAC3E,GAAGC,EACN,CACD,EACDT,EAAY,YAAcK,EAAgB,MAAM,YAEhD,MAAMV,EAAoBS,EAAM,WAG9B,CAAC,CAAE,UAAAI,EAAW,GAAGC,CAAM,EAAGC,OAC1B,OAACL,EAAgB,YAAhB,CAA4B,IAAKK,EAAK,aAAW,MAAG,gCAAiCF,CAAS,EAAI,GAAGC,EAAO,CAC9G,EACDd,EAAkB,YAAcU,EAAgB,YAAY",
6
6
  "names": ["dialog_exports", "__export", "Dialog", "DialogClose", "DialogContent", "DialogDescription", "DialogFooter", "DialogHeader", "DialogOverlay", "DialogPortal", "DialogTitle", "DialogTrigger", "__toCommonJS", "import_jsx_runtime", "React", "DialogPrimitive", "import_react_icons", "import_helpers", "className", "props", "ref", "children", "overlayClassName"]
7
7
  }
@@ -24,3 +24,4 @@ export { default as Picture } from './picture.js';
24
24
  export { default as Theme } from './theme.js';
25
25
  export { default as Board } from './board.js';
26
26
  export { default as LoadingDots } from './loadingDots.js';
27
+ export { ExposureDetector, type ExposureDetectorProps } from './ExposureDetector.js';
@@ -1,2 +1,2 @@
1
- "use strict";var h=Object.create;var f=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var B=Object.getOwnPropertyNames;var N=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var j=(t,p)=>{for(var d in p)f(t,d,{get:p[d],enumerable:!0})},P=(t,p,d,w)=>{if(p&&typeof p=="object"||typeof p=="function")for(let m of B(p))!O.call(t,m)&&m!==d&&f(t,m,{get:()=>p[m],enumerable:!(w=F(p,m))||w.enumerable});return t};var n=(t,p,d)=>(d=t!=null?h(N(t)):{},P(p||!t||!t.__esModule?f(d,"default",{value:t,enumerable:!0}):d,t)),q=t=>P(f({},"__esModule",{value:!0}),t);var z={};j(z,{Alert:()=>s.Alert,AlertDescription:()=>s.AlertDescription,AlertTitle:()=>s.AlertTitle,Avatar:()=>D.Avatar,AvatarFallback:()=>D.AvatarFallback,AvatarImage:()=>D.AvatarImage,Badge:()=>M.default,Board:()=>H.default,Button:()=>T.default,Card:()=>a.Card,CardContent:()=>a.CardContent,CardDescription:()=>a.CardDescription,CardFooter:()=>a.CardFooter,CardHeader:()=>a.CardHeader,CardTitle:()=>a.CardTitle,Carousel:()=>u.Carousel,CarouselContent:()=>u.CarouselContent,CarouselItem:()=>u.CarouselItem,CarouselNext:()=>u.CarouselNext,CarouselPrevious:()=>u.CarouselPrevious,Checkbox:()=>b.default,Color:()=>v.Color,Container:()=>c.Container,Dialog:()=>o.Dialog,DialogClose:()=>o.DialogClose,DialogContent:()=>o.DialogContent,DialogDescription:()=>o.DialogDescription,DialogFooter:()=>o.DialogFooter,DialogHeader:()=>o.DialogHeader,DialogOverlay:()=>o.DialogOverlay,DialogPortal:()=>o.DialogPortal,DialogTitle:()=>o.DialogTitle,DialogTrigger:()=>o.DialogTrigger,Drawer:()=>e.Drawer,DrawerClose:()=>e.DrawerClose,DrawerContent:()=>e.DrawerContent,DrawerDescription:()=>e.DrawerDescription,DrawerFooter:()=>e.DrawerFooter,DrawerHeader:()=>e.DrawerHeader,DrawerOverlay:()=>e.DrawerOverlay,DrawerPortal:()=>e.DrawerPortal,DrawerTitle:()=>e.DrawerTitle,DrawerTrigger:()=>e.DrawerTrigger,DropdownMenu:()=>r.DropdownMenu,DropdownMenuCheckboxItem:()=>r.DropdownMenuCheckboxItem,DropdownMenuContent:()=>r.DropdownMenuContent,DropdownMenuGroup:()=>r.DropdownMenuGroup,DropdownMenuItem:()=>r.DropdownMenuItem,DropdownMenuLabel:()=>r.DropdownMenuLabel,DropdownMenuPortal:()=>r.DropdownMenuPortal,DropdownMenuRadioGroup:()=>r.DropdownMenuRadioGroup,DropdownMenuRadioItem:()=>r.DropdownMenuRadioItem,DropdownMenuSeparator:()=>r.DropdownMenuSeparator,DropdownMenuShortcut:()=>r.DropdownMenuShortcut,DropdownMenuSub:()=>r.DropdownMenuSub,DropdownMenuSubContent:()=>r.DropdownMenuSubContent,DropdownMenuSubTrigger:()=>r.DropdownMenuSubTrigger,DropdownMenuTrigger:()=>r.DropdownMenuTrigger,Grid:()=>g.Grid,GridItem:()=>g.GridItem,Heading:()=>G.Heading,Input:()=>x.Input,InputNumber:()=>S.default,InputSlot:()=>x.InputSlot,Link:()=>A.default,LoadingDots:()=>L.default,Picture:()=>k.default,Popover:()=>l.Popover,PopoverContent:()=>l.PopoverContent,PopoverTrigger:()=>l.PopoverTrigger,RadioGroup:()=>C.RadioGroup,RadioGroupItem:()=>C.RadioGroupItem,Skeleton:()=>y.default,Tabs:()=>i.Tabs,TabsContent:()=>i.TabsContent,TabsList:()=>i.TabsList,TabsTrigger:()=>i.TabsTrigger,Text:()=>I.Text,Theme:()=>R.default});module.exports=q(z);var T=n(require("./button.js")),M=n(require("./badge.js")),x=require("./input.js"),b=n(require("./checkbox.js")),y=n(require("./skeleton.js")),o=require("./dialog.js"),l=require("./popover.js"),C=require("./radio.js"),I=require("./text.js"),g=require("./gird.js"),G=require("./heading.js"),c=require("./container.js"),v=require("./color.js"),e=require("./drawer.js"),A=n(require("./link.js")),D=require("./avatar.js"),S=n(require("./input-number.js")),r=require("./drop-down.js"),a=require("./card.js"),u=require("./carousel.js"),i=require("./tabs.js"),s=require("./alert.js"),k=n(require("./picture.js")),R=n(require("./theme.js")),H=n(require("./board.js")),L=n(require("./loadingDots.js"));
1
+ "use strict";var F=Object.create;var f=Object.defineProperty;var B=Object.getOwnPropertyDescriptor;var N=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var j=(t,p)=>{for(var d in p)f(t,d,{get:p[d],enumerable:!0})},P=(t,p,d,w)=>{if(p&&typeof p=="object"||typeof p=="function")for(let m of N(p))!O.call(t,m)&&m!==d&&f(t,m,{get:()=>p[m],enumerable:!(w=B(p,m))||w.enumerable});return t};var n=(t,p,d)=>(d=t!=null?F(E(t)):{},P(p||!t||!t.__esModule?f(d,"default",{value:t,enumerable:!0}):d,t)),q=t=>P(f({},"__esModule",{value:!0}),t);var z={};j(z,{Alert:()=>D.Alert,AlertDescription:()=>D.AlertDescription,AlertTitle:()=>D.AlertTitle,Avatar:()=>s.Avatar,AvatarFallback:()=>s.AvatarFallback,AvatarImage:()=>s.AvatarImage,Badge:()=>M.default,Board:()=>H.default,Button:()=>T.default,Card:()=>a.Card,CardContent:()=>a.CardContent,CardDescription:()=>a.CardDescription,CardFooter:()=>a.CardFooter,CardHeader:()=>a.CardHeader,CardTitle:()=>a.CardTitle,Carousel:()=>u.Carousel,CarouselContent:()=>u.CarouselContent,CarouselItem:()=>u.CarouselItem,CarouselNext:()=>u.CarouselNext,CarouselPrevious:()=>u.CarouselPrevious,Checkbox:()=>y.default,Color:()=>v.Color,Container:()=>G.Container,Dialog:()=>o.Dialog,DialogClose:()=>o.DialogClose,DialogContent:()=>o.DialogContent,DialogDescription:()=>o.DialogDescription,DialogFooter:()=>o.DialogFooter,DialogHeader:()=>o.DialogHeader,DialogOverlay:()=>o.DialogOverlay,DialogPortal:()=>o.DialogPortal,DialogTitle:()=>o.DialogTitle,DialogTrigger:()=>o.DialogTrigger,Drawer:()=>e.Drawer,DrawerClose:()=>e.DrawerClose,DrawerContent:()=>e.DrawerContent,DrawerDescription:()=>e.DrawerDescription,DrawerFooter:()=>e.DrawerFooter,DrawerHeader:()=>e.DrawerHeader,DrawerOverlay:()=>e.DrawerOverlay,DrawerPortal:()=>e.DrawerPortal,DrawerTitle:()=>e.DrawerTitle,DrawerTrigger:()=>e.DrawerTrigger,DropdownMenu:()=>r.DropdownMenu,DropdownMenuCheckboxItem:()=>r.DropdownMenuCheckboxItem,DropdownMenuContent:()=>r.DropdownMenuContent,DropdownMenuGroup:()=>r.DropdownMenuGroup,DropdownMenuItem:()=>r.DropdownMenuItem,DropdownMenuLabel:()=>r.DropdownMenuLabel,DropdownMenuPortal:()=>r.DropdownMenuPortal,DropdownMenuRadioGroup:()=>r.DropdownMenuRadioGroup,DropdownMenuRadioItem:()=>r.DropdownMenuRadioItem,DropdownMenuSeparator:()=>r.DropdownMenuSeparator,DropdownMenuShortcut:()=>r.DropdownMenuShortcut,DropdownMenuSub:()=>r.DropdownMenuSub,DropdownMenuSubContent:()=>r.DropdownMenuSubContent,DropdownMenuSubTrigger:()=>r.DropdownMenuSubTrigger,DropdownMenuTrigger:()=>r.DropdownMenuTrigger,ExposureDetector:()=>h.ExposureDetector,Grid:()=>g.Grid,GridItem:()=>g.GridItem,Heading:()=>c.Heading,Input:()=>x.Input,InputNumber:()=>S.default,InputSlot:()=>x.InputSlot,Link:()=>A.default,LoadingDots:()=>L.default,Picture:()=>k.default,Popover:()=>l.Popover,PopoverContent:()=>l.PopoverContent,PopoverTrigger:()=>l.PopoverTrigger,RadioGroup:()=>C.RadioGroup,RadioGroupItem:()=>C.RadioGroupItem,Skeleton:()=>b.default,Tabs:()=>i.Tabs,TabsContent:()=>i.TabsContent,TabsList:()=>i.TabsList,TabsTrigger:()=>i.TabsTrigger,Text:()=>I.Text,Theme:()=>R.default});module.exports=q(z);var T=n(require("./button.js")),M=n(require("./badge.js")),x=require("./input.js"),y=n(require("./checkbox.js")),b=n(require("./skeleton.js")),o=require("./dialog.js"),l=require("./popover.js"),C=require("./radio.js"),I=require("./text.js"),g=require("./gird.js"),c=require("./heading.js"),G=require("./container.js"),v=require("./color.js"),e=require("./drawer.js"),A=n(require("./link.js")),s=require("./avatar.js"),S=n(require("./input-number.js")),r=require("./drop-down.js"),a=require("./card.js"),u=require("./carousel.js"),i=require("./tabs.js"),D=require("./alert.js"),k=n(require("./picture.js")),R=n(require("./theme.js")),H=n(require("./board.js")),L=n(require("./loadingDots.js")),h=require("./ExposureDetector.js");
2
2
  //# sourceMappingURL=index.js.map
@@ -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": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,g8EAAAE,EAAAF,GAAA,IAAAG,EAAkC,0BAClCC,EAAiC,yBACjCC,EAAiC,sBAEjCC,EAAoC,4BAEpCC,EAAoC,4BACpCC,EAWO,uBACPC,EAAwD,wBACxDC,EAA2F,sBAC3FC,EAAqC,qBACrCC,EAAmE,qBACnEC,EAA2C,wBAC3CC,EAA+C,0BAC/CC,EAAuC,sBACvCC,EAWO,uBACPC,EAAgD,wBAChDC,EAAoD,uBACpDC,EAA8D,gCAC9DC,EAgBO,0BACPC,EAAsF,qBACtFC,EAOO,yBACPC,EAAyD,qBACzDC,EAAoD,sBACpDC,EAAmC,2BACnCC,EAAiC,yBACjCC,EAAiC,yBACjCC,EAAuC",
6
- "names": ["components_exports", "__export", "__toCommonJS", "import_button", "import_badge", "import_input", "import_checkbox", "import_skeleton", "import_dialog", "import_popover", "import_radio", "import_text", "import_gird", "import_heading", "import_container", "import_color", "import_drawer", "import_link", "import_avatar", "import_input_number", "import_drop_down", "import_card", "import_carousel", "import_tabs", "import_alert", "import_picture", "import_theme", "import_board", "import_loadingDots"]
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": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,w+EAAAE,EAAAF,GAAA,IAAAG,EAAkC,0BAClCC,EAAiC,yBACjCC,EAAiC,sBAEjCC,EAAoC,4BAEpCC,EAAoC,4BACpCC,EAWO,uBACPC,EAAwD,wBACxDC,EAA2F,sBAC3FC,EAAqC,qBACrCC,EAAmE,qBACnEC,EAA2C,wBAC3CC,EAA+C,0BAC/CC,EAAuC,sBACvCC,EAWO,uBACPC,EAAgD,wBAChDC,EAAoD,uBACpDC,EAA8D,gCAC9DC,EAgBO,0BACPC,EAAsF,qBACtFC,EAOO,yBACPC,EAAyD,qBACzDC,EAAoD,sBACpDC,EAAmC,2BACnCC,EAAiC,yBACjCC,EAAiC,yBACjCC,EAAuC,+BACvCC,EAA6D",
6
+ "names": ["components_exports", "__export", "__toCommonJS", "import_button", "import_badge", "import_input", "import_checkbox", "import_skeleton", "import_dialog", "import_popover", "import_radio", "import_text", "import_gird", "import_heading", "import_container", "import_color", "import_drawer", "import_link", "import_avatar", "import_input_number", "import_drop_down", "import_card", "import_carousel", "import_tabs", "import_alert", "import_picture", "import_theme", "import_board", "import_loadingDots", "import_ExposureDetector"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";"use client";var L=Object.create;var d=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var r in e)d(t,r,{get:e[r],enumerable:!0})},y=(t,e,r,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of F(e))!j.call(t,a)&&a!==r&&d(t,a,{get:()=>e[a],enumerable:!(m=x(e,a))||m.enumerable});return t};var k=(t,e,r)=>(r=t!=null?L(U(t)):{},y(e||!t||!t.__esModule?d(r,"default",{value:t,enumerable:!0}):r,t)),N=t=>y(d({},"__esModule",{value:!0}),t);var C={};R(C,{default:()=>B});module.exports=N(C);var u=require("react/jsx-runtime"),p=k(require("react"));const $=["cdn.shopify.com","cdn.shopifycdn.net","www.facebook.com"],Z=3960,W=3980,v={domains:["cdn.shopify.com","cdn.shopifycdn.net","www.facebook.com"],deviceSizes:[375,768,1024,1280,1440,1540,1920]},z=t=>$.some(e=>t==e),D=(t="")=>/\.(png|apng|jpg|jpeg|gif|svg|webp|tif)/.test(t),H=t=>{try{return new URL(t).searchParams.get("alt")||""}catch{return""}},T=t=>{try{const e=new URL(t);return e.searchParams.delete("alt"),e.toString()}catch{return t}},X=p.default.forwardRef(({imgClassName:t="",source:e="",quality:r=2,deviceSizes:m=[375,767,1023,1024,1279,1440,1439,1539,1919,1920],className:a,loading:A="lazy",alt:h="",...w},I)=>{const M=s=>(v?.domains||[]).some(i=>s.includes(i)),g=(0,p.useCallback)(({src:s,width:o})=>{const i=o,c=T(s);try{const n=new URL(c);if(!z(n.hostname))return c;const l=n.pathname.split("/").pop()||"";if(D(l))return c?.split("/")?.map(f=>{if(M(c)&&/\.(png|apng|jpg|jpeg|gif|svg|webp|tif)(\?.*)?/.test(f)&&/_[0-9]{2,4}x/.test(c)===!1){const P=f.split(".");return P.map((b,E)=>E===P.length-2?`${b}_${i<3960?i:3980}x`:b).join(".")}return f}).join("/")}catch{return c}},[]),S=(0,p.useCallback)(({srcArr:s,width:o})=>{const i=o*r,c=g({src:s[0][0],width:i}),n=s.filter(([,l])=>l&&parseInt(l,10)>=o).map(([l])=>g({src:l,width:i})).pop();return(0,u.jsx)("source",{srcSet:n||c,media:`(max-width: ${o}px)`},o)},[g,r]),_=(0,p.useMemo)(()=>{if(typeof e!="string"||!e)return[];const s=e.replace(/[\r\n]/g,"").replace(/\s\s+/g," ").split(",").map(n=>n.split(" ").filter(Boolean)),o=h||s.map(n=>n[0]).filter(Boolean).map(H).find(Boolean)||"",i=m.map(n=>S({srcArr:s,width:n})),c=g({src:s[0][0],width:1920*r});return[...i,(0,u.jsx)("img",{src:c,className:`w-full ${t}`,loading:A,alt:o,...w},"default")]},[m,t,g,r,e,S,h]);return(0,u.jsxs)("picture",{ref:I,className:`block overflow-hidden ${a}`,children:[_,w.children]})});var B=X;
1
+ "use strict";"use client";var L=Object.create;var d=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var F=Object.getOwnPropertyNames;var U=Object.getPrototypeOf,j=Object.prototype.hasOwnProperty;var R=(t,e)=>{for(var r in e)d(t,r,{get:e[r],enumerable:!0})},y=(t,e,r,m)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of F(e))!j.call(t,a)&&a!==r&&d(t,a,{get:()=>e[a],enumerable:!(m=x(e,a))||m.enumerable});return t};var k=(t,e,r)=>(r=t!=null?L(U(t)):{},y(e||!t||!t.__esModule?d(r,"default",{value:t,enumerable:!0}):r,t)),N=t=>y(d({},"__esModule",{value:!0}),t);var C={};R(C,{default:()=>B});module.exports=N(C);var u=require("react/jsx-runtime"),p=k(require("react"));const $=["cdn.shopify.com","cdn.shopifycdn.net","www.facebook.com"],Z=3960,W=3980,v={domains:["cdn.shopify.com","cdn.shopifycdn.net","www.facebook.com"],deviceSizes:[375,390,768,1024,1280,1440,1540,1920]},z=t=>$.some(e=>t==e),D=(t="")=>/\.(png|apng|jpg|jpeg|gif|svg|webp|tif)/.test(t),H=t=>{try{return new URL(t).searchParams.get("alt")||""}catch{return""}},T=t=>{try{const e=new URL(t);return e.searchParams.delete("alt"),e.toString()}catch{return t}},X=p.default.forwardRef(({imgClassName:t="",source:e="",quality:r=2,deviceSizes:m=[375,390,767,1023,1024,1279,1440,1439,1539,1919,1920],className:a,loading:A="lazy",alt:h="",...w},I)=>{const M=s=>(v?.domains||[]).some(i=>s.includes(i)),g=(0,p.useCallback)(({src:s,width:o})=>{const i=o,c=T(s);try{const n=new URL(c);if(!z(n.hostname))return c;const l=n.pathname.split("/").pop()||"";if(D(l))return c?.split("/")?.map(f=>{if(M(c)&&/\.(png|apng|jpg|jpeg|gif|svg|webp|tif)(\?.*)?/.test(f)&&/_[0-9]{2,4}x/.test(c)===!1){const P=f.split(".");return P.map((b,E)=>E===P.length-2?`${b}_${i<3960?i:3980}x`:b).join(".")}return f}).join("/")}catch{return c}},[]),S=(0,p.useCallback)(({srcArr:s,width:o})=>{const i=o*r,c=g({src:s[0][0],width:i}),n=s.filter(([,l])=>l&&parseInt(l,10)>=o).map(([l])=>g({src:l,width:i})).pop();return(0,u.jsx)("source",{srcSet:n||c,media:`(max-width: ${o}px)`},o)},[g,r]),_=(0,p.useMemo)(()=>{if(typeof e!="string"||!e)return[];const s=e.replace(/[\r\n]/g,"").replace(/\s\s+/g," ").split(",").map(n=>n.split(" ").filter(Boolean)),o=h||s.map(n=>n[0]).filter(Boolean).map(H).find(Boolean)||"",i=m.map(n=>S({srcArr:s,width:n})),c=g({src:s[0][0],width:1920*r});return[...i,(0,u.jsx)("img",{src:c,className:`w-full ${t}`,loading:A,alt:o,...w},"default")]},[m,t,g,r,e,S,h]);return(0,u.jsxs)("picture",{ref:I,className:`block overflow-hidden ${a}`,children:[_,w.children]})});var B=X;
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": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA2He,IAAAI,EAAA,6BA1HfC,EAA4C,oBAE5C,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,EAAU,EAAAC,QAAM,WACpB,CACE,CACE,aAAAC,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,IACJtB,GAAQ,SAAW,CAAC,GACrB,KAAKG,GAAUmB,EAAI,SAASnB,CAAM,CAAC,EAG9CoB,KAAgB,eAAY,CAAC,CAAE,IAAAD,EAAK,MAAAE,CAAM,IAAsC,CACpF,MAAMC,EAAOD,EACPE,EAAWlB,EAAiBc,CAAG,EACrC,GAAI,CACF,MAAMK,EAAY,IAAI,IAAID,CAAQ,EAClC,GAAI,CAACzB,EAAc0B,EAAU,QAAQ,EACnC,OAAOD,EAET,MAAMrB,EAAWsB,EAAU,SAAS,MAAM,GAAG,EAAE,IAAI,GAAK,GACxD,GAAIvB,EAAsBC,CAAQ,EAChC,OAAOqB,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,KAAe,eACnB,CAAC,CAAE,OAAAC,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,SAAO,OAAC,UAAmB,OAAQE,GAAeD,EAAY,MAAO,eAAeX,CAAK,OAArEA,CAA4E,CAClG,EACA,CAACD,EAAeT,CAAO,CACzB,EAEMwB,KAAa,WAAQ,IAAM,CAC/B,GAAI,OAAOzB,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,IAAItB,CAAe,EACnB,KAAK,OAAO,GAAK,GAEdkC,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,KACH,OAAC,OAAkB,IAAKC,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,SACE,QAAC,WAAQ,IAAKE,EAAK,UAAW,yBAAyBJ,CAAS,GAC7D,UAAAsB,EACAnB,EAAK,UACR,CAEJ,CACF,EACA,IAAO1B,EAAQiB",
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": "ukBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GA2He,IAAAI,EAAA,6BA1HfC,EAA4C,oBAE5C,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,EAAU,EAAAC,QAAM,WACpB,CACE,CACE,aAAAC,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,IACJtB,GAAQ,SAAW,CAAC,GACrB,KAAKG,GAAUmB,EAAI,SAASnB,CAAM,CAAC,EAG9CoB,KAAgB,eAAY,CAAC,CAAE,IAAAD,EAAK,MAAAE,CAAM,IAAsC,CACpF,MAAMC,EAAOD,EACPE,EAAWlB,EAAiBc,CAAG,EACrC,GAAI,CACF,MAAMK,EAAY,IAAI,IAAID,CAAQ,EAClC,GAAI,CAACzB,EAAc0B,EAAU,QAAQ,EACnC,OAAOD,EAET,MAAMrB,EAAWsB,EAAU,SAAS,MAAM,GAAG,EAAE,IAAI,GAAK,GACxD,GAAIvB,EAAsBC,CAAQ,EAChC,OAAOqB,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,KAAe,eACnB,CAAC,CAAE,OAAAC,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,SAAO,OAAC,UAAmB,OAAQE,GAAeD,EAAY,MAAO,eAAeX,CAAK,OAArEA,CAA4E,CAClG,EACA,CAACD,EAAeT,CAAO,CACzB,EAEMwB,KAAa,WAAQ,IAAM,CAC/B,GAAI,OAAOzB,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,IAAItB,CAAe,EACnB,KAAK,OAAO,GAAK,GAEdkC,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,KACH,OAAC,OAAkB,IAAKC,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,SACE,QAAC,WAAQ,IAAKE,EAAK,UAAW,yBAAyBJ,CAAS,GAC7D,UAAAsB,EACAnB,EAAK,UACR,CAEJ,CACF,EACA,IAAO1B,EAAQiB",
6
6
  "names": ["picture_exports", "__export", "picture_default", "__toCommonJS", "import_jsx_runtime", "import_react", "APPEND_FILE_SUFFIX_MATCH_DOMAIN", "MAX_SIZE", "FIXED_MAX_SIZE", "images", "isMatchDomain", "srcDomain", "domain", "idMatchFileExtensions", "fileName", "parseAltFromUrl", "url", "removeAltFromUrl", "urlObj", "Picture", "React", "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"]
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
+ "use strict";var E=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var T=Object.getOwnPropertyNames;var K=Object.prototype.hasOwnProperty;var O=(e,r)=>{for(var o in r)E(e,o,{get:r[o],enumerable:!0})},w=(e,r,o,l)=>{if(r&&typeof r=="object"||typeof r=="function")for(let u of T(r))!K.call(e,u)&&u!==o&&E(e,u,{get:()=>r[u],enumerable:!(l=y(r,u))||l.enumerable});return e};var v=e=>w(E({},"__esModule",{value:!0}),e);var R={};O(R,{clearAllExposureRecords:()=>j,clearExposureRecord:()=>M,hasExposed:()=>A,useExposureDetection:()=>D});module.exports=v(R);var c=require("react");const i=new Set,D=(e,r={})=>{const{exposureKey:o,threshold:l=.5,duration:u=2e3,once:p=!0,onExposure:x,rootMargin:h="0px"}=r,t=(0,c.useRef)(null),d=(0,c.useRef)(null),m=(0,c.useCallback)(()=>{if(o)return o;if(e.current&&!d.current){const a=e.current.getAttribute("data-exposure-id");if(a)return d.current=a,a;const s=[];let n=e.current;for(;n&&n!==document.body;){const f=Array.from(n.parentElement?.children||[]).indexOf(n);s.unshift(`${n.tagName.toLowerCase()}[${f}]`),n=n.parentElement}return d.current=s.join(" > "),d.current}return d.current||""},[o,e]),g=(0,c.useCallback)(()=>{t.current&&(clearTimeout(t.current),t.current=null)},[]);return(0,c.useEffect)(()=>{const a=e.current;if(!a||!x)return;const s=m();if(!s){console.warn("useExposureDetection: \u65E0\u6CD5\u751F\u6210\u552F\u4E00\u7684 exposureKey\uFF0C\u8BF7\u63D0\u4F9B exposureKey \u53C2\u6570");return}if(p&&i.has(s))return;const n=new IntersectionObserver(f=>{f.forEach(b=>{b.intersectionRatio>=l?(!p||!i.has(s))&&!t.current&&(t.current=setTimeout(()=>{p&&i.has(s)||(p&&i.add(s),x())},u)):t.current&&(clearTimeout(t.current),t.current=null)})},{threshold:l,rootMargin:h});return n.observe(a),()=>{n.disconnect(),t.current&&(clearTimeout(t.current),t.current=null)}},[e,x,l,u,p,h,m]),{clearTimer:g}},M=e=>{i.delete(e)},j=()=>{i.clear()},A=e=>i.has(e);
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": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,6BAAAE,EAAA,wBAAAC,EAAA,eAAAC,EAAA,yBAAAC,IAAA,eAAAC,EAAAN,GAAA,IAAAO,EAA+D,iBAG/D,MAAMC,EAAqB,IAAI,IAwDlBH,EAAuB,CAClCI,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,KAAmB,UAA8B,IAAI,EACrDC,KAAkB,UAAsB,IAAI,EAG5CC,KAAiB,eAAY,IAAM,CACvC,GAAIR,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,KAAa,eAAY,IAAM,CAC/BP,EAAiB,UACnB,aAAaA,EAAiB,OAAO,EACrCA,EAAiB,QAAU,KAE/B,EAAG,CAAC,CAAC,EAEL,sBAAU,IAAM,CACd,MAAMQ,EAAUhB,EAAW,QAC3B,GAAI,CAACgB,GAAW,CAACV,EAAY,OAE7B,MAAMW,EAAMP,EAAe,EAC3B,GAAI,CAACO,EAAK,CACR,QAAQ,KAAK,+HAA8D,EAC3E,MACF,CAGA,GAAIZ,GAAQN,EAAmB,IAAIkB,CAAG,EACpC,OAGF,MAAMC,EAAW,IAAI,qBACnBC,GAAW,CACTA,EAAQ,QAAQC,GAAS,CAEnBA,EAAM,mBAAqBjB,GAExB,CAACE,GAAQ,CAACN,EAAmB,IAAIkB,CAAG,IAAM,CAACT,EAAiB,UAC/DA,EAAiB,QAAU,WAAW,IAAM,CAEtCH,GAAQN,EAAmB,IAAIkB,CAAG,IAGlCZ,GACFN,EAAmB,IAAIkB,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,EAKarB,EAAuBuB,GAAgB,CAClDlB,EAAmB,OAAOkB,CAAG,CAC/B,EAKaxB,EAA0B,IAAM,CAC3CM,EAAmB,MAAM,CAC3B,EAKaJ,EAAcsB,GAClBlB,EAAmB,IAAIkB,CAAG",
6
+ "names": ["useExposureDetection_exports", "__export", "clearAllExposureRecords", "clearExposureRecord", "hasExposed", "useExposureDetection", "__toCommonJS", "import_react", "exposedElementsSet", "elementRef", "options", "exposureKey", "threshold", "duration", "once", "onExposure", "rootMargin", "exposureTimerRef", "generatedKeyRef", "getExposureKey", "dataId", "path", "el", "index", "clearTimer", "element", "key", "observer", "entries", "entry"]
7
+ }