@coras-io/embed 0.2.0 → 0.4.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 (237) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/README.md +8 -7
  3. package/dist/components/accordion/accordion-item/accordion-item.styles.js +1 -1
  4. package/dist/components/alert/alert.styles.js +14 -14
  5. package/dist/components/attraction-card/base/attraction-card.styles.js +7 -3
  6. package/dist/components/attraction-discovery/attraction-discovery.styles.js +1 -1
  7. package/dist/components/attraction-header/attraction-header.styles.js +1 -1
  8. package/dist/components/attraction-option/attraction-option.styles.js +4 -4
  9. package/dist/components/basket/basket.styles.js +27 -26
  10. package/dist/components/basket-empty/basket-empty.styles.js +1 -0
  11. package/dist/components/basket-item/basket-item.component.js +10 -4
  12. package/dist/components/basket-item/basket-item.styles.js +9 -3
  13. package/dist/components/basket-item-ticket/basket-item-ticket.styles.js +1 -3
  14. package/dist/components/basket-mobile/basket-mobile.styles.js +5 -5
  15. package/dist/components/better-carousel/better-carousel.styles.js +2 -0
  16. package/dist/components/bottom-drawer/bottom-drawer.styles.js +6 -4
  17. package/dist/components/button/button.component.d.ts +0 -1
  18. package/dist/components/button/button.component.js +1 -8
  19. package/dist/components/button/button.constants.d.ts +1 -1
  20. package/dist/components/button/button.constants.js +1 -1
  21. package/dist/components/button/button.styles.js +66 -39
  22. package/dist/components/calendar/base/calendar.styles.js +3 -5
  23. package/dist/components/calendar/multi/multi.styles.js +7 -0
  24. package/dist/components/category-tag/category-tag.styles.js +10 -7
  25. package/dist/components/checkbox/checkbox.styles.js +2 -2
  26. package/dist/components/chip/chip.styles.js +2 -2
  27. package/dist/components/collect-fida/collect-fida.component.js +5 -3
  28. package/dist/components/collect-fida/collect-fida.styles.js +9 -16
  29. package/dist/components/crypto-auth-modal/crypto-auth-modal.component.js +6 -4
  30. package/dist/components/crypto-auth-modal/crypto-auth-modal.styles.js +2 -2
  31. package/dist/components/dialog/dialog.styles.js +10 -17
  32. package/dist/components/drawer/drawer.component.js +6 -0
  33. package/dist/components/drawer/drawer.styles.js +17 -3
  34. package/dist/components/dropdown/dropdown.component.js +7 -0
  35. package/dist/components/dropdown/dropdown.styles.js +3 -6
  36. package/dist/components/expiration-timer/expiration-timer.styles.js +3 -3
  37. package/dist/components/explore-card/explore-card.styles.js +1 -1
  38. package/dist/components/filter-chip/filter-chip.styles.js +11 -9
  39. package/dist/components/filters-drawer/filters-drawer.component.js +1 -1
  40. package/dist/components/filters-drawer/filters-drawer.styles.js +6 -5
  41. package/dist/components/image/image.styles.js +3 -3
  42. package/dist/components/image-chip/image-chip.styles.js +1 -1
  43. package/dist/components/input-field/input-field.styles.js +22 -17
  44. package/dist/components/itinerary/itinerary-item/itinerary-item.styles.js +1 -1
  45. package/dist/components/joined-fields/joined-fields.styles.js +10 -6
  46. package/dist/components/loading-spinner/loading-spinner.styles.js +1 -1
  47. package/dist/components/location-image/location-image.component.d.ts +6 -0
  48. package/dist/components/location-image/location-image.component.js +15 -2
  49. package/dist/components/location-image/location-image.styles.js +1 -1
  50. package/dist/components/locations-results/locations-results.styles.js +4 -6
  51. package/dist/components/marketing-tag/marketing-tag.styles.js +1 -1
  52. package/dist/components/message-card/message-card.styles.js +6 -6
  53. package/dist/components/option-group/option-chip/option-chip.styles.js +4 -3
  54. package/dist/components/order-confirmation/order-confirmation-item/order-confirmation-item.styles.js +9 -0
  55. package/dist/components/order-confirmation/order-confirmation.component.js +4 -3
  56. package/dist/components/order-confirmation/order-confirmation.styles.js +1 -1
  57. package/dist/components/otp/otp.styles.js +6 -6
  58. package/dist/components/overlay/overlay.styles.js +5 -1
  59. package/dist/components/pay-in/pay-in.styles.js +2 -2
  60. package/dist/components/payment-fiat-method/payment-fiat-method.styles.js +20 -4
  61. package/dist/components/payment-option/payment-option.styles.js +10 -12
  62. package/dist/components/performance-time/performance-time.styles.js +2 -2
  63. package/dist/components/phone-country-code/phone-country-code.styles.js +1 -1
  64. package/dist/components/points/points.styles.js +1 -1
  65. package/dist/components/search-button/search-button.styles.js +15 -7
  66. package/dist/components/seated-selector/seated-selector.component.d.ts +2 -0
  67. package/dist/components/seated-selector/seated-selector.component.js +53 -10
  68. package/dist/components/seated-selector/seated-selector.styles.js +77 -14
  69. package/dist/components/seats-io/seats-io.component.d.ts +2 -0
  70. package/dist/components/seats-io/seats-io.component.js +25 -2
  71. package/dist/components/seats-io/seats-io.constants.d.ts +2 -1
  72. package/dist/components/seats-io/seats-io.constants.js +6 -1
  73. package/dist/components/seats-io/seats-io.transform.d.ts +8 -2
  74. package/dist/components/seats-io/seats-io.transform.js +12 -4
  75. package/dist/components/select-list/select-list.styles.js +1 -0
  76. package/dist/components/select-list/select-option/select-option.styles.js +3 -3
  77. package/dist/components/sort-dropdown/sort-dropdown.styles.js +1 -1
  78. package/dist/components/sort-list/sort-list.styles.js +1 -1
  79. package/dist/components/sport-options/sport-option/sport-option.styles.js +2 -2
  80. package/dist/components/star-rating/star-rating.component.d.ts +1 -0
  81. package/dist/components/star-rating/star-rating.component.js +19 -23
  82. package/dist/components/star-rating/star-rating.styles.js +32 -6
  83. package/dist/components/tab/tab.styles.js +1 -1
  84. package/dist/components/tabs/tabs.styles.js +1 -1
  85. package/dist/components/tag/tag.styles.js +7 -7
  86. package/dist/components/text-section/text-section.styles.js +2 -1
  87. package/dist/components/time-tag/time-tag.styles.js +1 -2
  88. package/dist/components/tooltip/tooltip.styles.js +3 -3
  89. package/dist/components/tour-ticket-type-selector/tour-ticket-type/tour-ticket-type.styles.js +2 -2
  90. package/dist/components/tour-ticket-type-selector/tour-ticket-type-selector.component.js +1 -1
  91. package/dist/components/tour-ticket-type-selector/tour-ticket-type-selector.styles.js +1 -10
  92. package/dist/components/transfer-modal/transfer-modal.component.js +3 -3
  93. package/dist/components/transfer-modal/transfer-modal.styles.js +6 -8
  94. package/dist/containers/basket/basket.component.d.ts +1 -1
  95. package/dist/containers/basket/basket.component.js +56 -25
  96. package/dist/containers/footer/footer.component.d.ts +2 -0
  97. package/dist/containers/footer/footer.component.js +8 -0
  98. package/dist/containers/footer/footer.styles.js +12 -0
  99. package/dist/containers/navbar/navbar.component.d.ts +6 -1
  100. package/dist/containers/navbar/navbar.component.js +41 -9
  101. package/dist/containers/navbar/navbar.styles.js +47 -13
  102. package/dist/contexts/basket/basket.provider.d.ts +1 -0
  103. package/dist/contexts/basket/basket.provider.js +31 -4
  104. package/dist/contexts/properties.context.d.ts +4 -4
  105. package/dist/core/api/middlewares/booking-session/booking-session.constants.d.ts +1 -0
  106. package/dist/core/api/middlewares/booking-session/booking-session.constants.js +1 -0
  107. package/dist/core/api/middlewares/booking-session/booking-session.js +18 -27
  108. package/dist/core/api/middlewares/booking-session/booking-session.utils.d.ts +4 -4
  109. package/dist/core/api/middlewares/booking-session/booking-session.utils.js +13 -10
  110. package/dist/core/api/queries.js +3 -2
  111. package/dist/core/color-scheme.d.ts +14 -0
  112. package/dist/core/color-scheme.js +48 -0
  113. package/dist/core/currency/constants.d.ts +1 -1
  114. package/dist/core/currency/constants.js +4 -3
  115. package/dist/core/i18n/date.js +20 -9
  116. package/dist/core/i18n/locale-codes.d.ts +2 -2
  117. package/dist/core/i18n/locale-codes.js +4 -0
  118. package/dist/core/images/constants.d.ts +0 -5
  119. package/dist/core/images/constants.js +0 -5
  120. package/dist/core/images/helpers.d.ts +8 -0
  121. package/dist/core/images/helpers.js +14 -6
  122. package/dist/core/images/srcset.js +2 -2
  123. package/dist/core/storybook/demo.d.ts +4 -0
  124. package/dist/core/storybook/demo.js +17 -0
  125. package/dist/core/types/locales.d.ts +7 -0
  126. package/dist/core/utils/datetime.js +10 -4
  127. package/dist/core/utils/locale.d.ts +8 -1
  128. package/dist/core/utils/locale.js +10 -0
  129. package/dist/helpers/helpers.d.ts +1 -1
  130. package/dist/index.d.ts +2 -3
  131. package/dist/index.js +1 -2
  132. package/dist/locales/ar-SA.d.ts +279 -0
  133. package/dist/locales/ar-SA.js +288 -0
  134. package/dist/locales/da-DK.d.ts +100 -82
  135. package/dist/locales/da-DK.js +104 -89
  136. package/dist/locales/de-DE.d.ts +100 -82
  137. package/dist/locales/de-DE.js +104 -89
  138. package/dist/locales/en-IE.d.ts +250 -232
  139. package/dist/locales/en-IE.js +254 -239
  140. package/dist/locales/en-US.d.ts +100 -82
  141. package/dist/locales/en-US.js +107 -92
  142. package/dist/locales/es-ES.d.ts +100 -82
  143. package/dist/locales/es-ES.js +104 -89
  144. package/dist/locales/fr-FR.d.ts +100 -82
  145. package/dist/locales/fr-FR.js +104 -89
  146. package/dist/locales/fr-MA.d.ts +100 -82
  147. package/dist/locales/fr-MA.js +104 -89
  148. package/dist/locales/is-IS.d.ts +100 -82
  149. package/dist/locales/is-IS.js +104 -89
  150. package/dist/locales/it-IT.d.ts +100 -82
  151. package/dist/locales/it-IT.js +104 -89
  152. package/dist/locales/ms-MY.d.ts +100 -82
  153. package/dist/locales/ms-MY.js +106 -91
  154. package/dist/locales/nb-NO.d.ts +100 -82
  155. package/dist/locales/nb-NO.js +104 -89
  156. package/dist/locales/pl-PL.d.ts +100 -82
  157. package/dist/locales/pl-PL.js +104 -89
  158. package/dist/locales/pt-PT.d.ts +100 -82
  159. package/dist/locales/pt-PT.js +104 -89
  160. package/dist/locales/sv-SE.d.ts +100 -82
  161. package/dist/locales/sv-SE.js +104 -89
  162. package/dist/locales/th-TH.d.ts +100 -82
  163. package/dist/locales/th-TH.js +104 -89
  164. package/dist/locales/tr-TR.d.ts +100 -82
  165. package/dist/locales/tr-TR.js +104 -89
  166. package/dist/locales/zh-CN.d.ts +100 -82
  167. package/dist/locales/zh-CN.js +105 -90
  168. package/dist/locales/zh-HK.d.ts +279 -0
  169. package/dist/locales/zh-HK.js +288 -0
  170. package/dist/mixins/coinbase.mixin.js +1 -1
  171. package/dist/mixins/error-modal.styles.js +2 -2
  172. package/dist/mixins/location-search/location-search.js +3 -3
  173. package/dist/mixins/location-search/location-search.styles.js +6 -5
  174. package/dist/sdk/chrome.d.ts +9 -3
  175. package/dist/sdk/chrome.js +21 -9
  176. package/dist/sdk/element-adapter.js +11 -8
  177. package/dist/sdk/mount.d.ts +3 -3
  178. package/dist/sdk/mount.js +153 -48
  179. package/dist/sdk/navigation-intent.js +3 -0
  180. package/dist/sdk/page-registry.d.ts +14 -2
  181. package/dist/sdk/page-registry.js +33 -13
  182. package/dist/sdk/theme.d.ts +2 -16
  183. package/dist/sdk/theme.js +12 -44
  184. package/dist/sdk/types.d.ts +59 -30
  185. package/dist/sdk/url.d.ts +24 -3
  186. package/dist/sdk/url.js +66 -27
  187. package/dist/sdk/validation.d.ts +0 -7
  188. package/dist/sdk/validation.js +104 -48
  189. package/dist/styles/contrast-fixtures.d.ts +0 -5
  190. package/dist/styles/contrast-fixtures.js +79 -9
  191. package/dist/styles/contrast.js +4 -3
  192. package/dist/styles/defaults/component.js +17 -1
  193. package/dist/styles/primitives.d.ts +0 -10
  194. package/dist/styles/primitives.js +2 -12
  195. package/dist/styles/tokens.d.ts +1 -1
  196. package/dist/styles/tokens.generated.d.ts +1 -1
  197. package/dist/styles/tokens.generated.js +1 -1
  198. package/dist/styles/tokens.metadata.d.ts +1 -1
  199. package/dist/styles/tokens.metadata.js +378 -90
  200. package/dist/views/details-page/details-page.component.d.ts +5 -5
  201. package/dist/views/details-page/details-page.component.js +77 -80
  202. package/dist/views/details-page/details-page.styles.js +64 -9
  203. package/dist/views/help-page/help-page.component.d.ts +1 -0
  204. package/dist/views/help-page/help-page.component.js +11 -4
  205. package/dist/views/help-page/help-page.styles.js +21 -8
  206. package/dist/views/landing-page/landing-page.component.d.ts +4 -4
  207. package/dist/views/landing-page/landing-page.component.js +65 -65
  208. package/dist/views/landing-page/landing-page.styles.js +70 -3
  209. package/dist/views/payment-page/partials/activity-details/activity-details.styles.js +10 -33
  210. package/dist/views/payment-page/partials/billing-address/billing-address.styles.js +4 -9
  211. package/dist/views/payment-page/partials/confirmation/confirmation.styles.js +6 -6
  212. package/dist/views/payment-page/partials/hotel-pickup-list/hotel-pickup-list.styles.js +4 -4
  213. package/dist/views/payment-page/partials/payment-type-selector/payment-type-selector.styles.js +1 -0
  214. package/dist/views/payment-page/partials/stripe/stripe.component.d.ts +1 -1
  215. package/dist/views/payment-page/partials/stripe/stripe.component.js +11 -12
  216. package/dist/views/payment-page/partials/stripe/stripe.constants.d.ts +2 -15
  217. package/dist/views/payment-page/partials/stripe/stripe.constants.js +4 -17
  218. package/dist/views/payment-page/partials/stripe/stripe.styles.js +16 -23
  219. package/dist/views/payment-page/partials/stripe/stripe.utils.d.ts +25 -14
  220. package/dist/views/payment-page/partials/stripe/stripe.utils.js +111 -62
  221. package/dist/views/payment-page/partials/terms-checkbox/terms-checkbox.styles.js +1 -1
  222. package/dist/views/payment-page/payment-page.component.d.ts +1 -0
  223. package/dist/views/payment-page/payment-page.component.js +19 -9
  224. package/dist/views/payment-page/payment-page.styles.js +37 -32
  225. package/dist/views/payment-page/payment-page.utils.d.ts +7 -0
  226. package/dist/views/payment-page/payment-page.utils.js +29 -14
  227. package/dist/views/payment-page/payment-page.validators.js +9 -3
  228. package/dist/views/payment-page/services/payment-api.service.d.ts +1 -1
  229. package/dist/views/search-page/search-page.component.d.ts +1 -0
  230. package/dist/views/search-page/search-page.component.js +12 -6
  231. package/dist/views/search-page/search-page.styles.js +24 -2
  232. package/dist/views/suggestion-widget/suggestion-widget.styles.js +1 -1
  233. package/package.json +63 -76
  234. package/dist/custom-elements.json +0 -37397
  235. package/dist/sdk/meta.d.ts +0 -7
  236. package/dist/sdk/meta.js +0 -9
  237. package/dist/styles/tokens.css +0 -359
