@gomusdev/web-components 4.1.1 → 4.3.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 +15 -0
  2. package/dist-js/components/cart/components/itemTitles/Tour.svelte.d.ts +1 -0
  3. package/dist-js/components/membershipActivation/MembershipActivation.svelte.d.ts +1 -0
  4. package/dist-js/components/order/components/subcomponents/breakdown/items/Tour.svelte.d.ts +1 -0
  5. package/dist-js/gomus-webcomponents.iife.js +563 -195
  6. package/dist-js/gomus-webcomponents.js +563 -195
  7. package/dist-js/gomus-webcomponents.min.iife.js +47 -47
  8. package/dist-js/gomus-webcomponents.min.js +7687 -7451
  9. package/dist-js/src/components/cart/components/itemTitles/Tour.spec.d.ts +1 -0
  10. package/dist-js/src/components/membershipActivation/entry.d.ts +0 -0
  11. package/dist-js/src/components/membershipActivation/specs/MembershipActivation.spec.d.ts +1 -0
  12. package/dist-js/src/components/order/components/subcomponents/breakdown/items/Tour.spec.d.ts +1 -0
  13. package/dist-js/src/components/ticketSelection/subcomponents/tickets/subcomponents/segment/SegmentDetails.svelte.d.ts +21 -3
  14. package/dist-js/src/factories/CartItemFactories.d.ts +94 -5
  15. package/dist-js/src/factories/TourFactories.d.ts +41 -0
  16. package/dist-js/src/go/cart.d.ts +19 -0
  17. package/dist-js/src/go/cart.spec.d.ts +1 -0
  18. package/dist-js/src/go/go.d.ts +5 -1
  19. package/dist-js/src/lib/helpers/translations.d.ts +1 -0
  20. package/dist-js/src/lib/models/cart/CartItem.d.ts +7 -1
  21. package/dist-js/src/lib/models/cart/cart.svelte.d.ts +42 -6
  22. package/dist-js/src/lib/models/cart/localStorage.svelte.d.ts +7 -1
  23. package/dist-js/src/lib/models/cart/types.d.ts +4 -1
  24. package/dist-js/src/lib/models/tour/UITour.spec.d.ts +1 -0
  25. package/dist-js/src/lib/models/tour/UITour.svelte.d.ts +99 -0
  26. package/dist-js/src/lib/stores/shop.svelte.d.ts +23 -4
  27. package/package.json +2 -2
@@ -60,6 +60,26 @@ function deferred() {
60
60
  reject
61
61
  };
62
62
  }
63
+ /**
64
+ * When encountering a situation like `let [a, b, c] = $derived(blah())`,
65
+ * we need to stash an intermediate value that `a`, `b`, and `c` derive
66
+ * from, in case it's an iterable
67
+ * @template T
68
+ * @param {ArrayLike<T> | Iterable<T>} value
69
+ * @param {number} [n]
70
+ * @returns {Array<T>}
71
+ */
72
+ function to_array(value, n) {
73
+ if (Array.isArray(value)) return value;
74
+ if (n === void 0 || !(Symbol.iterator in value)) return Array.from(value);
75
+ /** @type {T[]} */
76
+ const array = [];
77
+ for (const element of value) {
78
+ array.push(element);
79
+ if (array.length === n) break;
80
+ }
81
+ return array;
82
+ }
63
83
  //#endregion
64
84
  //#region ../../node_modules/.pnpm/svelte@5.56.1_@typescript-eslint+types@8.60.1/node_modules/svelte/src/internal/client/constants.js
65
85
  /**
@@ -12140,6 +12160,49 @@ function dispatchCartEvents(cart) {
12140
12160
  });
12141
12161
  }
12142
12162
  //#endregion
12163
+ //#region src/lib/models/tour/UITour.svelte.ts
12164
+ function isUITour(x) {
12165
+ return x?.type === "Tour";
12166
+ }
12167
+ function createUITour(attributes, options) {
12168
+ return {
12169
+ ...attributes,
12170
+ type: "Tour",
12171
+ description: "",
12172
+ price_cents: attributes.totalPriceCents,
12173
+ tax_included: true,
12174
+ vat_pct: 0,
12175
+ instanceKey: options?.instanceKey ?? crypto.randomUUID(),
12176
+ wire: normalizeWireAttributes(attributes)
12177
+ };
12178
+ }
12179
+ /**
12180
+ * The tour's share of the tour_cart_item payload, normalized at construction:
12181
+ * snake_case keys, absent optionals omitted. The backend derives participants
12182
+ * from `quantity` but prices scale-priced tours from `quantities` — exactly
12183
+ * one of the two is emitted so they can never diverge on the wire.
12184
+ */
12185
+ function normalizeWireAttributes(attributes) {
12186
+ const wire = { language_id: attributes.languageId };
12187
+ if (attributes.quantities) wire.quantities = attributes.quantities;
12188
+ else wire.quantity = attributes.participants;
12189
+ if (attributes.gradeId != null) wire.grade_id = attributes.gradeId;
12190
+ if (attributes.ageGroupId != null) wire.age_group_id = attributes.ageGroupId;
12191
+ if (attributes.surcharges) wire.surcharges = attributes.surcharges;
12192
+ if (attributes.equipment) wire.equipment = attributes.equipment;
12193
+ if (attributes.attendees) wire.attendees = attributes.attendees;
12194
+ if (attributes.customs) wire.customs = attributes.customs;
12195
+ return wire;
12196
+ }
12197
+ /** Rebuilds a UITour from its localStorage JSON through the one construction path. */
12198
+ function reviveUITour(persisted) {
12199
+ const { type, description, price_cents, tax_included, vat_pct, instanceKey, wire, ...attributes } = persisted;
12200
+ return createUITour({
12201
+ ...attributes,
12202
+ totalPriceCents: price_cents
12203
+ }, { instanceKey });
12204
+ }
12205
+ //#endregion
12143
12206
  //#region src/lib/models/cart/CartItem.ts
12144
12207
  var lastMantleKey = 0;
12145
12208
  function createCartItem(product, options) {
@@ -12188,6 +12251,11 @@ function createCartItem(product, options) {
12188
12251
  ...base,
12189
12252
  quantity: this.quantity
12190
12253
  };
12254
+ case "Tour": return {
12255
+ ...base,
12256
+ start_time: this.time,
12257
+ ...product.wire
12258
+ };
12191
12259
  default: throw new Error(`(orderAttributes) Unhandled product type: ${product}`);
12192
12260
  }
12193
12261
  },
@@ -12198,6 +12266,7 @@ function createCartItem(product, options) {
12198
12266
  const segments = [];
12199
12267
  if (this.time) segments.push(`time: ${this.time}`);
12200
12268
  if (isScaleEventTicket(this.product)) segments.push(`scale_price: ${this.product.scale_price_id}`);
12269
+ if (isUITour(this.product)) segments.push(`tour: ${this.product.instanceKey}`);
12201
12270
  if (this.display?.discounted) segments.push("discounted");
12202
12271
  if (isMantleTicket(this.product) && this.mantle?.key) segments.push(`mantle_key: ${this.mantle.key}`);
12203
12272
  return segments.length > 0 ? ` (${segments.join(", ")})` : "";
@@ -12298,6 +12367,12 @@ function generateCartItem(cartItem) {
12298
12367
  time: cartItem.time,
12299
12368
  quantity: cartItem.quantity
12300
12369
  });
12370
+ case "Tour":
12371
+ if (!isStillValid(cartItem)) return;
12372
+ return createCartItem(reviveUITour(cartItem.product), {
12373
+ time: cartItem.time,
12374
+ quantity: cartItem.quantity
12375
+ });
12301
12376
  case "Coupon": return createCartItem(createUICoupon(cartItem.product), { quantity: cartItem.quantity });
12302
12377
  default: throw new Error(`Unhandled case: ${type}`);
12303
12378
  }
@@ -12559,6 +12634,7 @@ function createCapacityManager() {
12559
12634
  default: throw new Error(`(getMaxAvailability) Unhandled case: ${subtype2}`);
12560
12635
  }
12561
12636
  case "Coupon": return "unlimited";
12637
+ case "Tour": return "unlimited";
12562
12638
  default: throw new Error(`(getMaxAvailability) Unhandled case: ${type}`);
12563
12639
  }
12564
12640
  },
@@ -13544,6 +13620,7 @@ var TICKETS_ENDPOINT = "/api/v4/tickets";
13544
13620
  var SIGN_IN_ENDPOINT = "/api/v4/auth/sign_in";
13545
13621
  var SIGN_UP_ENDPOINT = "/api/v4/auth";
13546
13622
  var WITHDRAWAL_ENDPOINT = "/api/v4/orders/withdrawals";
13623
+ var MEMBERSHIP_ACTIVATION_ENDPOINT = "/api/v4/customer/memberships/activate";
13547
13624
  var ORDERS_ENDPOINT = "/api/v4/orders";
13548
13625
  //#endregion
13549
13626
  //#region ../../packages/gomus-api/lib/customerLevels.ts
@@ -13762,6 +13839,13 @@ var Shop = class {
13762
13839
  requiredFields: ["email"]
13763
13840
  });
13764
13841
  }
