@ticketboothapp/booking 0.1.18 → 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 (152) 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/PickupLocationSelector.tsx +1 -1
  8. package/src/index.ts +3 -1
  9. package/src/app/photo-sessions/photo-packages.ts +0 -75
  10. package/src/assets/icons/minus.svg +0 -7
  11. package/src/assets/icons/partner-logos/getyourguide.svg +0 -8
  12. package/src/assets/icons/plus.svg +0 -3
  13. package/src/colours.css +0 -23
  14. package/src/components/BookingDetails.module.css +0 -1591
  15. package/src/components/BookingDetails.tsx +0 -2264
  16. package/src/components/JobApplicationDialog.module.css +0 -440
  17. package/src/components/JobApplicationDialog.tsx +0 -620
  18. package/src/components/PhoneInputWithCountry.module.css +0 -131
  19. package/src/components/PhoneInputWithCountry.tsx +0 -44
  20. package/src/components/PickupLocationDialog.module.css +0 -360
  21. package/src/components/PickupLocationDialog.tsx +0 -357
  22. package/src/components/PickupLocationMap.tsx +0 -110
  23. package/src/components/PostBookingDependentAddOnUpsell.module.css +0 -174
  24. package/src/components/PostBookingDependentAddOnUpsell.tsx +0 -407
  25. package/src/components/accordion.css +0 -27
  26. package/src/components/accordion.tsx +0 -29
  27. package/src/components/analytics/AnalyticsConsentRestore.tsx +0 -19
  28. package/src/components/analytics/AnalyticsScripts.tsx +0 -106
  29. package/src/components/analytics/CookieConsentBanner.css +0 -86
  30. package/src/components/analytics/CookieConsentBanner.tsx +0 -102
  31. package/src/components/bottom-sheet.module.css +0 -78
  32. package/src/components/bottom-sheet.tsx +0 -60
  33. package/src/components/breadcrumb.module.css +0 -40
  34. package/src/components/breadcrumb.tsx +0 -36
  35. package/src/components/button.css +0 -245
  36. package/src/components/button.tsx +0 -152
  37. package/src/components/client-bottom-sheet.tsx +0 -14
  38. package/src/components/colorable-svg.tsx +0 -29
  39. package/src/components/conditional-footer.tsx +0 -27
  40. package/src/components/contact-us.module.css +0 -147
  41. package/src/components/contact-us.tsx +0 -49
  42. package/src/components/email-signup.css +0 -151
  43. package/src/components/email-signup.tsx +0 -63
  44. package/src/components/faq-wrapper.module.css +0 -47
  45. package/src/components/faq-wrapper.tsx +0 -15
  46. package/src/components/footer.css +0 -187
  47. package/src/components/footer.tsx +0 -143
  48. package/src/components/global-simple-modal.tsx +0 -33
  49. package/src/components/google-review-summary.module.css +0 -77
  50. package/src/components/google-review-summary.tsx +0 -50
  51. package/src/components/hero-image.css +0 -13
  52. package/src/components/hero-image.tsx +0 -44
  53. package/src/components/image.css +0 -29
  54. package/src/components/image.tsx +0 -113
  55. package/src/components/language-aware-link.tsx +0 -72
  56. package/src/components/language-switcher.module.css +0 -124
  57. package/src/components/language-switcher.tsx +0 -75
  58. package/src/components/map-section.css +0 -59
  59. package/src/components/map-section.tsx +0 -63
  60. package/src/components/navbar.module.css +0 -152
  61. package/src/components/navbar.tsx +0 -125
  62. package/src/components/parallax-provider.tsx +0 -11
  63. package/src/components/product-tag.module.css +0 -30
  64. package/src/components/product-tag.tsx +0 -34
  65. package/src/components/product-theme-pages/best-option.module.css +0 -70
  66. package/src/components/product-theme-pages/best-option.tsx +0 -35
  67. package/src/components/product-theme-pages/extended-tour-options.module.css +0 -22
  68. package/src/components/product-theme-pages/extended-tour-options.tsx +0 -11
  69. package/src/components/product-theme-pages/image-modal.tsx +0 -248
  70. package/src/components/product-theme-pages/photo-gallery.module.css +0 -200
  71. package/src/components/product-theme-pages/photo-gallery.tsx +0 -90
  72. package/src/components/product-theme-pages/product-theme-page-layout.module.css +0 -13
  73. package/src/components/product-theme-pages/product-theme-page-layout.tsx +0 -67
  74. package/src/components/product-theme-pages/top-of-fold.module.css +0 -179
  75. package/src/components/product-theme-pages/top-of-fold.tsx +0 -80
  76. package/src/components/product-tile/image-only-product-tile-desktop.module.css +0 -106
  77. package/src/components/product-tile/image-only-product-tile-desktop.tsx +0 -56
  78. package/src/components/product-tile/image-only-product-tile-mobile.module.css +0 -122
  79. package/src/components/product-tile/image-only-product-tile-mobile.tsx +0 -89
  80. package/src/components/product-tile/image-only-product-tile.tsx +0 -44
  81. package/src/components/product-tile/product-tile-card.module.css +0 -84
  82. package/src/components/product-tile/product-tile-card.tsx +0 -61
  83. package/src/components/review-highlights-section.css +0 -85
  84. package/src/components/review-highlights-section.tsx +0 -127
  85. package/src/components/season-closure-overlay.module.css +0 -99
  86. package/src/components/season-closure-overlay.tsx +0 -98
  87. package/src/components/simple-modal.tsx +0 -69
  88. package/src/components/simple-top-of-fold.module.css +0 -76
  89. package/src/components/simple-top-of-fold.tsx +0 -34
  90. package/src/components/spacer.css +0 -41
  91. package/src/components/spacer.tsx +0 -23
  92. package/src/components/star-rating.module.css +0 -74
  93. package/src/components/star-rating.tsx +0 -48
  94. package/src/components/terms/TermsContent.tsx +0 -178
  95. package/src/components/title-subtitle.module.css +0 -10
  96. package/src/components/title-subtitle.tsx +0 -30
  97. package/src/components/translatable-reviews.tsx +0 -75
  98. package/src/components/value-pill.module.css +0 -59
  99. package/src/components/value-pill.tsx +0 -46
  100. package/src/components/value-props.css +0 -185
  101. package/src/components/value-props.tsx +0 -88
  102. package/src/constants/booking-guide-quiz.ts +0 -64
  103. package/src/constants/contact-info.ts +0 -2
  104. package/src/constants/faq.ts +0 -44
  105. package/src/constants/images.ts +0 -556
  106. package/src/constants/json-ld/faq-json-ld.tsx +0 -170
  107. package/src/constants/json-ld/homepage-json-ld.tsx +0 -138
  108. package/src/constants/json-ld/job-posting-json-ld.tsx +0 -92
  109. package/src/constants/json-ld/organization-json-ld.tsx +0 -62
  110. package/src/constants/json-ld/page-json-ld.tsx +0 -6
  111. package/src/constants/json-ld/product-json-ld.tsx +0 -154
  112. package/src/constants/json-ld/review-json-ld.tsx +0 -377
  113. package/src/constants/navigation-links/footer-links.ts +0 -48
  114. package/src/constants/navigation-links/nav-bar-links.ts +0 -41
  115. package/src/constants/navigation-links/navigation-link.ts +0 -6
  116. package/src/constants/pill-values.ts +0 -210
  117. package/src/constants/products.ts +0 -155
  118. package/src/constants/quiz-recommendations.ts +0 -506
  119. package/src/constants/reviews.ts +0 -75
  120. package/src/constants/staff.ts +0 -197
  121. package/src/constants/value-props.ts +0 -58
  122. package/src/data/dap-descriptions/session-couples-families-friends.en.json +0 -61
  123. package/src/data/dap-descriptions/session-elopements.en.json +0 -60
  124. package/src/data/dap-descriptions/session-proposals.en.json +0 -60
  125. package/src/data/product-descriptions/afternoon-delight.en.json +0 -35
  126. package/src/data/product-descriptions/emerald-lake-escape.en.json +0 -68
  127. package/src/data/product-descriptions/lake-louise-adventure.en.json +0 -74
  128. package/src/data/product-descriptions/moraine-lake-adventure.en.json +0 -78
  129. package/src/data/product-descriptions/moraine-lake-sunrise-lake-louise-golden-hour.en.json +0 -65
  130. package/src/data/product-descriptions/moraine-lake-sunrise.en.json +0 -64
  131. package/src/data/product-descriptions/private-tour.en.json +0 -80
  132. package/src/data/product-descriptions/two-lakes-combo.en.json +0 -65
  133. package/src/data/products-config.json +0 -101
  134. package/src/hooks/use-bottom-sheet.tsx +0 -15
  135. package/src/hooks/use-simple-modal.tsx +0 -27
  136. package/src/hooks/useBookingSourceMetadataFromLocation.ts +0 -21
  137. package/src/hooks/useEmailSubscription.tsx +0 -103
  138. package/src/hooks/useEmbeddedInIframe.ts +0 -16
  139. package/src/hooks/useIsBookingLaunchLive.ts +0 -49
  140. package/src/hooks/useQuiz.tsx +0 -210
  141. package/src/providers/bottom-sheet-provider.tsx +0 -40
  142. package/src/providers/dependent-add-on-dialog-provider.tsx +0 -105
  143. package/src/radius.css +0 -5
  144. package/src/spacing.css +0 -7
  145. package/src/strings/en.json +0 -1774
  146. package/src/strings/es.json +0 -1573
  147. package/src/strings/fr.json +0 -1573
  148. package/src/strings/index.js +0 -23
  149. package/src/text-style.css +0 -97
  150. package/src/types/fareharbor.d.ts +0 -12
  151. package/src/types/quiz.ts +0 -59
  152. package/src/utils/currency-converter.ts +0 -101
