@coras-io/embed 0.1.2 → 0.3.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.
- package/CHANGELOG.md +139 -0
- package/README.md +8 -7
- package/dist/components/accordion/accordion-item/accordion-item.styles.js +1 -1
- package/dist/components/alert/alert.styles.js +14 -14
- package/dist/components/attraction-card/base/attraction-card.styles.js +7 -3
- package/dist/components/attraction-discovery/attraction-discovery.styles.js +1 -1
- package/dist/components/attraction-header/attraction-header.styles.js +1 -1
- package/dist/components/attraction-option/attraction-option.styles.js +4 -4
- package/dist/components/basket/basket.styles.js +27 -26
- package/dist/components/basket-empty/basket-empty.styles.js +1 -0
- package/dist/components/basket-item/basket-item.component.js +10 -4
- package/dist/components/basket-item/basket-item.styles.js +9 -3
- package/dist/components/basket-item-ticket/basket-item-ticket.styles.js +1 -3
- package/dist/components/basket-mobile/basket-mobile.styles.js +5 -5
- package/dist/components/better-carousel/better-carousel.styles.js +2 -0
- package/dist/components/bottom-drawer/bottom-drawer.styles.js +6 -4
- package/dist/components/button/button.component.d.ts +0 -1
- package/dist/components/button/button.component.js +1 -8
- package/dist/components/button/button.constants.d.ts +1 -1
- package/dist/components/button/button.constants.js +1 -1
- package/dist/components/button/button.styles.js +66 -39
- package/dist/components/calendar/base/calendar.styles.js +3 -5
- package/dist/components/calendar/multi/multi.styles.js +7 -0
- package/dist/components/category-tag/category-tag.styles.js +10 -7
- package/dist/components/checkbox/checkbox.styles.js +2 -2
- package/dist/components/chip/chip.styles.js +2 -2
- package/dist/components/collect-fida/collect-fida.component.js +5 -3
- package/dist/components/collect-fida/collect-fida.styles.js +9 -16
- package/dist/components/crypto-auth-modal/crypto-auth-modal.component.js +6 -4
- package/dist/components/crypto-auth-modal/crypto-auth-modal.styles.js +2 -2
- package/dist/components/dialog/dialog.styles.js +10 -17
- package/dist/components/drawer/drawer.component.js +6 -0
- package/dist/components/drawer/drawer.styles.js +17 -3
- package/dist/components/dropdown/dropdown.component.js +7 -0
- package/dist/components/dropdown/dropdown.styles.js +3 -6
- package/dist/components/expiration-timer/expiration-timer.styles.js +3 -3
- package/dist/components/explore-card/explore-card.styles.js +1 -1
- package/dist/components/filter-chip/filter-chip.styles.js +11 -9
- package/dist/components/filters-drawer/filters-drawer.component.js +1 -1
- package/dist/components/filters-drawer/filters-drawer.styles.js +6 -5
- package/dist/components/image/image.styles.js +3 -3
- package/dist/components/image-chip/image-chip.styles.js +1 -1
- package/dist/components/input-field/input-field.styles.js +22 -17
- package/dist/components/itinerary/itinerary-item/itinerary-item.styles.js +1 -1
- package/dist/components/joined-fields/joined-fields.styles.js +10 -6
- package/dist/components/loading-spinner/loading-spinner.styles.js +1 -1
- package/dist/components/location-image/location-image.component.d.ts +6 -0
- package/dist/components/location-image/location-image.component.js +15 -2
- package/dist/components/location-image/location-image.styles.js +1 -1
- package/dist/components/locations-results/locations-results.styles.js +4 -6
- package/dist/components/marketing-tag/marketing-tag.styles.js +1 -1
- package/dist/components/message-card/message-card.styles.js +6 -6
- package/dist/components/option-group/option-chip/option-chip.styles.js +4 -3
- package/dist/components/order-confirmation/order-confirmation-item/order-confirmation-item.styles.js +9 -0
- package/dist/components/order-confirmation/order-confirmation.component.js +4 -3
- package/dist/components/order-confirmation/order-confirmation.styles.js +1 -1
- package/dist/components/otp/otp.styles.js +6 -6
- package/dist/components/overlay/overlay.styles.js +5 -1
- package/dist/components/pay-in/pay-in.styles.js +2 -2
- package/dist/components/payment-fiat-method/payment-fiat-method.styles.js +20 -4
- package/dist/components/payment-option/payment-option.styles.js +10 -12
- package/dist/components/performance-time/performance-time.styles.js +2 -2
- package/dist/components/phone-country-code/phone-country-code.styles.js +1 -1
- package/dist/components/points/points.styles.js +1 -1
- package/dist/components/search-button/search-button.styles.js +15 -7
- package/dist/components/seated-selector/seated-selector.component.d.ts +4 -1
- package/dist/components/seated-selector/seated-selector.component.js +90 -36
- package/dist/components/seated-selector/seated-selector.styles.js +89 -14
- package/dist/components/seats-io/seats-io.component.d.ts +2 -0
- package/dist/components/seats-io/seats-io.component.js +35 -2
- package/dist/components/seats-io/seats-io.constants.d.ts +5 -0
- package/dist/components/seats-io/seats-io.constants.js +12 -0
- package/dist/components/seats-io/seats-io.transform.d.ts +8 -2
- package/dist/components/seats-io/seats-io.transform.js +12 -4
- package/dist/components/select-list/select-list.styles.js +1 -0
- package/dist/components/select-list/select-option/select-option.styles.js +3 -3
- package/dist/components/sort-dropdown/sort-dropdown.styles.js +1 -1
- package/dist/components/sort-list/sort-list.styles.js +1 -1
- package/dist/components/sport-options/sport-option/sport-option.styles.js +2 -2
- package/dist/components/star-rating/star-rating.component.d.ts +1 -0
- package/dist/components/star-rating/star-rating.component.js +19 -23
- package/dist/components/star-rating/star-rating.styles.js +32 -6
- package/dist/components/tab/tab.styles.js +1 -1
- package/dist/components/tabs/tabs.styles.js +1 -1
- package/dist/components/tag/tag.styles.js +7 -7
- package/dist/components/text-section/text-section.styles.js +2 -1
- package/dist/components/time-tag/time-tag.styles.js +1 -2
- package/dist/components/tooltip/tooltip.styles.js +3 -3
- package/dist/components/tour-ticket-type-selector/tour-ticket-type/tour-ticket-type.styles.js +2 -2
- package/dist/components/tour-ticket-type-selector/tour-ticket-type-selector.component.js +1 -1
- package/dist/components/tour-ticket-type-selector/tour-ticket-type-selector.styles.js +1 -9
- package/dist/components/transfer-modal/transfer-modal.component.js +3 -3
- package/dist/components/transfer-modal/transfer-modal.styles.js +6 -8
- package/dist/containers/basket/basket.component.d.ts +1 -1
- package/dist/containers/basket/basket.component.js +56 -25
- package/dist/containers/footer/footer.styles.js +4 -0
- package/dist/containers/navbar/navbar.component.d.ts +5 -1
- package/dist/containers/navbar/navbar.component.js +38 -9
- package/dist/containers/navbar/navbar.styles.js +38 -12
- package/dist/contexts/basket/basket.provider.d.ts +1 -0
- package/dist/contexts/basket/basket.provider.js +31 -4
- package/dist/contexts/properties.context.d.ts +4 -4
- package/dist/core/api/middlewares/booking-session/booking-session.constants.d.ts +1 -0
- package/dist/core/api/middlewares/booking-session/booking-session.constants.js +1 -0
- package/dist/core/api/middlewares/booking-session/booking-session.js +18 -27
- package/dist/core/api/middlewares/booking-session/booking-session.utils.d.ts +4 -4
- package/dist/core/api/middlewares/booking-session/booking-session.utils.js +13 -10
- package/dist/core/api/queries.js +3 -2
- package/dist/core/color-scheme.d.ts +14 -0
- package/dist/core/color-scheme.js +48 -0
- package/dist/core/currency/constants.d.ts +1 -1
- package/dist/core/currency/constants.js +4 -3
- package/dist/core/i18n/date.js +20 -9
- package/dist/core/i18n/locale-codes.d.ts +2 -2
- package/dist/core/i18n/locale-codes.js +4 -0
- package/dist/core/images/constants.d.ts +0 -5
- package/dist/core/images/constants.js +0 -5
- package/dist/core/images/helpers.d.ts +8 -0
- package/dist/core/images/helpers.js +14 -6
- package/dist/core/images/srcset.js +2 -2
- package/dist/core/storybook/demo.d.ts +4 -0
- package/dist/core/storybook/demo.js +17 -0
- package/dist/core/types/locales.d.ts +7 -0
- package/dist/core/utils/datetime.js +10 -4
- package/dist/core/utils/locale.d.ts +8 -1
- package/dist/core/utils/locale.js +10 -0
- package/dist/helpers/helpers.d.ts +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.js +1 -2
- package/dist/locales/ar-SA.d.ts +279 -0
- package/dist/locales/ar-SA.js +288 -0
- package/dist/locales/da-DK.d.ts +100 -82
- package/dist/locales/da-DK.js +104 -89
- package/dist/locales/de-DE.d.ts +100 -82
- package/dist/locales/de-DE.js +104 -89
- package/dist/locales/en-IE.d.ts +250 -232
- package/dist/locales/en-IE.js +253 -238
- package/dist/locales/en-US.d.ts +100 -82
- package/dist/locales/en-US.js +105 -90
- package/dist/locales/es-ES.d.ts +100 -82
- package/dist/locales/es-ES.js +104 -89
- package/dist/locales/fr-FR.d.ts +100 -82
- package/dist/locales/fr-FR.js +104 -89
- package/dist/locales/fr-MA.d.ts +100 -82
- package/dist/locales/fr-MA.js +104 -89
- package/dist/locales/is-IS.d.ts +100 -82
- package/dist/locales/is-IS.js +104 -89
- package/dist/locales/it-IT.d.ts +100 -82
- package/dist/locales/it-IT.js +104 -89
- package/dist/locales/ms-MY.d.ts +100 -82
- package/dist/locales/ms-MY.js +104 -89
- package/dist/locales/nb-NO.d.ts +100 -82
- package/dist/locales/nb-NO.js +104 -89
- package/dist/locales/pl-PL.d.ts +100 -82
- package/dist/locales/pl-PL.js +104 -89
- package/dist/locales/pt-PT.d.ts +100 -82
- package/dist/locales/pt-PT.js +104 -89
- package/dist/locales/sv-SE.d.ts +100 -82
- package/dist/locales/sv-SE.js +104 -89
- package/dist/locales/th-TH.d.ts +100 -82
- package/dist/locales/th-TH.js +104 -89
- package/dist/locales/tr-TR.d.ts +100 -82
- package/dist/locales/tr-TR.js +104 -89
- package/dist/locales/zh-CN.d.ts +100 -82
- package/dist/locales/zh-CN.js +105 -90
- package/dist/locales/zh-HK.d.ts +279 -0
- package/dist/locales/zh-HK.js +288 -0
- package/dist/mixins/coinbase.mixin.js +1 -1
- package/dist/mixins/error-modal.styles.js +2 -2
- package/dist/mixins/location-search/location-search.js +3 -3
- package/dist/mixins/location-search/location-search.styles.js +6 -5
- package/dist/sdk/chrome.d.ts +9 -3
- package/dist/sdk/chrome.js +21 -9
- package/dist/sdk/element-adapter.js +11 -8
- package/dist/sdk/mount.d.ts +3 -3
- package/dist/sdk/mount.js +150 -42
- package/dist/sdk/navigation-intent.js +3 -0
- package/dist/sdk/page-registry.d.ts +14 -2
- package/dist/sdk/page-registry.js +33 -13
- package/dist/sdk/theme.d.ts +1 -15
- package/dist/sdk/theme.js +4 -39
- package/dist/sdk/types.d.ts +55 -24
- package/dist/sdk/url.d.ts +24 -3
- package/dist/sdk/url.js +66 -27
- package/dist/sdk/validation.d.ts +0 -7
- package/dist/sdk/validation.js +105 -47
- package/dist/styles/contrast-fixtures.d.ts +0 -5
- package/dist/styles/contrast-fixtures.js +79 -9
- package/dist/styles/contrast.js +4 -3
- package/dist/styles/defaults/component.js +17 -1
- package/dist/styles/primitives.d.ts +0 -10
- package/dist/styles/primitives.js +2 -12
- package/dist/styles/tokens.d.ts +1 -1
- package/dist/styles/tokens.generated.d.ts +1 -1
- package/dist/styles/tokens.generated.js +1 -1
- package/dist/styles/tokens.metadata.d.ts +1 -1
- package/dist/styles/tokens.metadata.js +360 -90
- package/dist/views/details-page/details-page.component.d.ts +5 -5
- package/dist/views/details-page/details-page.component.js +97 -71
- package/dist/views/details-page/details-page.styles.js +64 -9
- package/dist/views/details-page/partials/theater-description/theater-description.component.js +5 -0
- package/dist/views/help-page/help-page.component.d.ts +1 -0
- package/dist/views/help-page/help-page.component.js +11 -4
- package/dist/views/help-page/help-page.styles.js +21 -8
- package/dist/views/landing-page/landing-page.component.d.ts +4 -4
- package/dist/views/landing-page/landing-page.component.js +65 -65
- package/dist/views/landing-page/landing-page.styles.js +70 -3
- package/dist/views/payment-page/partials/activity-details/activity-details.styles.js +10 -33
- package/dist/views/payment-page/partials/billing-address/billing-address.styles.js +4 -9
- package/dist/views/payment-page/partials/confirmation/confirmation.styles.js +6 -6
- package/dist/views/payment-page/partials/hotel-pickup-list/hotel-pickup-list.styles.js +4 -4
- package/dist/views/payment-page/partials/payment-type-selector/payment-type-selector.styles.js +1 -0
- package/dist/views/payment-page/partials/stripe/stripe.component.d.ts +1 -1
- package/dist/views/payment-page/partials/stripe/stripe.component.js +11 -12
- package/dist/views/payment-page/partials/stripe/stripe.constants.d.ts +2 -15
- package/dist/views/payment-page/partials/stripe/stripe.constants.js +4 -17
- package/dist/views/payment-page/partials/stripe/stripe.styles.js +16 -23
- package/dist/views/payment-page/partials/stripe/stripe.utils.d.ts +25 -14
- package/dist/views/payment-page/partials/stripe/stripe.utils.js +111 -62
- package/dist/views/payment-page/partials/terms-checkbox/terms-checkbox.styles.js +1 -1
- package/dist/views/payment-page/payment-page.component.d.ts +1 -0
- package/dist/views/payment-page/payment-page.component.js +19 -9
- package/dist/views/payment-page/payment-page.styles.js +37 -32
- package/dist/views/payment-page/payment-page.utils.d.ts +7 -0
- package/dist/views/payment-page/payment-page.utils.js +29 -14
- package/dist/views/payment-page/payment-page.validators.js +9 -3
- package/dist/views/payment-page/services/payment-api.service.d.ts +1 -1
- package/dist/views/search-page/search-page.component.d.ts +1 -0
- package/dist/views/search-page/search-page.component.js +12 -6
- package/dist/views/search-page/search-page.styles.js +24 -2
- package/dist/views/suggestion-widget/suggestion-widget.styles.js +1 -1
- package/package.json +62 -75
- package/dist/custom-elements.json +0 -37378
- package/dist/sdk/meta.d.ts +0 -7
- package/dist/sdk/meta.js +0 -9
- package/dist/styles/tokens.css +0 -359
|
@@ -36,10 +36,13 @@ export interface SelectionGroup {
|
|
|
36
36
|
color: string;
|
|
37
37
|
seatLabels: string[];
|
|
38
38
|
unitPrice: number;
|
|
39
|
+
bookingFee: number;
|
|
39
40
|
count: number;
|
|
40
41
|
}
|
|
41
42
|
export interface SelectionSummary {
|
|
42
43
|
groups: SelectionGroup[];
|
|
44
|
+
subtotal: number;
|
|
45
|
+
fees: number;
|
|
43
46
|
total: number;
|
|
44
47
|
}
|
|
45
48
|
export interface SeatsChartData {
|
|
@@ -65,8 +68,11 @@ export declare const findPriceBand: (seatLabel: string, availableSeats: Record<s
|
|
|
65
68
|
export declare const buildTickets: (selectedLabels: string[], availableSeats: Record<string, AvailableSeat>, flatPriceBands: FlatPriceBand[]) => TicketRequest[];
|
|
66
69
|
/**
|
|
67
70
|
* Groups the selected seats by price-band category for the booking drawer:
|
|
68
|
-
* one row per category with its colour, seat labels, unit price
|
|
69
|
-
* and count
|
|
71
|
+
* one row per category with its colour, seat labels, base unit price, per-seat
|
|
72
|
+
* booking fee and count. The base unit price matches the seat tooltip on the
|
|
73
|
+
* map; the booking fee is surfaced on its own line so the shopper can reconcile
|
|
74
|
+
* the two. subtotal + fees === total, which is the fee-inclusive amount booked.
|
|
75
|
+
* All amounts in minor units.
|
|
70
76
|
*/
|
|
71
77
|
export declare const buildSelectionSummary: (seats: SelectedSeat[], availableSeats: Record<string, AvailableSeat>, flatPriceBands: FlatPriceBand[], categories: ChartCategory[]) => SelectionSummary;
|
|
72
78
|
export declare const makeIsSeatSelectable: (availableSeats: Record<string, AvailableSeat>) => (object: SelectableObject) => boolean;
|
|
@@ -97,12 +97,17 @@ export const buildTickets = (selectedLabels, availableSeats, flatPriceBands) =>
|
|
|
97
97
|
};
|
|
98
98
|
/**
|
|
99
99
|
* Groups the selected seats by price-band category for the booking drawer:
|
|
100
|
-
* one row per category with its colour, seat labels, unit price
|
|
101
|
-
* and count
|
|
100
|
+
* one row per category with its colour, seat labels, base unit price, per-seat
|
|
101
|
+
* booking fee and count. The base unit price matches the seat tooltip on the
|
|
102
|
+
* map; the booking fee is surfaced on its own line so the shopper can reconcile
|
|
103
|
+
* the two. subtotal + fees === total, which is the fee-inclusive amount booked.
|
|
104
|
+
* All amounts in minor units.
|
|
102
105
|
*/
|
|
103
106
|
export const buildSelectionSummary = (seats, availableSeats, flatPriceBands, categories) => {
|
|
104
107
|
const categoryByKey = new Map(categories.map((category) => [category.key, category]));
|
|
105
108
|
const groups = new Map();
|
|
109
|
+
let subtotal = 0;
|
|
110
|
+
let fees = 0;
|
|
106
111
|
let total = 0;
|
|
107
112
|
seats.forEach((seat) => {
|
|
108
113
|
const meta = availableSeats[seat.id];
|
|
@@ -110,6 +115,8 @@ export const buildSelectionSummary = (seats, availableSeats, flatPriceBands, cat
|
|
|
110
115
|
if (!meta || !band) {
|
|
111
116
|
return;
|
|
112
117
|
}
|
|
118
|
+
subtotal += band.basePrice;
|
|
119
|
+
fees += band.bookingFee;
|
|
113
120
|
total += band.fullPrice;
|
|
114
121
|
const key = String(meta.categoryID);
|
|
115
122
|
const existing = groups.get(key);
|
|
@@ -124,12 +131,13 @@ export const buildSelectionSummary = (seats, availableSeats, flatPriceBands, cat
|
|
|
124
131
|
label: category?.label ?? key,
|
|
125
132
|
color: category?.color ?? "",
|
|
126
133
|
seatLabels: [seat.seatLabel],
|
|
127
|
-
unitPrice: band.
|
|
134
|
+
unitPrice: band.basePrice,
|
|
135
|
+
bookingFee: band.bookingFee,
|
|
128
136
|
count: 1,
|
|
129
137
|
});
|
|
130
138
|
}
|
|
131
139
|
});
|
|
132
|
-
return { groups: [...groups.values()], total };
|
|
140
|
+
return { groups: [...groups.values()], subtotal, fees, total };
|
|
133
141
|
};
|
|
134
142
|
const isReserved = (object) => {
|
|
135
143
|
const status = "status" in object ? object.status : undefined;
|
|
@@ -19,6 +19,7 @@ export default css `
|
|
|
19
19
|
|
|
20
20
|
& > .caption {
|
|
21
21
|
padding: 0.6rem 1rem 0.9rem 1rem;
|
|
22
|
+
font-family: var(--coras-font-family-heading);
|
|
22
23
|
font-weight: var(--select-list-caption-font-weight);
|
|
23
24
|
font-size: var(--select-list-caption-font-size);
|
|
24
25
|
color: var(--select-list-caption-icon-color);
|
|
@@ -7,9 +7,9 @@ export default css `
|
|
|
7
7
|
--select-option-font-size: var(--coras-font-size-base);
|
|
8
8
|
--select-option-line-height: var(--coras-font-size-2xl);
|
|
9
9
|
--select-option-color: var(--coras-color-text);
|
|
10
|
-
--select-option-hovered-background-color: var(--coras-color-
|
|
11
|
-
--select-option-selected-background-color: var(--coras-color-
|
|
12
|
-
--select-option-check-mark-color: var(--coras-color-primary
|
|
10
|
+
--select-option-hovered-background-color: var(--coras-color-menu-hover);
|
|
11
|
+
--select-option-selected-background-color: var(--coras-color-menu-hover);
|
|
12
|
+
--select-option-check-mark-color: var(--coras-color-primary);
|
|
13
13
|
|
|
14
14
|
--check-mark-size: 12px;
|
|
15
15
|
|
|
@@ -5,7 +5,7 @@ export default css `
|
|
|
5
5
|
|
|
6
6
|
:host {
|
|
7
7
|
--sort-list-label-font-size: var(--coras-font-size-sm);
|
|
8
|
-
--sort-list-label-color: var(--coras-color-text-
|
|
8
|
+
--sort-list-label-color: var(--coras-color-text-muted);
|
|
9
9
|
--sort-list-label-font-weight: var(--coras-font-weight-normal);
|
|
10
10
|
}
|
|
11
11
|
|
|
@@ -6,7 +6,7 @@ export default css `
|
|
|
6
6
|
:host {
|
|
7
7
|
--sport-option-color: var(--coras-color-text);
|
|
8
8
|
--sport-option-shadow: var(--coras-shadow-sm);
|
|
9
|
-
--sport-option-section-border-color: var(--coras-color-
|
|
9
|
+
--sport-option-section-border-color: var(--coras-color-card-border);
|
|
10
10
|
--sport-option-section-border-radius: var(--coras-radius-md);
|
|
11
11
|
--sport-option-font-weight: var(--coras-font-weight-normal);
|
|
12
12
|
--sport-option-label-font-size: var(--coras-font-size-sm);
|
|
@@ -49,7 +49,7 @@ export default css `
|
|
|
49
49
|
border-left: none;
|
|
50
50
|
border-top-right-radius: var(--sport-option-section-border-radius);
|
|
51
51
|
border-bottom-right-radius: var(--sport-option-section-border-radius);
|
|
52
|
-
background-color: var(--coras-color-primary-
|
|
52
|
+
background-color: var(--coras-color-primary-tint);
|
|
53
53
|
|
|
54
54
|
coras-button {
|
|
55
55
|
margin-left: 1rem;
|
|
@@ -4,11 +4,12 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { html, LitElement, } from "lit";
|
|
7
|
+
import { html, LitElement, nothing, } from "lit";
|
|
8
8
|
import { property } from "lit/decorators.js";
|
|
9
9
|
import { range } from "lit/directives/range.js";
|
|
10
10
|
import { map } from "lit/directives/map.js";
|
|
11
11
|
import styles from "./star-rating.styles.js";
|
|
12
|
+
const STAR_PATH = "M9 14.25l-5.584 2.936 1.066-6.218L.465 6.564l6.243-.907L9 0l2.792 5.657 6.243.907-4.517 4.404 1.066 6.218";
|
|
12
13
|
/**
|
|
13
14
|
* A component that displays a star rating.
|
|
14
15
|
*
|
|
@@ -25,6 +26,17 @@ export class CorasStarRating extends LitElement {
|
|
|
25
26
|
get normalizedRating() {
|
|
26
27
|
return Math.max(0, Math.min(5, Math.round(this.rating * 2) / 2));
|
|
27
28
|
}
|
|
29
|
+
renderStarShape() {
|
|
30
|
+
return html `
|
|
31
|
+
<svg
|
|
32
|
+
viewBox="0 0 18 18"
|
|
33
|
+
aria-hidden="true"
|
|
34
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
35
|
+
>
|
|
36
|
+
<path d="${STAR_PATH}" />
|
|
37
|
+
</svg>
|
|
38
|
+
`;
|
|
39
|
+
}
|
|
28
40
|
renderStar(index) {
|
|
29
41
|
const starValue = index + 1;
|
|
30
42
|
const isFull = starValue <= this.normalizedRating;
|
|
@@ -35,16 +47,12 @@ export class CorasStarRating extends LitElement {
|
|
|
35
47
|
else if (isHalf)
|
|
36
48
|
className = "star star--half";
|
|
37
49
|
return html `
|
|
38
|
-
<
|
|
39
|
-
class="
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
>
|
|
44
|
-
<path
|
|
45
|
-
d="M9 14.25l-5.584 2.936 1.066-6.218L.465 6.564l6.243-.907L9 0l2.792 5.657 6.243.907-4.517 4.404 1.066 6.218"
|
|
46
|
-
/>
|
|
47
|
-
</svg>
|
|
50
|
+
<span class="${className}">
|
|
51
|
+
<span class="star-base">${this.renderStarShape()}</span>
|
|
52
|
+
${isFull || isHalf
|
|
53
|
+
? html `<span class="star-fill">${this.renderStarShape()}</span>`
|
|
54
|
+
: nothing}
|
|
55
|
+
</span>
|
|
48
56
|
`;
|
|
49
57
|
}
|
|
50
58
|
render() {
|
|
@@ -54,18 +62,6 @@ export class CorasStarRating extends LitElement {
|
|
|
54
62
|
role="img"
|
|
55
63
|
aria-label="${this.normalizedRating} out of 5 stars"
|
|
56
64
|
>
|
|
57
|
-
<svg width="0" height="0" style="position: absolute;">
|
|
58
|
-
<defs>
|
|
59
|
-
<linearGradient id="half-gradient">
|
|
60
|
-
<stop offset="50%" stop-color="var(--star-rating-color)" />
|
|
61
|
-
<stop
|
|
62
|
-
offset="50%"
|
|
63
|
-
stop-color="var(--star-rating-background-color)"
|
|
64
|
-
/>
|
|
65
|
-
</linearGradient>
|
|
66
|
-
</defs>
|
|
67
|
-
</svg>
|
|
68
|
-
|
|
69
65
|
${map(range(5), (i) => this.renderStar(i))}
|
|
70
66
|
<span class="sr-only">${this.normalizedRating} out of 5 stars</span>
|
|
71
67
|
</div>
|
|
@@ -7,7 +7,14 @@ export default css `
|
|
|
7
7
|
display: inline-flex;
|
|
8
8
|
align-items: center;
|
|
9
9
|
--star-rating-color: var(--coras-color-primary);
|
|
10
|
-
|
|
10
|
+
/* The unearned part of the track is the rating colour faded rather than a
|
|
11
|
+
flat grey, so it reads as the same mark and composites correctly over a
|
|
12
|
+
light or a dark surface. It follows an overridden star colour too. */
|
|
13
|
+
--star-rating-background-color: color-mix(
|
|
14
|
+
in srgb,
|
|
15
|
+
var(--star-rating-color) 25%,
|
|
16
|
+
transparent
|
|
17
|
+
);
|
|
11
18
|
--star-size: 1.125rem;
|
|
12
19
|
--star-gap: 0.125rem;
|
|
13
20
|
}
|
|
@@ -19,20 +26,39 @@ export default css `
|
|
|
19
26
|
}
|
|
20
27
|
|
|
21
28
|
.star {
|
|
29
|
+
position: relative;
|
|
30
|
+
display: block;
|
|
22
31
|
width: var(--star-size);
|
|
23
32
|
height: var(--star-size);
|
|
24
33
|
}
|
|
25
34
|
|
|
26
|
-
.star
|
|
35
|
+
.star svg {
|
|
36
|
+
display: block;
|
|
37
|
+
width: var(--star-size);
|
|
38
|
+
height: var(--star-size);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.star-base {
|
|
42
|
+
fill: var(--star-rating-background-color);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/* A paint-server reference such as url(#gradient) does not resolve from a
|
|
46
|
+
stylesheet inside a shadow root, so the coloured part of a star is a second
|
|
47
|
+
copy clipped by its container rather than a gradient fill. */
|
|
48
|
+
.star-fill {
|
|
49
|
+
position: absolute;
|
|
50
|
+
inset-block: 0;
|
|
51
|
+
inset-inline-start: 0;
|
|
52
|
+
overflow: hidden;
|
|
27
53
|
fill: var(--star-rating-color);
|
|
28
54
|
}
|
|
29
55
|
|
|
30
|
-
.star--
|
|
31
|
-
|
|
56
|
+
.star--full .star-fill {
|
|
57
|
+
width: 100%;
|
|
32
58
|
}
|
|
33
59
|
|
|
34
|
-
.star--
|
|
35
|
-
|
|
60
|
+
.star--half .star-fill {
|
|
61
|
+
width: 50%;
|
|
36
62
|
}
|
|
37
63
|
|
|
38
64
|
.sr-only {
|
|
@@ -14,7 +14,7 @@ export default css `
|
|
|
14
14
|
--tab-font-size: var(--coras-font-size-base);
|
|
15
15
|
--tab-font-weight: var(--coras-font-weight-medium);
|
|
16
16
|
--tab-shadow: var(--coras-shadow-sm);
|
|
17
|
-
--tab-border-bottom-color: var(--coras-color-secondary
|
|
17
|
+
--tab-border-bottom-color: var(--coras-color-secondary);
|
|
18
18
|
--tab-chip-selected-background-color: var(--coras-color-primary);
|
|
19
19
|
--tab-chip-font-size: var(--coras-font-size-base);
|
|
20
20
|
--tab-chip-line-height: var(--coras-font-size-base);
|
|
@@ -14,13 +14,13 @@ export default css `
|
|
|
14
14
|
--tag-font-weight: var(--coras-font-weight-semibold);
|
|
15
15
|
|
|
16
16
|
--tag-color-blue: var(--coras-color-text);
|
|
17
|
-
--tag-background-color-blue: var(--coras-color-primary-
|
|
18
|
-
--tag-color-green: var(--coras-color-success
|
|
19
|
-
--tag-background-color-green: var(--coras-color-success-
|
|
20
|
-
--tag-color-red: var(--coras-color-error
|
|
21
|
-
--tag-background-color-red: var(--coras-color-error-
|
|
22
|
-
--tag-color-purple: var(--coras-color-info
|
|
23
|
-
--tag-background-color-purple: var(--coras-color-info-
|
|
17
|
+
--tag-background-color-blue: var(--coras-color-primary-tint);
|
|
18
|
+
--tag-color-green: var(--coras-color-success);
|
|
19
|
+
--tag-background-color-green: var(--coras-color-success-background);
|
|
20
|
+
--tag-color-red: var(--coras-color-error);
|
|
21
|
+
--tag-background-color-red: var(--coras-color-error-background);
|
|
22
|
+
--tag-color-purple: var(--coras-color-info);
|
|
23
|
+
--tag-background-color-purple: var(--coras-color-info-background);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
span {
|
|
@@ -9,6 +9,7 @@ export default css `
|
|
|
9
9
|
|
|
10
10
|
.label {
|
|
11
11
|
color: var(--coras-color-text);
|
|
12
|
+
font-family: var(--coras-font-family-heading);
|
|
12
13
|
font-weight: var(--coras-font-weight-semibold);
|
|
13
14
|
font-size: 22px;
|
|
14
15
|
line-height: 30px;
|
|
@@ -82,7 +83,7 @@ export default css `
|
|
|
82
83
|
}
|
|
83
84
|
|
|
84
85
|
::slotted(a) {
|
|
85
|
-
color: var(--coras-color-
|
|
86
|
+
color: var(--coras-color-link);
|
|
86
87
|
text-decoration: underline;
|
|
87
88
|
font-size: inherit;
|
|
88
89
|
}
|
|
@@ -6,7 +6,6 @@ export default css `
|
|
|
6
6
|
:host {
|
|
7
7
|
display: flex;
|
|
8
8
|
|
|
9
|
-
/* Tags keep a fixed pill shape, exempt from the brand radius. */
|
|
10
9
|
--time-tag-border-radius: var(--coras-radius-full);
|
|
11
10
|
--time-tag-font-size: var(--coras-font-size-xs);
|
|
12
11
|
--time-tag-font-weight: var(--coras-font-weight-semibold);
|
|
@@ -14,7 +13,7 @@ export default css `
|
|
|
14
13
|
|
|
15
14
|
--time-tag-line-height: 16px;
|
|
16
15
|
--time-tag-letter-spacing: 0.01em;
|
|
17
|
-
--time-tag-background-color: var(--coras-color-info-
|
|
16
|
+
--time-tag-background-color: var(--coras-color-info-background);
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
svg {
|
|
@@ -4,9 +4,9 @@ export default css `
|
|
|
4
4
|
${component}
|
|
5
5
|
|
|
6
6
|
:host {
|
|
7
|
-
--tooltip-background-color: var(--coras-color-
|
|
8
|
-
--tooltip-arrow-icon-color: var(--coras-color-primary
|
|
9
|
-
--tooltip-border-color: var(--coras-color-
|
|
7
|
+
--tooltip-background-color: var(--coras-color-card);
|
|
8
|
+
--tooltip-arrow-icon-color: var(--coras-color-primary);
|
|
9
|
+
--tooltip-border-color: var(--coras-color-card-border);
|
|
10
10
|
--tooltip-border-radius: var(--coras-radius-sm);
|
|
11
11
|
--tooltip-content-shadow: var(--coras-shadow-md);
|
|
12
12
|
--tooltip-font-size: var(--coras-font-size-sm);
|
package/dist/components/tour-ticket-type-selector/tour-ticket-type/tour-ticket-type.styles.js
CHANGED
|
@@ -17,8 +17,8 @@ export default css `
|
|
|
17
17
|
--coras-font-weight-semibold
|
|
18
18
|
);
|
|
19
19
|
--tour-ticket-type-counter-value-line-height: var(--coras-font-size-2xl);
|
|
20
|
-
--tour-ticket-type-hover-background-color: var(--coras-color-
|
|
21
|
-
--tour-ticket-type-disabled-color: var(--coras-color-
|
|
20
|
+
--tour-ticket-type-hover-background-color: var(--coras-color-card-hover);
|
|
21
|
+
--tour-ticket-type-disabled-color: var(--coras-color-text-disabled);
|
|
22
22
|
|
|
23
23
|
display: flex;
|
|
24
24
|
flex-direction: row;
|
|
@@ -9,9 +9,7 @@ export default css `
|
|
|
9
9
|
);
|
|
10
10
|
--tour-ticket-type-selector-options-border-radius: var(--coras-radius-sm);
|
|
11
11
|
--tour-ticket-type-selector-options-box-shadow: var(--coras-shadow-md);
|
|
12
|
-
--tour-ticket-type-selector-open-arrow-color: var(
|
|
13
|
-
--coras-color-primary-500
|
|
14
|
-
);
|
|
12
|
+
--tour-ticket-type-selector-open-arrow-color: var(--coras-color-primary);
|
|
15
13
|
|
|
16
14
|
display: inline-flex;
|
|
17
15
|
max-width: 100%;
|
|
@@ -19,12 +17,6 @@ export default css `
|
|
|
19
17
|
coras-dropdown {
|
|
20
18
|
width: 100%;
|
|
21
19
|
}
|
|
22
|
-
|
|
23
|
-
/* The trigger reads as a prominent text field, so it keeps a fixed field
|
|
24
|
-
radius (like the payment fields) rather than tracking the brand radius. */
|
|
25
|
-
coras-button {
|
|
26
|
-
--button-border-radius-small: var(--coras-radius-field);
|
|
27
|
-
}
|
|
28
20
|
}
|
|
29
21
|
|
|
30
22
|
:host #arrow {
|
|
@@ -154,6 +154,7 @@ let CorasTransferModal = class CorasTransferModal extends LitElement {
|
|
|
154
154
|
return msg("Verify your payment");
|
|
155
155
|
}
|
|
156
156
|
renderMfaContent() {
|
|
157
|
+
const phone = html `<strong>${this.maskedPhone}</strong>`;
|
|
157
158
|
return html `
|
|
158
159
|
<div class="mfa-state">
|
|
159
160
|
<div class="payment-summary">
|
|
@@ -171,9 +172,8 @@ let CorasTransferModal = class CorasTransferModal extends LitElement {
|
|
|
171
172
|
|
|
172
173
|
<p class="mfa-instruction">
|
|
173
174
|
${this.maskedPhone
|
|
174
|
-
? msg(html `A verification code has been sent to
|
|
175
|
-
|
|
176
|
-
below to confirm your payment.`)
|
|
175
|
+
? msg(html `A verification code has been sent to ${phone}. Enter the
|
|
176
|
+
6-digit code below to confirm your payment.`)
|
|
177
177
|
: msg("A verification code has been sent to your registered phone number. Enter the 6-digit code below to confirm your payment.")}
|
|
178
178
|
</p>
|
|
179
179
|
|
|
@@ -17,7 +17,7 @@ export default css `
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
.error-message {
|
|
20
|
-
background: var(--coras-color-error-
|
|
20
|
+
background: var(--coras-color-error-background, #fef2f2);
|
|
21
21
|
color: var(--coras-color-error, #dc2626);
|
|
22
22
|
padding: 0.75rem 1rem;
|
|
23
23
|
border-radius: var(--coras-radius-md, 8px);
|
|
@@ -33,7 +33,7 @@ export default css `
|
|
|
33
33
|
.loading-spinner {
|
|
34
34
|
width: 40px;
|
|
35
35
|
height: 40px;
|
|
36
|
-
border: 3px solid var(--coras-color-border, #e0e0e0);
|
|
36
|
+
border: 3px solid var(--coras-color-card-border, #e0e0e0);
|
|
37
37
|
border-top-color: var(--coras-color-primary, #0052ff);
|
|
38
38
|
border-radius: 50%;
|
|
39
39
|
animation: spin 1s linear infinite;
|
|
@@ -47,17 +47,15 @@ export default css `
|
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
.loading-text {
|
|
50
|
-
color: var(--coras-color-text-
|
|
50
|
+
color: var(--coras-color-text-muted, #666666);
|
|
51
51
|
font-size: 0.875rem;
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
/* MFA Verification State */
|
|
55
54
|
.mfa-state {
|
|
56
55
|
text-align: center;
|
|
57
56
|
padding: 0.5rem 0;
|
|
58
57
|
}
|
|
59
58
|
|
|
60
|
-
/* Payment summary block */
|
|
61
59
|
.payment-summary {
|
|
62
60
|
margin-bottom: 1rem;
|
|
63
61
|
}
|
|
@@ -79,7 +77,7 @@ export default css `
|
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
.mfa-instruction {
|
|
82
|
-
color: var(--coras-color-text-
|
|
80
|
+
color: var(--coras-color-text-muted, #666666);
|
|
83
81
|
font-size: 0.875rem;
|
|
84
82
|
line-height: 1.5;
|
|
85
83
|
margin-bottom: 1.5rem;
|
|
@@ -102,7 +100,7 @@ export default css `
|
|
|
102
100
|
|
|
103
101
|
.mfa-disclaimer {
|
|
104
102
|
font-size: 0.75rem;
|
|
105
|
-
color: var(--coras-color-text-
|
|
103
|
+
color: var(--coras-color-text-muted, #666666);
|
|
106
104
|
line-height: 1.4;
|
|
107
105
|
margin-top: 1rem;
|
|
108
106
|
margin-bottom: 0;
|
|
@@ -131,7 +129,7 @@ export default css `
|
|
|
131
129
|
}
|
|
132
130
|
|
|
133
131
|
.resend-link:hover {
|
|
134
|
-
color: var(--coras-color-
|
|
132
|
+
color: var(--coras-color-main-button-hover, #0040cc);
|
|
135
133
|
}
|
|
136
134
|
|
|
137
135
|
.resend-link:disabled {
|
|
@@ -19,7 +19,7 @@ export declare class CorasBasket extends LitElement {
|
|
|
19
19
|
private handleRemoveItem;
|
|
20
20
|
private renderCheckoutButton;
|
|
21
21
|
private renderTickets;
|
|
22
|
-
private
|
|
22
|
+
private getSeatDetails;
|
|
23
23
|
private renderBasketItems;
|
|
24
24
|
render(): import("lit").TemplateResult<1>;
|
|
25
25
|
}
|
|
@@ -17,7 +17,7 @@ import "../../contexts/basket/basket.js";
|
|
|
17
17
|
import { basketContext } from "../../contexts/basket/basket.context.js";
|
|
18
18
|
import { property } from "lit/decorators.js";
|
|
19
19
|
import { currencyContext, localeContext, assetsURLContext, } from "../../contexts/properties.context.js";
|
|
20
|
-
import { localized, msg } from "@lit/localize";
|
|
20
|
+
import { localized, msg, str } from "@lit/localize";
|
|
21
21
|
import { convertToLocaleCurrency } from "../../core/currency/index.js";
|
|
22
22
|
import { formatDateTimeForDisplay, formatTimeForDisplay, } from "../../core/utils/datetime.js";
|
|
23
23
|
let CorasBasket = class CorasBasket extends LitElement {
|
|
@@ -102,7 +102,12 @@ let CorasBasket = class CorasBasket extends LitElement {
|
|
|
102
102
|
${Array.from(ticketGroups.values()).map((group) => {
|
|
103
103
|
const ticket = group.ticket;
|
|
104
104
|
const ticketCount = group.count;
|
|
105
|
-
|
|
105
|
+
// Label by price type ("Adult", "Infant", …) - that's what the
|
|
106
|
+
// breakdown shows. `name` is a mostly-empty generic label that falls
|
|
107
|
+
// back to "Ticket".
|
|
108
|
+
const ticketName = ("price_type" in ticket && ticket.price_type) ||
|
|
109
|
+
ticket.name ||
|
|
110
|
+
msg("Ticket");
|
|
106
111
|
let ticketPrice = "";
|
|
107
112
|
if (ticket.full_price !== undefined) {
|
|
108
113
|
ticketPrice = this.getFormattedPrice(ticket.full_price);
|
|
@@ -122,22 +127,45 @@ let CorasBasket = class CorasBasket extends LitElement {
|
|
|
122
127
|
})}
|
|
123
128
|
`;
|
|
124
129
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
130
|
+
// Collapses a reservation's per-ticket seat data into a section line and a
|
|
131
|
+
// seat line ("Row 9, Seats 11, 12", or bare labels like "F5, F6" when the API
|
|
132
|
+
// gives seat names without a separate row/number). General-admission tickets
|
|
133
|
+
// carry no seat fields, so both come back empty and the seat row is dropped.
|
|
134
|
+
getSeatDetails(reservation) {
|
|
135
|
+
const tickets = reservation.tickets;
|
|
136
|
+
if (!tickets || tickets.length === 0) {
|
|
137
|
+
return { section: "", seats: "" };
|
|
138
|
+
}
|
|
139
|
+
const sections = new Set();
|
|
140
|
+
const seatsByRow = new Map();
|
|
141
|
+
const looseSeats = [];
|
|
142
|
+
for (const ticket of tickets) {
|
|
143
|
+
const section = "section" in ticket ? ticket.section : undefined;
|
|
144
|
+
const rowName = "row_name" in ticket ? ticket.row_name : undefined;
|
|
145
|
+
const seatNumber = "seat_number" in ticket ? ticket.seat_number : undefined;
|
|
146
|
+
const seatName = "seat_name" in ticket ? ticket.seat_name : undefined;
|
|
147
|
+
if (section) {
|
|
148
|
+
sections.add(section);
|
|
149
|
+
}
|
|
150
|
+
const row = rowName?.toString().trim();
|
|
151
|
+
const number = seatNumber?.toString().trim();
|
|
152
|
+
if (row && number) {
|
|
153
|
+
const seats = seatsByRow.get(row) ?? [];
|
|
154
|
+
seats.push(number);
|
|
155
|
+
seatsByRow.set(row, seats);
|
|
156
|
+
}
|
|
157
|
+
else if (seatName) {
|
|
158
|
+
looseSeats.push(seatName);
|
|
138
159
|
}
|
|
139
160
|
}
|
|
140
|
-
|
|
161
|
+
const rowSeats = [...seatsByRow.entries()].map(([row, seats]) => {
|
|
162
|
+
const seatList = seats.join(", ");
|
|
163
|
+
return msg(str `Row ${row}, Seats ${seatList}`);
|
|
164
|
+
});
|
|
165
|
+
return {
|
|
166
|
+
section: [...sections].join(", "),
|
|
167
|
+
seats: [...rowSeats, ...looseSeats].join(" · "),
|
|
168
|
+
};
|
|
141
169
|
}
|
|
142
170
|
renderBasketItems() {
|
|
143
171
|
if (!this.basket?.value?.items || this.basket.value.items.length === 0) {
|
|
@@ -165,7 +193,15 @@ let CorasBasket = class CorasBasket extends LitElement {
|
|
|
165
193
|
const imageUrl = reservation.images
|
|
166
194
|
? Object.values(reservation.images)[0] || ""
|
|
167
195
|
: "";
|
|
168
|
-
const
|
|
196
|
+
const { section, seats } = this.getSeatDetails(reservation);
|
|
197
|
+
const tickets = reservation.tickets ?? [];
|
|
198
|
+
const distinctPriceTypes = new Set(tickets.map((ticket) => ticket.price_type_id).filter(Boolean));
|
|
199
|
+
// Show the per-ticket "ea" price on the item header only when every
|
|
200
|
+
// ticket is the same type, so the average is the true unit price. Mixed
|
|
201
|
+
// types get their own per-type "ea" lines in the breakdown instead.
|
|
202
|
+
const unitPrice = tickets.length > 0 && distinctPriceTypes.size <= 1
|
|
203
|
+
? this.getFormattedPrice(reservation.total_price / reservation.number_of_tickets)
|
|
204
|
+
: "";
|
|
169
205
|
const ticketsHtml = this.renderTickets(reservation.tickets || [], reservation.number_of_tickets, reservation.total_price);
|
|
170
206
|
return html `
|
|
171
207
|
<coras-basket-item
|
|
@@ -177,17 +213,12 @@ let CorasBasket = class CorasBasket extends LitElement {
|
|
|
177
213
|
date="${date}"
|
|
178
214
|
time="${time}"
|
|
179
215
|
quantity="${reservation.number_of_tickets}"
|
|
180
|
-
|
|
216
|
+
section="${section}"
|
|
217
|
+
seats="${seats}"
|
|
218
|
+
price="${unitPrice}"
|
|
181
219
|
total-price="${this.getFormattedPrice(reservation.total_price)}"
|
|
182
220
|
expires-in="${reservation.expires_in}"
|
|
183
221
|
>
|
|
184
|
-
${seatInfo.length > 0
|
|
185
|
-
? html `
|
|
186
|
-
<div slot="details" class="seat-info">
|
|
187
|
-
${seatInfo.join(" | ")}
|
|
188
|
-
</div>
|
|
189
|
-
`
|
|
190
|
-
: html ``}
|
|
191
222
|
${ticketsHtml}
|
|
192
223
|
<coras-icon
|
|
193
224
|
slot="remove-button"
|
|
@@ -6,8 +6,11 @@ export default css `
|
|
|
6
6
|
:host {
|
|
7
7
|
--footer-background: var(--coras-footer-background-color);
|
|
8
8
|
--footer-text-color: var(--coras-footer-text-color);
|
|
9
|
+
--footer-border-top: var(--coras-footer-border-top);
|
|
10
|
+
--footer-padding-bottom: var(--coras-footer-padding-bottom);
|
|
9
11
|
|
|
10
12
|
background-color: var(--footer-background);
|
|
13
|
+
border-top: var(--footer-border-top);
|
|
11
14
|
|
|
12
15
|
width: 100%;
|
|
13
16
|
pointer-events: none;
|
|
@@ -19,6 +22,7 @@ export default css `
|
|
|
19
22
|
margin: 0 auto;
|
|
20
23
|
width: 100%;
|
|
21
24
|
padding: var(--coras-footer-padding);
|
|
25
|
+
padding-bottom: var(--footer-padding-bottom);
|
|
22
26
|
pointer-events: auto;
|
|
23
27
|
|
|
24
28
|
coras-footer-menu-item {
|