@@ -8,25 +8,28 @@ export default css `
8
8
  --dialog-max-width: 90vw;
9
9
  --dialog-max-height: 90vh;
10
10
  --dialog-border-radius: var(--coras-radius-lg);
11
- --dialog-bg-color: var(--coras-palette-white);
12
- --dialog-overlay-bg-color: color-mix(in srgb, black, transparent 40%);
11
+ --dialog-bg-color: var(--coras-color-card);
12
+ --dialog-overlay-bg-color: color-mix(
13
+ in srgb,
14
+ var(--coras-color-scrim) 60%,
15
+ transparent
16
+ );
13
17
  --dialog-box-shadow: var(--coras-shadow-strong);
14
18
  --dialog-padding: 1.5rem;
15
19
  --dialog-header-padding: 1rem 1.5rem;
16
20
  --dialog-footer-padding: 1rem 1.5rem;
17
21
  --dialog-border-color: var(--coras-color-neutral-100);
18
- --dialog-divider-color: var(--coras-color-neutral-200);
22
+ --dialog-divider-color: var(--coras-color-divider);
19
23
  --dialog-close-icon-bg: var(--coras-color-neutral-50);
20
24
  --dialog-close-icon-hover-bg: var(--coras-color-neutral-200);
21
25
  --dialog-close-icon-fill: var(--coras-color-neutral-800);
22
26
  --dialog-close-icon-size: 2rem;
23
- --dialog-back-button-color: var(--coras-color-text-secondary);
27
+ --dialog-back-button-color: var(--coras-color-text-muted);
24
28
  --dialog-animation-duration: 200ms;
25
29
 
26
30
  display: contents;
27
31
  }
28
32
 
29
- /* ── Overlay ── */
30
33
  .overlay {
31
34
  position: fixed;
32
35
  inset: 0;
@@ -47,7 +50,6 @@ export default css `
47
50
  animation: overlayFadeOut var(--dialog-animation-duration) ease forwards;
