@salla.sa/twilight-components-react 3.0.0-beta.1

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 (651) hide show
  1. package/LICENSE.md +674 -0
  2. package/README.md +300 -0
  3. package/dist/__mocks__/salla-components.js +5 -0
  4. package/dist/__mocks__/salla-components.js.map +1 -0
  5. package/dist/components/__mocks__/salla-button.js +3 -0
  6. package/dist/components/__mocks__/salla-button.js.map +1 -0
  7. package/dist/components/__mocks__/salla-loading.js +3 -0
  8. package/dist/components/__mocks__/salla-loading.js.map +1 -0
  9. package/dist/components/__mocks__/salla-placeholder.js +3 -0
  10. package/dist/components/__mocks__/salla-placeholder.js.map +1 -0
  11. package/dist/components/components.js +132 -0
  12. package/dist/components/components.js.map +1 -0
  13. package/dist/components/salla-accordion-body.js +16 -0
  14. package/dist/components/salla-accordion-body.js.map +1 -0
  15. package/dist/components/salla-accordion-head.js +19 -0
  16. package/dist/components/salla-accordion-head.js.map +1 -0
  17. package/dist/components/salla-accordion.js +22 -0
  18. package/dist/components/salla-accordion.js.map +1 -0
  19. package/dist/components/salla-add-product-button.js +41 -0
  20. package/dist/components/salla-add-product-button.js.map +1 -0
  21. package/dist/components/salla-advertisement.js +19 -0
  22. package/dist/components/salla-advertisement.js.map +1 -0
  23. package/dist/components/salla-alert.js +20 -0
  24. package/dist/components/salla-alert.js.map +1 -0
  25. package/dist/components/salla-app-install-alert.js +19 -0
  26. package/dist/components/salla-app-install-alert.js.map +1 -0
  27. package/dist/components/salla-apps-icons.js +22 -0
  28. package/dist/components/salla-apps-icons.js.map +1 -0
  29. package/dist/components/salla-badge.js +20 -0
  30. package/dist/components/salla-badge.js.map +1 -0
  31. package/dist/components/salla-booking-field.js +22 -0
  32. package/dist/components/salla-booking-field.js.map +1 -0
  33. package/dist/components/salla-bottom-alert.js +25 -0
  34. package/dist/components/salla-bottom-alert.js.map +1 -0
  35. package/dist/components/salla-bought-together.js +18 -0
  36. package/dist/components/salla-bought-together.js.map +1 -0
  37. package/dist/components/salla-breadcrumb.js +19 -0
  38. package/dist/components/salla-breadcrumb.js.map +1 -0
  39. package/dist/components/salla-bullet-delivery.js +27 -0
  40. package/dist/components/salla-bullet-delivery.js.map +1 -0
  41. package/dist/components/salla-cart-coupons.js +18 -0
  42. package/dist/components/salla-cart-coupons.js.map +1 -0
  43. package/dist/components/salla-cart-item-offers.js +24 -0
  44. package/dist/components/salla-cart-item-offers.js.map +1 -0
  45. package/dist/components/salla-cart-summary-card.js +18 -0
  46. package/dist/components/salla-cart-summary-card.js.map +1 -0
  47. package/dist/components/salla-cart-summary.js +22 -0
  48. package/dist/components/salla-cart-summary.js.map +1 -0
  49. package/dist/components/salla-cashback-banner.js +16 -0
  50. package/dist/components/salla-cashback-banner.js.map +1 -0
  51. package/dist/components/salla-color-picker.js +36 -0
  52. package/dist/components/salla-color-picker.js.map +1 -0
  53. package/dist/components/salla-comment-factors.js +18 -0
  54. package/dist/components/salla-comment-factors.js.map +1 -0
  55. package/dist/components/salla-comment-form.js +23 -0
  56. package/dist/components/salla-comment-form.js.map +1 -0
  57. package/dist/components/salla-comment-item.js +19 -0
  58. package/dist/components/salla-comment-item.js.map +1 -0
  59. package/dist/components/salla-comments.js +31 -0
  60. package/dist/components/salla-comments.js.map +1 -0
  61. package/dist/components/salla-conditional-fields.js +19 -0
  62. package/dist/components/salla-conditional-fields.js.map +1 -0
  63. package/dist/components/salla-conditional-offer.js +19 -0
  64. package/dist/components/salla-conditional-offer.js.map +1 -0
  65. package/dist/components/salla-contacts.js +24 -0
  66. package/dist/components/salla-contacts.js.map +1 -0
  67. package/dist/components/salla-cookies-bar.js +23 -0
  68. package/dist/components/salla-cookies-bar.js.map +1 -0
  69. package/dist/components/salla-count-down.js +40 -0
  70. package/dist/components/salla-count-down.js.map +1 -0
  71. package/dist/components/salla-custom-fields.js +29 -0
  72. package/dist/components/salla-custom-fields.js.map +1 -0
  73. package/dist/components/salla-datetime-picker.js +72 -0
  74. package/dist/components/salla-datetime-picker.js.map +1 -0
  75. package/dist/components/salla-delivery-promise.js +16 -0
  76. package/dist/components/salla-delivery-promise.js.map +1 -0
  77. package/dist/components/salla-drawer.js +33 -0
  78. package/dist/components/salla-drawer.js.map +1 -0
  79. package/dist/components/salla-edit-order-button.js +18 -0
  80. package/dist/components/salla-edit-order-button.js.map +1 -0
  81. package/dist/components/salla-file-upload.js +66 -0
  82. package/dist/components/salla-file-upload.js.map +1 -0
  83. package/dist/components/salla-filters-widget.js +27 -0
  84. package/dist/components/salla-filters-widget.js.map +1 -0
  85. package/dist/components/salla-filters.js +24 -0
  86. package/dist/components/salla-filters.js.map +1 -0
  87. package/dist/components/salla-fulfillment-methods.js +16 -0
  88. package/dist/components/salla-fulfillment-methods.js.map +1 -0
  89. package/dist/components/salla-gifting.js +30 -0
  90. package/dist/components/salla-gifting.js.map +1 -0
  91. package/dist/components/salla-hook.js +22 -0
  92. package/dist/components/salla-hook.js.map +1 -0
  93. package/dist/components/salla-infinite-scroll.js +25 -0
  94. package/dist/components/salla-infinite-scroll.js.map +1 -0
  95. package/dist/components/salla-installment.js +24 -0
  96. package/dist/components/salla-installment.js.map +1 -0
  97. package/dist/components/salla-list-tile.js +19 -0
  98. package/dist/components/salla-list-tile.js.map +1 -0
  99. package/dist/components/salla-loading.js +21 -0
  100. package/dist/components/salla-loading.js.map +1 -0
  101. package/dist/components/salla-localization-modal.js +26 -0
  102. package/dist/components/salla-localization-modal.js.map +1 -0
  103. package/dist/components/salla-login-modal.js +30 -0
  104. package/dist/components/salla-login-modal.js.map +1 -0
  105. package/dist/components/salla-loyalty-banner.js +16 -0
  106. package/dist/components/salla-loyalty-banner.js.map +1 -0
  107. package/dist/components/salla-loyalty-hero.js +20 -0
  108. package/dist/components/salla-loyalty-hero.js.map +1 -0
  109. package/dist/components/salla-loyalty-panel.js +20 -0
  110. package/dist/components/salla-loyalty-panel.js.map +1 -0
  111. package/dist/components/salla-loyalty-point.js +18 -0
  112. package/dist/components/salla-loyalty-point.js.map +1 -0
  113. package/dist/components/salla-loyalty-points-banner.js +16 -0
  114. package/dist/components/salla-loyalty-points-banner.js.map +1 -0
  115. package/dist/components/salla-loyalty-points-history.js +16 -0
  116. package/dist/components/salla-loyalty-points-history.js.map +1 -0
  117. package/dist/components/salla-loyalty-prize-item.js +18 -0
  118. package/dist/components/salla-loyalty-prize-item.js.map +1 -0
  119. package/dist/components/salla-loyalty-program.js +19 -0
  120. package/dist/components/salla-loyalty-program.js.map +1 -0
  121. package/dist/components/salla-loyalty-reward.js +23 -0
  122. package/dist/components/salla-loyalty-reward.js.map +1 -0
  123. package/dist/components/salla-loyalty.js +31 -0
  124. package/dist/components/salla-loyalty.js.map +1 -0
  125. package/dist/components/salla-maintenance-alert.js +19 -0
  126. package/dist/components/salla-maintenance-alert.js.map +1 -0
  127. package/dist/components/salla-map.js +36 -0
  128. package/dist/components/salla-map.js.map +1 -0
  129. package/dist/components/salla-menu.js +26 -0
  130. package/dist/components/salla-menu.js.map +1 -0
  131. package/dist/components/salla-metadata.js +22 -0
  132. package/dist/components/salla-metadata.js.map +1 -0
  133. package/dist/components/salla-modal.js +33 -0
  134. package/dist/components/salla-modal.js.map +1 -0
  135. package/dist/components/salla-multiple-bundle-product-cart.js +21 -0
  136. package/dist/components/salla-multiple-bundle-product-cart.js.map +1 -0
  137. package/dist/components/salla-multiple-bundle-product-details.js +22 -0
  138. package/dist/components/salla-multiple-bundle-product-details.js.map +1 -0
  139. package/dist/components/salla-multiple-bundle-product-options-modal.js +26 -0
  140. package/dist/components/salla-multiple-bundle-product-options-modal.js.map +1 -0
  141. package/dist/components/salla-multiple-bundle-product-slider.js +28 -0
  142. package/dist/components/salla-multiple-bundle-product-slider.js.map +1 -0
  143. package/dist/components/salla-multiple-bundle-product.js +21 -0
  144. package/dist/components/salla-multiple-bundle-product.js.map +1 -0
  145. package/dist/components/salla-next-order-coupon.js +16 -0
  146. package/dist/components/salla-next-order-coupon.js.map +1 -0
  147. package/dist/components/salla-notification-item.js +18 -0
  148. package/dist/components/salla-notification-item.js.map +1 -0
  149. package/dist/components/salla-notifications.js +22 -0
  150. package/dist/components/salla-notifications.js.map +1 -0
  151. package/dist/components/salla-offer-modal.js +22 -0
  152. package/dist/components/salla-offer-modal.js.map +1 -0
  153. package/dist/components/salla-offer.js +21 -0
  154. package/dist/components/salla-offer.js.map +1 -0
  155. package/dist/components/salla-order-branch.js +18 -0
  156. package/dist/components/salla-order-branch.js.map +1 -0
  157. package/dist/components/salla-order-cancel.js +19 -0
  158. package/dist/components/salla-order-cancel.js.map +1 -0
  159. package/dist/components/salla-order-details-multiple-bundle-product.js +23 -0
  160. package/dist/components/salla-order-details-multiple-bundle-product.js.map +1 -0
  161. package/dist/components/salla-order-details-options.js +23 -0
  162. package/dist/components/salla-order-details-options.js.map +1 -0
  163. package/dist/components/salla-order-details.js +21 -0
  164. package/dist/components/salla-order-details.js.map +1 -0
  165. package/dist/components/salla-order-edit-item.js +22 -0
  166. package/dist/components/salla-order-edit-item.js.map +1 -0
  167. package/dist/components/salla-order-edit-product-card.js +18 -0
  168. package/dist/components/salla-order-edit-product-card.js.map +1 -0
  169. package/dist/components/salla-order-edit.js +20 -0
  170. package/dist/components/salla-order-edit.js.map +1 -0
  171. package/dist/components/salla-order-options-modal.js +19 -0
  172. package/dist/components/salla-order-options-modal.js.map +1 -0
  173. package/dist/components/salla-order-summary.js +21 -0
  174. package/dist/components/salla-order-summary.js.map +1 -0
  175. package/dist/components/salla-order-totals-card.js +22 -0
  176. package/dist/components/salla-order-totals-card.js.map +1 -0
  177. package/dist/components/salla-orders.js +22 -0
  178. package/dist/components/salla-orders.js.map +1 -0
  179. package/dist/components/salla-payments.js +21 -0
  180. package/dist/components/salla-payments.js.map +1 -0
  181. package/dist/components/salla-placeholder.js +23 -0
  182. package/dist/components/salla-placeholder.js.map +1 -0
  183. package/dist/components/salla-price-range.js +25 -0
  184. package/dist/components/salla-price-range.js.map +1 -0
  185. package/dist/components/salla-product-availability.js +24 -0
  186. package/dist/components/salla-product-availability.js.map +1 -0
  187. package/dist/components/salla-product-card-embed.js +20 -0
  188. package/dist/components/salla-product-card-embed.js.map +1 -0
  189. package/dist/components/salla-product-card.js +29 -0
  190. package/dist/components/salla-product-card.js.map +1 -0
  191. package/dist/components/salla-product-options.js +40 -0
  192. package/dist/components/salla-product-options.js.map +1 -0
  193. package/dist/components/salla-product-size-guide.js +22 -0
  194. package/dist/components/salla-product-size-guide.js.map +1 -0
  195. package/dist/components/salla-progress-bar.js +33 -0
  196. package/dist/components/salla-progress-bar.js.map +1 -0
  197. package/dist/components/salla-quantity-input.js +31 -0
  198. package/dist/components/salla-quantity-input.js.map +1 -0
  199. package/dist/components/salla-quick-buy.js +33 -0
  200. package/dist/components/salla-quick-buy.js.map +1 -0
  201. package/dist/components/salla-quick-order.js +29 -0
  202. package/dist/components/salla-quick-order.js.map +1 -0
  203. package/dist/components/salla-rating-modal-v2.js +22 -0
  204. package/dist/components/salla-rating-modal-v2.js.map +1 -0
  205. package/dist/components/salla-rating-modal.js +23 -0
  206. package/dist/components/salla-rating-modal.js.map +1 -0
  207. package/dist/components/salla-rating-stars.js +28 -0
  208. package/dist/components/salla-rating-stars.js.map +1 -0
  209. package/dist/components/salla-review-card.js +18 -0
  210. package/dist/components/salla-review-card.js.map +1 -0
  211. package/dist/components/salla-review-factors-tags.js +21 -0
  212. package/dist/components/salla-review-factors-tags.js.map +1 -0
  213. package/dist/components/salla-reviews-page.js +19 -0
  214. package/dist/components/salla-reviews-page.js.map +1 -0
  215. package/dist/components/salla-reviews-summary.js +21 -0
  216. package/dist/components/salla-reviews-summary.js.map +1 -0
  217. package/dist/components/salla-reviews.js +33 -0
  218. package/dist/components/salla-reviews.js.map +1 -0
  219. package/dist/components/salla-reward-action.js +18 -0
  220. package/dist/components/salla-reward-action.js.map +1 -0
  221. package/dist/components/salla-reward-card.js +21 -0
  222. package/dist/components/salla-reward-card.js.map +1 -0
  223. package/dist/components/salla-reward-details.js +18 -0
  224. package/dist/components/salla-reward-details.js.map +1 -0
  225. package/dist/components/salla-reward-exchange.js +19 -0
  226. package/dist/components/salla-reward-exchange.js.map +1 -0
  227. package/dist/components/salla-scopes.js +25 -0
  228. package/dist/components/salla-scopes.js.map +1 -0
  229. package/dist/components/salla-search.js +26 -0
  230. package/dist/components/salla-search.js.map +1 -0
  231. package/dist/components/salla-searchable-dropdown.js +37 -0
  232. package/dist/components/salla-searchable-dropdown.js.map +1 -0
  233. package/dist/components/salla-skeleton.js +20 -0
  234. package/dist/components/salla-skeleton.js.map +1 -0
  235. package/dist/components/salla-slider.js +84 -0
  236. package/dist/components/salla-slider.js.map +1 -0
  237. package/dist/components/salla-social-share.js +28 -0
  238. package/dist/components/salla-social-share.js.map +1 -0
  239. package/dist/components/salla-social.js +19 -0
  240. package/dist/components/salla-social.js.map +1 -0
  241. package/dist/components/salla-tab-content.js +19 -0
  242. package/dist/components/salla-tab-content.js.map +1 -0
  243. package/dist/components/salla-tab-header.js +22 -0
  244. package/dist/components/salla-tab-header.js.map +1 -0
  245. package/dist/components/salla-tabs.js +20 -0
  246. package/dist/components/salla-tabs.js.map +1 -0
  247. package/dist/components/salla-tel-input.js +27 -0
  248. package/dist/components/salla-tel-input.js.map +1 -0
  249. package/dist/components/salla-tiered-offer.js +19 -0
  250. package/dist/components/salla-tiered-offer.js.map +1 -0
  251. package/dist/components/salla-tooltip.js +20 -0
  252. package/dist/components/salla-tooltip.js.map +1 -0
  253. package/dist/components/salla-trust-badges.js +21 -0
  254. package/dist/components/salla-trust-badges.js.map +1 -0
  255. package/dist/components/salla-user-menu.js +25 -0
  256. package/dist/components/salla-user-menu.js.map +1 -0
  257. package/dist/components/salla-user-profile.js +21 -0
  258. package/dist/components/salla-user-profile.js.map +1 -0
  259. package/dist/components/salla-user-settings.js +19 -0
  260. package/dist/components/salla-user-settings.js.map +1 -0
  261. package/dist/components/salla-verify.js +26 -0
  262. package/dist/components/salla-verify.js.map +1 -0
  263. package/dist/components/salla-wallet.js +19 -0
  264. package/dist/components/salla-wallet.js.map +1 -0
  265. package/dist/components/salla-wishlist-actions.js +21 -0
  266. package/dist/components/salla-wishlist-actions.js.map +1 -0
  267. package/dist/hydration/HydrationBoundary.js +64 -0
  268. package/dist/hydration/HydrationBoundary.js.map +1 -0
  269. package/dist/hydration/index.js +3 -0
  270. package/dist/hydration/index.js.map +1 -0
  271. package/dist/hydration/withDeferredHydration.js +149 -0
  272. package/dist/hydration/withDeferredHydration.js.map +1 -0
  273. package/dist/index.js +10 -0
  274. package/dist/index.js.map +1 -0
  275. package/dist/native/hooks/index.js +6 -0
  276. package/dist/native/hooks/index.js.map +1 -0
  277. package/dist/native/hooks/useInfiniteScroll.js +99 -0
  278. package/dist/native/hooks/useInfiniteScroll.js.map +1 -0
  279. package/dist/native/hooks/useLoadMore.js +95 -0
  280. package/dist/native/hooks/useLoadMore.js.map +1 -0
  281. package/dist/native/hooks/useScrollVisibility.js +84 -0
  282. package/dist/native/hooks/useScrollVisibility.js.map +1 -0
  283. package/dist/native/hooks/useVirtualizer.js +74 -0
  284. package/dist/native/hooks/useVirtualizer.js.map +1 -0
  285. package/dist/native/items-list/ItemsList.js +367 -0
  286. package/dist/native/items-list/ItemsList.js.map +1 -0
  287. package/dist/native/items-list/index.js +3 -0
  288. package/dist/native/items-list/index.js.map +1 -0
  289. package/dist/native/items-list/lazy.js +22 -0
  290. package/dist/native/items-list/lazy.js.map +1 -0
  291. package/dist/native/salla-button/SallaButton.js +96 -0
  292. package/dist/native/salla-button/SallaButton.js.map +1 -0
  293. package/dist/native/salla-button/index.js +2 -0
  294. package/dist/native/salla-button/index.js.map +1 -0
  295. package/dist/native/salla-button/types.js +2 -0
  296. package/dist/native/salla-button/types.js.map +1 -0
  297. package/dist/native/salla-products-list/SallaProductsList.js +14 -0
  298. package/dist/native/salla-products-list/SallaProductsList.js.map +1 -0
  299. package/dist/native/salla-products-list/SallaProductsListLazy.js +6 -0
  300. package/dist/native/salla-products-list/SallaProductsListLazy.js.map +1 -0
  301. package/dist/native/salla-products-list/index.js +3 -0
  302. package/dist/native/salla-products-list/index.js.map +1 -0
  303. package/dist/native/salla-products-list/types.js +2 -0
  304. package/dist/native/salla-products-list/types.js.map +1 -0
  305. package/dist/native/salla-products-slider/SallaProductsSlider.js +40 -0
  306. package/dist/native/salla-products-slider/SallaProductsSlider.js.map +1 -0
  307. package/dist/native/salla-products-slider/SallaProductsSliderLazy.js +6 -0
  308. package/dist/native/salla-products-slider/SallaProductsSliderLazy.js.map +1 -0
  309. package/dist/native/salla-products-slider/index.js +3 -0
  310. package/dist/native/salla-products-slider/index.js.map +1 -0
  311. package/dist/native/salla-products-slider/types.js +2 -0
  312. package/dist/native/salla-products-slider/types.js.map +1 -0
  313. package/dist/native/salla-slider/SallaSlider.js +55 -0
  314. package/dist/native/salla-slider/SallaSlider.js.map +1 -0
  315. package/dist/native/salla-slider/SliderArrows.js +8 -0
  316. package/dist/native/salla-slider/SliderArrows.js.map +1 -0
  317. package/dist/native/salla-slider/index.js +2 -0
  318. package/dist/native/salla-slider/index.js.map +1 -0
  319. package/dist/native/salla-slider/types.js +2 -0
  320. package/dist/native/salla-slider/types.js.map +1 -0
  321. package/dist/native/shared/index.js +2 -0
  322. package/dist/native/shared/index.js.map +1 -0
  323. package/dist/native/shared/types.js +2 -0
  324. package/dist/native/shared/types.js.map +1 -0
  325. package/dist/skeletons/index.js +113 -0
  326. package/dist/skeletons/index.js.map +1 -0
  327. package/dist/types/__mocks__/salla-components.d.ts +5 -0
  328. package/dist/types/__mocks__/salla-components.d.ts.map +1 -0
  329. package/dist/types/components/__mocks__/salla-button.d.ts +3 -0
  330. package/dist/types/components/__mocks__/salla-button.d.ts.map +1 -0
  331. package/dist/types/components/__mocks__/salla-loading.d.ts +3 -0
  332. package/dist/types/components/__mocks__/salla-loading.d.ts.map +1 -0
  333. package/dist/types/components/__mocks__/salla-placeholder.d.ts +3 -0
  334. package/dist/types/components/__mocks__/salla-placeholder.d.ts.map +1 -0
  335. package/dist/types/components/components.d.ts +131 -0
  336. package/dist/types/components/components.d.ts.map +1 -0
  337. package/dist/types/components/salla-accordion-body.d.ts +10 -0
  338. package/dist/types/components/salla-accordion-body.d.ts.map +1 -0
  339. package/dist/types/components/salla-accordion-head.d.ts +13 -0
  340. package/dist/types/components/salla-accordion-head.d.ts.map +1 -0
  341. package/dist/types/components/salla-accordion.d.ts +10 -0
  342. package/dist/types/components/salla-accordion.d.ts.map +1 -0
  343. package/dist/types/components/salla-add-product-button.d.ts +20 -0
  344. package/dist/types/components/salla-add-product-button.d.ts.map +1 -0
  345. package/dist/types/components/salla-advertisement.d.ts +13 -0
  346. package/dist/types/components/salla-advertisement.d.ts.map +1 -0
  347. package/dist/types/components/salla-alert.d.ts +10 -0
  348. package/dist/types/components/salla-alert.d.ts.map +1 -0
  349. package/dist/types/components/salla-app-install-alert.d.ts +13 -0
  350. package/dist/types/components/salla-app-install-alert.d.ts.map +1 -0
  351. package/dist/types/components/salla-apps-icons.d.ts +10 -0
  352. package/dist/types/components/salla-apps-icons.d.ts.map +1 -0
  353. package/dist/types/components/salla-badge.d.ts +10 -0
  354. package/dist/types/components/salla-badge.d.ts.map +1 -0
  355. package/dist/types/components/salla-booking-field.d.ts +18 -0
  356. package/dist/types/components/salla-booking-field.d.ts.map +1 -0
  357. package/dist/types/components/salla-bottom-alert.d.ts +13 -0
  358. package/dist/types/components/salla-bottom-alert.d.ts.map +1 -0
  359. package/dist/types/components/salla-bought-together.d.ts +10 -0
  360. package/dist/types/components/salla-bought-together.d.ts.map +1 -0
  361. package/dist/types/components/salla-breadcrumb.d.ts +12 -0
  362. package/dist/types/components/salla-breadcrumb.d.ts.map +1 -0
  363. package/dist/types/components/salla-bullet-delivery.d.ts +24 -0
  364. package/dist/types/components/salla-bullet-delivery.d.ts.map +1 -0
  365. package/dist/types/components/salla-cart-coupons.d.ts +10 -0
  366. package/dist/types/components/salla-cart-coupons.d.ts.map +1 -0
  367. package/dist/types/components/salla-cart-item-offers.d.ts +13 -0
  368. package/dist/types/components/salla-cart-item-offers.d.ts.map +1 -0
  369. package/dist/types/components/salla-cart-summary-card.d.ts +10 -0
  370. package/dist/types/components/salla-cart-summary-card.d.ts.map +1 -0
  371. package/dist/types/components/salla-cart-summary.d.ts +13 -0
  372. package/dist/types/components/salla-cart-summary.d.ts.map +1 -0
  373. package/dist/types/components/salla-cashback-banner.d.ts +10 -0
  374. package/dist/types/components/salla-cashback-banner.d.ts.map +1 -0
  375. package/dist/types/components/salla-color-picker.d.ts +17 -0
  376. package/dist/types/components/salla-color-picker.d.ts.map +1 -0
  377. package/dist/types/components/salla-comment-factors.d.ts +10 -0
  378. package/dist/types/components/salla-comment-factors.d.ts.map +1 -0
  379. package/dist/types/components/salla-comment-form.d.ts +38 -0
  380. package/dist/types/components/salla-comment-form.d.ts.map +1 -0
  381. package/dist/types/components/salla-comment-item.d.ts +10 -0
  382. package/dist/types/components/salla-comment-item.d.ts.map +1 -0
  383. package/dist/types/components/salla-comments.d.ts +13 -0
  384. package/dist/types/components/salla-comments.d.ts.map +1 -0
  385. package/dist/types/components/salla-conditional-fields.d.ts +13 -0
  386. package/dist/types/components/salla-conditional-fields.d.ts.map +1 -0
  387. package/dist/types/components/salla-conditional-offer.d.ts +13 -0
  388. package/dist/types/components/salla-conditional-offer.d.ts.map +1 -0
  389. package/dist/types/components/salla-contacts.d.ts +10 -0
  390. package/dist/types/components/salla-contacts.d.ts.map +1 -0
  391. package/dist/types/components/salla-cookies-bar.d.ts +13 -0
  392. package/dist/types/components/salla-cookies-bar.d.ts.map +1 -0
  393. package/dist/types/components/salla-count-down.d.ts +13 -0
  394. package/dist/types/components/salla-count-down.d.ts.map +1 -0
  395. package/dist/types/components/salla-custom-fields.d.ts +36 -0
  396. package/dist/types/components/salla-custom-fields.d.ts.map +1 -0
  397. package/dist/types/components/salla-datetime-picker.d.ts +20 -0
  398. package/dist/types/components/salla-datetime-picker.d.ts.map +1 -0
  399. package/dist/types/components/salla-delivery-promise.d.ts +10 -0
  400. package/dist/types/components/salla-delivery-promise.d.ts.map +1 -0
  401. package/dist/types/components/salla-drawer.d.ts +13 -0
  402. package/dist/types/components/salla-drawer.d.ts.map +1 -0
  403. package/dist/types/components/salla-edit-order-button.d.ts +10 -0
  404. package/dist/types/components/salla-edit-order-button.d.ts.map +1 -0
  405. package/dist/types/components/salla-file-upload.d.ts +24 -0
  406. package/dist/types/components/salla-file-upload.d.ts.map +1 -0
  407. package/dist/types/components/salla-filters-widget.d.ts +18 -0
  408. package/dist/types/components/salla-filters-widget.d.ts.map +1 -0
  409. package/dist/types/components/salla-filters.d.ts +18 -0
  410. package/dist/types/components/salla-filters.d.ts.map +1 -0
  411. package/dist/types/components/salla-fulfillment-methods.d.ts +10 -0
  412. package/dist/types/components/salla-fulfillment-methods.d.ts.map +1 -0
  413. package/dist/types/components/salla-gifting.d.ts +13 -0
  414. package/dist/types/components/salla-gifting.d.ts.map +1 -0
  415. package/dist/types/components/salla-hook.d.ts +13 -0
  416. package/dist/types/components/salla-hook.d.ts.map +1 -0
  417. package/dist/types/components/salla-infinite-scroll.d.ts +13 -0
  418. package/dist/types/components/salla-infinite-scroll.d.ts.map +1 -0
  419. package/dist/types/components/salla-installment.d.ts +13 -0
  420. package/dist/types/components/salla-installment.d.ts.map +1 -0
  421. package/dist/types/components/salla-list-tile.d.ts +10 -0
  422. package/dist/types/components/salla-list-tile.d.ts.map +1 -0
  423. package/dist/types/components/salla-loading.d.ts +10 -0
  424. package/dist/types/components/salla-loading.d.ts.map +1 -0
  425. package/dist/types/components/salla-localization-modal.d.ts +13 -0
  426. package/dist/types/components/salla-localization-modal.d.ts.map +1 -0
  427. package/dist/types/components/salla-login-modal.d.ts +13 -0
  428. package/dist/types/components/salla-login-modal.d.ts.map +1 -0
  429. package/dist/types/components/salla-loyalty-banner.d.ts +10 -0
  430. package/dist/types/components/salla-loyalty-banner.d.ts.map +1 -0
  431. package/dist/types/components/salla-loyalty-hero.d.ts +10 -0
  432. package/dist/types/components/salla-loyalty-hero.d.ts.map +1 -0
  433. package/dist/types/components/salla-loyalty-panel.d.ts +10 -0
  434. package/dist/types/components/salla-loyalty-panel.d.ts.map +1 -0
  435. package/dist/types/components/salla-loyalty-point.d.ts +10 -0
  436. package/dist/types/components/salla-loyalty-point.d.ts.map +1 -0
  437. package/dist/types/components/salla-loyalty-points-banner.d.ts +10 -0
  438. package/dist/types/components/salla-loyalty-points-banner.d.ts.map +1 -0
  439. package/dist/types/components/salla-loyalty-points-history.d.ts +10 -0
  440. package/dist/types/components/salla-loyalty-points-history.d.ts.map +1 -0
  441. package/dist/types/components/salla-loyalty-prize-item.d.ts +13 -0
  442. package/dist/types/components/salla-loyalty-prize-item.d.ts.map +1 -0
  443. package/dist/types/components/salla-loyalty-program.d.ts +13 -0
  444. package/dist/types/components/salla-loyalty-program.d.ts.map +1 -0
  445. package/dist/types/components/salla-loyalty-reward.d.ts +14 -0
  446. package/dist/types/components/salla-loyalty-reward.d.ts.map +1 -0
  447. package/dist/types/components/salla-loyalty.d.ts +13 -0
  448. package/dist/types/components/salla-loyalty.d.ts.map +1 -0
  449. package/dist/types/components/salla-maintenance-alert.d.ts +13 -0
  450. package/dist/types/components/salla-maintenance-alert.d.ts.map +1 -0
  451. package/dist/types/components/salla-map.d.ts +24 -0
  452. package/dist/types/components/salla-map.d.ts.map +1 -0
  453. package/dist/types/components/salla-menu.d.ts +13 -0
  454. package/dist/types/components/salla-menu.d.ts.map +1 -0
  455. package/dist/types/components/salla-metadata.d.ts +13 -0
  456. package/dist/types/components/salla-metadata.d.ts.map +1 -0
  457. package/dist/types/components/salla-modal.d.ts +13 -0
  458. package/dist/types/components/salla-modal.d.ts.map +1 -0
  459. package/dist/types/components/salla-multiple-bundle-product-cart.d.ts +13 -0
  460. package/dist/types/components/salla-multiple-bundle-product-cart.d.ts.map +1 -0
  461. package/dist/types/components/salla-multiple-bundle-product-details.d.ts +13 -0
  462. package/dist/types/components/salla-multiple-bundle-product-details.d.ts.map +1 -0
  463. package/dist/types/components/salla-multiple-bundle-product-options-modal.d.ts +40 -0
  464. package/dist/types/components/salla-multiple-bundle-product-options-modal.d.ts.map +1 -0
  465. package/dist/types/components/salla-multiple-bundle-product-slider.d.ts +32 -0
  466. package/dist/types/components/salla-multiple-bundle-product-slider.d.ts.map +1 -0
  467. package/dist/types/components/salla-multiple-bundle-product.d.ts +13 -0
  468. package/dist/types/components/salla-multiple-bundle-product.d.ts.map +1 -0
  469. package/dist/types/components/salla-next-order-coupon.d.ts +10 -0
  470. package/dist/types/components/salla-next-order-coupon.d.ts.map +1 -0
  471. package/dist/types/components/salla-notification-item.d.ts +10 -0
  472. package/dist/types/components/salla-notification-item.d.ts.map +1 -0
  473. package/dist/types/components/salla-notifications.d.ts +13 -0
  474. package/dist/types/components/salla-notifications.d.ts.map +1 -0
  475. package/dist/types/components/salla-offer-modal.d.ts +13 -0
  476. package/dist/types/components/salla-offer-modal.d.ts.map +1 -0
  477. package/dist/types/components/salla-offer.d.ts +13 -0
  478. package/dist/types/components/salla-offer.d.ts.map +1 -0
  479. package/dist/types/components/salla-order-branch.d.ts +10 -0
  480. package/dist/types/components/salla-order-branch.d.ts.map +1 -0
  481. package/dist/types/components/salla-order-cancel.d.ts +10 -0
  482. package/dist/types/components/salla-order-cancel.d.ts.map +1 -0
  483. package/dist/types/components/salla-order-details-multiple-bundle-product.d.ts +13 -0
  484. package/dist/types/components/salla-order-details-multiple-bundle-product.d.ts.map +1 -0
  485. package/dist/types/components/salla-order-details-options.d.ts +13 -0
  486. package/dist/types/components/salla-order-details-options.d.ts.map +1 -0
  487. package/dist/types/components/salla-order-details.d.ts +13 -0
  488. package/dist/types/components/salla-order-details.d.ts.map +1 -0
  489. package/dist/types/components/salla-order-edit-item.d.ts +21 -0
  490. package/dist/types/components/salla-order-edit-item.d.ts.map +1 -0
  491. package/dist/types/components/salla-order-edit-product-card.d.ts +15 -0
  492. package/dist/types/components/salla-order-edit-product-card.d.ts.map +1 -0
  493. package/dist/types/components/salla-order-edit.d.ts +10 -0
  494. package/dist/types/components/salla-order-edit.d.ts.map +1 -0
  495. package/dist/types/components/salla-order-options-modal.d.ts +10 -0
  496. package/dist/types/components/salla-order-options-modal.d.ts.map +1 -0
  497. package/dist/types/components/salla-order-summary.d.ts +13 -0
  498. package/dist/types/components/salla-order-summary.d.ts.map +1 -0
  499. package/dist/types/components/salla-order-totals-card.d.ts +13 -0
  500. package/dist/types/components/salla-order-totals-card.d.ts.map +1 -0
  501. package/dist/types/components/salla-orders.d.ts +13 -0
  502. package/dist/types/components/salla-orders.d.ts.map +1 -0
  503. package/dist/types/components/salla-payments.d.ts +13 -0
  504. package/dist/types/components/salla-payments.d.ts.map +1 -0
  505. package/dist/types/components/salla-placeholder.d.ts +10 -0
  506. package/dist/types/components/salla-placeholder.d.ts.map +1 -0
  507. package/dist/types/components/salla-price-range.d.ts +18 -0
  508. package/dist/types/components/salla-price-range.d.ts.map +1 -0
  509. package/dist/types/components/salla-product-availability.d.ts +13 -0
  510. package/dist/types/components/salla-product-availability.d.ts.map +1 -0
  511. package/dist/types/components/salla-product-card-embed.d.ts +10 -0
  512. package/dist/types/components/salla-product-card-embed.d.ts.map +1 -0
  513. package/dist/types/components/salla-product-card.d.ts +13 -0
  514. package/dist/types/components/salla-product-card.d.ts.map +1 -0
  515. package/dist/types/components/salla-product-options.d.ts +18 -0
  516. package/dist/types/components/salla-product-options.d.ts.map +1 -0
  517. package/dist/types/components/salla-product-size-guide.d.ts +13 -0
  518. package/dist/types/components/salla-product-size-guide.d.ts.map +1 -0
  519. package/dist/types/components/salla-progress-bar.d.ts +10 -0
  520. package/dist/types/components/salla-progress-bar.d.ts.map +1 -0
  521. package/dist/types/components/salla-quantity-input.d.ts +13 -0
  522. package/dist/types/components/salla-quantity-input.d.ts.map +1 -0
  523. package/dist/types/components/salla-quick-buy.d.ts +28 -0
  524. package/dist/types/components/salla-quick-buy.d.ts.map +1 -0
  525. package/dist/types/components/salla-quick-order.d.ts +18 -0
  526. package/dist/types/components/salla-quick-order.d.ts.map +1 -0
  527. package/dist/types/components/salla-rating-modal-v2.d.ts +10 -0
  528. package/dist/types/components/salla-rating-modal-v2.d.ts.map +1 -0
  529. package/dist/types/components/salla-rating-modal.d.ts +13 -0
  530. package/dist/types/components/salla-rating-modal.d.ts.map +1 -0
  531. package/dist/types/components/salla-rating-stars.d.ts +13 -0
  532. package/dist/types/components/salla-rating-stars.d.ts.map +1 -0
  533. package/dist/types/components/salla-review-card.d.ts +10 -0
  534. package/dist/types/components/salla-review-card.d.ts.map +1 -0
  535. package/dist/types/components/salla-review-factors-tags.d.ts +10 -0
  536. package/dist/types/components/salla-review-factors-tags.d.ts.map +1 -0
  537. package/dist/types/components/salla-reviews-page.d.ts +13 -0
  538. package/dist/types/components/salla-reviews-page.d.ts.map +1 -0
  539. package/dist/types/components/salla-reviews-summary.d.ts +13 -0
  540. package/dist/types/components/salla-reviews-summary.d.ts.map +1 -0
  541. package/dist/types/components/salla-reviews.d.ts +13 -0
  542. package/dist/types/components/salla-reviews.d.ts.map +1 -0
  543. package/dist/types/components/salla-reward-action.d.ts +13 -0
  544. package/dist/types/components/salla-reward-action.d.ts.map +1 -0
  545. package/dist/types/components/salla-reward-card.d.ts +14 -0
  546. package/dist/types/components/salla-reward-card.d.ts.map +1 -0
  547. package/dist/types/components/salla-reward-details.d.ts +13 -0
  548. package/dist/types/components/salla-reward-details.d.ts.map +1 -0
  549. package/dist/types/components/salla-reward-exchange.d.ts +10 -0
  550. package/dist/types/components/salla-reward-exchange.d.ts.map +1 -0
  551. package/dist/types/components/salla-scopes.d.ts +13 -0
  552. package/dist/types/components/salla-scopes.d.ts.map +1 -0
  553. package/dist/types/components/salla-search.d.ts +13 -0
  554. package/dist/types/components/salla-search.d.ts.map +1 -0
  555. package/dist/types/components/salla-searchable-dropdown.d.ts +16 -0
  556. package/dist/types/components/salla-searchable-dropdown.d.ts.map +1 -0
  557. package/dist/types/components/salla-skeleton.d.ts +10 -0
  558. package/dist/types/components/salla-skeleton.d.ts.map +1 -0
  559. package/dist/types/components/salla-slider.d.ts +48 -0
  560. package/dist/types/components/salla-slider.d.ts.map +1 -0
  561. package/dist/types/components/salla-social-share.d.ts +13 -0
  562. package/dist/types/components/salla-social-share.d.ts.map +1 -0
  563. package/dist/types/components/salla-social.d.ts +13 -0
  564. package/dist/types/components/salla-social.d.ts.map +1 -0
  565. package/dist/types/components/salla-tab-content.d.ts +10 -0
  566. package/dist/types/components/salla-tab-content.d.ts.map +1 -0
  567. package/dist/types/components/salla-tab-header.d.ts +13 -0
  568. package/dist/types/components/salla-tab-header.d.ts.map +1 -0
  569. package/dist/types/components/salla-tabs.d.ts +10 -0
  570. package/dist/types/components/salla-tabs.d.ts.map +1 -0
  571. package/dist/types/components/salla-tel-input.d.ts +18 -0
  572. package/dist/types/components/salla-tel-input.d.ts.map +1 -0
  573. package/dist/types/components/salla-tiered-offer.d.ts +13 -0
  574. package/dist/types/components/salla-tiered-offer.d.ts.map +1 -0
  575. package/dist/types/components/salla-tooltip.d.ts +10 -0
  576. package/dist/types/components/salla-tooltip.d.ts.map +1 -0
  577. package/dist/types/components/salla-trust-badges.d.ts +13 -0
  578. package/dist/types/components/salla-trust-badges.d.ts.map +1 -0
  579. package/dist/types/components/salla-user-menu.d.ts +13 -0
  580. package/dist/types/components/salla-user-menu.d.ts.map +1 -0
  581. package/dist/types/components/salla-user-profile.d.ts +13 -0
  582. package/dist/types/components/salla-user-profile.d.ts.map +1 -0
  583. package/dist/types/components/salla-user-settings.d.ts +13 -0
  584. package/dist/types/components/salla-user-settings.d.ts.map +1 -0
  585. package/dist/types/components/salla-verify.d.ts +18 -0
  586. package/dist/types/components/salla-verify.d.ts.map +1 -0
  587. package/dist/types/components/salla-wallet.d.ts +13 -0
  588. package/dist/types/components/salla-wallet.d.ts.map +1 -0
  589. package/dist/types/components/salla-wishlist-actions.d.ts +10 -0
  590. package/dist/types/components/salla-wishlist-actions.d.ts.map +1 -0
  591. package/dist/types/hydration/HydrationBoundary.d.ts +12 -0
  592. package/dist/types/hydration/HydrationBoundary.d.ts.map +1 -0
  593. package/dist/types/hydration/index.d.ts +4 -0
  594. package/dist/types/hydration/index.d.ts.map +1 -0
  595. package/dist/types/hydration/withDeferredHydration.d.ts +14 -0
  596. package/dist/types/hydration/withDeferredHydration.d.ts.map +1 -0
  597. package/dist/types/index.d.ts +18 -0
  598. package/dist/types/index.d.ts.map +1 -0
  599. package/dist/types/native/hooks/index.d.ts +9 -0
  600. package/dist/types/native/hooks/index.d.ts.map +1 -0
  601. package/dist/types/native/hooks/useInfiniteScroll.d.ts +61 -0
  602. package/dist/types/native/hooks/useInfiniteScroll.d.ts.map +1 -0
  603. package/dist/types/native/hooks/useLoadMore.d.ts +52 -0
  604. package/dist/types/native/hooks/useLoadMore.d.ts.map +1 -0
  605. package/dist/types/native/hooks/useScrollVisibility.d.ts +49 -0
  606. package/dist/types/native/hooks/useScrollVisibility.d.ts.map +1 -0
  607. package/dist/types/native/hooks/useVirtualizer.d.ts +86 -0
  608. package/dist/types/native/hooks/useVirtualizer.d.ts.map +1 -0
  609. package/dist/types/native/items-list/ItemsList.d.ts +94 -0
  610. package/dist/types/native/items-list/ItemsList.d.ts.map +1 -0
  611. package/dist/types/native/items-list/index.d.ts +3 -0
  612. package/dist/types/native/items-list/index.d.ts.map +1 -0
  613. package/dist/types/native/items-list/lazy.d.ts +21 -0
  614. package/dist/types/native/items-list/lazy.d.ts.map +1 -0
  615. package/dist/types/native/salla-button/SallaButton.d.ts +4 -0
  616. package/dist/types/native/salla-button/SallaButton.d.ts.map +1 -0
  617. package/dist/types/native/salla-button/index.d.ts +3 -0
  618. package/dist/types/native/salla-button/index.d.ts.map +1 -0
  619. package/dist/types/native/salla-button/types.d.ts +43 -0
  620. package/dist/types/native/salla-button/types.d.ts.map +1 -0
  621. package/dist/types/native/salla-products-list/SallaProductsList.d.ts +4 -0
  622. package/dist/types/native/salla-products-list/SallaProductsList.d.ts.map +1 -0
  623. package/dist/types/native/salla-products-list/SallaProductsListLazy.d.ts +5 -0
  624. package/dist/types/native/salla-products-list/SallaProductsListLazy.d.ts.map +1 -0
  625. package/dist/types/native/salla-products-list/index.d.ts +4 -0
  626. package/dist/types/native/salla-products-list/index.d.ts.map +1 -0
  627. package/dist/types/native/salla-products-list/types.d.ts +7 -0
  628. package/dist/types/native/salla-products-list/types.d.ts.map +1 -0
  629. package/dist/types/native/salla-products-slider/SallaProductsSlider.d.ts +4 -0
  630. package/dist/types/native/salla-products-slider/SallaProductsSlider.d.ts.map +1 -0
  631. package/dist/types/native/salla-products-slider/SallaProductsSliderLazy.d.ts +5 -0
  632. package/dist/types/native/salla-products-slider/SallaProductsSliderLazy.d.ts.map +1 -0
  633. package/dist/types/native/salla-products-slider/index.d.ts +4 -0
  634. package/dist/types/native/salla-products-slider/index.d.ts.map +1 -0
  635. package/dist/types/native/salla-products-slider/types.d.ts +19 -0
  636. package/dist/types/native/salla-products-slider/types.d.ts.map +1 -0
  637. package/dist/types/native/salla-slider/SallaSlider.d.ts +7 -0
  638. package/dist/types/native/salla-slider/SallaSlider.d.ts.map +1 -0
  639. package/dist/types/native/salla-slider/SliderArrows.d.ts +8 -0
  640. package/dist/types/native/salla-slider/SliderArrows.d.ts.map +1 -0
  641. package/dist/types/native/salla-slider/index.d.ts +3 -0
  642. package/dist/types/native/salla-slider/index.d.ts.map +1 -0
  643. package/dist/types/native/salla-slider/types.d.ts +35 -0
  644. package/dist/types/native/salla-slider/types.d.ts.map +1 -0
  645. package/dist/types/native/shared/index.d.ts +2 -0
  646. package/dist/types/native/shared/index.d.ts.map +1 -0
  647. package/dist/types/native/shared/types.d.ts +34 -0
  648. package/dist/types/native/shared/types.d.ts.map +1 -0
  649. package/dist/types/skeletons/index.d.ts +57 -0
  650. package/dist/types/skeletons/index.d.ts.map +1 -0
  651. package/package.json +84 -0
