gw-customer-accounts 1.2.1 → 1.2.3

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/package.json CHANGED
@@ -1,13 +1,17 @@
1
1
  {
2
2
  "name": "gw-customer-accounts",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "description": "",
5
5
  "main": "gw-customer-accounts.js",
6
+ "type": "module",
6
7
  "scripts": {
7
8
  "test": "echo \"Error: no test specified\" && exit 1",
8
9
  "build:js": "vite build",
9
10
  "build:css": "postcss src/styles/main.css -o dist/main.css",
10
- "format": "prettier --write ."
11
+ "format": "prettier --write .",
12
+ "build:watch": "vite build --watch",
13
+ "preview": "vite preview --port 3000",
14
+ "dev": "concurrently \"npm run build:watch\" \"npm run preview\""
11
15
  },
12
16
  "repository": {
13
17
  "type": "git",
@@ -20,6 +24,7 @@
20
24
  },
21
25
  "homepage": "https://github.com/sellry/customer-accounts#readme",
22
26
  "devDependencies": {
27
+ "concurrently": "^9.1.2",
23
28
  "cssnano": "^7.0.6",
24
29
  "postcss-cli": "^11.0.0",
25
30
  "prettier": "^3.4.2",
@@ -403,6 +403,9 @@ customElements.define(
403
403
  */
404
404
  _renderTab(tabId) {
405
405
  this.tabGroup.show(tabId || GWUtils.tabId);
406
+ console.log('Rendering tab:', tabId || GWUtils.tabId);
407
+ console.log('sl-tab-group', customElements.get('sl-tab-group'));
408
+ console.log('sl-tab-panel', customElements.get('sl-tab-panel'));
406
409
  }
407
410
 
408
411
  /**
package/vite.config.js CHANGED
@@ -4,6 +4,7 @@ import { resolve } from 'path';
4
4
  export default defineConfig({
5
5
  build: {
6
6
  outDir: 'dist',
7
+ base: './dist',
7
8
  cssCodeSplit: true,
8
9
  minify: 'esbuild',
9
10
  rollupOptions: {
@@ -48,4 +49,9 @@ export default defineConfig({
48
49
  },
49
50
  },
50
51
  },
52
+ server: {
53
+ cors: true,
54
+ host: '0.0.0.0',
55
+ port: 3000,
56
+ },
51
57
  });
@@ -1 +0,0 @@
1
- import{G as a,a as i}from"./assets/index-DI2a6rRk.js";customElements.define("gw-address-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.type=this.getAttribute("type"),this.addressId=this.getAttribute("address-id")}connectedCallback(){if(this._handleFormSubmit(),this.type==="edit"){const e=this.querySelector("[data-delete-address]");if(!e)return;e.addEventListener("click",()=>{this._deleteAddress()})}this.type}async _handleFormSubmit(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{this.form.addEventListener("sl-invalid",e=>{e.preventDefault(),this._clearErrorMessages(),this.form.querySelectorAll("sl-input").forEach(t=>{if(t.hasAttribute("data-invalid")){const r=document.createElement("div");r.slot="help-text",r.classList.add("gw-error-message"),r.textContent=t.validationMessage,t.appendChild(r)}}),e.target.focus()},{capture:!0}),this.form.addEventListener("submit",e=>{e.preventDefault();const t=new FormData(this.form),r=Object.fromEntries(t.entries());this._submitAddressForm(r)})})}async _submitAddressForm(e){try{this._clearErrorMessages(),this.form.querySelector("[data-loader]").hidden=!1,e.province&&(e.province=e.province.replaceAll("_"," ")),e.country=e.country.replaceAll("_"," ");let t=e.isDefault;delete e.isDefault;let r=null;if(this.type==="edit"?r=await a.request(i.ENDPOINTS.ADDRESS.EDIT,{address:e,addrID:this.addressId,isDefault:t}):r=await a.request(i.ENDPOINTS.ADDRESS.ADD,{address:e,isDefault:t}),r.error)throw new Error(r.error);this.form.closest("sl-drawer").hide(),a.updateAjaxContent(["[data-gw-addresses-list]","[data-gw-addresses-carousel]"])}catch(t){console.error(t)}finally{this.form.querySelector("[data-loader]").hidden=!0}}async _deleteAddress(){try{this.querySelector("[data-delete-address]").querySelector("[data-loader]").hidden=!1;let e=await a.request(i.ENDPOINTS.ADDRESS.REMOVE,{addrID:this.addressId});if(e.error)throw new Error(e.error);this.form.closest("sl-drawer").hide(),await a.app.updateContent(["[data-gw-addresses-list]","[data-gw-addresses-carousel]"])}catch(e){console.error(e)}}_handleSubmitButton(){const e=this.form.querySelectorAll("sl-input, sl-select, sl-checkbox"),t=this.form.querySelector('button[type="submit"]'),r=()=>Array.from(e).some(s=>{if(s.tagName==="SL-CHECKBOX"){const n=s.getAttribute("defaultChecked"),c=s.getAttribute("checked");return n!==c}const d=s.getAttribute("value"),l=s.value;return d!==l});e.forEach(o=>{o.addEventListener("sl-input",()=>{r()?t.hidden=!1:t.hidden=!0})})}_clearErrorMessages(){this.form.querySelectorAll(".gw-error-message").forEach(e=>e.remove())}});
@@ -1 +0,0 @@
1
- const i=Object.freeze({MAP:{"#my-account":"dashboard","#my-orders":"orders","#my-profile":"profile","#my-favorites":"dashboard##favorites"},STORAGE_KEYS:{TOKEN:"i-shsgi--u0mihh3co1e3y9sns",EMAIL:"gw-customer-accounts-email",RECENTLY_VIEWED:"gw-recently-viewed",RECENTLY_VIEWED_COLLECTION:"gw-recently-viewed-collection",LOYALTY_POINTS:"gw-loyalty-points",YOTPO_POINTS:"gw-yotpo-points",WISHLIST_PRODUCT_IDS:"gw-wishlist-product-ids",RISE_POINTS:"gw-rise-points",REDIRECT_URL:"gw-customer-accounts-login-redirect",TEMP_WISHLIST_PRODUCTS:"gw-temp-wishlist-products",TEMP_CART_PRODUCTS:"gw-temp-cart-products",TEMP_RECENTLY_VIEWED_ITEMS:"gw-temp-recently-viewed-items",TEMP_PRODUCTS_UPDATED:"gw-temp-products-updated"},ENDPOINTS:{AUTH:{SIGN_IN:"/email-sign",VERIFY_CODE:"/code-sign",GET_TOKEN:"/logged-sign",CUSTOMER_LOGGED:"/customer-logged"},FAVORITES:{GET_ALL_IDS:"/get-all-favorites",GET:"/get-favorites",ADD:"/add-favorite",REMOVE:"/remove-favorite",ADD_BULK:"/add-favorites"},VIEWED_PRODUCTS:{GET:"/get-viewed-products",ADD:"/add-viewed-product",ADD_BULK:"/add-viewed-products"},CART:{GET:"/get-cart-products",ADD:"/add-cart-product",ADD_BULK:"/add-cart-products",REMOVE:"/remove-cart"},ADDRESS:{ADD:"/add-address",EDIT:"/edit-address",REMOVE:"/remove-address"},CUSTOMER:{UPDATE:"/update-customer"},LOYALTY:{GET_LL:"/get-ll-customer",GET_YOTPO_CUSTOMER:"/get-youtpo-customer",GET_RISE_CREDIT:"/get-rise-customer"},MISC:{GET_MALOMO_ORDER:"/get-malomo-order"}},TAGS_TO_HIDE:["accounts:hidden"],TEMPLATE_IDS:{PRODUCT_CARD:"gw-standard-product-card-template",FORM_PRODUCT_CARD:"gw-form-product-card-template"},CUSTOM_EVENTS:{FAVORITES_STORAGE_UPDATED:"gw:favorites-storage-updated",SAVED_ITEMS_FROM_CART:"gw:saved-items-from-cart"},DRAWER_IDS:{favorites:"#Drawer-Favorites"}});class u{constructor(){}get componentData(){const e=document.querySelector("gw-customer-accounts").shadowRoot.querySelector("[data-component-data]");return JSON.parse(e.textContent)}get customerId(){var t,e;return(e=(t=this.componentData)==null?void 0:t.customer)==null?void 0:e.id}get customerFirstName(){var t,e;return(e=(t=this.componentData)==null?void 0:t.customer)==null?void 0:e.firstName}get customerEmail(){return localStorage.getItem(i.STORAGE_KEYS.EMAIL)}get hasCustomer(){var t,e;return!!((e=(t=this.componentData)==null?void 0:t.customer)!=null&&e.id)}get customerToken(){return localStorage.getItem(i.STORAGE_KEYS.TOKEN)}get baseURL(){return this.componentData.baseUrl}get app(){return document.querySelector("gw-customer-accounts")}get appShadow(){return this.app.shadowRoot}get dashboard(){return this.appShadow.querySelector("gw-customer-accounts-dashboard")}get tabId(){return i.MAP[window.location.hash]||"dashboard"}async request(t,e={},s="POST"){const a=()=>{const o={method:s,mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"}};return s==="POST"&&(o.body=JSON.stringify(e)),o};if(s==="GET"){const o=new URLSearchParams(e);t=`${t}?${o}`}return s==="POST"&&(e.token=this.customerToken,e.email=this.customerEmail,e.customerID=this.customerId),await(await fetch(this.baseURL+t,a())).json()}notify(t,e="success",s=3e3){const a=document.querySelector("gw-customer-accounts"),r=a.shadowRoot.querySelector("[data-notification-alert]"),o=a.shadowRoot.querySelector("[data-notification-message]");o.innerHTML=t,r.open=!0}async updateAjaxContent(t){return await this.app.updateContent(t)}parseVariantId(t){return String(t).split("/").pop()}formatMoney(t){return(t/100).toLocaleString("en-US",{style:"currency",currency:"USD"})}addToStorage({key:t,values:e,storageType:s="local",position:a="start"}){const r=s==="local"?localStorage:sessionStorage,o=JSON.parse(r.getItem(t))||[];a==="start"?r.setItem(t,JSON.stringify([...e,...o])):r.setItem(t,JSON.stringify([...o,...e]))}removeFromStorage({key:t,values:e,storageType:s="local",nestedKey:a}){const r=s==="local"?localStorage:sessionStorage,o=JSON.parse(r.getItem(t))||[];if(a){const n=o.map(c=>e.includes(c[a])?null:c);r.setItem(t,JSON.stringify(n.filter(Boolean)))}else{const n=o.filter(c=>!e.includes(c));r.setItem(t,JSON.stringify(n))}}}const g=new u;export{g as G,i as a};
@@ -1 +0,0 @@
1
- import{G as i,a as e}from"./index-DI2a6rRk.js";class l extends HTMLElement{constructor(){var a;super(),this.tabData=this._parseTabData(),this.tabId=(a=this.tabData)==null?void 0:a.id,this.tabGroup=this.closest("sl-tab-group"),this.tabPanel=this.closest("sl-tab-panel"),this.mainDrawerLabel=i.appShadow.querySelector("[data-main-drawer-label]")}connectedCallback(){if(this._addAnimations(),this.tabGroup.addEventListener("sl-tab-show",n=>{n.detail.name===this.tabId?(this._playFadeInAnimations(),this._updateMainDrawerLabel(),this._updateSignInBlockHeading(),this._updateHash(),i.app.reinitializeCarousels()):this._resetAnimations()}),!e.MAP[window.location.hash])return;const a=window.location.hash===this.tabId,t=e.MAP[window.location.hash].includes(this.tabId);(a||t)&&this._playFadeInAnimations()}get animationElements(){const t=[...this.querySelectorAll("sl-animation")],n=i.appShadow.querySelector("[gw-sign-in-block-animation]");return n&&t.unshift(n),t}_parseTabData(){const a=this.querySelector("[data-tab-panel-data]");return a?JSON.parse(a.textContent):{}}_updateHash(){var n,s;const a=window.location.hash;(n=e.MAP[a])!=null&&n.includes("##")||(window.location.hash=(s=this.tabData)==null?void 0:s.hash)}_updateMainDrawerLabel(){var t;const a=(t=this.tabData)==null?void 0:t.label;a&&this.mainDrawerLabel&&(this.mainDrawerLabel.textContent=a)}_updateSignInBlockHeading(){var n;const a=(n=this.tabData)==null?void 0:n.signInBlockHeading,t=i.appShadow.querySelector("[data-sign-in-block-heading]");a&&t&&(t.textContent=a)}_playFadeInAnimations(){this.animationElements.forEach(a=>a.play=!0)}_addAnimations(){this.animationElements.forEach((a,t)=>{a.keyframes=[{offset:0,opacity:"0",transform:"translate3d(0, -10px, 0)",easing:"ease-in-out"},{offset:1,opacity:"1",transform:"translate3d(0, 0, 0)",easing:"ease-in-out"}],a.delay=t*80})}_resetAnimations(){this.animationElements.forEach(a=>{a.currentTime>0&&(a.currentTime=0)})}}export{l as G};
@@ -1 +0,0 @@
1
- customElements.define("gw-customer-accounts-country-selector",class extends HTMLElement{constructor(){super(),this.countrySelector=this.querySelector('sl-select[name="country"]')}connectedCallback(){this.countrySelector.addEventListener("sl-change",()=>{const e=this.countrySelector.selectedOptions[0];this._renderProvinces(e)}),Promise.all([customElements.whenDefined("sl-select")]).then(()=>{setTimeout(()=>{const e=this.countrySelector.selectedOptions[0];this._renderProvinces(e)},1e3)}),this._updateOptionElements()}_renderProvinces(e){this.closest("form").querySelectorAll('sl-select[name="province"]').forEach(o=>o.remove());const c=JSON.parse(e.getAttribute("data-provinces"));if(!c||!c.length)return;const t=document.createElement("sl-select");t.setAttribute("name","province"),t.label="State",t.required=!0,c.forEach(o=>{const r=document.createElement("sl-option");r.value=o[0].replaceAll(" ","_"),r.textContent=o[1],t.appendChild(r)}),t.setAttribute("value",c[0][0]),this.after(t)}_updateOptionElements(){this.countrySelector.querySelectorAll("option").forEach(e=>{e.value=e.value.replaceAll(" ","_"),e.outerHTML=e.outerHTML.replace(/option/g,"sl-option")})}});
package/dist/dashboard.js DELETED
@@ -1,17 +0,0 @@
1
- import{G as i,a as m}from"./assets/index-DI2a6rRk.js";import{G as h}from"./assets/tab-B7UDegaP.js";customElements.define("gw-customer-accounts-dashboard",class extends h{constructor(){super()}connectedCallback(){super.connectedCallback(),this._initDashboard()}async _initDashboard(){i.hasCustomer&&this._renderRecentlyViewedCollections(),this.loadSavedCartItems(),this.loadFavoriteItems(),this.loadRecentlyViewedItems()}async loadRecentlyViewedItems(t={}){const{preventDrawerRender:a=!1,preventCarouselRender:r=!1,page:e=1,limit:o=8}=t;try{const n=await this._getRecentlyViewedItems(e,o);this._renderRecentlyViewedItems(n,{preventDrawerRender:a,preventCarouselRender:r,page:e,limit:o})}catch(n){console.error("Error rendering recently viewed items:",n)}}async _getRecentlyViewedItems(t,a){if(!i.hasCustomer)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS))||[];const r=await i.request(m.ENDPOINTS.VIEWED_PRODUCTS.GET,{customerID:i.customerId,limit:a,page:t},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderRecentlyViewedItems(t,a){const r="[data-recently-viewed-container]",e="[data-recently-viewed-drawer-container]";if(i.appShadow.querySelector(r)){if(!t.length){this._renderEmptyState(r,e);return}a.preventCarouselRender||this._renderProductsToCarousel(t,r),a.preventDrawerRender||this._renderProductsToDrawer({products:t,containerSelector:e,productTemplateId:m.TEMPLATE_IDS.PRODUCT_CARD,currentPage:a.page,nextPage:null})}}async _getSavedCartItems(t,a){if(!i.customerId)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_CART_PRODUCTS))||[];const r=await i.request(m.ENDPOINTS.CART.GET,{customerEmail:i.customerEmail,limit:a,page:t},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderSavedCartItems(t,a){const r="[data-saved-from-cart-items-container]",e="[data-saved-from-cart-drawer-container]";if(!this.querySelector(r))return;if(!t.length){this._renderEmptyState(r,e);return}const n=this._calculateNextPage({totalItems:t.length,currentPage:a.page,limit:a.limit});a.preventCarouselRender||this._renderProductsToCarousel(t,r),a.preventDrawerRender||this._renderProductsToDrawer({products:t,containerSelector:e,removeButtonAction:"data-saved-from-cart-remove",productTemplateId:m.TEMPLATE_IDS.FORM_PRODUCT_CARD,currentPage:a.page,nextPage:n})}async loadSavedCartItems(t={}){const{preventDrawerRender:a=!1,preventCarouselRender:r=!1,page:e=1,limit:o=10}=t;try{const n=await this._getSavedCartItems(e,o);this._renderSavedCartItems(n,{preventDrawerRender:a,preventCarouselRender:r,page:e,limit:o})}catch(n){console.error("Error rendering saved items from cart:",n)}}async _getFavoriteItems(t,a){if(!i.hasCustomer)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS))||[];const r=await i.request(m.ENDPOINTS.FAVORITES.GET,{limit:a,page:t,customerID:i.customerId},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderFavoriteItems(t,a){const r="[data-favorites-container]",e="[data-favorites-drawer-container]";if(!i.appShadow.querySelector(r))return;if(!t.length){this._renderEmptyState(r,e,"You have no favorite items.");return}const{preventDrawerRender:n=!1,preventCarouselRender:s=!1,page:d=1,limit:u=10}=a;s||this._renderProductsToCarousel(t,r);const c=this._calculateNextPage({totalItems:t.length,currentPage:d,limit:u});n||this._renderProductsToDrawer({products:t,containerSelector:e,removeButtonAction:"data-wishlist-remove",productTemplateId:m.TEMPLATE_IDS.FORM_PRODUCT_CARD,currentPage:d,nextPage:c})}_renderSingleFavoriteItem(t){const a="[data-favorites-container]",r="[data-favorites-drawer-container]",e=i.appShadow.querySelector(a),o=document.getElementById(m.TEMPLATE_IDS.PRODUCT_CARD);if(!o){console.warn("Product card template not found.");return}const n=o.content.cloneNode(!0),s=this._populateCarouselItem(n,t),d=e.querySelector("sl-carousel");if(d)d.prepend(s);else{const c=document.createElement("sl-carousel");c.setAttribute("navigation",""),c.setAttribute("slides-per-page","3"),c.setAttribute("slides-per-move","3"),c.setAttribute("style","--scroll-hint: 5%; --aspect-ratio: none"),c.appendChild(s),e.innerHTML="",e.appendChild(c)}const u=i.appShadow.querySelector(r);if(u){const c=document.getElementById(m.TEMPLATE_IDS.FORM_PRODUCT_CARD);if(!c){console.warn("Drawer product card template not found.");return}const p=this._createProductElement(t,c,"data-wishlist-remove");this._ensureDrawerNotEmpty(e),u.prepend(p)}}_removeFavoriteItem(t){const a="[data-favorites-container]",r="[data-favorites-drawer-container]",e=i.appShadow.querySelector(a),o=i.appShadow.querySelector(r);if(e){const n=e.querySelector(`[data-product-id="${t}"]`);n&&n.remove(),e.querySelector("sl-carousel-item")||this._renderEmptyState(a,r,"You have no favorite items.")}if(o){const n=o.querySelector(`[data-product-id="${t}"]`);n&&n.remove()}}async loadFavoriteItems(t={}){const{page:a=1,limit:r=10}=t;try{const e=await this._getFavoriteItems(a,r);this._renderFavoriteItems(e,t)}catch(e){console.error("Error rendering favorite items:",e)}}_renderRecentlyViewedCollections(){const t=m.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION,a=JSON.parse(localStorage.getItem(t))||[],r=this.querySelector("[data-recently-viewed-collections-container]");if(!r||(r.innerHTML="",!a.length))return;const e=document.createElement("sl-carousel");e.setAttribute("navigation",""),e.setAttribute("style","--scroll-hint: 5%; --aspect-ratio: none"),a.forEach(o=>{const n=document.createElement("sl-carousel-item");n.innerHTML=`
2
- <a href="${o.url}" class="gw-button-text gw-unstyled-link gw-recently-viewed-collection">
3
- ${o.title}
4
- </a>
5
- `,e.appendChild(n)}),r.appendChild(e)}_renderProductsToCarousel(t,a){const r=i.appShadow.querySelector(a);if(!r)return;r.innerHTML="",this._ensureDrawerNotEmpty(r);const e=document.createElement("sl-carousel");e.setAttribute("navigation",""),e.setAttribute("slides-per-page","3"),e.setAttribute("slides-per-move","3"),e.setAttribute("style","--scroll-hint: 5%; --aspect-ratio: none"),t.length>3&&e.setAttribute("data-has-next",""),e.addEventListener("sl-slide-change",n=>{n.detail.index>0?e.setAttribute("data-has-previous",""):e.removeAttribute("data-has-previous"),n.detail.index+3<t.length?e.setAttribute("data-has-next",""):e.removeAttribute("data-has-next")});const o=document.getElementById(m.TEMPLATE_IDS.PRODUCT_CARD);if(!o){console.warn("Carousel item template not found.");return}t.forEach(n=>{if(this._shouldHideProduct(n))return;const s=o.content.cloneNode(!0),d=this._populateCarouselItem(s,n);e.appendChild(d)}),r.appendChild(e)}_renderProductsToDrawer({products:t,currentPage:a,nextPage:r,containerSelector:e,removeButtonAction:o,productTemplateId:n}){const s=i.appShadow.querySelector(e);if(!s)return;a===1&&(s.innerHTML="");const d=s.querySelector("[data-load-more-button]");d&&d.remove();const u=document.getElementById(n||m.TEMPLATE_IDS.PRODUCT_CARD);if(!u){console.warn("Product card template not found.");return}t.forEach(c=>{if(this._shouldHideProduct(c))return;const p=this._createProductElement(c,u,o);s.appendChild(p)}),r&&this._renderLoadMoreButton(s,r)}_renderEmptyState(t,a,r){const e=i.appShadow.querySelector(t);if(!e)return;const o=e.getAttribute("data-drawer-selector"),n=e.getAttribute("data-empty-state-message")||"No items found.";if(o){const s=i.appShadow.querySelector(`#${o}`);if(s){s.setAttribute("empty","");const d=s.querySelector(a);d&&(d.innerHTML=`
6
- <h2 class="gw-header drawer-empty-message">${r}</h2>
7
- `),s.hasAttribute("open")&&s.hide()}}e.innerHTML=`
8
- <div class="gw-empty-list">
9
- <div class="gw-empty-list-inner">
10
- <p>${n}</p>
11
- </div>
12
- </div>
13
- `}_calculateNextPage({totalItems:t,currentPage:a,limit:r}){const e=Math.ceil(t/r);return a<e?a+1:null}_renderLoadMoreButton(t,a){const r=document.createElement("button");r.textContent="Load More",r.classList.add("gw-button","gw-button--stroke"),r.setAttribute("data-load-more-button",""),r.insertAdjacentHTML("beforeend",`
14
- <span class="gw-loader-container" hidden data-loader>
15
- <span class="gw-loader"></span>
16
- </span>
17
- `),r.addEventListener("click",()=>{r.querySelector("[data-loader]").removeAttribute("hidden"),this.loadFavoriteItems({preventCarouselRender:!0,page:a})}),t.appendChild(r)}_shouldHideProduct(t){var a;return(a=t.tags)==null?void 0:a.some(r=>m.TAGS_TO_HIDE.includes(r))}_createProductElement(t,a,r){var f;const e=a.content.cloneNode(!0),o=e.querySelector("[data-product-title]"),n=e.querySelectorAll("[data-product-link]"),s=e.querySelector("[data-product-image]"),d=e.querySelector("[data-quick-add-to-cart-form]"),u=e.querySelector("[data-product-price-compare]"),c=e.querySelector("[data-product-price]");if(e.querySelector(".gw-product-card").setAttribute("data-product-id",i.parseVariantId(t.id)),n.length&&n.forEach(l=>{l.href=`/products/${t.handle}`}),o&&(o.textContent=t.title),s&&((f=t.featuredImage)!=null&&f.url)&&(s.src=t.featuredImage.url+"&width=300",t.featuredImage.altText&&(s.alt=t.featuredImage.altText)),d){this._populateVariantFields(t,d);const l=document.createElement("input");l.type="hidden",l.name="productId",l.value=i.parseVariantId(t.id),d.prepend(l)}if(this._updatePriceDisplay(t,u,c),r){const l=e.querySelector("[data-remove-button]");l&&(l.setAttribute(r,""),r==="data-saved-from-cart-remove"&&l.setAttribute("aria-label",`Remove ${t.title} from saved items`),r==="data-wishlist-remove"&&l.setAttribute("aria-label",`Remove ${t.title} from favorites`))}const p=e.querySelector("gw-wishlist-button");if(p){p.setAttribute("product-id",i.parseVariantId(t.id));const l=document.createElement("script");l.type="application/json",l.setAttribute("data-product-data",""),l.textContent=JSON.stringify(t),p.appendChild(l)}return e}_populateVariantFields(t,a){var e;const r=((e=t.variants)==null?void 0:e.nodes)||[];if(r.length>1){const o=document.createElement("select");o.name="id",o.classList.add("gw-product-card__variant-selector"),r.forEach(n=>{const s=document.createElement("option"),d=i.parseVariantId(n.id);s.value=d,s.textContent=n.title,d==(t.variant_id||t.variantId)&&(s.selected=!0),o.appendChild(s)}),a.prepend(o)}else if(r.length===1){const o=document.createElement("input");o.type="hidden",o.name="id",o.value=t.variant_id||t.variantId?t.variant_id||t.variantId:i.parseVariantId(r[0].id),a.prepend(o)}}_updatePriceDisplay(t,a,r){var d,u;let e=(d=t.variants)==null?void 0:d.nodes[0];const o=t.variant_id||t.variantId;if(o){const c=(u=t.variants)==null?void 0:u.nodes.find(p=>i.parseVariantId(p.id)==o);c&&(e=c)}const n=(e==null?void 0:e.compareAtPrice)||(e==null?void 0:e.compare_at_price),s=e==null?void 0:e.price;if(a&&n&&(typeof n=="number"?a.textContent=i.formatMoney(n):a.textContent=n.includes("$")?n:`$${n}`),s&&r)if(typeof s=="number")r.textContent=i.formatMoney(s);else{const c="$"+s;r.textContent=s.includes("$")?s:c}n&&s&&(a.removeAttribute("hidden"),r.classList.add("gw-product-card__price--sale"))}_ensureDrawerNotEmpty(t){const a=t.getAttribute("data-drawer-selector");if(a){const r=i.appShadow.querySelector(`#${a}`);r&&r.removeAttribute("empty");const e=r.querySelector(".drawer-empty-message");e&&e.remove()}}_populateCarouselItem(t,a){const r=this._populateProductCard(t,a),e=document.createElement("sl-carousel-item");return e.setAttribute("data-product-id",i.parseVariantId(a.id)),e.appendChild(r),e}_populateProductCard(t,a){var u;const r=t.querySelector("[data-product-title]"),e=t.querySelector("[data-product-link]"),o=t.querySelector("[data-product-image]"),n=t.querySelector("[data-product-price-compare]"),s=t.querySelector("[data-product-price]");r&&(r.textContent=a.title),e&&(e.href=`/products/${a.handle}`),o&&((u=a.featuredImage)!=null&&u.url)&&(o.src=a.featuredImage.url+"&width=300",a.featuredImage.altText&&(o.alt=a.featuredImage.altText)),this._updatePriceDisplay(a,n,s);const d=t.querySelector("gw-wishlist-button");if(d){d.setAttribute("product-id",i.parseVariantId(a.id));const c=document.createElement("script");c.type="application/json",c.setAttribute("data-product-data",""),c.textContent=JSON.stringify(a),d.appendChild(c)}return t}});
@@ -1,29 +0,0 @@
1
- import{a as i,G as r}from"./assets/index-DI2a6rRk.js";customElements.define("gw-integrations-loyalty-points",class extends HTMLElement{constructor(){switch(super(),this.integration=this.getAttribute("integration"),this.loyaltyPageUrl=this.getAttribute("page-url"),this.pointsLabel=this.getAttribute("points-label"),this.linkLabel=this.getAttribute("link-label"),this.innerHTML=`
2
- <a href="${this.loyaltyPageUrl}" class="gw-loyalty-points__link gw-unstyled-link">
3
- <span class="gw-loader" data-loader></span>
4
- <span class="gw-loyalty-points__points-value gw-header" data-points-container></span>
5
- <span class="gw-loyalty-points__points-label" data-points-label hidden>${this.pointsLabel}</span>
6
- <span class="gw-loyalty-points__link-label">
7
- ${this.linkLabel}
8
-
9
- <svg
10
- fill='none'
11
- xmlns='http://www.w3.org/2000/svg'
12
- viewBox='0 0 32 32'
13
- aria-hidden='true'
14
- width='16'
15
- height='16'
16
- >
17
- <path d="m13.333 8 8 8-8 8" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"></path>
18
- </svg>
19
- </span>
20
- </a>
21
- `,this.API=null,this.SESSION_KEY=null,this.GET_POINTS=null,this.integration){case"loyalty-lion":this.API=i.ENDPOINTS.LOYALTY.GET_LL,this.SESSION_KEY=i.STORAGE_KEYS.LOYALTY_POINTS,this.GET_POINTS=t=>t.points_approved;break;case"yotpo":this.API=i.ENDPOINTS.LOYALTY.GET_YOTPO_CUSTOMER,this.SESSION_KEY=i.STORAGE_KEYS.YOTPO_POINTS,this.GET_POINTS=t=>{var e;return(e=t.customer)==null?void 0:e.points_balance};break;case"rise":this.API=i.ENDPOINTS.LOYALTY.GET_RISE_CREDIT,this.SESSION_KEY=i.STORAGE_KEYS.RISE_POINTS,this.GET_POINTS=t=>t.amount?this._formatUSD(t.amount):"$0.00",this.innerHTML+=`
22
- <div class="gw-loyalty-points__id-container" hidden>
23
- <span class="gw-loyalty-points__id" data-points-id></span>
24
- <button class="gw-loyalty-points__copy-button" data-copy-button hidden>
25
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 13 12" fill="none" aria-hidden="true"><g clip-path="url(#copy-icon-clip-path)"><path d="M11.203 0h-6C4.383 0 3.72.67 3.72 1.497v1.458H2.176a1.491 1.491 0 0 0-1.489 1.49v6.058A1.495 1.495 0 0 0 2.173 12h6c.82 0 1.484-.67 1.484-1.497V9.045H11.2a1.491 1.491 0 0 0 1.489-1.49V1.497A1.495 1.495 0 0 0 11.203 0ZM8.47 10.5c0 .165-.133.299-.297.299h-6a.303.303 0 0 1-.297-.3V4.444c0-.165.133-.299.297-.299h6a.294.294 0 0 1 .297.3v6.058-.004Zm3.03-2.945c0 .166-.133.3-.296.3H9.661v-3.41a1.49 1.49 0 0 0-1.485-1.497h-3.27V1.497c0-.166.133-.3.297-.3h6a.302.302 0 0 1 .297.3v6.058Z" fill="currentColor"></path></g><defs><clipPath id="copy-icon-clip-path"><path fill="#fff" transform="translate(.5)" d="M0 0h12v12H0z"></path></clipPath></defs></svg>
26
- Copy ID
27
- </button>
28
- </div>
29
- `;break;default:return}}connectedCallback(){this._renderPointsFromSession(),this._initLoyaltyPoints()}_formatUSD(t){return t.toLocaleString("en-US",{style:"currency",currency:"USD"})}_renderPointsFromSession(){const t=sessionStorage.getItem(this.SESSION_KEY);if(t){const e=this.querySelector("[data-loader]"),o=this.querySelector("[data-points-container]"),n=this.querySelector("[data-points-label]");o.textContent=t,n.removeAttribute("hidden"),e.hidden=!0}}async _initLoyaltyPoints(){try{const t=await r.request(this.API);if(t.error)throw new Error(t.error);const e=this.querySelector("[data-loader]");e.hidden=!0;const o=this.querySelector("[data-points-container]"),n=this.querySelector("[data-points-label]"),s=this.GET_POINTS(t);if(s&&o&&(o.textContent=s,n.removeAttribute("hidden"),sessionStorage.setItem(this.SESSION_KEY,s)),this.integration==="rise"){if(t==null?void 0:t.code)this.querySelector(".gw-loyalty-points__id-container").removeAttribute("hidden");else{this.querySelector(".gw-loyalty-points__id-container").remove();return}const l=this.querySelector("[data-points-id]"),a=this.querySelector("[data-copy-button]");a.removeAttribute("hidden"),l.textContent="ID: "+t.code,a.addEventListener("click",()=>{navigator.clipboard.writeText(t==null?void 0:t.code),r.notify("ID copied to clipboard")})}}catch(t){console.error(t)}}});
package/dist/main.css DELETED
@@ -1 +0,0 @@
1
- @layer resets, tokens, utilities, components, shoelace, main, overrides;@layer shoelace{.sl-theme-light,:host,:root{color-scheme:light;--sl-color-gray-50:#f9f9f9;--sl-color-gray-100:#f4f4f5;--sl-color-gray-200:#e4e4e7;--sl-color-gray-300:#d4d4d8;--sl-color-gray-400:#a1a1aa;--sl-color-gray-500:#71717a;--sl-color-gray-600:#52525b;--sl-color-gray-700:#3f3f46;--sl-color-gray-800:#27272a;--sl-color-gray-900:#18181b;--sl-color-gray-950:#131316;--sl-color-red-50:#fef2f2;--sl-color-red-100:#fee2e2;--sl-color-red-200:#fecaca;--sl-color-red-300:#fca5a5;--sl-color-red-400:#f87171;--sl-color-red-500:#ef4444;--sl-color-red-600:#dc2626;--sl-color-red-700:#b91c1c;--sl-color-red-800:#991b1b;--sl-color-red-900:#7f1d1d;--sl-color-red-950:#501414;--sl-color-orange-50:#fff7ed;--sl-color-orange-100:#ffedd5;--sl-color-orange-200:#fed7aa;--sl-color-orange-300:#fdba74;--sl-color-orange-400:#fb923c;--sl-color-orange-500:#f97316;--sl-color-orange-600:#ea580c;--sl-color-orange-700:#c2410c;--sl-color-orange-800:#9a3412;--sl-color-orange-900:#7c2d12;--sl-color-orange-950:#52200f;--sl-color-amber-50:#fffbeb;--sl-color-amber-100:#fef3c7;--sl-color-amber-200:#fde68a;--sl-color-amber-300:#fcd34d;--sl-color-amber-400:#fbbf24;--sl-color-amber-500:#f59e0b;--sl-color-amber-600:#d97706;--sl-color-amber-700:#b45309;--sl-color-amber-800:#92400e;--sl-color-amber-900:#78350f;--sl-color-amber-950:#4a230b;--sl-color-yellow-50:#fefce8;--sl-color-yellow-100:#fef9c3;--sl-color-yellow-200:#fef08a;--sl-color-yellow-300:#fde047;--sl-color-yellow-400:#facc15;--sl-color-yellow-500:#eab308;--sl-color-yellow-600:#ca8a04;--sl-color-yellow-700:#a16207;--sl-color-yellow-800:#854d0e;--sl-color-yellow-900:#713f12;--sl-color-yellow-950:#3c260b;--sl-color-lime-50:#f7fee7;--sl-color-lime-100:#ecfccb;--sl-color-lime-200:#d9f99d;--sl-color-lime-300:#bef264;--sl-color-lime-400:#a3e635;--sl-color-lime-500:#84cc16;--sl-color-lime-600:#65a30d;--sl-color-lime-700:#4d7c0f;--sl-color-lime-800:#3f6212;--sl-color-lime-900:#365314;--sl-color-lime-950:#26390e;--sl-color-green-50:#f0fdf4;--sl-color-green-100:#dcfce7;--sl-color-green-200:#bbf7d0;--sl-color-green-300:#86efac;--sl-color-green-400:#4ade80;--sl-color-green-500:#22c55e;--sl-color-green-600:#16a34a;--sl-color-green-700:#15803d;--sl-color-green-800:#166534;--sl-color-green-900:#14532d;--sl-color-green-950:#0c311b;--sl-color-emerald-50:#ecfdf5;--sl-color-emerald-100:#d1fae5;--sl-color-emerald-200:#a7f3d0;--sl-color-emerald-300:#6ee7b7;--sl-color-emerald-400:#34d399;--sl-color-emerald-500:#10b981;--sl-color-emerald-600:#059669;--sl-color-emerald-700:#047857;--sl-color-emerald-800:#065f46;--sl-color-emerald-900:#064e3b;--sl-color-emerald-950:#032d22;--sl-color-teal-50:#f0fdfa;--sl-color-teal-100:#ccfbf1;--sl-color-teal-200:#99f6e4;--sl-color-teal-300:#5eead4;--sl-color-teal-400:#2dd4bf;--sl-color-teal-500:#14b8a6;--sl-color-teal-600:#0d9488;--sl-color-teal-700:#0f766e;--sl-color-teal-800:#115e59;--sl-color-teal-900:#134e4a;--sl-color-teal-950:#0c2e2c;--sl-color-cyan-50:#ecfeff;--sl-color-cyan-100:#cffafe;--sl-color-cyan-200:#a5f3fc;--sl-color-cyan-300:#67e8f9;--sl-color-cyan-400:#22d3ee;--sl-color-cyan-500:#06b6d4;--sl-color-cyan-600:#0891b2;--sl-color-cyan-700:#0e7490;--sl-color-cyan-800:#155e75;--sl-color-cyan-900:#164e63;--sl-color-cyan-950:#103442;--sl-color-sky-50:#f0f9ff;--sl-color-sky-100:#e0f2fe;--sl-color-sky-200:#bae6fd;--sl-color-sky-300:#7dd3fc;--sl-color-sky-400:#38bdf8;--sl-color-sky-500:#0ea5e9;--sl-color-sky-600:#0284c7;--sl-color-sky-700:#0369a1;--sl-color-sky-800:#075985;--sl-color-sky-900:#0c4a6e;--sl-color-sky-950:#0b3249;--sl-color-blue-50:#eff6ff;--sl-color-blue-100:#dbeafe;--sl-color-blue-200:#bfdbfe;--sl-color-blue-300:#93c5fd;--sl-color-blue-400:#60a5fa;--sl-color-blue-500:#3b82f6;--sl-color-blue-600:#2563eb;--sl-color-blue-700:#1d4ed8;--sl-color-blue-800:#1e40af;--sl-color-blue-900:#1e3a8a;--sl-color-blue-950:#152149;--sl-color-indigo-50:#eef2ff;--sl-color-indigo-100:#e0e7ff;--sl-color-indigo-200:#c7d2fe;--sl-color-indigo-300:#a5b4fc;--sl-color-indigo-400:#818cf8;--sl-color-indigo-500:#6366f1;--sl-color-indigo-600:#4f46e5;--sl-color-indigo-700:#4338ca;--sl-color-indigo-800:#3730a3;--sl-color-indigo-900:#312e81;--sl-color-indigo-950:#242154;--sl-color-violet-50:#f5f3ff;--sl-color-violet-100:#ede9fe;--sl-color-violet-200:#ddd6fe;--sl-color-violet-300:#c4b5fd;--sl-color-violet-400:#a78bfa;--sl-color-violet-500:#8b5cf6;--sl-color-violet-600:#7c3aed;--sl-color-violet-700:#6d28d9;--sl-color-violet-800:#5b21b6;--sl-color-violet-900:#4c1d95;--sl-color-violet-950:#311558;--sl-color-purple-50:#faf5ff;--sl-color-purple-100:#f3e8ff;--sl-color-purple-200:#e9d5ff;--sl-color-purple-300:#d8b4fe;--sl-color-purple-400:#c084fc;--sl-color-purple-500:#a855f7;--sl-color-purple-600:#9333ea;--sl-color-purple-700:#7e22ce;--sl-color-purple-800:#6b21a8;--sl-color-purple-900:#581c87;--sl-color-purple-950:#2f1143;--sl-color-fuchsia-50:#fdf4ff;--sl-color-fuchsia-100:#fae8ff;--sl-color-fuchsia-200:#f5d0fe;--sl-color-fuchsia-300:#f0abfc;--sl-color-fuchsia-400:#e879f9;--sl-color-fuchsia-500:#d946ef;--sl-color-fuchsia-600:#c026d3;--sl-color-fuchsia-700:#a21caf;--sl-color-fuchsia-800:#86198f;--sl-color-fuchsia-900:#701a75;--sl-color-fuchsia-950:#38103a;--sl-color-pink-50:#fdf2f8;--sl-color-pink-100:#fce7f3;--sl-color-pink-200:#fbcfe8;--sl-color-pink-300:#f9a8d4;--sl-color-pink-400:#f472b6;--sl-color-pink-500:#ec4899;--sl-color-pink-600:#db2777;--sl-color-pink-700:#be185d;--sl-color-pink-800:#9d174d;--sl-color-pink-900:#831843;--sl-color-pink-950:#430e23;--sl-color-rose-50:#fff1f2;--sl-color-rose-100:#ffe4e6;--sl-color-rose-200:#fecdd3;--sl-color-rose-300:#fda4af;--sl-color-rose-400:#fb7185;--sl-color-rose-500:#f43f5e;--sl-color-rose-600:#e11d48;--sl-color-rose-700:#be123c;--sl-color-rose-800:#9f1239;--sl-color-rose-900:#881337;--sl-color-rose-950:#4a0d20;--sl-color-primary-50:var(--sl-color-sky-50);--sl-color-primary-100:var(--sl-color-sky-100);--sl-color-primary-200:var(--sl-color-sky-200);--sl-color-primary-300:var(--sl-color-sky-300);--sl-color-primary-400:var(--sl-color-sky-400);--sl-color-primary-500:var(--sl-color-sky-500);--sl-color-primary-600:var(--sl-color-sky-600);--sl-color-primary-700:var(--sl-color-sky-700);--sl-color-primary-800:var(--sl-color-sky-800);--sl-color-primary-900:var(--sl-color-sky-900);--sl-color-primary-950:var(--sl-color-sky-950);--sl-color-success-50:var(--sl-color-green-50);--sl-color-success-100:var(--sl-color-green-100);--sl-color-success-200:var(--sl-color-green-200);--sl-color-success-300:var(--sl-color-green-300);--sl-color-success-400:var(--sl-color-green-400);--sl-color-success-500:var(--sl-color-green-500);--sl-color-success-600:var(--sl-color-green-600);--sl-color-success-700:var(--sl-color-green-700);--sl-color-success-800:var(--sl-color-green-800);--sl-color-success-900:var(--sl-color-green-900);--sl-color-success-950:var(--sl-color-green-950);--sl-color-warning-50:var(--sl-color-amber-50);--sl-color-warning-100:var(--sl-color-amber-100);--sl-color-warning-200:var(--sl-color-amber-200);--sl-color-warning-300:var(--sl-color-amber-300);--sl-color-warning-400:var(--sl-color-amber-400);--sl-color-warning-500:var(--sl-color-amber-500);--sl-color-warning-600:var(--sl-color-amber-600);--sl-color-warning-700:var(--sl-color-amber-700);--sl-color-warning-800:var(--sl-color-amber-800);--sl-color-warning-900:var(--sl-color-amber-900);--sl-color-warning-950:var(--sl-color-amber-950);--sl-color-danger-50:var(--sl-color-red-50);--sl-color-danger-100:var(--sl-color-red-100);--sl-color-danger-200:var(--sl-color-red-200);--sl-color-danger-300:var(--sl-color-red-300);--sl-color-danger-400:var(--sl-color-red-400);--sl-color-danger-500:var(--sl-color-red-500);--sl-color-danger-600:var(--sl-color-red-600);--sl-color-danger-700:var(--sl-color-red-700);--sl-color-danger-800:var(--sl-color-red-800);--sl-color-danger-900:var(--sl-color-red-900);--sl-color-danger-950:var(--sl-color-red-950);--sl-color-neutral-50:var(--sl-color-gray-50);--sl-color-neutral-100:var(--sl-color-gray-100);--sl-color-neutral-200:var(--sl-color-gray-200);--sl-color-neutral-300:var(--sl-color-gray-300);--sl-color-neutral-400:var(--sl-color-gray-400);--sl-color-neutral-500:var(--sl-color-gray-500);--sl-color-neutral-600:var(--sl-color-gray-600);--sl-color-neutral-700:var(--sl-color-gray-700);--sl-color-neutral-800:var(--sl-color-gray-800);--sl-color-neutral-900:var(--sl-color-gray-900);--sl-color-neutral-950:var(--sl-color-gray-950);--sl-color-neutral-0:#fff;--sl-color-neutral-1000:#000;--sl-border-radius-small:0.1875rem;--sl-border-radius-medium:0.25rem;--sl-border-radius-large:0.5rem;--sl-border-radius-x-large:1rem;--sl-border-radius-circle:50%;--sl-border-radius-pill:9999px;--sl-shadow-x-small:0 1px 2px hsla(240,4%,46%,.06);--sl-shadow-small:0 1px 2px hsla(240,4%,46%,.12);--sl-shadow-medium:0 2px 4px hsla(240,4%,46%,.12);--sl-shadow-large:0 2px 8px hsla(240,4%,46%,.12);--sl-shadow-x-large:0 4px 16px hsla(240,4%,46%,.12);--sl-spacing-3x-small:0.125rem;--sl-spacing-2x-small:0.25rem;--sl-spacing-x-small:0.5rem;--sl-spacing-small:0.75rem;--sl-spacing-medium:1rem;--sl-spacing-large:1.25rem;--sl-spacing-x-large:1.75rem;--sl-spacing-2x-large:2.25rem;--sl-spacing-3x-large:3rem;--sl-spacing-4x-large:4.5rem;--sl-transition-x-slow:1000ms;--sl-transition-slow:500ms;--sl-transition-medium:250ms;--sl-transition-fast:150ms;--sl-transition-x-fast:50ms;--sl-font-mono:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;--sl-font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--sl-font-serif:Georgia,"Times New Roman",serif;--sl-font-size-2x-small:0.625rem;--sl-font-size-x-small:0.75rem;--sl-font-size-small:0.875rem;--sl-font-size-medium:1rem;--sl-font-size-large:1.25rem;--sl-font-size-x-large:1.5rem;--sl-font-size-2x-large:2.25rem;--sl-font-size-3x-large:3rem;--sl-font-size-4x-large:4.5rem;--sl-font-weight-light:300;--sl-font-weight-normal:400;--sl-font-weight-semibold:500;--sl-font-weight-bold:700;--sl-letter-spacing-denser:-0.03em;--sl-letter-spacing-dense:-0.015em;--sl-letter-spacing-normal:normal;--sl-letter-spacing-loose:0.075em;--sl-letter-spacing-looser:0.15em;--sl-line-height-denser:1;--sl-line-height-dense:1.4;--sl-line-height-normal:1.8;--sl-line-height-loose:2.2;--sl-line-height-looser:2.6;--sl-focus-ring-color:var(--sl-color-primary-600);--sl-focus-ring-style:solid;--sl-focus-ring-width:3px;--sl-focus-ring:var(--sl-focus-ring-style) var(--sl-focus-ring-width) var(--sl-focus-ring-color);--sl-focus-ring-offset:1px;--sl-button-font-size-small:var(--sl-font-size-x-small);--sl-button-font-size-medium:var(--sl-font-size-small);--sl-button-font-size-large:var(--sl-font-size-medium);--sl-input-height-small:1.875rem;--sl-input-height-medium:2.5rem;--sl-input-height-large:3.125rem;--sl-input-background-color:var(--sl-color-neutral-0);--sl-input-background-color-hover:var(--sl-input-background-color);--sl-input-background-color-focus:var(--sl-input-background-color);--sl-input-background-color-disabled:var(--sl-color-neutral-100);--sl-input-border-color:var(--sl-color-neutral-300);--sl-input-border-color-hover:var(--sl-color-neutral-400);--sl-input-border-color-focus:var(--sl-color-primary-500);--sl-input-border-color-disabled:var(--sl-color-neutral-300);--sl-input-border-width:1px;--sl-input-required-content:"*";--sl-input-required-content-offset:-2px;--sl-input-required-content-color:var(--sl-input-label-color);--sl-input-border-radius-small:var(--sl-border-radius-medium);--sl-input-border-radius-medium:var(--sl-border-radius-medium);--sl-input-border-radius-large:var(--sl-border-radius-medium);--sl-input-font-family:var(--sl-font-sans);--sl-input-font-weight:var(--sl-font-weight-normal);--sl-input-font-size-small:var(--sl-font-size-small);--sl-input-font-size-medium:var(--sl-font-size-medium);--sl-input-font-size-large:var(--sl-font-size-large);--sl-input-letter-spacing:var(--sl-letter-spacing-normal);--sl-input-color:var(--sl-color-neutral-700);--sl-input-color-hover:var(--sl-color-neutral-700);--sl-input-color-focus:var(--sl-color-neutral-700);--sl-input-color-disabled:var(--sl-color-neutral-900);--sl-input-icon-color:var(--sl-color-neutral-500);--sl-input-icon-color-hover:var(--sl-color-neutral-600);--sl-input-icon-color-focus:var(--sl-color-neutral-600);--sl-input-placeholder-color:var(--sl-color-neutral-500);--sl-input-placeholder-color-disabled:var(--sl-color-neutral-600);--sl-input-spacing-small:var(--sl-spacing-small);--sl-input-spacing-medium:var(--sl-spacing-medium);--sl-input-spacing-large:var(--sl-spacing-large);--sl-input-focus-ring-color:rgba(14,165,233,.4);--sl-input-focus-ring-offset:0;--sl-input-filled-background-color:var(--sl-color-neutral-100);--sl-input-filled-background-color-hover:var(--sl-color-neutral-100);--sl-input-filled-background-color-focus:var(--sl-color-neutral-100);--sl-input-filled-background-color-disabled:var(--sl-color-neutral-100);--sl-input-filled-color:var(--sl-color-neutral-800);--sl-input-filled-color-hover:var(--sl-color-neutral-800);--sl-input-filled-color-focus:var(--sl-color-neutral-700);--sl-input-filled-color-disabled:var(--sl-color-neutral-800);--sl-input-label-font-size-small:var(--sl-font-size-small);--sl-input-label-font-size-medium:var(--sl-font-size-medium);--sl-input-label-font-size-large:var(--sl-font-size-large);--sl-input-label-color:inherit;--sl-input-help-text-font-size-small:var(--sl-font-size-x-small);--sl-input-help-text-font-size-medium:var(--sl-font-size-small);--sl-input-help-text-font-size-large:var(--sl-font-size-medium);--sl-input-help-text-color:var(--sl-color-neutral-500);--sl-toggle-size-small:0.875rem;--sl-toggle-size-medium:1.125rem;--sl-toggle-size-large:1.375rem;--sl-overlay-background-color:hsla(240,4%,46%,.33);--sl-panel-background-color:var(--sl-color-neutral-0);--sl-panel-border-color:var(--sl-color-neutral-200);--sl-panel-border-width:1px;--sl-tooltip-border-radius:var(--sl-border-radius-medium);--sl-tooltip-background-color:var(--sl-color-neutral-800);--sl-tooltip-color:var(--sl-color-neutral-0);--sl-tooltip-font-family:var(--sl-font-sans);--sl-tooltip-font-weight:var(--sl-font-weight-normal);--sl-tooltip-font-size:var(--sl-font-size-small);--sl-tooltip-line-height:var(--sl-line-height-dense);--sl-tooltip-padding:var(--sl-spacing-2x-small) var(--sl-spacing-x-small);--sl-tooltip-arrow-size:6px;--sl-z-index-drawer:700;--sl-z-index-dialog:800;--sl-z-index-dropdown:900;--sl-z-index-toast:950;--sl-z-index-tooltip:1000}@supports (scrollbar-gutter:stable){.sl-scroll-lock{scrollbar-gutter:var(--sl-scroll-lock-gutter)!important}.sl-scroll-lock body{overflow:hidden!important}}@supports not (scrollbar-gutter:stable){.sl-scroll-lock body{overflow:hidden!important;padding-right:var(--sl-scroll-lock-size)!important}}.sl-toast-stack{inset-inline-end:0;max-height:100%;max-width:100%;overflow:auto;position:fixed;top:0;width:28rem;z-index:var(--sl-z-index-toast)}.sl-toast-stack sl-alert{margin:var(--sl-spacing-medium)}.sl-toast-stack sl-alert::part(base){box-shadow:var(--sl-shadow-large)}}@layer resets{*{box-sizing:border-box}[hidden]{display:none!important}h1,h2,h3,h4,h5,h6,p{font-family:inherit;font-size:inherit;margin:0;padding:0}a{color:inherit;text-decoration:underline;text-underline-offset:2px}ul{list-style:none;margin:0}button svg{pointer-events:none}}@layer components{.gw-header{font-family:var(--header-font-family);font-size:18px;font-style:normal;font-weight:var(--header-font-weight);line-height:20px}.gw-header--large{font-size:24px;line-height:30px}.gw-body{font-size:14px;font-style:normal;font-weight:var(--body-font-weight);line-height:18px}.gw-body--strong{font-weight:600}.gw-body--small{font-size:12px}.gw-small-text{font-size:13px;font-style:normal;font-weight:var(--body-font-weight);line-height:1.2}.gw-uppercase-text{font-weight:var(--body-font-weight)}.gw-button-text,.gw-uppercase-text{font-size:11px;font-style:normal;line-height:14px;text-transform:uppercase}.gw-button,.gw-button-text{font-weight:var(--button-font-weight);letter-spacing:2.2px}.gw-button{border:none;border-radius:var(--corner-radius-button);cursor:pointer;font-family:var(--button-font-family);font-size:11px;font-style:normal;line-height:14px;padding:13px;text-transform:var(--text-case-button);width:100%}.gw-button--solid{background-color:var(--color-solid-button-background);border:var(--thickness-button) solid var(--color-solid-button-border);color:var(--color-solid-button-text);transition:background-color .3s,color .3s,border-color .3s}.gw-button--solid:hover{background-color:var(--color-solid-button-hover-background);border-color:var(--color-solid-button-hover-border);color:var(--color-solid-button-hover-text)}.gw-button--stroke{background-color:var(--color-stroke-button-background);border:var(--thickness-button) solid var(--color-stroke-button-border);color:var(--color-stroke-button-text);transition:background-color .3s,color .3s,border-color .3s}.gw-button--stroke:hover{background-color:var(--color-stroke-button-hover-background);border-color:var(--color-stroke-button-hover-border);color:var(--color-stroke-button-hover-text)}.gw-button--disabled{background-color:var(--color-disabled-button-background);color:var(--color-disabled-button-text);cursor:not-allowed}.gw-button--text{background-color:transparent;color:var(--color-text-subdued);padding:5px;text-decoration-line:underline}.gw-button svg{pointer-events:none}}@layer utilities{.gw-unstyled-link{color:inherit;text-decoration:none}.gw-button[href]{display:block;text-align:center;text-decoration:none}.gw-empty-button{background:transparent;border:none;cursor:pointer}.gw-main-content-container{display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap);padding-bottom:var(--tab-panel-vertical-gap)}.gw-main-content-container--small-gap{--tab-panel-vertical-gap:16px}.gw-empty-list{padding:0 var(--tab-panel-edge-padding);text-align:center}.gw-empty-list-inner{border:1px solid var(--border-color);border-radius:var(--border-radius);padding:30px}.gw-error-message{color:#a50000;font-size:13px;margin-top:8px}.gw-loader-container{--loader-size:14px;--loader-border-weight:1px;position:relative}.gw-loader-container--block{display:block;height:var(--loader-size);margin:24px auto;width:var(--loader-size)}.gw-loader-container--large{--loader-size:24px;--loader-border-weight:3px}.gw-loader{animation:rotation 1s linear infinite;border:var(--loader-border-weight) solid transparent;border-bottom-color:inherit;border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--loader-size);left:8px;position:absolute;width:var(--loader-size)}.gw-loader-container--block .gw-loader{left:0}.gw-loader--white{border:2px solid var(--border-color);border-bottom-color:var(--color-text)}.visually-hidden{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0}@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}}@layer main{:host{--sl-input-font-size-medium:14px;--sl-font-size-medium:14px;--tab-panel-edge-padding:20px;--tab-panel-vertical-gap:24px;all:initial;color:var(--color-text);font-family:var(--body-font-family);font-size:14px;font-style:normal;font-weight:var(--body-font-weight);line-height:18px;position:relative;z-index:2147483647}sl-drawer{--size:var(--drawer-width);--body-spacing:0;--header-spacing:20px}sl-drawer::part(close-button){display:none}sl-drawer[main-drawer]::part(body){background-color:var(--color-drawer-background);display:flex;flex-direction:column}sl-drawer[main-drawer]::part(header){background-color:var(--color-drawer-header-background)}sl-drawer[main-drawer].inner-drawer-open::part(header){display:none}sl-drawer[main-drawer].inner-drawer-open sl-tab-group::part(nav){display:none}sl-drawer[main-drawer].inner-drawer-open gw-customer-accounts-sign-in{display:none}sl-drawer[main-drawer] sl-tab{background-color:var(--color-drawer-footer-background)}.gw-customer-accounts-drawer__header,.gw-secondary-drawer__header{align-items:center;display:flex;gap:8px}.gw-secondary-drawer__header{background-color:transparent;border:none;color:var(--color-text);cursor:pointer;padding:0}.gw-product-card{position:relative;width:100%}.gw-product-card--splitted{align-items:center;display:flex;flex-direction:row-reverse;gap:16px}.gw-product-card--splitted .gw-product-card__image-container{flex-shrink:0}.gw-product-card--reversed{display:flex;flex-direction:column-reverse}.gw-product-card--removing:after{background:hsla(0,0%,100%,.5);content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.gw-product-card--splitted .gw-product-card__image-container{width:120px}.gw-product-card__image-container:after{content:"";display:block;padding-bottom:var(--product-card-image-ratio);width:100%}.gw-product-card__info{display:flex;flex:1;flex-direction:column;gap:8px}.gw-product-card__info--no-gap{gap:0}.gw-product-card__link{display:block;width:100%}.gw-product-card__link:focus{outline:2px solid #005fcc}.gw-product-card__link:after{content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}.gw-product-card__link--hide-after:after{content:none}.gw-product-card__image-container{border:1px solid var(--border-color);position:relative;width:100%}.gw-product-card__image{height:100%;left:0;object-fit:contain;position:absolute;top:0;width:100%}.gw-product-card__info{margin-top:8px}.gw-product-card__form{display:flex;flex-direction:column;gap:10px}.gw-product-card__actions{display:flex}.gw-product-card__variant-selector{border:1px solid var(--border-color);border-radius:0;color:var(--color-text);padding:4px 8px;width:100%}.gw-product-card__price-compare{text-decoration:line-through}.gw-product-card__price--sale{color:#c70100}.gw-notifications{bottom:54px;left:20px;position:fixed;z-index:900}.gw-notifications sl-alert::part(base){background-color:var(--color-notifications-background);border:none;border-radius:var(--border-radius);min-width:300px;width:100%}.gw-notifications *{color:var(--color-notifications-label);font-family:var(--body-font-family);font-size:16px}.gw-notifications [data-notification-message]{align-items:center;display:flex;gap:8px;justify-content:space-between}.gw-customer-accounts-orders__empty{padding:40px var(--tab-panel-edge-padding) 0;text-align:center}.gw-customer-accounts-order__carousel::part(base){display:block}.gw-customer-accounts-order__header{align-items:center;cursor:pointer;display:flex;gap:8px;margin-bottom:16px;padding:0 var(--tab-panel-edge-padding)}.gw-order-detail{padding-bottom:var(--tab-panel-vertical-gap)}.gw-order-detail__delivery,.gw-order-detail__integrations,.gw-order-detail__line-items,.gw-order-detail__payment{display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap);padding:0 var(--tab-panel-edge-padding)}.gw-order-detail__integrations{gap:8px}.gw-order-detail__line-item{align-items:center;display:flex;gap:16px}.gw-order-detail__line-item:first-child{margin-top:16px}.gw-order-detail__status{align-items:center;background-color:#a13818;color:#fff;display:flex;gap:8px;padding:12px var(--tab-panel-edge-padding)}.gw-order-detail__line-item-image-container{border:1px solid var(--border-color);flex-shrink:0;position:relative;width:120px}.gw-order-detail__line-item-image-container:after{content:"";display:block;padding-bottom:var(--product-card-image-ratio);width:100%}.gw-order-detail__line-item-image{border-radius:var(--border-radius);height:100%;left:0;object-fit:contain;position:absolute;top:0;width:100%}.gw-order-detail__line-item-quantity{background-color:var(--color-text);border-radius:50%;color:#fff;font-size:10px;font-weight:600;line-height:14px;padding:2px 7px;position:absolute;right:0;top:0;transform:translate(50%,-50%)}.gw-order-detail__line-item-price{margin-left:auto}.gw-order-detail__price-breakdown{border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);display:flex;flex-direction:column;padding:var(--tab-panel-vertical-gap) var(--tab-panel-edge-padding) 0}.gw-order-detail__price-breakdown-item{align-items:center;display:flex;justify-content:space-between}.gw-order-detail__price-breakdown-item+.gw-order-detail__price-breakdown-item{margin-top:14px}.gw-order-detail__price-breakdown-item--total{border-top:1px solid var(--border-color);margin-top:var(--tab-panel-vertical-gap)!important;padding:var(--tab-panel-vertical-gap) 0}.gw-order-detail__discount-title{text-transform:uppercase}.gw-order-detail__delivery-info p:first-child,.gw-order-detail__payment-info p:first-child{margin-bottom:10px}.gw-order-detail__additional-info{padding:0 var(--tab-panel-edge-padding)}.gw-order-detail__additional-info p:not(:last-child){margin-bottom:8px}.gw-icon--close{align-items:center;display:flex;height:18px;justify-content:center;width:18px}sl-input,sl-select{color:var(--color-text);font-family:var(--form-font-family);font-weight:var(--form-font-weight);position:relative;text-transform:var(--form-elements-text-case)}sl-input.input--empty::part(form-control-label),sl-select.input--empty::part(form-control-label){font-size:14px;padding-top:17px}sl-input.input--focus::part(form-control-label),sl-input::part(form-control-label),sl-select::part(form-control-label){font-size:10px;padding-left:12px;padding-top:6px;position:absolute;transition:all .3s ease;z-index:1}sl-input::part(base){border:var(--form-elements-thickness) solid var(--border-color);border-radius:var(--form-elements-corner-radius);height:50px;position:relative}sl-input::part(input){height:50px;padding-left:12px;padding-top:12px}sl-input[data-user-invalid]::part(base){--border-color:#a50000}sl-select::part(combobox){border:var(--form-elements-thickness) solid var(--border-color);border-radius:var(--form-elements-corner-radius);height:50px}sl-select::part(display-input){top:8px}sl-checkbox::part(base){align-items:center}sl-checkbox::part(control){--toggle-size:16px;--sl-focus-ring:solid 2px #000;border-color:#181818;border-radius:0}sl-checkbox[checked]::part(control){background-color:#000;color:#fff}sl-option[value="---"]{display:none}.gw-recently-viewed-collections sl-carousel::part(scroll-container){grid-auto-columns:auto;justify-content:flex-start}.gw-recently-viewed-collection{border:1px solid #000;padding:8px 18px;white-space:nowrap}.gw-favorites-tab,.gw-saved-from-cart-tab{display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap);padding:0 var(--tab-panel-edge-padding) var(--tab-panel-vertical-gap)}.gw-recently-viewed-items-tab{display:grid;gap:24px 16px;grid-template-columns:1fr 1fr;padding:0 var(--tab-panel-edge-padding) var(--tab-panel-vertical-gap)}.gw-quick-links{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0 var(--tab-panel-edge-padding)}.gw-quick-link{align-items:center;display:flex;gap:8px}.gw-card__item{display:flex;flex-direction:column;gap:8px;padding:0 var(--tab-panel-edge-padding);position:relative}.gw-card__item a{height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}.gw-card__item-image-wrapper{overflow:hidden;width:100%}.gw-card__item-image{display:block;height:100%;object-fit:cover;transition:transform .5s ease;width:100%}.gw-card__item:hover .gw-card__item-image{transform:scale(1.05)}.gw-sign-in{display:flex;flex-direction:column;gap:14px;margin-bottom:24px;padding:0 var(--tab-panel-edge-padding)}.gw-sign-in__form button[type=submit]{margin-top:16px}.gw-verify-code{margin-bottom:24px;text-align:center}.gw-verify-code .input-code-group{display:flex;gap:8px;justify-content:center;margin:35px 0 16px}.gw-verify-code .code-input{appearance:textfield;-moz-appearance:textfield;background:#fff;border:1px solid var(--border-color);font-family:var(--form-font-family);font-size:22px;font-weight:600;height:68px;text-align:center;width:56px}.gw-verify-code .code-input::-webkit-inner-spin-button,.gw-verify-code .code-input::-webkit-outer-spin-button{-webkit-appearance:none}.gw-verify-code__actions .gw-error-message{margin:16px 0}.my-preferences{padding:0 var(--tab-panel-edge-padding)}.my-preferences__header{align-items:center;cursor:pointer;display:flex;gap:8px;margin-bottom:22px}.my-preferences__field{border:1px solid var(--border-color);display:flex;flex-direction:column;padding:16px 20px}.my-preferences__field+.my-preferences__field{border-top:0}.my-preferences__fields+.my-preferences__fields{margin-top:22px}.my-preferences__fields{cursor:pointer}.gw-preference-details__notification{border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap);padding:0 var(--tab-panel-edge-padding) var(--tab-panel-vertical-gap)}.gw-preference-details__email{display:flex;flex-direction:column;gap:16px}.gw-preference-details__email sl-input::part(form-control-help-text){margin-top:8px}.gw-preference-details__email sl-checkbox::part(base){align-items:center}.gw-preference-details__email sl-checkbox::part(control){--sl-focus-ring:solid 2px #000;border-color:#181818;border-radius:0}.gw-preference-details__email sl-checkbox[checked]::part(control){background-color:#000;color:#fff}.gw-preference-details__phone{display:flex;flex-direction:column;gap:16px}.gw-preference-details__phone sl-checkbox::part(form-control-help-text){margin-top:8px}.gw-preference-details__personal-info{display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap)}.gw-address,.gw-preference-details__personal-info{padding:var(--tab-panel-vertical-gap) var(--tab-panel-edge-padding)}.gw-address{border-bottom:1px solid var(--border-color);cursor:pointer}.gw-address p:first-child{margin-bottom:8px}.gw-address-add,.gw-address-edit{padding:var(--tab-panel-vertical-gap) var(--tab-panel-edge-padding)}.gw-address__icon{position:absolute;right:16px;top:50%;transform:translateY(-50%)}.gw-button-wrapper{padding:0 var(--tab-panel-edge-padding)}.my-addresses{cursor:pointer}.my-addresses sl-carousel::part(scroll-container){grid-auto-columns:auto}.my-addresses__header{align-items:center;cursor:pointer;display:flex;gap:8px;margin-bottom:22px}.my-addresses__header,.my-addresses__list--single{padding:0 var(--tab-panel-edge-padding)}.my-addresses__address{border:1px solid var(--border-color);min-height:160px;min-width:270px;padding:16px 20px}.my-addresses__address p:first-child{margin-bottom:8px}.my-addresses__default-badge{background-color:var(--border-color);padding:2px 8px;white-space:nowrap}.gw-latest-order-wrapper{padding:0 20px}.gw-latest-order{background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 0 20px 0 rgba(0,0,0,.1);cursor:pointer;display:flex;gap:16px;padding:16px}.gw-latest-order__image-container{flex-shrink:0;position:relative;width:56px}.gw-latest-order__image-container:after{content:"";display:block;padding-bottom:var(--product-card-image-ratio);width:100%}.gw-latest-order__image{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.gw-latest-order__info{display:flex;flex-direction:column;gap:4px;justify-content:center}sl-tab-group{--indicator-color:var(--color-text);--track-color:var(--border-color);--track-width:2px;--sign-in-block-height:202px;--sign-in-block-margin-bottom:24px;flex:1;max-height:calc(100% - var(--sign-in-block-height) - var(--sign-in-block-margin-bottom))}sl-tab-group[has-customer]{max-height:100%}sl-tab-group::part(base),sl-tab-group::part(body){height:100%}sl-tab-group::part(nav){padding:0}sl-tab-group sl-tab-panel{height:100%}sl-tab-group sl-tab-panel::part(base){height:100%;padding:0}sl-tab-group sl-tab{cursor:pointer;padding:16px 0;text-align:center;width:33.33333%}sl-tab-group sl-tab::part(base){all:unset}.gw-collections{display:flex;gap:8px}.gw-collections sl-skeleton{--border-radius:0;flex-shrink:0;height:30px;width:90px}.gw-collections sl-skeleton:nth-child(odd){width:120px}.gw-products-carousel{display:flex;flex-direction:column;gap:24px}.gw-products-carousel__header-wrapper{padding:0 20px}.gw-products-carousel__header{align-items:center;cursor:pointer;display:flex;gap:8px}.gw-products-carousel__feed{display:flex;gap:8px;padding:0 0 0 20px}.gw-products-carousel sl-skeleton{--border-radius:0;flex-shrink:0;width:115px}.gw-products-carousel sl-skeleton:after{content:"";display:block;padding-bottom:var(--product-card-image-ratio);width:100%}sl-carousel::part(base){gap:0}sl-carousel::part(navigation-button){align-items:center;background-color:#fff;display:flex;height:42px;justify-content:center;opacity:0;position:absolute;transition:all .3s ease;width:32px;z-index:10}sl-carousel::part(navigation-button):hover{scale:1.1}sl-carousel::part(navigation-button--previous){border:1px solid var(--border-color);border-left:none;border-radius:0 8px 8px 0;left:0}sl-carousel::part(navigation-button--next){border-right:none;border:1px solid var(--border-color);border-radius:8px 0 0 8px;right:0}sl-carousel:focus-within::part(navigation-button),sl-carousel:focus::part(navigation-button),sl-carousel:hover::part(navigation-button){opacity:1}gw-wishlist-button{bottom:0;position:absolute;right:4px;z-index:10}gw-wishlist-button[processing]::part(button){opacity:.5;pointer-events:none}gw-wishlist-button:active::part(button){transform:scale(.9)}gw-wishlist-button::part(button){background-color:transparent;border:none;color:var(--color-text);cursor:pointer;height:14px;padding:0;transition:.2s cubic-bezier(.39,.575,.565,1);width:14px}gw-wishlist-button::part(filled-icon),gw-wishlist-button::part(icon){display:block;left:0;position:absolute;top:0;transition:opacity .3s}gw-wishlist-button::part(filled-icon),gw-wishlist-button:hover::part(icon){opacity:0}gw-wishlist-button:hover::part(filled-icon),gw-wishlist-button[saved]::part(filled-icon){opacity:1}gw-integrations-loyalty-points{padding:0 var(--tab-panel-edge-padding)}.gw-loyalty-points__link{align-items:center;background-color:var(--background-color);border-radius:var(--border-radius);color:var(--text-color);display:flex;gap:8px;min-height:54px;padding:16px}.gw-loyalty-points__link:hover .gw-loyalty-points__link-label{transform:translateX(0)}.gw-loyalty-points__link-label{align-items:center;display:flex;gap:4px;margin-left:auto;transform:translateX(-5px);transition:transform .3s ease-in-out}.gw-loyalty-points__id-container{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:16px 20px}.gw-loyalty-points__copy-button{align-items:center;background-color:transparent;border:none;color:var(--color-text);cursor:pointer;display:flex;font-family:var(--body-font-family);gap:4px}.gw-loyalty-points__copy-button svg{height:12px;width:12px}}
package/dist/main.js DELETED
@@ -1 +0,0 @@
1
- import{G as n,a as s}from"./assets/index-DI2a6rRk.js";customElements.define("gw-customer-accounts",class extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"open"});const t=document.getElementById("gw-customer-accounts-template");this.shadow.appendChild(t.content.cloneNode(!0)),t.remove(),this.drawer=this.shadowRoot.querySelector("sl-drawer"),this.tabGroup=this.shadowRoot.querySelector("sl-tab-group"),this.closeButtons=this.drawer.querySelectorAll("[data-main-drawer-close]")}connectedCallback(){this._checkCustomerStatus(),this._watchSavedItemsFromCart(),n.hasCustomer&&(this._saveTempWishlistProducts(),this._saveTempCartProducts(),this._saveTempRecentlyViewedProducts()),Promise.all([customElements.whenDefined("sl-drawer")]).then(()=>this.init())}init(){this.drawer.removeAttribute("hidden"),window.location.search.includes("my-account-open")&&!window.location.pathname.includes("/account")&&(window.history.replaceState({},document.title,window.location.pathname),window.location.hash="#my-account"),window.addEventListener("hashchange",()=>{this._handleHashChange(),this.reinitializeCarousels()}),this._handleHashChange(),this.closeButtons.forEach(t=>{t.addEventListener("click",()=>{this._closeDrawer()})}),this.drawer.addEventListener("sl-hide",t=>{t.target===this.drawer&&(window.location.hash="")}),this._updateAccountLinks(),this._handleInputElements(),this._addRecentlyViewedProducts(),n.hasCustomer&&this._updateRecentlyViewedCollection(),this.reinitializeCarousels(),this.shadowRoot.addEventListener("click",t=>{if(!t.target.closest("[data-drawer-id]"))return;const o=t.target.closest("[data-drawer-id]").getAttribute("data-drawer-id"),r=this.shadowRoot.querySelector(`#${o}`);r.hasAttribute("empty")||(r.open=!0,navigator.userAgent.indexOf("iPhone")>-1&&setTimeout(()=>{this.drawer.classList.add("inner-drawer-open")},150))}),this.shadowRoot.addEventListener("click",t=>{t.target.closest("[data-inner-drawer-close]")&&(t.target.closest("sl-drawer").open=!1,navigator.userAgent.indexOf("iPhone")>-1&&this.drawer.classList.remove("inner-drawer-open"))}),n.hasCustomer&&this.updateFavoriteItemsStorage(),!n.hasCustomer&&sessionStorage.getItem(s.STORAGE_KEYS.TEMP_PRODUCTS_UPDATED)!=="true"&&this._syncTempProducts()}reinitializeCarousels(){Promise.all([customElements.whenDefined("sl-carousel"),customElements.whenDefined("sl-carousel-item")]).then(()=>{setTimeout(()=>{this.shadowRoot.querySelectorAll("sl-carousel").forEach(t=>{t.initializeSlides()})},1e3)})}_updateAccountLinks(){const t=document.querySelectorAll("a[href]");Array.from(t).filter(r=>r.getAttribute("href").startsWith("/account")||r.getAttribute("href").startsWith("#status")).forEach(r=>{r.hasAttribute("data-ignore-account-link")||(r.getAttribute("href").includes("logout")?r.href="#my-profile":r.href="#my-account",Shopify.designMode&&r.addEventListener("click",()=>{this._openDrawer()}))})}_handleInputElements(){const t=e=>{!e.value&&!e.getAttribute("value")?e.classList.add("input--empty"):e.classList.remove("input--empty")},o=e=>{e.classList.add("input--focus")},r=e=>{e.classList.remove("input--focus")};this.shadowRoot.querySelectorAll("sl-input").forEach(e=>{e.addEventListener("sl-input",()=>t(e)),e.addEventListener("sl-focus",()=>o(e)),e.addEventListener("sl-blur",()=>r(e)),t(e)})}async _handleHashChange(){const t=window.location.hash;if(s.MAP[t]){if(await this._fetchComponents(),s.MAP[t].includes("##")){const[o,r]=s.MAP[t].split("##");this._renderTab(o),setTimeout(()=>{this._renderSubTab(r),this._openDrawer()},100);return}else this.shadowRoot.querySelectorAll("sl-drawer").forEach(o=>{o.open=!1});this._renderTab(),this._openDrawer()}}async _openDrawer(){this.drawer.open||this.drawer.show()}_closeDrawer(){this.drawer.open&&this.drawer.hide()}_fetchComponents(){if(customElements.get("sl-tab-group"))return Promise.resolve();const t="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.19.1/cdn/components/",r=["tab-group","tab-panel","tab","animation","skeleton","select","input","checkbox","carousel","carousel-item","popup","option","alert"].map(e=>new Promise((i,a)=>{const c=document.createElement("script");c.type="module",c.src=`${t}${e}/${e}.js`,c.onload=i,c.onerror=a,document.body.appendChild(c)}));return Promise.all(r)}async _addRecentlyViewedProducts(){if(!window.location.pathname.includes("/products/"))return;const{product:o}=n.componentData;if(!o||!o.id)return;const{id:r}=o;if(n.hasCustomer)try{const e=await n.request(s.ENDPOINTS.VIEWED_PRODUCTS.ADD,{prodID:r});if(e.error)throw new Error(e.error);return e}catch(e){console.error(e)}else{if(JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS)||"[]").some(i=>i.id===r))return;n.addToStorage({key:s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS,values:[{...o}]})}}_updateRecentlyViewedCollection(){if(!window.location.pathname.includes("/collections/"))return;const{collection:o}=n.componentData;if(!o)return;const{url:r,title:e}=o,i=localStorage.getItem(s.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION),c=(JSON.parse(i)||[]).filter(l=>l.url!==r),d=[{url:r,title:e},...c];localStorage.setItem(s.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION,JSON.stringify(d))}_renderTab(t){this.tabGroup.show(t||n.tabId)}_renderSubTab(t){const o=s.DRAWER_IDS[t];if(!o)return;const r=this.shadowRoot.querySelector(o);r&&(r.open=!0,navigator.userAgent.indexOf("iPhone")>-1&&setTimeout(()=>{this.drawer.classList.add("inner-drawer-open")},150))}async updateContent(t=[]){const o=this.getAttribute("data-section-id"),r=await this._fetchContent(o);t.forEach(e=>{const i=this.shadow.querySelector(e);if(i){const c=r.querySelector("#gw-customer-accounts-template").content.querySelector(e);i.innerHTML=c.innerHTML}})}async _fetchContent(t){const r=await(await fetch(window.location.pathname+`?section_id=${t}`)).text();return new DOMParser().parseFromString(r,"text/html")}async updateFavoriteItemsStorage(t){const{removeIds:o,addIds:r}=t||{};let e=!1;if(r!=null&&r.length&&(n.addToStorage({key:s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,values:r,storageType:"session"}),e=!0),o!=null&&o.length&&(n.removeFromStorage({key:s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,values:o,storageType:"session"}),e=!0),e){this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED));return}try{const i=await n.request(s.ENDPOINTS.FAVORITES.GET_ALL_IDS,{customerID:n.customerId},"GET");if(i.error)throw new Error(i.error);sessionStorage.setItem(s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,JSON.stringify(i.products)),this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED))}catch(i){console.error("Error initializing wishlist:",i)}}async _checkCustomerStatus(){const t=n.customerToken,{id_sha256:o,email:r,tags:e,id:i}=n.componentData.customer;if(!t&&i)try{const a=await n.request(s.ENDPOINTS.AUTH.GET_TOKEN,{customerEmail:r,encode:o},"POST");if(a.error)throw new Error(a.error);a.token&&(localStorage.setItem(s.STORAGE_KEYS.TOKEN,a.token),localStorage.setItem(s.STORAGE_KEYS.EMAIL,r))}catch(a){console.error("Error checking customer status:",a)}if(e&&!e.includes("gw-customer"))try{const a=await n.request(s.ENDPOINTS.AUTH.CUSTOMER_LOGGED,{});if(a.error)throw new Error(a.error)}catch(a){console.error("Error checking customer status:",a)}}async _saveTempWishlistProducts(){var r;const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS));if(!(t!=null&&t.length))return;const o={products:t.map(e=>{const{id:i,variantId:a}=e;return{prodID:i,varID:a}})};try{const e=await n.request(s.ENDPOINTS.FAVORITES.ADD_BULK,o);if(e.error)throw new Error(e.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS),(r=e.products)!=null&&r.length&&(sessionStorage.setItem(s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,JSON.stringify(e.products)),this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED))),n.dashboard.loadFavoriteItems()}catch(e){console.error("Error saving temp wishlist products:",e)}}async _saveTempCartProducts(){const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS));if(!(t!=null&&t.length))return;const o={products:t.map(r=>{const{id:e,variantId:i}=r;return{prodID:e,varID:i}})};try{const r=await n.request(s.ENDPOINTS.CART.ADD_BULK,o);if(r.error)throw new Error(r.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS),n.dashboard.loadSavedCartItems()}catch(r){console.error("Error saving temp cart products:",r)}}async _saveTempRecentlyViewedProducts(){const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS));if(!(t!=null&&t.length))return;const o={products:t.map(r=>{const{id:e}=r;return{prodID:e}})};try{const r=await n.request(s.ENDPOINTS.VIEWED_PRODUCTS.ADD_BULK,o);if(r.error)throw new Error(r.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS),console.log("Saved temp recently viewed products:",r),n.dashboard.loadRecentlyViewedItems()}catch(r){console.error("Error saving temp recently viewed products:",r)}}async _watchSavedItemsFromCart(){this.addEventListener(s.CUSTOM_EVENTS.SAVED_ITEMS_FROM_CART,async t=>{n.hasCustomer?await this._handleAuthedCartEvent(t):this._handleGuestCartEvent(t)})}async _handleGuestCartEvent(t){const o=t.detail.extra,r=o.handle,e={};try{const i=await fetch(`/products/${r}.js`);if(!i.ok)throw new Error("Product not found");const a=await i.json();e.variant_id=o.variant_id,e.featuredImage=o.featured_image,e.title=o.title,e.variants={},e.variants.nodes=a.variants,e.id=a.id,e.tags=a.tags,e.handle=a.handle;const d=(JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS))||[]).filter(u=>u.id!==a.id),l=[e,...d];localStorage.setItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS,JSON.stringify(l)),n.dashboard.loadSavedCartItems()}catch(i){console.error("Error adding product to cart:",i)}}async _handleAuthedCartEvent(t){try{const{productId:o,variantId:r}=t.detail||{};if(!o||!r)return;const e=await n.request(s.ENDPOINTS.CART.ADD,{prodID:o,varID:r});if(e.error)throw new Error(e.error);n.dashboard.loadSavedCartItems()}catch(o){console.error("Error adding product to cart:",o)}}async _syncTempProducts(){const t=[s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,s.STORAGE_KEYS.TEMP_CART_PRODUCTS,s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS],o=t.flatMap(a=>(JSON.parse(localStorage.getItem(a))||[]).filter(Boolean)),r=[...new Map(o.map(a=>[a.id,a])).values()];console.log("Unique products:",r);const i=(await Promise.all(r.map(async({id:a,handle:c})=>{try{const d=await fetch(`/products/${c}.js`);return d.ok?await d.json():null}catch{return null}}))).reduce((a,c)=>(c&&c.available&&(a[c.id]=c),a),{});t.forEach(a=>{const d=(JSON.parse(localStorage.getItem(a))||[]).map(l=>{if(!l)return null;const u=i[l.id];return u?(l.variants.nodes=u.variants,l):null}).filter(Boolean);localStorage.setItem(a,JSON.stringify(d))}),sessionStorage.setItem(s.STORAGE_KEYS.TEMP_PRODUCTS_UPDATED,"true")}});
@@ -1 +0,0 @@
1
- import{G as o,a as s}from"./assets/index-DI2a6rRk.js";customElements.define("gw-malomo-button",class extends HTMLElement{constructor(){super(),this.trackingPageUrl=this.getAttribute("tracking-page-url"),this.orderId=this.getAttribute("order-id")}connectedCallback(){this._initMalomoButton()}async _initMalomoButton(){var r;const t=await o.request(s.ENDPOINTS.MISC.GET_MALOMO_ORDER,{orderID:this.orderId});if(t.error){console.error(t.error);return}if((r=t.order)!=null&&r.url){const e=this.querySelector("a");e.href=t.order.url}else this.remove()}});
package/dist/orders.js DELETED
@@ -1 +0,0 @@
1
- import{G as c}from"./assets/tab-B7UDegaP.js";import"./assets/index-DI2a6rRk.js";customElements.define("gw-customer-accounts-orders",class extends c{constructor(){super()}connectedCallback(){super.connectedCallback()}});
@@ -1 +0,0 @@
1
- import{G as a,a as o}from"./assets/index-DI2a6rRk.js";customElements.define("gw-preferences-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form")}connectedCallback(){this._handleFormSubmit()}async _handleFormSubmit(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{this.form.addEventListener("sl-invalid",e=>{e.preventDefault(),this._clearErrorMessages(),this.form.querySelectorAll("sl-input").forEach(r=>{if(r.hasAttribute("data-invalid")){const t=document.createElement("div");t.slot="help-text",t.classList.add("gw-error-message"),t.textContent=r.validationMessage,r.appendChild(t)}})},{capture:!0}),this.form.addEventListener("submit",e=>{e.preventDefault();const r=new FormData(this.form),t=Object.fromEntries(r.entries());this._submitPreferencesForm(t)})})}async _submitPreferencesForm(e){try{this._clearErrorMessages(),this.form.querySelector("[data-loader]").hidden=!1;let r=await a.request(o.ENDPOINTS.CUSTOMER.UPDATE,e);if(r.error)throw new Error(r.error);this.form.closest("sl-drawer").hide(),a.updateAjaxContent(["[data-main-drawer-label]","[data-my-preference-fields]"])}catch(r){this._handleErrors(r)}finally{this.form.querySelector("[data-loader]").hidden=!0}}_clearErrorMessages(){this.form.querySelectorAll(".gw-error-message").forEach(e=>e.remove())}_handleErrors(e){e.message.includes("valid phone number")&&this._displayErrorMessage('[name="phone"]',e.message)}_displayErrorMessage(e,r){let t=e;typeof e=="string"&&(t=this.form.querySelector(e));const s=document.createElement("div");s.slot="help-text",s.classList.add("gw-error-message"),s.textContent=r,t.appendChild(s),t.focus()}});
package/dist/profile.js DELETED
@@ -1 +0,0 @@
1
- import{a as o}from"./assets/index-DI2a6rRk.js";import{G as c}from"./assets/tab-B7UDegaP.js";customElements.define("gw-customer-accounts-profile",class extends c{constructor(){super()}connectedCallback(){var e;super.connectedCallback(),(e=this.querySelector("[data-logout-button]"))==null||e.addEventListener("click",function(t){t.preventDefault(),this.querySelector("[data-loader]").hidden=!1,localStorage.removeItem(o.STORAGE_KEYS.TOKEN),localStorage.removeItem(o.STORAGE_KEYS.EMAIL),window.location.href="/account/logout"})}});
@@ -1,4 +0,0 @@
1
- import{G as o,a as s}from"./assets/index-DI2a6rRk.js";customElements.define("gw-quick-add-to-cart-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.productId=this.getAttribute("product-id")}connectedCallback(){this.form.addEventListener("submit",async e=>{e.preventDefault(),this._handleFormSubmit()}),this.addEventListener("click",e=>{e.target.matches("[data-wishlist-remove]")&&this.closest(".gw-product-card").querySelector("gw-wishlist-button").dispatchEvent(new Event("click")),e.target.matches("[data-saved-from-cart-remove]")&&this._handleRemoveFromSavedItems()})}async _handleFormSubmit(){this.form.querySelector("[data-loader]").hidden=!1;const t={method:"POST",body:new FormData(this.form),headers:{Accept:"application/javascript"}};try{const r=await fetch(routes.cart_add_url,t);if(r.error)throw new Error(r.error);o.notify(`
2
- <span>Product added to cart</span>
3
- <a href="/cart" class="gw-notification__link">View</a>
4
- `)}catch(r){console.error(r)}finally{if(this.form.querySelector("[data-loader]").hidden=!0,!this.closest("[data-favorites-drawer-container]"))return;const r=this.form.querySelector('[name="productId"]').value,a=this.form.querySelector('[name="id"]').value;if(!r||!a)return;const c=new CustomEvent(s.CUSTOM_EVENTS.SAVED_ITEMS_FROM_CART,{detail:{productId:r,variantId:a,target:this}});o.app.dispatchEvent(c)}}async _handleRemoveFromSavedItems(){if(!o.hasCustomer){const t=this.form.querySelector('[name="productId"]').value,a=(JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS))||[]).filter(c=>c.id!=t);localStorage.setItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS,JSON.stringify(a)),o.dashboard.loadSavedCartItems();return}this.form.closest(".gw-product-card").classList.add("gw-product-card--removing");const e={prodID:this.form.querySelector('[name="productId"]').value};try{const t=await o.request(s.ENDPOINTS.CART.REMOVE,e);if(t.error)throw new Error(t.error);await o.dashboard.loadSavedCartItems()}catch(t){console.error(t)}}});
package/dist/sign-in.js DELETED
@@ -1 +0,0 @@
1
- import{G as f,a as s}from"./assets/index-DI2a6rRk.js";customElements.define("gw-customer-accounts-sign-in",class extends HTMLElement{constructor(){super(),this.signInBlock=this.querySelector("[data-sign-in-block]"),this.verifyCodeBlock=this.querySelector("[data-verify-code-block]"),this.tryAnotherEmailButton=this.querySelector("[data-try-another-email]"),this.sendAnotherCodeButton=this.querySelector("[data-send-another-code]"),this.inputtedEmail="",this.inputtedCode=""}connectedCallback(){this._handleEmailSubmitForm(),this._handleInputCodeGroup(),this.tryAnotherEmailButton.addEventListener("click",()=>{this.signInBlock.removeAttribute("hidden"),this.verifyCodeBlock.setAttribute("hidden",""),this.signInBlock.querySelector("sl-input").value="",this.signInBlock.querySelector("sl-input").focus(),this.inputtedEmail="",this.inputtedCode=""}),this.sendAnotherCodeButton.addEventListener("click",()=>{this._submitEmailForm(this.querySelector("[data-sign-in-form]")),f.notify("Another code has been sent to your email.")})}async _handleEmailSubmitForm(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{const t=this.querySelector("[data-sign-in-form]"),i=this.querySelector("[data-email-error]");t.addEventListener("sl-invalid",o=>{o.preventDefault(),i.textContent=o.target.validationMessage,i.hidden=!1,o.target.focus()},{capture:!0}),t.addEventListener("submit",o=>{o.preventDefault(),i.hidden=!0,i.textContent="",this._submitEmailForm(t).then(()=>{const e=this.verifyCodeBlock.querySelector(".code-input");e&&e.focus()})})})}async _submitEmailForm(t){const i=t.querySelector('button[type="submit"]');i.disabled=!0,i.querySelector("[data-loader]").hidden=!1;const o=new FormData(t);this.inputtedEmail=o.get("email");try{const e=await this._request({customerEmail:this.inputtedEmail},s.ENDPOINTS.AUTH.SIGN_IN);if(e.error){console.error(e.error);return}const n=this.querySelector("[data-code-sent-to]");return n&&(n.textContent=this.inputtedEmail),this.signInBlock.setAttribute("hidden",""),this.verifyCodeBlock.removeAttribute("hidden"),e}catch(e){console.error(e),alert("An error occurred. Please try again later.")}finally{i.disabled=!1,i.querySelector("[data-loader]").hidden=!0}}async _submitVerificationCode(){var c;const t=this.querySelector(".gw-verify-code__actions"),i=t.querySelectorAll("button, a"),o=t.querySelector("[data-verify-error]"),e=t.querySelector("[data-loader]"),n=this.querySelectorAll("input.code-input");try{n.forEach(l=>{l.disabled=!0}),i.forEach(l=>{l.disabled=!0,l.hidden=!0}),o.hidden=!0,e.hidden=!1;const r=await this._request({customerEmail:this.inputtedEmail,code:this.inputtedCode},s.ENDPOINTS.AUTH.VERIFY_CODE);if(!r.url)throw new Error("Verification failed");localStorage.setItem(s.STORAGE_KEYS.TOKEN,r.token),localStorage.setItem(s.STORAGE_KEYS.EMAIL,this.inputtedEmail);const a=await fetch(r.url);if(a.error)throw new Error(a.error);const u=await(await fetch(window.location.href)).text();document.documentElement.innerHTML=u;const h=sessionStorage.getItem(s.STORAGE_KEYS.REDIRECT_URL);h&&(sessionStorage.removeItem(s.STORAGE_KEYS.REDIRECT_URL),window.location.href=h);const m=(c=new DOMParser().parseFromString(u,"text/html").querySelector("#gw-customer-accounts-template").content)==null?void 0:c.querySelector("gw-integrations-loyalty-points");if(!m)return;const y=window.location.pathname,p=m.getAttribute("page-url");y.includes(p)&&window.location.reload()}catch(r){console.error(r),setTimeout(()=>{n[n.length-1].focus()})}finally{n.forEach(r=>{r.disabled=!1}),i.forEach(r=>{r.disabled=!1,r.hidden=!1}),o.hidden=!1,e.hidden=!0}}async _request(t,i,o="POST"){return await(await fetch(f.baseURL+i,{method:o,body:JSON.stringify(t),mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"}})).json()}_handleInputCodeGroup(){const t=[...this.querySelectorAll("input.code-input")];t.forEach((i,o)=>{i.addEventListener("keydown",e=>{(e.ctrlKey||e.metaKey)&&e.keyCode===86||(e.keyCode!==8&&(e.keyCode<48||e.keyCode>57)&&e.preventDefault(),e.keyCode===8&&e.target.value===""&&t[Math.max(0,o-1)].focus())}),i.addEventListener("input",e=>{const[n,...c]=e.target.value;e.target.value=n??"";const r=o===t.length-1,a=n!==void 0;a&&!r&&(t[o+1].focus(),t[o+1].value=c.join(""),t[o+1].dispatchEvent(new Event("input"))),a&&r&&t.every(d=>d.value)&&(this.inputtedCode=t.map(d=>d.value).join(""),this._submitVerificationCode())})})}});
@@ -1,21 +0,0 @@
1
- import{G as s,a as i}from"./assets/index-DI2a6rRk.js";customElements.define("gw-wishlist-button",class extends HTMLElement{constructor(){var o,r;super(),this.shadow=this.attachShadow({mode:"open"}),this.isIconOnly=this.hasAttribute("icon-only");const e=this.querySelector('template[name="icon"]');this.iconEl=this._createIcon(e,"icon");const t=this.querySelector('template[name="filled-icon"]');this.filledIconEl=this._createIcon(t,"filled-icon"),this.hasAttribute("icon-only")?this.shadowRoot.innerHTML=`
2
- <button class="wishlist-button wishlist-button--icon-only" part="button">
3
- ${this.iconEl}
4
- ${this.filledIconEl}
5
- </button>
6
- `:this.shadowRoot.innerHTML=`
7
- <button class="wishlist-button" part="button">
8
- <span class="icon-container" part="icon-container">
9
- ${this.iconEl}
10
- ${this.filledIconEl}
11
- </span>
12
- <span class="" data-button-label></span>
13
- <span class="loader" data-loader></span>
14
- </button>
15
- `,this.productId=this.getAttribute("product-id"),this.variantId=this.getAttribute("variant-id"),this.labels={inactive:((o=s.componentData.wishlist)==null?void 0:o.addToWishlistLabel)||"Add to wishlist",active:((r=s.componentData.wishlist)==null?void 0:r.addedToWishlistLabel)||"Added to wishlist"},this.button=this.shadowRoot.querySelector("button"),this.buttonLabel=this.shadowRoot.querySelector("[data-button-label]"),this.loader=this.shadowRoot.querySelector("[data-loader]"),this.buttonIcon=this.shadowRoot.querySelectorAll("[data-button-icon]")}connectedCallback(){this.addEventListener("click",e=>this._handleFavoriteButtonClick(e)),this._activateButton(this._isProductInFavorites()),s.app.addEventListener(i.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED,()=>{this._activateButton(this._isProductInFavorites())})}_createIcon(e,t){if(!e)return"";const r=e.content.cloneNode(!0).querySelector("svg");return r.setAttribute("part",t),r.setAttribute("data-button-icon",""),r.setAttribute("hidden",""),r.outerHTML}_getVariantId(){const t=new URLSearchParams(window.location.search).get("variant");return t||this.variantId}async _handleFavoriteButtonClick(e){if(e.preventDefault(),e.stopPropagation(),this.button.disabled=!0,this.button.setAttribute("aria-disabled","true"),this.setAttribute("processing",""),this.loader&&(this.loader.hidden=!1),this.hasAttribute("saved")){this._activateButton(!1);try{const t=await this._removeFromFavorites();if(t.error)throw new Error(t.error);const o=t.products;if(!o)throw new Error("Product not found");s.dashboard._removeFavoriteItem(s.parseVariantId(o.id)),s.app.updateFavoriteItemsStorage({removeIds:[s.parseVariantId(o.id)]});const r=s.customerFirstName?`${s.customerFirstName}'s`:"Your";s.notify(`
16
- <span>Product removed from ${r} favorites</span>
17
- <a href="#my-favorites" class="gw-notification__link">View</a>
18
- `)}catch(t){console.error(t),this._activateButton(!0),s.notify("An error occurred. Please try again later.")}}else{this._activateButton(!0);try{const t=await this._addToFavorites();if(t.error)throw new Error(t.error);const o=t.products;if(!o)throw new Error("Product not found");s.app.updateFavoriteItemsStorage({addIds:[s.parseVariantId(o.id)]}),s.dashboard._renderSingleFavoriteItem(o);const r=s.customerFirstName?`${s.customerFirstName}'s`:"Your";s.notify(`
19
- <span>Added to ${r} favorites</span>
20
- <a href="#my-favorites" class="gw-notification__link">View</a>
21
- `)}catch(t){console.error(t),this._activateButton(!1),s.notify("An error occurred. Please try again later.")}}this.loader&&(this.loader.hidden=!0),this.button.disabled=!1,this.button.removeAttribute("aria-disabled"),this.removeAttribute("Processing")}async _addToFavorites(){if(!s.hasCustomer){const t=this.querySelector("[data-product-data]"),o=JSON.parse(t.textContent);o.variant_id=this._getVariantId();const r=localStorage.getItem(i.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS)||"[]",a=JSON.parse(r).filter(c=>c.id!==o.id);return a.push(o),localStorage.setItem(i.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,JSON.stringify(a)),{success:!0,products:o}}const e=await s.request(i.ENDPOINTS.FAVORITES.ADD,{prodID:this.productId,varID:this._getVariantId()});if(e.error)throw new Error(e.error);return e}async _removeFromFavorites(){if(!s.hasCustomer){const t=this.querySelector("[data-product-data]"),o=JSON.parse(t.textContent),r=localStorage.getItem(i.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS)||"[]",a=JSON.parse(r).filter(c=>c.id!==o.id);return localStorage.setItem(i.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,JSON.stringify(a)),{success:!0,products:o}}const e=await s.request(i.ENDPOINTS.FAVORITES.REMOVE,{prodID:this.productId});if(e.error)throw new Error(e.error);return e}_activateButton(e){this.buttonIcon.length&&this.buttonIcon.forEach(t=>t.removeAttribute("hidden")),this.loader&&this.loader.setAttribute("hidden",""),e?(this.setAttribute("saved",""),this.button.setAttribute("aria-label",this.labels.active),this.buttonLabel&&(this.buttonLabel.textContent=this.labels.active)):(this.removeAttribute("saved"),this.button.setAttribute("aria-label",this.labels.inactive),this.buttonLabel&&(this.buttonLabel.textContent=this.labels.inactive))}_isProductInFavorites(){if(!s.hasCustomer){const o=localStorage.getItem(i.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS);return(o?JSON.parse(o):[]).some(n=>n.id===this.productId)}const e=sessionStorage.getItem(i.STORAGE_KEYS.WISHLIST_PRODUCT_IDS);return(e?JSON.parse(e):[]).includes(this.productId)}});