48
51
  }
49
52
 
50
- /* ── Dialog panel ── */
51
53
  .dialog {
52
54
  position: relative;
53
55
  background-color: var(--dialog-bg-color);
@@ -72,7 +74,6 @@ export default css `
72
74
  cubic-bezier(0.16, 1, 0.3, 1) forwards;
73
75
  }
74
76
 
75
- /* ── Icon area ── */
76
77
  .icon-area {
77
78
  display: flex;
78
79
  justify-content: center;
@@ -83,7 +84,6 @@ export default css `
83
84
  display: none;
84
85
  }
85
86
 
86
- /* ── Header ── */
87
87
  .header {
88
88
  display: flex;
89
89
  align-items: center;
@@ -112,7 +112,7 @@ export default css `
112
112
  }
113
113
 
114
114
  .back-button:focus-visible {
115
- outline: 2px solid var(--coras-color-primary-500);
115
+ outline: 2px solid var(--coras-color-primary);
116
116
  outline-offset: 2px;
117
117
  }
118
118
 
@@ -155,11 +155,10 @@ export default css `
155
155
  }
156
156
 
157
157
  .close-button:focus-visible {
158
- outline: 2px solid var(--coras-color-primary-500);
158
+ outline: 2px solid var(--coras-color-primary);
159
159
  outline-offset: 2px;
160
160
  }
