@gomusdev/web-components 3.11.0 → 4.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 (28) hide show
  1. package/README.md +42 -0
  2. package/dist-js/components/cart/components/SubRow.svelte.d.ts +1 -0
  3. package/dist-js/components/shared/quantityStepper/QuantityControl.svelte.d.ts +1 -0
  4. package/dist-js/gomus-webcomponents.css +141 -3
  5. package/dist-js/gomus-webcomponents.iife.js +21057 -20642
  6. package/dist-js/gomus-webcomponents.js +21057 -20642
  7. package/dist-js/gomus-webcomponents.min.css +1 -1
  8. package/dist-js/gomus-webcomponents.min.iife.js +37 -37
  9. package/dist-js/gomus-webcomponents.min.js +18584 -18311
  10. package/dist-js/src/components/shared/quantityStepper/QuantityControl.spec.d.ts +1 -0
  11. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.d.ts +20 -0
  12. package/dist-js/src/factories/CartItemFactories.d.ts +86 -0
  13. package/dist-js/src/factories/QuotaFactories.d.ts +16 -0
  14. package/dist-js/src/factories/TicketFactories.d.ts +42 -0
  15. package/dist-js/src/go/go.d.ts +4 -2
  16. package/dist-js/src/lib/models/capacity/CapacityManager.d.ts +4 -2
  17. package/dist-js/src/lib/models/capacity/calculators/mantle.d.ts +34 -0
  18. package/dist-js/src/lib/models/capacity/calculators/mantle.spec.d.ts +1 -0
  19. package/dist-js/src/lib/models/capacity/calculators/quotaManager/QuotaManager.d.ts +2 -1
  20. package/dist-js/src/lib/models/capacity/calculators/quotas.d.ts +23 -0
  21. package/dist-js/src/lib/models/cart/CartItem.d.ts +29 -1
  22. package/dist-js/src/lib/models/cart/cart.svelte.d.ts +40 -0
  23. package/dist-js/src/lib/models/cart/localStorage.svelte.d.ts +8 -0
  24. package/dist-js/src/lib/models/cart/quantityStepper.d.ts +16 -13
  25. package/dist-js/src/lib/models/ticket/UITicket.svelte.d.ts +35 -0
  26. package/dist-js/src/lib/stores/shop.svelte.d.ts +28 -7
  27. package/dist-js/src/workflowSpecs/mantle-workflow.spec.d.ts +1 -0
  28. package/package.json +1 -1
package/README.md CHANGED
@@ -1,5 +1,47 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.0 (2026-07-08)
4
+
5
+ ### ⚠ BREAKING CHANGES
6
+
7
+ * **quantity:** one QuantityControl for ticket rows, cart lines, and sub-rows
8
+
9
+ ### Features
10
+
11
+ * add QuotaFactories for reusable quota creation in tests and refactor related specs
12
+ * **capacity:** Mantelticket capacity calculator (Angular parity)
13
+ * **cart:** carry mantle composition from selection into the cart
14
+ * **cart:** carry mantle composition through the cart projection
15
+ * **cart:** carry mantle sub-ticket composition on CartItem
16
+ * **cart:** make a mantle's composition part of its cart-line identity
17
+ * **cart:** persist a mantle's composition across reloads
18
+ * **cart:** render editable sub-ticket rows under a mantle line
19
+ * **demo:** show booked mantle in go-order; load real order on edge
20
+ * **order:** show Mantelticket sub-ticket composition in go-order breakdown
21
+ * **quantity:** one QuantityControl for ticket rows, cart lines, and sub-rows
22
+ * **ticket-selection:** render editable sub-ticket rows under a mantle
23
+ * **ticket:** detect mantle tickets and normalize sub-ticket defs
24
+
25
+ ### Bug Fixes
26
+
27
+ * **build:** correct storybook:docs:build-and-deploy script name
28
+ * **capacity:** sum same-id quota draws so shared-quota tickets can't oversell
29
+ * **cart:** add default styling for Mantelticket sub-ticket rows
30
+ * **cart:** don't merge identical mantle lines in the display projection
31
+ * **cart:** never merge Mantelticket lines
32
+ * **cart:** never-collapse mantle lines; group composition + identity
33
+ * **cart:** pair echoed mantle lines by their composition, not by position
34
+ * **cart:** re-preview the cart when a mantle's composition changes
35
+ * **factories:** import ProductType as type-only so the Storybook build resolves it
36
+ * **mantle:** cap sub-ticket selectors by the remaining quota headroom
37
+ * **ticket-selection:** re-derive capacity when a cart mantle mix edit changes its draw
38
+
39
+ ## 3.12.0 (2026-07-07)
40
+
41
+ ### Features
42
+
43
+ * **go-api:** add go.api.getOrders() with pagination
44
+
3
45
  ## 3.11.0 (2026-07-06)
