@salla.sa/twilight-components 2.14.577 → 2.14.579
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.
- package/dist/cjs/{catalog-recommendations-HZzTK7-G.js → catalog-recommendations-Bxs1t6wk.js} +16 -1
- package/dist/cjs/{filepond-iflxa4A5.js → filepond-DBIghBBz.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-NZ84xlKh.js → filepond-plugin-file-poster-D9QbEXdw.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-m8Z_JlZX.js → filepond-plugin-file-validate-size-CcTLgsV2.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-BfF6LYAT.js → filepond-plugin-file-validate-type-wroI9jAT.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-DfRJ3iRj.js → filepond-plugin-image-edit-DvJ0qDXd.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-BZxYZai-.js → filepond-plugin-image-exif-orientation-Tv2WgHma.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-BQ7HvH2d.js → filepond-plugin-image-preview-Bkcpwdkp.js} +1 -1
- package/dist/cjs/{index-CSe-ijAV.js → index-Brycy0hH.js} +3 -3
- package/dist/cjs/{intlTelInput-DHfYz8vv.js → intlTelInput-BnpKZAn8.js} +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/salla-accordion-body_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-accordion_6.cjs.entry.js +1 -1
- package/dist/cjs/salla-add-product-button_5.cjs.entry.js +14 -3
- package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
- package/dist/cjs/salla-alert_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
- package/dist/cjs/salla-applied-filters.cjs.entry.js +1 -1
- package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
- package/dist/cjs/salla-attachment-view_9.cjs.entry.js +10 -10
- package/dist/cjs/salla-badge.cjs.entry.js +1 -1
- package/dist/cjs/salla-basket-gap.cjs.entry.js +83 -5
- package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-coupons.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
- package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
- package/dist/cjs/salla-comment-form_9.cjs.entry.js +1 -1
- package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
- package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
- package/dist/cjs/salla-count-down.cjs.entry.js +1 -1
- package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
- package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
- package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
- package/dist/cjs/salla-filters.cjs.entry.js +1 -1
- package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
- package/dist/cjs/salla-gift-card-redeem.cjs.entry.js +1 -1
- package/dist/cjs/salla-gifting.cjs.entry.js +1 -1
- package/dist/cjs/salla-hook.cjs.entry.js +1 -1
- package/dist/cjs/salla-infinite-scroll.cjs.entry.js +1 -1
- package/dist/cjs/salla-installment.cjs.entry.js +1 -1
- package/dist/cjs/salla-list-tile.cjs.entry.js +1 -1
- package/dist/cjs/salla-localization-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-banner_10.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-exchange-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
- package/dist/cjs/salla-maintenance-alert.cjs.entry.js +1 -1
- package/dist/cjs/salla-map_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-menu.cjs.entry.js +1 -1
- package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +1 -1
- package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
- package/dist/cjs/salla-notification-item_2.cjs.entry.js +1 -1
- package/dist/cjs/salla-offer-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-options-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
- package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-orders.cjs.entry.js +1 -1
- package/dist/cjs/salla-payments.cjs.entry.js +1 -1
- package/dist/cjs/salla-placeholder.cjs.entry.js +1 -1
- package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
- package/dist/cjs/salla-product-card-embed.cjs.entry.js +1 -1
- package/dist/cjs/salla-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-product-size-guide.cjs.entry.js +1 -1
- package/dist/cjs/salla-products-list.cjs.entry.js +1 -1
- package/dist/cjs/salla-products-slider.cjs.entry.js +1 -1
- package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
- package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
- package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-review-factors-tags.cjs.entry.js +1 -1
- package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
- package/dist/cjs/salla-search-product-card.cjs.entry.js +1 -1
- package/dist/cjs/salla-search.cjs.entry.js +1 -1
- package/dist/cjs/salla-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/salla-social-share.cjs.entry.js +1 -1
- package/dist/cjs/salla-social.cjs.entry.js +1 -1
- package/dist/cjs/salla-tab-content_3.cjs.entry.js +1 -1
- package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
- package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
- package/dist/cjs/salla-user-settings.cjs.entry.js +1 -1
- package/dist/cjs/salla-verify.cjs.entry.js +1 -1
- package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
- package/dist/cjs/salla-wishlist-actions.cjs.entry.js +1 -1
- package/dist/cjs/salla-wishlist-summary.cjs.entry.js +1 -1
- package/dist/cjs/twilight.cjs.js +1 -1
- package/dist/cjs/{vanilla-picker-Brk9Mb54.js → vanilla-picker-DoQGicjv.js} +1 -1
- package/dist/collection/components/salla-basket-gap/salla-basket-gap.js +81 -3
- package/dist/collection/components/salla-bought-together/salla-bought-together.js +12 -1
- package/dist/collection/shared/catalog-recommendations.js +16 -1
- package/dist/components/catalog-recommendations.js +16 -1
- package/dist/components/index.js +3 -3
- package/dist/components/salla-basket-gap.js +81 -3
- package/dist/components/salla-bought-together.js +12 -1
- package/dist/esm/{catalog-recommendations-CRW60UDr.js → catalog-recommendations-DIAyA5MP.js} +16 -1
- package/dist/esm/{filepond-plugin-file-poster-CHpnwHYe.js → filepond-plugin-file-poster-ifZZJbSt.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-BwHBxxMg.js → filepond-plugin-file-validate-size-Di-mYkQm.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-BD-yTEPO.js → filepond-plugin-file-validate-type-CvQPSQLD.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit-DKc0Yw10.js → filepond-plugin-image-edit-BwN5C4U-.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-CepmNFGF.js → filepond-plugin-image-exif-orientation-DskcwcEc.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-FhnzagMd.js → filepond-plugin-image-preview-CNRRNBsw.js} +1 -1
- package/dist/esm/{filepond-Qm94dFPs.js → filepond-uH9_9tud.js} +1 -1
- package/dist/esm/{index-BAXTlrSC.js → index-Cv0bGFJf.js} +3 -3
- package/dist/esm/{intlTelInput-BJlOPJYY.js → intlTelInput-U4fk8hXD.js} +1 -1
- package/dist/esm/loader.js +2 -2
- package/dist/esm/salla-accordion-body_2.entry.js +1 -1
- package/dist/esm/salla-accordion_6.entry.js +1 -1
- package/dist/esm/salla-add-product-button_5.entry.js +14 -3
- package/dist/esm/salla-advertisement.entry.js +1 -1
- package/dist/esm/salla-alert_2.entry.js +1 -1
- package/dist/esm/salla-app-install-alert.entry.js +1 -1
- package/dist/esm/salla-applied-filters.entry.js +1 -1
- package/dist/esm/salla-apps-icons.entry.js +1 -1
- package/dist/esm/salla-attachment-view_9.entry.js +10 -10
- package/dist/esm/salla-badge.entry.js +1 -1
- package/dist/esm/salla-basket-gap.entry.js +83 -5
- package/dist/esm/salla-bullet-delivery_3.entry.js +1 -1
- package/dist/esm/salla-cart-coupons.entry.js +1 -1
- package/dist/esm/salla-cart-item-offers_2.entry.js +1 -1
- package/dist/esm/salla-cart-summary-card.entry.js +1 -1
- package/dist/esm/salla-cashback-banner.entry.js +1 -1
- package/dist/esm/salla-comment-factors.entry.js +1 -1
- package/dist/esm/salla-comment-form_9.entry.js +1 -1
- package/dist/esm/salla-conditional-offer.entry.js +1 -1
- package/dist/esm/salla-contacts.entry.js +1 -1
- package/dist/esm/salla-cookies-bar.entry.js +1 -1
- package/dist/esm/salla-count-down.entry.js +1 -1
- package/dist/esm/salla-custom-fields.entry.js +1 -1
- package/dist/esm/salla-delivery-promise.entry.js +1 -1
- package/dist/esm/salla-edit-order-button.entry.js +1 -1
- package/dist/esm/salla-filters-widget.entry.js +1 -1
- package/dist/esm/salla-filters.entry.js +1 -1
- package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
- package/dist/esm/salla-gift-card-redeem.entry.js +1 -1
- package/dist/esm/salla-gifting.entry.js +1 -1
- package/dist/esm/salla-hook.entry.js +1 -1
- package/dist/esm/salla-infinite-scroll.entry.js +1 -1
- package/dist/esm/salla-installment.entry.js +1 -1
- package/dist/esm/salla-list-tile.entry.js +1 -1
- package/dist/esm/salla-localization-modal.entry.js +1 -1
- package/dist/esm/salla-login-modal.entry.js +1 -1
- package/dist/esm/salla-loyalty-banner_10.entry.js +1 -1
- package/dist/esm/salla-loyalty-exchange-product-card.entry.js +1 -1
- package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
- package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
- package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
- package/dist/esm/salla-loyalty.entry.js +1 -1
- package/dist/esm/salla-maintenance-alert.entry.js +1 -1
- package/dist/esm/salla-map_3.entry.js +1 -1
- package/dist/esm/salla-menu.entry.js +1 -1
- package/dist/esm/salla-metadata.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +1 -1
- package/dist/esm/salla-multiple-bundle-product.entry.js +1 -1
- package/dist/esm/salla-next-order-coupon.entry.js +1 -1
- package/dist/esm/salla-notification-item_2.entry.js +1 -1
- package/dist/esm/salla-offer-modal.entry.js +1 -1
- package/dist/esm/salla-offer.entry.js +1 -1
- package/dist/esm/salla-order-branch.entry.js +1 -1
- package/dist/esm/salla-order-cancel.entry.js +1 -1
- package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
- package/dist/esm/salla-order-details-options.entry.js +1 -1
- package/dist/esm/salla-order-details.entry.js +1 -1
- package/dist/esm/salla-order-edit-item.entry.js +1 -1
- package/dist/esm/salla-order-edit-product-card.entry.js +1 -1
- package/dist/esm/salla-order-edit.entry.js +1 -1
- package/dist/esm/salla-order-options-modal.entry.js +1 -1
- package/dist/esm/salla-order-shipments.entry.js +1 -1
- package/dist/esm/salla-order-summary.entry.js +1 -1
- package/dist/esm/salla-order-totals-card.entry.js +1 -1
- package/dist/esm/salla-orders.entry.js +1 -1
- package/dist/esm/salla-payments.entry.js +1 -1
- package/dist/esm/salla-placeholder.entry.js +1 -1
- package/dist/esm/salla-price-range.entry.js +1 -1
- package/dist/esm/salla-product-card-embed.entry.js +1 -1
- package/dist/esm/salla-product-card.entry.js +1 -1
- package/dist/esm/salla-product-size-guide.entry.js +1 -1
- package/dist/esm/salla-products-list.entry.js +1 -1
- package/dist/esm/salla-products-slider.entry.js +1 -1
- package/dist/esm/salla-quick-order.entry.js +1 -1
- package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
- package/dist/esm/salla-rating-modal.entry.js +1 -1
- package/dist/esm/salla-review-factors-tags.entry.js +1 -1
- package/dist/esm/salla-review-order-item.entry.js +1 -1
- package/dist/esm/salla-scopes.entry.js +1 -1
- package/dist/esm/salla-search-product-card.entry.js +1 -1
- package/dist/esm/salla-search.entry.js +1 -1
- package/dist/esm/salla-skeleton.entry.js +1 -1
- package/dist/esm/salla-social-share.entry.js +1 -1
- package/dist/esm/salla-social.entry.js +1 -1
- package/dist/esm/salla-tab-content_3.entry.js +1 -1
- package/dist/esm/salla-tiered-offer.entry.js +1 -1
- package/dist/esm/salla-tooltip.entry.js +1 -1
- package/dist/esm/salla-trust-badges.entry.js +1 -1
- package/dist/esm/salla-user-menu.entry.js +1 -1
- package/dist/esm/salla-user-profile.entry.js +1 -1
- package/dist/esm/salla-user-settings.entry.js +1 -1
- package/dist/esm/salla-verify.entry.js +1 -1
- package/dist/esm/salla-wallet.entry.js +1 -1
- package/dist/esm/salla-wishlist-actions.entry.js +1 -1
- package/dist/esm/salla-wishlist-summary.entry.js +1 -1
- package/dist/esm/twilight.js +2 -2
- package/dist/esm/{vanilla-picker-C_cY41gl.js → vanilla-picker-CsYJ2Gx8.js} +1 -1
- package/dist/twilight/{p-ce1d3ad9.entry.js → p-00e10a64.entry.js} +1 -1
- package/dist/twilight/{p-ab3ad37f.entry.js → p-00ff9799.entry.js} +1 -1
- package/dist/twilight/{p-7f3e110c.entry.js → p-01339b84.entry.js} +1 -1
- package/dist/twilight/{p-10a68a21.entry.js → p-01af3487.entry.js} +1 -1
- package/dist/twilight/{p-1fbb0b22.entry.js → p-02a96323.entry.js} +1 -1
- package/dist/twilight/{p-e0d834a7.entry.js → p-04e7c9af.entry.js} +1 -1
- package/dist/twilight/{p-9e054110.entry.js → p-04fd3d15.entry.js} +1 -1
- package/dist/twilight/{p-a79c04a2.entry.js → p-07e0bad0.entry.js} +1 -1
- package/dist/twilight/{p-08cedab0.entry.js → p-0c188a09.entry.js} +1 -1
- package/dist/twilight/{p-cc1b3318.entry.js → p-0db0b088.entry.js} +1 -1
- package/dist/twilight/{p-7d08dcfb.entry.js → p-100831b8.entry.js} +1 -1
- package/dist/twilight/{p-6bfe12d5.entry.js → p-10e4fc53.entry.js} +1 -1
- package/dist/twilight/{p-abc3e5d5.entry.js → p-1523f751.entry.js} +1 -1
- package/dist/twilight/{p-e4ff7a77.entry.js → p-16bc5fe2.entry.js} +1 -1
- package/dist/twilight/{p-9920bbad.entry.js → p-174453fd.entry.js} +1 -1
- package/dist/twilight/{p-80302c52.entry.js → p-175e00a9.entry.js} +1 -1
- package/dist/twilight/{p-1fd6a10e.entry.js → p-1870aa20.entry.js} +1 -1
- package/dist/twilight/{p-d3cf9f8a.entry.js → p-18cc0497.entry.js} +1 -1
- package/dist/twilight/{p-fa6f2b27.entry.js → p-197385ef.entry.js} +1 -1
- package/dist/twilight/{p-00a727c3.entry.js → p-1ac4c8b5.entry.js} +1 -1
- package/dist/twilight/{p-0bcca7f8.entry.js → p-1db9cb44.entry.js} +1 -1
- package/dist/twilight/{p-3a3815a2.entry.js → p-1f8fb466.entry.js} +1 -1
- package/dist/twilight/{p-fc500047.entry.js → p-226766f8.entry.js} +1 -1
- package/dist/twilight/{p-2e4064eb.entry.js → p-297b11aa.entry.js} +1 -1
- package/dist/twilight/{p-b55fb51b.entry.js → p-2a79781f.entry.js} +1 -1
- package/dist/twilight/{p-e66856c5.entry.js → p-2e8673b0.entry.js} +1 -1
- package/dist/twilight/{p-b356f3f6.entry.js → p-335d602b.entry.js} +1 -1
- package/dist/twilight/{p-637670fa.entry.js → p-34d20d89.entry.js} +1 -1
- package/dist/twilight/{p-13abf9ca.entry.js → p-353d7c2b.entry.js} +1 -1
- package/dist/twilight/{p-f514b9f5.entry.js → p-37b99097.entry.js} +1 -1
- package/dist/twilight/{p-8fc2eb01.entry.js → p-393f2d5a.entry.js} +1 -1
- package/dist/twilight/{p-97fee81d.entry.js → p-3a02cd71.entry.js} +1 -1
- package/dist/twilight/{p-292a0b4a.entry.js → p-3eefc1f9.entry.js} +1 -1
- package/dist/twilight/{p-884104a3.entry.js → p-43d19714.entry.js} +1 -1
- package/dist/twilight/{p-5c4e2ed3.entry.js → p-480beded.entry.js} +1 -1
- package/dist/twilight/{p-dd18ac5c.entry.js → p-48ea970a.entry.js} +1 -1
- package/dist/twilight/{p-423d852d.entry.js → p-49d915b2.entry.js} +1 -1
- package/dist/twilight/{p-13c35685.entry.js → p-4f358102.entry.js} +1 -1
- package/dist/twilight/{p-99b9bf66.entry.js → p-52a2d067.entry.js} +1 -1
- package/dist/twilight/{p-806083b4.entry.js → p-551b8be9.entry.js} +1 -1
- package/dist/twilight/{p-072ee78f.entry.js → p-5d140f6a.entry.js} +1 -1
- package/dist/twilight/{p-0227316e.entry.js → p-5d1dcdd6.entry.js} +1 -1
- package/dist/twilight/{p-5a77257c.entry.js → p-5d61bc8b.entry.js} +1 -1
- package/dist/twilight/{p-f2e13d28.entry.js → p-610c0b50.entry.js} +1 -1
- package/dist/twilight/{p-faadae59.entry.js → p-613c8c04.entry.js} +1 -1
- package/dist/twilight/{p-56609a91.entry.js → p-6161d5c7.entry.js} +1 -1
- package/dist/twilight/{p-6de608eb.entry.js → p-6204194f.entry.js} +1 -1
- package/dist/twilight/{p-d3556d1f.entry.js → p-6491fe73.entry.js} +1 -1
- package/dist/twilight/{p-ea7846fd.entry.js → p-6845c140.entry.js} +1 -1
- package/dist/twilight/{p-f0ca37fc.entry.js → p-6adb877c.entry.js} +1 -1
- package/dist/twilight/{p-3153f560.entry.js → p-6bdf61dd.entry.js} +1 -1
- package/dist/twilight/{p-c38fb150.entry.js → p-70f498b4.entry.js} +1 -1
- package/dist/twilight/{p-DGzNHmGp.js → p-79sdW-RJ.js} +1 -1
- package/dist/twilight/{p-c90600b1.entry.js → p-821fbdd7.entry.js} +1 -1
- package/dist/twilight/{p-2c543420.entry.js → p-83c54d44.entry.js} +1 -1
- package/dist/twilight/{p-162fa48e.entry.js → p-8444cf02.entry.js} +1 -1
- package/dist/twilight/{p-e944f02a.entry.js → p-84b61b96.entry.js} +1 -1
- package/dist/twilight/{p-a73a785d.entry.js → p-84d740c5.entry.js} +1 -1
- package/dist/twilight/{p-58c1bf51.entry.js → p-85474877.entry.js} +1 -1
- package/dist/twilight/{p-e7c4d4cc.entry.js → p-87c03c55.entry.js} +1 -1
- package/dist/twilight/p-888f6120.entry.js +4 -0
- package/dist/twilight/{p-fdc97278.entry.js → p-8cca3ae6.entry.js} +1 -1
- package/dist/twilight/{p-9b4a0dd3.entry.js → p-914c39e7.entry.js} +1 -1
- package/dist/twilight/{p-6605f258.entry.js → p-92ae62e1.entry.js} +1 -1
- package/dist/twilight/{p-8a865d37.entry.js → p-94f8ac6a.entry.js} +1 -1
- package/dist/twilight/{p-0806da7e.entry.js → p-97a6f87f.entry.js} +1 -1
- package/dist/twilight/{p-dda4d231.entry.js → p-9a89449c.entry.js} +1 -1
- package/dist/twilight/{p-665bc308.entry.js → p-9b7d25bb.entry.js} +1 -1
- package/dist/twilight/{p-a2d07dba.entry.js → p-9c4035fd.entry.js} +1 -1
- package/dist/twilight/{p-3cef6be2.entry.js → p-9f233039.entry.js} +1 -1
- package/dist/twilight/{p-e95fd91e.entry.js → p-9f726d38.entry.js} +1 -1
- package/dist/twilight/{p-SguJQlDo.js → p-BFHiJkJo.js} +1 -1
- package/dist/twilight/{p-DnrvXyI6.js → p-BHxYBHNJ.js} +1 -1
- package/dist/twilight/{p-_f6GlygH.js → p-BV-RAvFu.js} +1 -1
- package/dist/twilight/p-ByRaVyQz.js +9 -0
- package/dist/twilight/p-Cv0bGFJf.js +5 -0
- package/dist/twilight/{p-BWpg3MwW.js → p-D6cd_mQ5.js} +1 -1
- package/dist/twilight/{p-CvebbG3m.js → p-DBruGj-x.js} +1 -1
- package/dist/twilight/p-DIAyA5MP.js +4 -0
- package/dist/twilight/{p-C6WaobtY.js → p-DuHvhlSw.js} +1 -1
- package/dist/twilight/{p-51fb8841.entry.js → p-a03c154f.entry.js} +1 -1
- package/dist/twilight/{p-a9fcdac5.entry.js → p-a16a3f5a.entry.js} +1 -1
- package/dist/twilight/{p-411c1ab0.entry.js → p-a5b16153.entry.js} +1 -1
- package/dist/twilight/{p-44a6598e.entry.js → p-b12845d7.entry.js} +1 -1
- package/dist/twilight/{p-bf845ea7.entry.js → p-b4468092.entry.js} +1 -1
- package/dist/twilight/{p-51d83216.entry.js → p-b5f3c4c8.entry.js} +1 -1
- package/dist/twilight/{p-3dd612a6.entry.js → p-bbd4d8fd.entry.js} +1 -1
- package/dist/twilight/{p-8c750736.entry.js → p-c414faf1.entry.js} +1 -1
- package/dist/twilight/{p-c63ff8ef.entry.js → p-c4bbe239.entry.js} +1 -1
- package/dist/twilight/{p-70451662.entry.js → p-c8775e6f.entry.js} +1 -1
- package/dist/twilight/{p-2ba4956f.entry.js → p-c9bf5222.entry.js} +1 -1
- package/dist/twilight/{p-18c41e9a.entry.js → p-cac35bf1.entry.js} +1 -1
- package/dist/twilight/{p-7b0cf8a1.entry.js → p-cdde65a4.entry.js} +1 -1
- package/dist/twilight/{p-59a7ca2e.entry.js → p-cf27d7e1.entry.js} +1 -1
- package/dist/twilight/{p-5f464161.entry.js → p-cf348533.entry.js} +1 -1
- package/dist/twilight/{p-03c959bb.entry.js → p-d2b78693.entry.js} +1 -1
- package/dist/twilight/{p-bb35af04.entry.js → p-d4cca956.entry.js} +1 -1
- package/dist/twilight/p-d8a37909.entry.js +4 -0
- package/dist/twilight/{p-28cdaf6b.entry.js → p-dbde8a51.entry.js} +1 -1
- package/dist/twilight/{p-1762fd86.entry.js → p-e2303e51.entry.js} +1 -1
- package/dist/twilight/{p-898ce93b.entry.js → p-e305800c.entry.js} +1 -1
- package/dist/twilight/{p-2e3a56de.entry.js → p-f16f0a66.entry.js} +1 -1
- package/dist/twilight/{p-c2e871ae.entry.js → p-f71f35c9.entry.js} +1 -1
- package/dist/twilight/{p-7d37b650.entry.js → p-fa50faa3.entry.js} +1 -1
- package/dist/twilight/{p-ce80fb8f.entry.js → p-fc9f812a.entry.js} +1 -1
- package/dist/twilight/{p-DpI1J-G1.js → p-fca8mBDM.js} +1 -1
- package/dist/twilight/{p-84cff600.entry.js → p-fe94f5ba.entry.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-basket-gap/salla-basket-gap.d.ts +15 -0
- package/dist/types/components/salla-bought-together/salla-bought-together.d.ts +2 -0
- package/package.json +5 -5
- package/dist/twilight/p-073e1363.entry.js +0 -4
- package/dist/twilight/p-6f9bc285.entry.js +0 -4
- package/dist/twilight/p-BAXTlrSC.js +0 -5
- package/dist/twilight/p-CRW60UDr.js +0 -4
- package/dist/twilight/p-D5lNzFgl.js +0 -9
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
const sallaOrderTotalsCardCss = "/*!twlt*/:host{display:block}.s-order-totals-card-wrapper{display:block}.s-order-totals-card-panel{border-radius:0.375rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding-left:1.5rem;padding-right:1.5rem}.s-order-totals-card-heading{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.s-order-totals-card-flow{display:flow-root}.s-order-totals-card-list{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-order-totals-card-list>.s-order-totals-card-row{border-bottom-width:1px}.s-order-totals-card-list>.s-order-totals-card-row:last-child{border-bottom-width:0px}.s-order-totals-card-row{display:block}.s-order-totals-card-row-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1.25rem;padding-bottom:1.25rem}.s-order-totals-card-label{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.s-order-totals-card-value{font-weight:500}.s-order-totals-card-discount{--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-order-totals-card-tax-value{font-weight:500;--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.s-order-totals-card-total{margin-left:-1.5rem;margin-right:-1.5rem;border-radius:0.375rem;background-color:var(--color-border);padding-left:1.5rem;padding-right:1.5rem}.s-order-totals-card-total-label{font-size:1rem;line-height:1.5rem;font-weight:500}.s-order-totals-card-total-value{font-size:1rem;line-height:1.5rem;font-weight:500}.s-order-totals-card-refund{margin-left:-1.5rem;margin-right:-1.5rem;border-left-width:4px;--tw-border-opacity:1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1));padding-left:1.5rem;padding-right:1.5rem}.s-order-totals-card-refund:where([dir=\"rtl\"],[dir=\"rtl\"] *){border-left-width:0px;border-right-width:4px}.s-order-totals-card-refund-label{display:flex;align-items:center;gap:0.5rem;--tw-text-opacity:1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.s-order-totals-card-refund-icon{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-order-totals-card-refund-value{font-weight:500;--tw-text-opacity:1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
const sallaPaymentsCss = "/*!twlt*/:host{display:block}.static{position:static}.hidden{display:none}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-payments-list{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:center;gap:0.5rem}.s-payments-list:where([dir=\"rtl\"],[dir=\"rtl\"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-payments-list-item{display:flex;height:2rem;width:3rem;align-items:center;justify-content:center;border-radius:var(--s-radius, 0.25rem);--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.25rem}.s-payments-list-item img{max-height:100%;object-fit:contain}.s-payments-sbc-image{height:1.5rem;border-radius:0.125rem;transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.s-payments-sbc-image:hover{opacity:0.8}";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
const sallaProductCardEmbedCss = "/*!twlt*/@charset \"UTF-8\";:host{display:inline-block;vertical-align:top;max-width:12rem}:host([align=left]){float:inline-start;margin-block-end:1em;margin-inline-end:1em;shape-outside:margin-box}:host([align=right]){float:inline-end;margin-block-end:1em;margin-inline-start:1em;shape-outside:margin-box}:host([align=center]){display:block;clear:both;margin-block:1em;margin-inline:auto}.s-product-card-embed-card{display:block}.visible{visibility:visible}.block{display:block}.flow-root{display:flow-root}.s-product-card-embed-card{display:block;max-width:12rem;shape-outside:margin-box}.s-product-card-embed-card custom-salla-product-card{--tw-shadow:0 0 28px 0px rgba(0 0 0 / .1);--tw-shadow-colored:0 0 28px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.s-product-card-embed-card-align-center{margin-left:auto;margin-right:auto}.s-product-card-embed-card-align-left{float:left;margin-right:1ch}.s-product-card-embed-card-align-right{float:right;margin-left:1ch}.s-product-card-embed-fallback{display:block}article:has(salla-product-card-embed)::after{clear:both;display:block;--tw-content:'';content:var(--tw-content)}";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
var PencilRuler = `<!-- Generated by IcoMoon.io -->
|
|
9
9
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
var anime_es = require('./anime.es-BqW8JHZi.js');
|
|
8
8
|
var shoppingBag = require('./shopping-bag-C1gvTVHr.js');
|
|
9
9
|
var Helper = require('./Helper-8U7zlpC3.js');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
var anime_es = require('./anime.es-BqW8JHZi.js');
|
|
8
8
|
var checkCircle2 = require('./check-circle2-BDvlT4_n.js');
|
|
9
9
|
var image = require('./image-BoZ6Hums.js');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
var search = require('./search-c7Aa7lM9.js');
|
|
8
8
|
var cancel = require('./cancel-De6vslRA.js');
|
|
9
9
|
var keyboard_arrow_right = require('./keyboard_arrow_right-BayM_Il2.js');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
const sallaSkeletonCss = "/*!twlt*/:host{display:block}.s-loyalty-skeleton .s-loyalty-prize-item .s-skeleton-wrapper{margin-left:auto;margin-right:auto}.s-skeleton-wrapper{display:block}@keyframes pulse{50%{opacity:.5}}.s-skeleton-wrapper{animation:pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite}.s-skeleton-item{height:100%;width:100%;border-radius:0.375rem;--tw-bg-opacity:1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.s-skeleton-item:is(.dark *){--tw-bg-opacity:1;background-color:rgb(55 65 81 / var(--tw-bg-opacity, 1))}.s-skeleton-item-circular{border-radius:9999px}";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
const sallaTooltipCss = "/*!twlt*/.s-tooltip-container{position:relative;display:inline-block}.s-tooltip-item{position:absolute;transform:translateX(-63%) translateY(-50%);background-color:var(--color-primary);color:var(--color-primary-reverse);bottom:100%;left:50%;text-align:center;border-radius:5px;z-index:1;white-space:nowrap;transition:opacity 0.3s;pointer-events:none;margin:0 0 16px 8px;padding:12px;max-width:150px;width:190px;white-space:normal;opacity:1}.s-tooltip-item::after{content:\"\";position:absolute;bottom:-10px;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:var(--color-primary) transparent transparent transparent}.s-tooltip-item:dir(ltr){transform:translateX(-72%)}.s-tooltip-item--dark{background-color:#555555;color:white;padding:5px 15px;border-radius:8px;font-size:12px;font-weight:normal;max-width:330px;width:max-content}.s-tooltip-item--dark::after{border-color:#555555 transparent transparent transparent}.block{display:block}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
const sallaTrustBadgesCss = "/*!twlt*/.s-trust-badges-wrapper{display:flex;align-items:center}.s-trust-badges-wrapper>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.5rem * var(--tw-space-x-reverse));margin-left:calc(0.5rem * calc(1 - var(--tw-space-x-reverse)))}.s-trust-badges-wrapper:where([dir=\"rtl\"],[dir=\"rtl\"] *)>:not([hidden])~:not([hidden]){--tw-space-x-reverse:1}.s-trust-badges-label{margin-bottom:0.25rem;font-size:0.875rem;line-height:1.25rem}.s-trust-badges-number{font-size:0.875rem;line-height:1.25rem}";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
var keyboard_arrow_down = require('./keyboard_arrow_down-DHJ3FFZq.js');
|
|
8
8
|
var bellRing = require('./bell-ring-BfKPinNo.js');
|
|
9
9
|
var cart = require('./cart-DSvlJXCH.js');
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
var interfaces = require('./interfaces-CRqrf5RX.js');
|
|
8
8
|
|
|
9
9
|
const sallaUserProfileCss = "/*!twlt*/:host{display:block}.form-input{height:2.5rem;width:100%;border-radius:0.375rem;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1));transition-property:color, background-color, border-color, text-decoration-color, fill, stroke;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.form-input:focus{border-color:var(--color-primary);--tw-ring-color:transparent}.form-input:is(.dark *){--tw-border-opacity:1;border-color:rgb(75 85 99 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(75 85 99 / var(--tw-bg-opacity, 1))}.form-input:focus:is(.dark *){border-color:var(--color-primary)}@media (min-width: 640px){.form-input{font-size:0.875rem;line-height:1.25rem}}.s-user-profile-wrapper{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));gap:1.5rem}@media (min-width: 640px){.s-user-profile-wrapper{grid-template-columns:repeat(2, minmax(0, 1fr));gap:2rem}}.s-user-profile-field-label{margin-bottom:0.5rem;display:block;font-size:0.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.s-user-profile-field-error{--tw-text-opacity:1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.s-user-profile-submit{margin-top:1.5rem;width:100%}.s-user-profile-filepond-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center}.s-user-profile-filepond-placeholder-icon{margin-bottom:0.25rem}.s-user-profile-filepond-placeholder-icon svg{height:1.5rem;width:1.5rem;fill:#7c8082}.s-user-profile-skeleton-wrapper{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));grid-template-rows:repeat(3, minmax(0, 1fr));gap:3rem}";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
const sallaWalletCss = "/*!twlt*/@charset \"UTF-8\";.s-wallet-table{min-width:100%}.s-wallet-table-balance-container{display:flex !important;align-items:center !important;justify-content:flex-start !important;gap:1rem}.s-wallet-table-balance-icon{border-radius:50%;width:52px;height:52px;font-size:25px;padding:16px 13px;background:var(--color-primary-reverse);color:var(--color-primary)}.s-wallet-table-empty-state{display:flex;flex-direction:column;align-items:center}.s-wallet-table-empty-state i{font-size:80px;margin:4rem 0 2rem;color:var(--infinte-color)}.s-wallet-table-transaction-status{padding:6px 19px !important;border-radius:20px;width:max-content;display:flex;align-items:center}.s-wallet-table-transaction-status-default{background:#fff6eb;color:#a46f29}.s-wallet-table-transaction-status-cashback{background:#effbf6;color:#00af6c}.s-wallet-table-transaction-status-refund{background:#ecf3fe;color:#5196f3}.s-wallet-table-transaction-status-purchase{background:#feecec;color:#f55157}.s-wallet-table-transaction-status-icons-success{color:#00af6c}.s-wallet-summary{display:flex;align-items:stretch;gap:16px;margin-bottom:28px}.s-wallet-balance-card{flex:0 0 34%;max-width:240px;background:#fff;border-radius:12px;padding:20px;box-sizing:border-box}.s-wallet-balance-mark{width:48px;height:48px;border-radius:9999px;background:var(--color-primary-reverse, #eaf7f0);color:var(--color-primary, #2e8b57);display:inline-flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:12px}.s-wallet-balance-figure{font-size:18px;font-weight:700;color:#1c1c1c}.s-wallet-balance-label{margin-top:2px;font-size:12px;color:#9aa0a6}.s-wallet-amount{display:inline-flex;align-items:center;gap:4px;font-weight:700;white-space:nowrap}.s-wallet-amount-credit{color:#00af6c}.s-wallet-amount-debit{color:#f55157}.s-wallet-transaction-type{display:flex;align-items:center;color:#4b5563}@media screen and (min-width: 768px){.s-wallet-balance-card{display:flex;flex-direction:column;justify-content:center}}@media screen and (max-width: 767px){.s-wallet-summary{gap:12px;margin-bottom:20px}.s-wallet-balance-card{flex:0 0 38%;padding:16px;text-align:center}.s-wallet-balance-mark{margin-bottom:8px}}.absolute{position:absolute}.relative{position:relative}.flex{display:flex}.table{display:table}.hidden{display:none}.items-center{align-items:center}.p-3{padding:0.75rem}.text-center{text-align:center}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.font-bold{font-weight:700}.font-normal{font-weight:400}.text-gray-400{--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-wallet-container>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(0.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0.625rem * var(--tw-space-y-reverse))}@media (min-width: 768px){.s-wallet-container>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem * var(--tw-space-y-reverse))}}.s-wallet-mobile-title{display:inline-block;width:8rem;font-weight:400;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}@media (min-width: 768px){.s-wallet-mobile-title{display:none}}.s-wallet-reference-id{display:none}@media (min-width: 768px){.s-wallet-reference-id{display:inline-block}}.s-wallet-buy-as-gift-icon{margin-left:0.25rem;margin-right:0.25rem;display:inline-block;color:var(--color-primary)}.s-wallet-copy-to-clipboard-button{display:flex;align-items:center}@media (min-width: 768px){.s-wallet-copy-to-clipboard-button{display:none}}.s-wallet-copy-to-clipboard-button salla-button{position:relative}.s-wallet-copy-to-clipboard-button-icon{pointer-events:none;font-size:0.75rem;line-height:1rem}.s-wallet-copy-to-clipboard-button-icon:where([dir=\"ltr\"],[dir=\"ltr\"] *){margin-left:0.25rem}.s-wallet-copy-to-clipboard-button-icon:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-right:0.25rem}@media (min-width: 768px){.s-wallet-status-container{margin-left:0px;margin-right:0px}}.s-wallet-status-container:where([dir=\"ltr\"],[dir=\"ltr\"] *){margin-left:auto}.s-wallet-status-container:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-right:auto}.s-wallet-status-container i{margin-top:0.25rem}.s-wallet-status-container i:where([dir=\"ltr\"],[dir=\"ltr\"] *){margin-right:0.25rem}.s-wallet-status-container i:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-left:0.25rem}.s-wallet-rated-text{--tw-text-opacity:1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.s-wallet-unrated-text{--tw-text-opacity:1;color:rgb(229 231 235 / var(--tw-text-opacity, 1))}.s-wallet-no-content{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center;padding-top:2.5rem;padding-bottom:5rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-wallet-no-content .icon{margin-bottom:1rem;display:flex;height:8rem;width:8rem;align-items:center;justify-content:center;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1));font-size:3rem;line-height:1;--tw-text-opacity:1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.s-wallet-no-content p{margin-bottom:1rem;font-size:1rem;line-height:1.5rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-wallet-table{min-width:100%;border-collapse:separate}@media (min-width: 768px){.s-wallet-table{margin-bottom:-0.75rem;--tw-border-spacing-y:1.25rem;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y)}}.s-wallet-table-head{margin-bottom:1.25rem;display:none;--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}@media (min-width: 768px){.s-wallet-table-head{display:table-header-group}}.s-wallet-table-head-tr-th{padding-left:1.5rem;padding-right:1.5rem;text-align:start;font-size:0.875rem;line-height:1.25rem;font-weight:500;text-transform:uppercase;letter-spacing:0.05em}.s-wallet-table-head-tr-th:where([dir=\"ltr\"],[dir=\"ltr\"] *){text-align:left}.s-wallet-table-head-tr-th:last-child:where([dir=\"ltr\"],[dir=\"ltr\"] *){text-align:right}.s-wallet-table-head-tr-th:where([dir=\"rtl\"],[dir=\"rtl\"] *){text-align:right}.s-wallet-table-head-tr-th:last-child:where([dir=\"rtl\"],[dir=\"rtl\"] *){text-align:left}.s-wallet-table-tbody-tr{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;overflow:hidden;border-radius:var(--s-radius, 0.25rem);border-bottom-width:8px;border-top-width:8px;--tw-border-opacity:1;border-color:rgb(249 250 251 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:0.5rem;transition-property:box-shadow;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:500ms}@media (min-width: 768px){.s-wallet-table-tbody-tr{display:table-row;flex-direction:row;flex-wrap:nowrap;padding:0px}}.s-wallet-table-tbody-tr-td{width:100%;white-space:nowrap;font-size:0.875rem;line-height:1.25rem}.s-wallet-table-tbody-tr-td:first-child{font-weight:700}@media (min-width: 768px){.s-wallet-table-tbody-tr-td{height:5rem;width:auto}.s-wallet-table-tbody-tr-td:last-child{text-align:end}.s-wallet-table-tbody-tr-td:first-child:where([dir=\"ltr\"],[dir=\"ltr\"] *){border-top-left-radius:0.375rem;border-bottom-left-radius:0.375rem}.s-wallet-table-tbody-tr-td:first-child:where([dir=\"rtl\"],[dir=\"rtl\"] *){border-top-right-radius:0.375rem;border-bottom-right-radius:0.375rem}}.s-wallet-table-tbody-tr-td:first-child{font-weight:700}.s-wallet-table-tbody-tr-td-content{position:relative;display:flex;align-items:center;justify-content:space-between;padding-left:0.5rem;padding-right:0.5rem;padding-top:0.25rem;padding-bottom:0.25rem;font-size:0.75rem;line-height:1rem}@media (min-width: 768px){.s-wallet-table-tbody-tr-td-content{padding-left:1.5rem;padding-right:1.5rem;padding-top:1.5rem;padding-bottom:1.5rem}}.s-wallet-table-tbody-tr-td-content:where([dir=\"ltr\"],[dir=\"ltr\"] *){padding-right:0.5rem}.s-wallet-table-tbody-tr-td-content:where([dir=\"rtl\"],[dir=\"rtl\"] *){padding-left:0.5rem}.s-wallet-table-tbody-tr a{position:absolute;top:0px;bottom:0px;display:block;width:100%}.s-wallet-table-tbody-tr a:where([dir=\"ltr\"],[dir=\"ltr\"] *){left:0px}.s-wallet-table-tbody-tr a:where([dir=\"rtl\"],[dir=\"rtl\"] *){right:0px}@media (min-width: 768px){.md\\:mx-0{margin-left:0px;margin-right:0px}.md\\:inline-block{display:inline-block}.md\\:hidden{display:none}}.ltr\\:ml-auto:where([dir=\"ltr\"],[dir=\"ltr\"] *){margin-left:auto}.ltr\\:mr-4:where([dir=\"ltr\"],[dir=\"ltr\"] *){margin-right:1rem}.rtl\\:ml-4:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-left:1rem}.rtl\\:mr-auto:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-right:auto}";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-Brycy0hH.js');
|
|
7
7
|
|
|
8
8
|
const sallaWishlistActionsCss = "/*!twlt*/:host{display:block}.s-wishlist-actions-menu{min-width:200px;inset-inline-end:0;inset-inline-start:auto;list-style:none;margin:0;padding:4px 0;box-shadow:0 4px 16px rgba(0, 0, 0, 0.12)}.s-wishlist-actions-menu-item{display:block;width:100%;padding:10px 16px;text-align:start;font-size:0.875rem;color:#374151;background:transparent;cursor:pointer;white-space:nowrap}.s-wishlist-actions-menu-item:hover{background-color:#f3f4f6;color:var(--color-primary)}.s-wishlist-actions-panel{box-shadow:0 1px 3px rgba(0, 0, 0, 0.08)}.s-wishlist-actions-panel-select-all{user-select:none}.s-wishlist-actions-select-all:indeterminate,.s-wishlist-actions-select-all:indeterminate:hover,.s-wishlist-actions-select-all:indeterminate:focus{background-color:var(--color-primary);border-color:var(--color-primary)}.s-wishlist-actions-select-all:indeterminate::after{content:\"\";position:absolute;top:50%;left:50%;width:10px;height:2px;background:#fff;border:none;transform:translate(-50%, -50%)}.s-wishlist-actions-social-anchor{display:none}h1.s-wishlist-actions-page-title{text-align:start !important}.static{position:static}.absolute{position:absolute}.relative{position:relative}.z-20{z-index:20}.mb-3{margin-bottom:0.75rem}.mt-1{margin-top:0.25rem}.mt-3{margin-top:0.75rem}.flex{display:flex}.cursor-pointer{cursor:pointer}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:0.5rem}.gap-3{gap:0.75rem}.gap-4{gap:1rem}.overflow-hidden{overflow:hidden}.rounded-lg{border-radius:0.5rem}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.p-4{padding:1rem}.text-sm{font-size:0.875rem;line-height:1.25rem}.font-bold{font-weight:700}.text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.shadow{--tw-shadow:0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.outline{outline-style:solid}";
|
|
9
9
|
|
package/dist/cjs/twilight.cjs.js
CHANGED
|
@@ -19,6 +19,11 @@ export class SallaBasketGap {
|
|
|
19
19
|
this.placeholder = '';
|
|
20
20
|
this.fetchGeneration = 0;
|
|
21
21
|
this.isSyncingCart = false;
|
|
22
|
+
/** The recommendations response that produced the rendered list; attributes every event below. */
|
|
23
|
+
this.requestId = null;
|
|
24
|
+
this.listViewTracked = false;
|
|
25
|
+
/** Ids of the last list actually announced, so an unchanged re-fetch is not re-counted. */
|
|
26
|
+
this.lastListViewedKey = '';
|
|
22
27
|
this.cartItemChangedHandler = (response) => {
|
|
23
28
|
const items = response?.data?.cart?.items ?? [];
|
|
24
29
|
const ids = items.map((i) => String(i.product_id)).filter(Boolean);
|
|
@@ -47,6 +52,7 @@ export class SallaBasketGap {
|
|
|
47
52
|
cartItem,
|
|
48
53
|
cartId: event?.detail?.data?.id,
|
|
49
54
|
source: 'basket_gap',
|
|
55
|
+
request_id: this.requestId,
|
|
50
56
|
}]);
|
|
51
57
|
};
|
|
52
58
|
salla.lang.onLoaded(() => {
|
|
@@ -91,6 +97,64 @@ export class SallaBasketGap {
|
|
|
91
97
|
document.lazyLoadInstance?.update(this.host.querySelectorAll('.lazy'));
|
|
92
98
|
this.positionUnderCartItems();
|
|
93
99
|
}
|
|
100
|
+
componentDidRender() {
|
|
101
|
+
if (!this.products.length || this.listViewTracked || this.intersectionObserver)
|
|
102
|
+
return;
|
|
103
|
+
// The section is injected below the cart items, so it is usually out of view on
|
|
104
|
+
// load — an impression is only real once it is actually on screen.
|
|
105
|
+
const observer = new IntersectionObserver((entries) => {
|
|
106
|
+
// A callback queued before disconnect() still runs. Without this check a
|
|
107
|
+
// callback left over from the list BEFORE a cart-driven refetch would announce
|
|
108
|
+
// the new list before it is rendered, disconnect the new observer (the old code
|
|
109
|
+
// disconnected whichever observer was current, not the one that fired) and mark
|
|
110
|
+
// the impression done — so the new list never got a real one.
|
|
111
|
+
if (this.intersectionObserver !== observer)
|
|
112
|
+
return;
|
|
113
|
+
if (!entries.some((entry) => entry.isIntersecting))
|
|
114
|
+
return;
|
|
115
|
+
this.listViewTracked = true;
|
|
116
|
+
observer.disconnect();
|
|
117
|
+
this.intersectionObserver = undefined;
|
|
118
|
+
this.emitListViewed();
|
|
119
|
+
}, { threshold: 0.1 });
|
|
120
|
+
this.intersectionObserver = observer;
|
|
121
|
+
observer.observe(this.host);
|
|
122
|
+
}
|
|
123
|
+
emitListViewed() {
|
|
124
|
+
// A cart change re-fetches, and the section is usually still on screen, so the
|
|
125
|
+
// observer re-arms and fires immediately. Only a genuinely different list is a new
|
|
126
|
+
// impression.
|
|
127
|
+
const key = this.products.map((product) => product.id).join(',');
|
|
128
|
+
if (key === this.lastListViewedKey)
|
|
129
|
+
return;
|
|
130
|
+
this.lastListViewedKey = key;
|
|
131
|
+
salla.event.emit('salla-basket-gap::list.viewed', {
|
|
132
|
+
products: this.products,
|
|
133
|
+
source: 'basket_gap',
|
|
134
|
+
request_id: this.requestId,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* One delegated listener per card rather than a handler on each anchor: the click is
|
|
139
|
+
* only a product click when it lands on a product link, not on the add button or the
|
|
140
|
+
* offer badge.
|
|
141
|
+
*/
|
|
142
|
+
handleCardClick(event, product) {
|
|
143
|
+
// Duck-typed rather than `instanceof Element`: that global does not exist in
|
|
144
|
+
// Stencil's non-browser runtime, where the check would throw instead of skip.
|
|
145
|
+
const target = event.target;
|
|
146
|
+
if (typeof target?.closest === 'function' && target.closest('a[href]')) {
|
|
147
|
+
this.emitProductClicked(product);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
emitProductClicked(product) {
|
|
151
|
+
salla.event.emit('salla-basket-gap::product.clicked', [{
|
|
152
|
+
product,
|
|
153
|
+
position: this.products.indexOf(product) + 1,
|
|
154
|
+
source: 'basket_gap',
|
|
155
|
+
request_id: this.requestId,
|
|
156
|
+
}]);
|
|
157
|
+
}
|
|
94
158
|
/**
|
|
95
159
|
* Cart item rows on the storefront cart page (excluding the order-options block).
|
|
96
160
|
* Kept defensive: themes that don't use the `form[id^="item-"]` pattern return none.
|
|
@@ -156,6 +220,8 @@ export class SallaBasketGap {
|
|
|
156
220
|
this.host.addEventListener('success', this.addButtonSuccessHandler);
|
|
157
221
|
}
|
|
158
222
|
disconnectedCallback() {
|
|
223
|
+
this.intersectionObserver?.disconnect();
|
|
224
|
+
this.intersectionObserver = undefined;
|
|
159
225
|
salla.event.off('cart::item.added', this.cartItemChangedHandler);
|
|
160
226
|
salla.event.off('cart::item.deleted', this.cartItemChangedHandler);
|
|
161
227
|
salla.event.off('cart::before.add.item', this.beforeAddItemHandler);
|
|
@@ -183,6 +249,8 @@ export class SallaBasketGap {
|
|
|
183
249
|
.then((ids) => {
|
|
184
250
|
if (generation !== this.fetchGeneration)
|
|
185
251
|
return;
|
|
252
|
+
// Held until the products it describes are actually rendered — see fetchProducts.
|
|
253
|
+
const requestId = ids._requestId || null;
|
|
186
254
|
// Pass objectIDs as the authoritative cart list so the filter is not
|
|
187
255
|
// affected by stale storage when called from a live cart event.
|
|
188
256
|
const cartIds = this.getCartProductIds(objectIDs);
|
|
@@ -191,7 +259,7 @@ export class SallaBasketGap {
|
|
|
191
259
|
this.canRender = false;
|
|
192
260
|
return;
|
|
193
261
|
}
|
|
194
|
-
return this.fetchProducts(filteredIds.slice(0, this.limit), generation);
|
|
262
|
+
return this.fetchProducts(filteredIds.slice(0, this.limit), generation, requestId);
|
|
195
263
|
})
|
|
196
264
|
.catch(() => {
|
|
197
265
|
if (generation !== this.fetchGeneration)
|
|
@@ -204,7 +272,7 @@ export class SallaBasketGap {
|
|
|
204
272
|
this.isLoading = false;
|
|
205
273
|
});
|
|
206
274
|
}
|
|
207
|
-
fetchProducts(ids, generation) {
|
|
275
|
+
fetchProducts(ids, generation, requestId = null) {
|
|
208
276
|
return salla.api.withoutNotifier(() => salla.product.api.fetch({
|
|
209
277
|
source: 'selected',
|
|
210
278
|
source_value: ids,
|
|
@@ -212,7 +280,17 @@ export class SallaBasketGap {
|
|
|
212
280
|
})).then((response) => {
|
|
213
281
|
if (generation !== this.fetchGeneration)
|
|
214
282
|
return;
|
|
283
|
+
// List, id and impression state flip together. Assigning the id earlier left a
|
|
284
|
+
// window where an observer already watching an unscrolled section could fire and
|
|
285
|
+
// report the PREVIOUS products under the NEW id — and mark the impression done,
|
|
286
|
+
// so the real one for the new list never fired.
|
|
215
287
|
this.products = response?.data ?? [];
|
|
288
|
+
this.requestId = requestId;
|
|
289
|
+
// A refreshed list is a new impression: the cart changed and the shopper sees a
|
|
290
|
+
// different set of products, so a pending observer is re-armed by componentDidRender.
|
|
291
|
+
this.listViewTracked = false;
|
|
292
|
+
this.intersectionObserver?.disconnect();
|
|
293
|
+
this.intersectionObserver = undefined;
|
|
216
294
|
this.canRender = this.products.length > 0;
|
|
217
295
|
}).catch(() => {
|
|
218
296
|
if (generation !== this.fetchGeneration)
|
|
@@ -240,7 +318,7 @@ export class SallaBasketGap {
|
|
|
240
318
|
}
|
|
241
319
|
getProductCard(product) {
|
|
242
320
|
const discountLabel = this.getDiscountLabel(product);
|
|
243
|
-
return (h("div", { key: product.id, class: "s-basket-gap-card" }, h("a", { href: product.url, class: "s-basket-gap-card-image" }, h("img", { class: "lazy", src: this.placeholder, "data-src": product.image?.url, alt: product.image?.alt || product.name })), h("div", { class: "s-basket-gap-card-info" }, h("h3", { class: "s-basket-gap-card-name" }, h("a", { href: product.url }, product.name)), product.is_on_sale
|
|
321
|
+
return (h("div", { key: product.id, class: "s-basket-gap-card", onClick: (event) => this.handleCardClick(event, product) }, h("a", { href: product.url, class: "s-basket-gap-card-image" }, h("img", { class: "lazy", src: this.placeholder, "data-src": product.image?.url, alt: product.image?.alt || product.name })), h("div", { class: "s-basket-gap-card-info" }, h("h3", { class: "s-basket-gap-card-name" }, h("a", { href: product.url }, product.name)), product.is_on_sale
|
|
244
322
|
? h("div", { class: "s-basket-gap-card-sale-price" }, h("span", { innerHTML: salla.money(product.sale_price) }), h("del", { innerHTML: salla.money(product.regular_price) }))
|
|
245
323
|
: h("span", { class: "s-basket-gap-card-price", innerHTML: salla.money(product.price) }), product.weight_label && (h("span", { class: "s-basket-gap-card-weight" }, this.weightLabel, " ", product.weight_label))), h("div", { class: "s-basket-gap-card-actions" }, (product.promotion_title || product.discount_ends || product.is_on_sale) && (h("div", { class: "s-basket-gap-card-offer" }, h("i", { class: "sicon-gift" }), discountLabel && h("span", null, discountLabel), product.discount_ends && [
|
|
246
324
|
// auto-segments drops the days box under 24h left, and the hours box under 1h.
|
|
@@ -19,6 +19,8 @@ export class SallaBoughtTogether {
|
|
|
19
19
|
this.buyTogetherFor = salla.lang.get('pages.products.buy_together_for');
|
|
20
20
|
this.resolvedProductId = 0;
|
|
21
21
|
this.listViewTracked = false;
|
|
22
|
+
/** The recommendations response that produced the rendered list; attributes every event below. */
|
|
23
|
+
this.requestId = null;
|
|
22
24
|
salla.lang.onLoaded(() => {
|
|
23
25
|
this.title = salla.lang.get('pages.products.bought_together_title');
|
|
24
26
|
this.subtitle = salla.lang.get('pages.products.bought_together_subtitle');
|
|
@@ -45,6 +47,7 @@ export class SallaBoughtTogether {
|
|
|
45
47
|
this.canRender = false;
|
|
46
48
|
return;
|
|
47
49
|
}
|
|
50
|
+
this.requestId = recommendedIds._requestId || null;
|
|
48
51
|
const ids = [String(this.resolvedProductId), ...recommendedIds.slice(0, this.limit)];
|
|
49
52
|
return salla.product.fetch({ source: 'selected', source_value: ids });
|
|
50
53
|
})
|
|
@@ -94,6 +97,8 @@ export class SallaBoughtTogether {
|
|
|
94
97
|
.filter(p => !this.isMainProduct(p.id));
|
|
95
98
|
salla.event.emit('salla-bought-together::list.viewed', {
|
|
96
99
|
products: recommendedProducts,
|
|
100
|
+
source: 'pdp_fbt',
|
|
101
|
+
request_id: this.requestId,
|
|
97
102
|
});
|
|
98
103
|
}
|
|
99
104
|
isMainProduct(id) {
|
|
@@ -105,7 +110,12 @@ export class SallaBoughtTogether {
|
|
|
105
110
|
return index === -1 ? -1 : index + 1;
|
|
106
111
|
}
|
|
107
112
|
emitProductClicked(product, position) {
|
|
108
|
-
salla.event.emit('salla-bought-together::product.clicked', [{
|
|
113
|
+
salla.event.emit('salla-bought-together::product.clicked', [{
|
|
114
|
+
product,
|
|
115
|
+
position,
|
|
116
|
+
source: 'pdp_fbt',
|
|
117
|
+
request_id: this.requestId,
|
|
118
|
+
}]);
|
|
109
119
|
}
|
|
110
120
|
toggleProduct(id) {
|
|
111
121
|
const next = new Set(this.selectedIds);
|
|
@@ -146,6 +156,7 @@ export class SallaBoughtTogether {
|
|
|
146
156
|
position,
|
|
147
157
|
cartItem,
|
|
148
158
|
cartId: response?.data?.id,
|
|
159
|
+
request_id: this.requestId,
|
|
149
160
|
}]);
|
|
150
161
|
}
|
|
151
162
|
}
|
|
@@ -51,6 +51,7 @@ function toNumericId(value) {
|
|
|
51
51
|
function fetchRecommendations(path, params) {
|
|
52
52
|
const url = new URL(getRecommendationsUrl(path));
|
|
53
53
|
Object.entries(params).forEach(([key, value]) => url.searchParams.set(key, value));
|
|
54
|
+
let requestId = null;
|
|
54
55
|
// Native fetch (not salla.api) so only the explicit allow-listed headers are
|
|
55
56
|
// sent — no axios default headers to trip the recommendations CORS preflight.
|
|
56
57
|
// Best-effort feature: callers hide their section via .catch(), so no notifier.
|
|
@@ -65,9 +66,23 @@ function fetchRecommendations(path, params) {
|
|
|
65
66
|
if (!response.ok) {
|
|
66
67
|
throw new Error(`Recommendations request failed: ${response.status}`);
|
|
67
68
|
}
|
|
69
|
+
// Going around `salla.api` also goes around the axios response interceptor that
|
|
70
|
+
// harvests this id for `salla.recommendations`, so it is captured here instead.
|
|
71
|
+
// The recommendations worker generates one when the client sends none and
|
|
72
|
+
// CORS-exposes it, so it is present on every response.
|
|
73
|
+
requestId = response.headers?.get?.('s-request-id') ?? null;
|
|
68
74
|
return response.json();
|
|
69
75
|
})
|
|
70
|
-
.then((payload) =>
|
|
76
|
+
.then((payload) => {
|
|
77
|
+
const ids = extractRecommendationIds(payload);
|
|
78
|
+
// Rides along on the id list so callers keep their `string[]` contract, and the
|
|
79
|
+
// section that renders these ids can attribute its events to the response that
|
|
80
|
+
// produced them. Non-enumerable, so the value still behaves as a plain array.
|
|
81
|
+
if (requestId) {
|
|
82
|
+
Object.defineProperty(ids, '_requestId', { value: requestId });
|
|
83
|
+
}
|
|
84
|
+
return ids;
|
|
85
|
+
});
|
|
71
86
|
}
|
|
72
87
|
export function fetchCartBoughtTogether(productIds) {
|
|
73
88
|
const ids = productIds
|