@brandsync/wc 1.9.0 → 1.11.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/custom-elements.json +8864 -3754
- package/dist/brandsync-wc/brandsync-wc.css +33 -0
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/{p-9f8852a0.entry.js → p-00a0d489.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a5feaad4.entry.js → p-061ddc46.entry.js} +1 -1
- package/dist/brandsync-wc/{p-360452c2.entry.js → p-09435f41.entry.js} +1 -1
- package/dist/brandsync-wc/{p-107b1c5d.entry.js → p-09bc1923.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1f7208cb.entry.js → p-09cbf05b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7c94e6ae.entry.js → p-0b2d3b7e.entry.js} +1 -1
- package/dist/brandsync-wc/p-0b7c77c1.entry.js +1 -0
- package/dist/brandsync-wc/p-0ee4126c.entry.js +1 -0
- package/dist/brandsync-wc/{p-0e39b9cc.entry.js → p-0f8cd2e8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1c0db4d6.entry.js → p-1261f0b0.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6bf2f116.entry.js → p-1978e63c.entry.js} +1 -1
- package/dist/brandsync-wc/p-1aab6d07.entry.js +1 -0
- package/dist/brandsync-wc/{p-6fd7dd6a.entry.js → p-20030f4d.entry.js} +1 -1
- package/dist/brandsync-wc/p-2177042f.entry.js +1 -0
- package/dist/brandsync-wc/{p-33e44094.entry.js → p-2368a92e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-29027559.entry.js → p-247e36ad.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ae978c9a.entry.js → p-2497d128.entry.js} +1 -1
- package/dist/brandsync-wc/{p-fc240aa0.entry.js → p-282ddbee.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0eed6813.entry.js → p-2f4e08e1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c3f72584.entry.js → p-34e5feaf.entry.js} +1 -1
- package/dist/brandsync-wc/{p-062cfa34.entry.js → p-39a26c64.entry.js} +1 -1
- package/dist/brandsync-wc/p-3a1af63a.entry.js +1 -0
- package/dist/brandsync-wc/{p-9f6fe37d.entry.js → p-3f09296a.entry.js} +1 -1
- package/dist/brandsync-wc/p-416322bd.entry.js +1 -0
- package/dist/brandsync-wc/{p-bbcc47b0.entry.js → p-491b51e6.entry.js} +1 -1
- package/dist/brandsync-wc/p-52cb2358.entry.js +1 -0
- package/dist/brandsync-wc/{p-3ec74d35.entry.js → p-56c37e0a.entry.js} +1 -1
- package/dist/brandsync-wc/p-5ba90a13.entry.js +1 -0
- package/dist/brandsync-wc/{p-2181378f.entry.js → p-5f27f04d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a09e157f.entry.js → p-617bd13a.entry.js} +1 -1
- package/dist/brandsync-wc/p-68fcd4a4.entry.js +1 -0
- package/dist/brandsync-wc/{p-cfcf3f0a.entry.js → p-69c0a85d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9f65f998.entry.js → p-6a696161.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8ee0153b.entry.js → p-6c6cdf77.entry.js} +1 -1
- package/dist/brandsync-wc/{p-051d3064.entry.js → p-6e735e37.entry.js} +1 -1
- package/dist/brandsync-wc/{p-fc58c663.entry.js → p-73f214ed.entry.js} +1 -1
- package/dist/brandsync-wc/{p-be2c1740.entry.js → p-7796b93f.entry.js} +1 -1
- package/dist/brandsync-wc/p-78a69a59.entry.js +1 -0
- package/dist/brandsync-wc/{p-27bbed83.entry.js → p-78f4fcf0.entry.js} +1 -1
- package/dist/brandsync-wc/p-7f954939.entry.js +1 -0
- package/dist/brandsync-wc/{p-835a8dc7.entry.js → p-81605b82.entry.js} +1 -1
- package/dist/brandsync-wc/{p-de7c946d.entry.js → p-823ab3b2.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a92eec48.entry.js → p-89fabf27.entry.js} +1 -1
- package/dist/brandsync-wc/{p-AgoOSYvW.js → p-DqQRXQMx.js} +2 -2
- package/dist/brandsync-wc/{p-70f64b25.entry.js → p-a9169157.entry.js} +1 -1
- package/dist/brandsync-wc/{p-05c7de28.entry.js → p-afb07368.entry.js} +1 -1
- package/dist/brandsync-wc/{p-235ae012.entry.js → p-b84366a7.entry.js} +1 -1
- package/dist/brandsync-wc/p-b9a4042e.entry.js +1 -0
- package/dist/brandsync-wc/{p-275072dd.entry.js → p-b9ccd9d1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-61c1a2a3.entry.js → p-be3dd446.entry.js} +1 -1
- package/dist/brandsync-wc/p-c0a92750.entry.js +1 -0
- package/dist/brandsync-wc/{p-6331de9c.entry.js → p-d754ee13.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e9b43754.entry.js → p-d75f3f87.entry.js} +1 -1
- package/dist/brandsync-wc/{p-3176d1d3.entry.js → p-d8b29a53.entry.js} +1 -1
- package/dist/brandsync-wc/p-de110ad0.entry.js +1 -0
- package/dist/brandsync-wc/p-e2556b4e.entry.js +1 -0
- package/dist/brandsync-wc/{p-4574a707.entry.js → p-e5daa6ca.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c4de155c.entry.js → p-f15d9524.entry.js} +1 -1
- package/dist/brandsync-wc/p-f5180578.entry.js +1 -0
- package/dist/brandsync-wc/{p-114d2fd8.entry.js → p-f7d15fbe.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a0d5a620.entry.js → p-fc069773.entry.js} +1 -1
- package/dist/brandsync-wc/p-fcee0dc4.entry.js +1 -0
- package/dist/cjs/brandsync-wc.cjs.js +2 -2
- package/dist/cjs/bs-accordion.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +2 -2
- package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
- package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment.cjs.entry.js +1 -1
- package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
- package/dist/cjs/bs-badge.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +2 -2
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/bs-button.cjs.entry.js +3 -3
- package/dist/cjs/bs-card.cjs.entry.js +3 -3
- package/dist/cjs/bs-carousel.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
- package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/bs-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-filter.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
- package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
- package/dist/cjs/bs-composer.cjs.entry.js +1 -1
- package/dist/cjs/bs-cookie-consent.cjs.entry.js +186 -0
- package/dist/cjs/bs-data-table.cjs.entry.js +1 -1
- package/dist/cjs/bs-datepicker.cjs.entry.js +414 -0
- package/dist/cjs/bs-dialog.cjs.entry.js +1 -1
- package/dist/cjs/bs-error-page.cjs.entry.js +103 -0
- package/dist/cjs/bs-file-upload-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-file-upload.cjs.entry.js +2 -2
- package/dist/cjs/bs-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/bs-icon-tile.cjs.entry.js +52 -0
- package/dist/cjs/bs-inline-tab.cjs.entry.js +2 -2
- package/dist/cjs/{bs-input.cjs.entry.js → bs-input_3.cjs.entry.js} +74 -6
- package/dist/cjs/bs-logo.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +3 -3
- package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
- package/dist/cjs/bs-onboarding-checklist.cjs.entry.js +161 -0
- package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
- package/dist/cjs/bs-product-tour.cjs.entry.js +78 -0
- package/dist/cjs/bs-progress-linear.cjs.entry.js +4 -4
- package/dist/cjs/bs-progress.cjs.entry.js +3 -3
- package/dist/cjs/bs-qr-code.cjs.entry.js +148 -0
- package/dist/cjs/bs-radio.cjs.entry.js +2 -2
- package/dist/cjs/bs-session-timeout.cjs.entry.js +215 -0
- package/dist/cjs/bs-slider.cjs.entry.js +2 -2
- package/dist/cjs/bs-snackbar.cjs.entry.js +9 -3
- package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
- package/dist/cjs/bs-stepper-step.cjs.entry.js +2 -2
- package/dist/cjs/bs-stepper.cjs.entry.js +2 -2
- package/dist/cjs/bs-switch.cjs.entry.js +2 -2
- package/dist/cjs/bs-tab_3.cjs.entry.js +255 -0
- package/dist/cjs/bs-timepicker.cjs.entry.js +209 -0
- package/dist/cjs/bs-toast.cjs.entry.js +2 -2
- package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/bs-whats-new.cjs.entry.js +144 -0
- package/dist/cjs/{index-kk9YXF2S.js → index-tFJjflK5.js} +15 -3
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +11 -0
- package/dist/collection/components/bs-a11y.cmp.test.js +26 -0
- package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
- package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
- package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
- package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +28 -0
- package/dist/collection/components/bs-button/bs-button/bs-button.css +8 -2
- package/dist/collection/components/bs-button/bs-button/bs-button.js +4 -1
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
- package/dist/collection/components/bs-card/bs-card.cmp.test.js +48 -0
- package/dist/collection/components/bs-card/bs-card.css +37 -16
- package/dist/collection/components/bs-card/bs-card.js +2 -2
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
- package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.cmp.test.js +217 -0
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.css +350 -0
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.js +668 -0
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.stories.js +103 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.cmp.test.js +191 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.css +325 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.js +788 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.stories.js +64 -0
- package/dist/collection/components/bs-error-page/bs-error-page.cmp.test.js +99 -0
- package/dist/collection/components/bs-error-page/bs-error-page.css +105 -0
- package/dist/collection/components/bs-error-page/bs-error-page.js +328 -0
- package/dist/collection/components/bs-error-page/bs-error-page.stories.js +57 -0
- package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
- package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.cmp.test.js +175 -0
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.css +112 -0
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +158 -0
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.stories.js +45 -0
- package/dist/collection/components/bs-input/bs-input.cmp.test.js +14 -0
- package/dist/collection/components/bs-input/bs-input.css +9 -2
- package/dist/collection/components/bs-input/bs-input.js +7 -4
- package/dist/collection/components/bs-menu/bs-menu.js +1 -1
- package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
- package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.js +280 -0
- package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.css +488 -0
- package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.js +674 -0
- package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.js +92 -0
- package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
- package/dist/collection/components/bs-product-tour/bs-product-tour.cmp.test.js +116 -0
- package/dist/collection/components/bs-product-tour/bs-product-tour.css +265 -0
- package/dist/collection/components/bs-product-tour/bs-product-tour.js +391 -0
- package/dist/collection/components/bs-product-tour/bs-product-tour.stories.js +68 -0
- package/dist/collection/components/bs-progress/bs-progress.js +2 -2
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.css +1 -1
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
- package/dist/collection/components/bs-qr-code/bs-qr-code.cmp.test.js +152 -0
- package/dist/collection/components/bs-qr-code/bs-qr-code.css +307 -0
- package/dist/collection/components/bs-qr-code/bs-qr-code.js +767 -0
- package/dist/collection/components/bs-qr-code/bs-qr-code.stories.js +99 -0
- package/dist/collection/components/bs-radio/bs-radio.js +1 -1
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.cmp.test.js +202 -0
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.css +239 -0
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +772 -0
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.stories.js +88 -0
- package/dist/collection/components/bs-slider/bs-slider.js +1 -1
- package/dist/collection/components/bs-snackbar/bs-snackbar.cmp.test.js +20 -0
- package/dist/collection/components/bs-snackbar/bs-snackbar.css +6 -4
- package/dist/collection/components/bs-snackbar/bs-snackbar.js +53 -1
- package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
- package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
- package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
- package/dist/collection/components/bs-switch/bs-switch.js +1 -1
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
- package/dist/collection/components/bs-timepicker/bs-timepicker.cmp.test.js +141 -0
- package/dist/collection/components/bs-timepicker/bs-timepicker.css +204 -0
- package/dist/collection/components/bs-timepicker/bs-timepicker.js +511 -0
- package/dist/collection/components/bs-timepicker/bs-timepicker.stories.js +44 -0
- package/dist/collection/components/bs-toast/bs-toast.js +1 -1
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
- package/dist/collection/components/bs-whats-new/bs-whats-new.cmp.test.js +200 -0
- package/dist/collection/components/bs-whats-new/bs-whats-new.css +315 -0
- package/dist/collection/components/bs-whats-new/bs-whats-new.js +790 -0
- package/dist/collection/components/bs-whats-new/bs-whats-new.stories.js +105 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.js +79 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.css +131 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +295 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.stories.js +67 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
- package/dist/components/bs-accordion.js +1 -1
- package/dist/components/bs-ai-disclaimer.js +1 -1
- package/dist/components/bs-ai-greeting.js +1 -1
- package/dist/components/bs-ai-thinking.js +1 -1
- package/dist/components/bs-attachment-list.js +1 -1
- package/dist/components/bs-attachment.js +1 -1
- package/dist/components/bs-avatar.js +1 -1
- package/dist/components/bs-badge.js +1 -1
- package/dist/components/bs-breadcrumb-overflow.js +1 -1
- package/dist/components/bs-breadcrumb.js +1 -1
- package/dist/components/bs-breadcrumbs.js +1 -1
- package/dist/components/bs-button-skeleton.js +1 -1
- package/dist/components/bs-button.js +1 -1
- package/dist/components/bs-card.js +1 -1
- package/dist/components/bs-carousel.js +1 -1
- package/dist/components/bs-chatbot-feedback.js +1 -1
- package/dist/components/bs-chatbot-header.js +1 -1
- package/dist/components/bs-chatbot-response-action.js +1 -1
- package/dist/components/bs-chatbot-sources-drawer.js +1 -1
- package/dist/components/bs-chatbot-suggestion-button.js +1 -1
- package/dist/components/bs-checkbox-skeleton.js +1 -1
- package/dist/components/bs-checkbox.js +1 -1
- package/dist/components/bs-chip-filter.js +1 -1
- package/dist/components/bs-chip-informative.js +1 -1
- package/dist/components/bs-chip-input.js +1 -1
- package/dist/components/bs-composer-status-banner.js +1 -1
- package/dist/components/bs-composer.js +1 -1
- package/dist/components/bs-cookie-consent.d.ts +11 -0
- package/dist/components/bs-cookie-consent.js +1 -0
- package/dist/components/bs-data-table.js +1 -1
- package/dist/components/bs-datepicker.d.ts +11 -0
- package/dist/components/bs-datepicker.js +1 -0
- package/dist/components/bs-dialog.js +1 -1
- package/dist/components/bs-error-page.d.ts +11 -0
- package/dist/components/bs-error-page.js +1 -0
- package/dist/components/bs-file-upload-item.js +1 -1
- package/dist/components/bs-file-upload.js +1 -1
- package/dist/components/bs-icon-button.js +1 -1
- package/dist/components/bs-icon-tile.d.ts +11 -0
- package/dist/components/bs-icon-tile.js +1 -0
- package/dist/components/bs-inline-tab.js +1 -1
- package/dist/components/bs-input.js +1 -1
- package/dist/components/bs-logo.js +1 -1
- package/dist/components/bs-menu-item.js +1 -1
- package/dist/components/bs-menu.js +1 -1
- package/dist/components/bs-navigation-drawer-item.js +1 -1
- package/dist/components/bs-navigation-drawer.js +1 -1
- package/dist/components/bs-navigation-header.js +1 -1
- package/dist/components/bs-onboarding-checklist.d.ts +11 -0
- package/dist/components/bs-onboarding-checklist.js +1 -0
- package/dist/components/bs-pagination.js +1 -1
- package/dist/components/bs-product-tour.d.ts +11 -0
- package/dist/components/bs-product-tour.js +1 -0
- package/dist/components/bs-progress-linear.js +1 -1
- package/dist/components/bs-progress.js +1 -1
- package/dist/components/bs-qr-code.d.ts +11 -0
- package/dist/components/bs-qr-code.js +1 -0
- package/dist/components/bs-radio.js +1 -1
- package/dist/components/bs-session-timeout.d.ts +11 -0
- package/dist/components/bs-session-timeout.js +1 -0
- package/dist/components/bs-slider.js +1 -1
- package/dist/components/bs-snackbar.js +1 -1
- package/dist/components/bs-source-link.js +1 -1
- package/dist/components/bs-stepper-step.js +1 -1
- package/dist/components/bs-stepper.js +1 -1
- package/dist/components/bs-switch.js +1 -1
- package/dist/components/bs-tab.js +1 -1
- package/dist/components/bs-tabs.js +1 -1
- package/dist/components/bs-timepicker.d.ts +11 -0
- package/dist/components/bs-timepicker.js +1 -0
- package/dist/components/bs-toast.js +1 -1
- package/dist/components/bs-tooltip.js +1 -1
- package/dist/components/bs-whats-new-entry.d.ts +11 -0
- package/dist/components/bs-whats-new-entry.js +1 -0
- package/dist/components/bs-whats-new.d.ts +11 -0
- package/dist/components/bs-whats-new.js +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/{p-R2MlkUzD.js → p-BEEoVNRu.js} +1 -1
- package/dist/components/{p-EtXc94lJ.js → p-BZ3M4lOU.js} +1 -1
- package/dist/components/p-B_I4UEMp.js +1 -0
- package/dist/components/{p-BfEyD6Ku.js → p-Be9L4_Fe.js} +1 -1
- package/dist/components/p-Be_Pmccm.js +1 -0
- package/dist/components/p-Bl_tVzeq.js +1 -0
- package/dist/components/p-C8yT2Ucq.js +1 -0
- package/dist/components/p-CA31vqjL.js +1 -0
- package/dist/components/p-CUfs0ROR.js +1 -0
- package/dist/components/{p-JYlmcxBn.js → p-CVrEuVFo.js} +1 -1
- package/dist/components/{p-BA3c9Rom.js → p-C_j_jDM6.js} +1 -1
- package/dist/components/p-CbimDNGY.js +1 -0
- package/dist/components/{p-Buly0d5G.js → p-CeUK3n7D.js} +1 -1
- package/dist/components/p-CncySD_-.js +1 -0
- package/dist/components/p-DE8K7fg0.js +1 -0
- package/dist/components/p-Dr0Qk9Zc.js +1 -0
- package/dist/components/p-DuLL7Ouw.js +1 -0
- package/dist/components/p-YsHQLXET.js +1 -0
- package/dist/components/p-qmS2CBqi.js +1 -0
- package/dist/components/{p-BoeorHNv.js → p-zTHlbyH6.js} +1 -1
- package/dist/esm/brandsync-wc.js +3 -3
- package/dist/esm/bs-accordion.entry.js +1 -1
- package/dist/esm/bs-ai-disclaimer.entry.js +2 -2
- package/dist/esm/bs-ai-greeting.entry.js +2 -2
- package/dist/esm/bs-ai-thinking.entry.js +2 -2
- package/dist/esm/bs-attachment-list.entry.js +2 -2
- package/dist/esm/bs-attachment.entry.js +1 -1
- package/dist/esm/bs-avatar.entry.js +1 -1
- package/dist/esm/bs-badge.entry.js +1 -1
- package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
- package/dist/esm/bs-breadcrumb.entry.js +1 -1
- package/dist/esm/bs-breadcrumbs.entry.js +2 -2
- package/dist/esm/bs-button-skeleton.entry.js +2 -2
- package/dist/esm/bs-button.entry.js +3 -3
- package/dist/esm/bs-card.entry.js +3 -3
- package/dist/esm/bs-carousel.entry.js +1 -1
- package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
- package/dist/esm/bs-chatbot-header.entry.js +2 -2
- package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
- package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
- package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
- package/dist/esm/bs-checkbox-skeleton.entry.js +2 -2
- package/dist/esm/bs-checkbox.entry.js +1 -1
- package/dist/esm/bs-chip-filter.entry.js +1 -1
- package/dist/esm/bs-chip-informative.entry.js +1 -1
- package/dist/esm/bs-chip-input.entry.js +1 -1
- package/dist/esm/bs-composer-status-banner.entry.js +1 -1
- package/dist/esm/bs-composer.entry.js +1 -1
- package/dist/esm/bs-cookie-consent.entry.js +184 -0
- package/dist/esm/bs-data-table.entry.js +1 -1
- package/dist/esm/bs-datepicker.entry.js +412 -0
- package/dist/esm/bs-dialog.entry.js +1 -1
- package/dist/esm/bs-error-page.entry.js +101 -0
- package/dist/esm/bs-file-upload-item.entry.js +2 -2
- package/dist/esm/bs-file-upload.entry.js +2 -2
- package/dist/esm/bs-icon-button.entry.js +2 -2
- package/dist/esm/bs-icon-tile.entry.js +50 -0
- package/dist/esm/bs-inline-tab.entry.js +2 -2
- package/dist/esm/{bs-input.entry.js → bs-input_3.entry.js} +73 -7
- package/dist/esm/bs-logo.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
- package/dist/esm/bs-navigation-drawer.entry.js +3 -3
- package/dist/esm/bs-navigation-header.entry.js +2 -2
- package/dist/esm/bs-onboarding-checklist.entry.js +159 -0
- package/dist/esm/bs-pagination.entry.js +2 -2
- package/dist/esm/bs-product-tour.entry.js +76 -0
- package/dist/esm/bs-progress-linear.entry.js +4 -4
- package/dist/esm/bs-progress.entry.js +3 -3
- package/dist/esm/bs-qr-code.entry.js +146 -0
- package/dist/esm/bs-radio.entry.js +2 -2
- package/dist/esm/bs-session-timeout.entry.js +213 -0
- package/dist/esm/bs-slider.entry.js +2 -2
- package/dist/esm/bs-snackbar.entry.js +9 -3
- package/dist/esm/bs-source-link.entry.js +3 -3
- package/dist/esm/bs-stepper-step.entry.js +2 -2
- package/dist/esm/bs-stepper.entry.js +2 -2
- package/dist/esm/bs-switch.entry.js +2 -2
- package/dist/esm/bs-tab_3.entry.js +251 -0
- package/dist/esm/bs-timepicker.entry.js +207 -0
- package/dist/esm/bs-toast.entry.js +2 -2
- package/dist/esm/bs-tooltip.entry.js +2 -2
- package/dist/esm/bs-whats-new.entry.js +142 -0
- package/dist/esm/{index-AgoOSYvW.js → index-DqQRXQMx.js} +15 -3
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/bs-button/bs-button/bs-button.d.ts +3 -0
- package/dist/types/components/bs-cookie-consent/bs-cookie-consent.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-cookie-consent/bs-cookie-consent.d.ts +136 -0
- package/dist/types/components/bs-cookie-consent/bs-cookie-consent.stories.d.ts +16 -0
- package/dist/types/components/bs-datepicker/bs-datepicker.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-datepicker/bs-datepicker.d.ts +138 -0
- package/dist/types/components/bs-datepicker/bs-datepicker.stories.d.ts +20 -0
- package/dist/types/components/bs-error-page/bs-error-page.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-error-page/bs-error-page.d.ts +60 -0
- package/dist/types/components/bs-error-page/bs-error-page.stories.d.ts +22 -0
- package/dist/types/components/bs-icon-tile/bs-icon-tile.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +40 -0
- package/dist/types/components/bs-icon-tile/bs-icon-tile.stories.d.ts +13 -0
- package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.d.ts +140 -0
- package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.d.ts +18 -0
- package/dist/types/components/bs-product-tour/bs-product-tour.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-product-tour/bs-product-tour.d.ts +78 -0
- package/dist/types/components/bs-product-tour/bs-product-tour.stories.d.ts +19 -0
- package/dist/types/components/bs-qr-code/bs-qr-code.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-qr-code/bs-qr-code.d.ts +124 -0
- package/dist/types/components/bs-qr-code/bs-qr-code.stories.d.ts +28 -0
- package/dist/types/components/bs-session-timeout/bs-session-timeout.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-session-timeout/bs-session-timeout.d.ts +141 -0
- package/dist/types/components/bs-session-timeout/bs-session-timeout.stories.d.ts +19 -0
- package/dist/types/components/bs-snackbar/bs-snackbar.d.ts +7 -0
- package/dist/types/components/bs-timepicker/bs-timepicker.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-timepicker/bs-timepicker.d.ts +103 -0
- package/dist/types/components/bs-timepicker/bs-timepicker.stories.d.ts +14 -0
- package/dist/types/components/bs-whats-new/bs-whats-new.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-whats-new/bs-whats-new.d.ts +147 -0
- package/dist/types/components/bs-whats-new/bs-whats-new.stories.d.ts +14 -0
- package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.d.ts +53 -0
- package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.stories.d.ts +18 -0
- package/dist/types/components.d.ts +3072 -17
- package/package.json +1 -1
- package/dist/brandsync-wc/p-2891d40b.entry.js +0 -1
- package/dist/brandsync-wc/p-36bf37d9.entry.js +0 -1
- package/dist/brandsync-wc/p-3b64e3cd.entry.js +0 -1
- package/dist/brandsync-wc/p-4e5dcaff.entry.js +0 -1
- package/dist/brandsync-wc/p-7b00dd36.entry.js +0 -1
- package/dist/brandsync-wc/p-c10d2529.entry.js +0 -1
- package/dist/brandsync-wc/p-f006d962.entry.js +0 -1
- package/dist/brandsync-wc/p-f074f94e.entry.js +0 -1
- package/dist/brandsync-wc/p-f7d47c17.entry.js +0 -1
- package/dist/brandsync-wc/p-fddc7bd1.entry.js +0 -1
- package/dist/cjs/bs-menu-item.cjs.entry.js +0 -34
- package/dist/cjs/bs-menu.cjs.entry.js +0 -39
- package/dist/cjs/bs-tab.cjs.entry.js +0 -88
- package/dist/cjs/bs-tabs.cjs.entry.js +0 -133
- package/dist/components/p-CpUHnsq9.js +0 -1
- package/dist/components/p-wei0Ija2.js +0 -1
- package/dist/esm/bs-menu-item.entry.js +0 -32
- package/dist/esm/bs-menu.entry.js +0 -37
- package/dist/esm/bs-tab.entry.js +0 -86
- package/dist/esm/bs-tabs.entry.js +0 -131
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-DqQRXQMx.js';
|
|
2
|
+
|
|
3
|
+
const bsProductTourCss = () => `:host{display:inline-block;--bs-product-tour-bg:var(--bs-paper-bg-base);--bs-product-tour-radius:var(--bs-border-radius-150);--bs-product-tour-color:var(--bs-text-default);--bs-product-tour-color-secondary:var(--bs-text-secondary);--bs-product-tour-art-size:64px;--bs-product-tour-art-icon-size:28px;--bs-product-tour-arrow-width:22px;--bs-product-tour-arrow-height:16px;--bs-product-tour-arrow-offset:36px;--bs-product-tour-width:400px;--bs-product-tour-padding:var(--bs-spacing-300);--bs-product-tour-gap:var(--bs-spacing-150);--bs-product-tour-shadow-color:var(--bs-elevation-medium)}:host([type='pointer']){--bs-product-tour-width:320px;--bs-product-tour-padding:var(--bs-spacing-200);--bs-product-tour-gap:var(--bs-spacing-100);--bs-product-tour-shadow-color:var(--bs-elevation-high)}.bs-product-tour{position:relative;width:var(--bs-product-tour-width);max-width:100%;color:var(--bs-product-tour-color);font-family:inherit}.bs-product-tour,.bs-product-tour__card{--bs-card-bg:var(--bs-product-tour-bg);--bs-card-radius:var(--bs-product-tour-radius);--bs-card-padding:var(--bs-product-tour-padding)}.bs-product-tour__body{display:flex;flex-direction:column;gap:var(--bs-product-tour-gap)}.bs-product-tour p{margin:0}.bs-product-tour--card{--bs-card-shadow:0 4px 8px var(--bs-product-tour-shadow-color)}.bs-product-tour--card .bs-product-tour__body{align-items:center;text-align:center}.bs-product-tour__art{--bs-icon-tile-size:var(--bs-product-tour-art-size);--bs-icon-tile-icon-size:var(--bs-product-tour-art-icon-size)}.bs-product-tour__glyph,::slotted([slot='icon']){width:var(--bs-product-tour-art-icon-size);height:var(--bs-product-tour-art-icon-size)}.bs-product-tour--card .bs-product-tour__heading{align-self:stretch;font-size:var(--bs-font-size-2xl);font-weight:var(--bs-font-weight-bold);line-height:32px}.bs-product-tour--card .bs-product-tour__description{align-self:stretch;color:var(--bs-product-tour-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px}.bs-product-tour--card .bs-product-tour__actions{padding-top:var(--bs-spacing-100)}.bs-product-tour--card .bs-product-tour__actions bs-button{--bs-button-height-md:var(--bs-spacing-550);min-width:94px}.bs-product-tour--pointer{filter:drop-shadow(0 4px 4px var(--bs-product-tour-shadow-color))}.bs-product-tour__card{display:block;--bs-card-shadow:none}.bs-product-tour--pointer .bs-product-tour__body{min-height:calc(140px - var(--bs-product-tour-padding) * 2)}.bs-product-tour--pointer .bs-product-tour__text{display:flex;flex-direction:column;gap:var(--bs-spacing-25);padding-inline-end:var(--bs-spacing-500)}.bs-product-tour--pointer .bs-product-tour__heading{font-size:var(--bs-font-size-md);font-weight:var(--bs-font-weight-semibold);line-height:24px}.bs-product-tour--pointer .bs-product-tour__description{color:var(--bs-product-tour-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px}.bs-product-tour__close{position:absolute;top:3px;inset-inline-end:3px}.bs-product-tour__close svg{width:20px;height:20px}.bs-product-tour__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--bs-spacing-100);margin-top:auto;padding-top:4px}.bs-product-tour__progress{color:var(--bs-product-tour-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px;white-space:nowrap}.bs-product-tour--pointer .bs-product-tour__actions{display:flex;align-items:center;gap:var(--bs-spacing-100)}.bs-product-tour--pointer .bs-product-tour__actions bs-button{--bs-button-height-sm:var(--bs-spacing-400)}.bs-product-tour--card .bs-product-tour__actions{display:flex;align-items:center;gap:var(--bs-spacing-100)}.bs-product-tour__arrow{position:absolute;background:var(--bs-product-tour-bg);pointer-events:none}:host([direction^='top']) .bs-product-tour__arrow,:host([direction^='bottom']) .bs-product-tour__arrow{width:var(--bs-product-tour-arrow-width);height:calc(var(--bs-product-tour-arrow-height) + 1px)}:host([direction^='top']) .bs-product-tour__arrow{bottom:calc(100% - 1px);clip-path:polygon(50% 0, 100% 100%, 0 100%)}:host([direction^='bottom']) .bs-product-tour__arrow{top:calc(100% - 1px);clip-path:polygon(0 0, 100% 0, 50% 100%)}:host([direction='top']) .bs-product-tour__arrow,:host([direction='bottom']) .bs-product-tour__arrow{left:50%;transform:translateX(-50%)}:host([direction$='-left']) .bs-product-tour__arrow{left:var(--bs-product-tour-arrow-offset);transform:translateX(-50%)}:host([direction$='-right']) .bs-product-tour__arrow{right:var(--bs-product-tour-arrow-offset);transform:translateX(50%)}:host([direction^='left']) .bs-product-tour__arrow,:host([direction^='right']) .bs-product-tour__arrow{width:calc(var(--bs-product-tour-arrow-height) + 1px);height:var(--bs-product-tour-arrow-width)}:host([direction^='left']) .bs-product-tour__arrow{right:calc(100% - 1px);clip-path:polygon(0 50%, 100% 0, 100% 100%)}:host([direction^='right']) .bs-product-tour__arrow{left:calc(100% - 1px);clip-path:polygon(0 0, 100% 50%, 0 100%)}:host([direction='left']) .bs-product-tour__arrow,:host([direction='right']) .bs-product-tour__arrow{top:50%;transform:translateY(-50%)}:host([direction$='-top']) .bs-product-tour__arrow{top:var(--bs-product-tour-arrow-offset);transform:translateY(-50%)}:host([direction$='-bottom']) .bs-product-tour__arrow{bottom:var(--bs-product-tour-arrow-offset);transform:translateY(50%)}`;
|
|
4
|
+
|
|
5
|
+
const BsProductTour = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.bsPrimary = createEvent(this, "bsPrimary");
|
|
9
|
+
this.bsSecondary = createEvent(this, "bsSecondary");
|
|
10
|
+
this.bsClose = createEvent(this, "bsClose");
|
|
11
|
+
}
|
|
12
|
+
/** `welcome` and `success` are centred cards with an art tile; `pointer` is the compact step
|
|
13
|
+
* with an arrow. */
|
|
14
|
+
type = 'welcome';
|
|
15
|
+
/** Where the arrow sits (`pointer` only): the side of the card it's on, and for corners/edges
|
|
16
|
+
* which end it's near, e.g. `top-left` = on the top edge, near the left corner. */
|
|
17
|
+
direction = 'top';
|
|
18
|
+
/** Heading. */
|
|
19
|
+
heading;
|
|
20
|
+
/** Paragraph under the heading. */
|
|
21
|
+
description;
|
|
22
|
+
/** Current step, 1-based (`pointer`). Used with `total` for the progress label. */
|
|
23
|
+
step = 1;
|
|
24
|
+
/** Number of steps (`pointer`). The progress label is hidden when this is 0. */
|
|
25
|
+
total = 0;
|
|
26
|
+
/** Template of the progress label; `{step}` and `{total}` are replaced. */
|
|
27
|
+
progressLabel = '{step} of {total}';
|
|
28
|
+
/** Label of the primary button. Defaults to "Start" (`welcome`), "Done" (`success`) or "Next"
|
|
29
|
+
* (`pointer`). Set it to an empty string to hide the button. */
|
|
30
|
+
primaryLabel;
|
|
31
|
+
/** Label of the secondary button. Defaults to "Later" (`welcome`) or "Back" (`pointer`); none for
|
|
32
|
+
* `success`. Set it to an empty string to hide the button. */
|
|
33
|
+
secondaryLabel;
|
|
34
|
+
/** Shows a close button in the corner (`pointer`). */
|
|
35
|
+
closable = false;
|
|
36
|
+
/** Accessible name of the close button. */
|
|
37
|
+
closeLabel = 'Close';
|
|
38
|
+
/** Fires when the primary button is pressed. */
|
|
39
|
+
bsPrimary;
|
|
40
|
+
/** Fires when the secondary button is pressed. */
|
|
41
|
+
bsSecondary;
|
|
42
|
+
/** Fires when the close button is pressed. */
|
|
43
|
+
bsClose;
|
|
44
|
+
get primary() {
|
|
45
|
+
if (this.primaryLabel !== undefined)
|
|
46
|
+
return this.primaryLabel;
|
|
47
|
+
return { welcome: 'Start', success: 'Done', pointer: 'Next' }[this.type] ?? '';
|
|
48
|
+
}
|
|
49
|
+
get secondary() {
|
|
50
|
+
if (this.secondaryLabel !== undefined)
|
|
51
|
+
return this.secondaryLabel;
|
|
52
|
+
return { welcome: 'Later', success: '', pointer: 'Back' }[this.type] ?? '';
|
|
53
|
+
}
|
|
54
|
+
renderActions(buttonSize, secondaryVariant) {
|
|
55
|
+
const { primary, secondary } = this;
|
|
56
|
+
if (!primary && !secondary)
|
|
57
|
+
return null;
|
|
58
|
+
return (h("div", { part: "actions", class: "bs-product-tour__actions" }, secondary && (h("bs-button", { part: "secondary", variant: secondaryVariant, size: buttonSize, onClick: () => this.bsSecondary.emit() }, secondary)), primary && (h("bs-button", { part: "primary", variant: "primary", size: buttonSize, onClick: () => this.bsPrimary.emit() }, primary))));
|
|
59
|
+
}
|
|
60
|
+
renderCard() {
|
|
61
|
+
const success = this.type === 'success';
|
|
62
|
+
return (h("bs-card", { part: "container", class: "bs-product-tour bs-product-tour--card", surface: "base" }, h("div", { class: "bs-product-tour__body" }, h("bs-icon-tile", { part: "art", class: "bs-product-tour__art", intent: success ? 'success' : 'brand', size: "lg" }, h("slot", { name: "icon" }, success ? h(CheckIcon, null) : h(SparkleIcon, null))), this.heading && (h("p", { part: "heading", class: "bs-product-tour__heading" }, this.heading)), this.description && (h("p", { part: "description", class: "bs-product-tour__description" }, this.description)), this.renderActions('md', 'outlined'))));
|
|
63
|
+
}
|
|
64
|
+
renderPointer() {
|
|
65
|
+
const progress = this.total > 0 ? this.progressLabel.replace('{step}', String(this.step)).replace('{total}', String(this.total)) : '';
|
|
66
|
+
return (h("div", { class: "bs-product-tour bs-product-tour--pointer" }, h("div", { part: "arrow", class: "bs-product-tour__arrow", "aria-hidden": "true" }), h("bs-card", { part: "container", class: "bs-product-tour__card", surface: "base" }, this.closable && (h("bs-icon-button", { part: "close", class: "bs-product-tour__close", variant: "subtle", size: "sm", ariaLabel: this.closeLabel, onClick: () => this.bsClose.emit() }, h("svg", { viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", "stroke-width": "1.6", "stroke-linecap": "round", "aria-hidden": "true" }, h("path", { d: "M5 5L15 15M15 5L5 15" })))), h("div", { class: "bs-product-tour__body" }, h("div", { class: "bs-product-tour__text" }, this.heading && (h("p", { part: "heading", class: "bs-product-tour__heading" }, this.heading)), this.description && (h("p", { part: "description", class: "bs-product-tour__description" }, this.description))), h("div", { part: "footer", class: "bs-product-tour__footer" }, progress ? (h("span", { part: "progress", class: "bs-product-tour__progress" }, progress)) : (h("span", null)), this.renderActions('sm', 'subtle'))))));
|
|
67
|
+
}
|
|
68
|
+
render() {
|
|
69
|
+
return this.type === 'pointer' ? this.renderPointer() : this.renderCard();
|
|
70
|
+
}
|
|
71
|
+
};
|
|
72
|
+
const SparkleIcon = () => (h("svg", { class: "bs-product-tour__glyph", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.6", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { d: "M9.5 4L11.2 9.3L16.5 11L11.2 12.7L9.5 18L7.8 12.7L2.5 11L7.8 9.3L9.5 4Z" }), h("path", { d: "M18.5 3V7" }), h("path", { d: "M16.5 5H20.5" }), h("path", { d: "M18 16V20" }), h("path", { d: "M16 18H20" })));
|
|
73
|
+
const CheckIcon = () => (h("svg", { class: "bs-product-tour__glyph", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("circle", { cx: "12", cy: "12", r: "9" }), h("path", { d: "M8 12.5L10.8 15.3L16 9.5" })));
|
|
74
|
+
BsProductTour.style = bsProductTourCss();
|
|
75
|
+
|
|
76
|
+
export { BsProductTour as bs_product_tour };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { r as registerInstance, a as getElement, h } from './index-
|
|
1
|
+
import { r as registerInstance, a as getElement, h } from './index-DqQRXQMx.js';
|
|
2
2
|
|
|
3
|
-
const bsProgressLinearCss = () => `:host{display:flex;--bs-progress-linear-gap:var(--bs-spacing-100);--bs-progress-linear-track:var(--bs-surface-
|
|
3
|
+
const bsProgressLinearCss = () => `:host{display:flex;--bs-progress-linear-gap:var(--bs-spacing-100);--bs-progress-linear-track:var(--bs-surface-hover);--bs-progress-linear-fill:var(--bs-color-primary-default);--bs-progress-linear-radius:120px;--bs-progress-linear-height-sm:4px;--bs-progress-linear-height-lg:8px;--bs-progress-linear-label-color:var(--bs-text-default);--bs-progress-linear-label-font-size:var(--bs-fontsize-body-md);--bs-progress-linear-label-line-height:var(--bs-line-height-body-md);--bs-progress-linear-transition-duration:0.3s;--bs-progress-linear-slide-duration:1.6s}.bs-progress-linear{display:flex;flex-direction:column;width:100%;gap:var(--bs-progress-linear-gap);font-family:inherit}.bs-progress-linear__track{position:relative;width:100%;border-radius:var(--bs-progress-linear-radius);background:var(--bs-progress-linear-track);overflow:hidden}.bs-progress-linear__track--small{height:var(--bs-progress-linear-height-sm)}.bs-progress-linear__track--large{height:var(--bs-progress-linear-height-lg)}.bs-progress-linear__fill{height:100%;border-radius:var(--bs-progress-linear-radius);background:var(--bs-progress-linear-fill);transition:width var(--bs-progress-linear-transition-duration) ease}.bs-progress-linear__fill--indeterminate{position:absolute;top:0;left:0;width:24%;min-width:80px;background:linear-gradient(90deg, transparent 0%, var(--bs-progress-linear-fill) 50%, transparent 100%);animation:bs-progress-linear-slide var(--bs-progress-linear-slide-duration) ease-in-out infinite}@keyframes bs-progress-linear-slide{from{transform:translateX(-100%)}to{transform:translateX(250%)}}@media (prefers-reduced-motion: reduce){.bs-progress-linear__fill--indeterminate{animation-duration:calc(var(--bs-progress-linear-slide-duration) * 4)}}.bs-progress-linear__label{color:var(--bs-progress-linear-label-color);font-size:var(--bs-progress-linear-label-font-size);line-height:calc(var(--bs-progress-linear-label-line-height) * 1px)}`;
|
|
4
4
|
|
|
5
5
|
const BsProgressLinear = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -33,13 +33,13 @@ const BsProgressLinear = class {
|
|
|
33
33
|
render() {
|
|
34
34
|
const isDeterminate = this.type === 'determinate';
|
|
35
35
|
const value = this.clampedValue;
|
|
36
|
-
return (h("div", { key: '
|
|
36
|
+
return (h("div", { key: '783f94f3ea320d9a8169c1d253037ae3631179e1', part: "container", class: "bs-progress-linear" }, h("div", { key: '9b5e0c1f0a641683bf9e763b2e3ede0b814f26cf', part: "track", class: `bs-progress-linear__track bs-progress-linear__track--${this.size}`, role: "progressbar", "aria-label": this.ariaLabel, "aria-valuemin": isDeterminate ? '0' : undefined, "aria-valuemax": isDeterminate ? '100' : undefined, "aria-valuenow": isDeterminate ? String(value) : undefined, "aria-busy": isDeterminate ? undefined : 'true' }, isDeterminate ? (h("div", { part: "fill", class: "bs-progress-linear__fill", style: { width: `${value}%` } })) : (
|
|
37
37
|
// Figma's indeterminate bar is a soft "comet" gradient segment (transparent -> blue ->
|
|
38
38
|
// transparent) sliding left-to-right across the track's full width in a loop -- the
|
|
39
39
|
// same fade concept as bs-progress's indeterminate ring's conic-gradient comet tail,
|
|
40
40
|
// but along a straight line via a linear-gradient + `transform: translateX(...)`
|
|
41
41
|
// keyframe animation instead of a rotating conic-gradient.
|
|
42
|
-
h("div", { part: "fill", class: "bs-progress-linear__fill bs-progress-linear__fill--indeterminate" }))), this.showLabel && this.hasLabelContent && (h("span", { key: '
|
|
42
|
+
h("div", { part: "fill", class: "bs-progress-linear__fill bs-progress-linear__fill--indeterminate" }))), this.showLabel && this.hasLabelContent && (h("span", { key: 'bb81cebfe79bb6e722fe0fb3cd561318a5f06ac6', part: "label", class: "bs-progress-linear__label" }, h("slot", { key: 'df04863716047f5b1fa4c70f20744ac25713840b' })))));
|
|
43
43
|
}
|
|
44
44
|
// The default slot's assigned content lives in the host's light DOM regardless of whether a
|
|
45
45
|
// <slot> is currently rendered in the shadow tree, so this can be computed directly from the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index-
|
|
1
|
+
import { r as registerInstance, h } from './index-DqQRXQMx.js';
|
|
2
2
|
|
|
3
3
|
const bsProgressCss = () => `:host{display:inline-flex;--bs-progress-gap:var(--bs-spacing-100);--bs-progress-track:var(--bs-neutral-200);--bs-progress-arc:var(--bs-color-primary-default);--bs-progress-label-color:var(--bs-color-primary-default);--bs-progress-label-font-size-sm:var(--bs-fontsize-caption-md);--bs-progress-label-line-height-sm:var(--bs-line-height-caption-md);--bs-progress-label-font-size-lg:var(--bs-fontsize-body-md);--bs-progress-label-line-height-lg:var(--bs-line-height-body-md);--bs-progress-label-font-weight:var(--bs-font-weight-medium);--bs-progress-spin-duration:1.4s}.bs-progress{display:inline-flex;flex-direction:column;align-items:center;gap:var(--bs-progress-gap);font-family:inherit}.bs-progress__box{position:relative;display:inline-flex}.bs-progress__ring{transform:rotate(-90deg);overflow:visible}.bs-progress__track{stroke:var(--bs-progress-track)}.bs-progress__arc{stroke:var(--bs-progress-arc);transition:stroke-dashoffset 0.3s ease}.bs-progress__spinner{width:100%;height:100%;border-radius:50%;background:conic-gradient(from 0deg, transparent 0deg, var(--bs-progress-arc) var(--bs-progress-spinner-sweep), transparent var(--bs-progress-spinner-sweep));-webkit-mask:radial-gradient( farthest-side, transparent calc(100% - var(--bs-progress-spinner-stroke-width) - 1px), #000 calc(100% - var(--bs-progress-spinner-stroke-width)) );mask:radial-gradient( farthest-side, transparent calc(100% - var(--bs-progress-spinner-stroke-width) - 1px), #000 calc(100% - var(--bs-progress-spinner-stroke-width)) );animation:bs-progress-spin var(--bs-progress-spin-duration) linear infinite}@keyframes bs-progress-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.bs-progress__spinner{animation-duration:calc(var(--bs-progress-spin-duration) * 4)}}.bs-progress__label{color:var(--bs-progress-label-color);font-weight:var(--bs-progress-label-font-weight);text-align:center}.bs-progress__label--small,.bs-progress__label--medium{font-size:var(--bs-progress-label-font-size-sm);line-height:calc(var(--bs-progress-label-line-height-sm) * 1px)}.bs-progress__label--large{font-size:var(--bs-progress-label-font-size-lg);line-height:calc(var(--bs-progress-label-line-height-lg) * 1px)}`;
|
|
4
4
|
|
|
@@ -55,7 +55,7 @@ const BsProgress = class {
|
|
|
55
55
|
const isDeterminate = this.type === 'determinate';
|
|
56
56
|
const value = this.clampedValue;
|
|
57
57
|
const dashOffset = circumference * (1 - value / 100);
|
|
58
|
-
return (h("div", { key: '
|
|
58
|
+
return (h("div", { key: '9d9c371ea92f67811e9ab927d346f2bece833cf5', part: "container", class: "bs-progress" }, h("div", { key: '5753f1db2b3f79a55b2ff7936cdb836f10c29bc3', class: "bs-progress__box", style: { width: `${diameter}px`, height: `${diameter}px` }, role: "progressbar", "aria-label": this.ariaLabel, "aria-valuemin": isDeterminate ? '0' : undefined, "aria-valuemax": isDeterminate ? '100' : undefined, "aria-valuenow": isDeterminate ? String(value) : undefined, "aria-busy": isDeterminate ? undefined : 'true' }, isDeterminate ? (h("svg", { class: "bs-progress__ring", width: diameter, height: diameter, viewBox: `0 0 ${diameter} ${diameter}` }, h("circle", { part: "track", class: "bs-progress__track", cx: diameter / 2, cy: diameter / 2, r: radius, "stroke-width": this.strokeWidth, fill: "none" }), h("circle", { part: "arc", class: "bs-progress__arc", cx: diameter / 2, cy: diameter / 2, r: radius, "stroke-width": this.strokeWidth, fill: "none", "stroke-linecap": "round", "stroke-dasharray": circumference, "stroke-dashoffset": dashOffset }))) : (
|
|
59
59
|
// Figma's indeterminate ring is a fading "comet tail" (transparent -> solid color),
|
|
60
60
|
// not a flat-colored partial arc -- SVG has no angular/conic gradient primitive, so a
|
|
61
61
|
// CSS conic-gradient (color varying by angle) + a radial-gradient mask (carving the
|
|
@@ -64,7 +64,7 @@ const BsProgress = class {
|
|
|
64
64
|
h("div", { part: "arc", class: "bs-progress__spinner", style: {
|
|
65
65
|
'--bs-progress-spinner-stroke-width': `${this.strokeWidth}px`,
|
|
66
66
|
'--bs-progress-spinner-sweep': `${INDETERMINATE_SWEEP_DEGREES}deg`,
|
|
67
|
-
} }))), isDeterminate && this.showLabel && (h("span", { key: '
|
|
67
|
+
} }))), isDeterminate && this.showLabel && (h("span", { key: '68381d4570b3f4d29d4b671f5069c7f4c02669e7', part: "label", class: `bs-progress__label bs-progress__label--${this.size}` }, value, "%"))));
|
|
68
68
|
}
|
|
69
69
|
};
|
|
70
70
|
BsProgress.style = bsProgressCss();
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h } from './index-DqQRXQMx.js';
|
|
2
|
+
|
|
3
|
+
const bsQrCodeCss = () => `:host{display:inline-block;max-width:100%;--bs-qr-code-bg:var(--bs-paper-bg-base);--bs-qr-code-border:var(--bs-border-default);--bs-qr-code-radius:var(--bs-border-radius-150);--bs-qr-code-quiet-zone-bg:var(--bs-text-static-white);--bs-qr-code-module-color:var(--bs-text-static-black);--bs-qr-code-qr-border:var(--bs-border-default);--bs-qr-code-qr-radius:var(--bs-border-radius-100);--bs-qr-code-color:var(--bs-text-default);--bs-qr-code-color-secondary:var(--bs-text-secondary);--bs-qr-code-url-bg:var(--bs-surface-container);--bs-qr-code-url-radius:6px;--bs-qr-code-logo-size:20%;--bs-qr-code-padding:var(--bs-spacing-300);--bs-qr-code-gap:var(--bs-spacing-200);--bs-qr-code-code-size:200px;--bs-qr-code-quiet-zone:var(--bs-spacing-150);--bs-qr-code-amount-size:var(--bs-font-size-2xl);--bs-qr-code-amount-line-height:32px;--bs-qr-code-download-min-width:168px;--bs-qr-code-copy-min-width:126px}:host([size='sm']){--bs-qr-code-padding:var(--bs-spacing-200);--bs-qr-code-gap:var(--bs-spacing-150);--bs-qr-code-code-size:128px;--bs-qr-code-quiet-zone:var(--bs-spacing-100);--bs-qr-code-amount-size:var(--bs-font-size-xl);--bs-qr-code-amount-line-height:24px;--bs-qr-code-download-min-width:139px;--bs-qr-code-copy-min-width:102px}:host([size='lg']){--bs-qr-code-padding:var(--bs-spacing-400);--bs-qr-code-gap:var(--bs-spacing-250);--bs-qr-code-code-size:288px;--bs-qr-code-amount-size:32px;--bs-qr-code-amount-line-height:40px}.bs-qr-code{position:relative;width:fit-content;max-width:100%;color:var(--bs-qr-code-color);--bs-card-bg:var(--bs-qr-code-bg);--bs-card-radius:var(--bs-qr-code-radius);--bs-card-padding:var(--bs-qr-code-padding);--bs-card-border-width:1px;--bs-card-border-color:var(--bs-qr-code-border);--bs-card-shadow:none}.bs-qr-code__body{display:flex;flex-direction:column;align-items:center;gap:var(--bs-qr-code-gap)}.bs-qr-code__close{position:absolute;top:var(--bs-spacing-100);inset-inline-end:var(--bs-spacing-100)}.bs-qr-code__close svg{width:20px;height:20px}.bs-qr-code__head{display:flex;flex-direction:column;align-items:center;gap:2px;width:272px;max-width:100%;text-align:center}.bs-qr-code__head p,.bs-qr-code__amount p,.bs-qr-code__overlay p{margin:0}.bs-qr-code__title{font-size:var(--bs-font-size-2xl);font-weight:var(--bs-font-weight-bold);line-height:32px}.bs-qr-code__description{color:var(--bs-qr-code-color-secondary);font-size:var(--bs-font-size-md);line-height:24px}.bs-qr-code__qr{position:relative;box-sizing:border-box;flex:none;padding:var(--bs-qr-code-quiet-zone);border:1px solid var(--bs-qr-code-qr-border);border-radius:var(--bs-qr-code-qr-radius);background:var(--bs-qr-code-quiet-zone-bg);overflow:hidden}.bs-qr-code__code{position:relative;width:var(--bs-qr-code-code-size);height:var(--bs-qr-code-code-size);background:var(--bs-qr-code-quiet-zone-bg);color:var(--bs-qr-code-module-color)}.bs-qr-code__matrix,::slotted([slot='code']){display:block;width:100%;height:100%}.bs-qr-code__logo{position:absolute;top:50%;left:50%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--bs-qr-code-logo-size);height:var(--bs-qr-code-logo-size);padding:4px;border-radius:var(--bs-border-radius-50);background:var(--bs-qr-code-quiet-zone-bg);transform:translate(-50%, -50%)}.bs-qr-code__logo{display:none}.bs-qr-code__logo--visible{display:flex}::slotted([slot='logo']){width:100%;height:100%;object-fit:contain}.bs-qr-code__overlay{position:absolute;inset:-1px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bs-spacing-100);padding:var(--bs-spacing-150);overflow:hidden;text-align:center;white-space:nowrap}.bs-qr-code__overlay--loading{background:var(--bs-color-neutral-container)}.bs-qr-code__overlay--error{background:var(--bs-surface-container)}.bs-qr-code__overlay--expired,.bs-qr-code__overlay--scanned{background:var(--bs-surface-base)}.bs-qr-code__overlay-caption{color:var(--bs-qr-code-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px}.bs-qr-code__overlay-text{color:var(--bs-qr-code-color);font-size:var(--bs-font-size-sm);font-weight:var(--bs-font-weight-medium);line-height:20px}.bs-qr-code__overlay-text--strong{font-weight:var(--bs-font-weight-semibold)}.bs-qr-code__status-icon{width:32px;height:32px;color:var(--bs-qr-code-color-secondary)}.bs-qr-code__status-icon--error{color:var(--bs-icon-error)}.bs-qr-code__status-icon--scanned{width:44px;height:44px;color:var(--bs-icon-success)}.bs-qr-code__overlay bs-button{--bs-button-height-md:var(--bs-spacing-550)}.bs-qr-code__amount{display:flex;flex-direction:column;align-items:center;white-space:nowrap}.bs-qr-code__amount-label{color:var(--bs-qr-code-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px}.bs-qr-code__amount-value{font-size:var(--bs-qr-code-amount-size);font-weight:var(--bs-font-weight-bold);line-height:var(--bs-qr-code-amount-line-height)}.bs-qr-code__url{padding:4px 10px;border-radius:var(--bs-qr-code-url-radius);background:var(--bs-qr-code-url-bg);font-size:var(--bs-font-size-xs);line-height:16px;text-align:center;white-space:nowrap}.bs-qr-code__actions{display:flex;align-items:center;gap:var(--bs-spacing-100)}.bs-qr-code__actions bs-button{display:inline-flex}.bs-qr-code__actions bs-button::part(button){width:100%}.bs-qr-code__actions bs-button[part='download']{min-width:var(--bs-qr-code-download-min-width)}.bs-qr-code__actions bs-button[part='copy']{min-width:var(--bs-qr-code-copy-min-width)}:host([size='sm']) .bs-qr-code__actions bs-button{--bs-button-height-sm:var(--bs-spacing-400)}`;
|
|
4
|
+
|
|
5
|
+
const BsQrCode = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.bsDownload = createEvent(this, "bsDownload");
|
|
9
|
+
this.bsCopy = createEvent(this, "bsCopy");
|
|
10
|
+
this.bsRetry = createEvent(this, "bsRetry");
|
|
11
|
+
this.bsRefresh = createEvent(this, "bsRefresh");
|
|
12
|
+
this.bsClose = createEvent(this, "bsClose");
|
|
13
|
+
}
|
|
14
|
+
/** `default` shows the URL under the code; `payment` shows the amount instead. */
|
|
15
|
+
type = 'default';
|
|
16
|
+
/** Card size: `sm`, `md` (default) or `lg`. */
|
|
17
|
+
size = 'md';
|
|
18
|
+
/** `default`, or one of the overlay states: `loading`, `error`, `expired`, `scanned`. */
|
|
19
|
+
state = 'default';
|
|
20
|
+
/** Heading text. */
|
|
21
|
+
heading = 'Share the order';
|
|
22
|
+
/** Line under the heading. */
|
|
23
|
+
description;
|
|
24
|
+
/** The link shown as text under the code (`type="default"`), and copied by Copy link. */
|
|
25
|
+
url;
|
|
26
|
+
/** The amount shown under the code (`type="payment"`), e.g. `"148,00 kr"`. */
|
|
27
|
+
amount;
|
|
28
|
+
/** Small label above the amount. */
|
|
29
|
+
amountLabel = 'Total';
|
|
30
|
+
/** Text of the expiry chip, e.g. `"Expires in 04:59"`. No chip when empty. */
|
|
31
|
+
expiry;
|
|
32
|
+
/** The code as a square matrix of modules, `true` = dark. Must be set as a JS property, not an
|
|
33
|
+
* HTML attribute -- see CONVENTIONS.md's non-string props rule. Ignored when the `code` slot is
|
|
34
|
+
* used. */
|
|
35
|
+
matrix;
|
|
36
|
+
/** Accessible name for the code image, e.g. `"QR code for order SO-10482"`. Applies to `matrix`;
|
|
37
|
+
* give a slotted `<img>` its own `alt`. */
|
|
38
|
+
codeLabel = 'QR code';
|
|
39
|
+
/** Shows a close button in the corner. */
|
|
40
|
+
closable = false;
|
|
41
|
+
/** Hides the Download and Copy link row. */
|
|
42
|
+
hideActions = false;
|
|
43
|
+
/** Hides the Download button. */
|
|
44
|
+
hideDownload = false;
|
|
45
|
+
/** Hides the Copy link button. */
|
|
46
|
+
hideCopy = false;
|
|
47
|
+
/** Label of the Download button. */
|
|
48
|
+
downloadLabel = 'Download PNG';
|
|
49
|
+
/** Label of the Copy link button. */
|
|
50
|
+
copyLabel = 'Copy link';
|
|
51
|
+
/** Label of the Retry button (`error`). */
|
|
52
|
+
retryLabel = 'Retry';
|
|
53
|
+
/** Label of the Refresh button (`expired`). */
|
|
54
|
+
refreshLabel = 'Refresh';
|
|
55
|
+
/** Text in the `loading` overlay. */
|
|
56
|
+
loadingLabel = 'Generating code';
|
|
57
|
+
/** Text in the `error` overlay. */
|
|
58
|
+
errorLabel = "Couldn't load code";
|
|
59
|
+
/** Text in the `expired` overlay. */
|
|
60
|
+
expiredLabel = 'Code expired';
|
|
61
|
+
/** Text in the `scanned` overlay. Defaults to "Payment received" for `type="payment"` and
|
|
62
|
+
* "Scanned" otherwise. */
|
|
63
|
+
scannedLabel;
|
|
64
|
+
/** Accessible name of the close button. */
|
|
65
|
+
closeLabel = 'Close';
|
|
66
|
+
/** Fires when Download is pressed. The component doesn't render a file; produce it from the code
|
|
67
|
+
* you generated. */
|
|
68
|
+
bsDownload;
|
|
69
|
+
/** Fires when Copy link is pressed, after the component tries to put `url` on the clipboard.
|
|
70
|
+
* `{ url }` is the `url` prop. */
|
|
71
|
+
bsCopy;
|
|
72
|
+
/** Fires when Retry is pressed (`error` state). Set `state` back to `loading` yourself. */
|
|
73
|
+
bsRetry;
|
|
74
|
+
/** Fires when Refresh is pressed (`expired` state). Set `state` back to `loading` yourself. */
|
|
75
|
+
bsRefresh;
|
|
76
|
+
/** Fires when the close button is pressed. */
|
|
77
|
+
bsClose;
|
|
78
|
+
/** True while something is assigned to the `logo` slot, so the white plate behind it only shows then. */
|
|
79
|
+
hasLogo = false;
|
|
80
|
+
onCopy = async () => {
|
|
81
|
+
if (this.url) {
|
|
82
|
+
try {
|
|
83
|
+
await navigator.clipboard?.writeText(this.url);
|
|
84
|
+
}
|
|
85
|
+
catch {
|
|
86
|
+
// Clipboard can be blocked (insecure context, permissions); the event still fires so the
|
|
87
|
+
// consumer can fall back.
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
this.bsCopy.emit({ url: this.url });
|
|
91
|
+
};
|
|
92
|
+
renderMatrix() {
|
|
93
|
+
const m = this.matrix;
|
|
94
|
+
if (!m || !m.length)
|
|
95
|
+
return null;
|
|
96
|
+
const n = m.length;
|
|
97
|
+
// One path, one horizontal run per row of consecutive dark modules.
|
|
98
|
+
let d = '';
|
|
99
|
+
for (let y = 0; y < n; y++) {
|
|
100
|
+
let x = 0;
|
|
101
|
+
while (x < n) {
|
|
102
|
+
if (!m[y][x]) {
|
|
103
|
+
x++;
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
const start = x;
|
|
107
|
+
while (x < n && m[y][x])
|
|
108
|
+
x++;
|
|
109
|
+
d += `M${start} ${y}h${x - start}v1h-${x - start}z`;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return (h("svg", { class: "bs-qr-code__matrix", viewBox: `0 0 ${n} ${n}`, "shape-rendering": "crispEdges", role: "img", "aria-label": this.codeLabel }, h("path", { d: d, fill: "currentColor" })));
|
|
113
|
+
}
|
|
114
|
+
renderOverlay() {
|
|
115
|
+
const { state } = this;
|
|
116
|
+
if (state === 'default')
|
|
117
|
+
return null;
|
|
118
|
+
if (state === 'loading') {
|
|
119
|
+
return (h("div", { part: "overlay", class: "bs-qr-code__overlay bs-qr-code__overlay--loading", role: "status" }, h("bs-progress", { type: "indeterminate", size: "medium", ariaLabel: this.loadingLabel }), h("p", { class: "bs-qr-code__overlay-caption" }, this.loadingLabel)));
|
|
120
|
+
}
|
|
121
|
+
if (state === 'error') {
|
|
122
|
+
return (h("div", { part: "overlay", class: "bs-qr-code__overlay bs-qr-code__overlay--error", role: "alert" }, h("svg", { class: "bs-qr-code__status-icon bs-qr-code__status-icon--error", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "aria-hidden": "true" }, h("circle", { cx: "12", cy: "12", r: "9" }), h("path", { d: "M12 7.5V12.5" }), h("path", { d: "M12 16.2V16.3" })), h("p", { class: "bs-qr-code__overlay-text" }, this.errorLabel), h("bs-button", { variant: "outlined", onClick: () => this.bsRetry.emit() }, h(RefreshIcon, { slot: "icon" }), this.retryLabel)));
|
|
123
|
+
}
|
|
124
|
+
if (state === 'expired') {
|
|
125
|
+
return (h("div", { part: "overlay", class: "bs-qr-code__overlay bs-qr-code__overlay--expired", role: "status" }, h("svg", { class: "bs-qr-code__status-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("circle", { cx: "12", cy: "12", r: "9" }), h("path", { d: "M12 7V12L15 14" })), h("p", { class: "bs-qr-code__overlay-text" }, this.expiredLabel), h("bs-button", { variant: "primary", onClick: () => this.bsRefresh.emit() }, h(RefreshIcon, { slot: "icon" }), this.refreshLabel)));
|
|
126
|
+
}
|
|
127
|
+
return (h("div", { part: "overlay", class: "bs-qr-code__overlay bs-qr-code__overlay--scanned", role: "status" }, h("svg", { class: "bs-qr-code__status-icon bs-qr-code__status-icon--scanned", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("circle", { cx: "12", cy: "12", r: "9" }), h("path", { d: "M8 12.5L10.8 15.3L16 9.5" })), h("p", { class: "bs-qr-code__overlay-text bs-qr-code__overlay-text--strong" }, this.scannedLabel ?? (this.type === 'payment' ? 'Payment received' : 'Scanned'))));
|
|
128
|
+
}
|
|
129
|
+
render() {
|
|
130
|
+
const { state } = this;
|
|
131
|
+
const interactive = state === 'default';
|
|
132
|
+
const showActions = !this.hideActions && state !== 'scanned';
|
|
133
|
+
const buttonSize = this.size === 'sm' ? 'sm' : 'md';
|
|
134
|
+
// Figma shows the unavailable actions as filled-disabled (grey) rather than a faded outline,
|
|
135
|
+
// which is what bs-button's disabled primary looks like.
|
|
136
|
+
return (h("bs-card", { key: '9224eadd42ddc8b59466a301ce72bf0311e00edd', part: "container", class: "bs-qr-code", surface: "base" }, this.closable && (h("bs-icon-button", { key: '1fd99ef2996a876ea8fe5ae237128c8059bfccbf', part: "close", class: "bs-qr-code__close", variant: "subtle", size: "sm", ariaLabel: this.closeLabel, onClick: () => this.bsClose.emit() }, h("svg", { key: 'e38bde58cd6532c3ca56b2920a42dfc157517484', viewBox: "0 0 20 20", fill: "none", stroke: "currentColor", "stroke-width": "1.6", "stroke-linecap": "round", "aria-hidden": "true" }, h("path", { key: '6d6c93934c724a1cc0b8b66bdfd129650b1f9024', d: "M5 5L15 15M15 5L5 15" })))), h("div", { key: 'b8f2478eeb88a2d273f61f819679cb752e894a5a', class: "bs-qr-code__body" }, h("div", { key: '7e51f3bd0cde05566bb33c4fbe2478795ff3fe26', part: "head", class: "bs-qr-code__head" }, h("p", { key: '1d0956f6fc3e0f0658b5934a140e56ef25ae1f6b', part: "title", class: "bs-qr-code__title" }, this.heading), this.description && (h("p", { key: 'f43da3546accd752a856e1202baaff0043142ce4', part: "description", class: "bs-qr-code__description" }, this.description))), h("div", { key: '3b8dcdbb35c20e71f9c9e41ad4e2ae939e8dc0e7', part: "qr", class: "bs-qr-code__qr" }, h("div", { key: '3c86af5e70b746b2dc8ce9c7adf58649314a985d', part: "code", class: "bs-qr-code__code" }, h("slot", { key: '32d0dc8670a6045220b9546731ae5aef48d355df', name: "code" }, this.renderMatrix()), h("div", { key: 'ffba953b953bef8a8765955a5db4b9fba1e2cec8', part: "logo", class: { 'bs-qr-code__logo': true, 'bs-qr-code__logo--visible': this.hasLogo } }, h("slot", { key: 'b6e213f3a624cf8a6cf0b344c6ffc7b1f2c1be34', name: "logo", onSlotchange: (ev) => (this.hasLogo = ev.target.assignedNodes().length > 0) }))), this.renderOverlay()), this.type === 'payment' && this.amount && (h("div", { key: '56155722b1cf13d21850bae43e4323ddc0ed8635', part: "amount", class: "bs-qr-code__amount" }, this.amountLabel && h("p", { key: 'd1f90a299ef1f8d5c896a31147612ceef4485339', class: "bs-qr-code__amount-label" }, this.amountLabel), h("p", { key: '40ef657d7bc01e58089bf55044fb0ef8556386ba', class: "bs-qr-code__amount-value" }, this.amount))), this.type === 'default' && this.url && (h("div", { key: '5d7a7d2537752948631098567c732582e9e34d92', part: "url", class: "bs-qr-code__url" }, this.url)), this.expiry && (h("bs-chip-informative", { key: 'e040513edd4c24d60e41c4e09ed0b97be11e24b3', part: "expiry", size: "md" }, h(TimerIcon, { key: '0c1b8052bed0bddd2e84bc3ca9929008f781213c', slot: "icon" }), this.expiry)), showActions && (h("div", { key: 'f30073c9b79df1aec27f361d5b94e92c8aa8f7fc', part: "actions", class: "bs-qr-code__actions" }, !this.hideDownload && (h("bs-button", { key: '12b6b333efed74dfb76360441838de2a872f3c4b', part: "download", variant: interactive ? 'outlined' : 'primary', size: buttonSize, disabled: !interactive, onClick: () => interactive && this.bsDownload.emit() }, h(DownloadIcon, { key: '3c831e241288ccce97fb77a3d42c0c3de58e6734', slot: "icon" }), this.downloadLabel)), !this.hideCopy && (h("bs-button", { key: '260deebae80a52c700dc2532883a706363da0caa', part: "copy", variant: interactive ? 'outlined' : 'primary', size: buttonSize, disabled: !interactive, onClick: () => interactive && this.onCopy() }, h(CopyIcon, { key: '8a09b1b4a06d492449f563aa73c2b2191fb29680', slot: "icon" }), this.copyLabel)))))));
|
|
137
|
+
}
|
|
138
|
+
};
|
|
139
|
+
const iconProps = { viewBox: '0 0 24 24', fill: 'none', stroke: 'currentColor', 'stroke-width': '2', 'stroke-linecap': 'round', 'stroke-linejoin': 'round', 'aria-hidden': 'true' };
|
|
140
|
+
const DownloadIcon = (props) => (h("svg", { ...iconProps, ...props }, h("path", { d: "M12 4V15" }), h("path", { d: "M7.5 11L12 15.5L16.5 11" }), h("path", { d: "M4.5 19.5H19.5" })));
|
|
141
|
+
const CopyIcon = (props) => (h("svg", { ...iconProps, ...props }, h("rect", { x: "8", y: "8", width: "11.5", height: "11.5", rx: "1.5" }), h("path", { d: "M16 8V5.5A1.5 1.5 0 0 0 14.5 4H5.5A1.5 1.5 0 0 0 4 5.5V14.5A1.5 1.5 0 0 0 5.5 16H8" })));
|
|
142
|
+
const RefreshIcon = (props) => (h("svg", { ...iconProps, ...props }, h("path", { d: "M19.5 12A7.5 7.5 0 1 1 17.3 6.7" }), h("path", { d: "M19.5 4.5V8.5H15.5" })));
|
|
143
|
+
const TimerIcon = (props) => (h("svg", { ...iconProps, ...props }, h("circle", { cx: "12", cy: "13.5", r: "7" }), h("path", { d: "M12 10V13.5L14 15" }), h("path", { d: "M9.5 3.5H14.5" })));
|
|
144
|
+
BsQrCode.style = bsQrCodeCss();
|
|
145
|
+
|
|
146
|
+
export { BsQrCode as bs_qr_code };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, a as getElement, h } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, a as getElement, h } from './index-DqQRXQMx.js';
|
|
2
2
|
|
|
3
3
|
const bsRadioCss = () => `:host{display:inline-block;--bs-radio-size:var(--bs-spacing-300);--bs-radio-border-width:2px;--bs-radio-state-layer-size:40px;--bs-radio-hit-area-size:48px;--bs-radio-gap:var(--bs-spacing-100)}.bs-radio{position:relative;display:inline-flex;align-items:center;gap:var(--bs-radio-gap);font-family:inherit;cursor:pointer}.bs-radio--disabled{cursor:not-allowed}.bs-radio__input{position:absolute;top:0;inset-inline-start:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}.bs-radio__input:disabled{cursor:not-allowed}.bs-radio__hit-area{box-sizing:border-box;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--bs-radio-hit-area-size);height:var(--bs-radio-hit-area-size)}.bs-radio__state-layer{box-sizing:border-box;display:flex;align-items:center;justify-content:center;width:var(--bs-radio-state-layer-size);height:var(--bs-radio-state-layer-size);border-radius:50%;background:var(--bs-radio-bg-default)}.bs-radio__circle{box-sizing:border-box;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:var(--bs-radio-size);height:var(--bs-radio-size);border:var(--bs-radio-border-width) solid var(--bs-radio-enabled-border-default);border-radius:50%;background:transparent}.bs-radio__circle--selected{border-color:var(--bs-radio-selected-border-default)}.bs-radio__dot{width:50%;height:50%;border-radius:50%;background:var(--bs-radio-icon-checked)}.bs-radio__input:hover:not(:disabled)~.bs-radio__hit-area .bs-radio__state-layer{background:var(--bs-radio-bg-hover)}.bs-radio__input:hover:not(:disabled)~.bs-radio__hit-area .bs-radio__circle{border-color:var(--bs-radio-enabled-border-hover)}.bs-radio__input:hover:not(:disabled)~.bs-radio__hit-area .bs-radio__circle--selected{border-color:var(--bs-radio-selected-border-hover)}.bs-radio__input:hover:not(:disabled)~.bs-radio__hit-area .bs-radio__circle--selected .bs-radio__dot{background:var(--bs-radio-icon-hover)}.bs-radio__input:focus-visible~.bs-radio__hit-area .bs-radio__state-layer{background:var(--bs-radio-bg-focus);outline:2px solid var(--bs-radio-focus-ring);outline-offset:2px}.bs-radio__input:focus-visible~.bs-radio__hit-area .bs-radio__circle{border-color:var(--bs-radio-enabled-border-focus)}.bs-radio__input:focus-visible~.bs-radio__hit-area .bs-radio__circle--selected{border-color:var(--bs-radio-selected-border-focus)}.bs-radio__input:active:not(:disabled)~.bs-radio__hit-area .bs-radio__state-layer{background:var(--bs-radio-bg-pressed)}.bs-radio__input:active:not(:disabled)~.bs-radio__hit-area .bs-radio__circle{border-color:var(--bs-radio-enabled-border-pressed)}.bs-radio__input:active:not(:disabled)~.bs-radio__hit-area .bs-radio__circle--selected{border-color:var(--bs-radio-selected-border-pressed)}.bs-radio__input:disabled~.bs-radio__hit-area .bs-radio__state-layer{background:var(--bs-radio-bg-disabled)}.bs-radio__input:disabled~.bs-radio__hit-area .bs-radio__circle{border-color:var(--bs-radio-border-disabled)}.bs-radio__input:disabled~.bs-radio__hit-area .bs-radio__circle--selected .bs-radio__dot{background:var(--bs-radio-icon-disabled)}.bs-radio__label{font-size:var(--bs-font-size-md);color:var(--bs-radio-label-default)}.bs-radio--disabled .bs-radio__label{color:var(--bs-radio-label-disabled)}@media (forced-colors: active){.bs-radio__circle{border:2px solid ButtonText;forced-color-adjust:none;background:Canvas}.bs-radio__dot{background:Highlight}}`;
|
|
4
4
|
|
|
@@ -98,7 +98,7 @@ const BsRadio = class {
|
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
render() {
|
|
101
|
-
return (h("label", { key: '
|
|
101
|
+
return (h("label", { key: '62ae7bf3a50e1b0b6af17208685a5c7ffe6f5e5e', class: `bs-radio ${this.disabled ? 'bs-radio--disabled' : ''}` }, h("input", { key: '01b09c6a36c9765875d34abb96772554990ce095', class: "bs-radio__input", type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, tabIndex: this.checked || !this.groupHasChecked ? 0 : -1, onKeyDown: this.onKeyDown, onChange: this.onChange }), h("span", { key: 'd56c108212d17d617e7abadc6189fd4b86dba233', class: "bs-radio__hit-area" }, h("span", { key: '63df5b0139573c1a7cbf64cf1c2e15009aeae8e2', class: "bs-radio__state-layer" }, h("span", { key: '43c32995245eba557d41a8c9a65ba9716d4a9766', part: "circle", class: `bs-radio__circle ${this.checked ? 'bs-radio__circle--selected' : ''}` }, this.checked && h("span", { key: '6ef4edf491bcaeac94b639abf5ef497e98cb8119', part: "dot", class: "bs-radio__dot" })))), h("span", { key: '60a21c23fdca6d92cbaad1bf69bd3c3c8441d24f', part: "label", class: "bs-radio__label" }, h("slot", { key: 'a920122f7b88b07ef743735e50f9ad71042be308' }))));
|
|
102
102
|
}
|
|
103
103
|
static get delegatesFocus() { return true; }
|
|
104
104
|
static get formAssociated() { return true; }
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { h, r as registerInstance, c as createEvent, a as getElement } from './index-DqQRXQMx.js';
|
|
2
|
+
|
|
3
|
+
const bsSessionTimeoutCss = () => `:host{display:block;width:var(--bs-session-timeout-width);min-width:var(--bs-session-timeout-min-width);max-width:var(--bs-session-timeout-max-width);--bs-session-timeout-width:440px;--bs-session-timeout-min-width:380px;--bs-session-timeout-max-width:560px;--bs-session-timeout-bg:var(--bs-paper-bg-base);--bs-session-timeout-radius:var(--bs-border-radius-150);--bs-session-timeout-padding:var(--bs-spacing-200);--bs-session-timeout-gap:var(--bs-spacing-150);--bs-session-timeout-shadow:0 8px 8px var(--bs-elevation-higher);--bs-session-timeout-color:var(--bs-text-default);--bs-session-timeout-color-secondary:var(--bs-text-secondary);--bs-session-timeout-countdown-bg:var(--bs-surface-container);--bs-session-timeout-countdown-fill:var(--bs-color-warning-default);--bs-session-timeout-countdown-track:var(--bs-surface-hover);--bs-session-timeout-rule:var(--bs-border-default)}.bs-session-timeout{--bs-card-bg:var(--bs-session-timeout-bg);--bs-card-radius:var(--bs-session-timeout-radius);--bs-card-padding:var(--bs-session-timeout-padding);--bs-card-shadow:var(--bs-session-timeout-shadow);color:var(--bs-session-timeout-color)}.bs-session-timeout__body{display:flex;flex-direction:column;align-items:stretch;gap:var(--bs-session-timeout-gap)}bs-icon-tile{align-self:flex-start}.bs-session-timeout__glyph,::slotted([slot='icon']){width:24px;height:24px}.bs-session-timeout__heading-group{display:flex;flex-direction:column;gap:6px}.bs-session-timeout__heading{margin:0;font-size:var(--bs-font-size-2xl);font-weight:var(--bs-font-weight-bold);line-height:32px}.bs-session-timeout__description{margin:0;color:var(--bs-session-timeout-color-secondary);font-size:var(--bs-font-size-md);line-height:24px}.bs-session-timeout__countdown{display:flex;flex-direction:column;gap:var(--bs-spacing-100);padding:var(--bs-spacing-200);border-radius:var(--bs-border-radius-100);background:var(--bs-session-timeout-countdown-bg)}.bs-session-timeout__countdown bs-progress-linear{--bs-progress-linear-fill:var(--bs-session-timeout-countdown-fill);--bs-progress-linear-track:var(--bs-session-timeout-countdown-track)}.bs-session-timeout__time-row{display:flex;align-items:flex-end;gap:var(--bs-spacing-100)}.bs-session-timeout__time{font-size:var(--bs-font-size-3xl);font-weight:var(--bs-font-weight-bold);line-height:40px;font-variant-numeric:tabular-nums}.bs-session-timeout__unit{padding-bottom:6px;color:var(--bs-session-timeout-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px}.bs-session-timeout__saved{display:flex;align-items:center;gap:var(--bs-spacing-100);margin:0;color:var(--bs-session-timeout-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px}.bs-session-timeout__saved-icon{flex:none;width:16px;height:16px}.bs-session-timeout__actions{display:flex;align-items:center;justify-content:flex-end;gap:var(--bs-spacing-100)}.bs-session-timeout__actions bs-button,.bs-session-timeout__alternatives bs-button,.bs-session-timeout__block-button{--bs-button-height-md:var(--bs-spacing-550)}.bs-session-timeout__account{display:flex;align-items:center;gap:var(--bs-spacing-200);padding:var(--bs-spacing-150) var(--bs-spacing-200);border:1px solid var(--bs-session-timeout-rule);border-radius:var(--bs-border-radius-100)}.bs-session-timeout__account-text{display:flex;flex-direction:column;gap:var(--bs-spacing-25);min-width:0;line-height:24px}.bs-session-timeout__account-name{font-weight:var(--bs-font-weight-semibold)}.bs-session-timeout__account-email{overflow-wrap:anywhere}.bs-session-timeout__actions--stacked{flex-direction:column;align-items:stretch;justify-content:flex-start}.bs-session-timeout__block-button,.bs-session-timeout__alternatives bs-button,.bs-session-timeout__actions--stacked bs-button{--bs-button-width:100%}.bs-session-timeout__text-button{--bs-button-subtle-color:var(--bs-text-action);--bs-button-height-lg:var(--bs-spacing-600)}.bs-session-timeout__password{display:block;--bs-input-label-font-size:var(--bs-font-size-md);--bs-input-label-font-weight:var(--bs-font-weight-semibold);--bs-input-label-line-height:calc(var(--bs-line-height-body-md) * 1px);margin-bottom:calc(var(--bs-spacing-200) - var(--bs-session-timeout-gap))}.bs-session-timeout__divider{display:flex;align-items:center;gap:var(--bs-spacing-100);align-self:center;width:320px;max-width:100%;color:var(--bs-session-timeout-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px}.bs-session-timeout__rule{flex:1 1 0;height:1px;background:var(--bs-session-timeout-rule)}.bs-session-timeout__alternatives{display:grid;grid-template-columns:repeat(auto-fit, minmax(0, 1fr));gap:var(--bs-spacing-100)}.bs-session-timeout__sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}`;
|
|
4
|
+
|
|
5
|
+
const BsSessionTimeout = class {
|
|
6
|
+
constructor(hostRef) {
|
|
7
|
+
registerInstance(this, hostRef);
|
|
8
|
+
this.bsPrimary = createEvent(this, "bsPrimary");
|
|
9
|
+
this.bsSecondary = createEvent(this, "bsSecondary");
|
|
10
|
+
this.bsAlternative = createEvent(this, "bsAlternative");
|
|
11
|
+
this.bsCancel = createEvent(this, "bsCancel");
|
|
12
|
+
this.bsExpire = createEvent(this, "bsExpire");
|
|
13
|
+
}
|
|
14
|
+
get el() { return getElement(this); }
|
|
15
|
+
/** Which moment: `warning`, `signed-out` or `confirm-identity`. */
|
|
16
|
+
type = 'warning';
|
|
17
|
+
/** Heading. Defaults per `type`. */
|
|
18
|
+
heading;
|
|
19
|
+
/** HTML heading level, 1-6. */
|
|
20
|
+
headingLevel = 2;
|
|
21
|
+
/** Paragraph under the heading. Defaults per `type`. */
|
|
22
|
+
description;
|
|
23
|
+
/** Hides the icon tile. */
|
|
24
|
+
hideIcon = false;
|
|
25
|
+
/** Label of the primary button. Defaults per `type` ("Stay signed in", "Sign in again", "Confirm"). */
|
|
26
|
+
primaryLabel;
|
|
27
|
+
/** Label of the secondary button. Defaults per `type` ("Sign out now", "Use a different account"); none for
|
|
28
|
+
* `confirm-identity`. Set to an empty string to hide it. */
|
|
29
|
+
secondaryLabel;
|
|
30
|
+
// --- warning -------------------------------------------------------------------------------
|
|
31
|
+
/** Seconds left before the session ends (`warning`). Mutable: with `countdown` the component
|
|
32
|
+
* decrements it itself; otherwise drive it from your own timer. */
|
|
33
|
+
secondsLeft = 0;
|
|
34
|
+
/** Length of the warning window in seconds, for the bar: it shows `secondsLeft / totalSeconds`.
|
|
35
|
+
* Defaults to the `secondsLeft` it first had. */
|
|
36
|
+
totalSeconds = 0;
|
|
37
|
+
/** Count `secondsLeft` down once a second (`warning`), firing `bsExpire` at zero. */
|
|
38
|
+
countdown = false;
|
|
39
|
+
/** Text next to the time while a minute or more is left. */
|
|
40
|
+
timeLeftLabel = 'minutes left';
|
|
41
|
+
/** Text next to the time under a minute. */
|
|
42
|
+
secondsLeftLabel = 'seconds left';
|
|
43
|
+
/** Note under the countdown, e.g. "Your draft of INV-2041 is saved automatically." Hidden when empty. */
|
|
44
|
+
savedMessage;
|
|
45
|
+
// --- signed-out ----------------------------------------------------------------------------
|
|
46
|
+
/** Name of the account that was signed in (`signed-out`). */
|
|
47
|
+
accountName;
|
|
48
|
+
/** Email of the account that was signed in (`signed-out`). */
|
|
49
|
+
accountEmail;
|
|
50
|
+
/** Initials in the avatar (`signed-out`). Derived from `accountName` when not set. */
|
|
51
|
+
accountInitials;
|
|
52
|
+
// --- confirm-identity ----------------------------------------------------------------------
|
|
53
|
+
/** Label of the password field. */
|
|
54
|
+
passwordLabel = 'Password';
|
|
55
|
+
/** Error shown under the password field, e.g. after a wrong password. */
|
|
56
|
+
passwordError;
|
|
57
|
+
/** Label of the divider between the password and the alternatives. */
|
|
58
|
+
dividerLabel = 'or';
|
|
59
|
+
/** Other ways to confirm, shown as outlined buttons under the divider: `[{ id, label, icon? }]`.
|
|
60
|
+
* Defaults to a passkey and a BankID button. Must be set as a JS property, not an HTML attribute --
|
|
61
|
+
* see CONVENTIONS.md's non-string props rule. Set `[]` to hide them. */
|
|
62
|
+
alternatives = [
|
|
63
|
+
{ id: 'passkey', label: 'Use passkey', icon: 'fingerprint' },
|
|
64
|
+
{ id: 'bankid', label: 'Use BankID', icon: 'key' },
|
|
65
|
+
];
|
|
66
|
+
/** Label of the Cancel button (`confirm-identity`). Set to an empty string to hide it. */
|
|
67
|
+
cancelLabel = 'Cancel';
|
|
68
|
+
/** Fires when the primary button is pressed. For `confirm-identity` the detail is
|
|
69
|
+
* `{ password }`; otherwise it is empty. */
|
|
70
|
+
bsPrimary;
|
|
71
|
+
/** Fires when the secondary button is pressed. */
|
|
72
|
+
bsSecondary;
|
|
73
|
+
/** Fires when an alternative method is pressed (`confirm-identity`): `{ id }`. */
|
|
74
|
+
bsAlternative;
|
|
75
|
+
/** Fires when Cancel is pressed (`confirm-identity`). */
|
|
76
|
+
bsCancel;
|
|
77
|
+
/** Fires once when `countdown` reaches zero. */
|
|
78
|
+
bsExpire;
|
|
79
|
+
password = '';
|
|
80
|
+
announcement = '';
|
|
81
|
+
initialTotal = 0;
|
|
82
|
+
timer;
|
|
83
|
+
componentWillLoad() {
|
|
84
|
+
this.initialTotal = this.secondsLeft;
|
|
85
|
+
}
|
|
86
|
+
componentDidLoad() {
|
|
87
|
+
this.syncTimer();
|
|
88
|
+
}
|
|
89
|
+
disconnectedCallback() {
|
|
90
|
+
this.stopTimer();
|
|
91
|
+
}
|
|
92
|
+
connectedCallback() {
|
|
93
|
+
// Re-attached to the DOM after disconnectedCallback stopped the timer.
|
|
94
|
+
if (this.timer === undefined && this.el.isConnected)
|
|
95
|
+
this.syncTimer();
|
|
96
|
+
}
|
|
97
|
+
onTimerInputsChange() {
|
|
98
|
+
this.syncTimer();
|
|
99
|
+
}
|
|
100
|
+
stopTimer() {
|
|
101
|
+
if (this.timer !== undefined)
|
|
102
|
+
clearInterval(this.timer);
|
|
103
|
+
this.timer = undefined;
|
|
104
|
+
}
|
|
105
|
+
syncTimer() {
|
|
106
|
+
this.stopTimer();
|
|
107
|
+
if (!this.countdown || this.type !== 'warning' || this.secondsLeft <= 0)
|
|
108
|
+
return;
|
|
109
|
+
this.timer = setInterval(() => this.tick(), 1000);
|
|
110
|
+
}
|
|
111
|
+
tick() {
|
|
112
|
+
if (this.secondsLeft <= 0)
|
|
113
|
+
return;
|
|
114
|
+
this.secondsLeft = this.secondsLeft - 1;
|
|
115
|
+
// Announce sparingly: every second would drown a screen reader.
|
|
116
|
+
if ([60, 30, 10].includes(this.secondsLeft)) {
|
|
117
|
+
this.announcement = `${formatTime(this.secondsLeft)} ${this.secondsLeft >= 60 ? this.timeLeftLabel : this.secondsLeftLabel}`;
|
|
118
|
+
}
|
|
119
|
+
if (this.secondsLeft <= 0) {
|
|
120
|
+
this.stopTimer();
|
|
121
|
+
this.bsExpire.emit();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
get defaults() {
|
|
125
|
+
return DEFAULTS[this.type] ?? DEFAULTS.warning;
|
|
126
|
+
}
|
|
127
|
+
// --- rendering ---------------------------------------------------------------------------
|
|
128
|
+
renderHeading(heading, description) {
|
|
129
|
+
const level = Math.min(6, Math.max(1, Math.trunc(Number(this.headingLevel)) || 2));
|
|
130
|
+
return (h("div", { class: "bs-session-timeout__heading-group" }, h(`h${level}`, { part: 'heading', id: 'heading', class: { 'bs-session-timeout__heading': true } }, heading), description && (h("p", { part: "description", class: "bs-session-timeout__description" }, description))));
|
|
131
|
+
}
|
|
132
|
+
renderWarning() {
|
|
133
|
+
const total = this.totalSeconds > 0 ? this.totalSeconds : this.initialTotal || this.secondsLeft;
|
|
134
|
+
const percent = total > 0 ? Math.max(0, Math.min(100, (this.secondsLeft / total) * 100)) : 0;
|
|
135
|
+
const unit = this.secondsLeft >= 60 ? this.timeLeftLabel : this.secondsLeftLabel;
|
|
136
|
+
return (h("div", { part: "countdown", class: "bs-session-timeout__countdown" }, h("div", { class: "bs-session-timeout__time-row" }, h("span", { part: "time", class: "bs-session-timeout__time", role: "timer" }, formatTime(this.secondsLeft)), h("span", { class: "bs-session-timeout__unit" }, unit)), h("bs-progress-linear", { type: "determinate", size: "large", value: percent, showLabel: false, ariaLabel: `${formatTime(this.secondsLeft)} ${unit}` })));
|
|
137
|
+
}
|
|
138
|
+
renderAccount() {
|
|
139
|
+
const name = this.accountName ?? '';
|
|
140
|
+
const initials = this.accountInitials ?? name.split(/\s+/).filter(Boolean).slice(0, 2).map(w => w[0].toUpperCase()).join('');
|
|
141
|
+
if (!name && !this.accountEmail)
|
|
142
|
+
return null;
|
|
143
|
+
return (h("div", { part: "account", class: "bs-session-timeout__account" }, h("bs-avatar", { type: "initials", size: "lg", initials: initials, ariaLabel: name || this.accountEmail }), h("div", { class: "bs-session-timeout__account-text" }, name && h("span", { class: "bs-session-timeout__account-name" }, name), this.accountEmail && h("span", { class: "bs-session-timeout__account-email" }, this.accountEmail))));
|
|
144
|
+
}
|
|
145
|
+
renderConfirm() {
|
|
146
|
+
const alternatives = this.alternatives ?? [];
|
|
147
|
+
return [
|
|
148
|
+
h("bs-input", { part: "password", class: "bs-session-timeout__password", type: "password", label: this.passwordLabel, value: this.password, error: this.passwordError, onBsInput: (ev) => (this.password = ev.detail), onBsChange: (ev) => (this.password = ev.detail) }),
|
|
149
|
+
h("bs-button", { part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit({ password: this.password }) }, this.primaryLabel ?? this.defaults.primary),
|
|
150
|
+
alternatives.length > 0 && (h("div", { part: "divider", class: "bs-session-timeout__divider", role: "separator" }, h("span", { class: "bs-session-timeout__rule" }), h("span", { class: "bs-session-timeout__divider-label" }, this.dividerLabel), h("span", { class: "bs-session-timeout__rule" }))),
|
|
151
|
+
alternatives.length > 0 && (h("div", { part: "alternatives", class: "bs-session-timeout__alternatives" }, alternatives.map(a => (h("bs-button", { key: a.id, variant: "outlined", onClick: () => this.bsAlternative.emit({ id: a.id }) }, a.icon === 'key' ? h(KeyIcon, { slot: "icon" }) : h(FingerprintIcon, { slot: "icon" }), a.label))))),
|
|
152
|
+
this.cancelLabel && (h("bs-button", { part: "cancel", class: "bs-session-timeout__block-button bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsCancel.emit() }, this.cancelLabel)),
|
|
153
|
+
];
|
|
154
|
+
}
|
|
155
|
+
render() {
|
|
156
|
+
const d = this.defaults;
|
|
157
|
+
const heading = this.heading ?? d.heading;
|
|
158
|
+
const description = this.description ?? d.description;
|
|
159
|
+
const primary = this.primaryLabel ?? d.primary;
|
|
160
|
+
const secondary = this.secondaryLabel ?? d.secondary;
|
|
161
|
+
return (h("bs-card", { key: '45a056eabc2f536128ee6adbc6104d76793301f4', part: "container", class: "bs-session-timeout", surface: "base", role: "region", "aria-labelledby": "heading" }, h("div", { key: '035795cb4b5b0252212270236f048e3216d5d401', class: "bs-session-timeout__body" }, !this.hideIcon && (h("bs-icon-tile", { key: '857db99f58d07483d3c7dadd95e5951a645d0c59', part: "art", intent: d.intent, size: "lg" }, h("slot", { key: '41504daf4751677d9b1df0d211e719d8f441f5b2', name: "icon" }, d.glyph()))), this.renderHeading(heading, description), this.type === 'warning' && this.renderWarning(), this.type === 'warning' && this.savedMessage && (h("p", { key: '8ba10b3921db4b3cedbeb3d45bddfb89425bbdbb', part: "saved", class: "bs-session-timeout__saved" }, h(InfoIcon, { key: '44ea938fca553c67ae23628833471ceb98e63b06' }), h("span", { key: '672ebc96828437ffbc67711082fd7018611153b7' }, this.savedMessage))), this.type === 'signed-out' && this.renderAccount(), this.type === 'confirm-identity' && this.renderConfirm(), this.type === 'warning' && (primary || secondary) && (h("div", { key: '94221156fe30010bd0fbe4fb0146c95feceab50f', part: "actions", class: "bs-session-timeout__actions" }, secondary && (h("bs-button", { key: '09b14d30bc185a4644902e52100f0493da6109a0', part: "secondary", variant: "outlined", onClick: () => this.bsSecondary.emit() }, secondary)), primary && (h("bs-button", { key: 'be381ed4be453efd306b28da3e1f4b7f0740c024', part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)))), this.type === 'signed-out' && (primary || secondary) && (h("div", { key: '6b3b3622809165f70d83c68db409e2373ea1008e', part: "actions", class: "bs-session-timeout__actions bs-session-timeout__actions--stacked" }, primary && (h("bs-button", { key: 'f03d85c00ce0c18e14e26d2b4332ddb987b93f9e', part: "primary", class: "bs-session-timeout__block-button", variant: "primary", onClick: () => this.bsPrimary.emit() }, primary)), secondary && (h("bs-button", { key: 'a9bf95d13955110f7f36561b9acc3c89a5862de5', part: "secondary", class: "bs-session-timeout__text-button", variant: "subtle", size: "lg", onClick: () => this.bsSecondary.emit() }, secondary)))), h("div", { key: '69ada1eed62f93587b2c2f45aa1d3ea933ba682f', class: "bs-session-timeout__sr-only", role: "status", "aria-live": "polite" }, this.announcement))));
|
|
162
|
+
}
|
|
163
|
+
static get watchers() { return {
|
|
164
|
+
"countdown": [{
|
|
165
|
+
"onTimerInputsChange": 0
|
|
166
|
+
}],
|
|
167
|
+
"type": [{
|
|
168
|
+
"onTimerInputsChange": 0
|
|
169
|
+
}]
|
|
170
|
+
}; }
|
|
171
|
+
};
|
|
172
|
+
function pad(n) {
|
|
173
|
+
return String(n).padStart(2, '0');
|
|
174
|
+
}
|
|
175
|
+
function formatTime(total) {
|
|
176
|
+
const s = Math.max(0, Math.trunc(Number(total)) || 0);
|
|
177
|
+
return `${Math.floor(s / 60)}:${pad(s % 60)}`;
|
|
178
|
+
}
|
|
179
|
+
const svg = (children) => (props) => (h("svg", { class: "bs-session-timeout__glyph", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true", ...props }, children));
|
|
180
|
+
const TimerIcon = svg(h("g", null, h("circle", { cx: "12", cy: "13.5", r: "7" }), h("path", { d: "M12 10V13.5L14 15" }), h("path", { d: "M9.5 3.5H14.5" })));
|
|
181
|
+
const LockIcon = svg(h("g", null, h("rect", { x: "5", y: "10.5", width: "14", height: "9.5", rx: "1.5" }), h("path", { d: "M8.5 10.5V8A3.5 3.5 0 0 1 15.5 8V10.5" })));
|
|
182
|
+
const FingerprintIcon = svg(h("g", null, h("path", { d: "M6 10A6 6 0 0 1 18 10" }), h("path", { d: "M9 20C10 18 10 16 10 13A2 2 0 0 1 14 13C14 16 13.5 18.5 12.5 20.5" }), h("path", { d: "M6 13C6 15.5 5.5 17.5 4.5 19.5" }), h("path", { d: "M18 13C18 15.5 17.5 18 16.5 20" }), h("path", { d: "M12 13C12 15 11.5 17 10.8 18.5" })));
|
|
183
|
+
const KeyIcon = svg(h("g", null, h("circle", { cx: "8", cy: "15", r: "4" }), h("path", { d: "M11 12L19.5 3.5" }), h("path", { d: "M16 7L19 10" })));
|
|
184
|
+
const InfoIcon = () => (h("svg", { class: "bs-session-timeout__saved-icon", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", "stroke-width": "1.3", "stroke-linecap": "round", "aria-hidden": "true" }, h("circle", { cx: "8", cy: "8", r: "6.2" }), h("path", { d: "M8 7.2V11" }), h("path", { d: "M8 5V5.1" })));
|
|
185
|
+
const DEFAULTS = {
|
|
186
|
+
warning: {
|
|
187
|
+
intent: 'warning',
|
|
188
|
+
heading: 'You’ll be signed out soon',
|
|
189
|
+
description: 'For your security, we sign you out after a period without activity.',
|
|
190
|
+
primary: 'Stay signed in',
|
|
191
|
+
secondary: 'Sign out now',
|
|
192
|
+
glyph: () => h(TimerIcon, null),
|
|
193
|
+
},
|
|
194
|
+
'signed-out': {
|
|
195
|
+
intent: 'default',
|
|
196
|
+
heading: 'You’ve been signed out',
|
|
197
|
+
description: 'You were inactive for a while. Your work was saved and will be there when you sign in.',
|
|
198
|
+
primary: 'Sign in again',
|
|
199
|
+
secondary: 'Use a different account',
|
|
200
|
+
glyph: () => h(LockIcon, null),
|
|
201
|
+
},
|
|
202
|
+
'confirm-identity': {
|
|
203
|
+
intent: 'default',
|
|
204
|
+
heading: 'Confirm it’s you',
|
|
205
|
+
description: 'This action needs a fresh sign-in.',
|
|
206
|
+
primary: 'Confirm',
|
|
207
|
+
secondary: '',
|
|
208
|
+
glyph: () => h(FingerprintIcon, null),
|
|
209
|
+
},
|
|
210
|
+
};
|
|
211
|
+
BsSessionTimeout.style = bsSessionTimeoutCss();
|
|
212
|
+
|
|
213
|
+
export { BsSessionTimeout as bs_session_timeout };
|