@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.
- package/dist/cjs/{index-I9CoYv3k.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 +3 -3
- package/dist/cjs/tl-buy-tickets-button.cjs.entry.js +89 -74
- package/dist/cjs/tl-buy-tickets-wrapper.cjs.entry.js +61 -30
- package/dist/cjs/tl-cart-badge.cjs.entry.js +74 -61
- package/dist/cjs/tl-cart-drawer.cjs.entry.js +51 -23
- package/dist/cjs/tl-cart.cjs.entry.js +71 -103
- package/dist/cjs/tl-checkout-wrapper.cjs.entry.js +51 -29
- package/dist/cjs/tl-event-card.cjs.entry.js +43 -105
- package/dist/cjs/tl-event-list.cjs.entry.js +72 -35
- package/dist/cjs/tl-login.cjs.entry.js +74 -141
- package/dist/cjs/tl-my-orders.cjs.entry.js +52 -92
- package/dist/cjs/tl-occurrence-selector_2.cjs.entry.js +153 -921
- package/dist/cjs/tl-order-confirmation.cjs.entry.js +71 -107
- package/dist/cjs/tl-order-tickets_2.cjs.entry.js +48 -74
- package/dist/cjs/tl-promo-code.cjs.entry.js +50 -47
- package/dist/cjs/tl-seat-map.cjs.entry.js +3 -3
- package/dist/cjs/web-query-Ce73jB4k.js +16 -0
- 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 +37 -0
- package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.js +105 -79
- package/dist/collection/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.js +73 -30
- package/dist/collection/components/tl-cart/tl-cart.js +82 -107
- package/dist/collection/components/tl-cart-badge/tl-cart-badge.js +62 -62
- package/dist/collection/components/tl-cart-drawer/tl-cart-drawer.js +56 -24
- 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.js +51 -84
- package/dist/collection/components/tl-event-list/tl-event-list.js +82 -38
- package/dist/collection/components/tl-login/tl-login.js +83 -147
- package/dist/collection/components/tl-my-orders/tl-my-orders.js +58 -96
- package/dist/collection/components/tl-occurrence-selector/tl-occurrence-selector.js +137 -516
- package/dist/collection/components/tl-order-confirmation/tl-order-confirmation.js +81 -115
- package/dist/collection/components/tl-order-tickets/tl-order-tickets.js +57 -92
- package/dist/collection/components/tl-promo-code/tl-promo-code.js +55 -50
- package/dist/collection/components/tl-seat-map/tl-seat-map.js +2 -2
- package/dist/collection/components/tl-ticket-selector/tl-ticket-selector.js +34 -20
- package/dist/collection/utils/order-summary.js +15 -135
- 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/web-query.js +1 -0
- package/dist/elements.docs.json +34 -34
- package/dist/esm/{index-OoYV1faY.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 +3 -3
- package/dist/esm/tl-buy-tickets-button.entry.js +90 -75
- package/dist/esm/tl-buy-tickets-wrapper.entry.js +62 -31
- package/dist/esm/tl-cart-badge.entry.js +75 -62
- package/dist/esm/tl-cart-drawer.entry.js +52 -24
- package/dist/esm/tl-cart.entry.js +72 -104
- package/dist/esm/tl-checkout-wrapper.entry.js +52 -30
- package/dist/esm/tl-event-card.entry.js +44 -106
- package/dist/esm/tl-event-list.entry.js +73 -36
- package/dist/esm/tl-login.entry.js +75 -142
- package/dist/esm/tl-my-orders.entry.js +53 -93
- package/dist/esm/tl-occurrence-selector_2.entry.js +152 -920
- package/dist/esm/tl-order-confirmation.entry.js +72 -108
- package/dist/esm/tl-order-tickets_2.entry.js +49 -75
- package/dist/esm/tl-promo-code.entry.js +51 -48
- package/dist/esm/tl-seat-map.entry.js +3 -3
- 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-ac264adc.entry.js → p-5135630e.entry.js} +1 -1
- 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 -42
- 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 +22 -4
- package/dist/types/components.d.ts +270 -62
- package/dist/types/utils/order-summary.d.ts +14 -97
- 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 +602 -50
- package/package.json +8 -6
- package/dist/cjs/money-BtmM2gt-.js +0 -118
- package/dist/cjs/order-summary-X3TlZxc2.js +0 -150
- package/dist/components/money.js +0 -1
- package/dist/components/order-summary.js +0 -1
- package/dist/esm/money-4ig0-WB6.js +0 -112
- package/dist/esm/order-summary-DiDtvfZM.js +0 -136
- package/dist/ticketlayer-elements/p-0814420f.entry.js +0 -1
- package/dist/ticketlayer-elements/p-0acabc26.entry.js +0 -1
- package/dist/ticketlayer-elements/p-109a3feb.entry.js +0 -1
- package/dist/ticketlayer-elements/p-1a4ba71c.entry.js +0 -1
- package/dist/ticketlayer-elements/p-318965c1.entry.js +0 -1
- package/dist/ticketlayer-elements/p-347c7fd1.entry.js +0 -1
- package/dist/ticketlayer-elements/p-3649c26d.entry.js +0 -1
- package/dist/ticketlayer-elements/p-40260cc9.entry.js +0 -1
- package/dist/ticketlayer-elements/p-4ig0-WB6.js +0 -1
- package/dist/ticketlayer-elements/p-55fd2f9f.entry.js +0 -1
- package/dist/ticketlayer-elements/p-62ee659b.entry.js +0 -1
- package/dist/ticketlayer-elements/p-7d4ecc2b.entry.js +0 -1
- package/dist/ticketlayer-elements/p-7f0abf95.entry.js +0 -1
- package/dist/ticketlayer-elements/p-BXpVGW51.js +0 -1
- package/dist/ticketlayer-elements/p-OoYV1faY.js +0 -3
- package/dist/ticketlayer-elements/p-a3c1b26c.entry.js +0 -1
- package/dist/ticketlayer-elements/p-aeb4c6fb.entry.js +0 -1
- package/dist/ticketlayer-elements/p-ba62541f.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
|
|
@@ -583,14 +635,19 @@ declare global {
|
|
|
583
635
|
new (): HTMLTlBuyTicketsButtonElement;
|
|
584
636
|
};
|
|
585
637
|
interface HTMLTlBuyTicketsWrapperElementEventMap {
|
|
586
|
-
"
|
|
587
|
-
"
|
|
588
|
-
"
|
|
638
|
+
"tlComplete": OrderResult;
|
|
639
|
+
"tlError": { message: string };
|
|
640
|
+
"tlClose": void;
|
|
589
641
|
}
|
|
590
642
|
/**
|
|
591
643
|
* @component tl-buy-tickets-wrapper
|
|
592
644
|
* Wraps any content and opens the Ticketlayer modal when clicked.
|
|
593
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.
|
|
594
651
|
* @example <tl-buy-tickets-wrapper event-id="evt_001">
|
|
595
652
|
* <button>Buy Tickets</button>
|
|
596
653
|
* </tl-buy-tickets-wrapper>
|
|
@@ -618,6 +675,14 @@ declare global {
|
|
|
618
675
|
"tlCartUpdated": { cart: TlCartData };
|
|
619
676
|
"tlError": { message: string };
|
|
620
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
|
+
*/
|
|
621
686
|
interface HTMLTlCartElement extends Components.TlCart, HTMLStencilElement {
|
|
622
687
|
addEventListener<K extends keyof HTMLTlCartElementEventMap>(type: K, listener: (this: HTMLTlCartElement, ev: TlCartCustomEvent<HTMLTlCartElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
623
688
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -635,6 +700,13 @@ declare global {
|
|
|
635
700
|
interface HTMLTlCartBadgeElementEventMap {
|
|
636
701
|
"tlClick": { itemCount: number };
|
|
637
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
|
+
*/
|
|
638
710
|
interface HTMLTlCartBadgeElement extends Components.TlCartBadge, HTMLStencilElement {
|
|
639
711
|
addEventListener<K extends keyof HTMLTlCartBadgeElementEventMap>(type: K, listener: (this: HTMLTlCartBadgeElement, ev: TlCartBadgeCustomEvent<HTMLTlCartBadgeElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
640
712
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -661,6 +733,9 @@ declare global {
|
|
|
661
733
|
* button, Escape, or `ui:modal-close-requested`. The panel embeds `<tl-cart>`,
|
|
662
734
|
* so the actual cart rendering / remove / checkout is shared with the inline
|
|
663
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.
|
|
664
739
|
* @prop side - which edge the panel slides from (default 'right')
|
|
665
740
|
* @event tlOpen - the drawer opened
|
|
666
741
|
* @event tlClose - the drawer closed
|
|
@@ -680,14 +755,17 @@ declare global {
|
|
|
680
755
|
new (): HTMLTlCartDrawerElement;
|
|
681
756
|
};
|
|
682
757
|
interface HTMLTlCheckoutWrapperElementEventMap {
|
|
683
|
-
"
|
|
684
|
-
"
|
|
685
|
-
"
|
|
758
|
+
"tlComplete": OrderResult;
|
|
759
|
+
"tlError": { message: string };
|
|
760
|
+
"tlClose": void;
|
|
686
761
|
}
|
|
687
762
|
/**
|
|
688
763
|
* @component tl-checkout-wrapper
|
|
689
764
|
* Wraps any content and opens the Ticketlayer checkout modal when clicked.
|
|
690
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).
|
|
691
769
|
* @example <tl-checkout-wrapper>
|
|
692
770
|
* <button>Proceed to Checkout</button>
|
|
693
771
|
* </tl-checkout-wrapper>
|
|
@@ -710,6 +788,12 @@ declare global {
|
|
|
710
788
|
"tlClick": { eventId: string };
|
|
711
789
|
"tlError": { message: string };
|
|
712
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
|
+
*/
|
|
713
797
|
interface HTMLTlEventCardElement extends Components.TlEventCard, HTMLStencilElement {
|
|
714
798
|
addEventListener<K extends keyof HTMLTlEventCardElementEventMap>(type: K, listener: (this: HTMLTlEventCardElement, ev: TlEventCardCustomEvent<HTMLTlEventCardElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
715
799
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -727,6 +811,13 @@ declare global {
|
|
|
727
811
|
interface HTMLTlEventListElementEventMap {
|
|
728
812
|
"tlEventClick": { eventId: string };
|
|
729
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
|
+
*/
|
|
730
821
|
interface HTMLTlEventListElement extends Components.TlEventList, HTMLStencilElement {
|
|
731
822
|
addEventListener<K extends keyof HTMLTlEventListElementEventMap>(type: K, listener: (this: HTMLTlEventListElement, ev: TlEventListCustomEvent<HTMLTlEventListElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
732
823
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
@@ -754,6 +845,12 @@ declare global {
|
|
|
754
845
|
* password is ever handled here.
|
|
755
846
|
* States: enter email -> check your inbox (resend, enter code) -> signed in
|
|
756
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.
|
|
757
854
|
* Usage: <tl-login></tl-login>
|
|
758
855
|
* @event tlAuthChanged - signed in or out ({ customer, authenticated })
|
|
759
856
|
* @event tlMagicLinkSent - a link was requested for an email
|
|
@@ -782,6 +879,9 @@ declare global {
|
|
|
782
879
|
* the SDK): event, date, ticket count, total and status per row. Clicking a
|
|
783
880
|
* row expands it to show the order's tickets (tl-order-tickets). Shows
|
|
784
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).
|
|
785
885
|
* Usage: <tl-my-orders></tl-my-orders>
|
|
786
886
|
* @event tlOrderSelect - a row was expanded ({ orderId })
|
|
787
887
|
* @event tlError - the orders could not be loaded
|
|
@@ -831,6 +931,12 @@ declare global {
|
|
|
831
931
|
* page uses; `?redirect_status=` from a Stripe return is honoured too
|
|
832
932
|
* 3. the SDK's `checkout:completed` event, for a page that mounts this before
|
|
833
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.
|
|
834
940
|
* Usage: <tl-order-confirmation order-id="ord_xxx"></tl-order-confirmation>
|
|
835
941
|
* @event tlOrderLoaded - the order was loaded
|
|
836
942
|
* @event tlError - the order could not be loaded
|
|
@@ -854,18 +960,14 @@ declare global {
|
|
|
854
960
|
* cards with PDF download. Fetches the order through the SDK (order-access
|
|
855
961
|
* gated by the session), so it works on a confirmation page or in an account.
|
|
856
962
|
* Usage: <tl-order-tickets order-id="ord_xxx"></tl-order-tickets>
|
|
857
|
-
* On an empty result it waits rather than concluding there is nothing
|
|
858
|
-
*
|
|
859
|
-
*
|
|
860
|
-
*
|
|
861
|
-
*
|
|
862
|
-
*
|
|
863
|
-
*
|
|
864
|
-
*
|
|
865
|
-
* So: an empty order is treated as issuance in flight and polled, with the
|
|
866
|
-
* gaps widening, for about a minute. Then it stops and says the tickets are
|
|
867
|
-
* coming by email, because at that point something probably is wrong and a
|
|
868
|
-
* 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.
|
|
869
971
|
*/
|
|
870
972
|
interface HTMLTlOrderTicketsElement extends Components.TlOrderTickets, HTMLStencilElement {
|
|
871
973
|
}
|
|
@@ -884,6 +986,8 @@ declare global {
|
|
|
884
986
|
* cart and publishes cart:updated, so tl-cart and badges re-render on their own.
|
|
885
987
|
* The API has no un-redeem, so the applied state offers only "use a different
|
|
886
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).
|
|
887
991
|
* Usage: <tl-promo-code></tl-promo-code>
|
|
888
992
|
* @event tlPromoApplied - a code was redeemed ({ code, benefit, alreadyHeld, cart })
|
|
889
993
|
* @event tlError - the code was rejected
|
|
@@ -1076,6 +1180,11 @@ declare namespace LocalJSX {
|
|
|
1076
1180
|
* @component tl-buy-tickets-wrapper
|
|
1077
1181
|
* Wraps any content and opens the Ticketlayer modal when clicked.
|
|
1078
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.
|
|
1079
1188
|
* @example <tl-buy-tickets-wrapper event-id="evt_001">
|
|
1080
1189
|
* <button>Buy Tickets</button>
|
|
1081
1190
|
* </tl-buy-tickets-wrapper>
|
|
@@ -1100,16 +1209,24 @@ declare namespace LocalJSX {
|
|
|
1100
1209
|
/**
|
|
1101
1210
|
* Emitted when the modal closes
|
|
1102
1211
|
*/
|
|
1103
|
-
"
|
|
1212
|
+
"onTlClose"?: (event: TlBuyTicketsWrapperCustomEvent<void>) => void;
|
|
1104
1213
|
/**
|
|
1105
1214
|
* Emitted when purchase completes successfully
|
|
1106
1215
|
*/
|
|
1107
|
-
"
|
|
1216
|
+
"onTlComplete"?: (event: TlBuyTicketsWrapperCustomEvent<OrderResult>) => void;
|
|
1108
1217
|
/**
|
|
1109
1218
|
* Emitted when an error occurs
|
|
1110
1219
|
*/
|
|
1111
|
-
"
|
|
1220
|
+
"onTlError"?: (event: TlBuyTicketsWrapperCustomEvent<{ message: string }>) => void;
|
|
1112
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
|
+
*/
|
|
1113
1230
|
interface TlCart {
|
|
1114
1231
|
/**
|
|
1115
1232
|
* Checkout button label
|
|
@@ -1148,6 +1265,13 @@ declare namespace LocalJSX {
|
|
|
1148
1265
|
*/
|
|
1149
1266
|
"showRemoveButtons"?: boolean;
|
|
1150
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
|
+
*/
|
|
1151
1275
|
interface TlCartBadge {
|
|
1152
1276
|
/**
|
|
1153
1277
|
* Badge only mode - only shows the count bubble, no icon or button
|
|
@@ -1181,6 +1305,9 @@ declare namespace LocalJSX {
|
|
|
1181
1305
|
* button, Escape, or `ui:modal-close-requested`. The panel embeds `<tl-cart>`,
|
|
1182
1306
|
* so the actual cart rendering / remove / checkout is shared with the inline
|
|
1183
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.
|
|
1184
1311
|
* @prop side - which edge the panel slides from (default 'right')
|
|
1185
1312
|
* @event tlOpen - the drawer opened
|
|
1186
1313
|
* @event tlClose - the drawer closed
|
|
@@ -1208,6 +1335,9 @@ declare namespace LocalJSX {
|
|
|
1208
1335
|
* @component tl-checkout-wrapper
|
|
1209
1336
|
* Wraps any content and opens the Ticketlayer checkout modal when clicked.
|
|
1210
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).
|
|
1211
1341
|
* @example <tl-checkout-wrapper>
|
|
1212
1342
|
* <button>Proceed to Checkout</button>
|
|
1213
1343
|
* </tl-checkout-wrapper>
|
|
@@ -1221,16 +1351,22 @@ declare namespace LocalJSX {
|
|
|
1221
1351
|
/**
|
|
1222
1352
|
* Emitted when the modal closes
|
|
1223
1353
|
*/
|
|
1224
|
-
"
|
|
1354
|
+
"onTlClose"?: (event: TlCheckoutWrapperCustomEvent<void>) => void;
|
|
1225
1355
|
/**
|
|
1226
1356
|
* Emitted when checkout completes successfully
|
|
1227
1357
|
*/
|
|
1228
|
-
"
|
|
1358
|
+
"onTlComplete"?: (event: TlCheckoutWrapperCustomEvent<OrderResult>) => void;
|
|
1229
1359
|
/**
|
|
1230
1360
|
* Emitted when an error occurs
|
|
1231
1361
|
*/
|
|
1232
|
-
"
|
|
1362
|
+
"onTlError"?: (event: TlCheckoutWrapperCustomEvent<{ message: string }>) => void;
|
|
1233
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
|
+
*/
|
|
1234
1370
|
interface TlEventCard {
|
|
1235
1371
|
/**
|
|
1236
1372
|
* Event data to display (tl-event-list passes this)
|
|
@@ -1249,6 +1385,13 @@ declare namespace LocalJSX {
|
|
|
1249
1385
|
*/
|
|
1250
1386
|
"onTlError"?: (event: TlEventCardCustomEvent<{ message: string }>) => void;
|
|
1251
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
|
+
*/
|
|
1252
1395
|
interface TlEventList {
|
|
1253
1396
|
/**
|
|
1254
1397
|
* Category filter
|
|
@@ -1277,6 +1420,12 @@ declare namespace LocalJSX {
|
|
|
1277
1420
|
* password is ever handled here.
|
|
1278
1421
|
* States: enter email -> check your inbox (resend, enter code) -> signed in
|
|
1279
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.
|
|
1280
1429
|
* Usage: <tl-login></tl-login>
|
|
1281
1430
|
* @event tlAuthChanged - signed in or out ({ customer, authenticated })
|
|
1282
1431
|
* @event tlMagicLinkSent - a link was requested for an email
|
|
@@ -1302,6 +1451,9 @@ declare namespace LocalJSX {
|
|
|
1302
1451
|
* the SDK): event, date, ticket count, total and status per row. Clicking a
|
|
1303
1452
|
* row expands it to show the order's tickets (tl-order-tickets). Shows
|
|
1304
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).
|
|
1305
1457
|
* Usage: <tl-my-orders></tl-my-orders>
|
|
1306
1458
|
* @event tlOrderSelect - a row was expanded ({ orderId })
|
|
1307
1459
|
* @event tlError - the orders could not be loaded
|
|
@@ -1353,6 +1505,12 @@ declare namespace LocalJSX {
|
|
|
1353
1505
|
* page uses; `?redirect_status=` from a Stripe return is honoured too
|
|
1354
1506
|
* 3. the SDK's `checkout:completed` event, for a page that mounts this before
|
|
1355
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.
|
|
1356
1514
|
* Usage: <tl-order-confirmation order-id="ord_xxx"></tl-order-confirmation>
|
|
1357
1515
|
* @event tlOrderLoaded - the order was loaded
|
|
1358
1516
|
* @event tlError - the order could not be loaded
|
|
@@ -1384,18 +1542,14 @@ declare namespace LocalJSX {
|
|
|
1384
1542
|
* cards with PDF download. Fetches the order through the SDK (order-access
|
|
1385
1543
|
* gated by the session), so it works on a confirmation page or in an account.
|
|
1386
1544
|
* Usage: <tl-order-tickets order-id="ord_xxx"></tl-order-tickets>
|
|
1387
|
-
* On an empty result it waits rather than concluding there is nothing
|
|
1388
|
-
*
|
|
1389
|
-
*
|
|
1390
|
-
*
|
|
1391
|
-
*
|
|
1392
|
-
*
|
|
1393
|
-
*
|
|
1394
|
-
*
|
|
1395
|
-
* So: an empty order is treated as issuance in flight and polled, with the
|
|
1396
|
-
* gaps widening, for about a minute. Then it stops and says the tickets are
|
|
1397
|
-
* coming by email, because at that point something probably is wrong and a
|
|
1398
|
-
* 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.
|
|
1399
1553
|
*/
|
|
1400
1554
|
interface TlOrderTickets {
|
|
1401
1555
|
/**
|
|
@@ -1415,6 +1569,8 @@ declare namespace LocalJSX {
|
|
|
1415
1569
|
* cart and publishes cart:updated, so tl-cart and badges re-render on their own.
|
|
1416
1570
|
* The API has no un-redeem, so the applied state offers only "use a different
|
|
1417
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).
|
|
1418
1574
|
* Usage: <tl-promo-code></tl-promo-code>
|
|
1419
1575
|
* @event tlPromoApplied - a code was redeemed ({ code, benefit, alreadyHeld, cart })
|
|
1420
1576
|
* @event tlError - the code was rejected
|
|
@@ -1680,6 +1836,11 @@ declare module "@stencil/core" {
|
|
|
1680
1836
|
* @component tl-buy-tickets-wrapper
|
|
1681
1837
|
* Wraps any content and opens the Ticketlayer modal when clicked.
|
|
1682
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.
|
|
1683
1844
|
* @example <tl-buy-tickets-wrapper event-id="evt_001">
|
|
1684
1845
|
* <button>Buy Tickets</button>
|
|
1685
1846
|
* </tl-buy-tickets-wrapper>
|
|
@@ -1688,7 +1849,22 @@ declare module "@stencil/core" {
|
|
|
1688
1849
|
* </tl-buy-tickets-wrapper>
|
|
1689
1850
|
*/
|
|
1690
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
|
+
*/
|
|
1691
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
|
+
*/
|
|
1692
1868
|
"tl-cart-badge": LocalJSX.IntrinsicElements["tl-cart-badge"] & JSXBase.HTMLAttributes<HTMLTlCartBadgeElement>;
|
|
1693
1869
|
/**
|
|
1694
1870
|
* @component tl-cart-drawer
|
|
@@ -1698,6 +1874,9 @@ declare module "@stencil/core" {
|
|
|
1698
1874
|
* button, Escape, or `ui:modal-close-requested`. The panel embeds `<tl-cart>`,
|
|
1699
1875
|
* so the actual cart rendering / remove / checkout is shared with the inline
|
|
1700
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.
|
|
1701
1880
|
* @prop side - which edge the panel slides from (default 'right')
|
|
1702
1881
|
* @event tlOpen - the drawer opened
|
|
1703
1882
|
* @event tlClose - the drawer closed
|
|
@@ -1707,12 +1886,28 @@ declare module "@stencil/core" {
|
|
|
1707
1886
|
* @component tl-checkout-wrapper
|
|
1708
1887
|
* Wraps any content and opens the Ticketlayer checkout modal when clicked.
|
|
1709
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).
|
|
1710
1892
|
* @example <tl-checkout-wrapper>
|
|
1711
1893
|
* <button>Proceed to Checkout</button>
|
|
1712
1894
|
* </tl-checkout-wrapper>
|
|
1713
1895
|
*/
|
|
1714
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
|
+
*/
|
|
1715
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
|
+
*/
|
|
1716
1911
|
"tl-event-list": LocalJSX.IntrinsicElements["tl-event-list"] & JSXBase.HTMLAttributes<HTMLTlEventListElement>;
|
|
1717
1912
|
/**
|
|
1718
1913
|
* tl-login - magic-link sign-in. The customer enters an email, we ask the SDK
|
|
@@ -1722,6 +1917,12 @@ declare module "@stencil/core" {
|
|
|
1722
1917
|
* password is ever handled here.
|
|
1723
1918
|
* States: enter email -> check your inbox (resend, enter code) -> signed in
|
|
1724
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.
|
|
1725
1926
|
* Usage: <tl-login></tl-login>
|
|
1726
1927
|
* @event tlAuthChanged - signed in or out ({ customer, authenticated })
|
|
1727
1928
|
* @event tlMagicLinkSent - a link was requested for an email
|
|
@@ -1733,6 +1934,9 @@ declare module "@stencil/core" {
|
|
|
1733
1934
|
* the SDK): event, date, ticket count, total and status per row. Clicking a
|
|
1734
1935
|
* row expands it to show the order's tickets (tl-order-tickets). Shows
|
|
1735
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).
|
|
1736
1940
|
* Usage: <tl-my-orders></tl-my-orders>
|
|
1737
1941
|
* @event tlOrderSelect - a row was expanded ({ orderId })
|
|
1738
1942
|
* @event tlError - the orders could not be loaded
|
|
@@ -1749,6 +1953,12 @@ declare module "@stencil/core" {
|
|
|
1749
1953
|
* page uses; `?redirect_status=` from a Stripe return is honoured too
|
|
1750
1954
|
* 3. the SDK's `checkout:completed` event, for a page that mounts this before
|
|
1751
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.
|
|
1752
1962
|
* Usage: <tl-order-confirmation order-id="ord_xxx"></tl-order-confirmation>
|
|
1753
1963
|
* @event tlOrderLoaded - the order was loaded
|
|
1754
1964
|
* @event tlError - the order could not be loaded
|
|
@@ -1759,18 +1969,14 @@ declare module "@stencil/core" {
|
|
|
1759
1969
|
* cards with PDF download. Fetches the order through the SDK (order-access
|
|
1760
1970
|
* gated by the session), so it works on a confirmation page or in an account.
|
|
1761
1971
|
* Usage: <tl-order-tickets order-id="ord_xxx"></tl-order-tickets>
|
|
1762
|
-
* On an empty result it waits rather than concluding there is nothing
|
|
1763
|
-
*
|
|
1764
|
-
*
|
|
1765
|
-
*
|
|
1766
|
-
*
|
|
1767
|
-
*
|
|
1768
|
-
*
|
|
1769
|
-
*
|
|
1770
|
-
* So: an empty order is treated as issuance in flight and polled, with the
|
|
1771
|
-
* gaps widening, for about a minute. Then it stops and says the tickets are
|
|
1772
|
-
* coming by email, because at that point something probably is wrong and a
|
|
1773
|
-
* 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.
|
|
1774
1980
|
*/
|
|
1775
1981
|
"tl-order-tickets": LocalJSX.IntrinsicElements["tl-order-tickets"] & JSXBase.HTMLAttributes<HTMLTlOrderTicketsElement>;
|
|
1776
1982
|
/**
|
|
@@ -1780,6 +1986,8 @@ declare module "@stencil/core" {
|
|
|
1780
1986
|
* cart and publishes cart:updated, so tl-cart and badges re-render on their own.
|
|
1781
1987
|
* The API has no un-redeem, so the applied state offers only "use a different
|
|
1782
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).
|
|
1783
1991
|
* Usage: <tl-promo-code></tl-promo-code>
|
|
1784
1992
|
* @event tlPromoApplied - a code was redeemed ({ code, benefit, alreadyHeld, cart })
|
|
1785
1993
|
* @event tlError - the code was rejected
|