@loczer/storefront-sdk 0.208.0 → 0.209.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/dist/StorefrontContext.d.ts +89 -0
  2. package/dist/StorefrontContext.d.ts.map +1 -1
  3. package/dist/StorefrontContext.js +8 -1
  4. package/dist/StorefrontProvider.d.ts +84 -0
  5. package/dist/StorefrontProvider.d.ts.map +1 -1
  6. package/dist/StorefrontProvider.js +55 -41
  7. package/dist/chunks/pkg/ui/dist/Map/{MapContent-CDeWtwKa.js → MapContent-TzYCv8ji.js} +109 -108
  8. package/dist/chunks/pkg/ui/dist/Map/constants-dF2KdJZy.js +8 -0
  9. package/dist/chunks/pkg/ui/dist/{Map-Cs7wgtH9.js → Map-ZM-ZOU9P.js} +1 -1
  10. package/dist/components/BookingBikeVariantDialog/index.js +15 -15
  11. package/dist/components/ContactSection/index.js +9 -9
  12. package/dist/components/Header/index.d.ts.map +1 -1
  13. package/dist/components/Header/index.js +72 -66
  14. package/dist/components/Itineraries/ItinerariesSection.d.ts +2 -0
  15. package/dist/components/Itineraries/ItinerariesSection.d.ts.map +1 -0
  16. package/dist/components/Itineraries/ItinerariesSection.js +81 -0
  17. package/dist/components/Itineraries/ItineraryListItem.d.ts +9 -0
  18. package/dist/components/Itineraries/ItineraryListItem.d.ts.map +1 -0
  19. package/dist/components/Itineraries/ItineraryListItem.js +100 -0
  20. package/dist/components/Itineraries/ItineraryRouteMap.d.ts +10 -0
  21. package/dist/components/Itineraries/ItineraryRouteMap.d.ts.map +1 -0
  22. package/dist/components/Itineraries/ItineraryRouteMap.js +67 -0
  23. package/dist/components/Itineraries/index.d.ts +4 -0
  24. package/dist/components/Itineraries/index.d.ts.map +1 -0
  25. package/dist/components/Itineraries/index.js +4 -0
  26. package/dist/components/Map/index.d.ts +12 -0
  27. package/dist/components/Map/index.d.ts.map +1 -1
  28. package/dist/components/Map/index.js +1 -1
  29. package/dist/i18n/en.d.ts +31 -0
  30. package/dist/i18n/en.d.ts.map +1 -1
  31. package/dist/i18n/en.js +31 -0
  32. package/dist/i18n/fr.d.ts +31 -0
  33. package/dist/i18n/fr.d.ts.map +1 -1
  34. package/dist/i18n/fr.js +31 -0
  35. package/dist/index.d.ts +763 -0
  36. package/dist/index.js +58 -51
  37. package/dist/lib/itineraryPresentation.d.ts +14 -0
  38. package/dist/lib/itineraryPresentation.d.ts.map +1 -0
  39. package/dist/lib/itineraryPresentation.js +26 -0
  40. package/dist/lib/storefrontItineraries.d.ts +418 -0
  41. package/dist/lib/storefrontItineraries.d.ts.map +1 -0
  42. package/dist/lib/storefrontItineraries.js +81 -0
  43. package/dist/pages/BookingPage.js +8 -8
  44. package/dist/pages/CheckoutPage.js +4 -4
  45. package/dist/pages/HomePage.d.ts.map +1 -1
  46. package/dist/pages/HomePage.js +111 -108
  47. package/dist/pages/ItinerariesPage.d.ts +2 -0
  48. package/dist/pages/ItinerariesPage.d.ts.map +1 -0
  49. package/dist/pages/ItinerariesPage.js +76 -0
  50. package/dist/pages/ItineraryDetailsPage.d.ts +66 -0
  51. package/dist/pages/ItineraryDetailsPage.d.ts.map +1 -0
  52. package/dist/pages/ItineraryDetailsPage.js +223 -0
  53. package/dist/pages/ProductPage.js +6 -6
  54. package/dist/pages/itineraries/ElevationProfile.d.ts +5 -0
  55. package/dist/pages/itineraries/ElevationProfile.d.ts.map +1 -0
  56. package/dist/pages/itineraries/ElevationProfile.js +59 -0
  57. package/dist/routes.d.ts.map +1 -1
  58. package/dist/routes.js +18 -10
  59. package/dist/storefront.css +1 -1
  60. package/package.json +1 -1
  61. package/dist/chunks/pkg/ui/dist/Map/constants-BNmiJXfg.js +0 -4
package/dist/index.d.ts CHANGED
@@ -2046,6 +2046,93 @@ export declare function isProductVariantCodeIdentifierKind(kind: string): boolea
2046
2046
 
2047
2047
  export declare const isStorefrontAvailabilityInsufficient: (record: StorefrontPublicAvailabilityRecord | undefined) => boolean;
2048
2048
 