@@ -1,131 +0,0 @@
1
- /* Clean, minimal phone input matching the reference design */
2
- .wrapper {
3
- width: 100%;
4
- position: relative;
5
- overflow: visible;
6
- --react-international-phone-height: 44px;
7
- --react-international-phone-border-color: rgba(0, 0, 0, 0.12);
8
- --react-international-phone-border-radius: 12px;
9
- --react-international-phone-background-color: #fff;
10
- --react-international-phone-text-color: var(--primary-text, #333);
11
- --react-international-phone-font-size: 1rem;
12
- --react-international-phone-dropdown-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
13
- --react-international-phone-dropdown-item-height: 40px;
14
- --react-international-phone-dropdown-item-font-size: 14px;
15
- --react-international-phone-dropdown-item-text-color: var(--primary-text, #333);
16
- --react-international-phone-dropdown-item-dial-code-color: var(--grey-text, #6b7280);
17
- --react-international-phone-selected-dropdown-item-background-color: #f5f5f5;
18
- --react-international-phone-country-selector-border-color: transparent;
19
- --react-international-phone-country-selector-background-color: transparent;
20
- }
21
-
22
- .phoneInput {
23
- width: 100%;
24
- }
25
-
26
- /* Container: single unified border around flag + input */
27
- .wrapper :global(.react-international-phone-input-container) {
28
- display: flex;
29
- align-items: center;
30
- width: 100%;
31
- border: 2px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
32
- border-radius: 12px;
33
- background: var(--primary-background, #fff);
34
- transition: border-color 0.15s;
35
- overflow: visible;
36
- }
37
-
38
- /* Country selector needs overflow visible so dropdown can escape */
39
- .wrapper :global(.react-international-phone-country-selector) {
40
- overflow: visible;
41
- }
42
-
43
- .wrapper:focus-within :global(.react-international-phone-input-container) {
44
- border-color: var(--accent-orange);
45
- outline: none;
46
- }
47
-
48
- /* Country selector button - no separate border, blends into container */
49
- .wrapper :global(.react-international-phone-country-selector-button) {
50
- border: none;
51
- border-radius: 0;
52
- background: transparent;
53
- padding: 0 0.5rem 0 0.75rem;
54
- height: 100%;
55
- }
56
-
57
- .wrapper :global(.react-international-phone-country-selector-button:hover) {
58
- background: rgba(0, 0, 0, 0.03);
59
- }
60
-
61
- .wrapper :global(.react-international-phone-country-selector-button__dropdown-arrow) {
62
- border-top-color: var(--grey-text, #6b7280);
63
- margin-left: 0.25rem;
64
- }
65
-
66
- /* Input field */
67
- .wrapper :global(.react-international-phone-input) {
68
- flex: 1;
69
- min-width: 0;
70
- border: none;
71
- border-radius: 0;
72
- padding: 0.625rem 0.875rem;
73
- font-size: 1rem;
74
- font-family: inherit;
75
- color: var(--primary-text, #333);
76
- background: transparent;
77
- }
78
-
79
- .wrapper :global(.react-international-phone-input):focus {
80
- outline: none;
81
- }
82
-
83
- .wrapper :global(.react-international-phone-input)::placeholder {
84
- color: var(--grey-text, #878686);
85
- }
86
-
87
- /* Dropdown - floating panel BELOW the input, not inside */
88
- .wrapper :global(.react-international-phone-country-selector-dropdown),
89
- .dropdown {
90
- position: absolute !important;
91
- top: 100% !important;
92
- left: 0 !important;
93
- margin-top: 6px !important;
94
- width: 100% !important;
95
- min-width: 280px;
96
- max-height: 280px;
97
- border-radius: 12px;
98
- border: 1px solid rgba(0, 0, 0, 0.08);
99
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
100
- background: #fff;
101
- padding: 8px 0;
102
- z-index: 1000;
103
- }
104
-
105
- .wrapper :global(.react-international-phone-country-selector-dropdown__list-item) {
106
- padding: 0.5rem 1rem;
107
- min-height: 40px;
108
- cursor: pointer;
109
- }
110
-
111
- .wrapper :global(.react-international-phone-country-selector-dropdown__list-item):hover,
112
- .wrapper :global(.react-international-phone-country-selector-dropdown__list-item--focused) {
113
- background: #f5f5f5;
114
- }
115
-
116
- .wrapper :global(.react-international-phone-country-selector-dropdown__list-item-country-name) {
117
- font-size: 14px;
118
- color: var(--primary-text, #333);
119
- }
120
-
121
- .wrapper :global(.react-international-phone-country-selector-dropdown__list-item-dial-code) {
122
- font-size: 14px;
123
- color: var(--grey-text, #6b7280);
124
- }
125
-
126
- /* Flag sizing */
127
- .wrapper :global(.react-international-phone-country-selector-button__flag-emoji),
128
- .wrapper :global(.react-international-phone-country-selector-dropdown__list-item-flag-emoji) {
129
- width: 20px;
130
- height: 14px;
131
- }
@@ -1,44 +0,0 @@
1
- 'use client';
2
-
3
- import React from 'react';
4
- import { PhoneInput } from 'react-international-phone';
5
- import 'react-international-phone/style.css';
6
- import styles from './PhoneInputWithCountry.module.css';
7
-
8
- interface PhoneInputWithCountryProps {
9
- id?: string;
10
- value: string;
11
- onChange: (value: string | undefined) => void;
12
- placeholder?: string;
13
- disabled?: boolean;
14
- className?: string;
15
- }
16
-
17
- export default function PhoneInputWithCountryComponent({
18
- id,
19
- value,
20
- onChange,
21
- placeholder = 'Phone number',
22
- disabled = false,
23
- className,
24
- }: PhoneInputWithCountryProps) {
25
- return (
26
- <div className={`${styles.wrapper} ${className ?? ''}`}>
27
- <PhoneInput
28
- defaultCountry="ca"
29
- preferredCountries={['ca', 'us']}
30
- value={value || ''}
31
- onChange={(phone) => onChange(phone || undefined)}
32
- placeholder={placeholder}
33
- disabled={disabled}
34
- inputProps={{ id }}
35
- className={styles.phoneInput}
36
- countrySelectorStyleProps={{
37
- dropdownStyleProps: {
38
- className: styles.dropdown,
39
- },
40
- }}
41
- />
42
- </div>
43
- );
44
- }
@@ -1,360 +0,0 @@
1
- /* Root class for scoping - nested selectors override Tailwind */
2
- .overlay {
3
- position: fixed;
4
- inset: 0;
5
- background: rgba(0, 0, 0, 0.5);
6
- display: flex;
7
- align-items: center;
8
- justify-content: center;
9
- z-index: 1000;
10
- padding: 1rem;
11
- }
12
-
13
- .modal {
14
- background: var(--primary-background, #fff);
15
- border-radius: 24px;
16
- max-width: 900px;
17
- width: 100%;
18
- max-height: 90vh;
19
- overflow: hidden;
20
- display: flex;
21
- flex-direction: column;
22
- box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
23
- }
24
-
25
- .pickupDialogRoot .header {
26
- display: grid !important;
27
- grid-template-columns: auto 1fr auto !important;
28
- align-items: center !important;
29
- gap: 0.75rem !important;
30
- padding: 1rem 0.75rem !important;
31
- border-bottom: 1px solid #e5e7eb !important;
32
- }
33
-
34
- .pickupDialogRoot .headerSpacer {
35
- display: block;
36
- width: 2.5rem;
37
- height: 2.5rem;
38
- flex-shrink: 0;
39
- }
40
-
41
- .pickupDialogRoot .title {
42
- font-family: 'Poppins', sans-serif !important;
43
- font-weight: 800 !important;
44
- font-size: 1.5rem !important;
45
- color: var(--accent-orange, #e85a2e) !important;
46
- margin: 0 !important;
47
- justify-self: center !important;
48
- text-align: center !important;
49
- }
50
-
51
- .pickupDialogRoot .closeBtn {
52
- background: none !important;
53
- border: none !important;
54
- padding: 0.5rem !important;
55
- cursor: pointer !important;
56
- color: var(--grey-text, #6b7280) !important;
57
- }
58
-
59
- .pickupDialogRoot .closeBtn:hover {
60
- color: var(--primary-text, #1f2937) !important;
61
- }
62
-
63
- .pickupDialogRoot .content {
64
- padding: var(--spacing-large);
65
- overflow-y: auto;
66
- overflow-x: hidden;
67
- flex: 1;
68
- min-width: 0;
69
- }
70
-
71
- .pickupDialogRoot .loading,
72
- .pickupDialogRoot .error,
73
- .pickupDialogRoot .empty {
74
- text-align: center;
75
- padding: 2rem;
76
- color: var(--grey-text, #6b7280);
77
- }
78
-
79
- .pickupDialogRoot .error {
80
- color: #dc2626;
81
- }
82
-
83
- /* Current pickup section - shown when dialog opens */
84
- .pickupDialogRoot .currentPickupSection {
85
- margin-bottom: 1.25rem;
86
- padding: 1rem;
87
- background: var(--accent-orange-10, rgba(0, 0, 0, 0.04));
88
- border-radius: 12px;
89
- border: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
90
- }
91
-
92
- .pickupDialogRoot .currentPickupLabel {
93
- font-size: 0.75rem;
94
- font-weight: 600;
95
- text-transform: uppercase;
96
- letter-spacing: 0.05em;
97
- color: var(--grey-text, #6b7280);
98
- margin: 0 0 0.25rem 0;
99
- }
100
-
101
- .pickupDialogRoot .currentPickupName {
102
- font-size: 1rem;
103
- font-weight: 600;
104
- color: var(--primary-text, #1f2937);
105
- margin: 0 0 0.25rem 0;
106
- }
107
-
108
- .pickupDialogRoot .currentPickupTimes {
109
- font-size: 0.875rem;
110
- color: var(--grey-text, #6b7280);
111
- margin: 0;
112
- }
113
-
114
- .pickupDialogRoot .selectorWrapper {
115
- margin-bottom: 1.5rem;
116
- }
117
-
118
- /* Prevent input overflow - constrain width in flex/grid layouts */
119
- .pickupDialogRoot .selectorWrapperConstrained {
120
- min-width: 0;
121
- overflow: hidden;
122
- }
123
-
124
- .pickupDialogRoot .selectorWrapperConstrained > div {
125
- min-width: 0;
126
- }
127
-
128
- /* Override Tailwind resets for input and filter pills when inside dialog */
129
- .pickupDialogRoot .selectorWrapper input[data-pickup-search],
130
- .pickupDialogRoot .selectorWrapper input[type="text"] {
131
- width: 100% !important;
132
- max-width: 100% !important;
133
- box-sizing: border-box !important;
134
- padding: 0.5rem 1rem 0.5rem 2.5rem !important;
135
- font-family: 'Figtree', sans-serif !important;
136
- font-size: 1rem !important;
137
- line-height: 1.5 !important;
138
- color: #1c1917 !important;
139
- background-color: #fff !important;
140
- border: 1px solid #d6d3d1 !important;
141
- border-radius: 0.5rem !important;
142
- }
143
-
144
- .pickupDialogRoot .selectorWrapper input::placeholder {
145
- color: #a8a29e !important;
146
- }
147
-
148
- .pickupDialogRoot .selectorWrapper input:focus {
149
- outline: none !important;
150
- border-color: #78716c !important;
151
- }
152
-
153
- .pickupDialogRoot .cancelBtn {
154
- border-color: var(--grey-text);
155
- color: var(--grey-text);
156
- }
157
-
158
- /* Filter pills - match booking flow (PrivateShuttleBookingFlow / CheckoutForm) */
159
- .pickupDialogRoot .selectorWrapper [class*="filterPillsScroll"] {
160
- display: flex !important;
161
- flex-wrap: nowrap !important;
162
- align-items: center !important;
163
- gap: 0.5rem !important;
164
- margin-bottom: 1rem !important;
165
- }
166
-
167
- .pickupDialogRoot .selectorWrapper [class*="filterPillsScroll"] > div:first-child {
168
- display: flex !important;
169
- flex-wrap: wrap !important;
170
- gap: 0.5rem !important;
171
- }
172
-
173
- .pickupDialogRoot .selectorWrapper [class*="filterPillsScroll"] button {
174
- padding: 0.875rem 1.25rem !important;
175
- font-family: 'Figtree', sans-serif !important;
176
- font-size: 0.875rem !important;
177
- font-weight: 500 !important;
178
- border-radius: 9999px !important;
179
- transition: background-color 0.15s, color 0.15s !important;
180
- flex-shrink: 0 !important;
181
- border: none !important;
182
- cursor: pointer !important;
183
- }
184
-
185
- /* Unselected - stone/grey to match booking flow */
186
- .pickupDialogRoot .selectorWrapper [class*="filterPillsScroll"] button:not([class*="bg-emerald"]) {
187
- background-color: #f5f5f4 !important;
188
- color: #44403c !important;
189
- }
190
-
191
- .pickupDialogRoot .selectorWrapper [class*="filterPillsScroll"] button:hover:not([class*="bg-emerald"]) {
192
- background-color: #e7e5e4 !important;
193
- }
194
-
195
- /* Selected - emerald green to match booking flow */
196
- .pickupDialogRoot .selectorWrapper [class*="filterPillsScroll"] button[class*="bg-emerald"] {
197
- background-color: #059669 !important;
198
- color: #fff !important;
199
- }
200
-
201
- .pickupDialogRoot .selectorWrapper [class*="filterPillsScroll"] button[class*="bg-emerald"]:hover {
202
- background-color: #047857 !important;
203
- }
204
-
205
- .pickupDialogRoot .mapContainer {
206
- margin-bottom: var(--spacing-medium);
207
- border-radius: 12px;
208
- overflow: hidden;
209
- border: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
210
- }
211
-
212
- .map {
213
- width: 100%;
214
- height: 320px;
215
- }
216
-
217
- .mapFallback {
218
- font-size: 0.875rem;
219
- color: var(--grey-text);
220
- margin-bottom: var(--spacing-medium);
221
- }
222
-
223
- .infoWindow {
224
- padding: 0.25rem;
225
- min-width: 200px;
226
- }
227
-
228
- .infoTitle {
229
- font-weight: 600;
230
- margin: 0 0 0.25rem 0;
231
- font-size: 1rem;
232
- }
233
-
234
- .infoAddress {
235
- font-size: 0.875rem;
236
- color: var(--grey-text);
237
- margin: 0 0 0.5rem 0;
238
- }
239
-
240
- .selectBtn {
241
- width: 100%;
242
- padding: 0.5rem 0.75rem;
243
- background: var(--accent-orange, #e85a2e);
244
- color: white;
245
- border: none;
246
- border-radius: 8px;
247
- font-weight: 600;
248
- font-size: 0.875rem;
249
- cursor: pointer;
250
- }
251
-
252
- .selectBtn:hover:not(:disabled) {
253
- background: #e85a2e;
254
- opacity: 0.9;
255
- }
256
-
257
- .selectBtn:disabled {
258
- opacity: 0.7;
259
- cursor: not-allowed;
260
- }
261
-
262
- .list {
263
- display: flex;
264
- flex-direction: column;
265
- gap: 0.5rem;
266
- margin-bottom: var(--spacing-large);
267
- }
268
-
269
- .listItem {
270
- display: flex;
271
- flex-direction: column;
272
- align-items: flex-start;
273
- padding: 1rem;
274
- border: 2px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
275
- border-radius: 12px;
276
- background: transparent;
277
- cursor: pointer;
278
- text-align: left;
279
- transition: border-color 0.15s, background 0.15s;
280
- }
281
-
282
- .listItem:hover {
283
- border-color: var(--accent-orange, #e85a2e);
284
- background: rgba(232, 90, 46, 0.05);
285
- }
286
-
287
- .listItemSelected {
288
- border-color: var(--accent-orange, #e85a2e);
289
- background: rgba(232, 90, 46, 0.08);
290
- }
291
-
292
- .listName {
293
- font-weight: 600;
294
- color: var(--primary-text, #1f2937);
295
- }
296
-
297
- .listAddress {
298
- font-size: 0.875rem;
299
- color: var(--grey-text);
300
- margin-top: 0.25rem;
301
- }
302
-
303
- .pickupDialogRoot .footer {
304
- display: flex;
305
- justify-content: flex-end;
306
- gap: 0.75rem;
307
- padding-top: var(--spacing-medium);
308
- border-top: 1px solid #e5e7eb !important;
309
- }
310
-
311
- /* Itinerary preview before save */
312
- .pickupDialogRoot .itineraryPreview {
313
- margin-top: 1rem;
314
- padding: 1rem;
315
- background: var(--accent-orange-10, rgba(0, 0, 0, 0.04));
316
- border-radius: 12px;
317
- border: 1px solid var(--accent-orange-10, rgba(0, 0, 0, 0.08));
318
- }
319
-
320
- .pickupDialogRoot .previewTitle {
321
- font-size: 0.875rem;
322
- font-weight: 600;
323
- margin: 0 0 0.5rem 0;
324
- color: var(--primary-text, #1f2937);
325
- }
326
-
327
- .pickupDialogRoot .previewIntro {
328
- font-size: 0.8125rem;
329
- color: var(--grey-text, #6b7280);
330
- margin: 0 0 0.75rem 0;
331
- }
332
-
333
- .pickupDialogRoot .previewList {
334
- margin: 0;
335
- padding-left: 1.25rem;
336
- font-size: 0.8125rem;
337
- }
338
-
339
- .pickupDialogRoot .previewItem {
340
- margin-bottom: 0.5rem;
341
- display: flex;
342
- flex-wrap: wrap;
343
- align-items: baseline;
344
- gap: 0.5rem;
345
- }
346
-
347
- .pickupDialogRoot .previewOld {
348
- color: var(--grey-text, #6b7280);
349
- text-decoration: line-through;
350
- }
351
-
352
- .pickupDialogRoot .previewArrow {
353
- color: var(--accent-orange, #e85a2e);
354
- font-weight: 600;
355
- }
356
-
357
- .pickupDialogRoot .previewNew {
358
- color: var(--primary-text, #1f2937);
359
- font-weight: 500;
360
- }