@ticketlayer/elements 0.3.3 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/cjs/{index-BpfoKd9Q.js → index-DanPUX0s.js} +1 -1
- package/dist/cjs/index.cjs.js +2 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/ticket-selector-BYVL13k_.js +3623 -0
- package/dist/cjs/ticketlayer-elements.cjs.js +2 -2
- package/dist/cjs/tl-buy-modal.cjs.entry.js +4 -4
- package/dist/cjs/tl-buy-tickets-button.cjs.entry.js +89 -71
- package/dist/cjs/tl-buy-tickets-wrapper.cjs.entry.js +62 -31
- package/dist/cjs/tl-cart-badge.cjs.entry.js +75 -62
- package/dist/cjs/tl-cart-drawer.cjs.entry.js +52 -24
- package/dist/cjs/tl-cart.cjs.entry.js +72 -98
- package/dist/cjs/tl-checkout-wrapper.cjs.entry.js +52 -30
- package/dist/cjs/tl-event-card.cjs.entry.js +44 -105
- package/dist/cjs/tl-event-list.cjs.entry.js +73 -36
- package/dist/cjs/tl-login.cjs.entry.js +75 -141
- package/dist/cjs/tl-my-orders.cjs.entry.js +53 -92
- package/dist/cjs/tl-occurrence-selector_2.cjs.entry.js +205 -641
- package/dist/cjs/tl-order-confirmation.cjs.entry.js +72 -105
- package/dist/cjs/tl-order-tickets_2.cjs.entry.js +50 -76
- package/dist/cjs/tl-promo-code.cjs.entry.js +51 -47
- package/dist/cjs/tl-seat-map.cjs.entry.js +4 -4
- package/dist/cjs/web-query-Ce73jB4k.js +16 -0
- package/dist/collection/components/tl-buy-modal/tl-buy-modal.css +12 -19
- package/dist/collection/components/tl-buy-modal/tl-buy-modal.js +2 -2
- package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.css +41 -4
- package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.js +105 -76
- package/dist/collection/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.css +2 -2
- package/dist/collection/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.js +73 -30
- package/dist/collection/components/tl-cart/tl-cart.css +52 -51
- package/dist/collection/components/tl-cart/tl-cart.js +82 -101
- package/dist/collection/components/tl-cart-badge/tl-cart-badge.css +11 -11
- package/dist/collection/components/tl-cart-badge/tl-cart-badge.js +62 -62
- package/dist/collection/components/tl-cart-drawer/tl-cart-drawer.css +6 -6
- package/dist/collection/components/tl-cart-drawer/tl-cart-drawer.js +56 -24
- package/dist/collection/components/tl-checkout-wrapper/tl-checkout-wrapper.css +2 -2
- package/dist/collection/components/tl-checkout-wrapper/tl-checkout-wrapper.js +61 -29
- package/dist/collection/components/tl-event-card/event-card-adapter.js +11 -23
- package/dist/collection/components/tl-event-card/tl-event-card.css +22 -22
- package/dist/collection/components/tl-event-card/tl-event-card.js +51 -84
- package/dist/collection/components/tl-event-list/tl-event-list.css +17 -17
- package/dist/collection/components/tl-event-list/tl-event-list.js +82 -38
- package/dist/collection/components/tl-login/tl-login.css +26 -26
- package/dist/collection/components/tl-login/tl-login.js +83 -147
- package/dist/collection/components/tl-my-orders/tl-my-orders.css +40 -40
- package/dist/collection/components/tl-my-orders/tl-my-orders.js +58 -96
- package/dist/collection/components/tl-occurrence-selector/tl-occurrence-selector.css +54 -65
- package/dist/collection/components/tl-occurrence-selector/tl-occurrence-selector.js +137 -516
- package/dist/collection/components/tl-order-confirmation/tl-order-confirmation.css +38 -38
- package/dist/collection/components/tl-order-confirmation/tl-order-confirmation.js +81 -113
- package/dist/collection/components/tl-order-tickets/tl-order-tickets.css +9 -9
- package/dist/collection/components/tl-order-tickets/tl-order-tickets.js +57 -92
- package/dist/collection/components/tl-promo-code/tl-promo-code.css +25 -25
- package/dist/collection/components/tl-promo-code/tl-promo-code.js +55 -50
- package/dist/collection/components/tl-seat-map/tl-seat-map.css +10 -10
- package/dist/collection/components/tl-seat-map/tl-seat-map.js +2 -2
- package/dist/collection/components/tl-ticket/tl-ticket.css +13 -13
- package/dist/collection/components/tl-ticket-selector/tl-ticket-selector.css +74 -49
- package/dist/collection/components/tl-ticket-selector/tl-ticket-selector.js +95 -135
- package/dist/collection/utils/cart-totals.js +9 -0
- package/dist/collection/utils/order-summary.js +15 -99
- package/dist/collection/utils/testing/deep-text.js +29 -0
- package/dist/collection/utils/testing/fixtures.js +290 -0
- package/dist/collection/utils/testing/mock-sdk.js +13 -2
- package/dist/collection/utils/web-query.js +12 -0
- package/dist/collection/utils/web-storage.js +22 -0
- package/dist/components/ticket-selector.js +1 -0
- package/dist/components/tl-buy-modal.js +1 -1
- package/dist/components/tl-buy-tickets-button.js +1 -1
- package/dist/components/tl-buy-tickets-wrapper2.js +1 -1
- package/dist/components/tl-cart-badge.js +1 -1
- package/dist/components/tl-cart-drawer.js +1 -1
- package/dist/components/tl-cart2.js +1 -1
- package/dist/components/tl-checkout-wrapper2.js +1 -1
- package/dist/components/tl-event-card2.js +1 -1
- package/dist/components/tl-event-list.js +1 -1
- package/dist/components/tl-login2.js +1 -1
- package/dist/components/tl-my-orders.js +1 -1
- package/dist/components/tl-occurrence-selector2.js +1 -1
- package/dist/components/tl-order-confirmation.js +1 -1
- package/dist/components/tl-order-tickets2.js +1 -1
- package/dist/components/tl-promo-code.js +1 -1
- package/dist/components/tl-seat-map.js +1 -1
- package/dist/components/tl-ticket-selector2.js +1 -1
- package/dist/components/tl-ticket2.js +1 -1
- package/dist/components/web-query.js +1 -0
- package/dist/elements.docs.json +36 -36
- package/dist/esm/{index-CNX8hZa8.js → index-imfxp765.js} +1 -1
- package/dist/esm/index.js +2 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/ticket-selector-BwChnHVC.js +3606 -0
- package/dist/esm/ticketlayer-elements.js +3 -3
- package/dist/esm/tl-buy-modal.entry.js +4 -4
- package/dist/esm/tl-buy-tickets-button.entry.js +90 -72
- package/dist/esm/tl-buy-tickets-wrapper.entry.js +63 -32
- package/dist/esm/tl-cart-badge.entry.js +76 -63
- package/dist/esm/tl-cart-drawer.entry.js +53 -25
- package/dist/esm/tl-cart.entry.js +73 -99
- package/dist/esm/tl-checkout-wrapper.entry.js +53 -31
- package/dist/esm/tl-event-card.entry.js +45 -106
- package/dist/esm/tl-event-list.entry.js +74 -37
- package/dist/esm/tl-login.entry.js +76 -142
- package/dist/esm/tl-my-orders.entry.js +54 -93
- package/dist/esm/tl-occurrence-selector_2.entry.js +206 -642
- package/dist/esm/tl-order-confirmation.entry.js +73 -106
- package/dist/esm/tl-order-tickets_2.entry.js +51 -77
- package/dist/esm/tl-promo-code.entry.js +52 -48
- package/dist/esm/tl-seat-map.entry.js +4 -4
- package/dist/esm/web-query-Bdbb2lk5.js +14 -0
- package/dist/ticketlayer-elements/index.esm.js +1 -1
- package/dist/ticketlayer-elements/p-45923d2c.entry.js +1 -0
- package/dist/ticketlayer-elements/p-492adc77.entry.js +1 -0
- package/dist/ticketlayer-elements/p-4cfc9e53.entry.js +1 -0
- package/dist/ticketlayer-elements/p-5135630e.entry.js +1 -0
- package/dist/ticketlayer-elements/p-5bbce3b5.entry.js +1 -0
- package/dist/ticketlayer-elements/p-7d547721.entry.js +1 -0
- package/dist/ticketlayer-elements/p-7fe7b6ba.entry.js +1 -0
- package/dist/ticketlayer-elements/p-8122f0c1.entry.js +1 -0
- package/dist/ticketlayer-elements/p-98d40869.entry.js +1 -0
- package/dist/ticketlayer-elements/p-Bdbb2lk5.js +1 -0
- package/dist/ticketlayer-elements/p-BwChnHVC.js +1 -0
- package/dist/ticketlayer-elements/p-abec290a.entry.js +1 -0
- package/dist/ticketlayer-elements/p-ac79a3f6.entry.js +1 -0
- package/dist/ticketlayer-elements/p-d01f4429.entry.js +1 -0
- package/dist/ticketlayer-elements/p-d7ffaf46.entry.js +1 -0
- package/dist/ticketlayer-elements/p-e7170f3c.entry.js +1 -0
- package/dist/ticketlayer-elements/p-e787e862.entry.js +1 -0
- package/dist/ticketlayer-elements/p-f1ff931f.entry.js +1 -0
- package/dist/ticketlayer-elements/p-imfxp765.js +3 -0
- package/dist/ticketlayer-elements/ticketlayer-elements.css +1 -1
- package/dist/ticketlayer-elements/ticketlayer-elements.esm.js +1 -1
- package/dist/types/components/tl-buy-tickets-button/tl-buy-tickets-button.d.ts +40 -8
- package/dist/types/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.d.ts +20 -1
- package/dist/types/components/tl-cart/tl-cart.d.ts +40 -32
- package/dist/types/components/tl-cart-badge/tl-cart-badge.d.ts +22 -7
- package/dist/types/components/tl-cart-drawer/tl-cart-drawer.d.ts +28 -5
- package/dist/types/components/tl-checkout-wrapper/tl-checkout-wrapper.d.ts +18 -1
- package/dist/types/components/tl-event-card/event-card-adapter.d.ts +9 -20
- package/dist/types/components/tl-event-card/tl-event-card.d.ts +25 -28
- package/dist/types/components/tl-event-list/tl-event-list.d.ts +46 -6
- package/dist/types/components/tl-login/tl-login.d.ts +68 -22
- package/dist/types/components/tl-my-orders/tl-my-orders.d.ts +30 -12
- package/dist/types/components/tl-occurrence-selector/tl-occurrence-selector.d.ts +73 -161
- package/dist/types/components/tl-order-confirmation/tl-order-confirmation.d.ts +48 -15
- package/dist/types/components/tl-order-tickets/tl-order-tickets.d.ts +29 -31
- package/dist/types/components/tl-promo-code/tl-promo-code.d.ts +28 -10
- package/dist/types/components/tl-ticket/tl-ticket.d.ts +2 -11
- package/dist/types/components/tl-ticket-selector/tl-ticket-selector.d.ts +61 -32
- package/dist/types/components.d.ts +302 -62
- package/dist/types/utils/cart-totals.d.ts +10 -0
- package/dist/types/utils/order-summary.d.ts +16 -65
- package/dist/types/utils/testing/deep-text.d.ts +13 -0
- package/dist/types/utils/testing/fixtures.d.ts +225 -0
- package/dist/types/utils/testing/mock-sdk.d.ts +14 -1
- package/dist/types/utils/web-query.d.ts +18 -0
- package/dist/types/utils/web-storage.d.ts +16 -0
- package/elements.catalogue.json +676 -55
- package/package.json +14 -6
- package/dist/cjs/order-summary-ZMkJ5bez.js +0 -116
- package/dist/components/order-summary.js +0 -1
- package/dist/esm/order-summary-BGekdjN9.js +0 -103
- package/dist/ticketlayer-elements/p-0b1d16f8.entry.js +0 -1
- package/dist/ticketlayer-elements/p-1471f6d8.entry.js +0 -1
- package/dist/ticketlayer-elements/p-1c51cbc1.entry.js +0 -1
- package/dist/ticketlayer-elements/p-5169f68b.entry.js +0 -1
- package/dist/ticketlayer-elements/p-895ba1f3.entry.js +0 -1
- package/dist/ticketlayer-elements/p-8d5722e1.entry.js +0 -1
- package/dist/ticketlayer-elements/p-917d8e09.entry.js +0 -1
- package/dist/ticketlayer-elements/p-9629029a.entry.js +0 -1
- package/dist/ticketlayer-elements/p-BGekdjN9.js +0 -1
- package/dist/ticketlayer-elements/p-CNX8hZa8.js +0 -3
- package/dist/ticketlayer-elements/p-a22714d0.entry.js +0 -1
- package/dist/ticketlayer-elements/p-bf73044b.entry.js +0 -1
- package/dist/ticketlayer-elements/p-e02079fa.entry.js +0 -1
- package/dist/ticketlayer-elements/p-e04ace15.entry.js +0 -1
- package/dist/ticketlayer-elements/p-e6fab1d5.entry.js +0 -1
- package/dist/ticketlayer-elements/p-f826b753.entry.js +0 -1
- package/dist/ticketlayer-elements/p-fa639d88.entry.js +0 -1
- package/dist/ticketlayer-elements/p-fbaca948.entry.js +0 -1
|
@@ -11,7 +11,7 @@ import { TlCartData } from "./components/tl-cart/tl-cart";
|
|
|
11
11
|
import { TlEventCardEvent } from "./components/tl-event-card/tl-event-card";
|
|
12
12
|
import { TlAuthChanged } from "./components/tl-login/tl-login";
|
|
13
13
|
import { TlOccurrence, TlOccurrenceSelectorTheme } from "./components/tl-occurrence-selector/tl-occurrence-selector";
|
|
14
|
-
import { TlOrderData } from "
|
|
14
|
+
import { TlOrderData } from "@ticketlayer/elements-core";
|
|
15
15
|
import { TlPromoApplied } from "./components/tl-promo-code/tl-promo-code";
|
|
16
16
|
import { TlTicketData } from "./components/tl-ticket/tl-ticket";
|
|
17
17
|
import { AddToCartItem } from "./components/tl-ticket-selector/tl-ticket-selector";
|
|
@@ -21,7 +21,7 @@ export { TlCartData } from "./components/tl-cart/tl-cart";
|
|
|
21
21
|
export { TlEventCardEvent } from "./components/tl-event-card/tl-event-card";
|
|
22
22
|
export { TlAuthChanged } from "./components/tl-login/tl-login";
|
|
23
23
|
export { TlOccurrence, TlOccurrenceSelectorTheme } from "./components/tl-occurrence-selector/tl-occurrence-selector";
|
|
24
|
-
export { TlOrderData } from "
|
|
24
|
+
export { TlOrderData } from "@ticketlayer/elements-core";
|
|
25
25
|
export { TlPromoApplied } from "./components/tl-promo-code/tl-promo-code";
|
|
26
26
|
export { TlTicketData } from "./components/tl-ticket/tl-ticket";
|
|
27
27
|
export { AddToCartItem } from "./components/tl-ticket-selector/tl-ticket-selector";
|
|
@@ -109,6 +109,11 @@ export namespace Components {
|
|
|
109
109
|
* @component tl-buy-tickets-wrapper
|
|
110
110
|
* Wraps any content and opens the Ticketlayer modal when clicked.
|
|
111
111
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
112
|
+
* The web harness for `buyTicketsWrapperCore`. What a press does, what it
|
|
113
|
+
* announces and what happens when no client has been published are all in
|
|
114
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11); what is left here is the
|
|
115
|
+
* Stencil surface, the accessibility attributes and the one genuinely web
|
|
116
|
+
* question the core refuses to answer - which key counts as a press.
|
|
112
117
|
* @example <tl-buy-tickets-wrapper event-id="evt_001">
|
|
113
118
|
* <button>Buy Tickets</button>
|
|
114
119
|
* </tl-buy-tickets-wrapper>
|
|
@@ -131,6 +136,14 @@ export namespace Components {
|
|
|
131
136
|
*/
|
|
132
137
|
"occurrenceId"?: string;
|
|
133
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* The web harness for `cartCore`.
|
|
141
|
+
* It renders and it forwards. The cart, the money rows, the subscription that
|
|
142
|
+
* keeps them current and every string are in `@ticketlayer/elements-core`
|
|
143
|
+
* (AGENTS.md, TKT-11); what is left here is the Stencil surface a host writes
|
|
144
|
+
* HTML against and the one genuinely web thing, finding the client the page
|
|
145
|
+
* published on `window.Ticketlayer`.
|
|
146
|
+
*/
|
|
134
147
|
interface TlCart {
|
|
135
148
|
/**
|
|
136
149
|
* Checkout button label
|
|
@@ -153,6 +166,13 @@ export namespace Components {
|
|
|
153
166
|
*/
|
|
154
167
|
"showRemoveButtons": boolean;
|
|
155
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* The web harness for `cartBadgeCore`.
|
|
171
|
+
* The count, the "99+" rule, the cart subscription and the remembered value
|
|
172
|
+
* are all in `@ticketlayer/elements-core`. What is here is the Stencil surface,
|
|
173
|
+
* the icon, and the two web things the core is handed: the client the page
|
|
174
|
+
* published and `localStorage`.
|
|
175
|
+
*/
|
|
156
176
|
interface TlCartBadge {
|
|
157
177
|
/**
|
|
158
178
|
* Badge only mode - only shows the count bubble, no icon or button
|
|
@@ -182,6 +202,9 @@ export namespace Components {
|
|
|
182
202
|
* button, Escape, or `ui:modal-close-requested`. The panel embeds `<tl-cart>`,
|
|
183
203
|
* so the actual cart rendering / remove / checkout is shared with the inline
|
|
184
204
|
* cart; the drawer only adds the off-canvas chrome.
|
|
205
|
+
* The web harness for `cartDrawerCore`: the open/closed rule and the two
|
|
206
|
+
* intents are the core's (TKT-11). What stays here is the chrome and the one
|
|
207
|
+
* thing only a browser has, the Escape key.
|
|
185
208
|
* @prop side - which edge the panel slides from (default 'right')
|
|
186
209
|
* @event tlOpen - the drawer opened
|
|
187
210
|
* @event tlClose - the drawer closed
|
|
@@ -207,6 +230,9 @@ export namespace Components {
|
|
|
207
230
|
* @component tl-checkout-wrapper
|
|
208
231
|
* Wraps any content and opens the Ticketlayer checkout modal when clicked.
|
|
209
232
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
233
|
+
* The web harness for `checkoutWrapperCore`: it renders, it forwards, and it
|
|
234
|
+
* decides only which key press counts as activation. Everything else is in
|
|
235
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
210
236
|
* @example <tl-checkout-wrapper>
|
|
211
237
|
* <button>Proceed to Checkout</button>
|
|
212
238
|
* </tl-checkout-wrapper>
|
|
@@ -218,6 +244,12 @@ export namespace Components {
|
|
|
218
244
|
*/
|
|
219
245
|
"disabled": boolean;
|
|
220
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* The web harness for `eventCardCore`.
|
|
249
|
+
* It renders and it forwards: which event is shown, how it is read, the status
|
|
250
|
+
* badge and the date are all in `@ticketlayer/elements-core` (AGENTS.md,
|
|
251
|
+
* TKT-11).
|
|
252
|
+
*/
|
|
221
253
|
interface TlEventCard {
|
|
222
254
|
/**
|
|
223
255
|
* Event data to display (tl-event-list passes this)
|
|
@@ -228,6 +260,13 @@ export namespace Components {
|
|
|
228
260
|
*/
|
|
229
261
|
"eventId"?: string;
|
|
230
262
|
}
|
|
263
|
+
/**
|
|
264
|
+
* tl-event-list - what the channel is selling, as a grid of tl-event-card.
|
|
265
|
+
* The web harness for `eventListCore`: it renders and it forwards. What to ask
|
|
266
|
+
* for, what came back and every string are in `@ticketlayer/elements-core`
|
|
267
|
+
* (AGENTS.md, TKT-11).
|
|
268
|
+
* Usage: <tl-event-list limit="12" columns="3"></tl-event-list>
|
|
269
|
+
*/
|
|
231
270
|
interface TlEventList {
|
|
232
271
|
/**
|
|
233
272
|
* Category filter
|
|
@@ -252,6 +291,12 @@ export namespace Components {
|
|
|
252
291
|
* password is ever handled here.
|
|
253
292
|
* States: enter email -> check your inbox (resend, enter code) -> signed in
|
|
254
293
|
* (email + sign out).
|
|
294
|
+
* The web harness for `loginCore`: it renders and it forwards. The phases, the
|
|
295
|
+
* exchange, the auth subscriptions and every string are in
|
|
296
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
297
|
+
* Stencil surface and the two genuinely web things: the client the page
|
|
298
|
+
* published on `window.Ticketlayer`, and `window.location.search`, which is
|
|
299
|
+
* where this runtime keeps the `?code=` the core asks for.
|
|
255
300
|
* Usage: <tl-login></tl-login>
|
|
256
301
|
* @event tlAuthChanged - signed in or out ({ customer, authenticated })
|
|
257
302
|
* @event tlMagicLinkSent - a link was requested for an email
|
|
@@ -274,6 +319,9 @@ export namespace Components {
|
|
|
274
319
|
* the SDK): event, date, ticket count, total and status per row. Clicking a
|
|
275
320
|
* row expands it to show the order's tickets (tl-order-tickets). Shows
|
|
276
321
|
* tl-login inline when nobody is signed in.
|
|
322
|
+
* The web harness for `myOrdersCore`: it renders and it forwards. Who is
|
|
323
|
+
* signed in, the two auth subscriptions that keep that current, the listing
|
|
324
|
+
* and every string are in `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
277
325
|
* Usage: <tl-my-orders></tl-my-orders>
|
|
278
326
|
* @event tlOrderSelect - a row was expanded ({ orderId })
|
|
279
327
|
* @event tlError - the orders could not be loaded
|
|
@@ -319,6 +367,12 @@ export namespace Components {
|
|
|
319
367
|
* page uses; `?redirect_status=` from a Stripe return is honoured too
|
|
320
368
|
* 3. the SDK's `checkout:completed` event, for a page that mounts this before
|
|
321
369
|
* the customer pays
|
|
370
|
+
* The web harness for `orderConfirmationCore`: it renders and it forwards. All
|
|
371
|
+
* three of those routes, the money rows, the event lookup and every string are
|
|
372
|
+
* in `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
373
|
+
* Stencil surface and the two genuinely web things: the client the page
|
|
374
|
+
* published on `window.Ticketlayer`, and `window.location.search`, which is
|
|
375
|
+
* where this runtime keeps the parameters the core asks for.
|
|
322
376
|
* Usage: <tl-order-confirmation order-id="ord_xxx"></tl-order-confirmation>
|
|
323
377
|
* @event tlOrderLoaded - the order was loaded
|
|
324
378
|
* @event tlError - the order could not be loaded
|
|
@@ -348,18 +402,14 @@ export namespace Components {
|
|
|
348
402
|
* cards with PDF download. Fetches the order through the SDK (order-access
|
|
349
403
|
* gated by the session), so it works on a confirmation page or in an account.
|
|
350
404
|
* Usage: <tl-order-tickets order-id="ord_xxx"></tl-order-tickets>
|
|
351
|
-
* On an empty result it waits rather than concluding there is nothing
|
|
352
|
-
*
|
|
353
|
-
*
|
|
354
|
-
*
|
|
355
|
-
*
|
|
356
|
-
*
|
|
357
|
-
*
|
|
358
|
-
*
|
|
359
|
-
* So: an empty order is treated as issuance in flight and polled, with the
|
|
360
|
-
* gaps widening, for about a minute. Then it stops and says the tickets are
|
|
361
|
-
* coming by email, because at that point something probably is wrong and a
|
|
362
|
-
* page that polls forever is worse than one that admits it.
|
|
405
|
+
* On an empty result it waits rather than concluding there is nothing: tickets
|
|
406
|
+
* are issued a moment after the order is paid, so a confirmation page renders
|
|
407
|
+
* before the passes exist. The waiting, the widening schedule behind it and
|
|
408
|
+
* the point at which it gives up are all in `orderTicketsCore`
|
|
409
|
+
* (`@ticketlayer/elements-core`, AGENTS.md, TKT-11), along with every string.
|
|
410
|
+
* This harness renders and forwards, and the one thing it owns is pairing
|
|
411
|
+
* `mount()` with its teardown - which is what stops the polling when the
|
|
412
|
+
* element goes off screen.
|
|
363
413
|
*/
|
|
364
414
|
interface TlOrderTickets {
|
|
365
415
|
/**
|
|
@@ -379,6 +429,8 @@ export namespace Components {
|
|
|
379
429
|
* cart and publishes cart:updated, so tl-cart and badges re-render on their own.
|
|
380
430
|
* The API has no un-redeem, so the applied state offers only "use a different
|
|
381
431
|
* code", which clears the input for another redemption.
|
|
432
|
+
* The web harness for `promoCodeCore`: the redemption, the two error messages
|
|
433
|
+
* and every string are the core's (AGENTS.md, TKT-11).
|
|
382
434
|
* Usage: <tl-promo-code></tl-promo-code>
|
|
383
435
|
* @event tlPromoApplied - a code was redeemed ({ code, benefit, alreadyHeld, cart })
|
|
384
436
|
* @event tlError - the code was rejected
|
|
@@ -436,6 +488,14 @@ export namespace Components {
|
|
|
436
488
|
*/
|
|
437
489
|
"ticket": TlTicketData;
|
|
438
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* The web harness for `ticketSelectorCore`.
|
|
493
|
+
* It renders and it forwards: every decision, every string and every sum is in
|
|
494
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
495
|
+
* Stencil surface a host writes HTML against - the tag, the attributes, the
|
|
496
|
+
* three `tl*` events - plus the one thing that is genuinely web: finding the
|
|
497
|
+
* client the page published on `window.Ticketlayer`.
|
|
498
|
+
*/
|
|
439
499
|
interface TlTicketSelector {
|
|
440
500
|
/**
|
|
441
501
|
* Button label
|
|
@@ -575,14 +635,19 @@ declare global {
|
|
|
575
635
|
new (): HTMLTlBuyTicketsButtonElement;
|
|
576
636
|
};
|
|
577
637
|
interface HTMLTlBuyTicketsWrapperElementEventMap {
|
|
578
|
-
"
|
|
579
|
-
"
|
|
580
|
-
"
|
|
638
|
+
"tlComplete": OrderResult;
|
|
639
|
+
"tlError": { message: string };
|
|
640
|
+
"tlClose": void;
|
|
581
641
|
}
|
|
582
642
|
/**
|
|
583
643
|
* @component tl-buy-tickets-wrapper
|
|
584
644
|
* Wraps any content and opens the Ticketlayer modal when clicked.
|
|
585
645
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
646
|
+
* The web harness for `buyTicketsWrapperCore`. What a press does, what it
|
|
647
|
+
* announces and what happens when no client has been published are all in
|
|
648
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11); what is left here is the
|
|
649
|
+
* Stencil surface, the accessibility attributes and the one genuinely web
|
|
650
|
+
* question the core refuses to answer - which key counts as a press.
|
|
586
651
|
* @example <tl-buy-tickets-wrapper event-id="evt_001">
|
|
587
652
|
* <button>Buy Tickets</button>
|
|
588
653
|
* </tl-buy-tickets-wrapper>
|
|
@@ -610,6 +675,14 @@ declare global {
|
|
|
610
675
|
"tlCartUpdated": { cart: TlCartData };
|
|
611
676
|
"tlError": { message: string };
|
|
612
677
|
}
|
|
678
|
+
/**
|
|
679
|
+
* The web harness for `cartCore`.
|
|
680
|
+
* It renders and it forwards. The cart, the money rows, the subscription that
|
|
681
|
+
* keeps them current and every string are in `@ticketlayer/elements-core`
|
|
682
|
+
* (AGENTS.md, TKT-11); what is left here is the Stencil surface a host writes
|
|
683
|
+
* HTML against and the one genuinely web thing, finding the client the page
|
|
684
|
+
* published on `window.Ticketlayer`.
|
|
685
|
+
*/
|
|
613
686
|
interface HTMLTlCartElement extends Components.TlCart, HTMLStencilElement {
|
|
614
687
|
addEventListener<K extends keyof HTMLTlCartElementEventMap>(type: K, listener: (this: HTMLTlCartElement, ev: TlCartCustomEvent<HTMLTlCartElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
615
688
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -627,6 +700,13 @@ declare global {
|
|
|
627
700
|
interface HTMLTlCartBadgeElementEventMap {
|
|
628
701
|
"tlClick": { itemCount: number };
|
|
629
702
|
}
|
|
703
|
+
/**
|
|
704
|
+
* The web harness for `cartBadgeCore`.
|
|
705
|
+
* The count, the "99+" rule, the cart subscription and the remembered value
|
|
706
|
+
* are all in `@ticketlayer/elements-core`. What is here is the Stencil surface,
|
|
707
|
+
* the icon, and the two web things the core is handed: the client the page
|
|
708
|
+
* published and `localStorage`.
|
|
709
|
+
*/
|
|
630
710
|
interface HTMLTlCartBadgeElement extends Components.TlCartBadge, HTMLStencilElement {
|
|
631
711
|
addEventListener<K extends keyof HTMLTlCartBadgeElementEventMap>(type: K, listener: (this: HTMLTlCartBadgeElement, ev: TlCartBadgeCustomEvent<HTMLTlCartBadgeElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
632
712
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -653,6 +733,9 @@ declare global {
|
|
|
653
733
|
* button, Escape, or `ui:modal-close-requested`. The panel embeds `<tl-cart>`,
|
|
654
734
|
* so the actual cart rendering / remove / checkout is shared with the inline
|
|
655
735
|
* cart; the drawer only adds the off-canvas chrome.
|
|
736
|
+
* The web harness for `cartDrawerCore`: the open/closed rule and the two
|
|
737
|
+
* intents are the core's (TKT-11). What stays here is the chrome and the one
|
|
738
|
+
* thing only a browser has, the Escape key.
|
|
656
739
|
* @prop side - which edge the panel slides from (default 'right')
|
|
657
740
|
* @event tlOpen - the drawer opened
|
|
658
741
|
* @event tlClose - the drawer closed
|
|
@@ -672,14 +755,17 @@ declare global {
|
|
|
672
755
|
new (): HTMLTlCartDrawerElement;
|
|
673
756
|
};
|
|
674
757
|
interface HTMLTlCheckoutWrapperElementEventMap {
|
|
675
|
-
"
|
|
676
|
-
"
|
|
677
|
-
"
|
|
758
|
+
"tlComplete": OrderResult;
|
|
759
|
+
"tlError": { message: string };
|
|
760
|
+
"tlClose": void;
|
|
678
761
|
}
|
|
679
762
|
/**
|
|
680
763
|
* @component tl-checkout-wrapper
|
|
681
764
|
* Wraps any content and opens the Ticketlayer checkout modal when clicked.
|
|
682
765
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
766
|
+
* The web harness for `checkoutWrapperCore`: it renders, it forwards, and it
|
|
767
|
+
* decides only which key press counts as activation. Everything else is in
|
|
768
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
683
769
|
* @example <tl-checkout-wrapper>
|
|
684
770
|
* <button>Proceed to Checkout</button>
|
|
685
771
|
* </tl-checkout-wrapper>
|
|
@@ -702,6 +788,12 @@ declare global {
|
|
|
702
788
|
"tlClick": { eventId: string };
|
|
703
789
|
"tlError": { message: string };
|
|
704
790
|
}
|
|
791
|
+
/**
|
|
792
|
+
* The web harness for `eventCardCore`.
|
|
793
|
+
* It renders and it forwards: which event is shown, how it is read, the status
|
|
794
|
+
* badge and the date are all in `@ticketlayer/elements-core` (AGENTS.md,
|
|
795
|
+
* TKT-11).
|
|
796
|
+
*/
|
|
705
797
|
interface HTMLTlEventCardElement extends Components.TlEventCard, HTMLStencilElement {
|
|
706
798
|
addEventListener<K extends keyof HTMLTlEventCardElementEventMap>(type: K, listener: (this: HTMLTlEventCardElement, ev: TlEventCardCustomEvent<HTMLTlEventCardElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
707
799
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -719,6 +811,13 @@ declare global {
|
|
|
719
811
|
interface HTMLTlEventListElementEventMap {
|
|
720
812
|
"tlEventClick": { eventId: string };
|
|
721
813
|
}
|
|
814
|
+
/**
|
|
815
|
+
* tl-event-list - what the channel is selling, as a grid of tl-event-card.
|
|
816
|
+
* The web harness for `eventListCore`: it renders and it forwards. What to ask
|
|
817
|
+
* for, what came back and every string are in `@ticketlayer/elements-core`
|
|
818
|
+
* (AGENTS.md, TKT-11).
|
|
819
|
+
* Usage: <tl-event-list limit="12" columns="3"></tl-event-list>
|
|
820
|
+
*/
|
|
722
821
|
interface HTMLTlEventListElement extends Components.TlEventList, HTMLStencilElement {
|
|
723
822
|
addEventListener<K extends keyof HTMLTlEventListElementEventMap>(type: K, listener: (this: HTMLTlEventListElement, ev: TlEventListCustomEvent<HTMLTlEventListElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
724
823
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -746,6 +845,12 @@ declare global {
|
|
|
746
845
|
* password is ever handled here.
|
|
747
846
|
* States: enter email -> check your inbox (resend, enter code) -> signed in
|
|
748
847
|
* (email + sign out).
|
|
848
|
+
* The web harness for `loginCore`: it renders and it forwards. The phases, the
|
|
849
|
+
* exchange, the auth subscriptions and every string are in
|
|
850
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
851
|
+
* Stencil surface and the two genuinely web things: the client the page
|
|
852
|
+
* published on `window.Ticketlayer`, and `window.location.search`, which is
|
|
853
|
+
* where this runtime keeps the `?code=` the core asks for.
|
|
749
854
|
* Usage: <tl-login></tl-login>
|
|
750
855
|
* @event tlAuthChanged - signed in or out ({ customer, authenticated })
|
|
751
856
|
* @event tlMagicLinkSent - a link was requested for an email
|
|
@@ -774,6 +879,9 @@ declare global {
|
|
|
774
879
|
* the SDK): event, date, ticket count, total and status per row. Clicking a
|
|
775
880
|
* row expands it to show the order's tickets (tl-order-tickets). Shows
|
|
776
881
|
* tl-login inline when nobody is signed in.
|
|
882
|
+
* The web harness for `myOrdersCore`: it renders and it forwards. Who is
|
|
883
|
+
* signed in, the two auth subscriptions that keep that current, the listing
|
|
884
|
+
* and every string are in `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
777
885
|
* Usage: <tl-my-orders></tl-my-orders>
|
|
778
886
|
* @event tlOrderSelect - a row was expanded ({ orderId })
|
|
779
887
|
* @event tlError - the orders could not be loaded
|
|
@@ -823,6 +931,12 @@ declare global {
|
|
|
823
931
|
* page uses; `?redirect_status=` from a Stripe return is honoured too
|
|
824
932
|
* 3. the SDK's `checkout:completed` event, for a page that mounts this before
|
|
825
933
|
* the customer pays
|
|
934
|
+
* The web harness for `orderConfirmationCore`: it renders and it forwards. All
|
|
935
|
+
* three of those routes, the money rows, the event lookup and every string are
|
|
936
|
+
* in `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
937
|
+
* Stencil surface and the two genuinely web things: the client the page
|
|
938
|
+
* published on `window.Ticketlayer`, and `window.location.search`, which is
|
|
939
|
+
* where this runtime keeps the parameters the core asks for.
|
|
826
940
|
* Usage: <tl-order-confirmation order-id="ord_xxx"></tl-order-confirmation>
|
|
827
941
|
* @event tlOrderLoaded - the order was loaded
|
|
828
942
|
* @event tlError - the order could not be loaded
|
|
@@ -846,18 +960,14 @@ declare global {
|
|
|
846
960
|
* cards with PDF download. Fetches the order through the SDK (order-access
|
|
847
961
|
* gated by the session), so it works on a confirmation page or in an account.
|
|
848
962
|
* Usage: <tl-order-tickets order-id="ord_xxx"></tl-order-tickets>
|
|
849
|
-
* On an empty result it waits rather than concluding there is nothing
|
|
850
|
-
*
|
|
851
|
-
*
|
|
852
|
-
*
|
|
853
|
-
*
|
|
854
|
-
*
|
|
855
|
-
*
|
|
856
|
-
*
|
|
857
|
-
* So: an empty order is treated as issuance in flight and polled, with the
|
|
858
|
-
* gaps widening, for about a minute. Then it stops and says the tickets are
|
|
859
|
-
* coming by email, because at that point something probably is wrong and a
|
|
860
|
-
* page that polls forever is worse than one that admits it.
|
|
963
|
+
* On an empty result it waits rather than concluding there is nothing: tickets
|
|
964
|
+
* are issued a moment after the order is paid, so a confirmation page renders
|
|
965
|
+
* before the passes exist. The waiting, the widening schedule behind it and
|
|
966
|
+
* the point at which it gives up are all in `orderTicketsCore`
|
|
967
|
+
* (`@ticketlayer/elements-core`, AGENTS.md, TKT-11), along with every string.
|
|
968
|
+
* This harness renders and forwards, and the one thing it owns is pairing
|
|
969
|
+
* `mount()` with its teardown - which is what stops the polling when the
|
|
970
|
+
* element goes off screen.
|
|
861
971
|
*/
|
|
862
972
|
interface HTMLTlOrderTicketsElement extends Components.TlOrderTickets, HTMLStencilElement {
|
|
863
973
|
}
|
|
@@ -876,6 +986,8 @@ declare global {
|
|
|
876
986
|
* cart and publishes cart:updated, so tl-cart and badges re-render on their own.
|
|
877
987
|
* The API has no un-redeem, so the applied state offers only "use a different
|
|
878
988
|
* code", which clears the input for another redemption.
|
|
989
|
+
* The web harness for `promoCodeCore`: the redemption, the two error messages
|
|
990
|
+
* and every string are the core's (AGENTS.md, TKT-11).
|
|
879
991
|
* Usage: <tl-promo-code></tl-promo-code>
|
|
880
992
|
* @event tlPromoApplied - a code was redeemed ({ code, benefit, alreadyHeld, cart })
|
|
881
993
|
* @event tlError - the code was rejected
|
|
@@ -932,6 +1044,14 @@ declare global {
|
|
|
932
1044
|
"tlQuantityChange": { ticketTypeId: string; quantity: number; total: number };
|
|
933
1045
|
"tlError": { message: string };
|
|
934
1046
|
}
|
|
1047
|
+
/**
|
|
1048
|
+
* The web harness for `ticketSelectorCore`.
|
|
1049
|
+
* It renders and it forwards: every decision, every string and every sum is in
|
|
1050
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
1051
|
+
* Stencil surface a host writes HTML against - the tag, the attributes, the
|
|
1052
|
+
* three `tl*` events - plus the one thing that is genuinely web: finding the
|
|
1053
|
+
* client the page published on `window.Ticketlayer`.
|
|
1054
|
+
*/
|
|
935
1055
|
interface HTMLTlTicketSelectorElement extends Components.TlTicketSelector, HTMLStencilElement {
|
|
936
1056
|
addEventListener<K extends keyof HTMLTlTicketSelectorElementEventMap>(type: K, listener: (this: HTMLTlTicketSelectorElement, ev: TlTicketSelectorCustomEvent<HTMLTlTicketSelectorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
937
1057
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -1060,6 +1180,11 @@ declare namespace LocalJSX {
|
|
|
1060
1180
|
* @component tl-buy-tickets-wrapper
|
|
1061
1181
|
* Wraps any content and opens the Ticketlayer modal when clicked.
|
|
1062
1182
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
1183
|
+
* The web harness for `buyTicketsWrapperCore`. What a press does, what it
|
|
1184
|
+
* announces and what happens when no client has been published are all in
|
|
1185
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11); what is left here is the
|
|
1186
|
+
* Stencil surface, the accessibility attributes and the one genuinely web
|
|
1187
|
+
* question the core refuses to answer - which key counts as a press.
|
|
1063
1188
|
* @example <tl-buy-tickets-wrapper event-id="evt_001">
|
|
1064
1189
|
* <button>Buy Tickets</button>
|
|
1065
1190
|
* </tl-buy-tickets-wrapper>
|
|
@@ -1084,16 +1209,24 @@ declare namespace LocalJSX {
|
|
|
1084
1209
|
/**
|
|
1085
1210
|
* Emitted when the modal closes
|
|
1086
1211
|
*/
|
|
1087
|
-
"
|
|
1212
|
+
"onTlClose"?: (event: TlBuyTicketsWrapperCustomEvent<void>) => void;
|
|
1088
1213
|
/**
|
|
1089
1214
|
* Emitted when purchase completes successfully
|
|
1090
1215
|
*/
|
|
1091
|
-
"
|
|
1216
|
+
"onTlComplete"?: (event: TlBuyTicketsWrapperCustomEvent<OrderResult>) => void;
|
|
1092
1217
|
/**
|
|
1093
1218
|
* Emitted when an error occurs
|
|
1094
1219
|
*/
|
|
1095
|
-
"
|
|
1220
|
+
"onTlError"?: (event: TlBuyTicketsWrapperCustomEvent<{ message: string }>) => void;
|
|
1096
1221
|
}
|
|
1222
|
+
/**
|
|
1223
|
+
* The web harness for `cartCore`.
|
|
1224
|
+
* It renders and it forwards. The cart, the money rows, the subscription that
|
|
1225
|
+
* keeps them current and every string are in `@ticketlayer/elements-core`
|
|
1226
|
+
* (AGENTS.md, TKT-11); what is left here is the Stencil surface a host writes
|
|
1227
|
+
* HTML against and the one genuinely web thing, finding the client the page
|
|
1228
|
+
* published on `window.Ticketlayer`.
|
|
1229
|
+
*/
|
|
1097
1230
|
interface TlCart {
|
|
1098
1231
|
/**
|
|
1099
1232
|
* Checkout button label
|
|
@@ -1132,6 +1265,13 @@ declare namespace LocalJSX {
|
|
|
1132
1265
|
*/
|
|
1133
1266
|
"showRemoveButtons"?: boolean;
|
|
1134
1267
|
}
|
|
1268
|
+
/**
|
|
1269
|
+
* The web harness for `cartBadgeCore`.
|
|
1270
|
+
* The count, the "99+" rule, the cart subscription and the remembered value
|
|
1271
|
+
* are all in `@ticketlayer/elements-core`. What is here is the Stencil surface,
|
|
1272
|
+
* the icon, and the two web things the core is handed: the client the page
|
|
1273
|
+
* published and `localStorage`.
|
|
1274
|
+
*/
|
|
1135
1275
|
interface TlCartBadge {
|
|
1136
1276
|
/**
|
|
1137
1277
|
* Badge only mode - only shows the count bubble, no icon or button
|
|
@@ -1165,6 +1305,9 @@ declare namespace LocalJSX {
|
|
|
1165
1305
|
* button, Escape, or `ui:modal-close-requested`. The panel embeds `<tl-cart>`,
|
|
1166
1306
|
* so the actual cart rendering / remove / checkout is shared with the inline
|
|
1167
1307
|
* cart; the drawer only adds the off-canvas chrome.
|
|
1308
|
+
* The web harness for `cartDrawerCore`: the open/closed rule and the two
|
|
1309
|
+
* intents are the core's (TKT-11). What stays here is the chrome and the one
|
|
1310
|
+
* thing only a browser has, the Escape key.
|
|
1168
1311
|
* @prop side - which edge the panel slides from (default 'right')
|
|
1169
1312
|
* @event tlOpen - the drawer opened
|
|
1170
1313
|
* @event tlClose - the drawer closed
|
|
@@ -1192,6 +1335,9 @@ declare namespace LocalJSX {
|
|
|
1192
1335
|
* @component tl-checkout-wrapper
|
|
1193
1336
|
* Wraps any content and opens the Ticketlayer checkout modal when clicked.
|
|
1194
1337
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
1338
|
+
* The web harness for `checkoutWrapperCore`: it renders, it forwards, and it
|
|
1339
|
+
* decides only which key press counts as activation. Everything else is in
|
|
1340
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
1195
1341
|
* @example <tl-checkout-wrapper>
|
|
1196
1342
|
* <button>Proceed to Checkout</button>
|
|
1197
1343
|
* </tl-checkout-wrapper>
|
|
@@ -1205,16 +1351,22 @@ declare namespace LocalJSX {
|
|
|
1205
1351
|
/**
|
|
1206
1352
|
* Emitted when the modal closes
|
|
1207
1353
|
*/
|
|
1208
|
-
"
|
|
1354
|
+
"onTlClose"?: (event: TlCheckoutWrapperCustomEvent<void>) => void;
|
|
1209
1355
|
/**
|
|
1210
1356
|
* Emitted when checkout completes successfully
|
|
1211
1357
|
*/
|
|
1212
|
-
"
|
|
1358
|
+
"onTlComplete"?: (event: TlCheckoutWrapperCustomEvent<OrderResult>) => void;
|
|
1213
1359
|
/**
|
|
1214
1360
|
* Emitted when an error occurs
|
|
1215
1361
|
*/
|
|
1216
|
-
"
|
|
1362
|
+
"onTlError"?: (event: TlCheckoutWrapperCustomEvent<{ message: string }>) => void;
|
|
1217
1363
|
}
|
|
1364
|
+
/**
|
|
1365
|
+
* The web harness for `eventCardCore`.
|
|
1366
|
+
* It renders and it forwards: which event is shown, how it is read, the status
|
|
1367
|
+
* badge and the date are all in `@ticketlayer/elements-core` (AGENTS.md,
|
|
1368
|
+
* TKT-11).
|
|
1369
|
+
*/
|
|
1218
1370
|
interface TlEventCard {
|
|
1219
1371
|
/**
|
|
1220
1372
|
* Event data to display (tl-event-list passes this)
|
|
@@ -1233,6 +1385,13 @@ declare namespace LocalJSX {
|
|
|
1233
1385
|
*/
|
|
1234
1386
|
"onTlError"?: (event: TlEventCardCustomEvent<{ message: string }>) => void;
|
|
1235
1387
|
}
|
|
1388
|
+
/**
|
|
1389
|
+
* tl-event-list - what the channel is selling, as a grid of tl-event-card.
|
|
1390
|
+
* The web harness for `eventListCore`: it renders and it forwards. What to ask
|
|
1391
|
+
* for, what came back and every string are in `@ticketlayer/elements-core`
|
|
1392
|
+
* (AGENTS.md, TKT-11).
|
|
1393
|
+
* Usage: <tl-event-list limit="12" columns="3"></tl-event-list>
|
|
1394
|
+
*/
|
|
1236
1395
|
interface TlEventList {
|
|
1237
1396
|
/**
|
|
1238
1397
|
* Category filter
|
|
@@ -1261,6 +1420,12 @@ declare namespace LocalJSX {
|
|
|
1261
1420
|
* password is ever handled here.
|
|
1262
1421
|
* States: enter email -> check your inbox (resend, enter code) -> signed in
|
|
1263
1422
|
* (email + sign out).
|
|
1423
|
+
* The web harness for `loginCore`: it renders and it forwards. The phases, the
|
|
1424
|
+
* exchange, the auth subscriptions and every string are in
|
|
1425
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
1426
|
+
* Stencil surface and the two genuinely web things: the client the page
|
|
1427
|
+
* published on `window.Ticketlayer`, and `window.location.search`, which is
|
|
1428
|
+
* where this runtime keeps the `?code=` the core asks for.
|
|
1264
1429
|
* Usage: <tl-login></tl-login>
|
|
1265
1430
|
* @event tlAuthChanged - signed in or out ({ customer, authenticated })
|
|
1266
1431
|
* @event tlMagicLinkSent - a link was requested for an email
|
|
@@ -1286,6 +1451,9 @@ declare namespace LocalJSX {
|
|
|
1286
1451
|
* the SDK): event, date, ticket count, total and status per row. Clicking a
|
|
1287
1452
|
* row expands it to show the order's tickets (tl-order-tickets). Shows
|
|
1288
1453
|
* tl-login inline when nobody is signed in.
|
|
1454
|
+
* The web harness for `myOrdersCore`: it renders and it forwards. Who is
|
|
1455
|
+
* signed in, the two auth subscriptions that keep that current, the listing
|
|
1456
|
+
* and every string are in `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
1289
1457
|
* Usage: <tl-my-orders></tl-my-orders>
|
|
1290
1458
|
* @event tlOrderSelect - a row was expanded ({ orderId })
|
|
1291
1459
|
* @event tlError - the orders could not be loaded
|
|
@@ -1337,6 +1505,12 @@ declare namespace LocalJSX {
|
|
|
1337
1505
|
* page uses; `?redirect_status=` from a Stripe return is honoured too
|
|
1338
1506
|
* 3. the SDK's `checkout:completed` event, for a page that mounts this before
|
|
1339
1507
|
* the customer pays
|
|
1508
|
+
* The web harness for `orderConfirmationCore`: it renders and it forwards. All
|
|
1509
|
+
* three of those routes, the money rows, the event lookup and every string are
|
|
1510
|
+
* in `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
1511
|
+
* Stencil surface and the two genuinely web things: the client the page
|
|
1512
|
+
* published on `window.Ticketlayer`, and `window.location.search`, which is
|
|
1513
|
+
* where this runtime keeps the parameters the core asks for.
|
|
1340
1514
|
* Usage: <tl-order-confirmation order-id="ord_xxx"></tl-order-confirmation>
|
|
1341
1515
|
* @event tlOrderLoaded - the order was loaded
|
|
1342
1516
|
* @event tlError - the order could not be loaded
|
|
@@ -1368,18 +1542,14 @@ declare namespace LocalJSX {
|
|
|
1368
1542
|
* cards with PDF download. Fetches the order through the SDK (order-access
|
|
1369
1543
|
* gated by the session), so it works on a confirmation page or in an account.
|
|
1370
1544
|
* Usage: <tl-order-tickets order-id="ord_xxx"></tl-order-tickets>
|
|
1371
|
-
* On an empty result it waits rather than concluding there is nothing
|
|
1372
|
-
*
|
|
1373
|
-
*
|
|
1374
|
-
*
|
|
1375
|
-
*
|
|
1376
|
-
*
|
|
1377
|
-
*
|
|
1378
|
-
*
|
|
1379
|
-
* So: an empty order is treated as issuance in flight and polled, with the
|
|
1380
|
-
* gaps widening, for about a minute. Then it stops and says the tickets are
|
|
1381
|
-
* coming by email, because at that point something probably is wrong and a
|
|
1382
|
-
* page that polls forever is worse than one that admits it.
|
|
1545
|
+
* On an empty result it waits rather than concluding there is nothing: tickets
|
|
1546
|
+
* are issued a moment after the order is paid, so a confirmation page renders
|
|
1547
|
+
* before the passes exist. The waiting, the widening schedule behind it and
|
|
1548
|
+
* the point at which it gives up are all in `orderTicketsCore`
|
|
1549
|
+
* (`@ticketlayer/elements-core`, AGENTS.md, TKT-11), along with every string.
|
|
1550
|
+
* This harness renders and forwards, and the one thing it owns is pairing
|
|
1551
|
+
* `mount()` with its teardown - which is what stops the polling when the
|
|
1552
|
+
* element goes off screen.
|
|
1383
1553
|
*/
|
|
1384
1554
|
interface TlOrderTickets {
|
|
1385
1555
|
/**
|
|
@@ -1399,6 +1569,8 @@ declare namespace LocalJSX {
|
|
|
1399
1569
|
* cart and publishes cart:updated, so tl-cart and badges re-render on their own.
|
|
1400
1570
|
* The API has no un-redeem, so the applied state offers only "use a different
|
|
1401
1571
|
* code", which clears the input for another redemption.
|
|
1572
|
+
* The web harness for `promoCodeCore`: the redemption, the two error messages
|
|
1573
|
+
* and every string are the core's (AGENTS.md, TKT-11).
|
|
1402
1574
|
* Usage: <tl-promo-code></tl-promo-code>
|
|
1403
1575
|
* @event tlPromoApplied - a code was redeemed ({ code, benefit, alreadyHeld, cart })
|
|
1404
1576
|
* @event tlError - the code was rejected
|
|
@@ -1482,6 +1654,14 @@ declare namespace LocalJSX {
|
|
|
1482
1654
|
*/
|
|
1483
1655
|
"ticket": TlTicketData;
|
|
1484
1656
|
}
|
|
1657
|
+
/**
|
|
1658
|
+
* The web harness for `ticketSelectorCore`.
|
|
1659
|
+
* It renders and it forwards: every decision, every string and every sum is in
|
|
1660
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
1661
|
+
* Stencil surface a host writes HTML against - the tag, the attributes, the
|
|
1662
|
+
* three `tl*` events - plus the one thing that is genuinely web: finding the
|
|
1663
|
+
* client the page published on `window.Ticketlayer`.
|
|
1664
|
+
*/
|
|
1485
1665
|
interface TlTicketSelector {
|
|
1486
1666
|
/**
|
|
1487
1667
|
* Button label
|
|
@@ -1656,6 +1836,11 @@ declare module "@stencil/core" {
|
|
|
1656
1836
|
* @component tl-buy-tickets-wrapper
|
|
1657
1837
|
* Wraps any content and opens the Ticketlayer modal when clicked.
|
|
1658
1838
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
1839
|
+
* The web harness for `buyTicketsWrapperCore`. What a press does, what it
|
|
1840
|
+
* announces and what happens when no client has been published are all in
|
|
1841
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11); what is left here is the
|
|
1842
|
+
* Stencil surface, the accessibility attributes and the one genuinely web
|
|
1843
|
+
* question the core refuses to answer - which key counts as a press.
|
|
1659
1844
|
* @example <tl-buy-tickets-wrapper event-id="evt_001">
|
|
1660
1845
|
* <button>Buy Tickets</button>
|
|
1661
1846
|
* </tl-buy-tickets-wrapper>
|
|
@@ -1664,7 +1849,22 @@ declare module "@stencil/core" {
|
|
|
1664
1849
|
* </tl-buy-tickets-wrapper>
|
|
1665
1850
|
*/
|
|
1666
1851
|
"tl-buy-tickets-wrapper": LocalJSX.IntrinsicElements["tl-buy-tickets-wrapper"] & JSXBase.HTMLAttributes<HTMLTlBuyTicketsWrapperElement>;
|
|
1852
|
+
/**
|
|
1853
|
+
* The web harness for `cartCore`.
|
|
1854
|
+
* It renders and it forwards. The cart, the money rows, the subscription that
|
|
1855
|
+
* keeps them current and every string are in `@ticketlayer/elements-core`
|
|
1856
|
+
* (AGENTS.md, TKT-11); what is left here is the Stencil surface a host writes
|
|
1857
|
+
* HTML against and the one genuinely web thing, finding the client the page
|
|
1858
|
+
* published on `window.Ticketlayer`.
|
|
1859
|
+
*/
|
|
1667
1860
|
"tl-cart": LocalJSX.IntrinsicElements["tl-cart"] & JSXBase.HTMLAttributes<HTMLTlCartElement>;
|
|
1861
|
+
/**
|
|
1862
|
+
* The web harness for `cartBadgeCore`.
|
|
1863
|
+
* The count, the "99+" rule, the cart subscription and the remembered value
|
|
1864
|
+
* are all in `@ticketlayer/elements-core`. What is here is the Stencil surface,
|
|
1865
|
+
* the icon, and the two web things the core is handed: the client the page
|
|
1866
|
+
* published and `localStorage`.
|
|
1867
|
+
*/
|
|
1668
1868
|
"tl-cart-badge": LocalJSX.IntrinsicElements["tl-cart-badge"] & JSXBase.HTMLAttributes<HTMLTlCartBadgeElement>;
|
|
1669
1869
|
/**
|
|
1670
1870
|
* @component tl-cart-drawer
|
|
@@ -1674,6 +1874,9 @@ declare module "@stencil/core" {
|
|
|
1674
1874
|
* button, Escape, or `ui:modal-close-requested`. The panel embeds `<tl-cart>`,
|
|
1675
1875
|
* so the actual cart rendering / remove / checkout is shared with the inline
|
|
1676
1876
|
* cart; the drawer only adds the off-canvas chrome.
|
|
1877
|
+
* The web harness for `cartDrawerCore`: the open/closed rule and the two
|
|
1878
|
+
* intents are the core's (TKT-11). What stays here is the chrome and the one
|
|
1879
|
+
* thing only a browser has, the Escape key.
|
|
1677
1880
|
* @prop side - which edge the panel slides from (default 'right')
|
|
1678
1881
|
* @event tlOpen - the drawer opened
|
|
1679
1882
|
* @event tlClose - the drawer closed
|
|
@@ -1683,12 +1886,28 @@ declare module "@stencil/core" {
|
|
|
1683
1886
|
* @component tl-checkout-wrapper
|
|
1684
1887
|
* Wraps any content and opens the Ticketlayer checkout modal when clicked.
|
|
1685
1888
|
* Uses the SDK's modal manager which handles the iframe overlay.
|
|
1889
|
+
* The web harness for `checkoutWrapperCore`: it renders, it forwards, and it
|
|
1890
|
+
* decides only which key press counts as activation. Everything else is in
|
|
1891
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
1686
1892
|
* @example <tl-checkout-wrapper>
|
|
1687
1893
|
* <button>Proceed to Checkout</button>
|
|
1688
1894
|
* </tl-checkout-wrapper>
|
|
1689
1895
|
*/
|
|
1690
1896
|
"tl-checkout-wrapper": LocalJSX.IntrinsicElements["tl-checkout-wrapper"] & JSXBase.HTMLAttributes<HTMLTlCheckoutWrapperElement>;
|
|
1897
|
+
/**
|
|
1898
|
+
* The web harness for `eventCardCore`.
|
|
1899
|
+
* It renders and it forwards: which event is shown, how it is read, the status
|
|
1900
|
+
* badge and the date are all in `@ticketlayer/elements-core` (AGENTS.md,
|
|
1901
|
+
* TKT-11).
|
|
1902
|
+
*/
|
|
1691
1903
|
"tl-event-card": LocalJSX.IntrinsicElements["tl-event-card"] & JSXBase.HTMLAttributes<HTMLTlEventCardElement>;
|
|
1904
|
+
/**
|
|
1905
|
+
* tl-event-list - what the channel is selling, as a grid of tl-event-card.
|
|
1906
|
+
* The web harness for `eventListCore`: it renders and it forwards. What to ask
|
|
1907
|
+
* for, what came back and every string are in `@ticketlayer/elements-core`
|
|
1908
|
+
* (AGENTS.md, TKT-11).
|
|
1909
|
+
* Usage: <tl-event-list limit="12" columns="3"></tl-event-list>
|
|
1910
|
+
*/
|
|
1692
1911
|
"tl-event-list": LocalJSX.IntrinsicElements["tl-event-list"] & JSXBase.HTMLAttributes<HTMLTlEventListElement>;
|
|
1693
1912
|
/**
|
|
1694
1913
|
* tl-login - magic-link sign-in. The customer enters an email, we ask the SDK
|
|
@@ -1698,6 +1917,12 @@ declare module "@stencil/core" {
|
|
|
1698
1917
|
* password is ever handled here.
|
|
1699
1918
|
* States: enter email -> check your inbox (resend, enter code) -> signed in
|
|
1700
1919
|
* (email + sign out).
|
|
1920
|
+
* The web harness for `loginCore`: it renders and it forwards. The phases, the
|
|
1921
|
+
* exchange, the auth subscriptions and every string are in
|
|
1922
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
1923
|
+
* Stencil surface and the two genuinely web things: the client the page
|
|
1924
|
+
* published on `window.Ticketlayer`, and `window.location.search`, which is
|
|
1925
|
+
* where this runtime keeps the `?code=` the core asks for.
|
|
1701
1926
|
* Usage: <tl-login></tl-login>
|
|
1702
1927
|
* @event tlAuthChanged - signed in or out ({ customer, authenticated })
|
|
1703
1928
|
* @event tlMagicLinkSent - a link was requested for an email
|
|
@@ -1709,6 +1934,9 @@ declare module "@stencil/core" {
|
|
|
1709
1934
|
* the SDK): event, date, ticket count, total and status per row. Clicking a
|
|
1710
1935
|
* row expands it to show the order's tickets (tl-order-tickets). Shows
|
|
1711
1936
|
* tl-login inline when nobody is signed in.
|
|
1937
|
+
* The web harness for `myOrdersCore`: it renders and it forwards. Who is
|
|
1938
|
+
* signed in, the two auth subscriptions that keep that current, the listing
|
|
1939
|
+
* and every string are in `@ticketlayer/elements-core` (AGENTS.md, TKT-11).
|
|
1712
1940
|
* Usage: <tl-my-orders></tl-my-orders>
|
|
1713
1941
|
* @event tlOrderSelect - a row was expanded ({ orderId })
|
|
1714
1942
|
* @event tlError - the orders could not be loaded
|
|
@@ -1725,6 +1953,12 @@ declare module "@stencil/core" {
|
|
|
1725
1953
|
* page uses; `?redirect_status=` from a Stripe return is honoured too
|
|
1726
1954
|
* 3. the SDK's `checkout:completed` event, for a page that mounts this before
|
|
1727
1955
|
* the customer pays
|
|
1956
|
+
* The web harness for `orderConfirmationCore`: it renders and it forwards. All
|
|
1957
|
+
* three of those routes, the money rows, the event lookup and every string are
|
|
1958
|
+
* in `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
1959
|
+
* Stencil surface and the two genuinely web things: the client the page
|
|
1960
|
+
* published on `window.Ticketlayer`, and `window.location.search`, which is
|
|
1961
|
+
* where this runtime keeps the parameters the core asks for.
|
|
1728
1962
|
* Usage: <tl-order-confirmation order-id="ord_xxx"></tl-order-confirmation>
|
|
1729
1963
|
* @event tlOrderLoaded - the order was loaded
|
|
1730
1964
|
* @event tlError - the order could not be loaded
|
|
@@ -1735,18 +1969,14 @@ declare module "@stencil/core" {
|
|
|
1735
1969
|
* cards with PDF download. Fetches the order through the SDK (order-access
|
|
1736
1970
|
* gated by the session), so it works on a confirmation page or in an account.
|
|
1737
1971
|
* Usage: <tl-order-tickets order-id="ord_xxx"></tl-order-tickets>
|
|
1738
|
-
* On an empty result it waits rather than concluding there is nothing
|
|
1739
|
-
*
|
|
1740
|
-
*
|
|
1741
|
-
*
|
|
1742
|
-
*
|
|
1743
|
-
*
|
|
1744
|
-
*
|
|
1745
|
-
*
|
|
1746
|
-
* So: an empty order is treated as issuance in flight and polled, with the
|
|
1747
|
-
* gaps widening, for about a minute. Then it stops and says the tickets are
|
|
1748
|
-
* coming by email, because at that point something probably is wrong and a
|
|
1749
|
-
* page that polls forever is worse than one that admits it.
|
|
1972
|
+
* On an empty result it waits rather than concluding there is nothing: tickets
|
|
1973
|
+
* are issued a moment after the order is paid, so a confirmation page renders
|
|
1974
|
+
* before the passes exist. The waiting, the widening schedule behind it and
|
|
1975
|
+
* the point at which it gives up are all in `orderTicketsCore`
|
|
1976
|
+
* (`@ticketlayer/elements-core`, AGENTS.md, TKT-11), along with every string.
|
|
1977
|
+
* This harness renders and forwards, and the one thing it owns is pairing
|
|
1978
|
+
* `mount()` with its teardown - which is what stops the polling when the
|
|
1979
|
+
* element goes off screen.
|
|
1750
1980
|
*/
|
|
1751
1981
|
"tl-order-tickets": LocalJSX.IntrinsicElements["tl-order-tickets"] & JSXBase.HTMLAttributes<HTMLTlOrderTicketsElement>;
|
|
1752
1982
|
/**
|
|
@@ -1756,6 +1986,8 @@ declare module "@stencil/core" {
|
|
|
1756
1986
|
* cart and publishes cart:updated, so tl-cart and badges re-render on their own.
|
|
1757
1987
|
* The API has no un-redeem, so the applied state offers only "use a different
|
|
1758
1988
|
* code", which clears the input for another redemption.
|
|
1989
|
+
* The web harness for `promoCodeCore`: the redemption, the two error messages
|
|
1990
|
+
* and every string are the core's (AGENTS.md, TKT-11).
|
|
1759
1991
|
* Usage: <tl-promo-code></tl-promo-code>
|
|
1760
1992
|
* @event tlPromoApplied - a code was redeemed ({ code, benefit, alreadyHeld, cart })
|
|
1761
1993
|
* @event tlError - the code was rejected
|
|
@@ -1768,6 +2000,14 @@ declare module "@stencil/core" {
|
|
|
1768
2000
|
* Used/Void when redeemed or cancelled.
|
|
1769
2001
|
*/
|
|
1770
2002
|
"tl-ticket": LocalJSX.IntrinsicElements["tl-ticket"] & JSXBase.HTMLAttributes<HTMLTlTicketElement>;
|
|
2003
|
+
/**
|
|
2004
|
+
* The web harness for `ticketSelectorCore`.
|
|
2005
|
+
* It renders and it forwards: every decision, every string and every sum is in
|
|
2006
|
+
* `@ticketlayer/elements-core` (AGENTS.md, TKT-11). What is left here is the
|
|
2007
|
+
* Stencil surface a host writes HTML against - the tag, the attributes, the
|
|
2008
|
+
* three `tl*` events - plus the one thing that is genuinely web: finding the
|
|
2009
|
+
* client the page published on `window.Ticketlayer`.
|
|
2010
|
+
*/
|
|
1771
2011
|
"tl-ticket-selector": LocalJSX.IntrinsicElements["tl-ticket-selector"] & JSXBase.HTMLAttributes<HTMLTlTicketSelectorElement>;
|
|
1772
2012
|
}
|
|
1773
2013
|
}
|