@salla.sa/twilight-components 2.14.587 → 2.14.589
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/{filepond-BF8Q2gfH.js → filepond-BbRL5Spe.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-CDZXoVge.js → filepond-plugin-file-poster-DVUBjaQx.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-M6dKiRMH.js → filepond-plugin-file-validate-size-BR7SoIq0.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-BSTQI9uG.js → filepond-plugin-file-validate-type-CEkMfiUA.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-h3hJm3qv.js → filepond-plugin-image-edit-p-XQj23Q.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-CXkq3_oT.js → filepond-plugin-image-exif-orientation-DeRO_gvX.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-BP4-WdE7.js → filepond-plugin-image-preview-Bfm8Swyp.js} +1 -1
- package/dist/cjs/{index-DN51eLtp.js → index-CfGnMoB7.js} +4 -4
- package/dist/cjs/{intlTelInput-Cgao3Jc8.js → intlTelInput-Pqo18emd.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 +1 -1
- 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 +1 -1
- package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +30 -18
- 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 +3 -3
- package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
- package/dist/cjs/salla-cookies-bar.cjs.entry.js +123 -24
- 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 +21 -5
- 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-BAqDsAyV.js → vanilla-picker-DWuMUfiW.js} +1 -1
- package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.js +29 -17
- package/dist/collection/components/salla-conditional-offer/salla-conditional-offer.css +2 -13
- package/dist/collection/components/salla-conditional-offer/salla-conditional-offer.js +1 -1
- package/dist/collection/components/salla-cookies-bar/salla-cookies-bar.css +3 -0
- package/dist/collection/components/salla-cookies-bar/salla-cookies-bar.js +121 -22
- package/dist/collection/components/salla-products-list/salla-products-list.css +3 -0
- package/dist/collection/components/salla-products-list/salla-products-list.js +19 -3
- package/dist/components/index.js +4 -4
- package/dist/components/salla-bullet-delivery.js +29 -17
- package/dist/components/salla-conditional-offer.js +2 -2
- package/dist/components/salla-cookies-bar.js +122 -23
- package/dist/components/salla-products-list2.js +20 -4
- package/dist/docs.json +1 -1
- package/dist/esm/{filepond-Xi2-pJA0.js → filepond-CJqzOtq7.js} +1 -1
- package/dist/esm/{filepond-plugin-file-poster-DduYF-sA.js → filepond-plugin-file-poster-CPydcEjJ.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-BkPirl0j.js → filepond-plugin-file-validate-size-Yy4pNy1Q.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-BIX8_1CI.js → filepond-plugin-file-validate-type-Ck1P2E4e.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit--1Sv5xxH.js → filepond-plugin-image-edit-DEUmnuGf.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-Dss_DgF7.js → filepond-plugin-image-exif-orientation-BPgJye8E.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-CaA89Pn1.js → filepond-plugin-image-preview-CqUSx6BO.js} +1 -1
- package/dist/esm/{index-BtdIfJF8.js → index-BnDYuqv2.js} +4 -4
- package/dist/esm/{intlTelInput-DxHIK3cL.js → intlTelInput-Z8OsAFtr.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 +1 -1
- 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 +1 -1
- package/dist/esm/salla-bullet-delivery_3.entry.js +30 -18
- 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 +3 -3
- package/dist/esm/salla-contacts.entry.js +1 -1
- package/dist/esm/salla-cookies-bar.entry.js +123 -24
- 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 +21 -5
- 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-CdDrNNAM.js → vanilla-picker-DnAUrfGC.js} +1 -1
- package/dist/twilight/{p-b5b70b36.entry.js → p-00bc0e76.entry.js} +1 -1
- package/dist/twilight/{p-e3a2bf70.entry.js → p-018629e9.entry.js} +1 -1
- package/dist/twilight/{p-49d4a3c2.entry.js → p-085aac95.entry.js} +1 -1
- package/dist/twilight/{p-98c519f7.entry.js → p-08a8a1ff.entry.js} +1 -1
- package/dist/twilight/{p-0d58eb8e.entry.js → p-0b53b377.entry.js} +1 -1
- package/dist/twilight/{p-a0ad482e.entry.js → p-0e1f8e61.entry.js} +1 -1
- package/dist/twilight/{p-565f74fe.entry.js → p-0ecf936e.entry.js} +1 -1
- package/dist/twilight/{p-26479dee.entry.js → p-0efb20f7.entry.js} +1 -1
- package/dist/twilight/{p-15b4d61d.entry.js → p-0f5846fe.entry.js} +1 -1
- package/dist/twilight/{p-d3a3216f.entry.js → p-11a1c557.entry.js} +1 -1
- package/dist/twilight/{p-b492dd6a.entry.js → p-11b351be.entry.js} +1 -1
- package/dist/twilight/{p-506f1716.entry.js → p-152cac66.entry.js} +1 -1
- package/dist/twilight/{p-2a5844fa.entry.js → p-171e4a2f.entry.js} +1 -1
- package/dist/twilight/{p-1f48b187.entry.js → p-179c76df.entry.js} +1 -1
- package/dist/twilight/{p-e583bb7d.entry.js → p-1a598e9b.entry.js} +1 -1
- package/dist/twilight/{p-84588994.entry.js → p-1bafeac8.entry.js} +1 -1
- package/dist/twilight/{p-f3cd8cf5.entry.js → p-1c812d90.entry.js} +1 -1
- package/dist/twilight/{p-a6c0154a.entry.js → p-1d1315d7.entry.js} +1 -1
- package/dist/twilight/{p-c64aaef9.entry.js → p-2cdcd70d.entry.js} +1 -1
- package/dist/twilight/{p-ae543e87.entry.js → p-3319b19b.entry.js} +1 -1
- package/dist/twilight/{p-340621ed.entry.js → p-331fe074.entry.js} +1 -1
- package/dist/twilight/{p-0b975744.entry.js → p-343a9ec3.entry.js} +1 -1
- package/dist/twilight/{p-cf1ea038.entry.js → p-35dabed0.entry.js} +1 -1
- package/dist/twilight/{p-09f65942.entry.js → p-3771c21e.entry.js} +1 -1
- package/dist/twilight/{p-7944abc5.entry.js → p-3b14f3d4.entry.js} +1 -1
- package/dist/twilight/{p-a9857ca3.entry.js → p-3d08b459.entry.js} +1 -1
- package/dist/twilight/p-3jS5Dm-u.js +9 -0
- package/dist/twilight/{p-c61fce7a.entry.js → p-4262b4d7.entry.js} +1 -1
- package/dist/twilight/{p-c317b529.entry.js → p-444e6c0b.entry.js} +1 -1
- package/dist/twilight/{p-bce91b93.entry.js → p-45b9c237.entry.js} +1 -1
- package/dist/twilight/{p-93064a1f.entry.js → p-47d94d77.entry.js} +1 -1
- package/dist/twilight/{p-3b566d5d.entry.js → p-483551e7.entry.js} +1 -1
- package/dist/twilight/{p-a244a4f2.entry.js → p-4d0df0fe.entry.js} +1 -1
- package/dist/twilight/{p-32f6ea11.entry.js → p-4e50bc09.entry.js} +1 -1
- package/dist/twilight/{p-799027c5.entry.js → p-53dc0615.entry.js} +1 -1
- package/dist/twilight/{p-f4d02219.entry.js → p-5537738b.entry.js} +1 -1
- package/dist/twilight/{p-d720d65e.entry.js → p-56f0cfcb.entry.js} +1 -1
- package/dist/twilight/{p-9d3d89f8.entry.js → p-612fb2e8.entry.js} +1 -1
- package/dist/twilight/p-648a4d8d.entry.js +4 -0
- package/dist/twilight/{p-bd84e964.entry.js → p-652ab33d.entry.js} +1 -1
- package/dist/twilight/{p-67a08021.entry.js → p-661755d7.entry.js} +1 -1
- package/dist/twilight/{p-b1f146d6.entry.js → p-66ae8f3b.entry.js} +1 -1
- package/dist/twilight/{p-357c7c69.entry.js → p-67e24689.entry.js} +1 -1
- package/dist/twilight/{p-be824cd2.entry.js → p-6ca5c1b6.entry.js} +1 -1
- package/dist/twilight/{p-20edfe7d.entry.js → p-6f26c1cd.entry.js} +1 -1
- package/dist/twilight/{p-e9ab3ead.entry.js → p-700f2c8b.entry.js} +1 -1
- package/dist/twilight/{p-fcbd0395.entry.js → p-71c70e04.entry.js} +1 -1
- package/dist/twilight/{p-60a35744.entry.js → p-721b6019.entry.js} +1 -1
- package/dist/twilight/{p-6ed2c97c.entry.js → p-760d1b6c.entry.js} +1 -1
- package/dist/twilight/{p-cbe828f7.entry.js → p-7c9e88d3.entry.js} +1 -1
- package/dist/twilight/{p-b677ddca.entry.js → p-7ccdd251.entry.js} +1 -1
- package/dist/twilight/{p-f97885ed.entry.js → p-7eeb788a.entry.js} +1 -1
- package/dist/twilight/{p-5f7532b3.entry.js → p-80228706.entry.js} +1 -1
- package/dist/twilight/{p-22bf309f.entry.js → p-80ead7f0.entry.js} +1 -1
- package/dist/twilight/{p-56f3be75.entry.js → p-81cdd5c5.entry.js} +1 -1
- package/dist/twilight/{p-5710d065.entry.js → p-827fa966.entry.js} +1 -1
- package/dist/twilight/{p-7c1d3130.entry.js → p-85f0dcd7.entry.js} +1 -1
- package/dist/twilight/{p-DwNLIufU.js → p-8Y4Ctfsa.js} +1 -1
- package/dist/twilight/{p-41b0367e.entry.js → p-8cf71ac9.entry.js} +1 -1
- package/dist/twilight/{p-24ebf9d6.entry.js → p-8e679d21.entry.js} +1 -1
- package/dist/twilight/{p-cec14ad5.entry.js → p-8ef3ef7d.entry.js} +1 -1
- package/dist/twilight/{p-c1caf8cb.entry.js → p-9932f7a0.entry.js} +1 -1
- package/dist/twilight/{p-5d8cc35c.entry.js → p-9bc5c3d5.entry.js} +1 -1
- package/dist/twilight/{p-4e5bde43.entry.js → p-9fd926a2.entry.js} +1 -1
- package/dist/twilight/{p-Bc26pjHG.js → p-B7eX2j-t.js} +1 -1
- package/dist/twilight/{p-DetotZcx.js → p-BXv9XzTR.js} +1 -1
- package/dist/twilight/{p-BtdIfJF8.js → p-BnDYuqv2.js} +2 -2
- package/dist/twilight/{p-ShShhGeu.js → p-CR5J1D0q.js} +1 -1
- package/dist/twilight/{p-BjKw2hiE.js → p-DTfPuMCT.js} +1 -1
- package/dist/twilight/{p-CKp7_rq_.js → p-DV1rxosP.js} +1 -1
- package/dist/twilight/p-DpkirgB4.js +9 -0
- package/dist/twilight/{p-7Z5IAwod.js → p-G2sLbl_C.js} +1 -1
- package/dist/twilight/{p-8dac352c.entry.js → p-aac26dda.entry.js} +1 -1
- package/dist/twilight/{p-072455fd.entry.js → p-ad7814d7.entry.js} +1 -1
- package/dist/twilight/{p-a71b30fa.entry.js → p-ae8b1d8b.entry.js} +1 -1
- package/dist/twilight/p-afc3d17b.entry.js +4 -0
- package/dist/twilight/{p-f32f8e51.entry.js → p-ba5f879e.entry.js} +1 -1
- package/dist/twilight/{p-773de9cc.entry.js → p-ba61073e.entry.js} +1 -1
- package/dist/twilight/{p-bbfa65b5.entry.js → p-bd559920.entry.js} +1 -1
- package/dist/twilight/{p-5afc95a7.entry.js → p-bdf47e97.entry.js} +1 -1
- package/dist/twilight/{p-3212b345.entry.js → p-bf7e7835.entry.js} +1 -1
- package/dist/twilight/{p-c3d67706.entry.js → p-c0304211.entry.js} +1 -1
- package/dist/twilight/{p-e519da79.entry.js → p-c2858bed.entry.js} +1 -1
- package/dist/twilight/{p-8bf2a280.entry.js → p-c5948d07.entry.js} +1 -1
- package/dist/twilight/{p-c495c15f.entry.js → p-c895701a.entry.js} +1 -1
- package/dist/twilight/{p-b199478b.entry.js → p-cbeff415.entry.js} +1 -1
- package/dist/twilight/{p-97ead14b.entry.js → p-cdad2ba2.entry.js} +1 -1
- package/dist/twilight/{p-573899dc.entry.js → p-cfe6fbe3.entry.js} +1 -1
- package/dist/twilight/{p-14545c2e.entry.js → p-cff5dd0b.entry.js} +1 -1
- package/dist/twilight/{p-80a7d4af.entry.js → p-d38ae081.entry.js} +1 -1
- package/dist/twilight/{p-89cbcd3c.entry.js → p-d38e101f.entry.js} +1 -1
- package/dist/twilight/{p-c571954d.entry.js → p-dcaaa19e.entry.js} +1 -1
- package/dist/twilight/{p-646d3f8f.entry.js → p-df3feae1.entry.js} +1 -1
- package/dist/twilight/{p-58a66109.entry.js → p-df933610.entry.js} +1 -1
- package/dist/twilight/{p-3b37eccc.entry.js → p-dfdd4c78.entry.js} +1 -1
- package/dist/twilight/p-e0b0e90f.entry.js +4 -0
- package/dist/twilight/{p-af6932b0.entry.js → p-e1a8f943.entry.js} +1 -1
- package/dist/twilight/{p-e9174da7.entry.js → p-e49ce881.entry.js} +1 -1
- package/dist/twilight/{p-f318c73c.entry.js → p-ea8379b8.entry.js} +1 -1
- package/dist/twilight/{p-344e9465.entry.js → p-eb0c5e39.entry.js} +1 -1
- package/dist/twilight/{p-20b122f5.entry.js → p-ed7c4f53.entry.js} +1 -1
- package/dist/twilight/{p-6de41bdc.entry.js → p-ef5a0e71.entry.js} +1 -1
- package/dist/twilight/{p-9661b909.entry.js → p-f5ccd5d1.entry.js} +1 -1
- package/dist/twilight/p-f70bf6b0.entry.js +4 -0
- package/dist/twilight/{p-80818114.entry.js → p-fdb16a84.entry.js} +1 -1
- package/dist/twilight/{p-410af88a.entry.js → p-ff5362e3.entry.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-bullet-delivery/salla-bullet-delivery.d.ts +4 -0
- package/dist/types/components/salla-cookies-bar/salla-cookies-bar.d.ts +53 -11
- package/dist/types/components/salla-products-list/salla-products-list.d.ts +1 -0
- package/package.json +5 -5
- package/dist/twilight/p-56b50c65.entry.js +0 -4
- package/dist/twilight/p-6b9c1c5d.entry.js +0 -4
- package/dist/twilight/p-BiGEqBIB.js +0 -9
- package/dist/twilight/p-D9PZqqzV.js +0 -9
- package/dist/twilight/p-d46adde4.entry.js +0 -4
- package/dist/twilight/p-df4e13e9.entry.js +0 -4
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
6
|
+
var index = require('./index-CfGnMoB7.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-CfGnMoB7.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-CfGnMoB7.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-CfGnMoB7.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-CfGnMoB7.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-CfGnMoB7.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
|
@@ -408,8 +408,9 @@ export class SallaBulletDelivery {
|
|
|
408
408
|
else {
|
|
409
409
|
this.activeTab = 'address';
|
|
410
410
|
}
|
|
411
|
-
//
|
|
412
|
-
this.
|
|
411
|
+
// Map SDK + token only when the opening view actually renders the map (fire-and-forget).
|
|
412
|
+
if (this.needsMap)
|
|
413
|
+
this.fetchAddressToken();
|
|
413
414
|
// Load countries always; load saved addresses only when address tab is active (lazy tab data).
|
|
414
415
|
if (this.isLoggedIn && this.activeTab === "address") {
|
|
415
416
|
this.loadingSavedAddresses = true;
|
|
@@ -1257,24 +1258,23 @@ export class SallaBulletDelivery {
|
|
|
1257
1258
|
}
|
|
1258
1259
|
// ─── Map methods ───
|
|
1259
1260
|
async fetchAddressToken() {
|
|
1260
|
-
|
|
1261
|
+
// The token and Maps JS only serve map mode (setting on + maps key); otherwise they are ~180KB of unused JS.
|
|
1262
|
+
if (!this.canUseMap || this.addressToken || this.loadingToken)
|
|
1261
1263
|
return;
|
|
1262
1264
|
this.loadingToken = true;
|
|
1263
1265
|
try {
|
|
1264
1266
|
const mapsKey = salla.config.get('store.settings.keys.maps');
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
window.addEventListener('load', bootMaps, { once: true });
|
|
1277
|
-
}
|
|
1267
|
+
const bootMaps = () => import('@salla.sa/ui-google-map-render')
|
|
1268
|
+
.then(({ load }) => load({
|
|
1269
|
+
key: mapsKey,
|
|
1270
|
+
libraries: ['marker', 'places'],
|
|
1271
|
+
language: salla.config.get('user.language_code') || 'ar',
|
|
1272
|
+
}))
|
|
1273
|
+
.catch(err => log('Failed to load Google Maps SDK', err));
|
|
1274
|
+
if (document.readyState === 'complete')
|
|
1275
|
+
bootMaps();
|
|
1276
|
+
else
|
|
1277
|
+
window.addEventListener('load', bootMaps, { once: true });
|
|
1278
1278
|
this.addressToken = await bulletDeliveryAPI.getAddressToken();
|
|
1279
1279
|
}
|
|
1280
1280
|
catch {
|
|
@@ -1351,7 +1351,17 @@ export class SallaBulletDelivery {
|
|
|
1351
1351
|
return Salla.config.get('store.settings.bullet_delivery.settings.map_enabled');
|
|
1352
1352
|
}
|
|
1353
1353
|
get isMapModeAvailable() {
|
|
1354
|
-
return this.
|
|
1354
|
+
return this.canUseMap && !!this.addressToken;
|
|
1355
|
+
}
|
|
1356
|
+
/** Store config allows map mode (independent of whether the token has loaded yet). */
|
|
1357
|
+
get canUseMap() {
|
|
1358
|
+
return !!this.isMapSettingEnabled && !!salla.config.get('store.settings.keys.maps');
|
|
1359
|
+
}
|
|
1360
|
+
/** The current view will render <gmap-map>: guest delivery tab, or the add-address view. */
|
|
1361
|
+
get needsMap() {
|
|
1362
|
+
return (this.canUseMap &&
|
|
1363
|
+
this.activeTab === 'address' &&
|
|
1364
|
+
(this.viewMode === 'add-address' || !this.isLoggedIn));
|
|
1355
1365
|
}
|
|
1356
1366
|
/** In map mode and a pin has already been dropped (as opposed to still using the dropdowns), regardless of login state. */
|
|
1357
1367
|
get isMapPick() {
|
|
@@ -1416,6 +1426,8 @@ export class SallaBulletDelivery {
|
|
|
1416
1426
|
this.selectedCountry = this.countries[0];
|
|
1417
1427
|
}
|
|
1418
1428
|
}
|
|
1429
|
+
if (tab === "address" && this.needsMap)
|
|
1430
|
+
this.fetchAddressToken();
|
|
1419
1431
|
// Load appropriate data when switching tabs if country is selected
|
|
1420
1432
|
if (this.selectedCountry) {
|
|
1421
1433
|
if (tab === "branch") {
|
|
@@ -16,15 +16,9 @@
|
|
|
16
16
|
.mb-1 {
|
|
17
17
|
margin-bottom: 0.25rem;
|
|
18
18
|
}
|
|
19
|
-
.block {
|
|
20
|
-
display: block;
|
|
21
|
-
}
|
|
22
19
|
.flex {
|
|
23
20
|
display: flex;
|
|
24
21
|
}
|
|
25
|
-
.hidden {
|
|
26
|
-
display: none;
|
|
27
|
-
}
|
|
28
22
|
.h-12 {
|
|
29
23
|
height: 3rem;
|
|
30
24
|
}
|
|
@@ -157,13 +151,13 @@
|
|
|
157
151
|
display: flex;
|
|
158
152
|
height: 8rem;
|
|
159
153
|
width: 100%;
|
|
160
|
-
flex-wrap: wrap;
|
|
161
154
|
align-items: center;
|
|
162
|
-
|
|
155
|
+
overflow-x: auto;
|
|
163
156
|
}
|
|
164
157
|
@media (min-width: 768px) {
|
|
165
158
|
.s-conditional-offer-progress-container {
|
|
166
159
|
height: 4rem;
|
|
160
|
+
overflow: visible;
|
|
167
161
|
}
|
|
168
162
|
}
|
|
169
163
|
.s-conditional-offer-item-avatar-content {
|
|
@@ -287,8 +281,3 @@
|
|
|
287
281
|
display: flex;
|
|
288
282
|
align-items: center;
|
|
289
283
|
}
|
|
290
|
-
@media (min-width: 640px) {
|
|
291
|
-
.sm\:block {
|
|
292
|
-
display: block;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
@@ -136,7 +136,7 @@ export class SallaConditionalOffer {
|
|
|
136
136
|
h("div", { key: "progress-line", class: "s-conditional-offer-progress-line-container" }, h("div", { class: "s-conditional-offer-progress-line-inactive" }), h("div", { class: "s-conditional-offer-progress-line-active", style: { width: `${progressPercentage}%` } })),
|
|
137
137
|
h("div", { key: "checkpoint", class: `s-conditional-offer-checkpoint ${isActive ? "s-conditional-offer-active-checkpoint" : ""}` }, h("div", { class: `s-conditional-offer-item-avatar-content ${isActive ? "active" : ""}`, id: discount.type === DiscountType.FREE_PRODUCT ? `avatar-product-${discount.value}` : `avatar-${discount.value ?? index}` }, this.products && this.getCheckpointContent(discount)), this.products && discount.type === DiscountType.FREE_PRODUCT && this.renderTooltip(discount), h("div", { class: `s-conditional-offer-checkpoint-label ${isActive ? "active" : ""}`, innerHTML: this.getOfferType(discount) }))
|
|
138
138
|
] :
|
|
139
|
-
h("div", { key: "label", class: { "s-conditional-offer-checkpoint-label": true, "first-checkpoint": index === 0, active: isActive
|
|
139
|
+
h("div", { key: "label", class: { "s-conditional-offer-checkpoint-label": true, "first-checkpoint": index === 0, active: isActive }, innerHTML: this.getOfferType(discount) })));
|
|
140
140
|
}
|
|
141
141
|
getLoadingSkeletonView() {
|
|
142
142
|
return h(Host, { class: "s-conditional-offer-container" }, h("div", { class: "s-conditional-offer-skeleton-inner-container" }, h("div", { class: "s-conditional-offer-skeleton-subtitle" }, h("salla-skeleton", { height: "16px", width: "30%" })), h("div", { class: "s-conditional-offer-skeleton-subtitle" }, h("salla-skeleton", { height: "16px", width: "35%" })), h("div", { class: "s-conditional-offer-skeleton-checkpoints-wrapper" }, Array(3).fill(null).map(() => ([h("salla-skeleton", { key: "checkpoint-line", height: "8px" }), h("div", { key: "checkpoint" }, h("salla-skeleton", { height: "60px", width: "60px", type: "circle" }))])))));
|
|
@@ -22,7 +22,7 @@ export class SallaCookiesBar {
|
|
|
22
22
|
this.mobileQueryHandler = (e) => (this.isMobile = e.matches);
|
|
23
23
|
this.openRequestedHandler = () => this.open();
|
|
24
24
|
this.authLoggedInHandler = () => this.syncConsentAfterLogin();
|
|
25
|
-
this.authLoggedOutHandler = () => this.
|
|
25
|
+
this.authLoggedOutHandler = () => this.handleLogout();
|
|
26
26
|
/**
|
|
27
27
|
* Consent cookie names, matching the category keys the backend expects.
|
|
28
28
|
*/
|
|
@@ -31,6 +31,18 @@ export class SallaCookiesBar {
|
|
|
31
31
|
this.functionalCookieKey = 'functional_cookies';
|
|
32
32
|
this.advertisingCookieKey = 'advertising_cookies';
|
|
33
33
|
this.consentCookieDays = 365;
|
|
34
|
+
/**
|
|
35
|
+
* Storage keys for the consent choice. The persistent choice lives in `Salla.storage`
|
|
36
|
+
* (localStorage); after a logout a copy is kept in `Salla.storage.session` so the bar
|
|
37
|
+
* stays hidden until the browsing session ends.
|
|
38
|
+
*/
|
|
39
|
+
this.consentStorageKey = 'cookies-consent';
|
|
40
|
+
this.sessionConsentPointsKey = 'cookies-consent-points';
|
|
41
|
+
/**
|
|
42
|
+
* Set when the persistent choice was made (or attributed) while signed in, i.e. it
|
|
43
|
+
* belongs to that account and must never be carried over to whoever signs in next.
|
|
44
|
+
*/
|
|
45
|
+
this.consentByUserKey = 'cookies-consent-by-user';
|
|
34
46
|
/**
|
|
35
47
|
* Known first-party cookie names (a trailing `*` matches by prefix) set by common
|
|
36
48
|
* third-party scripts, grouped by the category they belong to. Only first-party
|
|
@@ -112,6 +124,14 @@ export class SallaCookiesBar {
|
|
|
112
124
|
this.functionsEnabled = false;
|
|
113
125
|
this.adsEnabled = false;
|
|
114
126
|
}
|
|
127
|
+
/**
|
|
128
|
+
* Stores can share an origin (`salla.sa/store_one`, `salla.sa/store_two`), so the
|
|
129
|
+
* post-logout session copy and the signed-in marker are keyed by store id to stay out
|
|
130
|
+
* of the other stores.
|
|
131
|
+
*/
|
|
132
|
+
storeKey(key) {
|
|
133
|
+
return `${key}_${Salla.config.get('store.id')}`;
|
|
134
|
+
}
|
|
115
135
|
async componentWillLoad() {
|
|
116
136
|
await Salla.onReady();
|
|
117
137
|
await Salla.lang.onLoaded();
|
|
@@ -121,7 +141,7 @@ export class SallaCookiesBar {
|
|
|
121
141
|
Salla.event.on('auth::logged.out', this.authLoggedOutHandler);
|
|
122
142
|
this.unregisterAfterFetchMenuItemsHook = Salla.hooks.registerHook('salla-menu', 'afterFetchMenuItems', (menuComponent) => this.appendCookiesSettingsLink(menuComponent));
|
|
123
143
|
this.hydrateToggleState();
|
|
124
|
-
if (
|
|
144
|
+
if (this.currentConsentPoints()) {
|
|
125
145
|
this.isVisible = false;
|
|
126
146
|
}
|
|
127
147
|
// Keep tracking cookies enforced on every load/refresh, not just when the
|
|
@@ -190,23 +210,50 @@ export class SallaCookiesBar {
|
|
|
190
210
|
*/
|
|
191
211
|
applyConsent(points) {
|
|
192
212
|
this.writeLocalConsentCookies(points);
|
|
213
|
+
// A fresh choice is stored persistently, so any post-logout session copy is stale.
|
|
214
|
+
this.clearSessionConsent();
|
|
215
|
+
Salla.storage.set(this.storeKey(this.consentByUserKey), !Salla.config.isGuest());
|
|
193
216
|
this.sweepDisabledCategoryCookies(points);
|
|
194
217
|
if (!Salla.config.isGuest()) {
|
|
195
218
|
Salla.api.request('account/data-privacy', { points }, 'post').catch(() => { });
|
|
196
219
|
}
|
|
197
220
|
}
|
|
198
221
|
/**
|
|
199
|
-
* The currently known accepted categories
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
* choice has been made yet — the bar itself is the source of truth in that case,
|
|
203
|
-
* not a sweep.
|
|
222
|
+
* The currently known accepted categories: the persistent choice if there is one,
|
|
223
|
+
* otherwise the post-logout session copy. Returns `null` when no choice has been
|
|
224
|
+
* made yet — the bar itself is the source of truth in that case, not a sweep.
|
|
204
225
|
*/
|
|
205
226
|
currentConsentPoints() {
|
|
206
|
-
|
|
227
|
+
return this.persistentConsentPoints() ?? this.sessionConsentPoints();
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* The accepted categories read from local cookies — there is no backend endpoint to
|
|
231
|
+
* read the customer's saved preference back, so the cookies written on save are the
|
|
232
|
+
* only source of truth we have.
|
|
233
|
+
*/
|
|
234
|
+
persistentConsentPoints() {
|
|
235
|
+
if (!Salla.storage.get(this.consentStorageKey))
|
|
207
236
|
return null;
|
|
208
237
|
return this.allCategoryKeys().filter(key => key === this.necessaryCookieKey || Salla.cookie.get(key) === 'true');
|
|
209
238
|
}
|
|
239
|
+
/**
|
|
240
|
+
* The choice carried over from before a logout, kept only for the current browsing
|
|
241
|
+
* session (see `handleLogout`). It belongs to the customer who logged out, so it only
|
|
242
|
+
* applies while the visitor is a guest — never to whoever signs in next.
|
|
243
|
+
*/
|
|
244
|
+
sessionConsentPoints() {
|
|
245
|
+
if (!Salla.config.isGuest())
|
|
246
|
+
return null;
|
|
247
|
+
if (!Salla.storage.session?.get(this.storeKey(this.consentStorageKey)))
|
|
248
|
+
return null;
|
|
249
|
+
const points = Salla.storage.session.get(this.storeKey(this.sessionConsentPointsKey));
|
|
250
|
+
const savedPoints = Array.isArray(points) ? points : [];
|
|
251
|
+
return this.allCategoryKeys().filter(key => key === this.necessaryCookieKey || savedPoints.includes(key));
|
|
252
|
+
}
|
|
253
|
+
clearSessionConsent() {
|
|
254
|
+
Salla.storage.session?.remove(this.storeKey(this.consentStorageKey));
|
|
255
|
+
Salla.storage.session?.remove(this.storeKey(this.sessionConsentPointsKey));
|
|
256
|
+
}
|
|
210
257
|
enforceCurrentConsent() {
|
|
211
258
|
const points = this.currentConsentPoints();
|
|
212
259
|
if (points)
|
|
@@ -226,31 +273,76 @@ export class SallaCookiesBar {
|
|
|
226
273
|
this.adsEnabled = points.includes(this.advertisingCookieKey);
|
|
227
274
|
}
|
|
228
275
|
/**
|
|
229
|
-
*
|
|
230
|
-
* browser, not the account — without this, whatever the previous customer chose
|
|
231
|
-
* be misread as "the visitor's own prior choice" and pushed to the next account
|
|
232
|
-
* logs in (or is created) on this same browser.
|
|
276
|
+
* On logout, stop keeping the choice persistently: local cookies/storage are scoped to
|
|
277
|
+
* the browser, not the account — without this, whatever the previous customer chose
|
|
278
|
+
* would be misread as "the visitor's own prior choice" and pushed to the next account
|
|
279
|
+
* that logs in (or is created) on this same browser.
|
|
280
|
+
*
|
|
281
|
+
* The choice is still honoured for the rest of the browsing session (copied to session
|
|
282
|
+
* storage), so the bar doesn't pop up again right after logging out; it shows again
|
|
283
|
+
* once the store is closed and reopened.
|
|
284
|
+
*
|
|
285
|
+
* A logout fired while the visitor is already a guest is the automatic `force_logout`
|
|
286
|
+
* cleanup (the session already ended server-side), not the customer's doing, so a choice
|
|
287
|
+
* the visitor made as a guest is kept as is. A choice made while signed in belongs to
|
|
288
|
+
* that account, so it's handled like any other logout.
|
|
233
289
|
*/
|
|
234
|
-
|
|
290
|
+
handleLogout() {
|
|
291
|
+
if (Salla.config.isGuest() && !Salla.storage.get(this.storeKey(this.consentByUserKey)))
|
|
292
|
+
return;
|
|
293
|
+
const state = Salla.storage.get(this.consentStorageKey);
|
|
294
|
+
const points = this.persistentConsentPoints();
|
|
295
|
+
if (state && points) {
|
|
296
|
+
Salla.storage.session?.set(this.storeKey(this.consentStorageKey), state);
|
|
297
|
+
Salla.storage.session?.set(this.storeKey(this.sessionConsentPointsKey), points);
|
|
298
|
+
}
|
|
235
299
|
for (const key of this.allCategoryKeys()) {
|
|
236
300
|
Salla.cookie.remove(key);
|
|
237
301
|
}
|
|
238
|
-
Salla.storage.remove(
|
|
239
|
-
|
|
240
|
-
// made a choice yet, so the bar should show again right away.
|
|
241
|
-
this.isVisible = true;
|
|
302
|
+
Salla.storage.remove(this.consentStorageKey);
|
|
303
|
+
Salla.storage.remove(this.storeKey(this.consentByUserKey));
|
|
242
304
|
}
|
|
243
305
|
/**
|
|
244
306
|
* Runs when a guest signs in. There is no backend endpoint to check whether the
|
|
245
307
|
* account already has a saved preference, so if the visitor already made a choice
|
|
246
308
|
* as a guest (guest choices are never sent server-side), attribute that local
|
|
247
309
|
* choice to the account now — this is the only source of truth available.
|
|
310
|
+
* The post-logout session copy belongs to the previous customer, so it's dropped here
|
|
311
|
+
* and never synced.
|
|
312
|
+
* `auth::logged.in` is dispatched even when the profile fetch fails, so a login that
|
|
313
|
+
* didn't resolve a user (still a guest) changes nothing.
|
|
248
314
|
*/
|
|
249
315
|
syncConsentAfterLogin() {
|
|
250
|
-
|
|
251
|
-
|
|
316
|
+
if (Salla.config.isGuest())
|
|
317
|
+
return;
|
|
318
|
+
this.clearSessionConsent();
|
|
319
|
+
const points = this.persistentConsentPoints();
|
|
320
|
+
if (!points) {
|
|
321
|
+
// Nothing chosen on this browser for the account that just signed in — e.g. after a
|
|
322
|
+
// logout that kept the bar hidden on this page — so ask them now.
|
|
323
|
+
this.step = 'consent';
|
|
324
|
+
this.isVisible = true;
|
|
325
|
+
return;
|
|
326
|
+
}
|
|
327
|
+
// A choice that already belongs to an account isn't this visitor's to hand over.
|
|
328
|
+
if (Salla.storage.get(this.storeKey(this.consentByUserKey)))
|
|
252
329
|
return;
|
|
253
|
-
|
|
330
|
+
// Only once the account actually has the choice does it count as theirs; if the POST
|
|
331
|
+
// fails, a later login can try again. The response can arrive after the visitor logged
|
|
332
|
+
// out or chose again, so only mark it if it's still the same account and choice.
|
|
333
|
+
const userId = Salla.config.get('user.id');
|
|
334
|
+
Salla.api
|
|
335
|
+
.request('account/data-privacy', { points }, 'post')
|
|
336
|
+
.then(() => {
|
|
337
|
+
const currentPoints = this.persistentConsentPoints();
|
|
338
|
+
const unchanged = !Salla.config.isGuest() &&
|
|
339
|
+
Salla.config.get('user.id') === userId &&
|
|
340
|
+
currentPoints?.length === points.length &&
|
|
341
|
+
points.every(key => currentPoints.includes(key));
|
|
342
|
+
if (unchanged)
|
|
343
|
+
Salla.storage.set(this.storeKey(this.consentByUserKey), true);
|
|
344
|
+
})
|
|
345
|
+
.catch(() => { });
|
|
254
346
|
}
|
|
255
347
|
cookieNameMatchesPattern(cookieName, pattern) {
|
|
256
348
|
return pattern.endsWith('*')
|
|
@@ -277,8 +369,15 @@ export class SallaCookiesBar {
|
|
|
277
369
|
dismiss(eventName) {
|
|
278
370
|
this.isVisible = false;
|
|
279
371
|
//We will call event first because we need to compare between old and new data inside session
|
|
280
|
-
|
|
281
|
-
|
|
372
|
+
try {
|
|
373
|
+
Salla.event.emit(`salla-cookies-bar::${eventName}`);
|
|
374
|
+
}
|
|
375
|
+
finally {
|
|
376
|
+
// Listeners (themes, apps, third-party scripts) run synchronously and their errors
|
|
377
|
+
// propagate; always persist the choice so a throwing listener can't make the bar
|
|
378
|
+
// show again on the next page. The error is still rethrown after this.
|
|
379
|
+
Salla.storage.set(this.consentStorageKey, eventName);
|
|
380
|
+
}
|
|
282
381
|
}
|
|
283
382
|
/**
|
|
284
383
|
* Persist the customized per-category toggle choices, then dismiss.
|
|
@@ -86,6 +86,9 @@
|
|
|
86
86
|
.grid {
|
|
87
87
|
display: grid;
|
|
88
88
|
}
|
|
89
|
+
.hidden {
|
|
90
|
+
display: none;
|
|
91
|
+
}
|
|
89
92
|
.filter {
|
|
90
93
|
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);
|
|
91
94
|
}
|
|
@@ -305,6 +305,7 @@ export class SallaProductsList {
|
|
|
305
305
|
}
|
|
306
306
|
this.applyLandingPageStyles(productCard);
|
|
307
307
|
this.applyHorizontalCardStyles(productCard);
|
|
308
|
+
this.applyOutOfStockVisibility(productCard, product);
|
|
308
309
|
// Attach click event listener to save the current products snapshot
|
|
309
310
|
productCard.addEventListener('click', event => {
|
|
310
311
|
const target = event.target;
|
|
@@ -329,10 +330,23 @@ export class SallaProductsList {
|
|
|
329
330
|
}
|
|
330
331
|
});
|
|
331
332
|
if (this.selectable) {
|
|
332
|
-
|
|
333
|
+
// The selectable wrapper is what gets appended, so it has to be hidden too.
|
|
334
|
+
const item = this.wrapSelectableItem(productCard, product);
|
|
335
|
+
this.applyOutOfStockVisibility(item, product);
|
|
336
|
+
return item;
|
|
333
337
|
}
|
|
334
338
|
return productCard;
|
|
335
339
|
}
|
|
340
|
+
// Merchant setting (feature-gated): out-of-stock cards stay in the DOM for crawlers but are hidden from customers.
|
|
341
|
+
applyOutOfStockVisibility(productCard, product) {
|
|
342
|
+
if (!product?.is_out_of_stock || salla.config.get('store.settings.product.hide_out_of_stock') !== true) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
productCard.hidden = true;
|
|
346
|
+
productCard.style.display = 'none';
|
|
347
|
+
productCard.setAttribute('aria-hidden', 'true');
|
|
348
|
+
productCard.setAttribute('data-out-of-stock-hidden', '');
|
|
349
|
+
}
|
|
336
350
|
/**
|
|
337
351
|
* Wrap a product card with a selection control. The wrapper mirrors `product`
|
|
338
352
|
* so the scroll-restoration snapshot logic (which reads `child.product`) keeps
|
|
@@ -945,7 +959,8 @@ export class SallaProductsList {
|
|
|
945
959
|
}
|
|
946
960
|
for (let i = 0; i < this.wrapper.children.length; i++) {
|
|
947
961
|
const item = this.wrapper.children[i];
|
|
948
|
-
|
|
962
|
+
// Hidden out-of-stock items aren't part of what the customer can see, select or share.
|
|
963
|
+
item?.product && !item.hasAttribute('data-out-of-stock-hidden') && products.push(item.product);
|
|
949
964
|
}
|
|
950
965
|
return products;
|
|
951
966
|
}
|
|
@@ -958,7 +973,8 @@ export class SallaProductsList {
|
|
|
958
973
|
}
|
|
959
974
|
for (let i = 0; i < this.wrapper.children.length; i++) {
|
|
960
975
|
const item = this.wrapper.children[i];
|
|
961
|
-
|
|
976
|
+
// Hidden out-of-stock items can't be seen or deselected, so "select all" skips them.
|
|
977
|
+
if (item?.product && !item.hasAttribute('data-out-of-stock-hidden')) {
|
|
962
978
|
this.selectedProducts.set(item.product.id, item.product);
|
|
963
979
|
item.classList.add('s-products-list-item-selected');
|
|
964
980
|
const checkbox = item.querySelector('.s-products-list-select-checkbox');
|