@session-services/web-elements 0.1.20 → 0.1.22

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 (32) hide show
  1. package/dist/cjs/{index-C6e98Atu.js → index-BYBgrATL.js} +1 -0
  2. package/dist/cjs/loader.cjs.js +2 -2
  3. package/dist/cjs/session-services-elements.cjs.js +2 -2
  4. package/dist/cjs/session-services-formatted-text.cjs.entry.js +181 -165
  5. package/dist/cjs/session-services-ticketing.cjs.entry.js +24370 -19296
  6. package/dist/collection/components/session-services-formatted-text/session-services-formatted-text.js +33 -34
  7. package/dist/collection/components/session-services-ticketing/session-services-ticketing.css +429 -340
  8. package/dist/collection/components/session-services-ticketing/session-services-ticketing.js +1090 -269
  9. package/dist/collection/components/session-services-ticketing/session-services-ticketing.logic.js +270 -0
  10. package/dist/collection/components/session-services-ticketing/session-services-ticketing.logic.test.js +368 -0
  11. package/dist/collection/components/session-services-ticketing/session-services-ticketing.test.js +264 -0
  12. package/dist/components/session-services-formatted-text.js +180 -164
  13. package/dist/components/session-services-ticketing.js +24458 -19366
  14. package/dist/esm/{index-CeXOR4aK.js → index-CNOpF6tk.js} +1 -1
  15. package/dist/esm/loader.js +3 -3
  16. package/dist/esm/session-services-elements.js +3 -3
  17. package/dist/esm/session-services-formatted-text.entry.js +181 -165
  18. package/dist/esm/session-services-ticketing.entry.js +24378 -19304
  19. package/dist/session-services-elements/{p-a2404c46.entry.js → p-703444ed.entry.js} +1 -1
  20. package/dist/session-services-elements/p-94173d1b.entry.js +1 -0
  21. package/dist/session-services-elements/p-CNOpF6tk.js +2 -0
  22. package/dist/session-services-elements/session-services-elements.esm.js +1 -1
  23. package/dist/sst-env.d.ts +1 -0
  24. package/dist/types/components/session-services-formatted-text/session-services-formatted-text.d.ts +3 -0
  25. package/dist/types/components/session-services-ticketing/session-services-ticketing.d.ts +117 -3
  26. package/dist/types/components/session-services-ticketing/session-services-ticketing.logic.d.ts +196 -0
  27. package/dist/types/components/session-services-ticketing/session-services-ticketing.logic.test.d.ts +1 -0
  28. package/dist/types/components/session-services-ticketing/session-services-ticketing.test.d.ts +1 -0
  29. package/dist/types/components.d.ts +18 -0
  30. package/package.json +8 -7
  31. package/dist/session-services-elements/p-3bb6ceef.entry.js +0 -1
  32. package/dist/session-services-elements/p-CeXOR4aK.js +0 -2
