@ticketboothapp/booking 0.1.19 → 0.1.20

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 (154) hide show
  1. package/package.json +1 -1
  2. package/src/components/BookingWidget.tsx +282 -26
  3. package/src/components/ManageBookingView.tsx +75 -23
  4. package/src/components/booking/BookingProductGrid.tsx +1 -1
  5. package/src/components/booking/Calendar.module.css +3 -3
  6. package/src/components/booking/CheckoutForm.tsx +1 -1
  7. package/src/components/booking/InfoTooltip.tsx +2 -13
  8. package/src/components/booking/PickupLocationSelector.tsx +2 -2
  9. package/src/components/booking/PriceBreakdown.tsx +11 -34
  10. package/src/index.ts +3 -1
  11. package/src/app/photo-sessions/photo-packages.ts +0 -75
  12. package/src/assets/icons/minus.svg +0 -7
  13. package/src/assets/icons/partner-logos/getyourguide.svg +0 -8
  14. package/src/assets/icons/plus.svg +0 -3
  15. package/src/colours.css +0 -23
  16. package/src/components/BookingDetails.module.css +0 -1591
  17. package/src/components/BookingDetails.tsx +0 -2264
  18. package/src/components/JobApplicationDialog.module.css +0 -440
  19. package/src/components/JobApplicationDialog.tsx +0 -620
  20. package/src/components/PhoneInputWithCountry.module.css +0 -131
  21. package/src/components/PhoneInputWithCountry.tsx +0 -44
  22. package/src/components/PickupLocationDialog.module.css +0 -360
  23. package/src/components/PickupLocationDialog.tsx +0 -357
  24. package/src/components/PickupLocationMap.tsx +0 -110
  25. package/src/components/PostBookingDependentAddOnUpsell.module.css +0 -174
  26. package/src/components/PostBookingDependentAddOnUpsell.tsx +0 -407
  27. package/src/components/accordion.css +0 -27
  28. package/src/components/accordion.tsx +0 -29
  29. package/src/components/analytics/AnalyticsConsentRestore.tsx +0 -19
  30. package/src/components/analytics/AnalyticsScripts.tsx +0 -106
  31. package/src/components/analytics/CookieConsentBanner.css +0 -86
  32. package/src/components/analytics/CookieConsentBanner.tsx +0 -102
  33. package/src/components/bottom-sheet.module.css +0 -78
  34. package/src/components/bottom-sheet.tsx +0 -60
  35. package/src/components/breadcrumb.module.css +0 -40
  36. package/src/components/breadcrumb.tsx +0 -36
  37. package/src/components/button.css +0 -245
  38. package/src/components/button.tsx +0 -152
  39. package/src/components/client-bottom-sheet.tsx +0 -14
  40. package/src/components/colorable-svg.tsx +0 -29
  41. package/src/components/conditional-footer.tsx +0 -27
  42. package/src/components/contact-us.module.css +0 -147
  43. package/src/components/contact-us.tsx +0 -49
  44. package/src/components/email-signup.css +0 -151
  45. package/src/components/email-signup.tsx +0 -63
  46. package/src/components/faq-wrapper.module.css +0 -47
  47. package/src/components/faq-wrapper.tsx +0 -15
  48. package/src/components/footer.css +0 -187
  49. package/src/components/footer.tsx +0 -143
  50. package/src/components/global-simple-modal.tsx +0 -33
  51. package/src/components/google-review-summary.module.css +0 -77
  52. package/src/components/google-review-summary.tsx +0 -50
  53. package/src/components/hero-image.css +0 -13
  54. package/src/components/hero-image.tsx +0 -44
  55. package/src/components/image.css +0 -29
  56. package/src/components/image.tsx +0 -113
  57. package/src/components/language-aware-link.tsx +0 -72
  58. package/src/components/language-switcher.module.css +0 -124
  59. package/src/components/language-switcher.tsx +0 -75
  60. package/src/components/map-section.css +0 -59
  61. package/src/components/map-section.tsx +0 -63
  62. package/src/components/navbar.module.css +0 -152
  63. package/src/components/navbar.tsx +0 -125
  64. package/src/components/parallax-provider.tsx +0 -11
  65. package/src/components/product-tag.module.css +0 -30
  66. package/src/components/product-tag.tsx +0 -34
  67. package/src/components/product-theme-pages/best-option.module.css +0 -70
  68. package/src/components/product-theme-pages/best-option.tsx +0 -35
  69. package/src/components/product-theme-pages/extended-tour-options.module.css +0 -22
  70. package/src/components/product-theme-pages/extended-tour-options.tsx +0 -11
  71. package/src/components/product-theme-pages/image-modal.tsx +0 -248
  72. package/src/components/product-theme-pages/photo-gallery.module.css +0 -200
  73. package/src/components/product-theme-pages/photo-gallery.tsx +0 -90
  74. package/src/components/product-theme-pages/product-theme-page-layout.module.css +0 -13
  75. package/src/components/product-theme-pages/product-theme-page-layout.tsx +0 -67
  76. package/src/components/product-theme-pages/top-of-fold.module.css +0 -179
  77. package/src/components/product-theme-pages/top-of-fold.tsx +0 -80
  78. package/src/components/product-tile/image-only-product-tile-desktop.module.css +0 -106
  79. package/src/components/product-tile/image-only-product-tile-desktop.tsx +0 -56
  80. package/src/components/product-tile/image-only-product-tile-mobile.module.css +0 -122
  81. package/src/components/product-tile/image-only-product-tile-mobile.tsx +0 -89
  82. package/src/components/product-tile/image-only-product-tile.tsx +0 -44
  83. package/src/components/product-tile/product-tile-card.module.css +0 -84
  84. package/src/components/product-tile/product-tile-card.tsx +0 -61
  85. package/src/components/review-highlights-section.css +0 -85
  86. package/src/components/review-highlights-section.tsx +0 -127
  87. package/src/components/season-closure-overlay.module.css +0 -99
  88. package/src/components/season-closure-overlay.tsx +0 -98
  89. package/src/components/simple-modal.tsx +0 -69
  90. package/src/components/simple-top-of-fold.module.css +0 -76
  91. package/src/components/simple-top-of-fold.tsx +0 -34
  92. package/src/components/spacer.css +0 -41
  93. package/src/components/spacer.tsx +0 -23
  94. package/src/components/star-rating.module.css +0 -74
  95. package/src/components/star-rating.tsx +0 -48
  96. package/src/components/terms/TermsContent.tsx +0 -178
  97. package/src/components/title-subtitle.module.css +0 -10
  98. package/src/components/title-subtitle.tsx +0 -30
  99. package/src/components/translatable-reviews.tsx +0 -75
  100. package/src/components/value-pill.module.css +0 -59
  101. package/src/components/value-pill.tsx +0 -46
  102. package/src/components/value-props.css +0 -185
  103. package/src/components/value-props.tsx +0 -88
  104. package/src/constants/booking-guide-quiz.ts +0 -64
  105. package/src/constants/contact-info.ts +0 -2
  106. package/src/constants/faq.ts +0 -44
  107. package/src/constants/images.ts +0 -556
  108. package/src/constants/json-ld/faq-json-ld.tsx +0 -170
  109. package/src/constants/json-ld/homepage-json-ld.tsx +0 -138
  110. package/src/constants/json-ld/job-posting-json-ld.tsx +0 -92
  111. package/src/constants/json-ld/organization-json-ld.tsx +0 -62
  112. package/src/constants/json-ld/page-json-ld.tsx +0 -6
  113. package/src/constants/json-ld/product-json-ld.tsx +0 -154
  114. package/src/constants/json-ld/review-json-ld.tsx +0 -377
  115. package/src/constants/navigation-links/footer-links.ts +0 -48
  116. package/src/constants/navigation-links/nav-bar-links.ts +0 -41
  117. package/src/constants/navigation-links/navigation-link.ts +0 -6
  118. package/src/constants/pill-values.ts +0 -210
  119. package/src/constants/products.ts +0 -155
  120. package/src/constants/quiz-recommendations.ts +0 -506
  121. package/src/constants/reviews.ts +0 -75
  122. package/src/constants/staff.ts +0 -197
  123. package/src/constants/value-props.ts +0 -58
  124. package/src/data/dap-descriptions/session-couples-families-friends.en.json +0 -61
  125. package/src/data/dap-descriptions/session-elopements.en.json +0 -60
  126. package/src/data/dap-descriptions/session-proposals.en.json +0 -60
  127. package/src/data/product-descriptions/afternoon-delight.en.json +0 -35
  128. package/src/data/product-descriptions/emerald-lake-escape.en.json +0 -68
  129. package/src/data/product-descriptions/lake-louise-adventure.en.json +0 -74
  130. package/src/data/product-descriptions/moraine-lake-adventure.en.json +0 -78
  131. package/src/data/product-descriptions/moraine-lake-sunrise-lake-louise-golden-hour.en.json +0 -65
  132. package/src/data/product-descriptions/moraine-lake-sunrise.en.json +0 -64
  133. package/src/data/product-descriptions/private-tour.en.json +0 -80
  134. package/src/data/product-descriptions/two-lakes-combo.en.json +0 -65
  135. package/src/data/products-config.json +0 -101
  136. package/src/hooks/use-bottom-sheet.tsx +0 -15
  137. package/src/hooks/use-simple-modal.tsx +0 -27
  138. package/src/hooks/useBookingSourceMetadataFromLocation.ts +0 -21
  139. package/src/hooks/useEmailSubscription.tsx +0 -103
  140. package/src/hooks/useEmbeddedInIframe.ts +0 -16
  141. package/src/hooks/useIsBookingLaunchLive.ts +0 -49
  142. package/src/hooks/useQuiz.tsx +0 -210
  143. package/src/providers/bottom-sheet-provider.tsx +0 -40
  144. package/src/providers/dependent-add-on-dialog-provider.tsx +0 -105
  145. package/src/radius.css +0 -5
  146. package/src/spacing.css +0 -7
  147. package/src/strings/en.json +0 -1774
  148. package/src/strings/es.json +0 -1573
  149. package/src/strings/fr.json +0 -1573
  150. package/src/strings/index.js +0 -23
  151. package/src/text-style.css +0 -97
  152. package/src/types/fareharbor.d.ts +0 -12
  153. package/src/types/quiz.ts +0 -59
  154. package/src/utils/currency-converter.ts +0 -101
