@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
|
@@ -57,7 +57,7 @@ export class BsChatbotSourcesDrawer {
|
|
|
57
57
|
};
|
|
58
58
|
render() {
|
|
59
59
|
const displayCount = this.count ?? this.slottedCount;
|
|
60
|
-
return (h("div", { key: '
|
|
60
|
+
return (h("div", { key: '8d3a64121acfc35e2be62baf23ff3630a9193617', class: "bs-chatbot-sources-drawer", role: "region", "aria-label": this.heading }, h("div", { key: '384e3cb1c4bca85727d6f21260490b5119f29db5', class: "bs-chatbot-sources-drawer__header" }, h("div", { key: 'bd83473b5787fd2ca7a143c600de6fe74625ee80', class: "bs-chatbot-sources-drawer__title-group" }, h("h2", { key: '0c9285fa51de5f73f89c7d67786c5f4b5bde55ed', part: "heading", class: "bs-chatbot-sources-drawer__heading" }, this.heading), displayCount > 0 && (h("span", { key: 'a3725d4b2798e07972335ee7a8024cd2f8e73f99', part: "count", class: "bs-chatbot-sources-drawer__count" }, displayCount))), h("button", { key: 'afb5efa705e54a464e3237475a90987d7da5f506', type: "button", part: "collapse", class: "bs-chatbot-sources-drawer__collapse", "aria-label": "Collapse sources", onClick: this.onCollapseClick }, h("slot", { key: '8b886a8b6c2f60a4ca07978a8367f3366455bedc', name: "collapse-icon" }, h(CaretRightIcon, { key: 'bea232b218eca7f11c43a5c8884f78b0d5569cda' })))), h("div", { key: 'a417a26fb970a77002a56b7bd91645d18793ae69', part: "list", class: "bs-chatbot-sources-drawer__list" }, h("slot", { key: '018bf6454c7020b3d14122c1b9b86ae11072f1a7', onSlotchange: this.onSlotchange }))));
|
|
61
61
|
}
|
|
62
62
|
static get is() { return "bs-chatbot-sources-drawer"; }
|
|
63
63
|
static get encapsulation() { return "shadow"; }
|
package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js
CHANGED
|
@@ -45,7 +45,7 @@ export class BsChatbotSuggestionButton {
|
|
|
45
45
|
this.bsSelect.emit();
|
|
46
46
|
};
|
|
47
47
|
render() {
|
|
48
|
-
return (h("button", { key: '
|
|
48
|
+
return (h("button", { key: '159fda3cff7fa1295b9b9800d083706f282bbd0d', type: "button", part: "button", class: "bs-chatbot-suggestion-button", disabled: this.disabled, onClick: this.onClick }, h("slot", { key: 'a26be73a49a140f2e3017ff91a0727f83e00b67c' })));
|
|
49
49
|
}
|
|
50
50
|
static get is() { return "bs-chatbot-suggestion-button"; }
|
|
51
51
|
static get encapsulation() { return "shadow"; }
|
|
@@ -33,7 +33,7 @@ export class BsCheckboxSkeleton {
|
|
|
33
33
|
* (unusual) default `bs-checkbox` itself uses. */
|
|
34
34
|
size = 'lg';
|
|
35
35
|
render() {
|
|
36
|
-
return (h("span", { key: '
|
|
36
|
+
return (h("span", { key: '26d1c09678d3385cda9494440b116c190c0431cd', part: "container", class: "bs-checkbox-skeleton", role: "status", "aria-label": "Loading" }, h("span", { key: '62e597f01d199aadbbd2e725753ab82377c9b685', part: "box", class: `bs-checkbox-skeleton__box bs-checkbox-skeleton__box--${this.size}` }), h("span", { key: 'a36053e0d189edaae49fcf9340f28f70ed50a28b', part: "label", class: "bs-checkbox-skeleton__label" })));
|
|
37
37
|
}
|
|
38
38
|
static get is() { return "bs-checkbox-skeleton"; }
|
|
39
39
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
const sr = (root) => root.shadowRoot;
|
|
3
|
+
const part = (root, p) => sr(root).querySelector(`[part~="${p}"]`);
|
|
4
|
+
const text = (el) => (el?.textContent ?? '').trim();
|
|
5
|
+
const wait = (ms) => new Promise(r => setTimeout(r, ms));
|
|
6
|
+
describe('bs-cookie-consent', () => {
|
|
7
|
+
it('defaults to the banner, built on bs-card, with heading, text and the three actions', async () => {
|
|
8
|
+
const { root } = await render(h("bs-cookie-consent", null));
|
|
9
|
+
expect(root).toEqualAttribute('type', 'banner');
|
|
10
|
+
expect(part(root, 'container').tagName).toBe('BS-CARD');
|
|
11
|
+
expect(text(part(root, 'heading'))).toBe('Your cookie choices');
|
|
12
|
+
expect(text(part(root, 'customise'))).toBe('Customise');
|
|
13
|
+
expect(text(part(root, 'reject'))).toBe('Reject optional');
|
|
14
|
+
expect(text(part(root, 'accept'))).toBe('Accept all');
|
|
15
|
+
});
|
|
16
|
+
it('is a labelled region', async () => {
|
|
17
|
+
const { root } = await render(h("bs-cookie-consent", null));
|
|
18
|
+
expect(part(root, 'container')).toEqualAttribute('role', 'region');
|
|
19
|
+
expect(part(root, 'container')).toEqualAttribute('aria-labelledby', 'heading');
|
|
20
|
+
expect(sr(root).getElementById('heading')).not.toBeNull();
|
|
21
|
+
});
|
|
22
|
+
it('shows the policy link only when policyUrl is set', async () => {
|
|
23
|
+
const a = await render(h("bs-cookie-consent", null));
|
|
24
|
+
expect(part(a.root, 'policy')).toBeNull();
|
|
25
|
+
const b = await render(h("bs-cookie-consent", { policyUrl: "/cookies" }));
|
|
26
|
+
const link = part(b.root, 'policy');
|
|
27
|
+
expect(link.getAttribute('href')).toBe('/cookies');
|
|
28
|
+
expect(text(link)).toBe('Read the cookie policy');
|
|
29
|
+
});
|
|
30
|
+
it('renders the heading at the requested level, clamped to 1-6', async () => {
|
|
31
|
+
const tags = [];
|
|
32
|
+
for (const level of [1, 2, 3, 9]) {
|
|
33
|
+
const { root } = await render(h("bs-cookie-consent", { headingLevel: level }));
|
|
34
|
+
tags.push(part(root, 'heading').tagName);
|
|
35
|
+
}
|
|
36
|
+
expect(tags).toEqual(['H1', 'H2', 'H3', 'H6']);
|
|
37
|
+
});
|
|
38
|
+
it('gives Reject optional the same size as Accept all (fair choice)', async () => {
|
|
39
|
+
const { root } = await render(h("bs-cookie-consent", null));
|
|
40
|
+
const a = part(root, 'accept').getBoundingClientRect();
|
|
41
|
+
const r = part(root, 'reject').getBoundingClientRect();
|
|
42
|
+
expect(r.height).toBe(a.height);
|
|
43
|
+
expect(r.width).toBe(a.width);
|
|
44
|
+
});
|
|
45
|
+
describe('events', () => {
|
|
46
|
+
it('Accept all, Reject optional and Customise', async () => {
|
|
47
|
+
const { root, waitForChanges } = await render(h("bs-cookie-consent", null));
|
|
48
|
+
const events = [];
|
|
49
|
+
root.addEventListener('bsAccept', (e) => events.push(['accept', e.detail]));
|
|
50
|
+
root.addEventListener('bsReject', (e) => events.push(['reject', e.detail]));
|
|
51
|
+
root.addEventListener('bsCustomise', () => events.push('customise'));
|
|
52
|
+
part(root, 'customise').click();
|
|
53
|
+
part(root, 'reject').click();
|
|
54
|
+
part(root, 'accept').click();
|
|
55
|
+
await waitForChanges();
|
|
56
|
+
expect(events).toEqual([
|
|
57
|
+
'customise',
|
|
58
|
+
['reject', { choices: { necessary: true, preferences: false, analytics: false, marketing: false } }],
|
|
59
|
+
['accept', { choices: { necessary: true, preferences: true, analytics: true, marketing: true } }],
|
|
60
|
+
]);
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe('banner responsiveness', () => {
|
|
64
|
+
const rects = async (width) => {
|
|
65
|
+
const { root } = await render(h("div", { style: { width: `${width}px` } }, h("bs-cookie-consent", null)));
|
|
66
|
+
await wait(100);
|
|
67
|
+
const el = root.querySelector('bs-cookie-consent');
|
|
68
|
+
return { content: part(el, 'heading').getBoundingClientRect(), accept: part(el, 'accept').getBoundingClientRect(), customise: part(el, 'customise').getBoundingClientRect() };
|
|
69
|
+
};
|
|
70
|
+
it('lays the actions out beside the copy in a wide container', async () => {
|
|
71
|
+
const r = await rects(1200);
|
|
72
|
+
expect(r.accept.top).toBeLessThan(r.content.bottom + 40);
|
|
73
|
+
expect(r.customise.left).toBeLessThan(r.accept.left);
|
|
74
|
+
});
|
|
75
|
+
it('stacks full-width buttons, Accept all first, in a narrow container', async () => {
|
|
76
|
+
const r = await rects(332);
|
|
77
|
+
expect(r.accept.top).toBeLessThan(r.customise.top);
|
|
78
|
+
expect(r.accept.width).toBeGreaterThan(280);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
describe('card', () => {
|
|
82
|
+
it('is the compact form: 420px, header with tile, a divider and Customise on the left', async () => {
|
|
83
|
+
const { root: wrap } = await render(h("div", { style: { width: '800px' } }, h("bs-cookie-consent", { type: "card", policyUrl: "/c" })));
|
|
84
|
+
const root = wrap.querySelector('bs-cookie-consent');
|
|
85
|
+
expect(part(root, 'container').getBoundingClientRect().width).toBe(420);
|
|
86
|
+
expect(text(part(root, 'heading'))).toBe('Cookies on this site');
|
|
87
|
+
expect(part(root, 'art').size).toBe('md');
|
|
88
|
+
expect(part(root, 'customise').getBoundingClientRect().left).toBeLessThan(part(root, 'reject').getBoundingClientRect().left);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe('preferences', () => {
|
|
92
|
+
const cats = (root) => Array.from(sr(root).querySelectorAll('[part~="category"]'));
|
|
93
|
+
it('is 560px wide with the four default categories, a close button and the three footer actions', async () => {
|
|
94
|
+
const { root: wrap } = await render(h("div", { style: { width: '800px' } }, h("bs-cookie-consent", { type: "preferences" })));
|
|
95
|
+
const root = wrap.querySelector('bs-cookie-consent');
|
|
96
|
+
expect(part(root, 'container').getBoundingClientRect().width).toBe(560);
|
|
97
|
+
expect(text(part(root, 'heading'))).toBe('Cookie preferences');
|
|
98
|
+
expect(cats(root).map(c => text(c.querySelector('.bs-cookie-consent__category-name')))).toEqual(['Strictly necessary', 'Preferences', 'Analytics', 'Marketing']);
|
|
99
|
+
expect(part(root, 'close')).not.toBeNull();
|
|
100
|
+
expect(text(part(root, 'reject'))).toBe('Reject optional');
|
|
101
|
+
expect(text(part(root, 'accept'))).toBe('Accept all');
|
|
102
|
+
expect(text(part(root, 'save'))).toBe('Save choices');
|
|
103
|
+
});
|
|
104
|
+
it('matches the Figma spacing: with a cookie list under every category and the first expanded, the dialog is 834px tall', async () => {
|
|
105
|
+
const three = ['a — one.', 'b — two.', 'c — three.'];
|
|
106
|
+
const { root: wrap } = await render(h("div", { style: { width: '800px' } }, h("bs-cookie-consent", { type: "preferences", categories: [
|
|
107
|
+
{ id: 'n', label: 'Strictly necessary', description: 'Needed for sign-in, security and to keep the service running. These cannot be turned off.', required: true, cookies: three },
|
|
108
|
+
{ id: 'p', label: 'Preferences', description: 'Remember your language, theme and table layouts on this device.', enabled: true, cookies: three },
|
|
109
|
+
{ id: 'a', label: 'Analytics', description: 'Help us understand which features are used so we can improve them. Data is anonymised.', cookies: three },
|
|
110
|
+
{ id: 'm', label: 'Marketing', description: 'Show relevant EG products on other websites.', cookies: three },
|
|
111
|
+
] })));
|
|
112
|
+
const root = wrap.querySelector('bs-cookie-consent');
|
|
113
|
+
sr(root).querySelector('button.bs-cookie-consent__disclosure').click();
|
|
114
|
+
await wait(300);
|
|
115
|
+
expect(Math.abs(part(root, 'container').getBoundingClientRect().height - 834)).toBeLessThanOrEqual(1);
|
|
116
|
+
// Each divider is an 8px row with the 1px line centred in it.
|
|
117
|
+
expect(sr(root).querySelector('.bs-cookie-consent__rule').getBoundingClientRect().height).toBe(8);
|
|
118
|
+
});
|
|
119
|
+
it('shows "Always on" for required categories and a named switch for the rest', async () => {
|
|
120
|
+
const { root } = await render(h("bs-cookie-consent", { type: "preferences" }));
|
|
121
|
+
const [necessary, preferences] = cats(root);
|
|
122
|
+
expect(text(necessary.querySelector('bs-chip-informative'))).toBe('Always on');
|
|
123
|
+
expect(necessary.querySelector('bs-switch')).toBeNull();
|
|
124
|
+
const sw = preferences.querySelector('bs-switch');
|
|
125
|
+
expect(sw.ariaLabel).toBe('Preferences');
|
|
126
|
+
expect(sw.checked).toBe(true);
|
|
127
|
+
expect(cats(root)[2].querySelector('bs-switch').checked).toBe(false);
|
|
128
|
+
});
|
|
129
|
+
it('expands and collapses the cookie list, with aria-expanded', async () => {
|
|
130
|
+
const { root, waitForChanges } = await render(h("bs-cookie-consent", { type: "preferences" }));
|
|
131
|
+
const toggle = () => sr(root).querySelector('button.bs-cookie-consent__disclosure');
|
|
132
|
+
expect(text(toggle())).toBe('See 3 cookies');
|
|
133
|
+
expect(toggle()).toEqualAttribute('aria-expanded', 'false');
|
|
134
|
+
expect(sr(root).querySelector('ol')).toBeNull();
|
|
135
|
+
toggle().click();
|
|
136
|
+
await waitForChanges();
|
|
137
|
+
expect(toggle()).toEqualAttribute('aria-expanded', 'true');
|
|
138
|
+
expect(Array.from(sr(root).querySelectorAll('ol li')).map(text)).toHaveLength(3);
|
|
139
|
+
toggle().click();
|
|
140
|
+
await waitForChanges();
|
|
141
|
+
expect(sr(root).querySelector('ol')).toBeNull();
|
|
142
|
+
});
|
|
143
|
+
it('emits bsChoice when a switch is toggled, and bsSave with the current choices', async () => {
|
|
144
|
+
const { root, waitForChanges } = await render(h("bs-cookie-consent", { type: "preferences" }));
|
|
145
|
+
const events = [];
|
|
146
|
+
root.addEventListener('bsChoice', (e) => events.push(['choice', e.detail]));
|
|
147
|
+
root.addEventListener('bsSave', (e) => events.push(['save', e.detail]));
|
|
148
|
+
cats(root)[2].querySelector('bs-switch').dispatchEvent(new CustomEvent('bsChange', { detail: true }));
|
|
149
|
+
await waitForChanges();
|
|
150
|
+
part(root, 'save').click();
|
|
151
|
+
await waitForChanges();
|
|
152
|
+
expect(events).toEqual([
|
|
153
|
+
['choice', { id: 'analytics', enabled: true }],
|
|
154
|
+
['save', { choices: { necessary: true, preferences: true, analytics: true, marketing: false } }],
|
|
155
|
+
]);
|
|
156
|
+
});
|
|
157
|
+
it('takes custom categories, with their cookies and initial state', async () => {
|
|
158
|
+
const { root } = await render(h("bs-cookie-consent", { type: "preferences", categories: [
|
|
159
|
+
{ id: 'necessary', label: 'Needed', required: true },
|
|
160
|
+
{ id: 'stats', label: 'Statistics', enabled: true, cookies: ['a', 'b'] },
|
|
161
|
+
] }));
|
|
162
|
+
expect(cats(root)).toHaveLength(2);
|
|
163
|
+
expect(text(sr(root).querySelector('button.bs-cookie-consent__disclosure'))).toBe('See 2 cookies');
|
|
164
|
+
let detail;
|
|
165
|
+
root.addEventListener('bsSave', (e) => (detail = e.detail));
|
|
166
|
+
part(root, 'save').click();
|
|
167
|
+
expect(detail).toEqual({ choices: { necessary: true, stats: true } });
|
|
168
|
+
});
|
|
169
|
+
it('Accept all / Reject optional report the right choices for custom categories', async () => {
|
|
170
|
+
const { root } = await render(h("bs-cookie-consent", { type: "preferences", categories: [{ id: 'n', label: 'N', required: true }, { id: 'x', label: 'X' }] }));
|
|
171
|
+
const got = [];
|
|
172
|
+
root.addEventListener('bsAccept', (e) => got.push(e.detail));
|
|
173
|
+
root.addEventListener('bsReject', (e) => got.push(e.detail));
|
|
174
|
+
part(root, 'accept').click();
|
|
175
|
+
part(root, 'reject').click();
|
|
176
|
+
expect(got).toEqual([{ choices: { n: true, x: true } }, { choices: { n: true, x: false } }]);
|
|
177
|
+
});
|
|
178
|
+
it('emits bsClose', async () => {
|
|
179
|
+
const { root, waitForChanges } = await render(h("bs-cookie-consent", { type: "preferences" }));
|
|
180
|
+
let closed = 0;
|
|
181
|
+
root.addEventListener('bsClose', () => closed++);
|
|
182
|
+
part(root, 'close').click();
|
|
183
|
+
await waitForChanges();
|
|
184
|
+
expect(closed).toBe(1);
|
|
185
|
+
});
|
|
186
|
+
it('is a labelled group', async () => {
|
|
187
|
+
const { root } = await render(h("bs-cookie-consent", { type: "preferences" }));
|
|
188
|
+
expect(part(root, 'container')).toEqualAttribute('role', 'group');
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
describe('saved', () => {
|
|
192
|
+
it('is a snackbar with the message, a Change action and no close button', async () => {
|
|
193
|
+
const { root, waitForChanges } = await render(h("bs-cookie-consent", { type: "saved" }));
|
|
194
|
+
const bar = part(root, 'container');
|
|
195
|
+
expect(bar.tagName).toBe('BS-SNACKBAR');
|
|
196
|
+
expect(bar.textContent).toContain('Cookie choices saved');
|
|
197
|
+
expect(bar.shadowRoot.querySelector('[part="close"]')).toBeNull();
|
|
198
|
+
let managed = 0;
|
|
199
|
+
root.addEventListener('bsManage', () => managed++);
|
|
200
|
+
bar.shadowRoot.querySelector('[part="action"]').click();
|
|
201
|
+
await waitForChanges();
|
|
202
|
+
expect(managed).toBe(1);
|
|
203
|
+
expect(bar.shadowRoot.querySelector('[part="action"]').textContent).toContain('Change');
|
|
204
|
+
// Figma: 32px check icon, and a 44px Change action.
|
|
205
|
+
expect(bar.shadowRoot.querySelector('[part="icon"]').getBoundingClientRect().width).toBe(32);
|
|
206
|
+
expect(bar.shadowRoot.querySelector('[part="action"]').getBoundingClientRect().height).toBe(44);
|
|
207
|
+
});
|
|
208
|
+
it('is 660x64 with the message on one line, as in the Figma', async () => {
|
|
209
|
+
const { root: wrap } = await render(h("div", { style: { width: '700px' } }, h("bs-cookie-consent", { type: "saved", description: "Cookie choices saved. Change them any time under Settings \u203A Privacy." })));
|
|
210
|
+
await wait(200);
|
|
211
|
+
const bar = wrap.querySelector('bs-cookie-consent').shadowRoot.querySelector('[part="container"]');
|
|
212
|
+
const box = bar.getBoundingClientRect();
|
|
213
|
+
expect(box.width).toBe(660);
|
|
214
|
+
expect(box.height).toBe(64);
|
|
215
|
+
});
|
|
216
|
+
});
|
|
217
|
+
});
|
|
@@ -0,0 +1,350 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prop --bs-cookie-consent-width: Width of the `card` (420px), `preferences` (560px) and `saved` (660px) forms. The `banner` always fills its container. Never wider than the container.
|
|
3
|
+
* @prop --bs-cookie-consent-bg: Card background. Aliased to --bs-paper-bg-base (the `bs-card` base surface).
|
|
4
|
+
* @prop --bs-cookie-consent-radius: Card corner radius. Aliased to --bs-border-radius-150 (12px).
|
|
5
|
+
* @prop --bs-cookie-consent-padding: Card padding. Aliased to --bs-spacing-200 (16px).
|
|
6
|
+
* @prop --bs-cookie-consent-shadow: Card shadow. 0 8px 8px --bs-elevation-higher (Figma).
|
|
7
|
+
* @prop --bs-cookie-consent-color: Heading colour. Aliased to --bs-text-default.
|
|
8
|
+
* @prop --bs-cookie-consent-color-secondary: Paragraph colour. Aliased to --bs-text-secondary.
|
|
9
|
+
* @prop --bs-cookie-consent-link: Policy link text colour. Aliased to --bs-text-link.
|
|
10
|
+
* @prop --bs-cookie-consent-link-underline: Policy link underline colour. Aliased to --bs-border-info.
|
|
11
|
+
* @prop --bs-cookie-consent-rule: Divider colour. Aliased to --bs-border-default.
|
|
12
|
+
* @prop --bs-cookie-consent-banner-breakpoint: Documentation only -- the `banner` stacks into a column below a container width of 720px (CSS can't read a custom property in a container query).
|
|
13
|
+
*/
|
|
14
|
+
:host {
|
|
15
|
+
display: block;
|
|
16
|
+
/* The banner reacts to its own width, not the viewport's: it may sit in a narrow panel. */
|
|
17
|
+
container-type: inline-size;
|
|
18
|
+
max-width: 100%;
|
|
19
|
+
|
|
20
|
+
--bs-cookie-consent-width: 420px;
|
|
21
|
+
--bs-cookie-consent-bg: var(--bs-paper-bg-base);
|
|
22
|
+
--bs-cookie-consent-radius: var(--bs-border-radius-150);
|
|
23
|
+
--bs-cookie-consent-padding: var(--bs-spacing-200);
|
|
24
|
+
--bs-cookie-consent-shadow: 0 8px 8px var(--bs-elevation-higher);
|
|
25
|
+
--bs-cookie-consent-color: var(--bs-text-default);
|
|
26
|
+
--bs-cookie-consent-color-secondary: var(--bs-text-secondary);
|
|
27
|
+
--bs-cookie-consent-link: var(--bs-text-link);
|
|
28
|
+
--bs-cookie-consent-link-underline: var(--bs-border-info);
|
|
29
|
+
--bs-cookie-consent-rule: var(--bs-border-default);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
:host([type='card']) {
|
|
33
|
+
width: var(--bs-cookie-consent-width);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
:host([type='preferences']) {
|
|
37
|
+
--bs-cookie-consent-width: 560px;
|
|
38
|
+
width: var(--bs-cookie-consent-width);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
:host([type='saved']) {
|
|
42
|
+
--bs-cookie-consent-width: 660px;
|
|
43
|
+
width: var(--bs-cookie-consent-width);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* bs-card supplies the surface; this only sets how it looks here. */
|
|
47
|
+
.bs-cookie-consent--banner,
|
|
48
|
+
.bs-cookie-consent--card,
|
|
49
|
+
.bs-cookie-consent--preferences {
|
|
50
|
+
--bs-card-bg: var(--bs-cookie-consent-bg);
|
|
51
|
+
--bs-card-radius: var(--bs-cookie-consent-radius);
|
|
52
|
+
--bs-card-padding: var(--bs-cookie-consent-padding);
|
|
53
|
+
--bs-card-shadow: var(--bs-cookie-consent-shadow);
|
|
54
|
+
color: var(--bs-cookie-consent-color);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.bs-cookie-consent p {
|
|
58
|
+
margin: 0;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.bs-cookie-consent__glyph,
|
|
62
|
+
::slotted([slot='icon']) {
|
|
63
|
+
width: var(--bs-cookie-consent-glyph-size, 24px);
|
|
64
|
+
height: var(--bs-cookie-consent-glyph-size, 24px);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
bs-icon-tile[size='md'] {
|
|
68
|
+
--bs-cookie-consent-glyph-size: 16px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.bs-cookie-consent__heading {
|
|
72
|
+
margin: 0;
|
|
73
|
+
font-size: var(--bs-font-size-2xl);
|
|
74
|
+
font-weight: var(--bs-font-weight-bold);
|
|
75
|
+
line-height: 32px;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.bs-cookie-consent__description {
|
|
79
|
+
color: var(--bs-cookie-consent-color-secondary);
|
|
80
|
+
font-size: var(--bs-font-size-md);
|
|
81
|
+
line-height: 24px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.bs-cookie-consent__policy {
|
|
85
|
+
align-self: flex-start;
|
|
86
|
+
border-bottom: 1px solid var(--bs-cookie-consent-link-underline);
|
|
87
|
+
color: var(--bs-cookie-consent-link);
|
|
88
|
+
font-size: var(--bs-font-size-sm);
|
|
89
|
+
line-height: 20px;
|
|
90
|
+
text-decoration: none;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.bs-cookie-consent__policy:focus-visible {
|
|
94
|
+
outline: 2px solid var(--bs-border-neutral-focus);
|
|
95
|
+
outline-offset: 2px;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.bs-cookie-consent__rule {
|
|
99
|
+
height: 8px;
|
|
100
|
+
background: linear-gradient(var(--bs-cookie-consent-rule), var(--bs-cookie-consent-rule)) center / 100% 1px no-repeat;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.bs-cookie-consent__spacer {
|
|
104
|
+
flex: 1 1 0;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* --- buttons -------------------------------------------------------------------------------- */
|
|
108
|
+
.bs-cookie-consent__actions bs-button {
|
|
109
|
+
--bs-button-height-md: var(--bs-spacing-550);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.bs-cookie-consent__text-button {
|
|
113
|
+
--bs-button-subtle-color: var(--bs-text-action);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/* Figma gives the buttons fixed widths; minimums here, so a longer (translated) label can still grow. */
|
|
117
|
+
.bs-cookie-consent__actions--banner bs-button {
|
|
118
|
+
min-width: 140px;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.bs-cookie-consent__actions bs-button[part='reject'] {
|
|
122
|
+
min-width: 140px;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.bs-cookie-consent__actions bs-button[part='accept'] {
|
|
126
|
+
min-width: 103px;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.bs-cookie-consent__actions--banner bs-button[part='accept'] {
|
|
130
|
+
min-width: 140px;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.bs-cookie-consent__actions bs-button[part='save'] {
|
|
134
|
+
min-width: 127px;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.bs-cookie-consent__actions bs-button[part='customise'] {
|
|
138
|
+
min-width: 109px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.bs-cookie-consent__actions--banner bs-button[part='customise'] {
|
|
142
|
+
min-width: 140px;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/* --- banner --------------------------------------------------------------------------------- */
|
|
146
|
+
.bs-cookie-consent__banner {
|
|
147
|
+
display: flex;
|
|
148
|
+
align-items: center;
|
|
149
|
+
gap: var(--bs-spacing-200);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.bs-cookie-consent__banner-content {
|
|
153
|
+
display: flex;
|
|
154
|
+
align-items: flex-start;
|
|
155
|
+
gap: var(--bs-spacing-200);
|
|
156
|
+
flex: 1 1 0;
|
|
157
|
+
min-width: 0;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
bs-icon-tile {
|
|
161
|
+
flex: none;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.bs-cookie-consent__copy {
|
|
165
|
+
display: flex;
|
|
166
|
+
flex-direction: column;
|
|
167
|
+
align-items: flex-start;
|
|
168
|
+
gap: var(--bs-spacing-100);
|
|
169
|
+
min-width: 0;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.bs-cookie-consent__actions {
|
|
173
|
+
display: flex;
|
|
174
|
+
align-items: center;
|
|
175
|
+
gap: var(--bs-spacing-100);
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.bs-cookie-consent__actions--banner {
|
|
179
|
+
flex: none;
|
|
180
|
+
justify-content: flex-end;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/* Narrow container: the actions drop under the copy, full width, Accept all first. */
|
|
184
|
+
@container (max-width: 719px) {
|
|
185
|
+
.bs-cookie-consent__banner {
|
|
186
|
+
flex-direction: column;
|
|
187
|
+
align-items: stretch;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.bs-cookie-consent__banner-content {
|
|
191
|
+
flex-direction: column;
|
|
192
|
+
gap: var(--bs-spacing-150);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.bs-cookie-consent__actions--banner {
|
|
196
|
+
flex-direction: column-reverse;
|
|
197
|
+
align-items: stretch;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.bs-cookie-consent__actions--banner bs-button {
|
|
201
|
+
--bs-button-width: 100%;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/* --- card ----------------------------------------------------------------------------------- */
|
|
206
|
+
.bs-cookie-consent__card {
|
|
207
|
+
display: flex;
|
|
208
|
+
flex-direction: column;
|
|
209
|
+
gap: var(--bs-spacing-100);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
/* Figma: the dialog's rows are 12px apart (spacing/150), and each divider is an 8px-tall row with a 1px
|
|
213
|
+
line centred in it -- so 12px of space, 4px of row, the line, 4px of row, 12px of space. */
|
|
214
|
+
.bs-cookie-consent__prefs {
|
|
215
|
+
display: flex;
|
|
216
|
+
flex-direction: column;
|
|
217
|
+
gap: var(--bs-spacing-150);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.bs-cookie-consent__card .bs-cookie-consent__policy {
|
|
221
|
+
margin-bottom: 0;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.bs-cookie-consent__head {
|
|
225
|
+
display: flex;
|
|
226
|
+
align-items: center;
|
|
227
|
+
gap: 10px;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
.bs-cookie-consent--preferences .bs-cookie-consent__head {
|
|
231
|
+
gap: var(--bs-spacing-100);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.bs-cookie-consent__head .bs-cookie-consent__heading {
|
|
235
|
+
min-width: 0;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.bs-cookie-consent__head bs-icon-button svg {
|
|
239
|
+
width: 20px;
|
|
240
|
+
height: 20px;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.bs-cookie-consent__actions--card,
|
|
244
|
+
.bs-cookie-consent__actions--prefs {
|
|
245
|
+
gap: var(--bs-spacing-100);
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
.bs-cookie-consent__actions--card {
|
|
249
|
+
align-items: flex-end;
|
|
250
|
+
justify-content: space-between;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/* --- preferences ---------------------------------------------------------------------------- */
|
|
254
|
+
.bs-cookie-consent__category {
|
|
255
|
+
display: flex;
|
|
256
|
+
flex-direction: column;
|
|
257
|
+
gap: 6px;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/* Figma: only the first category (strictly necessary) has vertical padding. */
|
|
261
|
+
.bs-cookie-consent__prefs > .bs-cookie-consent__description + .bs-cookie-consent__category {
|
|
262
|
+
padding: 6px 0;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
.bs-cookie-consent__category-head {
|
|
266
|
+
display: flex;
|
|
267
|
+
align-items: center;
|
|
268
|
+
justify-content: space-between;
|
|
269
|
+
gap: var(--bs-spacing-100);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
/* Figma: a row with a switch is as tall as the 48px switch box; the "Always on" row isn't. */
|
|
273
|
+
.bs-cookie-consent__category-head--switch {
|
|
274
|
+
min-height: 48px;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/* Figma: with a switch, the header row and the description sit flush (the 48px switch box already supplies the
|
|
278
|
+
air); the "Always on" category keeps its 6px gap. */
|
|
279
|
+
.bs-cookie-consent__category-head--switch + .bs-cookie-consent__category-text {
|
|
280
|
+
margin-top: -6px;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.bs-cookie-consent__category-name {
|
|
284
|
+
font-size: var(--bs-font-size-sm);
|
|
285
|
+
font-weight: var(--bs-font-weight-semibold);
|
|
286
|
+
line-height: 20px;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.bs-cookie-consent__category-text {
|
|
290
|
+
color: var(--bs-cookie-consent-color-secondary);
|
|
291
|
+
font-size: var(--bs-font-size-sm);
|
|
292
|
+
line-height: 20px;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.bs-cookie-consent__disclosure {
|
|
296
|
+
display: inline-flex;
|
|
297
|
+
align-items: center;
|
|
298
|
+
gap: var(--bs-spacing-100);
|
|
299
|
+
min-height: 32px;
|
|
300
|
+
padding: 0;
|
|
301
|
+
border: none;
|
|
302
|
+
background: transparent;
|
|
303
|
+
color: var(--bs-text-action);
|
|
304
|
+
font-family: inherit;
|
|
305
|
+
font-size: var(--bs-font-size-md);
|
|
306
|
+
font-weight: var(--bs-font-weight-semibold);
|
|
307
|
+
line-height: 24px;
|
|
308
|
+
cursor: pointer;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.bs-cookie-consent__disclosure svg {
|
|
312
|
+
width: 24px;
|
|
313
|
+
height: 24px;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.bs-cookie-consent__disclosure:focus-visible {
|
|
317
|
+
outline: 2px solid var(--bs-border-neutral-focus);
|
|
318
|
+
outline-offset: 2px;
|
|
319
|
+
border-radius: var(--bs-border-radius-50);
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
.bs-cookie-consent__cookie-list {
|
|
323
|
+
margin: 0;
|
|
324
|
+
padding-inline-start: 21px;
|
|
325
|
+
color: var(--bs-cookie-consent-color-secondary);
|
|
326
|
+
font-size: var(--bs-font-size-sm);
|
|
327
|
+
line-height: 20px;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
/* --- saved ---------------------------------------------------------------------------------- */
|
|
331
|
+
.bs-cookie-consent--saved {
|
|
332
|
+
display: block;
|
|
333
|
+
/* Figma: a 32px check circle (bs-snackbar's default is 24px), which makes the bar 64px tall. */
|
|
334
|
+
--bs-snackbar-icon-size: 32px;
|
|
335
|
+
/* Figma: the Change action sits right against the message with no gap, so the message gets the room it
|
|
336
|
+
needs to stay on one line. It keeps the snackbar's own 8px right padding so the button's hover/pressed
|
|
337
|
+
background doesn't touch the bar's edge. */
|
|
338
|
+
--bs-snackbar-gap: 0px;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/* Figma: the Change action is plain text in the snackbar's own text colour (white on the dark bar). The
|
|
342
|
+
outlined blue button bs-snackbar uses by default would be unreadable on it. */
|
|
343
|
+
.bs-cookie-consent--saved::part(action) {
|
|
344
|
+
--bs-button-subtle-color: var(--bs-snackbar-text-default);
|
|
345
|
+
--bs-button-subtle-hover: color-mix(in srgb, var(--bs-snackbar-text-default) 16%, transparent);
|
|
346
|
+
--bs-button-subtle-pressed: color-mix(in srgb, var(--bs-snackbar-text-default) 24%, transparent);
|
|
347
|
+
/* Figma: the Change action is 44px high (bs-button's sm is 40px) and medium weight. */
|
|
348
|
+
--bs-button-height-sm: var(--bs-spacing-550);
|
|
349
|
+
--bs-button-padding-x-sm: var(--bs-spacing-200);
|
|
350
|
+
}
|