@@ -0,0 +1,64 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Component, Suspense, useState, useEffect, useRef, useCallback } from 'react';
4
+ import { useInView } from 'react-intersection-observer';
5
+ class HydrationErrorBoundary extends Component {
6
+ constructor(props) {
7
+ super(props);
8
+ this.state = { hasError: false };
9
+ }
10
+ static getDerivedStateFromError() {
11
+ return { hasError: true };
12
+ }
13
+ componentDidCatch(error, info) {
14
+ console.warn(`[HydrationBoundary:${this.props.name}]`, error.message, info.componentStack);
15
+ }
16
+ render() {
17
+ if (this.state.hasError) {
18
+ return this.props.fallback;
19
+ }
20
+ return this.props.children;
21
+ }
22
+ }
23
+ let hbInstanceId = 0;
24
+ export function HydrationBoundary({ children, fallback = null, eventTriggered = false, forceHydrate = false, rootMargin = '200px', _debugName = 'unknown', }) {
25
+ const [instanceId] = useState(() => ++hbInstanceId);
26
+ const [shouldHydrate, setShouldHydrate] = useState(forceHydrate);
27
+ const [isClient, setIsClient] = useState(false);
28
+ const wrapperRef = useRef(null);
29
+ useEffect(() => {
30
+ setIsClient(true);
31
+ }, []);
32
+ const { ref: inViewRef, inView } = useInView({
33
+ rootMargin,
34
+ triggerOnce: true,
35
+ skip: eventTriggered || shouldHydrate,
36
+ });
37
+ useEffect(() => {
38
+ if (eventTriggered || forceHydrate) {
39
+ setShouldHydrate(true);
40
+ return;
41
+ }
42
+ if (!fallback) {
43
+ setShouldHydrate(true);
44
+ return;
45
+ }
46
+ if (inView) {
47
+ setShouldHydrate(true);
48
+ }
49
+ }, [inView, forceHydrate, eventTriggered, fallback]);
50
+ const setRefs = useCallback((node) => {
51
+ wrapperRef.current = node;
52
+ if (!shouldHydrate) {
53
+ inViewRef(node);
54
+ }
55
+ }, [inViewRef, shouldHydrate]);
56
+ if (eventTriggered) {
57
+ if (!isClient) {
58
+ return null;
59
+ }
60
+ return (_jsx(HydrationErrorBoundary, { fallback: null, name: _debugName, children: children }));
61
+ }
62
+ return (_jsx("div", { ref: setRefs, suppressHydrationWarning: true, style: !shouldHydrate ? { width: '100%' } : undefined, children: shouldHydrate ? (_jsx(HydrationErrorBoundary, { fallback: fallback, name: _debugName, children: _jsx(Suspense, { fallback: fallback, children: children }) })) : (fallback) }));
63
+ }
64
+ //# sourceMappingURL=HydrationBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HydrationBoundary.js","sourceRoot":"","sources":["../../src/hydration/HydrationBoundary.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { HydrationBoundary } from './HydrationBoundary';
2
+ export { withDeferredHydration, createCoreExport, clientOnlyComponents, } from './withDeferredHydration';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hydration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,149 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import React, { Component } from 'react';
4
+ import { HydrationBoundary } from './HydrationBoundary';
5
+ import { SliderSkeleton, ProductsSliderSkeleton, ProductCardSkeleton, MenuSkeleton, MenuColumnSkeleton, PaymentSkeleton, ProductsListSkeleton, BulletDeliverySkeleton, CardSkeleton, CircleSkeleton, ListSkeleton, FormSkeleton, SearchSkeleton, FiltersSkeleton, ButtonSkeleton, BackgroundSliderSkeleton, ReviewItemSkeleton, InputSkeleton, MenuIconSkeleton, } from '../skeletons';
6
+ const skeletonMap = {
7
+ SliderSkeleton,
8
+ ProductsSliderSkeleton,
9
+ ProductCardSkeleton,
10
+ MenuSkeleton,
11
+ MenuColumnSkeleton,
12
+ PaymentSkeleton,
13
+ ProductsListSkeleton,
14
+ BulletDeliverySkeleton,
15
+ BackgroundSliderSkeleton,
16
+ CardSkeleton,
17
+ CircleSkeleton,
18
+ ListSkeleton,
19
+ FormSkeleton,
20
+ SearchSkeleton,
21
+ FiltersSkeleton,
22
+ ButtonSkeleton,
23
+ ReviewItemSkeleton,
24
+ InputSkeleton,
25
+ MenuIconSkeleton,
26
+ };
27
+ export const clientOnlyComponents = {
28
+ 'SallaLoginModal': { skeleton: null, eventTriggered: true },
29
+ 'SallaLocalizationModal': { skeleton: null, eventTriggered: true },
30
+ 'SallaOfferModal': { skeleton: null, eventTriggered: true },
31
+ 'SallaRatingModal': { skeleton: null, eventTriggered: true },
32
+ 'SallaMultipleBundleProductOptionsModal': { skeleton: null, eventTriggered: true },
33
+ 'SallaScopes': { skeleton: null, eventTriggered: true },
34
+ 'SallaGifting': { skeleton: null, eventTriggered: true },
35
+ 'SallaSlider': { skeleton: 'BackgroundSliderSkeleton' },
36
+ 'SallaProductCard': { skeleton: 'ProductCardSkeleton' },
37
+ 'SallaProductsSlider': { skeleton: 'ProductsSliderSkeleton' },
38
+ 'SallaProductsList': { skeleton: 'ProductsListSkeleton' },
39
+ 'SallaMenu': { skeleton: 'MenuColumnSkeleton' },
40
+ 'SallaBulletDelivery': { skeleton: 'BulletDeliverySkeleton' },
41
+ 'SallaSearch': { skeleton: 'SearchSkeleton' },
42
+ 'SallaFilters': { skeleton: 'FiltersSkeleton' },
43
+ 'SallaCartSummary': { skeleton: 'CircleSkeleton' },
44
+ 'SallaCartItemOffers': { skeleton: 'CardSkeleton' },
45
+ 'SallaOrderSummary': { skeleton: 'CardSkeleton' },
46
+ 'SallaOrders': { skeleton: 'ListSkeleton' },
47
+ 'SallaReviews': { skeleton: null },
48
+ 'SallaComments': { skeleton: 'ReviewItemSkeleton' },
49
+ 'SallaNotifications': { skeleton: 'ListSkeleton' },
50
+ 'SallaUserProfile': { skeleton: 'CardSkeleton' },
51
+ 'SallaUserMenu': { skeleton: (props) => (props.avatarOnly ? 'CircleSkeleton' : 'MenuIconSkeleton') },
52
+ 'SallaBreadcrumb': { skeleton: 'MenuSkeleton' },
53
+ 'SallaProductOptions': { skeleton: 'ProductCardSkeleton' },
54
+ 'SallaProductAvailability': { skeleton: 'ProductCardSkeleton' },
55
+ 'SallaAddProductButton': { skeleton: 'ButtonSkeleton' },
56
+ 'SallaQuickBuy': { skeleton: 'ProductCardSkeleton' },
57
+ 'SallaOffer': { skeleton: 'CardSkeleton' },
58
+ 'SallaTieredOffer': { skeleton: 'CardSkeleton' },
59
+ 'SallaConditionalOffer': { skeleton: 'CardSkeleton' },
60
+ 'SallaBookingField': { skeleton: 'InputSkeleton' },
61
+ 'SallaCustomFields': { skeleton: 'InputSkeleton' },
62
+ 'SallaFileUpload': { skeleton: 'InputSkeleton' },
63
+ 'SallaDatetimePicker': { skeleton: 'InputSkeleton' },
64
+ 'SallaTelInput': { skeleton: 'InputSkeleton' },
65
+ 'SallaMetadata': { skeleton: null },
66
+ 'SallaAdvertisement': { skeleton: null },
67
+ 'SallaMap': { skeleton: null },
68
+ 'SallaBottomAlert': { skeleton: null },
69
+ 'SallaMaintenanceAlert': { skeleton: null },
70
+ 'SallaAppInstallAlert': { skeleton: null },
71
+ 'SallaCookiesBar': { skeleton: null },
72
+ 'SallaUserSettings': { skeleton: 'FormSkeleton' },
73
+ 'SallaVerify': { skeleton: 'FormSkeleton' },
74
+ 'SallaWallet': { skeleton: 'CardSkeleton' },
75
+ 'SallaLoyalty': { skeleton: 'CardSkeleton' },
76
+ 'SallaLoyaltyProgram': { skeleton: 'CardSkeleton' },
77
+ 'SallaReviewsPage': { skeleton: 'ReviewItemSkeleton' },
78
+ 'SallaReviewsSummary': { skeleton: 'CardSkeleton' },
79
+ 'SallaCommentForm': { skeleton: 'FormSkeleton' },
80
+ 'SallaPriceRange': { skeleton: 'FormSkeleton' },
81
+ 'SallaFiltersWidget': { skeleton: 'FormSkeleton' },
82
+ 'SallaInfiniteScroll': { skeleton: null },
83
+ 'SallaRatingStars': { skeleton: 'CardSkeleton' },
84
+ 'SallaProductSizeGuide': { skeleton: null },
85
+ 'SallaMultipleBundleProduct': { skeleton: 'CardSkeleton' },
86
+ 'SallaMultipleBundleProductCart': { skeleton: 'CardSkeleton' },
87
+ 'SallaMultipleBundleProductDetails': { skeleton: 'CardSkeleton' },
88
+ 'SallaMultipleBundleProductSlider': { skeleton: 'ProductsSliderSkeleton' },
89
+ 'SallaOrderDetails': { skeleton: 'CardSkeleton' },
90
+ 'SallaOrderDetailsMultipleBundleProduct': { skeleton: 'CardSkeleton' },
91
+ 'SallaOrderDetailsOptions': { skeleton: 'CardSkeleton' },
92
+ 'SallaOrderTotalsCard': { skeleton: 'CardSkeleton' },
93
+ 'SallaPayments': { skeleton: 'PaymentSkeleton' },
94
+ 'SallaInstallment': { skeleton: 'CardSkeleton' },
95
+ 'SallaQuickOrder': { skeleton: 'FormSkeleton' },
96
+ 'SallaCountDown': { skeleton: 'CardSkeleton' },
97
+ 'SallaSocialShare': { skeleton: 'CircleSkeleton' },
98
+ 'SallaSocial': { skeleton: 'CircleSkeleton' },
99
+ 'SallaTrustBadges': { skeleton: null },
100
+ 'SallaConditionalFields': { skeleton: 'FormSkeleton' },
101
+ 'SallaQuantityInput': { skeleton: 'InputSkeleton' },
102
+ // 'SallaHook': { skeleton: null },
103
+ };
104
+ /**
105
+ * Error boundary that catches errors from Stencil web components during
106
+ * render and lifecycle (including disconnectedCallback errors on unmount).
107
+ * Prevents SDK errors from bubbling up to the router's CatchBoundaryImpl
108
+ * which would recreate the entire page tree.
109
+ */
110
+ class WebComponentErrorBoundary extends Component {
111
+ constructor(props) {
112
+ super(props);
113
+ this.state = { hasError: false };
114
+ }
115
+ static getDerivedStateFromError() {
116
+ return { hasError: true };
117
+ }
118
+ componentDidCatch(error, info) {
119
+ if (process.env.NODE_ENV !== 'production') {
120
+ console.warn(`[${this.props.name}] Caught error (prevented tree remount):`, error.message, info.componentStack);
121
+ }
122
+ }
123
+ render() {
124
+ if (this.state.hasError) {
125
+ return null;
126
+ }
127
+ return this.props.children;
128
+ }
129
+ }
130
+ export function withDeferredHydration(Component, componentName, options) {
131
+ const config = clientOnlyComponents[componentName];
132
+ if (!config) {
133
+ return Component;
134
+ }
135
+ const WrappedComponent = (props) => {
136
+ const skeletonName = typeof config.skeleton === 'function' ? config.skeleton(props) : config.skeleton;
137
+ const SkeletonComponent = skeletonName ? skeletonMap[skeletonName] : null;
138
+ const fallback = SkeletonComponent ? React.createElement(SkeletonComponent, config.skeletonProps) : null;
139
+ return (_jsx(HydrationBoundary, { fallback: fallback, eventTriggered: config.eventTriggered, rootMargin: options?.rootMargin, _debugName: componentName, children: _jsx(WebComponentErrorBoundary, { name: componentName, children: _jsx(Component, { ...props }) }) }));
140
+ };
141
+ WrappedComponent.displayName = `withDeferredHydration(${componentName})`;
142
+ return WrappedComponent;
143
+ }
144
+ export function createCoreExport(Component, componentName) {
145
+ const CoreComponent = Component;
146
+ CoreComponent.displayName = `${componentName}Core`;
147
+ return CoreComponent;
148
+ }
149
+ //# sourceMappingURL=withDeferredHydration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withDeferredHydration.js","sourceRoot":"","sources":["../../src/hydration/withDeferredHydration.tsx"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,10 @@
1
+ export * from "./components/components";
2
+ export { SallaButton } from "./native/salla-button";
3
+ export { SallaProductsList } from "./native/salla-products-list";
4
+ export { SallaProductsSlider } from "./native/salla-products-slider";
5
+ export { SallaSlider } from "./native/salla-slider";
6
+ export { ItemsList } from "./native/items-list";
7
+ export * from "./native/hooks";
8
+ export { HydrationBoundary, withDeferredHydration, createCoreExport, clientOnlyComponents, } from "./hydration";
9
+ export { Pulse, SkeletonPulse, ButtonSkeleton, ProductsSliderSkeleton, ProductCardSkeleton, MenuSkeleton, MenuColumnSkeleton, PaymentSkeleton, ProductsListSkeleton, ProductGridSkeleton, FixedProductsSkeleton, BulletDeliverySkeleton, CardSkeleton, ListSkeleton, FormSkeleton, SearchSkeleton, FiltersSkeleton, CircleSkeleton, SliderSkeleton, BackgroundSliderSkeleton, ReviewItemSkeleton, InputSkeleton, BreadcrumbSkeleton, PageSkeleton, ProductDetailSkeleton, BlogSkeleton, CartSkeleton, CustomerPageSkeleton, CustomerLayoutSkeleton, } from "./skeletons";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAcpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAGjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAGrE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAehD,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,KAAK,EACL,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,wBAAwB,EACxB,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,6 @@
1
+ // Hooks barrel export
2
+ export { useInfiniteScroll } from './useInfiniteScroll';
3
+ export { useLoadMore } from './useLoadMore';
4
+ export { useScrollVisibility } from './useScrollVisibility';
5
+ export { useVirtualizer } from './useVirtualizer';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/native/hooks/index.ts"],"names":[],"mappings":"AAAA,sBAAsB;AACtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,99 @@
1
+ 'use client';
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ import { useInView } from 'react-intersection-observer';
4
+ /**
5
+ * useInfiniteScroll - Hook for managing infinite scroll pagination.
6
+ *
7
+ * Uses react-intersection-observer for efficient scroll detection.
8
+ * Automatically calls the loader function when the sentinel element enters the viewport.
9
+ *
10
+ * @param loader - Function that returns a promise resolving to { items, next }
11
+ * @param options - Configuration options
12
+ * @returns Object with refs, state, and control functions
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * const { items, sentinelRef, isLoading, hasReachedEnd } = useInfiniteScroll(
17
+ * async () => fetchProducts(page),
18
+ * { rootMargin: '200px' }
19
+ * );
20
+ *
21
+ * return (
22
+ * <div>
23
+ * {items.map(item => <Item key={item.id} {...item} />)}
24
+ * <div ref={sentinelRef}>{isLoading ? 'Loading...' : hasReachedEnd ? 'End' : 'Loading more...'}</div>
25
+ * </div>
26
+ * );
27
+ * ```
28
+ */
29
+ export function useInfiniteScroll(loader, options = {}) {
30
+ const { rootMargin = '200px', skip = false } = options;
31
+ // State
32
+ const [items, setItems] = useState([]);
33
+ const [nextCursor, setNextCursor] = useState(null);
34
+ const [isLoading, setIsLoading] = useState(false);
35
+ const [error, setError] = useState(null);
36
+ const [hasLoadedOnce, setHasLoadedOnce] = useState(false);
37
+ // Refs
38
+ const loadingRef = useRef(false);
39
+ // Intersection Observer
40
+ const { ref: sentinelRef, inView } = useInView({
41
+ rootMargin,
42
+ triggerOnce: false,
43
+ skip,
44
+ });
45
+ // Load more handler
46
+ const loadMore = useCallback(async () => {
47
+ // Allow initial load when nextCursor is null and hasn't loaded yet
48
+ const isInitialLoad = nextCursor === null && !hasLoadedOnce;
49
+ if (loadingRef.current || (!nextCursor && !isInitialLoad))
50
+ return;
51
+ loadingRef.current = true;
52
+ setIsLoading(true);
53
+ setError(null);
54
+ try {
55
+ const result = await loader();
56
+ setItems(prev => [...prev, ...result.items]);
57
+ setNextCursor(result.next);
58
+ setHasLoadedOnce(true);
59
+ }
60
+ catch (err) {
61
+ setError(err instanceof Error ? err.message : 'Failed to load items');
62
+ }
63
+ finally {
64
+ loadingRef.current = false;
65
+ setIsLoading(false);
66
+ }
67
+ }, [loader, nextCursor, hasLoadedOnce]);
68
+ // Initial load
69
+ useEffect(() => {
70
+ if (!skip && nextCursor === null && !loadingRef.current) {
71
+ loadMore();
72
+ }
73
+ }, [skip, loadMore, nextCursor]);
74
+ // Handle scroll trigger
75
+ useEffect(() => {
76
+ if (inView && !skip && nextCursor && !isLoading) {
77
+ loadMore();
78
+ }
79
+ }, [inView, skip, nextCursor, isLoading, loadMore]);
80
+ // Retry handler
81
+ const retry = useCallback(async () => {
82
+ setError(null);
83
+ await loadMore();
84
+ }, [loadMore]);
85
+ // Determine if we've reached the end
86
+ const hasReachedEnd = !nextCursor && hasLoadedOnce;
87
+ return {
88
+ items,
89
+ sentinelRef,
90
+ inView,
91
+ isLoading,
92
+ hasReachedEnd,
93
+ error,
94
+ loadMore,
95
+ retry,
96
+ };
97
+ }
98
+ export default useInfiniteScroll;
99
+ //# sourceMappingURL=useInfiniteScroll.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInfiniteScroll.js","sourceRoot":"","sources":["../../../src/native/hooks/useInfiniteScroll.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ 'use client';
2
+ import { useCallback, useEffect, useRef, useState } from 'react';
3
+ /**
4
+ * useLoadMore - Hook for managing manual load-more pagination.
5
+ *
6
+ * Provides a simple API for button-based pagination.
7
+ * Call the `load` function to fetch more items.
8
+ *
9
+ * @param loader - Function that returns a promise resolving to { items, next }
10
+ * @returns Object with items, state, and control functions
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * const { items, isLoading, load, hasReachedEnd } = useLoadMore(
15
+ * async () => fetchProducts(page)
16
+ * );
17
+ *
18
+ * return (
19
+ * <div>
20
+ * {items.map(item => <Item key={item.id} {...item} />)}
21
+ * {!hasReachedEnd && (
22
+ * <button onClick={load} disabled={isLoading}>
23
+ * {isLoading ? 'Loading...' : 'Load More'}
24
+ * </button>
25
+ * )}
26
+ * </div>
27
+ * );
28
+ * ```
29
+ */
30
+ export function useLoadMore(loader) {
31
+ // State
32
+ const [items, setItems] = useState([]);
33
+ const [nextCursor, setNextCursor] = useState(null);
34
+ const [isLoading, setIsLoading] = useState(false);
35
+ const [error, setError] = useState(null);
36
+ const [hasLoadedOnce, setHasLoadedOnce] = useState(false);
37
+ // Refs
38
+ const loadingRef = useRef(false);
39
+ // Load handler
40
+ const load = useCallback(async () => {
41
+ // Allow initial load when nextCursor is null and hasn't loaded yet
42
+ const isInitialLoad = nextCursor === null && !hasLoadedOnce;
43
+ if (loadingRef.current || (!nextCursor && !isInitialLoad))
44
+ return;
45
+ loadingRef.current = true;
46
+ setIsLoading(true);
47
+ setError(null);
48
+ try {
49
+ const result = await loader();
50
+ setItems(prev => [...prev, ...result.items]);
51
+ setNextCursor(result.next);
52
+ setHasLoadedOnce(true);
53
+ }
54
+ catch (err) {
55
+ setError(err instanceof Error ? err.message : 'Failed to load items');
56
+ }
57
+ finally {
58
+ loadingRef.current = false;
59
+ setIsLoading(false);
60
+ }
61
+ }, [loader, nextCursor, hasLoadedOnce]);
62
+ // Initial load - triggered via useEffect, not during render
63
+ useEffect(() => {
64
+ if (!hasLoadedOnce && !loadingRef.current && nextCursor === null) {
65
+ load();
66
+ }
67
+ }, [hasLoadedOnce, nextCursor, load]);
68
+ // Retry handler
69
+ const retry = useCallback(async () => {
70
+ setError(null);
71
+ await load();
72
+ }, [load]);
73
+ // Reset handler
74
+ const reset = useCallback(() => {
75
+ setItems([]);
76
+ setNextCursor(null);
77
+ setIsLoading(false);
78
+ setError(null);
79
+ setHasLoadedOnce(false);
80
+ loadingRef.current = false;
81
+ }, []);
82
+ // Determine if we've reached the end
83
+ const hasReachedEnd = !nextCursor && hasLoadedOnce;
84
+ return {
85
+ items,
86
+ isLoading,
87
+ error,
88
+ hasReachedEnd,
89
+ load,
90
+ retry,
91
+ reset,
92
+ };
93
+ }
94
+ export default useLoadMore;
95
+ //# sourceMappingURL=useLoadMore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoadMore.js","sourceRoot":"","sources":["../../../src/native/hooks/useLoadMore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ 'use client';
2
+ import { useEffect, useState, useRef } from 'react';
3
+ import { useInView } from 'react-intersection-observer';
4
+ /**
5
+ * useScrollVisibility - Hook for detecting when a scroll container is visible in the viewport.
6
+ *
7
+ * Useful for:
8
+ * - Pausing scroll detection when component is off-screen
9
+ * - Preventing unnecessary API calls when content isn't visible
10
+ * - Tracking user engagement with list content
11
+ *
12
+ * @param options - Configuration options
13
+ * @returns Object with refs and visibility state
14
+ *
15
+ * @example
16
+ * ```tsx
17
+ * const { containerRef, isVisible } = useScrollVisibility({ threshold: 0.1 });
18
+ *
19
+ * return (
20
+ * <div ref={containerRef}>
21
+ * {isVisible ? <InfiniteScrollList /> : <Placeholder />}
22
+ * </div>
23
+ * );
24
+ * ```
25
+ */
26
+ export function useScrollVisibility(options = {}) {
27
+ const { threshold = 0.1, rootMargin = '0px', debounceMs = 500, hiddenDelayMs = 5000, } = options;
28
+ // State
29
+ const [isVisible, setIsVisible] = useState(false);
30
+ const [hasBeenVisible, setHasBeenVisible] = useState(false);
31
+ // Refs
32
+ const debounceTimerRef = useRef(null);
33
+ const hiddenTimerRef = useRef(null);
34
+ // Intersection Observer
35
+ const { ref: containerRef, inView } = useInView({
36
+ threshold,
37
+ rootMargin,
38
+ triggerOnce: false,
39
+ });
40
+ // Handle visibility changes with debouncing
41
+ useEffect(() => {
42
+ // Clear existing timers
43
+ if (debounceTimerRef.current) {
44
+ clearTimeout(debounceTimerRef.current);
45
+ }
46
+ if (hiddenTimerRef.current) {
47
+ clearTimeout(hiddenTimerRef.current);
48
+ }
49
+ if (inView) {
50
+ // Element entered viewport - debounce the visibility change
51
+ debounceTimerRef.current = setTimeout(() => {
52
+ setIsVisible(true);
53
+ setHasBeenVisible(true);
54
+ // Clear hidden timer if it was running
55
+ if (hiddenTimerRef.current) {
56
+ clearTimeout(hiddenTimerRef.current);
57
+ hiddenTimerRef.current = null;
58
+ }
59
+ }, debounceMs);
60
+ }
61
+ else {
62
+ // Element left viewport - delay before marking as hidden
63
+ hiddenTimerRef.current = setTimeout(() => {
64
+ setIsVisible(false);
65
+ }, hiddenDelayMs);
66
+ }
67
+ // Cleanup
68
+ return () => {
69
+ if (debounceTimerRef.current) {
70
+ clearTimeout(debounceTimerRef.current);
71
+ }
72
+ if (hiddenTimerRef.current) {
73
+ clearTimeout(hiddenTimerRef.current);
74
+ }
75
+ };
76
+ }, [inView, debounceMs, hiddenDelayMs]);
77
+ return {
78
+ containerRef,
79
+ isVisible,
80
+ hasBeenVisible,
81
+ };
82
+ }
83
+ export default useScrollVisibility;
84
+ //# sourceMappingURL=useScrollVisibility.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useScrollVisibility.js","sourceRoot":"","sources":["../../../src/native/hooks/useScrollVisibility.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AA4BxD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAsC,EAAE;IAExC,MAAM,EACJ,SAAS,GAAG,GAAG,EACf,UAAU,GAAG,KAAK,EAClB,UAAU,GAAG,GAAG,EAChB,aAAa,GAAG,IAAI,GACrB,GAAG,OAAO,CAAC;IAEZ,QAAQ;IACR,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,OAAO;IACP,MAAM,gBAAgB,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAC5E,MAAM,cAAc,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IAE1E,wBAAwB;IACxB,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC9C,SAAS;QACT,UAAU;QACV,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,4CAA4C;IAC5C,SAAS,CAAC,GAAG,EAAE;QACb,wBAAwB;QACxB,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;YAC7B,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC;QACD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;YAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,IAAI,MAAM,EAAE,CAAC;YACX,4DAA4D;YAC5D,gBAAgB,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACzC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACnB,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAExB,uCAAuC;gBACvC,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;oBAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACrC,cAAc,CAAC,OAAO,GAAG,IAAI,CAAC;gBAChC,CAAC;YACH,CAAC,EAAE,UAAU,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,yDAAyD;YACzD,cAAc,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;gBACvC,YAAY,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC,EAAE,aAAa,CAAC,CAAC;QACpB,CAAC;QAED,UAAU;QACV,OAAO,GAAG,EAAE;YACV,IAAI,gBAAgB,CAAC,OAAO,EAAE,CAAC;gBAC7B,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,cAAc,CAAC,OAAO,EAAE,CAAC;gBAC3B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;QACH,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC;IAExC,OAAO;QACL,YAAY;QACZ,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC;AAED,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,74 @@
1
+ 'use client';
2
+ import { useRef } from 'react';
3
+ import { useVirtualizer as useTanstackVirtualizer } from '@tanstack/react-virtual';
4
+ /**
5
+ * useVirtualizer - Hook for virtual scrolling large lists.
6
+ *
7
+ * Wrapper around @tanstack/react-virtual with simplified API.
8
+ * Supports both fixed and dynamic item heights.
9
+ *
10
+ * @param items - Array of items to virtualize
11
+ * @param options - Configuration options
12
+ * @returns Object with virtual items and control functions
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * const { virtualItems, totalSize, measureElement } = useVirtualizer(items, {
17
+ * estimateSize: 100,
18
+ * overscan: 5,
19
+ * });
20
+ *
21
+ * return (
22
+ * <div ref={scrollRef} style={{ height: '400px', overflow: 'auto' }}>
23
+ * <div style={{ height: `${totalSize}px`, position: 'relative' }}>
24
+ * {virtualItems.map(virtualItem => (
25
+ * <div
26
+ * key={virtualItem.key}
27
+ * ref={measureElement}
28
+ * style={{
29
+ * position: 'absolute',
30
+ * top: 0,
31
+ * left: 0,
32
+ * width: '100%',
33
+ * transform: `translateY(${virtualItem.start}px)`,
34
+ * }}
35
+ * >
36
+ * {items[virtualItem.index]}
37
+ * </div>
38
+ * ))}
39
+ * </div>
40
+ * </div>
41
+ * );
42
+ * ```
43
+ */
44
+ export function useVirtualizer(items, options = {}) {
45
+ const { estimateSize = 100, overscan = 5, } = options;
46
+ // Ref for scroll element
47
+ const scrollRef = useRef(null);
48
+ // Create virtualizer directly without useMemo for options
49
+ const virtualizer = useTanstackVirtualizer({
50
+ count: items.length,
51
+ getScrollElement: () => scrollRef.current,
52
+ estimateSize: () => estimateSize,
53
+ overscan,
54
+ });
55
+ // Get virtual items
56
+ const virtualItems = virtualizer.getVirtualItems();
57
+ return {
58
+ virtualItems: virtualItems.map(item => ({
59
+ key: Number(item.key),
60
+ index: item.index,
61
+ start: item.start,
62
+ end: item.end,
63
+ size: item.size,
64
+ measureElement: virtualizer.measureElement,
65
+ })),
66
+ totalSize: virtualizer.getTotalSize(),
67
+ scrollToIndex: virtualizer.scrollToIndex,
68
+ scrollToOffset: virtualizer.scrollToOffset,
69
+ scrollOffset: virtualizer.scrollOffset ?? 0,
70
+ measureElement: virtualizer.measureElement,
71
+ };
72
+ }
73
+ export default useVirtualizer;
74
+ //# sourceMappingURL=useVirtualizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualizer.js","sourceRoot":"","sources":["../../../src/native/hooks/useVirtualizer.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,MAAM,EAAW,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,cAAc,IAAI,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AA0CnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAU,EACV,UAAiC,EAAE;IAEnC,MAAM,EACJ,YAAY,GAAG,GAAG,EAClB,QAAQ,GAAG,CAAC,GACb,GAAG,OAAO,CAAC;IAEZ,yBAAyB;IACzB,MAAM,SAAS,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IAE5C,0DAA0D;IAC1D,MAAM,WAAW,GAAG,sBAAsB,CAAC;QACzC,KAAK,EAAE,KAAK,CAAC,MAAM;QACnB,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO;QACzC,YAAY,EAAE,GAAG,EAAE,CAAC,YAAY;QAChC,QAAQ;KACT,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;IAEnD,OAAO;QACL,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACtC,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,WAAW,CAAC,cAAc;SAC3C,CAAC,CAAC;QACH,SAAS,EAAE,WAAW,CAAC,YAAY,EAAE;QACrC,aAAa,EAAE,WAAW,CAAC,aAAa;QACxC,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,YAAY,EAAE,WAAW,CAAC,YAAY,IAAI,CAAC;QAC3C,cAAc,EAAE,WAAW,CAAC,cAAc;KAC3C,CAAC;AACJ,CAAC;AAED,eAAe,cAAc,CAAC"}