@@ -1,440 +0,0 @@
1
- .overlay {
2
- position: fixed;
3
- inset: 0;
4
- background: rgba(0, 0, 0, 0.6);
5
- display: flex;
6
- align-items: center;
7
- justify-content: center;
8
- z-index: 1000;
9
- padding: 1rem;
10
- }
11
-
12
- .modal {
13
- background: var(--primary-background, #fff);
14
- border-radius: 24px;
15
- width: 100%;
16
- max-width: 720px;
17
- max-height: 90vh;
18
- overflow: hidden;
19
- display: flex;
20
- flex-direction: column;
21
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
22
- }
23
-
24
- @media (min-width: 900px) {
25
- .modal {
26
- max-width: 960px;
27
- }
28
- }
29
-
30
- .formRow {
31
- display: flex;
32
- flex-direction: column;
33
- flex: 1;
34
- min-height: 0;
35
- overflow: hidden;
36
- }
37
-
38
- @media (min-width: 900px) {
39
- .formRow {
40
- flex-direction: row;
41
- }
42
- }
43
-
44
- .rightColumn {
45
- display: none;
46
- }
47
-
48
- @media (min-width: 900px) {
49
- .rightColumn {
50
- display: flex;
51
- flex-direction: column;
52
- justify-content: center;
53
- gap: 0.5rem;
54
- padding: var(--spacing-large);
55
- width: 200px;
56
- flex-shrink: 0;
57
- background: var(--light-orange-background, #fff1eb);
58
- border-left: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
59
- }
60
-
61
- .rightColumnText {
62
- font-family: 'Poppins', sans-serif;
63
- font-weight: 800;
64
- font-size: 1.125rem;
65
- color: var(--accent-orange, #e85a2e);
66
- margin: 0;
67
- line-height: 1.3;
68
- }
69
- }
70
-
71
- .header {
72
- position: relative;
73
- padding: var(--spacing-large) var(--spacing-large) var(--spacing-small) var(--spacing-large);
74
- border-bottom: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
75
- }
76
-
77
- .header.headerExpanded {
78
- flex: 1;
79
- min-height: 0;
80
- display: flex;
81
- flex-direction: column;
82
- }
83
-
84
- .headerExpanded .headerContent {
85
- flex: 1;
86
- min-height: 0;
87
- display: flex;
88
- flex-direction: column;
89
- }
90
-
91
- .headerContent {
92
- display: block;
93
- }
94
-
95
- .title {
96
- font-family: 'Poppins', sans-serif;
97
- font-weight: 800;
98
- font-size: 1.5rem;
99
- color: var(--accent-orange, #e85a2e);
100
- margin: 0 0 0.25rem 0;
101
- }
102
-
103
- @media (max-width: 768px) {
104
- .title {
105
- font-size: 1.25rem;
106
- }
107
- }
108
-
109
- .descriptionSection {
110
- margin: 0;
111
- }
112
-
113
- .descriptionSection:not(.descriptionExpanded) .description {
114
- display: -webkit-box;
115
- -webkit-line-clamp: 3;
116
- -webkit-box-orient: vertical;
117
- overflow: hidden;
118
- text-overflow: ellipsis;
119
- }
120
-
121
- .descriptionSection.descriptionExpanded {
122
- flex: 1;
123
- min-height: 0;
124
- display: flex;
125
- flex-direction: column;
126
- overflow: hidden;
127
- }
128
-
129
- .descriptionExpandedContent {
130
- flex: 1;
131
- min-height: 0;
132
- overflow-y: auto;
133
- font-size: 0.9375rem;
134
- color: var(--grey-text, #6b7280);
135
- line-height: 1.5;
136
- text-align: left;
137
- }
138
-
139
- /* Override global h3/h4 styles - match collapsed text, bold only for titles */
140
- .descriptionExpandedContent h3 {
141
- font-family: 'Figtree', sans-serif;
142
- font-size: 0.9375rem;
143
- font-weight: 700;
144
- color: var(--grey-text, #6b7280);
145
- text-transform: none;
146
- text-align: left;
147
- margin: 1.25rem 0 0.5rem 0;
148
- }
149
-
150
- .descriptionExpandedContent h3:first-child {
151
- margin-top: 0;
152
- }
153
-
154
- .descriptionExpandedContent h4 {
155
- font-family: 'Figtree', sans-serif;
156
- font-size: 0.9375rem;
157
- font-weight: 700;
158
- color: var(--grey-text, #6b7280);
159
- text-transform: none;
160
- text-align: left;
161
- margin: 1rem 0 0.375rem 0;
162
- }
163
-
164
- /* Override global p - match collapsed description exactly */
165
- .descriptionExpandedContent p {
166
- font-size: 0.9375rem;
167
- color: var(--grey-text, #6b7280);
168
- margin: 0 0 0.75rem 0;
169
- }
170
-
171
- .descriptionExpandedContent ul {
172
- margin: 0 0 0.75rem 0;
173
- padding-left: 1.25rem;
174
- }
175
-
176
- .descriptionExpandedContent li {
177
- font-size: 0.9375rem;
178
- color: var(--grey-text, #6b7280);
179
- margin-bottom: 0.25rem;
180
- }
181
-
182
- .description {
183
- font-size: 0.9375rem;
184
- color: var(--grey-text, #6b7280);
185
- margin: 0;
186
- line-height: 1.5;
187
- text-align: left;
188
- }
189
-
190
- .descriptionToggle {
191
- display: flex;
192
- align-items: center;
193
- justify-content: center;
194
- gap: 0.25rem;
195
- background: none;
196
- border: none;
197
- padding: 0.25rem 0;
198
- margin: 0.25rem auto 0;
199
- cursor: pointer;
200
- color: var(--grey-text, #6b7280);
201
- font-size: 0.875rem;
202
- transition: color 0.2s ease;
203
- }
204
-
205
- .descriptionToggle:hover {
206
- color: var(--accent-orange, #e85a2e);
207
- }
208
-
209
- .descriptionToggle svg {
210
- display: block;
211
- transition: transform 0.2s ease;
212
- }
213
-
214
- .descriptionSection.descriptionExpanded .descriptionToggle svg {
215
- transform: rotate(180deg);
216
- }
217
-
218
- .bodyScroll {
219
- flex: 1;
220
- min-height: 0;
221
- min-width: 0;
222
- overflow-y: auto;
223
- display: flex;
224
- flex-direction: column;
225
- }
226
-
227
- .headerExpanded ~ .formRow {
228
- flex: 0;
229
- }
230
-
231
- .closeBtn {
232
- position: absolute;
233
- top: var(--spacing-small);
234
- right: var(--spacing-small);
235
- background: none;
236
- border: none;
237
- padding: 0.5rem;
238
- cursor: pointer;
239
- color: var(--grey-text, #6b7280);
240
- }
241
-
242
- .closeBtn:hover {
243
- color: var(--primary-text, #1f2937);
244
- }
245
-
246
- .content {
247
- padding: var(--spacing-large);
248
- flex-shrink: 0;
249
- }
250
-
251
- .form {
252
- display: flex;
253
- flex-direction: column;
254
- gap: var(--spacing-medium);
255
- }
256
-
257
- .formGroup {
258
- display: flex;
259
- flex-direction: column;
260
- }
261
-
262
- .label {
263
- font-weight: 500;
264
- color: var(--primary-text, #1f2937);
265
- font-size: 0.875rem;
266
- text-align: left;
267
- }
268
-
269
- .radioGroup {
270
- display: flex;
271
- gap: 1.5rem;
272
- margin-top: 0.25rem;
273
- }
274
-
275
- .radioLabel {
276
- display: flex;
277
- align-items: center;
278
- gap: 0.5rem;
279
- cursor: pointer;
280
- font-size: 0.9375rem;
281
- font-weight: 400;
282
- }
283
-
284
- .input {
285
- width: 100%;
286
- padding: 0.75rem 1rem;
287
- border: 1px solid var(--grey-text, #6b7280);
288
- border-radius: 12px;
289
- font-size: 1rem;
290
- font-family: 'Figtree', sans-serif;
291
- transition: border-color 0.2s, box-shadow 0.2s;
292
- box-sizing: border-box;
293
- text-align: left;
294
- }
295
-
296
- .input:focus {
297
- outline: none;
298
- border-color: var(--accent-orange, #e85a2e);
299
- box-shadow: 0 0 0 3px rgba(232, 90, 46, 0.15);
300
- }
301
-
302
- /* Match phone input outline to other form fields */
303
- .phoneInputMatch :global(.react-international-phone-input-container) {
304
- border: 1px solid var(--grey-text, #6b7280);
305
- transition: border-color 0.2s, box-shadow 0.2s;
306
- }
307
-
308
- .phoneInputMatch:focus-within :global(.react-international-phone-input-container) {
309
- border-color: var(--accent-orange, #e85a2e);
310
- box-shadow: 0 0 0 3px rgba(232, 90, 46, 0.15);
311
- }
312
-
313
- .textarea {
314
- min-height: 120px;
315
- resize: vertical;
316
- }
317
-
318
- .fileInput {
319
- padding: 0.5rem 0;
320
- text-align: left;
321
- }
322
-
323
- .fileInputHidden {
324
- position: absolute;
325
- width: 0.1px;
326
- height: 0.1px;
327
- opacity: 0;
328
- overflow: hidden;
329
- z-index: -1;
330
- }
331
-
332
- .fileInputButton {
333
- display: inline-block;
334
- padding: 0.5rem 1.25rem;
335
- background: var(--accent-orange, #e85a2e);
336
- color: white;
337
- border: none;
338
- border-radius: 12px;
339
- font-weight: 600;
340
- font-size: 0.9375rem;
341
- font-family: 'Poppins', sans-serif;
342
- cursor: pointer;
343
- transition: opacity 0.2s;
344
- }
345
-
346
- .fileInputButton:hover {
347
- opacity: 0.9;
348
- }
349
-
350
- .fileInputDisabled .fileInputButton {
351
- opacity: 0.6;
352
- cursor: not-allowed;
353
- pointer-events: none;
354
- }
355
-
356
- .fileName {
357
- font-size: 0.8125rem;
358
- color: var(--accent-orange);
359
- margin-top: 0.5rem;
360
- }
361
-
362
- .error {
363
- color: #dc2626;
364
- font-size: 0.875rem;
365
- margin-top: 0.25rem;
366
- }
367
-
368
- .success {
369
- color: #16a34a;
370
- font-size: 0.9375rem;
371
- padding: 1rem;
372
- background: #f0fdf4;
373
- border-radius: 12px;
374
- margin-bottom: var(--spacing-medium);
375
- }
376
-
377
- .closeConfirm {
378
- text-align: center;
379
- }
380
-
381
- .closeConfirmTitle {
382
- font-weight: 600;
383
- font-size: 1.125rem;
384
- color: var(--primary-text, #1f2937);
385
- margin: 0 0 0.25rem 0;
386
- }
387
-
388
- .closeConfirmMessage {
389
- font-size: 0.9375rem;
390
- color: var(--grey-text, #6b7280);
391
- margin: 0 0 var(--spacing-medium) 0;
392
- }
393
-
394
- .closeConfirmActions {
395
- display: flex;
396
- justify-content: center;
397
- gap: 0.75rem;
398
- flex-wrap: wrap;
399
- }
400
-
401
- .footer {
402
- display: flex;
403
- justify-content: flex-end;
404
- gap: 0.75rem;
405
- padding-top: var(--spacing-large);
406
- border-top: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
407
- }
408
-
409
- .cancelBtn {
410
- padding: 0.625rem 1.25rem;
411
- background: transparent;
412
- border: 1px solid var(--grey-text);
413
- border-radius: 12px;
414
- font-weight: 500;
415
- cursor: pointer;
416
- color: var(--grey-text);
417
- }
418
-
419
- .cancelBtn:hover {
420
- background: rgba(0, 0, 0, 0.05);
421
- }
422
-
423
- .submitBtn {
424
- padding: 0.625rem 1.5rem;
425
- background: var(--accent-orange, #e85a2e);
426
- color: white;
427
- border: none;
428
- border-radius: 12px;
429
- font-weight: 600;
430
- cursor: pointer;
431
- }
432
-
433
- .submitBtn:hover:not(:disabled) {
434
- opacity: 0.9;
435
- }
436
-
437
- .submitBtn:disabled {
438
- opacity: 0.6;
439
- cursor: not-allowed;
440
- }