@@ -0,0 +1,2 @@
1
+ var e=Object.defineProperty,t=(e,t)=>{var n;Object.entries(null!=(n=t.o.t)?n:{}).map((([n,[o]])=>{if(31&o||32&o){const o=e[n],l=function(e,t){for(;e;){const n=Object.getOwnPropertyDescriptor(e,t);if(null==n?void 0:n.get)return n;e=Object.getPrototypeOf(e)}}(Object.getPrototypeOf(e),n)||Object.getOwnPropertyDescriptor(e,n);l&&Object.defineProperty(e,n,{get(){return l.get.call(this)},set(e){l.set.call(this,e)},configurable:!0,enumerable:!0}),e[n]=t.l.has(n)?t.l.get(n):o}}))},n=e=>{if(e.__stencil__getHostRef)return e.__stencil__getHostRef()},o=(e,n)=>{n&&(e.__stencil__getHostRef=()=>n,n.i=e,512&n.o.u&&t(e,n))},l=(e,t)=>t in e,i=(e,t)=>(0,console.error)(e,t),s=new Map,r=new Map,c="slot-fb{display:contents}slot-fb[hidden]{display:none}",u="undefined"!=typeof window?window:{},a={u:0,h:"",jmp:e=>e(),raf:e=>requestAnimationFrame(e),ael:(e,t,n,o)=>e.addEventListener(t,n,o),rel:(e,t,n,o)=>e.removeEventListener(t,n,o),ce:(e,t)=>new CustomEvent(e,t)},f=e=>Promise.resolve(e),d=(()=>{try{return new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync}catch(e){}return!1})(),h=!!d&&(()=>!!u.document&&Object.getOwnPropertyDescriptor(u.document.adoptedStyleSheets,"length").writable)(),p=!1,m=[],v=[],b=(e,t)=>n=>{e.push(n),p||(p=!0,t&&4&a.u?$(w):a.raf(w))},y=e=>{for(let t=0;t<e.length;t++)try{e[t](performance.now())}catch(e){i(e)}e.length=0},w=()=>{y(m),y(v),(p=m.length>0)&&a.raf(w)},$=e=>f().then(e),g=b(v,!0),j=e=>"object"==(e=typeof e)||"function"===e;function S(e){var t,n,o;return null!=(o=null==(n=null==(t=e.head)?void 0:t.querySelector('meta[name="csp-nonce"]'))?void 0:n.getAttribute("content"))?o:void 0}((t,n)=>{for(var o in n)e(t,o,{get:n[o],enumerable:!0})})({},{err:()=>k,map:()=>E,ok:()=>O,unwrap:()=>M,unwrapErr:()=>x});var O=e=>({isOk:!0,isErr:!1,value:e}),k=e=>({isOk:!1,isErr:!0,value:e});function E(e,t){if(e.isOk){const n=t(e.value);return n instanceof Promise?n.then((e=>O(e))):O(n)}if(e.isErr)return k(e.value);throw"should never get here"}var C,M=e=>{if(e.isOk)return e.value;throw e.value},x=e=>{if(e.isErr)return e.value;throw e.value};function P(){const e=this.attachShadow({mode:"open"});void 0===C&&(C=null),C&&(h?e.adoptedStyleSheets.push(C):e.adoptedStyleSheets=[...e.adoptedStyleSheets,C])}var R=new WeakMap,D=e=>"sc-"+e.p,U=(e,t,...n)=>{let o=null,l=null,i=!1,s=!1;const r=[],c=t=>{for(let n=0;n<t.length;n++)o=t[n],Array.isArray(o)?c(o):null!=o&&"boolean"!=typeof o&&((i="function"!=typeof e&&!j(o))&&(o+=""),i&&s?r[r.length-1].m+=o:r.push(i?W(null,o):o),s=i)};if(c(n),t){t.key&&(l=t.key);{const e=t.className||t.class;e&&(t.class="object"!=typeof e?e:Object.keys(e).filter((t=>e[t])).join(" "))}}if("function"==typeof e)return e(null===t?{}:t,r,N);const u=W(e,null);return u.v=t,r.length>0&&(u.$=r),u.j=l,u},W=(e,t)=>({u:0,S:e,m:t,O:null,$:null,v:null,j:null}),A={},N={forEach:(e,t)=>e.map(H).forEach(t),map:(e,t)=>e.map(H).map(t).map(L)},H=e=>({vattrs:e.v,vchildren:e.$,vkey:e.j,vname:e.k,vtag:e.S,vtext:e.m}),L=e=>{if("function"==typeof e.vtag){const t={...e.vattrs};return e.vkey&&(t.key=e.vkey),e.vname&&(t.name=e.vname),U(e.vtag,t,...e.vchildren||[])}const t=W(e.vtag,e.vtext);return t.v=e.vattrs,t.$=e.vchildren,t.j=e.vkey,t.k=e.vname,t},T=e=>{const t=(e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"))(e);return RegExp(`(^|[^@]|@(?!supports\\s+selector\\s*\\([^{]*?${t}))(${t}\\b)`,"g")};T("::slotted"),T(":host"),T(":host-context");var z,V=(e,t)=>null==e||j(e)?e:4&t?"false"!==e&&(""===e||!!e):1&t?e+"":e,q=e=>{var t;return null==(t=n(e))?void 0:t.$hostElement$},F=(e,t)=>{const n=q(e);return{emit:e=>G(n,t,{bubbles:!0,composed:!0,cancelable:!0,detail:e})}},G=(e,t,n)=>{const o=a.ce(t,n);return e.dispatchEvent(o),o},I=(e,t,n,o,i,s)=>{if(n===o)return;let r=l(e,t),c=t.toLowerCase();if("class"===t){const t=e.classList,l=_(n);let i=_(o);t.remove(...l.filter((e=>e&&!i.includes(e)))),t.add(...i.filter((e=>e&&!l.includes(e))))}else if("key"===t);else if(r||"o"!==t[0]||"n"!==t[1]){const l=j(o);if((r||l&&null!==o)&&!i)try{if(e.tagName.includes("-"))e[t]!==o&&(e[t]=o);else{const l=null==o?"":o;"list"===t?r=!1:null!=n&&e[t]==l||("function"==typeof e.__lookupSetter__(t)?e[t]=l:e.setAttribute(t,l))}}catch(e){}null==o||!1===o?!1===o&&""!==e.getAttribute(t)||e.removeAttribute(t):(!r||4&s||i)&&!l&&1===e.nodeType&&e.setAttribute(t,o=!0===o?"":o)}else if(t="-"===t[2]?t.slice(3):l(u,c)?c.slice(2):c[2]+t.slice(3),n||o){const l=t.endsWith(B);t=t.replace(J,""),n&&a.rel(e,t,n,l),o&&a.ael(e,t,o,l)}},Y=/\s/,_=e=>("object"==typeof e&&e&&"baseVal"in e&&(e=e.baseVal),e&&"string"==typeof e?e.split(Y):[]),B="Capture",J=RegExp(B+"$"),K=(e,t,n)=>{const o=11===t.O.nodeType&&t.O.host?t.O.host:t.O,l=e&&e.v||{},i=t.v||{};for(const e of Q(Object.keys(l)))e in i||I(o,e,l[e],void 0,n,t.u);for(const e of Q(Object.keys(i)))I(o,e,l[e],i[e],n,t.u)};function Q(e){return e.includes("ref")?[...e.filter((e=>"ref"!==e)),"ref"]:e}var X=!1,Z=(e,t,n)=>{const o=t.$[n];let l,i,s=0;if(null!==o.m)l=o.O=u.document.createTextNode(o.m);else{if(X||(X="svg"===o.S),!u.document)throw Error("You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.");if(l=o.O=u.document.createElementNS(X?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",o.S),X&&"foreignObject"===o.S&&(X=!1),K(null,o,X),o.$)for(s=0;s<o.$.length;++s)i=Z(e,o,s),i&&l.appendChild(i);"svg"===o.S?X=!1:"foreignObject"===l.tagName&&(X=!0)}return l["s-hn"]=z,l},ee=(e,t,n,o,l,i)=>{let s,r=e;for(r.shadowRoot&&r.tagName===z&&(r=r.shadowRoot);l<=i;++l)o[l]&&(s=Z(null,n,l),s&&(o[l].O=s,le(r,s,t)))},te=(e,t,n)=>{for(let o=t;o<=n;++o){const t=e[o];if(t){const e=t.O;e&&e.remove()}}},ne=(e,t,n=!1)=>e.S===t.S&&(n?(n&&!e.j&&t.j&&(e.j=t.j),!0):e.j===t.j),oe=(e,t,n=!1)=>{const o=t.O=e.O,l=e.$,i=t.$,s=t.S,r=t.m;null===r?(K(e,t,X="svg"===s||"foreignObject"!==s&&X),null!==l&&null!==i?((e,t,n,o,l=!1)=>{let i,s,r=0,c=0,u=0,a=0,f=t.length-1,d=t[0],h=t[f],p=o.length-1,m=o[0],v=o[p];for(;r<=f&&c<=p;)if(null==d)d=t[++r];else if(null==h)h=t[--f];else if(null==m)m=o[++c];else if(null==v)v=o[--p];else if(ne(d,m,l))oe(d,m,l),d=t[++r],m=o[++c];else if(ne(h,v,l))oe(h,v,l),h=t[--f],v=o[--p];else if(ne(d,v,l))oe(d,v,l),le(e,d.O,h.O.nextSibling),d=t[++r],v=o[--p];else if(ne(h,m,l))oe(h,m,l),le(e,h.O,d.O),h=t[--f],m=o[++c];else{for(u=-1,a=r;a<=f;++a)if(t[a]&&null!==t[a].j&&t[a].j===m.j){u=a;break}u>=0?(s=t[u],s.S!==m.S?i=Z(t&&t[c],n,u):(oe(s,m,l),t[u]=void 0,i=s.O),m=o[++c]):(i=Z(t&&t[c],n,c),m=o[++c]),i&&le(d.O.parentNode,i,d.O)}r>f?ee(e,null==o[p+1]?null:o[p+1].O,n,o,c,p):c>p&&te(t,r,f)})(o,l,t,i,n):null!==i?(null!==e.m&&(o.textContent=""),ee(o,null,t,i,0,i.length-1)):!n&&null!==l&&te(l,0,l.length-1),X&&"svg"===s&&(X=!1)):e.m!==r&&(o.data=r)},le=(e,t,n)=>null==e?void 0:e.insertBefore(t,n),ie=(e,t)=>{if(t&&!e.C&&t["s-p"]){const n=t["s-p"].push(new Promise((o=>e.C=()=>{t["s-p"].splice(n-1,1),o()})))}},se=(e,t)=>{if(e.u|=16,4&e.u)return void(e.u|=512);ie(e,e.M);const n=()=>re(e,t);if(!t)return g(n);queueMicrotask((()=>{n()}))},re=(e,t)=>{const n=e.$hostElement$,o=e.i;if(!o)throw Error(`Can't render component <${n.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \`externalRuntime: true\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`);let l;return t?(e.P.length&&e.P.forEach((e=>e(n))),l=pe(o,"componentWillLoad",void 0,n)):l=pe(o,"componentWillUpdate",void 0,n),l=ce(l,(()=>pe(o,"componentWillRender",void 0,n))),ce(l,(()=>ae(e,o,t)))},ce=(e,t)=>ue(e)?e.then(t).catch((e=>{console.error(e),t()})):t(),ue=e=>e instanceof Promise||e&&e.then&&"function"==typeof e.then,ae=async(e,t,n)=>{var o;const l=e.$hostElement$,i=l["s-rc"];n&&(e=>{const t=e.o,n=e.$hostElement$,o=t.u,l=((e,t)=>{var n;const o=D(t),l=r.get(o);if(!u.document)return o;if(e=11===e.nodeType?e:u.document,l)if("string"==typeof l){let i,s=R.get(e=e.head||e);if(s||R.set(e,s=new Set),!s.has(o)){{i=u.document.createElement("style"),i.innerHTML=l;const o=null!=(n=a.R)?n:S(u.document);if(null!=o&&i.setAttribute("nonce",o),!(1&t.u))if("HEAD"===e.nodeName){const t=e.querySelectorAll("link[rel=preconnect]"),n=t.length>0?t[t.length-1].nextSibling:e.querySelector("style");e.insertBefore(i,(null==n?void 0:n.parentNode)===e?n:null)}else if("host"in e)if(d){const t=new CSSStyleSheet;t.replaceSync(l),h?e.adoptedStyleSheets.unshift(t):e.adoptedStyleSheets=[t,...e.adoptedStyleSheets]}else{const t=e.querySelector("style");t?t.innerHTML=l+t.innerHTML:e.prepend(i)}else e.append(i);1&t.u&&e.insertBefore(i,null)}4&t.u&&(i.innerHTML+=c),s&&s.add(o)}}else e.adoptedStyleSheets.includes(l)||(h?e.adoptedStyleSheets.push(l):e.adoptedStyleSheets=[...e.adoptedStyleSheets,l]);return o})(n.shadowRoot?n.shadowRoot:n.getRootNode(),t);10&o&&(n["s-sc"]=l,n.classList.add(l+"-h"))})(e);fe(e,t,l,n),i&&(i.map((e=>e())),l["s-rc"]=void 0);{const t=null!=(o=l["s-p"])?o:[],n=()=>de(e);0===t.length?n():(Promise.all(t).then(n),e.u|=4,t.length=0)}},fe=(e,t,n,o)=>{try{t=t.render(),e.u&=-17,e.u|=2,((e,t,n=!1)=>{const o=e.$hostElement$,l=e.D||W(null,null),i=(e=>e&&e.S===A)(t)?t:U(null,null,t);if(z=o.tagName,n&&i.v)for(const e of Object.keys(i.v))o.hasAttribute(e)&&!["key","ref","style","class"].includes(e)&&(i.v[e]=o[e]);i.S=null,i.u|=4,e.D=i,i.O=l.O=o.shadowRoot||o,oe(l,i,n)})(e,t,o)}catch(t){i(t,e.$hostElement$)}return null},de=e=>{const t=e.$hostElement$,n=e.i,o=e.M;pe(n,"componentDidRender",void 0,t),64&e.u?pe(n,"componentDidUpdate",void 0,t):(e.u|=64,me(t),pe(n,"componentDidLoad",void 0,t),e.U(t),o||he()),e.C&&(e.C(),e.C=void 0),512&e.u&&$((()=>se(e,!1))),e.u&=-517},he=()=>{$((()=>G(u,"appload",{detail:{namespace:"session-services-elements"}})))},pe=(e,t,n,o)=>{if(e&&e[t])try{return e[t](n)}catch(e){i(e,o)}},me=e=>e.classList.add("hydrated"),ve=(e,t,o,l)=>{const s=n(e);if(!s)return;if(!s)throw Error(`Couldn't find host element for "${l.p}" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`);const r=s.$hostElement$,c=s.l.get(t),u=s.u,a=s.i;if(o=V(o,l.t[t][0]),(!(8&u)||void 0===c)&&o!==c&&(!Number.isNaN(c)||!Number.isNaN(o))&&(s.l.set(t,o),a)){if(l.W&&128&u){const e=l.W[t];e&&e.map((e=>{try{a[e](o,c,t)}catch(e){i(e,r)}}))}if(2==(18&u)){if(a.componentShouldUpdate&&!1===a.componentShouldUpdate(o,c,t))return;se(s,!1)}}},be=(e,t,o)=>{var l,i;const s=e.prototype;{e.watchers&&!t.W&&(t.W=e.watchers),e.deserializers&&!t.A&&(t.A=e.deserializers),e.serializers&&!t.N&&(t.N=e.serializers);const r=Object.entries(null!=(l=t.t)?l:{});if(r.map((([e,[l]])=>{if(31&l||2&o&&32&l){const{get:i,set:r}=Object.getOwnPropertyDescriptor(s,e)||{};i&&(t.t[e][0]|=2048),r&&(t.t[e][0]|=4096),(1&o||!i)&&Object.defineProperty(s,e,{get(){{if(!(2048&t.t[e][0]))return((e,t)=>n(this).l.get(t))(0,e);const o=n(this),l=o?o.i:s;if(!l)return;return l[e]}},configurable:!0,enumerable:!0}),Object.defineProperty(s,e,{set(i){const s=n(this);if(s){if(r)return void 0===(32&l?this[e]:s.$hostElement$[e])&&s.l.get(e)&&(i=s.l.get(e)),r.call(this,V(i,l)),void ve(this,e,i=32&l?this[e]:s.$hostElement$[e],t);{if(!(1&o&&4096&t.t[e][0]))return ve(this,e,i,t),void(1&o&&!s.i&&s.P.push((()=>{4096&t.t[e][0]&&s.i[e]!==s.l.get(e)&&(s.i[e]=i)})));const n=()=>{const n=s.i[e];!s.l.get(e)&&n&&s.l.set(e,n),s.i[e]=V(i,l),ve(this,e,s.i[e],t)};s.i?n():s.P.push((()=>{n()}))}}}})}})),1&o){const o=new Map;s.attributeChangedCallback=function(e,l,i){a.jmp((()=>{var c;const u=o.get(e),a=n(this);if(this.hasOwnProperty(u)&&(i=this[u],delete this[u]),s.hasOwnProperty(u)&&"number"==typeof this[u]&&this[u]==i)return;if(null==u){const n=null==a?void 0:a.u;if(a&&n&&!(8&n)&&128&n&&i!==l){const n=a.i,o=null==(c=t.W)?void 0:c[e];null==o||o.forEach((t=>{null!=n[t]&&n[t].call(n,i,l,e)}))}return}const f=r.find((([e])=>e===u));f&&4&f[1][0]&&(i=null!==i&&"false"!==i);const d=Object.getOwnPropertyDescriptor(s,u);i==this[u]||d.get&&!d.set||(this[u]=i)}))},e.observedAttributes=Array.from(new Set([...Object.keys(null!=(i=t.W)?i:{}),...r.filter((([e,t])=>31&t[0])).map((([e,t])=>{const n=t[1]||e;return o.set(n,e),n}))]))}}return e},ye=(e,t)=>{pe(e,"connectedCallback",void 0,t)},we=(e,t)=>{pe(e,"disconnectedCallback",void 0,t||e)},$e=(e,t={})=>{var o;if(!u.document)return void console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");const l=[],f=t.exclude||[],h=u.customElements,p=u.document.head,m=p.querySelector("meta[charset]"),v=u.document.createElement("style"),b=[];let y,w=!0;Object.assign(a,t),a.h=new URL(t.resourcesUrl||"./",u.document.baseURI).href;let $=!1;if(e.map((e=>{e[1].map((t=>{var o,c,u;const p={u:t[0],p:t[1],t:t[2],H:t[3]};4&p.u&&($=!0),p.t=t[2],p.W=null!=(o=t[4])?o:{},p.N=null!=(c=t[5])?c:{},p.A=null!=(u=t[6])?u:{};const m=p.p,v=class extends HTMLElement{constructor(e){if(super(e),this.hasRegisteredEventListeners=!1,((e,t)=>{const n={u:0,$hostElement$:e,o:t,l:new Map,L:new Map};n.T=new Promise((e=>n.U=e)),e["s-p"]=[],e["s-rc"]=[],n.P=[];const o=n;e.__stencil__getHostRef=()=>o})(e=this,p),1&p.u)if(e.shadowRoot){if("open"!==e.shadowRoot.mode)throw Error(`Unable to re-use existing shadow root for ${p.p}! Mode is set to ${e.shadowRoot.mode} but Stencil only supports open shadow roots.`)}else P.call(e,p)}connectedCallback(){n(this)&&(this.hasRegisteredEventListeners||(this.hasRegisteredEventListeners=!0),y&&(clearTimeout(y),y=null),w?b.push(this):a.jmp((()=>(e=>{if(!(1&a.u)){const t=n(e);if(!t)return;const o=t.o,l=()=>{};if(1&t.u)(null==t?void 0:t.i)?ye(t.i,e):(null==t?void 0:t.T)&&t.T.then((()=>ye(t.i,e)));else{t.u|=1;{let n=e;for(;n=n.parentNode||n.host;)if(n["s-p"]){ie(t,t.M=n);break}}o.t&&Object.entries(o.t).map((([t,[n]])=>{if(31&n&&t in e&&e[t]!==Object.prototype[t]){const n=e[t];delete e[t],e[t]=n}})),(async(e,t,n)=>{let o;if(!(32&t.u)){if(t.u|=32,n.V){const l=((e,t)=>{const n=e.p.replace(/-/g,"_"),o=e.V;if(!o)return;const l=s.get(o);return l?l[n]:import(`./${o}.entry.js`).then((e=>(s.set(o,e),e[n])),(e=>{i(e,t.$hostElement$)}))
2
+ /*!__STENCIL_STATIC_IMPORT_SWITCH__*/})(n,t);if(l&&"then"in l){const e=()=>{};o=await l,e()}else o=l;if(!o)throw Error(`Constructor for "${n.p}#${t.q}" was not found`);o.isProxied||(n.W=o.watchers,n.N=o.serializers,n.A=o.deserializers,be(o,n,2),o.isProxied=!0);const r=()=>{};t.u|=8;try{new o(t)}catch(t){i(t,e)}t.u&=-9,t.u|=128,r(),ye(t.i,e)}else o=e.constructor,customElements.whenDefined(e.localName).then((()=>t.u|=128));if(o&&o.style){let e;"string"==typeof o.style&&(e=o.style);const t=D(n);if(!r.has(t)){const o=()=>{};((e,t,n)=>{let o=r.get(e);d&&n?(o=o||new CSSStyleSheet,"string"==typeof o?o=t:o.replaceSync(t)):o=t,r.set(e,o)})(t,e,!!(1&n.u)),o()}}}const l=t.M,c=()=>se(t,!0);l&&l["s-rc"]?l["s-rc"].push(c):c()})(e,t,o)}l()}})(this))))}disconnectedCallback(){a.jmp((()=>(async e=>{if(!(1&a.u)){const t=n(e);(null==t?void 0:t.i)?we(t.i,e):(null==t?void 0:t.T)&&t.T.then((()=>we(t.i,e)))}R.has(e)&&R.delete(e),e.shadowRoot&&R.has(e.shadowRoot)&&R.delete(e.shadowRoot)})(this))),a.raf((()=>{var e;const t=n(this);if(!t)return;const o=b.findIndex((e=>e===this));o>-1&&b.splice(o,1),(null==(e=null==t?void 0:t.D)?void 0:e.O)instanceof Node&&!t.D.O.isConnected&&delete t.D.O}))}componentOnReady(){var e;return null==(e=n(this))?void 0:e.T}};p.V=e[0],f.includes(m)||h.get(m)||(l.push(m),h.define(m,be(v,p,1)))}))})),l.length>0&&($&&(v.textContent+=c),v.textContent+=l.sort()+"{visibility:hidden}.hydrated{visibility:inherit}",v.innerHTML.length)){v.setAttribute("data-styles","");const e=null!=(o=a.R)?o:S(u.document);null!=e&&v.setAttribute("nonce",e),p.insertBefore(v,m?m.nextSibling:p.firstChild)}w=!1,b.length?b.map((e=>e.connectedCallback())):a.jmp((()=>y=setTimeout(he,30)))},ge=e=>a.R=e;export{A as H,$e as b,F as c,q as g,U as h,f as p,o as r,ge as s}
@@ -1 +1 @@
1
- import{p as e,b as t}from"./p-CeXOR4aK.js";export{s as setNonce}from"./p-CeXOR4aK.js";import{g as n}from"./p-DQuL1Twl.js";(()=>{const t=import.meta.url,n={};return""!==t&&(n.resourcesUrl=new URL(".",t).href),e(n)})().then((async e=>(await n(),t([["p-a2404c46",[[769,"session-services-formatted-text",{text:[1],theme:[1],currentTheme:[32],segments:[32]},null,{text:["textChanged"],theme:["themeChanged"]}]]],["p-3bb6ceef",[[769,"session-services-ticketing",{tenantId:[1,"tenant-id"],eventId:[1,"event-id"],apiUrl:[1,"api-url"],locale:[1],returnUrl:[1,"return-url"],theme:[1],enableAnalytics:[4,"enable-analytics"],debugAnalytics:[4,"debug-analytics"],event:[32],selectedItems:[32],quote:[32],loading:[32],error:[32],quoteLoading:[32],quoteError:[32],checkoutLoading:[32],currentTheme:[32],openModalAdmissionId:[32]},null,{tenantId:["propsChanged"],eventId:["propsChanged"],apiUrl:["propsChanged"],theme:["themeChanged"]}]]]],e))));
1
+ import{p as e,b as t}from"./p-CNOpF6tk.js";export{s as setNonce}from"./p-CNOpF6tk.js";import{g as o}from"./p-DQuL1Twl.js";(()=>{const t=import.meta.url,o={};return""!==t&&(o.resourcesUrl=new URL(".",t).href),e(o)})().then((async e=>(await o(),t([["p-703444ed",[[769,"session-services-formatted-text",{text:[1],theme:[1],currentTheme:[32],segments:[32]},null,{text:["textChanged"],theme:["themeChanged"]}]]],["p-94173d1b",[[769,"session-services-ticketing",{tenantId:[1,"tenant-id"],eventId:[1,"event-id"],apiUrl:[1,"api-url"],locale:[1],returnUrl:[1,"return-url"],couponCode:[1,"coupon-code"],initialAdmissionPrices:[1,"initial-admission-prices"],initialPreviewQuote:[1,"initial-preview-quote"],passcode:[1],stickyCheckout:[4,"sticky-checkout"],theme:[1],enableAnalytics:[4,"enable-analytics"],debugAnalytics:[4,"debug-analytics"],event:[32],selectedItems:[32],quote:[32],previewQuote:[32],loading:[32],error:[32],quoteLoading:[32],previewLoading:[32],quoteError:[32],couponError:[32],couponInput:[32],appliedCouponCode:[32],passcodeInput:[32],activePasscode:[32],passcodeDenied:[32],selectionPrompt:[32],checkoutLoading:[32],currentTheme:[32],openModalAdmissionId:[32]},null,{tenantId:["propsChanged"],eventId:["propsChanged"],apiUrl:["propsChanged"],passcode:["propsChanged"],couponCode:["couponCodeChanged"],initialAdmissionPrices:["couponCodeChanged"],initialPreviewQuote:["couponCodeChanged"],theme:["themeChanged"]}]]]],e))));
package/dist/sst-env.d.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
4
  /* deno-fmt-ignore-file */