4
46
 
5
47
  ### Features
@@ -0,0 +1 @@
1
+ export { SvelteComponent as default } from 'svelte';
@@ -0,0 +1 @@
1
+ export { SvelteComponent as default } from 'svelte';
@@ -1216,6 +1216,64 @@ go-cart ul,go-cart ol {
1216
1216
  text-align: right;
1217
1217
  }
1218
1218
 
1219
+ /* Mantelticket sub-tickets — nested rows shown under a mantle line, in both the
1220
+ cart and the ticket selection. A sub-ticket is part of its bundle, so the rows
1221
+ read as a subordinate, indented group rather than standalone line items. */
1222
+ /* `ul`/`li` qualifiers raise specificity above the `go-cart ul/ol` reset (0,0,2),
1223
+ which would otherwise zero the indent and spacing. */
1224
+ ul.go-sub-tickets {
1225
+ list-style: none;
1226
+ margin: 0 0 0.5rem;
1227
+ padding: 0.25rem 0 0.25rem 1rem;
1228
+ border-left: 2px solid rgba(18, 130, 106, 0.35); /* var(--primary) tint */
1229
+ display: flex;
1230
+ flex-direction: column;
1231
+ gap: 0.15rem;
1232
+ }
1233
+
1234
+ li.go-sub-ticket {
1235
+ list-style: none;
1236
+ display: flex;
1237
+ align-items: center;
1238
+ gap: 0.75rem;
1239
+ padding: 0.3rem 0;
1240
+ font-size: 0.9rem;
1241
+ }
1242
+
1243
+ .go-sub-ticket-title {
1244
+ flex: 0 0 auto;
1245
+ font-weight: 500;
1246
+ }
1247
+
1248
+ .go-sub-ticket-description {
1249
+ flex: 1;
1250
+ min-width: 0;
1251
+ color: rgba(0, 0, 0, 0.55);
1252
+ font-size: 0.85em;
1253
+ }
1254
+
1255
+ /* Pin the control (stepper or legacy select) to the right whether or not a
1256
+ description is present. */
1257
+ .go-sub-ticket .go-quantity-stepper,
1258
+ .go-sub-ticket .go-quantity-select,
1259
+ .go-sub-ticket-quantity {
1260
+ margin-left: auto;
1261
+ text-align: right;
1262
+ font-feature-settings: "tnum";
1263
+ font-variant-numeric: tabular-nums;
1264
+ }
1265
+
1266
+ .go-sub-ticket .go-quantity-select {
1267
+ min-width: 4rem;
1268
+ min-height: 1.8rem;
1269
+ max-width: 8rem;
1270
+ }
1271
+
1272
+ /* A deselected sub (quantity 0) stays visible but dimmed. */
1273
+ .go-sub-ticket.is-empty {
1274
+ opacity: 0.5;
1275
+ }
1276
+
1219
1277
  /*=== QUANTITY STEPPER (shared by go-tickets + go-cart) ===*/
1220
1278
  /* Scoped under :host,:root so these out-specify the global `:root button` rule
1221
1279
  (teal background + margin-top: 2rem + 20px 60px padding) without !important.
@@ -1515,10 +1573,90 @@ go-link {
1515
1573
  opacity: 0.5;
1516
1574
  }
1517
1575
 
1518
- .go-order-breakdown-ical a {
1519
- line-height: 24px;
1520
- display: inline-block;
1576
+ /*=== ORDER ===*/
1577
+ /* Mirrors the go-cart row model: an <ol> with a header row, one <li><article> per
1578
+ ticket/event item, and a footer total. Column widths are shared CSS vars so the
1579
+ header, item, and footer cells line up. */
1580
+ go-order {
1581
+ --order-col-count: 0 0 3rem;
1582
+ --order-col-price: 0 0 auto;
1583
+
1584
+ display: block;
1521
1585
  }
