@occluze/tether 0.7.1 → 0.8.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.
Files changed (61) hide show
  1. package/README.md +52 -110
  2. package/dist/esm/astro.js +1 -1
  3. package/dist/esm/chunks/{account-CXMA5RPZ.js → account-5X563BON.js} +1 -1
  4. package/dist/esm/chunks/{account-pages-IZO7FEOZ.js → account-pages-XR6QZ3DX.js} +1 -1
  5. package/dist/esm/chunks/analytics-JSFHDBU3.js +1 -0
  6. package/dist/esm/chunks/{chunk-BBVUVPMO.js → chunk-255K6OZ7.js} +1 -1
  7. package/dist/esm/chunks/chunk-3OEIEDTK.js +1 -0
  8. package/dist/esm/chunks/chunk-55OHYO66.js +1 -0
  9. package/dist/esm/chunks/chunk-A3GXCQJ4.js +1 -0
  10. package/dist/esm/chunks/chunk-EW3GKRT4.js +1 -0
  11. package/dist/esm/chunks/{chunk-N3V45JPS.js → chunk-FM7ZLLVP.js} +1 -1
  12. package/dist/esm/chunks/chunk-GXCCTPDF.js +1 -0
  13. package/dist/esm/chunks/{chunk-6TFMLT4A.js → chunk-J7GYROV4.js} +1 -1
  14. package/dist/esm/chunks/{chunk-WT7RGGJU.js → chunk-KNJB72OO.js} +1 -1
  15. package/dist/esm/chunks/chunk-KVPLRK6Y.js +1 -0
  16. package/dist/esm/chunks/chunk-O4G2PAQC.js +1 -0
  17. package/dist/esm/chunks/chunk-WNFEYPHV.js +1 -0
  18. package/dist/esm/chunks/{chunk-4HD4J5JC.js → chunk-WXF4L42L.js} +1 -1
  19. package/dist/esm/chunks/{diagnose-XCEBQKBO.js → diagnose-XQQTDHLQ.js} +1 -1
  20. package/dist/esm/chunks/extras-6WLNUEGD.js +1 -0
  21. package/dist/esm/chunks/{markets-ui-M4IQ62CT.js → markets-ui-OAJW4PFU.js} +1 -1
  22. package/dist/esm/chunks/search-LUECIYJR.js +1 -0
  23. package/dist/esm/index.js +1 -1
  24. package/dist/esm/server.js +2 -2
  25. package/dist/tether.diagnose.js +2 -2
  26. package/dist/tether.diagnose.min.js +2 -2
  27. package/dist/tether.extras.js +33 -22
  28. package/dist/tether.extras.min.js +1 -1
  29. package/dist/tether.js +210 -196
  30. package/dist/tether.markets.js +13 -2
  31. package/dist/tether.markets.min.js +1 -1
  32. package/dist/tether.min.js +3 -3
  33. package/dist/tether.min.js.map +4 -4
  34. package/dist/types/src/account/page-answers.d.ts +3 -1
  35. package/dist/types/src/analytics.d.ts +3 -1
  36. package/dist/types/src/cart/mutations.d.ts +2 -2
  37. package/dist/types/src/cart/store.d.ts +8 -2
  38. package/dist/types/src/cart.d.ts +1 -0
  39. package/dist/types/src/client.d.ts +21 -11
  40. package/dist/types/src/controls/navigation.d.ts +3 -1
  41. package/dist/types/src/dom.d.ts +3 -1
  42. package/dist/types/src/index.d.ts +2 -2
  43. package/dist/types/src/markets.d.ts +9 -2
  44. package/dist/types/src/markup.d.ts +7 -5
  45. package/dist/types/src/presets/barba.d.ts +3 -1
  46. package/dist/types/src/product-state.d.ts +3 -1
  47. package/dist/types/src/server.d.ts +4 -4
  48. package/dist/types/src/store-html.d.ts +4 -4
  49. package/dist/types/src/uri.d.ts +6 -0
  50. package/package.json +57 -5
  51. package/dist/esm/chunks/analytics-PG5FPRDN.js +0 -1
  52. package/dist/esm/chunks/chunk-E5YO6274.js +0 -1
  53. package/dist/esm/chunks/chunk-EW5SYO6L.js +0 -1
  54. package/dist/esm/chunks/chunk-HJY2JSNB.js +0 -1
  55. package/dist/esm/chunks/chunk-MQYB6BH4.js +0 -1
  56. package/dist/esm/chunks/chunk-RPMBCAGS.js +0 -1
  57. package/dist/esm/chunks/chunk-VFNHIGCS.js +0 -1
  58. package/dist/esm/chunks/chunk-YN6LEBEN.js +0 -1
  59. package/dist/esm/chunks/chunk-Z6HS3H7K.js +0 -1
  60. package/dist/esm/chunks/extras-4HU3VSBQ.js +0 -1
  61. package/dist/esm/chunks/search-A5DS2IOS.js +0 -1
