@salla.sa/twilight-components 2.14.482 → 2.14.484
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-BHXz3A1Q.js → filepond-CgzJykLb.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-poster-B1el8oDJ.js → filepond-plugin-file-poster-QDPQ7mwB.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-size-D5kDke66.js → filepond-plugin-file-validate-size-Bad-w2I9.js} +1 -1
- package/dist/cjs/{filepond-plugin-file-validate-type-CUvuoQyP.js → filepond-plugin-file-validate-type-DISG2_qB.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-edit-C5LY3BCc.js → filepond-plugin-image-edit-CVHAGWaB.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-exif-orientation-DzmSRK6Z.js → filepond-plugin-image-exif-orientation-Dwsj5VyO.js} +1 -1
- package/dist/cjs/{filepond-plugin-image-preview-Dy70l4bq.js → filepond-plugin-image-preview-I9g9nrNa.js} +1 -1
- package/dist/cjs/{functions-Cxbc6q17.js → functions-hUb6T9a1.js} +1 -1
- package/dist/cjs/{index-BjphdATw.js → index-BADADy4V.js} +1 -1
- package/dist/cjs/{index-B9uuwC5y.js → index-BKQzclgF.js} +2 -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_5.cjs.entry.js +66 -7
- 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_2.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-cashback-banner.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-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-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_2.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.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-branch.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_3.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-size-guide.cjs.entry.js +1 -1
- package/dist/cjs/salla-products-list.cjs.entry.js +22 -6
- 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/salla-wishlist-actions.cjs.entry.js +1 -1
- package/dist/cjs/{tracked-promise-DBpdtaXl.js → tracked-promise-czeUB0TX.js} +1 -1
- package/dist/cjs/twilight.cjs.js +2 -2
- package/dist/cjs/{vanilla-picker-cyq6K0DC.js → vanilla-picker-CuMQuW8m.js} +1 -1
- package/dist/collection/collection-manifest.json +0 -1
- package/dist/collection/components/salla-product-options/availability-utils.js +46 -4
- package/dist/collection/components/salla-product-options/salla-product-options.js +39 -2
- package/dist/collection/components/salla-products-list/salla-products-list.js +21 -5
- package/dist/components/index.js +2 -2
- package/dist/components/salla-product-options2.js +66 -6
- package/dist/components/salla-products-list2.js +21 -5
- package/dist/esm/{filepond-DAX5UEU5.js → filepond-BOBokEx5.js} +1 -1
- package/dist/esm/{filepond-plugin-file-poster-CmoCs5ch.js → filepond-plugin-file-poster-D9HYZEnq.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-size-Cx-BnpL2.js → filepond-plugin-file-validate-size-B1BkZh58.js} +1 -1
- package/dist/esm/{filepond-plugin-file-validate-type-DWn1unek.js → filepond-plugin-file-validate-type-CT0ni0hb.js} +1 -1
- package/dist/esm/{filepond-plugin-image-edit-CB-tZOhi.js → filepond-plugin-image-edit-CvSKiYON.js} +1 -1
- package/dist/esm/{filepond-plugin-image-exif-orientation-BoE-WIq-.js → filepond-plugin-image-exif-orientation-Cu1zifQ6.js} +1 -1
- package/dist/esm/{filepond-plugin-image-preview-CqzJUKHP.js → filepond-plugin-image-preview-6m913ljw.js} +1 -1
- package/dist/esm/{functions-hQdz9hf-.js → functions-CioYIS_L.js} +1 -1
- package/dist/esm/{index-DTEQDm6d.js → index-CiFCAiRL.js} +1 -1
- package/dist/esm/{index-BmFJLtoi.js → index-k6XsozPW.js} +2 -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_5.entry.js +66 -7
- 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_2.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-cashback-banner.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-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-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_2.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.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-branch.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_3.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-size-guide.entry.js +1 -1
- package/dist/esm/salla-products-list.entry.js +22 -6
- 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/salla-wishlist-actions.entry.js +1 -1
- package/dist/esm/{tracked-promise-BoBzcOVR.js → tracked-promise-CdkA_JjX.js} +1 -1
- package/dist/esm/twilight.js +3 -3
- package/dist/esm/{vanilla-picker-CsxkkcBh.js → vanilla-picker-BZWJ0V9v.js} +1 -1
- package/dist/twilight/p-01a4c68d.entry.js +4 -0
- package/dist/twilight/{p-f83f5f79.entry.js → p-027b0223.entry.js} +1 -1
- package/dist/twilight/{p-25bdb907.entry.js → p-0567c659.entry.js} +1 -1
- package/dist/twilight/{p-3bae4143.entry.js → p-0882266c.entry.js} +1 -1
- package/dist/twilight/{p-1e3bca03.entry.js → p-08fe51be.entry.js} +1 -1
- package/dist/twilight/{p-66eccd4e.entry.js → p-10d25bed.entry.js} +1 -1
- package/dist/twilight/{p-1671c056.entry.js → p-12221625.entry.js} +1 -1
- package/dist/twilight/{p-fb23d620.entry.js → p-1308a7f4.entry.js} +1 -1
- package/dist/twilight/{p-495097b0.entry.js → p-159fb121.entry.js} +1 -1
- package/dist/twilight/{p-ccac7ed0.entry.js → p-1d8eeff8.entry.js} +1 -1
- package/dist/twilight/{p-0d7bbb06.entry.js → p-215f22bf.entry.js} +1 -1
- package/dist/twilight/{p-a9f88f85.entry.js → p-236d6236.entry.js} +1 -1
- package/dist/twilight/{p-e74d8459.entry.js → p-277fa567.entry.js} +1 -1
- package/dist/twilight/{p-23e3eb95.entry.js → p-2b80d6bd.entry.js} +1 -1
- package/dist/twilight/{p-b48ba32a.entry.js → p-338810f6.entry.js} +1 -1
- package/dist/twilight/{p-72d2b19f.entry.js → p-34bb19ed.entry.js} +1 -1
- package/dist/twilight/{p-8c729878.entry.js → p-38831a43.entry.js} +1 -1
- package/dist/twilight/{p-8d2a81b0.entry.js → p-3be35606.entry.js} +1 -1
- package/dist/twilight/{p-Ce6fXRqk.js → p-3nNP8OVW.js} +1 -1
- package/dist/twilight/{p-9e6cb545.entry.js → p-4361f318.entry.js} +1 -1
- package/dist/twilight/{p-6db3f67b.entry.js → p-43caeaa9.entry.js} +1 -1
- package/dist/twilight/p-43e35e87.entry.js +4 -0
- package/dist/twilight/{p-3f249ea4.entry.js → p-48c49122.entry.js} +1 -1
- package/dist/twilight/{p-c4a37061.entry.js → p-4a2522e6.entry.js} +1 -1
- package/dist/twilight/{p-190364a4.entry.js → p-4a466458.entry.js} +1 -1
- package/dist/twilight/{p-0f2a8072.entry.js → p-4ccb7dbf.entry.js} +1 -1
- package/dist/twilight/{p-d243a973.entry.js → p-4cdc5eb0.entry.js} +1 -1
- package/dist/twilight/{p-b2c65720.entry.js → p-54feea36.entry.js} +1 -1
- package/dist/twilight/{p-c13103f9.entry.js → p-5d0017eb.entry.js} +1 -1
- package/dist/twilight/{p-f1e04195.entry.js → p-5e6745be.entry.js} +1 -1
- package/dist/twilight/{p-96467104.entry.js → p-6221c7fd.entry.js} +1 -1
- package/dist/twilight/{p-bb4affa3.entry.js → p-65986434.entry.js} +1 -1
- package/dist/twilight/{p-de6b5801.entry.js → p-65e84413.entry.js} +1 -1
- package/dist/twilight/{p-4e9a9071.entry.js → p-67b9bef4.entry.js} +1 -1
- package/dist/twilight/{p-0209568e.entry.js → p-680ee21a.entry.js} +1 -1
- package/dist/twilight/{p-78a9880e.entry.js → p-69f6aea4.entry.js} +1 -1
- package/dist/twilight/{p-410a4744.entry.js → p-6a520655.entry.js} +1 -1
- package/dist/twilight/{p-6387b132.entry.js → p-6b622cdf.entry.js} +1 -1
- package/dist/twilight/{p-b47719b5.entry.js → p-6b7a391d.entry.js} +1 -1
- package/dist/twilight/{p-739c39e9.entry.js → p-6bcd63ae.entry.js} +1 -1
- package/dist/twilight/{p-e095a7d1.entry.js → p-6e708a89.entry.js} +1 -1
- package/dist/twilight/{p-5622f4cb.entry.js → p-6fce9b27.entry.js} +1 -1
- package/dist/twilight/{p-08c5b2bb.entry.js → p-6fd14051.entry.js} +1 -1
- package/dist/twilight/{p-034745a7.entry.js → p-71371a68.entry.js} +1 -1
- package/dist/twilight/{p-1630fc53.entry.js → p-78b63b85.entry.js} +1 -1
- package/dist/twilight/{p-51126a79.entry.js → p-7b9f7996.entry.js} +1 -1
- package/dist/twilight/{p-29f65d08.entry.js → p-7e16042a.entry.js} +1 -1
- package/dist/twilight/{p-fe6b38a8.entry.js → p-80898e8c.entry.js} +1 -1
- package/dist/twilight/{p-31153a53.entry.js → p-876984e8.entry.js} +1 -1
- package/dist/twilight/{p-6ce3edc6.entry.js → p-894d4262.entry.js} +1 -1
- package/dist/twilight/{p-5ed51ea1.entry.js → p-8fddef9f.entry.js} +1 -1
- package/dist/twilight/{p-180c0ca5.entry.js → p-910ca1ce.entry.js} +1 -1
- package/dist/twilight/{p-7dc07299.entry.js → p-98bd4d1d.entry.js} +1 -1
- package/dist/twilight/{p-78246e72.entry.js → p-98cb2ad9.entry.js} +1 -1
- package/dist/twilight/{p-ec9b118c.entry.js → p-99372423.entry.js} +1 -1
- package/dist/twilight/{p-Bcg-je74.js → p-BjmKgRE2.js} +1 -1
- package/dist/twilight/{p-DGptAQB8.js → p-C6HZIai8.js} +1 -1
- package/dist/twilight/{p-B9arPRZj.js → p-C8JaiU7x.js} +1 -1
- package/dist/twilight/{p-DEKXmzPE.js → p-CYnG82Sr.js} +1 -1
- package/dist/twilight/{p-w8-d2MD6.js → p-DIe-ZaHw.js} +1 -1
- package/dist/twilight/{p-C95Jqawg.js → p-DThnTW1t.js} +1 -1
- package/dist/twilight/{p-DkoUjMC3.js → p-Do0Z2RvW.js} +1 -1
- package/dist/twilight/{p-WuZcMqCu.js → p-Dt7QetEN.js} +1 -1
- package/dist/twilight/{p-BV6J7gVl.js → p-RS-U17dA.js} +1 -1
- package/dist/twilight/{p-7d8b20c8.entry.js → p-a986efd7.entry.js} +1 -1
- package/dist/twilight/{p-4b3f6cd2.entry.js → p-ad24f7b7.entry.js} +1 -1
- package/dist/twilight/{p-dd208824.entry.js → p-ae1ff5a4.entry.js} +1 -1
- package/dist/twilight/{p-069d56cc.entry.js → p-ae40baf7.entry.js} +1 -1
- package/dist/twilight/{p-b5793358.entry.js → p-aefc937f.entry.js} +1 -1
- package/dist/twilight/p-af0f3c54.entry.js +4 -0
- package/dist/twilight/{p-1732f2b2.entry.js → p-afdcb549.entry.js} +1 -1
- package/dist/twilight/{p-e5336dcb.entry.js → p-b3b5f52a.entry.js} +1 -1
- package/dist/twilight/{p-ca0f40dc.entry.js → p-b4e487a3.entry.js} +1 -1
- package/dist/twilight/{p-52562de7.entry.js → p-b4e6ee26.entry.js} +1 -1
- package/dist/twilight/{p-2d92f08a.entry.js → p-b586e687.entry.js} +1 -1
- package/dist/twilight/{p-1f01e02d.entry.js → p-c4dd7259.entry.js} +1 -1
- package/dist/twilight/{p-7cc906fd.entry.js → p-c54b5512.entry.js} +1 -1
- package/dist/twilight/{p-8706b6a0.entry.js → p-ca338609.entry.js} +1 -1
- package/dist/twilight/{p-8a491693.entry.js → p-cd3a81d5.entry.js} +1 -1
- package/dist/twilight/p-df18ce74.entry.js +4 -0
- package/dist/twilight/{p-760bd859.entry.js → p-df2b2d2c.entry.js} +1 -1
- package/dist/twilight/{p-a99b352b.entry.js → p-df9735e4.entry.js} +1 -1
- package/dist/twilight/{p-096a708f.entry.js → p-e00ab427.entry.js} +1 -1
- package/dist/twilight/{p-5e4239e3.entry.js → p-e0eb1171.entry.js} +1 -1
- package/dist/twilight/{p-64980c56.entry.js → p-e2b9a669.entry.js} +1 -1
- package/dist/twilight/{p-def1cf41.entry.js → p-e7c43f45.entry.js} +1 -1
- package/dist/twilight/{p-57636818.entry.js → p-f04e749d.entry.js} +1 -1
- package/dist/twilight/{p-90475264.entry.js → p-f10c4351.entry.js} +1 -1
- package/dist/twilight/{p-08af584f.entry.js → p-f2155a0e.entry.js} +1 -1
- package/dist/twilight/{p-ad59d8f6.entry.js → p-f30850eb.entry.js} +1 -1
- package/dist/twilight/{p-16edb507.entry.js → p-f84a2d1f.entry.js} +1 -1
- package/dist/twilight/{p-88609f65.entry.js → p-f9d747fd.entry.js} +1 -1
- package/dist/twilight/{p-dc6ba997.entry.js → p-faecf830.entry.js} +1 -1
- package/dist/twilight/{p-b88ce9c1.entry.js → p-faedf801.entry.js} +1 -1
- package/dist/twilight/p-fc77d2ae.entry.js +4 -0
- package/dist/twilight/{p-d839d4ec.entry.js → p-fd0d78b0.entry.js} +1 -1
- package/dist/twilight/p-fda44045.entry.js +4 -0
- package/dist/twilight/{p-4a531040.entry.js → p-fe435826.entry.js} +1 -1
- package/dist/twilight/{p-BmFJLtoi.js → p-k6XsozPW.js} +1 -1
- package/dist/twilight/{p-DT96HiMD.js → p-k6hKHe3o.js} +1 -1
- package/dist/twilight/twilight.esm.js +1 -1
- package/dist/types/components/salla-product-options/availability-utils.d.ts +8 -1
- package/dist/types/components/salla-product-options/salla-product-options.d.ts +11 -0
- package/dist/types/components/salla-products-list/salla-products-list.d.ts +1 -0
- package/dist/types/components.d.ts +10 -37
- package/package.json +5 -5
- package/dist/cjs/salla-cart-summary-card.cjs.entry.js +0 -349
- package/dist/collection/components/salla-cart-summary-card/salla-cart-summary-card.js +0 -401
- package/dist/components/salla-cart-summary-card.d.ts +0 -11
- package/dist/components/salla-cart-summary-card.js +0 -404
- package/dist/esm/salla-cart-summary-card.entry.js +0 -347
- package/dist/twilight/p-04752b3a.entry.js +0 -4
- package/dist/twilight/p-15d93b1d.entry.js +0 -4
- package/dist/twilight/p-3de87ed4.entry.js +0 -4
- package/dist/twilight/p-5c4ee6f0.entry.js +0 -4
- package/dist/twilight/p-6023e80c.entry.js +0 -4
- package/dist/twilight/p-994bf3ae.entry.js +0 -4
- package/dist/twilight/p-f6796ea9.entry.js +0 -4
- package/dist/types/components/salla-cart-summary-card/salla-cart-summary-card.d.ts +0 -67
|
@@ -15,8 +15,15 @@
|
|
|
15
15
|
*
|
|
16
16
|
* skus_availability is always the authoritative source when present; is_out is
|
|
17
17
|
* consulted only as a last resort when a detail has no SKU data at all.
|
|
18
|
+
*
|
|
19
|
+
* For unlimited products (no SKU data, or all SKUs false), all options default
|
|
20
|
+
* to available unless explicitly marked as out of stock.
|
|
21
|
+
*
|
|
22
|
+
* @param isProductAvailable – whether product is available at the parent level
|
|
23
|
+
* (e.g., quantity > 0 or -1 for unlimited). If true and all SKUs are false,
|
|
24
|
+
* treat as available (data is incomplete or product is unlimited).
|
|
18
25
|
*/
|
|
19
|
-
export function computeAvailabilityMap(optionsData, selectedOptions) {
|
|
26
|
+
export function computeAvailabilityMap(optionsData, selectedOptions, isProductAvailable = true) {
|
|
20
27
|
const map = {};
|
|
21
28
|
if (!optionsData?.length)
|
|
22
29
|
return map;
|
|
@@ -24,6 +31,22 @@ export function computeAvailabilityMap(optionsData, selectedOptions) {
|
|
|
24
31
|
const isSingleGroup = variantGroups.length <= 1;
|
|
25
32
|
// Non-advance options carry no variant SKUs — never let them constrain the intersection.
|
|
26
33
|
const nonAdvanceOptionIds = new Set(optionsData.filter(opt => opt.is_advance === false).map(opt => opt.id));
|
|
34
|
+
// Unlimited product (no SKU data) — all options default to available unless explicitly marked.
|
|
35
|
+
if (variantGroups.length === 0) {
|
|
36
|
+
for (const optionGroup of optionsData) {
|
|
37
|
+
for (const detail of optionGroup.details) {
|
|
38
|
+
map[detail.id] = detail.is_out ? 'out_of_stock' : 'available';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return map;
|
|
42
|
+
}
|
|
43
|
+
// The isProductAvailable fallback (promote all-false SKUs to 'available') is only safe
|
|
44
|
+
// when the product carries NO in-stock SKU anywhere — that signals placeholder/incomplete
|
|
45
|
+
// SKU data for an unlimited product. If ANY SKU in the product is in stock, the data is
|
|
46
|
+
// real and all-false details are genuinely out of stock; promoting them would let shoppers
|
|
47
|
+
// pick an unfulfillable variant of a partially-available limited product.
|
|
48
|
+
const productHasAnyTrueSku = variantGroups.some(opt => opt.details?.some(d => d.skus_availability && Object.values(d.skus_availability).some(Boolean)));
|
|
49
|
+
const allowUnlimitedFallback = isProductAvailable && !productHasAnyTrueSku;
|
|
27
50
|
for (const optionGroup of variantGroups) {
|
|
28
51
|
const otherSelected = selectedOptions.filter(s => s.option_id !== optionGroup.id);
|
|
29
52
|
for (const detail of optionGroup.details) {
|
|
@@ -34,9 +57,17 @@ export function computeAvailabilityMap(optionsData, selectedOptions) {
|
|
|
34
57
|
continue;
|
|
35
58
|
}
|
|
36
59
|
const detailSkus = Object.keys(skusAvail).map(Number);
|
|
60
|
+
const hasAnyTrueSku = detailSkus.some(sku => skusAvail[sku]);
|
|
37
61
|
// No cross-group context yet — evaluate this detail's own SKUs directly.
|
|
38
62
|
if (isSingleGroup || otherSelected.length === 0) {
|
|
39
|
-
|
|
63
|
+
// If product is available but all SKUs are false, treat as available
|
|
64
|
+
// (data incomplete or product is unlimited with placeholder SKU data).
|
|
65
|
+
if (!hasAnyTrueSku && allowUnlimitedFallback) {
|
|
66
|
+
map[detail.id] = 'available';
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
map[detail.id] = hasAnyTrueSku ? 'available' : 'out_of_stock';
|
|
70
|
+
}
|
|
40
71
|
continue;
|
|
41
72
|
}
|
|
42
73
|
// Intersect this detail's SKUs with those of each other selected detail.
|
|
@@ -47,11 +78,22 @@ export function computeAvailabilityMap(optionsData, selectedOptions) {
|
|
|
47
78
|
const otherSkus = new Set(Object.keys(other.skus_availability || {}).map(Number));
|
|
48
79
|
candidates = candidates.filter(sku => otherSkus.has(sku));
|
|
49
80
|
}
|
|
81
|
+
// Empty intersection normally means an unfulfillable combination. But when the
|
|
82
|
+
// unlimited fallback applies (no true SKU anywhere — placeholder data), there are
|
|
83
|
+
// no real stock constraints, so a non-overlapping SKU set is a data artifact, not
|
|
84
|
+
// an impossible combination.
|
|
50
85
|
if (!candidates.length) {
|
|
51
|
-
map[detail.id] = 'impossible';
|
|
86
|
+
map[detail.id] = allowUnlimitedFallback ? 'available' : 'impossible';
|
|
52
87
|
continue;
|
|
53
88
|
}
|
|
54
|
-
|
|
89
|
+
const hasAvailableCandidate = candidates.some(sku => skusAvail[sku]);
|
|
90
|
+
// If product available but no candidates match true SKUs, treat as available.
|
|
91
|
+
if (!hasAvailableCandidate && allowUnlimitedFallback) {
|
|
92
|
+
map[detail.id] = 'available';
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
map[detail.id] = hasAvailableCandidate ? 'available' : 'out_of_stock';
|
|
96
|
+
}
|
|
55
97
|
}
|
|
56
98
|
}
|
|
57
99
|
return map;
|
|
@@ -29,6 +29,17 @@ export class SallaProductOptions {
|
|
|
29
29
|
this.userInitiatedValidation = false;
|
|
30
30
|
this.isCartMode = false;
|
|
31
31
|
this.availabilityMap = {};
|
|
32
|
+
/**
|
|
33
|
+
* Whether the product is available at the parent level (quantity > 0, or unlimited).
|
|
34
|
+
* Controls the unlimited-product fallback in computeAvailabilityMap: only when true is a
|
|
35
|
+
* detail with all-false SKUs treated as available (placeholder/incomplete data).
|
|
36
|
+
*
|
|
37
|
+
* The API path derives this automatically from `is_out_of_stock`. When options are supplied
|
|
38
|
+
* via the `options` prop, callers must set `product-available` explicitly — it defaults to
|
|
39
|
+
* false so genuinely out-of-stock products are never silently promoted to available.
|
|
40
|
+
* (Truly unlimited products with no SKU data are handled separately and don't need this.)
|
|
41
|
+
*/
|
|
42
|
+
this.productAvailable = false;
|
|
32
43
|
this.outSkus = [];
|
|
33
44
|
/**
|
|
34
45
|
* Avoid selection of previous default or selected card value option
|
|
@@ -115,7 +126,10 @@ export class SallaProductOptions {
|
|
|
115
126
|
this.setOptionsData([]);
|
|
116
127
|
}
|
|
117
128
|
if (this.productId && !salla.url.is_page('cart')) {
|
|
118
|
-
salla.api.product.getDetails(this.productId, ['options']).then(resp =>
|
|
129
|
+
salla.api.product.getDetails(this.productId, ['options']).then(resp => {
|
|
130
|
+
this.productAvailable = !resp.data.is_out_of_stock;
|
|
131
|
+
this.setOptionsData(resp.data.options);
|
|
132
|
+
});
|
|
119
133
|
}
|
|
120
134
|
}
|
|
121
135
|
/**
|
|
@@ -469,6 +483,9 @@ export class SallaProductOptions {
|
|
|
469
483
|
}
|
|
470
484
|
}
|
|
471
485
|
this.outOfStockText = salla.lang.get('pages.products.out_of_stock');
|
|
486
|
+
// Props (e.g. product-available) are not set during the constructor, so recompute the
|
|
487
|
+
// availability map now that the prop value supplied on the options-prop path is applied.
|
|
488
|
+
this.computeAvailability();
|
|
472
489
|
await salla.onReady();
|
|
473
490
|
this.canDisabled = !salla.config.get('store.settings.product.notify_options_availability') || salla.url.is_page('cart');
|
|
474
491
|
this.pasteHandler = this.handlePaste.bind(this);
|
|
@@ -781,7 +798,7 @@ export class SallaProductOptions {
|
|
|
781
798
|
return detailName.replace('<i class=sicon-sar></i>', salla.config.currency()?.symbol || 'ر.س');
|
|
782
799
|
}
|
|
783
800
|
computeAvailability() {
|
|
784
|
-
this.availabilityMap = computeAvailabilityMap(this.optionsData || [], this.selectedOptions || []);
|
|
801
|
+
this.availabilityMap = computeAvailabilityMap(this.optionsData || [], this.selectedOptions || [], this.productAvailable);
|
|
785
802
|
}
|
|
786
803
|
isOptionDetailOut(detail) {
|
|
787
804
|
const status = this.availabilityMap[detail.id];
|
|
@@ -931,6 +948,26 @@ export class SallaProductOptions {
|
|
|
931
948
|
}
|
|
932
949
|
static get properties() {
|
|
933
950
|
return {
|
|
951
|
+
"productAvailable": {
|
|
952
|
+
"type": "boolean",
|
|
953
|
+
"attribute": "product-available",
|
|
954
|
+
"mutable": true,
|
|
955
|
+
"complexType": {
|
|
956
|
+
"original": "boolean",
|
|
957
|
+
"resolved": "boolean",
|
|
958
|
+
"references": {}
|
|
959
|
+
},
|
|
960
|
+
"required": false,
|
|
961
|
+
"optional": false,
|
|
962
|
+
"docs": {
|
|
963
|
+
"tags": [],
|
|
964
|
+
"text": "Whether the product is available at the parent level (quantity > 0, or unlimited).\nControls the unlimited-product fallback in computeAvailabilityMap: only when true is a\ndetail with all-false SKUs treated as available (placeholder/incomplete data).\n\nThe API path derives this automatically from `is_out_of_stock`. When options are supplied\nvia the `options` prop, callers must set `product-available` explicitly \u2014 it defaults to\nfalse so genuinely out-of-stock products are never silently promoted to available.\n(Truly unlimited products with no SKU data are handled separately and don't need this.)"
|
|
965
|
+
},
|
|
966
|
+
"getter": false,
|
|
967
|
+
"setter": false,
|
|
968
|
+
"reflect": false,
|
|
969
|
+
"defaultValue": "false"
|
|
970
|
+
},
|
|
934
971
|
"productId": {
|
|
935
972
|
"type": "any",
|
|
936
973
|
"attribute": "product-id",
|
|
@@ -406,13 +406,18 @@ export class SallaProductsList {
|
|
|
406
406
|
}
|
|
407
407
|
waitForLayoutStable(element) {
|
|
408
408
|
let timeout = null;
|
|
409
|
+
let maxWait = null;
|
|
409
410
|
return new Promise(resolve => {
|
|
410
|
-
|
|
411
|
+
let observer;
|
|
412
|
+
const settle = () => {
|
|
411
413
|
clearTimeout(timeout);
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
414
|
+
clearTimeout(maxWait);
|
|
415
|
+
observer.disconnect();
|
|
416
|
+
resolve(null);
|
|
417
|
+
};
|
|
418
|
+
observer = new MutationObserver(() => {
|
|
419
|
+
clearTimeout(timeout);
|
|
420
|
+
timeout = setTimeout(settle, 160); // Adjust delay as needed for your layout
|
|
416
421
|
});
|
|
417
422
|
// Observe changes to the entire body, including child nodes and attributes.
|
|
418
423
|
observer.observe(element, {
|
|
@@ -420,6 +425,8 @@ export class SallaProductsList {
|
|
|
420
425
|
subtree: true,
|
|
421
426
|
attributes: true,
|
|
422
427
|
});
|
|
428
|
+
// hard cap so a quiescent DOM still resolves and disconnects the observer
|
|
429
|
+
maxWait = setTimeout(settle, 1000);
|
|
423
430
|
});
|
|
424
431
|
}
|
|
425
432
|
async waitForStableLayout(element) {
|
|
@@ -699,6 +706,7 @@ export class SallaProductsList {
|
|
|
699
706
|
this.loadMoreWrapper.style.display = 'block';
|
|
700
707
|
}
|
|
701
708
|
this.animateItems();
|
|
709
|
+
this.refreshInfiniteScrollMeasurements();
|
|
702
710
|
}
|
|
703
711
|
}
|
|
704
712
|
catch (error) {
|
|
@@ -750,6 +758,13 @@ export class SallaProductsList {
|
|
|
750
758
|
this.infiniteScroll.loadNextPage();
|
|
751
759
|
}
|
|
752
760
|
}
|
|
761
|
+
// re-measure scroll trigger after layout settles; stale `top` breaks autoload
|
|
762
|
+
refreshInfiniteScrollMeasurements() {
|
|
763
|
+
if (!this.autoload || !this.infiniteScroll?.updateMeasurements) {
|
|
764
|
+
return;
|
|
765
|
+
}
|
|
766
|
+
this.waitForStableLayout(document.body).then(() => this.infiniteScroll?.updateMeasurements?.());
|
|
767
|
+
}
|
|
753
768
|
async applyBeforeBuildListUrl(url) {
|
|
754
769
|
try {
|
|
755
770
|
const ctx = { component: this, url };
|
|
@@ -931,6 +946,7 @@ export class SallaProductsList {
|
|
|
931
946
|
this.loadMoreWrapper && (this.loadMoreWrapper.style.display = 'block');
|
|
932
947
|
}
|
|
933
948
|
this.scrollToLastViewedProduct();
|
|
949
|
+
this.refreshInfiniteScrollMeasurements();
|
|
934
950
|
}
|
|
935
951
|
else if (!this.firstPageResponse && this.switchToNormalBehavior) {
|
|
936
952
|
this.getInitialData()
|