1586
+ go-order ol,go-order ul {
1587
+ margin: 0;
1588
+ padding: 0;
1589
+ list-style: none;
1590
+ }
1591
+ /* Header + footer share the row layout with the item rows below. */
1592
+ go-order .data-go-order-breakdown-header > ul,go-order .go-order-breakdown-footer > ul,go-order li > article > ul {
1593
+ display: flex;
1594
+ align-items: flex-start;
1595
+ gap: 1rem;
1596
+ padding: 0.75rem 0;
1597
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06);
1598
+ }
1599
+ go-order .data-go-order-breakdown-header > ul > li,go-order .go-order-breakdown-footer > ul > li,go-order li > article > ul:not(.does-not-exist) > li {
1600
+ list-style: none;
1601
+ min-width: 0;
1602
+ }
1603
+ go-order .data-go-order-breakdown-header > ul {
1604
+ font-weight: 600;
1605
+ align-items: center;
1606
+ border-bottom: 1px solid rgba(0, 0, 0, 0.1);
1607
+ }
1608
+ go-order .go-order-breakdown-footer > ul {
1609
+ font-weight: 600;
1610
+ border-top: 1px solid rgba(0, 0, 0, 0.1);
1611
+ border-bottom: none;
1612
+ }
1613
+ /* --- Columns (semantic classes shared across header/rows/footer) --- */
1614
+ go-order .go-order-breakdown-header-count,go-order .go-order-breakdown-count {
1615
+ flex: var(--order-col-count);
1616
+ }
1617
+ go-order .go-order-breakdown-header-product,go-order .go-order-breakdown-product,go-order .go-cart-footer-title {
1618
+ flex: 1;
1619
+ }
1620
+ /* Price hugs the right: product grows and eats the slack, so the price sits
1621
+ flush against the trailing cells. */
1622
+ go-order .go-order-breakdown-header-price,go-order .go-order-breakdown-item-price,go-order .go-cart-footer-price {
1623
+ flex: var(--order-col-price);
1624
+ margin-left: auto;
1625
+ text-align: right;
1626
+ }
1627
+ /* Trailing icon cells collapse to their content, so an empty passbook/ical
1628
+ column adds no whitespace to the right of the price. */
1629
+ go-order .go-order-breakdown-header-passbook,go-order .go-order-breakdown-passbook,go-order .go-cart-footer-passbook,go-order .go-order-breakdown-ical {
1630
+ flex: 0 0 auto;
1631
+ text-align: right;
1632
+ }
1633
+ /* --- Product cell internals --- */
1634
+ go-order .go-order-item-title {
1635
+ display: block;
1636
+ font-weight: 500;
1637
+ }
1638
+ go-order .go-cart-item-date,go-order .go-cart-item-time {
1639
+ color: rgba(0, 0, 0, 0.55);
1640
+ font-size: 0.9em;
1641
+ margin-right: 0.35rem;
1642
+ }
1643
+ /* Mantelticket sub-tickets and event scale-price sub-lines: an indented,
1644
+ primary-tinted group beneath the title (see TicketSale/Event breakdown). */
1645
+ go-order .go-order-item-quantities {
1646
+ display: inline-block;
1647
+ margin: 0.15rem 0 0 1rem;
1648
+ padding-left: 0.6rem;
1649
+ border-left: 2px solid rgba(18, 130, 106, 0.35);
1650
+ font-size: 0.9em;
1651
+ color: rgba(0, 0, 0, 0.7);
1652
+ }
1653
+ go-order .go-ticket-download,go-order .go-ticket-personalization,go-order .go-order-breakdown-ical a {
1654
+ display: inline-block;
1655
+ line-height: 24px;
1656
+ margin-top: 0.35rem;
1657
+ color: #12826a;
1658
+ color: var(--primary);
1659
+ }
1522
1660
 
1523
1661
  .go-donation-campaign {
1524
1662
  display: grid;