161
161
 
162
- /* ── Description ── */
163
162
  .description {
164
163
  padding: 0 var(--dialog-padding);
165
164
  }
@@ -168,14 +167,12 @@ export default css `
168
167
  display: none;
169
168
  }
170
169
 
171
- /* ── Content ── */
172
170
  .content {
173
171
  overflow-y: auto;
174
172
  overflow-x: hidden;
175
173
  padding: var(--dialog-padding);
176
174
  }
177
175
 
178
- /* ── Footer ── */
179
176
  .footer {
180
177
  padding: var(--dialog-footer-padding);
181
178
  border-top: 1px solid var(--dialog-divider-color);
@@ -185,7 +182,6 @@ export default css `
185
182
  display: none;
186
183
  }
187
184
 
188
- /* ── Expanded mode ── */
189
185
  :host([expanded]) .dialog {
190
186
  width: 100%;
191
187
  height: 100%;
@@ -197,7 +193,6 @@ export default css `
197
193
  padding: 0.5rem;
198
194
  }
199
195
 
200
- /* ── Mobile full-screen ── */
201
196
  @media (max-width: 768px) {
202
197
  :host([mobile-full-screen]) .overlay {
203
198
  padding: 0;
@@ -213,7 +208,6 @@ export default css `
213
208
  }
214
209
  }
215
210
 
216
- /* ── Short viewport ── */
217
211
  @media (max-height: 400px) {
218
212
  .dialog {
219
213
  margin-top: 1rem;
@@ -221,7 +215,6 @@ export default css `
221
215
  }
222
216
  }
223
217
 
224
- /* ── Animations ── */
225
218
  @keyframes overlayFadeIn {
226
219
  from {
227
220
  opacity: 0;
@@ -72,6 +72,12 @@ let CorasDrawer = class CorasDrawer extends OverlayMixin(LitElement) {
72
72
  >
73
73
  ${this.renderHeader()}
74
74
  <slot part="body" class="body" data-testid="drawer-body"></slot>
75
+ <slot
76
+ name="footer"
77
+ part="footer"
78
+ class="footer"
79
+ data-testid="drawer-footer"
80
+ ></slot>
75
81
  </div>
76
82
  </div>
77
83
  `;
@@ -11,7 +11,8 @@ export default css `
11
11
  --drawer-width: 400px;
12
12
 
13
13
  --icon-background-color: var(--coras-color-neutral-500);
14
- --drawer-close-icon-fill: var(--coras-palette-white);
14
+ --drawer-background-color: var(--coras-color-background);
15
+ --drawer-close-icon-fill: var(--drawer-background-color);
15
16
  --drawer-label-font-size: var(--coras-font-size-xl);
16
17
  }
17
18
 
@@ -37,9 +38,9 @@ export default css `
37
38
  z-index: 2;
38
39
  max-width: 100%;
39
40
  max-height: 100%;
40
- background-color: var(--coras-color-surface);
41
+ background-color: var(--drawer-background-color);
41
42
  box-shadow: 0 0 0 1px color-mix(in srgb, black, transparent 90%);
42
- overflow: auto;
43
+ overflow: hidden;
43
44
  pointer-events: all;
44
45
  animation: slideOutRight 0.4s both;
45
46
  top: 0;
@@ -56,6 +57,7 @@ export default css `
56
57
  .header {
57
58
  display: flex;
58
59
  flex-direction: row;
60
+ flex-shrink: 0;
59
61
  padding: 1rem 1.5rem;
60
62
  justify-content: space-between;
61
63
  align-items: center;
@@ -84,6 +86,18 @@ export default css `
84
86
  font-size: var(--drawer-label-font-size);
85
87
  }
86
88
  }
