the-foxy-library 1.0.10 → 1.0.12

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.
Files changed (42) hide show
  1. package/dist/cjs/intravenous.cjs.js +1 -1
  2. package/dist/cjs/ion-icon.iv-accordion.iv-button.iv-footer.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.cjs.js.map +1 -0
  3. package/dist/cjs/{ion-icon_8.cjs.entry.js → ion-icon_9.cjs.entry.js} +60 -22
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/collection/components/iv-accordion/iv-accordion.js +7 -9
  6. package/dist/collection/components/iv-accordion/iv-accordion.js.map +1 -1
  7. package/dist/collection/components/iv-footer/iv-footer.css +21 -2
  8. package/dist/collection/components/iv-footer/iv-footer.js +45 -8
  9. package/dist/collection/components/iv-footer/iv-footer.js.map +1 -1
  10. package/dist/collection/components/iv-newsletter/iv-newsletter.js +37 -37
  11. package/dist/collection/components/iv-newsletter/iv-newsletter.js.map +1 -1
  12. package/dist/components/iv-accordion.js +3 -3
  13. package/dist/components/iv-accordion.js.map +1 -1
  14. package/dist/components/iv-footer.js +22 -9
  15. package/dist/components/iv-footer.js.map +1 -1
  16. package/dist/components/iv-newsletter.js +27 -27
  17. package/dist/components/iv-newsletter.js.map +1 -1
  18. package/dist/esm/intravenous.js +1 -1
  19. package/dist/esm/ion-icon.iv-accordion.iv-button.iv-footer.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.js.map +1 -0
  20. package/dist/esm/{ion-icon_8.entry.js → ion-icon_9.entry.js} +60 -23
  21. package/dist/esm/loader.js +1 -1
  22. package/dist/intravenous/intravenous.esm.js +1 -1
  23. package/dist/intravenous/ion-icon.iv-accordion.iv-button.iv-footer.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.esm.js.map +1 -0
  24. package/dist/intravenous/p-ba7f8c7c.entry.js +2 -0
  25. package/dist/intravenous/p-ba7f8c7c.entry.js.map +1 -0
  26. package/dist/types/components/iv-accordion/iv-accordion.d.ts +2 -2
  27. package/dist/types/components/iv-footer/iv-footer.d.ts +3 -1
  28. package/dist/types/components/iv-newsletter/iv-newsletter.d.ts +10 -10
  29. package/dist/types/components.d.ts +24 -34
  30. package/package.json +1 -1
  31. package/dist/cjs/ion-icon.iv-accordion.iv-button.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.cjs.js.map +0 -1
  32. package/dist/cjs/iv-footer.cjs.entry.js +0 -31
  33. package/dist/cjs/iv-footer.entry.cjs.js.map +0 -1
  34. package/dist/esm/ion-icon.iv-accordion.iv-button.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.js.map +0 -1
  35. package/dist/esm/iv-footer.entry.js +0 -29
  36. package/dist/esm/iv-footer.entry.js.map +0 -1
  37. package/dist/intravenous/ion-icon.iv-accordion.iv-button.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.esm.js.map +0 -1
  38. package/dist/intravenous/iv-footer.entry.esm.js.map +0 -1
  39. package/dist/intravenous/p-21f98e01.entry.js +0 -2
  40. package/dist/intravenous/p-21f98e01.entry.js.map +0 -1
  41. package/dist/intravenous/p-b0d188c4.entry.js +0 -2
  42. package/dist/intravenous/p-b0d188c4.entry.js.map +0 -1
