@brandsync/wc 1.10.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 +8335 -4132
- 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-dbcbe682.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-c99b6a66.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-5f3cd501.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-b2074a32.entry.js → p-1978e63c.entry.js} +1 -1
- package/dist/brandsync-wc/p-1aab6d07.entry.js +1 -0
- package/dist/brandsync-wc/{p-96ed9386.entry.js → p-20030f4d.entry.js} +1 -1
- package/dist/brandsync-wc/p-2177042f.entry.js +1 -0
- package/dist/brandsync-wc/{p-a8e2a829.entry.js → p-2368a92e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-2e958566.entry.js → p-247e36ad.entry.js} +1 -1
- package/dist/brandsync-wc/p-2497d128.entry.js +1 -0
- package/dist/brandsync-wc/{p-701ebf4a.entry.js → p-282ddbee.entry.js} +1 -1
- package/dist/brandsync-wc/{p-763876f5.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-ea4e20ef.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-daab6b22.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-08c99a60.entry.js → p-617bd13a.entry.js} +1 -1
- package/dist/brandsync-wc/p-68fcd4a4.entry.js +1 -0
- package/dist/brandsync-wc/{p-9e88f19c.entry.js → p-69c0a85d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d3f44cb7.entry.js → p-6a696161.entry.js} +1 -1
- package/dist/brandsync-wc/{p-32cd69f1.entry.js → p-6c6cdf77.entry.js} +1 -1
- package/dist/brandsync-wc/{p-041776c0.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-f370b8fa.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-a71d2811.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-18c3c22c.entry.js → p-a9169157.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f89de457.entry.js → p-afb07368.entry.js} +1 -1
- package/dist/brandsync-wc/{p-301b2455.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-d42b1c2b.entry.js → p-c0a92750.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8eba7f90.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-e8a5b8eb.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-af2bf957.entry.js → p-e5daa6ca.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0132a2d1.entry.js → p-f15d9524.entry.js} +1 -1
- package/dist/brandsync-wc/p-f5180578.entry.js +1 -0
- package/dist/brandsync-wc/{p-fd254972.entry.js → p-f7d15fbe.entry.js} +1 -1
- package/dist/brandsync-wc/{p-50a251a4.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 +13 -9
- 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_2.cjs.entry.js → bs-input_3.cjs.entry.js} +40 -5
- 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 +4 -4
- 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 +9 -0
- package/dist/collection/components/bs-a11y.cmp.test.js +22 -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 +9 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.css +21 -11
- package/dist/collection/components/bs-datepicker/bs-datepicker.js +13 -7
- package/dist/collection/components/bs-datepicker/bs-datepicker.stories.js +3 -2
- 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 +2 -2
- 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.css +15 -11
- package/dist/collection/components/bs-timepicker/bs-timepicker.js +4 -2
- 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.js +1 -1
- 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.js +1 -1
- 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-DkIVyFOP.js → p-BZ3M4lOU.js} +1 -1
- package/dist/components/{p-Ba860ej1.js → p-B_I4UEMp.js} +1 -1
- package/dist/components/{p-ZK8p5zax.js → p-Be9L4_Fe.js} +1 -1
- package/dist/components/p-Be_Pmccm.js +1 -0
- package/dist/components/{p-CPvqZNO8.js → p-Bl_tVzeq.js} +1 -1
- 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-B7Icv1ho.js → p-C_j_jDM6.js} +1 -1
- package/dist/components/p-CbimDNGY.js +1 -0
- package/dist/components/p-CeUK3n7D.js +1 -0
- 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-BYR_ZC8v.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 +13 -9
- 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_2.entry.js → bs-input_3.entry.js} +40 -6
- 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 +4 -4
- 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.d.ts +2 -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.d.ts +2 -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 +2636 -96
- package/package.json +1 -1
- package/dist/brandsync-wc/p-1c3a43c7.entry.js +0 -1
- package/dist/brandsync-wc/p-1c427ffb.entry.js +0 -1
- package/dist/brandsync-wc/p-4f2c4929.entry.js +0 -1
- package/dist/brandsync-wc/p-76e1c295.entry.js +0 -1
- package/dist/brandsync-wc/p-790db8b3.entry.js +0 -1
- package/dist/brandsync-wc/p-796a1860.entry.js +0 -1
- package/dist/brandsync-wc/p-806a5347.entry.js +0 -1
- package/dist/brandsync-wc/p-addfa0a0.entry.js +0 -1
- package/dist/brandsync-wc/p-c9a72416.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/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-BTvme8CE.js +0 -1
- package/dist/components/p-CpUHnsq9.js +0 -1
- package/dist/components/p-jDO25SfF.js +0 -1
- 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,255 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-tFJjflK5.js');
|
|
4
|
+
|
|
5
|
+
const bsTabCss = () => `:host{display:inline-block;--bs-tab-radius:var(--bs-border-radius-100);--bs-tab-padding-y:var(--bs-spacing-150);--bs-tab-padding-x:var(--bs-spacing-200);--bs-tab-gap:var(--bs-spacing-75);--bs-tab-gap-vertical:var(--bs-spacing-50);--bs-tab-color-default:var(--bs-text-muted);--bs-tab-icon-color-default:var(--bs-icon-muted);--bs-tab-color-hover:var(--bs-text-default);--bs-tab-icon-color-hover:var(--bs-icon-default);--bs-tab-indicator-hover:var(--bs-border-neutral-hover);--bs-tab-color-selected:var(--bs-color-primary-default);--bs-tab-color-selected-hover:var(--bs-color-primary-hover);--bs-tab-color-selected-pressed:var(--bs-color-primary-pressed);--bs-tab-indicator-selected:var(--bs-color-primary-default);--bs-tab-indicator-selected-hover:var(--bs-color-primary-hover);--bs-tab-indicator-selected-pressed:var(--bs-color-primary-pressed);--bs-tab-focus-ring-color:var(--bs-border-neutral-focus);--bs-tab-color-disabled:var(--bs-text-on-disabled);--bs-tab-icon-color-disabled:var(--bs-icon-disabled);--bs-tab-font-size:var(--bs-font-size-md);--bs-tab-line-height:var(--bs-line-height-body-md)}.bs-tab{box-sizing:border-box;position:relative;display:flex;flex-direction:row;align-items:center;justify-content:center;border:none;cursor:pointer;background:transparent;color:var(--bs-tab-color-default);font-family:inherit;border-radius:var(--bs-tab-radius);padding:var(--bs-tab-padding-y) var(--bs-tab-padding-x);gap:var(--bs-tab-gap);transition:color var(--bs-duration-fast) var(--bs-easing-standard), background-color var(--bs-duration-fast) var(--bs-easing-standard)}.bs-tab--vertical{flex-direction:column;gap:var(--bs-tab-gap-vertical)}.bs-tab:focus-visible{outline:2px solid var(--bs-tab-focus-ring-color);outline-offset:2px}.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):hover,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):focus-visible,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):active{color:var(--bs-tab-color-hover)}.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):hover .bs-tab__icon,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):focus-visible .bs-tab__icon,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):active .bs-tab__icon{color:var(--bs-tab-icon-color-hover)}.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):hover .bs-tab__indicator,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):focus-visible .bs-tab__indicator,.bs-tab:not(.bs-tab--selected):not(.bs-tab--disabled):active .bs-tab__indicator{background:var(--bs-tab-indicator-hover)}.bs-tab--selected{color:var(--bs-tab-color-selected)}.bs-tab--selected .bs-tab__icon--has-content{color:var(--bs-tab-color-selected)}.bs-tab--selected .bs-tab__indicator{background:var(--bs-tab-indicator-selected)}.bs-tab--selected:not(.bs-tab--disabled):hover,.bs-tab--selected:not(.bs-tab--disabled):focus-visible{color:var(--bs-tab-color-selected-hover)}.bs-tab--selected:not(.bs-tab--disabled):hover .bs-tab__icon--has-content,.bs-tab--selected:not(.bs-tab--disabled):focus-visible .bs-tab__icon--has-content{color:var(--bs-tab-color-selected-hover)}.bs-tab--selected:not(.bs-tab--disabled):hover .bs-tab__indicator,.bs-tab--selected:not(.bs-tab--disabled):focus-visible .bs-tab__indicator{background:var(--bs-tab-indicator-selected-hover)}.bs-tab--selected:not(.bs-tab--disabled):active{color:var(--bs-tab-color-selected-pressed)}.bs-tab--selected:not(.bs-tab--disabled):active .bs-tab__icon--has-content{color:var(--bs-tab-color-selected-pressed)}.bs-tab--selected:not(.bs-tab--disabled):active .bs-tab__indicator{background:var(--bs-tab-indicator-selected-pressed)}.bs-tab--disabled{color:var(--bs-tab-color-disabled);cursor:not-allowed}.bs-tab--disabled .bs-tab__icon--has-content{color:var(--bs-tab-icon-color-disabled)}.bs-tab--disabled .bs-tab__indicator{background:transparent}.bs-tab__icon{display:none;width:24px;height:24px;flex-shrink:0;color:var(--bs-tab-icon-color-default)}.bs-tab__icon--has-content{display:inline-flex;align-items:center;justify-content:center}.bs-tab__icon ::slotted(svg){width:24px;height:24px}.bs-tab__label{display:none;font-size:var(--bs-tab-font-size);line-height:calc(var(--bs-tab-line-height) * 1px);white-space:nowrap}.bs-tab__label--has-content{display:inline-block}.bs-tab__badge{display:none}.bs-tab__badge--has-content{display:inline-flex;align-items:center}.bs-tab__indicator{position:absolute;inset-inline-start:var(--bs-tab-padding-x);inset-inline-end:var(--bs-tab-padding-x);bottom:0;height:2px;background:transparent;border-radius:var(--bs-border-radius-50, 2px)}`;
|
|
6
|
+
|
|
7
|
+
const BsTab = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
this.bsSelect = index.createEvent(this, "bsSelect");
|
|
11
|
+
}
|
|
12
|
+
get el() { return index.getElement(this); }
|
|
13
|
+
/** Whether this tab is the currently active one. NOT mutable and NOT self-toggling -- see the
|
|
14
|
+
* "Known gap" note in the class JSDoc. Still reflected as an attribute so consumers/CSS can
|
|
15
|
+
* target `bs-tab[selected]`. */
|
|
16
|
+
selected = false;
|
|
17
|
+
/** Disables the tab: sets the native `disabled` attribute, suppresses hover/focus styling, and
|
|
18
|
+
* prevents clicking from emitting `bsSelect`. */
|
|
19
|
+
disabled = false;
|
|
20
|
+
/** Where the icon sits relative to the label, when both `icon` and the default slot are
|
|
21
|
+
* populated. Ignored for icon-only/text-only layouts. */
|
|
22
|
+
iconPosition = 'start';
|
|
23
|
+
/** Accessible name for the tab. Required for icon-only usage (no visible label text via the
|
|
24
|
+
* default slot) so screen readers still announce what the tab does -- without it, an icon-only
|
|
25
|
+
* tab has no discernible name at all (axe-core flags this as a critical `button-name`
|
|
26
|
+
* violation). Stencil reflects this camelCase prop to the `aria-label` HTML attribute
|
|
27
|
+
* automatically, same as `bs-button`'s identical prop. */
|
|
28
|
+
ariaLabel = null;
|
|
29
|
+
/** Identifies this tab within a parent `bs-tabs`: the group's `value` is the selected tab's
|
|
30
|
+
* `value`, and `bsChange` reports it. Optional -- a tab without one is identified by its
|
|
31
|
+
* zero-based position in the group (`"0"`, `"1"`...). */
|
|
32
|
+
value;
|
|
33
|
+
/** Set by a parent `bs-tabs` to implement roving tabindex (only one tab in the group is in the
|
|
34
|
+
* Tab order; arrow keys move between them). Left `undefined` for a standalone tab, which stays
|
|
35
|
+
* a normal tab stop. */
|
|
36
|
+
tabbable;
|
|
37
|
+
/** Tracks whether the `icon` slot has assigned content. */
|
|
38
|
+
hasIcon = false;
|
|
39
|
+
/** Tracks whether the default (label) slot has assigned content. */
|
|
40
|
+
hasLabel = false;
|
|
41
|
+
/** Tracks whether the `badge` slot has assigned content. */
|
|
42
|
+
hasBadge = false;
|
|
43
|
+
/** Fires when the tab is clicked. Does not toggle `selected` itself -- see the class JSDoc. */
|
|
44
|
+
bsSelect;
|
|
45
|
+
/**
|
|
46
|
+
* Computes the initial `hasIcon`/`hasLabel`/`hasBadge` state directly from the host's light DOM
|
|
47
|
+
* children, before first render -- same reasoning as `bs-button.componentWillLoad` (a slot with
|
|
48
|
+
* zero assigned nodes from the start never fires `slotchange`).
|
|
49
|
+
*/
|
|
50
|
+
componentWillLoad() {
|
|
51
|
+
this.hasIcon = this.hasSlottedContent('icon');
|
|
52
|
+
this.hasLabel = this.hasSlottedContent(null);
|
|
53
|
+
this.hasBadge = this.hasSlottedContent('badge');
|
|
54
|
+
}
|
|
55
|
+
hasSlottedContent(slotName) {
|
|
56
|
+
return Array.from(this.el.childNodes).some(node => {
|
|
57
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
58
|
+
return node.getAttribute('slot') === slotName;
|
|
59
|
+
}
|
|
60
|
+
// Only elements can carry a `slot` attribute -- any other node type (text, comments) can
|
|
61
|
+
// only ever be assigned to the default slot.
|
|
62
|
+
return slotName === null;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
onIconSlotchange = (ev) => {
|
|
66
|
+
this.hasIcon = ev.target.assignedNodes().length > 0;
|
|
67
|
+
};
|
|
68
|
+
onLabelSlotchange = (ev) => {
|
|
69
|
+
this.hasLabel = ev.target.assignedNodes().length > 0;
|
|
70
|
+
};
|
|
71
|
+
onBadgeSlotchange = (ev) => {
|
|
72
|
+
this.hasBadge = ev.target.assignedNodes().length > 0;
|
|
73
|
+
};
|
|
74
|
+
onClick = () => {
|
|
75
|
+
if (this.disabled)
|
|
76
|
+
return;
|
|
77
|
+
this.bsSelect.emit();
|
|
78
|
+
};
|
|
79
|
+
render() {
|
|
80
|
+
const iconOnly = this.hasIcon && !this.hasLabel;
|
|
81
|
+
const vertical = this.hasIcon && this.hasLabel && this.iconPosition === 'top';
|
|
82
|
+
const showBadge = this.hasBadge && !iconOnly && !vertical;
|
|
83
|
+
return (index.h("button", { key: '6cb94a173877a8e339585dd41bfca7cdb5152277', type: "button", part: "tab", role: "tab", class: `bs-tab ${this.selected ? 'bs-tab--selected' : ''} ${this.disabled ? 'bs-tab--disabled' : ''} ${iconOnly ? 'bs-tab--icon-only' : ''} ${vertical ? 'bs-tab--vertical' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, tabIndex: this.tabbable === undefined ? undefined : this.tabbable ? 0 : -1, onClick: this.onClick }, index.h("span", { key: '87fc3d0b1e958295bb3ff41c3a4f6a76803c4b31', part: "icon", class: `bs-tab__icon ${this.hasIcon ? 'bs-tab__icon--has-content' : ''}` }, index.h("slot", { key: '5fb74ca62c8f60b50d7f53cd5b77b02cfb547365', name: "icon", onSlotchange: this.onIconSlotchange })), index.h("span", { key: '4774748fa4d8d5f441914aaca0cc8729c3d85857', part: "label", class: `bs-tab__label ${this.hasLabel ? 'bs-tab__label--has-content' : ''}` }, index.h("slot", { key: '87d793b4e8088f51ff64dd388f3769aebd5c507d', onSlotchange: this.onLabelSlotchange })), index.h("span", { key: 'ddfc8532be46adab986a6f4a6b0e46d2c8fcc8f4', part: "badge", class: `bs-tab__badge ${showBadge ? 'bs-tab__badge--has-content' : ''}` }, index.h("slot", { key: '729a03df8dbca1814725d06ceb23d1d1c694cc63', name: "badge", onSlotchange: this.onBadgeSlotchange })), index.h("span", { key: 'd873545b4148383e3df42fe1ff76aab027d4a0f8', part: "indicator", class: "bs-tab__indicator" })));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
BsTab.style = bsTabCss();
|
|
87
|
+
|
|
88
|
+
const bsTabsCss = () => `:host{display:inline-block;--bs-tabs-tab-gap:var(--bs-spacing-100);--bs-tabs-inline-tab-bg:var(--bs-color-neutral-container);--bs-tabs-inline-tab-padding-x:var(--bs-spacing-50);--bs-tabs-inline-tab-radius:var(--bs-border-radius-full);--bs-tabs-inline-tab-gap:var(--bs-spacing-50)}.bs-tabs{display:inline-flex;align-items:center}.bs-tabs--vertical{display:flex;flex-direction:column;align-items:flex-start}.bs-tabs--bs-tab{gap:var(--bs-tabs-tab-gap)}.bs-tabs--bs-inline-tab{background:var(--bs-tabs-inline-tab-bg);padding:0 var(--bs-tabs-inline-tab-padding-x);border-radius:var(--bs-tabs-inline-tab-radius);gap:var(--bs-tabs-inline-tab-gap)}`;
|
|
89
|
+
|
|
90
|
+
const BsTabs = class {
|
|
91
|
+
constructor(hostRef) {
|
|
92
|
+
index.registerInstance(this, hostRef);
|
|
93
|
+
this.bsChange = index.createEvent(this, "bsChange");
|
|
94
|
+
}
|
|
95
|
+
get el() { return index.getElement(this); }
|
|
96
|
+
/** Which tab-button family this group wraps. Governs the wrapper's own visual treatment (gap-only
|
|
97
|
+
* for `bs-tab`, a filled pill bar for `bs-inline-tab`). Not reflected as an attribute -- nothing
|
|
98
|
+
* external needs to target it via CSS attribute selector, it only drives internal class names. */
|
|
99
|
+
type = 'bs-tab';
|
|
100
|
+
/** Layout direction of the tab bar itself. Sets `aria-orientation` on the internal wrapper and
|
|
101
|
+
* switches `flex-direction`. */
|
|
102
|
+
orientation = 'horizontal';
|
|
103
|
+
/** The selected tab's `value`. Mutable and reflected: it follows the user's selection, and
|
|
104
|
+
* setting it from outside (attribute or property) selects the matching tab -- without emitting
|
|
105
|
+
* `bsChange`, which only fires for user-driven changes. A tab's value is its own `value` prop,
|
|
106
|
+
* or, for a tab without one, its zero-based position in the group as a string (`"0"`, `"1"`...).
|
|
107
|
+
* If unset, it is read from whichever tab is already `selected` once the group loads. */
|
|
108
|
+
value;
|
|
109
|
+
/** Fires when the user selects a different tab (click, or arrow/Home/End), with the new
|
|
110
|
+
* `value`. Does not fire when `value` is set programmatically. `bsSelect` on the individual tab
|
|
111
|
+
* still fires as before. */
|
|
112
|
+
bsChange;
|
|
113
|
+
/**
|
|
114
|
+
* Catches `bsSelect` bubbling up from any slotted `<bs-tab>`/`<bs-inline-tab>` (Stencil's
|
|
115
|
+
* `@Event()` defaults to `bubbles: true, composed: true`, and `@Listen` without a target listens
|
|
116
|
+
* on the host itself), and sets `selected` on the clicked child / `false` on its siblings.
|
|
117
|
+
* Disabled children never emit `bsSelect` in the first place (each's own `onClick` guards
|
|
118
|
+
* `if (this.disabled) return;`), so no special-casing is needed here.
|
|
119
|
+
*/
|
|
120
|
+
onTabSelect(ev) {
|
|
121
|
+
const tabs = this.tabs();
|
|
122
|
+
tabs.forEach(tab => {
|
|
123
|
+
tab.selected = tab === ev.target;
|
|
124
|
+
});
|
|
125
|
+
this.syncRovingTabindex();
|
|
126
|
+
const index = tabs.findIndex(tab => tab === ev.target);
|
|
127
|
+
if (index === -1)
|
|
128
|
+
return;
|
|
129
|
+
const value = this.tabValue(tabs[index], index);
|
|
130
|
+
if (value !== this.value) {
|
|
131
|
+
this.value = value;
|
|
132
|
+
this.bsChange.emit({ value });
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
componentDidLoad() {
|
|
136
|
+
if (this.value !== undefined) {
|
|
137
|
+
this.applyValue();
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
// Uncontrolled: report whichever tab the consumer already marked `selected`.
|
|
141
|
+
const tabs = this.tabs();
|
|
142
|
+
const index = tabs.findIndex(t => t.selected);
|
|
143
|
+
if (index !== -1)
|
|
144
|
+
this.value = this.tabValue(tabs[index], index);
|
|
145
|
+
}
|
|
146
|
+
this.syncRovingTabindex();
|
|
147
|
+
}
|
|
148
|
+
tabValue(tab, index) {
|
|
149
|
+
return tab.value ?? String(index);
|
|
150
|
+
}
|
|
151
|
+
/** Selects the tab whose value matches `this.value` (and deselects the rest). */
|
|
152
|
+
applyValue() {
|
|
153
|
+
this.tabs().forEach((tab, i) => {
|
|
154
|
+
tab.selected = this.tabValue(tab, i) === this.value;
|
|
155
|
+
});
|
|
156
|
+
this.syncRovingTabindex();
|
|
157
|
+
}
|
|
158
|
+
onValueChange() {
|
|
159
|
+
this.applyValue();
|
|
160
|
+
}
|
|
161
|
+
syncRovingTabindex() {
|
|
162
|
+
const tabs = this.tabs();
|
|
163
|
+
const anySelected = tabs.some(t => t.selected);
|
|
164
|
+
const firstEnabled = tabs.find(t => !t.disabled);
|
|
165
|
+
tabs.forEach(t => {
|
|
166
|
+
t.tabbable = anySelected ? t.selected : t === firstEnabled;
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
tabs() {
|
|
170
|
+
return Array.from(this.el.querySelectorAll(':scope > bs-tab, :scope > bs-inline-tab'));
|
|
171
|
+
}
|
|
172
|
+
/** WAI-ARIA tabs pattern (automatic activation): arrows move focus *and* selection to the
|
|
173
|
+
* previous/next enabled tab (wrapping), Home/End jump to the first/last. Arrow axis follows
|
|
174
|
+
* `orientation`; in RTL the horizontal arrows are mirrored. */
|
|
175
|
+
onKeyDown(ev) {
|
|
176
|
+
const vertical = this.orientation === 'vertical';
|
|
177
|
+
const rtl = getComputedStyle(this.el).direction === 'rtl';
|
|
178
|
+
const prevKey = vertical ? 'ArrowUp' : rtl ? 'ArrowRight' : 'ArrowLeft';
|
|
179
|
+
const nextKey = vertical ? 'ArrowDown' : rtl ? 'ArrowLeft' : 'ArrowRight';
|
|
180
|
+
if (![prevKey, nextKey, 'Home', 'End'].includes(ev.key))
|
|
181
|
+
return;
|
|
182
|
+
const enabled = this.tabs().filter(t => !t.disabled);
|
|
183
|
+
const current = enabled.findIndex(t => t === ev.target || t.contains(ev.target));
|
|
184
|
+
if (current === -1 || enabled.length === 0)
|
|
185
|
+
return;
|
|
186
|
+
ev.preventDefault();
|
|
187
|
+
let nextIdx = current;
|
|
188
|
+
if (ev.key === nextKey)
|
|
189
|
+
nextIdx = (current + 1) % enabled.length;
|
|
190
|
+
else if (ev.key === prevKey)
|
|
191
|
+
nextIdx = (current - 1 + enabled.length) % enabled.length;
|
|
192
|
+
else if (ev.key === 'Home')
|
|
193
|
+
nextIdx = 0;
|
|
194
|
+
else
|
|
195
|
+
nextIdx = enabled.length - 1;
|
|
196
|
+
const target = enabled[nextIdx];
|
|
197
|
+
const button = target.shadowRoot?.querySelector('button');
|
|
198
|
+
button?.focus();
|
|
199
|
+
button?.click();
|
|
200
|
+
}
|
|
201
|
+
render() {
|
|
202
|
+
const vertical = this.orientation === 'vertical';
|
|
203
|
+
return (index.h("div", { key: 'e7f42dc2b8504a99f03c35fa3617155ac430def0', part: "tablist", role: "tablist", "aria-orientation": this.orientation, class: `bs-tabs bs-tabs--${this.type} ${vertical ? 'bs-tabs--vertical' : ''}` }, index.h("slot", { key: 'a9a96d3fca150110a8490b42d516db9609677903', onSlotchange: () => this.syncRovingTabindex() })));
|
|
204
|
+
}
|
|
205
|
+
static get watchers() { return {
|
|
206
|
+
"value": [{
|
|
207
|
+
"onValueChange": 0
|
|
208
|
+
}],
|
|
209
|
+
"orientation": [{
|
|
210
|
+
"syncRovingTabindex": 0
|
|
211
|
+
}]
|
|
212
|
+
}; }
|
|
213
|
+
};
|
|
214
|
+
BsTabs.style = bsTabsCss();
|
|
215
|
+
|
|
216
|
+
const bsWhatsNewEntryCss = () => `:host{display:block;--bs-whats-new-entry-gap:var(--bs-spacing-100);--bs-whats-new-entry-color:var(--bs-text-default);--bs-whats-new-entry-color-secondary:var(--bs-text-secondary);--bs-whats-new-entry-unread:var(--bs-color-primary-default);--bs-whats-new-entry-image-bg:var(--bs-color-primary-container);--bs-whats-new-entry-image-height:140px;--bs-whats-new-entry-image-radius:var(--bs-border-radius-100);--bs-whats-new-entry-divider:var(--bs-border-default)}.bs-whats-new-entry{display:flex;flex-direction:column;gap:var(--bs-whats-new-entry-gap);color:var(--bs-whats-new-entry-color)}.bs-whats-new-entry p,.bs-whats-new-entry h1,.bs-whats-new-entry h2,.bs-whats-new-entry h3,.bs-whats-new-entry h4,.bs-whats-new-entry h5,.bs-whats-new-entry h6{margin:0}.bs-whats-new-entry__meta{display:flex;align-items:center;gap:var(--bs-spacing-100)}.bs-whats-new-entry__date{color:var(--bs-whats-new-entry-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px;white-space:nowrap}.bs-whats-new-entry__unread{flex:none;width:8px;height:8px;border-radius:50%;background:var(--bs-whats-new-entry-unread)}.bs-whats-new-entry__sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.bs-whats-new-entry__image{display:none;height:var(--bs-whats-new-entry-image-height);border-radius:var(--bs-whats-new-entry-image-radius);background:var(--bs-whats-new-entry-image-bg);overflow:hidden}.bs-whats-new-entry__image--visible{display:block}::slotted([slot='image']){display:block;width:100%;height:100%;object-fit:cover}.bs-whats-new-entry__content{display:flex;flex-direction:column;gap:var(--bs-spacing-100);align-items:flex-start}.bs-whats-new-entry__heading{align-self:stretch;font-size:var(--bs-font-size-md);font-weight:var(--bs-font-weight-bold);line-height:20px}.bs-whats-new-entry__description{align-self:stretch;color:var(--bs-whats-new-entry-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px}.bs-whats-new-entry__action{--bs-button-subtle-color:var(--bs-text-action);--bs-button-height-sm:var(--bs-spacing-400);--bs-button-padding-x-label-side:var(--bs-spacing-150);--bs-button-padding-x-icon-side:var(--bs-spacing-100)}.bs-whats-new-entry__action svg{width:20px;height:20px}.bs-whats-new-entry__divider{height:8px;background:linear-gradient(var(--bs-whats-new-entry-divider), var(--bs-whats-new-entry-divider)) center / 100% 1px no-repeat}`;
|
|
217
|
+
|
|
218
|
+
const BsWhatsNewEntry = class {
|
|
219
|
+
constructor(hostRef) {
|
|
220
|
+
index.registerInstance(this, hostRef);
|
|
221
|
+
this.bsAction = index.createEvent(this, "bsAction");
|
|
222
|
+
}
|
|
223
|
+
/** The tag text, e.g. "New feature". No tag when empty. */
|
|
224
|
+
tag;
|
|
225
|
+
/** Colour of the tag: `info` (default), `success`, `warning`, `error` or `neutral`. */
|
|
226
|
+
tagColor = 'info';
|
|
227
|
+
/** The date as text, already formatted for the reader (e.g. "24.09.2026"). */
|
|
228
|
+
date;
|
|
229
|
+
/** Shows a dot after the date for an update the user hasn't seen. */
|
|
230
|
+
unread = false;
|
|
231
|
+
/** Title. */
|
|
232
|
+
heading;
|
|
233
|
+
/** HTML heading level for the title, 1-6. */
|
|
234
|
+
headingLevel = 3;
|
|
235
|
+
/** Short description under the title. */
|
|
236
|
+
description;
|
|
237
|
+
/** Label of the action link (e.g. "Try it"). No action when empty. */
|
|
238
|
+
actionLabel;
|
|
239
|
+
/** Draws a rule under the entry, to separate it from the next one. */
|
|
240
|
+
divider = false;
|
|
241
|
+
/** Visually hidden text for the unread dot. */
|
|
242
|
+
unreadLabel = 'Unread';
|
|
243
|
+
/** Fires when the action link is pressed. */
|
|
244
|
+
bsAction;
|
|
245
|
+
hasImage = false;
|
|
246
|
+
render() {
|
|
247
|
+
const level = Math.min(6, Math.max(1, Math.trunc(Number(this.headingLevel)) || 3));
|
|
248
|
+
return (index.h("div", { key: 'f3b59b9886ee7dc0cff3ce37ef361081d268c301', class: "bs-whats-new-entry" }, (this.tag || this.date || this.unread) && (index.h("div", { key: '849ff3110f9b5e8862d2e8743c69e37a3913ba3f', part: "meta", class: "bs-whats-new-entry__meta" }, this.tag && (index.h("bs-chip-informative", { key: '1e3ab58124be4aac1785ac5094f607eebba06ada', part: "tag", size: "sm", color: this.tagColor }, this.tag)), this.date && (index.h("span", { key: '351f70bd49e94fd4848e34d2b134dda0a76aa3ce', part: "date", class: "bs-whats-new-entry__date" }, this.date)), this.unread && (index.h("span", { key: '9e5341acb5e4b5628ad9c567ca30d87f03c7c511', part: "unread", class: "bs-whats-new-entry__unread" }, index.h("span", { key: 'cca65aff39503436f75f7e1a6eada38975985b63', class: "bs-whats-new-entry__sr-only" }, this.unreadLabel))))), index.h("div", { key: '9c4e28e9687456fbe4b40fdba7e22dc162ea26c7', part: "image", class: { 'bs-whats-new-entry__image': true, 'bs-whats-new-entry__image--visible': this.hasImage } }, index.h("slot", { key: '4e698f6b9cd3bc68c4723877a6c257c2cdafb5a4', name: "image", onSlotchange: (ev) => (this.hasImage = ev.target.assignedNodes().length > 0) })), index.h("div", { key: '60e73438ed675a12159986ae8352b1c5b2735fb1', class: "bs-whats-new-entry__content" }, this.heading && index.h(`h${level}`, { part: 'heading', class: { 'bs-whats-new-entry__heading': true } }, this.heading), this.description && (index.h("p", { key: 'ddf69ede4112a2da4554b0ed4dae5664f739c055', part: "description", class: "bs-whats-new-entry__description" }, this.description)), this.actionLabel && (index.h("bs-button", { key: 'a6465a5bfab7ee0ccf8e26eb6221e566ad483b2e', part: "action", class: "bs-whats-new-entry__action", variant: "subtle", size: "sm", onClick: () => this.bsAction.emit() }, this.actionLabel, index.h("svg", { key: 'd45596c561a1366f54beaf3c5ba62084581742fe', slot: "end-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, index.h("path", { key: 'a87b5824ff0fe97c7c025096e432948864e1d19b', d: "M5 12H19" }), index.h("path", { key: '96659132bb0262ed354a33c2c33d48dde199a95b', d: "M13 6L19 12L13 18" }))))), this.divider && index.h("div", { key: '25381aa31681ccdb1e18fe74a019bd57e1fa8a62', part: "divider", class: "bs-whats-new-entry__divider" })));
|
|
249
|
+
}
|
|
250
|
+
};
|
|
251
|
+
BsWhatsNewEntry.style = bsWhatsNewEntryCss();
|
|
252
|
+
|
|
253
|
+
exports.bs_tab = BsTab;
|
|
254
|
+
exports.bs_tabs = BsTabs;
|
|
255
|
+
exports.bs_whats_new_entry = BsWhatsNewEntry;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-tFJjflK5.js');
|
|
4
4
|
|
|
5
|
-
const bsTimepickerCss = () => `:host{display:inline-block;--bs-timepicker-width:294px;--bs-timepicker-bg:var(--bs-
|
|
5
|
+
const bsTimepickerCss = () => `:host{display:inline-block;--bs-timepicker-width:294px;--bs-timepicker-bg:var(--bs-paper-bg-raised);--bs-timepicker-radius:var(--bs-border-radius-100);--bs-timepicker-padding-y:var(--bs-spacing-200);--bs-timepicker-padding-x:var(--bs-spacing-200);--bs-timepicker-gap:var(--bs-spacing-200);--bs-timepicker-shadow:var(--bs-shadow-md);--bs-timepicker-title-size:var(--bs-font-size-2xl);--bs-timepicker-title-line-height:var(--bs-line-height-heading-h6);--bs-timepicker-color:var(--bs-text-default);--bs-timepicker-color-secondary:var(--bs-text-secondary);--bs-timepicker-divider:var(--bs-border-neutral-container);--bs-timepicker-cell-size:var(--bs-spacing-550);--bs-timepicker-cell-radius:var(--bs-border-radius-100);--bs-timepicker-value-radius:var(--bs-border-radius-50);--bs-timepicker-hover:var(--bs-surface-hover);--bs-timepicker-pressed:var(--bs-surface-pressed);--bs-timepicker-focus-ring-color:var(--bs-border-neutral-container-focused)}.bs-timepicker{width:var(--bs-timepicker-width);max-width:100%;color:var(--bs-timepicker-color);font-size:var(--bs-font-size-md);--bs-card-bg:var(--bs-timepicker-bg);--bs-card-radius:var(--bs-timepicker-radius);--bs-card-padding:var(--bs-timepicker-padding-y) 0;--bs-card-shadow:var(--bs-timepicker-shadow);--bs-card-overflow:visible}.bs-timepicker__body{display:flex;flex-direction:column;gap:var(--bs-timepicker-gap)}.bs-timepicker__header{display:flex;align-items:center;gap:var(--bs-spacing-100);padding:0 var(--bs-timepicker-padding-x)}.bs-timepicker__title{flex:1 1 0;min-width:0;font-size:var(--bs-timepicker-title-size);font-weight:var(--bs-font-weight-bold);line-height:calc(var(--bs-timepicker-title-line-height) * 1px)}.bs-timepicker__format{display:flex;align-items:center;gap:var(--bs-spacing-50);color:var(--bs-timepicker-color-secondary);line-height:calc(var(--bs-line-height-body-md) * 1px)}.bs-timepicker__divider{height:1px;background:var(--bs-timepicker-divider)}.bs-timepicker__selector{display:flex;align-items:center;justify-content:center;gap:var(--bs-spacing-200);padding:0 var(--bs-timepicker-padding-x)}.bs-timepicker__spinner{display:flex;flex-direction:column;align-items:center;gap:var(--bs-spacing-100);width:var(--bs-timepicker-cell-size)}.bs-timepicker__step,.bs-timepicker__value{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:var(--bs-timepicker-cell-size);height:var(--bs-timepicker-cell-size);padding:0;border:none;background:transparent;font-family:inherit}.bs-timepicker__step{border-radius:var(--bs-timepicker-cell-radius);color:var(--bs-timepicker-color-secondary);cursor:pointer}.bs-timepicker__step svg{width:24px;height:24px}.bs-timepicker__value{border-radius:var(--bs-timepicker-value-radius);color:var(--bs-timepicker-color);font-size:var(--bs-timepicker-title-size);font-weight:var(--bs-font-weight-bold);line-height:calc(var(--bs-timepicker-title-line-height) * 1px);font-variant-numeric:tabular-nums;cursor:pointer;user-select:none}.bs-timepicker__step:hover,.bs-timepicker__value:hover{background:var(--bs-timepicker-hover)}.bs-timepicker__step:active,.bs-timepicker__value:active{background:var(--bs-timepicker-pressed)}.bs-timepicker__step:focus-visible,.bs-timepicker__value:focus-visible{outline:2px solid var(--bs-timepicker-focus-ring-color);outline-offset:0}.bs-timepicker__separator{display:flex;align-items:center;color:var(--bs-timepicker-color)}.bs-timepicker__separator svg{width:4px;height:32px}.bs-timepicker__period::part(label){position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.bs-timepicker__period{width:112px}.bs-timepicker__period::part(control){caret-color:transparent;cursor:pointer;text-overflow:clip}.bs-timepicker__footer{display:flex;align-items:flex-start;justify-content:flex-end;gap:var(--bs-spacing-100);padding:0 var(--bs-timepicker-padding-x)}`;
|
|
6
6
|
|
|
7
7
|
const BsTimepicker = class {
|
|
8
8
|
constructor(hostRef) {
|
|
@@ -174,14 +174,14 @@ const BsTimepicker = class {
|
|
|
174
174
|
return (index.h("div", { part: "spinner", class: "bs-timepicker__spinner" }, index.h("button", { part: "step", type: "button", class: "bs-timepicker__step", "aria-label": stepLabel('Increase'), tabindex: -1, onClick: () => this.stepBy(col, 1) }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" }, index.h("path", { d: "M18 15L12 9L6 15", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }))), index.h("div", { part: "value", class: "bs-timepicker__value", role: "spinbutton", tabindex: 0, "aria-label": label, "aria-valuemin": min, "aria-valuemax": max, "aria-valuenow": n, "aria-valuetext": pad(n), onKeyDown: this.onKeyDown(col), onBlur: () => (this.typed = '') }, pad(n)), index.h("button", { part: "step", type: "button", class: "bs-timepicker__step", "aria-label": stepLabel('Decrease'), tabindex: -1, onClick: () => this.stepBy(col, -1) }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true" }, index.h("path", { d: "M6 9L12 15L18 9", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" })))));
|
|
175
175
|
}
|
|
176
176
|
render() {
|
|
177
|
-
return (index.h("
|
|
177
|
+
return (index.h("bs-card", { key: 'e0545d99e052005bcad5509f81505f628adb5dc4', part: "container", class: "bs-timepicker", surface: "raised" }, index.h("div", { key: '664c7184dcefe5c63f03afad3953787cbc3064cc', class: "bs-timepicker__body" }, index.h("div", { key: '602d4f0ca6975b22daa7c7a37a6d53a259c39768', part: "header", class: "bs-timepicker__header" }, index.h("div", { key: '1650464c84e066f14f6343f18f779e35932535c3', part: "title", class: "bs-timepicker__title" }, this.heading), index.h("label", { key: 'debc6155ccf39b90f281d49240203d642fb5039d', class: "bs-timepicker__format" }, index.h("span", { key: '147a6d85b4f0922b5c7d96ebef88b3c70d1fbe05' }, this.formatLabel), index.h("bs-switch", { key: 'ddb0be1751ce8246acbfd6c187e66fb6bc878cd5', part: "format-toggle", size: "md", ariaLabel: this.formatLabel, checked: !this.is12h, onBsChange: (ev) => (this.format = ev.detail ? '24h' : '12h') }))), index.h("div", { key: '35f13bd74133f2c1109df96aafdc456178e4a32f', class: "bs-timepicker__divider" }), index.h("div", { key: '9c979a8d3300a8f5dba7d8df784dc8ef691a40a6', part: "selector", class: "bs-timepicker__selector" }, this.renderColumn('hour', this.hourLabel), index.h("div", { key: '5b4af0371fd816067b92854da2b35e5a7de8e4ea', part: "separator", class: "bs-timepicker__separator", "aria-hidden": "true" }, index.h("svg", { key: 'a70450b5068add559c48e795ce6aca204b30d02d', viewBox: "0 0 4 32", fill: "currentColor" }, index.h("circle", { key: '26a760f4d4712eca3df48b97bde276ce241511d5', cx: "2", cy: "10", r: "2" }), index.h("circle", { key: '3c6eb56e2736353dc5e5bc4a1d6ef64242f6a367', cx: "2", cy: "22", r: "2" }))), this.renderColumn('minute', this.minuteLabel), this.is12h && (index.h("bs-input", { key: '948e724c331008bbd00fd84c516d02e919e622e1', part: "period", class: "bs-timepicker__period", type: "dropdown", label: this.periodLabel, value: this.isPm ? 'PM' : 'AM', options: [
|
|
178
178
|
{ label: 'AM', value: 'AM' },
|
|
179
179
|
{ label: 'PM', value: 'PM' },
|
|
180
180
|
], onBsChange: (ev) => {
|
|
181
181
|
const pm = ev.detail === 'PM';
|
|
182
182
|
if (pm !== this.isPm)
|
|
183
183
|
this.hour = (this.hour + 12) % 24;
|
|
184
|
-
} }))), index.h("div", { key: '
|
|
184
|
+
} }))), index.h("div", { key: '08b57e8c0b895e272d98386fe5b2ac2e55a87de0', class: "bs-timepicker__divider" }), index.h("div", { key: '5b1af1da10c4333ef6b826eaafd75fa12ef2e785', part: "footer", class: "bs-timepicker__footer" }, index.h("bs-button", { key: 'ad24615dbe6ae46e00ca558f71cee030504573a5', part: "cancel", variant: "subtle", onClick: this.cancel }, this.cancelLabel), index.h("bs-button", { key: 'f76cd192e1e7e0bb524080cf54a655c5b4508a3c', part: "confirm", variant: "primary", onClick: this.confirm }, this.confirmLabel)))));
|
|
185
185
|
}
|
|
186
186
|
static get formAssociated() { return true; }
|
|
187
187
|
static get watchers() { return {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-tFJjflK5.js');
|
|
4
4
|
|
|
5
5
|
const bsToastCss = () => `:host{display:inline-flex;--bs-toast-radius:var(--bs-border-radius-100);--bs-toast-shadow:var(--bs-shadow-md);--bs-toast-content-padding-y:var(--bs-spacing-200);--bs-toast-content-padding-x:var(--bs-spacing-200);--bs-toast-content-gap:var(--bs-spacing-150);--bs-toast-font-size:var(--bs-font-size-md);--bs-toast-line-height:var(--bs-line-height-body-md);--bs-toast-actions-padding-y:var(--bs-spacing-50);--bs-toast-actions-padding-x:var(--bs-spacing-100);--bs-toast-close-radius:var(--bs-border-radius-100);--bs-toast-surface-info:var(--bs-color-info-container);--bs-toast-text-info:var(--bs-text-info);--bs-toast-surface-warning:var(--bs-color-warning-container);--bs-toast-text-warning:var(--bs-text-warning);--bs-toast-surface-success:var(--bs-color-success-container);--bs-toast-text-success:var(--bs-text-success);--bs-toast-surface-error:var(--bs-color-error-container);--bs-toast-text-error:var(--bs-text-error)}.bs-toast{display:flex;align-items:center;border-radius:var(--bs-toast-radius);box-shadow:var(--bs-toast-shadow);font-family:inherit}.bs-toast--info{background:var(--bs-toast-surface-info);color:var(--bs-toast-text-info)}.bs-toast--warning{background:var(--bs-toast-surface-warning);color:var(--bs-toast-text-warning)}.bs-toast--success{background:var(--bs-toast-surface-success);color:var(--bs-toast-text-success)}.bs-toast--error{background:var(--bs-toast-surface-error);color:var(--bs-toast-text-error)}.bs-toast__content{display:flex;align-items:center;gap:var(--bs-toast-content-gap);flex:1 1 auto;min-width:0;padding:var(--bs-toast-content-padding-y) 0 var(--bs-toast-content-padding-y) var(--bs-toast-content-padding-x)}.bs-toast__icon{display:flex;align-items:center;justify-content:center;width:24px;height:24px;flex-shrink:0;color:inherit}.bs-toast__icon svg{width:24px;height:24px}.bs-toast__message{flex:1 1 auto;min-width:0;font-size:var(--bs-toast-font-size);line-height:calc(var(--bs-toast-line-height) * 1px)}.bs-toast__actions{display:flex;align-items:center;align-self:stretch;flex-shrink:0;padding:var(--bs-toast-actions-padding-y) var(--bs-toast-actions-padding-x) var(--bs-toast-actions-padding-y) 0}.bs-toast__close{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;padding:0;border:none;background:transparent;border-radius:var(--bs-toast-close-radius);color:inherit;cursor:pointer}.bs-toast__close svg{width:24px;height:24px}.bs-toast__close:hover{background:color-mix(in srgb, currentColor 12%, transparent)}.bs-toast__close:active{background:color-mix(in srgb, currentColor 24%, transparent)}.bs-toast__close:focus-visible{outline:2px solid currentColor;outline-offset:2px}`;
|
|
6
6
|
|
|
@@ -19,7 +19,7 @@ const BsToast = class {
|
|
|
19
19
|
this.bsDismiss.emit();
|
|
20
20
|
};
|
|
21
21
|
render() {
|
|
22
|
-
return (index.h("div", { key: '
|
|
22
|
+
return (index.h("div", { key: 'fcf10204b781318554bd1d1b65b3b003759f47ca', part: "container", class: `bs-toast bs-toast--${this.state}`, role: "status", "aria-live": this.state === 'error' ? 'assertive' : 'polite' }, index.h("div", { key: '77a9fc881d530b43aa93cd71ab00d79a402ac5df', class: "bs-toast__content" }, index.h("span", { key: '18b4ffee843c2f9f235477e729a7a5bca1044595', part: "icon", class: "bs-toast__icon", "aria-hidden": "true" }, index.h(StateIcon, { key: '62a78820785f12ccfa503d7690ae99d2b3b47aa2', state: this.state })), index.h("span", { key: 'b17882e4d5f4afe5bcfa5704b515c145df94799b', part: "message", class: "bs-toast__message" }, index.h("slot", { key: '678d2256cc21e6e07b099d417837b5891e7d6021' }))), index.h("div", { key: 'aba935f0a62a599b9eacfed9d13598f70a941283', class: "bs-toast__actions" }, index.h("button", { key: 'a9ee43cf75eca8e737d5e59507408de7f8bffaf1', part: "close", type: "button", class: "bs-toast__close", "aria-label": "Dismiss", onClick: this.onDismiss }, index.h(CloseIcon, { key: '4e4c5a25e6b25da2362385f1be5c4b86f02bbeb0' })))));
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
const StateIcon = ({ state }) => {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var index = require('./index-
|
|
3
|
+
var index = require('./index-tFJjflK5.js');
|
|
4
4
|
|
|
5
5
|
const bsTooltipCss = () => `:host{display:inline-block;--bs-tooltip-bg:var(--bs-surface-inverse);--bs-tooltip-color:var(--bs-text-inverse);--bs-tooltip-radius:var(--bs-border-radius-50);--bs-tooltip-padding-x:var(--bs-spacing-200);--bs-tooltip-padding-y:var(--bs-spacing-100);--bs-tooltip-max-width:200px;--bs-tooltip-shadow:-1px 4px 8px rgba(0, 0, 0, 0.08);--bs-tooltip-font-size:var(--bs-font-size-sm);--bs-tooltip-line-height:var(--bs-line-height-body-sm)}.bs-tooltip{position:relative;display:inline-block}.bs-tooltip__bubble{box-sizing:border-box;max-width:var(--bs-tooltip-max-width);padding:var(--bs-tooltip-padding-y) var(--bs-tooltip-padding-x);background:var(--bs-tooltip-bg);color:var(--bs-tooltip-color);border-radius:var(--bs-tooltip-radius);box-shadow:var(--bs-tooltip-shadow);font-family:inherit;font-size:var(--bs-tooltip-font-size);line-height:calc(var(--bs-tooltip-line-height) * 1px)}.bs-tooltip__arrow{position:absolute;top:-6px;left:50%;transform:translateX(-50%);width:8px;height:8px;background:var(--bs-tooltip-bg);clip-path:polygon(50% 0, 0% 100%, 100% 100%)}`;
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ const BsTooltip = class {
|
|
|
16
16
|
*/
|
|
17
17
|
placement = 'top';
|
|
18
18
|
render() {
|
|
19
|
-
return (index.h("div", { key: '
|
|
19
|
+
return (index.h("div", { key: '8fdc149cce564aa5531956eda52b81bedd9db1bb', class: "bs-tooltip" }, index.h("span", { key: '34234ea02b510a5a728bb97d259cfbd2c8f7f7b2', part: "arrow", class: "bs-tooltip__arrow" }), index.h("div", { key: '04d825a91dc6753a90b7daaf370e575c9ddee6d1', part: "bubble", class: "bs-tooltip__bubble" }, index.h("slot", { key: '81b8681507245e597177d169c1925dfb65aaeeab' }))));
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
BsTooltip.style = bsTooltipCss();
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./index-tFJjflK5.js');
|
|
4
|
+
|
|
5
|
+
const bsWhatsNewCss = () => `:host{display:block;max-width:100%;--bs-whats-new-width:400px;--bs-whats-new-padding:var(--bs-spacing-200);--bs-whats-new-color:var(--bs-text-default);--bs-whats-new-color-secondary:var(--bs-text-secondary);--bs-whats-new-border:var(--bs-border-default);--bs-whats-new-hero-bg:var(--bs-color-primary-container);--bs-whats-new-hero-height:220px;--bs-whats-new-link:var(--bs-text-link);--bs-whats-new-link-underline:var(--bs-border-info);width:var(--bs-whats-new-width)}:host([type='announcement']){--bs-whats-new-width:560px}:host([type='teaser']){--bs-whats-new-width:300px;--bs-whats-new-padding:var(--bs-spacing-150)}.bs-wn--feed{--bs-card-radius:0;--bs-card-padding:var(--bs-whats-new-padding);--bs-card-shadow:0 2px 2px var(--bs-elevation-medium), inset 1px 0 0 var(--bs-whats-new-border)}.bs-wn--announcement{position:relative;--bs-card-radius:var(--bs-border-radius-200);--bs-card-padding:0;--bs-card-shadow:0 2px 4px var(--bs-elevation-medium)}.bs-wn--teaser{--bs-card-radius:var(--bs-border-radius-100);--bs-card-padding:var(--bs-whats-new-padding);--bs-card-shadow:0 4px 4px var(--bs-elevation-high)}.bs-wn{color:var(--bs-whats-new-color)}.bs-wn p,.bs-wn ul,.bs-wn h1,.bs-wn h2,.bs-wn h3,.bs-wn h4,.bs-wn h5,.bs-wn h6{margin:0}.bs-wn__heading{font-size:var(--bs-font-size-2xl);font-weight:var(--bs-font-weight-bold);line-height:32px}.bs-wn__heading--lg{align-self:stretch}.bs-wn__heading--sm{font-size:var(--bs-font-size-sm);font-weight:var(--bs-font-weight-semibold);line-height:20px}.bs-wn__spacer{flex:1 1 0}.bs-wn__text-button{--bs-button-subtle-color:var(--bs-text-action);--bs-button-height-sm:var(--bs-spacing-400);--bs-button-padding-x-sm:var(--bs-spacing-150)}.bs-wn__text-button--md{--bs-button-height-md:var(--bs-spacing-550)}.bs-wn__close{flex:none}.bs-wn__close svg{width:20px;height:20px}.bs-wn__close--compact{--bs-icon-button-size-md:24px}.bs-wn__feed{display:flex;flex-direction:column;gap:var(--bs-spacing-100)}.bs-wn__head{display:flex;align-items:center;gap:var(--bs-spacing-100)}.bs-wn__filters{overflow-x:auto;scrollbar-width:none}.bs-wn__filters::-webkit-scrollbar{display:none}.bs-wn__entries{display:flex;flex-direction:column;padding-top:var(--bs-spacing-200);padding-bottom:var(--bs-spacing-100)}.bs-wn__empty{padding:var(--bs-spacing-300) 0;color:var(--bs-whats-new-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px;text-align:center}.bs-wn__footer{display:flex;align-items:center;padding-top:var(--bs-spacing-150)}.bs-wn__link{display:inline-flex;align-items:center;gap:var(--bs-spacing-25);color:var(--bs-whats-new-link);font-size:var(--bs-font-size-xs);line-height:16px;text-decoration:none}.bs-wn__link-text{border-bottom:1px solid var(--bs-whats-new-link-underline)}.bs-wn__link svg{width:16px;height:16px}.bs-wn__link:focus-visible{outline:2px solid var(--bs-border-neutral-focus);outline-offset:2px}.bs-wn__announcement{display:flex;flex-direction:column}.bs-wn--announcement .bs-wn__close{position:absolute;z-index:1;top:var(--bs-spacing-50);inset-inline-end:var(--bs-spacing-50)}.bs-wn__hero{display:none;height:var(--bs-whats-new-hero-height);background:var(--bs-whats-new-hero-bg);overflow:hidden}.bs-wn__hero--visible{display:block}.bs-wn__hero img,::slotted([slot='hero']){display:block;width:100%;height:100%;object-fit:cover}.bs-wn__body{display:flex;flex-direction:column;align-items:flex-start;gap:var(--bs-spacing-150);padding:var(--bs-whats-new-padding)}.bs-wn__points{display:flex;flex-direction:column;gap:var(--bs-spacing-150);align-self:stretch;padding:0;list-style:none;font-size:var(--bs-font-size-sm);line-height:20px}.bs-wn__points li{display:flex;align-items:center;gap:var(--bs-spacing-150)}.bs-wn__check{flex:none;width:18px;height:18px;color:var(--bs-icon-action)}.bs-wn__announcement-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--bs-spacing-100);align-self:stretch;padding-top:var(--bs-spacing-100)}.bs-wn__step{color:var(--bs-whats-new-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px;white-space:nowrap}.bs-wn__actions{display:flex;align-items:center;gap:var(--bs-spacing-100);margin-inline-start:auto}.bs-wn__actions bs-button{--bs-button-height-md:var(--bs-spacing-550)}.bs-wn__teaser{display:flex;flex-direction:column;align-items:flex-start;gap:var(--bs-spacing-75)}.bs-wn__teaser-row{display:flex;align-items:center;gap:var(--bs-spacing-100);align-self:stretch}.bs-wn__date{color:var(--bs-whats-new-color-secondary);font-size:var(--bs-font-size-xs);line-height:16px;white-space:nowrap}.bs-wn__description{color:var(--bs-whats-new-color-secondary);font-size:var(--bs-font-size-sm);line-height:20px}.bs-wn__link-button{--bs-button-padding-x-label-side:var(--bs-spacing-150);--bs-button-padding-x-icon-side:var(--bs-spacing-100);margin-inline-start:calc(var(--bs-spacing-150) * -1)}.bs-wn__link-button svg{width:20px;height:20px}`;
|
|
6
|
+
|
|
7
|
+
const BsWhatsNew = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
index.registerInstance(this, hostRef);
|
|
10
|
+
this.bsMarkAllRead = index.createEvent(this, "bsMarkAllRead");
|
|
11
|
+
this.bsEntryAction = index.createEvent(this, "bsEntryAction");
|
|
12
|
+
this.bsFilterChange = index.createEvent(this, "bsFilterChange");
|
|
13
|
+
this.bsClose = index.createEvent(this, "bsClose");
|
|
14
|
+
this.bsPrimary = index.createEvent(this, "bsPrimary");
|
|
15
|
+
this.bsSecondary = index.createEvent(this, "bsSecondary");
|
|
16
|
+
this.bsOpen = index.createEvent(this, "bsOpen");
|
|
17
|
+
}
|
|
18
|
+
/** Which form: `feed`, `announcement` or `teaser`. */
|
|
19
|
+
type = 'feed';
|
|
20
|
+
/** Heading. Defaults to "What's new" for `feed`; set it for the other forms. */
|
|
21
|
+
heading;
|
|
22
|
+
/** HTML heading level, 1-6. */
|
|
23
|
+
headingLevel = 2;
|
|
24
|
+
/** Shows a close button. */
|
|
25
|
+
closable = false;
|
|
26
|
+
/** Accessible name of the close button. */
|
|
27
|
+
closeLabel = 'Close';
|
|
28
|
+
// --- feed --------------------------------------------------------------------------------
|
|
29
|
+
/** The updates in the feed: `[{ id, category?, tag?, tagColor?, date?, unread?, heading, description?,
|
|
30
|
+
* actionLabel?, image? }]`. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's
|
|
31
|
+
* non-string props rule. */
|
|
32
|
+
entries = [];
|
|
33
|
+
/** The filter tabs: `[{ value, label }]`. `value: "all"` shows every entry; any other value shows the
|
|
34
|
+
* entries whose `category` matches. Defaults to All, New Features, Improvements and Fixes
|
|
35
|
+
* (categories `features`, `improvements`, `fixes`). Set `[]` for no tabs. */
|
|
36
|
+
filters = [
|
|
37
|
+
{ value: 'all', label: 'All' },
|
|
38
|
+
{ value: 'features', label: 'New Features' },
|
|
39
|
+
{ value: 'improvements', label: 'Improvements' },
|
|
40
|
+
{ value: 'fixes', label: 'Fixes' },
|
|
41
|
+
];
|
|
42
|
+
/** The selected filter's `value`. Mutable: choosing a tab updates it. */
|
|
43
|
+
filter = 'all';
|
|
44
|
+
/** Label of the "Mark all as read" button, shown while any entry is `unread`. */
|
|
45
|
+
markAllReadLabel = 'Mark all as read';
|
|
46
|
+
/** Text of the release notes link. */
|
|
47
|
+
releaseNotesLabel = 'See all release notes';
|
|
48
|
+
/** URL of the full release notes. The link is only shown when this is set. */
|
|
49
|
+
releaseNotesUrl;
|
|
50
|
+
/** Text shown when the selected filter has no entries. */
|
|
51
|
+
emptyLabel = 'Nothing new here yet.';
|
|
52
|
+
// --- announcement ------------------------------------------------------------------------
|
|
53
|
+
/** Tag text (`announcement`, `teaser`), e.g. "New feature". */
|
|
54
|
+
tag;
|
|
55
|
+
/** Colour of the tag. */
|
|
56
|
+
tagColor = 'info';
|
|
57
|
+
/** URL of the hero image (`announcement`). Or slot your own into `hero`. */
|
|
58
|
+
image;
|
|
59
|
+
/** The bullet points (`announcement`). Must be set as a JS property -- see CONVENTIONS.md. */
|
|
60
|
+
points = [];
|
|
61
|
+
/** Current step, 1-based (`announcement`). Used with `total`. */
|
|
62
|
+
step = 1;
|
|
63
|
+
/** Number of announcements in the sequence (`announcement`). The step label is hidden when 0. */
|
|
64
|
+
total = 0;
|
|
65
|
+
/** Template of the step label; `{step}` and `{total}` are replaced. */
|
|
66
|
+
stepLabel = '{step} of {total}';
|
|
67
|
+
/** Label of the secondary button (`announcement`). Empty hides it. */
|
|
68
|
+
secondaryLabel = 'Remind me later';
|
|
69
|
+
/** Label of the primary button (`announcement`). Empty hides it. */
|
|
70
|
+
primaryLabel = 'Next';
|
|
71
|
+
// --- teaser ------------------------------------------------------------------------------
|
|
72
|
+
/** The date as text (`teaser`). */
|
|
73
|
+
date;
|
|
74
|
+
/** The line under the heading (`teaser`). */
|
|
75
|
+
description;
|
|
76
|
+
/** Label of the link (`teaser`). */
|
|
77
|
+
actionLabel = 'Open What’s new';
|
|
78
|
+
// --- events ------------------------------------------------------------------------------
|
|
79
|
+
/** Fires when "Mark all as read" is pressed (`feed`). Update the entries' `unread` yourself. */
|
|
80
|
+
bsMarkAllRead;
|
|
81
|
+
/** Fires when an entry's action link is pressed (`feed`): `{ id }`. */
|
|
82
|
+
bsEntryAction;
|
|
83
|
+
/** Fires when the user picks a filter tab (`feed`): `{ value }`. */
|
|
84
|
+
bsFilterChange;
|
|
85
|
+
/** Fires when the close button is pressed. */
|
|
86
|
+
bsClose;
|
|
87
|
+
/** Fires when the primary button (`announcement`) is pressed. */
|
|
88
|
+
bsPrimary;
|
|
89
|
+
/** Fires when the secondary button (`announcement`) is pressed. */
|
|
90
|
+
bsSecondary;
|
|
91
|
+
/** Fires when the teaser's link is pressed (`teaser`) -- open the feed. */
|
|
92
|
+
bsOpen;
|
|
93
|
+
/** True while something is assigned to the `hero` slot, so the hero area only exists then. */
|
|
94
|
+
hasHeroSlot = false;
|
|
95
|
+
// --- pieces ------------------------------------------------------------------------------
|
|
96
|
+
heading_(text, cls = '') {
|
|
97
|
+
const level = Math.min(6, Math.max(1, Math.trunc(Number(this.headingLevel)) || 2));
|
|
98
|
+
return index.h(`h${level}`, { part: 'heading', id: 'heading', class: { 'bs-wn__heading': true, [cls]: !!cls } }, text);
|
|
99
|
+
}
|
|
100
|
+
renderClose(compact = false) {
|
|
101
|
+
if (!this.closable)
|
|
102
|
+
return null;
|
|
103
|
+
return (index.h("bs-icon-button", { part: "close", class: { 'bs-wn__close': true, 'bs-wn__close--compact': compact }, variant: "subtle", size: "md", ariaLabel: this.closeLabel, onClick: () => this.bsClose.emit() }, index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round", "aria-hidden": "true" }, index.h("path", { d: "M6 6L18 18M18 6L6 18" }))));
|
|
104
|
+
}
|
|
105
|
+
renderTag() {
|
|
106
|
+
if (!this.tag)
|
|
107
|
+
return null;
|
|
108
|
+
return (index.h("bs-chip-informative", { part: "tag", size: "sm", color: this.tagColor }, this.tag));
|
|
109
|
+
}
|
|
110
|
+
renderFeed() {
|
|
111
|
+
const all = this.entries ?? [];
|
|
112
|
+
const visible = this.filter === 'all' ? all : all.filter(e => e.category === this.filter);
|
|
113
|
+
const anyUnread = all.some(e => e.unread);
|
|
114
|
+
const filters = this.filters ?? [];
|
|
115
|
+
return (index.h("bs-card", { part: "container", class: "bs-wn bs-wn--feed", surface: "base", role: "region", "aria-labelledby": "heading" }, index.h("div", { class: "bs-wn__feed" }, index.h("div", { class: "bs-wn__head" }, this.heading_(this.heading ?? 'What’s new'), index.h("span", { class: "bs-wn__spacer" }), anyUnread && (index.h("bs-button", { part: "mark-all-read", class: "bs-wn__text-button", variant: "subtle", size: "sm", onClick: () => this.bsMarkAllRead.emit() }, this.markAllReadLabel)), this.renderClose()), filters.length > 0 && (index.h("div", { part: "filters", class: "bs-wn__filters" }, index.h("bs-tabs", { value: this.filter, onBsChange: (ev) => this.onFilter(ev.detail.value) }, filters.map(f => (index.h("bs-tab", { key: f.value, value: f.value, selected: f.value === this.filter }, f.label)))))), visible.length === 0 ? (index.h("p", { class: "bs-wn__empty" }, this.emptyLabel)) : (index.h("div", { part: "entries", class: "bs-wn__entries" }, visible.map((e, i) => (index.h("bs-whats-new-entry", { key: e.id, part: "entry", tag: e.tag, tagColor: e.tagColor, date: e.date, unread: !!e.unread, heading: e.heading, headingLevel: Math.min(6, (Number(this.headingLevel) || 2) + 1), description: e.description, actionLabel: e.actionLabel, divider: i < visible.length - 1 || !!this.releaseNotesUrl, onBsAction: () => this.bsEntryAction.emit({ id: e.id }) }, e.image && index.h("img", { slot: "image", src: e.image, alt: "" })))))), this.releaseNotesUrl && (index.h("div", { class: "bs-wn__footer" }, index.h("a", { part: "release-notes", class: "bs-wn__link", href: this.releaseNotesUrl }, index.h("span", { class: "bs-wn__link-text" }, this.releaseNotesLabel), index.h("svg", { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, index.h("path", { d: "M7 17L17 7" }), index.h("path", { d: "M8 7H17V16" }))))))));
|
|
116
|
+
}
|
|
117
|
+
onFilter(value) {
|
|
118
|
+
if (value === this.filter)
|
|
119
|
+
return;
|
|
120
|
+
this.filter = value;
|
|
121
|
+
this.bsFilterChange.emit({ value });
|
|
122
|
+
}
|
|
123
|
+
renderAnnouncement() {
|
|
124
|
+
const step = this.total > 0 ? this.stepLabel.replace('{step}', String(this.step)).replace('{total}', String(this.total)) : '';
|
|
125
|
+
const points = this.points ?? [];
|
|
126
|
+
return (index.h("bs-card", { part: "container", class: "bs-wn bs-wn--announcement", surface: "base", role: "region", "aria-labelledby": "heading" }, index.h("div", { class: "bs-wn__announcement" }, this.renderClose(), index.h("div", { part: "hero", class: { 'bs-wn__hero': true, 'bs-wn__hero--visible': !!this.image || this.hasHeroSlot } }, this.image && index.h("img", { src: this.image, alt: "" }), index.h("slot", { name: "hero", onSlotchange: (ev) => (this.hasHeroSlot = ev.target.assignedNodes().length > 0) })), index.h("div", { class: "bs-wn__body" }, this.renderTag(), this.heading_(this.heading ?? '', 'bs-wn__heading--lg'), points.length > 0 && (index.h("ul", { part: "points", class: "bs-wn__points" }, points.map(p => (index.h("li", null, index.h("svg", { class: "bs-wn__check", viewBox: "0 0 18 18", fill: "none", stroke: "currentColor", "stroke-width": "1.8", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, index.h("path", { d: "M3.5 9.5L7 13L14.5 5" })), index.h("span", null, p)))))), index.h("div", { class: "bs-wn__announcement-footer" }, index.h("span", { part: "step", class: "bs-wn__step" }, step), index.h("div", { class: "bs-wn__actions" }, this.secondaryLabel && (index.h("bs-button", { part: "secondary", class: "bs-wn__text-button bs-wn__text-button--md", variant: "subtle", onClick: () => this.bsSecondary.emit() }, this.secondaryLabel)), this.primaryLabel && (index.h("bs-button", { part: "primary", variant: "primary", onClick: () => this.bsPrimary.emit() }, this.primaryLabel))))))));
|
|
127
|
+
}
|
|
128
|
+
renderTeaser() {
|
|
129
|
+
return (index.h("bs-card", { part: "container", class: "bs-wn bs-wn--teaser", surface: "base", role: "region", "aria-labelledby": "heading" }, index.h("div", { class: "bs-wn__teaser" }, index.h("div", { class: "bs-wn__teaser-row" }, this.renderTag(), this.date && (index.h("span", { part: "date", class: "bs-wn__date" }, this.date)), index.h("span", { class: "bs-wn__spacer" }), this.renderClose(true)), this.heading_(this.heading ?? '', 'bs-wn__heading--sm'), this.description && (index.h("p", { part: "description", class: "bs-wn__description" }, this.description)), this.actionLabel && (index.h("bs-button", { part: "action", class: "bs-wn__text-button bs-wn__link-button", variant: "subtle", size: "sm", onClick: () => this.bsOpen.emit() }, this.actionLabel, index.h("svg", { slot: "end-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, index.h("path", { d: "M5 12H19" }), index.h("path", { d: "M13 6L19 12L13 18" })))))));
|
|
130
|
+
}
|
|
131
|
+
render() {
|
|
132
|
+
switch (this.type) {
|
|
133
|
+
case 'announcement':
|
|
134
|
+
return this.renderAnnouncement();
|
|
135
|
+
case 'teaser':
|
|
136
|
+
return this.renderTeaser();
|
|
137
|
+
default:
|
|
138
|
+
return this.renderFeed();
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
BsWhatsNew.style = bsWhatsNewCss();
|
|
143
|
+
|
|
144
|
+
exports.bs_whats_new = BsWhatsNew;
|