2049
+ export declare function ItinerariesPage(): JSX.Element;
2050
+
2051
+ export declare function ItinerariesSection(): JSX.Element | null;
2052
+
2053
+ export declare const itineraryDetailsLoader: ({ ctx, params }: LoaderArgs) => Promise<{
2054
+ slug: string;
2055
+ title: Record<string, {
2056
+ [x: string]: unknown;
2057
+ value: string;
2058
+ updatedAt: Date;
2059
+ autoTranslated?: boolean | undefined;
2060
+ }>;
2061
+ introduction: Record<string, {
2062
+ [x: string]: unknown;
2063
+ value: string;
2064
+ updatedAt: Date;
2065
+ autoTranslated?: boolean | undefined;
2066
+ }>;
2067
+ tags: Record<string, {
2068
+ [x: string]: unknown;
2069
+ value: string;
2070
+ updatedAt: Date;
2071
+ autoTranslated?: boolean | undefined;
2072
+ }>[];
2073
+ coverImageId: string | null;
2074
+ difficulty: "easy" | "moderate" | "challenging";
2075
+ tripType: "one_way" | "out_and_back" | "loop";
2076
+ metrics: {
2077
+ distanceMeters: number;
2078
+ durationSeconds: number;
2079
+ elevationGainMeters: number;
2080
+ elevationLossMeters: number;
2081
+ };
2082
+ geometry: {
2083
+ type: "LineString";
2084
+ coordinates: ([number, number] | [number, number, number])[];
2085
+ };
2086
+ bounds: {
2087
+ west: number;
2088
+ south: number;
2089
+ east: number;
2090
+ north: number;
2091
+ } | null;
2092
+ steps: {
2093
+ id: string;
2094
+ label: Record<string, {
2095
+ [x: string]: unknown;
2096
+ value: string;
2097
+ updatedAt: Date;
2098
+ autoTranslated?: boolean | undefined;
2099
+ }>;
2100
+ description: Record<string, {
2101
+ [x: string]: unknown;
2102
+ value: string;
2103
+ updatedAt: Date;
2104
+ autoTranslated?: boolean | undefined;
2105
+ }>;
2106
+ role: "shaping" | "stop" | "detached";
2107
+ point: {
2108
+ lng: number;
2109
+ lat: number;
2110
+ ele?: number | undefined;
2111
+ };
2112
+ imageIds: string[];
2113
+ category?: string | undefined;
2114
+ }[];
2115
+ }>;
2116
+
2117
+ export declare function ItineraryDetailsPage(): JSX.Element;
2118
+
2119
+ export declare function ItineraryListItem({ itinerary, storeSlug, compact, active, onActivate, }: {
2120
+ itinerary: StorefrontItinerarySummary;
2121
+ storeSlug: string;
2122
+ compact?: boolean;
2123
+ active?: boolean;
2124
+ onActivate?: () => void;
2125
+ }): JSX.Element;
2126
+
2127
+ export declare function ItineraryRouteMap({ coordinates, steps, mapboxToken, language, fallbackLanguage, className, }: {
2128
+ coordinates: StorefrontItineraryCoordinate[];
2129
+ steps: StorefrontItineraryStep[];
2130
+ mapboxToken?: string;
2131
+ language: string;
2132
+ fallbackLanguage: string;
2133
+ className?: string;
2134
+ }): JSX.Element;
2135
+
2049
2136
  declare type JourneyType = "start" | "end";
2050
2137
 
2051
2138
  export declare const Label: React_2.ForwardRefExoticComponent<React_2.LabelHTMLAttributes<HTMLLabelElement> & VariantProps<(props?: ClassProp | undefined) => string> & React_2.RefAttributes<HTMLLabelElement>>;
@@ -2291,6 +2378,90 @@ export declare const loader: ({ ctx, params }: LoaderArgs) => Promise<{
2291
2378
  bookingBikes: BikeProduct[];
2292
2379
  bookingAccessories: AccessoryProduct[];
2293
2380
  language: StorefrontI18nLanguage;
2381
+ itineraries: {
2382
+ slug: string;
2383
+ title: Record<string, {
2384
+ [x: string]: unknown;
2385
+ value: string;
2386
+ updatedAt: Date;
2387
+ autoTranslated?: boolean | undefined;
2388
+ }>;
2389
+ introduction: Record<string, {
2390
+ [x: string]: unknown;
2391
+ value: string;
2392
+ updatedAt: Date;
2393
+ autoTranslated?: boolean | undefined;
2394
+ }>;
2395
+ tags: Record<string, {
2396
+ [x: string]: unknown;
2397
+ value: string;
2398
+ updatedAt: Date;
2399
+ autoTranslated?: boolean | undefined;
2400
+ }>[];
2401
+ coverImageId: string | null;
2402
+ difficulty: "easy" | "moderate" | "challenging";
2403
+ tripType: "one_way" | "out_and_back" | "loop";
2404
+ metrics: {
2405
+ distanceMeters: number;
2406
+ durationSeconds: number;
2407
+ elevationGainMeters: number;
2408
+ elevationLossMeters: number;
2409
+ };
2410
+ }[];
2411
+ featuredItineraries: {
2412
+ slug: string;
2413
+ title: Record<string, {
2414
+ [x: string]: unknown;
2415
+ value: string;
2416
+ updatedAt: Date;
2417
+ autoTranslated?: boolean | undefined;
2418
+ }>;
2419
+ introduction: Record<string, {
2420
+ [x: string]: unknown;
2421
+ value: string;
2422
+ updatedAt: Date;
2423
+ autoTranslated?: boolean | undefined;
2424
+ }>;
2425
+ tags: Record<string, {
2426
+ [x: string]: unknown;
2427
+ value: string;
2428
+ updatedAt: Date;
2429
+ autoTranslated?: boolean | undefined;
2430
+ }>[];
2431
+ coverImageId: string | null;
2432
+ difficulty: "easy" | "moderate" | "challenging";
2433
+ tripType: "one_way" | "out_and_back" | "loop";
2434
+ metrics: {
2435
+ distanceMeters: number;
2436
+ durationSeconds: number;
2437
+ elevationGainMeters: number;
2438
+ elevationLossMeters: number;
2439
+ };
2440
+ previewCoordinates: ([number, number] | [number, number, number])[];
2441
+ steps: {
2442
+ id: string;
2443
+ label: Record<string, {
2444
+ [x: string]: unknown;
2445
+ value: string;
2446
+ updatedAt: Date;
2447
+ autoTranslated?: boolean | undefined;
2448
+ }>;
2449
+ description: Record<string, {
2450
+ [x: string]: unknown;
2451
+ value: string;
2452
+ updatedAt: Date;
2453
+ autoTranslated?: boolean | undefined;
2454
+ }>;
2455
+ role: "shaping" | "stop" | "detached";
2456
+ point: {
2457
+ lng: number;
2458
+ lat: number;
2459
+ ele?: number | undefined;
2460
+ };
2461
+ imageIds: string[];
2462
+ category?: string | undefined;
2463
+ }[];
2464
+ }[];
2294
2465
  }>;