@@ -1 +0,0 @@
1
- import{c as b}from"./chunk-EW5SYO6L.js";import"./chunk-RPMBCAGS.js";import{a as S}from"./chunk-YN6LEBEN.js";import"./chunk-BBVUVPMO.js";import"./chunk-VFNHIGCS.js";import"./chunk-Z6HS3H7K.js";import{e as p}from"./chunk-HJY2JSNB.js";import"./chunk-6TFMLT4A.js";import{O as w,P as k,n as s,o as d,p as m,q as y,u as h}from"./chunk-MQYB6BH4.js";import{d as f,r as u,y as g,z as l}from"./chunk-E5YO6274.js";function M(t,r){let e=k(w(t,"line-attributes"));return r?[{key:"_group",value:r},...e]:e}async function K(t){let r=t.closest(s("group"));if(!r)return null;let e=d(r,"group"),n=M(r,e),o=y(r,s("product")).flatMap(i=>{let a=S.get(i);if(!a?.variant?.availableForSale||a.quantity<=0)return[];let c=a.getLine();return c?[{...c,attributes:[...c.attributes??[],...n]}]:[]});if(!o.length)return g("group-add: nothing selected"),null;try{let i=await p.add(o);return h("group-added",{group:e,lines:o},r),i}catch(i){return l(i,"group add"),null}}function x(t){let r;try{r=JSON.parse(t)}catch{return null}if(!f(r))return null;let{country:e,language:n,locale:o}=r;return typeof e!="string"||!e?null:{country:e,language:typeof n=="string"?n:null,locale:typeof o=="string"?o:void 0}}function L(t){if(t.key===u.storageKey||t.key===`${u.storageKey}:seen`){p.init().catch(n=>{l(n,"cart from another tab")});return}if(t.key!==`${u.prefix}:market:${u.domain}`||!t.newValue)return;let r=x(t.newValue);if(!r)return;let e={language:r.language,locale:r.locale,remember:!1};b(r.country,e).catch(n=>{l(n,"market from another tab")})}var v=new WeakMap,E=t=>t.split("/").pop()??t;function U(t){try{window.history.replaceState(window.history.state,"",t)}catch{}}function R(t,{variant:r,sellingPlanId:e}){let n=`${r.id}|${e??""}`,o=v.get(t);if(v.set(t,n),!o||o===n)return;let i=u.variantUrl&&document.querySelector(s("product"))===t;if(!m(t,"variant-url")&&!i)return;let a=new URL(window.location.href);a.searchParams.set("variant",E(r.id)),e?a.searchParams.set("selling_plan",E(e)):a.searchParams.delete("selling_plan"),U(a)}export{K as addGroup,L as onStorage,R as writeVariantUrl};
@@ -1 +0,0 @@
1
- import{h as M}from"./chunk-4HD4J5JC.js";import"./chunk-YN6LEBEN.js";import"./chunk-BBVUVPMO.js";import"./chunk-VFNHIGCS.js";import"./chunk-HJY2JSNB.js";import"./chunk-6TFMLT4A.js";import{B as x,D as C,G as q,I as d,c as S,d as E,i as T,m as A,n as o,o as m,q as h,u as I,x as L,z as w}from"./chunk-MQYB6BH4.js";import{b as a,r as u,x as b,z as y}from"./chunk-E5YO6274.js";var N=E({predictiveSearch:S({products:[{priceRange:"object"}],collections:["object"],queries:[{text:"string"}]})}),U="query TetherPredictive($q:String!,$limit:Int!){predictiveSearch(query:$q,limit:$limit,limitScope:EACH,types:[PRODUCT,COLLECTION,QUERY]){products{id handle title availableForSale featuredImage{url altText}priceRange{minVariantPrice{amount currencyCode}}}collections{handle title image{url altText}}queries{text}}}",D=6,V=2,F="/search",R=new WeakSet,v=0;function $(s,t,e){return parseInt(m(s,t)||"",10)||e}var H=s=>s.tagName==="A"?s:s.querySelector("a");function p(s,t){h(s,o("search-bind")).forEach(e=>{let i=m(e,"search-bind");i==="image"?L(e,t.image?.url,t.image?.altText||t.title):(i==="title"||i==="price"||i==="text")&&t[i]!=null&&q(e,t[i])})}function k(s,t){let e=H(s);e&&(t&&e.setAttribute("href",t),e.setAttribute("role","option"))}var f=class{constructor(t,e,i){a(this,"root");a(this,"input");a(this,"results");a(this,"limit");a(this,"minCharacters");a(this,"resultsId");a(this,"searchNumber",0);a(this,"timer");a(this,"lastTerm","");a(this,"cache",new Map);this.root=t,this.input=e,this.results=i,this.limit=$(t,"search-limit",D),this.minCharacters=$(t,"search-min",V),i.id||(v+=1,i.id=`${u.prefix}-search-${v}`),this.resultsId=i.id,this.setUpAria(),this.listen()}setUpAria(){this.input.setAttribute("role","combobox"),this.input.setAttribute("aria-autocomplete","list"),this.input.setAttribute("aria-controls",this.resultsId),this.input.setAttribute("aria-expanded","false"),this.input.setAttribute("autocomplete","off"),this.results.hasAttribute("role")||this.results.setAttribute("role","listbox"),this.results.hidden=!0}listen(){this.input.addEventListener("input",()=>{let t=this.input.value.trim();t!==this.lastTerm&&(this.lastTerm=t,clearTimeout(this.timer),this.timer=setTimeout(()=>void this.search(t),u.searchDelay))}),this.input.addEventListener("focus",()=>{this.input.value.trim().length>=this.minCharacters&&this.options().length&&this.open(!0)}),this.input.addEventListener("keydown",t=>{this.onKeydown(t)}),document.addEventListener("click",t=>{this.root.contains(t.target)||this.open(!1)})}setState(t){this.root.setAttribute(A("search-state"),t)}open(t){this.root.classList.toggle("is-open",t),this.results.hidden=!t,this.input.setAttribute("aria-expanded",String(t)),t||this.input.removeAttribute("aria-activedescendant")}options(){return h(this.results,'[role="option"]')}async fetchResults(t){let e=this.cache.get(t);if(e)return e;let i=await T(U,{q:t,limit:this.limit},N);return this.cache.set(t,i.predictiveSearch),i.predictiveSearch}async search(t){this.searchNumber+=1;let e=this.searchNumber;if(t.length<this.minCharacters){this.open(!1),this.setState("idle");return}this.setState("loading");try{let i=await this.fetchResults(t);e===this.searchNumber&&this.render(i,t)}catch(i){if(e!==this.searchNumber){b("a superseded search failed",i);return}this.setState("error"),y(i,"search")}}fillList(t,e,i){h(this.results,o(t)).forEach(l=>{w(l,e,i),d(l,e.length>0)})}queryUrl(t){let e=this.root.getAttribute("action")||F,i=e.includes("?")?"&":"?";return`${e}${i}${this.input.name||"q"}=${encodeURIComponent(t)}`}render(t,e){let i=t?.products??[],l=t?.collections??[],c=(t?.queries??[]).filter(n=>n.text.toLowerCase()!==e.toLowerCase());this.fillList("search-products",i,(n,r)=>{let P=C(r.priceRange.minVariantPrice);p(n,{title:r.title,price:P,image:r.featuredImage}),k(n,x(r.handle,r.id)),n.classList.toggle("is-sold-out",!r.availableForSale)}),this.fillList("search-collections",l,(n,r)=>{p(n,{title:r.title,image:r.image}),k(n,`${(u.collectionPath||"/collection").replace(/\/$/,"")}/${r.handle}`)}),this.fillList("search-queries",c,(n,r)=>{p(n,{text:r.text}),H(n)?.setAttribute("href",this.queryUrl(r.text))});let g=i.length+l.length+c.length;this.showCount(g),this.setState(g?"ready":"empty"),this.open(!0),I("search",{term:e,products:i,collections:l,queries:c},this.root)}showCount(t){h(this.root,o("show")).forEach(e=>{let i=m(e,"show");i==="search-empty"&&d(e,t===0),i==="search-results"&&d(e,t>0)}),this.options().forEach((e,i)=>{e.id||(e.id=`${this.resultsId}-${i}`),e.setAttribute("aria-selected","false")})}highlight(t,e){t.forEach((l,c)=>{l.setAttribute("aria-selected",String(c===e))});let i=t[e];i&&(this.input.setAttribute("aria-activedescendant",i.id),i.scrollIntoView?.({block:"nearest"}))}onKeydown(t){let e=this.options(),i=e.findIndex(l=>l.getAttribute("aria-selected")==="true");t.key==="ArrowDown"&&e.length?(t.preventDefault(),this.open(!0),this.highlight(e,(i+1)%e.length)):t.key==="ArrowUp"&&e.length?(t.preventDefault(),this.highlight(e,i<=0?e.length-1:i-1)):t.key==="Enter"&&i>=0?(t.preventDefault(),e[i]?.click()):t.key==="Escape"&&this.open(!1)}};function j(s=document){for(let t of M(s,o("search"))){if(R.has(t))continue;R.add(t);let e=t.querySelector(o("search-input"))??t.querySelector("input"),i=t.querySelector(o("search-results"));e&&i&&new f(t,e,i)}}export{j as mountSearch};