@ticketboothapp/booking 0.1.23 → 1.2.24

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 (158) hide show
  1. package/package.json +2 -29
  2. package/src/index.ts +0 -79
  3. package/tsconfig.json +2 -8
  4. package/src/assets/icons/minus.svg +0 -7
  5. package/src/assets/icons/partner-logos/getyourguide.svg +0 -8
  6. package/src/assets/icons/plus.svg +0 -3
  7. package/src/colours.css +0 -23
  8. package/src/components/BookingDetails.module.css +0 -1591
  9. package/src/components/BookingDetails.tsx +0 -2264
  10. package/src/components/BookingWidget.tsx +0 -302
  11. package/src/components/ManageBookingView.tsx +0 -437
  12. package/src/components/PhoneInputWithCountry.module.css +0 -131
  13. package/src/components/PhoneInputWithCountry.tsx +0 -44
  14. package/src/components/PickupLocationDialog.module.css +0 -360
  15. package/src/components/PickupLocationDialog.tsx +0 -357
  16. package/src/components/PostBookingDependentAddOnUpsell.module.css +0 -174
  17. package/src/components/PostBookingDependentAddOnUpsell.tsx +0 -407
  18. package/src/components/booking/AddOnsSection.module.css +0 -10
  19. package/src/components/booking/AddOnsSection.tsx +0 -184
  20. package/src/components/booking/AdminPaymentChoiceModal.tsx +0 -98
  21. package/src/components/booking/BookingDialog.module.css +0 -643
  22. package/src/components/booking/BookingDialog.tsx +0 -356
  23. package/src/components/booking/BookingFlow.tsx +0 -4385
  24. package/src/components/booking/BookingFlowCollage.module.css +0 -148
  25. package/src/components/booking/BookingFlowCollage.tsx +0 -184
  26. package/src/components/booking/BookingFlowPlaceholder.module.css +0 -27
  27. package/src/components/booking/BookingFlowPlaceholder.tsx +0 -25
  28. package/src/components/booking/BookingFlowPreview.tsx +0 -51
  29. package/src/components/booking/BookingProductGrid.module.css +0 -359
  30. package/src/components/booking/BookingProductGrid.tsx +0 -497
  31. package/src/components/booking/Calendar.module.css +0 -616
  32. package/src/components/booking/Calendar.tsx +0 -1123
  33. package/src/components/booking/CancellationPolicySelector.module.css +0 -124
  34. package/src/components/booking/CancellationPolicySelector.tsx +0 -142
  35. package/src/components/booking/ChangeBookingDialog.tsx +0 -562
  36. package/src/components/booking/CheckoutForm.module.css +0 -244
  37. package/src/components/booking/CheckoutForm.tsx +0 -364
  38. package/src/components/booking/CheckoutModal.tsx +0 -451
  39. package/src/components/booking/CurrencySwitcher.tsx +0 -81
  40. package/src/components/booking/DapFlowCollage.tsx +0 -88
  41. package/src/components/booking/DapTourDescription.tsx +0 -35
  42. package/src/components/booking/DependentAddOnBookingDialog.tsx +0 -1350
  43. package/src/components/booking/DependentAddOnPaymentForm.tsx +0 -124
  44. package/src/components/booking/ErrorBoundary.tsx +0 -63
  45. package/src/components/booking/InfoTooltip.tsx +0 -108
  46. package/src/components/booking/ItineraryBox.module.css +0 -258
  47. package/src/components/booking/ItineraryBox.tsx +0 -550
  48. package/src/components/booking/ItineraryBuilder.tsx +0 -82
  49. package/src/components/booking/ItineraryPlaceholder.module.css +0 -45
  50. package/src/components/booking/ItineraryPlaceholder.tsx +0 -26
  51. package/src/components/booking/MealDrinkAddOnSelector.tsx +0 -338
  52. package/src/components/booking/PickupLocationSelector.module.css +0 -124
  53. package/src/components/booking/PickupLocationSelector.tsx +0 -1566
  54. package/src/components/booking/PickupTimeSelector.module.css +0 -134
  55. package/src/components/booking/PickupTimeSelector.tsx +0 -112
  56. package/src/components/booking/PriceBreakdown.tsx +0 -154
  57. package/src/components/booking/PriceSummary.tsx +0 -234
  58. package/src/components/booking/PrivateShuttleBookingFlow.module.css +0 -357
  59. package/src/components/booking/PrivateShuttleBookingFlow.tsx +0 -2662
  60. package/src/components/booking/PromoCodeInput.module.css +0 -166
  61. package/src/components/booking/PromoCodeInput.tsx +0 -99
  62. package/src/components/booking/ReturnTimeSelector.module.css +0 -173
  63. package/src/components/booking/ReturnTimeSelector.tsx +0 -145
  64. package/src/components/booking/TermsAcceptance.tsx +0 -111
  65. package/src/components/booking/TicketSelector.module.css +0 -164
  66. package/src/components/booking/TicketSelector.tsx +0 -199
  67. package/src/components/booking/TourDescription.module.css +0 -304
  68. package/src/components/booking/TourDescription.tsx +0 -273
  69. package/src/components/booking/booking-flow-ui.ts +0 -38
  70. package/src/components/booking/booking-flow.css +0 -944
  71. package/src/components/button.css +0 -245
  72. package/src/components/button.tsx +0 -152
  73. package/src/components/colorable-svg.tsx +0 -29
  74. package/src/components/image.css +0 -29
  75. package/src/components/image.tsx +0 -113
  76. package/src/components/partner/PartnerBookingPage.module.css +0 -130
  77. package/src/components/partner/PartnerBookingPage.tsx +0 -390
  78. package/src/components/partner/PartnerBookingPageWithBrowserMetadata.tsx +0 -45
  79. package/src/components/product-tag.module.css +0 -30
  80. package/src/components/product-tag.tsx +0 -34
  81. package/src/components/product-theme-pages/image-modal.tsx +0 -248
  82. package/src/components/product-theme-pages/photo-gallery.module.css +0 -200
  83. package/src/components/terms/TermsContent.tsx +0 -178
  84. package/src/components/value-pill.module.css +0 -59
  85. package/src/components/value-pill.tsx +0 -46
  86. package/src/constants/images.ts +0 -556
  87. package/src/constants/pill-values.ts +0 -210
  88. package/src/constants/products.ts +0 -155
  89. package/src/contexts/AvailabilitiesCacheContext.tsx +0 -125
  90. package/src/contexts/BookingAppContext.tsx +0 -134
  91. package/src/contexts/CompanyContext.tsx +0 -70
  92. package/src/data/dap-descriptions/session-couples-families-friends.en.json +0 -61
  93. package/src/data/dap-descriptions/session-elopements.en.json +0 -60
  94. package/src/data/dap-descriptions/session-proposals.en.json +0 -60
  95. package/src/data/product-descriptions/afternoon-delight.en.json +0 -35
  96. package/src/data/product-descriptions/emerald-lake-escape.en.json +0 -68
  97. package/src/data/product-descriptions/lake-louise-adventure.en.json +0 -74
  98. package/src/data/product-descriptions/moraine-lake-adventure.en.json +0 -78
  99. package/src/data/product-descriptions/moraine-lake-sunrise-lake-louise-golden-hour.en.json +0 -65
  100. package/src/data/product-descriptions/moraine-lake-sunrise.en.json +0 -64
  101. package/src/data/product-descriptions/private-tour.en.json +0 -80
  102. package/src/data/product-descriptions/two-lakes-combo.en.json +0 -65
  103. package/src/data/products-config.json +0 -101
  104. package/src/hooks/useBookingSourceMetadataFromLocation.ts +0 -21
  105. package/src/hooks/useIsBookingLaunchLive.ts +0 -49
  106. package/src/lib/analytics.ts +0 -197
  107. package/src/lib/booking/booking-source.ts +0 -51
  108. package/src/lib/booking/checkout-breakdown.ts +0 -69
  109. package/src/lib/booking/correlation-id.ts +0 -46
  110. package/src/lib/booking/i18n/config.ts +0 -21
  111. package/src/lib/booking/i18n/index.tsx +0 -144
  112. package/src/lib/booking/i18n/messages/en.json +0 -236
  113. package/src/lib/booking/i18n/messages/fr.json +0 -236
  114. package/src/lib/booking/itinerary-display.ts +0 -36
  115. package/src/lib/booking/itinerary-labels.ts +0 -70
  116. package/src/lib/booking/location-calculations.ts +0 -43
  117. package/src/lib/booking/location-utils.ts +0 -165
  118. package/src/lib/booking/map-utils.ts +0 -153
  119. package/src/lib/booking/marker-icons.ts +0 -113
  120. package/src/lib/booking/normalize-booking-product-id.ts +0 -21
  121. package/src/lib/booking/pickup-location-types.ts +0 -25
  122. package/src/lib/booking/places-api.ts +0 -154
  123. package/src/lib/booking/pricing.ts +0 -466
  124. package/src/lib/booking/product-option-id.ts +0 -35
  125. package/src/lib/booking/source-metadata.ts +0 -226
  126. package/src/lib/booking/sunday-week.ts +0 -14
  127. package/src/lib/booking/theme.ts +0 -83
  128. package/src/lib/booking/trace-context.ts +0 -62
  129. package/src/lib/booking/utils.ts +0 -9
  130. package/src/lib/booking-api.ts +0 -1793
  131. package/src/lib/booking-constants.ts +0 -23
  132. package/src/lib/booking-ref.ts +0 -13
  133. package/src/lib/booking-types.ts +0 -36
  134. package/src/lib/currency.ts +0 -81
  135. package/src/lib/dap-descriptions.ts +0 -50
  136. package/src/lib/dap-itinerary-preview.ts +0 -315
  137. package/src/lib/dependent-add-on-api.ts +0 -434
  138. package/src/lib/env.ts +0 -96
  139. package/src/lib/firebase.ts +0 -20
  140. package/src/lib/job-application-api.ts +0 -83
  141. package/src/lib/manage-booking-embed-print.ts +0 -16
  142. package/src/lib/manage-booking-post-checkout.ts +0 -68
  143. package/src/lib/photo-dap-config.ts +0 -228
  144. package/src/lib/photo-packages.ts +0 -75
  145. package/src/lib/pickup/map-utils.ts +0 -56
  146. package/src/lib/pickup/marker-icons.ts +0 -19
  147. package/src/lib/product-descriptions.ts +0 -66
  148. package/src/lib/products-config.ts +0 -73
  149. package/src/providers/booking-dialog-provider.tsx +0 -282
  150. package/src/providers/dependent-add-on-dialog-provider.tsx +0 -105
  151. package/src/radius.css +0 -5
  152. package/src/spacing.css +0 -7
  153. package/src/strings/en.json +0 -1774
  154. package/src/strings/es.json +0 -1573
  155. package/src/strings/fr.json +0 -1573
  156. package/src/strings/index.js +0 -23
  157. package/src/text-style.css +0 -56
  158. package/src/utils/currency-converter.ts +0 -101