89
+
90
+ .body {
91
+ display: block;
92
+ flex: 1 1 auto;
93
+ min-height: 0;
94
+ overflow-y: auto;
95
+ }
96
+
97
+ .footer {
98
+ display: block;
99
+ flex-shrink: 0;
100
+ }
87
101
  }
88
102
 
89
103
  &.open {
@@ -25,6 +25,13 @@ export class CorasDropdown extends LitElement {
25
25
  };
26
26
  this.handleDocumentMouseDown = (event) => {
27
27
  const path = event.composedPath();
28
+ // A node clicked inside the dropdown that re-renders on that click (e.g. a
29
+ // basket item removing itself) is detached before this handler runs, which
30
+ // makes composedPath() empty. That is an inside interaction, not a
31
+ // click-away, so leave the dropdown open.
32
+ if (path.length === 0) {
33
+ return;
34
+ }
28
35
  if (!path.includes(this.containingElement)) {
29
36
  this.dispatchCloseEvent();
30
37
  }
@@ -4,9 +4,9 @@ export default css `
4
4
  ${component}
5
5
 
6
6
  :host {
7
- --dropdown-popover-background-color: var(--coras-color-surface);
8
- --dropdown-popover-arrow-icon-color: var(--coras-color-primary-400);
9
- --dropdown-popover-border-color: var(--coras-color-neutral-200);
7
+ --dropdown-popover-background-color: var(--coras-color-menu);
8
+ --dropdown-popover-arrow-icon-color: var(--coras-color-primary);
9
+ --dropdown-popover-border-color: var(--coras-color-menu-border);
10
10
  --dropdown-popover-border-radius: var(--coras-radius-sm);
11
11
  --dropdown-popover-options-shadow: var(--coras-shadow-md);
12
12
 
@@ -39,9 +39,6 @@ export default css `
39
39
  display: block;
40
40
  }
41
41
 
42
- /* The scroll/clip lives here so the floating box stays overflow-visible and
43
- the arrow above its top edge is never clipped. Inherits the box radius so
44
- scrolled content keeps the rounded corners. */
45
42
  .scroll {
46
43
  border-radius: inherit;
47
44
  }
@@ -4,11 +4,11 @@ export default css `
4
4
  ${component}
5
5
 
6
6
  :host {
7
- --expiration-timer-background-color: var(--coras-color-info-50);
7
+ --expiration-timer-background-color: var(--coras-color-info-background);
8
8
  --expiration-timer-font-size: var(--coras-font-size-base);
9
9
  --expiration-timer-line-height: var(--coras-font-size-xl);
10
10
  --expiration-timer-font-weight: var(--coras-font-weight-normal);
11
- --expiration-timer-color: var(--coras-color-info-900);
11
+ --expiration-timer-color: var(--coras-color-info);
12
12
 
13
13
  display: grid;
14
14
  grid-template-columns: auto 1fr auto;
@@ -17,7 +17,7 @@ export default css `
17
17
  width: 100%;
18
18
  padding: 0.5rem;
19
19
  background-color: var(--expiration-timer-background-color);
20
- border-radius: 0.25rem;
20
+ border-radius: var(--coras-radius-control);
21
21
  font-size: var(--expiration-timer-font-size);
22
22
  line-height: var(--expiration-timer-line-height);
23
23
  font-weight: var(--expiration-timer-font-weight);
@@ -6,7 +6,7 @@ export default css `
6
6
  :host {
7
7
  --explore-card-border-radius: var(--coras-radius-sm);
8
8
  --explore-card-shadow: var(--coras-shadow-lg);
9
- --explore-card-label-color: var(--coras-color-primary-100);
9
+ --explore-card-label-color: var(--coras-palette-white);
10
10
  --explore-card-label-font-size: var(--coras-font-size-3xl);
11
11
  --explore-card-label-font-weight: var(--coras-font-weight-semibold);
12
12
  }
@@ -20,21 +20,23 @@ export default css `
20
20
  --filter-chip-font-size: var(--coras-font-size-base);
21
21
  --filter-chip-line-height: var(--coras-font-size-2xl);
22
22
  --filter-chip-box-shadow: var(--coras-shadow-md);
23
- --filter-chip-hover-background-color: var(--coras-color-surface-hover);
24
- --filter-chip-selected-background-color: var(--coras-color-primary-500);
23
+ --filter-chip-hover-background-color: color-mix(
24
+ in srgb,
25
+ var(--coras-color-background),
26
+ var(--coras-state-overlay) var(--coras-state-hover)
27
+ );
28
+ --filter-chip-selected-background-color: var(--coras-color-primary);
25
29
  --filter-chip-selected-hover-background-color: var(
26
- --coras-color-primary-700
30
+ --coras-color-primary-button-hover
27
31
  );
28
32
  --filter-chip-selected-color: var(--coras-palette-white);
29
- --filter-chip-disabled-color: var(--coras-color-neutral-500);
33
+ --filter-chip-disabled-color: var(--coras-color-text-disabled);
30
34
  --filter-chip-disabled-background-color: var(--coras-color-neutral-200);
31
35
  --filter-chip-icon-color: var(--coras-color-text);
32
36
  --filter-chip-selected-icon-color: var(--coras-palette-white);
33
- --filter-chip-disabled-icon-color: var(--coras-color-neutral-500);
34
- --filter-chip-text-selected-icon-color: var(--coras-color-primary-500);
35
- --filter-chip-text-selected-hover-icon-color: var(
36
- --coras-color-primary-700
37
- );
37
+ --filter-chip-disabled-icon-color: var(--coras-color-text-disabled);
38
+ --filter-chip-text-selected-icon-color: var(--coras-color-primary);
39
+ --filter-chip-text-selected-hover-icon-color: var(--coras-color-primary);
38
40
  }