13842
+ activateMembership(params) {
13843
+ return this.apiPost(MEMBERSHIP_ACTIVATION_ENDPOINT, {
13844
+ body: params,
13845
+ requiredFields: ["email"],
13846
+ parseAs: "text"
13847
+ });
13848
+ }
13765
13849
  checkout(params) {
13766
13850
  return this.apiPost(`/api/v4/orders`, {
13767
13851
  body: params,
@@ -14135,8 +14219,8 @@ var setPersonalizationDetails = createSetDetails(KEY$5);
14135
14219
  var getPersonalizationDetails = createGetDetails(KEY$5);
14136
14220
  //#endregion
14137
14221
  //#region src/components/annualTicketPersonalization/components/AnnualTicketPersonalization.svelte
14138
- var root$55 = /* @__PURE__ */ from_html(`<li><a> </a></li>`);
14139
- var root_1$19 = /* @__PURE__ */ from_html(`<ul class="go-annual-ticket"><li class="go-annual-ticket-title"> </li> <li class="go-annual-ticket-personalization-count"> </li> <!></ul>`);
14222
+ var root$57 = /* @__PURE__ */ from_html(`<li><a> </a></li>`);
14223
+ var root_1$21 = /* @__PURE__ */ from_html(`<ul class="go-annual-ticket"><li class="go-annual-ticket-title"> </li> <li class="go-annual-ticket-personalization-count"> </li> <!></ul>`);
14140
14224
  function AnnualTicketPersonalization($$anchor, $$props) {
14141
14225
  push($$props, true);
14142
14226
  let token = prop($$props, "token", 7);
@@ -14161,7 +14245,7 @@ function AnnualTicketPersonalization($$anchor, $$props) {
14161
14245
  var consequent_1 = ($$anchor) => {
14162
14246
  var fragment_1 = comment();
14163
14247
  each(first_child(fragment_1), 17, () => get$2(order).ticket_sales, (ticketSale) => ticketSale.id, ($$anchor, ticketSale) => {
14164
- var ul = root_1$19();
14248
+ var ul = root_1$21();
14165
14249
  var li = child(ul);
14166
14250
  var text = child(li, true);
14167
14251
  reset(li);
@@ -14170,7 +14254,7 @@ function AnnualTicketPersonalization($$anchor, $$props) {
14170
14254
  reset(li_1);
14171
14255
  var node_2 = sibling(li_1, 2);
14172
14256
  var consequent = ($$anchor) => {
14173
- var li_2 = root$55();
14257
+ var li_2 = root$57();
14174
14258
  var a = child(li_2);
14175
14259
  var text_2 = child(a, true);
14176
14260
  reset(a);
@@ -14845,7 +14929,7 @@ function wrapInElement(host, tag, props) {
14845
14929
  }
14846
14930
  //#endregion
14847
14931
  //#region src/components/forms/ui/generic/Form.svelte
14848
- var root$54 = /* @__PURE__ */ from_html(`<go-all-fields></go-all-fields> <go-form-feedback><go-errors-feedback></go-errors-feedback> <go-success-feedback></go-success-feedback></go-form-feedback> <go-submit> </go-submit>`, 3);
14932
+ var root$56 = /* @__PURE__ */ from_html(`<go-all-fields></go-all-fields> <go-form-feedback><go-errors-feedback></go-errors-feedback> <go-success-feedback></go-success-feedback></go-form-feedback> <go-submit> </go-submit>`, 3);
14849
14933
  function Form($$anchor, $$props) {
14850
14934
  push($$props, true);
14851
14935
  let formId = prop($$props, "formId", 7), custom = prop($$props, "custom", 7);
@@ -14890,7 +14974,7 @@ function Form($$anchor, $$props) {
14890
14974
  var fragment = comment();
14891
14975
  var node = first_child(fragment);
14892
14976
  var consequent = ($$anchor) => {
14893
- var fragment_1 = root$54();
14977
+ var fragment_1 = root$56();
14894
14978
  var go_submit = sibling(sibling(first_child(fragment_1), 2), 2);
14895
14979
  var text = child(go_submit, true);
14896
14980
  reset(go_submit);
@@ -14917,7 +15001,7 @@ customElements.define("go-form", create_custom_element(Form, {
14917
15001
  }, [], ["details"]));
14918
15002
  //#endregion
14919
15003
  //#region src/components/auth/passwordReset/PasswordReset.svelte
14920
- var root$53 = /* @__PURE__ */ from_html(`<go-form></go-form>`, 2);
15004
+ var root$55 = /* @__PURE__ */ from_html(`<go-form></go-form>`, 2);
14921
15005
  function PasswordReset($$anchor, $$props) {
14922
15006
  push($$props, true);
14923
15007
  let custom = prop($$props, "custom", 7, false);
@@ -14950,7 +15034,7 @@ function PasswordReset($$anchor, $$props) {
14950
15034
  flushSync();
14951
15035
  }
14952
15036
  };
14953
- var go_form = root$53();
15037
+ var go_form = root$55();
14954
15038
  set_custom_element_data(go_form, "formId", "passwordReset");
14955
15039
  template_effect(() => set_custom_element_data(go_form, "custom", custom()));
14956
15040
  event("submit", go_form, passwordReset);
@@ -15114,7 +15198,7 @@ function createDisplayCart(baseCart, apiItems) {
15114
15198
  return displayCart;
15115
15199
  }
15116
15200
  function createDisplayCartItem(cartItem, attrs) {
15117
- const quantity = resolveApiQuantity(attrs);
15201
+ const quantity = isUITour(cartItem.product) ? 1 : resolveApiQuantity(attrs);
15118
15202
  const displayPrice = attrs.price_cents ?? cartItem.product.price_cents;
15119
15203
  const originalPrice = cartItem.product.price_cents;
15120
15204
  const discounted = displayPrice < originalPrice;
@@ -15187,7 +15271,7 @@ var setCartDetails = createSetDetails(KEY$3);
15187
15271
  var getCartDetails = createGetDetails(KEY$3);
15188
15272
  //#endregion
15189
15273
  //#region src/components/cart/components/itemTitles/Coupon.svelte
15190
- var root$52 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"> </span>`);
15274
+ var root$54 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"> </span>`);
15191
15275
  function Coupon($$anchor, $$props) {
15192
15276
  push($$props, true);
15193
15277
  let cartItem = prop($$props, "cartItem", 7);
@@ -15200,7 +15284,7 @@ function Coupon($$anchor, $$props) {
15200
15284
  flushSync();
15201
15285
  }
15202
15286
  };
15203
- var span = root$52();
15287
+ var span = root$54();
15204
15288
  var text = child(span, true);
15205
15289
  reset(span);
15206
15290
  template_effect(() => set_text(text, cartItem().product.title));
@@ -15210,8 +15294,8 @@ function Coupon($$anchor, $$props) {
15210
15294
  create_custom_element(Coupon, { cartItem: {} }, [], [], { mode: "open" });
15211
15295
  //#endregion
15212
15296
  //#region src/components/cart/components/itemTitles/Event.svelte
15213
- var root$51 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span><span class="go-cart-item-time" data-testid="cart-item-time"> </span>`, 1);
15214
- var root_1$18 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"><span class="go-cart-item-title-event-title"> </span><span class="go-cart-item-title-ticket-title"> </span></span><!>`, 1);
15297
+ var root$53 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span><span class="go-cart-item-time" data-testid="cart-item-time"> </span>`, 1);
15298
+ var root_1$20 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"><span class="go-cart-item-title-event-title"> </span><span class="go-cart-item-title-ticket-title"> </span></span><!>`, 1);
15215
15299
  function Event$2($$anchor, $$props) {
15216
15300
  push($$props, true);
15217
15301
  let cartItem = prop($$props, "cartItem", 7);
@@ -15226,7 +15310,7 @@ function Event$2($$anchor, $$props) {
15226
15310
  flushSync();
15227
15311
  }
15228
15312
  };
15229
- var fragment = root_1$18();
15313
+ var fragment = root_1$20();
15230
15314
  var span = first_child(fragment);
15231
15315
  var span_1 = child(span);
15232
15316
  var text = child(span_1, true);
@@ -15237,7 +15321,7 @@ function Event$2($$anchor, $$props) {
15237
15321
  reset(span);
15238
15322
  var node = sibling(span);
15239
15323
  var consequent = ($$anchor) => {
15240
- var fragment_1 = root$51();
15324
+ var fragment_1 = root$53();
15241
15325
  var span_3 = first_child(fragment_1);
15242
15326
  var text_2 = child(span_3, true);
15243
15327
  reset(span_3);
@@ -15266,9 +15350,9 @@ function Event$2($$anchor, $$props) {
15266
15350
  create_custom_element(Event$2, { cartItem: {} }, [], [], { mode: "open" });
15267
15351
  //#endregion
15268
15352
  //#region src/components/cart/components/itemTitles/Ticket.svelte
15269
- var root$50 = /* @__PURE__ */ from_html(`<span class="go-cart-item-time" data-testid="cart-item-time"> </span>`);
15270
- var root_1$17 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span> <!>`, 1);
15271
- var root_2$12 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"> </span> <!>`, 1);
15353
+ var root$52 = /* @__PURE__ */ from_html(`<span class="go-cart-item-time" data-testid="cart-item-time"> </span>`);
15354
+ var root_1$19 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span> <!>`, 1);
15355
+ var root_2$14 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"> </span> <!>`, 1);
15272
15356
  function Ticket($$anchor, $$props) {
15273
15357
  push($$props, true);
15274
15358
  let cartItem = prop($$props, "cartItem", 7);
@@ -15281,19 +15365,19 @@ function Ticket($$anchor, $$props) {
15281
15365
  flushSync();
15282
15366
  }
15283
15367
  };
15284
- var fragment = root_2$12();
15368
+ var fragment = root_2$14();
15285
15369
  var span = first_child(fragment);
15286
15370
  var text = child(span, true);
15287
15371
  reset(span);
15288
15372
  var node = sibling(span, 2);
15289
15373
  var consequent_1 = ($$anchor) => {
15290
- var fragment_1 = root_1$17();
15374
+ var fragment_1 = root_1$19();
15291
15375
  var span_1 = first_child(fragment_1);
15292
15376
  var text_1 = child(span_1, true);
15293
15377
  reset(span_1);
15294
15378
  var node_1 = sibling(span_1, 2);
15295
15379
  var consequent = ($$anchor) => {
15296
- var span_2 = root$50();
15380
+ var span_2 = root$52();
15297
15381
  var text_2 = child(span_2, true);
15298
15382
  reset(span_2);
15299
15383
  template_effect(($0) => set_text(text_2, $0), [() => formatTime(cartItem().time)]);
@@ -15317,6 +15401,93 @@ function Ticket($$anchor, $$props) {
15317
15401
  }
15318
15402
  create_custom_element(Ticket, { cartItem: {} }, [], [], { mode: "open" });
15319
15403
  //#endregion
15404
+ //#region src/components/cart/components/itemTitles/Tour.svelte
15405
+ var root$51 = /* @__PURE__ */ from_html(`<span class="go-cart-item-time" data-testid="cart-item-time"> </span>`);
15406
+ var root_1$18 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span> <!>`, 1);
15407
+ var root_2$13 = /* @__PURE__ */ from_html(`<span class="go-cart-item-custom" data-testid="cart-item-custom"> </span>`);
15408
+ var root_3$9 = /* @__PURE__ */ from_html(`<span class="go-cart-item-title" data-testid="cart-item-title"> </span> <span class="go-cart-item-participants" data-testid="cart-item-participants"> </span> <!> <!>`, 1);
15409
+ function Tour$1($$anchor, $$props) {
15410
+ push($$props, true);
15411
+ let cartItem = prop($$props, "cartItem", 7);
15412
+ const product = /* @__PURE__ */ user_derived(() => cartItem().product);
15413
+ const slot = /* @__PURE__ */ user_derived(() => {
15414
+ if (!cartItem().time) return null;
15415
+ try {
15416
+ return {
15417
+ date: formatDate(cartItem().time, {
15418
+ year: "numeric",
15419
+ month: "numeric",
15420
+ day: "numeric"
15421
+ }, shop.locale),
15422
+ time: formatTime(cartItem().time)
15423
+ };
15424
+ } catch {
15425
+ return {
15426
+ date: cartItem().time,
15427
+ time: ""
15428
+ };
15429
+ }
15430
+ });
15431
+ const displayCustom = (value) => value == null ? "" : typeof value === "object" ? JSON.stringify(value) : String(value);
15432
+ const customs = /* @__PURE__ */ user_derived(() => Object.entries(get$2(product).customs ?? {}).filter(([, value]) => value != null && value !== ""));
15433
+ var $$exports = {
15434
+ get cartItem() {
15435
+ return cartItem();
15436
+ },
15437
+ set cartItem($$value) {
15438
+ cartItem($$value);
15439
+ flushSync();
15440
+ }
15441
+ };
15442
+ var fragment = root_3$9();
15443
+ var span = first_child(fragment);
15444
+ var text = child(span, true);
15445
+ reset(span);
15446
+ var span_1 = sibling(span, 2);
15447
+ var text_1 = child(span_1, true);
15448
+ reset(span_1);
15449
+ var node = sibling(span_1, 2);
15450
+ var consequent_1 = ($$anchor) => {
15451
+ var fragment_1 = root_1$18();
15452
+ var span_2 = first_child(fragment_1);
15453
+ var text_2 = child(span_2, true);
15454
+ reset(span_2);
15455
+ var node_1 = sibling(span_2, 2);
15456
+ var consequent = ($$anchor) => {
15457
+ var span_3 = root$51();
15458
+ var text_3 = child(span_3, true);
15459
+ reset(span_3);
15460
+ template_effect(() => set_text(text_3, get$2(slot).time));
15461
+ append($$anchor, span_3);
15462
+ };
15463
+ if_block(node_1, ($$render) => {
15464
+ if (get$2(slot).time) $$render(consequent);
15465
+ });
15466
+ template_effect(() => set_text(text_2, get$2(slot).date));
15467
+ append($$anchor, fragment_1);
15468
+ };
15469
+ if_block(node, ($$render) => {
15470
+ if (get$2(slot)) $$render(consequent_1);
15471
+ });
15472
+ each(sibling(node, 2), 17, () => get$2(customs), ([key, value]) => key, ($$anchor, $$item) => {
15473
+ var $$array = /* @__PURE__ */ user_derived(() => to_array(get$2($$item), 2));
15474
+ let key = () => get$2($$array)[0];
15475
+ let value = () => get$2($$array)[1];
15476
+ var span_4 = root_2$13();
15477
+ var text_4 = child(span_4);
15478
+ reset(span_4);
15479
+ template_effect(($0) => set_text(text_4, `${key() ?? ""}: ${$0 ?? ""}`), [() => displayCustom(value())]);
15480
+ append($$anchor, span_4);
15481
+ });
15482
+ template_effect(($0) => {
15483
+ set_text(text, get$2(product).title);
15484
+ set_text(text_1, $0);
15485
+ }, [() => shop.t("cart.item.participants", { count: get$2(product).participants })]);
15486
+ append($$anchor, fragment);
15487
+ return pop($$exports);
15488
+ }
15489
+ create_custom_element(Tour$1, { cartItem: {} }, [], [], { mode: "open" });
15490
+ //#endregion
15320
15491
  //#region src/lib/models/cart/quantityStepper.ts
15321
15492
  /** `+`: from below the order minimum jump to it (at least `1`); otherwise step up by one. Capped at `max`. */
15322
15493
  function increment(value, { min, max }) {
@@ -15350,7 +15521,7 @@ function canDecrement(value, { floor = 0 }) {
15350
15521
  }
15351
15522
  //#endregion
15352
15523
  //#region src/components/shared/quantityStepper/QuantityStepper.svelte
15353
- var root$49 = /* @__PURE__ */ from_html(`<div class="go-quantity-stepper" role="group"><button type="button" class="go-quantity-stepper-button go-quantity-stepper-decrement" tabindex="-1"><span aria-hidden="true">−</span></button> <input class="go-quantity-stepper-value" type="text" role="spinbutton" inputmode="numeric" autocomplete="off"/> <button type="button" class="go-quantity-stepper-button go-quantity-stepper-increment" tabindex="-1"><span aria-hidden="true">+</span></button></div>`);
15524
+ var root$50 = /* @__PURE__ */ from_html(`<div class="go-quantity-stepper" role="group"><button type="button" class="go-quantity-stepper-button go-quantity-stepper-decrement" tabindex="-1"><span aria-hidden="true">−</span></button> <input class="go-quantity-stepper-value" type="text" role="spinbutton" inputmode="numeric" autocomplete="off"/> <button type="button" class="go-quantity-stepper-button go-quantity-stepper-increment" tabindex="-1"><span aria-hidden="true">+</span></button></div>`);
15354
15525
  function QuantityStepper($$anchor, $$props) {
15355
15526
  const inputId = props_id();
15356
15527
  push($$props, true);
@@ -15465,7 +15636,7 @@ function QuantityStepper($$anchor, $$props) {
15465
15636
  flushSync();
15466
15637
  }
15467
15638
  };
15468
- var div = root$49();
15639
+ var div = root$50();
15469
15640
  var button = child(div);
15470
15641
  var input = sibling(button, 2);
15471
15642
  remove_input_defaults(input);
@@ -15535,8 +15706,8 @@ function option(value) {
15535
15706
  }
15536
15707
  //#endregion
15537
15708
  //#region src/components/shared/quantityStepper/QuantityControl.svelte
15538
- var root$48 = /* @__PURE__ */ from_html(`<option> </option>`);
15539
- var root_1$16 = /* @__PURE__ */ from_html(`<select class="go-quantity-select"></select>`);
15709
+ var root$49 = /* @__PURE__ */ from_html(`<option> </option>`);
15710
+ var root_1$17 = /* @__PURE__ */ from_html(`<select class="go-quantity-select"></select>`);
15540
15711
  function QuantityControl($$anchor, $$props) {
15541
15712
  push($$props, true);
15542
15713
  /** Current committed quantity. */
@@ -15641,9 +15812,9 @@ function QuantityControl($$anchor, $$props) {
15641
15812
  }
15642
15813
  };
15643
15814
  var alternate = ($$anchor) => {
15644
- var select = root_1$16();
15815
+ var select = root_1$17();
15645
15816
  each(select, 21, () => generateQuantityOptions(min(), max(), { floor: deselectable() ? floor() : min() }), (q) => q.value, ($$anchor, q) => {
15646
- var option = root$48();
15817
+ var option = root$49();
15647
15818
  var text = child(option, true);
15648
15819
  reset(option);
15649
15820
  var option_value = {};
@@ -17527,9 +17698,9 @@ function createDOMPurify() {
17527
17698
  var purify = createDOMPurify();
17528
17699
  //#endregion
17529
17700
  //#region src/components/cart/components/SubRow.svelte
17530
- var root$47 = /* @__PURE__ */ from_html(`<span class="go-sub-ticket-description"></span>`);
17531
- var root_1$15 = /* @__PURE__ */ from_html(`<span class="go-sub-ticket-quantity"> </span>`);
17532
- var root_2$11 = /* @__PURE__ */ from_html(`<li><span class="go-sub-ticket-title"> </span> <!> <!></li>`);
17701
+ var root$48 = /* @__PURE__ */ from_html(`<span class="go-sub-ticket-description"></span>`);
17702
+ var root_1$16 = /* @__PURE__ */ from_html(`<span class="go-sub-ticket-quantity"> </span>`);
17703
+ var root_2$12 = /* @__PURE__ */ from_html(`<li><span class="go-sub-ticket-title"> </span> <!> <!></li>`);
17533
17704
  function SubRow($$anchor, $$props) {
17534
17705
  push($$props, true);
17535
17706
  /** Capacity-aware ceiling from CapacityManager.subTicketMaxes; the combination max when absent. */
@@ -17572,13 +17743,13 @@ function SubRow($$anchor, $$props) {
17572
17743
  flushSync();
17573
17744
  }
17574
17745
  };
17575
- var li = root_2$11();
17746
+ var li = root_2$12();
17576
17747
  var span = child(li);
17577
17748
  var text = child(span, true);
17578
17749
  reset(span);
17579
17750
  var node = sibling(span, 2);
17580
17751
  var consequent = ($$anchor) => {
17581
- var span_1 = root$47();
17752
+ var span_1 = root$48();
17582
17753
  html$2(span_1, () => purify.sanitize(sub().description), true);
17583
17754
  reset(span_1);
17584
17755
  append($$anchor, span_1);
@@ -17588,7 +17759,7 @@ function SubRow($$anchor, $$props) {
17588
17759
  });
17589
17760
  var node_1 = sibling(node, 2);
17590
17761
  var consequent_1 = ($$anchor) => {
17591
- var span_2 = root_1$15();
17762
+ var span_2 = root_1$16();
17592
17763
  var text_1 = child(span_2, true);
17593
17764
  reset(span_2);
17594
17765
  template_effect(() => {
@@ -17647,12 +17818,13 @@ create_custom_element(SubRow, {
17647
17818
  }, [], [], { mode: "open" });
17648
17819
  //#endregion
17649
17820
  //#region src/components/cart/components/Item.svelte
17650
- var root$46 = /* @__PURE__ */ from_html(`<s class="go-cart-item-price-original"> </s> <span class="go-cart-item-price-discounted"> </span>`, 1);
17651
- var root_1$14 = /* @__PURE__ */ from_html(`<span class="go-cart-item-price-discounted"> </span>`);
17652
- var root_2$10 = /* @__PURE__ */ from_html(`<span> </span>`);
17653
- var root_3$7 = /* @__PURE__ */ from_html(`<li class="go-cart-item-remove"><button class="go-cart-remove">⨉</button></li>`);
17654
- var root_4$4 = /* @__PURE__ */ from_html(`<ul class="go-sub-tickets" role="list"></ul>`);
17655
- var root_5$2 = /* @__PURE__ */ from_html(`<article class="go-cart-item-content"><ul><li class="go-cart-item-title-container"><!></li> <li class="go-cart-item-price"><!></li> <li class="go-cart-item-count"><!></li> <!> <li class="go-cart-item-sum"> </li></ul></article> <!>`, 1);
17821
+ var root$47 = /* @__PURE__ */ from_html(`<s class="go-cart-item-price-original"> </s> <span class="go-cart-item-price-discounted"> </span>`, 1);
17822
+ var root_1$15 = /* @__PURE__ */ from_html(`<span class="go-cart-item-price-discounted"> </span>`);
17823
+ var root_2$11 = /* @__PURE__ */ from_html(`<span data-testid="cart-item-participant-count"> </span>`);
17824
+ var root_3$8 = /* @__PURE__ */ from_html(`<span> </span>`);
17825
+ var root_4$4 = /* @__PURE__ */ from_html(`<li class="go-cart-item-remove"><button class="go-cart-remove">⨉</button></li>`);
17826
+ var root_5$2 = /* @__PURE__ */ from_html(`<ul class="go-sub-tickets" role="list"></ul>`);
17827
+ var root_6$2 = /* @__PURE__ */ from_html(`<article class="go-cart-item-content"><ul><li class="go-cart-item-title-container"><!></li> <li class="go-cart-item-price"><!></li> <li class="go-cart-item-count"><!></li> <!> <li class="go-cart-item-sum"> </li></ul></article> <!>`, 1);
17656
17828
  function Item$1($$anchor, $$props) {
17657
17829
  push($$props, true);
17658
17830
  let displayItem = prop($$props, "displayItem", 7), displayCart = prop($$props, "displayCart", 7), preview = prop($$props, "preview", 7);
@@ -17717,8 +17889,8 @@ function Item$1($$anchor, $$props) {
17717
17889
  };
17718
17890
  var fragment = comment();
17719
17891
  var node = first_child(fragment);
17720
- var consequent_7 = ($$anchor) => {
17721
- var fragment_1 = root_5$2();
17892
+ var consequent_9 = ($$anchor) => {
17893
+ var fragment_1 = root_6$2();
17722
17894
  var article = first_child(fragment_1);
17723
17895
  var ul = child(article);
17724
17896
  var li = child(ul);
@@ -17738,17 +17910,23 @@ function Item$1($$anchor, $$props) {
17738
17910
  return displayItem();
17739
17911
  } });
17740
17912
  };
17913
+ var consequent_3 = ($$anchor) => {
17914
+ Tour$1($$anchor, { get cartItem() {
17915
+ return displayItem();
17916
+ } });
17917
+ };
17741
17918
  if_block(node_1, ($$render) => {
17742
17919
  if (displayItem().product.type === "Ticket") $$render(consequent);
17743
17920
  else if (displayItem().product.type === "Event") $$render(consequent_1, 1);
17744
17921
  else if (displayItem().product.type === "Coupon") $$render(consequent_2, 2);
17922
+ else if (displayItem().product.type === "Tour") $$render(consequent_3, 3);
17745
17923
  });
17746
17924
  reset(li);
17747
17925
  var li_1 = sibling(li, 2);
17748
17926
  var node_2 = child(li_1);
17749
- var consequent_3 = ($$anchor) => {
17750
- var fragment_5 = root$46();
17751
- var s = first_child(fragment_5);
17927
+ var consequent_4 = ($$anchor) => {
17928
+ var fragment_6 = root$47();
17929
+ var s = first_child(fragment_6);
17752
17930
  var text = child(s, true);
17753
17931
  reset(s);
17754
17932
  var span = sibling(s, 2);
@@ -17758,29 +17936,36 @@ function Item$1($$anchor, $$props) {
17758
17936
  set_text(text, $0);
17759
17937
  set_text(text_1, $1);
17760
17938
  }, [() => formatCurrency(displayItem().display.originalPrice), () => formatCurrency(displayItem().final_price_cents)]);
17761
- append($$anchor, fragment_5);
17939
+ append($$anchor, fragment_6);
17762
17940
  };
17763
17941
  var alternate = ($$anchor) => {
17764
- var span_1 = root_1$14();
17942
+ var span_1 = root_1$15();
17765
17943
  var text_2 = child(span_1, true);
17766
17944
  reset(span_1);
17767
17945
  template_effect(($0) => set_text(text_2, $0), [() => formatCurrency(displayItem().final_price_cents)]);
17768
17946
  append($$anchor, span_1);
17769
17947
  };
17770
17948
  if_block(node_2, ($$render) => {
17771
- if (displayItem().display?.discounted) $$render(consequent_3);
17949
+ if (displayItem().display?.discounted) $$render(consequent_4);
17772
17950
  else $$render(alternate, -1);
17773
17951
  });
17774
17952
  reset(li_1);
17775
17953
  var li_2 = sibling(li_1, 2);
17776
17954
  var node_3 = child(li_2);
17777
- var consequent_4 = ($$anchor) => {
17778
- var span_2 = root_2$10();
17955
+ var consequent_5 = ($$anchor) => {
17956
+ var span_2 = root_2$11();
17779
17957
  var text_3 = child(span_2, true);
17780
17958
  reset(span_2);
17781
- template_effect(() => set_text(text_3, displayItem().quantity));
17959
+ template_effect(() => set_text(text_3, displayItem().product.participants));
17782
17960
  append($$anchor, span_2);
17783
17961
  };
17962
+ var consequent_6 = ($$anchor) => {
17963
+ var span_3 = root_3$8();
17964
+ var text_4 = child(span_3, true);
17965
+ reset(span_3);
17966
+ template_effect(() => set_text(text_4, displayItem().quantity));
17967
+ append($$anchor, span_3);
17968
+ };
17784
17969
  var alternate_1 = ($$anchor) => {
17785
17970
  {
17786
17971
  let $0 = /* @__PURE__ */ user_derived(() => displayItem().quantity ?? 0);
@@ -17803,13 +17988,14 @@ function Item$1($$anchor, $$props) {
17803
17988
  }
17804
17989
  };
17805
17990
  if_block(node_3, ($$render) => {
17806
- if (preview()) $$render(consequent_4);
17991
+ if (displayItem().product.type === "Tour") $$render(consequent_5);
17992
+ else if (preview()) $$render(consequent_6, 1);
17807
17993
  else $$render(alternate_1, -1);
17808
17994
  });
17809
17995
  reset(li_2);
17810
17996
  var node_4 = sibling(li_2, 2);
17811
- var consequent_5 = ($$anchor) => {
17812
- var li_3 = root_3$7();
17997
+ var consequent_7 = ($$anchor) => {
17998
+ var li_3 = root_4$4();
17813
17999
  var button = child(li_3);
17814
18000
  reset(li_3);
17815
18001
  template_effect(($0) => set_attribute(button, "aria-label", $0), [() => shop.t("cart.item.remove")]);
@@ -17817,16 +18003,16 @@ function Item$1($$anchor, $$props) {
17817
18003
  append($$anchor, li_3);
17818
18004
  };
17819
18005
  if_block(node_4, ($$render) => {
17820
- if (!preview()) $$render(consequent_5);
18006
+ if (!preview()) $$render(consequent_7);
17821
18007
  });
17822
18008
  var li_4 = sibling(node_4, 2);
17823
- var text_4 = child(li_4, true);
18009
+ var text_5 = child(li_4, true);
17824
18010
  reset(li_4);
17825
18011
  reset(ul);
17826
18012
  reset(article);
17827
18013
  var node_5 = sibling(article, 2);
17828
- var consequent_6 = ($$anchor) => {
17829
- var ul_1 = root_4$4();
18014
+ var consequent_8 = ($$anchor) => {
18015
+ var ul_1 = root_5$2();
17830
18016
  each(ul_1, 21, () => subTicketDefs(get$2(mantleProduct)), (sub) => sub.id, ($$anchor, sub) => {
17831
18017
  {
17832
18018
  let $0 = /* @__PURE__ */ user_derived(() => displayItem().mantle?.composition?.[get$2(sub).id] ?? 0);
@@ -17852,13 +18038,13 @@ function Item$1($$anchor, $$props) {
17852
18038
  append($$anchor, ul_1);
17853
18039
  };
17854
18040
  if_block(node_5, ($$render) => {
17855
- if (get$2(mantleProduct)) $$render(consequent_6);
18041
+ if (get$2(mantleProduct)) $$render(consequent_8);
17856
18042
  });
17857
- template_effect(($0) => set_text(text_4, $0), [() => formatCurrency(displayItem().total_price_cents)]);
18043
+ template_effect(($0) => set_text(text_5, $0), [() => formatCurrency(displayItem().total_price_cents)]);
17858
18044
  append($$anchor, fragment_1);
17859
18045
  };
17860
18046
  if_block(node, ($$render) => {
17861
- if (get$2(capacity)) $$render(consequent_7);
18047
+ if (get$2(capacity)) $$render(consequent_9);
17862
18048
  });
17863
18049
  append($$anchor, fragment);
17864
18050
  return pop($$exports);
@@ -17871,9 +18057,9 @@ create_custom_element(Item$1, {
17871
18057
  }, [], [], { mode: "open" });
17872
18058
  //#endregion
17873
18059
  //#region src/components/cart/components/CartItems.svelte
17874
- var root$45 = /* @__PURE__ */ from_html(`<li class="go-cart-header-remove"></li>`);
17875
- var root_1$13 = /* @__PURE__ */ from_html(`<li class="go-cart-item"><!></li>`);
17876
- var root_2$9 = /* @__PURE__ */ from_html(`<ol data-testid="cart-items"><li class="go-cart-header"><ul><li class="go-cart-header-title"> </li> <li class="go-cart-header-price"> </li> <li class="go-cart-header-count"> </li> <!> <li class="go-cart-header-sum"> </li></ul></li> <!></ol>`);
18060
+ var root$46 = /* @__PURE__ */ from_html(`<li class="go-cart-header-remove"></li>`);
18061
+ var root_1$14 = /* @__PURE__ */ from_html(`<li class="go-cart-item"><!></li>`);
18062
+ var root_2$10 = /* @__PURE__ */ from_html(`<ol data-testid="cart-items"><li class="go-cart-header"><ul><li class="go-cart-header-title"> </li> <li class="go-cart-header-price"> </li> <li class="go-cart-header-count"> </li> <!> <li class="go-cart-header-sum"> </li></ul></li> <!></ol>`);
17877
18063
  function CartItems($$anchor, $$props) {
17878
18064
  push($$props, true);
17879
18065
  const _details = getCartDetails($$props.$$host);
@@ -17881,7 +18067,7 @@ function CartItems($$anchor, $$props) {
17881
18067
  var fragment = comment();
17882
18068
  var node = first_child(fragment);
17883
18069
  var consequent_1 = ($$anchor) => {
17884
- var ol = root_2$9();
18070
+ var ol = root_2$10();
17885
18071
  var li = child(ol);
17886
18072
  var ul = child(li);
17887
18073
  var li_1 = child(ul);
@@ -17895,7 +18081,7 @@ function CartItems($$anchor, $$props) {
17895
18081
  reset(li_3);
17896
18082
  var node_1 = sibling(li_3, 2);
17897
18083
  var consequent = ($$anchor) => {
17898
- append($$anchor, root$45());
18084
+ append($$anchor, root$46());
17899
18085
  };
17900
18086
  if_block(node_1, ($$render) => {
17901
18087
  if (!get$2(details).preview) $$render(consequent);
@@ -17906,7 +18092,7 @@ function CartItems($$anchor, $$props) {
17906
18092
  reset(ul);
17907
18093
  reset(li);
17908
18094
  each(sibling(li, 2), 17, () => get$2(details).displayCart.items, (item) => item.uuid, ($$anchor, item) => {
17909
- var li_6 = root_1$13();
18095
+ var li_6 = root_1$14();
17910
18096
  Item$1(child(li_6), {
17911
18097
  get displayItem() {
17912
18098
  return get$2(item);
@@ -17944,9 +18130,9 @@ function CartItems($$anchor, $$props) {
17944
18130
  customElements.define("go-cart-items", create_custom_element(CartItems, {}, [], []));
17945
18131
  //#endregion
17946
18132
  //#region src/components/cart/components/CartCoupons.svelte
17947
- var root$44 = /* @__PURE__ */ from_html(`<li class="go-cart-coupon-remove-cell"><button class="go-cart-remove go-cart-coupon-remove">⨉</button></li>`);
17948
- var root_1$12 = /* @__PURE__ */ from_html(`<li><article class="go-cart-coupon-content"><ul><li class="go-cart-coupon-code"> </li> <!></ul></article></li>`);
17949
- var root_2$8 = /* @__PURE__ */ from_html(`<ol data-testid="cart-coupons"></ol>`);
18133
+ var root$45 = /* @__PURE__ */ from_html(`<li class="go-cart-coupon-remove-cell"><button class="go-cart-remove go-cart-coupon-remove">⨉</button></li>`);
18134
+ var root_1$13 = /* @__PURE__ */ from_html(`<li><article class="go-cart-coupon-content"><ul><li class="go-cart-coupon-code"> </li> <!></ul></article></li>`);
18135
+ var root_2$9 = /* @__PURE__ */ from_html(`<ol data-testid="cart-coupons"></ol>`);
17950
18136
  function CartCoupons($$anchor, $$props) {
17951
18137
  push($$props, true);
17952
18138
  const _details = getCartDetails($$props.$$host);
@@ -17954,9 +18140,9 @@ function CartCoupons($$anchor, $$props) {
17954
18140
  var fragment = comment();
17955
18141
  var node = first_child(fragment);
17956
18142
  var consequent_1 = ($$anchor) => {
17957
- var ol = root_2$8();
18143
+ var ol = root_2$9();
17958
18144
  each(ol, 21, () => get$2(details).displayCart.coupons, (coupon) => coupon.code, ($$anchor, coupon) => {
17959
- var li = root_1$12();
18145
+ var li = root_1$13();
17960
18146
  let classes;
17961
18147
  var article = child(li);
17962
18148
  var ul = child(article);
@@ -17965,7 +18151,7 @@ function CartCoupons($$anchor, $$props) {
17965
18151
  reset(li_1);
17966
18152
  var node_1 = sibling(li_1, 2);
17967
18153
  var consequent = ($$anchor) => {
17968
- var li_2 = root$44();
18154
+ var li_2 = root$45();
17969
18155
  var button = child(li_2);
17970
18156
  reset(li_2);
17971
18157
  template_effect(($0) => set_attribute(button, "aria-label", $0), [() => shop.t("cart.coupons.remove")]);
@@ -17997,7 +18183,7 @@ delegate(["click"]);
17997
18183
  customElements.define("go-cart-coupons", create_custom_element(CartCoupons, {}, [], []));
17998
18184
  //#endregion
17999
18185
  //#region src/components/cart/components/CartTotalAmount.svelte
18000
- var root$43 = /* @__PURE__ */ from_html(`<span class="go-cart-total-amount" data-testid="cart-total-amount"> </span>`);
18186
+ var root$44 = /* @__PURE__ */ from_html(`<span class="go-cart-total-amount" data-testid="cart-total-amount"> </span>`);
18001
18187
  function CartTotalAmount($$anchor, $$props) {
18002
18188
  push($$props, true);
18003
18189
  const _details = getCartDetails($$props.$$host);
@@ -18005,7 +18191,7 @@ function CartTotalAmount($$anchor, $$props) {
18005
18191
  var fragment = comment();
18006
18192
  var node = first_child(fragment);
18007
18193
  var consequent = ($$anchor) => {
18008
- var span = root$43();
18194
+ var span = root$44();
18009
18195
  var text = child(span, true);
18010
18196
  reset(span);
18011
18197
  template_effect(($0) => set_text(text, $0), [() => formatCurrency(get$2(details).totalPriceCents)]);
@@ -18074,7 +18260,7 @@ customElements.define("go-cart", create_custom_element(Cart, { preview: {
18074
18260
  } }, [], []));
18075
18261
  //#endregion
18076
18262
  //#region src/components/cart/components/CartSubtotalAmount.svelte
18077
- var root$42 = /* @__PURE__ */ from_html(`<span class="go-cart-subtotal-amount" data-testid="cart-subtotal-amount"> </span>`);
18263
+ var root$43 = /* @__PURE__ */ from_html(`<span class="go-cart-subtotal-amount" data-testid="cart-subtotal-amount"> </span>`);
18078
18264
  function CartSubtotalAmount($$anchor, $$props) {
18079
18265
  push($$props, true);
18080
18266
  const _details = getCartDetails($$props.$$host);
@@ -18082,7 +18268,7 @@ function CartSubtotalAmount($$anchor, $$props) {
18082
18268
  var fragment = comment();
18083
18269
  var node = first_child(fragment);
18084
18270
  var consequent = ($$anchor) => {
18085
- var span = root$42();
18271
+ var span = root$43();
18086
18272
  var text = child(span, true);
18087
18273
  reset(span);
18088
18274
  template_effect(($0) => set_text(text, $0), [() => formatCurrency(get$2(details).subtotalPriceCents)]);
@@ -18097,7 +18283,7 @@ function CartSubtotalAmount($$anchor, $$props) {
18097
18283
  customElements.define("go-cart-subtotal-amount", create_custom_element(CartSubtotalAmount, {}, [], []));
18098
18284
  //#endregion
18099
18285
  //#region src/components/cart/components/CartDiscountedAmount.svelte
18100
- var root$41 = /* @__PURE__ */ from_html(`<span class="go-cart-discounted-amount" data-testid="cart-discounted-amount"><span class="go-cart-discounted-amount-sign">−</span> </span>`);
18286
+ var root$42 = /* @__PURE__ */ from_html(`<span class="go-cart-discounted-amount" data-testid="cart-discounted-amount"><span class="go-cart-discounted-amount-sign">−</span> </span>`);
18101
18287
  function CartDiscountedAmount($$anchor, $$props) {
18102
18288
  push($$props, true);
18103
18289
  const _details = getCartDetails($$props.$$host);
@@ -18105,7 +18291,7 @@ function CartDiscountedAmount($$anchor, $$props) {
18105
18291
  var fragment = comment();
18106
18292
  var node = first_child(fragment);
18107
18293
  var consequent = ($$anchor) => {
18108
- var span = root$41();
18294
+ var span = root$42();
18109
18295
  var text = sibling(child(span), 1, true);
18110
18296
  reset(span);
18111
18297
  template_effect(($0) => set_text(text, $0), [() => formatCurrency(get$2(details).discountedAmountCents)]);
@@ -18258,7 +18444,7 @@ function fail(errors) {
18258
18444
  }
18259
18445
  //#endregion
18260
18446
  //#region src/components/couponRedemption/CouponRedemption.svelte
18261
- var root$40 = /* @__PURE__ */ from_html(`<go-form></go-form>`, 2);
18447
+ var root$41 = /* @__PURE__ */ from_html(`<go-form></go-form>`, 2);
18262
18448
  function CouponRedemption($$anchor, $$props) {
18263
18449
  push($$props, true);
18264
18450
  Forms.defineForm({
@@ -18294,7 +18480,7 @@ function CouponRedemption($$anchor, $$props) {
18294
18480
  return runRedeem(form);
18295
18481
  }
18296
18482
  var $$exports = { flush };
18297
- var go_form = root$40();
18483
+ var go_form = root$41();
18298
18484
  set_custom_element_data(go_form, "formId", "couponRedemption");
18299
18485
  event("submit", go_form, redeem$1);
18300
18486
  append($$anchor, go_form);
@@ -18350,8 +18536,8 @@ var GoDonation = class {
18350
18536
  var goDonation = new GoDonation();
18351
18537
  //#endregion
18352
18538
  //#region src/components/donations/components/DonationCampaign.svelte
18353
- var root$39 = /* @__PURE__ */ from_html(`<img alt="logo"/>`);
18354
- var root_1$11 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="donation-image"><!></div> <div class="donation-info"><p class="donation-info-title"> </p> <p class="donation-info-description"> </p></div></div>`);
18539
+ var root$40 = /* @__PURE__ */ from_html(`<img alt="logo"/>`);
18540
+ var root_1$12 = /* @__PURE__ */ from_html(`<div role="button" tabindex="0"><div class="donation-image"><!></div> <div class="donation-info"><p class="donation-info-title"> </p> <p class="donation-info-description"> </p></div></div>`);
18355
18541
  function DonationCampaign($$anchor, $$props) {
18356
18542
  push($$props, true);
18357
18543
  let campaign = prop($$props, "campaign", 7);
@@ -18365,12 +18551,12 @@ function DonationCampaign($$anchor, $$props) {
18365
18551
  flushSync();
18366
18552
  }
18367
18553
  };
18368
- var div = root_1$11();
18554
+ var div = root_1$12();
18369
18555
  let classes;
18370
18556
  var div_1 = child(div);
18371
18557
  var node = child(div_1);
18372
18558
  var consequent = ($$anchor) => {
18373
- var img = root$39();
18559
+ var img = root$40();
18374
18560
  template_effect(($0) => set_attribute(img, "src", $0), [() => campaign().picture.thumbnail.replace("thumbnail", "article_3x2")]);
18375
18561
  append($$anchor, img);
18376
18562
  };
@@ -18441,9 +18627,9 @@ function parseIds(ids) {
18441
18627
  }
18442
18628
  //#endregion
18443
18629
  //#region src/components/donations/components/DonationSelector.svelte
18444
- var root$38 = /* @__PURE__ */ from_html(`<button> </button>`);
18445
- var root_1$10 = /* @__PURE__ */ from_html(`<form id="donationForm" action="" novalidate=""><div class="donation-custom form-group"><label for="donation-custom-amount"> </label> <input class="form-control" id="donation-custom-amount" type="number" min="1"/></div></form>`);
18446
- var root_2$7 = /* @__PURE__ */ from_html(`<div class="donation-selection"><h3> </h3> <div class="donation-options"></div> <!></div>`);
18630
+ var root$39 = /* @__PURE__ */ from_html(`<button> </button>`);
18631
+ var root_1$11 = /* @__PURE__ */ from_html(`<form id="donationForm" action="" novalidate=""><div class="donation-custom form-group"><label for="donation-custom-amount"> </label> <input class="form-control" id="donation-custom-amount" type="number" min="1"/></div></form>`);
18632
+ var root_2$8 = /* @__PURE__ */ from_html(`<div class="donation-selection"><h3> </h3> <div class="donation-options"></div> <!></div>`);
18447
18633
  function DonationSelector($$anchor, $$props) {
18448
18634
  push($$props, true);
18449
18635
  const guestMaxLimit = goDonation.campaign?.guest_limit / 100;
@@ -18460,13 +18646,13 @@ function DonationSelector($$anchor, $$props) {
18460
18646
  form.reportValidity();
18461
18647
  }
18462
18648
  }
18463
- var div = root_2$7();
18649
+ var div = root_2$8();
18464
18650
  var h3 = child(div);
18465
18651
  var text = child(h3, true);
18466
18652
  reset(h3);
18467
18653
  var div_1 = sibling(h3, 2);
18468
18654
  each(div_1, 20, () => goDonation.campaign?.options, (option) => option, ($$anchor, option) => {
18469
- var button = root$38();
18655
+ var button = root$39();
18470
18656
  let classes;
18471
18657
  var text_1 = child(button, true);
18472
18658
  reset(button);
@@ -18480,7 +18666,7 @@ function DonationSelector($$anchor, $$props) {
18480
18666
  reset(div_1);
18481
18667
  var node = sibling(div_1, 2);
18482
18668
  var consequent = ($$anchor) => {
18483
- var form_1 = root_1$10();
18669
+ var form_1 = root_1$11();
18484
18670
  var div_2 = child(form_1);
18485
18671
  var label = child(div_2);
18486
18672
  var text_2 = child(label, true);
@@ -18510,7 +18696,7 @@ delegate(["click", "input"]);
18510
18696
  create_custom_element(DonationSelector, {}, [], [], { mode: "open" });
18511
18697
  //#endregion
18512
18698
  //#region src/components/donations/components/Donations.svelte
18513
- var root$37 = /* @__PURE__ */ from_html(`<div class="go-donations-list"><!> <!> <div class="donation-actions"><button class="btn btn-default"> </button> <button class="btn btn-primary"> </button></div></div>`);
18699
+ var root$38 = /* @__PURE__ */ from_html(`<div class="go-donations-list"><!> <!> <div class="donation-actions"><button class="btn btn-default"> </button> <button class="btn btn-primary"> </button></div></div>`);
18514
18700
  function Donations($$anchor, $$props) {
18515
18701
  push($$props, false);
18516
18702
  onMount(() => {
@@ -18520,7 +18706,7 @@ function Donations($$anchor, $$props) {
18520
18706
  var fragment = comment();
18521
18707
  var node = first_child(fragment);
18522
18708
  var consequent_1 = ($$anchor) => {
18523
- var div = root$37();
18709
+ var div = root$38();
18524
18710
  var node_1 = child(div);
18525
18711
  each(node_1, 1, () => shop?.donations?.campaigns, (campaign) => campaign.id, ($$anchor, campaign) => {
18526
18712
  DonationCampaign($$anchor, { get campaign() {
@@ -24359,7 +24545,7 @@ var rest_excludes$25 = new Set([
24359
24545
  "monthFormat",
24360
24546
  "yearFormat"
24361
24547
  ]);
24362
- var root$36 = /* @__PURE__ */ from_html(`<div><!></div>`);
24548
+ var root$37 = /* @__PURE__ */ from_html(`<div><!></div>`);
24363
24549
  function Calendar$1($$anchor, $$props) {
24364
24550
  push($$props, true);
24365
24551
  let child$18 = prop($$props, "child", 7), children = prop($$props, "children", 7), id = prop($$props, "id", 23, useId), ref = prop($$props, "ref", 15, null), value = prop($$props, "value", 15), onValueChange = prop($$props, "onValueChange", 7, noop), placeholder = prop($$props, "placeholder", 15), onPlaceholderChange = prop($$props, "onPlaceholderChange", 7, noop), weekdayFormat = prop($$props, "weekdayFormat", 7, "narrow"), weekStartsOn = prop($$props, "weekStartsOn", 7), pagedNavigation = prop($$props, "pagedNavigation", 7, false), isDateDisabled = prop($$props, "isDateDisabled", 7, () => false), isDateUnavailable = prop($$props, "isDateUnavailable", 7, () => false), fixedWeeks = prop($$props, "fixedWeeks", 7, false), numberOfMonths = prop($$props, "numberOfMonths", 7, 1), locale = prop($$props, "locale", 7), calendarLabel = prop($$props, "calendarLabel", 7, "Event"), disabled = prop($$props, "disabled", 7, false), readonly = prop($$props, "readonly", 7, false), minValue = prop($$props, "minValue", 7, void 0), maxValue = prop($$props, "maxValue", 7, void 0), preventDeselect = prop($$props, "preventDeselect", 7, false), type = prop($$props, "type", 7), disableDaysOutsideMonth = prop($$props, "disableDaysOutsideMonth", 7, true), initialFocus = prop($$props, "initialFocus", 7, false), maxDays = prop($$props, "maxDays", 7), monthFormat = prop($$props, "monthFormat", 7, "long"), yearFormat = prop($$props, "yearFormat", 7, "numeric"), restProps = /* @__PURE__ */ rest_props($$props, rest_excludes$25);
@@ -24631,7 +24817,7 @@ function Calendar$1($$anchor, $$props) {
24631
24817
  append($$anchor, fragment_1);
24632
24818
  };
24633
24819
  var alternate = ($$anchor) => {
24634
- var div = root$36();
24820
+ var div = root$37();
24635
24821
  attribute_effect(div, () => ({ ...get$2(mergedProps) }));
24636
24822
  snippet(child(div), () => children() ?? noop$1, () => rootState.snippetProps);
24637
24823
  reset(div);
@@ -24686,7 +24872,7 @@ var rest_excludes$24 = new Set([
24686
24872
  "ref",
24687
24873
  "id"
24688
24874
  ]);
24689
- var root$35 = /* @__PURE__ */ from_html(`<div><!></div>`);
24875
+ var root$36 = /* @__PURE__ */ from_html(`<div><!></div>`);
24690
24876
  function Calendar_day($$anchor, $$props) {
24691
24877
  const uid = props_id();
24692
24878
  push($$props, true);
@@ -24741,7 +24927,7 @@ function Calendar_day($$anchor, $$props) {
24741
24927
  append($$anchor, fragment_1);
24742
24928
  };
24743
24929
  var alternate_1 = ($$anchor) => {
24744
- var div = root$35();
24930
+ var div = root$36();
24745
24931
  attribute_effect(div, () => ({ ...get$2(mergedProps) }));
24746
24932
  var node_2 = child(div);
24747
24933
  var consequent_1 = ($$anchor) => {
@@ -24786,7 +24972,7 @@ var rest_excludes$23 = new Set([
24786
24972
  "ref",
24787
24973
  "id"
24788
24974
  ]);
24789
- var root$34 = /* @__PURE__ */ from_html(`<table><!></table>`);
24975
+ var root$35 = /* @__PURE__ */ from_html(`<table><!></table>`);
24790
24976
  function Calendar_grid($$anchor, $$props) {
24791
24977
  const uid = props_id();
24792
24978
  push($$props, true);
@@ -24834,7 +25020,7 @@ function Calendar_grid($$anchor, $$props) {
24834
25020
  append($$anchor, fragment_1);
24835
25021
  };
24836
25022
  var alternate = ($$anchor) => {
24837
- var table = root$34();
25023
+ var table = root$35();
24838
25024
  attribute_effect(table, () => ({ ...get$2(mergedProps) }));
24839
25025
  snippet(child(table), () => children() ?? noop$1);
24840
25026
  reset(table);
@@ -24865,7 +25051,7 @@ var rest_excludes$22 = new Set([
24865
25051
  "ref",
24866
25052
  "id"
24867
25053
  ]);
24868
- var root$33 = /* @__PURE__ */ from_html(`<tbody><!></tbody>`);
25054
+ var root$34 = /* @__PURE__ */ from_html(`<tbody><!></tbody>`);
24869
25055
  function Calendar_grid_body($$anchor, $$props) {
24870
25056
  const uid = props_id();
24871
25057
  push($$props, true);
@@ -24913,7 +25099,7 @@ function Calendar_grid_body($$anchor, $$props) {
24913
25099
  append($$anchor, fragment_1);
24914
25100
  };
24915
25101
  var alternate = ($$anchor) => {
24916
- var tbody = root$33();
25102
+ var tbody = root$34();
24917
25103
  attribute_effect(tbody, () => ({ ...get$2(mergedProps) }));
24918
25104
  snippet(child(tbody), () => children() ?? noop$1);
24919
25105
  reset(tbody);
@@ -24946,7 +25132,7 @@ var rest_excludes$21 = new Set([
24946
25132
  "date",
24947
25133
  "month"
24948
25134
  ]);
24949
- var root$32 = /* @__PURE__ */ from_html(`<td><!></td>`);
25135
+ var root$33 = /* @__PURE__ */ from_html(`<td><!></td>`);
24950
25136
  function Calendar_cell($$anchor, $$props) {
24951
25137
  const uid = props_id();
24952
25138
  push($$props, true);
@@ -25017,7 +25203,7 @@ function Calendar_cell($$anchor, $$props) {
25017
25203
  append($$anchor, fragment_1);
25018
25204
  };
25019
25205
  var alternate = ($$anchor) => {
25020
- var td = root$32();
25206
+ var td = root$33();
25021
25207
  attribute_effect(td, () => ({ ...get$2(mergedProps) }));
25022
25208
  snippet(child(td), () => children() ?? noop$1, () => cellState.snippetProps);
25023
25209
  reset(td);
@@ -25050,7 +25236,7 @@ var rest_excludes$20 = new Set([
25050
25236
  "ref",
25051
25237
  "id"
25052
25238
  ]);
25053
- var root$31 = /* @__PURE__ */ from_html(`<thead><!></thead>`);
25239
+ var root$32 = /* @__PURE__ */ from_html(`<thead><!></thead>`);
25054
25240
  function Calendar_grid_head($$anchor, $$props) {
25055
25241
  const uid = props_id();
25056
25242
  push($$props, true);
@@ -25098,7 +25284,7 @@ function Calendar_grid_head($$anchor, $$props) {
25098
25284
  append($$anchor, fragment_1);
25099
25285
  };
25100
25286
  var alternate = ($$anchor) => {
25101
- var thead = root$31();
25287
+ var thead = root$32();
25102
25288
  attribute_effect(thead, () => ({ ...get$2(mergedProps) }));
25103
25289
  snippet(child(thead), () => children() ?? noop$1);
25104
25290
  reset(thead);
@@ -25129,7 +25315,7 @@ var rest_excludes$19 = new Set([
25129
25315
  "ref",
25130
25316
  "id"
25131
25317
  ]);
25132
- var root$30 = /* @__PURE__ */ from_html(`<th><!></th>`);
25318
+ var root$31 = /* @__PURE__ */ from_html(`<th><!></th>`);
25133
25319
  function Calendar_head_cell($$anchor, $$props) {
25134
25320
  const uid = props_id();
25135
25321
  push($$props, true);
@@ -25177,7 +25363,7 @@ function Calendar_head_cell($$anchor, $$props) {
25177
25363
  append($$anchor, fragment_1);
25178
25364
  };
25179
25365
  var alternate = ($$anchor) => {
25180
- var th = root$30();
25366
+ var th = root$31();
25181
25367
  attribute_effect(th, () => ({ ...get$2(mergedProps) }));
25182
25368
  snippet(child(th), () => children() ?? noop$1);
25183
25369
  reset(th);
@@ -25208,7 +25394,7 @@ var rest_excludes$18 = new Set([
25208
25394
  "ref",
25209
25395
  "id"
25210
25396
  ]);
25211
- var root$29 = /* @__PURE__ */ from_html(`<tr><!></tr>`);
25397
+ var root$30 = /* @__PURE__ */ from_html(`<tr><!></tr>`);
25212
25398
  function Calendar_grid_row($$anchor, $$props) {
25213
25399
  const uid = props_id();
25214
25400
  push($$props, true);
@@ -25256,7 +25442,7 @@ function Calendar_grid_row($$anchor, $$props) {
25256
25442
  append($$anchor, fragment_1);
25257
25443
  };
25258
25444
  var alternate = ($$anchor) => {
25259
- var tr = root$29();
25445
+ var tr = root$30();
25260
25446
  attribute_effect(tr, () => ({ ...get$2(mergedProps) }));
25261
25447
  snippet(child(tr), () => children() ?? noop$1);
25262
25448
  reset(tr);
@@ -25287,7 +25473,7 @@ var rest_excludes$17 = new Set([
25287
25473
  "ref",
25288
25474
  "id"
25289
25475
  ]);
25290
- var root$28 = /* @__PURE__ */ from_html(`<header><!></header>`);
25476
+ var root$29 = /* @__PURE__ */ from_html(`<header><!></header>`);
25291
25477
  function Calendar_header($$anchor, $$props) {
25292
25478
  const uid = props_id();
25293
25479
  push($$props, true);
@@ -25335,7 +25521,7 @@ function Calendar_header($$anchor, $$props) {
25335
25521
  append($$anchor, fragment_1);
25336
25522
  };
25337
25523
  var alternate = ($$anchor) => {
25338
- var header = root$28();
25524
+ var header = root$29();
25339
25525
  attribute_effect(header, () => ({ ...get$2(mergedProps) }));
25340
25526
  snippet(child(header), () => children() ?? noop$1);
25341
25527
  reset(header);
@@ -25366,7 +25552,7 @@ var rest_excludes$16 = new Set([
25366
25552
  "ref",
25367
25553
  "id"
25368
25554
  ]);
25369
- var root$27 = /* @__PURE__ */ from_html(`<div><!></div>`);
25555
+ var root$28 = /* @__PURE__ */ from_html(`<div><!></div>`);
25370
25556
  function Calendar_heading($$anchor, $$props) {
25371
25557
  const uid = props_id();
25372
25558
  push($$props, true);
@@ -25417,7 +25603,7 @@ function Calendar_heading($$anchor, $$props) {
25417
25603
  append($$anchor, fragment_1);
25418
25604
  };
25419
25605
  var alternate_1 = ($$anchor) => {
25420
- var div = root$27();
25606
+ var div = root$28();
25421
25607
  attribute_effect(div, () => ({ ...get$2(mergedProps) }));
25422
25608
  var node_2 = child(div);
25423
25609
  var consequent_1 = ($$anchor) => {
@@ -25463,7 +25649,7 @@ var rest_excludes$15 = new Set([
25463
25649
  "ref",
25464
25650
  "tabindex"
25465
25651
  ]);
25466
- var root$26 = /* @__PURE__ */ from_html(`<button><!></button>`);
25652
+ var root$27 = /* @__PURE__ */ from_html(`<button><!></button>`);
25467
25653
  function Calendar_next_button($$anchor, $$props) {
25468
25654
  const uid = props_id();
25469
25655
  push($$props, true);
@@ -25518,7 +25704,7 @@ function Calendar_next_button($$anchor, $$props) {
25518
25704
  append($$anchor, fragment_1);
25519
25705
  };
25520
25706
  var alternate = ($$anchor) => {
25521
- var button = root$26();
25707
+ var button = root$27();
25522
25708
  attribute_effect(button, () => ({ ...get$2(mergedProps) }));
25523
25709
  snippet(child(button), () => children() ?? noop$1);
25524
25710
  reset(button);
@@ -25551,7 +25737,7 @@ var rest_excludes$14 = new Set([
25551
25737
  "ref",
25552
25738
  "tabindex"
25553
25739
  ]);
25554
- var root$25 = /* @__PURE__ */ from_html(`<button><!></button>`);
25740
+ var root$26 = /* @__PURE__ */ from_html(`<button><!></button>`);
25555
25741
  function Calendar_prev_button($$anchor, $$props) {
25556
25742
  const uid = props_id();
25557
25743
  push($$props, true);
@@ -25606,7 +25792,7 @@ function Calendar_prev_button($$anchor, $$props) {
25606
25792
  append($$anchor, fragment_1);
25607
25793
  };
25608
25794
  var alternate = ($$anchor) => {
25609
- var button = root$25();
25795
+ var button = root$26();
25610
25796
  attribute_effect(button, () => ({ ...get$2(mergedProps) }));
25611
25797
  snippet(child(button), () => children() ?? noop$1);
25612
25798
  reset(button);
@@ -25635,7 +25821,7 @@ var rest_excludes$13 = new Set([
25635
25821
  "$$host",
25636
25822
  "value"
25637
25823
  ]);
25638
- var root$24 = /* @__PURE__ */ from_html(`<input/>`);
25824
+ var root$25 = /* @__PURE__ */ from_html(`<input/>`);
25639
25825
  function Hidden_input($$anchor, $$props) {
25640
25826
  push($$props, true);
25641
25827
  let value = prop($$props, "value", 15), restProps = /* @__PURE__ */ rest_props($$props, rest_excludes$13);
@@ -25661,7 +25847,7 @@ function Hidden_input($$anchor, $$props) {
25661
25847
  var fragment = comment();
25662
25848
  var node = first_child(fragment);
25663
25849
  var consequent = ($$anchor) => {
25664
- var input = root$24();
25850
+ var input = root$25();
25665
25851
  attribute_effect(input, () => ({
25666
25852
  ...get$2(mergedProps),
25667
25853
  value: value()
@@ -25669,7 +25855,7 @@ function Hidden_input($$anchor, $$props) {
25669
25855
  append($$anchor, input);
25670
25856
  };
25671
25857
  var alternate = ($$anchor) => {
25672
- var input_1 = root$24();
25858
+ var input_1 = root$25();
25673
25859
  attribute_effect(input_1, () => ({ ...get$2(mergedProps) }), void 0, void 0, void 0, void 0, true);
25674
25860
  bind_value(input_1, value);
25675
25861
  append($$anchor, input_1);
@@ -27982,7 +28168,7 @@ var rest_excludes$11 = new Set([
27982
28168
  "tooltip",
27983
28169
  "contentPointerEvents"
27984
28170
  ]);
27985
- var root$23 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
28171
+ var root$24 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
27986
28172
  function Popper_layer_inner($$anchor, $$props) {
27987
28173
  push($$props, true);
27988
28174
  let popper = prop($$props, "popper", 7), onEscapeKeydown = prop($$props, "onEscapeKeydown", 7), escapeKeydownBehavior = prop($$props, "escapeKeydownBehavior", 7), preventOverflowTextSelection = prop($$props, "preventOverflowTextSelection", 7), id = prop($$props, "id", 7), onPointerDown = prop($$props, "onPointerDown", 7), onPointerUp = prop($$props, "onPointerUp", 7), side = prop($$props, "side", 7), sideOffset = prop($$props, "sideOffset", 7), align = prop($$props, "align", 7), alignOffset = prop($$props, "alignOffset", 7), arrowPadding = prop($$props, "arrowPadding", 7), avoidCollisions = prop($$props, "avoidCollisions", 7), collisionBoundary = prop($$props, "collisionBoundary", 7), collisionPadding = prop($$props, "collisionPadding", 7), sticky = prop($$props, "sticky", 7), hideWhenDetached = prop($$props, "hideWhenDetached", 7), updatePositionStrategy = prop($$props, "updatePositionStrategy", 7), strategy = prop($$props, "strategy", 7), dir = prop($$props, "dir", 7), preventScroll = prop($$props, "preventScroll", 7), wrapperId = prop($$props, "wrapperId", 7), style = prop($$props, "style", 7), onPlaced = prop($$props, "onPlaced", 7), onInteractOutside = prop($$props, "onInteractOutside", 7), onCloseAutoFocus = prop($$props, "onCloseAutoFocus", 7), onOpenAutoFocus = prop($$props, "onOpenAutoFocus", 7), onFocusOutside = prop($$props, "onFocusOutside", 7), interactOutsideBehavior = prop($$props, "interactOutsideBehavior", 7, "close"), loop = prop($$props, "loop", 7), trapFocus = prop($$props, "trapFocus", 7, true), isValidEvent = prop($$props, "isValidEvent", 7, () => false), customAnchor = prop($$props, "customAnchor", 7, null), isStatic = prop($$props, "isStatic", 7, false), enabled = prop($$props, "enabled", 7), ref = prop($$props, "ref", 7), tooltip = prop($$props, "tooltip", 7, false), contentPointerEvents = prop($$props, "contentPointerEvents", 7, "auto"), restProps = /* @__PURE__ */ rest_props($$props, rest_excludes$11);
@@ -28260,7 +28446,7 @@ function Popper_layer_inner($$anchor, $$props) {
28260
28446
  const content = ($$anchor, $$arg0) => {
28261
28447
  let floatingProps = () => $$arg0?.().props;
28262
28448
  let wrapperProps = () => $$arg0?.().wrapperProps;
28263
- var fragment_1 = root$23();
28449
+ var fragment_1 = root$24();
28264
28450
  var node = first_child(fragment_1);
28265
28451
  var consequent = ($$anchor) => {
28266
28452
  Scroll_lock($$anchor, { get preventScroll() {
@@ -30624,8 +30810,8 @@ var rest_excludes$8 = new Set([
30624
30810
  "children",
30625
30811
  "child"
30626
30812
  ]);
30627
- var root$22 = /* @__PURE__ */ from_html(`<div><!></div>`);
30628
- var root_1$9 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
30813
+ var root$23 = /* @__PURE__ */ from_html(`<div><!></div>`);
30814
+ var root_1$10 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
30629
30815
  function Date_field_input($$anchor, $$props) {
30630
30816
  const uid = props_id();
30631
30817
  push($$props, true);
@@ -30673,7 +30859,7 @@ function Date_field_input($$anchor, $$props) {
30673
30859
  flushSync();
30674
30860
  }
30675
30861
  };
30676
- var fragment = root_1$9();
30862
+ var fragment = root_1$10();
30677
30863
  var node = first_child(fragment);
30678
30864
  var consequent = ($$anchor) => {
30679
30865
  var fragment_1 = comment();
@@ -30684,7 +30870,7 @@ function Date_field_input($$anchor, $$props) {
30684
30870
  append($$anchor, fragment_1);
30685
30871
  };
30686
30872
  var alternate = ($$anchor) => {
30687
- var div = root$22();
30873
+ var div = root$23();
30688
30874
  attribute_effect(div, () => ({ ...get$2(mergedProps) }));
30689
30875
  snippet(child(div), () => children() ?? noop$1, () => ({ segments: inputState.root.segmentContents }));
30690
30876
  reset(div);
@@ -30717,7 +30903,7 @@ var rest_excludes$7 = new Set([
30717
30903
  "children",
30718
30904
  "child"
30719
30905
  ]);
30720
- var root$21 = /* @__PURE__ */ from_html(`<div><!></div>`);
30906
+ var root$22 = /* @__PURE__ */ from_html(`<div><!></div>`);
30721
30907
  function Date_field_label($$anchor, $$props) {
30722
30908
  const uid = props_id();
30723
30909
  push($$props, true);
@@ -30765,7 +30951,7 @@ function Date_field_label($$anchor, $$props) {
30765
30951
  append($$anchor, fragment_1);
30766
30952
  };
30767
30953
  var alternate = ($$anchor) => {
30768
- var div = root$21();
30954
+ var div = root$22();
30769
30955
  attribute_effect(div, () => ({ ...get$2(mergedProps) }));
30770
30956
  snippet(child(div), () => children() ?? noop$1);
30771
30957
  reset(div);
@@ -30797,7 +30983,7 @@ var rest_excludes$6 = new Set([
30797
30983
  "child",
30798
30984
  "part"
30799
30985
  ]);
30800
- var root$20 = /* @__PURE__ */ from_html(`<span><!></span>`);
30986
+ var root$21 = /* @__PURE__ */ from_html(`<span><!></span>`);
30801
30987
  function Date_field_segment($$anchor, $$props) {
30802
30988
  const uid = props_id();
30803
30989
  push($$props, true);
@@ -30852,7 +31038,7 @@ function Date_field_segment($$anchor, $$props) {
30852
31038
  append($$anchor, fragment_1);
30853
31039
  };
30854
31040
  var alternate = ($$anchor) => {
30855
- var span = root$20();
31041
+ var span = root$21();
30856
31042
  attribute_effect(span, () => ({ ...get$2(mergedProps) }));
30857
31043
  snippet(child(span), () => children() ?? noop$1);
30858
31044
  reset(span);
@@ -31874,7 +32060,7 @@ var rest_excludes$5 = new Set([
31874
32060
  "id",
31875
32061
  "ref"
31876
32062
  ]);
31877
- var root$19 = /* @__PURE__ */ from_html(`<div><!></div>`);
32063
+ var root$20 = /* @__PURE__ */ from_html(`<div><!></div>`);
31878
32064
  function Date_picker_calendar($$anchor, $$props) {
31879
32065
  const uid = props_id();
31880
32066
  push($$props, true);
@@ -31954,7 +32140,7 @@ function Date_picker_calendar($$anchor, $$props) {
31954
32140
  append($$anchor, fragment_1);
31955
32141
  };
31956
32142
  var alternate = ($$anchor) => {
31957
- var div = root$19();
32143
+ var div = root$20();
31958
32144
  attribute_effect(div, () => ({ ...get$2(mergedProps) }));
31959
32145
  snippet(child(div), () => children() ?? noop$1, () => calendarState.snippetProps);
31960
32146
  reset(div);
@@ -31994,7 +32180,7 @@ var rest_excludes$4 = new Set([
31994
32180
  "customAnchor",
31995
32181
  "style"
31996
32182
  ]);
31997
- var root$18 = /* @__PURE__ */ from_html(`<div><div><!></div></div>`);
32183
+ var root$19 = /* @__PURE__ */ from_html(`<div><div><!></div></div>`);
31998
32184
  function Popover_content($$anchor, $$props) {
31999
32185
  const uid = props_id();
32000
32186
  push($$props, true);
@@ -32129,7 +32315,7 @@ function Popover_content($$anchor, $$props) {
32129
32315
  append($$anchor, fragment_3);
32130
32316
  };
32131
32317
  var alternate = ($$anchor) => {
32132
- var div = root$18();
32318
+ var div = root$19();
32133
32319
  attribute_effect(div, () => ({ ...wrapperProps() }));
32134
32320
  var div_1 = child(div);
32135
32321
  attribute_effect(div_1, () => ({ ...get$2(finalProps) }));
@@ -32199,7 +32385,7 @@ function Popover_content($$anchor, $$props) {
32199
32385
  append($$anchor, fragment_6);
32200
32386
  };
32201
32387
  var alternate_1 = ($$anchor) => {
32202
- var div_2 = root$18();
32388
+ var div_2 = root$19();
32203
32389
  attribute_effect(div_2, () => ({ ...wrapperProps() }));
32204
32390
  var div_3 = child(div_2);
32205
32391
  attribute_effect(div_3, () => ({ ...get$2(finalProps) }));
@@ -32330,7 +32516,7 @@ var rest_excludes$2 = new Set([
32330
32516
  "openDelay",
32331
32517
  "closeDelay"
32332
32518
  ]);
32333
- var root$17 = /* @__PURE__ */ from_html(`<button><!></button>`);
32519
+ var root$18 = /* @__PURE__ */ from_html(`<button><!></button>`);
32334
32520
  function Popover_trigger($$anchor, $$props) {
32335
32521
  const uid = props_id();
32336
32522
  push($$props, true);
@@ -32425,7 +32611,7 @@ function Popover_trigger($$anchor, $$props) {
32425
32611
  append($$anchor, fragment_2);
32426
32612
  };
32427
32613
  var alternate = ($$anchor) => {
32428
- var button = root$17();
32614
+ var button = root$18();
32429
32615
  attribute_effect(button, () => ({ ...get$2(mergedProps) }));
32430
32616
  snippet(child(button), () => children() ?? noop$1);
32431
32617
  reset(button);
@@ -32505,8 +32691,8 @@ create_custom_element(Date_picker_trigger, {
32505
32691
  }, [], [], { mode: "open" });
32506
32692
  //#endregion
32507
32693
  //#region src/components/forms/ui/generic/DatePicker.svelte
32508
- var root$16 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
32509
- var root_1$8 = /* @__PURE__ */ from_html(`<!> <!> <!>`, 1);
32694
+ var root$17 = /* @__PURE__ */ from_html(`<!> <!>`, 1);
32695
+ var root_1$9 = /* @__PURE__ */ from_html(`<!> <!> <!>`, 1);
32510
32696
  function DatePicker_1($$anchor, $$props) {
32511
32697
  push($$props, true);
32512
32698
  let dateString = prop($$props, "dateString", 15), labelClass = prop($$props, "labelClass", 7), inputClass = prop($$props, "inputClass", 7), labelText = prop($$props, "labelText", 7);
@@ -32563,7 +32749,7 @@ function DatePicker_1($$anchor, $$props) {
32563
32749
  set(date, $$value, true);
32564
32750
  },
32565
32751
  children: ($$anchor, $$slotProps) => {
32566
- var fragment_1 = root_1$8();
32752
+ var fragment_1 = root_1$9();
32567
32753
  var node_1 = first_child(fragment_1);
32568
32754
  component(node_1, () => Date_field_label, ($$anchor, DatePicker_Label) => {
32569
32755
  DatePicker_Label($$anchor, {
@@ -32593,7 +32779,7 @@ function DatePicker_1($$anchor, $$props) {
32593
32779
  {
32594
32780
  const children = ($$anchor, $$arg0) => {
32595
32781
  let segments = () => $$arg0?.().segments;
32596
- var fragment_4 = root$16();
32782
+ var fragment_4 = root$17();
32597
32783
  var node_5 = first_child(fragment_4);
32598
32784
  each(node_5, 17, segments, index$1, ($$anchor, $$item) => {
32599
32785
  let part = () => get$2($$item).part;
@@ -32644,12 +32830,12 @@ function DatePicker_1($$anchor, $$props) {
32644
32830
  const children = ($$anchor, $$arg0) => {
32645
32831
  let months = () => $$arg0?.().months;
32646
32832
  let weekdays = () => $$arg0?.().weekdays;
32647
- var fragment_8 = root$16();
32833
+ var fragment_8 = root$17();
32648
32834
  var node_10 = first_child(fragment_8);
32649
32835
  component(node_10, () => Calendar_header, ($$anchor, DatePicker_Header) => {
32650
32836
  DatePicker_Header($$anchor, {
32651
32837
  children: ($$anchor, $$slotProps) => {
32652
- var fragment_9 = root_1$8();
32838
+ var fragment_9 = root_1$9();
32653
32839
  var node_11 = first_child(fragment_9);
32654
32840
  component(node_11, () => Calendar_prev_button, ($$anchor, DatePicker_PrevButton) => {
32655
32841
  DatePicker_PrevButton($$anchor, { class: "go-datepicker-previous" });
@@ -32671,7 +32857,7 @@ function DatePicker_1($$anchor, $$props) {
32671
32857
  component(first_child(fragment_10), () => Calendar_grid, ($$anchor, DatePicker_Grid) => {
32672
32858
  DatePicker_Grid($$anchor, {
32673
32859
  children: ($$anchor, $$slotProps) => {
32674
- var fragment_11 = root$16();
32860
+ var fragment_11 = root$17();
32675
32861
  var node_16 = first_child(fragment_11);
32676
32862
  component(node_16, () => Calendar_grid_head, ($$anchor, DatePicker_GridHead) => {
32677
32863
  DatePicker_GridHead($$anchor, {
@@ -32799,10 +32985,10 @@ var rest_excludes = new Set([
32799
32985
  "inputClass",
32800
32986
  "host"
32801
32987
  ]);
32802
- var root$15 = /* @__PURE__ */ from_html(`<span class="go-field-star" aria-hidden="true">*</span>`);
32803
- var root_1$7 = /* @__PURE__ */ from_html(` <!>`, 1);
32804
- var root_2$6 = /* @__PURE__ */ from_html(`<label><!></label> <input/>`, 1);
32805
- var root_3$6 = /* @__PURE__ */ from_html(`<label><!></label> <textarea></textarea>`, 1);
32988
+ var root$16 = /* @__PURE__ */ from_html(`<span class="go-field-star" aria-hidden="true">*</span>`);
32989
+ var root_1$8 = /* @__PURE__ */ from_html(` <!>`, 1);
32990
+ var root_2$7 = /* @__PURE__ */ from_html(`<label><!></label> <input/>`, 1);
32991
+ var root_3$7 = /* @__PURE__ */ from_html(`<label><!></label> <textarea></textarea>`, 1);
32806
32992
  var root_4$3 = /* @__PURE__ */ from_html(`<figure role="status" aria-live="polite"><img class="go-file-preview"/> <figcaption class="go-file-preview-caption"> </figcaption></figure>`);
32807
32993
  var root_5$1 = /* @__PURE__ */ from_html(`<label><!></label> <input/> <!>`, 1);
32808
32994
  var root_6$1 = /* @__PURE__ */ from_html(`<label><input/> <span class="go-checkbox-label"><!></span></label>`);
@@ -32821,11 +33007,11 @@ function InputAndLabel($$anchor, $$props) {
32821
33007
  push($$props, true);
32822
33008
  const labelText = ($$anchor) => {
32823
33009
  next();
32824
- var fragment = root_1$7();
33010
+ var fragment = root_1$8();
32825
33011
  var text = first_child(fragment);
32826
33012
  var node = sibling(text);
32827
33013
  var consequent = ($$anchor) => {
32828
- append($$anchor, root$15());
33014
+ append($$anchor, root$16());
32829
33015
  };
32830
33016
  if_block(node, ($$render) => {
32831
33017
  if (field().required) $$render(consequent);
@@ -32834,7 +33020,7 @@ function InputAndLabel($$anchor, $$props) {
32834
33020
  append($$anchor, fragment);
32835
33021
  };
32836
33022
  const input = ($$anchor) => {
32837
- var fragment_1 = root_2$6();
33023
+ var fragment_1 = root_2$7();
32838
33024
  var label_1 = first_child(fragment_1);
32839
33025
  labelText(child(label_1));
32840
33026
  reset(label_1);
@@ -32855,7 +33041,7 @@ function InputAndLabel($$anchor, $$props) {
32855
33041
  append($$anchor, fragment_1);
32856
33042
  };
32857
33043
  const textarea = ($$anchor) => {
32858
- var fragment_2 = root_3$6();
33044
+ var fragment_2 = root_3$7();
32859
33045
  var label_2 = first_child(fragment_2);
32860
33046
  labelText(child(label_2));
32861
33047
  reset(label_2);
@@ -33225,10 +33411,10 @@ create_custom_element(InputAndLabel, {
33225
33411
  }, [], [], { mode: "open" });
33226
33412
  //#endregion
33227
33413
  //#region src/components/forms/ui/generic/Field.svelte
33228
- var root$14 = /* @__PURE__ */ from_html(`<span> </span>`);
33229
- var root_1$6 = /* @__PURE__ */ from_html(`<li> </li>`);
33230
- var root_2$5 = /* @__PURE__ */ from_html(`<ul class="go-field-errors"></ul>`);
33231
- var root_3$5 = /* @__PURE__ */ from_html(`<!> <!> <!>`, 1);
33414
+ var root$15 = /* @__PURE__ */ from_html(`<span> </span>`);
33415
+ var root_1$7 = /* @__PURE__ */ from_html(`<li> </li>`);
33416
+ var root_2$6 = /* @__PURE__ */ from_html(`<ul class="go-field-errors"></ul>`);
33417
+ var root_3$6 = /* @__PURE__ */ from_html(`<!> <!> <!>`, 1);
33232
33418
  function Field($$anchor, $$props) {
33233
33419
  push($$props, true);
33234
33420
  let key = prop($$props, "key", 7), required = prop($$props, "required", 7, false), labelClass = prop($$props, "labelClass", 7), inputClass = prop($$props, "inputClass", 7);
@@ -33286,7 +33472,7 @@ function Field($$anchor, $$props) {
33286
33472
  flushSync();
33287
33473
  }
33288
33474
  };
33289
- var fragment = root_3$5();
33475
+ var fragment = root_3$6();
33290
33476
  var node = first_child(fragment);
33291
33477
  InputAndLabel(node, {
33292
33478
  get describedByIds() {
@@ -33308,7 +33494,7 @@ function Field($$anchor, $$props) {
33308
33494
  });
33309
33495
  var node_1 = sibling(node, 2);
33310
33496
  var consequent = ($$anchor) => {
33311
- var span = root$14();
33497
+ var span = root$15();
33312
33498
  var text = child(span, true);
33313
33499
  reset(span);
33314
33500
  template_effect(() => {
@@ -33322,9 +33508,9 @@ function Field($$anchor, $$props) {
33322
33508
  });
33323
33509
  var node_2 = sibling(node_1, 2);
33324
33510
  var consequent_1 = ($$anchor) => {
33325
- var ul = root_2$5();
33511
+ var ul = root_2$6();
33326
33512
  each(ul, 21, () => get$2(allErrors), index$1, ($$anchor, error) => {
33327
- var li = root_1$6();
33513
+ var li = root_1$7();
33328
33514
  var text_1 = child(li, true);
33329
33515
  reset(li);
33330
33516
  template_effect(() => set_text(text_1, get$2(error)));
@@ -33364,7 +33550,7 @@ customElements.define("go-field", create_custom_element(Field, {
33364
33550
  }, [], ["getField"]));
33365
33551
  //#endregion
33366
33552
  //#region src/components/forms/ui/generic/AllFields.svelte
33367
- var root$13 = /* @__PURE__ */ from_html(`<go-field></go-field>`, 2);
33553
+ var root$14 = /* @__PURE__ */ from_html(`<go-field></go-field>`, 2);
33368
33554
  function AllFields($$anchor, $$props) {
33369
33555
  push($$props, true);
33370
33556
  let _details = getDetails$1($$props.$$host);
@@ -33372,7 +33558,7 @@ function AllFields($$anchor, $$props) {
33372
33558
  let allFields = /* @__PURE__ */ user_derived(() => get$2(details) ? Forms.getFormFields(get$2(details)?.formId) : []);
33373
33559
  var fragment = comment();
33374
33560
  each(first_child(fragment), 17, () => get$2(allFields), (field) => field.key, ($$anchor, field) => {
33375
- var go_field = root$13();
33561
+ var go_field = root$14();
33376
33562
  template_effect(() => set_custom_element_data(go_field, "key", get$2(field).key));
33377
33563
  template_effect(() => set_custom_element_data(go_field, "required", get$2(field).required));
33378
33564
  append($$anchor, go_field);
@@ -33383,10 +33569,10 @@ function AllFields($$anchor, $$props) {
33383
33569
  customElements.define("go-all-fields", create_custom_element(AllFields, {}, [], []));
33384
33570
  //#endregion
33385
33571
  //#region src/components/forms/ui/generic/ErrorsFeedback.svelte
33386
- var root$12 = /* @__PURE__ */ from_html(`<p aria-hidden="true"> </p>`);
33387
- var root_1$5 = /* @__PURE__ */ from_html(`<li> </li>`);
33388
- var root_2$4 = /* @__PURE__ */ from_html(`<ul class="go-error-feedback-api-errors"></ul>`);
33389
- var root_3$4 = /* @__PURE__ */ from_html(`<div><p aria-live="assertive" class="sr-only"><!></p> <!> <!></div>`);
33572
+ var root$13 = /* @__PURE__ */ from_html(`<p aria-hidden="true"> </p>`);
33573
+ var root_1$6 = /* @__PURE__ */ from_html(`<li> </li>`);
33574
+ var root_2$5 = /* @__PURE__ */ from_html(`<ul class="go-error-feedback-api-errors"></ul>`);
33575
+ var root_3$5 = /* @__PURE__ */ from_html(`<div><p aria-live="assertive" class="sr-only"><!></p> <!> <!></div>`);
33390
33576
  function ErrorsFeedback($$anchor, $$props) {
33391
33577
  push($$props, true);
33392
33578
  const _details = getDetails$1($$props.$$host);
@@ -33407,7 +33593,7 @@ function ErrorsFeedback($$anchor, $$props) {
33407
33593
  $$props.$$host.classList.toggle("go-feedback", true);
33408
33594
  $$props.$$host.setAttribute("data-num-errors", get$2(numErrors).toString());
33409
33595
  });
33410
- var div = root_3$4();
33596
+ var div = root_3$5();
33411
33597
  var p = child(div);
33412
33598
  var node = child(p);
33413
33599
  var consequent = ($$anchor) => {
@@ -33421,7 +33607,7 @@ function ErrorsFeedback($$anchor, $$props) {
33421
33607
  reset(p);
33422
33608
  var node_1 = sibling(p, 2);
33423
33609
  var consequent_1 = ($$anchor) => {
33424
- var p_1 = root$12();
33610
+ var p_1 = root$13();
33425
33611
  var text_1 = child(p_1, true);
33426
33612
  reset(p_1);
33427
33613
  template_effect(($0) => set_text(text_1, $0), [() => shop.t("forms.errorSummary", { count: get$2(errorsRealtime) })]);
@@ -33432,9 +33618,9 @@ function ErrorsFeedback($$anchor, $$props) {
33432
33618
  });
33433
33619
  var node_2 = sibling(node_1, 2);
33434
33620
  var consequent_2 = ($$anchor) => {
33435
- var ul = root_2$4();
33621
+ var ul = root_2$5();
33436
33622
  each(ul, 21, () => get$2(details)?.apiErrors, index$1, ($$anchor, error) => {
33437
- var li = root_1$5();
33623
+ var li = root_1$6();
33438
33624
  var text_2 = child(li, true);
33439
33625
  reset(li);
33440
33626
  template_effect(() => set_text(text_2, get$2(error)));
@@ -33454,9 +33640,9 @@ function ErrorsFeedback($$anchor, $$props) {
33454
33640
  customElements.define("go-errors-feedback", create_custom_element(ErrorsFeedback, {}, [], []));
33455
33641
  //#endregion
33456
33642
  //#region src/components/forms/ui/generic/FormFeedback.svelte
33457
- var root$11 = /* @__PURE__ */ from_html(`<div class="go-form-feedback"><!></div>`);
33643
+ var root$12 = /* @__PURE__ */ from_html(`<div class="go-form-feedback"><!></div>`);
33458
33644
  function FormFeedback($$anchor, $$props) {
33459
- var div = root$11();
33645
+ var div = root$12();
33460
33646
  slot(child(div), $$props, "default", {}, null);
33461
33647
  reset(div);
33462
33648
  append($$anchor, div);
@@ -33490,7 +33676,7 @@ customElements.define("go-submit", create_custom_element(Submit, { buttonClass:
33490
33676
  } }, [], []));
33491
33677
  //#endregion
33492
33678
  //#region src/components/forms/ui/generic/SuccessFeedback.svelte
33493
- var root$10 = /* @__PURE__ */ from_html(`<div aria-live="assertive"> </div>`);
33679
+ var root$11 = /* @__PURE__ */ from_html(`<div aria-live="assertive"> </div>`);
33494
33680
  function SuccessFeedback($$anchor, $$props) {
33495
33681
  push($$props, true);
33496
33682
  const _details = getDetails$1($$props.$$host);
@@ -33498,7 +33684,7 @@ function SuccessFeedback($$anchor, $$props) {
33498
33684
  var fragment = comment();
33499
33685
  var node = first_child(fragment);
33500
33686
  var consequent = ($$anchor) => {
33501
- var div = root$10();
33687
+ var div = root$11();
33502
33688
  let classes;
33503
33689
  var text = child(div, true);
33504
33690
  reset(div);
@@ -35771,6 +35957,47 @@ customElements.define("go-link", create_custom_element(Link, { to: {
35771
35957
  type: "String"
35772
35958
  } }, [], []));
35773
35959
  //#endregion
35960
+ //#region src/components/membershipActivation/MembershipActivation.svelte
35961
+ function MembershipActivation($$anchor, $$props) {
35962
+ push($$props, true);
35963
+ let custom = prop($$props, "custom", 7, false);
35964
+ Forms.defineForm({
35965
+ id: "membershipActivation",
35966
+ submitLabel: "membership.activation.actions.submit",
35967
+ fields: [{
35968
+ key: "email",
35969
+ required: true
35970
+ }]
35971
+ });
35972
+ async function onSubmit(event) {
35973
+ const details = event.target.details;
35974
+ if ((await shop.activateMembership(details.formData)).response?.ok) $$props.$$host.dispatchEvent(new Event("go-success", {
35975
+ bubbles: true,
35976
+ composed: true
35977
+ }));
35978
+ else details.apiErrors = [shop.t("membership.activation.form.errors.requestFailed")];
35979
+ }
35980
+ wrapInElement($$props.$$host, "go-form", {
35981
+ "form-id": "membershipActivation",
35982
+ custom: custom()
35983
+ });
35984
+ $$props.$$host.addEventListener("submit", onSubmit);
35985
+ return pop({
35986
+ get custom() {
35987
+ return custom();
35988
+ },
35989
+ set custom($$value = false) {
35990
+ custom($$value);
35991
+ flushSync();
35992
+ }
35993
+ });
35994
+ }
35995
+ customElements.define("go-membership-activation", create_custom_element(MembershipActivation, { custom: {
35996
+ attribute: "custom",
35997
+ reflect: true,
35998
+ type: "Boolean"
35999
+ } }, [], []));
36000
+ //#endregion
35774
36001
  //#region src/components/order/lib/OrderDetails.svelte.ts
35775
36002
  var OrderDetails = class {
35776
36003
  #token = /* @__PURE__ */ state();
@@ -35832,10 +36059,10 @@ customElements.define("go-order", create_custom_element(Order, { token: {
35832
36059
  } }, [], ["orderDetails"]));
35833
36060
  //#endregion
35834
36061
  //#region src/components/order/components/subcomponents/breakdown/items/Event.svelte
35835
- var root$9 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span> <span class="go-cart-item-time" data-testid="cart-item-time"> </span>`, 1);
35836
- var root_1$4 = /* @__PURE__ */ from_html(`<br/> <span class="go-order-item-quantities"> </span>`, 1);
35837
- var root_2$3 = /* @__PURE__ */ from_html(`<a aria-label="iCal link"> </a>`);
35838
- var root_3$3 = /* @__PURE__ */ from_html(`<li><article><ul><li class="go-order-breakdown-count">1</li> <li class="go-order-breakdown-product"><span class="go-order-item-title"> </span> <!> <!> <a class="go-ticket-download" target="_blank" rel="noopener noreferrer"> </a></li> <li class="go-order-breakdown-item-price"> </li> <li class="go-order-breakdown-passbook"></li> <li class="go-order-breakdown-ical"><!></li></ul></article></li>`);
36062
+ var root$10 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span> <span class="go-cart-item-time" data-testid="cart-item-time"> </span>`, 1);
36063
+ var root_1$5 = /* @__PURE__ */ from_html(`<br/> <span class="go-order-item-quantities"> </span>`, 1);
36064
+ var root_2$4 = /* @__PURE__ */ from_html(`<a aria-label="iCal link"> </a>`);
36065
+ var root_3$4 = /* @__PURE__ */ from_html(`<li><article><ul><li class="go-order-breakdown-count">1</li> <li class="go-order-breakdown-product"><span class="go-order-item-title"> </span> <!> <!> <a class="go-ticket-download" target="_blank" rel="noopener noreferrer"> </a></li> <li class="go-order-breakdown-item-price"> </li> <li class="go-order-breakdown-passbook"></li> <li class="go-order-breakdown-ical"><!></li></ul></article></li>`);
35839
36066
  function Event$1($$anchor, $$props) {
35840
36067
  push($$props, true);
35841
36068
  let item = prop($$props, "item", 7), orderDetails = prop($$props, "orderDetails", 7);
@@ -35855,7 +36082,7 @@ function Event$1($$anchor, $$props) {
35855
36082
  flushSync();
35856
36083
  }
35857
36084
  };
35858
- var li = root_3$3();
36085
+ var li = root_3$4();
35859
36086
  var article = child(li);
35860
36087
  var ul = child(article);
35861
36088
  var li_1 = sibling(child(ul), 2);
@@ -35864,7 +36091,7 @@ function Event$1($$anchor, $$props) {
35864
36091
  reset(span);
35865
36092
  var node = sibling(span, 2);
35866
36093
  var consequent = ($$anchor) => {
35867
- var fragment = root$9();
36094
+ var fragment = root$10();
35868
36095
  var span_1 = first_child(fragment);
35869
36096
  var text_1 = child(span_1, true);
35870
36097
  reset(span_1);
@@ -35885,7 +36112,7 @@ function Event$1($$anchor, $$props) {
35885
36112
  });
35886
36113
  var node_1 = sibling(node, 2);
35887
36114
  each(node_1, 17, () => item().attributes.quantities, (scalePrice) => scalePrice.id, ($$anchor, scalePrice) => {
35888
- var fragment_1 = root_1$4();
36115
+ var fragment_1 = root_1$5();
35889
36116
  var span_3 = sibling(first_child(fragment_1), 2);
35890
36117
  var text_3 = child(span_3);
35891
36118
  reset(span_3);
@@ -35902,7 +36129,7 @@ function Event$1($$anchor, $$props) {
35902
36129
  var li_3 = sibling(li_2, 4);
35903
36130
  var node_2 = child(li_3);
35904
36131
  var consequent_1 = ($$anchor) => {
35905
- var a_1 = root_2$3();
36132
+ var a_1 = root_2$4();
35906
36133
  var text_6 = child(a_1, true);
35907
36134
  reset(a_1);
35908
36135
  template_effect(($0) => {
@@ -35937,10 +36164,10 @@ create_custom_element(Event$1, {
35937
36164
  }, [], [], { mode: "open" });
35938
36165
  //#endregion
35939
36166
  //#region src/components/order/components/subcomponents/breakdown/items/TicketSale.svelte
35940
- var root$8 = /* @__PURE__ */ from_html(`<br/> <span class="go-order-item-quantities" data-testid="order-sub-ticket"> </span>`, 1);
35941
- var root_1$3 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date"> </span> <span class="go-cart-item-time"> </span>`, 1);
35942
- var root_2$2 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date"> </span>`);
35943
- var root_3$2 = /* @__PURE__ */ from_html(`<!> <br/> <a class="go-ticket-download" target="_blank" rel="noopener noreferrer"> </a>`, 1);
36167
+ var root$9 = /* @__PURE__ */ from_html(`<br/> <span class="go-order-item-quantities" data-testid="order-sub-ticket"> </span>`, 1);
36168
+ var root_1$4 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date"> </span> <span class="go-cart-item-time"> </span>`, 1);
36169
+ var root_2$3 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date"> </span>`);
36170
+ var root_3$3 = /* @__PURE__ */ from_html(`<!> <br/> <a class="go-ticket-download" target="_blank" rel="noopener noreferrer"> </a>`, 1);
35944
36171
  var root_4$2 = /* @__PURE__ */ from_html(`<br/> <a class="go-ticket-personalization"> </a>`, 1);
35945
36172
  var root_5 = /* @__PURE__ */ from_html(`<a aria-label="passbook link"><img alt="apple wallet icon"/></a>`);
35946
36173
  var root_6 = /* @__PURE__ */ from_html(`<a aria-label="iCal link"> </a>`);
@@ -35985,7 +36212,7 @@ function TicketSale($$anchor, $$props) {
35985
36212
  reset(span);
35986
36213
  var node_2 = sibling(span, 2);
35987
36214
  each(node_2, 17, () => get$2(subTicketSales), (sub) => sub.id, ($$anchor, sub) => {
35988
- var fragment_2 = root$8();
36215
+ var fragment_2 = root$9();
35989
36216
  var span_1 = sibling(first_child(fragment_2), 2);
35990
36217
  var text_1 = child(span_1);
35991
36218
  reset(span_1);
@@ -35995,10 +36222,10 @@ function TicketSale($$anchor, $$props) {
35995
36222
  var node_3 = sibling(node_2, 2);
35996
36223
  var consequent_2 = ($$anchor) => {
35997
36224
  const barcodeId = /* @__PURE__ */ user_derived(() => item().attributes.barcodes[index]?.id);
35998
- var fragment_3 = root_3$2();
36225
+ var fragment_3 = root_3$3();
35999
36226
  var node_4 = first_child(fragment_3);
36000
36227
  var consequent = ($$anchor) => {
36001
- var fragment_4 = root_1$3();
36228
+ var fragment_4 = root_1$4();
36002
36229
  var span_2 = first_child(fragment_4);
36003
36230
  var text_2 = child(span_2, true);
36004
36231
  reset(span_2);
@@ -36015,7 +36242,7 @@ function TicketSale($$anchor, $$props) {
36015
36242
  append($$anchor, fragment_4);
36016
36243
  };
36017
36244
  var consequent_1 = ($$anchor) => {
36018
- var span_4 = root_2$2();
36245
+ var span_4 = root_2$3();
36019
36246
  var text_4 = child(span_4, true);
36020
36247
  reset(span_4);
36021
36248
  template_effect(($0) => set_text(text_4, $0), [() => formatDate(item().attributes.start_time, {
@@ -36162,6 +36389,96 @@ create_custom_element(TicketSale, {
36162
36389
  orderDetails: {}
36163
36390
  }, [], [], { mode: "open" });
36164
36391
  //#endregion
36392
+ //#region src/components/order/components/subcomponents/breakdown/items/Tour.svelte
36393
+ var root$8 = /* @__PURE__ */ from_html(`<span class="go-cart-item-date" data-testid="cart-item-date"> </span> <span class="go-cart-item-time" data-testid="cart-item-time"> </span>`, 1);
36394
+ var root_1$3 = /* @__PURE__ */ from_html(`<br/> <span class="go-order-item-quantities"> </span>`, 1);
36395
+ var root_2$2 = /* @__PURE__ */ from_html(`<a aria-label="iCal link"> </a>`);
36396
+ var root_3$2 = /* @__PURE__ */ from_html(`<li><article><ul><li class="go-order-breakdown-count">1</li> <li class="go-order-breakdown-product"><span class="go-order-item-title"> </span> <span class="go-order-item-participants" data-testid="order-item-participants"> </span> <!> <!></li> <li class="go-order-breakdown-item-price"> </li> <li class="go-order-breakdown-passbook"></li> <li class="go-order-breakdown-ical"><!></li></ul></article></li>`);
36397
+ function Tour($$anchor, $$props) {
36398
+ push($$props, true);
36399
+ let item = prop($$props, "item", 7);
36400
+ const priceRows = /* @__PURE__ */ user_derived(() => (item().attributes.prices ?? []).filter((row) => row.title && row.quantity != null));
36401
+ var $$exports = {
36402
+ get item() {
36403
+ return item();
36404
+ },
36405
+ set item($$value) {
36406
+ item($$value);
36407
+ flushSync();
36408
+ }
36409
+ };
36410
+ var li = root_3$2();
36411
+ var article = child(li);
36412
+ var ul = child(article);
36413
+ var li_1 = sibling(child(ul), 2);
36414
+ var span = child(li_1);
36415
+ var text = child(span, true);
36416
+ reset(span);
36417
+ var span_1 = sibling(span, 2);
36418
+ var text_1 = child(span_1, true);
36419
+ reset(span_1);
36420
+ var node = sibling(span_1, 2);
36421
+ var consequent = ($$anchor) => {
36422
+ var fragment = root$8();
36423
+ var span_2 = first_child(fragment);
36424
+ var text_2 = child(span_2, true);
36425
+ reset(span_2);
36426
+ var span_3 = sibling(span_2, 2);
36427
+ var text_3 = child(span_3, true);
36428
+ reset(span_3);
36429
+ template_effect(($0, $1) => {
36430
+ set_text(text_2, $0);
36431
+ set_text(text_3, $1);
36432
+ }, [() => formatDate(item().attributes.start_time, {
36433
+ month: "numeric",
36434
+ day: "numeric"
36435
+ }, shop.locale), () => formatTime(item().attributes.start_time)]);
36436
+ append($$anchor, fragment);
36437
+ };
36438
+ if_block(node, ($$render) => {
36439
+ if (item().attributes.start_time) $$render(consequent);
36440
+ });
36441
+ each(sibling(node, 2), 17, () => get$2(priceRows), (row) => row.title, ($$anchor, row) => {
36442
+ var fragment_1 = root_1$3();
36443
+ var span_4 = sibling(first_child(fragment_1), 2);
36444
+ var text_4 = child(span_4);
36445
+ reset(span_4);
36446
+ template_effect(() => set_text(text_4, `${get$2(row).quantity ?? ""} x ${get$2(row).title ?? ""}`));
36447
+ append($$anchor, fragment_1);
36448
+ });
36449
+ reset(li_1);
36450
+ var li_2 = sibling(li_1, 2);
36451
+ var text_5 = child(li_2, true);
36452
+ reset(li_2);
36453
+ var li_3 = sibling(li_2, 4);
36454
+ var node_2 = child(li_3);
36455
+ var consequent_1 = ($$anchor) => {
36456
+ var a = root_2$2();
36457
+ var text_6 = child(a, true);
36458
+ reset(a);
36459
+ template_effect(($0) => {
36460
+ set_attribute(a, "href", shop.apiUrl + item().attributes.ical_url);
36461
+ set_text(text_6, $0);
36462
+ }, [() => shop.t("common.calendar")]);
36463
+ append($$anchor, a);
36464
+ };
36465
+ if_block(node_2, ($$render) => {
36466
+ if (item().attributes.ical_url) $$render(consequent_1);
36467
+ });
36468
+ reset(li_3);
36469
+ reset(ul);
36470
+ reset(article);
36471
+ reset(li);
36472
+ template_effect(($0, $1) => {
36473
+ set_text(text, item().attributes.title);
36474
+ set_text(text_1, $0);
36475
+ set_text(text_5, $1);
36476
+ }, [() => shop.t("cart.item.participants", { count: item().attributes.participants }), () => formatCurrency$1(item().price_cents)]);
36477
+ append($$anchor, li);
36478
+ return pop($$exports);
36479
+ }
36480
+ create_custom_element(Tour, { item: {} }, [], [], { mode: "open" });
36481
+ //#endregion
36165
36482
  //#region src/components/order/components/subcomponents/breakdown/Breakdown.svelte
36166
36483
  var root$7 = /* @__PURE__ */ from_html(`<ol><li class="data-go-order-breakdown-header"><ul><li class="go-order-breakdown-header-count"> </li> <li class="go-order-breakdown-header-product"> </li> <li class="go-order-breakdown-header-price"> </li> <li class="go-order-breakdown-header-passbook"></li></ul></li> <!> <li class="go-order-breakdown-footer"><ul><li class="go-cart-footer-title"></li> <li class="go-cart-footer-count"></li> <li class="go-cart-footer-price"> </li> <li class="go-cart-footer-passbook"></li></ul></li></ol>`);
36167
36484
  function Breakdown($$anchor, $$props) {
@@ -36171,7 +36488,7 @@ function Breakdown($$anchor, $$props) {
36171
36488
  let order = /* @__PURE__ */ user_derived(() => get$2(orderDetails)?.order);
36172
36489
  var fragment = comment();
36173
36490
  var node = first_child(fragment);
36174
- var consequent_2 = ($$anchor) => {
36491
+ var consequent_3 = ($$anchor) => {
36175
36492
  var ol = root$7();
36176
36493
  var li = child(ol);
36177
36494
  var ul = child(li);
@@ -36211,9 +36528,15 @@ function Breakdown($$anchor, $$props) {
36211
36528
  }
36212
36529
  });
36213
36530
  };
36531
+ var consequent_2 = ($$anchor) => {
36532
+ Tour($$anchor, { get item() {
36533
+ return get$2(item);
36534
+ } });
36535
+ };
36214
36536
  if_block(node_2, ($$render) => {
36215
36537
  if (get$2(item).type === "Ticket") $$render(consequent);
36216
36538
  else if (get$2(item).type === "Event") $$render(consequent_1, 1);
36539
+ else if (get$2(item).type === "Tour") $$render(consequent_2, 2);
36217
36540
  });
36218
36541
  append($$anchor, fragment_1);
36219
36542
  });
@@ -36240,7 +36563,7 @@ function Breakdown($$anchor, $$props) {
36240
36563
  append($$anchor, ol);
36241
36564
  };
36242
36565
  if_block(node, ($$render) => {
36243
- if (get$2(order) && get$2(orderDetails)) $$render(consequent_2);
36566
+ if (get$2(order) && get$2(orderDetails)) $$render(consequent_3);
36244
36567
  });
36245
36568
  append($$anchor, fragment);
36246
36569
  pop();
@@ -37716,20 +38039,61 @@ customElements.define("go-withdrawal-form", create_custom_element(Withdrawal, {
37716
38039
  type: "Boolean"
37717
38040
  } }, [], []));
37718
38041
  //#endregion
38042
+ //#region src/go/cart.ts
38043
+ var REQUIRED = [
38044
+ "id",
38045
+ "time",
38046
+ "participants",
38047
+ "languageId",
38048
+ "totalPriceCents",
38049
+ "title"
38050
+ ];
38051
+ function validate(options) {
38052
+ for (const key of REQUIRED) if (options[key] == null || options[key] === "") throw new Error(`(go.cart.addTour) '${key}' is required`);
38053
+ if (!(options.participants > 0)) throw new Error(`(go.cart.addTour) 'participants' must be a positive number`);
38054
+ if (options.quantities) {
38055
+ const quantitiesSum = sum(Object.values(options.quantities));
38056
+ if (quantitiesSum !== options.participants) throw new Error(`(go.cart.addTour) 'quantities' must sum to 'participants' (${quantitiesSum} !== ${options.participants})`);
38057
+ }
38058
+ }
38059
+ /**
38060
+ * Adds a group-tour booking to the cart and resolves with the cart line's
38061
+ * uuid. Every call appends a NEW line — identical bookings coexist; use the
38062
+ * returned uuid to deduplicate or remove.
38063
+ *
38064
+ * Tours are not priced by the shop API: `totalPriceCents` is the
38065
+ * integrator-supplied booking total (incl. mandatory surcharges) and is
38066
+ * verified by the backend only at checkout.
38067
+ */
38068
+ async function addTour(options) {
38069
+ validate(options);
38070
+ if (!shop.cart) throw new Error("(go.cart.addTour) shop not initialized — call go.init first");
38071
+ const { time, ...attributes } = options;
38072
+ const item = createCartItem(createUITour(attributes), {
38073
+ quantity: 1,
38074
+ time
38075
+ });
38076
+ shop.cart.addItem(item);
38077
+ return item.uuid;
38078
+ }
38079
+ //#endregion
37719
38080
  //#region src/go/go.ts
37720
38081
  var initPromise = null;
37721
38082
  async function ensureShopReady() {
37722
38083
  if (initPromise) return initPromise;
37723
- if (!shop.client) throw new Error("[go.api] Shop not initialized — call go.init({ shop, api, locale }) first.");
38084
+ if (!shop.client) throw new Error("[go] Shop not initialized — call go.init({ shop, api, locale }) first.");
37724
38085
  }
38086
+ var resolveCommand = (method) => method.split(".").reduce((target, key) => target?.[key], go);
37725
38087
  async function initGo(window) {
37726
38088
  const stub = window.go;
37727
38089
  let q = stub && stub._queue || [];
37728
- console.log(q);
38090
+ if (stub && stub._queue && !stub.cart) console.warn("(go) the pasted go snippet predates go.cart — cart calls cannot be queued before load. Update the snippet or gate on window.go.loaded.");
37729
38091
  for (const command of q) {
37730
38092
  if (command.method === "load") continue;
37731
38093
  try {
37732
- await go[command.method](command.options);
38094
+ const fn = resolveCommand(command.method);
38095
+ if (typeof fn !== "function") throw new Error(`(go) unknown command: ${command.method}`);
38096
+ await fn(command.options);
37733
38097
  } catch (e) {
37734
38098
  console.error(e);
37735
38099
  }
@@ -37760,7 +38124,11 @@ var go = {
37760
38124
  await ensureShopReady();
37761
38125
  return shop.asyncFetch(() => shop.getOrders(params));
37762
38126
  }
37763
- }
38127
+ },
38128
+ cart: { addTour: async (options) => {
38129
+ await ensureShopReady();
38130
+ return addTour(options);
38131
+ } }
37764
38132
  };
37765
38133
  (async () => {
37766
38134
  await initGo(window);