@ticketlayer/elements 0.4.0 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/dist/cjs/{index-I9CoYv3k.js → index-DanPUX0s.js} +1 -1
  2. package/dist/cjs/index.cjs.js +2 -1
  3. package/dist/cjs/loader.cjs.js +2 -2
  4. package/dist/cjs/ticket-selector-BYVL13k_.js +3623 -0
  5. package/dist/cjs/ticketlayer-elements.cjs.js +2 -2
  6. package/dist/cjs/tl-buy-modal.cjs.entry.js +3 -3
  7. package/dist/cjs/tl-buy-tickets-button.cjs.entry.js +89 -74
  8. package/dist/cjs/tl-buy-tickets-wrapper.cjs.entry.js +61 -30
  9. package/dist/cjs/tl-cart-badge.cjs.entry.js +74 -61
  10. package/dist/cjs/tl-cart-drawer.cjs.entry.js +51 -23
  11. package/dist/cjs/tl-cart.cjs.entry.js +71 -103
  12. package/dist/cjs/tl-checkout-wrapper.cjs.entry.js +51 -29
  13. package/dist/cjs/tl-event-card.cjs.entry.js +43 -105
  14. package/dist/cjs/tl-event-list.cjs.entry.js +72 -35
  15. package/dist/cjs/tl-login.cjs.entry.js +74 -141
  16. package/dist/cjs/tl-my-orders.cjs.entry.js +52 -92
  17. package/dist/cjs/tl-occurrence-selector_2.cjs.entry.js +153 -921
  18. package/dist/cjs/tl-order-confirmation.cjs.entry.js +71 -107
  19. package/dist/cjs/tl-order-tickets_2.cjs.entry.js +48 -74
  20. package/dist/cjs/tl-promo-code.cjs.entry.js +50 -47
  21. package/dist/cjs/tl-seat-map.cjs.entry.js +3 -3
  22. package/dist/cjs/web-query-Ce73jB4k.js +16 -0
  23. package/dist/collection/components/tl-buy-modal/tl-buy-modal.js +2 -2
  24. package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.css +37 -0
  25. package/dist/collection/components/tl-buy-tickets-button/tl-buy-tickets-button.js +105 -79
  26. package/dist/collection/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.js +73 -30
  27. package/dist/collection/components/tl-cart/tl-cart.js +82 -107
  28. package/dist/collection/components/tl-cart-badge/tl-cart-badge.js +62 -62
  29. package/dist/collection/components/tl-cart-drawer/tl-cart-drawer.js +56 -24
  30. package/dist/collection/components/tl-checkout-wrapper/tl-checkout-wrapper.js +61 -29
  31. package/dist/collection/components/tl-event-card/event-card-adapter.js +11 -23
  32. package/dist/collection/components/tl-event-card/tl-event-card.js +51 -84
  33. package/dist/collection/components/tl-event-list/tl-event-list.js +82 -38
  34. package/dist/collection/components/tl-login/tl-login.js +83 -147
  35. package/dist/collection/components/tl-my-orders/tl-my-orders.js +58 -96
  36. package/dist/collection/components/tl-occurrence-selector/tl-occurrence-selector.js +137 -516
  37. package/dist/collection/components/tl-order-confirmation/tl-order-confirmation.js +81 -115
  38. package/dist/collection/components/tl-order-tickets/tl-order-tickets.js +57 -92
  39. package/dist/collection/components/tl-promo-code/tl-promo-code.js +55 -50
  40. package/dist/collection/components/tl-seat-map/tl-seat-map.js +2 -2
  41. package/dist/collection/components/tl-ticket-selector/tl-ticket-selector.js +34 -20
  42. package/dist/collection/utils/order-summary.js +15 -135
  43. package/dist/collection/utils/testing/deep-text.js +29 -0
  44. package/dist/collection/utils/testing/fixtures.js +290 -0
  45. package/dist/collection/utils/testing/mock-sdk.js +13 -2
  46. package/dist/collection/utils/web-query.js +12 -0
  47. package/dist/collection/utils/web-storage.js +22 -0
  48. package/dist/components/ticket-selector.js +1 -0
  49. package/dist/components/tl-buy-modal.js +1 -1
  50. package/dist/components/tl-buy-tickets-button.js +1 -1
  51. package/dist/components/tl-buy-tickets-wrapper2.js +1 -1
  52. package/dist/components/tl-cart-badge.js +1 -1
  53. package/dist/components/tl-cart-drawer.js +1 -1
  54. package/dist/components/tl-cart2.js +1 -1
  55. package/dist/components/tl-checkout-wrapper2.js +1 -1
  56. package/dist/components/tl-event-card2.js +1 -1
  57. package/dist/components/tl-event-list.js +1 -1
  58. package/dist/components/tl-login2.js +1 -1
  59. package/dist/components/tl-my-orders.js +1 -1
  60. package/dist/components/tl-occurrence-selector2.js +1 -1
  61. package/dist/components/tl-order-confirmation.js +1 -1
  62. package/dist/components/tl-order-tickets2.js +1 -1
  63. package/dist/components/tl-promo-code.js +1 -1
  64. package/dist/components/tl-seat-map.js +1 -1
  65. package/dist/components/tl-ticket-selector2.js +1 -1
  66. package/dist/components/web-query.js +1 -0
  67. package/dist/elements.docs.json +34 -34
  68. package/dist/esm/{index-OoYV1faY.js → index-imfxp765.js} +1 -1
  69. package/dist/esm/index.js +2 -1
  70. package/dist/esm/loader.js +3 -3
  71. package/dist/esm/ticket-selector-BwChnHVC.js +3606 -0
  72. package/dist/esm/ticketlayer-elements.js +3 -3
  73. package/dist/esm/tl-buy-modal.entry.js +3 -3
  74. package/dist/esm/tl-buy-tickets-button.entry.js +90 -75
  75. package/dist/esm/tl-buy-tickets-wrapper.entry.js +62 -31
  76. package/dist/esm/tl-cart-badge.entry.js +75 -62
  77. package/dist/esm/tl-cart-drawer.entry.js +52 -24
  78. package/dist/esm/tl-cart.entry.js +72 -104
  79. package/dist/esm/tl-checkout-wrapper.entry.js +52 -30
  80. package/dist/esm/tl-event-card.entry.js +44 -106
  81. package/dist/esm/tl-event-list.entry.js +73 -36
  82. package/dist/esm/tl-login.entry.js +75 -142
  83. package/dist/esm/tl-my-orders.entry.js +53 -93
  84. package/dist/esm/tl-occurrence-selector_2.entry.js +152 -920
  85. package/dist/esm/tl-order-confirmation.entry.js +72 -108
  86. package/dist/esm/tl-order-tickets_2.entry.js +49 -75
  87. package/dist/esm/tl-promo-code.entry.js +51 -48
  88. package/dist/esm/tl-seat-map.entry.js +3 -3
  89. package/dist/esm/web-query-Bdbb2lk5.js +14 -0
  90. package/dist/ticketlayer-elements/index.esm.js +1 -1
  91. package/dist/ticketlayer-elements/p-45923d2c.entry.js +1 -0
  92. package/dist/ticketlayer-elements/p-492adc77.entry.js +1 -0
  93. package/dist/ticketlayer-elements/p-4cfc9e53.entry.js +1 -0
  94. package/dist/ticketlayer-elements/{p-ac264adc.entry.js → p-5135630e.entry.js} +1 -1
  95. package/dist/ticketlayer-elements/p-5bbce3b5.entry.js +1 -0
  96. package/dist/ticketlayer-elements/p-7d547721.entry.js +1 -0
  97. package/dist/ticketlayer-elements/p-7fe7b6ba.entry.js +1 -0
  98. package/dist/ticketlayer-elements/p-8122f0c1.entry.js +1 -0
  99. package/dist/ticketlayer-elements/p-98d40869.entry.js +1 -0
  100. package/dist/ticketlayer-elements/p-Bdbb2lk5.js +1 -0
  101. package/dist/ticketlayer-elements/p-BwChnHVC.js +1 -0
  102. package/dist/ticketlayer-elements/p-abec290a.entry.js +1 -0
  103. package/dist/ticketlayer-elements/p-ac79a3f6.entry.js +1 -0
  104. package/dist/ticketlayer-elements/p-d01f4429.entry.js +1 -0
  105. package/dist/ticketlayer-elements/p-d7ffaf46.entry.js +1 -0
  106. package/dist/ticketlayer-elements/p-e7170f3c.entry.js +1 -0
  107. package/dist/ticketlayer-elements/p-e787e862.entry.js +1 -0
  108. package/dist/ticketlayer-elements/p-f1ff931f.entry.js +1 -0
  109. package/dist/ticketlayer-elements/p-imfxp765.js +3 -0
  110. package/dist/ticketlayer-elements/ticketlayer-elements.css +1 -1
  111. package/dist/ticketlayer-elements/ticketlayer-elements.esm.js +1 -1
  112. package/dist/types/components/tl-buy-tickets-button/tl-buy-tickets-button.d.ts +40 -8
  113. package/dist/types/components/tl-buy-tickets-wrapper/tl-buy-tickets-wrapper.d.ts +20 -1
  114. package/dist/types/components/tl-cart/tl-cart.d.ts +40 -42
  115. package/dist/types/components/tl-cart-badge/tl-cart-badge.d.ts +22 -7
  116. package/dist/types/components/tl-cart-drawer/tl-cart-drawer.d.ts +28 -5
  117. package/dist/types/components/tl-checkout-wrapper/tl-checkout-wrapper.d.ts +18 -1
  118. package/dist/types/components/tl-event-card/event-card-adapter.d.ts +9 -20
  119. package/dist/types/components/tl-event-card/tl-event-card.d.ts +25 -28
  120. package/dist/types/components/tl-event-list/tl-event-list.d.ts +46 -6
  121. package/dist/types/components/tl-login/tl-login.d.ts +68 -22
  122. package/dist/types/components/tl-my-orders/tl-my-orders.d.ts +30 -12
  123. package/dist/types/components/tl-occurrence-selector/tl-occurrence-selector.d.ts +73 -161
  124. package/dist/types/components/tl-order-confirmation/tl-order-confirmation.d.ts +48 -15
  125. package/dist/types/components/tl-order-tickets/tl-order-tickets.d.ts +29 -31
  126. package/dist/types/components/tl-promo-code/tl-promo-code.d.ts +28 -10
  127. package/dist/types/components/tl-ticket/tl-ticket.d.ts +2 -11
  128. package/dist/types/components/tl-ticket-selector/tl-ticket-selector.d.ts +22 -4
  129. package/dist/types/components.d.ts +270 -62
  130. package/dist/types/utils/order-summary.d.ts +14 -97
  131. package/dist/types/utils/testing/deep-text.d.ts +13 -0
  132. package/dist/types/utils/testing/fixtures.d.ts +225 -0
  133. package/dist/types/utils/testing/mock-sdk.d.ts +14 -1
  134. package/dist/types/utils/web-query.d.ts +18 -0
  135. package/dist/types/utils/web-storage.d.ts +16 -0
  136. package/elements.catalogue.json +602 -50
  137. package/package.json +8 -6
  138. package/dist/cjs/money-BtmM2gt-.js +0 -118
  139. package/dist/cjs/order-summary-X3TlZxc2.js +0 -150
  140. package/dist/components/money.js +0 -1
  141. package/dist/components/order-summary.js +0 -1
  142. package/dist/esm/money-4ig0-WB6.js +0 -112
  143. package/dist/esm/order-summary-DiDtvfZM.js +0 -136
  144. package/dist/ticketlayer-elements/p-0814420f.entry.js +0 -1
  145. package/dist/ticketlayer-elements/p-0acabc26.entry.js +0 -1
  146. package/dist/ticketlayer-elements/p-109a3feb.entry.js +0 -1
  147. package/dist/ticketlayer-elements/p-1a4ba71c.entry.js +0 -1
  148. package/dist/ticketlayer-elements/p-318965c1.entry.js +0 -1
  149. package/dist/ticketlayer-elements/p-347c7fd1.entry.js +0 -1
  150. package/dist/ticketlayer-elements/p-3649c26d.entry.js +0 -1
  151. package/dist/ticketlayer-elements/p-40260cc9.entry.js +0 -1
  152. package/dist/ticketlayer-elements/p-4ig0-WB6.js +0 -1
  153. package/dist/ticketlayer-elements/p-55fd2f9f.entry.js +0 -1
  154. package/dist/ticketlayer-elements/p-62ee659b.entry.js +0 -1
  155. package/dist/ticketlayer-elements/p-7d4ecc2b.entry.js +0 -1
  156. package/dist/ticketlayer-elements/p-7f0abf95.entry.js +0 -1
  157. package/dist/ticketlayer-elements/p-BXpVGW51.js +0 -1
  158. package/dist/ticketlayer-elements/p-OoYV1faY.js +0 -3
  159. package/dist/ticketlayer-elements/p-a3c1b26c.entry.js +0 -1
  160. package/dist/ticketlayer-elements/p-aeb4c6fb.entry.js +0 -1
  161. package/dist/ticketlayer-elements/p-ba62541f.entry.js +0 -1
