@ticketlayer/elements 0.4.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/cjs/{index-I9CoYv3k.js → index-DanPUX0s.js} +1 -1
  2. package/dist/cjs/index.cjs.js +2 -1
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/ticket-selector-BYVL13k_.js +3623 -0
  5. package/dist/cjs/ticketlayer-elements.cjs.js +2 -2
  6. package/dist/cjs/tl-buy-modal.cjs.entry.js +3 -3
  7. package/dist/cjs/tl-buy-tickets-button.cjs.entry.js +89 -74
  8. package/dist/cjs/tl-buy-tickets-wrapper.cjs.entry.js +61 -30
  9. package/dist/cjs/tl-cart-badge.cjs.entry.js +74 -61
  10. package/dist/cjs/tl-cart-drawer.cjs.entry.js +51 -23
  11. package/dist/cjs/tl-cart.cjs.entry.js +71 -103
  12. package/dist/cjs/tl-checkout-wrapper.cjs.entry.js +51 -29
  13. package/dist/cjs/tl-event-card.cjs.entry.js +43 -105
  14. package/dist/cjs/tl-event-list.cjs.entry.js +72 -35
  15. package/dist/cjs/tl-login.cjs.entry.js +74 -141
  16. package/dist/cjs/tl-my-orders.cjs.entry.js +52 -92
  17. package/dist/cjs/tl-occurrence-selector_2.cjs.entry.js +153 -921
  18. package/dist/cjs/tl-order-confirmation.cjs.entry.js +71 -107
  19. package/dist/cjs/tl-order-tickets_2.cjs.entry.js +48 -74
  20. package/dist/cjs/tl-promo-code.cjs.entry.js +50 -47
  21. package/dist/cjs/tl-seat-map.cjs.entry.js +3 -3
  22. package/dist/cjs/web-query-Ce73jB4k.js +16 -0
  23. package/dist/collection/components/tl-buy-modal/tl-buy-modal.js +2 -2
  24. package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.css +37 -0
  25. package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.js +105 -79
  26. package/dist/collection/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.js +73 -30
  27. package/dist/collection/components/tl-cart/tl-cart.js +82 -107
  28. package/dist/collection/components/tl-cart-badge/tl-cart-badge.js +62 -62
  29. package/dist/collection/components/tl-cart-drawer/tl-cart-drawer.js +56 -24
  30. package/dist/collection/components/tl-checkout-wrapper/tl-checkout-wrapper.js +61 -29
  31. package/dist/collection/components/tl-event-card/event-card-adapter.js +11 -23
  32. package/dist/collection/components/tl-event-card/tl-event-card.js +51 -84
  33. package/dist/collection/components/tl-event-list/tl-event-list.js +82 -38
  34. package/dist/collection/components/tl-login/tl-login.js +83 -147
  35. package/dist/collection/components/tl-my-orders/tl-my-orders.js +58 -96
  36. package/dist/collection/components/tl-occurrence-selector/tl-occurrence-selector.js +137 -516
  37. package/dist/collection/components/tl-order-confirmation/tl-order-confirmation.js +81 -115
  38. package/dist/collection/components/tl-order-tickets/tl-order-tickets.js +57 -92
  39. package/dist/collection/components/tl-promo-code/tl-promo-code.js +55 -50
  40. package/dist/collection/components/tl-seat-map/tl-seat-map.js +2 -2
  41. package/dist/collection/components/tl-ticket-selector/tl-ticket-selector.js +34 -20
  42. package/dist/collection/utils/order-summary.js +15 -135
  43. package/dist/collection/utils/testing/deep-text.js +29 -0
  44. package/dist/collection/utils/testing/fixtures.js +290 -0
  45. package/dist/collection/utils/testing/mock-sdk.js +13 -2
  46. package/dist/collection/utils/web-query.js +12 -0
  47. package/dist/collection/utils/web-storage.js +22 -0
  48. package/dist/components/ticket-selector.js +1 -0
  49. package/dist/components/tl-buy-modal.js +1 -1
  50. package/dist/components/tl-buy-tickets-button.js +1 -1
  51. package/dist/components/tl-buy-tickets-wrapper2.js +1 -1
  52. package/dist/components/tl-cart-badge.js +1 -1
  53. package/dist/components/tl-cart-drawer.js +1 -1
  54. package/dist/components/tl-cart2.js +1 -1
  55. package/dist/components/tl-checkout-wrapper2.js +1 -1
  56. package/dist/components/tl-event-card2.js +1 -1
  57. package/dist/components/tl-event-list.js +1 -1
  58. package/dist/components/tl-login2.js +1 -1
  59. package/dist/components/tl-my-orders.js +1 -1
  60. package/dist/components/tl-occurrence-selector2.js +1 -1
  61. package/dist/components/tl-order-confirmation.js +1 -1
  62. package/dist/components/tl-order-tickets2.js +1 -1
  63. package/dist/components/tl-promo-code.js +1 -1
  64. package/dist/components/tl-seat-map.js +1 -1
  65. package/dist/components/tl-ticket-selector2.js +1 -1
  66. package/dist/components/web-query.js +1 -0
  67. package/dist/elements.docs.json +34 -34
  68. package/dist/esm/{index-OoYV1faY.js → index-imfxp765.js} +1 -1
  69. package/dist/esm/index.js +2 -1
  70. package/dist/esm/loader.js +3 -3
  71. package/dist/esm/ticket-selector-BwChnHVC.js +3606 -0
  72. package/dist/esm/ticketlayer-elements.js +3 -3
  73. package/dist/esm/tl-buy-modal.entry.js +3 -3
  74. package/dist/esm/tl-buy-tickets-button.entry.js +90 -75
  75. package/dist/esm/tl-buy-tickets-wrapper.entry.js +62 -31
  76. package/dist/esm/tl-cart-badge.entry.js +75 -62
  77. package/dist/esm/tl-cart-drawer.entry.js +52 -24
  78. package/dist/esm/tl-cart.entry.js +72 -104
  79. package/dist/esm/tl-checkout-wrapper.entry.js +52 -30
  80. package/dist/esm/tl-event-card.entry.js +44 -106
  81. package/dist/esm/tl-event-list.entry.js +73 -36
  82. package/dist/esm/tl-login.entry.js +75 -142
  83. package/dist/esm/tl-my-orders.entry.js +53 -93
  84. package/dist/esm/tl-occurrence-selector_2.entry.js +152 -920
  85. package/dist/esm/tl-order-confirmation.entry.js +72 -108
  86. package/dist/esm/tl-order-tickets_2.entry.js +49 -75
  87. package/dist/esm/tl-promo-code.entry.js +51 -48
  88. package/dist/esm/tl-seat-map.entry.js +3 -3
  89. package/dist/esm/web-query-Bdbb2lk5.js +14 -0
  90. package/dist/ticketlayer-elements/index.esm.js +1 -1
  91. package/dist/ticketlayer-elements/p-45923d2c.entry.js +1 -0
  92. package/dist/ticketlayer-elements/p-492adc77.entry.js +1 -0
  93. package/dist/ticketlayer-elements/p-4cfc9e53.entry.js +1 -0
  94. package/dist/ticketlayer-elements/{p-ac264adc.entry.js → p-5135630e.entry.js} +1 -1
  95. package/dist/ticketlayer-elements/p-5bbce3b5.entry.js +1 -0
  96. package/dist/ticketlayer-elements/p-7d547721.entry.js +1 -0
  97. package/dist/ticketlayer-elements/p-7fe7b6ba.entry.js +1 -0
  98. package/dist/ticketlayer-elements/p-8122f0c1.entry.js +1 -0
  99. package/dist/ticketlayer-elements/p-98d40869.entry.js +1 -0
  100. package/dist/ticketlayer-elements/p-Bdbb2lk5.js +1 -0
  101. package/dist/ticketlayer-elements/p-BwChnHVC.js +1 -0
  102. package/dist/ticketlayer-elements/p-abec290a.entry.js +1 -0
  103. package/dist/ticketlayer-elements/p-ac79a3f6.entry.js +1 -0
  104. package/dist/ticketlayer-elements/p-d01f4429.entry.js +1 -0
  105. package/dist/ticketlayer-elements/p-d7ffaf46.entry.js +1 -0
  106. package/dist/ticketlayer-elements/p-e7170f3c.entry.js +1 -0
  107. package/dist/ticketlayer-elements/p-e787e862.entry.js +1 -0
  108. package/dist/ticketlayer-elements/p-f1ff931f.entry.js +1 -0
  109. package/dist/ticketlayer-elements/p-imfxp765.js +3 -0
  110. package/dist/ticketlayer-elements/ticketlayer-elements.css +1 -1
  111. package/dist/ticketlayer-elements/ticketlayer-elements.esm.js +1 -1
  112. package/dist/types/components/tl-buy-tickets-button/tl-buy-tickets-button.d.ts +40 -8
  113. package/dist/types/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.d.ts +20 -1
  114. package/dist/types/components/tl-cart/tl-cart.d.ts +40 -42
  115. package/dist/types/components/tl-cart-badge/tl-cart-badge.d.ts +22 -7
  116. package/dist/types/components/tl-cart-drawer/tl-cart-drawer.d.ts +28 -5
  117. package/dist/types/components/tl-checkout-wrapper/tl-checkout-wrapper.d.ts +18 -1
  118. package/dist/types/components/tl-event-card/event-card-adapter.d.ts +9 -20
  119. package/dist/types/components/tl-event-card/tl-event-card.d.ts +25 -28
  120. package/dist/types/components/tl-event-list/tl-event-list.d.ts +46 -6
  121. package/dist/types/components/tl-login/tl-login.d.ts +68 -22
  122. package/dist/types/components/tl-my-orders/tl-my-orders.d.ts +30 -12
  123. package/dist/types/components/tl-occurrence-selector/tl-occurrence-selector.d.ts +73 -161
  124. package/dist/types/components/tl-order-confirmation/tl-order-confirmation.d.ts +48 -15
  125. package/dist/types/components/tl-order-tickets/tl-order-tickets.d.ts +29 -31
  126. package/dist/types/components/tl-promo-code/tl-promo-code.d.ts +28 -10
  127. package/dist/types/components/tl-ticket/tl-ticket.d.ts +2 -11
  128. package/dist/types/components/tl-ticket-selector/tl-ticket-selector.d.ts +22 -4
  129. package/dist/types/components.d.ts +270 -62
  130. package/dist/types/utils/order-summary.d.ts +14 -97
  131. package/dist/types/utils/testing/deep-text.d.ts +13 -0
  132. package/dist/types/utils/testing/fixtures.d.ts +225 -0
  133. package/dist/types/utils/testing/mock-sdk.d.ts +14 -1
  134. package/dist/types/utils/web-query.d.ts +18 -0
  135. package/dist/types/utils/web-storage.d.ts +16 -0
  136. package/elements.catalogue.json +602 -50
  137. package/package.json +8 -6
  138. package/dist/cjs/money-BtmM2gt-.js +0 -118
  139. package/dist/cjs/order-summary-X3TlZxc2.js +0 -150
  140. package/dist/components/money.js +0 -1
  141. package/dist/components/order-summary.js +0 -1
  142. package/dist/esm/money-4ig0-WB6.js +0 -112
  143. package/dist/esm/order-summary-DiDtvfZM.js +0 -136
  144. package/dist/ticketlayer-elements/p-0814420f.entry.js +0 -1
  145. package/dist/ticketlayer-elements/p-0acabc26.entry.js +0 -1
  146. package/dist/ticketlayer-elements/p-109a3feb.entry.js +0 -1
  147. package/dist/ticketlayer-elements/p-1a4ba71c.entry.js +0 -1
  148. package/dist/ticketlayer-elements/p-318965c1.entry.js +0 -1
  149. package/dist/ticketlayer-elements/p-347c7fd1.entry.js +0 -1
  150. package/dist/ticketlayer-elements/p-3649c26d.entry.js +0 -1
  151. package/dist/ticketlayer-elements/p-40260cc9.entry.js +0 -1
  152. package/dist/ticketlayer-elements/p-4ig0-WB6.js +0 -1
  153. package/dist/ticketlayer-elements/p-55fd2f9f.entry.js +0 -1
  154. package/dist/ticketlayer-elements/p-62ee659b.entry.js +0 -1
  155. package/dist/ticketlayer-elements/p-7d4ecc2b.entry.js +0 -1
  156. package/dist/ticketlayer-elements/p-7f0abf95.entry.js +0 -1
  157. package/dist/ticketlayer-elements/p-BXpVGW51.js +0 -1
  158. package/dist/ticketlayer-elements/p-OoYV1faY.js +0 -3
  159. package/dist/ticketlayer-elements/p-a3c1b26c.entry.js +0 -1
  160. package/dist/ticketlayer-elements/p-aeb4c6fb.entry.js +0 -1
  161. package/dist/ticketlayer-elements/p-ba62541f.entry.js +0 -1