5
+ /* biome-ignore-all lint: auto-generated */
5
6
 
6
7
  /// <reference path="../../../sst-env.d.ts" />
7
8
 
@@ -10,10 +10,13 @@ export declare class SessionServicesFormattedText {
10
10
  themeChanged(): void;
11
11
  disconnectedCallback(): void;
12
12
  private setupTheme;
13
+ private removeThemeListener;
14
+ private setupSystemTheme;
13
15
  private handleSystemThemeChange;
14
16
  private parseText;
15
17
  private renderLink;
16
18
  private renderSoundCloudEmbed;
17
19
  private renderSegment;
20
+ private renderMediaSegment;
18
21
  render(): any;
19
22
  }
@@ -1,21 +1,41 @@
1
1
  import type { DetailedEvent, OrderQuote } from "@session-services/sdk/schemas";
2
2
  import { type EventEmitter } from "../../stencil-public-runtime";
3
+ import { type SelectionKey } from "./session-services-ticketing.logic";
3
4
  export declare class SessionsTicketing {
5
+ host: HTMLElement;
4
6
  tenantId: string;
5
7
  eventId: string;
6
8
  apiUrl: string;
7
9
  locale: string;
8
10
  returnUrl?: string;
11
+ couponCode?: string;
12
+ initialAdmissionPrices?: Record<string, {
13
+ discount: number;
14
+ gross: number;
15
+ total: number;
16
+ }> | string;
17
+ initialPreviewQuote?: OrderQuote | string;
18
+ passcode?: string;
19
+ stickyCheckout: boolean;
9
20
  theme: "light" | "dark" | "system";
10
21
  enableAnalytics: boolean;
11
22
  debugAnalytics: boolean;
12
23
  event: DetailedEvent | null;
13
- selectedItems: Map<string, number>;
24
+ selectedItems: Map<SelectionKey, number>;
14
25
  quote: OrderQuote | null;
26
+ previewQuote: OrderQuote | null;
15
27
  loading: boolean;
16
28
  error: string | null;
17
29
  quoteLoading: boolean;
30
+ previewLoading: boolean;
18
31
  quoteError: string | null;
32
+ couponError: string | null;
33
+ couponInput: string;
34
+ appliedCouponCode: string;
35
+ passcodeInput: string;
36
+ activePasscode: string;
37
+ passcodeDenied: boolean;
38
+ selectionPrompt: boolean;
19
39
  checkoutLoading: boolean;
20
40
  currentTheme: "light" | "dark";
21
41
  openModalAdmissionId: string | null;
@@ -31,41 +51,135 @@ export declare class SessionsTicketing {
31
51
  private analytics?;
32
52
  private mediaQueryList?;
33
53
  private requestId;
54
+ private previewRequestId;
55
+ private quoteTimer?;
56
+ private promptTimer?;
34
57
  componentWillLoad(): Promise<void>;
35
58
  propsChanged(): Promise<void>;
59
+ couponCodeChanged(): Promise<void>;
36
60
  themeChanged(): void;
37
61
  disconnectedCallback(): void;
62
+ private handleDiscountQueryChange;
38
63
  private initializeComponent;
64
+ private setInitialCoupon;
65
+ private initialCouponCode;
66
+ private parsedInitialPreviewQuote;
67
+ private parsedInitialAdmissionPrices;
68
+ private activeInitialPreviewQuote;
69
+ private activeInitialAdmissionPrices;
39
70
  private setupTheme;
40
71
  private handleSystemThemeChange;
41
72
  private trackEvent;
73
+ private analyticsContext;
74
+ private activeAnalytics;
75
+ private analyticsEvent;
42
76
  private getLowestPrice;
77
+ private getAdmissionListProducts;
43
78
  private loadEventData;
79
+ private trackLoadedEvent;
80
+ private setupAnalytics;
81
+ private trackProductViewed;
44
82
  private updateQuantity;
83
+ private setQuantity;
84
+ private setSelectedQuantity;
85
+ private trackQuantityChange;
86
+ private trackProductAdded;
87
+ private trackProductRemoved;
88
+ private getQuantityAnalytics;
45
89
  private updateQuote;
90
+ private scheduleQuoteUpdate;
91
+ private clearQuoteTimer;
92
+ private clearPromptTimer;
93
+ private promptTicketSelection;
94
+ private getQuoteRequestItems;
95
+ private fetchCartQuote;
96
+ private applyQuote;
97
+ private handleQuoteError;
98
+ private updatePreviewQuote;
99
+ private fetchPreviewQuote;
100
+ private handleCouponInput;
101
+ private handleCouponKeyDown;
102
+ private applyCoupon;
103
+ private removeCoupon;
104
+ private applyCartCoupon;
105
+ private applyPreviewCoupon;
106
+ private removeCartCoupon;
107
+ private handleCouponError;
108
+ private setCouponError;
109
+ private trackCouponEntered;
110
+ private trackCouponApplied;
111
+ private trackCouponDenied;
112
+ private trackCouponRemoved;
113
+ private handlePasscodeInput;
114
+ private submitPasscode;
46
115
  private initiateCheckout;
116
+ private trackCheckoutStarted;
117
+ private getCheckoutItems;
118
+ private handleCheckoutOrder;
119
+ private handleCheckoutError;
120
+ private handleStickyCheckoutClick;
121
+ private getCartProducts;
122
+ private getCheckoutProducts;
123
+ private getProductsForQuote;
124
+ private getQuoteProduct;
125
+ private quoteProductContext;
126
+ private getQuoteAdmission;
127
+ private getQuoteSection;
47
128
  private formatDateTimeRange;
48
129
  private formatPriceValue;
49
130
  private handleQuantityDecrease;
50
131
  private handleQuantityIncrease;
132
+ private handleQuantityInput;
51
133
  private openModal;
52
134
  private closeModal;
53
135
  private handleModalKeyDown;
54
136
  private handleBackdropClick;
55
137
  private renderQuantityControls;
138
+ private getMaxQuantity;
139
+ private getSection;
56
140
  private renderEventTimeAndLocation;
141
+ private renderEventTime;
142
+ private renderAdmissionTime;
143
+ private renderSectionLocation;
144
+ private renderEventLocation;
57
145
  private renderPriceAndControls;
146
+ private renderAdmissionPrice;
147
+ private renderAdmissionControls;
58
148
  private renderAdmission;
149
+ private getAdmissionClassName;
150
+ private getAdmissionAriaLabel;
151
+ private admissionStatusText;
152
+ private renderAdmissionHeader;
153
+ private renderMoreInfoButton;
154
+ private renderAdmissionBody;
59
155
  private renderSectionHeader;
60
156
  private renderSectionWithAdmissions;
61
157
  private renderLoadingState;
62
158
  private renderErrorState;
159
+ private renderPasscodeState;
63
160
  private renderNotFoundState;
64
- private renderOrderSummaryItems;
161
+ private renderCouponPanel;
65
162
  private isCheckoutDisabled;
66
163
  private getCheckoutButtonText;
67
- private renderOrderSummary;
164
+ private renderQuoteLoadingContent;
165
+ private renderCheckoutButtonContent;
166
+ private isStickyCheckoutDisabled;
167
+ private getStickyCheckoutText;
168
+ private renderStickyCheckoutButtonContent;
169
+ private getQuoteCheckoutText;
170
+ private getOrderTotalText;
171
+ private renderCheckoutActions;
172
+ private renderStickyCheckout;
68
173
  private renderModal;
69
174
  private renderTicketSections;
175
+ private renderTopLevelItem;
176
+ private renderDoorAlert;
177
+ private loadingView;
178
+ private errorView;
179
+ private missingEventView;
180
+ private pendingView;
181
+ private renderReadyState;
182
+ private renderExternalTicketing;
183
+ private renderUnavailableState;
70
184
  render(): any;
71
185
  }
@@ -0,0 +1,196 @@
1
+ import type { Admission, DetailedEvent, OrderQuote, Section } from "@session-services/sdk/schemas";
2
+ export type SelectionKey = `${string}::${string}`;
3
+ export type TicketingMode = "default" | "door";
4
+ export interface TopLevelAdmissionItem {
5
+ type: "admission";
6
+ admission: Admission;
7
+ }
8
+ export interface TopLevelSectionItem {
9
+ type: "section";
10
+ section: Section;
11
+ admissions: Admission[];
12
+ }
13
+ export type TopLevelItem = TopLevelAdmissionItem | TopLevelSectionItem;
14
+ export interface AdmissionDisplayState {
15
+ disabled: boolean;
16
+ label: {
17
+ text: string;
18
+ tone: "muted" | "success";
19
+ } | null;
20
+ maxQuantity: number;
21
+ postSale: boolean;
22
+ showScarcity: boolean;
23
+ soldOut: boolean;
24
+ statusLabel: string | null;
25
+ statusTone: "destructive" | "success" | null;
26
+ }
27
+ export interface AdmissionPriceDisplay {
28
+ base: number;
29
+ discounted: boolean;
30
+ fees: number;
31
+ gross?: number;
32
+ }
33
+ export interface AdmissionPreviewPrice {
34
+ discount: number;
35
+ gross: number;
36
+ total: number;
37
+ }
38
+ export type AdmissionPriceMap = Partial<Record<SelectionKey, AdmissionPreviewPrice>>;
39
+ export interface TicketingState {
40
+ externalTicketUrl?: string;
41
+ isDoorOnly: boolean;
42
+ isEnded: boolean;
43
+ isUnavailableForSale: boolean;
44
+ showExternalTicketing: boolean;
45
+ showTicketing: boolean;
46
+ ticketHeading: string;
47
+ }
48
+ export declare function selectionKey(admissionId: string, sectionId: string | null): SelectionKey;
49
+ export declare function parseSelectionKey(key: SelectionKey): {
50
+ admissionId: string;
51
+ sectionId: string;
52
+ };
53
+ export declare function priceTotal(price?: Admission["price"] | OrderQuote["price"]): number;
54
+ export declare function discountCouponFromSearch(search: string): string;
55
+ export declare function eventTimeZone(event: DetailedEvent): string;
56
+ export declare function getTicketingState(event: DetailedEvent): TicketingState;
57
+ export declare function visibleAdmissions(event: DetailedEvent, mode: TicketingMode): {
58
+ name: string;
59
+ capacity: number;
60
+ limit: number;
61
+ order: number;
62
+ entryStartsAt: string;
63
+ entryEndsAt: string;
64
+ saleStartsAt: string;
65
+ saleEndsAt: string;
66
+ saleEndsBehavior: "SALE_ENDED" | "SOLD_OUT" | "DOOR";
67
+ price: {
68
+ base: number;
69
+ booking: number;
70
+ currency: "AUD" | "AED" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BRL" | "BSD" | "BTN" | "BWP" | "BZD" | "CAD" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HUF" | "IDR" | "ILS" | "INR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MNT" | "MOP" | "MUR" | "MVR" | "MWK" | "MXN" | "MYR" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RWF" | "SAR" | "SBD" | "SCR" | "SEK" | "SGD" | "SHP" | "SLE" | "SRD" | "SVC" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "UYU" | "UZS" | "VND" | "VUV" | "WST" | "XAF" | "XCD" | "XOF" | "XPF" | "ZAR" | "ZMW" | "ZWL";
71
+ };
72
+ visibility: "ALWAYS" | "STACKED" | "HIDDEN";
73
+ teamId: string;
74
+ promoterId: string;
75
+ eventId: string;
76
+ eventSlug: string;
77
+ id?: string;
78
+ subtitle?: string;
79
+ description?: string;
80
+ available?: number;
81
+ sold?: number;
82
+ reserved?: number;
83
+ createdAt?: string;
84
+ updatedAt?: string;
85
+ passcode?: string;
86
+ sectionId?: string;
87
+ }[];
88
+ export declare function topLevelTicketItems(sections: Section[], admissions: Admission[]): TopLevelItem[];
89
+ export declare function getAdmissionDisplayState(input: {
90
+ admission: Admission;
91
+ event: DetailedEvent;
92
+ section?: Section;
93
+ sectionSoldOut?: boolean;
94
+ }): AdmissionDisplayState;
95
+ export declare function getAdmissionPriceDisplay(input: {
96
+ admission: Admission;
97
+ initialPrice?: AdmissionPreviewPrice;
98
+ mode: TicketingMode;
99
+ quoteItem?: OrderQuote["items"][number];
100
+ previewItem?: OrderQuote["items"][number];
101
+ }): AdmissionPriceDisplay;
102
+ export declare function quoteItemsBySelection(quote: OrderQuote | null): Map<string, {
103
+ id: string;
104
+ kind: "ADMISSION" | "ADDON";
105
+ quantity: number;
106
+ price: {
107
+ net: number;
108
+ total: number;
109
+ gross: number;
110
+ base: number;
111
+ booking: number;
112
+ refunded: number;
113
+ discount: number;
114
+ currency: "AUD" | "AED" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BRL" | "BSD" | "BTN" | "BWP" | "BZD" | "CAD" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HUF" | "IDR" | "ILS" | "INR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MNT" | "MOP" | "MUR" | "MVR" | "MWK" | "MXN" | "MYR" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RWF" | "SAR" | "SBD" | "SCR" | "SEK" | "SGD" | "SHP" | "SLE" | "SRD" | "SVC" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "UYU" | "UZS" | "VND" | "VUV" | "WST" | "XAF" | "XCD" | "XOF" | "XPF" | "ZAR" | "ZMW" | "ZWL";
115
+ };
116
+ admissionId?: string;
117
+ sectionId?: string;
118
+ admission?: {
119
+ name: string;
120
+ capacity: number;
121
+ limit: number;
122
+ order: number;
123
+ entryStartsAt: string;
124
+ entryEndsAt: string;
125
+ saleStartsAt: string;
126
+ saleEndsAt: string;
127
+ saleEndsBehavior: "SALE_ENDED" | "SOLD_OUT" | "DOOR";
128
+ price: {
129
+ base: number;
130
+ booking: number;
131
+ currency: "AUD" | "AED" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BRL" | "BSD" | "BTN" | "BWP" | "BZD" | "CAD" | "CHF" | "CLP" | "CNY" | "COP" | "CRC" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HUF" | "IDR" | "ILS" | "INR" | "ISK" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MNT" | "MOP" | "MUR" | "MVR" | "MWK" | "MXN" | "MYR" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RWF" | "SAR" | "SBD" | "SCR" | "SEK" | "SGD" | "SHP" | "SLE" | "SRD" | "SVC" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "UYU" | "UZS" | "VND" | "VUV" | "WST" | "XAF" | "XCD" | "XOF" | "XPF" | "ZAR" | "ZMW" | "ZWL";
132
+ };
133
+ visibility: "ALWAYS" | "STACKED" | "HIDDEN";
134
+ teamId: string;
135
+ promoterId: string;
136
+ eventId: string;
137
+ eventSlug: string;
138
+ id?: string;
139
+ subtitle?: string;
140
+ description?: string;
141
+ available?: number;
142
+ sold?: number;
143
+ reserved?: number;
144
+ createdAt?: string;
145
+ updatedAt?: string;
146
+ passcode?: string;
147
+ sectionId?: string;
148
+ };
149
+ section?: {
150
+ name: string;
151
+ capacity: number;
152
+ limit: number;
153
+ order: number;
154
+ location: {
155
+ createdAt: string;
156
+ updatedAt: string;
157
+ name: string;
158
+ address: string;
159
+ country: string;
160
+ latitude: number;
161
+ longitude: number;
162
+ timeZone: string;
163
+ id?: string;
164
+ googlePlaceId?: string;
165
+ city?: string;
166
+ state?: string;
167
+ postcode?: string;
168
+ types?: string[];
169
+ description?: string;
170
+ image?: {
171
+ src: string;
172
+ alt: string;
173
+ width: number;
174
+ height: number;
175
+ };
176
+ venueId?: string;
177
+ };
178
+ teamId: string;
179
+ promoterId: string;
180
+ eventId: string;
181
+ eventSlug: string;
182
+ id?: string;
183
+ createdAt?: string;
184
+ updatedAt?: string;
185
+ available?: number;
186
+ sold?: number;
187
+ reserved?: number;
188
+ passcode?: string;
189
+ };
190
+ }>;
191
+ export declare function admissionPriceSavings(price: AdmissionPriceDisplay): number;
192
+ export declare function previewQuoteItems(event: DetailedEvent): {
193
+ admissionId: string;
194
+ quantity: number;
195
+ sectionId: string;
196
+ }[];
@@ -23,6 +23,7 @@ export namespace Components {
23
23
  * @default "https://api.session.services"
24
24
  */
25
25
  "apiUrl": string;
26
+ "couponCode"?: string;
26
27
  /**
27
28
  * @default false
28
29
  */
@@ -32,11 +33,19 @@ export namespace Components {
32
33
  */
33
34
  "enableAnalytics": boolean;
34
35
  "eventId": string;
36
+ "initialAdmissionPrices"?: | Record<string, { discount: number; gross: number; total: number }>
37
+ | string;
38
+ "initialPreviewQuote"?: OrderQuote | string;
35
39
  /**
36
40
  * @default "en-US"
37
41
  */
38
42
  "locale": string;
43
+ "passcode"?: string;
39
44
  "returnUrl"?: string;
45
+ /**
46
+ * @default false
47
+ */
48
+ "stickyCheckout": boolean;
40
49
  "tenantId": string;
41
50
  /**
42
51
  * @default "system"
@@ -98,6 +107,7 @@ declare namespace LocalJSX {
98
107
  * @default "https://api.session.services"
99
108
  */
100
109
  "apiUrl"?: string;
110
+ "couponCode"?: string;
101
111
  /**
102
112
  * @default false
103
113
  */
@@ -107,6 +117,9 @@ declare namespace LocalJSX {
107
117
  */
108
118
  "enableAnalytics"?: boolean;
109
119
  "eventId": string;
120
+ "initialAdmissionPrices"?: | Record<string, { discount: number; gross: number; total: number }>
121
+ | string;
122
+ "initialPreviewQuote"?: OrderQuote | string;
110
123
  /**
111
124
  * @default "en-US"
112
125
  */
@@ -117,7 +130,12 @@ declare namespace LocalJSX {
117
130
  checkoutUrl: string;
118
131
  }>) => void;
119
132
  "onErrorOccurred"?: (event: SessionServicesTicketingCustomEvent<{ error: string }>) => void;
133
+ "passcode"?: string;
120
134
  "returnUrl"?: string;
135
+ /**
136
+ * @default false
137
+ */
138
+ "stickyCheckout"?: boolean;
121
139
  "tenantId": string;
122
140
  /**
123
141
  * @default "system"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@session-services/web-elements",
3
3
  "private": false,
4
- "version": "0.1.20",
4
+ "version": "0.1.22",
5
5
  "main": "dist/index.cjs.js",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/types/components.d.ts",
@@ -75,20 +75,21 @@
75
75
  "@types/jest": "^29.5.14",
76
76
  "@types/node": "^24",
77
77
  "jest": "^29.7.0",
78
- "jest-cli": "^29.7.0",
79
78
  "puppeteer": "^24.3.0",
79
+ "rollup": "^4.53.3",
80
80
  "rollup-plugin-esbuild": "^6.2.1",
81
81
  "typescript": "5.9.3",
82
82
  "vitest": "4.0.15",
83
- "@session-services/sdk": "0.1.20",
84
- "@session-services/utils": "0.1.18",
85
- "@session-services/tsconfig": "0.1.0"
83
+ "@session-services/sdk": "0.1.22",
84
+ "@session-services/tsconfig": "0.1.0",
85
+ "@session-services/utils": "0.1.18"
86
86
  },
87
87
  "scripts": {
88
88
  "build": "stencil build",
89
- "dev": "stencil build --dev --watch --serve",
89
+ "dev": "pnpm --filter @session-services/sdk build && stencil build --dev --watch --serve",
90
+ "dev:dist": "stencil build --watch --no-open",
90
91
  "generate": "stencil generate",
91
- "start": "stencil build --dev --watch --serve",
92
+ "start": "pnpm --filter @session-services/sdk build && stencil build --dev --watch --serve",
92
93
  "clean": "git clean -xdf .cache .turbo dist node_modules",
93
94
  "format": "biome format .",
94
95
  "format:fix": "biome format --write .",