@coras-io/embed 0.2.0 → 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 +127 -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 +2 -0
- package/dist/components/seated-selector/seated-selector.component.js +53 -10
- package/dist/components/seated-selector/seated-selector.styles.js +77 -14
- package/dist/components/seats-io/seats-io.component.d.ts +2 -0
- package/dist/components/seats-io/seats-io.component.js +25 -2
- package/dist/components/seats-io/seats-io.constants.d.ts +2 -1
- package/dist/components/seats-io/seats-io.constants.js +6 -1
- 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 -10
- 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 +72 -79
- package/dist/views/details-page/details-page.styles.js +64 -9
- 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 -37397
- package/dist/sdk/meta.d.ts +0 -7
- package/dist/sdk/meta.js +0 -9
- package/dist/styles/tokens.css +0 -359
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
// Do not modify this file by hand!
|
|
2
|
+
// Re-generate this file by running lit-localize
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import { str } from '@lit/localize';
|
|
5
|
+
/* eslint-disable no-irregular-whitespace */
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7
|
+
export const templates = {
|
|
8
|
+
'h0453a9c8ddf1e74c': html `如果您在訂單方面需要協助,請造訪我們的幫助中心。`,
|
|
9
|
+
'h0f22760eabebc0d2': html `基於${0}評論`,
|
|
10
|
+
'h41ee003df7011ba3': html `重新傳送程式碼(${0}s)`,
|
|
11
|
+
'h4653b4623e11cce8': html `重新發送(${0}s)`,
|
|
12
|
+
'h62aa06b7d898393a': html `${0} 活動`,
|
|
13
|
+
'h95c0ee9db9bc7a2e': html `我們已將您的訂單確認訊息發送至${0}`,
|
|
14
|
+
'hd48f85821228fb37': html `請查看${0}以取得您的6位驗證碼`,
|
|
15
|
+
's003d3f04ab3c63af': `出於安全原因,運營商要求這樣做`,
|
|
16
|
+
's01769b46d7a9bcbe': `請選擇導遊語言`,
|
|
17
|
+
's01ca6f3c6dcac61b': `請選擇相鄰的座位。`,
|
|
18
|
+
's0230dfb6b6c1e011': `您的信用卡被拒絕了。`,
|
|
19
|
+
's02cbd3b6873bf3cc': `我們已將您的訂單確認訊息發送至`,
|
|
20
|
+
's0379fc73608ab971': `完畢`,
|
|
21
|
+
's0487f33d9ddaabde': `關於`,
|
|
22
|
+
's053945ad43e9d1d6': `請輸入驗證碼`,
|
|
23
|
+
's055e7b1eb0e8152f': `包含哪些內容`,
|
|
24
|
+
's065490f8b6557fa8': `地址第一行`,
|
|
25
|
+
's065493f8b65584c1': `地址行 2`,
|
|
26
|
+
's068d4dd16d9106d0': `圖示`,
|
|
27
|
+
's06963fd6fbd255b6': `下個月`,
|
|
28
|
+
's06e48df1da26857e': `名 + 姓`,
|
|
29
|
+
's072873fcb8392b95': `僅供參考`,
|
|
30
|
+
's07c32b16a0cc7f41': `我確認已閱讀並接受FIDA的條款和條件。`,
|
|
31
|
+
's0832cb53a9099084': `瀏覽活動`,
|
|
32
|
+
's088e2b07b5393093': `ea`,
|
|
33
|
+
's0a88a6ae24e8ac10': `請輸入您的電子郵件地址`,
|
|
34
|
+
's0d642c7eac029f8c': `輸入活動名稱`,
|
|
35
|
+
's0ec46bff04cae43d': `門票`,
|
|
36
|
+
's0f670499517f14df': `俱樂部出於安全原因要求這樣做`,
|
|
37
|
+
's0fb0fc272e807ad1': `您的卡片安全碼不完整。`,
|
|
38
|
+
's11602ea206accf6e': `座位圖`,
|
|
39
|
+
's11cc9ffa7ddc8e94': `您的購物車是空的!`,
|
|
40
|
+
's13a66c3ef0b5bf5f': `整體評分`,
|
|
41
|
+
's14cc42e0b8fe4c84': `活動或景點名稱`,
|
|
42
|
+
's15194cf12eb014cd': `運動`,
|
|
43
|
+
's1726f691155bad09': `劇院門票`,
|
|
44
|
+
's195e67d70525b331': `請注意`,
|
|
45
|
+
's1a3c32dd624ff8fd': `您的卡號不完整。`,
|
|
46
|
+
's1d1d5f97e6c7c7bd': str `允許的最大字元數 ${0}`,
|
|
47
|
+
's1edc4e64bd3d07fa': str `預訂費用 ${0}`,
|
|
48
|
+
's1f496958555429be': `飯店接送(內含)`,
|
|
49
|
+
's1f7703cffaf7880b': `打開幫助中心`,
|
|
50
|
+
's207d7cbee7214197': `重新發送程式碼`,
|
|
51
|
+
's208665855189c10c': `體育門票`,
|
|
52
|
+
's214bac601e6d7da8': `每個`,
|
|
53
|
+
's2220ac9a490a6aad': `您此次FIDA餘額不足,無法以FIDA支付。`,
|
|
54
|
+
's22771f6bba73d648': `您的卡片已過有效期限。`,
|
|
55
|
+
's2468b69d10791c82': `城市`,
|
|
56
|
+
's24836d5e8de2ef53': `籃子`,
|
|
57
|
+
's255857544a9d5ec0': `重置`,
|
|
58
|
+
's261f88c673a6b512': `選擇取貨地點`,
|
|
59
|
+
's289520a696583a56': `沒有結果。`,
|
|
60
|
+
's28b1ee8b52306d04': `抱歉,本次活動的門票已售罄。`,
|
|
61
|
+
's291aac5ed9761710': `照片`,
|
|
62
|
+
's2a0431e62980ccb6': `這些已添加到您的帳戶中,可用於在 FIDA 商店進行未來的購物。`,
|
|
63
|
+
's2af92d203c6533c4': `我們會盡快回覆您提供的信箱地址。請確認此處發送的訊息。`,
|
|
64
|
+
's2b62420bebf9e6e4': str `最少需要的字元數 ${0}`,
|
|
65
|
+
's2d1d27aa9a7ab857': `飯店接送`,
|
|
66
|
+
's2d6ceb2ed95d2aec': `您的卡片安全碼無效。`,
|
|
67
|
+
's302b8b3db5e19407': `如果您在我們的資訊欄中找不到所需內容,請告訴我們如何為您提供協助。`,
|
|
68
|
+
's30953bd831efad6c': `登入失敗,請重試。`,
|
|
69
|
+
's318aefcc44f6fbdc': `請刷新頁面後重試。`,
|
|
70
|
+
's31b54217aedd072d': `請選擇演出時間`,
|
|
71
|
+
's32b30574fbef4a04': `護照號碼`,
|
|
72
|
+
's344c7633610bf8b0': `回到頂部`,
|
|
73
|
+
's355b21b89ce5d9c5': `細節`,
|
|
74
|
+
's3606b9d856cdbafe': `排序方式`,
|
|
75
|
+
's376766fd26cf3bd3': `最近瀏覽`,
|
|
76
|
+
's38887b94b3320533': `電子郵件`,
|
|
77
|
+
's38b7890d18383c99': `當您將門票添加到購物車時,它們將顯示在這裡。`,
|
|
78
|
+
's38bf5b02316633fe': str `探索 ${0}`,
|
|
79
|
+
's38eb6b65959cd214': `帳單地址`,
|
|
80
|
+
's393fa33e92e1b35c': `傳送代碼`,
|
|
81
|
+
's3b8a6245b12fa2ad': `麵包屑`,
|
|
82
|
+
's3b9cb6516f644f10': `謝謝,我們已收到您的查詢。`,
|
|
83
|
+
's3bd9192a47014fac': `我們將透過電子郵件向您發送訂單確認資訊至此地址`,
|
|
84
|
+
's3d0bb0448ae28706': `郵遞區號`,
|
|
85
|
+
's3d1d2fdc677de804': `輸入或選擇國家/地區`,
|
|
86
|
+
's3d52d1be2d6d171d': `您的卡片的有效期限已失效。`,
|
|
87
|
+
's3dc9fd50cee69d30': `請輸入有效日期`,
|
|
88
|
+
's3e7884bf4f412c6f': `專案`,
|
|
89
|
+
's40d76f1f51639ec0': `人`,
|
|
90
|
+
's42211e5b076304b9': `不包含哪些內容`,
|
|
91
|
+
's42c3f76163444278': `繼續購物`,
|
|
92
|
+
's42cbc1ed3d490ba8': str `成人起價${0}`,
|
|
93
|
+
's4356163009e59310': `您的卡到期月份無效。`,
|
|
94
|
+
's43f528d2fff00362': str `預訂費(每張票${0})`,
|
|
95
|
+
's4543ff29118e088d': `確認中…`,
|
|
96
|
+
's463b8c4e92751ba5': `選項`,
|
|
97
|
+
's4715435f75327cc1': `請選擇票數。`,
|
|
98
|
+
's4840b56c1ccf7c87': `賺`,
|
|
99
|
+
's48cecdf70134bbb2': `活動詳情`,
|
|
100
|
+
's48e186fb300e5464': `時間`,
|
|
101
|
+
's4a0aa9b114d56102': `我們已向您註冊的手機號碼發送驗證碼。請輸入下方6位驗證碼以確認您的付款。`,
|
|
102
|
+
's4a0ed56eb391ce22': `門票`,
|
|
103
|
+
's4a6cd7e038947472': str `${0} 門票:${1} (${2} 每張)`,
|
|
104
|
+
's4acf0b8071b38761': `發送查詢 `,
|
|
105
|
+
's4c4e33c8c5ffe216': `上個月`,
|
|
106
|
+
's517acbf1f96324f9': `重量`,
|
|
107
|
+
's52f99caec1114ea3': str `請等待 ${0} 秒後再重新發送。`,
|
|
108
|
+
's539cc7126a88f5a8': `發生錯誤,請重試。`,
|
|
109
|
+
's56d9d499ce21aa71': `音樂門票`,
|
|
110
|
+
's589ade03e24b3dec': `劇院`,
|
|
111
|
+
's5921af1f9988e939': `搜尋事件`,
|
|
112
|
+
's5b0cdec697634a43': `您的卡片安全碼不完整。`,
|
|
113
|
+
's5baecf6a8b5e582f': `選擇您的貨幣`,
|
|
114
|
+
's5bd685b647375404': `正在確認您的付款…`,
|
|
115
|
+
's5c843d9e674e1c41': str `${0} ${1} 的票`,
|
|
116
|
+
's5cf68140409e6208': `謝謝,您的預訂已確認!`,
|
|
117
|
+
's5d86c9720b06c065': `預留的門票`,
|
|
118
|
+
's5e27738a2e8eb763': `登入`,
|
|
119
|
+
's5e8250fb85d64c23': `關閉`,
|
|
120
|
+
's5f0835c3498593e7': `付款方式`,
|
|
121
|
+
's5f343a43e7ea9f91': `錯誤`,
|
|
122
|
+
's613ca1dae8c9c2f2': `請嘗試其他日期或票數。`,
|
|
123
|
+
's62c8714f22e8581e': `我們將向此位址發送驗證碼`,
|
|
124
|
+
's632b0d6f5b8f60b5': `幫助中心`,
|
|
125
|
+
's63a8d5c967692fd8': str `預訂 ${0} 的熱門活動`,
|
|
126
|
+
's6434ccb2ab38de1e': `前往FIDA帳戶(在新分頁中開啟)`,
|
|
127
|
+
's64c725e7c35bfc44': `圖片載入失敗`,
|
|
128
|
+
's65d8b64cc2edc07f': `發生錯誤。`,
|
|
129
|
+
's66241ced41f02eaa': `座位圖僅供參考`,
|
|
130
|
+
's6765e69c04d66039': `驗證碼無效或已過期,請重試。`,
|
|
131
|
+
's67b559eeb2136588': `正在加載座位圖…`,
|
|
132
|
+
's68323a30f0d5bdfa': `護照到期日`,
|
|
133
|
+
's698589c71ed3203f': `只允許使用字母和數字。`,
|
|
134
|
+
's6992d6150e46d6fc': `將門票加入購物車結算。`,
|
|
135
|
+
's6bc8b1530d693ee9': `出發點`,
|
|
136
|
+
's6c76b294d740446c': `活動`,
|
|
137
|
+
's6d84c67f663fb24d': `嘗試次數過多,請稍後再試。`,
|
|
138
|
+
's6e8059179423bfa0': `姓`,
|
|
139
|
+
's6f932154a669cc49': `請輸入您的電話號碼`,
|
|
140
|
+
's709af33057592dd8': `您的銀行卡安全碼錯誤。`,
|
|
141
|
+
's70ab5bb776df5e7c': `請輸入您的電子郵件地址`,
|
|
142
|
+
's732385cbc938b7a1': `所有日期`,
|
|
143
|
+
's732d031b2be46181': `請輸入有效的電話號碼`,
|
|
144
|
+
's7571bffb300cd56a': `訂單參考編號`,
|
|
145
|
+
's7572f8d1e64214a9': `這是必填字段`,
|
|
146
|
+
's76e508e5ee58da2d': `您的卡片的有效期限資訊不完整。`,
|
|
147
|
+
's771897106728d3f6': `處理卡片時發生錯誤。`,
|
|
148
|
+
's77dde5ef6c52def6': `貨幣`,
|
|
149
|
+
's791ef75ce61f73be': `受歡迎的`,
|
|
150
|
+
's7aa03410a4afcc96': `選擇您的語言`,
|
|
151
|
+
's7ac23a5b8153fad5': `幫助中心`,
|
|
152
|
+
's7f3437809d931336': `評論`,
|
|
153
|
+
's8195430312d62be0': `您的卡片未被扣款。如果您想重試,請點擊按鈕返回同一活動頁面。`,
|
|
154
|
+
's8315ddc4161a498b': `如果問題仍然存在,請聯絡我們`,
|
|
155
|
+
's84a7ee7d2559f1e1': `我需要幫助…`,
|
|
156
|
+
's8654133f4227b6dc': `精彩片段`,
|
|
157
|
+
's86d7da761b5e390d': `我已閱讀並同意條款和條件。`,
|
|
158
|
+
's86e180b4d89f9bbe': `更改電話號碼`,
|
|
159
|
+
's871b1fe6d1846958': `電話號碼`,
|
|
160
|
+
's87bae2710b2492c3': `接觸`,
|
|
161
|
+
's8bcbc2856e771f09': `請從選項中選擇`,
|
|
162
|
+
's8cda828dac449ea5': `全部清除`,
|
|
163
|
+
's8dd38519f42fc289': `支付`,
|
|
164
|
+
's8f683174898a4afa': `瀏覽其他活動`,
|
|
165
|
+
's8f94436e63f36047': `立即付款`,
|
|
166
|
+
's90e83b2c18f39409': `您的卡片已過期。`,
|
|
167
|
+
's9145aa93cf917ae4': `請輸入有效的電子郵件地址`,
|
|
168
|
+
's9181c89c4a58402a': `您的銀行卡郵遞區號驗證失敗。`,
|
|
169
|
+
's92921878e886e36d': `期間`,
|
|
170
|
+
's93c046d8c5bb2047': `出生日期`,
|
|
171
|
+
's953fc82dcd20c9f8': `謝謝,您的預訂已確認! `,
|
|
172
|
+
's970136aeacc82f0c': `查看所有活動`,
|
|
173
|
+
's978836a21387aa75': `立即結帳`,
|
|
174
|
+
's99a14b1e12386fa1': str `${0} ${1} 的票`,
|
|
175
|
+
's9ab68896f4be9e65': `立即支付`,
|
|
176
|
+
's9ca2c3aecc846712': `以FIDA支付`,
|
|
177
|
+
's9ca372a6096ddd54': `音樂`,
|
|
178
|
+
's9f0f97043cfaffb1': `請核實您的付款`,
|
|
179
|
+
's9fe1c455c8e043b2': `未能啟動多因素身份驗證註冊`,
|
|
180
|
+
'sa13dd70348dac081': `前往FIDA帳戶`,
|
|
181
|
+
'sa40ddac6755d18e2': `顯示所有結果`,
|
|
182
|
+
'sa4425361d4b8e155': str `如果您使用 ${0} 付款,您將獲得 FIDA 積分。`,
|
|
183
|
+
'sa61534a5c0c71f5e': `消除`,
|
|
184
|
+
'sa6ab5184d6315895': `從`,
|
|
185
|
+
'sa7d09574ece17145': `請告訴我們如何才能幫助您。`,
|
|
186
|
+
'sa8535600e6997bcf': `您的卡號不是有效的信用卡號。`,
|
|
187
|
+
'sa8beb6b1182241ac': `過濾器`,
|
|
188
|
+
'sa8e8cc2558962d51': `可以做的事情`,
|
|
189
|
+
'saaf58da3a384352a': str `我們有 ${0} 個可用選項`,
|
|
190
|
+
'sab459038e3c6bcb8': `名`,
|
|
191
|
+
'sac33f8b1ee0a8a70': str `${0} 已選擇座位`,
|
|
192
|
+
'sad4a0401aafaab57': `位置影像`,
|
|
193
|
+
'sb05eb16313ad5810': `錯誤!`,
|
|
194
|
+
'sb074169ce94feeb0': `FIDA餘額不足`,
|
|
195
|
+
'sb182f52b56175d8c': `未找到任何國家/地區`,
|
|
196
|
+
'sb26e53053d747113': `門票及旅遊`,
|
|
197
|
+
'sb3d4f79d9d8b71e5': `提交`,
|
|
198
|
+
'sb3dbeaf294fd9bdd': `支付金額`,
|
|
199
|
+
'sb46123a97302f3ae': `FIDA 總計`,
|
|
200
|
+
'sb47b0b39e28f35a8': `驗證失敗,請重試。`,
|
|
201
|
+
'sb59d68ed12d46377': `載入中`,
|
|
202
|
+
'sb5c2050ca21cdee6': `如果您在訂單方面需要協助,請造訪我們的網站`,
|
|
203
|
+
'sb5fd6f925a5bd3ea': `門票`,
|
|
204
|
+
'sb61dfe1d5012cc35': `你的問題是什麼?`,
|
|
205
|
+
'sb75ee24776b3d425': `票`,
|
|
206
|
+
'sb7600e1426fb67c7': `我確認已閱讀並接受 Coras 的條款和條件`,
|
|
207
|
+
'sb84d72388b33a3a4': `您的購物車`,
|
|
208
|
+
'sb85774dc5d18ff0f': `確認`,
|
|
209
|
+
'sb9bd4f5a3810b77e': `出問題了`,
|
|
210
|
+
'sba5dce52c7f589f2': `驗證碼無效或已過期,請重試。`,
|
|
211
|
+
'sba690fe0b679f723': `沒有找到符合您條件的景點。`,
|
|
212
|
+
'sbb7d883d08cba223': str `選擇您的座位,適用於 ${0}`,
|
|
213
|
+
'sbb9b8e30a21c6548': `請注意,您只能使用 FIDA 付款,前提是您的帳戶中有足夠的 FIDA 餘額。`,
|
|
214
|
+
'sbbb558d4adb8c7c4': `新增您的手機號碼以保護您的FIDA付款安全。我們將發送一次性驗證碼進行驗證。`,
|
|
215
|
+
'sbc57430ab412e891': str `${0} FIDA 代幣`,
|
|
216
|
+
'sbd34c25455a075a8': str `顯示與「${0}」相關的結果`,
|
|
217
|
+
'sc0a0c87d5c556c38': `電話號碼`,
|
|
218
|
+
'sc16e00a7a8b2fde2': `後退`,
|
|
219
|
+
'sc1a94937d6795b91': `謝謝,您的預訂已確認!`,
|
|
220
|
+
'sc2f116c0ea77d58a': `錯誤訊息`,
|
|
221
|
+
'sc34d8c2a3d180a29': `加入購物車`,
|
|
222
|
+
'sc354c34c1a7cbcc4': `餅乾`,
|
|
223
|
+
'sc377239766b138ef': `我同意接收來自FIDA的電子郵件。`,
|
|
224
|
+
'sc84bf2d183cd320b': str `行 ${0},座位 ${1}`,
|
|
225
|
+
'sc9f3dcec92273865': `請稍候,交易正在處理中。`,
|
|
226
|
+
'sca6f02fbd9e373b4': `加入購物車`,
|
|
227
|
+
'scbaa2a2ceb044c0a': `選擇您的座位`,
|
|
228
|
+
'scc1db59d292cbc4c': `部分`,
|
|
229
|
+
'scd0b9d7c6f9c597d': `您的代碼將在 5 分鐘後過期。`,
|
|
230
|
+
'scd1ca177bf7ddf98': `被收費的顧客並沒有綁定銀行卡。`,
|
|
231
|
+
'scd1dd6ff53d0d01a': `再試一次`,
|
|
232
|
+
'scd525a733e4c9110': `您的FIDA餘額為`,
|
|
233
|
+
'sce2300ea82130155': `賺取收入`,
|
|
234
|
+
'scf61ccc6056c17d2': `您的卡號錯誤。`,
|
|
235
|
+
'sd002a6411d593b33': `付款詳情`,
|
|
236
|
+
'sd0827f83a77da218': `你要去哪裡?`,
|
|
237
|
+
'sd15de0dcd2378a55': `聯絡我們`,
|
|
238
|
+
'sd1797c5a30652800': `總價`,
|
|
239
|
+
'sd20a2299b31382f0': `FIDA 獎勵(因本次交易)`,
|
|
240
|
+
'sd4d1e43525fd598a': `驗證碼發送失敗,請重試。`,
|
|
241
|
+
'sd574f2d5de170480': `應用篩選器`,
|
|
242
|
+
'sd715e3f32ad86586': `請輸入有效日期,格式為 YYYY-MM-DD`,
|
|
243
|
+
'sd7d17730c0c10ec4': `我們網站上的熱門內容`,
|
|
244
|
+
'sd8fc3dc0c9cc5758': `付款`,
|
|
245
|
+
'sd964b91b1084d970': `景點門票`,
|
|
246
|
+
'sdc2fc49bb9d4b82e': `重新整理頁面`,
|
|
247
|
+
'sdf566eeae04c0483': `請選擇時間`,
|
|
248
|
+
'se046d97f0d9dd903': `輸入名稱或選擇`,
|
|
249
|
+
'se256f991824c9ae0': `旗幟圖示`,
|
|
250
|
+
'se2b298fd65f45cc7': `您的卡片的有效期限資訊不完整。`,
|
|
251
|
+
'se374a10ee87f7f8c': `條款及細則`,
|
|
252
|
+
'se3d2b191408a6254': `確認後,FIDA 代幣將從您的錢包轉出以完成此付款。`,
|
|
253
|
+
'se46604e4550a957d': `回首頁`,
|
|
254
|
+
'se4bfd14e0c3355ac': `總計`,
|
|
255
|
+
'se789bfdae3410a1b': `護照不得過期。`,
|
|
256
|
+
'se78c02e9a98a0f47': `隱私`,
|
|
257
|
+
'se80ccbc8f2174567': `請輸入您的姓名`,
|
|
258
|
+
'se8b912e5bbd4b067': `請勿讓單人座位空置。`,
|
|
259
|
+
'seaacf6e071686155': `護照國籍`,
|
|
260
|
+
'seb5e1ea8f8f5728a': `行程`,
|
|
261
|
+
'sec06d1d43580b496': `查看空房狀況`,
|
|
262
|
+
'sed8ec5e3c64fa25d': `全部的`,
|
|
263
|
+
'see2fcaedf9743ec6': `地點`,
|
|
264
|
+
'seed76e8afe9f604a': `價格`,
|
|
265
|
+
'seeda9b3e208305ff': `與 Coras 合作`,
|
|
266
|
+
'sef49aec68fd1dc66': `姓名`,
|
|
267
|
+
'sefcf950b3cc4fc3b': `語言`,
|
|
268
|
+
'sf07904be22a6165a': `必須提供電子郵件地址`,
|
|
269
|
+
'sf1bc83d2509bafcf': `電話`,
|
|
270
|
+
'sf2671450062ca53d': `您的購物車是空的。`,
|
|
271
|
+
'sf40442de55b19e30': `保護您的帳戶`,
|
|
272
|
+
'sf430ade9e0767d02': `很抱歉,`,
|
|
273
|
+
'sf5036bf805af865e': `座位圖`,
|
|
274
|
+
'sf5f07bb2e5b280b7': `重新發送程式碼`,
|
|
275
|
+
'sf60706e54bda838a': `前往購物車`,
|
|
276
|
+
'sf61433571f3a443b': `正在確認付款…`,
|
|
277
|
+
'sf89196d28dfa8629': `抱歉,您的訂單未成功。`,
|
|
278
|
+
'sfa28319e707cf5d5': `訂單詳情`,
|
|
279
|
+
'sfd25dcb1e3a468be': `搜尋事件`,
|
|
280
|
+
'sffdadf0a576fd802': `高度`,
|
|
281
|
+
'h12f3bd3a64c46efe': html `Good news! You’ve collected ${0} on this
|
|
282
|
+
purchase.`,
|
|
283
|
+
'h82c989f2494613fa': html `A verification code has been sent to ${0}. Enter the
|
|
284
|
+
6-digit code below to confirm your payment.`,
|
|
285
|
+
'hb3090d5e6b53fe7c': html `We'll send a one-time code to your phone number ending in
|
|
286
|
+
${0} to verify it.`,
|
|
287
|
+
'hc94338efbdc293e0': html `Order reference ${0}`,
|
|
288
|
+
};
|
|
@@ -362,7 +362,7 @@ export const CoinbaseMixin = (Base) => {
|
|
|
362
362
|
console.error("Failed to initiate MFA enrollment");
|
|
363
363
|
this.mfaEnrollmentError =
|
|
364
364
|
"Failed to send MFA verification code. Please try again.";
|
|
365
|
-
throw new Error("Failed to send MFA verification code. Please try again.");
|
|
365
|
+
throw new Error("Failed to send MFA verification code. Please try again.", { cause: error });
|
|
366
366
|
}
|
|
367
367
|
}
|
|
368
368
|
/**
|
|
@@ -19,7 +19,7 @@ export default css `
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
.error-modal-icon {
|
|
22
|
-
fill: var(--coras-color-error
|
|
22
|
+
fill: var(--coras-color-error);
|
|
23
23
|
width: 32px;
|
|
24
24
|
height: 32px;
|
|
25
25
|
}
|
|
@@ -67,7 +67,7 @@ export default css `
|
|
|
67
67
|
text-decoration: none;
|
|
68
68
|
|
|
69
69
|
&:focus-visible {
|
|
70
|
-
outline: 2px solid var(--coras-color-primary
|
|
70
|
+
outline: 2px solid var(--coras-color-primary);
|
|
71
71
|
outline-offset: 2px;
|
|
72
72
|
border-radius: 2px;
|
|
73
73
|
}
|
|
@@ -20,7 +20,7 @@ import "../../components/locations-results/locations-results.js";
|
|
|
20
20
|
import "../../components/input-field/input-field.js";
|
|
21
21
|
import { clientContext } from "../../contexts/client.context.js";
|
|
22
22
|
import { apiGet } from "../../core/api/queries.js";
|
|
23
|
-
import {
|
|
23
|
+
import { getApiLanguageCode } from "../../core/utils/locale.js";
|
|
24
24
|
export const LocationSearchMixin = (superClass) => {
|
|
25
25
|
class LocationSearchMixinElement extends superClass {
|
|
26
26
|
constructor() {
|
|
@@ -56,7 +56,7 @@ export const LocationSearchMixin = (superClass) => {
|
|
|
56
56
|
if (!isDropdownOpen && (!query || query.length < 3)) {
|
|
57
57
|
return null;
|
|
58
58
|
}
|
|
59
|
-
const language_code = locale
|
|
59
|
+
const language_code = getApiLanguageCode(locale);
|
|
60
60
|
const searchParams = {
|
|
61
61
|
language_code: language_code,
|
|
62
62
|
};
|
|
@@ -182,7 +182,7 @@ export const LocationSearchMixin = (superClass) => {
|
|
|
182
182
|
if (!this.country && !this.city) {
|
|
183
183
|
return null;
|
|
184
184
|
}
|
|
185
|
-
const languageCode =
|
|
185
|
+
const languageCode = getApiLanguageCode(this.locale);
|
|
186
186
|
const searchParams = {
|
|
187
187
|
language_code: languageCode,
|
|
188
188
|
country: this.country || undefined,
|
|
@@ -16,7 +16,8 @@ export default css `
|
|
|
16
16
|
justify-content: center;
|
|
17
17
|
|
|
18
18
|
div.title {
|
|
19
|
-
color: var(--coras-color-primary
|
|
19
|
+
color: var(--coras-color-primary);
|
|
20
|
+
font-family: var(--coras-font-family-heading);
|
|
20
21
|
font-weight: var(--coras-font-weight-semibold);
|
|
21
22
|
font-size: var(--coras-font-size-2xl);
|
|
22
23
|
line-height: 30px;
|
|
@@ -28,14 +29,14 @@ export default css `
|
|
|
28
29
|
coras-field {
|
|
29
30
|
width: 320px;
|
|
30
31
|
|
|
31
|
-
--field-input-border-color: var(--coras-color-
|
|
32
|
-
--field-input-focused-border-color: var(--coras-color-primary
|
|
32
|
+
--field-input-border-color: var(--coras-color-neutral-300);
|
|
33
|
+
--field-input-focused-border-color: var(--coras-color-primary);
|
|
33
34
|
--field-input-box-shadow: 0 4px 4px
|
|
34
35
|
color-mix(in srgb, black, transparent 96%);
|
|
35
|
-
--field-input-border-radius:
|
|
36
|
+
--field-input-border-radius: var(--coras-radius-search);
|
|
36
37
|
|
|
37
38
|
coras-icon {
|
|
38
|
-
fill: var(--coras-color-primary
|
|
39
|
+
fill: var(--coras-color-primary);
|
|
39
40
|
transform: rotate(0deg);
|
|
40
41
|
transition: transform 0.3s;
|
|
41
42
|
|
package/dist/sdk/chrome.d.ts
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
import type { CorasChrome } from "./types.js";
|
|
2
|
+
/** The logos the managed navbar can draw. Carried as one value so the three
|
|
3
|
+
* same-typed URLs cannot be passed in the wrong order. */
|
|
4
|
+
type ChromeLogos = {
|
|
5
|
+
logo?: string;
|
|
6
|
+
logoDark?: string;
|
|
7
|
+
navbarLogo?: string;
|
|
8
|
+
};
|
|
2
9
|
/**
|
|
3
10
|
* Resolve the chrome option into slotted navbar/footer elements. The elements
|
|
4
11
|
* are returned detached; the caller appends them as light-DOM children of the
|
|
5
12
|
* page element so the page's `coras-layout` projects them and provides config
|
|
6
13
|
* via context. See plan Appendix D.
|
|
7
14
|
*/
|
|
8
|
-
export declare function createChrome(chrome: CorasChrome | undefined, options?:
|
|
9
|
-
|
|
10
|
-
}): Promise<HTMLElement[]>;
|
|
15
|
+
export declare function createChrome(chrome: CorasChrome | undefined, options?: ChromeLogos): Promise<HTMLElement[]>;
|
|
16
|
+
export {};
|
package/dist/sdk/chrome.js
CHANGED
|
@@ -23,14 +23,22 @@ function isManagedSlot(spec) {
|
|
|
23
23
|
!(spec instanceof HTMLElement) &&
|
|
24
24
|
spec.use === "managed");
|
|
25
25
|
}
|
|
26
|
-
async function createCorasSlot(slot, managed,
|
|
26
|
+
async function createCorasSlot(slot, managed, logos) {
|
|
27
27
|
await chromeLoaders[slot]();
|
|
28
28
|
const element = document.createElement(SLOT_TAGS[slot]);
|
|
29
29
|
element.setAttribute("slot", slot);
|
|
30
30
|
// The managed navbar renders this as a default logo unless the host slots a
|
|
31
31
|
// `brand` element below; the footer has no logo, so only set it for navbar.
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
// Each is set independently: a brand may carry any one of the three, and the
|
|
33
|
+
// navbar decides between them.
|
|
34
|
+
if (slot === "navbar") {
|
|
35
|
+
const nav = element;
|
|
36
|
+
if (logos?.logo)
|
|
37
|
+
nav.logo = logos.logo;
|
|
38
|
+
if (logos?.logoDark)
|
|
39
|
+
nav.logoDark = logos.logoDark;
|
|
40
|
+
if (logos?.navbarLogo)
|
|
41
|
+
nav.navbarLogo = logos.navbarLogo;
|
|
34
42
|
}
|
|
35
43
|
// Apply feature toggles as properties, not attributes: the navbar's booleans
|
|
36
44
|
// default to `true`, and a default-true boolean attribute cannot express
|
|
@@ -48,13 +56,13 @@ async function createCorasSlot(slot, managed, logo) {
|
|
|
48
56
|
}
|
|
49
57
|
return element;
|
|
50
58
|
}
|
|
51
|
-
async function createSlotElement(slot, spec,
|
|
59
|
+
async function createSlotElement(slot, spec, logos) {
|
|
52
60
|
if (spec === false || spec == null)
|
|
53
61
|
return null;
|
|
54
62
|
if (spec === "managed")
|
|
55
|
-
return createCorasSlot(slot, undefined,
|
|
63
|
+
return createCorasSlot(slot, undefined, logos);
|
|
56
64
|
if (isManagedSlot(spec))
|
|
57
|
-
return createCorasSlot(slot, spec,
|
|
65
|
+
return createCorasSlot(slot, spec, logos);
|
|
58
66
|
if (typeof spec === "function") {
|
|
59
67
|
const element = await spec();
|
|
60
68
|
element.setAttribute("slot", slot);
|
|
@@ -72,10 +80,14 @@ async function createSlotElement(slot, spec, logo) {
|
|
|
72
80
|
export async function createChrome(chrome, options) {
|
|
73
81
|
const normalized = normalizeChrome(chrome);
|
|
74
82
|
// Load both slots concurrently; each dynamically imports its own module.
|
|
75
|
-
//
|
|
76
|
-
//
|
|
83
|
+
// The theme's logos are public config and skip BrandConfig validation, so
|
|
84
|
+
// gate them here at the SDK boundary: an unsafe URL yields "" and renders no logo.
|
|
77
85
|
const [navbar, footer] = await Promise.all([
|
|
78
|
-
createSlotElement("navbar", normalized.navbar,
|
|
86
|
+
createSlotElement("navbar", normalized.navbar, {
|
|
87
|
+
logo: safeUrl(options?.logo),
|
|
88
|
+
logoDark: safeUrl(options?.logoDark),
|
|
89
|
+
navbarLogo: safeUrl(options?.navbarLogo),
|
|
90
|
+
}),
|
|
79
91
|
createSlotElement("footer", normalized.footer),
|
|
80
92
|
]);
|
|
81
93
|
const elements = [];
|
|
@@ -31,18 +31,21 @@ export function attachCallbackBridge(target, callbacks, options = {}) {
|
|
|
31
31
|
catch (error) {
|
|
32
32
|
// A throwing host callback must not break the SDK or other callbacks.
|
|
33
33
|
options.onListenerError?.(error, eventName);
|
|
34
|
-
//
|
|
35
|
-
|
|
34
|
+
// Report the failure as a `coras:error` event rather than by calling
|
|
35
|
+
// `onError` directly, so it reaches DOM listeners and the callback
|
|
36
|
+
// alike - every event is delivered both ways. The listener below routes
|
|
37
|
+
// it on to `onError`. Skipped when `onError` itself threw, which also
|
|
38
|
+
// stops a failing `onError` from re-entering this branch forever.
|
|
39
|
+
if (callbackName !== "onError") {
|
|
36
40
|
const detail = {
|
|
37
41
|
code: "callback_error",
|
|
38
42
|
message: `The "${callbackName}" callback threw.`,
|
|
39
43
|
};
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
44
|
+
target.dispatchEvent(new CustomEvent("coras:error", {
|
|
45
|
+
bubbles: true,
|
|
46
|
+
composed: true,
|
|
47
|
+
detail,
|
|
48
|
+
}));
|
|
46
49
|
}
|
|
47
50
|
}
|
|
48
51
|
});
|
package/dist/sdk/mount.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { type PageRegistry } from "./page-registry.js";
|
|
2
|
-
import type { CorasApp, CorasMountOptions } from "./types.js";
|
|
2
|
+
import type { CorasApp, CorasMountOptions, CorasPageName } from "./types.js";
|
|
3
3
|
/**
|
|
4
4
|
* Create a `mount` function bound to a page registry. The public `mount` uses
|
|
5
5
|
* the real registry; tests inject a lightweight registry so lifecycle behavior
|
|
6
6
|
* is verifiable without loading the heavy page modules.
|
|
7
7
|
*/
|
|
8
|
-
export declare function createMountWith(registry: PageRegistry): (options: CorasMountOptions) => CorasApp;
|
|
8
|
+
export declare function createMountWith(registry: PageRegistry): <P extends CorasPageName = CorasPageName>(options: CorasMountOptions<P>) => CorasApp;
|
|
9
9
|
/**
|
|
10
10
|
* Mount a Coras page into a host container and return a synchronous app handle.
|
|
11
11
|
*
|
|
@@ -16,4 +16,4 @@ export declare function createMountWith(registry: PageRegistry): (options: Coras
|
|
|
16
16
|
* app.unmount();
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
|
-
export declare const mount: (options: CorasMountOptions) => CorasApp;
|
|
19
|
+
export declare const mount: <P extends CorasPageName = CorasPageName>(options: CorasMountOptions<P>) => CorasApp;
|