@@ -0,0 +1,3 @@
1
+ const t=()=>{},e=":root{--tl-primary:#6366f1;--tl-color-primary:var(--tl-primary);--tl-primary-foreground:#ffffff;--tl-color-primary-foreground:var(--tl-primary-foreground);--tl-secondary:#f3f4f6;--tl-color-secondary:var(--tl-secondary);--tl-secondary-foreground:#111827;--tl-color-secondary-foreground:var(--tl-secondary-foreground);--tl-accent:#ec4899;--tl-color-accent:var(--tl-accent);--tl-accent-foreground:#ffffff;--tl-color-accent-foreground:var(--tl-accent-foreground);--tl-background:#ffffff;--tl-color-background:var(--tl-background);--tl-foreground:#111827;--tl-color-foreground:var(--tl-foreground);--tl-card:#ffffff;--tl-color-card:var(--tl-card);--tl-muted:#f9fafb;--tl-color-muted:var(--tl-muted);--tl-muted-foreground:#6b7280;--tl-color-muted-foreground:var(--tl-muted-foreground);--tl-border:#e5e7eb;--tl-color-border:var(--tl-border);--tl-border-hover:#9ca3af;--tl-color-border-hover:var(--tl-border-hover);--tl-input:#e5e7eb;--tl-color-input:var(--tl-input);--tl-ring:#6366f1;--tl-color-ring:var(--tl-ring);--tl-success:#10b981;--tl-color-success:var(--tl-success);--tl-success-foreground:#ffffff;--tl-color-success-foreground:var(--tl-success-foreground);--tl-warning:#f59e0b;--tl-color-warning:var(--tl-warning);--tl-warning-foreground:#ffffff;--tl-color-warning-foreground:var(--tl-warning-foreground);--tl-warning-bg:#fef3c7;--tl-color-warning-bg:var(--tl-warning-bg);--tl-error:#ef4444;--tl-color-error:var(--tl-error);--tl-destructive:var(--tl-error);--tl-color-destructive:var(--tl-error);--tl-error-foreground:#ffffff;--tl-color-error-foreground:var(--tl-error-foreground);--tl-destructive-foreground:var(--tl-error-foreground);--tl-color-destructive-foreground:var(--tl-error-foreground);--tl-error-bg:#fee2e2;--tl-color-error-bg:var(--tl-error-bg);--tl-destructive-bg:var(--tl-error-bg);--tl-color-destructive-bg:var(--tl-error-bg);--tl-info:#3b82f6;--tl-color-info:var(--tl-info);--tl-info-foreground:#ffffff;--tl-color-info-foreground:var(--tl-info-foreground);--tl-info-bg:#dbeafe;--tl-color-info-bg:var(--tl-info-bg);--tl-font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--tl-font-family-mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace;--tl-font-size-base:16px;--tl-base-size:var(--tl-font-size-base);--tl-font-scale:1.25;--tl-radius-none:0px;--tl-radius-sm:0.25rem;--tl-radius-md:0.5rem;--tl-radius:var(--tl-radius-md);--tl-radius-lg:0.75rem;--tl-radius-full:9999px;--tl-spacing-1:0.25rem;--tl-spacing-2:0.5rem;--tl-spacing-3:0.75rem;--tl-spacing-4:1rem;--tl-spacing-5:1.25rem;--tl-spacing-6:1.5rem;--tl-spacing-8:2rem;--tl-duration-fast:120ms;--tl-duration-normal:200ms;--tl-duration-slow:320ms;--tl-easing-standard:cubic-bezier(0.2, 0, 0, 1);--tl-easing-emphasised:cubic-bezier(0.3, 0, 0, 1)}";function n(t,e,n){const o="undefined"!=typeof HTMLElement?HTMLElement.prototype:null;for(;t&&t!==o;){const o=Object.getOwnPropertyDescriptor(t,e);if(o&&(!n||o.get))return o;t=Object.getPrototypeOf(t)}}var o,r=(t,e)=>{var o;Object.entries(null!=(o=e.o.t)?o:{}).map((([o,[r]])=>{if(31&r||32&r){const r=t[o],l=n(Object.getPrototypeOf(t),o,!0)||Object.getOwnPropertyDescriptor(t,o);l&&Object.defineProperty(t,o,{get(){return l.get.call(this)},set(t){l.set.call(this,t)},configurable:!0,enumerable:!0}),e.l.has(o)?t[o]=e.l.get(o):void 0!==r&&(t[o]=r)}}))},l=t=>{if(t.__stencil__getHostRef)return t.__stencil__getHostRef()},s=(t,e)=>{e&&(t.__stencil__getHostRef=()=>e,e.i=t,512&e.o.u&&r(t,e))},i=(t,e)=>e in t,c=(t,e)=>(0,console.error)(t,e),f=new Map,u=new Map,a=new Map,d="slot-fb{display:contents}slot-fb[hidden]{display:none}",v="undefined"!=typeof window?window:{},p={u:0,v:"",jmp:t=>t(),raf:t=>requestAnimationFrame(t),ael:(t,e,n,o)=>t.addEventListener(e,n,o),rel:(t,e,n,o)=>t.removeEventListener(e,n,o),ce:(t,e)=>new CustomEvent(t,e)},m=t=>Promise.resolve(t),g=(()=>{try{return!!v.document.adoptedStyleSheets&&(new CSSStyleSheet,"function"==typeof(new CSSStyleSheet).replaceSync)}catch(t){}return!1})(),b=!!g&&(()=>!!v.document&&Object.getOwnPropertyDescriptor(v.document.adoptedStyleSheets,"length").writable)(),h=!1,y=[],w=[],$=()=>{var t;return(null==(t=v.document)?void 0:t.hidden)?k(O):p.raf(O)},S=(t,e)=>n=>{t.push(n),h||(h=!0,e&&4&p.u?k(O):$())},j=t=>{for(let e=0;e<t.length;e++)try{t[e](performance.now())}catch(t){c(t)}t.length=0},O=()=>{j(y),j(w),(h=y.length>0)&&$()},k=t=>m().then(t),M=S(w,!0);function N(){var t;const n=this.attachShadow({mode:"open"});if(void 0===o&&(o=null!=(t=function(t){if(!g)return;const e=new CSSStyleSheet;return e.replaceSync(t),e}(e))?t:null),o)b?n.adoptedStyleSheets.push(o):n.adoptedStyleSheets=[...n.adoptedStyleSheets,o];else if(!g){const t=document.createElement("style");t.innerHTML=e,n.prepend(t)}}var C=t=>{const e=F(t,"childNodes");t.tagName&&t.tagName.includes("-")&&t["s-cr"]&&"SLOT-FB"!==t.tagName&&E(e,t.tagName).forEach((t=>{1===t.nodeType&&"SLOT-FB"===t.tagName&&(t.hidden=!!R(t,x(t),!1).length)}));let n=0;for(n=0;n<e.length;n++){const t=e[n];1===t.nodeType&&F(t,"childNodes").length&&C(t)}};function E(t,e,n){let o,r=0,l=[];for(;r<t.length;r++){if(o=t[r],o["s-sr"]&&(!e||o["s-hn"]===e)&&(void 0===n||x(o)===n)&&(l.push(o),void 0!==n))return l;l=[...l,...E(F(o,"childNodes"),e,n)]}return l}var R=(t,e,n=!0)=>{const o=[];(n&&t["s-sr"]||!t["s-sr"])&&o.push(t);let r=t;for(;r=r.nextSibling;)x(r)!==e||!n&&r["s-sr"]||o.push(r);return o},T=(t,e)=>1===t.nodeType?null===t.getAttribute("slot")&&""===e||t.getAttribute("slot")===e:t["s-sn"]===e||""===e,x=t=>"string"==typeof t["s-sn"]?t["s-sn"]:1===t.nodeType&&t.getAttribute("slot")||void 0;function F(t,e){if("__"+e in t){const n=t["__"+e];return"function"!=typeof n?n:n.bind(t)}return"function"!=typeof t[e]?t[e]:t[e].bind(t)}function L(t){var e,n,o;return null!=(o=null==(n=null==(e=t.head)?void 0:e.querySelector('meta[name="csp-nonce"]'))?void 0:n.getAttribute("content"))?o:void 0}var z,A,D=new WeakMap,H=t=>"sc-"+t.p,P=t=>"object"==(t=typeof t)||"function"===t,U=(t,e,...n)=>{let o=null,r=null,l=null,s=!1,i=!1;const f=[],u=e=>{for(let n=0;n<e.length;n++)if(o=e[n],Array.isArray(o))u(o);else if(null!=o&&"boolean"!=typeof o){if(s="function"!=typeof t&&!P(o))o+="";else if("function"!=typeof t&&void 0===o.u){c("Invalid vNode child");continue}s&&i?f[f.length-1].m+=o:f.push(s?B(null,o):o),i=s}};if(u(n),e){e.key&&(r=e.key),e.name&&(l=e.name);{const t=e.className||e.class;t&&(e.class="object"!=typeof t?t:Object.keys(t).filter((e=>t[e])).join(" "))}}const a=B(t,null);return a.h=e,f.length>0&&(a.$=f),a.S=r,a.j=l,a},B=(t,e)=>({u:0,O:t,m:null!=e?e:null,k:null,$:null,h:null,S:null,j:null}),_={},W=t=>{if(!t)return;const e=Object.keys(t);if(0===e.length)return;let n=!1;for(const o of e){if(n)break;for(const e of t[o])if("string"==typeof e){n=!0;break}}if(!n)return t;const o={};for(const n of e)o[n]=t[n].map((t=>"string"==typeof t?{[t]:0}:t));return o},I=(t,e)=>null==t||P(t)?t:4&e?"false"!==t&&(""===t||!!t):2&e?"string"==typeof t?parseFloat(t):"number"==typeof t?t:NaN:1&e?t+"":t,V=t=>{var e;return null==(e=l(t))?void 0:e.$hostElement$},q=(t,e)=>{const n=V(t);return{emit:t=>Y(n,e,{bubbles:!0,composed:!0,cancelable:!0,detail:t})}},Y=(t,e,n)=>{const o=p.ce(e,n);return t.dispatchEvent(o),o},G=(t,e,n,o,r,s)=>{if(n===o)return;let c=i(t,e),f=e.toLowerCase();if("class"===e){const e=t.classList,r=Q(n);let l=Q(o);e.remove(...r.filter((t=>t&&!l.includes(t)))),e.add(...l.filter((t=>t&&!r.includes(t))))}else if("style"===e){for(const e in n)o&&null!=o[e]||(e.includes("-")?t.style.removeProperty(e):t.style[e]="");for(const e in o)n&&o[e]===n[e]||(e.includes("-")?t.style.setProperty(e,o[e]):t.style[e]=o[e])}else if("key"===e);else if("ref"===e)o&&wt(o,t);else if(c||"o"!==e[0]||"n"!==e[1]){if("a"===e[0]&&e.startsWith("attr:")){const n=e.slice(5);let r;{const e=l(t);if(e&&e.o&&e.o.t){const t=e.o.t[n];t&&t[1]&&(r=t[1])}}return r||(r=n.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),void(null==o||!1===o?!1===o&&""!==t.getAttribute(r)||t.removeAttribute(r):t.setAttribute(r,!0===o?"":o))}if("p"===e[0]&&e.startsWith("prop:")){const n=e.slice(5);try{t[n]=o}catch(t){}return}{const l=P(o);if((c||l&&null!==o)&&!r)try{if(t.tagName.includes("-"))t[e]!==o&&(t[e]=o);else{const r=null==o?"":o;"list"===e?c=!1:null!=n&&t[e]===r||("function"==typeof t.__lookupSetter__(e)?t[e]=r:t.setAttribute(e,r))}}catch(t){}null==o||!1===o?(!1!==o||""===t.getAttribute(e)||4&s&&!J(e))&&t.removeAttribute(e):(!c||4&s||r)&&!l&&1===t.nodeType&&t.setAttribute(e,o=!0===o?"":o)}}else if(e="-"===e[2]?e.slice(3):i(v,f)?f.slice(2):f[2]+e.slice(3),n||o){const r=e.endsWith(X);e=e.replace(tt,""),n&&p.rel(t,e,n,r),o&&p.ael(t,e,o,r)}},Z=new Set(["draggable","contenteditable","spellcheck"]),J=t=>Z.has(t)||t.startsWith("aria-"),K=/\s/,Q=t=>("object"==typeof t&&t&&"baseVal"in t&&(t=t.baseVal),t&&"string"==typeof t?t.split(K):[]),X="Capture",tt=RegExp(X+"$"),et=(t,e,n)=>{const o=11===e.k.nodeType&&e.k.host?e.k.host:e.k,r=t&&t.h||{},l=e.h||{};for(const t of nt(Object.keys(r)))t in l||G(o,t,r[t],void 0,n,e.u);for(const t of nt(Object.keys(l)))G(o,t,r[t],l[t],n,e.u)};function nt(t){return t.includes("ref")?[...t.filter((t=>"ref"!==t)),"ref"]:t}var ot=!1,rt=!1,lt=!1,st=!1,it=[],ct=[],ft=(t,e,n)=>{var o;const r=e.$[n];let l,s,i,c=0;if(ot||(lt=!0,"slot"===r.O&&(r.u|=r.$?2:1)),null!=r.m)l=r.k=v.document.createTextNode(r.m);else if(1&r.u)l=r.k=v.document.createTextNode(""),et(null,r,st);else{if(st||(st="svg"===r.O),!v.document)throw Error("You are trying to render a Stencil component in an environment that doesn't support the DOM.");if(l=r.k=v.document.createElementNS(st?"http://www.w3.org/2000/svg":"http://www.w3.org/1999/xhtml",!ot&&2&r.u?"slot-fb":r.O),st&&"foreignObject"===r.O&&(st=!1),et(null,r,st),r.$){const e="template"===r.O?l.content:l;for(c=0;c<r.$.length;++c)s=ft(t,r,c),s&&e.appendChild(s)}"svg"===r.O?st=!1:"foreignObject"===l.tagName&&(st=!0)}return l["s-hn"]=A,3&r.u&&(l["s-sr"]=!0,l["s-cr"]=z,l["s-sn"]=r.j||"",l["s-rf"]=null==(o=r.h)?void 0:o.ref,function(t){if(t.assignedElements||t.assignedNodes||!t["s-sr"])return;const e=e=>function(t){const n=[],o=this["s-sn"];(null==t?void 0:t.flatten)&&console.error("\n Flattening is not supported for Stencil non-shadow slots.\n You can use `.childNodes` to nested slot fallback content.\n If you have a particular use case, please open an issue on the Stencil repo.\n ");const r=this["s-cr"].parentElement;return(r.__childNodes?r.childNodes:(t=>{const e=[];for(let n=0;n<t.length;n++){const o=t[n]["s-nr"]||void 0;o&&o.isConnected&&e.push(o)}return e})(r.childNodes)).forEach((t=>{o===x(t)&&n.push(t)})),e?n.filter((t=>1===t.nodeType)):n}.bind(t);t.assignedElements=e(!0),t.assignedNodes=e(!1)}(l),i=t&&t.$&&t.$[n],i&&i.O===r.O&&t.k&&ut(t.k)),l},ut=t=>{p.u|=1;const e=t.closest(A.toLowerCase());if(null!=e){const n=Array.from(e.__childNodes||e.childNodes).find((t=>t["s-cr"])),o=Array.from(t.__childNodes||t.childNodes);for(const t of n?o.reverse():o)null!=t["s-sh"]&&($t(e,t,null!=n?n:null),t["s-sh"]=void 0,lt=!0)}p.u&=-2},at=(t,e)=>{p.u|=1;const n=Array.from(t.__childNodes||t.childNodes);if(t["s-sr"]){let e=t;for(;e=e.nextSibling;)e&&e["s-sn"]===t["s-sn"]&&e["s-sh"]===A&&n.push(e)}for(let t=n.length-1;t>=0;t--){const o=n[t];o["s-hn"]!==A&&o["s-ol"]&&($t(mt(o).parentNode,o,mt(o)),o["s-ol"].remove(),o["s-ol"]=void 0,o["s-sh"]=void 0,lt=!0),e&&at(o,e)}p.u&=-2},dt=(t,e,n,o,r,l)=>{let s,i=t["s-cr"]&&t["s-cr"].parentNode||t;for(i.shadowRoot&&i.tagName===A&&(i=i.shadowRoot),"template"===n.O&&(i=i.content);r<=l;++r)o[r]&&(s=ft(null,n,r),s&&(o[r].k=s,$t(i,s,mt(e))))},vt=(t,e,n)=>{for(let o=e;o<=n;++o){const e=t[o];if(e){const t=e.k;yt(e),t&&(rt=!0,t["s-ol"]?t["s-ol"].remove():at(t,!0),t.remove())}}},pt=(t,e,n=!1)=>t.O===e.O&&("slot"===t.O?t.j===e.j:n?(n&&!t.S&&e.S&&(t.S=e.S),!0):t.S===e.S),mt=t=>t&&t["s-ol"]||t,gt=(t,e,n=!1)=>{const o=e.k=t.k,r=t.$,l=e.$,s=e.O,i=e.m;let c;null==i?(st="svg"===s||"foreignObject"!==s&&st,"slot"!==s||ot||t.j!==e.j&&(e.k["s-sn"]=e.j||"",ut(e.k.parentElement)),et(t,e,st),null!==r&&null!==l?((t,e,n,o,r=!1)=>{let l,s,i=0,c=0,f=0,u=0,a=e.length-1,d=e[0],v=e[a],p=o.length-1,m=o[0],g=o[p];const b="template"===n.O?t.content:t;for(;i<=a&&c<=p;)if(null==d)d=e[++i];else if(null==v)v=e[--a];else if(null==m)m=o[++c];else if(null==g)g=o[--p];else if(pt(d,m,r))gt(d,m,r),d=e[++i],m=o[++c];else if(pt(v,g,r))gt(v,g,r),v=e[--a],g=o[--p];else if(pt(d,g,r))"slot"!==d.O&&"slot"!==g.O||at(d.k.parentNode,!1),gt(d,g,r),$t(b,d.k,v.k.nextSibling),d=e[++i],g=o[--p];else if(pt(v,m,r))"slot"!==d.O&&"slot"!==g.O||at(v.k.parentNode,!1),gt(v,m,r),$t(b,v.k,d.k),v=e[--a],m=o[++c];else{for(f=-1,u=i;u<=a;++u)if(e[u]&&null!==e[u].S&&e[u].S===m.S){f=u;break}f>=0?(s=e[f],s.O!==m.O?l=ft(e&&e[c],n,c):(gt(s,m,r),e[f]=void 0,l=s.k),m=o[++c]):(l=ft(e&&e[c],n,c),m=o[++c]),l&&$t(mt(d.k).parentNode,l,mt(d.k))}i>a?dt(t,null==o[p+1]?null:o[p+1].k,n,o,c,p):c>p&&vt(e,i,a)})(o,r,e,l,n):null!==l?(null!==t.m&&(o.textContent=""),dt(o,null,e,l,0,l.length-1)):!n&&null!==r&&vt(r,0,r.length-1),st&&"svg"===s&&(st=!1)):(c=o["s-cr"])?c.parentNode.textContent=i:t.m!==i&&(o.data=i)},bt=[],ht=t=>{let e,n,o;const r=t.__childNodes||t.childNodes;for(const t of r){if(t["s-sr"]&&(e=t["s-cr"])&&e.parentNode){n=e.parentNode.__childNodes||e.parentNode.childNodes;const r=t["s-sn"];for(o=n.length-1;o>=0;o--)if(e=n[o],!e["s-cn"]&&!e["s-nr"]&&e["s-hn"]!==t["s-hn"]&&(!e["s-sh"]||e["s-sh"]!==t["s-hn"]||""!==r&&x(e)===r))if(T(e,r)){let n=bt.find((t=>t.M===e));rt=!0,e["s-sn"]=e["s-sn"]||r,n?(n.M["s-sh"]=t["s-hn"],n.N=t):(e["s-sh"]=t["s-hn"],bt.push({N:t,M:e})),e["s-sr"]&&bt.map((t=>{T(t.M,e["s-sn"])&&(n=bt.find((t=>t.M===e)),n&&!t.N&&(t.N=n.N))}))}else bt.some((t=>t.M===e))||bt.push({M:e})}1===t.nodeType&&ht(t)}},yt=t=>{t.h&&t.h.ref&&it.push((()=>t.h.ref(null))),t.$&&t.$.map(yt)},wt=(t,e)=>{ct.push((()=>t(e)))},$t=(t,e,n,o)=>{if("string"==typeof e["s-sn"]){t.insertBefore(e,n);const{slotNode:r}=function(t,e){var n;if(!(e=e||(null==(n=t["s-ol"])?void 0:n.parentElement)))return{slotNode:null,slotName:""};const o=t["s-sn"]=x(t)||"";return{slotNode:E(F(e,"childNodes"),e.tagName,o)[0],slotName:o}}(e);return r&&!o&&function(t){t.dispatchEvent(new CustomEvent("slotchange",{bubbles:!1,cancelable:!1,composed:!1}))}(r),e}return(null==t?void 0:t.__insertBefore)?t.__insertBefore(e,n):null==t?void 0:t.insertBefore(e,n)},St=(t,e)=>{if(e&&!t.C&&e["s-p"]){const n=e["s-p"].push(new Promise((o=>t.C=()=>{e["s-p"].splice(n-1,1),o()})))}},jt=(t,e)=>{if(t.u|=16,4&t.u)return void(t.u|=512);St(t,t.R);const n=()=>Ot(t,e);if(!e)return M(n);queueMicrotask((()=>{n()}))},Ot=(t,e)=>{const n=t.$hostElement$,o=t.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 r;return e?(t.T&&(t.T=!1,Tt(o,"connectedCallback",void 0,n)),t.F.length&&t.F.forEach((t=>t(n))),r=Tt(o,"componentWillLoad",void 0,n)):r=Tt(o,"componentWillUpdate",void 0,n),r=kt(r,(()=>Tt(o,"componentWillRender",void 0,n))),kt(r,(()=>Nt(t,o,e)))},kt=(t,e)=>Mt(t)?t.then(e).catch((t=>{console.error(t),e()})):e(),Mt=t=>t instanceof Promise||t&&t.then&&"function"==typeof t.then,Nt=async(t,e,n)=>{var o;const r=t.$hostElement$,l=r["s-rc"];n&&(t=>{const e=t.o,n=t.$hostElement$,o=e.u,r=((t,e)=>{var n,o,r;const l=H(e),s=a.get(l);if(!v.document)return l;if(t=11===t.nodeType?t:v.document,s)if("string"==typeof s){let r,i=D.get(t=t.head||t);if(i||D.set(t,i=new Set),!i.has(l)){r=v.document.createElement("style"),r.textContent=s;const c=null!=(n=p.L)?n:L(v.document);if(null!=c&&r.setAttribute("nonce",c),!(1&e.u))if("HEAD"===t.nodeName){const e=t.querySelectorAll("link[rel=preconnect]"),n=e.length>0?e[e.length-1].nextSibling:t.querySelector("style");t.insertBefore(r,(null==n?void 0:n.parentNode)===t?n:null)}else if("host"in t)if(g){const e=new(null!=(o=t.defaultView)?o:t.ownerDocument.defaultView).CSSStyleSheet;e.replaceSync(s),b?t.adoptedStyleSheets.unshift(e):t.adoptedStyleSheets=[e,...t.adoptedStyleSheets]}else{const e=t.querySelector("style");e?e.textContent=s+e.textContent:t.prepend(r)}else t.append(r);1&e.u&&t.insertBefore(r,null),4&e.u&&(r.textContent+=d),i&&i.add(l)}}else{let e=D.get(t);if(e||D.set(t,e=new Set),!e.has(l)){const n=null!=(r=t.defaultView)?r:t.ownerDocument.defaultView;let o;if(s.constructor===n.CSSStyleSheet)o=s;else{o=new n.CSSStyleSheet;for(let t=0;t<s.cssRules.length;t++)o.insertRule(s.cssRules[t].cssText,t)}b?t.adoptedStyleSheets.push(o):t.adoptedStyleSheets=[...t.adoptedStyleSheets,o],e.add(l)}}return l})(n.shadowRoot?n.shadowRoot:n.getRootNode(),e);10&o&&(n["s-sc"]=r,n.classList.add(r+"-h"))})(t);Ct(t,e,r,n),l&&(l.map((t=>t())),r["s-rc"]=void 0);{const e=null!=(o=r["s-p"])?o:[],n=()=>Et(t);0===e.length?n():(Promise.all(e).then(n).catch(n),t.u|=4,e.length=0)}},Ct=(t,e,n,o)=>{try{e=e.render(),t.u&=-17,t.u|=2,((t,e,n=!1)=>{var o,r,l,s,i;const c=t.$hostElement$,f=t.o,u=t.A||B(null,null),a=(t=>t&&t.O===_)(e)?e:U(null,null,e);if(A=c.tagName,n&&a.h)for(const t of Object.keys(a.h))c.hasAttribute(t)&&!["key","ref","style","class"].includes(t)&&(a.h[t]=c[t]);if(a.O=null,a.u|=4,t.A=a,a.k=u.k=c.shadowRoot||c,ot=!(!(1&f.u)||128&f.u),z=c["s-cr"],rt=!1,gt(u,a,n),p.u|=1,lt){ht(a.k);for(const t of bt){const e=t.M;if(!e["s-ol"]&&v.document){const t=v.document.createTextNode("");t["s-nr"]=e,$t(e.parentNode,e["s-ol"]=t,e,n)}}for(const t of bt){const e=t.M,i=t.N;if(1===e.nodeType&&n&&(e["s-ih"]=null!=(o=e.hidden)&&o),i){const t=i.parentNode;let o=i.nextSibling;if(o&&1===o.nodeType){let n=null==(r=e["s-ol"])?void 0:r.previousSibling;for(;n;){let r=null!=(l=n["s-nr"])?l:null;if(r&&r["s-sn"]===e["s-sn"]&&t===(r.__parentNode||r.parentNode)){for(r=r.nextSibling;r===e||(null==r?void 0:r["s-sr"]);)r=null==r?void 0:r.nextSibling;if(!r||!r["s-nr"]){o=r;break}}n=n.previousSibling}}if((!o&&t!==(e.__parentNode||e.parentNode)||(e.__nextSibling||e.nextSibling)!==o)&&e!==o){if($t(t,e,o,n),8===e.nodeType&&e.nodeValue.startsWith("s-nt-")){const t=v.document.createTextNode(e.nodeValue.replace(/^s-nt-/,""));t["s-hn"]=e["s-hn"],t["s-sn"]=e["s-sn"],t["s-sh"]=e["s-sh"],t["s-sr"]=e["s-sr"],t["s-ol"]=e["s-ol"],t["s-ol"]["s-nr"]=t,$t(e.parentNode,t,e,n),e.parentNode.removeChild(e)}1===e.nodeType&&"SLOT-FB"!==e.tagName&&(e.hidden=null!=(s=e["s-ih"])&&s)}e&&"function"==typeof i["s-rf"]&&i["s-rf"](i)}else 1===e.nodeType&&(e.hidden=!0)}}if(rt&&C(a.k),p.u&=-2,bt.length=0,!ot&&!(1&f.u)&&c["s-cr"]){const t=a.k.__childNodes||a.k.childNodes;for(const e of t)if(e["s-hn"]!==A&&!e["s-sh"])if(n&&null==e["s-ih"]&&(e["s-ih"]=null!=(i=e.hidden)&&i),1===e.nodeType)e.hidden=!0;else if(3===e.nodeType&&e.nodeValue.trim()){const t=v.document.createComment("s-nt-"+e.nodeValue);t["s-sn"]=e["s-sn"],$t(e.parentNode,t,e,n),e.parentNode.removeChild(e)}}z=void 0,it.forEach((t=>t())),it.length=0,ct.forEach((t=>t())),ct.length=0})(t,e,o)}catch(e){c(e,t.$hostElement$)}return null},Et=t=>{const e=t.$hostElement$,n=t.i,o=t.R;Tt(n,"componentDidRender",void 0,e),64&t.u?Tt(n,"componentDidUpdate",void 0,e):(t.u|=64,xt(e),Tt(n,"componentDidLoad",void 0,e),t.D(e),o||Rt()),t.C&&(t.C(),t.C=void 0),512&t.u&&k((()=>jt(t,!1))),t.u&=-517},Rt=()=>{k((()=>Y(v,"appload",{detail:{namespace:"ticketlayer-elements"}})))},Tt=(t,e,n,o)=>{if(t&&t[e])try{return t[e](n)}catch(t){c(t,o)}},xt=t=>t.classList.add("hydrated"),Ft=(t,e,n,o)=>{const r=l(t);if(!r)return;if(!r)throw Error(`Couldn't find host element for "${o.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 s=r.$hostElement$,i=r.l.get(e),f=r.u,u=r.i;if(n=I(n,o.t[e][0]),!(8&f&&void 0!==i||n===i||Number.isNaN(i)&&Number.isNaN(n))){if(r.l.set(e,n),o.H){const t=o.H[e];t&&t.map((t=>{try{const[[o,l]]=Object.entries(t);(128&f||1&l)&&(u?u[o](n,i,e):r.F.push((()=>{r.i[o](n,i,e)})))}catch(t){c(t,s)}}))}if(2&f){if(u.componentShouldUpdate&&!1===u.componentShouldUpdate(n,i,e)&&!(16&f))return;16&f||jt(r,!1)}}},Lt=(t,e,o)=>{var r,s;const i=t.prototype;{t.watchers&&!e.H&&(e.H=W(t.watchers)),t.deserializers&&!e.P&&(e.P=t.deserializers),t.serializers&&!e.U&&(e.U=t.serializers);const c=Object.entries(null!=(r=e.t)?r:{});if(c.map((([t,[r]])=>{if(31&r||2&o&&32&r){const{get:s,set:c}=n(i,t)||{};s&&(e.t[t][0]|=2048),c&&(e.t[t][0]|=4096),(1&o||!s)&&Object.defineProperty(i,t,{get(){{if(!(2048&e.t[t][0]))return((t,e)=>l(this).l.get(e))(0,t);const n=l(this),o=n?n.i:i;if(!o)return;return o[t]}},configurable:!0,enumerable:!0}),Object.defineProperty(i,t,{set(n){const s=l(this);if(s){if(c)return void 0===(32&r?this[t]:s.$hostElement$[t])&&s.l.get(t)&&(n=s.l.get(t)),c.call(this,I(n,r)),void Ft(this,t,n=32&r?this[t]:s.$hostElement$[t],e);{if(!(1&o&&4096&e.t[t][0]))return Ft(this,t,n,e),void(1&o&&!s.i&&s.F.push((()=>{4096&e.t[t][0]&&s.i[t]!==s.l.get(t)&&(s.i[t]=n)})));const l=I(n,r),i=n=>{const o=s.i[t];!s.l.get(t)&&o&&s.l.set(t,o),s.i[t]=n,Ft(this,t,s.i[t],e)};s.i?i(l):(s.l.set(t,l),s.F.push((()=>{const e=s.l.get(t);s.i[t]!==e&&i(e)})))}}}})}})),1&o){const n=new Map;i.attributeChangedCallback=function(t,o,r){p.jmp((()=>{var s;const f=n.get(t),u=l(this);if(this.hasOwnProperty(f)&&(r=this[f],delete this[f]),i.hasOwnProperty(f)&&"number"==typeof this[f]&&this[f]==r)return;if(null==f){const n=null==u?void 0:u.u;if(u&&n&&!(8&n)&&r!==o){const l=u.i,i=null==(s=e.H)?void 0:s[t];null==i||i.forEach((e=>{const[[s,i]]=Object.entries(e);null!=l[s]&&(128&n||1&i)&&l[s].call(l,r,o,t)}))}return}const a=c.find((([t])=>t===f)),d=4&(a?a[1][0]:0),v=d&&null===r&&void 0===this[f];d&&(r=null!==r&&"false"!==r);const p=Object.getOwnPropertyDescriptor(i,f);v||r==this[f]||p.get&&!p.set||(this[f]=r)}))},t.observedAttributes=Array.from(new Set([...Object.keys(null!=(s=e.H)?s:{}),...c.filter((([t,e])=>31&e[0])).map((([t,e])=>{const o=e[1]||t;return n.set(o,t),o}))]))}}return t},zt=async(t,e,n)=>{var o;let r;try{if(!(32&e.u)){if(e.u|=32,e.u&=-1025,n.B){const l=((t,e)=>{var n;const o=t.p.replace(/-/g,"_"),r=t.B;if(!r)return;const l=f.get(r);if(l)return l[o];const s=null!=(n=u.get(r))?n:0,i=[s>0?"s-retry="+s:"",""].filter(Boolean).join("&");
2
+ /*!__STENCIL_STATIC_IMPORT_SWITCH__*/
3
+ return import(`./${r}.entry.js${i?"?"+i:""}`).then((t=>(u.delete(r),f.set(r,t),t[o])),(t=>{u.set(r,s+1),c(t,e.$hostElement$)}))})(n,e);if(l&&"then"in l){const t=()=>{};r=await l,t()}else r=l;if(!r)throw e.u&=-33,e._=(null!=(o=e._)?o:0)+1,e._<3&&(e.u|=1024),Error(`Constructor for "${n.p}#${e.W}" was not found`);r.isProxied||(n.H=W(r.watchers),n.U=r.serializers,n.P=r.deserializers,Lt(r,n,2),r.isProxied=!0);const s=()=>{};e.u|=8;try{new r(e)}catch(e){c(e,t)}e.u&=-9,e.u|=128,s(),4&n.u?e.T=!0:At(e.i,t)}else r=t.constructor,customElements.whenDefined(t.localName).then((()=>e.u|=128));if(r&&r.style){let t;"string"==typeof r.style&&(t=r.style);const e=H(n);if(!a.has(e)){const o=()=>{};((t,e,n)=>{let o=a.get(t);g&&n?(o=o||new CSSStyleSheet,"string"==typeof o?o=e:o.replaceSync(e)):o=e,a.set(t,o)})(e,t,!!(1&n.u)),o()}}}const l=e.R,s=()=>jt(e,!0);l&&l["s-rc"]?l["s-rc"].push(s):s()}catch(n){c(n,t),e.C&&(e.C(),e.C=void 0),!e.D||1024&e.u||e.D(t)}},At=(t,e)=>{Tt(t,"connectedCallback",void 0,e)},Dt=(t,e)=>{Tt(t,"disconnectedCallback",void 0,e||t)},Ht=(t,e={})=>{var n;if(!v.document)return void console.warn("Stencil: No document found. Skipping bootstrapping lazy components.");const o=[],r=e.exclude||[],s=v.customElements,i=v.document.head,c=i.querySelector("meta[charset]"),f=v.document.createElement("style"),u=[];let a,m=!0;Object.assign(p,e),p.v=new URL(e.resourcesUrl||"./",v.document.baseURI).href;let g=!1;if(t.map((t=>{t[1].map((e=>{var n,i;const c={u:e[0],p:e[1],t:e[2],I:e[3]};4&c.u&&(g=!0),c.t=e[2],c.H=W(e[4]),c.U=null!=(n=e[5])?n:{},c.P=null!=(i=e[6])?i:{};const f=c.p,d=class extends HTMLElement{"s-p";"s-rc";hasRegisteredEventListeners=!1;constructor(t){if(super(t),((t,e)=>{const n={u:0,$hostElement$:t,o:e,l:new Map,V:new Map};n.q=new Promise((t=>n.D=t)),t["s-p"]=[],t["s-rc"]=[],n.F=[];const o=n;t.__stencil__getHostRef=()=>o})(t=this,c),1&c.u)if(t.shadowRoot){if("open"!==t.shadowRoot.mode)throw Error(`Unable to re-use existing shadow root for ${c.p}! Mode is set to ${t.shadowRoot.mode} but Stencil only supports open shadow roots.`)}else N.call(t,c)}connectedCallback(){l(this)&&(this.hasRegisteredEventListeners||(this.hasRegisteredEventListeners=!0),a&&(clearTimeout(a),a=null),m?u.push(this):p.jmp((()=>(t=>{if(!(1&p.u)){const e=l(t);if(!e)return;const n=e.o,o=()=>{};if(1&e.u)(null==e?void 0:e.i)?At(e.i,t):1024&e.u?setTimeout((()=>zt(t,e,n)),1e3):(null==e?void 0:e.q)&&e.q.then((()=>At(e.i,t)));else{e.u|=1,12&n.u&&(t=>{if(!v.document)return;const e=t["s-cr"]=v.document.createComment("");e["s-cn"]=!0,$t(t,e,t.firstChild)})(t);{let n=t;for(;n=n.parentNode||n.host;)if(n["s-p"]){St(e,e.R=n);break}}n.t&&Object.entries(n.t).map((([e,[n]])=>{if(31&n&&Object.prototype.hasOwnProperty.call(t,e)){const n=t[e];delete t[e],t[e]=n}})),zt(t,e,n)}o()}})(this))))}disconnectedCallback(){p.jmp((()=>(async t=>{if(!(1&p.u)){const e=l(t);(null==e?void 0:e.i)?Dt(e.i,t):(null==e?void 0:e.q)&&e.q.then((()=>Dt(e.i,t)))}D.has(t)&&D.delete(t),t.shadowRoot&&D.has(t.shadowRoot)&&D.delete(t.shadowRoot)})(this))),k((()=>{var t;const e=l(this);if(!e)return;const n=u.findIndex((t=>t===this));n>-1&&u.splice(n,1),(null==(t=null==e?void 0:e.A)?void 0:t.k)instanceof Node&&!e.A.k.isConnected&&delete e.A.k}))}componentOnReady(){var t;return null==(t=l(this))?void 0:t.q}};c.B=t[0],r.includes(f)||s.get(f)||(o.push(f),s.define(f,Lt(d,c,1)))}))})),o.length>0&&(g&&(f.textContent+=d),f.textContent+=o.sort()+"{visibility:hidden}.hydrated{visibility:inherit}",f.innerHTML.length)){f.setAttribute("data-styles","");const t=null!=(n=p.L)?n:L(v.document);null!=t&&f.setAttribute("nonce",t),i.insertBefore(f,c?c.nextSibling:i.firstChild)}m=!1,u.length?u.map((t=>t.connectedCallback())):p.jmp((()=>a=setTimeout(Rt,30)))},Pt=t=>p.L=t;export{_ as H,V as a,Ht as b,q as c,t as g,U as h,m as p,s as r,Pt as s}
@@ -1 +1 @@
1
- :root{--tl-primary:#6366f1;--tl-color-primary:var(--tl-primary);--tl-primary-foreground:#ffffff;--tl-color-primary-foreground:var(--tl-primary-foreground);--tl-secondary:#f3f4f6;--tl-color-secondary:var(--tl-secondary);--tl-secondary-foreground:#111827;--tl-color-secondary-foreground:var(--tl-secondary-foreground);--tl-accent:#ec4899;--tl-color-accent:var(--tl-accent);--tl-accent-foreground:#ffffff;--tl-color-accent-foreground:var(--tl-accent-foreground);--tl-background:#ffffff;--tl-color-background:var(--tl-background);--tl-foreground:#111827;--tl-color-foreground:var(--tl-foreground);--tl-card:#ffffff;--tl-color-card:var(--tl-card);--tl-muted:#f9fafb;--tl-color-muted:var(--tl-muted);--tl-muted-foreground:#6b7280;--tl-color-muted-foreground:var(--tl-muted-foreground);--tl-border:#e5e7eb;--tl-color-border:var(--tl-border);--tl-border-hover:#9ca3af;--tl-color-border-hover:var(--tl-border-hover);--tl-input:#e5e7eb;--tl-color-input:var(--tl-input);--tl-ring:#6366f1;--tl-color-ring:var(--tl-ring);--tl-success:#10b981;--tl-color-success:var(--tl-success);--tl-success-foreground:#ffffff;--tl-color-success-foreground:var(--tl-success-foreground);--tl-warning:#f59e0b;--tl-color-warning:var(--tl-warning);--tl-warning-foreground:#ffffff;--tl-color-warning-foreground:var(--tl-warning-foreground);--tl-warning-bg:#fef3c7;--tl-color-warning-bg:var(--tl-warning-bg);--tl-error:#ef4444;--tl-color-error:var(--tl-error);--tl-destructive:var(--tl-error);--tl-color-destructive:var(--tl-error);--tl-error-foreground:#ffffff;--tl-color-error-foreground:var(--tl-error-foreground);--tl-destructive-foreground:var(--tl-error-foreground);--tl-color-destructive-foreground:var(--tl-error-foreground);--tl-error-bg:#fee2e2;--tl-color-error-bg:var(--tl-error-bg);--tl-destructive-bg:var(--tl-error-bg);--tl-color-destructive-bg:var(--tl-error-bg);--tl-font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--tl-font-family-mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace;--tl-font-size-base:16px;--tl-base-size:var(--tl-font-size-base);--tl-font-scale:1.25;--tl-radius-none:0px;--tl-radius-sm:0.25rem;--tl-radius-md:0.5rem;--tl-radius:var(--tl-radius-md);--tl-radius-lg:0.75rem;--tl-radius-full:9999px;--tl-spacing-1:0.25rem;--tl-spacing-2:0.5rem;--tl-spacing-3:0.75rem;--tl-spacing-4:1rem;--tl-spacing-5:1.25rem;--tl-spacing-6:1.5rem;--tl-spacing-8:2rem;--tl-duration-fast:120ms;--tl-duration-normal:200ms;--tl-duration-slow:320ms;--tl-easing-standard:cubic-bezier(0.2, 0, 0, 1);--tl-easing-emphasised:cubic-bezier(0.3, 0, 0, 1)}
1
+ :root{--tl-primary:#6366f1;--tl-color-primary:var(--tl-primary);--tl-primary-foreground:#ffffff;--tl-color-primary-foreground:var(--tl-primary-foreground);--tl-secondary:#f3f4f6;--tl-color-secondary:var(--tl-secondary);--tl-secondary-foreground:#111827;--tl-color-secondary-foreground:var(--tl-secondary-foreground);--tl-accent:#ec4899;--tl-color-accent:var(--tl-accent);--tl-accent-foreground:#ffffff;--tl-color-accent-foreground:var(--tl-accent-foreground);--tl-background:#ffffff;--tl-color-background:var(--tl-background);--tl-foreground:#111827;--tl-color-foreground:var(--tl-foreground);--tl-card:#ffffff;--tl-color-card:var(--tl-card);--tl-muted:#f9fafb;--tl-color-muted:var(--tl-muted);--tl-muted-foreground:#6b7280;--tl-color-muted-foreground:var(--tl-muted-foreground);--tl-border:#e5e7eb;--tl-color-border:var(--tl-border);--tl-border-hover:#9ca3af;--tl-color-border-hover:var(--tl-border-hover);--tl-input:#e5e7eb;--tl-color-input:var(--tl-input);--tl-ring:#6366f1;--tl-color-ring:var(--tl-ring);--tl-success:#10b981;--tl-color-success:var(--tl-success);--tl-success-foreground:#ffffff;--tl-color-success-foreground:var(--tl-success-foreground);--tl-warning:#f59e0b;--tl-color-warning:var(--tl-warning);--tl-warning-foreground:#ffffff;--tl-color-warning-foreground:var(--tl-warning-foreground);--tl-warning-bg:#fef3c7;--tl-color-warning-bg:var(--tl-warning-bg);--tl-error:#ef4444;--tl-color-error:var(--tl-error);--tl-destructive:var(--tl-error);--tl-color-destructive:var(--tl-error);--tl-error-foreground:#ffffff;--tl-color-error-foreground:var(--tl-error-foreground);--tl-destructive-foreground:var(--tl-error-foreground);--tl-color-destructive-foreground:var(--tl-error-foreground);--tl-error-bg:#fee2e2;--tl-color-error-bg:var(--tl-error-bg);--tl-destructive-bg:var(--tl-error-bg);--tl-color-destructive-bg:var(--tl-error-bg);--tl-info:#3b82f6;--tl-color-info:var(--tl-info);--tl-info-foreground:#ffffff;--tl-color-info-foreground:var(--tl-info-foreground);--tl-info-bg:#dbeafe;--tl-color-info-bg:var(--tl-info-bg);--tl-font-family:system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;--tl-font-family-mono:ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace;--tl-font-size-base:16px;--tl-base-size:var(--tl-font-size-base);--tl-font-scale:1.25;--tl-radius-none:0px;--tl-radius-sm:0.25rem;--tl-radius-md:0.5rem;--tl-radius:var(--tl-radius-md);--tl-radius-lg:0.75rem;--tl-radius-full:9999px;--tl-spacing-1:0.25rem;--tl-spacing-2:0.5rem;--tl-spacing-3:0.75rem;--tl-spacing-4:1rem;--tl-spacing-5:1.25rem;--tl-spacing-6:1.5rem;--tl-spacing-8:2rem;--tl-duration-fast:120ms;--tl-duration-normal:200ms;--tl-duration-slow:320ms;--tl-easing-standard:cubic-bezier(0.2, 0, 0, 1);--tl-easing-emphasised:cubic-bezier(0.3, 0, 0, 1)}
@@ -1 +1 @@
1
- import{p as e,g as r,b as t}from"./p-OoYV1faY.js";export{s as setNonce}from"./p-OoYV1faY.js";(()=>{const r=import.meta.url,t={};return""!==r&&(t.resourcesUrl=new URL(".",r).href),e(t)})().then((async e=>(await r(),t([["p-a3c1b26c",[[1,"tl-my-orders",{emptyMessage:[1,"empty-message"],columns:[2],orders:[32],authenticated:[32],loading:[32],error:[32],expandedId:[32]}]]],["p-ac264adc",[[1,"tl-buy-modal",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],step:[32],eventName:[32],imageUrl:[32],venueLabel:[32],dateSummary:[32],selectedOccurrenceId:[32],occurrenceCount:[32],occurrenceLabel:[32],error:[32]}]]],["p-0acabc26",[[1,"tl-order-confirmation",{orderId:[1,"order-id"],customerEmail:[1,"customer-email"],showTickets:[4,"show-tickets"],columns:[2],order:[32],resolvedOrderId:[32],loading:[32],error:[32],paymentFailed:[32],occurrence:[32],signedInCustomer:[32]},null,{orderId:[{watchOrderId:0}]}]]],["p-7d4ecc2b",[[1,"tl-cart-drawer",{side:[1],heading:[1],open:[1028],visible:[32]},null,{open:[{onOpenProp:0}]}]]],["p-318965c1",[[1,"tl-event-list",{limit:[2],category:[1],columns:[2],events:[32],loading:[32],error:[32]},null,{limit:[{watchFiltersChange:0}],category:[{watchFiltersChange:0}]}]]],["p-55fd2f9f",[[1,"tl-buy-tickets-button",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],state:[1],label:[1],variant:[1],size:[1],fullWidth:[4,"full-width"],price:[2],currency:[1],pricePrefix:[1,"price-prefix"],disabled:[4],isHovered:[32]}]]],["p-aeb4c6fb",[[260,"tl-buy-tickets-wrapper",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],disabled:[4]}]]],["p-ba62541f",[[1,"tl-cart-badge",{showEmpty:[4,"show-empty"],icon:[1],size:[1],badgeOnly:[4,"badge-only"],itemCount:[32]}]]],["p-1a4ba71c",[[260,"tl-checkout-wrapper",{disabled:[4]}]]],["p-3649c26d",[[1,"tl-promo-code",{placeholder:[1],buttonLabel:[1,"button-label"],code:[32],applying:[32],applied:[32],error:[32]}]]],["p-109a3feb",[[1,"tl-seat-map",{occurrenceId:[1,"occurrence-id"],hboUrl:[1,"hbo-url"],apiUrl:[1,"api-url"],height:[1],width:[1],isReady:[32],isLoading:[32],error:[32],seatsInCart:[32]},null,{occurrenceId:[{watchOccurrenceId:0}]}]]],["p-347c7fd1",[[1,"tl-cart",{showCheckoutButton:[4,"show-checkout-button"],checkoutLabel:[1,"checkout-label"],showRemoveButtons:[4,"show-remove-buttons"],compact:[4],cart:[32],loading:[32],error:[32],removingItemId:[32]}]]],["p-7f0abf95",[[1,"tl-event-card",{event:[16],eventId:[1,"event-id"],loadedEvent:[32],loading:[32],error:[32]},null,{eventId:[{watchEventId:0}]}]]],["p-0814420f",[[1,"tl-login",{heading:[1],allowCodeEntry:[4,"allow-code-entry"],phase:[32],email:[32],code:[32],busy:[32],error:[32],notice:[32],customer:[32]}]]],["p-62ee659b",[[1,"tl-occurrence-selector",{eventId:[1,"event-id"],displayMode:[1,"display-mode"],orientation:[1],theme:[16],loading:[32],error:[32],occurrences:[32],currentMonth:[32],selectedDate:[32],computedDisplayMode:[32],containerWidth:[32]},null,{eventId:[{onEventIdChange:0}]}],[1,"tl-ticket-selector",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],showButton:[4,"show-button"],buttonLabel:[1,"button-label"],view:[32]},null,{eventId:[{watchPropsChange:0}],occurrenceId:[{watchPropsChange:0}],showButton:[{syncProps:0}],buttonLabel:[{syncProps:0}]}]]],["p-40260cc9",[[1,"tl-order-tickets",{orderId:[1,"order-id"],columns:[2],tickets:[32],loading:[32],error:[32],issuing:[32]},null,{orderId:[{watchOrder:0}]}],[1,"tl-ticket",{ticket:[16],orderId:[1,"order-id"],qrSvg:[32],downloading:[32]},null,{ticket:[{generateQr:0}]}]]]],e))));
1
+ import{p as e,g as c,b as r}from"./p-imfxp765.js";export{s as setNonce}from"./p-imfxp765.js";(()=>{const c=import.meta.url,r={};return""!==c&&(r.resourcesUrl=new URL(".",c).href),e(r)})().then((async e=>(await c(),r([["p-4cfc9e53",[[1,"tl-my-orders",{emptyMessage:[1,"empty-message"],columns:[2],view:[32]},null,{emptyMessage:[{syncProps:0}],columns:[{syncProps:0}]}]]],["p-5135630e",[[1,"tl-buy-modal",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],step:[32],eventName:[32],imageUrl:[32],venueLabel:[32],dateSummary:[32],selectedOccurrenceId:[32],occurrenceCount:[32],occurrenceLabel:[32],error:[32]}]]],["p-7fe7b6ba",[[1,"tl-order-confirmation",{orderId:[1,"order-id"],customerEmail:[1,"customer-email"],showTickets:[4,"show-tickets"],columns:[2],view:[32]},null,{orderId:[{watchOrderId:0}],customerEmail:[{syncProps:0}],showTickets:[{syncProps:0}],columns:[{syncProps:0}]}]]],["p-d7ffaf46",[[1,"tl-cart-drawer",{side:[1],heading:[1],open:[1028],view:[32]},null,{side:[{syncProps:0}],heading:[{syncProps:0}],open:[{onOpenProp:0}]}]]],["p-7d547721",[[1,"tl-event-card",{event:[16],eventId:[1,"event-id"],view:[32]},null,{event:[{syncProps:0}],eventId:[{watchEventId:0}]}]]],["p-f1ff931f",[[1,"tl-event-list",{limit:[2],category:[1],columns:[2],view:[32]},null,{limit:[{watchFiltersChange:0}],category:[{watchFiltersChange:0}],columns:[{syncProps:0}]}]]],["p-e787e862",[[1,"tl-buy-tickets-button",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],state:[1],label:[1],variant:[1],size:[1],fullWidth:[4,"full-width"],price:[2],currency:[1],pricePrefix:[1,"price-prefix"],disabled:[4],isHovered:[32],view:[32]},null,{eventId:[{syncProps:0}],occurrenceId:[{syncProps:0}],state:[{syncProps:0}],label:[{syncProps:0}],variant:[{syncProps:0}],size:[{syncProps:0}],fullWidth:[{syncProps:0}],price:[{syncProps:0}],currency:[{syncProps:0}],pricePrefix:[{syncProps:0}],disabled:[{syncProps:0}]}]]],["p-5bbce3b5",[[260,"tl-buy-tickets-wrapper",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],disabled:[4],view:[32]},null,{eventId:[{syncProps:0}],occurrenceId:[{syncProps:0}],disabled:[{syncProps:0}]}]]],["p-98d40869",[[1,"tl-cart-badge",{showEmpty:[4,"show-empty"],icon:[1],size:[1],badgeOnly:[4,"badge-only"],view:[32]},null,{showEmpty:[{syncProps:0}],icon:[{syncProps:0}],size:[{syncProps:0}],badgeOnly:[{syncProps:0}]}]]],["p-ac79a3f6",[[260,"tl-checkout-wrapper",{disabled:[4],view:[32]},null,{disabled:[{syncProps:0}]}]]],["p-e7170f3c",[[1,"tl-promo-code",{placeholder:[1],buttonLabel:[1,"button-label"],view:[32]},null,{placeholder:[{syncProps:0}],buttonLabel:[{syncProps:0}]}]]],["p-d01f4429",[[1,"tl-seat-map",{occurrenceId:[1,"occurrence-id"],hboUrl:[1,"hbo-url"],apiUrl:[1,"api-url"],height:[1],width:[1],isReady:[32],isLoading:[32],error:[32],seatsInCart:[32]},null,{occurrenceId:[{watchOccurrenceId:0}]}]]],["p-45923d2c",[[1,"tl-cart",{showCheckoutButton:[4,"show-checkout-button"],checkoutLabel:[1,"checkout-label"],showRemoveButtons:[4,"show-remove-buttons"],compact:[4],view:[32]},null,{showCheckoutButton:[{syncProps:0}],checkoutLabel:[{syncProps:0}],showRemoveButtons:[{syncProps:0}],compact:[{syncProps:0}]}]]],["p-abec290a",[[1,"tl-login",{heading:[1],allowCodeEntry:[4,"allow-code-entry"],view:[32]},null,{heading:[{syncProps:0}],allowCodeEntry:[{syncProps:0}]}]]],["p-492adc77",[[1,"tl-occurrence-selector",{eventId:[1,"event-id"],displayMode:[1,"display-mode"],orientation:[1],theme:[16],view:[32]},null,{eventId:[{watchSubject:0}],displayMode:[{syncProps:0}],orientation:[{syncProps:0}],theme:[{syncProps:0}]}],[1,"tl-ticket-selector",{eventId:[1,"event-id"],occurrenceId:[1,"occurrence-id"],showButton:[4,"show-button"],buttonLabel:[1,"button-label"],view:[32]},null,{eventId:[{watchPropsChange:0}],occurrenceId:[{watchPropsChange:0}],showButton:[{syncProps:0}],buttonLabel:[{syncProps:0}]}]]],["p-8122f0c1",[[1,"tl-order-tickets",{orderId:[1,"order-id"],columns:[2],view:[32]},null,{orderId:[{watchOrder:0}],columns:[{syncProps:0}]}],[1,"tl-ticket",{ticket:[16],orderId:[1,"order-id"],qrSvg:[32],downloading:[32]},null,{ticket:[{generateQr:0}]}]]]],e))));
@@ -5,11 +5,20 @@
5
5
  *
6
6
  * @element tl-buy-tickets-button
7
7
  *
8
- * Supports multiple states:
9
- * - available: Default "Buy Tickets" with primary colour
10
- * - soldOut: "Sold Out" with red colour
11
- * - waitlist: "Join Waitlist" with blue colour
12
- * - comingSoon: "On Sale Soon" with yellow colour
8
+ * The web harness for `buyTicketsButtonCore`. What a press does, which states
9
+ * are not pressable, the label each state defaults to and how the price reads
10
+ * are all in `@ticketlayer/elements-core` (AGENTS.md, TKT-11); what is left
11
+ * here is the Stencil surface, the icons, the hover, and which key counts as a
12
+ * press.
13
+ *
14
+ * Each state is painted from a @ticketlayer/theme token family rather than
15
+ * from a literal, so a channel theme reaches every one of them. The core says
16
+ * which state the button is in and the stylesheet says which family that
17
+ * state paints with, because a core cannot map a status onto one:
18
+ * - available: "Buy Tickets", the primary family
19
+ * - soldOut: "Sold Out", the error family
20
+ * - waitlist: "Join Waitlist", the info family
21
+ * - comingSoon: "On Sale Soon", the warning family
13
22
  *
14
23
  * @example
15
24
  * <tl-buy-tickets-button event-id="evt_xxx"></tl-buy-tickets-button>
@@ -17,6 +26,13 @@
17
26
  * <tl-buy-tickets-button event-id="evt_xxx" price="2500" currency="GBP"></tl-buy-tickets-button>
18
27
  */
19
28
  import { EventEmitter } from '../../stencil-public-runtime';
29
+ import { type BuyTicketsButtonDerived, type BuyTicketsButtonProps, type BuyTicketsButtonState, type BuyTicketsButtonStatus } from '@ticketlayer/elements-core';
30
+ /**
31
+ * The unions this element's props accept. They are the same four, three and
32
+ * three the core declares, written out here because Stencil reads the
33
+ * harness's own types to build `components.d.ts` and the catalogue emitter
34
+ * checks the two against each other, so they cannot drift.
35
+ */
20
36
  export type ButtonState = 'available' | 'soldOut' | 'waitlist' | 'comingSoon';
21
37
  export type ButtonVariant = 'primary' | 'secondary' | 'outline';
22
38
  export type ButtonSize = 'sm' | 'md' | 'lg';
@@ -43,16 +59,32 @@ export declare class TlBuyTicketsButton {
43
59
  pricePrefix: string;
44
60
  /** Disabled state */
45
61
  disabled: boolean;
62
+ /**
63
+ * Whether the pointer is over the button. A pointer is not a fact every
64
+ * runtime has, so this stays here for the same reason the key handling
65
+ * does: the core knows nothing of mice.
66
+ */
46
67
  isHovered: boolean;
47
68
  /** Emitted when button is clicked (before modal opens) */
48
69
  tlClick: EventEmitter<{
49
70
  eventId: string;
50
71
  occurrenceId?: string;
51
72
  }>;
73
+ private element;
74
+ private unsubscribe?;
75
+ private teardown?;
76
+ /** The core's whole view. Assigning it is what makes Stencil re-render. */
77
+ view: import("@ticketlayer/elements-core").ElementView<BuyTicketsButtonProps, BuyTicketsButtonState, BuyTicketsButtonDerived, BuyTicketsButtonStatus, {
78
+ available: string;
79
+ soldOut: string;
80
+ waitlist: string;
81
+ comingSoon: string;
82
+ }>;
83
+ syncProps(): void;
84
+ connectedCallback(): void;
85
+ disconnectedCallback(): void;
86
+ private forward;
52
87
  private handleClick;
53
- private formatPrice;
54
- private getStateConfig;
55
- private isInteractive;
56
88
  render(): any;
57
89
  private renderTicketIcon;
58
90
  private renderSoldOutIcon;
@@ -1,4 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { type BuyTicketsWrapperDerived, type BuyTicketsWrapperProps, type BuyTicketsWrapperState, type BuyTicketsWrapperStatus } from '@ticketlayer/elements-core';
2
3
  import { OrderResult } from '../../utils/sdk-connector';
3
4
  /**
4
5
  * @component tl-buy-tickets-wrapper
@@ -6,6 +7,12 @@ import { OrderResult } from '../../utils/sdk-connector';
6
7
  * Wraps any content and opens the Ticketlayer modal when clicked.
7
8
  * Uses the SDK's modal manager which handles the iframe overlay.
8
9
  *
10
+ * The web harness for `buyTicketsWrapperCore`. What a press does, what it
11
+ * announces and what happens when no client has been published are all in
12
+ * `@ticketlayer/elements-core` (AGENTS.md, TKT-11); what is left here is the
13
+ * Stencil surface, the accessibility attributes and the one genuinely web
14
+ * question the core refuses to answer - which key counts as a press.
15
+ *
9
16
  * @slot - Content to display (typically a button)
10
17
  *
11
18
  * @example
@@ -19,7 +26,6 @@ import { OrderResult } from '../../utils/sdk-connector';
19
26
  * </tl-buy-tickets-wrapper>
20
27
  */
21
28
  export declare class TlBuyTicketsWrapper {
22
- el: HTMLElement;
23
29
  /**
24
30
  * The event ID to purchase tickets for
25
31
  */
@@ -46,7 +52,20 @@ export declare class TlBuyTicketsWrapper {
46
52
  * Emitted when the modal closes
47
53
  */
48
54
  tlClose: EventEmitter<void>;
55
+ private element;
56
+ private unsubscribe?;
57
+ private teardown?;
58
+ /** The core's whole view. Assigning it is what makes Stencil re-render. */
59
+ view: import("@ticketlayer/elements-core").ElementView<BuyTicketsWrapperProps, BuyTicketsWrapperState, BuyTicketsWrapperDerived, BuyTicketsWrapperStatus, {
60
+ noClient: string;
61
+ notAvailable: string;
62
+ }>;
63
+ syncProps(): void;
64
+ connectedCallback(): void;
65
+ disconnectedCallback(): void;
66
+ private forward;
49
67
  private handleClick;
68
+ /** Enter and Space are a press on the web. The core knows nothing of keys. */
50
69
  private handleKeyDown;
51
70
  render(): any;
52
71
  }
@@ -1,33 +1,16 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- export interface TlCartItem {
3
- id: string;
4
- ticketTypeId: string;
5
- ticketTypeName: string;
6
- eventName: string;
7
- occurrenceDate: string;
8
- quantity: number;
9
- unitPrice: number;
10
- totalPrice: number;
11
- currency: string;
12
- }
13
- export interface TlCartData {
14
- items: TlCartItem[];
15
- subtotal: number;
16
- /** Booking fee, minor units. 0 when the surface reports none. */
17
- fees: number;
18
- /** Discount as a positive magnitude, minor units. */
19
- discount?: number;
20
- total: number;
21
- currency: string;
22
- itemCount: number;
23
- /** Whether the response expressed a fee at all (see utils/cart-totals). */
24
- hasFees?: boolean;
25
- /** The channel fee profile's label, when the response carries one. */
26
- feeLabel?: string | null;
27
- itemsSubtotal?: number;
28
- totalFees?: number;
29
- totalDiscounts?: number;
30
- }
2
+ import { type CartDerived, type CartProps, type CartState, type CartStatus, type TlCartData as CoreTlCartData, type TlCartItem as CoreTlCartItem } from '@ticketlayer/elements-core';
3
+ export type TlCartItem = CoreTlCartItem;
4
+ export type TlCartData = CoreTlCartData;
5
+ /**
6
+ * The web harness for `cartCore`.
7
+ *
8
+ * It renders and it forwards. The cart, the money rows, the subscription that
9
+ * keeps them current and every string are in `@ticketlayer/elements-core`
10
+ * (AGENTS.md, TKT-11); what is left here is the Stencil surface a host writes
11
+ * HTML against and the one genuinely web thing, finding the client the page
12
+ * published on `window.Ticketlayer`.
13
+ */
31
14
  export declare class TlCart {
32
15
  /**
33
16
  * Show checkout button
@@ -45,11 +28,6 @@ export declare class TlCart {
45
28
  * Compact mode - hides some details
46
29
  */
47
30
  compact: boolean;
48
- cart: TlCartData | null;
49
- loading: boolean;
50
- error: string | null;
51
- removingItemId: string | null;
52
- private unsubscribe?;
53
31
  /**
54
32
  * Emitted when checkout is clicked
55
33
  */
@@ -74,15 +52,35 @@ export declare class TlCart {
74
52
  tlError: EventEmitter<{
75
53
  message: string;
76
54
  }>;
77
- componentWillLoad(): void;
78
- componentDidLoad(): void;
55
+ private element;
56
+ private unsubscribe?;
57
+ private teardown?;
58
+ /** The core's whole view. Assigning it is what makes Stencil re-render. */
59
+ view: import("@ticketlayer/elements-core").ElementView<CartProps, CartState, CartDerived, CartStatus, {
60
+ emptyTitle: string;
61
+ emptyMessage: string;
62
+ subtotalRow: string;
63
+ discountRow: string;
64
+ totalRow: string;
65
+ removeItem: string;
66
+ quantityPrefix: string;
67
+ loadFailed: string;
68
+ removeFailed: string;
69
+ }>;
70
+ syncProps(): void;
71
+ /**
72
+ * On screen: render what the core says and put the core to work. For this
73
+ * element that means waiting for the client, subscribing to `cart:updated`
74
+ * and reading the cart - all of it the core's business.
75
+ */
76
+ connectedCallback(): void;
77
+ /**
78
+ * Off screen: run the mount's teardown, which is what drops the cart
79
+ * subscription. Not `destroy()`: Stencil calls this for a DOM move as well
80
+ * as a removal, and a destroyed core never mounts again.
81
+ */
79
82
  disconnectedCallback(): void;
80
- private loadCart;
81
- private subscribeToCartUpdates;
82
- private handleRemoveItem;
83
- private handleCheckout;
84
- private formatPrice;
85
- private formatDate;
83
+ private forward;
86
84
  private renderSkeleton;
87
85
  private renderEmptyCart;
88
86
  private renderCartItem;
@@ -1,4 +1,13 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { type CartBadgeDerived, type CartBadgeProps, type CartBadgeState } from '@ticketlayer/elements-core';
3
+ /**
4
+ * The web harness for `cartBadgeCore`.
5
+ *
6
+ * The count, the "99+" rule, the cart subscription and the remembered value
7
+ * are all in `@ticketlayer/elements-core`. What is here is the Stencil surface,
8
+ * the icon, and the two web things the core is handed: the client the page
9
+ * published and `localStorage`.
10
+ */
2
11
  export declare class TlCartBadge {
3
12
  /**
4
13
  * Show the badge even when count is 0
@@ -16,20 +25,26 @@ export declare class TlCartBadge {
16
25
  * Badge only mode - only shows the count bubble, no icon or button
17
26
  */
18
27
  badgeOnly: boolean;
19
- itemCount: number;
20
- private unsubscribe?;
21
28
  /**
22
29
  * Emitted when the badge is clicked
23
30
  */
24
31
  tlClick: EventEmitter<{
25
32
  itemCount: number;
26
33
  }>;
27
- componentWillLoad(): void;
28
- componentDidLoad(): void;
34
+ private element;
35
+ private unsubscribe?;
36
+ private teardown?;
37
+ /** The core's whole view. Assigning it is what makes Stencil re-render. */
38
+ view: import("@ticketlayer/elements-core").ElementView<CartBadgeProps, CartBadgeState, CartBadgeDerived, "ready", {
39
+ ariaPrefix: string;
40
+ ariaSuffix: string;
41
+ overflow: string;
42
+ }>;
43
+ syncProps(): void;
44
+ connectedCallback(): void;
45
+ /** Off screen: the mount's teardown is what drops the cart subscription. */
29
46
  disconnectedCallback(): void;
30
- private getPersistedCartCount;
31
- private persistCartCount;
32
- private subscribeToCartUpdates;
47
+ private forward;
33
48
  private handleClick;
34
49
  private renderIcon;
35
50
  render(): any;
@@ -1,4 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { type CartDrawerDerived, type CartDrawerProps, type CartDrawerState, type CartDrawerStatus } from '@ticketlayer/elements-core';
2
3
  /**
3
4
  * @component tl-cart-drawer
4
5
  *
@@ -9,6 +10,10 @@ import { EventEmitter } from '../../stencil-public-runtime';
9
10
  * so the actual cart rendering / remove / checkout is shared with the inline
10
11
  * cart; the drawer only adds the off-canvas chrome.
11
12
  *
13
+ * The web harness for `cartDrawerCore`: the open/closed rule and the two
14
+ * intents are the core's (TKT-11). What stays here is the chrome and the one
15
+ * thing only a browser has, the Escape key.
16
+ *
12
17
  * @prop side - which edge the panel slides from (default 'right')
13
18
  * @event tlOpen - the drawer opened
14
19
  * @event tlClose - the drawer closed
@@ -20,16 +25,34 @@ export declare class TlCartDrawer {
20
25
  heading: string;
21
26
  /** Controlled open state (also driven by the `ui:cart-requested` intent). */
22
27
  open: boolean;
23
- visible: boolean;
24
28
  tlOpen: EventEmitter<void>;
25
29
  tlClose: EventEmitter<void>;
26
- private offCart?;
27
- private offClose?;
30
+ private element;
31
+ private unsubscribe?;
32
+ private teardown?;
33
+ /** The core's whole view. Assigning it is what makes Stencil re-render. */
34
+ view: import("@ticketlayer/elements-core").ElementView<CartDrawerProps, CartDrawerState, CartDrawerDerived, CartDrawerStatus, {
35
+ close: string;
36
+ privacy: string;
37
+ privacyHref: string;
38
+ reportAbuse: string;
39
+ reportAbuseHref: string;
40
+ poweredBy: string;
41
+ brand: string;
42
+ brandHref: string;
43
+ }>;
44
+ syncProps(): void;
45
+ /**
46
+ * The host moved `open`. The core follows it without announcing it, which is
47
+ * what the component's watcher did: an event here would be the host hearing
48
+ * its own write back.
49
+ */
50
+ onOpenProp(v: boolean): void;
28
51
  connectedCallback(): void;
29
52
  disconnectedCallback(): void;
30
- onOpenProp(v: boolean): void;
53
+ /** The one thing only a browser has. What Escape means is the core's answer. */
31
54
  private onKey;
32
- private setOpen;
55
+ private forward;
33
56
  private close;
34
57
  render(): any;
35
58
  }
@@ -1,4 +1,5 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { type CheckoutWrapperDerived, type CheckoutWrapperProps, type CheckoutWrapperState, type CheckoutWrapperStatus } from '@ticketlayer/elements-core';
2
3
  import { OrderResult } from '../../utils/sdk-connector';
3
4
  /**
4
5
  * @component tl-checkout-wrapper
@@ -6,6 +7,10 @@ import { OrderResult } from '../../utils/sdk-connector';
6
7
  * Wraps any content and opens the Ticketlayer checkout modal when clicked.
7
8
  * Uses the SDK's modal manager which handles the iframe overlay.
8
9
  *
10
+ * The web harness for `checkoutWrapperCore`: it renders, it forwards, and it
11
+ * decides only which key press counts as activation. Everything else is in
12
+ * `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
13
+ *
9
14
  * @slot - Content to display (typically a checkout button)
10
15
  *
11
16
  * @example
@@ -14,7 +19,6 @@ import { OrderResult } from '../../utils/sdk-connector';
14
19
  * </tl-checkout-wrapper>
15
20
  */
16
21
  export declare class TlCheckoutWrapper {
17
- el: HTMLElement;
18
22
  /**
19
23
  * Whether the wrapper is disabled
20
24
  */
@@ -33,7 +37,20 @@ export declare class TlCheckoutWrapper {
33
37
  * Emitted when the modal closes
34
38
  */
35
39
  tlClose: EventEmitter<void>;
40
+ private element;
41
+ private unsubscribe?;
42
+ private teardown?;
43
+ /** The core's whole view. Assigning it is what makes Stencil re-render. */
44
+ view: import("@ticketlayer/elements-core").ElementView<CheckoutWrapperProps, CheckoutWrapperState, CheckoutWrapperDerived, CheckoutWrapperStatus, {
45
+ noClient: string;
46
+ notAvailable: string;
47
+ }>;
48
+ syncProps(): void;
49
+ connectedCallback(): void;
50
+ disconnectedCallback(): void;
51
+ private forward;
36
52
  private handleClick;
53
+ /** Enter and Space are a press on the web. The core knows nothing of keys. */
37
54
  private handleKeyDown;
38
55
  render(): any;
39
56
  }
@@ -1,23 +1,12 @@
1
1
  /**
2
2
  * Adapts the sales event detail (events manager get) to the shape
3
- * tl-event-card renders. Kept outside the component module because Stencil
4
- * allows only the component class as a value export there.
3
+ * tl-event-card renders.
4
+ *
5
+ * The adapter and its type moved to `@ticketlayer/elements-core` with the core
6
+ * split (TKT-69): picking the next occurrence and deciding whether a card reads
7
+ * sold out is behaviour, and behaviour lives in a core so every harness decides
8
+ * it the same way. This file stays as the import path the component and its
9
+ * spec already use.
5
10
  */
6
- import type { TlEventCardEvent } from './tl-event-card';
7
- export interface EventDetailLike {
8
- id: string;
9
- name: string;
10
- status?: string;
11
- shortDescription?: string | null;
12
- imageUrl?: string | null;
13
- venueId?: string | null;
14
- venueName?: string | null;
15
- venueCity?: string | null;
16
- occurrences?: Array<{
17
- id: string;
18
- startsAt?: string | null;
19
- status?: string;
20
- }>;
21
- }
22
- /** Adapt an event detail to the card shape (the list adapter lives in the SDK connector). */
23
- export declare function toEventCardEvent(detail: EventDetailLike): TlEventCardEvent;
11
+ export { toEventCardEvent } from '@ticketlayer/elements-core';
12
+ export type { EventDetailLike } from '@ticketlayer/elements-core';
@@ -1,23 +1,13 @@
1
1
  import { EventEmitter } from '../../stencil-public-runtime';
2
- export interface TlEventCardEvent {
3
- id: string;
4
- name: string;
5
- slug?: string;
6
- description?: string;
7
- shortDescription?: string;
8
- imageUrl?: string;
9
- thumbnailUrl?: string;
10
- category?: string;
11
- venue?: {
12
- id: string;
13
- name: string;
14
- city: string;
15
- };
16
- nextOccurrence?: {
17
- startsAt: string;
18
- };
19
- availabilityStatus: 'available' | 'limited' | 'sold_out';
20
- }
2
+ import { type EventCardDerived, type EventCardProps, type EventCardState, type EventCardStatus, type TlEventCardEvent as CoreTlEventCardEvent } from '@ticketlayer/elements-core';
3
+ export type TlEventCardEvent = CoreTlEventCardEvent;
4
+ /**
5
+ * The web harness for `eventCardCore`.
6
+ *
7
+ * It renders and it forwards: which event is shown, how it is read, the status
8
+ * badge and the date are all in `@ticketlayer/elements-core` (AGENTS.md,
9
+ * TKT-11).
10
+ */
21
11
  export declare class TlEventCard {
22
12
  /**
23
13
  * Event data to display (tl-event-list passes this)
@@ -28,9 +18,6 @@ export declare class TlEventCard {
28
18
  * card works standalone (e.g. on a Webflow page).
29
19
  */
30
20
  eventId?: string;
31
- loadedEvent: TlEventCardEvent | null;
32
- loading: boolean;
33
- error: string | null;
34
21
  /**
35
22
  * Emitted when the card is clicked
36
23
  */
@@ -43,13 +30,23 @@ export declare class TlEventCard {
43
30
  tlError: EventEmitter<{
44
31
  message: string;
45
32
  }>;
33
+ private element;
34
+ private unsubscribe?;
35
+ private teardown?;
36
+ /** The core's whole view. Assigning it is what makes Stencil re-render. */
37
+ view: import("@ticketlayer/elements-core").ElementView<EventCardProps, EventCardState, EventCardDerived, EventCardStatus, {
38
+ available: string;
39
+ limited: string;
40
+ soldOut: string;
41
+ notFound: string;
42
+ loadFailed: string;
43
+ }>;
44
+ syncProps(): void;
45
+ /** A new id is a new subject: tear the old mount down and start again. */
46
46
  watchEventId(): void;
47
- componentWillLoad(): Promise<void>;
48
- private loadEvent;
49
- private get current();
47
+ connectedCallback(): void;
48
+ disconnectedCallback(): void;
49
+ private forward;
50
50
  private handleClick;
51
- private formatDate;
52
- private getStatusBadgeClass;
53
- private getStatusLabel;
54
51
  render(): any;
55
52
  }