tf-checkout-react-native 2.0.0-beta.5 → 2.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -3715,15 +3715,15 @@ var ticketChangeDoneCopy = (result2) => {
3715
3715
  var slotAlternativesFromError = (error) => {
3716
3716
  const e = error != null ? error : {};
3717
3717
  const payload = e.data && typeof e.data === "object" ? e.data : e;
3718
- return list(payload.alternatives).map((s4) => {
3718
+ return list(payload.alternatives).map((s5) => {
3719
3719
  var _a, _b, _c, _d, _e;
3720
3720
  return {
3721
- ticketTypeId: String((_a = s4.ticketTypeId) != null ? _a : ""),
3722
- label: String((_c = (_b = s4.label) != null ? _b : s4.startsAt) != null ? _c : ""),
3723
- startsAt: String((_d = s4.startsAt) != null ? _d : ""),
3724
- slotValue: String((_e = s4.slotValue) != null ? _e : "")
3721
+ ticketTypeId: String((_a = s5.ticketTypeId) != null ? _a : ""),
3722
+ label: String((_c = (_b = s5.label) != null ? _b : s5.startsAt) != null ? _c : ""),
3723
+ startsAt: String((_d = s5.startsAt) != null ? _d : ""),
3724
+ slotValue: String((_e = s5.slotValue) != null ? _e : "")
3725
3725
  };
3726
- }).filter((s4) => s4.ticketTypeId !== "" && s4.label !== "").slice(0, 3);
3726
+ }).filter((s5) => s5.ticketTypeId !== "" && s5.label !== "").slice(0, 3);
3727
3727
  };
3728
3728
  var ticketChangeView = (options) => options.canChange ? "choose" : "closed";
3729
3729
  var resolveSiteUrl = (path3, origin) => /^https?:\/\//i.test(path3) ? path3 : `${origin.replace(/\/+$/, "")}/${path3.replace(/^\/+/, "")}`;
@@ -3924,8 +3924,8 @@ var signaturePngDataUrl = (strokes, { padWidth, padHeight, width = 600, lineWidt
3924
3924
  const a = points[i - 1];
3925
3925
  const b = points[i];
3926
3926
  const steps = Math.max(1, Math.ceil(Math.hypot(b.x - a.x, b.y - a.y) * 2));
3927
- for (let s4 = 0; s4 <= steps; s4++) {
3928
- ink(a.x + (b.x - a.x) * s4 / steps, a.y + (b.y - a.y) * s4 / steps);
3927
+ for (let s5 = 0; s5 <= steps; s5++) {
3928
+ ink(a.x + (b.x - a.x) * s5 / steps, a.y + (b.y - a.y) * s5 / steps);
3929
3929
  }
3930
3930
  }
3931
3931
  }
@@ -4188,23 +4188,23 @@ var waiverSignaturesAttribute = (waiver, signatures, holders, billing, backfille
4188
4188
  backfilledHolderIndexes
4189
4189
  );
4190
4190
  if (!waiver || !counted) return [];
4191
- return Object.entries(counted).map(([index, s4]) => [Number(index), s4]).filter(([index]) => Number.isInteger(index) && index >= 0 && index < holders.length).sort(([a], [b]) => a - b).map(([index, s4]) => {
4191
+ return Object.entries(counted).map(([index, s5]) => [Number(index), s5]).filter(([index]) => Number.isInteger(index) && index >= 0 && index < holders.length).sort(([a], [b]) => a - b).map(([index, s5]) => {
4192
4192
  var _a, _b, _c, _d;
4193
4193
  return {
4194
4194
  holder_index: index,
4195
4195
  version_id: waiver.versionId,
4196
4196
  body_sha256: waiver.bodySha256,
4197
- signer_role: s4.signerRole,
4198
- first_name: s4.firstName,
4199
- last_name: s4.lastName,
4200
- ...s4.signerRole === "guardian" ? {
4201
- minor_name: (_a = s4.minorName) != null ? _a : "",
4202
- guardian_relationship: (_b = s4.guardianRelationship) != null ? _b : "",
4203
- ...s4.minorDob ? { minor_dob: s4.minorDob } : {}
4197
+ signer_role: s5.signerRole,
4198
+ first_name: s5.firstName,
4199
+ last_name: s5.lastName,
4200
+ ...s5.signerRole === "guardian" ? {
4201
+ minor_name: (_a = s5.minorName) != null ? _a : "",
4202
+ guardian_relationship: (_b = s5.guardianRelationship) != null ? _b : "",
4203
+ ...s5.minorDob ? { minor_dob: s5.minorDob } : {}
4204
4204
  } : {},
4205
- method: s4.method,
4206
- ...s4.method === "typed" ? { typed_name: (_c = s4.typedName) != null ? _c : "" } : { image_reference: (_d = s4.imageReference) != null ? _d : "" },
4207
- agree_electronic: s4.agreeElectronic
4205
+ method: s5.method,
4206
+ ...s5.method === "typed" ? { typed_name: (_c = s5.typedName) != null ? _c : "" } : { image_reference: (_d = s5.imageReference) != null ? _d : "" },
4207
+ agree_electronic: s5.agreeElectronic
4208
4208
  };
4209
4209
  });
4210
4210
  };
@@ -4282,7 +4282,7 @@ var checkoutIsBusy = (snapshot) => {
4282
4282
  };
4283
4283
  var cartTicketCount = (cart) => {
4284
4284
  var _a, _b;
4285
- return cart.selections.reduce((n, s4) => n + s4.quantity, 0) || ((_b = (_a = cart.breakdown) == null ? void 0 : _a.tickets) != null ? _b : []).reduce((n, line) => n + line.quantity, 0) || 1;
4285
+ return cart.selections.reduce((n, s5) => n + s5.quantity, 0) || ((_b = (_a = cart.breakdown) == null ? void 0 : _a.tickets) != null ? _b : []).reduce((n, line) => n + line.quantity, 0) || 1;
4286
4286
  };
4287
4287
  var cartTicketSlots = (cart) => {
4288
4288
  var _a, _b;
@@ -5375,6 +5375,7 @@ __export(api_exports, {
5375
5375
  confirmPreRegistration: () => confirmPreRegistration,
5376
5376
  confirmRedirect: () => confirmRedirect,
5377
5377
  connectAppleMusic: () => connectAppleMusic,
5378
+ connectSpotify: () => connectSpotify,
5378
5379
  createEventComment: () => createEventComment,
5379
5380
  createOrder: () => createOrder,
5380
5381
  createPack: () => createPack,
@@ -5383,6 +5384,7 @@ __export(api_exports, {
5383
5384
  decodeShareActionToken: () => decodeShareActionToken,
5384
5385
  disconnectAccount: () => disconnectAccount,
5385
5386
  disconnectAppleMusic: () => disconnectAppleMusic,
5387
+ disconnectSpotify: () => disconnectSpotify,
5386
5388
  exchangeBrowserSignIn: () => exchangeBrowserSignIn,
5387
5389
  exchangeCheckoutBrowserCode: () => exchangeCheckoutBrowserCode,
5388
5390
  filterAddonsForTickets: () => filterAddonsForTickets,
@@ -6412,30 +6414,30 @@ var getEventTimeSlotTickets = async (eventId, date, options) => {
6412
6414
  for (const hourKey of Object.keys(hours != null ? hours : {}).sort()) {
6413
6415
  const times = (_e = hours[hourKey]) != null ? _e : {};
6414
6416
  for (const timeKey of Object.keys(times).sort()) {
6415
- for (const s4 of Object.values((_f = times[timeKey]) != null ? _f : {})) {
6416
- if (!(s4 == null ? void 0 : s4.matrix_record_id)) continue;
6417
- const stock = Number((_h = (_g = s4.in_stock) != null ? _g : s4.real_stock) != null ? _h : 0);
6417
+ for (const s5 of Object.values((_f = times[timeKey]) != null ? _f : {})) {
6418
+ if (!(s5 == null ? void 0 : s5.matrix_record_id)) continue;
6419
+ const stock = Number((_h = (_g = s5.in_stock) != null ? _g : s5.real_stock) != null ? _h : 0);
6418
6420
  out.push({
6419
- id: String(s4.matrix_record_id),
6420
- name: s4.display_name || s4.option_value || "Ticket",
6421
- groupName: (_j = (_i = s4.group_name) != null ? _i : s4.groupName) != null ? _j : null,
6422
- optionName: String((_k = s4.option_key) != null ? _k : ""),
6423
- price: Number((_l = s4.base_price) != null ? _l : 0),
6424
- priceWithFees: Number((_n = (_m = s4.price_with_fees) != null ? _m : s4.base_price) != null ? _n : 0),
6425
- priceSymbol: (_p = (_o = s4.price_symbol) != null ? _o : s4.priceSymbol) != null ? _p : "",
6421
+ id: String(s5.matrix_record_id),
6422
+ name: s5.display_name || s5.option_value || "Ticket",
6423
+ groupName: (_j = (_i = s5.group_name) != null ? _i : s5.groupName) != null ? _j : null,
6424
+ optionName: String((_k = s5.option_key) != null ? _k : ""),
6425
+ price: Number((_l = s5.base_price) != null ? _l : 0),
6426
+ priceWithFees: Number((_n = (_m = s5.price_with_fees) != null ? _m : s5.base_price) != null ? _n : 0),
6427
+ priceSymbol: (_p = (_o = s5.price_symbol) != null ? _o : s5.priceSymbol) != null ? _p : "",
6426
6428
  currency: "",
6427
6429
  feeIncluded: false,
6428
- depositPercent: s4.deposit_percent != null ? Number(s4.deposit_percent) : null,
6429
- soldOut: Boolean(s4.sold_out) || stock <= 0,
6430
- salesStarted: s4.sales_started != null ? Boolean(s4.sales_started) : true,
6431
- salesEnded: Boolean(s4.sales_ended),
6432
- minQuantity: Number((_q = s4.min_quantity) != null ? _q : 1) || 1,
6433
- maxQuantity: Number((_r = s4.max_quantity) != null ? _r : 10) || 10,
6434
- multiplier: Number((_s = s4.multiplier) != null ? _s : 1) || 1,
6435
- isTable: Boolean(s4.is_table),
6430
+ depositPercent: s5.deposit_percent != null ? Number(s5.deposit_percent) : null,
6431
+ soldOut: Boolean(s5.sold_out) || stock <= 0,
6432
+ salesStarted: s5.sales_started != null ? Boolean(s5.sales_started) : true,
6433
+ salesEnded: Boolean(s5.sales_ended),
6434
+ minQuantity: Number((_q = s5.min_quantity) != null ? _q : 1) || 1,
6435
+ maxQuantity: Number((_r = s5.max_quantity) != null ? _r : 10) || 10,
6436
+ multiplier: Number((_s = s5.multiplier) != null ? _s : 1) || 1,
6437
+ isTable: Boolean(s5.is_table),
6436
6438
  allowDirectPurchase: true,
6437
- descriptionRich: (_t = s4.description) != null ? _t : null,
6438
- badgeText: badgeOf((_u = s4.badge_text) != null ? _u : s4.badgeText),
6439
+ descriptionRich: (_t = s5.description) != null ? _t : null,
6440
+ badgeText: badgeOf((_u = s5.badge_text) != null ? _u : s5.badgeText),
6439
6441
  timeSlot: { date: slotDate, time: timeKey }
6440
6442
  });
6441
6443
  }
@@ -6954,8 +6956,8 @@ var mapProfileToBilling = (profile) => {
6954
6956
  var _a, _b, _c, _d;
6955
6957
  const str = (v) => v == null || v === "" ? void 0 : String(v);
6956
6958
  const idStr = (v) => {
6957
- const s4 = str(v);
6958
- return s4 === void 0 || s4 === "0" || s4 === "-1" ? void 0 : s4;
6959
+ const s5 = str(v);
6960
+ return s5 === void 0 || s5 === "0" || s5 === "-1" ? void 0 : s5;
6959
6961
  };
6960
6962
  const dobParts = /^(\d{4})-(\d{2})-(\d{2})/.exec((_a = profile.dateOfBirth) != null ? _a : "");
6961
6963
  const dob = dobParts && Number(dobParts[1]) > 1900 ? {
@@ -7976,6 +7978,29 @@ var disconnectAppleMusic = async (revision) => {
7976
7978
  })
7977
7979
  );
7978
7980
  };
7981
+ var connectSpotify = async () => {
7982
+ const epoch = getSessionEpoch();
7983
+ const security2 = await sessionWriteSecurity(epoch);
7984
+ assertSessionEpoch(epoch);
7985
+ return unwrap2(
7986
+ await post(
7987
+ "/customer/music/spotify/connect",
7988
+ {},
7989
+ security2
7990
+ )
7991
+ );
7992
+ };
7993
+ var disconnectSpotify = async (revision) => {
7994
+ const epoch = getSessionEpoch();
7995
+ const security2 = await sessionWriteSecurity(epoch);
7996
+ assertSessionEpoch(epoch);
7997
+ return unwrap2(
7998
+ await del("/customer/music/spotify", {
7999
+ ...security2,
8000
+ data: { revision }
8001
+ })
8002
+ );
8003
+ };
7979
8004
  var endpoint = (postId) => {
7980
8005
  if (!/^[1-9][0-9]*$/.test(String(postId)))
7981
8006
  throw new TtfError("This article is not available.", 422, "VALIDATION_ERROR");
@@ -9826,7 +9851,7 @@ var bundleFlowAvailable = (draft, catalog, catalogState) => {
9826
9851
  ];
9827
9852
  const slots = bundleHolderSlots(catalog, bundleSelectionAttribute(qty));
9828
9853
  const holders = draft.holders.filter(
9829
- (h) => !changed.includes(h.bundleId) || slots.some((s4) => s4.bundleId === h.bundleId && s4.ticketIndex === h.ticketIndex)
9854
+ (h) => !changed.includes(h.bundleId) || slots.some((s5) => s5.bundleId === h.bundleId && s5.ticketIndex === h.ticketIndex)
9830
9855
  );
9831
9856
  return { draft: { ...draft, qty, holders }, removed, reduced, belowMinimum };
9832
9857
  };
@@ -9871,7 +9896,7 @@ var bundleDraftWithHolder = (draft, slot, next) => {
9871
9896
  var bundleFlowInput = (eventId, draft, slots) => {
9872
9897
  const selection = bundleSelectionAttribute(draft.qty);
9873
9898
  const holders = draft.holders.filter(
9874
- (h) => slots.some((s4) => s4.bundleId === h.bundleId && s4.ticketIndex === h.ticketIndex) && (h.firstName.trim() || h.lastName.trim())
9899
+ (h) => slots.some((s5) => s5.bundleId === h.bundleId && s5.ticketIndex === h.ticketIndex) && (h.firstName.trim() || h.lastName.trim())
9875
9900
  );
9876
9901
  const buyer2 = holders.length ? { ...draft.buyer, holders } : { ...draft.buyer };
9877
9902
  return {
@@ -10453,7 +10478,9 @@ var ttf = {
10453
10478
  get: getPreferences,
10454
10479
  save: saveInterests,
10455
10480
  connectAppleMusic,
10456
- disconnectAppleMusic
10481
+ disconnectAppleMusic,
10482
+ connectSpotify,
10483
+ disconnectSpotify
10457
10484
  },
10458
10485
  comments: {
10459
10486
  list: getEventComments,
@@ -14191,7 +14218,12 @@ var useAccountPreferences = (enabled = true) => {
14191
14218
  const ownedEpoch = useMemo9(() => getSessionEpoch(), [scope]);
14192
14219
  const pending2 = useRef13({ scope, locked: false });
14193
14220
  const client = useQueryClient8();
14194
- const query = useSessionQuery({ queryKey: key2, queryFn: getPreferences, retry: false, enabled });
14221
+ const query = useSessionQuery({
14222
+ queryKey: key2,
14223
+ queryFn: getPreferences,
14224
+ retry: false,
14225
+ enabled
14226
+ });
14195
14227
  const perform = async (action, message) => {
14196
14228
  if (getSessionCacheScope() !== scope || getSessionEpoch() !== ownedEpoch || pending2.current.scope === scope && pending2.current.locked)
14197
14229
  return;
@@ -14227,10 +14259,19 @@ var useAccountPreferences = (enabled = true) => {
14227
14259
  "Your interests have been updated."
14228
14260
  ) : Promise.resolve(void 0),
14229
14261
  connectAppleMusic: () => perform(connectAppleMusic),
14262
+ connectSpotify: () => perform(connectSpotify),
14230
14263
  disconnectAppleMusic: () => query.data ? perform(
14231
14264
  () => disconnectAppleMusic(query.data.revision),
14232
14265
  "Apple Music disconnected. Your saved interests stay."
14233
- ) : Promise.resolve(void 0)
14266
+ ) : Promise.resolve(void 0),
14267
+ disconnectSpotify: () => {
14268
+ var _a;
14269
+ const revision = (_a = query.data) == null ? void 0 : _a.revision;
14270
+ return revision === void 0 ? Promise.resolve(void 0) : perform(
14271
+ () => disconnectSpotify(revision),
14272
+ "Spotify disconnected. Your saved interests stay."
14273
+ );
14274
+ }
14234
14275
  };
14235
14276
  };
14236
14277
  var useInterestSelection = () => {
@@ -16004,6 +16045,46 @@ Object.assign(accountEs, {
16004
16045
  "account.choose_images_totaling_no_more_than_5_mib_after_processing": "Elige im\xE1genes que no sumen m\xE1s de 5 MiB despu\xE9s del procesamiento.",
16005
16046
  "account.write_a_comment_or_choose_an_image": "Escribe un comentario o elige una imagen."
16006
16047
  });
16048
+ Object.assign(accountEn, {
16049
+ "account.spotify_disconnected_your_saved_interests_stay": "Spotify disconnected. Your saved interests stay.",
16050
+ "account.choose_which_artist_and_genre_names_to_use_for_event_suggestions": "Choose which artist and genre names to use for event suggestions.",
16051
+ "account.disconnect_spotify_and_remove_its_imported_data_and_approved_names_your_saved_interests_stay": "Disconnect Spotify and remove its imported data and approved names? Your saved interests stay.",
16052
+ "account.review_choices": "Review choices",
16053
+ "account.no_artist_or_genre_names_approved_yet": "No artist or genre names approved yet.",
16054
+ "account.refresh_connections": "Refresh connections",
16055
+ "account.only_the_artist_and_genre_names_you_approve_are_used_for_these_event_suggestions": "Only the artist and genre names you approve are used for these event suggestions.",
16056
+ "account.continue_in_a_new_tab_to_review_your_spotify_choices_return_here_when_you_finish": "Continue in a new tab to review your Spotify choices. Return here when you finish.",
16057
+ "account.continue_to_spotify": "Continue to Spotify",
16058
+ "account.spotify_connections_are_not_available_right_now": "Spotify connections are not available right now.",
16059
+ "account.spotify_could_not_confirm_this_account_please_try_again": "Spotify could not confirm this account. Please try again.",
16060
+ "account.this_spotify_connection_expired_open_a_new_connection": "This Spotify connection expired. Open a new connection.",
16061
+ "account.your_account_changed_open_a_new_spotify_connection": "Your account changed. Open a new Spotify connection.",
16062
+ "account.choose_only_the_spotify_names_shown_for_this_connection": "Choose only the Spotify names shown for this connection.",
16063
+ "account.spotify_artist_names_could_not_be_loaded_please_try_again": "Spotify artist names could not be loaded. Please try again.",
16064
+ "account.disconnect_spotify": "Disconnect Spotify?",
16065
+ "account.your_imported_spotify_data_and_approved_names_will_be_removed_your_saved_interests_stay": "Your imported Spotify data and approved names will be removed. Your saved interests stay.",
16066
+ "account.sign_in_to_manage_your_music_connections": "Sign in to manage your music connections."
16067
+ });
16068
+ Object.assign(accountEs, {
16069
+ "account.spotify_disconnected_your_saved_interests_stay": "Spotify se desconect\xF3. Tus intereses guardados se conservan.",
16070
+ "account.choose_which_artist_and_genre_names_to_use_for_event_suggestions": "Elige qu\xE9 nombres de artistas y g\xE9neros usar para sugerirte eventos.",
16071
+ "account.disconnect_spotify_and_remove_its_imported_data_and_approved_names_your_saved_interests_stay": "\xBFDesconectar Spotify y eliminar sus datos importados y los nombres aprobados? Tus intereses guardados se conservan.",
16072
+ "account.review_choices": "Revisar selecciones",
16073
+ "account.no_artist_or_genre_names_approved_yet": "A\xFAn no has aprobado nombres de artistas o g\xE9neros.",
16074
+ "account.refresh_connections": "Actualizar conexiones",
16075
+ "account.only_the_artist_and_genre_names_you_approve_are_used_for_these_event_suggestions": "Solo se usan los nombres de artistas y g\xE9neros que apruebas para estas sugerencias de eventos.",
16076
+ "account.continue_in_a_new_tab_to_review_your_spotify_choices_return_here_when_you_finish": "Contin\xFAa en una pesta\xF1a nueva para revisar tus selecciones de Spotify. Vuelve aqu\xED cuando termines.",
16077
+ "account.continue_to_spotify": "Continuar a Spotify",
16078
+ "account.spotify_connections_are_not_available_right_now": "Las conexiones de Spotify no est\xE1n disponibles en este momento.",
16079
+ "account.spotify_could_not_confirm_this_account_please_try_again": "Spotify no pudo confirmar esta cuenta. Int\xE9ntalo de nuevo.",
16080
+ "account.this_spotify_connection_expired_open_a_new_connection": "Esta conexi\xF3n de Spotify ha caducado. Abre una nueva conexi\xF3n.",
16081
+ "account.your_account_changed_open_a_new_spotify_connection": "Tu cuenta ha cambiado. Abre una nueva conexi\xF3n de Spotify.",
16082
+ "account.choose_only_the_spotify_names_shown_for_this_connection": "Elige solo los nombres de Spotify que se muestran para esta conexi\xF3n.",
16083
+ "account.spotify_artist_names_could_not_be_loaded_please_try_again": "No se pudieron cargar los nombres de artistas de Spotify. Int\xE9ntalo de nuevo.",
16084
+ "account.disconnect_spotify": "\xBFDesconectar Spotify?",
16085
+ "account.your_imported_spotify_data_and_approved_names_will_be_removed_your_saved_interests_stay": "Se eliminar\xE1n tus datos importados de Spotify y los nombres aprobados. Tus intereses guardados se conservan.",
16086
+ "account.sign_in_to_manage_your_music_connections": "Inicia sesi\xF3n para gestionar tus conexiones de m\xFAsica."
16087
+ });
16007
16088
  var en = {
16008
16089
  "auth.completionAgree": "I agree to the Terms of Service and Privacy Policy.",
16009
16090
  "auth.completionTerms": "Read Terms of Service",
@@ -17157,48 +17238,48 @@ var Card = ({
17157
17238
  style
17158
17239
  }) => {
17159
17240
  const theme = useTheme();
17160
- const s4 = useStyles(theme);
17161
- return /* @__PURE__ */ jsx2(View, { style: [s4.card, style], children });
17241
+ const s5 = useStyles(theme);
17242
+ return /* @__PURE__ */ jsx2(View, { style: [s5.card, style], children });
17162
17243
  };
17163
17244
  var SectionHeader = ({
17164
17245
  title,
17165
17246
  subtitle
17166
17247
  }) => {
17167
17248
  const theme = useTheme();
17168
- const s4 = useStyles(theme);
17169
- return /* @__PURE__ */ jsxs(View, { style: s4.sectionHeader, children: [
17170
- /* @__PURE__ */ jsx2(Text, { style: s4.sectionTitle, children: title }),
17171
- subtitle ? /* @__PURE__ */ jsx2(Text, { style: s4.sectionSubtitle, children: subtitle }) : null
17249
+ const s5 = useStyles(theme);
17250
+ return /* @__PURE__ */ jsxs(View, { style: s5.sectionHeader, children: [
17251
+ /* @__PURE__ */ jsx2(Text, { style: s5.sectionTitle, children: title }),
17252
+ subtitle ? /* @__PURE__ */ jsx2(Text, { style: s5.sectionSubtitle, children: subtitle }) : null
17172
17253
  ] });
17173
17254
  };
17174
17255
  var Divider = () => {
17175
17256
  const theme = useTheme();
17176
- const s4 = useStyles(theme);
17177
- return /* @__PURE__ */ jsx2(View, { style: s4.divider });
17257
+ const s5 = useStyles(theme);
17258
+ return /* @__PURE__ */ jsx2(View, { style: s5.divider });
17178
17259
  };
17179
17260
  var BodyText = ({
17180
17261
  children,
17181
17262
  style
17182
17263
  }) => {
17183
17264
  const theme = useTheme();
17184
- const s4 = useStyles(theme);
17185
- return /* @__PURE__ */ jsx2(Text, { style: [s4.body, style], children });
17265
+ const s5 = useStyles(theme);
17266
+ return /* @__PURE__ */ jsx2(Text, { style: [s5.body, style], children });
17186
17267
  };
17187
17268
  var MutedText = ({
17188
17269
  children,
17189
17270
  style
17190
17271
  }) => {
17191
17272
  const theme = useTheme();
17192
- const s4 = useStyles(theme);
17193
- return /* @__PURE__ */ jsx2(Text, { style: [s4.muted, style], children });
17273
+ const s5 = useStyles(theme);
17274
+ return /* @__PURE__ */ jsx2(Text, { style: [s5.muted, style], children });
17194
17275
  };
17195
17276
  var ErrorText = ({ children }) => {
17196
17277
  const theme = useTheme();
17197
- const s4 = useStyles(theme);
17278
+ const s5 = useStyles(theme);
17198
17279
  return /* @__PURE__ */ jsx2(
17199
17280
  Text,
17200
17281
  {
17201
- style: s4.errorText,
17282
+ style: s5.errorText,
17202
17283
  accessibilityRole: "alert",
17203
17284
  accessibilityLiveRegion: "assertive",
17204
17285
  children
@@ -17213,7 +17294,7 @@ var Button = ({
17213
17294
  variant = "primary"
17214
17295
  }) => {
17215
17296
  const theme = useTheme();
17216
- const s4 = useStyles(theme);
17297
+ const s5 = useStyles(theme);
17217
17298
  const frozen = useFrozen();
17218
17299
  const isDisabled = disabled || loading || frozen;
17219
17300
  const ghost = variant === "ghost";
@@ -17225,10 +17306,10 @@ var Button = ({
17225
17306
  disabled: isDisabled,
17226
17307
  onPress,
17227
17308
  style: ({ pressed }) => [
17228
- s4.button,
17229
- ghost && s4.buttonGhost,
17230
- isDisabled && s4.buttonDisabled,
17231
- pressed && !isDisabled && s4.buttonPressed
17309
+ s5.button,
17310
+ ghost && s5.buttonGhost,
17311
+ isDisabled && s5.buttonDisabled,
17312
+ pressed && !isDisabled && s5.buttonPressed
17232
17313
  ],
17233
17314
  children: loading ? /* @__PURE__ */ jsx2(
17234
17315
  ActivityIndicator,
@@ -17236,7 +17317,7 @@ var Button = ({
17236
17317
  size: "small",
17237
17318
  color: ghost ? theme.accent : theme.accentContrast
17238
17319
  }
17239
- ) : /* @__PURE__ */ jsx2(Text, { style: [s4.buttonLabel, ghost && s4.buttonLabelGhost], children })
17320
+ ) : /* @__PURE__ */ jsx2(Text, { style: [s5.buttonLabel, ghost && s5.buttonLabelGhost], children })
17240
17321
  }
17241
17322
  );
17242
17323
  };
@@ -17322,7 +17403,7 @@ var useInstallmentPicker = () => {
17322
17403
  };
17323
17404
  var InstallmentModal = ({ offers, onChoose, onClose }) => {
17324
17405
  const theme = useTheme();
17325
- const s4 = useStyles2(theme);
17406
+ const s5 = useStyles2(theme);
17326
17407
  return /* @__PURE__ */ jsx3(
17327
17408
  Modal,
17328
17409
  {
@@ -17330,25 +17411,25 @@ var InstallmentModal = ({ offers, onChoose, onClose }) => {
17330
17411
  transparent: true,
17331
17412
  animationType: "fade",
17332
17413
  onRequestClose: onClose,
17333
- children: /* @__PURE__ */ jsx3(Pressable2, { style: s4.backdrop, onPress: onClose, children: /* @__PURE__ */ jsxs2(Pressable2, { style: s4.box, onPress: () => {
17414
+ children: /* @__PURE__ */ jsx3(Pressable2, { style: s5.backdrop, onPress: onClose, children: /* @__PURE__ */ jsxs2(Pressable2, { style: s5.box, onPress: () => {
17334
17415
  }, children: [
17335
- /* @__PURE__ */ jsx3(Text2, { style: s4.title, accessibilityRole: "header", children: "Pay in installments?" }),
17336
- /* @__PURE__ */ jsx3(View2, { style: s4.list, children: (offers != null ? offers : []).map((offer, i) => {
17416
+ /* @__PURE__ */ jsx3(Text2, { style: s5.title, accessibilityRole: "header", children: "Pay in installments?" }),
17417
+ /* @__PURE__ */ jsx3(View2, { style: s5.list, children: (offers != null ? offers : []).map((offer, i) => {
17337
17418
  var _a;
17338
17419
  return /* @__PURE__ */ jsxs2(
17339
17420
  Pressable2,
17340
17421
  {
17341
17422
  accessibilityRole: "button",
17342
- style: ({ pressed }) => [s4.option, pressed && s4.optionPressed],
17423
+ style: ({ pressed }) => [s5.option, pressed && s5.optionPressed],
17343
17424
  onPress: () => onChoose(offer),
17344
17425
  children: [
17345
- /* @__PURE__ */ jsxs2(Text2, { style: s4.optionMain, children: [
17426
+ /* @__PURE__ */ jsxs2(Text2, { style: s5.optionMain, children: [
17346
17427
  offer.count,
17347
17428
  " \xD7",
17348
17429
  " ",
17349
17430
  (_a = offer.per_installment_formatted) != null ? _a : offer.per_installment
17350
17431
  ] }),
17351
- /* @__PURE__ */ jsxs2(Text2, { style: s4.optionMeta, children: [
17432
+ /* @__PURE__ */ jsxs2(Text2, { style: s5.optionMeta, children: [
17352
17433
  offer.total_formatted ? `${offer.total_formatted} total` : "",
17353
17434
  offer.diff_from_original_formatted ? ` \xB7 ${offer.diff_from_original_formatted}` : ""
17354
17435
  ] })
@@ -17960,14 +18041,14 @@ import {
17960
18041
  import { jsx as jsx7, jsxs as jsxs5 } from "react/jsx-runtime";
17961
18042
  var Field = ({ label, error, required, children }) => {
17962
18043
  const theme = useTheme();
17963
- const s4 = useFieldStyles(theme);
17964
- return /* @__PURE__ */ jsxs5(View4, { style: s4.field, children: [
17965
- label ? /* @__PURE__ */ jsxs5(Text3, { style: s4.label, children: [
18044
+ const s5 = useFieldStyles(theme);
18045
+ return /* @__PURE__ */ jsxs5(View4, { style: s5.field, children: [
18046
+ label ? /* @__PURE__ */ jsxs5(Text3, { style: s5.label, children: [
17966
18047
  label,
17967
- required ? /* @__PURE__ */ jsx7(Text3, { style: s4.required, children: " *" }) : null
18048
+ required ? /* @__PURE__ */ jsx7(Text3, { style: s5.required, children: " *" }) : null
17968
18049
  ] }) : null,
17969
18050
  children,
17970
- error ? /* @__PURE__ */ jsx7(Text3, { style: s4.error, children: error }) : null
18051
+ error ? /* @__PURE__ */ jsx7(Text3, { style: s5.error, children: error }) : null
17971
18052
  ] });
17972
18053
  };
17973
18054
  var Input = ({
@@ -17985,17 +18066,17 @@ var Input = ({
17985
18066
  const frozen = useFrozen();
17986
18067
  const editable = editableProp && !frozen;
17987
18068
  const theme = useTheme();
17988
- const s4 = useFieldStyles(theme);
18069
+ const s5 = useFieldStyles(theme);
17989
18070
  const [focused, setFocused] = useState27(false);
17990
18071
  return /* @__PURE__ */ jsx7(
17991
18072
  TextInput,
17992
18073
  {
17993
18074
  ...nativeProps,
17994
18075
  style: [
17995
- s4.input,
17996
- focused && s4.inputFocused,
17997
- invalid && s4.inputInvalid,
17998
- !editable && s4.inputDisabled
18076
+ s5.input,
18077
+ focused && s5.inputFocused,
18078
+ invalid && s5.inputInvalid,
18079
+ !editable && s5.inputDisabled
17999
18080
  ],
18000
18081
  value: value6,
18001
18082
  onChangeText,
@@ -18016,7 +18097,7 @@ var Input = ({
18016
18097
  };
18017
18098
  var Checkbox = ({ checked, onChange, label, invalid = false }) => {
18018
18099
  const theme = useTheme();
18019
- const s4 = useFieldStyles(theme);
18100
+ const s5 = useFieldStyles(theme);
18020
18101
  const frozen = useFrozen();
18021
18102
  return /* @__PURE__ */ jsxs5(
18022
18103
  Pressable3,
@@ -18025,20 +18106,20 @@ var Checkbox = ({ checked, onChange, label, invalid = false }) => {
18025
18106
  accessibilityState: { checked, disabled: frozen },
18026
18107
  disabled: frozen,
18027
18108
  onPress: () => onChange(!checked),
18028
- style: s4.checkboxRow,
18109
+ style: s5.checkboxRow,
18029
18110
  children: [
18030
18111
  /* @__PURE__ */ jsx7(
18031
18112
  View4,
18032
18113
  {
18033
18114
  style: [
18034
- s4.checkboxBox,
18035
- checked && s4.checkboxBoxChecked,
18036
- invalid && !checked && s4.checkboxBoxInvalid
18115
+ s5.checkboxBox,
18116
+ checked && s5.checkboxBoxChecked,
18117
+ invalid && !checked && s5.checkboxBoxInvalid
18037
18118
  ],
18038
- children: checked ? /* @__PURE__ */ jsx7(Text3, { style: s4.checkboxMark, children: "\u2713" }) : null
18119
+ children: checked ? /* @__PURE__ */ jsx7(Text3, { style: s5.checkboxMark, children: "\u2713" }) : null
18039
18120
  }
18040
18121
  ),
18041
- typeof label === "string" ? /* @__PURE__ */ jsx7(Text3, { style: s4.checkboxLabel, children: label }) : label
18122
+ typeof label === "string" ? /* @__PURE__ */ jsx7(Text3, { style: s5.checkboxLabel, children: label }) : label
18042
18123
  ]
18043
18124
  }
18044
18125
  );
@@ -18107,7 +18188,7 @@ function Select({
18107
18188
  const frozen = useFrozen();
18108
18189
  const disabled = disabledProp || frozen;
18109
18190
  const theme = useTheme();
18110
- const s4 = useSelectStyles(theme);
18191
+ const s5 = useSelectStyles(theme);
18111
18192
  const [open, setOpen] = useState28(false);
18112
18193
  const selected = options.find((o) => o.value === value6);
18113
18194
  return /* @__PURE__ */ jsxs6(Fragment, { children: [
@@ -18117,10 +18198,10 @@ function Select({
18117
18198
  accessibilityRole: "button",
18118
18199
  disabled,
18119
18200
  onPress: () => setOpen(true),
18120
- style: [s4.control, invalid && s4.controlInvalid, disabled && s4.controlDisabled],
18201
+ style: [s5.control, invalid && s5.controlInvalid, disabled && s5.controlDisabled],
18121
18202
  children: [
18122
- /* @__PURE__ */ jsx8(Text4, { style: [s4.value, !selected && s4.placeholder], numberOfLines: 1, children: selected ? selected.label : placeholder }),
18123
- /* @__PURE__ */ jsx8(Text4, { style: s4.chevron, children: "\u25BE" })
18203
+ /* @__PURE__ */ jsx8(Text4, { style: [s5.value, !selected && s5.placeholder], numberOfLines: 1, children: selected ? selected.label : placeholder }),
18204
+ /* @__PURE__ */ jsx8(Text4, { style: s5.chevron, children: "\u25BE" })
18124
18205
  ]
18125
18206
  }
18126
18207
  ),
@@ -18131,7 +18212,7 @@ function Select({
18131
18212
  transparent: true,
18132
18213
  animationType: "fade",
18133
18214
  onRequestClose: () => setOpen(false),
18134
- children: /* @__PURE__ */ jsx8(Pressable4, { style: s4.backdrop, onPress: () => setOpen(false), children: /* @__PURE__ */ jsx8(Pressable4, { style: s4.sheet, onPress: () => {
18215
+ children: /* @__PURE__ */ jsx8(Pressable4, { style: s5.backdrop, onPress: () => setOpen(false), children: /* @__PURE__ */ jsx8(Pressable4, { style: s5.sheet, onPress: () => {
18135
18216
  }, children: /* @__PURE__ */ jsx8(
18136
18217
  FlatList,
18137
18218
  {
@@ -18143,19 +18224,19 @@ function Select({
18143
18224
  return /* @__PURE__ */ jsxs6(
18144
18225
  Pressable4,
18145
18226
  {
18146
- style: s4.option,
18227
+ style: s5.option,
18147
18228
  onPress: () => {
18148
18229
  onChange(item.value);
18149
18230
  setOpen(false);
18150
18231
  },
18151
18232
  children: [
18152
- /* @__PURE__ */ jsx8(Text4, { style: [s4.optionLabel, isSelected && s4.optionLabelSelected], children: item.label }),
18153
- isSelected ? /* @__PURE__ */ jsx8(Text4, { style: s4.optionCheck, children: "\u2713" }) : null
18233
+ /* @__PURE__ */ jsx8(Text4, { style: [s5.optionLabel, isSelected && s5.optionLabelSelected], children: item.label }),
18234
+ isSelected ? /* @__PURE__ */ jsx8(Text4, { style: s5.optionCheck, children: "\u2713" }) : null
18154
18235
  ]
18155
18236
  }
18156
18237
  );
18157
18238
  },
18158
- ItemSeparatorComponent: () => /* @__PURE__ */ jsx8(View5, { style: s4.sep })
18239
+ ItemSeparatorComponent: () => /* @__PURE__ */ jsx8(View5, { style: s5.sep })
18159
18240
  }
18160
18241
  ) }) })
18161
18242
  }
@@ -18238,7 +18319,7 @@ var QuantitySelect = ({
18238
18319
  const frozen = useFrozen();
18239
18320
  const disabled = disabledProp || frozen;
18240
18321
  const theme = useTheme();
18241
- const s4 = useQuantityStyles(theme);
18322
+ const s5 = useQuantityStyles(theme);
18242
18323
  const lo = Math.max(1, min);
18243
18324
  const cap = Math.min(max, 50);
18244
18325
  const atZero = value6 <= 0;
@@ -18254,7 +18335,7 @@ var QuantitySelect = ({
18254
18335
  return /* @__PURE__ */ jsxs7(
18255
18336
  View6,
18256
18337
  {
18257
- style: s4.stepper,
18338
+ style: s5.stepper,
18258
18339
  accessible: Boolean(label),
18259
18340
  accessibilityRole: label ? "adjustable" : void 0,
18260
18341
  accessibilityLabel: label,
@@ -18273,11 +18354,11 @@ var QuantitySelect = ({
18273
18354
  accessibilityLabel: "Remove one",
18274
18355
  disabled: disabled || atZero,
18275
18356
  onPress: dec,
18276
- style: [s4.btn, (disabled || atZero) && s4.btnDisabled],
18277
- children: /* @__PURE__ */ jsx9(Text5, { style: s4.glyph, children: "\u2212" })
18357
+ style: [s5.btn, (disabled || atZero) && s5.btnDisabled],
18358
+ children: /* @__PURE__ */ jsx9(Text5, { style: s5.glyph, children: "\u2212" })
18278
18359
  }
18279
18360
  ),
18280
- /* @__PURE__ */ jsx9(Text5, { style: s4.value, children: value6 }),
18361
+ /* @__PURE__ */ jsx9(Text5, { style: s5.value, children: value6 }),
18281
18362
  /* @__PURE__ */ jsx9(
18282
18363
  Pressable5,
18283
18364
  {
@@ -18285,8 +18366,8 @@ var QuantitySelect = ({
18285
18366
  accessibilityLabel: "Add one",
18286
18367
  disabled: disabled || atCap,
18287
18368
  onPress: inc,
18288
- style: [s4.btn, (disabled || atCap) && s4.btnDisabled],
18289
- children: /* @__PURE__ */ jsx9(Text5, { style: s4.glyph, children: "+" })
18369
+ style: [s5.btn, (disabled || atCap) && s5.btnDisabled],
18370
+ children: /* @__PURE__ */ jsx9(Text5, { style: s5.glyph, children: "+" })
18290
18371
  }
18291
18372
  )
18292
18373
  ]
@@ -18323,8 +18404,8 @@ var useQuantityStyles = (theme) => useMemo17(
18323
18404
  import { useMemo as useMemo18 } from "react";
18324
18405
  import { StyleSheet as StyleSheet8, Text as Text6, View as View7 } from "react-native";
18325
18406
  import { jsx as jsx10, jsxs as jsxs8 } from "react/jsx-runtime";
18326
- var clock = (s4) => {
18327
- const v = Math.max(0, Math.floor(s4));
18407
+ var clock = (s5) => {
18408
+ const v = Math.max(0, Math.floor(s5));
18328
18409
  return v >= 3600 ? `${Math.floor(v / 3600)}:${String(Math.floor(v % 3600 / 60)).padStart(
18329
18410
  2,
18330
18411
  "0"
@@ -18332,11 +18413,11 @@ var clock = (s4) => {
18332
18413
  };
18333
18414
  var Timer = ({ seconds, urgentAt = 60, label }) => {
18334
18415
  const theme = useTheme();
18335
- const s4 = useTimerStyles(theme);
18416
+ const s5 = useTimerStyles(theme);
18336
18417
  const urgent = seconds <= urgentAt;
18337
- return /* @__PURE__ */ jsxs8(View7, { style: s4.row, children: [
18338
- label != null ? typeof label === "string" ? /* @__PURE__ */ jsx10(Text6, { style: s4.label, children: label }) : label : null,
18339
- /* @__PURE__ */ jsx10(Text6, { style: [s4.clock, urgent && s4.clockUrgent], children: clock(seconds) })
18418
+ return /* @__PURE__ */ jsxs8(View7, { style: s5.row, children: [
18419
+ label != null ? typeof label === "string" ? /* @__PURE__ */ jsx10(Text6, { style: s5.label, children: label }) : label : null,
18420
+ /* @__PURE__ */ jsx10(Text6, { style: [s5.clock, urgent && s5.clockUrgent], children: clock(seconds) })
18340
18421
  ] });
18341
18422
  };
18342
18423
  var useTimerStyles = (theme) => useMemo18(
@@ -18363,9 +18444,9 @@ var useTimerStyles = (theme) => useMemo18(
18363
18444
  import { useMemo as useMemo19, useState as useState29 } from "react";
18364
18445
  import { Pressable as Pressable6, StyleSheet as StyleSheet9, Text as Text7, View as View8 } from "react-native";
18365
18446
  import { jsx as jsx11, jsxs as jsxs9 } from "react/jsx-runtime";
18366
- var clock2 = (s4) => {
18367
- const m = String(Math.floor(s4 / 60)).padStart(2, "0");
18368
- const ss = String(s4 % 60).padStart(2, "0");
18447
+ var clock2 = (s5) => {
18448
+ const m = String(Math.floor(s5 / 60)).padStart(2, "0");
18449
+ const ss = String(s5 % 60).padStart(2, "0");
18369
18450
  return `${m}:${ss}`;
18370
18451
  };
18371
18452
  var TimerBanner = ({
@@ -18374,16 +18455,16 @@ var TimerBanner = ({
18374
18455
  message = "Please complete your purchase before the timer reaches zero."
18375
18456
  }) => {
18376
18457
  const theme = useTheme();
18377
- const s4 = useBannerStyles(theme);
18458
+ const s5 = useBannerStyles(theme);
18378
18459
  const [dismissed, setDismissed] = useState29(false);
18379
18460
  if (seconds === void 0 || seconds <= 0 || dismissed) return null;
18380
18461
  const urgent = seconds <= urgentAt;
18381
18462
  return (
18382
18463
  // `accessibilityLiveRegion="polite"` is the RN analogue of the web
18383
18464
  // `role="status"` — announce the countdown without stealing focus.
18384
- /* @__PURE__ */ jsxs9(View8, { accessibilityLiveRegion: "polite", style: [s4.banner, urgent && s4.bannerUrgent], children: [
18385
- /* @__PURE__ */ jsx11(Text7, { style: [s4.msg, urgent && s4.textUrgent], children: message }),
18386
- /* @__PURE__ */ jsx11(Text7, { style: [s4.clock, urgent && s4.textUrgent], children: clock2(seconds) }),
18465
+ /* @__PURE__ */ jsxs9(View8, { accessibilityLiveRegion: "polite", style: [s5.banner, urgent && s5.bannerUrgent], children: [
18466
+ /* @__PURE__ */ jsx11(Text7, { style: [s5.msg, urgent && s5.textUrgent], children: message }),
18467
+ /* @__PURE__ */ jsx11(Text7, { style: [s5.clock, urgent && s5.textUrgent], children: clock2(seconds) }),
18387
18468
  /* @__PURE__ */ jsx11(
18388
18469
  Pressable6,
18389
18470
  {
@@ -18391,8 +18472,8 @@ var TimerBanner = ({
18391
18472
  accessibilityLabel: "Dismiss",
18392
18473
  hitSlop: 8,
18393
18474
  onPress: () => setDismissed(true),
18394
- style: s4.close,
18395
- children: /* @__PURE__ */ jsx11(Text7, { style: [s4.closeGlyph, urgent && s4.textUrgent], children: "\xD7" })
18475
+ style: s5.close,
18476
+ children: /* @__PURE__ */ jsx11(Text7, { style: [s5.closeGlyph, urgent && s5.textUrgent], children: "\xD7" })
18396
18477
  }
18397
18478
  )
18398
18479
  ] })
@@ -18457,14 +18538,14 @@ var PaymentMethods = ({
18457
18538
  }) => {
18458
18539
  const theme = useTheme();
18459
18540
  const frozen = useFrozen();
18460
- const s4 = useStyles3(theme);
18461
- return /* @__PURE__ */ jsx12(View9, { style: s4.list, accessibilityRole: "radiogroup", children: options.map((option) => {
18541
+ const s5 = useStyles3(theme);
18542
+ return /* @__PURE__ */ jsx12(View9, { style: s5.list, accessibilityRole: "radiogroup", children: options.map((option) => {
18462
18543
  var _a, _b;
18463
18544
  const active2 = option.value === selected;
18464
18545
  const extraValue = option.extra === "phoneNumber" ? (_a = extraValues[option.value]) == null ? void 0 : _a.phoneNumber : (_b = extraValues[option.value]) == null ? void 0 : _b.cashtag;
18465
18546
  const extraInvalid = Boolean(active2 && option.extra && showValidation) && !(extraValue == null ? void 0 : extraValue.trim());
18466
18547
  const showBody = active2 && (option.value === inputSlotFor || Boolean(option.extra));
18467
- return /* @__PURE__ */ jsxs10(View9, { style: [s4.row, active2 && s4.rowActive], children: [
18548
+ return /* @__PURE__ */ jsxs10(View9, { style: [s5.row, active2 && s5.rowActive], children: [
18468
18549
  /* @__PURE__ */ jsxs10(
18469
18550
  Pressable7,
18470
18551
  {
@@ -18474,23 +18555,23 @@ var PaymentMethods = ({
18474
18555
  onPress: () => {
18475
18556
  if (!frozen) onSelect(option.value);
18476
18557
  },
18477
- style: s4.rowHead,
18558
+ style: s5.rowHead,
18478
18559
  children: [
18479
- /* @__PURE__ */ jsx12(View9, { style: [s4.radio, active2 && s4.radioActive], children: active2 ? /* @__PURE__ */ jsx12(View9, { style: s4.radioDot }) : null }),
18560
+ /* @__PURE__ */ jsx12(View9, { style: [s5.radio, active2 && s5.radioActive], children: active2 ? /* @__PURE__ */ jsx12(View9, { style: s5.radioDot }) : null }),
18480
18561
  option.iconUrl ? /* @__PURE__ */ jsx12(
18481
18562
  Image,
18482
18563
  {
18483
18564
  source: { uri: option.iconUrl },
18484
- style: s4.icon,
18565
+ style: s5.icon,
18485
18566
  resizeMode: "contain",
18486
18567
  accessibilityIgnoresInvertColors: true
18487
18568
  }
18488
18569
  ) : null,
18489
- /* @__PURE__ */ jsx12(Text8, { style: s4.rowLabel, children: option.label })
18570
+ /* @__PURE__ */ jsx12(Text8, { style: s5.rowLabel, children: option.label })
18490
18571
  ]
18491
18572
  }
18492
18573
  ),
18493
- showBody ? /* @__PURE__ */ jsxs10(View9, { style: s4.slot, children: [
18574
+ showBody ? /* @__PURE__ */ jsxs10(View9, { style: s5.slot, children: [
18494
18575
  option.value === inputSlotFor ? children : null,
18495
18576
  option.extra ? /* @__PURE__ */ jsx12(
18496
18577
  Field,
@@ -18642,7 +18723,7 @@ var Tickets = ({
18642
18723
  var _a, _b, _c, _d, _e, _f, _g;
18643
18724
  const checkout = useCheckoutContext();
18644
18725
  const theme = useTheme();
18645
- const s4 = useTicketStyles(theme);
18726
+ const s5 = useTicketStyles(theme);
18646
18727
  const ticketsQuery = hooks_exports.useTicketsWithMeta(eventId);
18647
18728
  const bundleWait = hooks_exports.useTicketGatewayWait(checkout.store);
18648
18729
  const bundleStarting = bundleWait !== null;
@@ -18777,13 +18858,13 @@ var Tickets = ({
18777
18858
  const ticketIndex = tickets.findIndex((candidate) => candidate.id === t.id);
18778
18859
  const previousTicket = ticketIndex > 0 ? tickets[ticketIndex - 1] : void 0;
18779
18860
  const startsNamedGroup = Boolean(t.groupName) && t.groupName !== (previousTicket == null ? void 0 : previousTicket.groupName);
18780
- const groupHeading = startsNamedGroup ? /* @__PURE__ */ jsx13(Text9, { style: s4.group, children: t.groupName }) : t.id === firstTableId ? /* @__PURE__ */ jsxs11(Fragment3, { children: [
18861
+ const groupHeading = startsNamedGroup ? /* @__PURE__ */ jsx13(Text9, { style: s5.group, children: t.groupName }) : t.id === firstTableId ? /* @__PURE__ */ jsxs11(Fragment3, { children: [
18781
18862
  /* @__PURE__ */ jsx13(Divider, {}),
18782
- /* @__PURE__ */ jsx13(Text9, { style: s4.group, children: "Reserve tables" })
18863
+ /* @__PURE__ */ jsx13(Text9, { style: s5.group, children: "Reserve tables" })
18783
18864
  ] }) : null;
18784
18865
  return /* @__PURE__ */ jsxs11(Fragment2, { children: [
18785
18866
  groupHeading,
18786
- /* @__PURE__ */ jsxs11(View10, { style: renderTicket ? void 0 : s4.rowWrap, children: [
18867
+ /* @__PURE__ */ jsxs11(View10, { style: renderTicket ? void 0 : s5.rowWrap, children: [
18787
18868
  renderTicket ? renderTicket({
18788
18869
  ticket: t,
18789
18870
  quantity: (_a2 = qty[t.id]) != null ? _a2 : 0,
@@ -18794,36 +18875,36 @@ var Tickets = ({
18794
18875
  if (!checkout.orderFixed) selectQty(t, value6);
18795
18876
  }
18796
18877
  }) : /* @__PURE__ */ jsxs11(Fragment3, { children: [
18797
- /* @__PURE__ */ jsxs11(View10, { style: s4.row, children: [
18798
- /* @__PURE__ */ jsxs11(View10, { style: s4.info, children: [
18799
- /* @__PURE__ */ jsxs11(View10, { style: s4.nameRow, children: [
18800
- /* @__PURE__ */ jsx13(Text9, { style: s4.name, children: t.name }),
18878
+ /* @__PURE__ */ jsxs11(View10, { style: s5.row, children: [
18879
+ /* @__PURE__ */ jsxs11(View10, { style: s5.info, children: [
18880
+ /* @__PURE__ */ jsxs11(View10, { style: s5.nameRow, children: [
18881
+ /* @__PURE__ */ jsx13(Text9, { style: s5.name, children: t.name }),
18801
18882
  t.descriptionRich ? /* @__PURE__ */ jsx13(
18802
18883
  Pressable8,
18803
18884
  {
18804
18885
  accessibilityRole: "button",
18805
18886
  onPress: () => setVisibleDescription((cur) => cur === t.id ? null : t.id),
18806
- children: /* @__PURE__ */ jsx13(Text9, { style: s4.infoToggle, children: visibleDescription === t.id ? "Hide info" : "View info" })
18887
+ children: /* @__PURE__ */ jsx13(Text9, { style: s5.infoToggle, children: visibleDescription === t.id ? "Hide info" : "View info" })
18807
18888
  }
18808
18889
  ) : null
18809
18890
  ] }),
18810
- /* @__PURE__ */ jsxs11(View10, { style: s4.priceRow, children: [
18811
- discounted && original != null ? /* @__PURE__ */ jsx13(Text9, { style: s4.oldPrice, children: money(sym, original) }) : null,
18812
- /* @__PURE__ */ jsx13(Text9, { style: [s4.amount, isFree && s4.amountFree], children: isFree ? "FREE" : money(sym, t.price) }),
18813
- t.isTable ? /* @__PURE__ */ jsx13(Text9, { style: s4.perTable, children: "\xB7 per table" }) : null,
18814
- !isFree && !t.soldOut ? /* @__PURE__ */ jsxs11(Text9, { style: s4.fees, children: [
18891
+ /* @__PURE__ */ jsxs11(View10, { style: s5.priceRow, children: [
18892
+ discounted && original != null ? /* @__PURE__ */ jsx13(Text9, { style: s5.oldPrice, children: money(sym, original) }) : null,
18893
+ /* @__PURE__ */ jsx13(Text9, { style: [s5.amount, isFree && s5.amountFree], children: isFree ? "FREE" : money(sym, t.price) }),
18894
+ t.isTable ? /* @__PURE__ */ jsx13(Text9, { style: s5.perTable, children: "\xB7 per table" }) : null,
18895
+ !isFree && !t.soldOut ? /* @__PURE__ */ jsxs11(Text9, { style: s5.fees, children: [
18815
18896
  "(",
18816
18897
  money(sym, t.priceWithFees),
18817
18898
  " with fees)"
18818
18899
  ] }) : null,
18819
- t.depositPercent != null ? /* @__PURE__ */ jsxs11(Text9, { style: s4.deposit, children: [
18900
+ t.depositPercent != null ? /* @__PURE__ */ jsxs11(Text9, { style: s5.deposit, children: [
18820
18901
  t.depositPercent.toFixed(2),
18821
18902
  "% DEPOSIT"
18822
18903
  ] }) : null
18823
18904
  ] })
18824
18905
  ] }),
18825
- seatMapRow(t) ? null : unavailable ? /* @__PURE__ */ jsx13(Text9, { style: s4.soldout, children: t.soldOut ? "Sold out" : notStarted ? "Sales not started" : "Sales Ended" }) : /* @__PURE__ */ jsxs11(View10, { style: s4.qtyWrap, children: [
18826
- t.isTable ? /* @__PURE__ */ jsx13(Text9, { style: s4.guests, children: "Guests" }) : null,
18906
+ seatMapRow(t) ? null : unavailable ? /* @__PURE__ */ jsx13(Text9, { style: s5.soldout, children: t.soldOut ? "Sold out" : notStarted ? "Sales not started" : "Sales Ended" }) : /* @__PURE__ */ jsxs11(View10, { style: s5.qtyWrap, children: [
18907
+ t.isTable ? /* @__PURE__ */ jsx13(Text9, { style: s5.guests, children: "Guests" }) : null,
18827
18908
  /* @__PURE__ */ jsx13(
18828
18909
  QuantitySelect,
18829
18910
  {
@@ -18836,7 +18917,7 @@ var Tickets = ({
18836
18917
  )
18837
18918
  ] })
18838
18919
  ] }),
18839
- t.descriptionRich && visibleDescription === t.id ? /* @__PURE__ */ jsx13(Text9, { style: s4.description, children: htmlToPlainText(t.descriptionRich) }) : null
18920
+ t.descriptionRich && visibleDescription === t.id ? /* @__PURE__ */ jsx13(Text9, { style: s5.description, children: htmlToPlainText(t.descriptionRich) }) : null
18840
18921
  ] }),
18841
18922
  canWaitlist ? wlOpen[t.id] ? /* @__PURE__ */ jsx13(
18842
18923
  WaitingListForm,
@@ -18849,7 +18930,7 @@ var Tickets = ({
18849
18930
  {
18850
18931
  accessibilityRole: "button",
18851
18932
  onPress: () => setWlOpen((w) => ({ ...w, [t.id]: true })),
18852
- children: /* @__PURE__ */ jsx13(Text9, { style: s4.wlToggle, children: "Join the waiting list" })
18933
+ children: /* @__PURE__ */ jsx13(Text9, { style: s5.wlToggle, children: "Join the waiting list" })
18853
18934
  }
18854
18935
  ) : null
18855
18936
  ] })
@@ -18867,10 +18948,10 @@ var Tickets = ({
18867
18948
  const continueTitle = checkout.isBusy ? "Reserving\u2026" : selectionIsTable ? "Reserve tables" : buttonLabel;
18868
18949
  return /* @__PURE__ */ jsx13(FrozenFields, { frozen: checkout.orderFixed, children: /* @__PURE__ */ jsxs11(Container, { children: [
18869
18950
  title ? /* @__PURE__ */ jsx13(SectionHeader, { title }) : null,
18870
- listQuery.isLoading ? /* @__PURE__ */ jsx13(View10, { style: s4.loading, children: /* @__PURE__ */ jsx13(Loader, {}) }) : null,
18951
+ listQuery.isLoading ? /* @__PURE__ */ jsx13(View10, { style: s5.loading, children: /* @__PURE__ */ jsx13(Loader, {}) }) : null,
18871
18952
  listQuery.error ? /* @__PURE__ */ jsx13(ErrorText, { children: listQuery.error.message }) : null,
18872
- isTimeSlot && dates.length > 0 ? /* @__PURE__ */ jsxs11(View10, { style: s4.selectBlock, children: [
18873
- /* @__PURE__ */ jsx13(Text9, { style: s4.selectLabel, children: "Date" }),
18953
+ isTimeSlot && dates.length > 0 ? /* @__PURE__ */ jsxs11(View10, { style: s5.selectBlock, children: [
18954
+ /* @__PURE__ */ jsx13(Text9, { style: s5.selectLabel, children: "Date" }),
18874
18955
  /* @__PURE__ */ jsx13(
18875
18956
  Select,
18876
18957
  {
@@ -18883,8 +18964,8 @@ var Tickets = ({
18883
18964
  }
18884
18965
  )
18885
18966
  ] }) : null,
18886
- currency && currency.available.length > 1 ? /* @__PURE__ */ jsxs11(View10, { style: s4.selectBlock, children: [
18887
- /* @__PURE__ */ jsx13(Text9, { style: s4.selectLabel, children: "Currency" }),
18967
+ currency && currency.available.length > 1 ? /* @__PURE__ */ jsxs11(View10, { style: s5.selectBlock, children: [
18968
+ /* @__PURE__ */ jsx13(Text9, { style: s5.selectLabel, children: "Currency" }),
18888
18969
  /* @__PURE__ */ jsx13(
18889
18970
  Select,
18890
18971
  {
@@ -18899,10 +18980,10 @@ var Tickets = ({
18899
18980
  ] }) : null,
18900
18981
  isTimeSlot && !slotQuery.isLoading && tickets.length === 0 && slotDate ? /* @__PURE__ */ jsx13(MutedText, { children: "No sessions available on this date." }) : null,
18901
18982
  isTimeSlot ? timeGroups.map((g) => /* @__PURE__ */ jsxs11(Fragment2, { children: [
18902
- g.time ? /* @__PURE__ */ jsx13(Text9, { style: s4.slotTime, children: g.time }) : null,
18983
+ g.time ? /* @__PURE__ */ jsx13(Text9, { style: s5.slotTime, children: g.time }) : null,
18903
18984
  g.items.map(renderRow)
18904
18985
  ] }, g.time)) : tickets.map(renderRow),
18905
- showCodeInput ? /* @__PURE__ */ jsx13(View10, { style: s4.promo, children: !isAccess && !promoOpen ? /* @__PURE__ */ jsx13(Pressable8, { accessibilityRole: "button", onPress: () => setPromoOpen(true), children: /* @__PURE__ */ jsx13(Text9, { style: s4.promoToggle, children: "Got a promo code? Tap here" }) }) : /* @__PURE__ */ jsxs11(Fragment3, { children: [
18986
+ showCodeInput ? /* @__PURE__ */ jsx13(View10, { style: s5.promo, children: !isAccess && !promoOpen ? /* @__PURE__ */ jsx13(Pressable8, { accessibilityRole: "button", onPress: () => setPromoOpen(true), children: /* @__PURE__ */ jsx13(Text9, { style: s5.promoToggle, children: "Got a promo code? Tap here" }) }) : /* @__PURE__ */ jsxs11(Fragment3, { children: [
18906
18987
  /* @__PURE__ */ jsx13(Field, { children: /* @__PURE__ */ jsx13(
18907
18988
  Input,
18908
18989
  {
@@ -19467,7 +19548,7 @@ var AddOns = ({
19467
19548
  var _a, _b;
19468
19549
  const checkout = useCheckoutContext();
19469
19550
  const theme = useTheme();
19470
- const s4 = useAddonStyles(theme);
19551
+ const s5 = useAddonStyles(theme);
19471
19552
  const {
19472
19553
  query: addonsQuery,
19473
19554
  addons,
@@ -19483,15 +19564,15 @@ var AddOns = ({
19483
19564
  save,
19484
19565
  skip
19485
19566
  } = hooks_exports.useAddOnSelection(eventId, checkout, { onContinue, onSkip });
19486
- const head = /* @__PURE__ */ jsxs15(View14, { style: s4.head, children: [
19487
- eyebrow ? /* @__PURE__ */ jsx17(Text11, { style: s4.eyebrow, children: eyebrow }) : null,
19488
- /* @__PURE__ */ jsx17(Text11, { style: s4.heading, children: heading }),
19489
- onSkip && !hasRequired ? /* @__PURE__ */ jsx17(Pressable9, { accessibilityRole: "button", onPress: skip, style: s4.skipBtn, children: /* @__PURE__ */ jsx17(Text11, { style: s4.skip, children: "Skip" }) }) : null
19567
+ const head = /* @__PURE__ */ jsxs15(View14, { style: s5.head, children: [
19568
+ eyebrow ? /* @__PURE__ */ jsx17(Text11, { style: s5.eyebrow, children: eyebrow }) : null,
19569
+ /* @__PURE__ */ jsx17(Text11, { style: s5.heading, children: heading }),
19570
+ onSkip && !hasRequired ? /* @__PURE__ */ jsx17(Pressable9, { accessibilityRole: "button", onPress: skip, style: s5.skipBtn, children: /* @__PURE__ */ jsx17(Text11, { style: s5.skip, children: "Skip" }) }) : null
19490
19571
  ] });
19491
19572
  if (addonsQuery.isLoading) {
19492
19573
  return /* @__PURE__ */ jsxs15(Card, { children: [
19493
19574
  head,
19494
- /* @__PURE__ */ jsx17(View14, { style: s4.sectionLoader, children: /* @__PURE__ */ jsx17(Loader, {}) })
19575
+ /* @__PURE__ */ jsx17(View14, { style: s5.sectionLoader, children: /* @__PURE__ */ jsx17(Loader, {}) })
19495
19576
  ] });
19496
19577
  }
19497
19578
  if (addonsQuery.isError)
@@ -19514,30 +19595,30 @@ var AddOns = ({
19514
19595
  const selectedCount = Object.values(qty).filter((n) => n > 0).length;
19515
19596
  return /* @__PURE__ */ jsx17(FrozenFields, { frozen: checkout.orderFixed, children: /* @__PURE__ */ jsxs15(Card, { children: [
19516
19597
  head,
19517
- /* @__PURE__ */ jsx17(Text11, { style: s4.subtitle, children: "PLEASE SELECT FROM THE OPTIONAL ADD-ONS BELOW" }),
19598
+ /* @__PURE__ */ jsx17(Text11, { style: s5.subtitle, children: "PLEASE SELECT FROM THE OPTIONAL ADD-ONS BELOW" }),
19518
19599
  groups.map((g, gi) => {
19519
19600
  var _a2;
19520
19601
  return /* @__PURE__ */ jsxs15(Fragment6, { children: [
19521
- g.heading ? /* @__PURE__ */ jsx17(Text11, { style: s4.group, children: g.heading }) : null,
19602
+ g.heading ? /* @__PURE__ */ jsx17(Text11, { style: s5.group, children: g.heading }) : null,
19522
19603
  g.items.map((a) => {
19523
19604
  var _a3, _b2;
19524
19605
  const n = (_a3 = qty[a.id]) != null ? _a3 : 0;
19525
19606
  const group = fieldGroups[a.id];
19526
19607
  const desc = a.description ? htmlToPlainText(a.description) : "";
19527
- return /* @__PURE__ */ jsxs15(View14, { style: s4.item, children: [
19528
- /* @__PURE__ */ jsxs15(View14, { style: s4.row, children: [
19529
- /* @__PURE__ */ jsxs15(View14, { style: s4.info, children: [
19530
- /* @__PURE__ */ jsxs15(Text11, { style: s4.name, children: [
19608
+ return /* @__PURE__ */ jsxs15(View14, { style: s5.item, children: [
19609
+ /* @__PURE__ */ jsxs15(View14, { style: s5.row, children: [
19610
+ /* @__PURE__ */ jsxs15(View14, { style: s5.info, children: [
19611
+ /* @__PURE__ */ jsxs15(Text11, { style: s5.name, children: [
19531
19612
  a.name,
19532
- a.required ? /* @__PURE__ */ jsx17(Text11, { style: s4.req, children: " \xB7 required" }) : null
19613
+ a.required ? /* @__PURE__ */ jsx17(Text11, { style: s5.req, children: " \xB7 required" }) : null
19533
19614
  ] }),
19534
- /* @__PURE__ */ jsxs15(Text11, { style: s4.price, children: [
19615
+ /* @__PURE__ */ jsxs15(Text11, { style: s5.price, children: [
19535
19616
  money2(a.currency, a.price),
19536
- a.feeIncluded ? /* @__PURE__ */ jsx17(Text11, { style: s4.priceNote, children: " incl. fees" }) : null
19617
+ a.feeIncluded ? /* @__PURE__ */ jsx17(Text11, { style: s5.priceNote, children: " incl. fees" }) : null
19537
19618
  ] }),
19538
- desc ? /* @__PURE__ */ jsx17(Text11, { style: s4.desc, children: desc }) : null
19619
+ desc ? /* @__PURE__ */ jsx17(Text11, { style: s5.desc, children: desc }) : null
19539
19620
  ] }),
19540
- soldOut(a) ? /* @__PURE__ */ jsx17(Text11, { style: s4.soldOut, children: "Sold out" }) : /* @__PURE__ */ jsx17(
19621
+ soldOut(a) ? /* @__PURE__ */ jsx17(Text11, { style: s5.soldOut, children: "Sold out" }) : /* @__PURE__ */ jsx17(
19541
19622
  QuantitySelect,
19542
19623
  {
19543
19624
  value: n,
@@ -19547,7 +19628,7 @@ var AddOns = ({
19547
19628
  }
19548
19629
  )
19549
19630
  ] }),
19550
- n > 0 && group ? /* @__PURE__ */ jsx17(View14, { style: s4.fields, children: /* @__PURE__ */ jsx17(
19631
+ n > 0 && group ? /* @__PURE__ */ jsx17(View14, { style: s5.fields, children: /* @__PURE__ */ jsx17(
19551
19632
  CustomFieldGroupFields,
19552
19633
  {
19553
19634
  group,
@@ -19681,7 +19762,7 @@ var Bundles = ({
19681
19762
  var _a, _b, _c, _d, _e, _f, _g;
19682
19763
  const checkout = useCheckoutContext();
19683
19764
  const theme = useTheme();
19684
- const s4 = useBundleStyles(theme);
19765
+ const s5 = useBundleStyles(theme);
19685
19766
  const t = translate2 != null ? translate2 : createTranslator({ locale, messages });
19686
19767
  const flow = hooks_exports.useBundleFlow(rnConfirmer, eventId, {
19687
19768
  claimCard: claimCardField,
@@ -19697,7 +19778,7 @@ var Bundles = ({
19697
19778
  onPurchased
19698
19779
  });
19699
19780
  if (flow.view === "loading") {
19700
- return /* @__PURE__ */ jsx18(Card, { children: /* @__PURE__ */ jsx18(View15, { style: s4.loader, children: /* @__PURE__ */ jsx18(Loader, {}) }) });
19781
+ return /* @__PURE__ */ jsx18(Card, { children: /* @__PURE__ */ jsx18(View15, { style: s5.loader, children: /* @__PURE__ */ jsx18(Loader, {}) }) });
19701
19782
  }
19702
19783
  if (flow.view === "catalogError") {
19703
19784
  return /* @__PURE__ */ jsxs16(Card, { children: [
@@ -19715,11 +19796,11 @@ var Bundles = ({
19715
19796
  ] });
19716
19797
  }
19717
19798
  if (flow.view === "hidden") return null;
19718
- const title = /* @__PURE__ */ jsx18(Text12, { style: s4.heading, children: heading != null ? heading : t("bundles.heading") });
19799
+ const title = /* @__PURE__ */ jsx18(Text12, { style: s5.heading, children: heading != null ? heading : t("bundles.heading") });
19719
19800
  if (flow.view === "redirecting") {
19720
19801
  return /* @__PURE__ */ jsxs16(Card, { children: [
19721
19802
  title,
19722
- /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("bundles.redirecting") }),
19803
+ /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("bundles.redirecting") }),
19723
19804
  /* @__PURE__ */ jsx18(Loader, {})
19724
19805
  ] });
19725
19806
  }
@@ -19727,10 +19808,10 @@ var Bundles = ({
19727
19808
  const { result: result2 } = flow;
19728
19809
  return /* @__PURE__ */ jsxs16(Card, { children: [
19729
19810
  title,
19730
- /* @__PURE__ */ jsx18(Text12, { style: s4.strong, children: t("bundles.done.title") }),
19731
- /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: result2.pending ? t("bundles.done.pending") : result2.email ? t("bundles.done.email", { email: result2.email }) : t("bundles.done.emailUnknown") }),
19732
- /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: t("bundles.done.order", { orderHash: result2.orderHash }) }),
19733
- flow.gatewayWait ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t(flow.gatewayWait) }) : null,
19811
+ /* @__PURE__ */ jsx18(Text12, { style: s5.strong, children: t("bundles.done.title") }),
19812
+ /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: result2.pending ? t("bundles.done.pending") : result2.email ? t("bundles.done.email", { email: result2.email }) : t("bundles.done.emailUnknown") }),
19813
+ /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: t("bundles.done.order", { orderHash: result2.orderHash }) }),
19814
+ flow.gatewayWait ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t(flow.gatewayWait) }) : null,
19734
19815
  /* @__PURE__ */ jsx18(
19735
19816
  Button,
19736
19817
  {
@@ -19747,8 +19828,8 @@ var Bundles = ({
19747
19828
  const amount = money3(flow.payAmount.currency || flow.currency, flow.payAmount.amount);
19748
19829
  return /* @__PURE__ */ jsxs16(Card, { children: [
19749
19830
  title,
19750
- flow.notice ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t(flow.notice.key, flow.notice.values) }) : null,
19751
- /* @__PURE__ */ jsx18(Text12, { style: s4.strong, children: t("bundles.buyerHeading") }),
19831
+ flow.notice ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t(flow.notice.key, flow.notice.values) }) : null,
19832
+ /* @__PURE__ */ jsx18(Text12, { style: s5.strong, children: t("bundles.buyerHeading") }),
19752
19833
  /* @__PURE__ */ jsx18(Field, { label: t("bundles.firstName"), children: /* @__PURE__ */ jsx18(
19753
19834
  Input,
19754
19835
  {
@@ -19778,8 +19859,8 @@ var Bundles = ({
19778
19859
  }
19779
19860
  ) }),
19780
19861
  flow.slots.length > 0 ? /* @__PURE__ */ jsxs16(Fragment7, { children: [
19781
- /* @__PURE__ */ jsx18(Text12, { style: s4.strong, children: t("bundles.holdersHeading") }),
19782
- !flow.namesRequired ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: t("bundles.holdersOptional") }) : null,
19862
+ /* @__PURE__ */ jsx18(Text12, { style: s5.strong, children: t("bundles.holdersHeading") }),
19863
+ !flow.namesRequired ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: t("bundles.holdersOptional") }) : null,
19783
19864
  flow.slots.map((slot) => {
19784
19865
  var _a2, _b2;
19785
19866
  const value6 = flow.holderValue(slot);
@@ -19810,17 +19891,17 @@ var Bundles = ({
19810
19891
  })
19811
19892
  ] }) : null,
19812
19893
  flow.problems.map((key4) => /* @__PURE__ */ jsx18(ErrorText, { children: t(key4) }, key4)),
19813
- flow.awaitingCard ? /* @__PURE__ */ jsxs16(View15, { style: s4.card, children: [
19814
- /* @__PURE__ */ jsx18(Text12, { style: s4.strong, children: t("bundles.cardHeading") }),
19894
+ flow.awaitingCard ? /* @__PURE__ */ jsxs16(View15, { style: s5.card, children: [
19895
+ /* @__PURE__ */ jsx18(Text12, { style: s5.strong, children: t("bundles.cardHeading") }),
19815
19896
  flow.cardElsewhere ? /* @__PURE__ */ jsxs16(Fragment7, { children: [
19816
- /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: t("bundles.payingElsewhere") }),
19897
+ /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: t("bundles.payingElsewhere") }),
19817
19898
  /* @__PURE__ */ jsx18(Button, { variant: "ghost", onPress: flow.payHere, children: t("bundles.payHere") })
19818
19899
  ] }) : flow.cardFailed ? /* @__PURE__ */ jsx18(Button, { variant: "ghost", onPress: flow.retryCard, children: t("bundles.retryCard") }) : flow.cardReady && visible ? /* @__PURE__ */ jsx18(CardInput, { owner: flow.cardOwner, visible }) : /* @__PURE__ */ jsx18(Loader, {})
19819
19900
  ] }) : null,
19820
- flow.stillSaving ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("common.stillSaving") }) : null,
19821
- flow.checkingAttempt ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("bundles.checkingAttempt") }) : null,
19822
- flow.waitingForTickets ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("bundles.waitTickets") }) : null,
19823
- flow.waitingForBundle ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t((_g = flow.gatewayWait) != null ? _g : "bundles.waitOtherBundle") }) : null,
19901
+ flow.stillSaving ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("common.stillSaving") }) : null,
19902
+ flow.checkingAttempt ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("bundles.checkingAttempt") }) : null,
19903
+ flow.waitingForTickets ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("bundles.waitTickets") }) : null,
19904
+ flow.waitingForBundle ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t((_g = flow.gatewayWait) != null ? _g : "bundles.waitOtherBundle") }) : null,
19824
19905
  /* @__PURE__ */ jsx18(
19825
19906
  Button,
19826
19907
  {
@@ -19855,13 +19936,13 @@ var Bundles = ({
19855
19936
  const ticketsInCart = checkout.selections.length > 0;
19856
19937
  return /* @__PURE__ */ jsxs16(Card, { children: [
19857
19938
  title,
19858
- /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: t("bundles.subtitle") }),
19859
- flow.notice ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t(flow.notice.key, flow.notice.values) }) : null,
19939
+ /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: t("bundles.subtitle") }),
19940
+ flow.notice ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t(flow.notice.key, flow.notice.values) }) : null,
19860
19941
  flow.view === "heldOrder" ? /* @__PURE__ */ jsxs16(Fragment7, { children: [
19861
- /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("bundles.heldOrder") }),
19942
+ /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("bundles.heldOrder") }),
19862
19943
  flow.error ? /* @__PURE__ */ jsx18(ErrorText, { children: t(flow.error) }) : null,
19863
- flow.checkingAttempt ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("bundles.checkingAttempt") }) : null,
19864
- flow.gatewayWait ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, accessibilityLiveRegion: "polite", children: t(flow.gatewayWait) }) : null,
19944
+ flow.checkingAttempt ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("bundles.checkingAttempt") }) : null,
19945
+ flow.gatewayWait ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, accessibilityLiveRegion: "polite", children: t(flow.gatewayWait) }) : null,
19865
19946
  /* @__PURE__ */ jsx18(
19866
19947
  Button,
19867
19948
  {
@@ -19886,18 +19967,18 @@ var Bundles = ({
19886
19967
  const stock = bundleAvailabilityCopy(bundle);
19887
19968
  const contents = bundleContentsLine(bundle);
19888
19969
  const desc = htmlToPlainText((_a2 = bundle.description) != null ? _a2 : "");
19889
- return /* @__PURE__ */ jsxs16(View15, { style: [s4.item, { borderTopColor: theme.border }], children: [
19890
- /* @__PURE__ */ jsxs16(View15, { style: s4.info, children: [
19891
- /* @__PURE__ */ jsx18(Text12, { style: s4.name, children: bundle.name }),
19892
- /* @__PURE__ */ jsx18(Text12, { style: s4.price, children: money3(bundle.currency, bundle.price) }),
19893
- contents ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: t("bundles.includes", { contents }) }) : null,
19894
- bundle.bookingFee > 0 && /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: t("bundles.bookingFee", {
19970
+ return /* @__PURE__ */ jsxs16(View15, { style: [s5.item, { borderTopColor: theme.border }], children: [
19971
+ /* @__PURE__ */ jsxs16(View15, { style: s5.info, children: [
19972
+ /* @__PURE__ */ jsx18(Text12, { style: s5.name, children: bundle.name }),
19973
+ /* @__PURE__ */ jsx18(Text12, { style: s5.price, children: money3(bundle.currency, bundle.price) }),
19974
+ contents ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: t("bundles.includes", { contents }) }) : null,
19975
+ bundle.bookingFee > 0 && /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: t("bundles.bookingFee", {
19895
19976
  amount: money3(bundle.currency, bundle.bookingFee)
19896
19977
  }) }),
19897
- desc ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: desc }) : null,
19898
- stock && stock.key !== "bundles.soldOut" ? /* @__PURE__ */ jsx18(Text12, { style: [s4.muted, s4.stock], children: t(stock.key, stock.values) }) : null
19978
+ desc ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: desc }) : null,
19979
+ stock && stock.key !== "bundles.soldOut" ? /* @__PURE__ */ jsx18(Text12, { style: [s5.muted, s5.stock], children: t(stock.key, stock.values) }) : null
19899
19980
  ] }),
19900
- range.max === 0 ? /* @__PURE__ */ jsx18(Text12, { style: s4.soldOut, children: t("bundles.soldOut") }) : /* @__PURE__ */ jsx18(
19981
+ range.max === 0 ? /* @__PURE__ */ jsx18(Text12, { style: s5.soldOut, children: t("bundles.soldOut") }) : /* @__PURE__ */ jsx18(
19901
19982
  QuantitySelect,
19902
19983
  {
19903
19984
  label: t("bundles.quantity", { name: bundle.name }),
@@ -19909,8 +19990,8 @@ var Bundles = ({
19909
19990
  )
19910
19991
  ] }, bundle.id);
19911
19992
  }),
19912
- anySelected ? /* @__PURE__ */ jsx18(Text12, { style: s4.strong, children: t("bundles.total", { amount: money3(flow.currency, flow.total) }) }) : null,
19913
- anySelected && ticketsInCart ? /* @__PURE__ */ jsx18(Text12, { style: s4.muted, children: t("bundles.boughtSeparately") }) : null,
19993
+ anySelected ? /* @__PURE__ */ jsx18(Text12, { style: s5.strong, children: t("bundles.total", { amount: money3(flow.currency, flow.total) }) }) : null,
19994
+ anySelected && ticketsInCart ? /* @__PURE__ */ jsx18(Text12, { style: s5.muted, children: t("bundles.boughtSeparately") }) : null,
19914
19995
  /* @__PURE__ */ jsx18(Button, { onPress: flow.continueToDetails, disabled: !anySelected, children: t("bundles.continue") })
19915
19996
  ] });
19916
19997
  };
@@ -20458,7 +20539,7 @@ var BillingInfo = ({
20458
20539
  const checkout = useCheckoutContext();
20459
20540
  const validation = useCheckoutValidation();
20460
20541
  const theme = useTheme();
20461
- const s4 = useStyles4(theme);
20542
+ const s5 = useStyles4(theme);
20462
20543
  const profile = hooks_exports.useCheckoutBuyerProfile(eventId);
20463
20544
  const event = hooks_exports.useEvent(eventId);
20464
20545
  const combined = !onContinue;
@@ -20730,9 +20811,9 @@ var BillingInfo = ({
20730
20811
  return /* @__PURE__ */ jsxs21(FrozenFields, { frozen: checkout.orderFixed, children: [
20731
20812
  /* @__PURE__ */ jsxs21(Card, { children: [
20732
20813
  /* @__PURE__ */ jsx24(SectionHeader, { title: heading }),
20733
- onLogin && !checkout.isLoggedIn ? /* @__PURE__ */ jsxs21(View20, { style: s4.loginRow, children: [
20734
- /* @__PURE__ */ jsx24(Text14, { style: s4.note, children: "Login & skip ahead:" }),
20735
- /* @__PURE__ */ jsx24(Pressable10, { onPress: () => onLogin(), children: /* @__PURE__ */ jsx24(Text14, { style: s4.link, children: "Login" }) })
20814
+ onLogin && !checkout.isLoggedIn ? /* @__PURE__ */ jsxs21(View20, { style: s5.loginRow, children: [
20815
+ /* @__PURE__ */ jsx24(Text14, { style: s5.note, children: "Login & skip ahead:" }),
20816
+ /* @__PURE__ */ jsx24(Pressable10, { onPress: () => onLogin(), children: /* @__PURE__ */ jsx24(Text14, { style: s5.link, children: "Login" }) })
20736
20817
  ] }) : null,
20737
20818
  gates.phoneFirstCheckout && !checkout.isLoggedIn ? /* @__PURE__ */ jsx24(
20738
20819
  BillingPhoneIdentity,
@@ -20743,8 +20824,8 @@ var BillingInfo = ({
20743
20824
  whatsappAvailable: Boolean(gates.phoneFirstWhatsapp)
20744
20825
  }
20745
20826
  ) : null,
20746
- /* @__PURE__ */ jsxs21(View20, { style: s4.row, children: [
20747
- /* @__PURE__ */ jsx24(View20, { style: s4.col, children: /* @__PURE__ */ jsx24(Field, { error: fieldError("First name", "First name is required."), children: /* @__PURE__ */ jsx24(
20827
+ /* @__PURE__ */ jsxs21(View20, { style: s5.row, children: [
20828
+ /* @__PURE__ */ jsx24(View20, { style: s5.col, children: /* @__PURE__ */ jsx24(Field, { error: fieldError("First name", "First name is required."), children: /* @__PURE__ */ jsx24(
20748
20829
  Input,
20749
20830
  {
20750
20831
  placeholder: "First name *",
@@ -20754,7 +20835,7 @@ var BillingInfo = ({
20754
20835
  invalid: Boolean(fieldError("First name"))
20755
20836
  }
20756
20837
  ) }) }),
20757
- /* @__PURE__ */ jsx24(View20, { style: s4.col, children: /* @__PURE__ */ jsx24(Field, { error: fieldError("Last name", "Last name is required."), children: /* @__PURE__ */ jsx24(
20838
+ /* @__PURE__ */ jsx24(View20, { style: s5.col, children: /* @__PURE__ */ jsx24(Field, { error: fieldError("Last name", "Last name is required."), children: /* @__PURE__ */ jsx24(
20758
20839
  Input,
20759
20840
  {
20760
20841
  placeholder: "Last name *",
@@ -20765,8 +20846,8 @@ var BillingInfo = ({
20765
20846
  }
20766
20847
  ) }) })
20767
20848
  ] }),
20768
- /* @__PURE__ */ jsxs21(View20, { style: s4.row, children: [
20769
- /* @__PURE__ */ jsx24(View20, { style: s4.col, children: /* @__PURE__ */ jsx24(
20849
+ /* @__PURE__ */ jsxs21(View20, { style: s5.row, children: [
20850
+ /* @__PURE__ */ jsx24(View20, { style: s5.col, children: /* @__PURE__ */ jsx24(
20770
20851
  Field,
20771
20852
  {
20772
20853
  error: fieldError("Valid email address", "Enter a valid email address."),
@@ -20783,7 +20864,7 @@ var BillingInfo = ({
20783
20864
  )
20784
20865
  }
20785
20866
  ) }),
20786
- requireEmailConfirmation && !checkout.isLoggedIn ? /* @__PURE__ */ jsx24(View20, { style: s4.col, children: /* @__PURE__ */ jsx24(
20867
+ requireEmailConfirmation && !checkout.isLoggedIn ? /* @__PURE__ */ jsx24(View20, { style: s5.col, children: /* @__PURE__ */ jsx24(
20787
20868
  Field,
20788
20869
  {
20789
20870
  error: fieldError(
@@ -20805,10 +20886,10 @@ var BillingInfo = ({
20805
20886
  ) }) : null
20806
20887
  ] }),
20807
20888
  !showValidation && requireEmailConfirmation && billing.confirmEmail && billing.confirmEmail.trim().toLowerCase() !== billing.email.trim().toLowerCase() ? /* @__PURE__ */ jsx24(ErrorText, { children: "The email addresses do not match." }) : null,
20808
- emailTaken ? /* @__PURE__ */ jsxs21(Text14, { style: s4.note, children: [
20889
+ emailTaken ? /* @__PURE__ */ jsxs21(Text14, { style: s5.note, children: [
20809
20890
  "This email is already registered.",
20810
20891
  " ",
20811
- onLogin ? /* @__PURE__ */ jsx24(Text14, { style: s4.link, onPress: () => onLogin(billing.email), children: "Log in to autofill your details" }) : "Log in to autofill your details."
20892
+ onLogin ? /* @__PURE__ */ jsx24(Text14, { style: s5.link, onPress: () => onLogin(billing.email), children: "Log in to autofill your details" }) : "Log in to autofill your details."
20812
20893
  ] }) : null,
20813
20894
  checkout.buyerFields.map((f) => {
20814
20895
  var _a2;
@@ -20872,7 +20953,7 @@ var BillingInfo = ({
20872
20953
  }
20873
20954
  ) : null,
20874
20955
  orderGroups.map((g) => /* @__PURE__ */ jsxs21(Fragment10, { children: [
20875
- g.label ? /* @__PURE__ */ jsx24(Text14, { style: s4.sectionLabel, children: g.label }) : null,
20956
+ g.label ? /* @__PURE__ */ jsx24(Text14, { style: s5.sectionLabel, children: g.label }) : null,
20876
20957
  renderGroupFields(
20877
20958
  g,
20878
20959
  dataCapture,
@@ -20887,21 +20968,21 @@ var BillingInfo = ({
20887
20968
  label: brandOptInLabel
20888
20969
  }
20889
20970
  ) : null,
20890
- privacyPolicy ? /* @__PURE__ */ jsxs21(View20, { style: s4.consent, children: [
20971
+ privacyPolicy ? /* @__PURE__ */ jsxs21(View20, { style: s5.consent, children: [
20891
20972
  /* @__PURE__ */ jsx24(
20892
20973
  Checkbox,
20893
20974
  {
20894
20975
  checked: consent.ttfOptIn,
20895
20976
  onChange: (ttfOptIn) => setConsent((c) => ({ ...c, ttfOptIn })),
20896
20977
  invalid: privacyInvalid,
20897
- label: /* @__PURE__ */ jsxs21(Text14, { style: s4.consentLabel, children: [
20978
+ label: /* @__PURE__ */ jsxs21(Text14, { style: s5.consentLabel, children: [
20898
20979
  "I have read and agree to ",
20899
20980
  privacyPolicy.brandName,
20900
20981
  " ",
20901
20982
  /* @__PURE__ */ jsx24(
20902
20983
  Text14,
20903
20984
  {
20904
- style: s4.link,
20985
+ style: s5.link,
20905
20986
  onPress: () => Linking3.openURL(privacyPolicy.url).catch(() => void 0),
20906
20987
  children: privacyPolicy.linkLabel || "Privacy Policy."
20907
20988
  }
@@ -21386,7 +21467,7 @@ var Payment = ({
21386
21467
  selected,
21387
21468
  onSelect: setSelected,
21388
21469
  extraValues: extras,
21389
- onExtraChange: (v, patch2) => setExtras((s4) => ({ ...s4, [v]: { ...s4[v], ...patch2 } })),
21470
+ onExtraChange: (v, patch2) => setExtras((s5) => ({ ...s5, [v]: { ...s5[v], ...patch2 } })),
21390
21471
  showValidation: validation.attempt > 0,
21391
21472
  inputSlotFor: isPlanSelected ? reuseSavedCard ? void 0 : "paymentPlan" : cardValue,
21392
21473
  children: paymentInput
@@ -21615,7 +21696,7 @@ var WaiverSigning = ({
21615
21696
  const checkout = useCheckoutContext();
21616
21697
  const locked = Boolean(checkout.orderFixed);
21617
21698
  const theme = useTheme();
21618
- const s4 = useWaiverStyles(theme);
21699
+ const s5 = useWaiverStyles(theme);
21619
21700
  const t = translate2 != null ? translate2 : createTranslator({ locale, messages });
21620
21701
  const waiver = checkout.waiver;
21621
21702
  const signing = hooks_exports.useWaiverSigning(
@@ -21649,16 +21730,16 @@ var WaiverSigning = ({
21649
21730
  if (!waiverSignableAtCheckout(waiver)) {
21650
21731
  return /* @__PURE__ */ jsxs26(Card, { children: [
21651
21732
  /* @__PURE__ */ jsx29(SectionHeader, { title: waiver.title || t("waivers.heading") }),
21652
- /* @__PURE__ */ jsx29(Text17, { style: s4.muted, children: t("waivers.signLater") })
21733
+ /* @__PURE__ */ jsx29(Text17, { style: s5.muted, children: t("waivers.signLater") })
21653
21734
  ] });
21654
21735
  }
21655
21736
  const signatures = (_b = checkout.waiverSignatures) != null ? _b : {};
21656
21737
  return /* @__PURE__ */ jsxs26(Card, { children: [
21657
21738
  /* @__PURE__ */ jsx29(SectionHeader, { title: waiver.title || t("waivers.heading") }),
21658
- /* @__PURE__ */ jsx29(Text17, { style: s4.muted, children: t(
21739
+ /* @__PURE__ */ jsx29(Text17, { style: s5.muted, children: t(
21659
21740
  waiver.checkoutMode === "required" ? "waivers.intro.required" : "waivers.intro.optional"
21660
21741
  ) }),
21661
- /* @__PURE__ */ jsx29(ScrollView, { style: [s4.textBox, { borderColor: theme.border }], nestedScrollEnabled: true, children: /* @__PURE__ */ jsx29(Text17, { style: s4.body, children: htmlToPlainText(waiver.bodyHtml) }) }),
21742
+ /* @__PURE__ */ jsx29(ScrollView, { style: [s5.textBox, { borderColor: theme.border }], nestedScrollEnabled: true, children: /* @__PURE__ */ jsx29(Text17, { style: s5.body, children: htmlToPlainText(waiver.bodyHtml) }) }),
21662
21743
  tickets.map((ticket) => {
21663
21744
  const signed = signatures[ticket.index];
21664
21745
  const formKey = waiverTicketFormKey(checkout.eventId, waiver, ticket);
@@ -21671,10 +21752,10 @@ var WaiverSigning = ({
21671
21752
  number: ticket.ticketNumber,
21672
21753
  name: ticket.holderName
21673
21754
  }) : t("waivers.ticket", { number: ticket.ticketNumber });
21674
- return /* @__PURE__ */ jsxs26(View25, { style: [s4.ticket, { borderTopColor: theme.border }], children: [
21675
- /* @__PURE__ */ jsx29(Text17, { style: s4.strong, children: label }),
21676
- signed ? /* @__PURE__ */ jsxs26(View25, { style: s4.row, children: [
21677
- /* @__PURE__ */ jsx29(Text17, { style: s4.body, children: t(
21755
+ return /* @__PURE__ */ jsxs26(View25, { style: [s5.ticket, { borderTopColor: theme.border }], children: [
21756
+ /* @__PURE__ */ jsx29(Text17, { style: s5.strong, children: label }),
21757
+ signed ? /* @__PURE__ */ jsxs26(View25, { style: s5.row, children: [
21758
+ /* @__PURE__ */ jsx29(Text17, { style: s5.body, children: t(
21678
21759
  !forHolder ? "waivers.signedForSomeoneElse" : signed.signerRole === "guardian" ? "waivers.signedByGuardian" : "waivers.signedBy",
21679
21760
  { name: signed.signerName }
21680
21761
  ) }),
@@ -21718,7 +21799,7 @@ var WaiverSigning = ({
21718
21799
  var TicketForm = ({ ticket, consentText, t, methods, busy, locked = false, error, onSign }) => {
21719
21800
  var _a, _b, _c, _d;
21720
21801
  const theme = useTheme();
21721
- const s4 = useWaiverStyles(theme);
21802
+ const s5 = useWaiverStyles(theme);
21722
21803
  const [heldDraft, setDraft] = useState37(
21723
21804
  () => emptyWaiverDraft(
21724
21805
  { firstName: ticket.holderFirstName, lastName: ticket.holderLastName },
@@ -21735,8 +21816,8 @@ var TicketForm = ({ ticket, consentText, t, methods, busy, locked = false, error
21735
21816
  if (!frozen) setDraft((d) => ({ ...d, ...next }));
21736
21817
  };
21737
21818
  const guardian = draft.signerRole === "guardian";
21738
- return /* @__PURE__ */ jsxs26(View25, { style: s4.form, children: [
21739
- /* @__PURE__ */ jsx29(Text17, { style: s4.strong, children: t("waivers.role.label") }),
21819
+ return /* @__PURE__ */ jsxs26(View25, { style: s5.form, children: [
21820
+ /* @__PURE__ */ jsx29(Text17, { style: s5.strong, children: t("waivers.role.label") }),
21740
21821
  ["holder", "guardian"].map((role) => /* @__PURE__ */ jsxs26(
21741
21822
  Pressable12,
21742
21823
  {
@@ -21752,19 +21833,19 @@ var TicketForm = ({ ticket, consentText, t, methods, busy, locked = false, error
21752
21833
  } : { signerRole: role }
21753
21834
  );
21754
21835
  },
21755
- style: s4.choice,
21836
+ style: s5.choice,
21756
21837
  children: [
21757
21838
  /* @__PURE__ */ jsx29(
21758
21839
  View25,
21759
21840
  {
21760
21841
  style: [
21761
- s4.radio,
21842
+ s5.radio,
21762
21843
  { borderColor: theme.accent },
21763
21844
  draft.signerRole === role && { backgroundColor: theme.accent }
21764
21845
  ]
21765
21846
  }
21766
21847
  ),
21767
- /* @__PURE__ */ jsx29(Text17, { style: s4.body, children: t(`waivers.role.${role}`) })
21848
+ /* @__PURE__ */ jsx29(Text17, { style: s5.body, children: t(`waivers.role.${role}`) })
21768
21849
  ]
21769
21850
  },
21770
21851
  role
@@ -21824,19 +21905,19 @@ var TicketForm = ({ ticket, consentText, t, methods, busy, locked = false, error
21824
21905
  accessibilityState: { selected: draft.method === method },
21825
21906
  disabled: frozen,
21826
21907
  onPress: () => setDraft((d) => withSignatureMethod(d, method)),
21827
- style: s4.choice,
21908
+ style: s5.choice,
21828
21909
  children: [
21829
21910
  /* @__PURE__ */ jsx29(
21830
21911
  View25,
21831
21912
  {
21832
21913
  style: [
21833
- s4.radio,
21914
+ s5.radio,
21834
21915
  { borderColor: theme.accent },
21835
21916
  draft.method === method && { backgroundColor: theme.accent }
21836
21917
  ]
21837
21918
  }
21838
21919
  ),
21839
- /* @__PURE__ */ jsx29(Text17, { style: s4.body, children: t(`waivers.method.${method}`) })
21920
+ /* @__PURE__ */ jsx29(Text17, { style: s5.body, children: t(`waivers.method.${method}`) })
21840
21921
  ]
21841
21922
  },
21842
21923
  method
@@ -21868,7 +21949,7 @@ var TicketForm = ({ ticket, consentText, t, methods, busy, locked = false, error
21868
21949
  ),
21869
21950
  problems.map((key4) => /* @__PURE__ */ jsx29(ErrorText, { children: t(key4) }, key4)),
21870
21951
  error ? /* @__PURE__ */ jsx29(ErrorText, { children: error }) : null,
21871
- busy && !pressed ? /* @__PURE__ */ jsx29(Text17, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("common.stillSaving") }) : null,
21952
+ busy && !pressed ? /* @__PURE__ */ jsx29(Text17, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("common.stillSaving") }) : null,
21872
21953
  /* @__PURE__ */ jsx29(
21873
21954
  Button,
21874
21955
  {
@@ -22453,17 +22534,17 @@ var TicketChange = ({
22453
22534
  }) => {
22454
22535
  var _a;
22455
22536
  const theme = useTheme();
22456
- const s4 = useChangeStyles(theme);
22537
+ const s5 = useChangeStyles(theme);
22457
22538
  const t = translate2 != null ? translate2 : createTranslator({ locale, messages });
22458
22539
  const open = openUrl != null ? openUrl : rnPorts.openUrl;
22459
22540
  const flow = hooks_exports.useTicketChange({ ticketHash, orderHash }, open);
22460
22541
  const options = flow.query.data;
22461
22542
  const signInLine = flow.signInRequired ? /* @__PURE__ */ jsxs32(View30, { children: [
22462
- /* @__PURE__ */ jsx35(Text19, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("ticketChange.signInRequired") }),
22543
+ /* @__PURE__ */ jsx35(Text19, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("ticketChange.signInRequired") }),
22463
22544
  onLogin ? /* @__PURE__ */ jsx35(Button, { onPress: () => flow.signIn(onLogin), children: t("ticketChange.signIn") }) : null
22464
22545
  ] }) : null;
22465
22546
  const label = (option) => option.eventName ? t("ticketChange.otherEvent", { name: option.name, event: option.eventName }) : option.name;
22466
- const savingLine = flow.saving && flow.step !== "submitting" ? /* @__PURE__ */ jsx35(Text19, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("common.stillSaving") }) : null;
22547
+ const savingLine = flow.saving && flow.step !== "submitting" ? /* @__PURE__ */ jsx35(Text19, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("common.stillSaving") }) : null;
22467
22548
  const refreshLine = flow.refreshFailed ? /* @__PURE__ */ jsxs32(View30, { children: [
22468
22549
  /* @__PURE__ */ jsx35(ErrorText, { children: t("ticketChange.refreshFailed") }),
22469
22550
  /* @__PURE__ */ jsx35(
@@ -22484,7 +22565,7 @@ var TicketChange = ({
22484
22565
  if (flow.paymentInProgress) {
22485
22566
  return /* @__PURE__ */ jsxs32(Card, { children: [
22486
22567
  header,
22487
- /* @__PURE__ */ jsx35(Text19, { style: s4.muted, accessibilityLiveRegion: "polite", children: t("ticketChange.paymentInProgress") }),
22568
+ /* @__PURE__ */ jsx35(Text19, { style: s5.muted, accessibilityLiveRegion: "polite", children: t("ticketChange.paymentInProgress") }),
22488
22569
  flow.canContinuePayment ? /* @__PURE__ */ jsx35(Button, { onPress: flow.continuePayment, children: t("ticketChange.continuePayment") }) : null,
22489
22570
  flow.notice ? /* @__PURE__ */ jsx35(ErrorText, { children: t(flow.notice) }) : null,
22490
22571
  /* @__PURE__ */ jsx35(Button, { variant: "ghost", onPress: flow.startAgain, children: t("ticketChange.startAgain") })
@@ -22493,7 +22574,7 @@ var TicketChange = ({
22493
22574
  if (flow.query.isLoading) {
22494
22575
  return /* @__PURE__ */ jsxs32(Card, { children: [
22495
22576
  header,
22496
- /* @__PURE__ */ jsx35(View30, { style: s4.loader, children: /* @__PURE__ */ jsx35(Loader, {}) })
22577
+ /* @__PURE__ */ jsx35(View30, { style: s5.loader, children: /* @__PURE__ */ jsx35(Loader, {}) })
22497
22578
  ] });
22498
22579
  }
22499
22580
  if (!options) {
@@ -22507,8 +22588,8 @@ var TicketChange = ({
22507
22588
  const priceText = flow.result && "priceText" in flow.result ? flow.result.priceText : "";
22508
22589
  return /* @__PURE__ */ jsxs32(Card, { children: [
22509
22590
  header,
22510
- /* @__PURE__ */ jsx35(Text19, { style: s4.strong, children: "text" in done ? done.text : t(done.key, done.values) }),
22511
- priceText ? /* @__PURE__ */ jsx35(Text19, { style: s4.strong, children: priceText }) : null,
22591
+ /* @__PURE__ */ jsx35(Text19, { style: s5.strong, children: "text" in done ? done.text : t(done.key, done.values) }),
22592
+ priceText ? /* @__PURE__ */ jsx35(Text19, { style: s5.strong, children: priceText }) : null,
22512
22593
  /* @__PURE__ */ jsx35(
22513
22594
  Button,
22514
22595
  {
@@ -22521,7 +22602,7 @@ var TicketChange = ({
22521
22602
  if (flow.step === "payment" && ((_a = flow.result) == null ? void 0 : _a.status) === "payment_required") {
22522
22603
  return /* @__PURE__ */ jsxs32(Card, { children: [
22523
22604
  header,
22524
- /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: t("ticketChange.payment") }),
22605
+ /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: t("ticketChange.payment") }),
22525
22606
  /* @__PURE__ */ jsx35(Button, { disabled: !flow.can.pay, onPress: flow.openPayment, children: t("ticketChange.paymentOpen") }),
22526
22607
  flow.notice ? /* @__PURE__ */ jsx35(ErrorText, { children: t(flow.notice) }) : null,
22527
22608
  /* @__PURE__ */ jsx35(
@@ -22541,12 +22622,12 @@ var TicketChange = ({
22541
22622
  const submitting = flow.step === "submitting";
22542
22623
  return /* @__PURE__ */ jsxs32(Card, { children: [
22543
22624
  header,
22544
- /* @__PURE__ */ jsx35(Text19, { style: s4.strong, children: t("ticketChange.confirmTitle", { name: label(option) }) }),
22545
- /* @__PURE__ */ jsx35(Text19, { style: s4.price, children: option.priceText }),
22625
+ /* @__PURE__ */ jsx35(Text19, { style: s5.strong, children: t("ticketChange.confirmTitle", { name: label(option) }) }),
22626
+ /* @__PURE__ */ jsx35(Text19, { style: s5.price, children: option.priceText }),
22546
22627
  (() => {
22547
22628
  const charge = ticketChangeCharge(option);
22548
22629
  if (!charge || option.fee <= 0) return null;
22549
- return /* @__PURE__ */ jsxs32(Text19, { style: s4.muted, children: [
22630
+ return /* @__PURE__ */ jsxs32(Text19, { style: s5.muted, children: [
22550
22631
  t("ticketChange.fee", {
22551
22632
  amount: `${option.currency} ${option.fee.toFixed(2)}`
22552
22633
  }),
@@ -22557,10 +22638,10 @@ var TicketChange = ({
22557
22638
  ] });
22558
22639
  })(),
22559
22640
  flow.error ? /* @__PURE__ */ jsx35(ErrorText, { children: flow.error }) : null,
22560
- flow.notice ? /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: t(flow.notice) }) : null,
22641
+ flow.notice ? /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: t(flow.notice) }) : null,
22561
22642
  signInLine,
22562
- flow.alternatives.length > 0 ? /* @__PURE__ */ jsxs32(View30, { style: s4.slots, children: [
22563
- /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: t("ticketChange.slotFull") }),
22643
+ flow.alternatives.length > 0 ? /* @__PURE__ */ jsxs32(View30, { style: s5.slots, children: [
22644
+ /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: t("ticketChange.slotFull") }),
22564
22645
  flow.alternatives.map((slot) => /* @__PURE__ */ jsx35(
22565
22646
  Button,
22566
22647
  {
@@ -22587,7 +22668,7 @@ var TicketChange = ({
22587
22668
  if (ticketChangeView(options) === "choose") {
22588
22669
  return /* @__PURE__ */ jsxs32(Card, { children: [
22589
22670
  header,
22590
- /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: t("ticketChange.choose") }),
22671
+ /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: t("ticketChange.choose") }),
22591
22672
  options.options.map((option) => /* @__PURE__ */ jsxs32(
22592
22673
  Pressable13,
22593
22674
  {
@@ -22596,31 +22677,31 @@ var TicketChange = ({
22596
22677
  disabled: !flow.can.select,
22597
22678
  onPress: () => flow.select(option),
22598
22679
  style: [
22599
- s4.option,
22680
+ s5.option,
22600
22681
  { borderColor: theme.border },
22601
- !flow.can.select && s4.optionDisabled
22682
+ !flow.can.select && s5.optionDisabled
22602
22683
  ],
22603
22684
  children: [
22604
- /* @__PURE__ */ jsx35(Text19, { style: s4.strong, children: label(option) }),
22605
- /* @__PURE__ */ jsx35(Text19, { style: s4.price, children: option.priceText })
22685
+ /* @__PURE__ */ jsx35(Text19, { style: s5.strong, children: label(option) }),
22686
+ /* @__PURE__ */ jsx35(Text19, { style: s5.price, children: option.priceText })
22606
22687
  ]
22607
22688
  },
22608
22689
  option.ticketTypeId
22609
22690
  )),
22610
22691
  flow.error ? /* @__PURE__ */ jsx35(ErrorText, { children: flow.error }) : null,
22611
- flow.notice ? /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: t(flow.notice) }) : null,
22692
+ flow.notice ? /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: t(flow.notice) }) : null,
22612
22693
  signInLine
22613
22694
  ] });
22614
22695
  }
22615
22696
  return /* @__PURE__ */ jsxs32(Card, { children: [
22616
22697
  header,
22617
- /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: options.message || t("ticketChange.closed") }),
22698
+ /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: options.message || t("ticketChange.closed") }),
22618
22699
  options.sellInstead.available ? /* @__PURE__ */ jsxs32(Fragment16, { children: [
22619
- /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: t("ticketChange.sellInsteadNote") }),
22700
+ /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: t("ticketChange.sellInsteadNote") }),
22620
22701
  /* @__PURE__ */ jsx35(Button, { disabled: !flow.can.sellInstead, onPress: flow.sellInstead, children: t("ticketChange.sellInstead") })
22621
22702
  ] }) : null,
22622
- options.waitlistOptions.map((wait) => /* @__PURE__ */ jsx35(View30, { style: s4.waitlist, children: wait.entry ? /* @__PURE__ */ jsxs32(Fragment16, { children: [
22623
- /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: t(
22703
+ options.waitlistOptions.map((wait) => /* @__PURE__ */ jsx35(View30, { style: s5.waitlist, children: wait.entry ? /* @__PURE__ */ jsxs32(Fragment16, { children: [
22704
+ /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: t(
22624
22705
  wait.entry.status === "offered" ? "ticketChange.waitlist.offered" : "ticketChange.waitlist.waiting",
22625
22706
  { name: wait.name }
22626
22707
  ) }),
@@ -22645,7 +22726,7 @@ var TicketChange = ({
22645
22726
  }
22646
22727
  ) }, wait.ticketTypeId)),
22647
22728
  flow.error ? /* @__PURE__ */ jsx35(ErrorText, { children: flow.error }) : null,
22648
- flow.notice ? /* @__PURE__ */ jsx35(Text19, { style: s4.muted, children: t(flow.notice) }) : null
22729
+ flow.notice ? /* @__PURE__ */ jsx35(Text19, { style: s5.muted, children: t(flow.notice) }) : null
22649
22730
  ] });
22650
22731
  };
22651
22732
  var useChangeStyles = (theme) => useMemo31(
@@ -22819,6 +22900,12 @@ var LoadedImage = ({
22819
22900
  Image3,
22820
22901
  {
22821
22902
  source: { uri: image.data },
22903
+ accessible: full,
22904
+ accessibilityLabel: full ? t("Image {{number}} of {{total}}", {
22905
+ number: index + 1,
22906
+ total: comment.images.length
22907
+ }) : void 0,
22908
+ accessibilityLiveRegion: full ? "polite" : void 0,
22822
22909
  style: s.image,
22823
22910
  resizeMode: full ? "contain" : "cover"
22824
22911
  }
@@ -22829,7 +22916,8 @@ var CommentImages = ({
22829
22916
  comment,
22830
22917
  previewKey,
22831
22918
  onPreviewChange,
22832
- locale
22919
+ locale,
22920
+ renderCloseIcon
22833
22921
  }) => {
22834
22922
  const t = useAccountT(locale);
22835
22923
  const theme = useTheme();
@@ -22886,22 +22974,24 @@ var CommentImages = ({
22886
22974
  animationType: "fade",
22887
22975
  onRequestClose: () => setSelected(null),
22888
22976
  children: /* @__PURE__ */ jsxs34(View32, { style: s.preview, children: [
22889
- /* @__PURE__ */ jsxs34(View32, { style: s.toolbar, children: [
22890
- /* @__PURE__ */ jsx37(Text20, { accessibilityLiveRegion: "polite", style: white, children: t("Image {{number}} of {{total}}", {
22891
- number: position + 1,
22892
- total: images.length
22893
- }) }),
22894
- /* @__PURE__ */ jsx37(
22895
- Pressable14,
22896
- {
22897
- accessibilityRole: "button",
22898
- accessibilityLabel: t("Close image"),
22899
- style: s.navButton,
22900
- onPress: () => setSelected(null),
22901
- children: /* @__PURE__ */ jsx37(Text20, { style: white, children: t("Close") })
22902
- }
22903
- )
22904
- ] }),
22977
+ /* @__PURE__ */ jsx37(View32, { style: s.toolbar, children: /* @__PURE__ */ jsx37(
22978
+ Pressable14,
22979
+ {
22980
+ accessibilityRole: "button",
22981
+ accessibilityLabel: t("Close image"),
22982
+ style: s.closeButton,
22983
+ onPress: () => setSelected(null),
22984
+ children: /* @__PURE__ */ jsx37(
22985
+ View32,
22986
+ {
22987
+ pointerEvents: "none",
22988
+ accessible: false,
22989
+ importantForAccessibility: "no-hide-descendants",
22990
+ children: renderCloseIcon ? renderCloseIcon("#9F9CB0") : /* @__PURE__ */ jsx37(Text20, { style: [white, s.closeGlyph], children: "\xD7" })
22991
+ }
22992
+ )
22993
+ }
22994
+ ) }),
22905
22995
  /* @__PURE__ */ jsx37(View32, { style: s.full, children: /* @__PURE__ */ jsx37(
22906
22996
  LoadedImage,
22907
22997
  {
@@ -23045,11 +23135,19 @@ var s = StyleSheet27.create({
23045
23135
  preview: {
23046
23136
  flex: 1,
23047
23137
  backgroundColor: "rgba(11,10,21,0.96)",
23048
- paddingTop: 60,
23138
+ paddingTop: 53,
23049
23139
  paddingBottom: 40,
23050
23140
  paddingHorizontal: 16
23051
23141
  },
23052
- toolbar: { flexDirection: "row", justifyContent: "space-between", padding: 12 },
23142
+ toolbar: { flexDirection: "row", justifyContent: "flex-end" },
23143
+ closeButton: {
23144
+ width: 44,
23145
+ height: 44,
23146
+ marginRight: -10,
23147
+ alignItems: "center",
23148
+ justifyContent: "center"
23149
+ },
23150
+ closeGlyph: { fontSize: 28, lineHeight: 28, color: "#9F9CB0", textAlign: "center" },
23053
23151
  full: { flex: 1, width: "100%" },
23054
23152
  white: { color: "#EBEBEE", fontSize: 16 },
23055
23153
  navButton: {
@@ -23166,6 +23264,7 @@ var EventDiscussionBody = ({
23166
23264
  previewKey,
23167
23265
  locale,
23168
23266
  renderReplyIcon,
23267
+ renderImageCloseIcon,
23169
23268
  onModerationFilter,
23170
23269
  renderReactionIcon
23171
23270
  }) => {
@@ -23269,7 +23368,8 @@ var EventDiscussionBody = ({
23269
23368
  comment,
23270
23369
  previewKey,
23271
23370
  locale,
23272
- onPreviewChange: setImageOpen
23371
+ onPreviewChange: setImageOpen,
23372
+ renderCloseIcon: renderImageCloseIcon
23273
23373
  },
23274
23374
  `${comment.id}:${comment.revision}`
23275
23375
  ),
@@ -24190,14 +24290,213 @@ var styles13 = StyleSheet30.create({
24190
24290
  retry: { color: "#C4B5FF", textDecorationLine: "underline" }
24191
24291
  });
24192
24292
 
24293
+ // src/sections/Streaming.tsx
24294
+ import { useMemo as useMemo34, useRef as useRef29, useState as useState44 } from "react";
24295
+ import {
24296
+ ActivityIndicator as ActivityIndicator5,
24297
+ Alert as Alert4,
24298
+ Pressable as Pressable18,
24299
+ StyleSheet as StyleSheet31,
24300
+ Text as Text24,
24301
+ View as View40
24302
+ } from "react-native";
24303
+ import { jsx as jsx45, jsxs as jsxs42 } from "react/jsx-runtime";
24304
+ var Streaming = (props) => {
24305
+ const preferences = hooks_exports.useAccountPreferences();
24306
+ return /* @__PURE__ */ jsx45(StreamingView, { ...props, preferences });
24307
+ };
24308
+ var StreamingView = ({
24309
+ preferences: flow,
24310
+ onOpenMusic,
24311
+ onSignIn,
24312
+ locale,
24313
+ translate: translate2,
24314
+ renderProviderIcon,
24315
+ showHeader = true,
24316
+ theme: override,
24317
+ style
24318
+ }) => {
24319
+ var _a, _b;
24320
+ const defaultT = useAccountT(locale);
24321
+ const t = translate2 != null ? translate2 : defaultT;
24322
+ const inherited = useTheme();
24323
+ const theme = useMemo34(
24324
+ () => override ? resolveTheme({ ...inherited, ...override }) : inherited,
24325
+ [inherited, override]
24326
+ );
24327
+ const session = hooks_exports.useAuthSession();
24328
+ const assertOwner = hooks_exports.useSessionAction();
24329
+ const pendingBrowser = useRef29({ scope: session.sessionScope, locked: false });
24330
+ const [stored, setStored] = useState44({
24331
+ scope: session.sessionScope,
24332
+ busy: false,
24333
+ error: ""
24334
+ });
24335
+ const local = stored.scope === session.sessionScope ? stored : { scope: session.sessionScope, busy: false, error: "" };
24336
+ const busy = flow.busy || local.busy;
24337
+ const text3 = { color: theme.text, fontFamily: theme.fontFamily };
24338
+ const muted = { color: theme.muted, fontFamily: theme.fontFamily };
24339
+ const connect = async (provider) => {
24340
+ try {
24341
+ assertOwner();
24342
+ } catch (e) {
24343
+ return;
24344
+ }
24345
+ if (pendingBrowser.current.scope === session.sessionScope && pendingBrowser.current.locked)
24346
+ return;
24347
+ pendingBrowser.current = { scope: session.sessionScope, locked: true };
24348
+ setStored({ scope: session.sessionScope, busy: true, error: "" });
24349
+ try {
24350
+ const link = await (provider === "spotify" ? flow.connectSpotify() : flow.connectAppleMusic());
24351
+ assertOwner();
24352
+ if (!link) return;
24353
+ await onOpenMusic(link.url, provider);
24354
+ assertOwner();
24355
+ await flow.query.refetch();
24356
+ assertOwner();
24357
+ } catch (e) {
24358
+ try {
24359
+ assertOwner();
24360
+ setStored({
24361
+ scope: session.sessionScope,
24362
+ busy: false,
24363
+ error: "Unable to open the connection page. Please try again."
24364
+ });
24365
+ } catch (e2) {
24366
+ }
24367
+ } finally {
24368
+ try {
24369
+ assertOwner();
24370
+ if (pendingBrowser.current.scope === session.sessionScope)
24371
+ pendingBrowser.current.locked = false;
24372
+ setStored((state) => ({ ...state, scope: session.sessionScope, busy: false }));
24373
+ } catch (e) {
24374
+ }
24375
+ }
24376
+ };
24377
+ const disconnect = (provider) => {
24378
+ try {
24379
+ assertOwner();
24380
+ } catch (e) {
24381
+ return;
24382
+ }
24383
+ Alert4.alert(
24384
+ t(provider === "spotify" ? "Disconnect Spotify?" : "Disconnect Apple Music?"),
24385
+ t(
24386
+ provider === "spotify" ? "Your imported Spotify data and approved names will be removed. Your saved interests stay." : "Your imported artists and genres will be removed. Your saved interests will stay."
24387
+ ),
24388
+ [
24389
+ { text: t("Cancel"), style: "cancel" },
24390
+ {
24391
+ text: t("Disconnect"),
24392
+ style: "destructive",
24393
+ onPress: () => {
24394
+ try {
24395
+ assertOwner();
24396
+ void (provider === "spotify" ? flow.disconnectSpotify() : flow.disconnectAppleMusic());
24397
+ } catch (e) {
24398
+ }
24399
+ }
24400
+ }
24401
+ ]
24402
+ );
24403
+ };
24404
+ const action = (label, provider, onPress, disabled = busy) => /* @__PURE__ */ jsx45(
24405
+ Pressable18,
24406
+ {
24407
+ accessibilityRole: "button",
24408
+ accessibilityLabel: provider ? t("{{action}} {{provider}}", { action: t(label), provider }) : t(label),
24409
+ accessibilityState: { disabled, busy },
24410
+ disabled,
24411
+ onPress,
24412
+ style: [s4.button, { borderColor: theme.accent }, disabled && s4.disabled],
24413
+ children: /* @__PURE__ */ jsx45(Text24, { style: [text3, { color: theme.accent, fontSize: theme.fontSize }], children: t(label) })
24414
+ }
24415
+ );
24416
+ const music = (_a = flow.query.data) == null ? void 0 : _a.music;
24417
+ return /* @__PURE__ */ jsxs42(View40, { style: [s4.container, style], children: [
24418
+ showHeader && /* @__PURE__ */ jsx45(Text24, { style: [s4.title, text3], children: t("Streaming") }),
24419
+ /* @__PURE__ */ jsx45(Text24, { style: [s4.intro, text3], children: t("Choose which artist and genre names to use for event suggestions.") }),
24420
+ flow.query.isPending && /* @__PURE__ */ jsx45(
24421
+ ActivityIndicator5,
24422
+ {
24423
+ accessibilityLabel: t("Loading streaming connections\u2026"),
24424
+ color: theme.accent
24425
+ }
24426
+ ),
24427
+ music && [
24428
+ { key: "spotify", name: "Spotify", connection: music.spotify },
24429
+ { key: "appleMusic", name: "Apple Music", connection: music.appleMusic },
24430
+ {
24431
+ key: "youtubeMusic",
24432
+ name: "YouTube Music",
24433
+ connection: music.youtubeMusic
24434
+ }
24435
+ ].map(({ key: key4, name, connection }) => /* @__PURE__ */ jsxs42(View40, { style: [s4.provider, { borderBottomColor: theme.border }], children: [
24436
+ /* @__PURE__ */ jsxs42(View40, { style: s4.identity, children: [
24437
+ renderProviderIcon == null ? void 0 : renderProviderIcon(key4),
24438
+ /* @__PURE__ */ jsxs42(View40, { style: s4.names, children: [
24439
+ /* @__PURE__ */ jsx45(Text24, { style: [s4.name, text3], children: name }),
24440
+ /* @__PURE__ */ jsx45(Text24, { style: [s4.status, muted], children: connection.connected ? t("Connected") : connection.available ? t("Not connected") : t(connection.reason || "Not available yet") })
24441
+ ] })
24442
+ ] }),
24443
+ key4 !== "youtubeMusic" && /* @__PURE__ */ jsxs42(View40, { style: s4.actions, children: [
24444
+ connection.available && action(
24445
+ connection.connected ? "Review choices" : "Connect",
24446
+ name,
24447
+ () => void connect(key4)
24448
+ ),
24449
+ connection.connected && action("Disconnect", name, () => disconnect(key4))
24450
+ ] }),
24451
+ connection.connected && /* @__PURE__ */ jsx45(Text24, { style: [s4.approved, muted], children: connection.artists.length || connection.genres.length ? [...connection.artists, ...connection.genres].join(", ") : t("No artist or genre names approved yet.") })
24452
+ ] }, key4)),
24453
+ (local.error || flow.error || flow.query.error) && /* @__PURE__ */ jsx45(Text24, { accessibilityRole: "alert", style: [s4.note, { color: theme.error }], children: t(local.error || flow.error || ((_b = flow.query.error) == null ? void 0 : _b.message) || "") }),
24454
+ flow.message && /* @__PURE__ */ jsx45(Text24, { accessibilityLiveRegion: "polite", style: [s4.note, muted], children: t(flow.message) }),
24455
+ action("Refresh connections", "", () => void flow.query.refetch()),
24456
+ !music && onSignIn && action("Sign in", "", onSignIn),
24457
+ /* @__PURE__ */ jsx45(Text24, { style: [s4.note, muted], children: t(
24458
+ "Only the artist and genre names you approve are used for these event suggestions."
24459
+ ) })
24460
+ ] });
24461
+ };
24462
+ var s4 = StyleSheet31.create({
24463
+ container: { width: "100%" },
24464
+ title: { fontSize: 20, fontWeight: "500", marginBottom: 16 },
24465
+ intro: { fontSize: 20, lineHeight: 28, marginVertical: 24 },
24466
+ provider: { borderBottomWidth: StyleSheet31.hairlineWidth, paddingVertical: 20, gap: 16 },
24467
+ identity: { flexDirection: "row", alignItems: "center", gap: 16 },
24468
+ names: { flex: 1 },
24469
+ name: { fontSize: 16, lineHeight: 24 },
24470
+ status: { fontSize: 14, lineHeight: 20, marginTop: 4 },
24471
+ actions: {
24472
+ flexDirection: "row",
24473
+ flexWrap: "wrap",
24474
+ justifyContent: "flex-end",
24475
+ gap: 10
24476
+ },
24477
+ button: {
24478
+ alignSelf: "flex-end",
24479
+ borderWidth: 1,
24480
+ borderRadius: 24,
24481
+ paddingVertical: 10,
24482
+ paddingHorizontal: 20,
24483
+ minHeight: 44,
24484
+ justifyContent: "center",
24485
+ marginTop: 4
24486
+ },
24487
+ disabled: { opacity: 0.5 },
24488
+ approved: { fontSize: 14, lineHeight: 20 },
24489
+ note: { fontSize: 14, lineHeight: 20, marginTop: 24 }
24490
+ });
24491
+
24193
24492
  // src/auth/AuthModal.tsx
24194
24493
  import { useCallback as useCallback14 } from "react";
24195
- import { Image as Image6, Modal as Modal6, Pressable as Pressable22, ScrollView as ScrollView3, StyleSheet as StyleSheet35, Text as Text27, View as View45 } from "react-native";
24494
+ import { Image as Image6, Modal as Modal6, Pressable as Pressable23, ScrollView as ScrollView3, StyleSheet as StyleSheet36, Text as Text28, View as View46 } from "react-native";
24196
24495
 
24197
24496
  // src/auth/ForgotPasswordForm.tsx
24198
- import { useEffect as useEffect28, useState as useState44 } from "react";
24199
- import { Pressable as Pressable18, StyleSheet as StyleSheet31, Text as Text24, View as View40 } from "react-native";
24200
- import { jsx as jsx45, jsxs as jsxs42 } from "react/jsx-runtime";
24497
+ import { useEffect as useEffect28, useState as useState45 } from "react";
24498
+ import { Pressable as Pressable19, StyleSheet as StyleSheet32, Text as Text25, View as View41 } from "react-native";
24499
+ import { jsx as jsx46, jsxs as jsxs43 } from "react/jsx-runtime";
24201
24500
  var ForgotPasswordForm = ({
24202
24501
  initialEmail = "",
24203
24502
  errors = {},
@@ -24209,21 +24508,21 @@ var ForgotPasswordForm = ({
24209
24508
  onFieldChange
24210
24509
  }) => {
24211
24510
  const theme = useTheme();
24212
- const [email, setEmail] = useState44(initialEmail);
24511
+ const [email, setEmail] = useState45(initialEmail);
24213
24512
  useEffect28(() => {
24214
24513
  if (initialEmail && !email) setEmail(initialEmail);
24215
24514
  }, [email, initialEmail]);
24216
24515
  const submit = () => void onSubmit(email);
24217
24516
  if (successMessage) {
24218
- return /* @__PURE__ */ jsxs42(View40, { style: styles14.form, children: [
24219
- /* @__PURE__ */ jsx45(Text24, { style: [styles14.success, { color: theme.success }], children: successMessage }),
24220
- /* @__PURE__ */ jsx45(Button, { onPress: () => onBackToLogin(email), children: "Back to log in" })
24517
+ return /* @__PURE__ */ jsxs43(View41, { style: styles14.form, children: [
24518
+ /* @__PURE__ */ jsx46(Text25, { style: [styles14.success, { color: theme.success }], children: successMessage }),
24519
+ /* @__PURE__ */ jsx46(Button, { onPress: () => onBackToLogin(email), children: "Back to log in" })
24221
24520
  ] });
24222
24521
  }
24223
- return /* @__PURE__ */ jsxs42(View40, { style: styles14.form, children: [
24224
- /* @__PURE__ */ jsx45(MutedText, { children: "Enter your email and we\u2019ll send you instructions to reset your password." }),
24225
- error ? /* @__PURE__ */ jsx45(ErrorText, { children: error }) : null,
24226
- /* @__PURE__ */ jsx45(Field, { label: "Email", required: true, error: errors.email, children: /* @__PURE__ */ jsx45(
24522
+ return /* @__PURE__ */ jsxs43(View41, { style: styles14.form, children: [
24523
+ /* @__PURE__ */ jsx46(MutedText, { children: "Enter your email and we\u2019ll send you instructions to reset your password." }),
24524
+ error ? /* @__PURE__ */ jsx46(ErrorText, { children: error }) : null,
24525
+ /* @__PURE__ */ jsx46(Field, { label: "Email", required: true, error: errors.email, children: /* @__PURE__ */ jsx46(
24227
24526
  Input,
24228
24527
  {
24229
24528
  value: email,
@@ -24237,20 +24536,20 @@ var ForgotPasswordForm = ({
24237
24536
  invalid: Boolean(errors.email)
24238
24537
  }
24239
24538
  ) }),
24240
- /* @__PURE__ */ jsx45(Button, { onPress: submit, loading, children: "Send reset instructions" }),
24241
- /* @__PURE__ */ jsx45(
24242
- Pressable18,
24539
+ /* @__PURE__ */ jsx46(Button, { onPress: submit, loading, children: "Send reset instructions" }),
24540
+ /* @__PURE__ */ jsx46(
24541
+ Pressable19,
24243
24542
  {
24244
24543
  accessibilityRole: "button",
24245
24544
  onPress: () => onBackToLogin(email),
24246
24545
  hitSlop: 8,
24247
24546
  style: styles14.link,
24248
- children: /* @__PURE__ */ jsx45(Text24, { style: [styles14.linkText, { color: theme.accent }], children: "Back to log in" })
24547
+ children: /* @__PURE__ */ jsx46(Text25, { style: [styles14.linkText, { color: theme.accent }], children: "Back to log in" })
24249
24548
  }
24250
24549
  )
24251
24550
  ] });
24252
24551
  };
24253
- var styles14 = StyleSheet31.create({
24552
+ var styles14 = StyleSheet32.create({
24254
24553
  form: { gap: 14 },
24255
24554
  success: { fontSize: 15, fontWeight: "600" },
24256
24555
  link: { alignItems: "center", paddingVertical: 4 },
@@ -24258,19 +24557,19 @@ var styles14 = StyleSheet31.create({
24258
24557
  });
24259
24558
 
24260
24559
  // src/auth/LoginForm.tsx
24261
- import { useEffect as useEffect29, useState as useState46 } from "react";
24262
- import { Pressable as Pressable20, StyleSheet as StyleSheet33, Text as Text26, View as View42 } from "react-native";
24560
+ import { useEffect as useEffect29, useState as useState47 } from "react";
24561
+ import { Pressable as Pressable21, StyleSheet as StyleSheet34, Text as Text27, View as View43 } from "react-native";
24263
24562
 
24264
24563
  // src/auth/PasswordInput.tsx
24265
- import { useState as useState45 } from "react";
24266
- import { Pressable as Pressable19, StyleSheet as StyleSheet32, Text as Text25, View as View41 } from "react-native";
24267
- import { jsx as jsx46, jsxs as jsxs43 } from "react/jsx-runtime";
24564
+ import { useState as useState46 } from "react";
24565
+ import { Pressable as Pressable20, StyleSheet as StyleSheet33, Text as Text26, View as View42 } from "react-native";
24566
+ import { jsx as jsx47, jsxs as jsxs44 } from "react/jsx-runtime";
24268
24567
  var PasswordInput = (props) => {
24269
- const [visible, setVisible] = useState45(false);
24270
- return /* @__PURE__ */ jsxs43(View41, { style: styles15.wrap, children: [
24271
- /* @__PURE__ */ jsx46(Input, { ...props, autoCapitalize: "none", secureTextEntry: !visible }),
24272
- /* @__PURE__ */ jsx46(
24273
- Pressable19,
24568
+ const [visible, setVisible] = useState46(false);
24569
+ return /* @__PURE__ */ jsxs44(View42, { style: styles15.wrap, children: [
24570
+ /* @__PURE__ */ jsx47(Input, { ...props, autoCapitalize: "none", secureTextEntry: !visible }),
24571
+ /* @__PURE__ */ jsx47(
24572
+ Pressable20,
24274
24573
  {
24275
24574
  accessibilityRole: "button",
24276
24575
  accessibilityLabel: visible ? "Hide password" : "Show password",
@@ -24278,12 +24577,12 @@ var PasswordInput = (props) => {
24278
24577
  onPress: () => setVisible((current4) => !current4),
24279
24578
  hitSlop: 10,
24280
24579
  style: styles15.toggle,
24281
- children: /* @__PURE__ */ jsx46(Text25, { style: styles15.icon, children: visible ? "\u{1F648}" : "\u{1F441}" })
24580
+ children: /* @__PURE__ */ jsx47(Text26, { style: styles15.icon, children: visible ? "\u{1F648}" : "\u{1F441}" })
24282
24581
  }
24283
24582
  )
24284
24583
  ] });
24285
24584
  };
24286
- var styles15 = StyleSheet32.create({
24585
+ var styles15 = StyleSheet33.create({
24287
24586
  wrap: { position: "relative", justifyContent: "center" },
24288
24587
  toggle: {
24289
24588
  position: "absolute",
@@ -24296,7 +24595,7 @@ var styles15 = StyleSheet32.create({
24296
24595
  });
24297
24596
 
24298
24597
  // src/auth/LoginForm.tsx
24299
- import { jsx as jsx47, jsxs as jsxs44 } from "react/jsx-runtime";
24598
+ import { jsx as jsx48, jsxs as jsxs45 } from "react/jsx-runtime";
24300
24599
  var LoginForm = ({
24301
24600
  initialEmail = "",
24302
24601
  errors = {},
@@ -24308,15 +24607,15 @@ var LoginForm = ({
24308
24607
  onFieldChange
24309
24608
  }) => {
24310
24609
  const theme = useTheme();
24311
- const [email, setEmail] = useState46(initialEmail);
24312
- const [password, setPassword] = useState46("");
24610
+ const [email, setEmail] = useState47(initialEmail);
24611
+ const [password, setPassword] = useState47("");
24313
24612
  useEffect29(() => {
24314
24613
  if (initialEmail && !email) setEmail(initialEmail);
24315
24614
  }, [email, initialEmail]);
24316
24615
  const submit = () => void onSubmit({ email, password });
24317
- return /* @__PURE__ */ jsxs44(View42, { style: styles16.form, children: [
24318
- error ? /* @__PURE__ */ jsx47(ErrorText, { children: error }) : null,
24319
- /* @__PURE__ */ jsx47(Field, { label: "Email", required: true, error: errors.email, children: /* @__PURE__ */ jsx47(
24616
+ return /* @__PURE__ */ jsxs45(View43, { style: styles16.form, children: [
24617
+ error ? /* @__PURE__ */ jsx48(ErrorText, { children: error }) : null,
24618
+ /* @__PURE__ */ jsx48(Field, { label: "Email", required: true, error: errors.email, children: /* @__PURE__ */ jsx48(
24320
24619
  Input,
24321
24620
  {
24322
24621
  value: email,
@@ -24330,7 +24629,7 @@ var LoginForm = ({
24330
24629
  invalid: Boolean(errors.email)
24331
24630
  }
24332
24631
  ) }),
24333
- /* @__PURE__ */ jsx47(Field, { label: "Password", required: true, error: errors.password, children: /* @__PURE__ */ jsx47(
24632
+ /* @__PURE__ */ jsx48(Field, { label: "Password", required: true, error: errors.password, children: /* @__PURE__ */ jsx48(
24334
24633
  PasswordInput,
24335
24634
  {
24336
24635
  value: password,
@@ -24342,29 +24641,29 @@ var LoginForm = ({
24342
24641
  invalid: Boolean(errors.password)
24343
24642
  }
24344
24643
  ) }),
24345
- /* @__PURE__ */ jsx47(Button, { onPress: submit, loading, children: "Login" }),
24346
- allowPasswordReset && onForgotPassword ? /* @__PURE__ */ jsx47(
24347
- Pressable20,
24644
+ /* @__PURE__ */ jsx48(Button, { onPress: submit, loading, children: "Login" }),
24645
+ allowPasswordReset && onForgotPassword ? /* @__PURE__ */ jsx48(
24646
+ Pressable21,
24348
24647
  {
24349
24648
  accessibilityRole: "button",
24350
24649
  onPress: () => onForgotPassword(email),
24351
24650
  hitSlop: 8,
24352
24651
  style: styles16.link,
24353
- children: /* @__PURE__ */ jsx47(Text26, { style: [styles16.linkText, { color: theme.accent }], children: "Forgot password?" })
24652
+ children: /* @__PURE__ */ jsx48(Text27, { style: [styles16.linkText, { color: theme.accent }], children: "Forgot password?" })
24354
24653
  }
24355
24654
  ) : null
24356
24655
  ] });
24357
24656
  };
24358
- var styles16 = StyleSheet33.create({
24657
+ var styles16 = StyleSheet34.create({
24359
24658
  form: { gap: 14 },
24360
24659
  link: { alignItems: "center", paddingVertical: 4 },
24361
24660
  linkText: { fontSize: 14, fontWeight: "600" }
24362
24661
  });
24363
24662
 
24364
24663
  // src/auth/RegisterForm.tsx
24365
- import { useEffect as useEffect30, useMemo as useMemo34, useState as useState47 } from "react";
24366
- import { Linking as Linking7, Pressable as Pressable21, StyleSheet as StyleSheet34, View as View43 } from "react-native";
24367
- import { Fragment as Fragment24, jsx as jsx48, jsxs as jsxs45 } from "react/jsx-runtime";
24664
+ import { useEffect as useEffect30, useMemo as useMemo35, useState as useState48 } from "react";
24665
+ import { Linking as Linking7, Pressable as Pressable22, StyleSheet as StyleSheet35, View as View44 } from "react-native";
24666
+ import { Fragment as Fragment24, jsx as jsx49, jsxs as jsxs46 } from "react/jsx-runtime";
24368
24667
  var emptyRegistration = (email) => ({
24369
24668
  firstName: "",
24370
24669
  lastName: "",
@@ -24391,22 +24690,22 @@ var RegisterForm = ({
24391
24690
  onFieldChange
24392
24691
  }) => {
24393
24692
  var _a, _b, _c, _d, _e, _f;
24394
- const t = useMemo34(() => createTranslator({ locale }), [locale]);
24395
- const [values2, setValues] = useState47(
24693
+ const t = useMemo35(() => createTranslator({ locale }), [locale]);
24694
+ const [values2, setValues] = useState48(
24396
24695
  () => emptyRegistration(initialEmail)
24397
24696
  );
24398
- const [termsAccepted, setTermsAccepted] = useState47(false);
24399
- const [refreshingProof, setRefreshingProof] = useState47(false);
24400
- const [refreshCode, setRefreshCode] = useState47("");
24697
+ const [termsAccepted, setTermsAccepted] = useState48(false);
24698
+ const [refreshingProof, setRefreshingProof] = useState48(false);
24699
+ const [refreshCode, setRefreshCode] = useState48("");
24401
24700
  const countriesQuery = hooks_exports.useCountries();
24402
- const countries = useMemo34(() => {
24701
+ const countries = useMemo35(() => {
24403
24702
  var _a2;
24404
24703
  return (_a2 = countriesQuery.data) != null ? _a2 : [];
24405
24704
  }, [countriesQuery.data]);
24406
24705
  const statesQuery = hooks_exports.useStates(values2.countryId, {
24407
24706
  enabled: requireAddress && Boolean(values2.countryId)
24408
24707
  });
24409
- const states = useMemo34(() => {
24708
+ const states = useMemo35(() => {
24410
24709
  var _a2;
24411
24710
  return (_a2 = statesQuery.data) != null ? _a2 : [];
24412
24711
  }, [statesQuery.data]);
@@ -24435,19 +24734,19 @@ var RegisterForm = ({
24435
24734
  setValues((current4) => ({ ...current4, [field]: value6 }));
24436
24735
  onFieldChange == null ? void 0 : onFieldChange(field);
24437
24736
  };
24438
- const countryOptions = useMemo34(
24737
+ const countryOptions = useMemo35(
24439
24738
  () => countries.map((country) => ({ label: country.name, value: String(country.id) })),
24440
24739
  [countries]
24441
24740
  );
24442
- const stateOptions = useMemo34(
24741
+ const stateOptions = useMemo35(
24443
24742
  () => states.map((state) => ({ label: state.name, value: String(state.id) })),
24444
24743
  [states]
24445
24744
  );
24446
24745
  const submit = () => void onSubmit(values2, { requireState: states.length > 0, termsAccepted });
24447
- return /* @__PURE__ */ jsxs45(View43, { style: styles17.form, children: [
24448
- error ? /* @__PURE__ */ jsx48(ErrorText, { children: error }) : null,
24449
- /* @__PURE__ */ jsxs45(View43, { style: styles17.row, children: [
24450
- /* @__PURE__ */ jsx48(View43, { style: styles17.flex, children: /* @__PURE__ */ jsx48(Field, { label: "First name", required: true, error: errors.firstName, children: /* @__PURE__ */ jsx48(
24746
+ return /* @__PURE__ */ jsxs46(View44, { style: styles17.form, children: [
24747
+ error ? /* @__PURE__ */ jsx49(ErrorText, { children: error }) : null,
24748
+ /* @__PURE__ */ jsxs46(View44, { style: styles17.row, children: [
24749
+ /* @__PURE__ */ jsx49(View44, { style: styles17.flex, children: /* @__PURE__ */ jsx49(Field, { label: "First name", required: true, error: errors.firstName, children: /* @__PURE__ */ jsx49(
24451
24750
  Input,
24452
24751
  {
24453
24752
  value: values2.firstName,
@@ -24457,7 +24756,7 @@ var RegisterForm = ({
24457
24756
  invalid: Boolean(errors.firstName)
24458
24757
  }
24459
24758
  ) }) }),
24460
- /* @__PURE__ */ jsx48(View43, { style: styles17.flex, children: /* @__PURE__ */ jsx48(Field, { label: "Last name", required: true, error: errors.lastName, children: /* @__PURE__ */ jsx48(
24759
+ /* @__PURE__ */ jsx49(View44, { style: styles17.flex, children: /* @__PURE__ */ jsx49(Field, { label: "Last name", required: true, error: errors.lastName, children: /* @__PURE__ */ jsx49(
24461
24760
  Input,
24462
24761
  {
24463
24762
  value: values2.lastName,
@@ -24468,7 +24767,7 @@ var RegisterForm = ({
24468
24767
  }
24469
24768
  ) }) })
24470
24769
  ] }),
24471
- /* @__PURE__ */ jsx48(Field, { label: "Email", required: true, error: errors.email, children: /* @__PURE__ */ jsx48(
24770
+ /* @__PURE__ */ jsx49(Field, { label: "Email", required: true, error: errors.email, children: /* @__PURE__ */ jsx49(
24472
24771
  Input,
24473
24772
  {
24474
24773
  value: values2.email,
@@ -24480,8 +24779,8 @@ var RegisterForm = ({
24480
24779
  invalid: Boolean(errors.email)
24481
24780
  }
24482
24781
  ) }),
24483
- requireAddress ? /* @__PURE__ */ jsxs45(Fragment24, { children: [
24484
- /* @__PURE__ */ jsx48(Field, { label: "Street address", required: true, error: errors.streetAddress, children: /* @__PURE__ */ jsx48(
24782
+ requireAddress ? /* @__PURE__ */ jsxs46(Fragment24, { children: [
24783
+ /* @__PURE__ */ jsx49(Field, { label: "Street address", required: true, error: errors.streetAddress, children: /* @__PURE__ */ jsx49(
24485
24784
  Input,
24486
24785
  {
24487
24786
  value: (_a = values2.streetAddress) != null ? _a : "",
@@ -24490,7 +24789,7 @@ var RegisterForm = ({
24490
24789
  invalid: Boolean(errors.streetAddress)
24491
24790
  }
24492
24791
  ) }),
24493
- /* @__PURE__ */ jsx48(Field, { label: "ZIP / postcode", required: true, error: errors.zip, children: /* @__PURE__ */ jsx48(
24792
+ /* @__PURE__ */ jsx49(Field, { label: "ZIP / postcode", required: true, error: errors.zip, children: /* @__PURE__ */ jsx49(
24494
24793
  Input,
24495
24794
  {
24496
24795
  value: (_b = values2.zip) != null ? _b : "",
@@ -24499,7 +24798,7 @@ var RegisterForm = ({
24499
24798
  invalid: Boolean(errors.zip)
24500
24799
  }
24501
24800
  ) }),
24502
- /* @__PURE__ */ jsx48(Field, { label: "Country", required: true, error: errors.countryId, children: /* @__PURE__ */ jsx48(
24801
+ /* @__PURE__ */ jsx49(Field, { label: "Country", required: true, error: errors.countryId, children: /* @__PURE__ */ jsx49(
24503
24802
  Select,
24504
24803
  {
24505
24804
  value: (_c = values2.countryId) != null ? _c : "",
@@ -24513,13 +24812,13 @@ var RegisterForm = ({
24513
24812
  }
24514
24813
  }
24515
24814
  ) }),
24516
- /* @__PURE__ */ jsx48(
24815
+ /* @__PURE__ */ jsx49(
24517
24816
  Field,
24518
24817
  {
24519
24818
  label: "State / Province",
24520
24819
  required: states.length > 0,
24521
24820
  error: errors.stateId,
24522
- children: /* @__PURE__ */ jsx48(
24821
+ children: /* @__PURE__ */ jsx49(
24523
24822
  Select,
24524
24823
  {
24525
24824
  value: (_d = values2.stateId) != null ? _d : "",
@@ -24532,7 +24831,7 @@ var RegisterForm = ({
24532
24831
  )
24533
24832
  }
24534
24833
  ),
24535
- /* @__PURE__ */ jsx48(Field, { label: "City", required: true, error: errors.city, children: /* @__PURE__ */ jsx48(
24834
+ /* @__PURE__ */ jsx49(Field, { label: "City", required: true, error: errors.city, children: /* @__PURE__ */ jsx49(
24536
24835
  Input,
24537
24836
  {
24538
24837
  value: (_e = values2.city) != null ? _e : "",
@@ -24542,7 +24841,7 @@ var RegisterForm = ({
24542
24841
  }
24543
24842
  ) })
24544
24843
  ] }) : null,
24545
- /* @__PURE__ */ jsx48(Field, { label: "Phone", children: /* @__PURE__ */ jsx48(
24844
+ /* @__PURE__ */ jsx49(Field, { label: "Phone", children: /* @__PURE__ */ jsx49(
24546
24845
  Input,
24547
24846
  {
24548
24847
  value: (_f = values2.phone) != null ? _f : "",
@@ -24552,7 +24851,7 @@ var RegisterForm = ({
24552
24851
  autoCapitalize: "none"
24553
24852
  }
24554
24853
  ) }),
24555
- /* @__PURE__ */ jsx48(Field, { label: "Password", required: true, error: errors.password, children: /* @__PURE__ */ jsx48(
24854
+ /* @__PURE__ */ jsx49(Field, { label: "Password", required: true, error: errors.password, children: /* @__PURE__ */ jsx49(
24556
24855
  PasswordInput,
24557
24856
  {
24558
24857
  value: values2.password,
@@ -24561,7 +24860,7 @@ var RegisterForm = ({
24561
24860
  invalid: Boolean(errors.password)
24562
24861
  }
24563
24862
  ) }),
24564
- /* @__PURE__ */ jsx48(Field, { label: "Confirm password", required: true, error: errors.passwordConfirmation, children: /* @__PURE__ */ jsx48(
24863
+ /* @__PURE__ */ jsx49(Field, { label: "Confirm password", required: true, error: errors.passwordConfirmation, children: /* @__PURE__ */ jsx49(
24565
24864
  PasswordInput,
24566
24865
  {
24567
24866
  value: values2.passwordConfirmation,
@@ -24570,8 +24869,8 @@ var RegisterForm = ({
24570
24869
  invalid: Boolean(errors.passwordConfirmation)
24571
24870
  }
24572
24871
  ) }),
24573
- completionRefresh ? /* @__PURE__ */ jsxs45(View43, { style: { gap: 12 }, children: [
24574
- /* @__PURE__ */ jsxs45(
24872
+ completionRefresh ? /* @__PURE__ */ jsxs46(View44, { style: { gap: 12 }, children: [
24873
+ /* @__PURE__ */ jsxs46(
24575
24874
  Button,
24576
24875
  {
24577
24876
  disabled: loading || completionRefresh.retryAfter > 0,
@@ -24585,8 +24884,8 @@ var RegisterForm = ({
24585
24884
  ]
24586
24885
  }
24587
24886
  ),
24588
- refreshingProof ? /* @__PURE__ */ jsxs45(Fragment24, { children: [
24589
- /* @__PURE__ */ jsx48(Field, { label: t("auth.completionNewCode"), children: /* @__PURE__ */ jsx48(
24887
+ refreshingProof ? /* @__PURE__ */ jsxs46(Fragment24, { children: [
24888
+ /* @__PURE__ */ jsx49(Field, { label: t("auth.completionNewCode"), children: /* @__PURE__ */ jsx49(
24590
24889
  Input,
24591
24890
  {
24592
24891
  value: refreshCode,
@@ -24596,7 +24895,7 @@ var RegisterForm = ({
24596
24895
  onChangeText: (value6) => setRefreshCode(value6.replace(/\D/g, "").slice(0, 6))
24597
24896
  }
24598
24897
  ) }),
24599
- /* @__PURE__ */ jsx48(
24898
+ /* @__PURE__ */ jsx49(
24600
24899
  Button,
24601
24900
  {
24602
24901
  disabled: loading || !/^\d{6}$/.test(refreshCode),
@@ -24606,38 +24905,38 @@ var RegisterForm = ({
24606
24905
  )
24607
24906
  ] }) : null
24608
24907
  ] }) : null,
24609
- requireTerms ? /* @__PURE__ */ jsxs45(View43, { style: { gap: 8 }, children: [
24610
- /* @__PURE__ */ jsx48(
24611
- Pressable21,
24908
+ requireTerms ? /* @__PURE__ */ jsxs46(View44, { style: { gap: 8 }, children: [
24909
+ /* @__PURE__ */ jsx49(
24910
+ Pressable22,
24612
24911
  {
24613
24912
  accessibilityRole: "checkbox",
24614
24913
  accessibilityState: { checked: termsAccepted },
24615
24914
  onPress: () => setTermsAccepted((current4) => !current4),
24616
- children: /* @__PURE__ */ jsxs45(MutedText, { children: [
24915
+ children: /* @__PURE__ */ jsxs46(MutedText, { children: [
24617
24916
  termsAccepted ? "\u2611" : "\u2610",
24618
24917
  " ",
24619
24918
  t("auth.completionAgree")
24620
24919
  ] })
24621
24920
  }
24622
24921
  ),
24623
- /* @__PURE__ */ jsx48(
24624
- Pressable21,
24922
+ /* @__PURE__ */ jsx49(
24923
+ Pressable22,
24625
24924
  {
24626
24925
  accessibilityRole: "link",
24627
24926
  onPress: () => void Linking7.openURL("https://www.ticketfairy.com/terms-of-service"),
24628
- children: /* @__PURE__ */ jsx48(MutedText, { children: t("auth.completionTerms") })
24927
+ children: /* @__PURE__ */ jsx49(MutedText, { children: t("auth.completionTerms") })
24629
24928
  }
24630
24929
  ),
24631
- /* @__PURE__ */ jsx48(
24632
- Pressable21,
24930
+ /* @__PURE__ */ jsx49(
24931
+ Pressable22,
24633
24932
  {
24634
24933
  accessibilityRole: "link",
24635
24934
  onPress: () => void Linking7.openURL("https://www.ticketfairy.com/privacy"),
24636
- children: /* @__PURE__ */ jsx48(MutedText, { children: t("auth.completionPrivacy") })
24935
+ children: /* @__PURE__ */ jsx49(MutedText, { children: t("auth.completionPrivacy") })
24637
24936
  }
24638
24937
  )
24639
24938
  ] }) : null,
24640
- /* @__PURE__ */ jsx48(
24939
+ /* @__PURE__ */ jsx49(
24641
24940
  Button,
24642
24941
  {
24643
24942
  onPress: submit,
@@ -24648,16 +24947,16 @@ var RegisterForm = ({
24648
24947
  )
24649
24948
  ] });
24650
24949
  };
24651
- var styles17 = StyleSheet34.create({
24950
+ var styles17 = StyleSheet35.create({
24652
24951
  form: { gap: 14 },
24653
24952
  row: { flexDirection: "row", gap: 10 },
24654
24953
  flex: { flex: 1 }
24655
24954
  });
24656
24955
 
24657
24956
  // src/auth/EmailCodeForm.tsx
24658
- import { useState as useState48 } from "react";
24659
- import { View as View44 } from "react-native";
24660
- import { Fragment as Fragment25, jsx as jsx49, jsxs as jsxs46 } from "react/jsx-runtime";
24957
+ import { useState as useState49 } from "react";
24958
+ import { View as View45 } from "react-native";
24959
+ import { Fragment as Fragment25, jsx as jsx50, jsxs as jsxs47 } from "react/jsx-runtime";
24661
24960
  var EmailCodeForm = ({
24662
24961
  initialEmail,
24663
24962
  sent,
@@ -24670,13 +24969,13 @@ var EmailCodeForm = ({
24670
24969
  onVerify,
24671
24970
  onBack
24672
24971
  }) => {
24673
- const [email, setEmail] = useState48(initialEmail);
24674
- const [code, setCode] = useState48("");
24675
- return /* @__PURE__ */ jsxs46(View44, { style: { gap: 14 }, children: [
24676
- /* @__PURE__ */ jsx49(MutedText, { children: sent ? `Enter the sign-in code sent to ${target}.` : "Receive a one-time sign-in code by email." }),
24677
- error ? /* @__PURE__ */ jsx49(ErrorText, { children: error }) : null,
24678
- successMessage ? /* @__PURE__ */ jsx49(MutedText, { children: successMessage }) : null,
24679
- /* @__PURE__ */ jsx49(Field, { label: "Email", required: true, children: /* @__PURE__ */ jsx49(
24972
+ const [email, setEmail] = useState49(initialEmail);
24973
+ const [code, setCode] = useState49("");
24974
+ return /* @__PURE__ */ jsxs47(View45, { style: { gap: 14 }, children: [
24975
+ /* @__PURE__ */ jsx50(MutedText, { children: sent ? `Enter the sign-in code sent to ${target}.` : "Receive a one-time sign-in code by email." }),
24976
+ error ? /* @__PURE__ */ jsx50(ErrorText, { children: error }) : null,
24977
+ successMessage ? /* @__PURE__ */ jsx50(MutedText, { children: successMessage }) : null,
24978
+ /* @__PURE__ */ jsx50(Field, { label: "Email", required: true, children: /* @__PURE__ */ jsx50(
24680
24979
  Input,
24681
24980
  {
24682
24981
  value: email,
@@ -24687,8 +24986,8 @@ var EmailCodeForm = ({
24687
24986
  accessibilityLabel: "Email"
24688
24987
  }
24689
24988
  ) }),
24690
- sent ? /* @__PURE__ */ jsxs46(Fragment25, { children: [
24691
- /* @__PURE__ */ jsx49(Field, { label: "Sign-in code", required: true, children: /* @__PURE__ */ jsx49(
24989
+ sent ? /* @__PURE__ */ jsxs47(Fragment25, { children: [
24990
+ /* @__PURE__ */ jsx50(Field, { label: "Sign-in code", required: true, children: /* @__PURE__ */ jsx50(
24692
24991
  Input,
24693
24992
  {
24694
24993
  value: code,
@@ -24702,7 +25001,7 @@ var EmailCodeForm = ({
24702
25001
  editable: !loading
24703
25002
  }
24704
25003
  ) }),
24705
- /* @__PURE__ */ jsx49(
25004
+ /* @__PURE__ */ jsx50(
24706
25005
  Button,
24707
25006
  {
24708
25007
  loading,
@@ -24712,7 +25011,7 @@ var EmailCodeForm = ({
24712
25011
  }
24713
25012
  )
24714
25013
  ] }) : null,
24715
- /* @__PURE__ */ jsx49(
25014
+ /* @__PURE__ */ jsx50(
24716
25015
  Button,
24717
25016
  {
24718
25017
  loading: !sent && loading,
@@ -24722,26 +25021,26 @@ var EmailCodeForm = ({
24722
25021
  children: retryAfter > 0 ? `Send another code in ${retryAfter}s` : sent ? "Resend code" : "Send sign-in code"
24723
25022
  }
24724
25023
  ),
24725
- /* @__PURE__ */ jsx49(Button, { variant: "ghost", disabled: loading, onPress: onBack, children: "Use password instead" })
25024
+ /* @__PURE__ */ jsx50(Button, { variant: "ghost", disabled: loading, onPress: onBack, children: "Use password instead" })
24726
25025
  ] });
24727
25026
  };
24728
25027
 
24729
25028
  // src/auth/AuthModal.tsx
24730
- import { jsx as jsx50, jsxs as jsxs47 } from "react/jsx-runtime";
25029
+ import { jsx as jsx51, jsxs as jsxs48 } from "react/jsx-runtime";
24731
25030
  var Tab = ({
24732
25031
  label,
24733
25032
  active: active2,
24734
25033
  onPress
24735
25034
  }) => {
24736
25035
  const theme = useTheme();
24737
- return /* @__PURE__ */ jsx50(
24738
- Pressable22,
25036
+ return /* @__PURE__ */ jsx51(
25037
+ Pressable23,
24739
25038
  {
24740
25039
  accessibilityRole: "tab",
24741
25040
  accessibilityState: { selected: active2 },
24742
25041
  onPress,
24743
25042
  style: [styles18.tab, { borderBottomColor: active2 ? theme.accent : "transparent" }],
24744
- children: /* @__PURE__ */ jsx50(Text27, { style: [styles18.tabText, { color: active2 ? theme.text : theme.muted }], children: label })
25043
+ children: /* @__PURE__ */ jsx51(Text28, { style: [styles18.tabText, { color: active2 ? theme.text : theme.muted }], children: label })
24745
25044
  }
24746
25045
  );
24747
25046
  };
@@ -24783,34 +25082,34 @@ var AuthModal = ({
24783
25082
  if (auth.twoFactorChallenge) await auth.cancelTwoFactor();
24784
25083
  onClose();
24785
25084
  };
24786
- return /* @__PURE__ */ jsx50(Modal6, { visible: open, animationType: "slide", transparent: true, onRequestClose: requestClose, children: /* @__PURE__ */ jsx50(Pressable22, { style: styles18.backdrop, onPress: requestClose, children: /* @__PURE__ */ jsxs47(
24787
- Pressable22,
25085
+ return /* @__PURE__ */ jsx51(Modal6, { visible: open, animationType: "slide", transparent: true, onRequestClose: requestClose, children: /* @__PURE__ */ jsx51(Pressable23, { style: styles18.backdrop, onPress: requestClose, children: /* @__PURE__ */ jsxs48(
25086
+ Pressable23,
24788
25087
  {
24789
25088
  style: [styles18.sheet, { backgroundColor: theme.surface }],
24790
25089
  onPress: () => {
24791
25090
  },
24792
25091
  children: [
24793
- /* @__PURE__ */ jsxs47(View45, { style: styles18.header, children: [
24794
- /* @__PURE__ */ jsx50(Text27, { style: [styles18.title, { color: theme.text }], children: isPasswordReset ? "Password reset" : auth.view === "two-factor" ? "Verify your sign in" : "Ticket Fairy account" }),
24795
- /* @__PURE__ */ jsx50(
24796
- Pressable22,
25092
+ /* @__PURE__ */ jsxs48(View46, { style: styles18.header, children: [
25093
+ /* @__PURE__ */ jsx51(Text28, { style: [styles18.title, { color: theme.text }], children: isPasswordReset ? "Password reset" : auth.view === "two-factor" ? "Verify your sign in" : "Ticket Fairy account" }),
25094
+ /* @__PURE__ */ jsx51(
25095
+ Pressable23,
24797
25096
  {
24798
25097
  accessibilityRole: "button",
24799
25098
  accessibilityLabel: "Close",
24800
25099
  disabled: auth.isSubmitting,
24801
25100
  onPress: () => void requestClose(),
24802
25101
  hitSlop: 12,
24803
- children: /* @__PURE__ */ jsx50(Text27, { style: [styles18.close, { color: theme.muted }], children: "\u2715" })
25102
+ children: /* @__PURE__ */ jsx51(Text28, { style: [styles18.close, { color: theme.muted }], children: "\u2715" })
24804
25103
  }
24805
25104
  )
24806
25105
  ] }),
24807
- /* @__PURE__ */ jsxs47(
25106
+ /* @__PURE__ */ jsxs48(
24808
25107
  ScrollView3,
24809
25108
  {
24810
25109
  contentContainerStyle: styles18.body,
24811
25110
  keyboardShouldPersistTaps: "handled",
24812
25111
  children: [
24813
- logoUrl ? /* @__PURE__ */ jsx50(
25112
+ logoUrl ? /* @__PURE__ */ jsx51(
24814
25113
  Image6,
24815
25114
  {
24816
25115
  accessibilityLabel: "The Ticket Fairy",
@@ -24819,8 +25118,8 @@ var AuthModal = ({
24819
25118
  resizeMode: "contain"
24820
25119
  }
24821
25120
  ) : null,
24822
- showTabs ? /* @__PURE__ */ jsxs47(View45, { style: [styles18.tabs, { borderBottomColor: theme.border }], children: [
24823
- /* @__PURE__ */ jsx50(
25121
+ showTabs ? /* @__PURE__ */ jsxs48(View46, { style: [styles18.tabs, { borderBottomColor: theme.border }], children: [
25122
+ /* @__PURE__ */ jsx51(
24824
25123
  Tab,
24825
25124
  {
24826
25125
  label: "Login",
@@ -24828,7 +25127,7 @@ var AuthModal = ({
24828
25127
  onPress: () => auth.showLogin(auth.suggestedEmail)
24829
25128
  }
24830
25129
  ),
24831
- /* @__PURE__ */ jsx50(
25130
+ /* @__PURE__ */ jsx51(
24832
25131
  Tab,
24833
25132
  {
24834
25133
  label: "Sign Up",
@@ -24837,8 +25136,8 @@ var AuthModal = ({
24837
25136
  }
24838
25137
  )
24839
25138
  ] }) : null,
24840
- message && !isPasswordReset ? /* @__PURE__ */ jsx50(MutedText, { children: message }) : null,
24841
- auth.view === "email-code" ? /* @__PURE__ */ jsx50(
25139
+ message && !isPasswordReset ? /* @__PURE__ */ jsx51(MutedText, { children: message }) : null,
25140
+ auth.view === "email-code" ? /* @__PURE__ */ jsx51(
24842
25141
  EmailCodeForm,
24843
25142
  {
24844
25143
  initialEmail: auth.suggestedEmail,
@@ -24853,7 +25152,7 @@ var AuthModal = ({
24853
25152
  onBack: () => auth.showLogin(auth.suggestedEmail)
24854
25153
  }
24855
25154
  ) : null,
24856
- auth.view === "two-factor" && auth.twoFactorChallenge ? /* @__PURE__ */ jsx50(
25155
+ auth.view === "two-factor" && auth.twoFactorChallenge ? /* @__PURE__ */ jsx51(
24857
25156
  TwoFactorForm,
24858
25157
  {
24859
25158
  loading: auth.isSubmitting,
@@ -24866,7 +25165,7 @@ var AuthModal = ({
24866
25165
  onCancel: auth.cancelTwoFactor
24867
25166
  }
24868
25167
  ) : null,
24869
- auth.view === "login" ? /* @__PURE__ */ jsx50(
25168
+ auth.view === "login" ? /* @__PURE__ */ jsx51(
24870
25169
  LoginForm,
24871
25170
  {
24872
25171
  initialEmail: auth.suggestedEmail,
@@ -24879,18 +25178,18 @@ var AuthModal = ({
24879
25178
  onFieldChange: auth.clearFieldError
24880
25179
  }
24881
25180
  ) : null,
24882
- auth.view === "login" && auth.browserSignInAvailable ? /* @__PURE__ */ jsx50(View45, { style: { gap: 12 }, children: ["google", "apple", "facebook", "passkey"].map((provider) => /* @__PURE__ */ jsx50(
24883
- Pressable22,
25181
+ auth.view === "login" && auth.browserSignInAvailable ? /* @__PURE__ */ jsx51(View46, { style: { gap: 12 }, children: ["google", "apple", "facebook", "passkey"].map((provider) => /* @__PURE__ */ jsx51(
25182
+ Pressable23,
24884
25183
  {
24885
25184
  accessibilityRole: "button",
24886
25185
  disabled: auth.isSubmitting,
24887
25186
  onPress: () => void auth.submitBrowserSignIn(provider),
24888
- children: /* @__PURE__ */ jsx50(Text27, { style: { color: theme.accent }, children: provider === "passkey" ? "Sign in with a passkey" : `Sign in with ${provider === "google" ? "Google" : provider === "apple" ? "Apple" : "Facebook"}` })
25187
+ children: /* @__PURE__ */ jsx51(Text28, { style: { color: theme.accent }, children: provider === "passkey" ? "Sign in with a passkey" : `Sign in with ${provider === "google" ? "Google" : provider === "apple" ? "Apple" : "Facebook"}` })
24889
25188
  },
24890
25189
  provider
24891
25190
  )) }) : null,
24892
- auth.view === "login" && auth.emailCodeAvailable ? /* @__PURE__ */ jsx50(Pressable22, { onPress: () => auth.showEmailCode(auth.suggestedEmail), children: /* @__PURE__ */ jsx50(Text27, { style: { color: theme.accent }, children: "Sign in with an email code" }) }) : null,
24893
- auth.view === "register" && allowRegistration ? /* @__PURE__ */ jsx50(
25191
+ auth.view === "login" && auth.emailCodeAvailable ? /* @__PURE__ */ jsx51(Pressable23, { onPress: () => auth.showEmailCode(auth.suggestedEmail), children: /* @__PURE__ */ jsx51(Text28, { style: { color: theme.accent }, children: "Sign in with an email code" }) }) : null,
25192
+ auth.view === "register" && allowRegistration ? /* @__PURE__ */ jsx51(
24894
25193
  RegisterForm,
24895
25194
  {
24896
25195
  initialEmail: auth.suggestedEmail,
@@ -24908,7 +25207,7 @@ var AuthModal = ({
24908
25207
  onFieldChange: auth.clearFieldError
24909
25208
  }
24910
25209
  ) : null,
24911
- isPasswordReset ? /* @__PURE__ */ jsx50(
25210
+ isPasswordReset ? /* @__PURE__ */ jsx51(
24912
25211
  ForgotPasswordForm,
24913
25212
  {
24914
25213
  initialEmail: auth.suggestedEmail,
@@ -24928,7 +25227,7 @@ var AuthModal = ({
24928
25227
  }
24929
25228
  ) }) });
24930
25229
  };
24931
- var styles18 = StyleSheet35.create({
25230
+ var styles18 = StyleSheet36.create({
24932
25231
  backdrop: { flex: 1, justifyContent: "flex-end", backgroundColor: "rgba(0,0,0,0.4)" },
24933
25232
  sheet: {
24934
25233
  borderTopLeftRadius: 20,
@@ -24948,7 +25247,7 @@ var styles18 = StyleSheet35.create({
24948
25247
  logo: { width: "100%", height: 44, alignSelf: "center" },
24949
25248
  tabs: {
24950
25249
  flexDirection: "row",
24951
- borderBottomWidth: StyleSheet35.hairlineWidth
25250
+ borderBottomWidth: StyleSheet36.hairlineWidth
24952
25251
  },
24953
25252
  tab: {
24954
25253
  flex: 1,
@@ -24960,20 +25259,20 @@ var styles18 = StyleSheet35.create({
24960
25259
  });
24961
25260
 
24962
25261
  // src/auth/ResetPasswordForm.tsx
24963
- import { useMemo as useMemo35, useState as useState49 } from "react";
24964
- import { StyleSheet as StyleSheet36, Text as Text28, View as View46 } from "react-native";
24965
- import { jsx as jsx51, jsxs as jsxs48 } from "react/jsx-runtime";
25262
+ import { useMemo as useMemo36, useState as useState50 } from "react";
25263
+ import { StyleSheet as StyleSheet37, Text as Text29, View as View47 } from "react-native";
25264
+ import { jsx as jsx52, jsxs as jsxs49 } from "react/jsx-runtime";
24966
25265
  var ResetPasswordForm = ({
24967
25266
  token,
24968
25267
  onSuccess,
24969
25268
  onBackToLogin
24970
25269
  }) => {
24971
25270
  const theme = useTheme();
24972
- const [password, setPassword] = useState49("");
24973
- const [confirmation, setConfirmation] = useState49("");
24974
- const [submitted, setSubmitted] = useState49(false);
24975
- const [success, setSuccess] = useState49(false);
24976
- const validation = useMemo35(() => {
25271
+ const [password, setPassword] = useState50("");
25272
+ const [confirmation, setConfirmation] = useState50("");
25273
+ const [submitted, setSubmitted] = useState50(false);
25274
+ const [success, setSuccess] = useState50(false);
25275
+ const validation = useMemo36(() => {
24977
25276
  if (!submitted)
24978
25277
  return {};
24979
25278
  return {
@@ -24995,16 +25294,16 @@ var ResetPasswordForm = ({
24995
25294
  reset.mutate({ token, password, passwordConfirmation: confirmation });
24996
25295
  };
24997
25296
  if (success) {
24998
- return /* @__PURE__ */ jsxs48(View46, { style: styles19.form, children: [
24999
- /* @__PURE__ */ jsx51(Text28, { style: [styles19.success, { color: theme.success }], children: "Your password has been changed. You can now log in." }),
25000
- onBackToLogin ? /* @__PURE__ */ jsx51(Button, { onPress: onBackToLogin, children: "Log in" }) : null
25297
+ return /* @__PURE__ */ jsxs49(View47, { style: styles19.form, children: [
25298
+ /* @__PURE__ */ jsx52(Text29, { style: [styles19.success, { color: theme.success }], children: "Your password has been changed. You can now log in." }),
25299
+ onBackToLogin ? /* @__PURE__ */ jsx52(Button, { onPress: onBackToLogin, children: "Log in" }) : null
25001
25300
  ] });
25002
25301
  }
25003
- return /* @__PURE__ */ jsxs48(View46, { style: styles19.form, children: [
25004
- /* @__PURE__ */ jsx51(Text28, { style: [styles19.title, { color: theme.text }], children: "Change Password" }),
25005
- validation.token ? /* @__PURE__ */ jsx51(ErrorText, { children: validation.token }) : null,
25006
- reset.error ? /* @__PURE__ */ jsx51(ErrorText, { children: errorMessage(reset.error) }) : null,
25007
- /* @__PURE__ */ jsx51(Field, { label: "New Password", required: true, error: validation.password, children: /* @__PURE__ */ jsx51(
25302
+ return /* @__PURE__ */ jsxs49(View47, { style: styles19.form, children: [
25303
+ /* @__PURE__ */ jsx52(Text29, { style: [styles19.title, { color: theme.text }], children: "Change Password" }),
25304
+ validation.token ? /* @__PURE__ */ jsx52(ErrorText, { children: validation.token }) : null,
25305
+ reset.error ? /* @__PURE__ */ jsx52(ErrorText, { children: errorMessage(reset.error) }) : null,
25306
+ /* @__PURE__ */ jsx52(Field, { label: "New Password", required: true, error: validation.password, children: /* @__PURE__ */ jsx52(
25008
25307
  PasswordInput,
25009
25308
  {
25010
25309
  value: password,
@@ -25013,7 +25312,7 @@ var ResetPasswordForm = ({
25013
25312
  invalid: Boolean(validation.password)
25014
25313
  }
25015
25314
  ) }),
25016
- /* @__PURE__ */ jsx51(Field, { label: "Confirm Password", required: true, error: validation.confirmation, children: /* @__PURE__ */ jsx51(
25315
+ /* @__PURE__ */ jsx52(Field, { label: "Confirm Password", required: true, error: validation.confirmation, children: /* @__PURE__ */ jsx52(
25017
25316
  PasswordInput,
25018
25317
  {
25019
25318
  value: confirmation,
@@ -25022,19 +25321,19 @@ var ResetPasswordForm = ({
25022
25321
  invalid: Boolean(validation.confirmation)
25023
25322
  }
25024
25323
  ) }),
25025
- /* @__PURE__ */ jsx51(Button, { onPress: submit, loading: reset.isPending, disabled: !token, children: "Submit" })
25324
+ /* @__PURE__ */ jsx52(Button, { onPress: submit, loading: reset.isPending, disabled: !token, children: "Submit" })
25026
25325
  ] });
25027
25326
  };
25028
- var styles19 = StyleSheet36.create({
25327
+ var styles19 = StyleSheet37.create({
25029
25328
  form: { gap: 14 },
25030
25329
  title: { fontSize: 18, fontWeight: "700" },
25031
25330
  success: { fontSize: 15, fontWeight: "600" }
25032
25331
  });
25033
25332
 
25034
25333
  // src/EmbeddedCheckout.tsx
25035
- import { useEffect as useEffect31, useRef as useRef29, useState as useState50 } from "react";
25036
- import { Pressable as Pressable23, ScrollView as ScrollView4, StyleSheet as StyleSheet37, Text as Text29, View as View47 } from "react-native";
25037
- import { Fragment as Fragment26, jsx as jsx52, jsxs as jsxs49 } from "react/jsx-runtime";
25334
+ import { useEffect as useEffect31, useRef as useRef30, useState as useState51 } from "react";
25335
+ import { Pressable as Pressable24, ScrollView as ScrollView4, StyleSheet as StyleSheet38, Text as Text30, View as View48 } from "react-native";
25336
+ import { Fragment as Fragment26, jsx as jsx53, jsxs as jsxs50 } from "react/jsx-runtime";
25038
25337
  var Flow = ({
25039
25338
  eventId,
25040
25339
  onComplete,
@@ -25060,13 +25359,13 @@ var Flow = ({
25060
25359
  var _a;
25061
25360
  const checkout = useCheckoutContext();
25062
25361
  const theme = useTheme();
25063
- const [view, setView] = useState50(initialView);
25064
- const [selectionView, setSelectionView] = useState50(initialView);
25065
- const editedDetailsRef = useRef29(null);
25066
- const [authRequest, setAuthRequest] = useState50(
25362
+ const [view, setView] = useState51(initialView);
25363
+ const [selectionView, setSelectionView] = useState51(initialView);
25364
+ const editedDetailsRef = useRef30(null);
25365
+ const [authRequest, setAuthRequest] = useState51(
25067
25366
  null
25068
25367
  );
25069
- const [privacyAttempted, setPrivacyAttempted] = useState50(false);
25368
+ const [privacyAttempted, setPrivacyAttempted] = useState51(false);
25070
25369
  const openBuiltInAuth = (email) => setAuthRequest((current4) => {
25071
25370
  var _a2;
25072
25371
  return { email, key: ((_a2 = current4 == null ? void 0 : current4.key) != null ? _a2 : 0) + 1 };
@@ -25119,18 +25418,18 @@ var Flow = ({
25119
25418
  const formattedTotal = breakdown ? breakdown.currencySymbol ? `${breakdown.currencySymbol}${Number(selectedTicketsTotal).toFixed(2)}` : `${breakdown.currencyCode} ${Number(selectedTicketsTotal).toFixed(2)}` : null;
25120
25419
  const succeeded = checkout.status === "succeeded" && Boolean(checkout.order);
25121
25420
  if (visibleView === "checkout" && succeeded && confirmationMode === "inline") {
25122
- return /* @__PURE__ */ jsxs49(ScrollView4, { contentContainerStyle: styles20.content, children: [
25123
- /* @__PURE__ */ jsx52(IDVerification, {}),
25124
- /* @__PURE__ */ jsx52(Confirmation, { children: confirmationChildren })
25421
+ return /* @__PURE__ */ jsxs50(ScrollView4, { contentContainerStyle: styles20.content, children: [
25422
+ /* @__PURE__ */ jsx53(IDVerification, {}),
25423
+ /* @__PURE__ */ jsx53(Confirmation, { children: confirmationChildren })
25125
25424
  ] });
25126
25425
  }
25127
- return /* @__PURE__ */ jsxs49(
25426
+ return /* @__PURE__ */ jsxs50(
25128
25427
  ScrollView4,
25129
25428
  {
25130
25429
  contentContainerStyle: styles20.content,
25131
25430
  keyboardShouldPersistTaps: "handled",
25132
25431
  children: [
25133
- /* @__PURE__ */ jsx52(View47, { style: visibleView === "tickets" ? styles20.stack : styles20.hidden, children: /* @__PURE__ */ jsx52(
25432
+ /* @__PURE__ */ jsx53(View48, { style: visibleView === "tickets" ? styles20.stack : styles20.hidden, children: /* @__PURE__ */ jsx53(
25134
25433
  Bundles,
25135
25434
  {
25136
25435
  eventId,
@@ -25139,7 +25438,7 @@ var Flow = ({
25139
25438
  confirmationMode
25140
25439
  }
25141
25440
  ) }),
25142
- visibleView === "tickets" && /* @__PURE__ */ jsx52(View47, { style: styles20.stack, children: /* @__PURE__ */ jsx52(
25441
+ visibleView === "tickets" && /* @__PURE__ */ jsx53(View48, { style: styles20.stack, children: /* @__PURE__ */ jsx53(
25143
25442
  Tickets,
25144
25443
  {
25145
25444
  eventId,
@@ -25150,29 +25449,29 @@ var Flow = ({
25150
25449
  readAttributionFromUrl
25151
25450
  }
25152
25451
  ) }),
25153
- visibleView === "seats" && /* @__PURE__ */ jsxs49(View47, { style: styles20.stack, children: [
25154
- /* @__PURE__ */ jsx52(Pressable23, { onPress: () => setView("tickets"), style: styles20.back, children: /* @__PURE__ */ jsx52(Text29, { style: [styles20.backText, { color: theme.accent }], children: "\u2190 Back to tickets" }) }),
25155
- /* @__PURE__ */ jsx52(SeatMap, { eventId, onContinue: () => enterCheckout("seats") })
25452
+ visibleView === "seats" && /* @__PURE__ */ jsxs50(View48, { style: styles20.stack, children: [
25453
+ /* @__PURE__ */ jsx53(Pressable24, { onPress: () => setView("tickets"), style: styles20.back, children: /* @__PURE__ */ jsx53(Text30, { style: [styles20.backText, { color: theme.accent }], children: "\u2190 Back to tickets" }) }),
25454
+ /* @__PURE__ */ jsx53(SeatMap, { eventId, onContinue: () => enterCheckout("seats") })
25156
25455
  ] }),
25157
- visibleView === "checkout" && /* @__PURE__ */ jsxs49(View47, { style: styles20.stack, children: [
25158
- /* @__PURE__ */ jsx52(TimerBanner, { seconds: checkout.secondsLeft }),
25159
- /* @__PURE__ */ jsxs49(View47, { style: [styles20.selection, { borderColor: theme.border }], children: [
25160
- /* @__PURE__ */ jsxs49(Text29, { style: [styles20.selectionText, { color: theme.text }], children: [
25456
+ visibleView === "checkout" && /* @__PURE__ */ jsxs50(View48, { style: styles20.stack, children: [
25457
+ /* @__PURE__ */ jsx53(TimerBanner, { seconds: checkout.secondsLeft }),
25458
+ /* @__PURE__ */ jsxs50(View48, { style: [styles20.selection, { borderColor: theme.border }], children: [
25459
+ /* @__PURE__ */ jsxs50(Text30, { style: [styles20.selectionText, { color: theme.text }], children: [
25161
25460
  selectedCount,
25162
25461
  " ",
25163
25462
  selectedCount === 1 ? "ticket" : "tickets",
25164
25463
  " selected",
25165
25464
  formattedTotal ? ` \xB7 ${formattedTotal}` : ""
25166
25465
  ] }),
25167
- /* @__PURE__ */ jsx52(
25168
- Pressable23,
25466
+ /* @__PURE__ */ jsx53(
25467
+ Pressable24,
25169
25468
  {
25170
25469
  onPress: editSelection,
25171
25470
  disabled: !leaveAllowed,
25172
25471
  accessibilityRole: "button",
25173
25472
  accessibilityState: { disabled: !leaveAllowed },
25174
- children: /* @__PURE__ */ jsx52(
25175
- Text29,
25473
+ children: /* @__PURE__ */ jsx53(
25474
+ Text30,
25176
25475
  {
25177
25476
  style: [
25178
25477
  styles20.editText,
@@ -25185,8 +25484,8 @@ var Flow = ({
25185
25484
  }
25186
25485
  )
25187
25486
  ] }),
25188
- /* @__PURE__ */ jsx52(AddOns, { eventId }),
25189
- /* @__PURE__ */ jsx52(
25487
+ /* @__PURE__ */ jsx53(AddOns, { eventId }),
25488
+ /* @__PURE__ */ jsx53(
25190
25489
  BillingInfo,
25191
25490
  {
25192
25491
  eventId,
@@ -25201,8 +25500,8 @@ var Flow = ({
25201
25500
  showPrivacyError: privacyAttempted
25202
25501
  }
25203
25502
  ),
25204
- /* @__PURE__ */ jsx52(WaiverSigning, { eventId }),
25205
- /* @__PURE__ */ jsx52(
25503
+ /* @__PURE__ */ jsx53(WaiverSigning, { eventId }),
25504
+ /* @__PURE__ */ jsx53(
25206
25505
  Payment,
25207
25506
  {
25208
25507
  onComplete,
@@ -25217,7 +25516,7 @@ var Flow = ({
25217
25516
  }
25218
25517
  )
25219
25518
  ] }),
25220
- authRequest && auth !== false && !onLogin && /* @__PURE__ */ jsx52(
25519
+ authRequest && auth !== false && !onLogin && /* @__PURE__ */ jsx53(
25221
25520
  AuthModal,
25222
25521
  {
25223
25522
  checkoutEventId: eventId,
@@ -25246,20 +25545,20 @@ var EventFlow = (flow) => {
25246
25545
  const flowProps = embeddedCheckoutProps(checkout.store, flow);
25247
25546
  const heldEvent = hooks_exports.useEvent(shown.waitingFor ? shown.eventId : void 0).data;
25248
25547
  const notice = shown.waitingFor ? heldOrderNotice(heldEvent == null ? void 0 : heldEvent.name) : null;
25249
- return /* @__PURE__ */ jsxs49(Fragment26, { children: [
25250
- notice && /* @__PURE__ */ jsx52(
25251
- View47,
25548
+ return /* @__PURE__ */ jsxs50(Fragment26, { children: [
25549
+ notice && /* @__PURE__ */ jsx53(
25550
+ View48,
25252
25551
  {
25253
25552
  accessibilityLiveRegion: "polite",
25254
25553
  style: [styles20.notice, { borderColor: theme.accent }],
25255
- children: /* @__PURE__ */ jsx52(Text29, { style: [styles20.noticeText, { color: theme.text }], children: translate(notice.key, notice.params) })
25554
+ children: /* @__PURE__ */ jsx53(Text30, { style: [styles20.noticeText, { color: theme.text }], children: translate(notice.key, notice.params) })
25256
25555
  }
25257
25556
  ),
25258
- /* @__PURE__ */ jsx52(Flow, { ...flowProps }, flowProps.eventId)
25557
+ /* @__PURE__ */ jsx53(Flow, { ...flowProps }, flowProps.eventId)
25259
25558
  ] });
25260
25559
  };
25261
- var EmbeddedCheckout = ({ theme, ...flow }) => /* @__PURE__ */ jsx52(CheckoutProvider, { theme, children: /* @__PURE__ */ jsx52(EventFlow, { ...flow }) });
25262
- var styles20 = StyleSheet37.create({
25560
+ var EmbeddedCheckout = ({ theme, ...flow }) => /* @__PURE__ */ jsx53(CheckoutProvider, { theme, children: /* @__PURE__ */ jsx53(EventFlow, { ...flow }) });
25561
+ var styles20 = StyleSheet38.create({
25263
25562
  content: { padding: 16, gap: 12 },
25264
25563
  hidden: { display: "none" },
25265
25564
  stack: { gap: 12 },
@@ -25269,7 +25568,7 @@ var styles20 = StyleSheet37.create({
25269
25568
  flexDirection: "row",
25270
25569
  alignItems: "center",
25271
25570
  justifyContent: "space-between",
25272
- borderWidth: StyleSheet37.hairlineWidth,
25571
+ borderWidth: StyleSheet38.hairlineWidth,
25273
25572
  borderRadius: 10,
25274
25573
  paddingVertical: 10,
25275
25574
  paddingHorizontal: 14
@@ -25280,7 +25579,7 @@ var styles20 = StyleSheet37.create({
25280
25579
  notice: {
25281
25580
  marginHorizontal: 16,
25282
25581
  marginTop: 16,
25283
- borderWidth: StyleSheet37.hairlineWidth,
25582
+ borderWidth: StyleSheet38.hairlineWidth,
25284
25583
  borderRadius: 10,
25285
25584
  paddingVertical: 10,
25286
25585
  paddingHorizontal: 14
@@ -25360,6 +25659,8 @@ export {
25360
25659
  SeatMap,
25361
25660
  SectionHeader,
25362
25661
  Select,
25662
+ Streaming,
25663
+ StreamingView,
25363
25664
  TICKET_CHANGE_PAYMENT_WINDOW_MS,
25364
25665
  TicketChange,
25365
25666
  TicketGift,