the-foxy-library 1.0.0
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/LICENSE +21 -0
- package/README.md +111 -0
- package/dist/components/index.d.ts +33 -0
- package/dist/components/iv-accordion.d.ts +11 -0
- package/dist/components/iv-banner.d.ts +11 -0
- package/dist/components/iv-button.d.ts +11 -0
- package/dist/components/iv-card.d.ts +11 -0
- package/dist/components/iv-carousel.d.ts +11 -0
- package/dist/components/iv-dynamic-products-carousel.d.ts +11 -0
- package/dist/components/iv-dynamic-products.d.ts +11 -0
- package/dist/components/iv-filters.d.ts +11 -0
- package/dist/components/iv-layout.d.ts +11 -0
- package/dist/components/iv-link.d.ts +11 -0
- package/dist/components/iv-modal.d.ts +11 -0
- package/dist/components/iv-predictive-search.d.ts +11 -0
- package/dist/components/iv-recently-viewed.d.ts +11 -0
- package/dist/components/iv-sidebar.d.ts +11 -0
- package/dist/components/iv-spinner.d.ts +11 -0
- package/dist/components/iv-suggest.d.ts +11 -0
- package/dist/components/iv-tabs.d.ts +11 -0
- package/dist/components/iv-toast-container.d.ts +11 -0
- package/dist/components/iv-toast.d.ts +11 -0
- package/dist/components/iv-wishlist-view.d.ts +11 -0
- package/dist/components/iv-wishlist.d.ts +11 -0
- package/dist/components/sw-in-grid-content.d.ts +11 -0
- package/dist/components/sw-size-guide.d.ts +11 -0
- package/dist/intravenous/factory-1QinX-o0.js +275 -0
- package/dist/intravenous/factory-1QinX-o0.js.map +1 -0
- package/dist/intravenous/factory-JClanx-E.js +596 -0
- package/dist/intravenous/factory-JClanx-E.js.map +1 -0
- package/dist/intravenous/factory-mrqy6XUM.js +36 -0
- package/dist/intravenous/factory-mrqy6XUM.js.map +1 -0
- package/dist/intravenous/index-Py50VI8u.js +4761 -0
- package/dist/intravenous/index-Py50VI8u.js.map +1 -0
- package/dist/intravenous/index.esm.js +17 -0
- package/dist/intravenous/index.esm.js.map +1 -0
- package/dist/intravenous/intravenous.esm.js +48 -0
- package/dist/intravenous/intravenous.esm.js.map +1 -0
- package/dist/intravenous/iv-accordion.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-accordion.entry.js +35 -0
- package/dist/intravenous/iv-banner.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-banner.entry.js +28 -0
- package/dist/intravenous/iv-button.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-button.entry.js +40 -0
- package/dist/intravenous/iv-card.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-card.entry.js +82 -0
- package/dist/intravenous/iv-carousel.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-carousel.entry.js +16 -0
- package/dist/intravenous/iv-dynamic-products-carousel.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-dynamic-products-carousel.entry.js +114 -0
- package/dist/intravenous/iv-dynamic-products.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-dynamic-products.entry.js +97 -0
- package/dist/intravenous/iv-filters.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-filters.entry.js +19 -0
- package/dist/intravenous/iv-layout.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-layout.entry.js +60 -0
- package/dist/intravenous/iv-link.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-link.entry.js +25 -0
- package/dist/intravenous/iv-modal.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-modal.entry.js +19 -0
- package/dist/intravenous/iv-predictive-search.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-predictive-search.entry.js +311 -0
- package/dist/intravenous/iv-recently-viewed.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-recently-viewed.entry.js +101 -0
- package/dist/intravenous/iv-sidebar.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-sidebar.entry.js +24 -0
- package/dist/intravenous/iv-spinner.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-spinner.entry.js +19 -0
- package/dist/intravenous/iv-suggest.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-suggest.entry.js +72 -0
- package/dist/intravenous/iv-tabs.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-tabs.entry.js +22 -0
- package/dist/intravenous/iv-toast-container.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-toast-container.entry.js +44 -0
- package/dist/intravenous/iv-toast.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-toast.entry.js +23 -0
- package/dist/intravenous/iv-wishlist-view.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-wishlist-view.entry.js +21 -0
- package/dist/intravenous/iv-wishlist.entry.esm.js.map +1 -0
- package/dist/intravenous/iv-wishlist.entry.js +73 -0
- package/dist/intravenous/loader.esm.js.map +1 -0
- package/dist/intravenous/sw-in-grid-content.entry.esm.js.map +1 -0
- package/dist/intravenous/sw-in-grid-content.entry.js +18 -0
- package/dist/intravenous/sw-size-guide.entry.esm.js.map +1 -0
- package/dist/intravenous/sw-size-guide.entry.js +111 -0
- package/dist/types/components/iv-accordion/iv-accordion.d.ts +12 -0
- package/dist/types/components/iv-banner/iv-banner.d.ts +7 -0
- package/dist/types/components/iv-button/iv-button.d.ts +12 -0
- package/dist/types/components/iv-card/iv-card.d.ts +15 -0
- package/dist/types/components/iv-carousel/iv-carousel.d.ts +3 -0
- package/dist/types/components/iv-dynamic-products/iv-dynamic-products.d.ts +26 -0
- package/dist/types/components/iv-dynamic-products-carousel/iv-dynamic-products-carousel.d.ts +29 -0
- package/dist/types/components/iv-filters/iv-filters.d.ts +3 -0
- package/dist/types/components/iv-layout/iv-layout.d.ts +12 -0
- package/dist/types/components/iv-link/iv-link.d.ts +9 -0
- package/dist/types/components/iv-modal/iv-modal.d.ts +3 -0
- package/dist/types/components/iv-predictive-search/iv-predictive-search.d.ts +44 -0
- package/dist/types/components/iv-recently-viewed/iv-recently-viewed.d.ts +17 -0
- package/dist/types/components/iv-sidebar/iv-sidebar.d.ts +5 -0
- package/dist/types/components/iv-spinner/iv-spinner.d.ts +4 -0
- package/dist/types/components/iv-suggest/iv-suggest.d.ts +21 -0
- package/dist/types/components/iv-tabs/iv-tabs.d.ts +7 -0
- package/dist/types/components/iv-toast/iv-toast.d.ts +7 -0
- package/dist/types/components/iv-toast-container/iv-toast-container.d.ts +8 -0
- package/dist/types/components/iv-wishlist/iv-wishlist.d.ts +16 -0
- package/dist/types/components/iv-wishlist-view/iv-wishlist-view.d.ts +3 -0
- package/dist/types/components/sw-in-grid-content/sw-in-grid-content.d.ts +3 -0
- package/dist/types/components/sw-size-guide/sw-size-guide.d.ts +14 -0
- package/dist/types/components.d.ts +943 -0
- package/dist/types/global/app.d.ts +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/stencil-public-runtime.d.ts +1746 -0
- package/dist/types/utils/caching/factory.d.ts +72 -0
- package/dist/types/utils/config/factory.d.ts +2 -0
- package/dist/types/utils/error_handling/factory.d.ts +58 -0
- package/dist/types/utils/helpers/factory.d.ts +6 -0
- package/dist/types/utils/store/store.d.ts +21 -0
- package/dist/types/utils/storefront_api/factory.d.ts +22 -0
- package/dist/types/utils/utils.d.ts +1 -0
- package/loader/cdn.js +1 -0
- package/loader/index.cjs.js +1 -0
- package/loader/index.d.ts +24 -0
- package/loader/index.es2017.js +1 -0
- package/loader/index.js +2 -0
- package/package.json +54 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { r as registerInstance, h } from './index-Py50VI8u.js';
|
|
2
|
+
|
|
3
|
+
const ivTabsCss = ":host{display:block}";
|
|
4
|
+
|
|
5
|
+
const IvTabs = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
}
|
|
9
|
+
labels = [];
|
|
10
|
+
classModifier;
|
|
11
|
+
tabLayout = 'horizontal';
|
|
12
|
+
activeTab = 0;
|
|
13
|
+
render() {
|
|
14
|
+
return (h("div", { key: 'e4bce1b91f2f0a1f1eb70932fe9f95e25c150f3f', class: `iv-tabs iv-tabs--${this.classModifier} iv-tabs--${this.tabLayout}` }, h("div", { key: 'e40af1bc65b179e3ac51fcf439840036d8add906', class: "iv-tabs__header", role: "tablist" }, this.labels.map((label, index) => (h("button", { id: `tab-button-${index}`, class: `iv-tab ${this.activeTab === index ? 'active' : ''}`, onClick: () => this.activeTab = index, "aria-selected": this.activeTab === index ? 'true' : 'false', "aria-controls": `tab-panel-${index}`, role: "tab", type: "button", tabindex: this.activeTab === index ? '0' : '-1' }, label)))), h("div", { key: '2b597bcf10fde6c1c291f47ffc47c442922db9ac', class: "iv-tabs__content" }, this.labels.map((_, index) => (h("div", { id: `tab-panel-${index}`, role: 'tabpanel', "aria-labelledby": `tab-button-${index}`, hidden: this.activeTab !== index }, h("slot", { name: `tab-content-${index}` })))))));
|
|
15
|
+
}
|
|
16
|
+
;
|
|
17
|
+
};
|
|
18
|
+
;
|
|
19
|
+
IvTabs.style = ivTabsCss;
|
|
20
|
+
|
|
21
|
+
export { IvTabs as iv_tabs };
|
|
22
|
+
//# sourceMappingURL=iv-tabs.entry.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iv-toast-container.entry.esm.js","sources":["src/components/iv-toast-container/iv-toast-container.scss?tag=iv-toast-container","src/components/iv-toast-container/iv-toast-container.tsx"],"sourcesContent":[".iv-toast-container {\n position: fixed;\n top: 1rem;\n left: 1rem;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n z-index: 10000;\n pointer-events: none;\n}","import { Component, h, State } from '@stencil/core';\nimport { state, onStoreChange, ToastItem } from '../../utils/store/store';\n\nconst BLOCK = 'iv-toast-container';\n\n@Component({\n tag: 'iv-toast-container',\n styleUrl: 'iv-toast-container.scss',\n shadow: false,\n})\nexport class IvToastContainer {\n @State() _bump: number = 0; // force re-render marker\n\n private unsub?: () => void;\n\n private onToastEvent = (e: Event) => {\n const detail = (e as CustomEvent).detail as ToastItem;\n if(!detail || typeof detail.id === 'undefined') return;\n if(!state.toasts.some(t => t.id === detail.id)) {\n console.debug('[iv-toast-container] consumed iv:toast event', { receivedId: detail.id, storeInstance: state._instanceId });\n state.toasts = [...state.toasts, detail];\n setTimeout(() => { state.toasts = state.toasts.filter(t => t.id !== detail.id); }, detail.duration || 3000);\n }\n };\n\n connectedCallback() {\n document.addEventListener('iv:toast', this.onToastEvent as any);\n // Explicit subscription (defensive) – bump state when toasts array mutates\n try {\n this.unsub = onStoreChange('toasts', () => { this._bump++; console.debug('[iv-toast-container] onStoreChange bump', this._bump, 'length=', state.toasts.length); });\n } catch(e) { console.warn('[iv-toast-container] onStoreChange not available', e); }\n console.debug('[iv-toast-container] connected storeInstance=', state._instanceId);\n }\n\n disconnectedCallback() {\n document.removeEventListener('iv:toast', this.onToastEvent as any);\n this.unsub && this.unsub();\n }\n\n render() {\n return (\n <div class={BLOCK} data-bump={this._bump}>\n {state.toasts.map(t => (\n <iv-toast\n key={t.id}\n toastId={t.id}\n message={t.message}\n type={t.type}\n duration={t.duration}\n />\n ))}\n </div>\n );\n }\n}"],"names":[],"mappings":";;AAAA,MAAM,mBAAmB,GAAG,sIAAsI;;ACGlK,MAAM,KAAK,GAAG,oBAAoB;MAOrB,gBAAgB,GAAA,MAAA;;;;AAClB,IAAA,KAAK,GAAW,CAAC,CAAC;AAEnB,IAAA,KAAK;AAEL,IAAA,YAAY,GAAG,CAAC,CAAQ,KAAI;AAClC,QAAA,MAAM,MAAM,GAAI,CAAiB,CAAC,MAAmB;QACrD,IAAG,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,EAAE,KAAK,WAAW;YAAE;QAChD,IAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,EAAE;AAC9C,YAAA,OAAO,CAAC,KAAK,CAAC,8CAA8C,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC;YAC1H,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;AACxC,YAAA,UAAU,CAAC,MAAQ,EAAA,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI,CAAC;;AAE/G,KAAC;IAED,iBAAiB,GAAA;QACf,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAmB,CAAC;;AAE/D,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAK,EAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;;QACnK,OAAM,CAAC,EAAE;AAAE,YAAA,OAAO,CAAC,IAAI,CAAC,kDAAkD,EAAE,CAAC,CAAC;;QAChF,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,WAAW,CAAC;;IAGnF,oBAAoB,GAAA;QAClB,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,YAAmB,CAAC;AAClE,QAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE;;IAG5B,MAAM,GAAA;AACJ,QAAA,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,KAAK,EAAa,WAAA,EAAA,IAAI,CAAC,KAAK,EACrC,EAAA,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KACjB,CAAA,CAAA,UAAA,EAAA,EACE,GAAG,EAAE,CAAC,CAAC,EAAE,EACT,OAAO,EAAE,CAAC,CAAC,EAAE,EACb,OAAO,EAAE,CAAC,CAAC,OAAO,EAClB,IAAI,EAAE,CAAC,CAAC,IAAI,EACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAA,CACpB,CACH,CAAC,CACE;;;;;;;"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { r as registerInstance, d as state, o as onStoreChange, h } from './index-Py50VI8u.js';
|
|
2
|
+
|
|
3
|
+
const ivToastContainerCss = ".iv-toast-container{position:fixed;top:1rem;left:1rem;display:flex;flex-direction:column;gap:1rem;z-index:10000;pointer-events:none}";
|
|
4
|
+
|
|
5
|
+
const BLOCK = 'iv-toast-container';
|
|
6
|
+
const IvToastContainer = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
}
|
|
10
|
+
_bump = 0; // force re-render marker
|
|
11
|
+
unsub;
|
|
12
|
+
onToastEvent = (e) => {
|
|
13
|
+
const detail = e.detail;
|
|
14
|
+
if (!detail || typeof detail.id === 'undefined')
|
|
15
|
+
return;
|
|
16
|
+
if (!state.toasts.some(t => t.id === detail.id)) {
|
|
17
|
+
console.debug('[iv-toast-container] consumed iv:toast event', { receivedId: detail.id, storeInstance: state._instanceId });
|
|
18
|
+
state.toasts = [...state.toasts, detail];
|
|
19
|
+
setTimeout(() => { state.toasts = state.toasts.filter(t => t.id !== detail.id); }, detail.duration || 3000);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
connectedCallback() {
|
|
23
|
+
document.addEventListener('iv:toast', this.onToastEvent);
|
|
24
|
+
// Explicit subscription (defensive) – bump state when toasts array mutates
|
|
25
|
+
try {
|
|
26
|
+
this.unsub = onStoreChange('toasts', () => { this._bump++; console.debug('[iv-toast-container] onStoreChange bump', this._bump, 'length=', state.toasts.length); });
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
console.warn('[iv-toast-container] onStoreChange not available', e);
|
|
30
|
+
}
|
|
31
|
+
console.debug('[iv-toast-container] connected storeInstance=', state._instanceId);
|
|
32
|
+
}
|
|
33
|
+
disconnectedCallback() {
|
|
34
|
+
document.removeEventListener('iv:toast', this.onToastEvent);
|
|
35
|
+
this.unsub && this.unsub();
|
|
36
|
+
}
|
|
37
|
+
render() {
|
|
38
|
+
return (h("div", { key: 'c7959b29748282d04912878d3b9dee5066ff8473', class: BLOCK, "data-bump": this._bump }, state.toasts.map(t => (h("iv-toast", { key: t.id, toastId: t.id, message: t.message, type: t.type, duration: t.duration })))));
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
IvToastContainer.style = ivToastContainerCss;
|
|
42
|
+
|
|
43
|
+
export { IvToastContainer as iv_toast_container };
|
|
44
|
+
//# sourceMappingURL=iv-toast-container.entry.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iv-toast.entry.esm.js","sources":["src/components/iv-toast/iv-toast.scss?tag=iv-toast","src/components/iv-toast/iv-toast.tsx"],"sourcesContent":[".iv-toast {\n position: relative;\n display: flex;\n align-items: flex-start;\n gap: 0.75rem;\n line-height: 1.4;\n min-width: 26rem; // slightly wider for readability\n max-width: 36rem;\n padding: 1.1rem 1.5rem 1.1rem 1.75rem; // extra left space for accent bar\n border-radius: 0.5rem;\n font-size: var(--iv-toast-font-size, 1.05rem);\n font-weight: 500;\n opacity: 0;\n transform: translateY(2rem) scale(0.95);\n box-shadow: 0 8px 32px rgba(0,0,0,.18), 0 2px 6px rgba(0,0,0,.12);\n border: 1px solid var(--iv-toast-border, rgba(0,0,0,.12));\n background-clip: padding-box;\n backdrop-filter: var(--iv-toast-backdrop-filter, none);\n -webkit-font-smoothing: antialiased;\n animation: toast-in .5s cubic-bezier(.4, 1.4, .6, 1) forwards, toast-out .5s cubic-bezier(.4, 1.4, .6, 1) forwards;\n animation-delay: 0s, calc(var(--iv-toast-duration, 5s) - 0.5s);\n pointer-events: all;\n transition: box-shadow .25s ease, transform .25s ease;\n\n &::before {\n content: \"\";\n position: absolute;\n inset: 0 auto 0 0;\n width: 0.4rem;\n border-radius: 0.5rem 0 0 0.5rem;\n background: var(--iv-toast-accent, #6366f1);\n }\n\n &:hover {\n box-shadow: 0 10px 42px rgba(0,0,0,.22), 0 3px 10px rgba(0,0,0,.18);\n transform: translateY(-2px);\n }\n\n &.info {\n background-color: var(--iv-toast-info-background, black);\n color: var(--iv-toast-info-color, white);\n --iv-toast-accent: var(--iv-toast-info-accent, #6366f1);\n }\n\n &.success {\n background-color: var(--iv-toast-success-background, #d1fadf);\n color: var(--iv-toast-success-color, #065f46);\n --iv-toast-accent: var(--iv-toast-success-accent, #12b76a);\n }\n\n &.warning {\n background-color: var(--iv-toast-warning-background, #ffe8c7);\n color: var(--iv-toast-warning-color, #7c2d12);\n --iv-toast-accent: var(--iv-toast-warning-accent, #f59e0b);\n }\n\n &.error {\n background-color: var(--iv-toast-error-background, #ffe2e2);\n color: var(--iv-toast-error-color, #7f1d1d);\n --iv-toast-accent: var(--iv-toast-error-accent, #ef4444);\n }\n\n .iv-toast-message {\n margin: 0;\n line-height: 1.4;\n word-break: break-word;\n font-weight: 600;\n }\n}\n\n@keyframes toast-in {\n 0% { opacity: 0; transform: translateY(1.25rem) scale(.92); }\n 55% { opacity: 1; transform: translateY(-3px) scale(1.03); }\n 75% { transform: translateY(2px) scale(.997); }\n 100% { opacity: 1; transform: translateY(0) scale(1); }\n}\n\n@keyframes toast-out {\n 0% { opacity: 1; transform: translateY(0) scale(1); }\n 100% { opacity: 0; transform: translateY(1rem) scale(.94); }\n}","import { Component, h, Prop } from '@stencil/core';\n\nconst BLOCK = 'iv-toast';\n\n@Component({\n tag: 'iv-toast',\n styleUrl: 'iv-toast.scss',\n shadow: false\n})\n\nexport class IvToast {\n\n @Prop() message: string;\n @Prop() toastId: number;\n @Prop() duration: number = 3000;\n @Prop() type: 'info' | 'success' | 'error' | 'warning' = 'info';\n\n render() {\n\n return (\n\n <div class={`${BLOCK} ${this.type}`} role=\"alert\" aria-live=\"assertive\" aria-atomic=\"true\">\n <span class={`${BLOCK}-message`}>\n {this.message}\n </span>\n </div>\n \n );\n\n };\n\n};"],"names":[],"mappings":";;AAAA,MAAM,UAAU,GAAG,kqEAAkqE;;ACErrE,MAAM,KAAK,GAAG,UAAU;MAQX,OAAO,GAAA,MAAA;;;;AAEV,IAAA,OAAO;AACP,IAAA,OAAO;IACP,QAAQ,GAAW,IAAI;IACvB,IAAI,GAA6C,MAAM;IAE/D,MAAM,GAAA;QAEJ,QAEE,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAE,GAAG,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,CAAA,CAAE,EAAE,IAAI,EAAC,OAAO,EAAW,WAAA,EAAA,WAAW,iBAAa,MAAM,EAAA,EACxF,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,QAAA,CAAU,EAAA,EAC5B,IAAI,CAAC,OAAO,CACR,CACH;;;;AAMX;;;;;"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { r as registerInstance, h } from './index-Py50VI8u.js';
|
|
2
|
+
|
|
3
|
+
const ivToastCss = ".iv-toast{position:relative;display:flex;align-items:flex-start;gap:0.75rem;line-height:1.4;min-width:26rem;max-width:36rem;padding:1.1rem 1.5rem 1.1rem 1.75rem;border-radius:0.5rem;font-size:var(--iv-toast-font-size, 1.05rem);font-weight:500;opacity:0;transform:translateY(2rem) scale(0.95);box-shadow:0 8px 32px rgba(0, 0, 0, 0.18), 0 2px 6px rgba(0, 0, 0, 0.12);border:1px solid var(--iv-toast-border, rgba(0, 0, 0, 0.12));background-clip:padding-box;backdrop-filter:var(--iv-toast-backdrop-filter, none);-webkit-font-smoothing:antialiased;animation:toast-in 0.5s cubic-bezier(0.4, 1.4, 0.6, 1) forwards, toast-out 0.5s cubic-bezier(0.4, 1.4, 0.6, 1) forwards;animation-delay:0s, calc(var(--iv-toast-duration, 5s) - 0.5s);pointer-events:all;transition:box-shadow 0.25s ease, transform 0.25s ease}.iv-toast::before{content:\"\";position:absolute;inset:0 auto 0 0;width:0.4rem;border-radius:0.5rem 0 0 0.5rem;background:var(--iv-toast-accent, #6366f1)}.iv-toast:hover{box-shadow:0 10px 42px rgba(0, 0, 0, 0.22), 0 3px 10px rgba(0, 0, 0, 0.18);transform:translateY(-2px)}.iv-toast.info{background-color:var(--iv-toast-info-background, black);color:var(--iv-toast-info-color, white);--iv-toast-accent:var(--iv-toast-info-accent, #6366f1)}.iv-toast.success{background-color:var(--iv-toast-success-background, #d1fadf);color:var(--iv-toast-success-color, #065f46);--iv-toast-accent:var(--iv-toast-success-accent, #12b76a)}.iv-toast.warning{background-color:var(--iv-toast-warning-background, #ffe8c7);color:var(--iv-toast-warning-color, #7c2d12);--iv-toast-accent:var(--iv-toast-warning-accent, #f59e0b)}.iv-toast.error{background-color:var(--iv-toast-error-background, #ffe2e2);color:var(--iv-toast-error-color, #7f1d1d);--iv-toast-accent:var(--iv-toast-error-accent, #ef4444)}.iv-toast .iv-toast-message{margin:0;line-height:1.4;word-break:break-word;font-weight:600}@keyframes toast-in{0%{opacity:0;transform:translateY(1.25rem) scale(0.92)}55%{opacity:1;transform:translateY(-3px) scale(1.03)}75%{transform:translateY(2px) scale(0.997)}100%{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0) scale(1)}100%{opacity:0;transform:translateY(1rem) scale(0.94)}}";
|
|
4
|
+
|
|
5
|
+
const BLOCK = 'iv-toast';
|
|
6
|
+
const IvToast = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
}
|
|
10
|
+
message;
|
|
11
|
+
toastId;
|
|
12
|
+
duration = 3000;
|
|
13
|
+
type = 'info';
|
|
14
|
+
render() {
|
|
15
|
+
return (h("div", { key: 'ddc8ae7060e52b0090b5cfd2d2073692a62e71c2', class: `${BLOCK} ${this.type}`, role: "alert", "aria-live": "assertive", "aria-atomic": "true" }, h("span", { key: 'edb6d29d375a88fa03e406be19792cb2e920886d', class: `${BLOCK}-message` }, this.message)));
|
|
16
|
+
}
|
|
17
|
+
;
|
|
18
|
+
};
|
|
19
|
+
;
|
|
20
|
+
IvToast.style = ivToastCss;
|
|
21
|
+
|
|
22
|
+
export { IvToast as iv_toast };
|
|
23
|
+
//# sourceMappingURL=iv-toast.entry.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iv-wishlist-view.entry.esm.js","sources":["src/components/iv-wishlist-view/iv-wishlist-view.scss?tag=iv-wishlist-view","src/components/iv-wishlist-view/iv-wishlist-view.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, h } from '@stencil/core';\nimport { state, removeFromWishlist } from '../../utils/store/store';\nimport { getProductIDFromGid } from '../../utils/helpers/factory';\nimport { addToCart } from '../../utils/storefront_api/factory';\n\nconst BLOCK = 'iv-wishlist-view';\n\n@Component({\n tag: 'iv-wishlist-view',\n styleUrl: 'iv-wishlist-view.scss',\n shadow: false\n})\n\nexport class IvWishlistView {\n\n render() {\n\n return (\n \n <div class={BLOCK}>\n <ul class={`${BLOCK}-list`}>\n {state.wishlist.length === 0 ? (\n <li class={`${BLOCK}-empty`}>{state.wishlistLabels.emptyMessage}</li>\n ) : (\n state.wishlist.map((item, idx) => (\n <li class={`${BLOCK}-item`} key={item.id || idx}>\n <div class={`${BLOCK}-fields`}>\n {Object.entries(item).map(([key, value]) => (\n <div class={`${BLOCK}-field ${BLOCK}-field-${key}`}>{value}</div>\n ))}\n </div>\n <div class={`${BLOCK}-actions`}>\n <iv-button\n classmodifier={`${BLOCK}-remove`}\n onClick={() => removeFromWishlist(item.id)}>\n <span class=\"inner-button\" innerHTML={state.wishlistLabels.removeLabel}></span>\n </iv-button>\n <iv-button\n classmodifier={`${BLOCK}-add-to-cart`}\n onClick={() => addToCart({ id: getProductIDFromGid(item.id) })}> \n {/* the getProductID() above may not be needed, can't remember the format here. */}\n <span class=\"inner-button\" innerHTML={state.wishlistLabels.addToCartLabel}></span>\n </iv-button>\n </div>\n </li>\n ))\n )}\n </ul>\n </div>\n \n );\n\n };\n\n};"],"names":[],"mappings":";;;;AAAA,MAAM,iBAAiB,GAAG,sBAAsB;;ACKhD,MAAM,KAAK,GAAG,kBAAkB;MAQnB,cAAc,GAAA,MAAA;;;;IAEzB,MAAM,GAAA;AAEJ,QAAA,QAEE,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAK,KAAK,EAAE,KAAK,EAAA,EACf,CAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAI,KAAK,EAAE,CAAG,EAAA,KAAK,OAAO,EAAA,EACvB,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAC1B,CAAA,CAAA,IAAA,EAAA,EAAI,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,MAAA,CAAQ,EAAA,EAAG,KAAK,CAAC,cAAc,CAAC,YAAY,CAAM,KAErE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,MAC3B,CAAI,CAAA,IAAA,EAAA,EAAA,KAAK,EAAE,CAAG,EAAA,KAAK,CAAO,KAAA,CAAA,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,IAAI,GAAG,EAAA,EAC7C,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,CAAA,EAAG,KAAK,CAAA,OAAA,CAAS,EAAA,EAC1B,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,MACrC,WAAK,KAAK,EAAE,CAAG,EAAA,KAAK,CAAU,OAAA,EAAA,KAAK,CAAU,OAAA,EAAA,GAAG,CAAE,CAAA,EAAA,EAAG,KAAK,CAAO,CAClE,CAAC,CACE,EACN,CAAA,CAAA,KAAA,EAAA,EAAK,KAAK,EAAE,CAAG,EAAA,KAAK,CAAU,QAAA,CAAA,EAAA,EAC5B,CAAA,CAAA,WAAA,EAAA,EACE,aAAa,EAAE,CAAA,EAAG,KAAK,CAAA,OAAA,CAAS,EAChC,OAAO,EAAE,MAAM,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAA,EACxC,CAAA,CAAA,MAAA,EAAA,EAAM,KAAK,EAAC,cAAc,EAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,EAAA,CAAS,CACvE,EACZ,CACE,CAAA,WAAA,EAAA,EAAA,aAAa,EAAE,CAAG,EAAA,KAAK,CAAc,YAAA,CAAA,EACrC,OAAO,EAAE,MAAM,SAAS,CAAC,EAAE,EAAE,EAAE,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAA,EAE5D,CAAM,CAAA,MAAA,EAAA,EAAA,KAAK,EAAC,cAAc,EAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,EAAS,CAAA,CAC1E,CACR,CACH,CACJ,CAAC,CACH,CACA,CACD;;;;AAMX;;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { r as registerInstance, h, d as state, j as removeFromWishlist } from './index-Py50VI8u.js';
|
|
2
|
+
import { b as getProductIDFromGid } from './factory-mrqy6XUM.js';
|
|
3
|
+
import { b as addToCart } from './factory-1QinX-o0.js';
|
|
4
|
+
|
|
5
|
+
const ivWishlistViewCss = ":host{display:block}";
|
|
6
|
+
|
|
7
|
+
const BLOCK = 'iv-wishlist-view';
|
|
8
|
+
const IvWishlistView = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
registerInstance(this, hostRef);
|
|
11
|
+
}
|
|
12
|
+
render() {
|
|
13
|
+
return (h("div", { key: 'c94ffc243064b1a671c34d78a4b590192b34c6a7', class: BLOCK }, h("ul", { key: 'f135f807e188d312169ae2fa998b2f211ce404a4', class: `${BLOCK}-list` }, state.wishlist.length === 0 ? (h("li", { class: `${BLOCK}-empty` }, state.wishlistLabels.emptyMessage)) : (state.wishlist.map((item, idx) => (h("li", { class: `${BLOCK}-item`, key: item.id || idx }, h("div", { class: `${BLOCK}-fields` }, Object.entries(item).map(([key, value]) => (h("div", { class: `${BLOCK}-field ${BLOCK}-field-${key}` }, value)))), h("div", { class: `${BLOCK}-actions` }, h("iv-button", { classmodifier: `${BLOCK}-remove`, onClick: () => removeFromWishlist(item.id) }, h("span", { class: "inner-button", innerHTML: state.wishlistLabels.removeLabel })), h("iv-button", { classmodifier: `${BLOCK}-add-to-cart`, onClick: () => addToCart({ id: getProductIDFromGid(item.id) }) }, h("span", { class: "inner-button", innerHTML: state.wishlistLabels.addToCartLabel }))))))))));
|
|
14
|
+
}
|
|
15
|
+
;
|
|
16
|
+
};
|
|
17
|
+
;
|
|
18
|
+
IvWishlistView.style = ivWishlistViewCss;
|
|
19
|
+
|
|
20
|
+
export { IvWishlistView as iv_wishlist_view };
|
|
21
|
+
//# sourceMappingURL=iv-wishlist-view.entry.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iv-wishlist.entry.esm.js","sources":["src/components/iv-wishlist/iv-wishlist.scss?tag=iv-wishlist","src/components/iv-wishlist/iv-wishlist.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { \n state, toggleModal, togglePullout, \n showToast, removeFromWishlist } from '../../utils/store/store';\n\nconst BLOCK = 'iv-wishlist';\n\n@Component({\n tag: 'iv-wishlist',\n styleUrl: 'iv-wishlist.scss',\n shadow: false\n})\n\nexport class IvWishlist {\n\n @Prop() buttonaddvalue: string = 'Add to wishlist';\n @Prop() buttonremovevalue: string = 'Remove from wishlist';\n @Prop() wishlistempty: string = 'Your wishlist is empty';\n @Prop() buttonaddtocartvalue: string = 'Add to cart';\n @Prop() viewwishlistvalue: string = 'View wishlist';\n @Prop() productdata: Record<string, any> | string = {};\n @Prop() usefields: string = 'id,title,price,image,url';\n @Prop() previewtype: 'modal' | 'pullout' = 'modal';\n\n // Lifecycle hooks\n componentWillLoad() {\n const stored = localStorage.getItem('wishlist');\n if(stored) state.wishlist = JSON.parse(stored);\n state.wishlistLabels = {\n removeLabel: this.buttonremovevalue,\n addToCartLabel: this.buttonaddtocartvalue,\n emptyMessage: this.wishlistempty\n };\n };\n\n // Getters\n private get itemFromWishlist() {\n return state.wishlist.some(item => item.id === this.productdata['id']) || state.wishlist.length > 0;\n };\n\n private get buttonLabel() {\n if(this.itemFromWishlist) return this.buttonremovevalue || this.buttonaddvalue;\n return this.buttonaddvalue;\n };\n \n private get requestedFields() {\n let requestedFields = this.usefields.split(',').map(field => field.trim());\n if(!requestedFields.includes('id')) requestedFields.push('id');\n if(!requestedFields.includes('title')) requestedFields.push('title');\n return requestedFields;\n };\n\n // Methods\n private addToWishlist() {\n state.loading = true;\n const product = {};\n this.requestedFields.forEach(field => {\n if(this.productdata.hasOwnProperty(field)) product[field] = this.productdata[field];\n });\n state.wishlist = [...state.wishlist, product];\n localStorage.setItem('wishlist', JSON.stringify(state.wishlist));\n state.loading = false;\n showToast(`${product['title']} added to wishlist`, 'success', 5000);\n };\n\n render() {\n\n return (\n\n <div class={`${BLOCK}`}>\n <iv-button \n classmodifier={`${BLOCK}-add ${this.itemFromWishlist ? 'remove' : 'add'}`} \n onClick={() => this.itemFromWishlist ? removeFromWishlist(this.productdata['id']) : this.addToWishlist()}>\n <span class=\"inner-button\" innerHTML={this.buttonLabel}></span>\n </iv-button>\n {state.wishlist.length > 0 && (\n <iv-button \n classmodifier={`${BLOCK}-view`} \n onClick={() => this.previewtype === 'modal' ? toggleModal('wishlist') : togglePullout('wishlist')}>\n <span class=\"inner-button\" innerHTML={this.viewwishlistvalue}></span>\n </iv-button> \n )}\n </div>\n\n );\n\n };\n\n};"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { r as registerInstance, d as state, e as showToast, h, j as removeFromWishlist, t as toggleModal, i as togglePullout } from './index-Py50VI8u.js';
|
|
2
|
+
|
|
3
|
+
const ivWishlistCss = ":host{display:block}";
|
|
4
|
+
|
|
5
|
+
const BLOCK = 'iv-wishlist';
|
|
6
|
+
const IvWishlist = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
}
|
|
10
|
+
buttonaddvalue = 'Add to wishlist';
|
|
11
|
+
buttonremovevalue = 'Remove from wishlist';
|
|
12
|
+
wishlistempty = 'Your wishlist is empty';
|
|
13
|
+
buttonaddtocartvalue = 'Add to cart';
|
|
14
|
+
viewwishlistvalue = 'View wishlist';
|
|
15
|
+
productdata = {};
|
|
16
|
+
usefields = 'id,title,price,image,url';
|
|
17
|
+
previewtype = 'modal';
|
|
18
|
+
// Lifecycle hooks
|
|
19
|
+
componentWillLoad() {
|
|
20
|
+
const stored = localStorage.getItem('wishlist');
|
|
21
|
+
if (stored)
|
|
22
|
+
state.wishlist = JSON.parse(stored);
|
|
23
|
+
state.wishlistLabels = {
|
|
24
|
+
removeLabel: this.buttonremovevalue,
|
|
25
|
+
addToCartLabel: this.buttonaddtocartvalue,
|
|
26
|
+
emptyMessage: this.wishlistempty
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
;
|
|
30
|
+
// Getters
|
|
31
|
+
get itemFromWishlist() {
|
|
32
|
+
return state.wishlist.some(item => item.id === this.productdata['id']) || state.wishlist.length > 0;
|
|
33
|
+
}
|
|
34
|
+
;
|
|
35
|
+
get buttonLabel() {
|
|
36
|
+
if (this.itemFromWishlist)
|
|
37
|
+
return this.buttonremovevalue || this.buttonaddvalue;
|
|
38
|
+
return this.buttonaddvalue;
|
|
39
|
+
}
|
|
40
|
+
;
|
|
41
|
+
get requestedFields() {
|
|
42
|
+
let requestedFields = this.usefields.split(',').map(field => field.trim());
|
|
43
|
+
if (!requestedFields.includes('id'))
|
|
44
|
+
requestedFields.push('id');
|
|
45
|
+
if (!requestedFields.includes('title'))
|
|
46
|
+
requestedFields.push('title');
|
|
47
|
+
return requestedFields;
|
|
48
|
+
}
|
|
49
|
+
;
|
|
50
|
+
// Methods
|
|
51
|
+
addToWishlist() {
|
|
52
|
+
state.loading = true;
|
|
53
|
+
const product = {};
|
|
54
|
+
this.requestedFields.forEach(field => {
|
|
55
|
+
if (this.productdata.hasOwnProperty(field))
|
|
56
|
+
product[field] = this.productdata[field];
|
|
57
|
+
});
|
|
58
|
+
state.wishlist = [...state.wishlist, product];
|
|
59
|
+
localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
|
|
60
|
+
state.loading = false;
|
|
61
|
+
showToast(`${product['title']} added to wishlist`, 'success', 5000);
|
|
62
|
+
}
|
|
63
|
+
;
|
|
64
|
+
render() {
|
|
65
|
+
return (h("div", { key: '5d8a44e136f2d457741f37a26fa36c7dc7f4d3b3', class: `${BLOCK}` }, h("iv-button", { key: 'a63ebbe9728a4a09118ead714e41146104e178e4', classmodifier: `${BLOCK}-add ${this.itemFromWishlist ? 'remove' : 'add'}`, onClick: () => this.itemFromWishlist ? removeFromWishlist(this.productdata['id']) : this.addToWishlist() }, h("span", { key: '131119d780844827b57ef9707fc29cd8bbab24bc', class: "inner-button", innerHTML: this.buttonLabel })), state.wishlist.length > 0 && (h("iv-button", { key: '33d2e98e7bd6d7eb5e18e05d77b25374742a5249', classmodifier: `${BLOCK}-view`, onClick: () => this.previewtype === 'modal' ? toggleModal('wishlist') : togglePullout('wishlist') }, h("span", { key: '71cb89109a52e53451d32740fc22fb0e2df623fa', class: "inner-button", innerHTML: this.viewwishlistvalue })))));
|
|
66
|
+
}
|
|
67
|
+
;
|
|
68
|
+
};
|
|
69
|
+
;
|
|
70
|
+
IvWishlist.style = ivWishlistCss;
|
|
71
|
+
|
|
72
|
+
export { IvWishlist as iv_wishlist };
|
|
73
|
+
//# sourceMappingURL=iv-wishlist.entry.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.esm.js","sources":["@lazy-external-entrypoint?app-data=conditional"],"sourcesContent":["export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\nexport const defineCustomElements = async (win, options) => {\n if (typeof window === 'undefined') return undefined;\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n};\n"],"names":[],"mappings":";;;AAGY,MAAC,oBAAoB,GAAG,OAAO,GAAG,EAAE,OAAO,KAAK;AAC5D,EAAE,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,OAAO,SAAS;AACrD,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-in-grid-content.entry.esm.js","sources":["src/components/sw-in-grid-content/sw-in-grid-content.scss?tag=sw-in-grid-content","src/components/sw-in-grid-content/sw-in-grid-content.tsx"],"sourcesContent":["sw-in-grid-content {\n grid-column: span 2;\n grid-row: span 2;\n \n @media (max-width: 1024px) {\n grid-row: span unset;\n aspect-ratio: 4 / 5;\n }\n\n .promo-card {\n position: relative; \n width: 100%; \n height: 100%; \n min-height: 250px; \n padding: var(--promo-tile-padding)!important;\n \n @media (max-width: 1024px) {\n padding: calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier));\n }\n\n [slot=\"media\"] {\n \n > img, > video {\n object-fit: cover;\n width: 100%; \n height: 100%; \n position: absolute; \n top: 0; \n left: 0; \n z-index: 1;\n }\n\n }\n\n [slot=\"text\"] {\n position: absolute; \n bottom: var(--promo-tile-padding);\n left: var(--promo-tile-padding);\n z-index: 2; \n display: flex; \n flex-direction: column; \n justify-content: flex-end;\n align-items: flex-start;\n height: 100%;\n width: 100%;\n \n @media (max-width: 1024px) {\n bottom: calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier));\n left: calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier));\n width: unset;\n }\n\n &.light-infill {\n \n a, h3, h5, p {\n color: white;\n }\n\n a::before {\n background: white;\n }\n\n }\n \n &.dark-infill {\n \n a, h3, h5, p {\n color: black;\n }\n\n a::before {\n background: black;\n }\n \n }\n \n a {\n position: relative;\n transition: all .5s;\n \n &::before {\n content: '';\n position: absolute;\n height: 2px;\n width: 0;\n bottom: -4px;\n left: 0;\n transition: all .5s;\n }\n \n &:hover {\n transition: all .5s;\n \n &::before {\n transition: all .5s;\n width: 100%;\n }\n\n }\n\n }\n\n h3, h5, a, p {\n padding: 0;\n margin: 0 0 var(--promo-tile-item-spacing) 0;\n font-family: var(--font-base);\n \n @media (max-width: 1024px) {\n margin: 0 0 calc(var(--promo-tile-item-spacing) * var(--promo-tile-responsive-modifier)) 0;\n }\n\n }\n\n h5 {\n font-size: var(--promo-tile-secondary-title-size);\n \n @media (max-width: 1024px) {\n font-size: calc(var(--promo-tile-secondary-title-size) * var(--promo-tile-responsive-modifier));\n }\n\n }\n\n h3 {\n font-size: var(--promo-tile-primary-title-size);\n \n @media (max-width: 1024px) {\n font-size: calc(var(--promo-tile-primary-title-size) * var(--promo-tile-responsive-modifier));\n }\n\n }\n\n p, a {\n font-size: var(--promo-tile-text-size);\n \n @media (max-width: 1024px) {\n font-size: calc(var(--promo-tile-text-size) * var(--promo-tile-responsive-modifier));\n }\n\n }\n \n }\n\n }\n\n}","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'sw-in-grid-content',\n styleUrl: 'sw-in-grid-content.scss',\n shadow: false,\n})\nexport class SwInGridContent {\n\n render() {\n \n return (\n <Host>\n <div class=\"promo-card dark-infill\">\n <slot name=\"media\"></slot>\n <slot name=\"text\"></slot>\n </div>\n </Host>\n );\n\n };\n\n};"],"names":[],"mappings":";;AAAA,MAAM,kBAAkB,GAAG,08GAA08G;;MCOx9G,eAAe,GAAA,MAAA;;;;IAE1B,MAAM,GAAA;QAEJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,wBAAwB,EAAA,EACjC,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAC,OAAO,EAAQ,CAAA,EAC1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,IAAI,EAAC,MAAM,GAAQ,CACrB,CACD;;;;AAKZ;;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { r as registerInstance, h, a as Host } from './index-Py50VI8u.js';
|
|
2
|
+
|
|
3
|
+
const swInGridContentCss = "sw-in-grid-content{grid-column:span 2;grid-row:span 2}@media (max-width: 1024px){sw-in-grid-content{grid-row:span unset;aspect-ratio:4/5}}sw-in-grid-content .promo-card{position:relative;width:100%;height:100%;min-height:250px;padding:var(--promo-tile-padding) !important}@media (max-width: 1024px){sw-in-grid-content .promo-card{padding:calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier))}}sw-in-grid-content .promo-card [slot=media]>img,sw-in-grid-content .promo-card [slot=media]>video{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0;z-index:1}sw-in-grid-content .promo-card [slot=text]{position:absolute;bottom:var(--promo-tile-padding);left:var(--promo-tile-padding);z-index:2;display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;height:100%;width:100%}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text]{bottom:calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier));left:calc(var(--promo-tile-padding) * var(--promo-tile-responsive-modifier));width:unset}}sw-in-grid-content .promo-card [slot=text].light-infill a,sw-in-grid-content .promo-card [slot=text].light-infill h3,sw-in-grid-content .promo-card [slot=text].light-infill h5,sw-in-grid-content .promo-card [slot=text].light-infill p{color:white}sw-in-grid-content .promo-card [slot=text].light-infill a::before{background:white}sw-in-grid-content .promo-card [slot=text].dark-infill a,sw-in-grid-content .promo-card [slot=text].dark-infill h3,sw-in-grid-content .promo-card [slot=text].dark-infill h5,sw-in-grid-content .promo-card [slot=text].dark-infill p{color:black}sw-in-grid-content .promo-card [slot=text].dark-infill a::before{background:black}sw-in-grid-content .promo-card [slot=text] a{position:relative;transition:all 0.5s}sw-in-grid-content .promo-card [slot=text] a::before{content:\"\";position:absolute;height:2px;width:0;bottom:-4px;left:0;transition:all 0.5s}sw-in-grid-content .promo-card [slot=text] a:hover{transition:all 0.5s}sw-in-grid-content .promo-card [slot=text] a:hover::before{transition:all 0.5s;width:100%}sw-in-grid-content .promo-card [slot=text] h3,sw-in-grid-content .promo-card [slot=text] h5,sw-in-grid-content .promo-card [slot=text] a,sw-in-grid-content .promo-card [slot=text] p{padding:0;margin:0 0 var(--promo-tile-item-spacing) 0;font-family:var(--font-base)}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text] h3,sw-in-grid-content .promo-card [slot=text] h5,sw-in-grid-content .promo-card [slot=text] a,sw-in-grid-content .promo-card [slot=text] p{margin:0 0 calc(var(--promo-tile-item-spacing) * var(--promo-tile-responsive-modifier)) 0}}sw-in-grid-content .promo-card [slot=text] h5{font-size:var(--promo-tile-secondary-title-size)}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text] h5{font-size:calc(var(--promo-tile-secondary-title-size) * var(--promo-tile-responsive-modifier))}}sw-in-grid-content .promo-card [slot=text] h3{font-size:var(--promo-tile-primary-title-size)}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text] h3{font-size:calc(var(--promo-tile-primary-title-size) * var(--promo-tile-responsive-modifier))}}sw-in-grid-content .promo-card [slot=text] p,sw-in-grid-content .promo-card [slot=text] a{font-size:var(--promo-tile-text-size)}@media (max-width: 1024px){sw-in-grid-content .promo-card [slot=text] p,sw-in-grid-content .promo-card [slot=text] a{font-size:calc(var(--promo-tile-text-size) * var(--promo-tile-responsive-modifier))}}";
|
|
4
|
+
|
|
5
|
+
const SwInGridContent = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
}
|
|
9
|
+
render() {
|
|
10
|
+
return (h(Host, { key: 'e7064f2a787e8ec86d6103a7e7441dbe2a22a42b' }, h("div", { key: 'a467852f7bfa451d5ea7880977a00c291e0c17cf', class: "promo-card dark-infill" }, h("slot", { key: '01c1e631948b41de1a5dce175e5870efad5c1879', name: "media" }), h("slot", { key: 'b503f909de51140d7976f32083b40882ad5d03a8', name: "text" }))));
|
|
11
|
+
}
|
|
12
|
+
;
|
|
13
|
+
};
|
|
14
|
+
;
|
|
15
|
+
SwInGridContent.style = swInGridContentCss;
|
|
16
|
+
|
|
17
|
+
export { SwInGridContent as sw_in_grid_content };
|
|
18
|
+
//# sourceMappingURL=sw-in-grid-content.entry.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sw-size-guide.entry.esm.js","sources":["src/components/sw-size-guide/sw-size-guide.scss?tag=sw-size-guide","src/components/sw-size-guide/sw-size-guide.tsx"],"sourcesContent":[".iv-sw-button {\n margin-bottom: 2.5rem;\n background: black;\n color: white;\n border: 1px solid transparent;\n outline: none;\n padding: 0.75rem 1.5rem;\n text-transform: uppercase;\n font-weight: 400;\n border-radius: unset;\n font-size: 1rem;\n cursor: pointer;\n transition: all .5s;\n \n &:hover {\n transition: all .5s;\n border-color: black;\n background: white;\n color: black;\n }\n\n}\n\n.table-wrapper {\n max-height: 420px;\n overflow-y: auto;\n background: #fff;\n border-radius: 0.5rem;\n box-shadow: 0 2px 8px rgba(0,0,0,0.03);\n scrollbar-color: #111 #fff;\n scrollbar-width: thin;\n\n &::-webkit-scrollbar {\n width: 10px;\n background: #fff;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #111;\n border-radius: 0;\n }\n\n &::-webkit-scrollbar-track {\n background: #fff;\n border-radius: 0;\n }\n\n > table {\n width: 100%;\n table-layout: fixed;\n border-collapse: separate;\n border-spacing: 0;\n color: #222;\n background: #fff;\n border-radius: 0.5rem;\n\n th, td {\n text-align: center;\n vertical-align: middle;\n padding: 1.25rem 0.75rem;\n border-bottom: 1px solid #ececec;\n color: #222;\n background: #fafafa;\n }\n\n th {\n position: sticky;\n top: 0;\n font-weight: 600;\n background: #f5f5f5;\n color: #111;\n\n > select {\n outline: 0;\n border-radius: 0;\n border: 0;\n position: relative;\n font-size: inherit;\n background-color: transparent;\n padding: .75em 1em;\n }\n\n }\n\n tr:last-child td {\n border-bottom: none;\n }\n\n tbody tr {\n transition: background 0.2s;\n &:hover {\n background: #f0f0f0;\n }\n }\n\n }\n \n} ","import { Component, h, Host, State, Element } from '@stencil/core';\n\n@Component({\n tag: 'sw-size-guide',\n styleUrl: 'sw-size-guide.scss',\n shadow: false,\n})\n\nexport class SwSizeGuide {\n\n @Element() el: HTMLElement;\n @State() sizeUnits: 'mm' | 'inches' = 'mm';\n\n\n private countryDataSets: { [country: string]: string[] } = {\n \"UK + Australia\": [\n \"F 1/2\", \"G\", \"G 1/2\", \"H\", \"H 1/2\", \"I\", \"I 1/2\", \"J\", \"J 1/2\", \"K\", \"K 1/2\", \"L\", \"L 1/2\", \"M\", \"M 1/2\", \"N\", \"N 1/2\", \"O\", \"O 1/2\", \"P\", \"P 1/2\", \"Q\", \"Q 1/2\", \"R\", \"R 1/2\", \"S\", \"S 1/2\", \"T\", \"T 1/2\", \"U\", \"U 1/2\", \"V\", \"V 1/2\", \"W\", \"W 1/2\", \"X\", \"x 1/2\", \"Y\", \"Z\", \"z 1/2\", \"-\"\n ],\n \"USA + Canada\": [\n \"3\", \"-\", \"3.5\", \"-\", \"4\", \"-\", \"4.5\", \"-\", \"5\", \"-\", \"5.5\", \"-\", \"6\", \"-\", \"6.5\", \"-\", \"7\", \"-\", \"7.5\", \"-\", \"8\", \"-\", \"8.5\", \"-\", \"9\", \"-\", \"9.5\", \"-\", \"10\", \"-\", \"10.5\", \"-\", \"11\", \"-\", \"11.5\", \"-\", \"12\", \"-\", \"12.5\", \"-\", \"13\"\n ],\n \"Europe\": [\n \"44\", \"45\", \"-\", \"46\", \"47\", \"-\", \"48\", \"-\", \"49\", \"50\", \"-\", \"51\", \"52\", \"-\", \"53\", \"-\", \"54\", \"55\", \"-\", \"56\", \"57\", \"-\", \"58\", \"59\", \"-\", \"60\", \"61\", \"-\", \"62\", \"-\", \"63\", \"64\", \"-\", \"65\", \"66\", \"-\", \"67\", \"-\", \"68\", \"69\", \"70\"\n ],\n \"China\": [\n \"6\", \"-\", \"7\", \"-\", \"8\", \"9\", \"-\", \"10\", \"-\", \"11\", \"12\", \"13\", \"-\", \"14\", \"-\", \"15\", \"-\", \"16\", \"17\", \"-\", \"18\", \"-\", \"19\", \"20\", \"-\", \"21\", \"-\", \"22\", \"-\", \"23\", \"-\", \"24\", \"25\", \"-\", \"26\", \"-\", \"-\", \"-\", \"-\"\n ],\n \"Singapore + Japan\": [\n \"4\", \"5\", \"-\", \"6\", \"7\", \"-\", \"8\", \"9\", \"-\", \"10\", \"11\", \"12\", \"-\", \"13\", \"-\", \"14\", \"-\", \"15\", \"16\", \"-\", \"17\", \"-\", \"18\", \"19\", \"-\", \"20\", \"-\", \"21\", \"22\", \"-\", \"23\", \"24\", \"-\", \"25\", \"-\", \"26\", \"-\", \"27\"\n ],\n \"Hong Kong\": [\n \"6\", \"-\", \"7.5\", \"-\", \"9\", \"-\", \"10\", \"-\", \"11\", \"12\", \"13\", \"-\", \"14\", \"-\", \"15\", \"-\", \"16\", \"-\", \"17\", \"-\", \"18\", \"19\", \"-\", \"20.5\", \"-\", \"22\", \"23\", \"-\", \"24\", \"25\", \"-\", \"26\", \"27.75\", \"-\", \"-\", \"-\", \"30\"\n ],\n \"Switzerland\": [\n \"4\", \"5.25\", \"-\", \"6.5\", \"-\", \"7.75\", \"-\", \"9\", \"-\", \"10\", \"-\", \"11.75\", \"12.75\", \"-\", \"14\", \"-\", \"15.25\", \"16.5\", \"-\", \"17.75\", \"-\", \"19\", \"20.5\", \"-\", \"22\", \"-\", \"23\", \"-\", \"25\", \"-\", \"27.75\", \"-\", \"-\", \"-\", \"30\"\n ]\n };\n\n componentDidLoad() {\n this.el.addEventListener('change', this.handleCountrySelectChange);\n };\n\n private get table(): HTMLTableElement | null {\n return this.el.querySelector('table');\n }\n\n private updateCountryData(e) {\n const country = e.target.value;\n const countryData = this.countryDataSets[country];\n if(this.table) {\n const tds = this.table.querySelectorAll('tbody td');\n for(let i = 2, j = 0; i < tds.length; i += 3, j++) {\n if(countryData && countryData[j] !== undefined) {\n tds[i].textContent = countryData[j];\n };\n };\n };\n };\n\n private handleCountrySelectChange = (event: Event) => {\n const target = event.target as HTMLSelectElement;\n if(target && target.id === 'country-select') this.updateCountryData(event);\n };\n\n private toggleSizeUnits = () => {\n this.sizeUnits = this.sizeUnits === 'mm' ? 'inches' : 'mm';\n };\n\n private convertToInches = (mm: string) => {\n const num = parseFloat(mm);\n return isNaN(num) ? mm : (num / 25.4).toFixed(2);\n };\n\n private convertTableUnits = () => {\n if(!this.table) return;\n const rows = this.table.querySelectorAll('tbody tr');\n rows.forEach(row => {\n const cells = row.querySelectorAll('td');\n if(cells.length >= 2) {\n if(this.sizeUnits === 'inches') {\n if(!cells[1].dataset.mm) cells[1].dataset.mm = cells[1].textContent || '';\n let [diameter, circumference] = (cells[1].dataset.mm || '').split('/').map(s => s.trim());\n if(circumference === undefined) {\n [diameter, circumference] = (cells[1].dataset.mm || '').split(' ').map(s => s.trim());\n }\n const dInch = this.convertToInches(diameter);\n const cInch = this.convertToInches(circumference);\n cells[1].textContent = `${dInch} / ${cInch}`;\n } else {\n if(cells[1].dataset.mm) {\n cells[1].textContent = cells[1].dataset.mm;\n };\n };\n };\n });\n };\n\n componentDidRender() {\n this.convertTableUnits();\n };\n\n render() {\n return (\n <Host>\n <button class=\"iv-sw-button\" onClick={this.toggleSizeUnits}>\n Showing Sizes In {this.sizeUnits}\n </button>\n <slot></slot>\n </Host>\n );\n };\n\n};"],"names":[],"mappings":";;AAAA,MAAM,cAAc,GAAG,05CAA05C;;MCQp6C,WAAW,GAAA,MAAA;;;;;IAGb,SAAS,GAAoB,IAAI;AAGlC,IAAA,eAAe,GAAoC;AACzD,QAAA,gBAAgB,EAAE;AAChB,YAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE;AACzR,SAAA;AACD,QAAA,cAAc,EAAE;AACd,YAAA,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE;AACnO,SAAA;AACD,QAAA,QAAQ,EAAE;AACR,YAAA,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;AACnO,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAChN,SAAA;AACD,QAAA,mBAAmB,EAAE;AACnB,YAAA,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;AAC3M,SAAA;AACD,QAAA,WAAW,EAAE;AACX,YAAA,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AAC7M,SAAA;AACD,QAAA,aAAa,EAAE;AACb,YAAA,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;AACnN;KACF;IAED,gBAAgB,GAAA;QACd,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,yBAAyB,CAAC;;;AAGpE,IAAA,IAAY,KAAK,GAAA;QACf,OAAO,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC;;AAG/B,IAAA,iBAAiB,CAAC,CAAC,EAAA;AACzB,QAAA,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;AACjD,QAAA,IAAG,IAAI,CAAC,KAAK,EAAE;YACb,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;YACnD,KAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,IAAG,WAAW,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;oBAC9C,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC;;gBACpC;;YACF;;QACF;;;AAGK,IAAA,yBAAyB,GAAG,CAAC,KAAY,KAAI;AACnD,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAA2B;AAChD,QAAA,IAAG,MAAM,IAAI,MAAM,CAAC,EAAE,KAAK,gBAAgB;AAAE,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC5E,KAAC;IAEO,eAAe,GAAG,MAAK;AAC7B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,IAAI,GAAG,QAAQ,GAAG,IAAI;AAC5D,KAAC;AAEO,IAAA,eAAe,GAAG,CAAC,EAAU,KAAI;AACvC,QAAA,MAAM,GAAG,GAAG,UAAU,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,KAAC;IAEO,iBAAiB,GAAG,MAAK;QAC/B,IAAG,CAAC,IAAI,CAAC,KAAK;YAAE;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,UAAU,CAAC;AACpD,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;YACjB,MAAM,KAAK,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC;AACxC,YAAA,IAAG,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACpB,gBAAA,IAAG,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;oBAC9B,IAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AAAE,wBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,EAAE;AACzE,oBAAA,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;AACzF,oBAAA,IAAG,aAAa,KAAK,SAAS,EAAE;AAC9B,wBAAA,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;;oBAEvF,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;oBACjD,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,CAAA,EAAG,KAAK,CAAA,GAAA,EAAM,KAAK,CAAA,CAAE;;qBACvC;oBACL,IAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE;AACtB,wBAAA,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;;oBAC3C;;gBACF;;YACF;AACH,SAAC,CAAC;AACJ,KAAC;IAED,kBAAkB,GAAA;QAChB,IAAI,CAAC,iBAAiB,EAAE;;;IAG1B,MAAM,GAAA;QACJ,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAQ,CAAA,QAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,cAAc,EAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAA,uBACtC,IAAI,CAAC,SAAS,CACzB,EACT,CAAa,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,CAAA,CACR;;;;AAIZ;;;;;"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { r as registerInstance, k as getElement, h, a as Host } from './index-Py50VI8u.js';
|
|
2
|
+
|
|
3
|
+
const swSizeGuideCss = ".iv-sw-button{margin-bottom:2.5rem;background:black;color:white;border:1px solid transparent;outline:none;padding:0.75rem 1.5rem;text-transform:uppercase;font-weight:400;border-radius:unset;font-size:1rem;cursor:pointer;transition:all 0.5s}.iv-sw-button:hover{transition:all 0.5s;border-color:black;background:white;color:black}.table-wrapper{max-height:420px;overflow-y:auto;background:#fff;border-radius:0.5rem;box-shadow:0 2px 8px rgba(0, 0, 0, 0.03);scrollbar-color:#111 #fff;scrollbar-width:thin}.table-wrapper::-webkit-scrollbar{width:10px;background:#fff}.table-wrapper::-webkit-scrollbar-thumb{background:#111;border-radius:0}.table-wrapper::-webkit-scrollbar-track{background:#fff;border-radius:0}.table-wrapper>table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;color:#222;background:#fff;border-radius:0.5rem}.table-wrapper>table th,.table-wrapper>table td{text-align:center;vertical-align:middle;padding:1.25rem 0.75rem;border-bottom:1px solid #ececec;color:#222;background:#fafafa}.table-wrapper>table th{position:sticky;top:0;font-weight:600;background:#f5f5f5;color:#111}.table-wrapper>table th>select{outline:0;border-radius:0;border:0;position:relative;font-size:inherit;background-color:transparent;padding:0.75em 1em}.table-wrapper>table tr:last-child td{border-bottom:none}.table-wrapper>table tbody tr{transition:background 0.2s}.table-wrapper>table tbody tr:hover{background:#f0f0f0}";
|
|
4
|
+
|
|
5
|
+
const SwSizeGuide = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
}
|
|
9
|
+
get el() { return getElement(this); }
|
|
10
|
+
sizeUnits = 'mm';
|
|
11
|
+
countryDataSets = {
|
|
12
|
+
"UK + Australia": [
|
|
13
|
+
"F 1/2", "G", "G 1/2", "H", "H 1/2", "I", "I 1/2", "J", "J 1/2", "K", "K 1/2", "L", "L 1/2", "M", "M 1/2", "N", "N 1/2", "O", "O 1/2", "P", "P 1/2", "Q", "Q 1/2", "R", "R 1/2", "S", "S 1/2", "T", "T 1/2", "U", "U 1/2", "V", "V 1/2", "W", "W 1/2", "X", "x 1/2", "Y", "Z", "z 1/2", "-"
|
|
14
|
+
],
|
|
15
|
+
"USA + Canada": [
|
|
16
|
+
"3", "-", "3.5", "-", "4", "-", "4.5", "-", "5", "-", "5.5", "-", "6", "-", "6.5", "-", "7", "-", "7.5", "-", "8", "-", "8.5", "-", "9", "-", "9.5", "-", "10", "-", "10.5", "-", "11", "-", "11.5", "-", "12", "-", "12.5", "-", "13"
|
|
17
|
+
],
|
|
18
|
+
"Europe": [
|
|
19
|
+
"44", "45", "-", "46", "47", "-", "48", "-", "49", "50", "-", "51", "52", "-", "53", "-", "54", "55", "-", "56", "57", "-", "58", "59", "-", "60", "61", "-", "62", "-", "63", "64", "-", "65", "66", "-", "67", "-", "68", "69", "70"
|
|
20
|
+
],
|
|
21
|
+
"China": [
|
|
22
|
+
"6", "-", "7", "-", "8", "9", "-", "10", "-", "11", "12", "13", "-", "14", "-", "15", "-", "16", "17", "-", "18", "-", "19", "20", "-", "21", "-", "22", "-", "23", "-", "24", "25", "-", "26", "-", "-", "-", "-"
|
|
23
|
+
],
|
|
24
|
+
"Singapore + Japan": [
|
|
25
|
+
"4", "5", "-", "6", "7", "-", "8", "9", "-", "10", "11", "12", "-", "13", "-", "14", "-", "15", "16", "-", "17", "-", "18", "19", "-", "20", "-", "21", "22", "-", "23", "24", "-", "25", "-", "26", "-", "27"
|
|
26
|
+
],
|
|
27
|
+
"Hong Kong": [
|
|
28
|
+
"6", "-", "7.5", "-", "9", "-", "10", "-", "11", "12", "13", "-", "14", "-", "15", "-", "16", "-", "17", "-", "18", "19", "-", "20.5", "-", "22", "23", "-", "24", "25", "-", "26", "27.75", "-", "-", "-", "30"
|
|
29
|
+
],
|
|
30
|
+
"Switzerland": [
|
|
31
|
+
"4", "5.25", "-", "6.5", "-", "7.75", "-", "9", "-", "10", "-", "11.75", "12.75", "-", "14", "-", "15.25", "16.5", "-", "17.75", "-", "19", "20.5", "-", "22", "-", "23", "-", "25", "-", "27.75", "-", "-", "-", "30"
|
|
32
|
+
]
|
|
33
|
+
};
|
|
34
|
+
componentDidLoad() {
|
|
35
|
+
this.el.addEventListener('change', this.handleCountrySelectChange);
|
|
36
|
+
}
|
|
37
|
+
;
|
|
38
|
+
get table() {
|
|
39
|
+
return this.el.querySelector('table');
|
|
40
|
+
}
|
|
41
|
+
updateCountryData(e) {
|
|
42
|
+
const country = e.target.value;
|
|
43
|
+
const countryData = this.countryDataSets[country];
|
|
44
|
+
if (this.table) {
|
|
45
|
+
const tds = this.table.querySelectorAll('tbody td');
|
|
46
|
+
for (let i = 2, j = 0; i < tds.length; i += 3, j++) {
|
|
47
|
+
if (countryData && countryData[j] !== undefined) {
|
|
48
|
+
tds[i].textContent = countryData[j];
|
|
49
|
+
}
|
|
50
|
+
;
|
|
51
|
+
}
|
|
52
|
+
;
|
|
53
|
+
}
|
|
54
|
+
;
|
|
55
|
+
}
|
|
56
|
+
;
|
|
57
|
+
handleCountrySelectChange = (event) => {
|
|
58
|
+
const target = event.target;
|
|
59
|
+
if (target && target.id === 'country-select')
|
|
60
|
+
this.updateCountryData(event);
|
|
61
|
+
};
|
|
62
|
+
toggleSizeUnits = () => {
|
|
63
|
+
this.sizeUnits = this.sizeUnits === 'mm' ? 'inches' : 'mm';
|
|
64
|
+
};
|
|
65
|
+
convertToInches = (mm) => {
|
|
66
|
+
const num = parseFloat(mm);
|
|
67
|
+
return isNaN(num) ? mm : (num / 25.4).toFixed(2);
|
|
68
|
+
};
|
|
69
|
+
convertTableUnits = () => {
|
|
70
|
+
if (!this.table)
|
|
71
|
+
return;
|
|
72
|
+
const rows = this.table.querySelectorAll('tbody tr');
|
|
73
|
+
rows.forEach(row => {
|
|
74
|
+
const cells = row.querySelectorAll('td');
|
|
75
|
+
if (cells.length >= 2) {
|
|
76
|
+
if (this.sizeUnits === 'inches') {
|
|
77
|
+
if (!cells[1].dataset.mm)
|
|
78
|
+
cells[1].dataset.mm = cells[1].textContent || '';
|
|
79
|
+
let [diameter, circumference] = (cells[1].dataset.mm || '').split('/').map(s => s.trim());
|
|
80
|
+
if (circumference === undefined) {
|
|
81
|
+
[diameter, circumference] = (cells[1].dataset.mm || '').split(' ').map(s => s.trim());
|
|
82
|
+
}
|
|
83
|
+
const dInch = this.convertToInches(diameter);
|
|
84
|
+
const cInch = this.convertToInches(circumference);
|
|
85
|
+
cells[1].textContent = `${dInch} / ${cInch}`;
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
if (cells[1].dataset.mm) {
|
|
89
|
+
cells[1].textContent = cells[1].dataset.mm;
|
|
90
|
+
}
|
|
91
|
+
;
|
|
92
|
+
}
|
|
93
|
+
;
|
|
94
|
+
}
|
|
95
|
+
;
|
|
96
|
+
});
|
|
97
|
+
};
|
|
98
|
+
componentDidRender() {
|
|
99
|
+
this.convertTableUnits();
|
|
100
|
+
}
|
|
101
|
+
;
|
|
102
|
+
render() {
|
|
103
|
+
return (h(Host, { key: 'd2d6cd4348287e2586d04d91cbd297844029881e' }, h("button", { key: '06daf7e683155850a4b922ca7595ef95b067005a', class: "iv-sw-button", onClick: this.toggleSizeUnits }, "Showing Sizes In ", this.sizeUnits), h("slot", { key: '0c2b287b5b1efe39b39ff89669f1884a4f2125bd' })));
|
|
104
|
+
}
|
|
105
|
+
;
|
|
106
|
+
};
|
|
107
|
+
;
|
|
108
|
+
SwSizeGuide.style = swSizeGuideCss;
|
|
109
|
+
|
|
110
|
+
export { SwSizeGuide as sw_size_guide };
|
|
111
|
+
//# sourceMappingURL=sw-size-guide.entry.esm.js.map
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class IvAccordion {
|
|
2
|
+
classmodifier?: string;
|
|
3
|
+
accordiontype: 'div' | 'section' | 'article';
|
|
4
|
+
accordionlabels: string;
|
|
5
|
+
showmultiple: boolean;
|
|
6
|
+
showfirst: boolean;
|
|
7
|
+
startingpanel: number;
|
|
8
|
+
layout: 'vertical' | 'horizontal';
|
|
9
|
+
activePanel: string;
|
|
10
|
+
private interimLabels;
|
|
11
|
+
render(): any;
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
export declare class IvButton {
|
|
3
|
+
type: string;
|
|
4
|
+
classmodifier?: string;
|
|
5
|
+
eventname?: string;
|
|
6
|
+
eventdetail?: string;
|
|
7
|
+
buttonClick?: (e?: MouseEvent) => void;
|
|
8
|
+
action: EventEmitter<any>;
|
|
9
|
+
el: HTMLElement;
|
|
10
|
+
handleClick: (e: MouseEvent) => void;
|
|
11
|
+
render(): any;
|
|
12
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare class IvCard {
|
|
2
|
+
data: Record<string, any>;
|
|
3
|
+
fields?: string;
|
|
4
|
+
cardtype?: string;
|
|
5
|
+
classmodifier?: string;
|
|
6
|
+
buttontext?: string;
|
|
7
|
+
calltoaction: boolean;
|
|
8
|
+
addtocarttext?: string;
|
|
9
|
+
private allowedFields;
|
|
10
|
+
componentWillLoad(): void;
|
|
11
|
+
private generateImage;
|
|
12
|
+
private appendAddToCartButton;
|
|
13
|
+
private buildProductHref;
|
|
14
|
+
render(): any;
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export declare class IvDynamicProducts {
|
|
2
|
+
type: 'CREATED' | 'BEST_SELLING' | 'PRICE' | 'TITLE' | 'RELEVANCE';
|
|
3
|
+
limit: number;
|
|
4
|
+
reversed: boolean;
|
|
5
|
+
componenttitle?: string;
|
|
6
|
+
titletag: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
7
|
+
collectionhandle: string;
|
|
8
|
+
carousel: boolean;
|
|
9
|
+
requestedfields: string;
|
|
10
|
+
calltoaction: boolean;
|
|
11
|
+
buttontext?: string;
|
|
12
|
+
addtocarttext?: string;
|
|
13
|
+
emptystring: string;
|
|
14
|
+
gridlayout?: string;
|
|
15
|
+
cachettl?: number;
|
|
16
|
+
stale?: boolean;
|
|
17
|
+
products: any[];
|
|
18
|
+
errorMsg: string;
|
|
19
|
+
staleData: boolean;
|
|
20
|
+
private errors;
|
|
21
|
+
handlePropChange(): void;
|
|
22
|
+
componentWillLoad(): Promise<void>;
|
|
23
|
+
private buildParams;
|
|
24
|
+
private loadProducts;
|
|
25
|
+
render(): any;
|
|
26
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare class IvDynamicProductsCarousel {
|
|
2
|
+
type: 'CREATED' | 'BEST_SELLING' | 'PRICE' | 'TITLE' | 'RELEVANCE';
|
|
3
|
+
limit: number;
|
|
4
|
+
reversed: boolean;
|
|
5
|
+
componenttitle?: string;
|
|
6
|
+
titletag: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';
|
|
7
|
+
collectionhandle: string;
|
|
8
|
+
requestedfields: string;
|
|
9
|
+
calltoaction: boolean;
|
|
10
|
+
buttontext?: string;
|
|
11
|
+
addtocarttext?: string;
|
|
12
|
+
emptystring: string;
|
|
13
|
+
cachettl?: number;
|
|
14
|
+
stale?: boolean;
|
|
15
|
+
products: any[];
|
|
16
|
+
errorMsg: string;
|
|
17
|
+
staleData: boolean;
|
|
18
|
+
page: number;
|
|
19
|
+
private readonly itemsPerPage;
|
|
20
|
+
private errors;
|
|
21
|
+
handlePropChange(): void;
|
|
22
|
+
componentWillLoad(): Promise<void>;
|
|
23
|
+
private buildParams;
|
|
24
|
+
private loadProducts;
|
|
25
|
+
private pagedProducts;
|
|
26
|
+
private next;
|
|
27
|
+
private prev;
|
|
28
|
+
render(): any;
|
|
29
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class IvLayout {
|
|
2
|
+
sectionId?: string;
|
|
3
|
+
gridTemplateAreas?: string;
|
|
4
|
+
gap: string;
|
|
5
|
+
verticalAlign: string;
|
|
6
|
+
horizontalAlign: string;
|
|
7
|
+
wrapperTag: string;
|
|
8
|
+
classModifier?: string;
|
|
9
|
+
private handleNamedSlots;
|
|
10
|
+
private generateGridStyes;
|
|
11
|
+
render(): any;
|
|
12
|
+
}
|