@@ -1,643 +0,0 @@
1
- .overlay {
2
- position: fixed;
3
- inset: 0;
4
- z-index: 9999;
5
- display: flex;
6
- align-items: center;
7
- justify-content: center;
8
- background: rgba(0, 0, 0, 0.5);
9
- backdrop-filter: blur(4px);
10
- padding: 1rem;
11
- }
12
-
13
- @media (max-width: 639px) {
14
- .overlay {
15
- padding: 1rem 1.25rem;
16
- }
17
- }
18
-
19
- .dialog {
20
- background: var(--accent-white);
21
- border-radius: 1rem;
22
- box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
23
- width: 100%;
24
- max-width: 680px;
25
- max-height: 90vh;
26
- display: flex;
27
- flex-direction: column;
28
- overflow: hidden;
29
- }
30
-
31
- .header {
32
- display: grid;
33
- grid-template-columns: auto 1fr auto;
34
- align-items: center;
35
- gap: 0.75rem;
36
- padding: 1rem 0.75rem;
37
- border-bottom: 1px solid #e5e7eb;
38
- flex-shrink: 0;
39
- }
40
-
41
- .headerLeft {
42
- display: flex;
43
- justify-content: flex-start;
44
- flex-shrink: 0;
45
- }
46
-
47
- .headerSpacer {
48
- display: block;
49
- width: 2.5rem;
50
- height: 2.5rem;
51
- flex-shrink: 0;
52
- }
53
-
54
- .backButton {
55
- display: flex;
56
- align-items: center;
57
- gap: 0.25rem;
58
- padding: 0.5rem;
59
- font-size: 0.875rem;
60
- font-family: 'Figtree', sans-serif;
61
- color: var(--accent-turquoise);
62
- background: none;
63
- border: none;
64
- cursor: pointer;
65
- font-weight: 500;
66
- }
67
-
68
- .backButton:hover {
69
- text-decoration: underline;
70
- }
71
-
72
- .title {
73
- font-size: 1.125rem;
74
- font-weight: 700;
75
- margin: 0;
76
- justify-self: center;
77
- text-align: center;
78
- min-width: 0;
79
- overflow-wrap: break-word;
80
- }
81
-
82
- .headerRight {
83
- display: flex;
84
- justify-content: flex-end;
85
- flex-shrink: 0;
86
- }
87
-
88
- .closeButton {
89
- padding: 0.5rem;
90
- background: none;
91
- border: none;
92
- cursor: pointer;
93
- color: #6b7280;
94
- }
95
-
96
- .closeButton:hover {
97
- color: #111;
98
- }
99
-
100
- .content {
101
- flex: 1;
102
- overflow-y: auto;
103
- overflow-x: hidden;
104
- min-height: 0;
105
- overscroll-behavior: contain;
106
- }
107
-
108
- .screen {
109
- padding: 1.25rem;
110
- }
111
-
112
- @media (min-width: 768px) {
113
- .dialog {
114
- max-width: 960px;
115
- max-height: 92vh;
116
- }
117
-
118
- .title {
119
- font-size: 1.375rem;
120
- }
121
-
122
- .titleProductGrid {
123
- font-size: 1.5rem;
124
- }
125
- }
126
-
127
- .titleProductGrid {
128
- composes: title;
129
- }
130
-
131
- /* ----- Dependent add-on dialog (photo sessions): layout + typography; control sizing in booking-flow.css (.dap-add-on-dialog) ----- */
132
-
133
- .dapTopMedia {
134
- margin-bottom: 1.25rem;
135
- }
136
-
137
- .dapSlotRow {
138
- display: flex;
139
- flex-direction: column;
140
- gap: 0.625rem;
141
- }
142
-
143
- .dapSessionPickerLabel {
144
- margin-bottom: 0.375rem !important;
145
- }
146
-
147
- .dapSlotDateLine {
148
- font-size: 0.75rem;
149
- font-weight: 500;
150
- color: var(--booking-stone-600, #57534e);
151
- margin-bottom: 0.125rem;
152
- }
153
-
154
- .dapSlotTimeRangeLine {
155
- font-size: 0.9375rem;
156
- font-weight: 600;
157
- color: var(--booking-stone-900, #1c1917);
158
- font-variant-numeric: tabular-nums;
159
- }
160
-
161
- /* Selected session row: green button uses ReturnTimeSelector child colors; force white for contrast. */
162
- .dapSlotBtnSelected,
163
- .dapSlotBtnSelected * {
164
- color: #fff !important;
165
- }
166
-
167
- /* Full-width “how this fits your trip” below the session list (not inside a slot row). */
168
- .dapItineraryInsert {
169
- margin-top: 0.75rem;
170
- }
171
-
172
- .dapRefItinerarySummaryTitle {
173
- margin-bottom: 0.375rem !important;
174
- }
175
-
176
- .dapItineraryInsertTitle {
177
- margin-bottom: 0.375rem !important;
178
- }
179
-
180
- .dapSessionDateUnderTitle {
181
- font-family: 'Figtree', sans-serif;
182
- font-size: 0.8125rem;
183
- font-weight: 600;
184
- color: var(--booking-stone-700, #44403c);
185
- padding: 0.5rem;
186
- }
187
-
188
- .dapItineraryInsertRow {
189
- padding-bottom: 0.5rem;
190
- border-bottom: 1px solid var(--booking-stone-200, #e7e5e4);
191
- }
192
-
193
- .dapItineraryInsertRow:last-of-type {
194
- border-bottom: none;
195
- padding-bottom: 0;
196
- }
197
-
198
- .dapItineraryInsertLead {
199
- font-family: 'Poppins', sans-serif;
200
- font-weight: 700;
201
- font-size: 0.9375rem;
202
- text-transform: lowercase;
203
- color: var(--accent-orange, #ff4d00);
204
- margin-bottom: 0.375rem;
205
- }
206
-
207
- .dapItineraryInsertText {
208
- font-family: 'Figtree', sans-serif;
209
- font-size: 0.875rem;
210
- line-height: 1.45;
211
- color: var(--booking-stone-700, #44403c);
212
- margin: 0;
213
- }
214
-
215
- .dapItineraryInsertFoot {
216
- font-family: 'Figtree', sans-serif;
217
- font-size: 0.8125rem;
218
- line-height: 1.4;
219
- color: var(--booking-stone-500, #78716c);
220
- margin: 0.75rem 0 0;
221
- }
222
-
223
- .dapCheckoutSectionPlain {
224
- border-top: none !important;
225
- margin-top: 0 !important;
226
- padding-top: 0 !important;
227
- }
228
-
229
- .dapSubmitBtnWrapper {
230
- margin-top: 0.25rem !important;
231
- }
232
-
233
- .dapCancellationFinePrint {
234
- font-family: 'Figtree', sans-serif;
235
- font-size: 0.8125rem;
236
- line-height: 1.5;
237
- color: var(--booking-stone-500, #78716c);
238
- padding: var(--spacing-small);
239
- }
240
-
241
- .dapCancellationFinePrint strong {
242
- font-weight: 600;
243
- color: var(--booking-stone-600, #57534e);
244
- }
245
-
246
- .dapPreviewItinList {
247
- display: flex;
248
- flex-direction: column;
249
- gap: 0;
250
- border: 1px solid var(--booking-stone-200, #e7e5e4);
251
- border-radius: 0.5rem;
252
- overflow: hidden;
253
- background: #fff;
254
- }
255
-
256
- .dapPreviewItinRow {
257
- display: flex;
258
- align-items: flex-start;
259
- justify-content: space-between;
260
- gap: 1rem;
261
- padding: 0.75rem 1rem;
262
- border-bottom: 1px solid var(--booking-stone-100, #f5f5f4);
263
- font-family: 'Figtree', sans-serif;
264
- font-size: 0.875rem;
265
- line-height: 1.35;
266
- }
267
-
268
- .dapPreviewItinRow:last-child {
269
- border-bottom: none;
270
- }
271
-
272
- .dapPreviewItinLabel {
273
- flex: 1;
274
- min-width: 0;
275
- color: var(--booking-stone-800, #292524);
276
- }
277
-
278
- .dapPreviewItinTime {
279
- flex-shrink: 0;
280
- font-weight: 600;
281
- color: var(--booking-stone-900, #1c1917);
282
- text-align: right;
283
- font-variant-numeric: tabular-nums;
284
- }
285
-
286
- .dapPreviewItinMain {
287
- flex: 1;
288
- min-width: 0;
289
- display: flex;
290
- flex-direction: column;
291
- gap: 0.25rem;
292
- }
293
-
294
- .dapPreviewItinLead {
295
- font-weight: 700;
296
- color: var(--booking-emerald-700, #047857);
297
- font-size: 0.875rem;
298
- }
299
-
300
- .dapPreviewItinSub {
301
- font-size: 0.8125rem;
302
- color: var(--booking-stone-600, #57534e);
303
- }
304
-
305
- .dapPreviewPhotoRow {
306
- background: var(--booking-emerald-50, #ecfdf5);
307
- border-bottom-color: var(--booking-emerald-100, #d1fae5);
308
- }
309
-
310
- .dapPreviewPhotoRow .dapPreviewItinTime {
311
- color: var(--booking-emerald-800, #065f46);
312
- }
313
-
314
- .dapForm {
315
- display: flex;
316
- flex-direction: column;
317
- gap: 1.25rem;
318
- }
319
-
320
- /* Must come after `.dapForm` and use both classes — otherwise `gap: 1.25rem` wins over a lone `.dapFormSlotsTight`. */
321
- .dapForm.dapFormSlotsTight {
322
- gap: 0.25rem;
323
- }
324
-
325
- /* Times + continue block sits under the ref / session-length form (single scroll, no step change). */
326
- .dapSlotsPanelBelow {
327
- margin-top: 1rem;
328
- padding-top: 0.25rem;
329
- }
330
-
331
- /* DAP checkout questionnaire — tighter than CheckoutForm contactSection (gap 1rem) */
332
- .dapCheckoutQuestions {
333
- margin-top: 0.75rem;
334
- display: flex;
335
- flex-direction: column;
336
- gap: 0.5rem;
337
- }
338
-
339
- .dapCheckoutQuestionField {
340
- display: flex;
341
- flex-direction: column;
342
- gap: 0.25rem;
343
- }
344
-
345
- .dapCheckoutQuestionLabel {
346
- display: block;
347
- font-size: 0.875rem;
348
- font-weight: 500;
349
- color: #44403c;
350
- margin: 0 0 0.125rem;
351
- line-height: 1.35;
352
- }
353
-
354
- .dapCheckoutQuestionHelp {
355
- font-family: 'Figtree', sans-serif;
356
- font-size: 0.8125rem;
357
- line-height: 1.45;
358
- color: #57534e;
359
- margin: 0.25rem 0 0;
360
- }
361
-
362
- .dapCheckoutCheckboxQuestion {
363
- padding: var(--spacing-small);
364
- }
365
-
366
- .dapField {
367
- display: flex;
368
- flex-direction: column;
369
- gap: 0.375rem;
370
- }
371
-
372
- .dapLabel {
373
- font-family: 'Figtree', sans-serif;
374
- font-weight: 600;
375
- font-size: 1rem;
376
- line-height: 1.4;
377
- color: #292524;
378
- }
379
-
380
- .dapIntro {
381
- font-family: 'Figtree', sans-serif;
382
- font-size: 1rem;
383
- line-height: 1.55;
384
- color: #57534e;
385
- margin: 0;
386
- }
387
-
388
- .dapMetaLine {
389
- font-family: 'Figtree', sans-serif;
390
- font-size: 1rem;
391
- line-height: 1.5;
392
- color: #57534e;
393
- margin: 0;
394
- }
395
-
396
- .dapMetaLine strong,
397
- .dapMetaLine .dapRefMono {
398
- color: #1c1917;
399
- }
400
-
401
- .dapRefMono {
402
- font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New',
403
- monospace;
404
- font-weight: 600;
405
- font-size: 0.95em;
406
- }
407
-
408
- .dapFieldset {
409
- border: 0;
410
- padding: 0;
411
- margin: 0;
412
- min-width: 0;
413
- }
414
-
415
- .dapLegend {
416
- font-family: 'Figtree', sans-serif;
417
- font-weight: 600;
418
- font-size: 1rem;
419
- line-height: 1.4;
420
- color: #292524;
421
- padding: 0;
422
- }
423
-
424
- .dapRadioList {
425
- display: flex;
426
- flex-direction: column;
427
- gap: 0.625rem;
428
- }
429
-
430
- .dapRadioOption {
431
- display: flex;
432
- align-items: center;
433
- gap: 0.75rem;
434
- cursor: pointer;
435
- font-family: 'Figtree', sans-serif;
436
- font-size: 1rem;
437
- line-height: 1.4;
438
- color: #292524;
439
- padding: 0.875rem 1.125rem;
440
- border: 1px solid #e7e5e4;
441
- border-radius: 0.5rem;
442
- background: #fff;
443
- margin: 0;
444
- }
445
-
446
- .dapRadioOption:hover {
447
- border-color: #d6d3d1;
448
- background: #fafaf9;
449
- }
450
-
451
- .dapSessionOptionGrid {
452
- display: grid;
453
- grid-template-columns: 1fr;
454
- gap: 0.5rem;
455
- }
456
-
457
- @media (min-width: 480px) {
458
- .dapSessionOptionGrid {
459
- grid-template-columns: repeat(3, 1fr);
460
- }
461
- }
462
-
463
- /* Base tile look; .booking-flow-preflight overrides padding/background to beat button reset */
464
- .dapSessionOptionBtn {
465
- display: flex;
466
- flex-direction: column;
467
- align-items: center;
468
- justify-content: center;
469
- padding: 1rem 1.25rem;
470
- border: none;
471
- border-radius: 0.5rem;
472
- background: var(--light-orange-background-dark, #f7e4dc);
473
- color: var(--booking-stone-700, #44403c);
474
- cursor: pointer;
475
- text-align: center;
476
- font-family: 'Figtree', sans-serif;
477
- transition: background 0.2s ease;
478
- width: 100%;
479
- box-sizing: border-box;
480
- }
481
-
482
- .dapSessionOptionBtn:hover:not(:disabled):not(.dapSessionOptionBtnSelected) {
483
- background: var(--light-orange-background, #fff1eb);
484
- }
485
-
486
- .dapSessionOptionBtn:disabled {
487
- cursor: wait;
488
- opacity: 0.55;
489
- }
490
-
491
- .dapSessionOptionBtnSelected {
492
- background: var(--booking-emerald-600, #059669);
493
- color: #fff;
494
- }
495
-
496
- .dapSessionOptionTitle {
497
- font-weight: 600;
498
- font-size: 0.875rem;
499
- line-height: 1.35;
500
- color: inherit;
501
- }
502
-
503
- .dapSessionOptionBtnSelected .dapSessionOptionTitle {
504
- color: #fff;
505
- }
506
-
507
- .dapSessionOptionMeta {
508
- font-size: 0.8125rem;
509
- font-weight: 500;
510
- line-height: 1.35;
511
- color: var(--booking-stone-500, #78716c);
512
- }
513
-
514
- .dapSessionOptionBtnSelected .dapSessionOptionMeta {
515
- color: rgba(255, 255, 255, 0.92);
516
- }
517
-
518
- .dapSessionOptionPrice {
519
- font-size: 0.8125rem;
520
- font-weight: 500;
521
- line-height: 1.35;
522
- color: var(--booking-stone-500, #78716c);
523
- }
524
-
525
- .dapSessionOptionBtnSelected .dapSessionOptionPrice {
526
- color: rgba(255, 255, 255, 0.92);
527
- }
528
-
529
- .dapTableWrap {
530
- overflow-x: auto;
531
- border-radius: 0.5rem;
532
- border: 1px solid #e7e5e4;
533
- background: #fff;
534
- }
535
-
536
- .dapTable {
537
- width: 100%;
538
- border-collapse: collapse;
539
- text-align: left;
540
- font-family: 'Figtree', sans-serif;
541
- font-size: 1rem;
542
- }
543
-
544
- .dapTable thead {
545
- background: #fafaf9;
546
- color: #44403c;
547
- }
548
-
549
- .dapTable th {
550
- font-weight: 600;
551
- padding: 0.75rem 1rem;
552
- vertical-align: middle;
553
- }
554
-
555
- .dapTable td {
556
- padding: 0.75rem 1rem;
557
- vertical-align: middle;
558
- }
559
-
560
- .dapTable tbody tr {
561
- border-top: 1px solid #f5f5f4;
562
- }
563
-
564
- .dapRowSelected {
565
- background: #ecfdf5 !important;
566
- }
567
-
568
- .dapQtyField {
569
- max-width: 12rem;
570
- }
571
-
572
- .dapGrid2 {
573
- display: grid;
574
- grid-template-columns: 1fr;
575
- gap: 1rem;
576
- }
577
-
578
- @media (min-width: 640px) {
579
- .dapGrid2 {
580
- grid-template-columns: 1fr 1fr;
581
- }
582
- }
583
-
584
- .dapSummary {
585
- display: flex;
586
- flex-direction: column;
587
- gap: 0.5rem;
588
- border-radius: 0.5rem;
589
- border: 1px solid #e7e5e4;
590
- background: #fafaf9;
591
- padding: 1rem 1.125rem;
592
- font-family: 'Figtree', sans-serif;
593
- font-size: 1rem;
594
- line-height: 1.45;
595
- color: #292524;
596
- }
597
-
598
- .dapSummaryRow {
599
- display: flex;
600
- justify-content: space-between;
601
- gap: 1rem;
602
- align-items: baseline;
603
- }
604
-
605
- .dapSummaryAmount {
606
- font-variant-numeric: tabular-nums;
607
- font-weight: 600;
608
- }
609
-
610
- .dapSummaryTotal {
611
- display: flex;
612
- justify-content: space-between;
613
- gap: 1rem;
614
- align-items: baseline;
615
- padding-top: 0.5rem;
616
- margin-top: 0.25rem;
617
- border-top: 1px solid #e7e5e4;
618
- font-weight: 700;
619
- }
620
-
621
- .dapSummaryTotal .dapSummaryAmount {
622
- font-weight: 700;
623
- }
624
-
625
- .dapError {
626
- font-family: 'Figtree', sans-serif;
627
- font-size: 1rem;
628
- line-height: 1.45;
629
- color: #b91c1c;
630
- margin: 0;
631
- }
632
-
633
- .dapStripeNotice {
634
- font-family: 'Figtree', sans-serif;
635
- font-size: 0.9375rem;
636
- line-height: 1.5;
637
- color: #92400e;
638
- background: #fffbeb;
639
- border: 1px solid #fde68a;
640
- border-radius: 0.5rem;
641
- padding: 0.875rem 1.125rem;
642
- margin: 0;
643
- }