@salla.sa/twilight-components 2.14.411 → 2.14.412
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-DmIUNeKc.js → filepond-BO-XBD1i.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-C8AOgqzV.js → filepond-plugin-file-poster-DJIG7vOj.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-C1uEA-N4.js → filepond-plugin-file-validate-size-Bhtuy-Ar.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-CAYEi5xZ.js → filepond-plugin-file-validate-type-BQhRvZvr.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-DeGtwB2d.js → filepond-plugin-image-edit-C4unOPfE.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-BL0bCUVQ.js → filepond-plugin-image-exif-orientation-QreJIoqS.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-Dih1Wn_X.js → filepond-plugin-image-preview-aiURUVDo.js} +1 -1
- package/dist/cjs/{functions-CcFdqlpK.js → functions-qbO9xyMC.js} +1 -1
- package/dist/cjs/{index-BBXwu2T_.js → index-BtHm_lmK.js} +1 -1
- package/dist/cjs/{index-PZNCZxVn.js → index-DR2nrv6V.js} +6 -6
- package/dist/cjs/loader.cjs.js +2 -2
- 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_4.cjs.entry.js → salla-add-product-button_5.cjs.entry.js} +130 -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-apps-icons.cjs.entry.js +1 -1
- package/dist/cjs/salla-badge.cjs.entry.js +1 -1
- package/dist/cjs/salla-booking-field_7.cjs.entry.js +10 -10
- package/dist/cjs/salla-bullet-delivery.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-comment-form_8.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-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.cjs.entry.js +2 -2
- package/dist/cjs/salla-loyalty-hero_2.cjs.entry.js +2 -2
- package/dist/cjs/salla-loyalty-panel.cjs.entry.js +3 -3
- package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-loyalty-program.cjs.entry.js +3 -3
- package/dist/cjs/salla-loyalty-reward.cjs.entry.js +2 -2
- 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.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-notification-item.cjs.entry.js +1 -1
- package/dist/cjs/salla-notifications.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-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.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_2.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-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
- package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
- package/dist/cjs/salla-reward-action_4.cjs.entry.js +3 -3
- package/dist/cjs/salla-scopes.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-slider.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/{tracked-promise-DDi0ylD7.js → tracked-promise-Dlrrx6bS.js} +1 -1
- package/dist/cjs/twilight.cjs.js +2 -2
- package/dist/cjs/{vanilla-picker-OPSqChB9.js → vanilla-picker-BgvVWFWW.js} +1 -1
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/salla-bought-together/interfaces.js +1 -0
- package/dist/collection/components/salla-bought-together/salla-bought-together.css +18 -0
- package/dist/collection/components/salla-bought-together/salla-bought-together.js +174 -0
- package/dist/components/index.js +2 -2
- package/dist/components/salla-bought-together.d.ts +11 -0
- package/dist/components/salla-bought-together.js +174 -0
- package/dist/esm/{filepond-905U04xY.js → filepond-BdAJ1Q3U.js} +1 -1
- package/dist/esm/{filepond-plugin-file-poster-BWkARu_j.js → filepond-plugin-file-poster-_P46glp3.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-C0PJYzhi.js → filepond-plugin-file-validate-size-Cs7iDcpm.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-Bglz2iC6.js → filepond-plugin-file-validate-type-BokfkNG5.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit-3aH_4pIL.js → filepond-plugin-image-edit-DqujritR.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-B1h3s1nQ.js → filepond-plugin-image-exif-orientation-CTqsgDyW.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-CAiiia6W.js → filepond-plugin-image-preview-zoBFIa44.js} +1 -1
- package/dist/esm/{functions-GzuwX5HS.js → functions-CEdm6lBq.js} +1 -1
- package/dist/esm/{index-xT-Vt0D7.js → index-DXkuZzsm.js} +1 -1
- package/dist/esm/{index-rIbWLXjW.js → index-eYsXdqjv.js} +6 -6
- package/dist/esm/loader.js +3 -3
- 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_4.entry.js → salla-add-product-button_5.entry.js} +130 -2
- 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-apps-icons.entry.js +1 -1
- package/dist/esm/salla-badge.entry.js +1 -1
- package/dist/esm/salla-booking-field_7.entry.js +10 -10
- package/dist/esm/salla-bullet-delivery.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-comment-form_8.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-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.entry.js +2 -2
- package/dist/esm/salla-loyalty-hero_2.entry.js +2 -2
- package/dist/esm/salla-loyalty-panel.entry.js +3 -3
- package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
- package/dist/esm/salla-loyalty-program.entry.js +3 -3
- package/dist/esm/salla-loyalty-reward.entry.js +2 -2
- package/dist/esm/salla-loyalty.entry.js +1 -1
- package/dist/esm/salla-maintenance-alert.entry.js +1 -1
- package/dist/esm/salla-map.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-notification-item.entry.js +1 -1
- package/dist/esm/salla-notifications.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-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.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_2.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-progress-bar.entry.js +1 -1
- package/dist/esm/salla-quick-order.entry.js +1 -1
- package/dist/esm/salla-rating-modal.entry.js +1 -1
- package/dist/esm/salla-reward-action_4.entry.js +3 -3
- package/dist/esm/salla-scopes.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-slider.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/{tracked-promise-BQ3oDpFo.js → tracked-promise-DC9Saija.js} +1 -1
- package/dist/esm/twilight.js +3 -3
- package/dist/esm/{vanilla-picker-Cv_dc6oT.js → vanilla-picker-DdyyxtyV.js} +1 -1
- package/dist/twilight/{p-98862c7d.entry.js → p-040057c7.entry.js} +1 -1
- package/dist/twilight/{p-f2203ac6.entry.js → p-046ef0cf.entry.js} +1 -1
- package/dist/twilight/{p-80adbd86.entry.js → p-04a3bd3a.entry.js} +1 -1
- package/dist/twilight/{p-c3087e4b.entry.js → p-083bfceb.entry.js} +1 -1
- package/dist/twilight/{p-b003a630.entry.js → p-0b6cfdc6.entry.js} +1 -1
- package/dist/twilight/{p-9faa8a9e.entry.js → p-0c773a98.entry.js} +1 -1
- package/dist/twilight/{p-4aacfcb8.entry.js → p-0fee8df2.entry.js} +1 -1
- package/dist/twilight/p-12e78aef.entry.js +4 -0
- package/dist/twilight/{p-7dd1b438.entry.js → p-18046a80.entry.js} +1 -1
- package/dist/twilight/{p-fda57a16.entry.js → p-18428cad.entry.js} +1 -1
- package/dist/twilight/{p-62a8bf31.entry.js → p-18e4e822.entry.js} +1 -1
- package/dist/twilight/{p-15a53fe6.entry.js → p-1c2c212f.entry.js} +1 -1
- package/dist/twilight/{p-d6b4621a.entry.js → p-1d9e9e5e.entry.js} +1 -1
- package/dist/twilight/{p-0ad7c855.entry.js → p-1f18bb8c.entry.js} +1 -1
- package/dist/twilight/{p-c2c428e7.entry.js → p-24121404.entry.js} +1 -1
- package/dist/twilight/{p-24216a35.entry.js → p-28a276b7.entry.js} +1 -1
- package/dist/twilight/{p-6c84e2a0.entry.js → p-2beb780e.entry.js} +1 -1
- package/dist/twilight/{p-78bcabea.entry.js → p-2d29eae4.entry.js} +1 -1
- package/dist/twilight/{p-18b593a9.entry.js → p-2ea91f4d.entry.js} +1 -1
- package/dist/twilight/{p-dfa1ddc1.entry.js → p-371ea2ac.entry.js} +1 -1
- package/dist/twilight/{p-56f8e93f.entry.js → p-38df842f.entry.js} +1 -1
- package/dist/twilight/{p-a9f516c8.entry.js → p-3a0482aa.entry.js} +1 -1
- package/dist/twilight/{p-2a45676f.entry.js → p-3dd609ff.entry.js} +1 -1
- package/dist/twilight/{p-57a1bd5e.entry.js → p-473e829b.entry.js} +1 -1
- package/dist/twilight/{p-49457497.entry.js → p-4c7e5ca7.entry.js} +1 -1
- package/dist/twilight/{p-D-wDhUx5.js → p-4rGFyB1b.js} +1 -1
- package/dist/twilight/{p-ca62e17c.entry.js → p-543482d0.entry.js} +1 -1
- package/dist/twilight/{p-38b0d747.entry.js → p-569db60a.entry.js} +1 -1
- package/dist/twilight/{p-9adacf19.entry.js → p-63b091c3.entry.js} +1 -1
- package/dist/twilight/{p-cc551a73.entry.js → p-67b3a063.entry.js} +1 -1
- package/dist/twilight/{p-92863280.entry.js → p-6a50e4ab.entry.js} +1 -1
- package/dist/twilight/{p-5c3711fb.entry.js → p-6ffe96cf.entry.js} +1 -1
- package/dist/twilight/{p-d680ef32.entry.js → p-70e26072.entry.js} +1 -1
- package/dist/twilight/{p-c9e78561.entry.js → p-78b27b6f.entry.js} +1 -1
- package/dist/twilight/{p-1da1f13f.entry.js → p-809d8765.entry.js} +1 -1
- package/dist/twilight/{p-31a5bd84.entry.js → p-82d315dc.entry.js} +1 -1
- package/dist/twilight/{p-9b289072.entry.js → p-82fc9f8a.entry.js} +1 -1
- package/dist/twilight/{p-dcbd52a9.entry.js → p-86494434.entry.js} +1 -1
- package/dist/twilight/{p-09de8e38.entry.js → p-880974c0.entry.js} +1 -1
- package/dist/twilight/{p-d218c2ff.entry.js → p-914ef875.entry.js} +1 -1
- package/dist/twilight/{p-70e21348.entry.js → p-92c3525a.entry.js} +1 -1
- package/dist/twilight/{p-8afeb013.entry.js → p-92ee979a.entry.js} +1 -1
- package/dist/twilight/{p-a5a4a9c4.entry.js → p-98dfc58c.entry.js} +1 -1
- package/dist/twilight/{p-0c751ad3.entry.js → p-9da33e90.entry.js} +1 -1
- package/dist/twilight/p-9f51245d.entry.js +4 -0
- package/dist/twilight/{p-4c527044.entry.js → p-9fea03ff.entry.js} +1 -1
- package/dist/twilight/{p-BEG98TtY.js → p-B-gehnpX.js} +1 -1
- package/dist/twilight/{p-l3RnLhEs.js → p-BrL7ZFF-.js} +1 -1
- package/dist/twilight/{p-_9i6OtFf.js → p-Bt5MNLrr.js} +1 -1
- package/dist/twilight/{p-B6nHsUmY.js → p-C4iKSe6r.js} +1 -1
- package/dist/twilight/{p-_uYeO1XY.js → p-CZP8nF-D.js} +1 -1
- package/dist/twilight/{p-CTLj8xU3.js → p-CdKOsdhF.js} +1 -1
- package/dist/twilight/{p-B5aVfdOq.js → p-CdQPD_4N.js} +1 -1
- package/dist/twilight/{p-D0khSRlI.js → p-CkMgy4QX.js} +1 -1
- package/dist/twilight/{p-ba7hQHgb.js → p-DgUXy-oM.js} +1 -1
- package/dist/twilight/{p-8oz_tYCT.js → p-VP7525fx.js} +1 -1
- package/dist/twilight/{p-0362115c.entry.js → p-a0792c90.entry.js} +1 -1
- package/dist/twilight/{p-7179b561.entry.js → p-a74e2625.entry.js} +1 -1
- package/dist/twilight/{p-8b5ab33f.entry.js → p-a97da8bc.entry.js} +1 -1
- package/dist/twilight/p-aced00e2.entry.js +4 -0
- package/dist/twilight/{p-5f08ca5c.entry.js → p-b04f3b37.entry.js} +1 -1
- package/dist/twilight/{p-a492282a.entry.js → p-b258ef5c.entry.js} +1 -1
- package/dist/twilight/{p-c8dedc2d.entry.js → p-ba81b8d6.entry.js} +1 -1
- package/dist/twilight/{p-0d04fb8c.entry.js → p-bab9b1ad.entry.js} +1 -1
- package/dist/twilight/{p-dde28f2e.entry.js → p-c00c26f4.entry.js} +1 -1
- package/dist/twilight/{p-9f597738.entry.js → p-c0ea9ff2.entry.js} +1 -1
- package/dist/twilight/{p-a0c775b0.entry.js → p-c11f0af9.entry.js} +1 -1
- package/dist/twilight/{p-dfeeb15e.entry.js → p-c38311a2.entry.js} +1 -1
- package/dist/twilight/{p-cb77c16b.entry.js → p-c6a56a0c.entry.js} +1 -1
- package/dist/twilight/{p-1716e7bf.entry.js → p-c8821c21.entry.js} +1 -1
- package/dist/twilight/{p-9020d179.entry.js → p-c8b8ea5c.entry.js} +1 -1
- package/dist/twilight/{p-0a39c576.entry.js → p-c8f6bc81.entry.js} +1 -1
- package/dist/twilight/{p-78647833.entry.js → p-cb5fbe10.entry.js} +1 -1
- package/dist/twilight/{p-67ec0369.entry.js → p-cf4c9420.entry.js} +1 -1
- package/dist/twilight/{p-df55b402.entry.js → p-d400841e.entry.js} +1 -1
- package/dist/twilight/{p-aad3c860.entry.js → p-d49fd79d.entry.js} +1 -1
- package/dist/twilight/{p-ffeb8d66.entry.js → p-d6a5df0d.entry.js} +1 -1
- package/dist/twilight/{p-3134ec55.entry.js → p-d6a86efa.entry.js} +1 -1
- package/dist/twilight/{p-70b821e0.entry.js → p-dbe6cc9c.entry.js} +1 -1
- package/dist/twilight/{p-7ac1d258.entry.js → p-e2cec9f6.entry.js} +1 -1
- package/dist/twilight/{p-17bc3083.entry.js → p-e5e1574f.entry.js} +1 -1
- package/dist/twilight/{p-c39c381b.entry.js → p-e89e8a20.entry.js} +1 -1
- package/dist/twilight/{p-rIbWLXjW.js → p-eYsXdqjv.js} +1 -1
- package/dist/twilight/{p-03327bdb.entry.js → p-eadaf058.entry.js} +1 -1
- package/dist/twilight/{p-746b703c.entry.js → p-eae4b2c9.entry.js} +1 -1
- package/dist/twilight/p-ed6e8053.entry.js +4 -0
- package/dist/twilight/{p-464ebb66.entry.js → p-f267b033.entry.js} +1 -1
- package/dist/twilight/{p-d950df54.entry.js → p-f3105e54.entry.js} +1 -1
- package/dist/twilight/{p-6477aa16.entry.js → p-f3d76113.entry.js} +1 -1
- package/dist/twilight/{p-fb9806d9.entry.js → p-f91399b4.entry.js} +1 -1
- package/dist/twilight/{p-4597e9a0.entry.js → p-faae4443.entry.js} +1 -1
- package/dist/twilight/{p-941e5a4a.entry.js → p-fea8186b.entry.js} +1 -1
- package/dist/twilight/{p-05618953.entry.js → p-ff972c8b.entry.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-bought-together/interfaces.d.ts +15 -0
- package/dist/types/components/salla-bought-together/salla-bought-together.d.ts +23 -0
- package/dist/types/components.d.ts +23 -0
- package/package.json +5 -5
- package/dist/twilight/p-4a549dd4.entry.js +0 -4
- package/dist/twilight/p-7ea9101c.entry.js +0 -4
- package/dist/twilight/p-d29c6154.entry.js +0 -4
- package/dist/twilight/p-e37fe440.entry.js +0 -4
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface SallaBoughtTogether extends Components.SallaBoughtTogether, HTMLElement {}
|
|
4
|
+
export const SallaBoughtTogether: {
|
|
5
|
+
prototype: SallaBoughtTogether;
|
|
6
|
+
new (): SallaBoughtTogether;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Crafted with ❤ by Salla
|
|
3
|
+
*/
|
|
4
|
+
import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
|
|
5
|
+
import { d as defineCustomElement$3 } from './salla-button2.js';
|
|
6
|
+
import { d as defineCustomElement$2 } from './salla-skeleton2.js';
|
|
7
|
+
|
|
8
|
+
const sallaBoughtTogetherCss = ":host{display:block}.s-bought-together-checkbox:checked~.s-bought-together-checkmark{background-color:var(--color-primary, #2ECC71);border-color:var(--color-primary, #2ECC71)}.s-bought-together-checkbox:checked~.s-bought-together-checkmark::after{content:\"\";display:block;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-2px}";
|
|
9
|
+
|
|
10
|
+
// Read-only recommendations key confirmed safe for client-side use by the API team — no write access or sensitive scope.
|
|
11
|
+
const XSELL_API_KEY = 'VOL5WaZu2YROp0RplCZAr1RplhL9FFGQ';
|
|
12
|
+
const SallaBoughtTogether$1 = /*@__PURE__*/ proxyCustomElement(class SallaBoughtTogether extends HTMLElement {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
this.__registerHost();
|
|
16
|
+
/**
|
|
17
|
+
* Maximum number of recommendations to fetch. Max is 4.
|
|
18
|
+
*/
|
|
19
|
+
this.limit = 3;
|
|
20
|
+
this.recommendations = [];
|
|
21
|
+
this.selectedIds = new Set();
|
|
22
|
+
this.isLoading = true;
|
|
23
|
+
this.canRender = true;
|
|
24
|
+
this.isAdding = false;
|
|
25
|
+
this.title = salla.lang.get('pages.products.bought_together_title');
|
|
26
|
+
this.subtitle = salla.lang.get('pages.products.bought_together_subtitle');
|
|
27
|
+
this.buyTogetherFor = salla.lang.get('pages.products.buy_together_for');
|
|
28
|
+
this.resolvedProductId = 0;
|
|
29
|
+
salla.lang.onLoaded(() => {
|
|
30
|
+
this.title = salla.lang.get('pages.products.bought_together_title');
|
|
31
|
+
this.subtitle = salla.lang.get('pages.products.bought_together_subtitle');
|
|
32
|
+
this.buyTogetherFor = salla.lang.get('pages.products.buy_together_for');
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
componentWillLoad() {
|
|
36
|
+
salla.onReady()
|
|
37
|
+
.then(() => {
|
|
38
|
+
if (!salla.config.get('store.settings.product.bought_together')) {
|
|
39
|
+
this.canRender = false;
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const id = salla.config.get('page.id');
|
|
43
|
+
if (!id) {
|
|
44
|
+
this.canRender = false;
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.resolvedProductId = id;
|
|
48
|
+
return salla.api.request('https://api.salla.dev/1/indexes/*/recommendations', {
|
|
49
|
+
requests: [{
|
|
50
|
+
indexName: 'products',
|
|
51
|
+
model: 'xsell-v1',
|
|
52
|
+
objectID: String(id),
|
|
53
|
+
maxRecommendations: this.limit,
|
|
54
|
+
}]
|
|
55
|
+
}, 'post', { headers: { 'X-Algolia-Api-Key': XSELL_API_KEY, 'X-Query-Enrichment': 'false', 'X-source': 'store' } });
|
|
56
|
+
})
|
|
57
|
+
.then((response) => {
|
|
58
|
+
if (!response)
|
|
59
|
+
return;
|
|
60
|
+
const hits = response?.results?.[0]?.hits ?? [];
|
|
61
|
+
if (!hits.length) {
|
|
62
|
+
this.canRender = false;
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
const ids = [String(this.resolvedProductId), ...hits.map(h => h.objectID)];
|
|
66
|
+
return salla.product.fetch({ source: 'selected', source_value: ids });
|
|
67
|
+
})
|
|
68
|
+
.then((response) => {
|
|
69
|
+
if (!response)
|
|
70
|
+
return;
|
|
71
|
+
const products = response?.data ?? [];
|
|
72
|
+
if (!products.length) {
|
|
73
|
+
this.canRender = false;
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
const mainProduct = products.find(p => String(p.id) === String(this.resolvedProductId));
|
|
77
|
+
const rest = products.filter(p => String(p.id) !== String(this.resolvedProductId));
|
|
78
|
+
if (!rest.length) {
|
|
79
|
+
this.canRender = false;
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
this.recommendations = mainProduct ? [mainProduct, ...rest] : rest;
|
|
83
|
+
this.selectedIds = new Set(this.recommendations.map((p) => p.id));
|
|
84
|
+
})
|
|
85
|
+
.catch(() => {
|
|
86
|
+
this.canRender = false;
|
|
87
|
+
})
|
|
88
|
+
.finally(() => {
|
|
89
|
+
this.isLoading = false;
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
toggleProduct(id) {
|
|
93
|
+
const next = new Set(this.selectedIds);
|
|
94
|
+
next.has(id) ? next.delete(id) : next.add(id);
|
|
95
|
+
this.selectedIds = next;
|
|
96
|
+
}
|
|
97
|
+
get totalPrice() {
|
|
98
|
+
const total = this.recommendations
|
|
99
|
+
.filter(p => this.selectedIds.has(p.id))
|
|
100
|
+
// p.price is a plain float in the API response (e.g. 1150.58) — the TS type (any[]) is misleading.
|
|
101
|
+
.reduce((sum, p) => sum + (p.price ?? 0), 0);
|
|
102
|
+
return salla.money(total);
|
|
103
|
+
}
|
|
104
|
+
async addSelectedToCart() {
|
|
105
|
+
if (this.isAdding || !this.selectedIds.size)
|
|
106
|
+
return;
|
|
107
|
+
this.isAdding = true;
|
|
108
|
+
try {
|
|
109
|
+
// Intentional: quickAdd is used for all items including the main product without options — business decision by product team.
|
|
110
|
+
const results = await Promise.allSettled(Array.from(this.selectedIds).map(id => salla.cart.quickAdd(id)));
|
|
111
|
+
if (results.some(r => r.status === 'rejected')) {
|
|
112
|
+
salla.error(salla.lang.get('common.messages.error'));
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
finally {
|
|
116
|
+
this.isAdding = false;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
getSkeletonView() {
|
|
120
|
+
return (h(Host, { class: "s-bought-together-entry" }, h("div", { class: "s-bought-together-skeleton" }, h("div", { class: "s-bought-together-skeleton-header" }, h("salla-skeleton", { height: "16px", width: "35%" }), h("salla-skeleton", { height: "10px", width: "60%" })), Array(4).fill(null).map((_, i) => (h("div", { key: i, class: "s-bought-together-skeleton-item" }, h("salla-skeleton", { height: "22px", width: "22px" }), h("salla-skeleton", { height: "48px", width: "48px" }), h("div", { class: "s-bought-together-skeleton-info" }, h("salla-skeleton", { height: "12px", width: "55%", style: { marginBottom: '3px' } }), h("salla-skeleton", { height: "10px", width: "25%" }))))), h("salla-skeleton", { height: "44px", width: "100%" }))));
|
|
121
|
+
}
|
|
122
|
+
render() {
|
|
123
|
+
if (!this.canRender)
|
|
124
|
+
return null;
|
|
125
|
+
if (this.isLoading)
|
|
126
|
+
return this.getSkeletonView();
|
|
127
|
+
if (!this.recommendations.length)
|
|
128
|
+
return null;
|
|
129
|
+
return (h(Host, { class: "s-bought-together-entry" }, h("div", { class: "s-bought-together-header" }, h("h3", { class: "s-bought-together-title" }, this.title), h("p", { class: "s-bought-together-subtitle" }, this.subtitle)), h("div", { class: "s-bought-together-list" }, this.recommendations.map((product) => (h("div", { key: product.id, class: `s-bought-together-item${!this.selectedIds.has(product.id) ? ' s-bought-together-item--unchecked' : ''}` }, h("label", { class: "s-bought-together-checkbox-label" }, h("input", { type: "checkbox", class: "s-bought-together-checkbox", checked: this.selectedIds.has(product.id), onChange: () => this.toggleProduct(product.id) }), h("span", { class: "s-bought-together-checkmark" })), h("a", { class: "s-bought-together-item-link", href: product.url }, h("img", { class: "s-bought-together-item-img", src: product.image?.url || salla.url.cdn('images/s-empty.png'), alt: product.image?.alt || product.name, loading: "lazy", decoding: "async", onError: e => {
|
|
130
|
+
e.currentTarget.onerror = null;
|
|
131
|
+
e.currentTarget.src = salla.url.cdn('images/s-empty.png');
|
|
132
|
+
} }), h("span", { class: "s-bought-together-item-name" }, product.name)), h("span", { class: "s-bought-together-item-price", innerHTML: salla.money(product.price) }))))), h("salla-button", { class: "s-bought-together-btn", disabled: !this.selectedIds.size || this.isAdding, loading: this.isAdding, onClick: () => this.addSelectedToCart() }, h("span", { innerHTML: `${this.buyTogetherFor} ${this.totalPrice}` }))));
|
|
133
|
+
}
|
|
134
|
+
static get style() { return sallaBoughtTogetherCss; }
|
|
135
|
+
}, [0, "salla-bought-together", {
|
|
136
|
+
"limit": [2],
|
|
137
|
+
"recommendations": [32],
|
|
138
|
+
"selectedIds": [32],
|
|
139
|
+
"isLoading": [32],
|
|
140
|
+
"canRender": [32],
|
|
141
|
+
"isAdding": [32],
|
|
142
|
+
"title": [32],
|
|
143
|
+
"subtitle": [32],
|
|
144
|
+
"buyTogetherFor": [32]
|
|
145
|
+
}]);
|
|
146
|
+
function defineCustomElement$1() {
|
|
147
|
+
if (typeof customElements === "undefined") {
|
|
148
|
+
return;
|
|
149
|
+
}
|
|
150
|
+
const components = ["salla-bought-together", "salla-button", "salla-skeleton"];
|
|
151
|
+
components.forEach(tagName => { switch (tagName) {
|
|
152
|
+
case "salla-bought-together":
|
|
153
|
+
if (!customElements.get(tagName)) {
|
|
154
|
+
customElements.define(tagName, SallaBoughtTogether$1);
|
|
155
|
+
}
|
|
156
|
+
break;
|
|
157
|
+
case "salla-button":
|
|
158
|
+
if (!customElements.get(tagName)) {
|
|
159
|
+
defineCustomElement$3();
|
|
160
|
+
}
|
|
161
|
+
break;
|
|
162
|
+
case "salla-skeleton":
|
|
163
|
+
if (!customElements.get(tagName)) {
|
|
164
|
+
defineCustomElement$2();
|
|
165
|
+
}
|
|
166
|
+
break;
|
|
167
|
+
} });
|
|
168
|
+
}
|
|
169
|
+
defineCustomElement$1();
|
|
170
|
+
|
|
171
|
+
const SallaBoughtTogether = SallaBoughtTogether$1;
|
|
172
|
+
const defineCustomElement = defineCustomElement$1;
|
|
173
|
+
|
|
174
|
+
export { SallaBoughtTogether, defineCustomElement };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Crafted with ❤ by Salla
|
|
3
3
|
*/
|
|
4
|
-
import { h } from './index-
|
|
4
|
+
import { h } from './index-eYsXdqjv.js';
|
|
5
5
|
|
|
6
6
|
function nearestLowerMultiple(number, multipleOf = window.matchMedia('(min-width: 768px)').matches ? 3 : 2) {
|
|
7
7
|
return number < multipleOf ? number : number - (number % multipleOf);
|