2295
2466
 
2296
2467
  export declare type LocalizedString<TExtra extends Record<string, unknown> = Record<string, unknown>> = Record<string, LocalizedStringEntry<TExtra>>;
@@ -3095,6 +3266,12 @@ export declare const STOREFRONT_HERO_MODES: readonly ["current_booking_hero", "b
3095
3266
 
3096
3267
  export declare const STOREFRONT_IMAGE_ROUTE = "/api/public/storefront/images/get";
3097
3268
 
3269
+ export declare const STOREFRONT_ITINERARIES_FEATURED_ROUTE = "/api/public/storefront/itineraries/featured";
3270
+
3271
+ export declare const STOREFRONT_ITINERARIES_LIST_ROUTE = "/api/public/storefront/itineraries/list";
3272
+
3273
+ export declare const STOREFRONT_ITINERARY_DETAIL_ROUTE = "/api/public/storefront/itineraries/get";
3274
+
3098
3275
  export declare const STOREFRONT_PRODUCTS_ROUTE = "/api/public/storefront/products";
3099
3276
 
3100
3277
  export declare const STOREFRONT_TIME_SLOTS_ROUTE = "/api/public/storefront/availability/time-slots";
@@ -3786,6 +3963,8 @@ export declare type StorefrontContextValue = {
3786
3963
  bookingAccessories: AccessoryProduct[];
3787
3964
  mapboxToken?: string;
3788
3965
  language: StorefrontI18nLanguage;
3966
+ itineraries: StorefrontItinerarySummary[];
3967
+ featuredItineraries: StorefrontItineraryPreview[];
3789
3968
  };
3790
3969
 
3791
3970
  export declare const storefrontEn: {
@@ -3797,6 +3976,7 @@ export declare const storefrontEn: {
3797
3976
  nav_categories: string;
3798
3977
  nav_featured: string;
3799
3978
  nav_products: string;
3979
+ nav_itineraries: string;
3800
3980
  nav_contact: string;
3801
3981
  language_toggle: string;
3802
3982
  cta_book_now: string;
@@ -3871,6 +4051,36 @@ export declare const storefrontEn: {
3871
4051
  featured_title: string;
3872
4052
  featured_description: string;
3873
4053
  featured_view_all: string;
4054
+ itineraries_eyebrow: string;
4055
+ itineraries_title: string;
4056
+ itineraries_description: string;
4057
+ itineraries_list_label: string;
4058
+ itineraries_view_all: string;
4059
+ itineraries_back_home: string;
4060
+ itineraries_page_title: string;
4061
+ itineraries_page_description_one: string;
4062
+ itineraries_page_description_other: string;
4063
+ itineraries_filter_label: string;
4064
+ itineraries_filter_all: string;
4065
+ itineraries_no_results: string;
4066
+ itineraries_difficulty_easy: string;
4067
+ itineraries_difficulty_moderate: string;
4068
+ itineraries_difficulty_challenging: string;
4069
+ itineraries_back_to_list: string;
4070
+ itineraries_route_label: string;
4071
+ itineraries_step_fallback: string;
4072
+ itineraries_highlights_label: string;
4073
+ itineraries_distance_label: string;
4074
+ itineraries_duration_label: string;
4075
+ itineraries_elevation_gain_label: string;
4076
+ itineraries_elevation_loss_label: string;
4077
+ itineraries_difficulty_label: string;
4078
+ itineraries_details_label: string;
4079
+ itineraries_elevation_profile_label: string;
4080
+ itineraries_elevation_profile_chart_label: string;
4081
+ itineraries_booking_title: string;
4082
+ itineraries_booking_description: string;
4083
+ itineraries_booking_cta: string;
3874
4084
  about_section_title: string;
3875
4085
  about_section_heading: string;
3876
4086
  about_section_fallback: string;
@@ -4290,6 +4500,7 @@ export declare const storefrontFr: {
4290
4500
  nav_categories: string;
4291
4501
  nav_featured: string;
4292
4502
  nav_products: string;
4503
+ nav_itineraries: string;
4293
4504
  nav_contact: string;
4294
4505
  language_toggle: string;
4295
4506
  cta_book_now: string;
@@ -4364,6 +4575,36 @@ export declare const storefrontFr: {
4364
4575
  featured_title: string;
4365
4576
  featured_description: string;
4366
4577
  featured_view_all: string;
4578
+ itineraries_eyebrow: string;
4579
+ itineraries_title: string;
4580
+ itineraries_description: string;
4581
+ itineraries_list_label: string;
4582
+ itineraries_view_all: string;
4583
+ itineraries_back_home: string;
4584
+ itineraries_page_title: string;
4585
+ itineraries_page_description_one: string;
4586
+ itineraries_page_description_other: string;
4587
+ itineraries_filter_label: string;
4588
+ itineraries_filter_all: string;
4589
+ itineraries_no_results: string;
4590
+ itineraries_difficulty_easy: string;
4591
+ itineraries_difficulty_moderate: string;
4592
+ itineraries_difficulty_challenging: string;
4593
+ itineraries_back_to_list: string;
4594
+ itineraries_route_label: string;
4595
+ itineraries_step_fallback: string;
4596
+ itineraries_highlights_label: string;
4597
+ itineraries_distance_label: string;
4598
+ itineraries_duration_label: string;
4599
+ itineraries_elevation_gain_label: string;
4600
+ itineraries_elevation_loss_label: string;
4601
+ itineraries_difficulty_label: string;
4602
+ itineraries_details_label: string;
4603
+ itineraries_elevation_profile_label: string;
4604
+ itineraries_elevation_profile_chart_label: string;
4605
+ itineraries_booking_title: string;
4606
+ itineraries_booking_description: string;
4607
+ itineraries_booking_cta: string;
4367
4608
  about_section_title: string;
4368
4609
  about_section_heading: string;
4369
4610
  about_section_fallback: string;
@@ -4740,6 +4981,441 @@ export declare const storefrontImageRequestSchema: z.ZodObject<{
4740
4981
  w: z.ZodOptional<z.ZodCoercedNumber<unknown>>;
4741
4982
  }, z.core.$strip>;
4742
4983
 
4984
+ export declare const storefrontItinerariesFeaturedRequestSchema: z.ZodObject<{
4985
+ storeSlug: z.ZodString;
4986
+ }, z.core.$strip>;
4987
+
4988
+ export declare const storefrontItinerariesFeaturedResponseSchema: z.ZodObject<{
4989
+ success: z.ZodBoolean;
4990
+ message: z.ZodOptional<z.ZodString>;
4991
+ itineraries: z.ZodDefault<z.ZodArray<z.ZodObject<{
4992
+ slug: z.ZodString;
4993
+ title: z.ZodRecord<z.ZodString, z.ZodObject<{
4994
+ value: z.ZodString;
4995
+ updatedAt: z.ZodCoercedDate<unknown>;
4996
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
4997
+ }, z.core.$loose>>;
4998
+ introduction: z.ZodRecord<z.ZodString, z.ZodObject<{
4999
+ value: z.ZodString;
5000
+ updatedAt: z.ZodCoercedDate<unknown>;
5001
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5002
+ }, z.core.$loose>>;
5003
+ tags: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodObject<{
5004
+ value: z.ZodString;
5005
+ updatedAt: z.ZodCoercedDate<unknown>;
5006
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5007
+ }, z.core.$loose>>>;
5008
+ coverImageId: z.ZodNullable<z.ZodString>;
5009
+ difficulty: z.ZodEnum<{
5010
+ easy: "easy";
5011
+ moderate: "moderate";
5012
+ challenging: "challenging";
5013
+ }>;
5014
+ tripType: z.ZodEnum<{
5015
+ one_way: "one_way";
5016
+ out_and_back: "out_and_back";
5017
+ loop: "loop";
5018
+ }>;
5019
+ metrics: z.ZodObject<{
5020
+ distanceMeters: z.ZodNumber;
5021
+ durationSeconds: z.ZodNumber;
5022
+ elevationGainMeters: z.ZodNumber;
5023
+ elevationLossMeters: z.ZodNumber;
5024
+ }, z.core.$strip>;
5025
+ previewCoordinates: z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
5026
+ steps: z.ZodArray<z.ZodObject<{
5027
+ id: z.ZodString;
5028
+ label: z.ZodRecord<z.ZodString, z.ZodObject<{
5029
+ value: z.ZodString;
5030
+ updatedAt: z.ZodCoercedDate<unknown>;
5031
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5032
+ }, z.core.$loose>>;
5033
+ description: z.ZodRecord<z.ZodString, z.ZodObject<{
5034
+ value: z.ZodString;
5035
+ updatedAt: z.ZodCoercedDate<unknown>;
5036
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5037
+ }, z.core.$loose>>;
5038
+ category: z.ZodOptional<z.ZodString>;
5039
+ role: z.ZodEnum<{
5040
+ shaping: "shaping";
5041
+ stop: "stop";
5042
+ detached: "detached";
5043
+ }>;
5044
+ point: z.ZodObject<{
5045
+ lng: z.ZodNumber;
5046
+ lat: z.ZodNumber;
5047
+ ele: z.ZodOptional<z.ZodNumber>;
5048
+ }, z.core.$strip>;
5049
+ imageIds: z.ZodArray<z.ZodString>;
5050
+ }, z.core.$strip>>;
5051
+ }, z.core.$strip>>>;
5052
+ }, z.core.$strip>;
5053
+
5054
+ export declare const storefrontItinerariesListRequestSchema: z.ZodObject<{
5055
+ storeSlug: z.ZodString;
5056
+ }, z.core.$strip>;
5057
+
5058
+ export declare const storefrontItinerariesListResponseSchema: z.ZodObject<{
5059
+ success: z.ZodBoolean;
5060
+ message: z.ZodOptional<z.ZodString>;
5061
+ itineraries: z.ZodDefault<z.ZodArray<z.ZodObject<{
5062
+ slug: z.ZodString;
5063
+ title: z.ZodRecord<z.ZodString, z.ZodObject<{
5064
+ value: z.ZodString;
5065
+ updatedAt: z.ZodCoercedDate<unknown>;
5066
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5067
+ }, z.core.$loose>>;
5068
+ introduction: z.ZodRecord<z.ZodString, z.ZodObject<{
5069
+ value: z.ZodString;
5070
+ updatedAt: z.ZodCoercedDate<unknown>;
5071
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5072
+ }, z.core.$loose>>;
5073
+ tags: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodObject<{
5074
+ value: z.ZodString;
5075
+ updatedAt: z.ZodCoercedDate<unknown>;
5076
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5077
+ }, z.core.$loose>>>;
5078
+ coverImageId: z.ZodNullable<z.ZodString>;
5079
+ difficulty: z.ZodEnum<{
5080
+ easy: "easy";
5081
+ moderate: "moderate";
5082
+ challenging: "challenging";
5083
+ }>;
5084
+ tripType: z.ZodEnum<{
5085
+ one_way: "one_way";
5086
+ out_and_back: "out_and_back";
5087
+ loop: "loop";
5088
+ }>;
5089
+ metrics: z.ZodObject<{
5090
+ distanceMeters: z.ZodNumber;
5091
+ durationSeconds: z.ZodNumber;
5092
+ elevationGainMeters: z.ZodNumber;
5093
+ elevationLossMeters: z.ZodNumber;
5094
+ }, z.core.$strip>;
5095
+ }, z.core.$strip>>>;
5096
+ }, z.core.$strip>;
5097
+
5098
+ export declare const storefrontItineraryBoundsSchema: z.ZodObject<{
5099
+ west: z.ZodNumber;
5100
+ south: z.ZodNumber;
5101
+ east: z.ZodNumber;
5102
+ north: z.ZodNumber;
5103
+ }, z.core.$strip>;
5104
+
5105
+ export declare type StorefrontItineraryCoordinate = z.infer<typeof storefrontItineraryCoordinateSchema>;
5106
+
5107
+ export declare const storefrontItineraryCoordinateSchema: z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
5108
+
5109
+ export declare type StorefrontItineraryDetail = z.infer<typeof storefrontItineraryDetailSchema>;
5110
+
5111
+ export declare const storefrontItineraryDetailRequestSchema: z.ZodObject<{
5112
+ storeSlug: z.ZodString;
5113
+ itinerarySlug: z.ZodString;
5114
+ }, z.core.$strip>;
5115
+
5116
+ export declare const storefrontItineraryDetailResponseSchema: z.ZodObject<{
5117
+ success: z.ZodBoolean;
5118
+ message: z.ZodOptional<z.ZodString>;
5119
+ itinerary: z.ZodOptional<z.ZodObject<{
5120
+ slug: z.ZodString;
5121
+ title: z.ZodRecord<z.ZodString, z.ZodObject<{
5122
+ value: z.ZodString;
5123
+ updatedAt: z.ZodCoercedDate<unknown>;
5124
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5125
+ }, z.core.$loose>>;
5126
+ introduction: z.ZodRecord<z.ZodString, z.ZodObject<{
5127
+ value: z.ZodString;
5128
+ updatedAt: z.ZodCoercedDate<unknown>;
5129
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5130
+ }, z.core.$loose>>;
5131
+ tags: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodObject<{
5132
+ value: z.ZodString;
5133
+ updatedAt: z.ZodCoercedDate<unknown>;
5134
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5135
+ }, z.core.$loose>>>;
5136
+ coverImageId: z.ZodNullable<z.ZodString>;
5137
+ difficulty: z.ZodEnum<{
5138
+ easy: "easy";
5139
+ moderate: "moderate";
5140
+ challenging: "challenging";
5141
+ }>;
5142
+ tripType: z.ZodEnum<{
5143
+ one_way: "one_way";
5144
+ out_and_back: "out_and_back";
5145
+ loop: "loop";
5146
+ }>;
5147
+ metrics: z.ZodObject<{
5148
+ distanceMeters: z.ZodNumber;
5149
+ durationSeconds: z.ZodNumber;
5150
+ elevationGainMeters: z.ZodNumber;
5151
+ elevationLossMeters: z.ZodNumber;
5152
+ }, z.core.$strip>;
5153
+ geometry: z.ZodObject<{
5154
+ type: z.ZodLiteral<"LineString">;
5155
+ coordinates: z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
5156
+ }, z.core.$strip>;
5157
+ bounds: z.ZodNullable<z.ZodObject<{
5158
+ west: z.ZodNumber;
5159
+ south: z.ZodNumber;
5160
+ east: z.ZodNumber;
5161
+ north: z.ZodNumber;
5162
+ }, z.core.$strip>>;
5163
+ steps: z.ZodArray<z.ZodObject<{
5164
+ id: z.ZodString;
5165
+ label: z.ZodRecord<z.ZodString, z.ZodObject<{
5166
+ value: z.ZodString;
5167
+ updatedAt: z.ZodCoercedDate<unknown>;
5168
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5169
+ }, z.core.$loose>>;
5170
+ description: z.ZodRecord<z.ZodString, z.ZodObject<{
5171
+ value: z.ZodString;
5172
+ updatedAt: z.ZodCoercedDate<unknown>;
5173
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5174
+ }, z.core.$loose>>;
5175
+ category: z.ZodOptional<z.ZodString>;
5176
+ role: z.ZodEnum<{
5177
+ shaping: "shaping";
5178
+ stop: "stop";
5179
+ detached: "detached";
5180
+ }>;
5181
+ point: z.ZodObject<{
5182
+ lng: z.ZodNumber;
5183
+ lat: z.ZodNumber;
5184
+ ele: z.ZodOptional<z.ZodNumber>;
5185
+ }, z.core.$strip>;
5186
+ imageIds: z.ZodArray<z.ZodString>;
5187
+ }, z.core.$strip>>;
5188
+ }, z.core.$strip>>;
5189
+ }, z.core.$strip>;
5190
+
5191
+ export declare const storefrontItineraryDetailSchema: z.ZodObject<{
5192
+ slug: z.ZodString;
5193
+ title: z.ZodRecord<z.ZodString, z.ZodObject<{
5194
+ value: z.ZodString;
5195
+ updatedAt: z.ZodCoercedDate<unknown>;
5196
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5197
+ }, z.core.$loose>>;
5198
+ introduction: z.ZodRecord<z.ZodString, z.ZodObject<{
5199
+ value: z.ZodString;
5200
+ updatedAt: z.ZodCoercedDate<unknown>;
5201
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5202
+ }, z.core.$loose>>;
5203
+ tags: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodObject<{
5204
+ value: z.ZodString;
5205
+ updatedAt: z.ZodCoercedDate<unknown>;
5206
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5207
+ }, z.core.$loose>>>;
5208
+ coverImageId: z.ZodNullable<z.ZodString>;
5209
+ difficulty: z.ZodEnum<{
5210
+ easy: "easy";
5211
+ moderate: "moderate";
5212
+ challenging: "challenging";
5213
+ }>;
5214
+ tripType: z.ZodEnum<{
5215
+ one_way: "one_way";
5216
+ out_and_back: "out_and_back";
5217
+ loop: "loop";
5218
+ }>;
5219
+ metrics: z.ZodObject<{
5220
+ distanceMeters: z.ZodNumber;
5221
+ durationSeconds: z.ZodNumber;
5222
+ elevationGainMeters: z.ZodNumber;
5223
+ elevationLossMeters: z.ZodNumber;
5224
+ }, z.core.$strip>;
5225
+ geometry: z.ZodObject<{
5226
+ type: z.ZodLiteral<"LineString">;
5227
+ coordinates: z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
5228
+ }, z.core.$strip>;
5229
+ bounds: z.ZodNullable<z.ZodObject<{
5230
+ west: z.ZodNumber;
5231
+ south: z.ZodNumber;
5232
+ east: z.ZodNumber;
5233
+ north: z.ZodNumber;
5234
+ }, z.core.$strip>>;
5235
+ steps: z.ZodArray<z.ZodObject<{
5236
+ id: z.ZodString;
5237
+ label: z.ZodRecord<z.ZodString, z.ZodObject<{
5238
+ value: z.ZodString;
5239
+ updatedAt: z.ZodCoercedDate<unknown>;
5240
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5241
+ }, z.core.$loose>>;
5242
+ description: z.ZodRecord<z.ZodString, z.ZodObject<{
5243
+ value: z.ZodString;
5244
+ updatedAt: z.ZodCoercedDate<unknown>;
5245
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5246
+ }, z.core.$loose>>;
5247
+ category: z.ZodOptional<z.ZodString>;
5248
+ role: z.ZodEnum<{
5249
+ shaping: "shaping";
5250
+ stop: "stop";
5251
+ detached: "detached";
5252
+ }>;
5253
+ point: z.ZodObject<{
5254
+ lng: z.ZodNumber;
5255
+ lat: z.ZodNumber;
5256
+ ele: z.ZodOptional<z.ZodNumber>;
5257
+ }, z.core.$strip>;
5258
+ imageIds: z.ZodArray<z.ZodString>;
5259
+ }, z.core.$strip>>;
5260
+ }, z.core.$strip>;
5261
+
5262
+ export declare const storefrontItineraryDifficultySchema: z.ZodEnum<{
5263
+ easy: "easy";
5264
+ moderate: "moderate";
5265
+ challenging: "challenging";
5266
+ }>;
5267
+
5268
+ export declare type StorefrontItineraryLocalizedString = z.infer<typeof storefrontItineraryLocalizedStringSchema>;
5269
+
5270
+ export declare const storefrontItineraryLocalizedStringSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
5271
+ value: z.ZodString;
5272
+ updatedAt: z.ZodCoercedDate<unknown>;
5273
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5274
+ }, z.core.$loose>>;
5275
+
5276
+ export declare const storefrontItineraryMetricsSchema: z.ZodObject<{
5277
+ distanceMeters: z.ZodNumber;
5278
+ durationSeconds: z.ZodNumber;
5279
+ elevationGainMeters: z.ZodNumber;
5280
+ elevationLossMeters: z.ZodNumber;
5281
+ }, z.core.$strip>;
5282
+
5283
+ export declare type StorefrontItineraryPreview = z.infer<typeof storefrontItineraryPreviewSchema>;
5284
+
5285
+ export declare const storefrontItineraryPreviewSchema: z.ZodObject<{
5286
+ slug: z.ZodString;
5287
+ title: z.ZodRecord<z.ZodString, z.ZodObject<{
5288
+ value: z.ZodString;
5289
+ updatedAt: z.ZodCoercedDate<unknown>;
5290
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5291
+ }, z.core.$loose>>;
5292
+ introduction: z.ZodRecord<z.ZodString, z.ZodObject<{
5293
+ value: z.ZodString;
5294
+ updatedAt: z.ZodCoercedDate<unknown>;
5295
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5296
+ }, z.core.$loose>>;
5297
+ tags: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodObject<{
5298
+ value: z.ZodString;
5299
+ updatedAt: z.ZodCoercedDate<unknown>;
5300
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5301
+ }, z.core.$loose>>>;
5302
+ coverImageId: z.ZodNullable<z.ZodString>;
5303
+ difficulty: z.ZodEnum<{
5304
+ easy: "easy";
5305
+ moderate: "moderate";
5306
+ challenging: "challenging";
5307
+ }>;
5308
+ tripType: z.ZodEnum<{
5309
+ one_way: "one_way";
5310
+ out_and_back: "out_and_back";
5311
+ loop: "loop";
5312
+ }>;
5313
+ metrics: z.ZodObject<{
5314
+ distanceMeters: z.ZodNumber;
5315
+ durationSeconds: z.ZodNumber;
5316
+ elevationGainMeters: z.ZodNumber;
5317
+ elevationLossMeters: z.ZodNumber;
5318
+ }, z.core.$strip>;
5319
+ previewCoordinates: z.ZodArray<z.ZodUnion<readonly [z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
5320
+ steps: z.ZodArray<z.ZodObject<{
5321
+ id: z.ZodString;
5322
+ label: z.ZodRecord<z.ZodString, z.ZodObject<{
5323
+ value: z.ZodString;
5324
+ updatedAt: z.ZodCoercedDate<unknown>;
5325
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5326
+ }, z.core.$loose>>;
5327
+ description: z.ZodRecord<z.ZodString, z.ZodObject<{
5328
+ value: z.ZodString;
5329
+ updatedAt: z.ZodCoercedDate<unknown>;
5330
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5331
+ }, z.core.$loose>>;
5332
+ category: z.ZodOptional<z.ZodString>;
5333
+ role: z.ZodEnum<{
5334
+ shaping: "shaping";
5335
+ stop: "stop";
5336
+ detached: "detached";
5337
+ }>;
5338
+ point: z.ZodObject<{
5339
+ lng: z.ZodNumber;
5340
+ lat: z.ZodNumber;
5341
+ ele: z.ZodOptional<z.ZodNumber>;
5342
+ }, z.core.$strip>;
5343
+ imageIds: z.ZodArray<z.ZodString>;
5344
+ }, z.core.$strip>>;
5345
+ }, z.core.$strip>;
5346
+
5347
+ export declare type StorefrontItineraryStep = z.infer<typeof storefrontItineraryStepSchema>;
5348
+
5349
+ export declare const storefrontItineraryStepSchema: z.ZodObject<{
5350
+ id: z.ZodString;
5351
+ label: z.ZodRecord<z.ZodString, z.ZodObject<{
5352
+ value: z.ZodString;
5353
+ updatedAt: z.ZodCoercedDate<unknown>;
5354
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5355
+ }, z.core.$loose>>;
5356
+ description: z.ZodRecord<z.ZodString, z.ZodObject<{
5357
+ value: z.ZodString;
5358
+ updatedAt: z.ZodCoercedDate<unknown>;
5359
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5360
+ }, z.core.$loose>>;
5361
+ category: z.ZodOptional<z.ZodString>;
5362
+ role: z.ZodEnum<{
5363
+ shaping: "shaping";
5364
+ stop: "stop";
5365
+ detached: "detached";
5366
+ }>;
5367
+ point: z.ZodObject<{
5368
+ lng: z.ZodNumber;
5369
+ lat: z.ZodNumber;
5370
+ ele: z.ZodOptional<z.ZodNumber>;
5371
+ }, z.core.$strip>;
5372
+ imageIds: z.ZodArray<z.ZodString>;
5373
+ }, z.core.$strip>;
5374
+
5375
+ export declare type StorefrontItinerarySummary = z.infer<typeof storefrontItinerarySummarySchema>;
5376
+
5377
+ export declare const storefrontItinerarySummarySchema: z.ZodObject<{
5378
+ slug: z.ZodString;
5379
+ title: z.ZodRecord<z.ZodString, z.ZodObject<{
5380
+ value: z.ZodString;
5381
+ updatedAt: z.ZodCoercedDate<unknown>;
5382
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5383
+ }, z.core.$loose>>;
5384
+ introduction: z.ZodRecord<z.ZodString, z.ZodObject<{
5385
+ value: z.ZodString;
5386
+ updatedAt: z.ZodCoercedDate<unknown>;
5387
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5388
+ }, z.core.$loose>>;
5389
+ tags: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodObject<{
5390
+ value: z.ZodString;
5391
+ updatedAt: z.ZodCoercedDate<unknown>;
5392
+ autoTranslated: z.ZodOptional<z.ZodBoolean>;
5393
+ }, z.core.$loose>>>;
5394
+ coverImageId: z.ZodNullable<z.ZodString>;
5395
+ difficulty: z.ZodEnum<{
5396
+ easy: "easy";
5397
+ moderate: "moderate";
5398
+ challenging: "challenging";
5399
+ }>;
5400
+ tripType: z.ZodEnum<{
5401
+ one_way: "one_way";
5402
+ out_and_back: "out_and_back";
5403
+ loop: "loop";
5404
+ }>;
5405
+ metrics: z.ZodObject<{
5406
+ distanceMeters: z.ZodNumber;
5407
+ durationSeconds: z.ZodNumber;
5408
+ elevationGainMeters: z.ZodNumber;
5409
+ elevationLossMeters: z.ZodNumber;
5410
+ }, z.core.$strip>;
5411
+ }, z.core.$strip>;
5412
+
5413
+ export declare const storefrontItineraryTripTypeSchema: z.ZodEnum<{
5414
+ one_way: "one_way";
5415
+ out_and_back: "out_and_back";
5416
+ loop: "loop";
5417
+ }>;
5418
+
4743
5419
  export declare type StorefrontLocalizedRichText = z.infer<typeof storefrontLocalizedRichTextSchema>;
4744
5420
 
4745
5421
  export declare const storefrontLocalizedRichTextSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
@@ -5874,6 +6550,93 @@ export declare function useStorefrontConfig(): {
5874
6550
  };
5875
6551
  };
5876
6552
 
6553
+ export declare function useStorefrontItineraries(): {
6554
+ itineraries: {
6555
+ slug: string;
6556
+ title: Record<string, {
6557
+ [x: string]: unknown;
6558
+ value: string;
6559
+ updatedAt: Date;
6560
+ autoTranslated?: boolean | undefined;
6561
+ }>;
6562
+ introduction: Record<string, {
6563
+ [x: string]: unknown;
6564
+ value: string;
6565
+ updatedAt: Date;
6566
+ autoTranslated?: boolean | undefined;
6567
+ }>;
6568
+ tags: Record<string, {
6569
+ [x: string]: unknown;
6570
+ value: string;
6571
+ updatedAt: Date;
6572
+ autoTranslated?: boolean | undefined;
6573
+ }>[];
6574
+ coverImageId: string | null;
6575
+ difficulty: "easy" | "moderate" | "challenging";
6576
+ tripType: "one_way" | "out_and_back" | "loop";
6577
+ metrics: {
6578
+ distanceMeters: number;
6579
+ durationSeconds: number;
6580
+ elevationGainMeters: number;
6581
+ elevationLossMeters: number;
6582
+ };
6583
+ }[];
6584
+ featuredItineraries: {
6585
+ slug: string;
6586
+ title: Record<string, {
6587
+ [x: string]: unknown;
6588
+ value: string;
6589
+ updatedAt: Date;
6590
+ autoTranslated?: boolean | undefined;
6591
+ }>;
6592
+ introduction: Record<string, {
6593
+ [x: string]: unknown;
6594
+ value: string;
6595
+ updatedAt: Date;
6596
+ autoTranslated?: boolean | undefined;
6597
+ }>;
6598
+ tags: Record<string, {
6599
+ [x: string]: unknown;
6600
+ value: string;
6601
+ updatedAt: Date;
6602
+ autoTranslated?: boolean | undefined;
6603
+ }>[];
6604
+ coverImageId: string | null;
6605
+ difficulty: "easy" | "moderate" | "challenging";
6606
+ tripType: "one_way" | "out_and_back" | "loop";
6607
+ metrics: {
6608
+ distanceMeters: number;
6609
+ durationSeconds: number;
6610
+ elevationGainMeters: number;
6611
+ elevationLossMeters: number;
6612
+ };
6613
+ previewCoordinates: ([number, number] | [number, number, number])[];
6614
+ steps: {
6615
+ id: string;
6616
+ label: Record<string, {
6617
+ [x: string]: unknown;
6618
+ value: string;
6619
+ updatedAt: Date;
6620
+ autoTranslated?: boolean | undefined;
6621
+ }>;
6622
+ description: Record<string, {
6623
+ [x: string]: unknown;
6624
+ value: string;
6625
+ updatedAt: Date;
6626
+ autoTranslated?: boolean | undefined;
6627
+ }>;
6628
+ role: "shaping" | "stop" | "detached";
6629
+ point: {
6630
+ lng: number;
6631
+ lat: number;
6632
+ ele?: number | undefined;
6633
+ };
6634
+ imageIds: string[];
6635
+ category?: string | undefined;
6636
+ }[];
6637
+ }[];
6638
+ };
6639
+
5877
6640
  export declare function useStorefrontProducts(): {
5878
6641
  bikes: BikeProduct[];
5879
6642
  accessories: AccessoryProduct[];