39
41
 
40
42
  button {
@@ -35,7 +35,7 @@ let CorasFiltersDrawer = class CorasFiltersDrawer extends LitElement {
35
35
  <div class="title">${msg("Filters")}</div>
36
36
  <slot></slot>
37
37
  </div>
38
- <div class="bottom">
38
+ <div slot="footer" class="bottom">
39
39
  <slot name="reset-action"></slot>
40
40
  <slot name="apply-action"></slot>
41
41
  </div>
@@ -6,12 +6,14 @@ export default css `
6
6
  :host {
7
7
  --filters-drawer-title-font-size: var(--coras-font-size-xl);
8
8
  --filters-drawer-title-font-weight: var(--coras-font-weight-semibold);
9
- --filters-drawer-bottom-background-color: var(--coras-color-surface-muted);
10
- --filters-drawer-bottom-border-color: var(--coras-color-neutral-200);
9
+ --filters-drawer-bottom-background-color: var(--coras-color-card-muted);
10
+ --filters-drawer-bottom-border-color: var(--coras-color-divider);
11
11
  }
12
12
 
13
13
  coras-drawer {
14
- --drawer-width-mobile: 100vw;
14
+ /* Not 100vw: coras-drawer applies this as min-width, which overrides its own
15
+ max-width cap, so the window width would escape a narrower container. */
16
+ --drawer-width-mobile: 100%;
15
17
  --drawer-width: 400px;
16
18
 
17
19
  &::part(header-icon) {
@@ -21,10 +23,9 @@ export default css `
21
23
 
22
24
  .container {
23
25
  padding: 0.25rem 1rem 2rem 1.625rem;
24
- height: 100%;
25
- overflow-y: auto;
26
26
 
27
27
  .title {
28
+ font-family: var(--coras-font-family-heading);
28
29
  font-size: var(--filters-drawer-title-font-size);
29
30
  font-weight: var(--filters-drawer-title-font-weight);
30
31
  line-height: 1.75rem;
@@ -5,13 +5,13 @@ export default css `
5
5
 
6
6
  :host {
7
7
  --coras-image-border-radius: 0;
8
- --coras-image-placeholder-bg: var(--coras-color-surface-sunken);
8
+ --coras-image-placeholder-bg: var(--coras-color-card-sunken);
9
9
  --coras-image-placeholder-shimmer: color-mix(
10
10
  in srgb,
11
- var(--coras-color-surface-raised),
11
+ var(--coras-color-card),
12
12
  transparent 30%
13
13
  );
14
- --coras-image-error-bg: var(--coras-color-surface-sunken);
14
+ --coras-image-error-bg: var(--coras-color-card-sunken);
15
15
  --coras-image-error-color: var(--coras-color-text-muted);
16
16
 
17
17
  display: block;
@@ -6,7 +6,7 @@ export default css `
6
6
  :host {
7
7
  --image-chip-font-weight: var(--coras-font-weight-semibold);
8
8
  --image-chip-font-size: var(--coras-font-size-sm);
9
- --image-chip-color: var(--coras-color-secondary-700);
9
+ --image-chip-color: var(--coras-color-secondary);
10
10
  --image-chip-border-color: color-mix(
11
11
  in srgb,
12
12
  var(--coras-color-text),
@@ -6,10 +6,10 @@ export default css `
6
6
  :host {
7
7
  --input-field-background-color: var(--coras-input-field-background-color);
8
8
 
9
- --input-border-color: var(--coras-color-neutral-400);
9
+ --input-border-color: var(--coras-color-field-border);
10
10
  --input-font-size: var(--coras-font-size-base);
11
- --input-placeholder-color: var(--coras-color-text-secondary);
12
- --input-background-color-focus: var(--coras-color-primary-100);
11
+ --input-placeholder-color: var(--coras-color-text-muted);
12
+ --input-background-color-focus: var(--coras-color-primary-tint);
13
13
 
14
14
  --field-label-font-size: var(--coras-font-size-base);
15
15
  --field-label-line-height: var(--coras-font-size-2xl);
@@ -27,19 +27,24 @@ export default css `
27
27
  --field-input-padding-left: 1rem;
28
28
  --field-input-padding-right: 1rem;
29
29
  --field-input-font-weight: inherit;
30
- --field-input-border-color: var(--coras-color-neutral-400);
30
+ --field-input-border-color: var(--coras-color-field-border);
31
31
  --field-input-border-radius: var(--coras-radius-field);
32
- --field-input-placeholder-color: var(--coras-color-text-secondary);
32
+ /* The rounded variant is only used by the nav and location search, so it
33
+ follows the Search Field Corners brand setting. */
34
+ --field-input-rounded-border-radius: var(--coras-radius-search);
35
+ --field-input-placeholder-color: var(--coras-color-text-muted);
33
36
  --field-input-disabled-color: var(--coras-color-neutral-500);
34
37
  --field-input-disabled-background-color: var(--coras-color-neutral-50);
35
- --field-input-error-color: var(--coras-color-error-500);
36
- --field-input-error-helper-text-color: var(--coras-color-error-500);
37
- --field-input-valid-color: var(--coras-color-success-500);
38
+ --field-input-error-color: var(--coras-color-error);
39
+ --field-input-error-helper-text-color: var(--coras-color-error);
40
+ --field-input-valid-color: var(--coras-color-success);
38
41
  --field-input-shadow: var(--coras-shadow-md);
39
- --field-input-focused-border-color: var(--coras-color-primary-500);
42
+ --field-input-focused-border-color: var(--coras-color-primary);
40
43
 
41
- --text-field-icon-color-valid: var(--coras-color-success-500);
42
- --text-field-icon-color-error: var(--coras-color-error-500);
44
+ --text-field-icon-color-valid: var(--coras-color-success);
45
+ --text-field-icon-color-error: var(--coras-color-error);
46
+
47
+ --field-prefix-icon-color: var(--coras-color-text);
43
48
 
44
49
  display: block;
45
50
  width: 100%;
@@ -72,7 +77,7 @@ export default css `
72
77
  display: flex;
73
78
  border: 1px solid var(--field-input-border-color);
74
79
  border-radius: var(--field-input-border-radius);
75
- background-color: var(--coras-color-surface);
80
+ background-color: var(--input-field-background-color);
76
81
  box-shadow: var(--field-input-box-shadow, none);
77
82
  position: relative;
78
83
  width: 100%;
@@ -103,11 +108,11 @@ export default css `
103
108
  }
104
109
 
105
110
  &.rounded {
106
- border-radius: 100px;
111
+ border-radius: var(--field-input-rounded-border-radius);
107
112
 
108
113
  input,
109
114
  textarea {
110
- border-radius: 100px;
115
+ border-radius: var(--field-input-rounded-border-radius);
111
116
  }
112
117
  }
113
118
 
@@ -130,7 +135,7 @@ export default css `
130
135
  }
131
136
 
132
137
  ::slotted(coras-icon) {
133
- fill: var(--coras-color-text);
138
+ fill: var(--field-prefix-icon-color);
134
139
  }
135
140
  }
136
141
 
@@ -224,11 +229,11 @@ export default css `
224
229
  color: var(--field-input-color);
225
230
  font-weight: var(--field-input-font-weight);
226
231
  border: none;
227
- background-color: var(--coras-color-surface);
232
+ background-color: var(--input-field-background-color);
228
233
  border-radius: var(--field-input-border-radius);
229
234
 
230
235
  &.compact {
231
- height: 2.625rem; /* 42px */
236
+ height: 2.625rem;
232
237
  }
233
238
 
234
239
  &:disabled {
@@ -8,7 +8,7 @@ export default css `
8
8
  --itinerary-item-dot-background-color: var(--coras-color-text);
9
9
  --itinerary-item-label-font-size: var(--coras-font-size-base);
10
10
  --itinerary-item-label-font-weight: var(--coras-font-weight-medium);
11
- --itinerary-item-border-left-color: var(--coras-color-secondary-500);
11
+ --itinerary-item-border-left-color: var(--coras-color-secondary);
12
12
  --itinerary-item-description-font-size: var(--coras-font-size-base);
13
13
  --itinerary-item-description-font-weight: var(--coras-font-weight-normal);
14
14
  --itinerary-item-footer-font-size: var(--coras-font-size-xs);
@@ -13,11 +13,15 @@ export default css `
13
13
  --field-helper-text-font-size: var(--coras-font-size-xxs);
14
14
  --field-helper-text-line-height: var(--coras-font-size-sm);
15
15
  --field-helper-text-color: var(--coras-color-text);
16
- --field-input-border-color: var(--coras-color-neutral-400);
16
+ --field-input-background-color: var(--coras-input-field-background-color);
17
+ --field-input-border-color: var(--coras-color-field-border);
17
18
  --field-input-border-radius: var(--coras-radius-field);
18
- --field-input-error-color: var(--coras-color-error-500);
19
- --field-input-valid-color: var(--coras-color-success-500);
20
- --field-input-focused-border-color: var(--coras-color-primary-500);
19
+ /* Matches coras-field: the rounded variant is a search affordance, so it
20
+ follows the Search Field Corners brand setting. */
21
+ --field-input-rounded-border-radius: var(--coras-radius-search);
22
+ --field-input-error-color: var(--coras-color-error);
23
+ --field-input-valid-color: var(--coras-color-success);
24
+ --field-input-focused-border-color: var(--coras-color-primary);
21
25
 
22
26
  display: block;
23
27
  width: 100%;
@@ -50,14 +54,14 @@ export default css `
50
54
  display: flex;
51
55
  border: 1px solid var(--field-input-border-color);
52
56
  border-radius: var(--field-input-border-radius);
53
- background-color: var(--coras-color-surface);
57
+ background-color: var(--field-input-background-color);
54
58
  box-shadow: var(--field-input-box-shadow, none);
55
59
  position: relative;
56
60
  width: 100%;
57
61
  overflow: hidden;
58
62
 
59
63
  &.rounded {
60
- border-radius: 100px;
64
+ border-radius: var(--field-input-rounded-border-radius);
61
65
  }
62
66
 
63
67
  &.error {
@@ -14,7 +14,7 @@ export default css `
14
14
  box-sizing: border-box;
15
15
  border-radius: 50%;
16
16
  border: 3px solid var(--coras-color-neutral-300);
17
- border-bottom-color: var(--coras-color-primary-700);
17
+ border-bottom-color: var(--coras-color-primary);
18
18
  animation: rotation 1s linear infinite;
19
19
  }
20
20
 
@@ -8,6 +8,12 @@ export declare class CorasLocationImage extends LitElement {
8
8
  city: string | undefined;
9
9
  imageExtension: string;
10
10
  alt: string;
11
+ /**
12
+ * Intrinsic size of the banner. Kept in sync with the rendered box
13
+ * (`--location-image-max-width` / `--location-image-height`) so imgix crops
14
+ * to the ratio that is actually displayed and `object-fit` has nothing left
15
+ * to trim.
16
+ */
11
17
  width: number;
12
18
  height: number;
13
19
  loading: boolean;
@@ -10,6 +10,12 @@ import { property, state } from "lit/decorators.js";
10
10
  import { getLocationImageURL } from "../../core/images/helpers.js";
11
11
  import "../image/image.js";
12
12
  import styles from "./location-image.styles.js";
13
+ /**
14
+ * Candidate widths for the banner srcset. Capped at the width of the source
15
+ * assets (1160px) - wider candidates only make imgix upscale the same pixels
16
+ * and ship more bytes for no extra detail.
17
+ */
18
+ const BANNER_WIDTHS = "480,640,768,952,1160";
13
19
  let CorasLocationImage = class CorasLocationImage extends LitElement {
14
20
  constructor() {
15
21
  super(...arguments);
@@ -18,8 +24,14 @@ let CorasLocationImage = class CorasLocationImage extends LitElement {
18
24
  this.country = "ireland";
19
25
  this.imageExtension = "png";
20
26
  this.alt = msg("Location image");
21
- this.width = 1160;
22
- this.height = 160;
27
+ /**
28
+ * Intrinsic size of the banner. Kept in sync with the rendered box
29
+ * (`--location-image-max-width` / `--location-image-height`) so imgix crops
30
+ * to the ratio that is actually displayed and `object-fit` has nothing left
31
+ * to trim.
32
+ */
33
+ this.width = 952;
34
+ this.height = 148;
23
35
  this.loading = false;
24
36
  this.currentSrc = "";
25
37
  this.fallbackTried = false;
@@ -86,6 +98,7 @@ let CorasLocationImage = class CorasLocationImage extends LitElement {
86
98
  width=${this.width}
87
99
  height=${this.height}
88
100
  preset="header-banner"
101
+ widths=${BANNER_WIDTHS}
89
102
  loading="eager"
90
103
  @coras-image-load=${this.handleImageLoad}
91
104
  @coras-image-error=${this.handleImageError}
@@ -12,7 +12,7 @@ export default css `
12
12
  --location-image-border-radius: 40px 2px;
13
13
  --location-image-drop-shadow: 0px 4px 4px
14
14
  color-mix(in srgb, black, transparent 75%);
15
- --location-image-placeholder-bg: var(--coras-color-surface-sunken);
15
+ --location-image-placeholder-bg: var(--coras-color-card-sunken);
16
16
  --location-image-placeholder-color: var(--coras-color-text-muted);
17
17
  }
18
18
 
@@ -4,16 +4,14 @@ export default css `
4
4
  ${component}
5
5
 
6
6
  :host {
7
- --locations-results-background-color: var(--coras-color-surface);
7
+ --locations-results-background-color: var(--coras-color-menu);
8
8
  --locations-results-font-size: var(--coras-font-size-sm);
9
- --locations-results-hover-background-color: var(
10
- --coras-color-surface-hover
11
- );
12
- --locations-results-popular-border-color: var(--coras-color-neutral-200);
9
+ --locations-results-hover-background-color: var(--coras-color-menu-hover);
10
+ --locations-results-popular-border-color: var(--coras-color-divider);
13
11
  --locations-results-popular-font-size: var(--coras-font-size-sm);
14
12
  --locations-results-popular-border-radius: var(--coras-radius-chip);
15
13
  --locations-results-popular-background-color: var(
16
- --coras-color-primary-300
14
+ --coras-color-primary-tint
17
15
  );
18
16
 
19
17
  background-color: var(--locations-results-background-color);
@@ -8,7 +8,7 @@ export default css `
8
8
 
9
9
  --marketing-tag-line-height: 1rem;
10
10
  --marketing-tag-letter-spacing: 0.01em;
11
- --marketing-tag-background-color: var(--coras-color-info-500);
11
+ --marketing-tag-background-color: var(--coras-color-info);
12
12
 
13
13
  --marketing-tag-border-radius: var(--coras-radius-md);
14
14
  --marketing-tag-font-size: var(--coras-font-size-xs);
@@ -10,8 +10,8 @@ export default css `
10
10
  .container {
11
11
  border-radius: 20px;
12
12
  padding: 16px;
13
- border: 1px solid var(--coras-color-info-500);
14
- background-color: var(--coras-color-info-50);
13
+ border: 1px solid var(--coras-color-info);
14
+ background-color: var(--coras-color-info-background);
15
15
  display: flex;
16
16
  align-items: flex-start;
17
17
  gap: 12px;
@@ -28,7 +28,7 @@ export default css `
28
28
  display: flex;
29
29
  align-items: center;
30
30
  justify-content: center;
31
- fill: var(--coras-color-info-500);
31
+ fill: var(--coras-color-info);
32
32
  }
33
33
  }
34
34
 
@@ -59,12 +59,12 @@ export default css `
59
59
 
60
60
  :host([variant="error"]) {
61
61
  .container {
62
- border-color: var(--coras-color-error-500);
63
- background-color: var(--coras-color-error-50);
62
+ border-color: var(--coras-color-error);
63
+ background-color: var(--coras-color-error-background);
64
64
 
65
65
  .icon {
66
66
  coras-icon {
67
- fill: var(--coras-color-error-500);
67
+ fill: var(--coras-color-error);
68
68
  }
69
69
  }
70
70
  }
@@ -11,15 +11,16 @@ export default css `
11
11
  --option-chip-font-size: var(--coras-font-size-sm);
12
12
  --option-chip-font-weight: var(--coras-font-weight-normal);
13
13
  --option-chip-line-height: var(--coras-font-size-sm);
14
- --option-chip-checked-background-color: var(--coras-color-secondary-500);
14
+ --option-chip-checked-background-color: var(--coras-color-secondary);
15
15
  --option-chip-checked-color: var(--coras-palette-white);
16
- --option-chip-hover-background-color: var(--coras-color-surface-hover);
16
+ --option-chip-background-color: var(--coras-color-field);
17
+ --option-chip-hover-background-color: var(--coras-color-field-hover);
17
18
  --option-chip-hover-border-color: var(--coras-color-neutral-700);
18
19
  --option-chip-hover-color: var(--coras-color-text);
19
20
 
20
21
  cursor: pointer;
21
22
  display: inline-flex;
22
- background-color: transparent;
23
+ background-color: var(--option-chip-background-color);
23
24
  border-radius: var(--option-chip-border-radius);
24
25
  border: 1px solid var(--option-chip-border-color);
25
26
  padding: 8px;