@@ -19,7 +19,7 @@ var patchBrowser = () => {
19
19
 
20
20
  patchBrowser().then(async (options) => {
21
21
  await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["iv-dynamic-products.cjs",[[256,"iv-dynamic-products",{"type":[1],"limit":[2],"reversed":[4],"componenttitle":[1],"titletag":[1],"collectionhandle":[1],"carousel":[4],"requestedfields":[1],"calltoaction":[4],"buttontext":[1],"addtocarttext":[1],"emptystring":[1],"gridlayout":[1],"cachettl":[2],"stale":[4],"products":[32],"errorMsg":[32],"staleData":[32]},null,{"type":["handlePropChange"],"limit":["handlePropChange"],"collectionhandle":["handlePropChange"],"requestedfields":["handlePropChange"]}]]],["iv-suggest.cjs",[[256,"iv-suggest",{"topqueries":[1],"collections":[1],"products":[1],"banner":[1],"bannerurl":[1],"bannertitle":[1],"bannertitletag":[1],"bannerbuttontext":[1],"topquerytitle":[1],"productstitle":[1],"collectionstitle":[1],"gridlayout":[1],"requestfields":[1]}]]],["iv-dynamic-products-carousel.cjs",[[256,"iv-dynamic-products-carousel",{"type":[1],"limit":[2],"reversed":[4],"componenttitle":[1],"titletag":[1],"collectionhandle":[1],"requestedfields":[1],"calltoaction":[4],"buttontext":[1],"addtocarttext":[1],"emptystring":[1],"cachettl":[2],"stale":[4],"excluse":[1],"products":[32],"errorMsg":[32],"staleData":[32],"page":[32]},null,{"type":["handlePropChange"],"limit":["handlePropChange"],"collectionhandle":["handlePropChange"],"requestedfields":["handlePropChange"]}]]],["iv-predictive-search.cjs",[[256,"iv-predictive-search",{"searchlabel":[1],"labelposition":[1],"action":[1],"method":[1],"placeholder":[1],"minchars":[2],"debounce":[2],"resultslimit":[2],"showspinner":[4],"noresultstext":[1],"requestedfields":[1],"requestedresources":[1],"showallbuttontext":[1],"querybuttontext":[1],"clearbutton":[1],"expandable":[4],"tablayout":[1],"gridlayout":[1],"searchTerm":[32],"searchReturnData":[32],"noResults":[32]}]]],["iv-recently-viewed.cjs",[[256,"iv-recently-viewed",{"componenttitle":[1],"titletag":[1],"numbertoshow":[2],"noviewhistory":[1],"requestedfields":[1],"items":[32]}]]],["iv-modal.cjs",[[257,"iv-modal"]]],["iv-toast-container.cjs",[[256,"iv-toast-container",{"_bump":[32]}]]],["iv-wishlist.cjs",[[256,"iv-wishlist",{"buttonaddvalue":[1],"buttonremovevalue":[1],"wishlistempty":[1],"buttonaddtocartvalue":[1],"viewwishlistvalue":[1],"productdata":[1],"usefields":[1],"previewtype":[1]}]]],["iv-carousel.cjs",[[257,"iv-carousel"]]],["iv-filters.cjs",[[256,"iv-filters"]]],["iv-footer.cjs",[[260,"iv-footer",{"blockElements":[32]}]]],["iv-product-upsell.cjs",[[257,"iv-product-upsell"]]],["sw-in-grid-content.cjs",[[260,"sw-in-grid-content"]]],["sw-size-guide.cjs",[[260,"sw-size-guide",{"sizeUnits":[32]}]]],["iv-banner.cjs",[[260,"iv-banner",{"classmodifier":[1],"bannerurl":[1],"bannerbuttontext":[1],"bannertype":[1]}]]],["iv-tabs.cjs",[[260,"iv-tabs",{"labels":[16],"classModifier":[1,"class-modifier"],"tabLayout":[1,"tab-layout"],"activeTab":[32]}]]],["iv-toast.cjs",[[256,"iv-toast",{"message":[1],"toastId":[2,"toast-id"],"duration":[2],"type":[1]}]]],["ion-icon_8.cjs",[[260,"iv-sidebar",{"closeicon":[1]},[[8,"openPullout","handleOpenPullout"]]],[260,"iv-accordion",{"labels":[1],"allowmultiple":[4],"startopen":[4],"dropdownicon":[1],"openPanels":[32]}],[256,"iv-link-list",{"linktype":[1],"showicons":[4],"links":[1],"layout":[1]}],[256,"iv-newsletter",{"formSubmitBtnText":[1,"form-submit-btn-text"],"formSuccessMessage":[1,"form-success-message"],"formFailureMessage":[1,"form-failure-message"],"formPlaceholderText":[1,"form-placeholder-text"],"formLabelText":[1,"form-label-text"],"formStackButton":[4,"form-stack-button"],"formTitleTag":[1,"form-title-tag"],"formTitleText":[1,"form-title-text"],"formDescriptionText":[1,"form-description-text"],"includeLoadingSpinner":[4,"include-loading-spinner"],"email":[32],"formFeedback":[32],"status":[32]}],[256,"iv-wishlist-view"],[257,"ion-icon",{"mode":[1025],"color":[1],"ios":[1],"md":[1],"flipRtl":[4,"flip-rtl"],"name":[513],"src":[1],"icon":[8],"size":[1],"lazy":[4],"sanitize":[4],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIcon"],"src":["loadIcon"],"icon":["loadIcon"],"ios":["loadIcon"],"md":["loadIcon"]}],[256,"iv-spinner",{"show":[4]}],[260,"iv-button",{"type":[1],"classmodifier":[1],"eventname":[1],"eventdetail":[1],"buttonClick":[16]}]]],["iv-card_3.cjs",[[256,"iv-card",{"data":[16],"fields":[1],"cardtype":[1],"classmodifier":[1],"buttontext":[1],"calltoaction":[4],"addtocarttext":[1]}],[260,"iv-layout",{"sectionId":[1,"section-id"],"gridTemplateAreas":[1,"grid-template-areas"],"gap":[1],"verticalAlign":[1,"vertical-align"],"horizontalAlign":[1,"horizontal-align"],"wrapperTag":[1,"wrapper-tag"],"classModifier":[1,"class-modifier"]}],[260,"iv-link",{"classmodifier":[1],"linktype":[1],"linkhref":[1],"linktarget":[1],"linkrel":[1],"linkariaLabel":[1,"linkaria-label"]}]]]], options);
22
+ return index.bootstrapLazy([["iv-dynamic-products.cjs",[[256,"iv-dynamic-products",{"type":[1],"limit":[2],"reversed":[4],"componenttitle":[1],"titletag":[1],"collectionhandle":[1],"carousel":[4],"requestedfields":[1],"calltoaction":[4],"buttontext":[1],"addtocarttext":[1],"emptystring":[1],"gridlayout":[1],"cachettl":[2],"stale":[4],"products":[32],"errorMsg":[32],"staleData":[32]},null,{"type":["handlePropChange"],"limit":["handlePropChange"],"collectionhandle":["handlePropChange"],"requestedfields":["handlePropChange"]}]]],["iv-suggest.cjs",[[256,"iv-suggest",{"topqueries":[1],"collections":[1],"products":[1],"banner":[1],"bannerurl":[1],"bannertitle":[1],"bannertitletag":[1],"bannerbuttontext":[1],"topquerytitle":[1],"productstitle":[1],"collectionstitle":[1],"gridlayout":[1],"requestfields":[1]}]]],["iv-dynamic-products-carousel.cjs",[[256,"iv-dynamic-products-carousel",{"type":[1],"limit":[2],"reversed":[4],"componenttitle":[1],"titletag":[1],"collectionhandle":[1],"requestedfields":[1],"calltoaction":[4],"buttontext":[1],"addtocarttext":[1],"emptystring":[1],"cachettl":[2],"stale":[4],"excluse":[1],"products":[32],"errorMsg":[32],"staleData":[32],"page":[32]},null,{"type":["handlePropChange"],"limit":["handlePropChange"],"collectionhandle":["handlePropChange"],"requestedfields":["handlePropChange"]}]]],["iv-predictive-search.cjs",[[256,"iv-predictive-search",{"searchlabel":[1],"labelposition":[1],"action":[1],"method":[1],"placeholder":[1],"minchars":[2],"debounce":[2],"resultslimit":[2],"showspinner":[4],"noresultstext":[1],"requestedfields":[1],"requestedresources":[1],"showallbuttontext":[1],"querybuttontext":[1],"clearbutton":[1],"expandable":[4],"tablayout":[1],"gridlayout":[1],"searchTerm":[32],"searchReturnData":[32],"noResults":[32]}]]],["iv-recently-viewed.cjs",[[256,"iv-recently-viewed",{"componenttitle":[1],"titletag":[1],"numbertoshow":[2],"noviewhistory":[1],"requestedfields":[1],"items":[32]}]]],["iv-modal.cjs",[[257,"iv-modal"]]],["iv-toast-container.cjs",[[256,"iv-toast-container",{"_bump":[32]}]]],["iv-wishlist.cjs",[[256,"iv-wishlist",{"buttonaddvalue":[1],"buttonremovevalue":[1],"wishlistempty":[1],"buttonaddtocartvalue":[1],"viewwishlistvalue":[1],"productdata":[1],"usefields":[1],"previewtype":[1]}]]],["iv-carousel.cjs",[[257,"iv-carousel"]]],["iv-filters.cjs",[[256,"iv-filters"]]],["iv-product-upsell.cjs",[[257,"iv-product-upsell"]]],["sw-in-grid-content.cjs",[[260,"sw-in-grid-content"]]],["sw-size-guide.cjs",[[260,"sw-size-guide",{"sizeUnits":[32]}]]],["iv-banner.cjs",[[260,"iv-banner",{"classmodifier":[1],"bannerurl":[1],"bannerbuttontext":[1],"bannertype":[1]}]]],["iv-tabs.cjs",[[260,"iv-tabs",{"labels":[16],"classModifier":[1,"class-modifier"],"tabLayout":[1,"tab-layout"],"activeTab":[32]}]]],["iv-toast.cjs",[[256,"iv-toast",{"message":[1],"toastId":[2,"toast-id"],"duration":[2],"type":[1]}]]],["ion-icon_9.cjs",[[260,"iv-sidebar",{"closeicon":[1]},[[8,"openPullout","handleOpenPullout"]]],[260,"iv-accordion",{"labels":[1],"allowmultiple":[4],"startopen":[4],"dropdownicon":[1],"openPanels":[32]}],[256,"iv-link-list",{"linktype":[1],"showicons":[4],"links":[1],"layout":[1]}],[256,"iv-newsletter",{"formsubmitbtntext":[1],"formsuccessmessage":[1],"formfailuremessage":[1],"formplaceholdertext":[1],"formlabeltext":[1],"formstackbutton":[4],"formtitletag":[1],"formtitletext":[1],"formdescriptiontext":[1],"includeloadingspinner":[4],"email":[32],"formFeedback":[32],"status":[32]}],[260,"iv-footer",{"gridtemplateareas":[1],"blockElements":[32]}],[256,"iv-wishlist-view"],[257,"ion-icon",{"mode":[1025],"color":[1],"ios":[1],"md":[1],"flipRtl":[4,"flip-rtl"],"name":[513],"src":[1],"icon":[8],"size":[1],"lazy":[4],"sanitize":[4],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIcon"],"src":["loadIcon"],"icon":["loadIcon"],"ios":["loadIcon"],"md":["loadIcon"]}],[256,"iv-spinner",{"show":[4]}],[260,"iv-button",{"type":[1],"classmodifier":[1],"eventname":[1],"eventdetail":[1],"buttonClick":[16]}]]],["iv-card_3.cjs",[[256,"iv-card",{"data":[16],"fields":[1],"cardtype":[1],"classmodifier":[1],"buttontext":[1],"calltoaction":[4],"addtocarttext":[1]}],[260,"iv-layout",{"sectionId":[1,"section-id"],"gridTemplateAreas":[1,"grid-template-areas"],"gap":[1],"verticalAlign":[1,"vertical-align"],"horizontalAlign":[1,"horizontal-align"],"wrapperTag":[1,"wrapper-tag"],"classModifier":[1,"class-modifier"]}],[260,"iv-link",{"classmodifier":[1],"linktype":[1],"linkhref":[1],"linktarget":[1],"linkrel":[1],"linkariaLabel":[1,"linkaria-label"]}]]]], options);
23
23
  });
24
24
 
25
25
  exports.setNonce = index.setNonce;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ion-icon.iv-accordion.iv-button.iv-footer.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.cjs.js","sources":["node_modules/ionicons/dist/collection/components/icon/utils.js","node_modules/ionicons/dist/collection/components/icon/validate.js","node_modules/ionicons/dist/collection/components/icon/request.js","node_modules/ionicons/dist/collection/components/icon/icon.css?tag=ion-icon&encapsulation=shadow","node_modules/ionicons/dist/collection/components/icon/icon.js","src/components/iv-accordion/iv-accordion.scss?tag=iv-accordion","src/components/iv-accordion/iv-accordion.tsx","src/components/iv-button/iv-button.scss?tag=iv-button","src/components/iv-button/iv-button.tsx","src/components/iv-footer/iv-footer.scss?tag=iv-footer","src/components/iv-footer/iv-footer.tsx","src/components/iv-link-list/iv-link-list.scss?tag=iv-link-list","src/components/iv-link-list/iv-link-list.tsx","src/components/iv-newsletter/iv-newsletter.scss?tag=iv-newsletter","src/components/iv-newsletter/iv-newsletter.tsx","src/components/iv-sidebar/iv-sidebar.scss?tag=iv-sidebar","src/components/iv-sidebar/iv-sidebar.tsx","src/components/iv-spinner/iv-spinner.scss?tag=iv-spinner","src/components/iv-spinner/iv-spinner.tsx","src/components/iv-wishlist-view/iv-wishlist-view.scss?tag=iv-wishlist-view","src/components/iv-wishlist-view/iv-wishlist-view.tsx"],"sourcesContent":["import { getAssetPath } from \"@stencil/core\";\nlet CACHED_MAP;\nexport const getIconMap = () => {\n if (typeof window === 'undefined') {\n return new Map();\n }\n else {\n if (!CACHED_MAP) {\n const win = window;\n win.Ionicons = win.Ionicons || {};\n CACHED_MAP = win.Ionicons.map = win.Ionicons.map || new Map();\n }\n return CACHED_MAP;\n }\n};\nexport const addIcons = (icons) => {\n Object.keys(icons).forEach((name) => {\n addToIconMap(name, icons[name]);\n /**\n * Developers can also pass in the SVG object directly\n * and Ionicons can map the object to a kebab case name.\n * Example: addIcons({ addCircleOutline });\n * This will create an \"addCircleOutline\" entry and\n * an \"add-circle-outline\" entry.\n * Usage: <ion-icon name=\"add-circle-outline\"></ion-icon>\n * Using name=\"addCircleOutline\" is valid too, but the\n * kebab case naming is preferred.\n */\n const toKebabCase = name.replace(/([a-z0-9]|(?=[A-Z]))([A-Z0-9])/g, '$1-$2').toLowerCase();\n if (name !== toKebabCase) {\n addToIconMap(toKebabCase, icons[name]);\n }\n });\n};\nconst addToIconMap = (name, data) => {\n const map = getIconMap();\n const existingIcon = map.get(name);\n if (existingIcon === undefined) {\n map.set(name, data);\n /**\n * Importing and defining the same icon reference\n * multiple times should not yield a warning.\n */\n }\n else if (existingIcon !== data) {\n console.warn(`[Ionicons Warning]: Multiple icons were mapped to name \"${name}\". Ensure that multiple icons are not mapped to the same icon name.`);\n }\n};\nexport const getUrl = (i) => {\n let url = getSrc(i.src);\n if (url) {\n return url;\n }\n url = getName(i.name, i.icon, i.mode, i.ios, i.md);\n if (url) {\n return getNamedUrl(url, i);\n }\n if (i.icon) {\n url = getSrc(i.icon);\n if (url) {\n return url;\n }\n url = getSrc(i.icon[i.mode]);\n if (url) {\n return url;\n }\n }\n return null;\n};\nconst getNamedUrl = (iconName, iconEl) => {\n const url = getIconMap().get(iconName);\n if (url) {\n return url;\n }\n try {\n return getAssetPath(`svg/${iconName}.svg`);\n }\n catch (e) {\n console.log('e', e);\n /**\n * In the custom elements build version of ionicons, referencing an icon\n * by name will throw an invalid URL error because the asset path is not defined.\n * This catches that error and logs something that is more developer-friendly.\n * We also include a reference to the ion-icon element so developers can\n * figure out which instance of ion-icon needs to be updated.\n */\n console.warn(`[Ionicons Warning]: Could not load icon with name \"${iconName}\". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`, iconEl);\n }\n};\nexport const getName = (iconName, icon, mode, ios, md) => {\n // default to \"md\" if somehow the mode wasn't set\n mode = (mode && toLower(mode)) === 'ios' ? 'ios' : 'md';\n // if an icon was passed in using the ios or md attributes\n // set the iconName to whatever was passed in\n if (ios && mode === 'ios') {\n iconName = toLower(ios);\n }\n else if (md && mode === 'md') {\n iconName = toLower(md);\n }\n else {\n if (!iconName && icon && !isSrc(icon)) {\n iconName = icon;\n }\n if (isStr(iconName)) {\n iconName = toLower(iconName);\n }\n }\n if (!isStr(iconName) || iconName.trim() === '') {\n return null;\n }\n // only allow alpha characters and dash\n const invalidChars = iconName.replace(/[a-z]|-|\\d/gi, '');\n if (invalidChars !== '') {\n return null;\n }\n return iconName;\n};\nexport const getSrc = (src) => {\n if (isStr(src)) {\n src = src.trim();\n if (isSrc(src)) {\n return src;\n }\n }\n return null;\n};\nexport const isSrc = (str) => str.length > 0 && /(\\/|\\.)/.test(str);\nexport const isStr = (val) => typeof val === 'string';\nexport const toLower = (val) => val.toLowerCase();\n/**\n * Elements inside of web components sometimes need to inherit global attributes\n * set on the host. For example, the inner input in `ion-input` should inherit\n * the `title` attribute that developers set directly on `ion-input`. This\n * helper function should be called in componentWillLoad and assigned to a variable\n * that is later used in the render function.\n *\n * This does not need to be reactive as changing attributes on the host element\n * does not trigger a re-render.\n */\nexport const inheritAttributes = (el, attributes = []) => {\n const attributeObject = {};\n attributes.forEach((attr) => {\n if (el.hasAttribute(attr)) {\n const value = el.getAttribute(attr);\n if (value !== null) {\n attributeObject[attr] = el.getAttribute(attr);\n }\n el.removeAttribute(attr);\n }\n });\n return attributeObject;\n};\n/**\n * Returns `true` if the document or host element\n * has a `dir` set to `rtl`. The host value will always\n * take priority over the root document value.\n */\nexport const isRTL = (hostEl) => {\n if (hostEl) {\n if (hostEl.dir !== '') {\n return hostEl.dir.toLowerCase() === 'rtl';\n }\n }\n return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';\n};\n","import { isStr } from \"./utils\";\nexport const validateContent = (svgContent) => {\n const div = document.createElement('div');\n div.innerHTML = svgContent;\n // setup this way to ensure it works on our buddy IE\n for (let i = div.childNodes.length - 1; i >= 0; i--) {\n if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {\n div.removeChild(div.childNodes[i]);\n }\n }\n // must only have 1 root element\n const svgElm = div.firstElementChild;\n if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {\n const svgClass = svgElm.getAttribute('class') || '';\n svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());\n // root element must be an svg\n // lets double check we've got valid elements\n // do not allow scripts\n if (isValid(svgElm)) {\n return div.innerHTML;\n }\n }\n return '';\n};\nexport const isValid = (elm) => {\n if (elm.nodeType === 1) {\n if (elm.nodeName.toLowerCase() === 'script') {\n return false;\n }\n for (let i = 0; i < elm.attributes.length; i++) {\n const name = elm.attributes[i].name;\n if (isStr(name) && name.toLowerCase().indexOf('on') === 0) {\n return false;\n }\n }\n for (let i = 0; i < elm.childNodes.length; i++) {\n if (!isValid(elm.childNodes[i])) {\n return false;\n }\n }\n }\n return true;\n};\nexport const isSvgDataUrl = (url) => url.startsWith('data:image/svg+xml');\nexport const isEncodedDataUrl = (url) => url.indexOf(';utf8,') !== -1;\n","import { isEncodedDataUrl, isSvgDataUrl, validateContent } from \"./validate\";\nexport const ioniconContent = new Map();\nconst requests = new Map();\nlet parser;\n/**\n * Safely fallback to an empty svg\n */\nfunction safeFallback(url) {\n const svg = '';\n ioniconContent.set(url, svg);\n return svg;\n}\nexport const getSvgContent = (url, sanitize) => {\n /**\n * See if we already have a request for this url\n */\n const req = requests.get(url);\n if (req) {\n return req;\n }\n if (typeof fetch !== 'undefined' && typeof document !== 'undefined') {\n /**\n * If the url is a data url of an svg, then try to parse it\n * with the DOMParser. This works with content security policies enabled.\n */\n if (isSvgDataUrl(url) && isEncodedDataUrl(url)) {\n return Promise.resolve(getSvgByUrl(url));\n }\n return fetchSvg(url, sanitize);\n }\n return Promise.resolve(safeFallback(url));\n};\nfunction getSvgByUrl(url) {\n if (!parser) {\n /**\n * Create an instance of the DOM parser. This creates a single\n * parser instance for the entire app, which is more efficient.\n */\n parser = new DOMParser();\n }\n const doc = parser.parseFromString(url, 'text/html');\n const svg = doc.querySelector('svg');\n if (svg) {\n ioniconContent.set(url, svg.outerHTML);\n return svg.outerHTML;\n }\n throw new Error(`Could not parse svg from ${url}`);\n}\nfunction fetchSvg(url, sanitize) {\n /**\n * We don't already have a request\n */\n const req = fetch(url)\n .then((rsp) => {\n /**\n * When fetching from a file:// URL, some browsers return\n * a 0 status code even when the request succeeds so don't\n * rely on rsp.ok as the only signal of success.\n */\n return rsp\n .text()\n .then((svgContent) => {\n if (svgContent && sanitize !== false) {\n svgContent = validateContent(svgContent);\n }\n const svg = svgContent || '';\n ioniconContent.set(url, svg);\n return svg;\n })\n .catch(() => safeFallback(url));\n })\n .catch(() => safeFallback(url));\n /**\n * Cache for the same requests\n */\n requests.set(url, req);\n return req;\n}\n",":host {\n display: inline-block;\n\n width: 1em;\n height: 1em;\n\n contain: strict;\n\n fill: currentColor;\n\n box-sizing: content-box !important;\n\n}\n\n:host .ionicon {\n stroke: currentColor;\n}\n\n.ionicon-fill-none {\n fill: none;\n}\n\n.ionicon-stroke-width {\n stroke-width: var(--ionicon-stroke-width, 32px);\n}\n\n.icon-inner,\n.ionicon,\nsvg {\n display: block;\n\n height: 100%;\n width: 100%;\n}\n\n/* Icon RTL\n * -----------------------------------------------------------\n */\n\n/**\n * Safari <16.4 incorrectly reports\n * that it supports :dir(rtl) when it does not.\n * This @supports statement lets us target\n * WebKit browsers to apply the RTL fallback.\n * -webkit-named-image only exists on WebKit.\n * For WebKit browsers that do support :dir(rtl)\n * (i.e. Safari >= 16.4) then the :dir(rtl)\n * code farther down on the page will take\n * effect and override this fallback.\n */\n@supports (background: -webkit-named-image(i)) {\n :host(.icon-rtl) .icon-inner {\n transform: scaleX(-1);\n }\n}\n\n/**\n * Fallback for browsers that support\n * neither :host-context nor :dir.\n * The icon will not react to dir\n * changes, but it will at least\n * respect the dir on component load.\n */\n@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])) {\n :host(.icon-rtl) .icon-inner {\n transform: scaleX(-1);\n }\n}\n\n/* :host-context is supported in chromium; :dir is supported in safari & firefox */\n:host(.flip-rtl):host-context([dir='rtl']) .icon-inner {\n transform: scaleX(-1);\n}\n\n@supports selector(:dir(rtl)) {\n :host(.flip-rtl:dir(rtl)) .icon-inner {\n transform: scaleX(-1);\n }\n /**\n * This is needed for WebKit otherwise the fallback\n * will always cause the icon to be flipped if the document\n * loads in RTL.\n */\n :host(.flip-rtl:dir(ltr)) .icon-inner {\n transform: scaleX(1);\n }\n}\n\n/* Icon Sizes\n * -----------------------------------------------------------\n */\n\n:host(.icon-small) {\n font-size: 1.125rem !important;\n}\n\n:host(.icon-large) {\n font-size: 2rem !important;\n}\n\n/* Icon Colors\n * -----------------------------------------------------------\n */\n\n:host(.ion-color) {\n color: var(--ion-color-base) !important;\n}\n\n:host(.ion-color-primary) {\n --ion-color-base: var(--ion-color-primary, #3880ff);\n}\n\n:host(.ion-color-secondary) {\n --ion-color-base: var(--ion-color-secondary, #0cd1e8);\n}\n\n:host(.ion-color-tertiary) {\n --ion-color-base: var(--ion-color-tertiary, #f4a942);\n}\n\n:host(.ion-color-success) {\n --ion-color-base: var(--ion-color-success, #10dc60);\n}\n\n:host(.ion-color-warning) {\n --ion-color-base: var(--ion-color-warning, #ffce00);\n}\n\n:host(.ion-color-danger) {\n --ion-color-base: var(--ion-color-danger, #f14141);\n}\n\n:host(.ion-color-light) {\n --ion-color-base: var(--ion-color-light, #f4f5f8);\n}\n\n:host(.ion-color-medium) {\n --ion-color-base: var(--ion-color-medium, #989aa2);\n}\n\n:host(.ion-color-dark) {\n --ion-color-base: var(--ion-color-dark, #222428);\n}\n","import { Build, Host, h } from \"@stencil/core\";\nimport { getSvgContent, ioniconContent } from \"./request\";\nimport { getName, getUrl, inheritAttributes, isRTL } from \"./utils\";\nexport class Icon {\n constructor() {\n this.iconName = null;\n this.inheritedAttributes = {};\n this.didLoadIcon = false;\n this.isVisible = false;\n /**\n * The mode determines which platform styles to use.\n */\n this.mode = getIonMode();\n /**\n * If enabled, ion-icon will be loaded lazily when it's visible in the viewport.\n * Default, `false`.\n */\n this.lazy = false;\n /**\n * When set to `false`, SVG content that is HTTP fetched will not be checked\n * if the response SVG content has any `<script>` elements, or any attributes\n * that start with `on`, such as `onclick`.\n * @default true\n */\n this.sanitize = true;\n }\n componentWillLoad() {\n this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);\n }\n connectedCallback() {\n /**\n * purposely do not return the promise here because loading\n * the svg file should not hold up loading the app\n * only load the svg if it's visible\n */\n this.waitUntilVisible(this.el, '50px', () => {\n this.isVisible = true;\n this.loadIcon();\n });\n }\n /**\n * Loads the icon after the component has finished rendering.\n */\n componentDidLoad() {\n /**\n * Addresses an Angular issue where property values are assigned after the 'connectedCallback' but prior to the registration of watchers.\n * This enhancement ensures the loading of an icon when the component has finished rendering and the icon has yet to apply the SVG data.\n * This modification pertains to the usage of Angular's binding syntax:\n * `<ion-icon [name]=\"myIconName\"></ion-icon>`\n */\n if (!this.didLoadIcon) {\n this.loadIcon();\n }\n }\n /**\n * Disconnect the IntersectionObserver.\n */\n disconnectedCallback() {\n if (this.io) {\n this.io.disconnect();\n this.io = undefined;\n }\n }\n /**\n * Wait until the icon is visible in the viewport.\n * @param el - The element to observe.\n * @param rootMargin - The root margin of the observer.\n * @param cb - The callback to call when the element is visible.\n */\n waitUntilVisible(el, rootMargin, cb) {\n /**\n * IntersectionObserver is a browser API that allows you to observe\n * the visibility of an element relative to a root element. It is\n * supported in all modern browsers, except IE and when server-side\n * rendering.\n */\n const hasIntersectionObserverSupport = Boolean(Build.isBrowser && this.lazy && typeof window !== 'undefined' && window.IntersectionObserver);\n /**\n * browser doesn't support IntersectionObserver\n * so just fallback to always show it\n */\n if (!hasIntersectionObserverSupport) {\n return cb();\n }\n const io = (this.io = new window.IntersectionObserver((data) => {\n if (data[0].isIntersecting) {\n io.disconnect();\n this.io = undefined;\n cb();\n }\n }, { rootMargin }));\n io.observe(el);\n }\n /**\n * Watch for changes to the icon name, src, icon, ios, or md properties.\n * When a change is detected, the icon will be loaded.\n */\n loadIcon() {\n if (Build.isBrowser && this.isVisible) {\n const url = getUrl(this);\n if (url) {\n if (ioniconContent.has(url)) {\n // sync if it's already loaded\n this.svgContent = ioniconContent.get(url);\n }\n else {\n // async if it hasn't been loaded\n getSvgContent(url, this.sanitize).then(() => (this.svgContent = ioniconContent.get(url)));\n }\n this.didLoadIcon = true;\n }\n }\n this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);\n }\n render() {\n const { flipRtl, iconName, inheritedAttributes, el } = this;\n const mode = this.mode || 'md';\n /**\n * we have designated that arrows & chevrons should automatically flip (unless flip-rtl\n * is set to false) because \"back\" is left in ltr and right in rtl, and \"forward\" is the opposite\n */\n const shouldAutoFlip = iconName\n ? (iconName.includes('arrow') || iconName.includes('chevron')) && flipRtl !== false\n : false;\n /**\n * if shouldBeFlippable is true, the icon should change direction when `dir` changes\n */\n const shouldBeFlippable = flipRtl || shouldAutoFlip;\n return (h(Host, Object.assign({ key: '0578c899781ca145dd8205acd9670af39b57cf2e', role: \"img\", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': shouldBeFlippable, 'icon-rtl': shouldBeFlippable && isRTL(el) }) }, inheritedAttributes), Build.isBrowser && this.svgContent ? (h(\"div\", { class: \"icon-inner\", innerHTML: this.svgContent })) : (h(\"div\", { class: \"icon-inner\" }))));\n }\n static get is() { return \"ion-icon\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"icon.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"icon.css\"]\n };\n }\n static get assetsDirs() { return [\"svg\"]; }\n static get properties() {\n return {\n \"mode\": {\n \"type\": \"string\",\n \"attribute\": \"mode\",\n \"mutable\": true,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The mode determines which platform styles to use.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"defaultValue\": \"getIonMode()\"\n },\n \"color\": {\n \"type\": \"string\",\n \"attribute\": \"color\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The color to use for the background of the item.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false\n },\n \"ios\": {\n \"type\": \"string\",\n \"attribute\": \"ios\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies which icon to use on `ios` mode.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false\n },\n \"md\": {\n \"type\": \"string\",\n \"attribute\": \"md\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies which icon to use on `md` mode.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false\n },\n \"flipRtl\": {\n \"type\": \"boolean\",\n \"attribute\": \"flip-rtl\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies whether the icon should horizontally flip when `dir` is `\\\"rtl\\\"`.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false\n },\n \"name\": {\n \"type\": \"string\",\n \"attribute\": \"name\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies which icon to use from the built-in set of icons.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": true\n },\n \"src\": {\n \"type\": \"string\",\n \"attribute\": \"src\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"Specifies the exact `src` of an SVG file to use.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false\n },\n \"icon\": {\n \"type\": \"any\",\n \"attribute\": \"icon\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"any\",\n \"resolved\": \"any\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"A combination of both `name` and `src`. If a `src` url is detected\\nit will set the `src` property. Otherwise it assumes it's a built-in named\\nSVG and set the `name` property.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false\n },\n \"size\": {\n \"type\": \"string\",\n \"attribute\": \"size\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string | undefined\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": true,\n \"docs\": {\n \"tags\": [],\n \"text\": \"The size of the icon.\\nAvailable options are: `\\\"small\\\"` and `\\\"large\\\"`.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false\n },\n \"lazy\": {\n \"type\": \"boolean\",\n \"attribute\": \"lazy\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"If enabled, ion-icon will be loaded lazily when it's visible in the viewport.\\nDefault, `false`.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"defaultValue\": \"false\"\n },\n \"sanitize\": {\n \"type\": \"boolean\",\n \"attribute\": \"sanitize\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [{\n \"name\": \"default\",\n \"text\": \"true\"\n }],\n \"text\": \"When set to `false`, SVG content that is HTTP fetched will not be checked\\nif the response SVG content has any `<script>` elements, or any attributes\\nthat start with `on`, such as `onclick`.\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"defaultValue\": \"true\"\n }\n };\n }\n static get states() {\n return {\n \"svgContent\": {},\n \"isVisible\": {}\n };\n }\n static get elementRef() { return \"el\"; }\n static get watchers() {\n return [{\n \"propName\": \"name\",\n \"methodName\": \"loadIcon\"\n }, {\n \"propName\": \"src\",\n \"methodName\": \"loadIcon\"\n }, {\n \"propName\": \"icon\",\n \"methodName\": \"loadIcon\"\n }, {\n \"propName\": \"ios\",\n \"methodName\": \"loadIcon\"\n }, {\n \"propName\": \"md\",\n \"methodName\": \"loadIcon\"\n }];\n }\n}\n/**\n * Get the mode of the document.\n * @returns The mode of the document.\n */\nconst getIonMode = () => (Build.isBrowser && typeof document !== 'undefined' && document.documentElement.getAttribute('mode')) || 'md';\n/**\n * Create color classes for the icon.\n * @param color - The color of the icon.\n * @returns The color classes for the icon.\n */\nconst createColorClasses = (color) => {\n return color\n ? {\n 'ion-color': true,\n [`ion-color-${color}`]: true,\n }\n : null;\n};\n",":host {\r\n display: block;\r\n}\r\n","import { Component, h, Prop, State } from '@stencil/core';\r\nimport { requestedFields } from '../../utils/helpers/factory';\r\nimport 'ionicons';\r\n\r\nconst BLOCK = 'iv-accordion';\r\n\r\n@Component({\r\n tag: 'iv-accordion',\r\n styleUrl: 'iv-accordion.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvAccordion {\r\n\r\n @Prop() labels: string;\r\n @Prop() allowmultiple?: boolean;\r\n @Prop() startopen?: boolean;\r\n @Prop() dropdownicon?: 'chevron-down-outline' | 'add-outline';\r\n\r\n @State() openPanels: number[] = [];\r\n\r\n componentWillLoad() {\r\n this.openPanels = this.startopen ? [0] : [];\r\n };\r\n\r\n private togglePanel(index: number) {\r\n if(this.allowmultiple) {\r\n this.openPanels = this.openPanels.includes(index)\r\n ? this.openPanels.filter(i => i !== index)\r\n : [...this.openPanels, index];\r\n } else {\r\n this.openPanels = this.openPanels.includes(index)\r\n ? []\r\n : [index];\r\n };\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n\r\n <div class={BLOCK}>\r\n {requestedFields(this.labels).map((label, index) => (\r\n <div class=\"accordion-panel\" key={index}>\r\n <button\r\n class={{\r\n 'copy': true,\r\n 'accordion-header': true,\r\n 'open': this.openPanels.includes(index)\r\n }}\r\n onClick={() => this.togglePanel(index)}\r\n aria-expanded={this.openPanels.includes(index)}\r\n aria-controls={`panel-content-${index}`}\r\n id={`panel-header-${index}`}\r\n type=\"button\">\r\n {label}\r\n {this.dropdownicon && <ion-icon class=\"accordion-icon\" name={this.dropdownicon}></ion-icon>}\r\n </button>\r\n <div\r\n id={`panel-content-${index}`}\r\n class={{\r\n 'accordion-content': true,\r\n 'open': this.openPanels.includes(index)\r\n }}\r\n role=\"region\"\r\n aria-labelledby={`panel-header-${index}`}\r\n hidden={!this.openPanels.includes(index)}>\r\n <slot name={`panel-${index}`}></slot>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n );\r\n\r\n };\r\n\r\n};","// Base iv-button styles with theming tokens. Override --iv-button-* in theme scopes.\r\n// Keep defaults minimal so designers can layer brand styling later.\r\n\r\n.iv-button {\r\n display: var(--iv-button-display, inline-flex);\r\n align-items: var(--iv-button-align, center);\r\n justify-content: var(--iv-button-justify, center);\r\n gap: var(--iv-button-gap, 0.5rem);\r\n box-sizing: border-box;\r\n padding: var(--iv-button-padding, 0.75rem 1rem);\r\n background: var(--iv-button-bg, transparent);\r\n color: var(--iv-button-color, inherit);\r\n border: var(--iv-button-border, none);\r\n border-radius: var(--iv-button-radius, 0);\r\n font: inherit;\r\n font-size: var(--iv-button-font-size, inherit);\r\n font-weight: var(--iv-button-font-weight, 500);\r\n line-height: var(--iv-button-line-height, 1.2);\r\n text-decoration: none;\r\n cursor: pointer;\r\n position: relative;\r\n min-width: var(--iv-button-min-width, unset);\r\n min-height: var(--iv-button-min-height, 2.5rem);\r\n box-shadow: var(--iv-button-shadow, none);\r\n transition: var(--iv-button-transition, background-color .2s ease, color .2s ease, border-color .2s ease, box-shadow .2s ease);\r\n -webkit-appearance: none;\r\n appearance: none;\r\n}\r\n\r\n.iv-button:hover:not(.disabled):not([disabled]),\r\n.iv-button:focus-visible:not(.disabled):not([disabled]) {\r\n background: var(--iv-button-hover-bg, var(--iv-button-bg, transparent));\r\n color: var(--iv-button-hover-color, var(--iv-button-color, inherit));\r\n border: var(--iv-button-hover-border, var(--iv-button-border, none));\r\n box-shadow: var(--iv-button-hover-shadow, var(--iv-button-shadow, none));\r\n outline: var(--iv-button-focus-outline, none);\r\n}\r\n\r\n.iv-button:active:not(.disabled):not([disabled]) {\r\n background: var(--iv-button-active-bg, var(--iv-button-hover-bg, var(--iv-button-bg, transparent)));\r\n color: var(--iv-button-active-color, var(--iv-button-hover-color, var(--iv-button-color, inherit)));\r\n border: var(--iv-button-active-border, var(--iv-button-hover-border, var(--iv-button-border, none)));\r\n box-shadow: var(--iv-button-active-shadow, var(--iv-button-hover-shadow, var(--iv-button-shadow, none)));\r\n}\r\n\r\n.iv-button.disabled,\r\n.iv-button[disabled] {\r\n cursor: not-allowed;\r\n opacity: var(--iv-button-disabled-opacity, 0.5);\r\n background: var(--iv-button-disabled-bg, var(--iv-button-bg, transparent));\r\n color: var(--iv-button-disabled-color, var(--iv-button-color, inherit));\r\n border: var(--iv-button-disabled-border, var(--iv-button-border, none));\r\n box-shadow: var(--iv-button-disabled-shadow, none);\r\n}\r\n\r\n.iv-button.variant-card,\r\n.iv-card-add-to-cart-btn.iv-button {\r\n --iv-button-bg: var(--iv-card-button-bg, transparent);\r\n --iv-button-border: var(--iv-card-button-border, none);\r\n --iv-button-color: var(--iv-card-button-color, inherit);\r\n --iv-button-hover-bg: var(--iv-card-button-hover-bg, var(--iv-button-bg));\r\n --iv-button-hover-border: var(--iv-card-button-hover-border, var(--iv-button-border));\r\n --iv-button-hover-color: var(--iv-card-button-hover-color, var(--iv-button-color));\r\n}\r\n\r\n.iv-button:focus-visible:not(.disabled):not([disabled]) {\r\n box-shadow: var(--iv-button-focus-ring, var(--iv-button-hover-shadow, var(--iv-button-shadow, none)));\r\n}\r\n\r\n.iv-button--sm { --iv-button-padding: var(--iv-button-sm-padding, 0.5rem 0.75rem); font-size: var(--iv-button-sm-font-size, 0.875rem); }\r\n.iv-button--lg { --iv-button-padding: var(--iv-button-lg-padding, 1rem 1.25rem); font-size: var(--iv-button-lg-font-size, 1.125rem); }\r\n\r\n.iv-button > svg, .iv-button .icon { width: var(--iv-button-icon-size, 1em); height: var(--iv-button-icon-size, 1em); flex: 0 0 auto; }\r\n\r\n@media (prefers-reduced-motion: reduce) {\r\n .iv-button { transition: none; }\r\n}","import { Component, Prop, h, Event, EventEmitter, Element } from '@stencil/core';\r\nimport { state } from '../../utils/store/store';\r\n\r\n@Component({\r\n tag: 'iv-button',\r\n styleUrl: 'iv-button.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvButton {\r\n\r\n @Prop() type: string = 'button';\r\n @Prop() classmodifier?: string;\r\n @Prop() eventname?: string;\r\n @Prop() eventdetail?: string;\r\n @Prop() buttonClick?: (e?: MouseEvent) => void;\r\n\r\n @Event() action: EventEmitter<any>;\r\n\r\n @Element() el: HTMLElement;\r\n\r\n handleClick = (e: MouseEvent) => {\r\n if(this.buttonClick) this.buttonClick(e);\r\n if(this.eventname) {\r\n const detail = this.eventdetail || undefined;\r\n this.el.dispatchEvent(new CustomEvent(this.eventname, {\r\n bubbles: true,\r\n detail,\r\n composed: true\r\n }));\r\n this.action.emit(detail);\r\n };\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n \r\n <button\r\n class={`iv-button ${state.loading ? 'disabled' : undefined} ${this.classmodifier || ''}`}\r\n type={this.type}\r\n disabled={state.loading}\r\n onClick={this.handleClick}>\r\n <slot></slot>\r\n </button>\r\n\r\n );\r\n\r\n };\r\n\r\n};",".iv-footer {\n display: grid;\n gap: 2rem;\n\n .footer-social-links { \n grid-area: social; \n }\n\n .footer-contact-links { \n grid-area: contact;\n }\n\n .footer-newsletter-signup { \n grid-area: newsletter; \n }\n\n .footer-menu { \n grid-area: menu; \n }\n\n .footer-boilerplate { \n grid-area: boilerplate; \n }\n\n .footer-payment-icons { \n grid-area: payment; \n }\n\n}","import { Component, h, Element, State, Prop } from '@stencil/core';\n\nconst BLOCK = 'iv-footer';\n\n@Component({\n tag: 'iv-footer',\n styleUrl: 'iv-footer.scss',\n shadow: false\n})\n\nexport class IvFooter {\n\n @Prop() gridtemplateareas: string;\n\n @Element() host: HTMLElement;\n \n @State() blockElements: HTMLElement[] = [];\n \n // private footerEl?: HTMLElement;\n\n // componentDidLoad() {\n // if(this.footerEl) {\n // const children = Array.from(this.footerEl.children)\n // .filter(node => node.nodeType === Node.ELEMENT_NODE && node.tagName !== 'SLOT');\n // this.blockElements = children as HTMLElement[];\n // };\n // };\n\n private get getAreas(): boolean {\n return !!this.gridtemplateareas;\n };\n\n private get test(): string {\n return this.getAreas\n ? this.gridtemplateareas.split(',').map(row => `\"${row.trim()}\"`).join(' ')\n : '';\n };\n\n render() {\n\n return (\n <footer \n class={BLOCK} \n // ref={el => (this.footerEl = el as HTMLElement)}\n style={{ gridTemplateAreas: this.test }}>\n <slot></slot>\n </footer>\n );\n };\n\n};\n\n// Commente out code is not currently used, though it may have future utilities\n// The two getters should move to global helper functions",":host {\n display: block;\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport { requestedFields, isValueEmail, isValuePhoneNumber } from '../../utils/helpers/factory';\nimport 'ionicons';\n\nconst BLOCK = 'iv-link-list';\n\n@Component({\n tag: 'iv-link-list',\n styleUrl: 'iv-link-list.scss',\n shadow: false\n})\n\nexport class IvIconList {\n\n @Prop() linktype: 'social' | 'contact' | 'text' = 'social';\n @Prop() showicons: boolean = false;\n @Prop() links: string;\n @Prop() layout: 'vertical' | 'horizontal' = 'vertical';\n\n private getSocialSource(link: string): string {\n try {\n const urlObj = new URL(link);\n const host = urlObj.hostname.replace('www.', '');\n return host.split('.')[0];\n } catch {\n return link;\n };\n };\n\n private getCustomLabel(link: string): { url: string, customLabel: string } {\n const [url, customLabel] = link.split('|');\n return { url, customLabel };\n };\n\n private constructLinkObject(): Array<{ url: string, icon?: string, label: string }> | null {\n const links = requestedFields(this.links);\n const linkObject = [];\n links?.forEach((link, _index) => {\n let url = link;\n let label = '';\n let customLabel = '';\n if(this.linktype === 'contact' && link.includes('|')) {\n const result = this.getCustomLabel(link);\n url = result.url.trim();\n customLabel = result.customLabel.trim();\n }\n if(isValueEmail(link)) link = `mailto:${link}`;\n if(isValuePhoneNumber(link)) link = `tel:${link}`;\n label = customLabel || (this.linktype === 'social' ? this.getSocialSource(url) : url);\n linkObject.push({\n url,\n label,\n icon: this.linktype === 'social' ? `logo-${this.getSocialSource(url)}` : 'call'\n });\n });\n return linkObject.length ? linkObject : null;\n };\n\n render() {\n\n return (\n\n <ul class={BLOCK + ` ${BLOCK}--${this.layout}`}>\n {this.constructLinkObject()?.map((link, index) => (\n <li class={`${BLOCK}-item`} key={index}>\n <a class={`${BLOCK}-link`} href={link.url} target=\"_blank\" rel=\"noopener noreferrer\">\n { this.showicons && <ion-icon name={link.icon}></ion-icon> }\n { link.label }\n </a>\n </li>\n ))}\n </ul>\n \n );\n \n };\n\n};",":host {\n display: block;\n}\n","import { Component, h, Prop, State, Event, EventEmitter } from '@stencil/core';\nimport { isValueEmail } from '../../utils/helpers/factory';\n\nconst BLOCK = 'iv-newsletter';\nexport interface NewsletterSuccessDetail { email: string }\nexport interface NewsletterFailDetail { reason: string; error?: string; email?: string }\n\n@Component({\n tag: 'iv-newsletter',\n styleUrl: 'iv-newsletter.scss',\n shadow: false\n})\n\nexport class IvNewsletter {\n\n @Prop() formsubmitbtntext: string = 'Subscribe';\n @Prop() formsuccessmessage?: string;\n @Prop() formfailuremessage?: string;\n @Prop() formplaceholdertext?: string;\n @Prop() formlabeltext?: string;\n @Prop() formstackbutton?: boolean;\n @Prop() formtitletag: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'span' = 'h2';\n @Prop() formtitletext?: string;\n @Prop() formdescriptiontext?: string;\n @Prop() includeloadingspinner?: boolean;\n\n @State() email: string = '';\n @State() formFeedback: string = '';\n @State() status: 'idle' | 'submitting' | 'success' | 'error' = 'idle';\n\n @Event() newsletterSuccess: EventEmitter<NewsletterSuccessDetail>;\n @Event() newsletterFail: EventEmitter<NewsletterFailDetail>;\n\n private getEffectiveSuccessMessage(): string | undefined {\n return this.formsuccessmessage || (window as any).newsletterSuccessMessage;\n };\n\n private submitHandler(event: Event) {\n event.preventDefault();\n this.status = 'submitting';\n if(!isValueEmail(this.email)) {\n this.formFeedback = 'Please enter a valid email address.';\n this.status = 'error';\n this.newsletterFail.emit({ reason: 'invalid-email'});\n return;\n }\n const effectiveSuccessMessage = this.getEffectiveSuccessMessage();\n const form = event.target as HTMLFormElement;\n const email = (form.querySelector('[name=\"contact[email]\"]') as HTMLInputElement).value;\n const formData = new FormData();\n formData.append('contact[email]', email);\n formData.append('form_type', 'customer');\n formData.append('utf8', '✓');\n fetch('/contact', {\n method: 'POST',\n body: formData\n })\n .then(response => response.text())\n .then(html => {\n if(effectiveSuccessMessage && html.includes(this.formsuccessmessage)) {\n this.status = 'success';\n this.formFeedback = effectiveSuccessMessage;\n this.newsletterSuccess.emit({ email });\n form.reset();\n } else {\n throw new Error(this.formfailuremessage || 'There was a problem. Please try again.');\n }\n })\n .catch((error) => {\n this.status = 'error';\n this.formFeedback = this.formfailuremessage || error.message;\n this.newsletterFail.emit({ reason: 'shopify-failure', error: this.formFeedback, email });\n })\n };\n\n render() {\n\n const TAG = this.formtitletag as any;\n\n return (\n\n <div class={`${BLOCK} status-${this.status} ${this.includeloadingspinner && `${BLOCK}--with-spinner`}`}>\n {(this.formtitletext || this.formdescriptiontext) && (\n <div class={`${BLOCK}-header`}>\n {this.formtitletext && <TAG class={`${BLOCK}-title`}>{this.formtitletext}</TAG>}\n {this.formdescriptiontext && <p class={`${BLOCK}-description`}>{this.formdescriptiontext}</p>}\n </div>\n )}\n <form \n class={`${BLOCK}-form`} \n method=\"post\" \n onSubmit={(event) => this.submitHandler(event)} \n accept-charset=\"UTF-8\"\n aria-busy={this.status === 'submitting'}\n aria-live=\"polite\">\n <input type=\"hidden\" name=\"form_type\" value=\"customer\"/>\n <input type=\"hidden\" name=\"utf8\" value=\"✓\"/>\n {this.formlabeltext && \n <label htmlFor=\"ContactForm-email\" class={`${BLOCK}-form-label`}>{this.formlabeltext}</label>\n }\n <div class={`${BLOCK}-form-row${this.formstackbutton ? ` ${BLOCK}-form-row--stacked` : ''}`}>\n <input \n id=\"ContactForm-email\" \n class={`${BLOCK}-form-input`} \n type=\"email\" \n name=\"contact[email]\" \n {...(this.formplaceholdertext ? { placeholder: this.formplaceholdertext } : {})}\n onInput={(event: any) => this.email = event.target.value}\n value={this.email}\n required\n aria-required=\"true\"\n aria-label={this.formlabeltext || 'Email'}\n autoComplete=\"email\"/>\n <button \n class={`${BLOCK}-form-button`}\n type=\"submit\"\n disabled={this.status === 'submitting'}\n aria-disabled={this.status === 'submitting'}>\n {this.formsubmitbtntext}\n </button>\n </div>\n </form>\n {this.includeloadingspinner && this.status === 'submitting' &&\n <iv-spinner show={true}></iv-spinner>\n }\n {this.formFeedback && (\n <div class={`${BLOCK}-form-feedback`} aria-live=\"polite\">\n <p class={`${BLOCK}-form-feedback`}>{this.formFeedback}</p>\n </div>\n )}\n </div>\n\n );\n \n };\n\n};","iv-sidebar {\r\n \r\n .iv-sidebar {\r\n position: fixed;\r\n top: 0;\r\n right: 0;\r\n left: auto;\r\n height: 100%;\r\n background-color: #fff;\r\n box-shadow: 2px 0 5px rgba(0,0,0,0.1);\r\n transform: translateX(100%);\r\n transition: transform 0.3s ease-in-out;\r\n z-index: 1001;\r\n padding: var(--iv-sidebar-padding-top, 2rem) var(--iv-sidebar-padding-right, 2rem) var(--iv-sidebar-padding-bottom, 2rem) var(--iv-sidebar-padding-left, 2rem);\r\n overflow-y: auto;\r\n max-height: 100vh;\r\n box-sizing: border-box;\r\n display: flex;\r\n flex-direction: column;\r\n width: 40%;\r\n\r\n @media (max-width: 1024px) {\r\n width: 95%;\r\n }\r\n\r\n &.close {\r\n font-size: 2.25rem;\r\n font-weight: 400;\r\n pointer-events: none;\r\n user-select: none;\r\n line-height: 1;\r\n color: inherit;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n\r\n &.open {\r\n transform: translateX(0);\r\n }\r\n\r\n }\r\n\r\n .iv-sidebar-close-button {\r\n position: absolute;\r\n top: 1rem;\r\n right: 1rem;\r\n background: none;\r\n border: none;\r\n color: #111;\r\n font-size: 2.25rem;\r\n font-weight: 400;\r\n line-height: 1;\r\n cursor: pointer;\r\n padding: 0;\r\n width: 2.5rem;\r\n height: 2.5rem;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n z-index: 1002;\r\n transition: color 0.2s;\r\n &:hover {\r\n color: #000;\r\n }\r\n &:focus {\r\n outline: none;\r\n color: #000;\r\n }\r\n }\r\n\r\n .iv-sidebar-overlay {\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n backdrop-filter: blur(8px);\r\n background-color: #0e0d0d80;\r\n opacity: 0;\r\n visibility: hidden;\r\n transition: opacity 0.3s ease-in-out, visibility 0.3s ease-in-out;\r\n z-index: 1000;\r\n\r\n &.open {\r\n opacity: 1;\r\n visibility: visible;\r\n }\r\n\r\n }\r\n\r\n\r\n [slot=\"header\"] {}\r\n\r\n [slot=\"footer\"] {}\r\n\r\n}","import { Component, Host, h, Prop, Listen } from '@stencil/core';\r\nimport { state, togglePullout } from '../../utils/store/store';\r\n\r\nconst BLOCK = 'iv-sidebar';\r\n\r\n@Component({\r\n tag: 'iv-sidebar',\r\n styleUrl: 'iv-sidebar.scss',\r\n shadow: false,\r\n})\r\n\r\nexport class IvSidebar {\r\n\r\n @Prop() closeicon: string = '×';\r\n\r\n @Listen('openPullout', { target: 'window' })\r\n handleOpenPullout(event: CustomEvent) {\r\n togglePullout(event.detail);\r\n };\r\n\r\n render() {\r\n \r\n return (\r\n <Host>\r\n <div class={`${BLOCK} ${ state.pulloutOpen ? 'open' : '' }`}>\r\n <iv-button class={`${BLOCK}-close-button`} onClick={() => togglePullout()}>\r\n <span class=\"inner-button close\">{this.closeicon}</span>\r\n </iv-button>\r\n <slot name=\"header\"></slot>\r\n {state.pulloutContent === 'wishlist' ? (\r\n <iv-wishlist-view />\r\n ) : (\r\n state.pulloutContent && <slot name={state.pulloutContent}></slot>\r\n )}\r\n <slot name=\"footer\"></slot>\r\n </div>\r\n <div class={`${BLOCK}-overlay ${state.pulloutOpen ? 'open' : ''}`} onClick={() => togglePullout()}></div>\r\n </Host>\r\n );\r\n\r\n };\r\n\r\n};",".iv-spinner {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 2.5rem;\r\n}\r\n\r\n.iv-spinner-circle, .spinner {\r\n width: 2rem;\r\n height: 2rem;\r\n border: 3px solid #e0e0e0;\r\n border-top: 3px solid #0078d4;\r\n border-radius: 50%;\r\n animation: iv-spinner-spin 0.8s linear infinite;\r\n display: inline-block;\r\n}\r\n\r\n.iv-spinner-sr {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n padding: 0;\r\n margin: -1px;\r\n overflow: hidden;\r\n clip: rect(0, 0, 0, 0);\r\n border: 0;\r\n}\r\n\r\n@keyframes iv-spinner-spin {\r\n 0% { transform: rotate(0deg); }\r\n 100% { transform: rotate(360deg); }\r\n}","import { Component, h, Prop } from '@stencil/core';\r\n\r\nconst BLOCK = 'iv-spinner';\r\n\r\n@Component({\r\n tag: 'iv-spinner',\r\n styleUrl: 'iv-spinner.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvSpinner {\r\n\r\n @Prop() show: boolean = false;\r\n\r\n render() {\r\n\r\n return this.show ? (\r\n <div class={BLOCK} role=\"status\" aria-live=\"polite\" aria-busy=\"true\">\r\n <span class={`${BLOCK}-circle`} aria-hidden=\"true\"></span>\r\n <span class={`${BLOCK}-sr`}>Loading...</span>\r\n </div>\r\n ) : null;\r\n \r\n };\r\n\r\n};",":host {\r\n display: block;\r\n}\r\n","import { Component, h } from '@stencil/core';\r\nimport { state, removeFromWishlist } from '../../utils/store/store';\r\nimport { getProductIDFromGid } from '../../utils/helpers/factory';\r\nimport { addToCart } from '../../utils/storefront_api/factory';\r\n\r\nconst BLOCK = 'iv-wishlist-view';\r\n\r\n@Component({\r\n tag: 'iv-wishlist-view',\r\n styleUrl: 'iv-wishlist-view.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvWishlistView {\r\n\r\n render() {\r\n\r\n return (\r\n \r\n <div class={BLOCK}>\r\n <ul class={`${BLOCK}-list`}>\r\n {state.wishlist.length === 0 ? (\r\n <li class={`${BLOCK}-empty`}>{state.wishlistLabels.emptyMessage}</li>\r\n ) : (\r\n state.wishlist.map((item, idx) => (\r\n <li class={`${BLOCK}-item`} key={item.id || idx}>\r\n <div class={`${BLOCK}-fields`}>\r\n {Object.entries(item).map(([key, value]) => (\r\n <div class={`${BLOCK}-field ${BLOCK}-field-${key}`}>{value}</div>\r\n ))}\r\n </div>\r\n <div class={`${BLOCK}-actions`}>\r\n <iv-button\r\n classmodifier={`${BLOCK}-remove`}\r\n onClick={() => removeFromWishlist(item.id)}>\r\n <span class=\"inner-button\" innerHTML={state.wishlistLabels.removeLabel}></span>\r\n </iv-button>\r\n <iv-button\r\n classmodifier={`${BLOCK}-add-to-cart`}\r\n onClick={() => addToCart({ id: getProductIDFromGid(item.id) })}> \r\n {/* the getProductID() above may not be needed, can't remember the format here. */}\r\n <span class=\"inner-button\" innerHTML={state.wishlistLabels.addToCartLabel}></span>\r\n </iv-button>\r\n </div>\r\n </li>\r\n ))\r\n )}\r\n </ul>\r\n </div>\r\n \r\n );\r\n\r\n };\r\n\r\n};"],"names":["getAssetPath","h","Host","BLOCK","requestedFields","index","state","isValueEmail","isValuePhoneNumber","togglePullout","removeFromWishlist","addToCart","getProductIDFromGid"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}
@@ -422,14 +422,14 @@ Icon.style = iconCss;
422
422
 
423
423
  const ivAccordionCss = ":host{display:block}";
424
424
 
425
- const BLOCK$5 = 'iv-accordion';
425
+ const BLOCK$6 = 'iv-accordion';
426
426
  const IvAccordion = class {
427
427
  constructor(hostRef) {
428
428
  index.registerInstance(this, hostRef);
429
429
  }
430
430
  labels;
431
- allowmultiple = false;
432
- startopen = false;
431
+ allowmultiple;
432
+ startopen;
433
433
  dropdownicon;
434
434
  openPanels = [];
435
435
  componentWillLoad() {
@@ -450,7 +450,7 @@ const IvAccordion = class {
450
450
  }
451
451
  ;
452
452
  render() {
453
- return (index.h("div", { key: '05a2a2cd56ffae40ed94060dedd7d3108900b3cf', class: BLOCK$5 }, factory.requestedFields(this.labels).map((label, index$1) => (index.h("div", { class: "accordion-panel", key: index$1 }, index.h("button", { class: {
453
+ return (index.h("div", { key: '9047082c09a26440770df8f12b107495dcb193cf', class: BLOCK$6 }, factory.requestedFields(this.labels).map((label, index$1) => (index.h("div", { class: "accordion-panel", key: index$1 }, index.h("button", { class: {
454
454
  'copy': true,
455
455
  'accordion-header': true,
456
456
  'open': this.openPanels.includes(index$1)
@@ -497,6 +497,43 @@ const IvButton = class {
497
497
  };
498
498
  IvButton.style = ivButtonCss;
499
499
 
500
+ const ivFooterCss = ".iv-footer{display:grid;gap:2rem}.iv-footer .footer-social-links{grid-area:social}.iv-footer .footer-contact-links{grid-area:contact}.iv-footer .footer-newsletter-signup{grid-area:newsletter}.iv-footer .footer-menu{grid-area:menu}.iv-footer .footer-boilerplate{grid-area:boilerplate}.iv-footer .footer-payment-icons{grid-area:payment}";
501
+
502
+ const BLOCK$5 = 'iv-footer';
503
+ const IvFooter = class {
504
+ constructor(hostRef) {
505
+ index.registerInstance(this, hostRef);
506
+ }
507
+ gridtemplateareas;
508
+ get host() { return index.getElement(this); }
509
+ blockElements = [];
510
+ // private footerEl?: HTMLElement;
511
+ // componentDidLoad() {
512
+ // if(this.footerEl) {
513
+ // const children = Array.from(this.footerEl.children)
514
+ // .filter(node => node.nodeType === Node.ELEMENT_NODE && node.tagName !== 'SLOT');
515
+ // this.blockElements = children as HTMLElement[];
516
+ // };
517
+ // };
518
+ get getAreas() {
519
+ return !!this.gridtemplateareas;
520
+ }
521
+ ;
522
+ get test() {
523
+ return this.getAreas
524
+ ? this.gridtemplateareas.split(',').map(row => `"${row.trim()}"`).join(' ')
525
+ : '';
526
+ }
527
+ ;
528
+ render() {
529
+ return (index.h("footer", { key: 'c71019bf0772e0fea6c9076dca811cd52920ab0b', class: BLOCK$5,
530
+ // ref={el => (this.footerEl = el as HTMLElement)}
531
+ style: { gridTemplateAreas: this.test } }, index.h("slot", { key: 'bbfacf35fb034ba6c066e5b6cae5280bcbe493ce' })));
532
+ }
533
+ ;
534
+ };
535
+ IvFooter.style = ivFooterCss;
536
+
500
537
  const ivLinkListCss = ":host{display:block}";
501
538
 
502
539
  const BLOCK$4 = 'iv-link-list';
@@ -566,23 +603,23 @@ const IvNewsletter = class {
566
603
  this.newsletterSuccess = index.createEvent(this, "newsletterSuccess");
567
604
  this.newsletterFail = index.createEvent(this, "newsletterFail");
568
605
  }
569
- formSubmitBtnText = 'Subscribe';
570
- formSuccessMessage;
571
- formFailureMessage;
572
- formPlaceholderText;
573
- formLabelText;
574
- formStackButton;
575
- formTitleTag = 'h2';
576
- formTitleText;
577
- formDescriptionText;
578
- includeLoadingSpinner;
606
+ formsubmitbtntext = 'Subscribe';
607
+ formsuccessmessage;
608
+ formfailuremessage;
609
+ formplaceholdertext;
610
+ formlabeltext;
611
+ formstackbutton;
612
+ formtitletag = 'h2';
613
+ formtitletext;
614
+ formdescriptiontext;
615
+ includeloadingspinner;
579
616
  email = '';
580
617
  formFeedback = '';
581
618
  status = 'idle';
582
619
  newsletterSuccess;
583
620
  newsletterFail;
584
621
  getEffectiveSuccessMessage() {
585
- return this.formSuccessMessage || window.newsletterSuccessMessage;
622
+ return this.formsuccessmessage || window.newsletterSuccessMessage;
586
623
  }
587
624
  ;
588
625
  submitHandler(event) {
@@ -607,27 +644,27 @@ const IvNewsletter = class {
607
644
  })
608
645
  .then(response => response.text())
609
646
  .then(html => {
610
- if (effectiveSuccessMessage && html.includes(this.formSuccessMessage)) {
647
+ if (effectiveSuccessMessage && html.includes(this.formsuccessmessage)) {
611
648
  this.status = 'success';
612
649
  this.formFeedback = effectiveSuccessMessage;
613
650
  this.newsletterSuccess.emit({ email });
614
651
  form.reset();
615
652
  }
616
653
  else {
617
- throw new Error(this.formFailureMessage || 'There was a problem. Please try again.');
654
+ throw new Error(this.formfailuremessage || 'There was a problem. Please try again.');
618
655
  }
619
656
  })
620
657
  .catch((error) => {
621
658
  this.status = 'error';
622
- this.formFeedback = this.formFailureMessage || error.message;
659
+ this.formFeedback = this.formfailuremessage || error.message;
623
660
  this.newsletterFail.emit({ reason: 'shopify-failure', error: this.formFeedback, email });
624
661
  });
625
662
  }
626
663
  ;
627
664
  render() {
628
- const TAG = this.formTitleTag;
629
- return (index.h("div", { key: 'afead480b67fc8c9bc6a4914ee7592b34b2be82d', class: `${BLOCK$3} status-${this.status} ${this.includeLoadingSpinner && `${BLOCK$3}--with-spinner`}` }, (this.formTitleText || this.formDescriptionText) && (index.h("div", { key: '177af6be94a97899745de5b4a2cfc6717082214e', class: `${BLOCK$3}-header` }, this.formTitleText && index.h(TAG, { key: '94fb25e4191d77db961277cb6a1f2b2c0c005558', class: `${BLOCK$3}-title` }, this.formTitleText), this.formDescriptionText && index.h("p", { key: 'bea621b6550b21d85ace5e3199db9eeaea250de3', class: `${BLOCK$3}-description` }, this.formDescriptionText))), index.h("form", { key: 'fde75a31c2766a62cfde6d188b06fb783742551f', class: `${BLOCK$3}-form`, method: "post", onSubmit: (event) => this.submitHandler(event), "accept-charset": "UTF-8", "aria-busy": this.status === 'submitting', "aria-live": "polite" }, index.h("input", { key: '9a0c2c0deca001af3cfa65c6021e9a6743c132c3', type: "hidden", name: "form_type", value: "customer" }), index.h("input", { key: 'b10601ba0766a987b8e92de0ec76a58c4c2b1f02', type: "hidden", name: "utf8", value: "\u2713" }), this.formLabelText &&
630
- index.h("label", { key: 'b818c7823e323c2d36157a9f1e7c6a280a34e9c3', htmlFor: "ContactForm-email", class: `${BLOCK$3}-form-label` }, this.formLabelText), index.h("div", { key: '751577f0107696a8f1cba5ba198cc95987e9cc62', class: `${BLOCK$3}-form-row${this.formStackButton ? ` ${BLOCK$3}-form-row--stacked` : ''}` }, index.h("input", { key: '93efc3edcf9e8f0a83407c9852a0fa1aca25e3e2', id: "ContactForm-email", class: `${BLOCK$3}-form-input`, type: "email", name: "contact[email]", ...(this.formPlaceholderText ? { placeholder: this.formPlaceholderText } : {}), onInput: (event) => this.email = event.target.value, value: this.email, required: true, "aria-required": "true", "aria-label": this.formLabelText || 'Email', autoComplete: "email" }), index.h("button", { key: '9b020666431f39766e6ec5d160f28f9618c61761', class: `${BLOCK$3}-form-button`, type: "submit", disabled: this.status === 'submitting', "aria-disabled": this.status === 'submitting' }, this.formSubmitBtnText))), this.includeLoadingSpinner && this.status === 'submitting' &&
665
+ const TAG = this.formtitletag;
666
+ return (index.h("div", { key: 'afead480b67fc8c9bc6a4914ee7592b34b2be82d', class: `${BLOCK$3} status-${this.status} ${this.includeloadingspinner && `${BLOCK$3}--with-spinner`}` }, (this.formtitletext || this.formdescriptiontext) && (index.h("div", { key: '177af6be94a97899745de5b4a2cfc6717082214e', class: `${BLOCK$3}-header` }, this.formtitletext && index.h(TAG, { key: '94fb25e4191d77db961277cb6a1f2b2c0c005558', class: `${BLOCK$3}-title` }, this.formtitletext), this.formdescriptiontext && index.h("p", { key: 'bea621b6550b21d85ace5e3199db9eeaea250de3', class: `${BLOCK$3}-description` }, this.formdescriptiontext))), index.h("form", { key: 'fde75a31c2766a62cfde6d188b06fb783742551f', class: `${BLOCK$3}-form`, method: "post", onSubmit: (event) => this.submitHandler(event), "accept-charset": "UTF-8", "aria-busy": this.status === 'submitting', "aria-live": "polite" }, index.h("input", { key: '9a0c2c0deca001af3cfa65c6021e9a6743c132c3', type: "hidden", name: "form_type", value: "customer" }), index.h("input", { key: 'b10601ba0766a987b8e92de0ec76a58c4c2b1f02', type: "hidden", name: "utf8", value: "\u2713" }), this.formlabeltext &&
667
+ index.h("label", { key: 'b818c7823e323c2d36157a9f1e7c6a280a34e9c3', htmlFor: "ContactForm-email", class: `${BLOCK$3}-form-label` }, this.formlabeltext), index.h("div", { key: '751577f0107696a8f1cba5ba198cc95987e9cc62', class: `${BLOCK$3}-form-row${this.formstackbutton ? ` ${BLOCK$3}-form-row--stacked` : ''}` }, index.h("input", { key: '93efc3edcf9e8f0a83407c9852a0fa1aca25e3e2', id: "ContactForm-email", class: `${BLOCK$3}-form-input`, type: "email", name: "contact[email]", ...(this.formplaceholdertext ? { placeholder: this.formplaceholdertext } : {}), onInput: (event) => this.email = event.target.value, value: this.email, required: true, "aria-required": "true", "aria-label": this.formlabeltext || 'Email', autoComplete: "email" }), index.h("button", { key: '9b020666431f39766e6ec5d160f28f9618c61761', class: `${BLOCK$3}-form-button`, type: "submit", disabled: this.status === 'submitting', "aria-disabled": this.status === 'submitting' }, this.formsubmitbtntext))), this.includeloadingspinner && this.status === 'submitting' &&
631
668
  index.h("iv-spinner", { key: '43d79cb04b6fab3d280b13c11d102698f9ec008b', show: true }), this.formFeedback && (index.h("div", { key: 'a71af40ada9c72da2fed3142ace6ed29a0fd6d7b', class: `${BLOCK$3}-form-feedback`, "aria-live": "polite" }, index.h("p", { key: '4add76f7f45a806949c0806f1cc09ab467d911ab', class: `${BLOCK$3}-form-feedback` }, this.formFeedback)))));
632
669
  }
633
670
  ;
@@ -685,9 +722,10 @@ IvWishlistView.style = ivWishlistViewCss;
685
722
  exports.ion_icon = Icon;
686
723
  exports.iv_accordion = IvAccordion;
687
724
  exports.iv_button = IvButton;
725
+ exports.iv_footer = IvFooter;
688
726
  exports.iv_link_list = IvIconList;
689
727
  exports.iv_newsletter = IvNewsletter;
690
728
  exports.iv_sidebar = IvSidebar;
691
729
  exports.iv_spinner = IvSpinner;
692
730
  exports.iv_wishlist_view = IvWishlistView;
693
- //# sourceMappingURL=ion-icon.iv-accordion.iv-button.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.cjs.js.map
731
+ //# sourceMappingURL=ion-icon.iv-accordion.iv-button.iv-footer.iv-link-list.iv-newsletter.iv-sidebar.iv-spinner.iv-wishlist-view.entry.cjs.js.map
@@ -6,7 +6,7 @@ var appGlobals = require('./app-globals-4PuSYr8V.js');
6
6
  const defineCustomElements = async (win, options) => {
7
7
  if (typeof window === 'undefined') return undefined;
8
8
  await appGlobals.globalScripts();
9
- return index.bootstrapLazy([["iv-dynamic-products.cjs",[[256,"iv-dynamic-products",{"type":[1],"limit":[2],"reversed":[4],"componenttitle":[1],"titletag":[1],"collectionhandle":[1],"carousel":[4],"requestedfields":[1],"calltoaction":[4],"buttontext":[1],"addtocarttext":[1],"emptystring":[1],"gridlayout":[1],"cachettl":[2],"stale":[4],"products":[32],"errorMsg":[32],"staleData":[32]},null,{"type":["handlePropChange"],"limit":["handlePropChange"],"collectionhandle":["handlePropChange"],"requestedfields":["handlePropChange"]}]]],["iv-suggest.cjs",[[256,"iv-suggest",{"topqueries":[1],"collections":[1],"products":[1],"banner":[1],"bannerurl":[1],"bannertitle":[1],"bannertitletag":[1],"bannerbuttontext":[1],"topquerytitle":[1],"productstitle":[1],"collectionstitle":[1],"gridlayout":[1],"requestfields":[1]}]]],["iv-dynamic-products-carousel.cjs",[[256,"iv-dynamic-products-carousel",{"type":[1],"limit":[2],"reversed":[4],"componenttitle":[1],"titletag":[1],"collectionhandle":[1],"requestedfields":[1],"calltoaction":[4],"buttontext":[1],"addtocarttext":[1],"emptystring":[1],"cachettl":[2],"stale":[4],"excluse":[1],"products":[32],"errorMsg":[32],"staleData":[32],"page":[32]},null,{"type":["handlePropChange"],"limit":["handlePropChange"],"collectionhandle":["handlePropChange"],"requestedfields":["handlePropChange"]}]]],["iv-predictive-search.cjs",[[256,"iv-predictive-search",{"searchlabel":[1],"labelposition":[1],"action":[1],"method":[1],"placeholder":[1],"minchars":[2],"debounce":[2],"resultslimit":[2],"showspinner":[4],"noresultstext":[1],"requestedfields":[1],"requestedresources":[1],"showallbuttontext":[1],"querybuttontext":[1],"clearbutton":[1],"expandable":[4],"tablayout":[1],"gridlayout":[1],"searchTerm":[32],"searchReturnData":[32],"noResults":[32]}]]],["iv-recently-viewed.cjs",[[256,"iv-recently-viewed",{"componenttitle":[1],"titletag":[1],"numbertoshow":[2],"noviewhistory":[1],"requestedfields":[1],"items":[32]}]]],["iv-modal.cjs",[[257,"iv-modal"]]],["iv-toast-container.cjs",[[256,"iv-toast-container",{"_bump":[32]}]]],["iv-wishlist.cjs",[[256,"iv-wishlist",{"buttonaddvalue":[1],"buttonremovevalue":[1],"wishlistempty":[1],"buttonaddtocartvalue":[1],"viewwishlistvalue":[1],"productdata":[1],"usefields":[1],"previewtype":[1]}]]],["iv-carousel.cjs",[[257,"iv-carousel"]]],["iv-filters.cjs",[[256,"iv-filters"]]],["iv-footer.cjs",[[260,"iv-footer",{"blockElements":[32]}]]],["iv-product-upsell.cjs",[[257,"iv-product-upsell"]]],["sw-in-grid-content.cjs",[[260,"sw-in-grid-content"]]],["sw-size-guide.cjs",[[260,"sw-size-guide",{"sizeUnits":[32]}]]],["iv-banner.cjs",[[260,"iv-banner",{"classmodifier":[1],"bannerurl":[1],"bannerbuttontext":[1],"bannertype":[1]}]]],["iv-tabs.cjs",[[260,"iv-tabs",{"labels":[16],"classModifier":[1,"class-modifier"],"tabLayout":[1,"tab-layout"],"activeTab":[32]}]]],["iv-toast.cjs",[[256,"iv-toast",{"message":[1],"toastId":[2,"toast-id"],"duration":[2],"type":[1]}]]],["ion-icon_8.cjs",[[260,"iv-sidebar",{"closeicon":[1]},[[8,"openPullout","handleOpenPullout"]]],[260,"iv-accordion",{"labels":[1],"allowmultiple":[4],"startopen":[4],"dropdownicon":[1],"openPanels":[32]}],[256,"iv-link-list",{"linktype":[1],"showicons":[4],"links":[1],"layout":[1]}],[256,"iv-newsletter",{"formSubmitBtnText":[1,"form-submit-btn-text"],"formSuccessMessage":[1,"form-success-message"],"formFailureMessage":[1,"form-failure-message"],"formPlaceholderText":[1,"form-placeholder-text"],"formLabelText":[1,"form-label-text"],"formStackButton":[4,"form-stack-button"],"formTitleTag":[1,"form-title-tag"],"formTitleText":[1,"form-title-text"],"formDescriptionText":[1,"form-description-text"],"includeLoadingSpinner":[4,"include-loading-spinner"],"email":[32],"formFeedback":[32],"status":[32]}],[256,"iv-wishlist-view"],[257,"ion-icon",{"mode":[1025],"color":[1],"ios":[1],"md":[1],"flipRtl":[4,"flip-rtl"],"name":[513],"src":[1],"icon":[8],"size":[1],"lazy":[4],"sanitize":[4],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIcon"],"src":["loadIcon"],"icon":["loadIcon"],"ios":["loadIcon"],"md":["loadIcon"]}],[256,"iv-spinner",{"show":[4]}],[260,"iv-button",{"type":[1],"classmodifier":[1],"eventname":[1],"eventdetail":[1],"buttonClick":[16]}]]],["iv-card_3.cjs",[[256,"iv-card",{"data":[16],"fields":[1],"cardtype":[1],"classmodifier":[1],"buttontext":[1],"calltoaction":[4],"addtocarttext":[1]}],[260,"iv-layout",{"sectionId":[1,"section-id"],"gridTemplateAreas":[1,"grid-template-areas"],"gap":[1],"verticalAlign":[1,"vertical-align"],"horizontalAlign":[1,"horizontal-align"],"wrapperTag":[1,"wrapper-tag"],"classModifier":[1,"class-modifier"]}],[260,"iv-link",{"classmodifier":[1],"linktype":[1],"linkhref":[1],"linktarget":[1],"linkrel":[1],"linkariaLabel":[1,"linkaria-label"]}]]]], options);
9
+ return index.bootstrapLazy([["iv-dynamic-products.cjs",[[256,"iv-dynamic-products",{"type":[1],"limit":[2],"reversed":[4],"componenttitle":[1],"titletag":[1],"collectionhandle":[1],"carousel":[4],"requestedfields":[1],"calltoaction":[4],"buttontext":[1],"addtocarttext":[1],"emptystring":[1],"gridlayout":[1],"cachettl":[2],"stale":[4],"products":[32],"errorMsg":[32],"staleData":[32]},null,{"type":["handlePropChange"],"limit":["handlePropChange"],"collectionhandle":["handlePropChange"],"requestedfields":["handlePropChange"]}]]],["iv-suggest.cjs",[[256,"iv-suggest",{"topqueries":[1],"collections":[1],"products":[1],"banner":[1],"bannerurl":[1],"bannertitle":[1],"bannertitletag":[1],"bannerbuttontext":[1],"topquerytitle":[1],"productstitle":[1],"collectionstitle":[1],"gridlayout":[1],"requestfields":[1]}]]],["iv-dynamic-products-carousel.cjs",[[256,"iv-dynamic-products-carousel",{"type":[1],"limit":[2],"reversed":[4],"componenttitle":[1],"titletag":[1],"collectionhandle":[1],"requestedfields":[1],"calltoaction":[4],"buttontext":[1],"addtocarttext":[1],"emptystring":[1],"cachettl":[2],"stale":[4],"excluse":[1],"products":[32],"errorMsg":[32],"staleData":[32],"page":[32]},null,{"type":["handlePropChange"],"limit":["handlePropChange"],"collectionhandle":["handlePropChange"],"requestedfields":["handlePropChange"]}]]],["iv-predictive-search.cjs",[[256,"iv-predictive-search",{"searchlabel":[1],"labelposition":[1],"action":[1],"method":[1],"placeholder":[1],"minchars":[2],"debounce":[2],"resultslimit":[2],"showspinner":[4],"noresultstext":[1],"requestedfields":[1],"requestedresources":[1],"showallbuttontext":[1],"querybuttontext":[1],"clearbutton":[1],"expandable":[4],"tablayout":[1],"gridlayout":[1],"searchTerm":[32],"searchReturnData":[32],"noResults":[32]}]]],["iv-recently-viewed.cjs",[[256,"iv-recently-viewed",{"componenttitle":[1],"titletag":[1],"numbertoshow":[2],"noviewhistory":[1],"requestedfields":[1],"items":[32]}]]],["iv-modal.cjs",[[257,"iv-modal"]]],["iv-toast-container.cjs",[[256,"iv-toast-container",{"_bump":[32]}]]],["iv-wishlist.cjs",[[256,"iv-wishlist",{"buttonaddvalue":[1],"buttonremovevalue":[1],"wishlistempty":[1],"buttonaddtocartvalue":[1],"viewwishlistvalue":[1],"productdata":[1],"usefields":[1],"previewtype":[1]}]]],["iv-carousel.cjs",[[257,"iv-carousel"]]],["iv-filters.cjs",[[256,"iv-filters"]]],["iv-product-upsell.cjs",[[257,"iv-product-upsell"]]],["sw-in-grid-content.cjs",[[260,"sw-in-grid-content"]]],["sw-size-guide.cjs",[[260,"sw-size-guide",{"sizeUnits":[32]}]]],["iv-banner.cjs",[[260,"iv-banner",{"classmodifier":[1],"bannerurl":[1],"bannerbuttontext":[1],"bannertype":[1]}]]],["iv-tabs.cjs",[[260,"iv-tabs",{"labels":[16],"classModifier":[1,"class-modifier"],"tabLayout":[1,"tab-layout"],"activeTab":[32]}]]],["iv-toast.cjs",[[256,"iv-toast",{"message":[1],"toastId":[2,"toast-id"],"duration":[2],"type":[1]}]]],["ion-icon_9.cjs",[[260,"iv-sidebar",{"closeicon":[1]},[[8,"openPullout","handleOpenPullout"]]],[260,"iv-accordion",{"labels":[1],"allowmultiple":[4],"startopen":[4],"dropdownicon":[1],"openPanels":[32]}],[256,"iv-link-list",{"linktype":[1],"showicons":[4],"links":[1],"layout":[1]}],[256,"iv-newsletter",{"formsubmitbtntext":[1],"formsuccessmessage":[1],"formfailuremessage":[1],"formplaceholdertext":[1],"formlabeltext":[1],"formstackbutton":[4],"formtitletag":[1],"formtitletext":[1],"formdescriptiontext":[1],"includeloadingspinner":[4],"email":[32],"formFeedback":[32],"status":[32]}],[260,"iv-footer",{"gridtemplateareas":[1],"blockElements":[32]}],[256,"iv-wishlist-view"],[257,"ion-icon",{"mode":[1025],"color":[1],"ios":[1],"md":[1],"flipRtl":[4,"flip-rtl"],"name":[513],"src":[1],"icon":[8],"size":[1],"lazy":[4],"sanitize":[4],"svgContent":[32],"isVisible":[32]},null,{"name":["loadIcon"],"src":["loadIcon"],"icon":["loadIcon"],"ios":["loadIcon"],"md":["loadIcon"]}],[256,"iv-spinner",{"show":[4]}],[260,"iv-button",{"type":[1],"classmodifier":[1],"eventname":[1],"eventdetail":[1],"buttonClick":[16]}]]],["iv-card_3.cjs",[[256,"iv-card",{"data":[16],"fields":[1],"cardtype":[1],"classmodifier":[1],"buttontext":[1],"calltoaction":[4],"addtocarttext":[1]}],[260,"iv-layout",{"sectionId":[1,"section-id"],"gridTemplateAreas":[1,"grid-template-areas"],"gap":[1],"verticalAlign":[1,"vertical-align"],"horizontalAlign":[1,"horizontal-align"],"wrapperTag":[1,"wrapper-tag"],"classModifier":[1,"class-modifier"]}],[260,"iv-link",{"classmodifier":[1],"linktype":[1],"linkhref":[1],"linktarget":[1],"linkrel":[1],"linkariaLabel":[1,"linkaria-label"]}]]]], options);
10
10
  };
11
11
 
12
12
  exports.setNonce = index.setNonce;
@@ -4,8 +4,8 @@ import "ionicons";
4
4
  const BLOCK = 'iv-accordion';
5
5
  export class IvAccordion {
6
6
  labels;
7
- allowmultiple = false;
8
- startopen = false;
7
+ allowmultiple;
8
+ startopen;
9
9
  dropdownicon;
10
10
  openPanels = [];
11
11
  componentWillLoad() {
@@ -27,7 +27,7 @@ export class IvAccordion {
27
27
  }
28
28
  ;
29
29
  render() {
30
- return (h("div", { key: '05a2a2cd56ffae40ed94060dedd7d3108900b3cf', class: BLOCK }, requestedFields(this.labels).map((label, index) => (h("div", { class: "accordion-panel", key: index }, h("button", { class: {
30
+ return (h("div", { key: '9047082c09a26440770df8f12b107495dcb193cf', class: BLOCK }, requestedFields(this.labels).map((label, index) => (h("div", { class: "accordion-panel", key: index }, h("button", { class: {
31
31
  'copy': true,
32
32
  'accordion-header': true,
33
33
  'open': this.openPanels.includes(index)
@@ -78,7 +78,7 @@ export class IvAccordion {
78
78
  "references": {}
79
79
  },
80
80
  "required": false,
81
- "optional": false,
81
+ "optional": true,
82
82
  "docs": {
83
83
  "tags": [],
84
84
  "text": ""
@@ -86,8 +86,7 @@ export class IvAccordion {
86
86
  "getter": false,
87
87
  "setter": false,
88
88
  "reflect": false,
89
- "attribute": "allowmultiple",
90
- "defaultValue": "false"
89
+ "attribute": "allowmultiple"
91
90
  },
92
91
  "startopen": {
93
92
  "type": "boolean",
@@ -98,7 +97,7 @@ export class IvAccordion {
98
97
  "references": {}
99
98
  },
100
99
  "required": false,
101
- "optional": false,
100
+ "optional": true,
102
101
  "docs": {
103
102
  "tags": [],
104
103
  "text": ""
@@ -106,8 +105,7 @@ export class IvAccordion {
106
105
  "getter": false,
107
106
  "setter": false,
108
107
  "reflect": false,
109
- "attribute": "startopen",
110
- "defaultValue": "false"
108
+ "attribute": "startopen"
111
109
  },
112
110
  "dropdownicon": {
113
111
  "type": "string",
@@ -1 +1 @@
1
- {"version":3,"file":"iv-accordion.js","sourceRoot":"","sources":["../../../src/components/iv-accordion/iv-accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,UAAU,CAAC;AAElB,MAAM,KAAK,GAAG,cAAc,CAAC;AAQ7B,MAAM,OAAO,WAAW;IAEd,MAAM,CAAS;IACf,aAAa,GAAY,KAAK,CAAC;IAC/B,SAAS,GAAY,KAAK,CAAC;IAC3B,YAAY,CAA0C;IAErD,UAAU,GAAa,EAAE,CAAC;IAEnC,iBAAiB;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAAA,CAAC;IAEM,WAAW,CAAC,KAAa;QAC/B,IAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC;gBAC1C,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;QAAA,CAAC;IACJ,CAAC;IAAA,CAAC;IAEF,MAAM;QAEJ,OAAO,CAEL,4DAAK,KAAK,EAAE,KAAK,IACd,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAClD,WAAK,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAE,KAAK;YACrC,cACE,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;oBACZ,kBAAkB,EAAE,IAAI;oBACxB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACxC,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,mBACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAC/B,iBAAiB,KAAK,EAAE,EACvC,EAAE,EAAE,gBAAgB,KAAK,EAAE,EAC3B,IAAI,EAAC,QAAQ;gBACV,KAAK;gBACL,IAAI,CAAC,YAAY,IAAI,gBAAU,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,YAAY,GAAa,CACtF;YACT,WACE,EAAE,EAAE,iBAAiB,KAAK,EAAE,EAC5B,KAAK,EAAE;oBACL,mBAAmB,EAAE,IAAI;oBACzB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACxC,EACD,IAAI,EAAC,QAAQ,qBACI,gBAAgB,KAAK,EAAE,EACxC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxC,YAAM,IAAI,EAAE,SAAS,KAAK,EAAE,GAAS,CACjC,CACF,CACP,CAAC,CACE,CAEP,CAAC;IAEJ,CAAC;IAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEH;AAAA,CAAC","sourcesContent":["import { Component, h, Prop, State } from '@stencil/core';\r\nimport { requestedFields } from '../../utils/helpers/factory';\r\nimport 'ionicons';\r\n\r\nconst BLOCK = 'iv-accordion';\r\n\r\n@Component({\r\n tag: 'iv-accordion',\r\n styleUrl: 'iv-accordion.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvAccordion {\r\n\r\n @Prop() labels: string;\r\n @Prop() allowmultiple: boolean = false;\r\n @Prop() startopen: boolean = false;\r\n @Prop() dropdownicon?: 'chevron-down-outline' | 'add-outline';\r\n\r\n @State() openPanels: number[] = [];\r\n\r\n componentWillLoad() {\r\n this.openPanels = this.startopen ? [0] : [];\r\n };\r\n\r\n private togglePanel(index: number) {\r\n if(this.allowmultiple) {\r\n this.openPanels = this.openPanels.includes(index)\r\n ? this.openPanels.filter(i => i !== index)\r\n : [...this.openPanels, index];\r\n } else {\r\n this.openPanels = this.openPanels.includes(index)\r\n ? []\r\n : [index];\r\n };\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n\r\n <div class={BLOCK}>\r\n {requestedFields(this.labels).map((label, index) => (\r\n <div class=\"accordion-panel\" key={index}>\r\n <button\r\n class={{\r\n 'copy': true,\r\n 'accordion-header': true,\r\n 'open': this.openPanels.includes(index)\r\n }}\r\n onClick={() => this.togglePanel(index)}\r\n aria-expanded={this.openPanels.includes(index)}\r\n aria-controls={`panel-content-${index}`}\r\n id={`panel-header-${index}`}\r\n type=\"button\">\r\n {label}\r\n {this.dropdownicon && <ion-icon class=\"accordion-icon\" name={this.dropdownicon}></ion-icon>}\r\n </button>\r\n <div\r\n id={`panel-content-${index}`}\r\n class={{\r\n 'accordion-content': true,\r\n 'open': this.openPanels.includes(index)\r\n }}\r\n role=\"region\"\r\n aria-labelledby={`panel-header-${index}`}\r\n hidden={!this.openPanels.includes(index)}>\r\n <slot name={`panel-${index}`}></slot>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n );\r\n\r\n };\r\n\r\n};"]}
1
+ {"version":3,"file":"iv-accordion.js","sourceRoot":"","sources":["../../../src/components/iv-accordion/iv-accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,UAAU,CAAC;AAElB,MAAM,KAAK,GAAG,cAAc,CAAC;AAQ7B,MAAM,OAAO,WAAW;IAEd,MAAM,CAAS;IACf,aAAa,CAAW;IACxB,SAAS,CAAW;IACpB,YAAY,CAA0C;IAErD,UAAU,GAAa,EAAE,CAAC;IAEnC,iBAAiB;QACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9C,CAAC;IAAA,CAAC;IAEM,WAAW,CAAC,KAAa;QAC/B,IAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/C,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC;gBAC1C,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC/C,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACd,CAAC;QAAA,CAAC;IACJ,CAAC;IAAA,CAAC;IAEF,MAAM;QAEJ,OAAO,CAEL,4DAAK,KAAK,EAAE,KAAK,IACd,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAClD,WAAK,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAE,KAAK;YACrC,cACE,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;oBACZ,kBAAkB,EAAE,IAAI;oBACxB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACxC,EACD,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,mBACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAC/B,iBAAiB,KAAK,EAAE,EACvC,EAAE,EAAE,gBAAgB,KAAK,EAAE,EAC3B,IAAI,EAAC,QAAQ;gBACV,KAAK;gBACL,IAAI,CAAC,YAAY,IAAI,gBAAU,KAAK,EAAC,gBAAgB,EAAC,IAAI,EAAE,IAAI,CAAC,YAAY,GAAa,CACtF;YACT,WACE,EAAE,EAAE,iBAAiB,KAAK,EAAE,EAC5B,KAAK,EAAE;oBACL,mBAAmB,EAAE,IAAI;oBACzB,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;iBACxC,EACD,IAAI,EAAC,QAAQ,qBACI,gBAAgB,KAAK,EAAE,EACxC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxC,YAAM,IAAI,EAAE,SAAS,KAAK,EAAE,GAAS,CACjC,CACF,CACP,CAAC,CACE,CAEP,CAAC;IAEJ,CAAC;IAAA,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAEH;AAAA,CAAC","sourcesContent":["import { Component, h, Prop, State } from '@stencil/core';\r\nimport { requestedFields } from '../../utils/helpers/factory';\r\nimport 'ionicons';\r\n\r\nconst BLOCK = 'iv-accordion';\r\n\r\n@Component({\r\n tag: 'iv-accordion',\r\n styleUrl: 'iv-accordion.scss',\r\n shadow: false\r\n})\r\n\r\nexport class IvAccordion {\r\n\r\n @Prop() labels: string;\r\n @Prop() allowmultiple?: boolean;\r\n @Prop() startopen?: boolean;\r\n @Prop() dropdownicon?: 'chevron-down-outline' | 'add-outline';\r\n\r\n @State() openPanels: number[] = [];\r\n\r\n componentWillLoad() {\r\n this.openPanels = this.startopen ? [0] : [];\r\n };\r\n\r\n private togglePanel(index: number) {\r\n if(this.allowmultiple) {\r\n this.openPanels = this.openPanels.includes(index)\r\n ? this.openPanels.filter(i => i !== index)\r\n : [...this.openPanels, index];\r\n } else {\r\n this.openPanels = this.openPanels.includes(index)\r\n ? []\r\n : [index];\r\n };\r\n };\r\n\r\n render() {\r\n\r\n return (\r\n\r\n <div class={BLOCK}>\r\n {requestedFields(this.labels).map((label, index) => (\r\n <div class=\"accordion-panel\" key={index}>\r\n <button\r\n class={{\r\n 'copy': true,\r\n 'accordion-header': true,\r\n 'open': this.openPanels.includes(index)\r\n }}\r\n onClick={() => this.togglePanel(index)}\r\n aria-expanded={this.openPanels.includes(index)}\r\n aria-controls={`panel-content-${index}`}\r\n id={`panel-header-${index}`}\r\n type=\"button\">\r\n {label}\r\n {this.dropdownicon && <ion-icon class=\"accordion-icon\" name={this.dropdownicon}></ion-icon>}\r\n </button>\r\n <div\r\n id={`panel-content-${index}`}\r\n class={{\r\n 'accordion-content': true,\r\n 'open': this.openPanels.includes(index)\r\n }}\r\n role=\"region\"\r\n aria-labelledby={`panel-header-${index}`}\r\n hidden={!this.openPanels.includes(index)}>\r\n <slot name={`panel-${index}`}></slot>\r\n </div>\r\n </div>\r\n ))}\r\n </div>\r\n\r\n );\r\n\r\n };\r\n\r\n};"]}
@@ -1,3 +1,22 @@
1
- :host {
2
- display: block;
1
+ .iv-footer {
2
+ display: grid;
3
+ gap: 2rem;
4
+ }
5
+ .iv-footer .footer-social-links {
6
+ grid-area: social;
7
+ }
8
+ .iv-footer .footer-contact-links {
9
+ grid-area: contact;
10
+ }
11
+ .iv-footer .footer-newsletter-signup {
12
+ grid-area: newsletter;
13
+ }
14
+ .iv-footer .footer-menu {
15
+ grid-area: menu;
16
+ }
17
+ .iv-footer .footer-boilerplate {
18
+ grid-area: boilerplate;
19
+ }
20
+ .iv-footer .footer-payment-icons {
21
+ grid-area: payment;
3
22
  }