@@ -1,6 +1,6 @@
1
1
  {
2
- "version": "0.4.0",
3
- "generatedAt": "2026-09-18T13:41:58.636Z",
2
+ "version": "1.0.0",
3
+ "generatedAt": "2026-09-18T22:24:57.104Z",
4
4
  "elements": [
5
5
  {
6
6
  "tag": "tl-buy-modal",
@@ -51,7 +51,7 @@
51
51
  },
52
52
  {
53
53
  "tag": "tl-buy-tickets-button",
54
- "docs": "",
54
+ "docs": "A buy-tickets button in one of four sale states, which opens the purchase modal.",
55
55
  "props": [
56
56
  {
57
57
  "name": "currency",
@@ -154,13 +154,43 @@
154
154
  "runtimes": [
155
155
  "web"
156
156
  ],
157
- "sdkMethods": [],
157
+ "sdkMethods": [
158
+ "event.openModal"
159
+ ],
158
160
  "category": "purchase",
159
- "core": false
161
+ "core": true,
162
+ "tokens": [
163
+ "error",
164
+ "error-foreground",
165
+ "font-family",
166
+ "info",
167
+ "info-foreground",
168
+ "primary",
169
+ "primary-foreground",
170
+ "radius-lg",
171
+ "radius-md",
172
+ "radius-sm",
173
+ "warning",
174
+ "warning-foreground"
175
+ ],
176
+ "strings": {
177
+ "available": "Buy Tickets",
178
+ "soldOut": "Sold Out",
179
+ "waitlist": "Join Waitlist",
180
+ "comingSoon": "On Sale Soon"
181
+ },
182
+ "statuses": [
183
+ "ready",
184
+ "disabled"
185
+ ],
186
+ "actions": [
187
+ "activate"
188
+ ],
189
+ "mounts": false
160
190
  },
161
191
  {
162
192
  "tag": "tl-buy-tickets-wrapper",
163
- "docs": "",
193
+ "docs": "Wrap any content and open the purchase modal when it is activated.",
164
194
  "props": [
165
195
  {
166
196
  "name": "disabled",
@@ -189,17 +219,17 @@
189
219
  ],
190
220
  "events": [
191
221
  {
192
- "name": "tl-close",
222
+ "name": "tlClose",
193
223
  "detail": "void",
194
224
  "docs": "Emitted when the modal closes"
195
225
  },
196
226
  {
197
- "name": "tl-complete",
227
+ "name": "tlComplete",
198
228
  "detail": "OrderResult",
199
229
  "docs": "Emitted when purchase completes successfully"
200
230
  },
201
231
  {
202
- "name": "tl-error",
232
+ "name": "tlError",
203
233
  "detail": "{ message: string; }",
204
234
  "docs": "Emitted when an error occurs"
205
235
  }
@@ -214,13 +244,31 @@
214
244
  "runtimes": [
215
245
  "web"
216
246
  ],
217
- "sdkMethods": [],
247
+ "sdkMethods": [
248
+ "event.openModal"
249
+ ],
218
250
  "category": "purchase",
219
- "core": false
251
+ "core": true,
252
+ "tokens": [
253
+ "radius-sm",
254
+ "ring"
255
+ ],
256
+ "strings": {
257
+ "noClient": "SDK not initialized",
258
+ "notAvailable": "Tickets are not available"
259
+ },
260
+ "statuses": [
261
+ "ready",
262
+ "disabled"
263
+ ],
264
+ "actions": [
265
+ "activate"
266
+ ],
267
+ "mounts": false
220
268
  },
221
269
  {
222
270
  "tag": "tl-cart",
223
- "docs": "",
271
+ "docs": "The buyer's cart: its lines, the money rows the surface reported and a checkout button.",
224
272
  "props": [
225
273
  {
226
274
  "name": "checkoutLabel",
@@ -283,13 +331,60 @@
283
331
  "web",
284
332
  "native"
285
333
  ],
286
- "sdkMethods": [],
334
+ "sdkMethods": [
335
+ "cart.get",
336
+ "cart.on",
337
+ "cart.removeItem"
338
+ ],
287
339
  "category": "cart",
288
- "core": false
340
+ "core": true,
341
+ "tokens": [
342
+ "background",
343
+ "border",
344
+ "error",
345
+ "error-bg",
346
+ "font-family",
347
+ "foreground",
348
+ "muted",
349
+ "muted-foreground",
350
+ "primary",
351
+ "primary-foreground",
352
+ "radius-md",
353
+ "radius-sm",
354
+ "spacing-1",
355
+ "spacing-2",
356
+ "spacing-3",
357
+ "spacing-4",
358
+ "spacing-8"
359
+ ],
360
+ "strings": {
361
+ "emptyTitle": "Your cart is empty",
362
+ "emptyMessage": "Add tickets to get started",
363
+ "subtotalRow": "Subtotal",
364
+ "discountRow": "Discount",
365
+ "totalRow": "Total",
366
+ "removeItem": "Remove item",
367
+ "quantityPrefix": "Qty: ",
368
+ "loadFailed": "Failed to load cart",
369
+ "removeFailed": "Failed to remove item"
370
+ },
371
+ "statuses": [
372
+ "loading",
373
+ "empty",
374
+ "ready"
375
+ ],
376
+ "actions": [
377
+ "cartUpdated",
378
+ "checkout",
379
+ "connectFailed",
380
+ "load",
381
+ "removeItem"
382
+ ],
383
+ "mounts": true
289
384
  },
290
385
  {
291
386
  "tag": "tl-cart-badge",
292
- "docs": "",
387
+ "docs": "A cart icon carrying the number of items in the cart, kept current from the cart bus.",
293
388
  "props": [
294
389
  {
295
390
  "name": "badgeOnly",
@@ -336,13 +431,41 @@
336
431
  "runtimes": [
337
432
  "web"
338
433
  ],
339
- "sdkMethods": [],
434
+ "sdkMethods": [
435
+ "cart.get",
436
+ "cart.on"
437
+ ],
340
438
  "category": "cart",
341
- "core": false
439
+ "core": true,
440
+ "tokens": [
441
+ "font-family",
442
+ "foreground",
443
+ "muted",
444
+ "primary",
445
+ "primary-foreground",
446
+ "radius-md",
447
+ "spacing-1",
448
+ "spacing-2",
449
+ "spacing-3"
450
+ ],
451
+ "strings": {
452
+ "ariaPrefix": "Cart with ",
453
+ "ariaSuffix": " items",
454
+ "overflow": "99+"
455
+ },
456
+ "statuses": [
457
+ "ready"
458
+ ],
459
+ "actions": [
460
+ "click",
461
+ "countChanged",
462
+ "hydrate"
463
+ ],
464
+ "mounts": true
342
465
  },
343
466
  {
344
467
  "tag": "tl-cart-drawer",
345
- "docs": "",
468
+ "docs": "A slide-in panel holding the cart, opened by the cart intent on the client bus.",
346
469
  "props": [
347
470
  {
348
471
  "name": "heading",
@@ -386,13 +509,42 @@
386
509
  "runtimes": [
387
510
  "web"
388
511
  ],
389
- "sdkMethods": [],
512
+ "sdkMethods": [
513
+ "client.on"
514
+ ],
390
515
  "category": "cart",
391
- "core": false
516
+ "core": true,
517
+ "tokens": [
518
+ "background",
519
+ "border",
520
+ "font-family",
521
+ "foreground",
522
+ "muted",
523
+ "muted-foreground"
524
+ ],
525
+ "strings": {
526
+ "close": "Close cart",
527
+ "privacy": "Privacy Policy",
528
+ "privacyHref": "https://ticketlayer.com/privacy",
529
+ "reportAbuse": "Report Abuse",
530
+ "reportAbuseHref": "https://ticketlayer.com/report-abuse",
531
+ "poweredBy": "Powered by",
532
+ "brand": "ticketlayer",
533
+ "brandHref": "https://ticketlayer.com"
534
+ },
535
+ "statuses": [
536
+ "open",
537
+ "closed"
538
+ ],
539
+ "actions": [
540
+ "openChanged",
541
+ "setOpen"
542
+ ],
543
+ "mounts": true
392
544
  },
393
545
  {
394
546
  "tag": "tl-checkout-wrapper",
395
- "docs": "",
547
+ "docs": "Wrap any content and open the checkout modal when it is activated.",
396
548
  "props": [
397
549
  {
398
550
  "name": "disabled",
@@ -405,17 +557,17 @@
405
557
  ],
406
558
  "events": [
407
559
  {
408
- "name": "tl-close",
560
+ "name": "tlClose",
409
561
  "detail": "void",
410
562
  "docs": "Emitted when the modal closes"
411
563
  },
412
564
  {
413
- "name": "tl-complete",
565
+ "name": "tlComplete",
414
566
  "detail": "OrderResult",
415
567
  "docs": "Emitted when checkout completes successfully"
416
568
  },
417
569
  {
418
- "name": "tl-error",
570
+ "name": "tlError",
419
571
  "detail": "{ message: string; }",
420
572
  "docs": "Emitted when an error occurs"
421
573
  }
@@ -430,13 +582,31 @@
430
582
  "runtimes": [
431
583
  "web"
432
584
  ],
433
- "sdkMethods": [],
585
+ "sdkMethods": [
586
+ "checkout.openModal"
587
+ ],
434
588
  "category": "checkout",
435
- "core": false
589
+ "core": true,
590
+ "tokens": [
591
+ "radius-sm",
592
+ "ring"
593
+ ],
594
+ "strings": {
595
+ "noClient": "SDK not initialized",
596
+ "notAvailable": "Checkout is not available"
597
+ },
598
+ "statuses": [
599
+ "ready",
600
+ "disabled"
601
+ ],
602
+ "actions": [
603
+ "activate"
604
+ ],
605
+ "mounts": false
436
606
  },
437
607
  {
438
608
  "tag": "tl-event-card",
439
- "docs": "",
609
+ "docs": "One event as a card: its image, name, next date, venue and how it is selling.",
440
610
  "props": [
441
611
  {
442
612
  "name": "event",
@@ -473,13 +643,51 @@
473
643
  "web",
474
644
  "native"
475
645
  ],
476
- "sdkMethods": [],
646
+ "sdkMethods": [
647
+ "events.get"
648
+ ],
477
649
  "category": "discovery",
478
- "core": false
650
+ "core": true,
651
+ "tokens": [
652
+ "error",
653
+ "error-foreground",
654
+ "font-family",
655
+ "foreground",
656
+ "muted",
657
+ "muted-foreground",
658
+ "primary",
659
+ "radius-lg",
660
+ "radius-sm",
661
+ "secondary",
662
+ "spacing-4",
663
+ "success",
664
+ "success-foreground",
665
+ "warning",
666
+ "warning-foreground"
667
+ ],
668
+ "strings": {
669
+ "available": "Available",
670
+ "limited": "Limited",
671
+ "soldOut": "Sold Out",
672
+ "notFound": "Event not found",
673
+ "loadFailed": "Failed to load event"
674
+ },
675
+ "statuses": [
676
+ "loading",
677
+ "error",
678
+ "empty",
679
+ "ready"
680
+ ],
681
+ "actions": [
682
+ "click",
683
+ "load",
684
+ "loadFailed"
685
+ ],
686
+ "mounts": true
479
687
  },
480
688
  {
481
689
  "tag": "tl-event-list",
482
- "docs": "",
690
+ "docs": "What the channel is selling, as a grid of event cards, optionally narrowed to one category.",
483
691
  "props": [
484
692
  {
485
693
  "name": "category",
@@ -519,13 +727,45 @@
519
727
  "web",
520
728
  "native"
521
729
  ],
522
- "sdkMethods": [],
730
+ "sdkMethods": [
731
+ "events.list"
732
+ ],
523
733
  "category": "discovery",
524
- "core": false
734
+ "core": true,
735
+ "tokens": [
736
+ "error",
737
+ "font-family",
738
+ "foreground",
739
+ "muted",
740
+ "muted-foreground",
741
+ "radius-lg",
742
+ "radius-sm",
743
+ "secondary",
744
+ "spacing-4",
745
+ "spacing-6",
746
+ "spacing-8"
747
+ ],
748
+ "strings": {
749
+ "errorTitle": "Error loading events",
750
+ "emptyTitle": "No events available",
751
+ "emptyMessage": "Check back later for upcoming events.",
752
+ "loadFailed": "Failed to load events",
753
+ "noListing": "Events are not available"
754
+ },
755
+ "statuses": [
756
+ "loading",
757
+ "error",
758
+ "empty",
759
+ "ready"
760
+ ],
761
+ "actions": [
762
+ "load"
763
+ ],
764
+ "mounts": true
525
765
  },
526
766
  {
527
767
  "tag": "tl-login",
528
- "docs": "tl-login - magic-link sign-in. The customer enters an email, we ask the SDK\nto send a link (POST /sales/customer-auth/magic-link), then either the link\nlands back on this page with `?code=` or the customer types the code from\nthe email; both exchange through the SDK (POST /sales/customer-tokens). No\npassword is ever handled here.\n\nStates: enter email -> check your inbox (resend, enter code) -> signed in\n(email + sign out).\n\nUsage: <tl-login></tl-login>",
768
+ "docs": "Magic-link sign-in: an email in, a link or a six-digit code back, and a session. No password is ever handled.",
529
769
  "props": [
530
770
  {
531
771
  "name": "allowCodeEntry",
@@ -567,13 +807,90 @@
567
807
  "web",
568
808
  "native"
569
809
  ],
570
- "sdkMethods": [],
810
+ "sdkMethods": [
811
+ "auth.exchange",
812
+ "auth.logout",
813
+ "auth.requestMagicLink",
814
+ "on"
815
+ ],
571
816
  "category": "account",
572
- "core": false
817
+ "core": true,
818
+ "tokens": [
819
+ "background",
820
+ "border",
821
+ "error",
822
+ "font-family",
823
+ "font-family-mono",
824
+ "foreground",
825
+ "muted-foreground",
826
+ "primary",
827
+ "primary-foreground",
828
+ "radius-lg",
829
+ "radius-md",
830
+ "secondary",
831
+ "spacing-3",
832
+ "spacing-4",
833
+ "spacing-6",
834
+ "success"
835
+ ],
836
+ "strings": {
837
+ "signedInPrefix": "Signed in as ",
838
+ "fallbackAccount": "your account",
839
+ "signOut": "Sign out",
840
+ "verifyingTitle": "Signing you in…",
841
+ "verifyingLead": "Just a moment.",
842
+ "sentTitle": "Check your inbox",
843
+ "sentLeadBefore": "We've sent a sign-in link to ",
844
+ "sentLeadAfter": ". Open it on this device to continue.",
845
+ "sentAgain": "Sent again. Check your inbox.",
846
+ "resendLink": "Resend link",
847
+ "resending": "Sending…",
848
+ "enterCodeInstead": "Enter the code instead",
849
+ "differentEmail": "Use a different email",
850
+ "codeTitle": "Enter your code",
851
+ "codeLeadBefore": "Type the 6-digit code from the email we sent to ",
852
+ "codeLeadAfter": ".",
853
+ "codeLabel": "Code",
854
+ "codePlaceholder": "123456",
855
+ "codeSubmit": "Sign in",
856
+ "checking": "Checking…",
857
+ "back": "Back",
858
+ "emailLead": "Enter your email and we'll send you a secure sign-in link. No password needed.",
859
+ "emailLabel": "Email address",
860
+ "emailPlaceholder": "you@example.com",
861
+ "emailSubmit": "Email me a sign-in link",
862
+ "sendingLink": "Sending link…",
863
+ "enterEmail": "Enter your email address",
864
+ "enterCode": "Enter the code from your email",
865
+ "codeRejected": "That code did not work. Check it and try again, or request a new link.",
866
+ "requestFailed": "Could not send your sign-in link",
867
+ "unavailable": "Sign-in is not available right now",
868
+ "unsupported": "Sign-in is not available with this SDK"
869
+ },
870
+ "statuses": [
871
+ "email",
872
+ "sent",
873
+ "code",
874
+ "verifying",
875
+ "signed-in"
876
+ ],
877
+ "actions": [
878
+ "connectFailed",
879
+ "exchange",
880
+ "goTo",
881
+ "requestLink",
882
+ "setCode",
883
+ "setEmail",
884
+ "signOut",
885
+ "submitCode",
886
+ "syncFromClient",
887
+ "unsupported"
888
+ ],
889
+ "mounts": true
573
890
  },
574
891
  {
575
892
  "tag": "tl-my-orders",
576
- "docs": "tl-my-orders - the signed-in customer's orders (GET /sales/my-orders through\nthe SDK): event, date, ticket count, total and status per row. Clicking a\nrow expands it to show the order's tickets (tl-order-tickets). Shows\ntl-login inline when nobody is signed in.\n\nUsage: <tl-my-orders></tl-my-orders>",
893
+ "docs": "The signed-in customer's orders: event, date, ticket count, total and status, each row expanding to its tickets.",
577
894
  "props": [
578
895
  {
579
896
  "name": "columns",
@@ -610,9 +927,62 @@
610
927
  "web",
611
928
  "native"
612
929
  ],
613
- "sdkMethods": [],
930
+ "sdkMethods": [
931
+ "auth.authenticated",
932
+ "on",
933
+ "orders.mine"
934
+ ],
614
935
  "category": "account",
615
- "core": false
936
+ "core": true,
937
+ "tokens": [
938
+ "background",
939
+ "border",
940
+ "error",
941
+ "error-foreground",
942
+ "font-family",
943
+ "foreground",
944
+ "muted-foreground",
945
+ "primary",
946
+ "primary-foreground",
947
+ "radius-lg",
948
+ "secondary",
949
+ "secondary-foreground",
950
+ "spacing-1",
951
+ "spacing-3",
952
+ "spacing-4",
953
+ "spacing-8",
954
+ "success",
955
+ "success-foreground",
956
+ "warning",
957
+ "warning-foreground"
958
+ ],
959
+ "strings": {
960
+ "signInTitle": "Sign in to see your orders",
961
+ "signInText": "Your tickets and order history live in your account.",
962
+ "errorTitle": "Could not load your orders",
963
+ "emptyTitle": "No orders yet",
964
+ "orderPrefix": "Order ",
965
+ "unnamedEvent": "Order",
966
+ "ticketSingular": "ticket",
967
+ "ticketPlural": "tickets",
968
+ "unavailable": "Orders are not available right now",
969
+ "noOrdersManager": "Orders are not available",
970
+ "loadFailed": "Failed to load your orders"
971
+ },
972
+ "statuses": [
973
+ "loading",
974
+ "signed-out",
975
+ "error",
976
+ "empty",
977
+ "ready"
978
+ ],
979
+ "actions": [
980
+ "connectFailed",
981
+ "load",
982
+ "syncAuth",
983
+ "toggle"
984
+ ],
985
+ "mounts": true
616
986
  },
617
987
  {
618
988
  "tag": "tl-occurrence-selector",
@@ -663,13 +1033,62 @@
663
1033
  "runtimes": [
664
1034
  "web"
665
1035
  ],
666
- "sdkMethods": [],
1036
+ "sdkMethods": [
1037
+ "events.get"
1038
+ ],
667
1039
  "category": "discovery",
668
- "core": false
1040
+ "core": true,
1041
+ "tokens": [
1042
+ "background",
1043
+ "border",
1044
+ "font-family",
1045
+ "foreground",
1046
+ "muted",
1047
+ "muted-foreground",
1048
+ "primary",
1049
+ "primary-foreground",
1050
+ "radius-md"
1051
+ ],
1052
+ "strings": {
1053
+ "noEventId": "Event ID is required",
1054
+ "noClient": "SDK not initialized.",
1055
+ "notFound": "Event not found",
1056
+ "loadFailed": "Failed to load occurrences",
1057
+ "empty": "No dates available for this event.",
1058
+ "retry": "Retry",
1059
+ "soldOut": "Sold Out",
1060
+ "available": "available",
1061
+ "selectADate": "Select a date to see available times",
1062
+ "previousMonth": "Previous month",
1063
+ "nextMonth": "Next month",
1064
+ "weekdayMon": "Mon",
1065
+ "weekdayTue": "Tue",
1066
+ "weekdayWed": "Wed",
1067
+ "weekdayThu": "Thu",
1068
+ "weekdayFri": "Fri",
1069
+ "weekdaySat": "Sat",
1070
+ "weekdaySun": "Sun"
1071
+ },
1072
+ "statuses": [
1073
+ "loading",
1074
+ "error",
1075
+ "empty",
1076
+ "ready"
1077
+ ],
1078
+ "actions": [
1079
+ "load",
1080
+ "loadFailed",
1081
+ "nextMonth",
1082
+ "previousMonth",
1083
+ "resized",
1084
+ "select",
1085
+ "selectDate"
1086
+ ],
1087
+ "mounts": true
669
1088
  },
670
1089
  {
671
1090
  "tag": "tl-order-confirmation",
672
- "docs": "tl-order-confirmation - the \"thank you\" page block: order reference,\ncustomer email, event and date, ticket lines, totals, then the tickets\nthemselves (tl-order-tickets, each with a Download PDF link).\n\nFinds its order three ways, in priority order:\n 1. the `order-id` prop\n 2. the URL (`?orderId=`), the contract the hosted box office confirmation\n page uses; `?redirect_status=` from a Stripe return is honoured too\n 3. the SDK's `checkout:completed` event, for a page that mounts this before\n the customer pays\n\nUsage: <tl-order-confirmation order-id=\"ord_xxx\"></tl-order-confirmation>",
1091
+ "docs": "The thank-you block: order reference, email, event and date, the ticket lines, the money rows and the tickets.",
673
1092
  "props": [
674
1093
  {
675
1094
  "name": "columns",
@@ -722,13 +1141,72 @@
722
1141
  "web",
723
1142
  "native"
724
1143
  ],
725
- "sdkMethods": [],
1144
+ "sdkMethods": [
1145
+ "auth.customer",
1146
+ "events.get",
1147
+ "events.list",
1148
+ "on",
1149
+ "orders.get"
1150
+ ],
726
1151
  "category": "checkout",
727
- "core": false
1152
+ "core": true,
1153
+ "tokens": [
1154
+ "border",
1155
+ "error",
1156
+ "font-family",
1157
+ "font-family-mono",
1158
+ "foreground",
1159
+ "muted",
1160
+ "muted-foreground",
1161
+ "radius-lg",
1162
+ "radius-md",
1163
+ "secondary",
1164
+ "spacing-1",
1165
+ "spacing-2",
1166
+ "spacing-3",
1167
+ "spacing-4",
1168
+ "spacing-6",
1169
+ "success",
1170
+ "success-foreground"
1171
+ ],
1172
+ "strings": {
1173
+ "paymentFailedTitle": "Payment not completed",
1174
+ "paymentFailedLead": "Your payment wasn't completed. Your cart is still saved, so you can try again.",
1175
+ "title": "You're going!",
1176
+ "leadPrefix": "Order ",
1177
+ "leadSuffix": " is confirmed. Your tickets are on their way to your email.",
1178
+ "leadGeneric": "Your order is confirmed. Your tickets are on their way to your email.",
1179
+ "errorPrefix": "We couldn't load your order details yet. ",
1180
+ "rowReference": "Order reference",
1181
+ "rowEmail": "Email",
1182
+ "rowEvent": "Event",
1183
+ "rowDate": "Date",
1184
+ "subtotalRow": "Subtotal",
1185
+ "taxRow": "Tax",
1186
+ "discountRow": "Discount",
1187
+ "totalRow": "Total",
1188
+ "ticketsTitle": "Your tickets",
1189
+ "ticketsHint": "Show these QR codes at the door for entry. Use Download PDF on a ticket to save it.",
1190
+ "noOrdersManager": "Orders are not available",
1191
+ "notFound": "Order not found",
1192
+ "loadFailed": "Failed to load your order"
1193
+ },
1194
+ "statuses": [
1195
+ "payment-failed",
1196
+ "idle",
1197
+ "loading",
1198
+ "ready"
1199
+ ],
1200
+ "actions": [
1201
+ "checkoutCompleted",
1202
+ "load",
1203
+ "orderIdChanged"
1204
+ ],
1205
+ "mounts": true
728
1206
  },
729
1207
  {
730
1208
  "tag": "tl-order-tickets",
731
- "docs": "tl-order-tickets - renders all the tickets for an order as scannable QR\ncards with PDF download. Fetches the order through the SDK (order-access\ngated by the session), so it works on a confirmation page or in an account.\n\nUsage: <tl-order-tickets order-id=\"ord_xxx\"></tl-order-tickets>\n\nOn an empty result it waits rather than concluding there is nothing.\n\nTickets are issued asynchronously: the payment confirms, the order is\nmarked paid, and entitlement issuance follows a moment later. A confirmation\npage therefore renders BEFORE the passes exist - reliably, not occasionally.\nThe component used to answer that with \"No tickets for this order yet\",\nwhich is true and reads as \"something went wrong\" to someone who has just\nbeen charged. Refreshing showed them, so the only thing missing was the\nwaiting.\n\nSo: an empty order is treated as issuance in flight and polled, with the\ngaps widening, for about a minute. Then it stops and says the tickets are\ncoming by email, because at that point something probably is wrong and a\npage that polls forever is worse than one that admits it.",
1209
+ "docs": "Every ticket in an order as a scannable card, waiting out issuance rather than reporting an empty order as empty.",
732
1210
  "props": [
733
1211
  {
734
1212
  "name": "columns",
@@ -754,13 +1232,45 @@
754
1232
  "web",
755
1233
  "native"
756
1234
  ],
757
- "sdkMethods": [],
1235
+ "sdkMethods": [
1236
+ "orders.get"
1237
+ ],
758
1238
  "category": "tickets",
759
- "core": false
1239
+ "core": true,
1240
+ "tokens": [
1241
+ "border",
1242
+ "error",
1243
+ "font-family",
1244
+ "muted-foreground",
1245
+ "primary",
1246
+ "spacing-2",
1247
+ "spacing-4",
1248
+ "spacing-6"
1249
+ ],
1250
+ "strings": {
1251
+ "loading": "Loading tickets…",
1252
+ "preparing": "Preparing your tickets…",
1253
+ "delayed": "Your tickets are taking longer than usual. They will be emailed to you as soon as they are ready.",
1254
+ "notAvailable": "Tickets are not available",
1255
+ "loadFailed": "Failed to load tickets"
1256
+ },
1257
+ "statuses": [
1258
+ "loading",
1259
+ "error",
1260
+ "issuing",
1261
+ "delayed",
1262
+ "ready"
1263
+ ],
1264
+ "actions": [
1265
+ "load",
1266
+ "orderIdChanged",
1267
+ "stopPolling"
1268
+ ],
1269
+ "mounts": true
760
1270
  },
761
1271
  {
762
1272
  "tag": "tl-promo-code",
763
- "docs": "tl-promo-code - an input plus Apply button that redeems a presale or promo\ncode for the current cart (POST /sales/presale-codes/redeem through the\nSDK). Redemption unlocks gated pricing on the customer; the SDK re-reads the\ncart and publishes cart:updated, so tl-cart and badges re-render on their own.\n\nThe API has no un-redeem, so the applied state offers only \"use a different\ncode\", which clears the input for another redemption.\n\nUsage: <tl-promo-code></tl-promo-code>",
1273
+ "docs": "Redeem a presale or promo code for the current cart.",
764
1274
  "props": [
765
1275
  {
766
1276
  "name": "buttonLabel",
@@ -796,9 +1306,50 @@
796
1306
  "runtimes": [
797
1307
  "web"
798
1308
  ],
799
- "sdkMethods": [],
1309
+ "sdkMethods": [
1310
+ "cart.get",
1311
+ "presale.redeem"
1312
+ ],
800
1313
  "category": "purchase",
801
- "core": false
1314
+ "core": true,
1315
+ "tokens": [
1316
+ "background",
1317
+ "border",
1318
+ "error",
1319
+ "font-family",
1320
+ "font-family-mono",
1321
+ "foreground",
1322
+ "muted",
1323
+ "muted-foreground",
1324
+ "primary",
1325
+ "primary-foreground",
1326
+ "radius-md",
1327
+ "spacing-2",
1328
+ "spacing-3",
1329
+ "spacing-4",
1330
+ "success"
1331
+ ],
1332
+ "strings": {
1333
+ "applying": "Applying…",
1334
+ "codePrefix": "Code ",
1335
+ "appliedSuffix": " applied",
1336
+ "alreadyHeldSuffix": " was already applied",
1337
+ "useDifferent": "Use a different code",
1338
+ "enterCode": "Enter a code",
1339
+ "notAvailable": "Promo codes are not available",
1340
+ "signIn": "Sign in to use this code",
1341
+ "rejected": "That code could not be applied"
1342
+ },
1343
+ "statuses": [
1344
+ "idle",
1345
+ "applied"
1346
+ ],
1347
+ "actions": [
1348
+ "apply",
1349
+ "reset",
1350
+ "setCode"
1351
+ ],
1352
+ "mounts": false
802
1353
  },
803
1354
  {
804
1355
  "tag": "tl-seat-map",
@@ -1031,7 +1582,8 @@
1031
1582
  "connectFailed",
1032
1583
  "load",
1033
1584
  "setFeeQuote"
1034
- ]
1585
+ ],
1586
+ "mounts": true
1035
1587
  }
1036
1588
  ]
1037
1589
  }