@gomusdev/web-components 3.12.0 → 4.1.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 (27) hide show
  1. package/README.md +46 -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 +21070 -20669
  6. package/dist-js/gomus-webcomponents.js +21070 -20669
  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 +18577 -18313
  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/lib/models/capacity/CapacityManager.d.ts +4 -2
  16. package/dist-js/src/lib/models/capacity/calculators/mantle.d.ts +34 -0
  17. package/dist-js/src/lib/models/capacity/calculators/mantle.spec.d.ts +1 -0
  18. package/dist-js/src/lib/models/capacity/calculators/quotaManager/QuotaManager.d.ts +2 -1
  19. package/dist-js/src/lib/models/capacity/calculators/quotas.d.ts +23 -0
  20. package/dist-js/src/lib/models/cart/CartItem.d.ts +29 -1
  21. package/dist-js/src/lib/models/cart/cart.svelte.d.ts +40 -0
  22. package/dist-js/src/lib/models/cart/localStorage.svelte.d.ts +8 -0
  23. package/dist-js/src/lib/models/cart/quantityStepper.d.ts +16 -13
  24. package/dist-js/src/lib/models/ticket/UITicket.svelte.d.ts +35 -0
  25. package/dist-js/src/lib/stores/shop.svelte.d.ts +24 -2
  26. package/dist-js/src/workflowSpecs/mantle-workflow.spec.d.ts +1 -0
  27. package/package.json +1 -1
package/README.md CHANGED
@@ -1,5 +1,51 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.1.0 (2026-07-09)
4
+
5
+ ### Features
6
+
7
+ * **interactive-editor:** switch shop backend + WC version inline
8
+
9
+ ### Bug Fixes
10
+
11
+ * **interactive-editor:** list local build alongside published versions
12
+
13
+ ## 4.0.0 (2026-07-08)
14
+
15
+ ### ⚠ BREAKING CHANGES
16
+
17
+ * **quantity:** one QuantityControl for ticket rows, cart lines, and sub-rows
18
+
19
+ ### Features
20
+
21
+ * add QuotaFactories for reusable quota creation in tests and refactor related specs
22
+ * **capacity:** Mantelticket capacity calculator (Angular parity)
23
+ * **cart:** carry mantle composition from selection into the cart
24
+ * **cart:** carry mantle composition through the cart projection
25
+ * **cart:** carry mantle sub-ticket composition on CartItem
26
+ * **cart:** make a mantle's composition part of its cart-line identity
27
+ * **cart:** persist a mantle's composition across reloads
28
+ * **cart:** render editable sub-ticket rows under a mantle line
29
+ * **demo:** show booked mantle in go-order; load real order on edge
30
+ * **order:** show Mantelticket sub-ticket composition in go-order breakdown
31
+ * **quantity:** one QuantityControl for ticket rows, cart lines, and sub-rows
32
+ * **ticket-selection:** render editable sub-ticket rows under a mantle
33
+ * **ticket:** detect mantle tickets and normalize sub-ticket defs
34
+
35
+ ### Bug Fixes
36
+
37
+ * **build:** correct storybook:docs:build-and-deploy script name
38
+ * **capacity:** sum same-id quota draws so shared-quota tickets can't oversell
39
+ * **cart:** add default styling for Mantelticket sub-ticket rows
40
+ * **cart:** don't merge identical mantle lines in the display projection
41
+ * **cart:** never merge Mantelticket lines
42
+ * **cart:** never-collapse mantle lines; group composition + identity
43
+ * **cart:** pair echoed mantle lines by their composition, not by position
44
+ * **cart:** re-preview the cart when a mantle's composition changes
45
+ * **factories:** import ProductType as type-only so the Storybook build resolves it
46
+ * **mantle:** cap sub-ticket selectors by the remaining quota headroom
47
+ * **ticket-selection:** re-derive capacity when a cart mantle mix edit changes its draw
48
+
3
49
  ## 3.12.0 (2026-07-07)
4
50
 
5
51
  ### 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;