@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
|
@@ -13,7 +13,7 @@ import { BsBreadcrumbSize } from "./components/bs-breadcrumb/bs-breadcrumb/bs-br
|
|
|
13
13
|
import { BsBreadcrumbOverflowItem } from "./components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow";
|
|
14
14
|
import { BsBreadcrumbSize as BsBreadcrumbSize1 } from "./components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb";
|
|
15
15
|
import { BsButtonSize, BsButtonVariant } from "./components/bs-button/bs-button/bs-button";
|
|
16
|
-
import { BsButtonSize as BsButtonSize1 } from "./components/bs-button/bs-button/bs-button";
|
|
16
|
+
import { BsButtonSize as BsButtonSize1, BsButtonVariant as BsButtonVariant1 } from "./components/bs-button/bs-button/bs-button";
|
|
17
17
|
import { BsCardSurface } from "./components/bs-card/bs-card";
|
|
18
18
|
import { BsCarouselTracker } from "./components/bs-carousel/bs-carousel";
|
|
19
19
|
import { BsCheckboxSize } from "./components/bs-checkbox/bs-checkbox";
|
|
@@ -23,16 +23,23 @@ import { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-c
|
|
|
23
23
|
import { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
|
|
24
24
|
import { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
|
|
25
25
|
import { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
|
|
26
|
+
import { BsCookieCategory, BsCookieChoices, BsCookieConsentType } from "./components/bs-cookie-consent/bs-cookie-consent";
|
|
26
27
|
import { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
|
|
27
28
|
import { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
|
|
28
29
|
import { BsDialogSize } from "./components/bs-dialog/bs-dialog";
|
|
30
|
+
import { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
|
|
29
31
|
import { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
|
|
30
32
|
import { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
|
|
31
33
|
import { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
|
|
34
|
+
import { BsIconTileIntent, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
|
|
32
35
|
import { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
|
|
33
36
|
import { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
|
|
37
|
+
import { BsOnboardingChecklistType, BsOnboardingLauncherLayout, BsOnboardingStep } from "./components/bs-onboarding-checklist/bs-onboarding-checklist";
|
|
38
|
+
import { BsProductTourDirection, BsProductTourType } from "./components/bs-product-tour/bs-product-tour";
|
|
34
39
|
import { BsProgressSize, BsProgressStrokeWidth, BsProgressType } from "./components/bs-progress/bs-progress";
|
|
35
40
|
import { BsProgressLinearSize, BsProgressLinearType } from "./components/bs-progress-linear/bs-progress-linear";
|
|
41
|
+
import { BsQrCodeSize, BsQrCodeState, BsQrCodeType } from "./components/bs-qr-code/bs-qr-code";
|
|
42
|
+
import { BsSessionTimeoutAlternative, BsSessionTimeoutType } from "./components/bs-session-timeout/bs-session-timeout";
|
|
36
43
|
import { BsSliderType } from "./components/bs-slider/bs-slider";
|
|
37
44
|
import { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
|
|
38
45
|
import { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
|
|
@@ -42,6 +49,9 @@ import { BsTabIconPosition } from "./components/bs-tab/bs-tab/bs-tab";
|
|
|
42
49
|
import { BsTabsOrientation, BsTabsType } from "./components/bs-tab/bs-tabs/bs-tabs";
|
|
43
50
|
import { BsTimepickerChange } from "./components/bs-timepicker/bs-timepicker";
|
|
44
51
|
import { BsToastState } from "./components/bs-toast/bs-toast";
|
|
52
|
+
import { BsWhatsNewFilter, BsWhatsNewItem, BsWhatsNewType } from "./components/bs-whats-new/bs-whats-new";
|
|
53
|
+
import { BsWhatsNewEntryTagColor } from "./components/bs-whats-new-entry/bs-whats-new-entry";
|
|
54
|
+
import { BsWhatsNewEntryTagColor as BsWhatsNewEntryTagColor1 } from "./components/bs-whats-new-entry/bs-whats-new-entry";
|
|
45
55
|
export { BsAccordionSize } from "./components/bs-accordion/bs-accordion";
|
|
46
56
|
export { BsAttachmentType } from "./components/bs-attachment/bs-attachment";
|
|
47
57
|
export { BsAvatarSize, BsAvatarType } from "./components/bs-avatar/bs-avatar";
|
|
@@ -50,7 +60,7 @@ export { BsBreadcrumbSize } from "./components/bs-breadcrumb/bs-breadcrumb/bs-br
|
|
|
50
60
|
export { BsBreadcrumbOverflowItem } from "./components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow";
|
|
51
61
|
export { BsBreadcrumbSize as BsBreadcrumbSize1 } from "./components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb";
|
|
52
62
|
export { BsButtonSize, BsButtonVariant } from "./components/bs-button/bs-button/bs-button";
|
|
53
|
-
export { BsButtonSize as BsButtonSize1 } from "./components/bs-button/bs-button/bs-button";
|
|
63
|
+
export { BsButtonSize as BsButtonSize1, BsButtonVariant as BsButtonVariant1 } from "./components/bs-button/bs-button/bs-button";
|
|
54
64
|
export { BsCardSurface } from "./components/bs-card/bs-card";
|
|
55
65
|
export { BsCarouselTracker } from "./components/bs-carousel/bs-carousel";
|
|
56
66
|
export { BsCheckboxSize } from "./components/bs-checkbox/bs-checkbox";
|
|
@@ -60,16 +70,23 @@ export { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-c
|
|
|
60
70
|
export { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
|
|
61
71
|
export { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
|
|
62
72
|
export { BsComposerStatusBannerType } from "./components/bs-composer-status-banner/bs-composer-status-banner";
|
|
73
|
+
export { BsCookieCategory, BsCookieChoices, BsCookieConsentType } from "./components/bs-cookie-consent/bs-cookie-consent";
|
|
63
74
|
export { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
|
|
64
75
|
export { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
|
|
65
76
|
export { BsDialogSize } from "./components/bs-dialog/bs-dialog";
|
|
77
|
+
export { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
|
|
66
78
|
export { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
|
|
67
79
|
export { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
|
|
68
80
|
export { BsIconButtonSize, BsIconButtonVariant } from "./components/bs-button/bs-icon-button/bs-icon-button";
|
|
81
|
+
export { BsIconTileIntent, BsIconTileSize } from "./components/bs-icon-tile/bs-icon-tile";
|
|
69
82
|
export { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
|
|
70
83
|
export { BsNavigationHeaderAlignment } from "./components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header";
|
|
84
|
+
export { BsOnboardingChecklistType, BsOnboardingLauncherLayout, BsOnboardingStep } from "./components/bs-onboarding-checklist/bs-onboarding-checklist";
|
|
85
|
+
export { BsProductTourDirection, BsProductTourType } from "./components/bs-product-tour/bs-product-tour";
|
|
71
86
|
export { BsProgressSize, BsProgressStrokeWidth, BsProgressType } from "./components/bs-progress/bs-progress";
|
|
72
87
|
export { BsProgressLinearSize, BsProgressLinearType } from "./components/bs-progress-linear/bs-progress-linear";
|
|
88
|
+
export { BsQrCodeSize, BsQrCodeState, BsQrCodeType } from "./components/bs-qr-code/bs-qr-code";
|
|
89
|
+
export { BsSessionTimeoutAlternative, BsSessionTimeoutType } from "./components/bs-session-timeout/bs-session-timeout";
|
|
73
90
|
export { BsSliderType } from "./components/bs-slider/bs-slider";
|
|
74
91
|
export { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
|
|
75
92
|
export { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
|
|
@@ -79,6 +96,9 @@ export { BsTabIconPosition } from "./components/bs-tab/bs-tab/bs-tab";
|
|
|
79
96
|
export { BsTabsOrientation, BsTabsType } from "./components/bs-tab/bs-tabs/bs-tabs";
|
|
80
97
|
export { BsTimepickerChange } from "./components/bs-timepicker/bs-timepicker";
|
|
81
98
|
export { BsToastState } from "./components/bs-toast/bs-toast";
|
|
99
|
+
export { BsWhatsNewFilter, BsWhatsNewItem, BsWhatsNewType } from "./components/bs-whats-new/bs-whats-new";
|
|
100
|
+
export { BsWhatsNewEntryTagColor } from "./components/bs-whats-new-entry/bs-whats-new-entry";
|
|
101
|
+
export { BsWhatsNewEntryTagColor as BsWhatsNewEntryTagColor1 } from "./components/bs-whats-new-entry/bs-whats-new-entry";
|
|
82
102
|
export namespace Components {
|
|
83
103
|
/**
|
|
84
104
|
* A single collapsible section -- a clickable header (optional leading icon, label, trailing
|
|
@@ -472,6 +492,9 @@ export namespace Components {
|
|
|
472
492
|
* - `error` purely for visual emphasis — it signals a destructive action to the user, so reserve
|
|
473
493
|
* it for actions that actually delete/revoke/undo something.
|
|
474
494
|
* @prop --bs-button-radius - Corner radius. Aliased to `--bs-border-radius-100` by default.
|
|
495
|
+
* @prop --bs-button-padding-x-sm - Left/right padding of a label-only button at `size="sm"`. Aliased to `--bs-spacing-300`.
|
|
496
|
+
* @prop --bs-button-width - Width of the button. `auto` by default (fits its content); set `100%` for a full-width button, e.g. `bs-button { --bs-button-width: 100%; }`.
|
|
497
|
+
* @prop --bs-button-subtle-color - Label/icon colour, `variant="subtle"`. Aliased to `--bs-color-neutral-default`; set it to `var(--bs-text-action)` for a blue text button.
|
|
475
498
|
* @prop --bs-button-height-sm - Height at `size="sm"`. Aliased to `--bs-spacing-500`.
|
|
476
499
|
* @prop --bs-button-height-md - Height at `size="md"`. Aliased to `--bs-spacing-600`.
|
|
477
500
|
* @prop --bs-button-height-lg - Height at `size="lg"`. Aliased to `--bs-spacing-700`.
|
|
@@ -1178,6 +1201,103 @@ export namespace Components {
|
|
|
1178
1201
|
*/
|
|
1179
1202
|
"type": BsComposerStatusBannerType;
|
|
1180
1203
|
}
|
|
1204
|
+
/**
|
|
1205
|
+
* A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
|
|
1206
|
+
* - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
|
|
1207
|
+
* all. Stacks into a column on narrow containers (its own width, not the viewport's).
|
|
1208
|
+
* - `card` -- the compact version of the same question, in a card.
|
|
1209
|
+
* - `preferences` -- the detailed dialog: one row per cookie category with a switch (strictly
|
|
1210
|
+
* necessary is "Always on"), an expandable list of the cookies in each, and Reject optional /
|
|
1211
|
+
* Accept all / Save choices.
|
|
1212
|
+
* - `saved` -- a dark confirmation bar ("Cookie choices saved") with a Change action.
|
|
1213
|
+
* The component only collects the choice. It doesn't set, read or delete cookies, remember that the
|
|
1214
|
+
* user answered, or decide when to show itself: your app does that from the events, and swaps `type`
|
|
1215
|
+
* (e.g. `banner` -> `preferences` on `bsCustomise`, `preferences` -> `saved` on `bsSave`).
|
|
1216
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
|
|
1217
|
+
* `bs-switch` (the category switches), `bs-chip-informative` (the "Always on" badge), `bs-icon-button`
|
|
1218
|
+
* (the close button), `bs-snackbar` (the saved confirmation).
|
|
1219
|
+
* ## When to use
|
|
1220
|
+
* - Asking for consent to optional cookies or similar tracking, as the law of your market requires.
|
|
1221
|
+
* ## When not to use
|
|
1222
|
+
* - Telling people about necessary cookies only -- that needs no consent prompt.
|
|
1223
|
+
* ## Fair choice
|
|
1224
|
+
* "Reject optional" has the same prominence as "Accept all" (same size, both always visible). Keep it
|
|
1225
|
+
* that way: a prompt that makes refusing harder than accepting isn't valid consent in most places.
|
|
1226
|
+
*/
|
|
1227
|
+
interface BsCookieConsent {
|
|
1228
|
+
/**
|
|
1229
|
+
* Label of the Accept all button.
|
|
1230
|
+
* @default 'Accept all'
|
|
1231
|
+
*/
|
|
1232
|
+
"acceptLabel": string;
|
|
1233
|
+
/**
|
|
1234
|
+
* Text of the badge on required categories (`preferences`).
|
|
1235
|
+
* @default 'Always on'
|
|
1236
|
+
*/
|
|
1237
|
+
"alwaysOnLabel": string;
|
|
1238
|
+
/**
|
|
1239
|
+
* The categories in the preferences dialog (`preferences`): `[{ id, label, description?, required?, enabled?, cookies? }]`. Defaults to Strictly necessary, Preferences, Analytics and Marketing. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule.
|
|
1240
|
+
* @default [ { id: 'necessary', label: 'Strictly necessary', description: 'Needed for sign-in, security and to keep the service running. These cannot be turned off.', required: true, cookies: [ 'Session cookie — keeps you signed in as you move between pages.', 'Security cookie — helps prevent fraud and unauthorized access.', 'Consent cookie — remembers your cookie consent choices.', ], }, { id: 'preferences', label: 'Preferences', description: 'Remember your language, theme and table layouts on this device.', enabled: true }, { id: 'analytics', label: 'Analytics', description: 'Help us understand which features are used so we can improve them. Data is anonymised.' }, { id: 'marketing', label: 'Marketing', description: 'Show relevant products on other websites.' }, ]
|
|
1241
|
+
*/
|
|
1242
|
+
"categories": BsCookieCategory[];
|
|
1243
|
+
/**
|
|
1244
|
+
* Label of the action on the confirmation (`saved`).
|
|
1245
|
+
* @default 'Change'
|
|
1246
|
+
*/
|
|
1247
|
+
"changeLabel": string;
|
|
1248
|
+
/**
|
|
1249
|
+
* Accessible name of the close button (`preferences`).
|
|
1250
|
+
* @default 'Close'
|
|
1251
|
+
*/
|
|
1252
|
+
"closeLabel": string;
|
|
1253
|
+
/**
|
|
1254
|
+
* Label of the Customise button.
|
|
1255
|
+
* @default 'Customise'
|
|
1256
|
+
*/
|
|
1257
|
+
"customiseLabel": string;
|
|
1258
|
+
/**
|
|
1259
|
+
* Paragraph under the heading (the message, for `saved`). Defaults per `type`.
|
|
1260
|
+
*/
|
|
1261
|
+
"description"?: string;
|
|
1262
|
+
/**
|
|
1263
|
+
* Heading. Defaults per `type`.
|
|
1264
|
+
*/
|
|
1265
|
+
"heading"?: string;
|
|
1266
|
+
/**
|
|
1267
|
+
* HTML heading level, 1-6.
|
|
1268
|
+
* @default 2
|
|
1269
|
+
*/
|
|
1270
|
+
"headingLevel": number;
|
|
1271
|
+
/**
|
|
1272
|
+
* Text of the policy link.
|
|
1273
|
+
* @default 'Read the cookie policy'
|
|
1274
|
+
*/
|
|
1275
|
+
"policyLabel": string;
|
|
1276
|
+
/**
|
|
1277
|
+
* URL of your cookie policy. The "Read the cookie policy" link is only shown when this is set.
|
|
1278
|
+
*/
|
|
1279
|
+
"policyUrl"?: string;
|
|
1280
|
+
/**
|
|
1281
|
+
* Label of the Reject optional button.
|
|
1282
|
+
* @default 'Reject optional'
|
|
1283
|
+
*/
|
|
1284
|
+
"rejectLabel": string;
|
|
1285
|
+
/**
|
|
1286
|
+
* Label of the Save choices button (`preferences`).
|
|
1287
|
+
* @default 'Save choices'
|
|
1288
|
+
*/
|
|
1289
|
+
"saveLabel": string;
|
|
1290
|
+
/**
|
|
1291
|
+
* Label of a category's disclosure; `{count}` is replaced by the number of cookies.
|
|
1292
|
+
* @default 'See {count} cookies'
|
|
1293
|
+
*/
|
|
1294
|
+
"seeCookiesLabel": string;
|
|
1295
|
+
/**
|
|
1296
|
+
* Which form: `banner`, `card`, `preferences` or `saved`.
|
|
1297
|
+
* @default 'banner'
|
|
1298
|
+
*/
|
|
1299
|
+
"type": BsCookieConsentType;
|
|
1300
|
+
}
|
|
1181
1301
|
/**
|
|
1182
1302
|
* A sortable, optionally row-selectable table for tabular data.
|
|
1183
1303
|
* `columns`, `rows`, and `cellRenderer` are JS-property-only — HTML attributes can only carry
|
|
@@ -1226,6 +1346,7 @@ export namespace Components {
|
|
|
1226
1346
|
* ISO timestamps -- so a date can't shift by a day across time zones.
|
|
1227
1347
|
* The calendar renders inline at a fixed width; to show it as a popover, put it inside a
|
|
1228
1348
|
* `bs-menu` or your own overlay.
|
|
1349
|
+
* **Built from:** `bs-card` (the surface), `bs-input` (the month/year dropdown triggers and the range date fields), `bs-menu` and `bs-menu-item` (the month/year lists).
|
|
1229
1350
|
* ## When to use
|
|
1230
1351
|
* - Picking a date where seeing the surrounding days of the week/month helps (a booking, a
|
|
1231
1352
|
* deadline, a report window).
|
|
@@ -1345,6 +1466,56 @@ export namespace Components {
|
|
|
1345
1466
|
*/
|
|
1346
1467
|
"size": BsDialogSize;
|
|
1347
1468
|
}
|
|
1469
|
+
/**
|
|
1470
|
+
* A full-block page for when the user can't get to what they asked for: page not found (404), a server
|
|
1471
|
+
* error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
|
|
1472
|
+
* "Error page" component's five states.
|
|
1473
|
+
* Each `type` brings its own icon, tint, code label ("404", "Maintenance", ...), heading, paragraph and
|
|
1474
|
+
* buttons, all overridable by props. The component doesn't navigate or retry anything: it emits
|
|
1475
|
+
* `bsPrimary` / `bsSecondary` and your app decides what "Go to Overview" or "Try again" does.
|
|
1476
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions).
|
|
1477
|
+
* ## When to use
|
|
1478
|
+
* - Replacing the content of a page or panel that can't be shown, with a clear way forward.
|
|
1479
|
+
* ## When not to use
|
|
1480
|
+
* - A problem with one field or one action -- use inline validation or a `bs-snackbar`.
|
|
1481
|
+
* - A blocking question the user must answer -- use `bs-dialog`.
|
|
1482
|
+
*/
|
|
1483
|
+
interface BsErrorPage {
|
|
1484
|
+
/**
|
|
1485
|
+
* The small label under the icon, e.g. "404". Defaults per `type` ("404", "500", "403", "Maintenance", "Offline"). Set it to an empty string to hide it.
|
|
1486
|
+
*/
|
|
1487
|
+
"code"?: string;
|
|
1488
|
+
/**
|
|
1489
|
+
* Paragraph under the heading. Defaults per `type`.
|
|
1490
|
+
*/
|
|
1491
|
+
"description"?: string;
|
|
1492
|
+
/**
|
|
1493
|
+
* Heading. Defaults per `type`.
|
|
1494
|
+
*/
|
|
1495
|
+
"heading"?: string;
|
|
1496
|
+
/**
|
|
1497
|
+
* HTML heading level for the heading, 1-6. Use 1 when this replaces the whole page; lower when it sits inside a section that already has a heading above it.
|
|
1498
|
+
* @default 1
|
|
1499
|
+
*/
|
|
1500
|
+
"headingLevel": number;
|
|
1501
|
+
/**
|
|
1502
|
+
* Label of the primary button. Defaults per `type`. Set it to an empty string to hide it.
|
|
1503
|
+
*/
|
|
1504
|
+
"primaryLabel"?: string;
|
|
1505
|
+
/**
|
|
1506
|
+
* A small reference line under the buttons, e.g. `"Error ID: 7f3c-21a9 · 30.09.2026 10:42"`, for support to look up. Nothing is shown when empty.
|
|
1507
|
+
*/
|
|
1508
|
+
"reference"?: string;
|
|
1509
|
+
/**
|
|
1510
|
+
* Label of the secondary button. Defaults per `type` (only `not-found`, `server-error` and `no-access` have one). Set it to an empty string to hide it.
|
|
1511
|
+
*/
|
|
1512
|
+
"secondaryLabel"?: string;
|
|
1513
|
+
/**
|
|
1514
|
+
* Which error: `not-found` (404), `server-error` (500), `no-access` (403), `maintenance` or `offline`.
|
|
1515
|
+
* @default 'not-found'
|
|
1516
|
+
*/
|
|
1517
|
+
"type": BsErrorPageType;
|
|
1518
|
+
}
|
|
1348
1519
|
/**
|
|
1349
1520
|
* A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
|
|
1350
1521
|
* the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
|
|
@@ -1495,6 +1666,36 @@ export namespace Components {
|
|
|
1495
1666
|
*/
|
|
1496
1667
|
"variant": BsIconButtonVariant;
|
|
1497
1668
|
}
|
|
1669
|
+
/**
|
|
1670
|
+
* A small rounded square holding an icon, tinted by intent -- the visual marker next to a status,
|
|
1671
|
+
* a list item or a feature. Matches the Figma "Icon tile" component (3 sizes x 6 intents).
|
|
1672
|
+
* Each intent shows a default glyph (house, check, warning, cross, grid, info); put your own icon in
|
|
1673
|
+
* the default slot to replace it. A slotted icon is sized to the tile (12/16/24px) and coloured
|
|
1674
|
+
* with the intent's icon colour, as long as it draws with `currentColor`.
|
|
1675
|
+
* The tile is decorative by default (hidden from assistive tech). Don't rely on the colour or glyph
|
|
1676
|
+
* alone to convey status: slot text into `text` (it sits beside the square, in
|
|
1677
|
+
* `--bs-icon-tile-text-color`), or set `label` to give the tile its own accessible name.
|
|
1678
|
+
* ## When to use
|
|
1679
|
+
* - Marking a row, card or message with a status or category icon.
|
|
1680
|
+
* ## When not to use
|
|
1681
|
+
* - As a button -- it isn't interactive. Use `bs-icon-button`.
|
|
1682
|
+
*/
|
|
1683
|
+
interface BsIconTile {
|
|
1684
|
+
/**
|
|
1685
|
+
* Colour and default glyph. `brand` uses the brand colours; `information` the info palette.
|
|
1686
|
+
* @default 'default'
|
|
1687
|
+
*/
|
|
1688
|
+
"intent": BsIconTileIntent;
|
|
1689
|
+
/**
|
|
1690
|
+
* Accessible name. When set, the tile is exposed as an image with this name; when empty it is decorative and hidden from assistive tech.
|
|
1691
|
+
*/
|
|
1692
|
+
"label"?: string;
|
|
1693
|
+
/**
|
|
1694
|
+
* Tile size: `sm` 24px, `md` 32px, `lg` 48px.
|
|
1695
|
+
* @default 'sm'
|
|
1696
|
+
*/
|
|
1697
|
+
"size": BsIconTileSize;
|
|
1698
|
+
}
|
|
1498
1699
|
/**
|
|
1499
1700
|
* A pill-shaped tab button -- an optional leading icon plus a text label, rendered as a real
|
|
1500
1701
|
* `<button>` so it participates correctly in tab order and native click/keyboard activation.
|
|
@@ -1926,6 +2127,119 @@ export namespace Components {
|
|
|
1926
2127
|
*/
|
|
1927
2128
|
"skipToContentLabel": string;
|
|
1928
2129
|
}
|
|
2130
|
+
/**
|
|
2131
|
+
* A "get set up" checklist, in four forms that matching the Figma "Onboarding checklist" component:
|
|
2132
|
+
* - `panel` -- the full list: heading, progress, every step with a status icon, and the current step
|
|
2133
|
+
* expanded with its description, time estimate, Skip for now and a primary action.
|
|
2134
|
+
* - `dashboard` -- a wide card for the top of a page: summary and progress on the left, the current step
|
|
2135
|
+
* and the next ones as small cards on the right, and a "See all steps" link.
|
|
2136
|
+
* - `launcher` -- a small always-visible chip that reopens the checklist; three layouts (`icon`, `ring`,
|
|
2137
|
+
* `inline`).
|
|
2138
|
+
* - `completion` -- the "You're all set" card once every step is done.
|
|
2139
|
+
* The component shows progress and reports what the user pressed. It doesn't know what a step means,
|
|
2140
|
+
* run it, or remember anything: your app owns the steps (`steps`, each with `done`), marks them done, and
|
|
2141
|
+
* decides which form to show.
|
|
2142
|
+
* **Built from:** `bs-card` (every surface), `bs-icon-tile` (the icons), `bs-button` (the actions),
|
|
2143
|
+
* `bs-icon-button` (the close button), `bs-progress-linear` (the progress bar), `bs-progress` (the launcher
|
|
2144
|
+
* ring).
|
|
2145
|
+
* ## When to use
|
|
2146
|
+
* - Guiding a new account or user through a short list of setup tasks they can do in any order or later.
|
|
2147
|
+
* ## When not to use
|
|
2148
|
+
* - A strict, linear flow where each step needs the one before -- use `bs-stepper`.
|
|
2149
|
+
* - A tour of the interface itself -- use `bs-product-tour`.
|
|
2150
|
+
* ## Accessibility
|
|
2151
|
+
* Steps are an ordered list; the current one has `aria-current="step"`, and each step carries a visually
|
|
2152
|
+
* hidden "Done" / "Not done". The progress bar is named with the progress text.
|
|
2153
|
+
*/
|
|
2154
|
+
interface BsOnboardingChecklist {
|
|
2155
|
+
/**
|
|
2156
|
+
* Caption on the cards of steps that come after the current one (`dashboard`).
|
|
2157
|
+
* @default 'After the step before'
|
|
2158
|
+
*/
|
|
2159
|
+
"afterLabel": string;
|
|
2160
|
+
/**
|
|
2161
|
+
* Shows a close button (`panel`, `dashboard`).
|
|
2162
|
+
* @default false
|
|
2163
|
+
*/
|
|
2164
|
+
"closable": boolean;
|
|
2165
|
+
/**
|
|
2166
|
+
* Accessible name of the close button.
|
|
2167
|
+
* @default 'Close'
|
|
2168
|
+
*/
|
|
2169
|
+
"closeLabel": string;
|
|
2170
|
+
/**
|
|
2171
|
+
* Paragraph under the heading. Defaults to a summary of the progress for `dashboard`. Nothing for `launcher`.
|
|
2172
|
+
*/
|
|
2173
|
+
"description"?: string;
|
|
2174
|
+
/**
|
|
2175
|
+
* Label of the main button (`completion`).
|
|
2176
|
+
* @default 'Go to dashboard'
|
|
2177
|
+
*/
|
|
2178
|
+
"doneLabel": string;
|
|
2179
|
+
/**
|
|
2180
|
+
* Heading. Defaults per `type` ("Get started", "Finish setting up", "Setup", "You're all set").
|
|
2181
|
+
*/
|
|
2182
|
+
"heading"?: string;
|
|
2183
|
+
/**
|
|
2184
|
+
* HTML heading level, 1-6.
|
|
2185
|
+
* @default 2
|
|
2186
|
+
*/
|
|
2187
|
+
"headingLevel": number;
|
|
2188
|
+
/**
|
|
2189
|
+
* Label of the secondary button (`completion`).
|
|
2190
|
+
* @default 'Hide checklist'
|
|
2191
|
+
*/
|
|
2192
|
+
"hideLabel": string;
|
|
2193
|
+
/**
|
|
2194
|
+
* Layout of the `launcher`: `icon` (tile, title, progress text), `ring` (circular progress, title, text) or `inline` (tile, title and text on one line, with a chevron).
|
|
2195
|
+
* @default 'icon'
|
|
2196
|
+
*/
|
|
2197
|
+
"launcherLayout": BsOnboardingLauncherLayout;
|
|
2198
|
+
/**
|
|
2199
|
+
* Template of the progress label; `{done}` and `{total}` are replaced.
|
|
2200
|
+
* @default '{done} of {total} done'
|
|
2201
|
+
*/
|
|
2202
|
+
"progressLabel": string;
|
|
2203
|
+
/**
|
|
2204
|
+
* Text under the launcher title. Defaults to "N% complete".
|
|
2205
|
+
*/
|
|
2206
|
+
"progressText"?: string;
|
|
2207
|
+
/**
|
|
2208
|
+
* Label of the link that opens the whole checklist (`dashboard`).
|
|
2209
|
+
* @default 'See all steps'
|
|
2210
|
+
*/
|
|
2211
|
+
"seeAllLabel": string;
|
|
2212
|
+
/**
|
|
2213
|
+
* Label of "Skip for now" on the current step (`panel`).
|
|
2214
|
+
* @default 'Skip for now'
|
|
2215
|
+
*/
|
|
2216
|
+
"skipLabel": string;
|
|
2217
|
+
/**
|
|
2218
|
+
* Label of the Start link on the current step's card (`dashboard`).
|
|
2219
|
+
* @default 'Start'
|
|
2220
|
+
*/
|
|
2221
|
+
"startLabel": string;
|
|
2222
|
+
/**
|
|
2223
|
+
* Visually hidden text on a finished step.
|
|
2224
|
+
* @default 'Done'
|
|
2225
|
+
*/
|
|
2226
|
+
"statusDoneLabel": string;
|
|
2227
|
+
/**
|
|
2228
|
+
* Visually hidden text on an unfinished step.
|
|
2229
|
+
* @default 'Not done'
|
|
2230
|
+
*/
|
|
2231
|
+
"statusTodoLabel": string;
|
|
2232
|
+
/**
|
|
2233
|
+
* The steps: `[{ id, label, description?, done?, estimate?, actionLabel?, skippable? }]`. The first step that isn't `done` is the current one. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule.
|
|
2234
|
+
* @default []
|
|
2235
|
+
*/
|
|
2236
|
+
"steps": BsOnboardingStep[];
|
|
2237
|
+
/**
|
|
2238
|
+
* Which form: `panel`, `dashboard`, `launcher` or `completion`.
|
|
2239
|
+
* @default 'panel'
|
|
2240
|
+
*/
|
|
2241
|
+
"type": BsOnboardingChecklistType;
|
|
2242
|
+
}
|
|
1929
2243
|
/**
|
|
1930
2244
|
* A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
|
|
1931
2245
|
* large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
|
|
@@ -1968,6 +2282,76 @@ export namespace Components {
|
|
|
1968
2282
|
*/
|
|
1969
2283
|
"totalPages": number;
|
|
1970
2284
|
}
|
|
2285
|
+
/**
|
|
2286
|
+
* One step of a product tour: a centred **welcome** or **success** card with an art tile, or a
|
|
2287
|
+
* **pointer** card -- a compact step with a close button, a "1 of 3" progress label and Back/Next
|
|
2288
|
+
* actions -- whose arrow points at the thing it describes. Matches the Figma "Product Tour" and
|
|
2289
|
+
* "Pointer" components.
|
|
2290
|
+
* This is the step *card* only. It doesn't run a tour: it has no overlay, no spotlight, no
|
|
2291
|
+
* positioning against a target and no step sequencing. Your code decides which step is showing,
|
|
2292
|
+
* places the card next to its target (the arrow can sit on any of 12 positions via `direction`),
|
|
2293
|
+
* and moves on from `bsPrimary`/`bsSecondary`.
|
|
2294
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the art tile), `bs-button` (the actions), `bs-icon-button` (the close button).
|
|
2295
|
+
* ## When to use
|
|
2296
|
+
* - Introducing a feature on first run (`welcome`), confirming a finished tour (`success`), or
|
|
2297
|
+
* walking through the UI one pointer at a time (`pointer`).
|
|
2298
|
+
* ## When not to use
|
|
2299
|
+
* - A blocking decision or form -- use `bs-dialog`.
|
|
2300
|
+
* - A hint on hover or focus -- use `bs-tooltip`.
|
|
2301
|
+
*/
|
|
2302
|
+
interface BsProductTour {
|
|
2303
|
+
/**
|
|
2304
|
+
* Shows a close button in the corner (`pointer`).
|
|
2305
|
+
* @default false
|
|
2306
|
+
*/
|
|
2307
|
+
"closable": boolean;
|
|
2308
|
+
/**
|
|
2309
|
+
* Accessible name of the close button.
|
|
2310
|
+
* @default 'Close'
|
|
2311
|
+
*/
|
|
2312
|
+
"closeLabel": string;
|
|
2313
|
+
/**
|
|
2314
|
+
* Paragraph under the heading.
|
|
2315
|
+
*/
|
|
2316
|
+
"description"?: string;
|
|
2317
|
+
/**
|
|
2318
|
+
* Where the arrow sits (`pointer` only): the side of the card it's on, and for corners/edges which end it's near, e.g. `top-left` = on the top edge, near the left corner.
|
|
2319
|
+
* @default 'top'
|
|
2320
|
+
*/
|
|
2321
|
+
"direction": BsProductTourDirection;
|
|
2322
|
+
/**
|
|
2323
|
+
* Heading.
|
|
2324
|
+
*/
|
|
2325
|
+
"heading"?: string;
|
|
2326
|
+
/**
|
|
2327
|
+
* Label of the primary button. Defaults to "Start" (`welcome`), "Done" (`success`) or "Next" (`pointer`). Set it to an empty string to hide the button.
|
|
2328
|
+
*/
|
|
2329
|
+
"primaryLabel"?: string;
|
|
2330
|
+
/**
|
|
2331
|
+
* Template of the progress label; `{step}` and `{total}` are replaced.
|
|
2332
|
+
* @default '{step} of {total}'
|
|
2333
|
+
*/
|
|
2334
|
+
"progressLabel": string;
|
|
2335
|
+
/**
|
|
2336
|
+
* Label of the secondary button. Defaults to "Later" (`welcome`) or "Back" (`pointer`); none for `success`. Set it to an empty string to hide the button.
|
|
2337
|
+
*/
|
|
2338
|
+
"secondaryLabel"?: string;
|
|
2339
|
+
/**
|
|
2340
|
+
* Current step, 1-based (`pointer`). Used with `total` for the progress label.
|
|
2341
|
+
* @default 1
|
|
2342
|
+
*/
|
|
2343
|
+
"step": number;
|
|
2344
|
+
/**
|
|
2345
|
+
* Number of steps (`pointer`). The progress label is hidden when this is 0.
|
|
2346
|
+
* @default 0
|
|
2347
|
+
*/
|
|
2348
|
+
"total": number;
|
|
2349
|
+
/**
|
|
2350
|
+
* `welcome` and `success` are centred cards with an art tile; `pointer` is the compact step with an arrow.
|
|
2351
|
+
* @default 'welcome'
|
|
2352
|
+
*/
|
|
2353
|
+
"type": BsProductTourType;
|
|
2354
|
+
}
|
|
1971
2355
|
/**
|
|
1972
2356
|
* A circular progress indicator -- either a static ring showing a percentage sweep
|
|
1973
2357
|
* (`type="determinate"`) or a continuously spinning ring signaling in-progress work with no known
|
|
@@ -2054,6 +2438,143 @@ export namespace Components {
|
|
|
2054
2438
|
*/
|
|
2055
2439
|
"value": number;
|
|
2056
2440
|
}
|
|
2441
|
+
/**
|
|
2442
|
+
* A block for sharing a link or taking a payment by QR code: a heading, the code on a white quiet
|
|
2443
|
+
* zone, the URL (or the amount, for payments) as text, an optional expiry chip, and Download and
|
|
2444
|
+
* Copy link actions. Matches the Figma "QR code" component (3 sizes x 2 types x 5 states, plus the
|
|
2445
|
+
* "with logo" variant).
|
|
2446
|
+
* **This component draws a code, it doesn't encode one.** Generate the real code in your product
|
|
2447
|
+
* with a QR library and hand it over either as a `matrix` (a square `boolean[][]`, `true` = dark
|
|
2448
|
+
* module) or as your own element in the `code` slot (an `<img>`, `<svg>` or `<canvas>`).
|
|
2449
|
+
* The code always sits on a white quiet zone with black modules, in dark mode too -- scanners need
|
|
2450
|
+
* the contrast.
|
|
2451
|
+
* **Built from:** `bs-card` (the surface), `bs-button` (Download, Copy link, Retry, Refresh), `bs-progress` (the loading spinner), `bs-chip-informative` (the expiry chip), `bs-icon-button` (the close button).
|
|
2452
|
+
* ## When to use
|
|
2453
|
+
* - Sharing a link to an order, document or page that someone will open on a phone.
|
|
2454
|
+
* - Taking a payment with an amount (`type="payment"`).
|
|
2455
|
+
* ## When not to use
|
|
2456
|
+
* - Encoding long text blobs -- a QR code that dense is hard to scan at the sizes here.
|
|
2457
|
+
* ## States
|
|
2458
|
+
* `loading` (generating the code), `error` (couldn't generate it; Retry), `expired` (Refresh) and
|
|
2459
|
+
* `scanned` (done: "Scanned", or "Payment received" for payments). Download and Copy link are disabled
|
|
2460
|
+
* in every state but `default`, and hidden once `scanned`.
|
|
2461
|
+
*/
|
|
2462
|
+
interface BsQrCode {
|
|
2463
|
+
/**
|
|
2464
|
+
* The amount shown under the code (`type="payment"`), e.g. `"148,00 kr"`.
|
|
2465
|
+
*/
|
|
2466
|
+
"amount"?: string;
|
|
2467
|
+
/**
|
|
2468
|
+
* Small label above the amount.
|
|
2469
|
+
* @default 'Total'
|
|
2470
|
+
*/
|
|
2471
|
+
"amountLabel": string;
|
|
2472
|
+
/**
|
|
2473
|
+
* Shows a close button in the corner.
|
|
2474
|
+
* @default false
|
|
2475
|
+
*/
|
|
2476
|
+
"closable": boolean;
|
|
2477
|
+
/**
|
|
2478
|
+
* Accessible name of the close button.
|
|
2479
|
+
* @default 'Close'
|
|
2480
|
+
*/
|
|
2481
|
+
"closeLabel": string;
|
|
2482
|
+
/**
|
|
2483
|
+
* Accessible name for the code image, e.g. `"QR code for order SO-10482"`. Applies to `matrix`; give a slotted `<img>` its own `alt`.
|
|
2484
|
+
* @default 'QR code'
|
|
2485
|
+
*/
|
|
2486
|
+
"codeLabel": string;
|
|
2487
|
+
/**
|
|
2488
|
+
* Label of the Copy link button.
|
|
2489
|
+
* @default 'Copy link'
|
|
2490
|
+
*/
|
|
2491
|
+
"copyLabel": string;
|
|
2492
|
+
/**
|
|
2493
|
+
* Line under the heading.
|
|
2494
|
+
*/
|
|
2495
|
+
"description"?: string;
|
|
2496
|
+
/**
|
|
2497
|
+
* Label of the Download button.
|
|
2498
|
+
* @default 'Download PNG'
|
|
2499
|
+
*/
|
|
2500
|
+
"downloadLabel": string;
|
|
2501
|
+
/**
|
|
2502
|
+
* Text in the `error` overlay.
|
|
2503
|
+
* @default "Couldn't load code"
|
|
2504
|
+
*/
|
|
2505
|
+
"errorLabel": string;
|
|
2506
|
+
/**
|
|
2507
|
+
* Text in the `expired` overlay.
|
|
2508
|
+
* @default 'Code expired'
|
|
2509
|
+
*/
|
|
2510
|
+
"expiredLabel": string;
|
|
2511
|
+
/**
|
|
2512
|
+
* Text of the expiry chip, e.g. `"Expires in 04:59"`. No chip when empty.
|
|
2513
|
+
*/
|
|
2514
|
+
"expiry"?: string;
|
|
2515
|
+
/**
|
|
2516
|
+
* Heading text.
|
|
2517
|
+
* @default 'Share the order'
|
|
2518
|
+
*/
|
|
2519
|
+
"heading": string;
|
|
2520
|
+
/**
|
|
2521
|
+
* Hides the Download and Copy link row.
|
|
2522
|
+
* @default false
|
|
2523
|
+
*/
|
|
2524
|
+
"hideActions": boolean;
|
|
2525
|
+
/**
|
|
2526
|
+
* Hides the Copy link button.
|
|
2527
|
+
* @default false
|
|
2528
|
+
*/
|
|
2529
|
+
"hideCopy": boolean;
|
|
2530
|
+
/**
|
|
2531
|
+
* Hides the Download button.
|
|
2532
|
+
* @default false
|
|
2533
|
+
*/
|
|
2534
|
+
"hideDownload": boolean;
|
|
2535
|
+
/**
|
|
2536
|
+
* Text in the `loading` overlay.
|
|
2537
|
+
* @default 'Generating code'
|
|
2538
|
+
*/
|
|
2539
|
+
"loadingLabel": string;
|
|
2540
|
+
/**
|
|
2541
|
+
* The code as a square matrix of modules, `true` = dark. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule. Ignored when the `code` slot is used.
|
|
2542
|
+
*/
|
|
2543
|
+
"matrix"?: boolean[][];
|
|
2544
|
+
/**
|
|
2545
|
+
* Label of the Refresh button (`expired`).
|
|
2546
|
+
* @default 'Refresh'
|
|
2547
|
+
*/
|
|
2548
|
+
"refreshLabel": string;
|
|
2549
|
+
/**
|
|
2550
|
+
* Label of the Retry button (`error`).
|
|
2551
|
+
* @default 'Retry'
|
|
2552
|
+
*/
|
|
2553
|
+
"retryLabel": string;
|
|
2554
|
+
/**
|
|
2555
|
+
* Text in the `scanned` overlay. Defaults to "Payment received" for `type="payment"` and "Scanned" otherwise.
|
|
2556
|
+
*/
|
|
2557
|
+
"scannedLabel"?: string;
|
|
2558
|
+
/**
|
|
2559
|
+
* Card size: `sm`, `md` (default) or `lg`.
|
|
2560
|
+
* @default 'md'
|
|
2561
|
+
*/
|
|
2562
|
+
"size": BsQrCodeSize;
|
|
2563
|
+
/**
|
|
2564
|
+
* `default`, or one of the overlay states: `loading`, `error`, `expired`, `scanned`.
|
|
2565
|
+
* @default 'default'
|
|
2566
|
+
*/
|
|
2567
|
+
"state": BsQrCodeState;
|
|
2568
|
+
/**
|
|
2569
|
+
* `default` shows the URL under the code; `payment` shows the amount instead.
|
|
2570
|
+
* @default 'default'
|
|
2571
|
+
*/
|
|
2572
|
+
"type": BsQrCodeType;
|
|
2573
|
+
/**
|
|
2574
|
+
* The link shown as text under the code (`type="default"`), and copied by Copy link.
|
|
2575
|
+
*/
|
|
2576
|
+
"url"?: string;
|
|
2577
|
+
}
|
|
2057
2578
|
/**
|
|
2058
2579
|
* A single radio button with its label, for one mutually-exclusive choice within a group.
|
|
2059
2580
|
* ## When to use
|
|
@@ -2084,6 +2605,130 @@ export namespace Components {
|
|
|
2084
2605
|
*/
|
|
2085
2606
|
"value": string;
|
|
2086
2607
|
}
|
|
2608
|
+
/**
|
|
2609
|
+
* The three moments around an expiring session, as one card. Matches the Figma "Session timeout"
|
|
2610
|
+
* component's three types:
|
|
2611
|
+
* - `warning` -- "You'll be signed out soon": a live countdown with a draining bar, an optional
|
|
2612
|
+
* "your work is saved" note, and Sign out now / Stay signed in.
|
|
2613
|
+
* - `signed-out` -- "You've been signed out": who was signed in, with Sign in again and Use a different
|
|
2614
|
+
* account.
|
|
2615
|
+
* - `confirm-identity` -- "Confirm it's you": a fresh password check before a sensitive action, with
|
|
2616
|
+
* passkey / BankID alternatives and Cancel.
|
|
2617
|
+
* The component never signs anyone in or out. It shows the state and emits `bsPrimary`, `bsSecondary`,
|
|
2618
|
+
* `bsAlternative`, `bsCancel` and `bsExpire`; your app talks to the identity provider.
|
|
2619
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
|
|
2620
|
+
* `bs-progress-linear` (the countdown bar), `bs-avatar` (the signed-in account), `bs-input` (the
|
|
2621
|
+
* password field).
|
|
2622
|
+
* ## When to use
|
|
2623
|
+
* - Warning someone, before it happens, that an inactivity timeout is about to end their session.
|
|
2624
|
+
* - Telling someone their session ended, and letting them pick up where they left off.
|
|
2625
|
+
* - Asking for a fresh credential before a sensitive action.
|
|
2626
|
+
* ## When not to use
|
|
2627
|
+
* - A first-time sign-in page -- this assumes there was a session.
|
|
2628
|
+
* - Anything that is not about the session or the user's identity -- use `bs-dialog`.
|
|
2629
|
+
* ## Accessibility
|
|
2630
|
+
* The card is a labelled region. The countdown is a `timer` and is *not* announced every second; a polite
|
|
2631
|
+
* live region announces the time left at 60, 30 and 10 seconds instead. Wrap the card in your own modal
|
|
2632
|
+
* (`bs-dialog`) if the warning must trap focus.
|
|
2633
|
+
*/
|
|
2634
|
+
interface BsSessionTimeout {
|
|
2635
|
+
/**
|
|
2636
|
+
* Email of the account that was signed in (`signed-out`).
|
|
2637
|
+
*/
|
|
2638
|
+
"accountEmail"?: string;
|
|
2639
|
+
/**
|
|
2640
|
+
* Initials in the avatar (`signed-out`). Derived from `accountName` when not set.
|
|
2641
|
+
*/
|
|
2642
|
+
"accountInitials"?: string;
|
|
2643
|
+
/**
|
|
2644
|
+
* Name of the account that was signed in (`signed-out`).
|
|
2645
|
+
*/
|
|
2646
|
+
"accountName"?: string;
|
|
2647
|
+
/**
|
|
2648
|
+
* Other ways to confirm, shown as outlined buttons under the divider: `[{ id, label, icon? }]`. Defaults to a passkey and a BankID button. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule. Set `[]` to hide them.
|
|
2649
|
+
* @default [ { id: 'passkey', label: 'Use passkey', icon: 'fingerprint' }, { id: 'bankid', label: 'Use BankID', icon: 'key' }, ]
|
|
2650
|
+
*/
|
|
2651
|
+
"alternatives": BsSessionTimeoutAlternative[];
|
|
2652
|
+
/**
|
|
2653
|
+
* Label of the Cancel button (`confirm-identity`). Set to an empty string to hide it.
|
|
2654
|
+
* @default 'Cancel'
|
|
2655
|
+
*/
|
|
2656
|
+
"cancelLabel": string;
|
|
2657
|
+
/**
|
|
2658
|
+
* Count `secondsLeft` down once a second (`warning`), firing `bsExpire` at zero.
|
|
2659
|
+
* @default false
|
|
2660
|
+
*/
|
|
2661
|
+
"countdown": boolean;
|
|
2662
|
+
/**
|
|
2663
|
+
* Paragraph under the heading. Defaults per `type`.
|
|
2664
|
+
*/
|
|
2665
|
+
"description"?: string;
|
|
2666
|
+
/**
|
|
2667
|
+
* Label of the divider between the password and the alternatives.
|
|
2668
|
+
* @default 'or'
|
|
2669
|
+
*/
|
|
2670
|
+
"dividerLabel": string;
|
|
2671
|
+
/**
|
|
2672
|
+
* Heading. Defaults per `type`.
|
|
2673
|
+
*/
|
|
2674
|
+
"heading"?: string;
|
|
2675
|
+
/**
|
|
2676
|
+
* HTML heading level, 1-6.
|
|
2677
|
+
* @default 2
|
|
2678
|
+
*/
|
|
2679
|
+
"headingLevel": number;
|
|
2680
|
+
/**
|
|
2681
|
+
* Hides the icon tile.
|
|
2682
|
+
* @default false
|
|
2683
|
+
*/
|
|
2684
|
+
"hideIcon": boolean;
|
|
2685
|
+
/**
|
|
2686
|
+
* Error shown under the password field, e.g. after a wrong password.
|
|
2687
|
+
*/
|
|
2688
|
+
"passwordError"?: string;
|
|
2689
|
+
/**
|
|
2690
|
+
* Label of the password field.
|
|
2691
|
+
* @default 'Password'
|
|
2692
|
+
*/
|
|
2693
|
+
"passwordLabel": string;
|
|
2694
|
+
/**
|
|
2695
|
+
* Label of the primary button. Defaults per `type` ("Stay signed in", "Sign in again", "Confirm").
|
|
2696
|
+
*/
|
|
2697
|
+
"primaryLabel"?: string;
|
|
2698
|
+
/**
|
|
2699
|
+
* Note under the countdown, e.g. "Your draft of INV-2041 is saved automatically." Hidden when empty.
|
|
2700
|
+
*/
|
|
2701
|
+
"savedMessage"?: string;
|
|
2702
|
+
/**
|
|
2703
|
+
* Label of the secondary button. Defaults per `type` ("Sign out now", "Use a different account"); none for `confirm-identity`. Set to an empty string to hide it.
|
|
2704
|
+
*/
|
|
2705
|
+
"secondaryLabel"?: string;
|
|
2706
|
+
/**
|
|
2707
|
+
* Seconds left before the session ends (`warning`). Mutable: with `countdown` the component decrements it itself; otherwise drive it from your own timer.
|
|
2708
|
+
* @default 0
|
|
2709
|
+
*/
|
|
2710
|
+
"secondsLeft": number;
|
|
2711
|
+
/**
|
|
2712
|
+
* Text next to the time under a minute.
|
|
2713
|
+
* @default 'seconds left'
|
|
2714
|
+
*/
|
|
2715
|
+
"secondsLeftLabel": string;
|
|
2716
|
+
/**
|
|
2717
|
+
* Text next to the time while a minute or more is left.
|
|
2718
|
+
* @default 'minutes left'
|
|
2719
|
+
*/
|
|
2720
|
+
"timeLeftLabel": string;
|
|
2721
|
+
/**
|
|
2722
|
+
* Length of the warning window in seconds, for the bar: it shows `secondsLeft / totalSeconds`. Defaults to the `secondsLeft` it first had.
|
|
2723
|
+
* @default 0
|
|
2724
|
+
*/
|
|
2725
|
+
"totalSeconds": number;
|
|
2726
|
+
/**
|
|
2727
|
+
* Which moment: `warning`, `signed-out` or `confirm-identity`.
|
|
2728
|
+
* @default 'warning'
|
|
2729
|
+
*/
|
|
2730
|
+
"type": BsSessionTimeoutType;
|
|
2731
|
+
}
|
|
2087
2732
|
/**
|
|
2088
2733
|
* A slider for picking a single numeric value (`type="default"`), a value snapped to evenly
|
|
2089
2734
|
* spaced ticks (`type="segmented"`), or a min/max pair (`type="range"`) from within a bounded
|
|
@@ -2187,6 +2832,15 @@ export namespace Components {
|
|
|
2187
2832
|
* Label for the optional action button (e.g. "Undo", "Retry"). Omit this prop entirely to render no action button at all -- its presence, not a boolean flag, is what shows it.
|
|
2188
2833
|
*/
|
|
2189
2834
|
"actionLabel"?: string;
|
|
2835
|
+
/**
|
|
2836
|
+
* Variant of the action button. Defaults to the one that matches `variant` (outlined for `default`). Use `subtle` for a plain text action; colour it with `--bs-button-subtle-color` on `::part(action)`.
|
|
2837
|
+
*/
|
|
2838
|
+
"actionVariant"?: BsButtonVariant1;
|
|
2839
|
+
/**
|
|
2840
|
+
* Hides the close button, for a confirmation that goes away on its own or whose only control is the action. A snackbar with no way to dismiss it must be removed by the consumer.
|
|
2841
|
+
* @default false
|
|
2842
|
+
*/
|
|
2843
|
+
"hideClose": boolean;
|
|
2190
2844
|
/**
|
|
2191
2845
|
* Replaces the checkmark icon with a spinning loading indicator, for a message describing in-progress work (e.g. "Uploading files...") rather than a completed result.
|
|
2192
2846
|
* @default false
|
|
@@ -2470,6 +3124,7 @@ export namespace Components {
|
|
|
2470
3124
|
* `value` is always 24-hour `HH:mm` (e.g. `"14:30"`), regardless of the displayed `format`.
|
|
2471
3125
|
* The picker renders inline at a fixed width; to show it as a popover, put it in your own overlay
|
|
2472
3126
|
* and close that overlay from `bsChange`/`bsCancel`.
|
|
3127
|
+
* **Built from:** `bs-card` (the surface), `bs-switch` (the 24h toggle), `bs-input` (the AM/PM dropdown), `bs-button` (Cancel/Confirm).
|
|
2473
3128
|
* ## When to use
|
|
2474
3129
|
* - Picking a time of day where the user steps through hours and minutes.
|
|
2475
3130
|
* ## When not to use
|
|
@@ -2493,95 +3148,287 @@ export namespace Components {
|
|
|
2493
3148
|
* Display format: `12h` (with an AM/PM dropdown) or `24h`. The user can switch it with the 24h switch. Does not change `value`, which is always 24-hour.
|
|
2494
3149
|
* @default '12h'
|
|
2495
3150
|
*/
|
|
2496
|
-
"format": '12h' | '24h';
|
|
3151
|
+
"format": '12h' | '24h';
|
|
3152
|
+
/**
|
|
3153
|
+
* Label of the 24h switch.
|
|
3154
|
+
* @default '24h'
|
|
3155
|
+
*/
|
|
3156
|
+
"formatLabel": string;
|
|
3157
|
+
/**
|
|
3158
|
+
* Heading text.
|
|
3159
|
+
* @default 'Select Time'
|
|
3160
|
+
*/
|
|
3161
|
+
"heading": string;
|
|
3162
|
+
/**
|
|
3163
|
+
* Accessible name of the hour spinner.
|
|
3164
|
+
* @default 'Hour'
|
|
3165
|
+
*/
|
|
3166
|
+
"hourLabel": string;
|
|
3167
|
+
/**
|
|
3168
|
+
* Accessible name of the minute spinner.
|
|
3169
|
+
* @default 'Minute'
|
|
3170
|
+
*/
|
|
3171
|
+
"minuteLabel": string;
|
|
3172
|
+
/**
|
|
3173
|
+
* Step, in minutes, of the minute spinner's carets and arrow keys. Typing is not constrained.
|
|
3174
|
+
* @default 1
|
|
3175
|
+
*/
|
|
3176
|
+
"minuteStep": number;
|
|
3177
|
+
/**
|
|
3178
|
+
* The `name` the confirmed value is submitted under in a surrounding `<form>`.
|
|
3179
|
+
*/
|
|
3180
|
+
"name"?: string;
|
|
3181
|
+
/**
|
|
3182
|
+
* Accessible name of the AM/PM dropdown.
|
|
3183
|
+
* @default 'AM/PM'
|
|
3184
|
+
*/
|
|
3185
|
+
"periodLabel": string;
|
|
3186
|
+
/**
|
|
3187
|
+
* The confirmed time, 24-hour `HH:mm`. Empty means no time chosen yet (the picker opens on 00:00). Mutable so Confirm updates it directly; `bsChange` still fires.
|
|
3188
|
+
* @default ''
|
|
3189
|
+
*/
|
|
3190
|
+
"value": string;
|
|
3191
|
+
}
|
|
3192
|
+
/**
|
|
3193
|
+
* A transient status message for confirming the result of an action (e.g. "Files uploaded
|
|
3194
|
+
* successfully.") -- a state-specific icon, a message, and a close button.
|
|
3195
|
+
* This component only renders the toast itself -- it doesn't manage its own visibility, timing, or
|
|
3196
|
+
* stacking. A consumer (typically a small "toast manager" utility) creates one per message and
|
|
3197
|
+
* removes it from the DOM again, whether on a timer or on `bsDismiss`. Figma's spec doesn't show
|
|
3198
|
+
* auto-dismiss timing at all (it's a static visual spec), so this deliberately doesn't invent one.
|
|
3199
|
+
*/
|
|
3200
|
+
interface BsToast {
|
|
3201
|
+
/**
|
|
3202
|
+
* Semantic state. Each state has its own icon and matching container/text tokens -- there is no neutral/default state.
|
|
3203
|
+
* @default 'info'
|
|
3204
|
+
*/
|
|
3205
|
+
"state": BsToastState;
|
|
3206
|
+
}
|
|
3207
|
+
/**
|
|
3208
|
+
* A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
|
|
3209
|
+
* next to a trigger element.
|
|
3210
|
+
* `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
|
|
3211
|
+
* visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
|
|
3212
|
+
* app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
|
|
3213
|
+
* wrapping `position: relative`/`absolute` pattern, the same approach used by
|
|
3214
|
+
* `bs-chatbot-response-action` for its own `menu` slot).
|
|
3215
|
+
* ## When to use
|
|
3216
|
+
* - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
|
|
3217
|
+
* where the host app owns the show/hide and positioning logic.
|
|
3218
|
+
* ## When not to use
|
|
3219
|
+
* - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
|
|
3220
|
+
* this component intentionally does not do that; wire that up in the consuming app instead.
|
|
3221
|
+
* @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
|
|
3222
|
+
* @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
|
|
3223
|
+
* @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
|
|
3224
|
+
* @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
|
|
3225
|
+
* @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
|
|
3226
|
+
* @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
|
|
3227
|
+
* width (the bubble's width is otherwise variable based on content).
|
|
3228
|
+
* @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
|
|
3229
|
+
* a literal value rather than a `--bs-shadow-*` token alias.
|
|
3230
|
+
* @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
|
|
3231
|
+
* @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
|
|
3232
|
+
* `--bs-line-height-body-sm`.
|
|
3233
|
+
*/
|
|
3234
|
+
interface BsTooltip {
|
|
3235
|
+
/**
|
|
3236
|
+
* Which edge of the bubble the arrow points from, and therefore which side of a trigger the bubble should be placed on. `'top'` is the only value implemented -- it is the only variant confirmed from the Figma "EG Tooltip" component (arrow at the top of the bubble, pointing up). Bottom/left/right variants aren't implemented pending further Figma design confirmation.
|
|
3237
|
+
* @default 'top'
|
|
3238
|
+
*/
|
|
3239
|
+
"placement": 'top';
|
|
3240
|
+
}
|
|
3241
|
+
/**
|
|
3242
|
+
* A product's "What's new" surface, in three forms matching the Figma component:
|
|
3243
|
+
* - `feed` -- a docked panel: heading, "Mark all as read", filter tabs, the list of updates (each a
|
|
3244
|
+
* `bs-whats-new-entry`) and a link to the full release notes.
|
|
3245
|
+
* - `announcement` -- one big update, with a hero image, a tag, a heading, a few bullet points, "1 of 3"
|
|
3246
|
+
* and Remind me later / Next.
|
|
3247
|
+
* - `teaser` -- a small card pointing at the feed: tag, date, heading, a line of text and "Open What's new".
|
|
3248
|
+
* The component only shows what you give it and reports what the user pressed. It doesn't fetch updates,
|
|
3249
|
+
* track which the user has seen, or decide when to appear: your app owns `entries` (with their `unread`
|
|
3250
|
+
* flags) and reacts to the events.
|
|
3251
|
+
* **Built from:** `bs-card` (the surface), `bs-whats-new-entry` (each update), `bs-tabs` (the filters),
|
|
3252
|
+
* `bs-chip-informative` (the tags), `bs-button`, `bs-icon-button`.
|
|
3253
|
+
* ## When to use
|
|
3254
|
+
* - Telling users about changes to the product, in a place they can come back to.
|
|
3255
|
+
* ## When not to use
|
|
3256
|
+
* - Messages about the user's own data or an action they just took -- use `bs-snackbar`, `bs-toast`.
|
|
3257
|
+
* - A guided walk through the interface -- use `bs-product-tour`.
|
|
3258
|
+
*/
|
|
3259
|
+
interface BsWhatsNew {
|
|
3260
|
+
/**
|
|
3261
|
+
* Label of the link (`teaser`).
|
|
3262
|
+
* @default 'Open What’s new'
|
|
3263
|
+
*/
|
|
3264
|
+
"actionLabel": string;
|
|
3265
|
+
/**
|
|
3266
|
+
* Shows a close button.
|
|
3267
|
+
* @default false
|
|
3268
|
+
*/
|
|
3269
|
+
"closable": boolean;
|
|
3270
|
+
/**
|
|
3271
|
+
* Accessible name of the close button.
|
|
3272
|
+
* @default 'Close'
|
|
3273
|
+
*/
|
|
3274
|
+
"closeLabel": string;
|
|
3275
|
+
/**
|
|
3276
|
+
* The date as text (`teaser`).
|
|
3277
|
+
*/
|
|
3278
|
+
"date"?: string;
|
|
3279
|
+
/**
|
|
3280
|
+
* The line under the heading (`teaser`).
|
|
3281
|
+
*/
|
|
3282
|
+
"description"?: string;
|
|
3283
|
+
/**
|
|
3284
|
+
* Text shown when the selected filter has no entries.
|
|
3285
|
+
* @default 'Nothing new here yet.'
|
|
3286
|
+
*/
|
|
3287
|
+
"emptyLabel": string;
|
|
3288
|
+
/**
|
|
3289
|
+
* The updates in the feed: `[{ id, category?, tag?, tagColor?, date?, unread?, heading, description?, actionLabel?, image? }]`. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule.
|
|
3290
|
+
* @default []
|
|
3291
|
+
*/
|
|
3292
|
+
"entries": BsWhatsNewItem[];
|
|
3293
|
+
/**
|
|
3294
|
+
* The selected filter's `value`. Mutable: choosing a tab updates it.
|
|
3295
|
+
* @default 'all'
|
|
3296
|
+
*/
|
|
3297
|
+
"filter": string;
|
|
3298
|
+
/**
|
|
3299
|
+
* The filter tabs: `[{ value, label }]`. `value: "all"` shows every entry; any other value shows the entries whose `category` matches. Defaults to All, New Features, Improvements and Fixes (categories `features`, `improvements`, `fixes`). Set `[]` for no tabs.
|
|
3300
|
+
* @default [ { value: 'all', label: 'All' }, { value: 'features', label: 'New Features' }, { value: 'improvements', label: 'Improvements' }, { value: 'fixes', label: 'Fixes' }, ]
|
|
3301
|
+
*/
|
|
3302
|
+
"filters": BsWhatsNewFilter[];
|
|
3303
|
+
/**
|
|
3304
|
+
* Heading. Defaults to "What's new" for `feed`; set it for the other forms.
|
|
3305
|
+
*/
|
|
3306
|
+
"heading"?: string;
|
|
3307
|
+
/**
|
|
3308
|
+
* HTML heading level, 1-6.
|
|
3309
|
+
* @default 2
|
|
3310
|
+
*/
|
|
3311
|
+
"headingLevel": number;
|
|
3312
|
+
/**
|
|
3313
|
+
* URL of the hero image (`announcement`). Or slot your own into `hero`.
|
|
3314
|
+
*/
|
|
3315
|
+
"image"?: string;
|
|
3316
|
+
/**
|
|
3317
|
+
* Label of the "Mark all as read" button, shown while any entry is `unread`.
|
|
3318
|
+
* @default 'Mark all as read'
|
|
3319
|
+
*/
|
|
3320
|
+
"markAllReadLabel": string;
|
|
3321
|
+
/**
|
|
3322
|
+
* The bullet points (`announcement`). Must be set as a JS property -- see CONVENTIONS.md.
|
|
3323
|
+
* @default []
|
|
3324
|
+
*/
|
|
3325
|
+
"points": string[];
|
|
3326
|
+
/**
|
|
3327
|
+
* Label of the primary button (`announcement`). Empty hides it.
|
|
3328
|
+
* @default 'Next'
|
|
3329
|
+
*/
|
|
3330
|
+
"primaryLabel": string;
|
|
3331
|
+
/**
|
|
3332
|
+
* Text of the release notes link.
|
|
3333
|
+
* @default 'See all release notes'
|
|
3334
|
+
*/
|
|
3335
|
+
"releaseNotesLabel": string;
|
|
3336
|
+
/**
|
|
3337
|
+
* URL of the full release notes. The link is only shown when this is set.
|
|
3338
|
+
*/
|
|
3339
|
+
"releaseNotesUrl"?: string;
|
|
3340
|
+
/**
|
|
3341
|
+
* Label of the secondary button (`announcement`). Empty hides it.
|
|
3342
|
+
* @default 'Remind me later'
|
|
3343
|
+
*/
|
|
3344
|
+
"secondaryLabel": string;
|
|
3345
|
+
/**
|
|
3346
|
+
* Current step, 1-based (`announcement`). Used with `total`.
|
|
3347
|
+
* @default 1
|
|
3348
|
+
*/
|
|
3349
|
+
"step": number;
|
|
3350
|
+
/**
|
|
3351
|
+
* Template of the step label; `{step}` and `{total}` are replaced.
|
|
3352
|
+
* @default '{step} of {total}'
|
|
3353
|
+
*/
|
|
3354
|
+
"stepLabel": string;
|
|
3355
|
+
/**
|
|
3356
|
+
* Tag text (`announcement`, `teaser`), e.g. "New feature".
|
|
3357
|
+
*/
|
|
3358
|
+
"tag"?: string;
|
|
3359
|
+
/**
|
|
3360
|
+
* Colour of the tag.
|
|
3361
|
+
* @default 'info'
|
|
3362
|
+
*/
|
|
3363
|
+
"tagColor": BsWhatsNewEntryTagColor;
|
|
3364
|
+
/**
|
|
3365
|
+
* Number of announcements in the sequence (`announcement`). The step label is hidden when 0.
|
|
3366
|
+
* @default 0
|
|
3367
|
+
*/
|
|
3368
|
+
"total": number;
|
|
2497
3369
|
/**
|
|
2498
|
-
*
|
|
2499
|
-
* @default '
|
|
3370
|
+
* Which form: `feed`, `announcement` or `teaser`.
|
|
3371
|
+
* @default 'feed'
|
|
2500
3372
|
*/
|
|
2501
|
-
"
|
|
3373
|
+
"type": BsWhatsNewType;
|
|
3374
|
+
}
|
|
3375
|
+
/**
|
|
3376
|
+
* One update in a "What's new" list: a tag ("New feature", "Improvement", "Fix"), a date, an unread dot,
|
|
3377
|
+
* an optional image, a title, a short description and an optional action link ("Try it"). Matches the Figma
|
|
3378
|
+
* "What's new / Entry" component. It is a plain block of content -- no card -- so it can sit in a feed
|
|
3379
|
+
* (`bs-whats-new`), a list, or a page of release notes.
|
|
3380
|
+
* **Built from:** `bs-chip-informative` (the tag) and `bs-button` (the action).
|
|
3381
|
+
* ## When to use
|
|
3382
|
+
* - Announcing a change to the product, with enough detail to know whether it matters.
|
|
3383
|
+
* ## When not to use
|
|
3384
|
+
* - A message about the user's own data or an action they just took -- use `bs-snackbar` or `bs-toast`.
|
|
3385
|
+
*/
|
|
3386
|
+
interface BsWhatsNewEntry {
|
|
2502
3387
|
/**
|
|
2503
|
-
*
|
|
2504
|
-
* @default 'Select Time'
|
|
3388
|
+
* Label of the action link (e.g. "Try it"). No action when empty.
|
|
2505
3389
|
*/
|
|
2506
|
-
"
|
|
3390
|
+
"actionLabel"?: string;
|
|
2507
3391
|
/**
|
|
2508
|
-
*
|
|
2509
|
-
* @default 'Hour'
|
|
3392
|
+
* The date as text, already formatted for the reader (e.g. "24.09.2026").
|
|
2510
3393
|
*/
|
|
2511
|
-
"
|
|
3394
|
+
"date"?: string;
|
|
2512
3395
|
/**
|
|
2513
|
-
*
|
|
2514
|
-
* @default 'Minute'
|
|
3396
|
+
* Short description under the title.
|
|
2515
3397
|
*/
|
|
2516
|
-
"
|
|
3398
|
+
"description"?: string;
|
|
2517
3399
|
/**
|
|
2518
|
-
*
|
|
2519
|
-
* @default
|
|
3400
|
+
* Draws a rule under the entry, to separate it from the next one.
|
|
3401
|
+
* @default false
|
|
2520
3402
|
*/
|
|
2521
|
-
"
|
|
3403
|
+
"divider": boolean;
|
|
2522
3404
|
/**
|
|
2523
|
-
*
|
|
3405
|
+
* Title.
|
|
2524
3406
|
*/
|
|
2525
|
-
"
|
|
3407
|
+
"heading"?: string;
|
|
2526
3408
|
/**
|
|
2527
|
-
*
|
|
2528
|
-
* @default
|
|
3409
|
+
* HTML heading level for the title, 1-6.
|
|
3410
|
+
* @default 3
|
|
2529
3411
|
*/
|
|
2530
|
-
"
|
|
3412
|
+
"headingLevel": number;
|
|
2531
3413
|
/**
|
|
2532
|
-
* The
|
|
2533
|
-
* @default ''
|
|
3414
|
+
* The tag text, e.g. "New feature". No tag when empty.
|
|
2534
3415
|
*/
|
|
2535
|
-
"
|
|
2536
|
-
}
|
|
2537
|
-
/**
|
|
2538
|
-
* A transient status message for confirming the result of an action (e.g. "Files uploaded
|
|
2539
|
-
* successfully.") -- a state-specific icon, a message, and a close button.
|
|
2540
|
-
* This component only renders the toast itself -- it doesn't manage its own visibility, timing, or
|
|
2541
|
-
* stacking. A consumer (typically a small "toast manager" utility) creates one per message and
|
|
2542
|
-
* removes it from the DOM again, whether on a timer or on `bsDismiss`. Figma's spec doesn't show
|
|
2543
|
-
* auto-dismiss timing at all (it's a static visual spec), so this deliberately doesn't invent one.
|
|
2544
|
-
*/
|
|
2545
|
-
interface BsToast {
|
|
3416
|
+
"tag"?: string;
|
|
2546
3417
|
/**
|
|
2547
|
-
*
|
|
3418
|
+
* Colour of the tag: `info` (default), `success`, `warning`, `error` or `neutral`.
|
|
2548
3419
|
* @default 'info'
|
|
2549
3420
|
*/
|
|
2550
|
-
"
|
|
2551
|
-
}
|
|
2552
|
-
/**
|
|
2553
|
-
* A dark tooltip bubble with a pointer arrow, used to surface a short hint of extra information
|
|
2554
|
-
* next to a trigger element.
|
|
2555
|
-
* `bs-tooltip` is a purely presentational bubble -- like `bs-menu`, it does not manage its own
|
|
2556
|
-
* visibility, hover/focus triggering, or positioning relative to a trigger element. A consuming
|
|
2557
|
-
* app is responsible for showing/hiding it and for positioning it against its trigger (e.g. via a
|
|
2558
|
-
* wrapping `position: relative`/`absolute` pattern, the same approach used by
|
|
2559
|
-
* `bs-chatbot-response-action` for its own `menu` slot).
|
|
2560
|
-
* ## When to use
|
|
2561
|
-
* - A short, contextual hint of extra information shown next to a trigger element on hover/focus,
|
|
2562
|
-
* where the host app owns the show/hide and positioning logic.
|
|
2563
|
-
* ## When not to use
|
|
2564
|
-
* - A component that manages its own trigger interaction (hover/focus listeners) or positioning --
|
|
2565
|
-
* this component intentionally does not do that; wire that up in the consuming app instead.
|
|
2566
|
-
* @prop --bs-tooltip-bg - Background of the bubble and arrow. Aliased to `--bs-surface-inverse`.
|
|
2567
|
-
* @prop --bs-tooltip-color - Text color of the slotted content. Aliased to `--bs-text-inverse`.
|
|
2568
|
-
* @prop --bs-tooltip-radius - Corner radius of the bubble. Aliased to `--bs-border-radius-50`.
|
|
2569
|
-
* @prop --bs-tooltip-padding-x - Left/right padding of the bubble. Aliased to `--bs-spacing-200`.
|
|
2570
|
-
* @prop --bs-tooltip-padding-y - Top/bottom padding of the bubble. Aliased to `--bs-spacing-100`.
|
|
2571
|
-
* @prop --bs-tooltip-max-width - Max width of the bubble. Aliased to `200px`, Figma's own reference
|
|
2572
|
-
* width (the bubble's width is otherwise variable based on content).
|
|
2573
|
-
* @prop --bs-tooltip-shadow - Elevation shadow of the bubble. See `bs-tooltip.css` for why this is
|
|
2574
|
-
* a literal value rather than a `--bs-shadow-*` token alias.
|
|
2575
|
-
* @prop --bs-tooltip-font-size - Font size of the slotted content. Aliased to `--bs-font-size-sm`.
|
|
2576
|
-
* @prop --bs-tooltip-line-height - Line height of the slotted content. Aliased to
|
|
2577
|
-
* `--bs-line-height-body-sm`.
|
|
2578
|
-
*/
|
|
2579
|
-
interface BsTooltip {
|
|
3421
|
+
"tagColor": BsWhatsNewEntryTagColor1;
|
|
2580
3422
|
/**
|
|
2581
|
-
*
|
|
2582
|
-
* @default
|
|
3423
|
+
* Shows a dot after the date for an update the user hasn't seen.
|
|
3424
|
+
* @default false
|
|
2583
3425
|
*/
|
|
2584
|
-
"
|
|
3426
|
+
"unread": boolean;
|
|
3427
|
+
/**
|
|
3428
|
+
* Visually hidden text for the unread dot.
|
|
3429
|
+
* @default 'Unread'
|
|
3430
|
+
*/
|
|
3431
|
+
"unreadLabel": string;
|
|
2585
3432
|
}
|
|
2586
3433
|
}
|
|
2587
3434
|
export interface BsAccordionCustomEvent<T> extends CustomEvent<T> {
|
|
@@ -2644,6 +3491,10 @@ export interface BsComposerStatusBannerCustomEvent<T> extends CustomEvent<T> {
|
|
|
2644
3491
|
detail: T;
|
|
2645
3492
|
target: HTMLBsComposerStatusBannerElement;
|
|
2646
3493
|
}
|
|
3494
|
+
export interface BsCookieConsentCustomEvent<T> extends CustomEvent<T> {
|
|
3495
|
+
detail: T;
|
|
3496
|
+
target: HTMLBsCookieConsentElement;
|
|
3497
|
+
}
|
|
2647
3498
|
export interface BsDataTableCustomEvent<T> extends CustomEvent<T> {
|
|
2648
3499
|
detail: T;
|
|
2649
3500
|
target: HTMLBsDataTableElement;
|
|
@@ -2656,6 +3507,10 @@ export interface BsDialogCustomEvent<T> extends CustomEvent<T> {
|
|
|
2656
3507
|
detail: T;
|
|
2657
3508
|
target: HTMLBsDialogElement;
|
|
2658
3509
|
}
|
|
3510
|
+
export interface BsErrorPageCustomEvent<T> extends CustomEvent<T> {
|
|
3511
|
+
detail: T;
|
|
3512
|
+
target: HTMLBsErrorPageElement;
|
|
3513
|
+
}
|
|
2659
3514
|
export interface BsFileUploadCustomEvent<T> extends CustomEvent<T> {
|
|
2660
3515
|
detail: T;
|
|
2661
3516
|
target: HTMLBsFileUploadElement;
|
|
@@ -2684,14 +3539,30 @@ export interface BsNavigationDrawerItemCustomEvent<T> extends CustomEvent<T> {
|
|
|
2684
3539
|
detail: T;
|
|
2685
3540
|
target: HTMLBsNavigationDrawerItemElement;
|
|
2686
3541
|
}
|
|
3542
|
+
export interface BsOnboardingChecklistCustomEvent<T> extends CustomEvent<T> {
|
|
3543
|
+
detail: T;
|
|
3544
|
+
target: HTMLBsOnboardingChecklistElement;
|
|
3545
|
+
}
|
|
2687
3546
|
export interface BsPaginationCustomEvent<T> extends CustomEvent<T> {
|
|
2688
3547
|
detail: T;
|
|
2689
3548
|
target: HTMLBsPaginationElement;
|
|
2690
3549
|
}
|
|
3550
|
+
export interface BsProductTourCustomEvent<T> extends CustomEvent<T> {
|
|
3551
|
+
detail: T;
|
|
3552
|
+
target: HTMLBsProductTourElement;
|
|
3553
|
+
}
|
|
3554
|
+
export interface BsQrCodeCustomEvent<T> extends CustomEvent<T> {
|
|
3555
|
+
detail: T;
|
|
3556
|
+
target: HTMLBsQrCodeElement;
|
|
3557
|
+
}
|
|
2691
3558
|
export interface BsRadioCustomEvent<T> extends CustomEvent<T> {
|
|
2692
3559
|
detail: T;
|
|
2693
3560
|
target: HTMLBsRadioElement;
|
|
2694
3561
|
}
|
|
3562
|
+
export interface BsSessionTimeoutCustomEvent<T> extends CustomEvent<T> {
|
|
3563
|
+
detail: T;
|
|
3564
|
+
target: HTMLBsSessionTimeoutElement;
|
|
3565
|
+
}
|
|
2695
3566
|
export interface BsSliderCustomEvent<T> extends CustomEvent<T> {
|
|
2696
3567
|
detail: T;
|
|
2697
3568
|
target: HTMLBsSliderElement;
|
|
@@ -2724,6 +3595,14 @@ export interface BsToastCustomEvent<T> extends CustomEvent<T> {
|
|
|
2724
3595
|
detail: T;
|
|
2725
3596
|
target: HTMLBsToastElement;
|
|
2726
3597
|
}
|
|
3598
|
+
export interface BsWhatsNewCustomEvent<T> extends CustomEvent<T> {
|
|
3599
|
+
detail: T;
|
|
3600
|
+
target: HTMLBsWhatsNewElement;
|
|
3601
|
+
}
|
|
3602
|
+
export interface BsWhatsNewEntryCustomEvent<T> extends CustomEvent<T> {
|
|
3603
|
+
detail: T;
|
|
3604
|
+
target: HTMLBsWhatsNewEntryElement;
|
|
3605
|
+
}
|
|
2727
3606
|
declare global {
|
|
2728
3607
|
interface HTMLBsAccordionElementEventMap {
|
|
2729
3608
|
"bsToggle": boolean;
|
|
@@ -3053,6 +3932,9 @@ declare global {
|
|
|
3053
3932
|
* - `error` purely for visual emphasis — it signals a destructive action to the user, so reserve
|
|
3054
3933
|
* it for actions that actually delete/revoke/undo something.
|
|
3055
3934
|
* @prop --bs-button-radius - Corner radius. Aliased to `--bs-border-radius-100` by default.
|
|
3935
|
+
* @prop --bs-button-padding-x-sm - Left/right padding of a label-only button at `size="sm"`. Aliased to `--bs-spacing-300`.
|
|
3936
|
+
* @prop --bs-button-width - Width of the button. `auto` by default (fits its content); set `100%` for a full-width button, e.g. `bs-button { --bs-button-width: 100%; }`.
|
|
3937
|
+
* @prop --bs-button-subtle-color - Label/icon colour, `variant="subtle"`. Aliased to `--bs-color-neutral-default`; set it to `var(--bs-text-action)` for a blue text button.
|
|
3056
3938
|
* @prop --bs-button-height-sm - Height at `size="sm"`. Aliased to `--bs-spacing-500`.
|
|
3057
3939
|
* @prop --bs-button-height-md - Height at `size="md"`. Aliased to `--bs-spacing-600`.
|
|
3058
3940
|
* @prop --bs-button-height-lg - Height at `size="lg"`. Aliased to `--bs-spacing-700`.
|
|
@@ -3660,6 +4542,52 @@ declare global {
|
|
|
3660
4542
|
prototype: HTMLBsComposerStatusBannerElement;
|
|
3661
4543
|
new (): HTMLBsComposerStatusBannerElement;
|
|
3662
4544
|
};
|
|
4545
|
+
interface HTMLBsCookieConsentElementEventMap {
|
|
4546
|
+
"bsAccept": { choices: BsCookieChoices };
|
|
4547
|
+
"bsReject": { choices: BsCookieChoices };
|
|
4548
|
+
"bsCustomise": void;
|
|
4549
|
+
"bsSave": { choices: BsCookieChoices };
|
|
4550
|
+
"bsChoice": { id: string; enabled: boolean };
|
|
4551
|
+
"bsClose": void;
|
|
4552
|
+
"bsManage": void;
|
|
4553
|
+
}
|
|
4554
|
+
/**
|
|
4555
|
+
* A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
|
|
4556
|
+
* - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
|
|
4557
|
+
* all. Stacks into a column on narrow containers (its own width, not the viewport's).
|
|
4558
|
+
* - `card` -- the compact version of the same question, in a card.
|
|
4559
|
+
* - `preferences` -- the detailed dialog: one row per cookie category with a switch (strictly
|
|
4560
|
+
* necessary is "Always on"), an expandable list of the cookies in each, and Reject optional /
|
|
4561
|
+
* Accept all / Save choices.
|
|
4562
|
+
* - `saved` -- a dark confirmation bar ("Cookie choices saved") with a Change action.
|
|
4563
|
+
* The component only collects the choice. It doesn't set, read or delete cookies, remember that the
|
|
4564
|
+
* user answered, or decide when to show itself: your app does that from the events, and swaps `type`
|
|
4565
|
+
* (e.g. `banner` -> `preferences` on `bsCustomise`, `preferences` -> `saved` on `bsSave`).
|
|
4566
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
|
|
4567
|
+
* `bs-switch` (the category switches), `bs-chip-informative` (the "Always on" badge), `bs-icon-button`
|
|
4568
|
+
* (the close button), `bs-snackbar` (the saved confirmation).
|
|
4569
|
+
* ## When to use
|
|
4570
|
+
* - Asking for consent to optional cookies or similar tracking, as the law of your market requires.
|
|
4571
|
+
* ## When not to use
|
|
4572
|
+
* - Telling people about necessary cookies only -- that needs no consent prompt.
|
|
4573
|
+
* ## Fair choice
|
|
4574
|
+
* "Reject optional" has the same prominence as "Accept all" (same size, both always visible). Keep it
|
|
4575
|
+
* that way: a prompt that makes refusing harder than accepting isn't valid consent in most places.
|
|
4576
|
+
*/
|
|
4577
|
+
interface HTMLBsCookieConsentElement extends Components.BsCookieConsent, HTMLStencilElement {
|
|
4578
|
+
addEventListener<K extends keyof HTMLBsCookieConsentElementEventMap>(type: K, listener: (this: HTMLBsCookieConsentElement, ev: BsCookieConsentCustomEvent<HTMLBsCookieConsentElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4579
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4580
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4581
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
4582
|
+
removeEventListener<K extends keyof HTMLBsCookieConsentElementEventMap>(type: K, listener: (this: HTMLBsCookieConsentElement, ev: BsCookieConsentCustomEvent<HTMLBsCookieConsentElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
4583
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4584
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4585
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
4586
|
+
}
|
|
4587
|
+
var HTMLBsCookieConsentElement: {
|
|
4588
|
+
prototype: HTMLBsCookieConsentElement;
|
|
4589
|
+
new (): HTMLBsCookieConsentElement;
|
|
4590
|
+
};
|
|
3663
4591
|
interface HTMLBsDataTableElementEventMap {
|
|
3664
4592
|
"bsSort": { column: string; direction: 'asc' | 'desc' };
|
|
3665
4593
|
"bsRowSelect": { id: string | number; selected: boolean };
|
|
@@ -3700,6 +4628,7 @@ declare global {
|
|
|
3700
4628
|
* ISO timestamps -- so a date can't shift by a day across time zones.
|
|
3701
4629
|
* The calendar renders inline at a fixed width; to show it as a popover, put it inside a
|
|
3702
4630
|
* `bs-menu` or your own overlay.
|
|
4631
|
+
* **Built from:** `bs-card` (the surface), `bs-input` (the month/year dropdown triggers and the range date fields), `bs-menu` and `bs-menu-item` (the month/year lists).
|
|
3703
4632
|
* ## When to use
|
|
3704
4633
|
* - Picking a date where seeing the surrounding days of the week/month helps (a booking, a
|
|
3705
4634
|
* deadline, a report window).
|
|
@@ -3759,6 +4688,38 @@ declare global {
|
|
|
3759
4688
|
prototype: HTMLBsDialogElement;
|
|
3760
4689
|
new (): HTMLBsDialogElement;
|
|
3761
4690
|
};
|
|
4691
|
+
interface HTMLBsErrorPageElementEventMap {
|
|
4692
|
+
"bsPrimary": void;
|
|
4693
|
+
"bsSecondary": void;
|
|
4694
|
+
}
|
|
4695
|
+
/**
|
|
4696
|
+
* A full-block page for when the user can't get to what they asked for: page not found (404), a server
|
|
4697
|
+
* error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
|
|
4698
|
+
* "Error page" component's five states.
|
|
4699
|
+
* Each `type` brings its own icon, tint, code label ("404", "Maintenance", ...), heading, paragraph and
|
|
4700
|
+
* buttons, all overridable by props. The component doesn't navigate or retry anything: it emits
|
|
4701
|
+
* `bsPrimary` / `bsSecondary` and your app decides what "Go to Overview" or "Try again" does.
|
|
4702
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions).
|
|
4703
|
+
* ## When to use
|
|
4704
|
+
* - Replacing the content of a page or panel that can't be shown, with a clear way forward.
|
|
4705
|
+
* ## When not to use
|
|
4706
|
+
* - A problem with one field or one action -- use inline validation or a `bs-snackbar`.
|
|
4707
|
+
* - A blocking question the user must answer -- use `bs-dialog`.
|
|
4708
|
+
*/
|
|
4709
|
+
interface HTMLBsErrorPageElement extends Components.BsErrorPage, HTMLStencilElement {
|
|
4710
|
+
addEventListener<K extends keyof HTMLBsErrorPageElementEventMap>(type: K, listener: (this: HTMLBsErrorPageElement, ev: BsErrorPageCustomEvent<HTMLBsErrorPageElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4711
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4712
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4713
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
4714
|
+
removeEventListener<K extends keyof HTMLBsErrorPageElementEventMap>(type: K, listener: (this: HTMLBsErrorPageElement, ev: BsErrorPageCustomEvent<HTMLBsErrorPageElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
4715
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4716
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4717
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
4718
|
+
}
|
|
4719
|
+
var HTMLBsErrorPageElement: {
|
|
4720
|
+
prototype: HTMLBsErrorPageElement;
|
|
4721
|
+
new (): HTMLBsErrorPageElement;
|
|
4722
|
+
};
|
|
3762
4723
|
interface HTMLBsFileUploadElementEventMap {
|
|
3763
4724
|
"bsFilesSelect": File[];
|
|
3764
4725
|
"bsFilesReject": File[];
|
|
@@ -3841,6 +4802,26 @@ declare global {
|
|
|
3841
4802
|
prototype: HTMLBsIconButtonElement;
|
|
3842
4803
|
new (): HTMLBsIconButtonElement;
|
|
3843
4804
|
};
|
|
4805
|
+
/**
|
|
4806
|
+
* A small rounded square holding an icon, tinted by intent -- the visual marker next to a status,
|
|
4807
|
+
* a list item or a feature. Matches the Figma "Icon tile" component (3 sizes x 6 intents).
|
|
4808
|
+
* Each intent shows a default glyph (house, check, warning, cross, grid, info); put your own icon in
|
|
4809
|
+
* the default slot to replace it. A slotted icon is sized to the tile (12/16/24px) and coloured
|
|
4810
|
+
* with the intent's icon colour, as long as it draws with `currentColor`.
|
|
4811
|
+
* The tile is decorative by default (hidden from assistive tech). Don't rely on the colour or glyph
|
|
4812
|
+
* alone to convey status: slot text into `text` (it sits beside the square, in
|
|
4813
|
+
* `--bs-icon-tile-text-color`), or set `label` to give the tile its own accessible name.
|
|
4814
|
+
* ## When to use
|
|
4815
|
+
* - Marking a row, card or message with a status or category icon.
|
|
4816
|
+
* ## When not to use
|
|
4817
|
+
* - As a button -- it isn't interactive. Use `bs-icon-button`.
|
|
4818
|
+
*/
|
|
4819
|
+
interface HTMLBsIconTileElement extends Components.BsIconTile, HTMLStencilElement {
|
|
4820
|
+
}
|
|
4821
|
+
var HTMLBsIconTileElement: {
|
|
4822
|
+
prototype: HTMLBsIconTileElement;
|
|
4823
|
+
new (): HTMLBsIconTileElement;
|
|
4824
|
+
};
|
|
3844
4825
|
interface HTMLBsInlineTabElementEventMap {
|
|
3845
4826
|
"bsSelect": void;
|
|
3846
4827
|
}
|
|
@@ -4139,6 +5120,52 @@ declare global {
|
|
|
4139
5120
|
prototype: HTMLBsNavigationHeaderElement;
|
|
4140
5121
|
new (): HTMLBsNavigationHeaderElement;
|
|
4141
5122
|
};
|
|
5123
|
+
interface HTMLBsOnboardingChecklistElementEventMap {
|
|
5124
|
+
"bsStepAction": { id: string };
|
|
5125
|
+
"bsStepSkip": { id: string };
|
|
5126
|
+
"bsClose": void;
|
|
5127
|
+
"bsOpen": void;
|
|
5128
|
+
"bsDone": void;
|
|
5129
|
+
"bsHide": void;
|
|
5130
|
+
}
|
|
5131
|
+
/**
|
|
5132
|
+
* A "get set up" checklist, in four forms that matching the Figma "Onboarding checklist" component:
|
|
5133
|
+
* - `panel` -- the full list: heading, progress, every step with a status icon, and the current step
|
|
5134
|
+
* expanded with its description, time estimate, Skip for now and a primary action.
|
|
5135
|
+
* - `dashboard` -- a wide card for the top of a page: summary and progress on the left, the current step
|
|
5136
|
+
* and the next ones as small cards on the right, and a "See all steps" link.
|
|
5137
|
+
* - `launcher` -- a small always-visible chip that reopens the checklist; three layouts (`icon`, `ring`,
|
|
5138
|
+
* `inline`).
|
|
5139
|
+
* - `completion` -- the "You're all set" card once every step is done.
|
|
5140
|
+
* The component shows progress and reports what the user pressed. It doesn't know what a step means,
|
|
5141
|
+
* run it, or remember anything: your app owns the steps (`steps`, each with `done`), marks them done, and
|
|
5142
|
+
* decides which form to show.
|
|
5143
|
+
* **Built from:** `bs-card` (every surface), `bs-icon-tile` (the icons), `bs-button` (the actions),
|
|
5144
|
+
* `bs-icon-button` (the close button), `bs-progress-linear` (the progress bar), `bs-progress` (the launcher
|
|
5145
|
+
* ring).
|
|
5146
|
+
* ## When to use
|
|
5147
|
+
* - Guiding a new account or user through a short list of setup tasks they can do in any order or later.
|
|
5148
|
+
* ## When not to use
|
|
5149
|
+
* - A strict, linear flow where each step needs the one before -- use `bs-stepper`.
|
|
5150
|
+
* - A tour of the interface itself -- use `bs-product-tour`.
|
|
5151
|
+
* ## Accessibility
|
|
5152
|
+
* Steps are an ordered list; the current one has `aria-current="step"`, and each step carries a visually
|
|
5153
|
+
* hidden "Done" / "Not done". The progress bar is named with the progress text.
|
|
5154
|
+
*/
|
|
5155
|
+
interface HTMLBsOnboardingChecklistElement extends Components.BsOnboardingChecklist, HTMLStencilElement {
|
|
5156
|
+
addEventListener<K extends keyof HTMLBsOnboardingChecklistElementEventMap>(type: K, listener: (this: HTMLBsOnboardingChecklistElement, ev: BsOnboardingChecklistCustomEvent<HTMLBsOnboardingChecklistElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5157
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5158
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5159
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5160
|
+
removeEventListener<K extends keyof HTMLBsOnboardingChecklistElementEventMap>(type: K, listener: (this: HTMLBsOnboardingChecklistElement, ev: BsOnboardingChecklistCustomEvent<HTMLBsOnboardingChecklistElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5161
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5162
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5163
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5164
|
+
}
|
|
5165
|
+
var HTMLBsOnboardingChecklistElement: {
|
|
5166
|
+
prototype: HTMLBsOnboardingChecklistElement;
|
|
5167
|
+
new (): HTMLBsOnboardingChecklistElement;
|
|
5168
|
+
};
|
|
4142
5169
|
interface HTMLBsPaginationElementEventMap {
|
|
4143
5170
|
"bsPageChange": number;
|
|
4144
5171
|
}
|
|
@@ -4171,6 +5198,42 @@ declare global {
|
|
|
4171
5198
|
prototype: HTMLBsPaginationElement;
|
|
4172
5199
|
new (): HTMLBsPaginationElement;
|
|
4173
5200
|
};
|
|
5201
|
+
interface HTMLBsProductTourElementEventMap {
|
|
5202
|
+
"bsPrimary": void;
|
|
5203
|
+
"bsSecondary": void;
|
|
5204
|
+
"bsClose": void;
|
|
5205
|
+
}
|
|
5206
|
+
/**
|
|
5207
|
+
* One step of a product tour: a centred **welcome** or **success** card with an art tile, or a
|
|
5208
|
+
* **pointer** card -- a compact step with a close button, a "1 of 3" progress label and Back/Next
|
|
5209
|
+
* actions -- whose arrow points at the thing it describes. Matches the Figma "Product Tour" and
|
|
5210
|
+
* "Pointer" components.
|
|
5211
|
+
* This is the step *card* only. It doesn't run a tour: it has no overlay, no spotlight, no
|
|
5212
|
+
* positioning against a target and no step sequencing. Your code decides which step is showing,
|
|
5213
|
+
* places the card next to its target (the arrow can sit on any of 12 positions via `direction`),
|
|
5214
|
+
* and moves on from `bsPrimary`/`bsSecondary`.
|
|
5215
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the art tile), `bs-button` (the actions), `bs-icon-button` (the close button).
|
|
5216
|
+
* ## When to use
|
|
5217
|
+
* - Introducing a feature on first run (`welcome`), confirming a finished tour (`success`), or
|
|
5218
|
+
* walking through the UI one pointer at a time (`pointer`).
|
|
5219
|
+
* ## When not to use
|
|
5220
|
+
* - A blocking decision or form -- use `bs-dialog`.
|
|
5221
|
+
* - A hint on hover or focus -- use `bs-tooltip`.
|
|
5222
|
+
*/
|
|
5223
|
+
interface HTMLBsProductTourElement extends Components.BsProductTour, HTMLStencilElement {
|
|
5224
|
+
addEventListener<K extends keyof HTMLBsProductTourElementEventMap>(type: K, listener: (this: HTMLBsProductTourElement, ev: BsProductTourCustomEvent<HTMLBsProductTourElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5225
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5226
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5227
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5228
|
+
removeEventListener<K extends keyof HTMLBsProductTourElementEventMap>(type: K, listener: (this: HTMLBsProductTourElement, ev: BsProductTourCustomEvent<HTMLBsProductTourElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5229
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5230
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5231
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5232
|
+
}
|
|
5233
|
+
var HTMLBsProductTourElement: {
|
|
5234
|
+
prototype: HTMLBsProductTourElement;
|
|
5235
|
+
new (): HTMLBsProductTourElement;
|
|
5236
|
+
};
|
|
4174
5237
|
/**
|
|
4175
5238
|
* A circular progress indicator -- either a static ring showing a percentage sweep
|
|
4176
5239
|
* (`type="determinate"`) or a continuously spinning ring signaling in-progress work with no known
|
|
@@ -4210,6 +5273,48 @@ declare global {
|
|
|
4210
5273
|
prototype: HTMLBsProgressLinearElement;
|
|
4211
5274
|
new (): HTMLBsProgressLinearElement;
|
|
4212
5275
|
};
|
|
5276
|
+
interface HTMLBsQrCodeElementEventMap {
|
|
5277
|
+
"bsDownload": void;
|
|
5278
|
+
"bsCopy": { url?: string };
|
|
5279
|
+
"bsRetry": void;
|
|
5280
|
+
"bsRefresh": void;
|
|
5281
|
+
"bsClose": void;
|
|
5282
|
+
}
|
|
5283
|
+
/**
|
|
5284
|
+
* A block for sharing a link or taking a payment by QR code: a heading, the code on a white quiet
|
|
5285
|
+
* zone, the URL (or the amount, for payments) as text, an optional expiry chip, and Download and
|
|
5286
|
+
* Copy link actions. Matches the Figma "QR code" component (3 sizes x 2 types x 5 states, plus the
|
|
5287
|
+
* "with logo" variant).
|
|
5288
|
+
* **This component draws a code, it doesn't encode one.** Generate the real code in your product
|
|
5289
|
+
* with a QR library and hand it over either as a `matrix` (a square `boolean[][]`, `true` = dark
|
|
5290
|
+
* module) or as your own element in the `code` slot (an `<img>`, `<svg>` or `<canvas>`).
|
|
5291
|
+
* The code always sits on a white quiet zone with black modules, in dark mode too -- scanners need
|
|
5292
|
+
* the contrast.
|
|
5293
|
+
* **Built from:** `bs-card` (the surface), `bs-button` (Download, Copy link, Retry, Refresh), `bs-progress` (the loading spinner), `bs-chip-informative` (the expiry chip), `bs-icon-button` (the close button).
|
|
5294
|
+
* ## When to use
|
|
5295
|
+
* - Sharing a link to an order, document or page that someone will open on a phone.
|
|
5296
|
+
* - Taking a payment with an amount (`type="payment"`).
|
|
5297
|
+
* ## When not to use
|
|
5298
|
+
* - Encoding long text blobs -- a QR code that dense is hard to scan at the sizes here.
|
|
5299
|
+
* ## States
|
|
5300
|
+
* `loading` (generating the code), `error` (couldn't generate it; Retry), `expired` (Refresh) and
|
|
5301
|
+
* `scanned` (done: "Scanned", or "Payment received" for payments). Download and Copy link are disabled
|
|
5302
|
+
* in every state but `default`, and hidden once `scanned`.
|
|
5303
|
+
*/
|
|
5304
|
+
interface HTMLBsQrCodeElement extends Components.BsQrCode, HTMLStencilElement {
|
|
5305
|
+
addEventListener<K extends keyof HTMLBsQrCodeElementEventMap>(type: K, listener: (this: HTMLBsQrCodeElement, ev: BsQrCodeCustomEvent<HTMLBsQrCodeElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5306
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5307
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5308
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5309
|
+
removeEventListener<K extends keyof HTMLBsQrCodeElementEventMap>(type: K, listener: (this: HTMLBsQrCodeElement, ev: BsQrCodeCustomEvent<HTMLBsQrCodeElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5310
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5311
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5312
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5313
|
+
}
|
|
5314
|
+
var HTMLBsQrCodeElement: {
|
|
5315
|
+
prototype: HTMLBsQrCodeElement;
|
|
5316
|
+
new (): HTMLBsQrCodeElement;
|
|
5317
|
+
};
|
|
4213
5318
|
interface HTMLBsRadioElementEventMap {
|
|
4214
5319
|
"bsChange": string;
|
|
4215
5320
|
}
|
|
@@ -4237,6 +5342,53 @@ declare global {
|
|
|
4237
5342
|
prototype: HTMLBsRadioElement;
|
|
4238
5343
|
new (): HTMLBsRadioElement;
|
|
4239
5344
|
};
|
|
5345
|
+
interface HTMLBsSessionTimeoutElementEventMap {
|
|
5346
|
+
"bsPrimary": { password?: string } | void;
|
|
5347
|
+
"bsSecondary": void;
|
|
5348
|
+
"bsAlternative": { id: string };
|
|
5349
|
+
"bsCancel": void;
|
|
5350
|
+
"bsExpire": void;
|
|
5351
|
+
}
|
|
5352
|
+
/**
|
|
5353
|
+
* The three moments around an expiring session, as one card. Matches the Figma "Session timeout"
|
|
5354
|
+
* component's three types:
|
|
5355
|
+
* - `warning` -- "You'll be signed out soon": a live countdown with a draining bar, an optional
|
|
5356
|
+
* "your work is saved" note, and Sign out now / Stay signed in.
|
|
5357
|
+
* - `signed-out` -- "You've been signed out": who was signed in, with Sign in again and Use a different
|
|
5358
|
+
* account.
|
|
5359
|
+
* - `confirm-identity` -- "Confirm it's you": a fresh password check before a sensitive action, with
|
|
5360
|
+
* passkey / BankID alternatives and Cancel.
|
|
5361
|
+
* The component never signs anyone in or out. It shows the state and emits `bsPrimary`, `bsSecondary`,
|
|
5362
|
+
* `bsAlternative`, `bsCancel` and `bsExpire`; your app talks to the identity provider.
|
|
5363
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
|
|
5364
|
+
* `bs-progress-linear` (the countdown bar), `bs-avatar` (the signed-in account), `bs-input` (the
|
|
5365
|
+
* password field).
|
|
5366
|
+
* ## When to use
|
|
5367
|
+
* - Warning someone, before it happens, that an inactivity timeout is about to end their session.
|
|
5368
|
+
* - Telling someone their session ended, and letting them pick up where they left off.
|
|
5369
|
+
* - Asking for a fresh credential before a sensitive action.
|
|
5370
|
+
* ## When not to use
|
|
5371
|
+
* - A first-time sign-in page -- this assumes there was a session.
|
|
5372
|
+
* - Anything that is not about the session or the user's identity -- use `bs-dialog`.
|
|
5373
|
+
* ## Accessibility
|
|
5374
|
+
* The card is a labelled region. The countdown is a `timer` and is *not* announced every second; a polite
|
|
5375
|
+
* live region announces the time left at 60, 30 and 10 seconds instead. Wrap the card in your own modal
|
|
5376
|
+
* (`bs-dialog`) if the warning must trap focus.
|
|
5377
|
+
*/
|
|
5378
|
+
interface HTMLBsSessionTimeoutElement extends Components.BsSessionTimeout, HTMLStencilElement {
|
|
5379
|
+
addEventListener<K extends keyof HTMLBsSessionTimeoutElementEventMap>(type: K, listener: (this: HTMLBsSessionTimeoutElement, ev: BsSessionTimeoutCustomEvent<HTMLBsSessionTimeoutElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5380
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5381
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5382
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5383
|
+
removeEventListener<K extends keyof HTMLBsSessionTimeoutElementEventMap>(type: K, listener: (this: HTMLBsSessionTimeoutElement, ev: BsSessionTimeoutCustomEvent<HTMLBsSessionTimeoutElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5384
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5385
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5386
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5387
|
+
}
|
|
5388
|
+
var HTMLBsSessionTimeoutElement: {
|
|
5389
|
+
prototype: HTMLBsSessionTimeoutElement;
|
|
5390
|
+
new (): HTMLBsSessionTimeoutElement;
|
|
5391
|
+
};
|
|
4240
5392
|
interface HTMLBsSliderElementEventMap {
|
|
4241
5393
|
"bsChange": number;
|
|
4242
5394
|
"bsRangeChange": { start: number; end: number };
|
|
@@ -4509,6 +5661,7 @@ declare global {
|
|
|
4509
5661
|
* `value` is always 24-hour `HH:mm` (e.g. `"14:30"`), regardless of the displayed `format`.
|
|
4510
5662
|
* The picker renders inline at a fixed width; to show it as a popover, put it in your own overlay
|
|
4511
5663
|
* and close that overlay from `bsChange`/`bsCancel`.
|
|
5664
|
+
* **Built from:** `bs-card` (the surface), `bs-switch` (the 24h toggle), `bs-input` (the AM/PM dropdown), `bs-button` (Cancel/Confirm).
|
|
4512
5665
|
* ## When to use
|
|
4513
5666
|
* - Picking a time of day where the user steps through hours and minutes.
|
|
4514
5667
|
* ## When not to use
|
|
@@ -4589,6 +5742,75 @@ declare global {
|
|
|
4589
5742
|
prototype: HTMLBsTooltipElement;
|
|
4590
5743
|
new (): HTMLBsTooltipElement;
|
|
4591
5744
|
};
|
|
5745
|
+
interface HTMLBsWhatsNewElementEventMap {
|
|
5746
|
+
"bsMarkAllRead": void;
|
|
5747
|
+
"bsEntryAction": { id: string };
|
|
5748
|
+
"bsFilterChange": { value: string };
|
|
5749
|
+
"bsClose": void;
|
|
5750
|
+
"bsPrimary": void;
|
|
5751
|
+
"bsSecondary": void;
|
|
5752
|
+
"bsOpen": void;
|
|
5753
|
+
}
|
|
5754
|
+
/**
|
|
5755
|
+
* A product's "What's new" surface, in three forms matching the Figma component:
|
|
5756
|
+
* - `feed` -- a docked panel: heading, "Mark all as read", filter tabs, the list of updates (each a
|
|
5757
|
+
* `bs-whats-new-entry`) and a link to the full release notes.
|
|
5758
|
+
* - `announcement` -- one big update, with a hero image, a tag, a heading, a few bullet points, "1 of 3"
|
|
5759
|
+
* and Remind me later / Next.
|
|
5760
|
+
* - `teaser` -- a small card pointing at the feed: tag, date, heading, a line of text and "Open What's new".
|
|
5761
|
+
* The component only shows what you give it and reports what the user pressed. It doesn't fetch updates,
|
|
5762
|
+
* track which the user has seen, or decide when to appear: your app owns `entries` (with their `unread`
|
|
5763
|
+
* flags) and reacts to the events.
|
|
5764
|
+
* **Built from:** `bs-card` (the surface), `bs-whats-new-entry` (each update), `bs-tabs` (the filters),
|
|
5765
|
+
* `bs-chip-informative` (the tags), `bs-button`, `bs-icon-button`.
|
|
5766
|
+
* ## When to use
|
|
5767
|
+
* - Telling users about changes to the product, in a place they can come back to.
|
|
5768
|
+
* ## When not to use
|
|
5769
|
+
* - Messages about the user's own data or an action they just took -- use `bs-snackbar`, `bs-toast`.
|
|
5770
|
+
* - A guided walk through the interface -- use `bs-product-tour`.
|
|
5771
|
+
*/
|
|
5772
|
+
interface HTMLBsWhatsNewElement extends Components.BsWhatsNew, HTMLStencilElement {
|
|
5773
|
+
addEventListener<K extends keyof HTMLBsWhatsNewElementEventMap>(type: K, listener: (this: HTMLBsWhatsNewElement, ev: BsWhatsNewCustomEvent<HTMLBsWhatsNewElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5774
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5775
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5776
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5777
|
+
removeEventListener<K extends keyof HTMLBsWhatsNewElementEventMap>(type: K, listener: (this: HTMLBsWhatsNewElement, ev: BsWhatsNewCustomEvent<HTMLBsWhatsNewElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5778
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5779
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5780
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5781
|
+
}
|
|
5782
|
+
var HTMLBsWhatsNewElement: {
|
|
5783
|
+
prototype: HTMLBsWhatsNewElement;
|
|
5784
|
+
new (): HTMLBsWhatsNewElement;
|
|
5785
|
+
};
|
|
5786
|
+
interface HTMLBsWhatsNewEntryElementEventMap {
|
|
5787
|
+
"bsAction": void;
|
|
5788
|
+
}
|
|
5789
|
+
/**
|
|
5790
|
+
* One update in a "What's new" list: a tag ("New feature", "Improvement", "Fix"), a date, an unread dot,
|
|
5791
|
+
* an optional image, a title, a short description and an optional action link ("Try it"). Matches the Figma
|
|
5792
|
+
* "What's new / Entry" component. It is a plain block of content -- no card -- so it can sit in a feed
|
|
5793
|
+
* (`bs-whats-new`), a list, or a page of release notes.
|
|
5794
|
+
* **Built from:** `bs-chip-informative` (the tag) and `bs-button` (the action).
|
|
5795
|
+
* ## When to use
|
|
5796
|
+
* - Announcing a change to the product, with enough detail to know whether it matters.
|
|
5797
|
+
* ## When not to use
|
|
5798
|
+
* - A message about the user's own data or an action they just took -- use `bs-snackbar` or `bs-toast`.
|
|
5799
|
+
*/
|
|
5800
|
+
interface HTMLBsWhatsNewEntryElement extends Components.BsWhatsNewEntry, HTMLStencilElement {
|
|
5801
|
+
addEventListener<K extends keyof HTMLBsWhatsNewEntryElementEventMap>(type: K, listener: (this: HTMLBsWhatsNewEntryElement, ev: BsWhatsNewEntryCustomEvent<HTMLBsWhatsNewEntryElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5802
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5803
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5804
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5805
|
+
removeEventListener<K extends keyof HTMLBsWhatsNewEntryElementEventMap>(type: K, listener: (this: HTMLBsWhatsNewEntryElement, ev: BsWhatsNewEntryCustomEvent<HTMLBsWhatsNewEntryElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5806
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5807
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5808
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5809
|
+
}
|
|
5810
|
+
var HTMLBsWhatsNewEntryElement: {
|
|
5811
|
+
prototype: HTMLBsWhatsNewEntryElement;
|
|
5812
|
+
new (): HTMLBsWhatsNewEntryElement;
|
|
5813
|
+
};
|
|
4592
5814
|
interface HTMLElementTagNameMap {
|
|
4593
5815
|
"bs-accordion": HTMLBsAccordionElement;
|
|
4594
5816
|
"bs-ai-disclaimer": HTMLBsAiDisclaimerElement;
|
|
@@ -4617,12 +5839,15 @@ declare global {
|
|
|
4617
5839
|
"bs-chip-input": HTMLBsChipInputElement;
|
|
4618
5840
|
"bs-composer": HTMLBsComposerElement;
|
|
4619
5841
|
"bs-composer-status-banner": HTMLBsComposerStatusBannerElement;
|
|
5842
|
+
"bs-cookie-consent": HTMLBsCookieConsentElement;
|
|
4620
5843
|
"bs-data-table": HTMLBsDataTableElement;
|
|
4621
5844
|
"bs-datepicker": HTMLBsDatepickerElement;
|
|
4622
5845
|
"bs-dialog": HTMLBsDialogElement;
|
|
5846
|
+
"bs-error-page": HTMLBsErrorPageElement;
|
|
4623
5847
|
"bs-file-upload": HTMLBsFileUploadElement;
|
|
4624
5848
|
"bs-file-upload-item": HTMLBsFileUploadItemElement;
|
|
4625
5849
|
"bs-icon-button": HTMLBsIconButtonElement;
|
|
5850
|
+
"bs-icon-tile": HTMLBsIconTileElement;
|
|
4626
5851
|
"bs-inline-tab": HTMLBsInlineTabElement;
|
|
4627
5852
|
"bs-input": HTMLBsInputElement;
|
|
4628
5853
|
"bs-logo": HTMLBsLogoElement;
|
|
@@ -4631,10 +5856,14 @@ declare global {
|
|
|
4631
5856
|
"bs-navigation-drawer": HTMLBsNavigationDrawerElement;
|
|
4632
5857
|
"bs-navigation-drawer-item": HTMLBsNavigationDrawerItemElement;
|
|
4633
5858
|
"bs-navigation-header": HTMLBsNavigationHeaderElement;
|
|
5859
|
+
"bs-onboarding-checklist": HTMLBsOnboardingChecklistElement;
|
|
4634
5860
|
"bs-pagination": HTMLBsPaginationElement;
|
|
5861
|
+
"bs-product-tour": HTMLBsProductTourElement;
|
|
4635
5862
|
"bs-progress": HTMLBsProgressElement;
|
|
4636
5863
|
"bs-progress-linear": HTMLBsProgressLinearElement;
|
|
5864
|
+
"bs-qr-code": HTMLBsQrCodeElement;
|
|
4637
5865
|
"bs-radio": HTMLBsRadioElement;
|
|
5866
|
+
"bs-session-timeout": HTMLBsSessionTimeoutElement;
|
|
4638
5867
|
"bs-slider": HTMLBsSliderElement;
|
|
4639
5868
|
"bs-snackbar": HTMLBsSnackbarElement;
|
|
4640
5869
|
"bs-source-link": HTMLBsSourceLinkElement;
|
|
@@ -4646,6 +5875,8 @@ declare global {
|
|
|
4646
5875
|
"bs-timepicker": HTMLBsTimepickerElement;
|
|
4647
5876
|
"bs-toast": HTMLBsToastElement;
|
|
4648
5877
|
"bs-tooltip": HTMLBsTooltipElement;
|
|
5878
|
+
"bs-whats-new": HTMLBsWhatsNewElement;
|
|
5879
|
+
"bs-whats-new-entry": HTMLBsWhatsNewEntryElement;
|
|
4649
5880
|
}
|
|
4650
5881
|
}
|
|
4651
5882
|
declare namespace LocalJSX {
|
|
@@ -5057,6 +6288,9 @@ declare namespace LocalJSX {
|
|
|
5057
6288
|
* - `error` purely for visual emphasis — it signals a destructive action to the user, so reserve
|
|
5058
6289
|
* it for actions that actually delete/revoke/undo something.
|
|
5059
6290
|
* @prop --bs-button-radius - Corner radius. Aliased to `--bs-border-radius-100` by default.
|
|
6291
|
+
* @prop --bs-button-padding-x-sm - Left/right padding of a label-only button at `size="sm"`. Aliased to `--bs-spacing-300`.
|
|
6292
|
+
* @prop --bs-button-width - Width of the button. `auto` by default (fits its content); set `100%` for a full-width button, e.g. `bs-button { --bs-button-width: 100%; }`.
|
|
6293
|
+
* @prop --bs-button-subtle-color - Label/icon colour, `variant="subtle"`. Aliased to `--bs-color-neutral-default`; set it to `var(--bs-text-action)` for a blue text button.
|
|
5060
6294
|
* @prop --bs-button-height-sm - Height at `size="sm"`. Aliased to `--bs-spacing-500`.
|
|
5061
6295
|
* @prop --bs-button-height-md - Height at `size="md"`. Aliased to `--bs-spacing-600`.
|
|
5062
6296
|
* @prop --bs-button-height-lg - Height at `size="lg"`. Aliased to `--bs-spacing-700`.
|
|
@@ -5861,43 +7095,168 @@ declare namespace LocalJSX {
|
|
|
5861
7095
|
*/
|
|
5862
7096
|
interface BsComposerStatusBanner {
|
|
5863
7097
|
/**
|
|
5864
|
-
* Label for the action button, only rendered when `showButton` is true.
|
|
5865
|
-
* @default 'Continue'
|
|
7098
|
+
* Label for the action button, only rendered when `showButton` is true.
|
|
7099
|
+
* @default 'Continue'
|
|
7100
|
+
*/
|
|
7101
|
+
"actionLabel"?: string;
|
|
7102
|
+
/**
|
|
7103
|
+
* Whether the close button is rendered.
|
|
7104
|
+
* @default true
|
|
7105
|
+
*/
|
|
7106
|
+
"allowClose"?: boolean;
|
|
7107
|
+
/**
|
|
7108
|
+
* The message text.
|
|
7109
|
+
* @default 'This is a message'
|
|
7110
|
+
*/
|
|
7111
|
+
"message"?: string;
|
|
7112
|
+
/**
|
|
7113
|
+
* Fires when the action button is clicked. Only relevant when `showButton` is true.
|
|
7114
|
+
*/
|
|
7115
|
+
"onBsAction"?: (event: BsComposerStatusBannerCustomEvent<void>) => void;
|
|
7116
|
+
/**
|
|
7117
|
+
* Fires when the close button is clicked. Only relevant when `allowClose` is true.
|
|
7118
|
+
*/
|
|
7119
|
+
"onBsClose"?: (event: BsComposerStatusBannerCustomEvent<void>) => void;
|
|
7120
|
+
/**
|
|
7121
|
+
* Whether the "Continue"-style action button is rendered.
|
|
7122
|
+
* @default false
|
|
7123
|
+
*/
|
|
7124
|
+
"showButton"?: boolean;
|
|
7125
|
+
/**
|
|
7126
|
+
* Whether the leading icon (default: clock) is rendered.
|
|
7127
|
+
* @default true
|
|
7128
|
+
*/
|
|
7129
|
+
"showIcon"?: boolean;
|
|
7130
|
+
/**
|
|
7131
|
+
* Which severity/style to render. Drives background, text/icon color, and the action button's color.
|
|
7132
|
+
* @default 'error'
|
|
7133
|
+
*/
|
|
7134
|
+
"type"?: BsComposerStatusBannerType;
|
|
7135
|
+
}
|
|
7136
|
+
/**
|
|
7137
|
+
* A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
|
|
7138
|
+
* - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
|
|
7139
|
+
* all. Stacks into a column on narrow containers (its own width, not the viewport's).
|
|
7140
|
+
* - `card` -- the compact version of the same question, in a card.
|
|
7141
|
+
* - `preferences` -- the detailed dialog: one row per cookie category with a switch (strictly
|
|
7142
|
+
* necessary is "Always on"), an expandable list of the cookies in each, and Reject optional /
|
|
7143
|
+
* Accept all / Save choices.
|
|
7144
|
+
* - `saved` -- a dark confirmation bar ("Cookie choices saved") with a Change action.
|
|
7145
|
+
* The component only collects the choice. It doesn't set, read or delete cookies, remember that the
|
|
7146
|
+
* user answered, or decide when to show itself: your app does that from the events, and swaps `type`
|
|
7147
|
+
* (e.g. `banner` -> `preferences` on `bsCustomise`, `preferences` -> `saved` on `bsSave`).
|
|
7148
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
|
|
7149
|
+
* `bs-switch` (the category switches), `bs-chip-informative` (the "Always on" badge), `bs-icon-button`
|
|
7150
|
+
* (the close button), `bs-snackbar` (the saved confirmation).
|
|
7151
|
+
* ## When to use
|
|
7152
|
+
* - Asking for consent to optional cookies or similar tracking, as the law of your market requires.
|
|
7153
|
+
* ## When not to use
|
|
7154
|
+
* - Telling people about necessary cookies only -- that needs no consent prompt.
|
|
7155
|
+
* ## Fair choice
|
|
7156
|
+
* "Reject optional" has the same prominence as "Accept all" (same size, both always visible). Keep it
|
|
7157
|
+
* that way: a prompt that makes refusing harder than accepting isn't valid consent in most places.
|
|
7158
|
+
*/
|
|
7159
|
+
interface BsCookieConsent {
|
|
7160
|
+
/**
|
|
7161
|
+
* Label of the Accept all button.
|
|
7162
|
+
* @default 'Accept all'
|
|
7163
|
+
*/
|
|
7164
|
+
"acceptLabel"?: string;
|
|
7165
|
+
/**
|
|
7166
|
+
* Text of the badge on required categories (`preferences`).
|
|
7167
|
+
* @default 'Always on'
|
|
7168
|
+
*/
|
|
7169
|
+
"alwaysOnLabel"?: string;
|
|
7170
|
+
/**
|
|
7171
|
+
* The categories in the preferences dialog (`preferences`): `[{ id, label, description?, required?, enabled?, cookies? }]`. Defaults to Strictly necessary, Preferences, Analytics and Marketing. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule.
|
|
7172
|
+
* @default [ { id: 'necessary', label: 'Strictly necessary', description: 'Needed for sign-in, security and to keep the service running. These cannot be turned off.', required: true, cookies: [ 'Session cookie — keeps you signed in as you move between pages.', 'Security cookie — helps prevent fraud and unauthorized access.', 'Consent cookie — remembers your cookie consent choices.', ], }, { id: 'preferences', label: 'Preferences', description: 'Remember your language, theme and table layouts on this device.', enabled: true }, { id: 'analytics', label: 'Analytics', description: 'Help us understand which features are used so we can improve them. Data is anonymised.' }, { id: 'marketing', label: 'Marketing', description: 'Show relevant products on other websites.' }, ]
|
|
7173
|
+
*/
|
|
7174
|
+
"categories"?: BsCookieCategory[];
|
|
7175
|
+
/**
|
|
7176
|
+
* Label of the action on the confirmation (`saved`).
|
|
7177
|
+
* @default 'Change'
|
|
7178
|
+
*/
|
|
7179
|
+
"changeLabel"?: string;
|
|
7180
|
+
/**
|
|
7181
|
+
* Accessible name of the close button (`preferences`).
|
|
7182
|
+
* @default 'Close'
|
|
7183
|
+
*/
|
|
7184
|
+
"closeLabel"?: string;
|
|
7185
|
+
/**
|
|
7186
|
+
* Label of the Customise button.
|
|
7187
|
+
* @default 'Customise'
|
|
5866
7188
|
*/
|
|
5867
|
-
"
|
|
7189
|
+
"customiseLabel"?: string;
|
|
5868
7190
|
/**
|
|
5869
|
-
*
|
|
5870
|
-
* @default true
|
|
7191
|
+
* Paragraph under the heading (the message, for `saved`). Defaults per `type`.
|
|
5871
7192
|
*/
|
|
5872
|
-
"
|
|
7193
|
+
"description"?: string;
|
|
5873
7194
|
/**
|
|
5874
|
-
*
|
|
5875
|
-
* @default 'This is a message'
|
|
7195
|
+
* Heading. Defaults per `type`.
|
|
5876
7196
|
*/
|
|
5877
|
-
"
|
|
7197
|
+
"heading"?: string;
|
|
5878
7198
|
/**
|
|
5879
|
-
*
|
|
7199
|
+
* HTML heading level, 1-6.
|
|
7200
|
+
* @default 2
|
|
5880
7201
|
*/
|
|
5881
|
-
"
|
|
7202
|
+
"headingLevel"?: number;
|
|
5882
7203
|
/**
|
|
5883
|
-
* Fires when
|
|
7204
|
+
* Fires when Accept all is pressed. `{ choices }` has every category on.
|
|
5884
7205
|
*/
|
|
5885
|
-
"
|
|
7206
|
+
"onBsAccept"?: (event: BsCookieConsentCustomEvent<{ choices: BsCookieChoices }>) => void;
|
|
5886
7207
|
/**
|
|
5887
|
-
*
|
|
5888
|
-
* @default false
|
|
7208
|
+
* Fires when a category switch is toggled (`preferences`).
|
|
5889
7209
|
*/
|
|
5890
|
-
"
|
|
7210
|
+
"onBsChoice"?: (event: BsCookieConsentCustomEvent<{ id: string; enabled: boolean }>) => void;
|
|
5891
7211
|
/**
|
|
5892
|
-
*
|
|
5893
|
-
* @default true
|
|
7212
|
+
* Fires when the close button is pressed (`preferences`).
|
|
5894
7213
|
*/
|
|
5895
|
-
"
|
|
7214
|
+
"onBsClose"?: (event: BsCookieConsentCustomEvent<void>) => void;
|
|
5896
7215
|
/**
|
|
5897
|
-
*
|
|
5898
|
-
* @default 'error'
|
|
7216
|
+
* Fires when Customise is pressed -- show the `preferences` form.
|
|
5899
7217
|
*/
|
|
5900
|
-
"
|
|
7218
|
+
"onBsCustomise"?: (event: BsCookieConsentCustomEvent<void>) => void;
|
|
7219
|
+
/**
|
|
7220
|
+
* Fires when the action on the confirmation is pressed (`saved`) -- reopen the preferences.
|
|
7221
|
+
*/
|
|
7222
|
+
"onBsManage"?: (event: BsCookieConsentCustomEvent<void>) => void;
|
|
7223
|
+
/**
|
|
7224
|
+
* Fires when Reject optional is pressed. `{ choices }` has only the required categories on.
|
|
7225
|
+
*/
|
|
7226
|
+
"onBsReject"?: (event: BsCookieConsentCustomEvent<{ choices: BsCookieChoices }>) => void;
|
|
7227
|
+
/**
|
|
7228
|
+
* Fires when Save choices is pressed (`preferences`), with the current switches.
|
|
7229
|
+
*/
|
|
7230
|
+
"onBsSave"?: (event: BsCookieConsentCustomEvent<{ choices: BsCookieChoices }>) => void;
|
|
7231
|
+
/**
|
|
7232
|
+
* Text of the policy link.
|
|
7233
|
+
* @default 'Read the cookie policy'
|
|
7234
|
+
*/
|
|
7235
|
+
"policyLabel"?: string;
|
|
7236
|
+
/**
|
|
7237
|
+
* URL of your cookie policy. The "Read the cookie policy" link is only shown when this is set.
|
|
7238
|
+
*/
|
|
7239
|
+
"policyUrl"?: string;
|
|
7240
|
+
/**
|
|
7241
|
+
* Label of the Reject optional button.
|
|
7242
|
+
* @default 'Reject optional'
|
|
7243
|
+
*/
|
|
7244
|
+
"rejectLabel"?: string;
|
|
7245
|
+
/**
|
|
7246
|
+
* Label of the Save choices button (`preferences`).
|
|
7247
|
+
* @default 'Save choices'
|
|
7248
|
+
*/
|
|
7249
|
+
"saveLabel"?: string;
|
|
7250
|
+
/**
|
|
7251
|
+
* Label of a category's disclosure; `{count}` is replaced by the number of cookies.
|
|
7252
|
+
* @default 'See {count} cookies'
|
|
7253
|
+
*/
|
|
7254
|
+
"seeCookiesLabel"?: string;
|
|
7255
|
+
/**
|
|
7256
|
+
* Which form: `banner`, `card`, `preferences` or `saved`.
|
|
7257
|
+
* @default 'banner'
|
|
7258
|
+
*/
|
|
7259
|
+
"type"?: BsCookieConsentType;
|
|
5901
7260
|
}
|
|
5902
7261
|
/**
|
|
5903
7262
|
* A sortable, optionally row-selectable table for tabular data.
|
|
@@ -5945,6 +7304,7 @@ declare namespace LocalJSX {
|
|
|
5945
7304
|
* ISO timestamps -- so a date can't shift by a day across time zones.
|
|
5946
7305
|
* The calendar renders inline at a fixed width; to show it as a popover, put it inside a
|
|
5947
7306
|
* `bs-menu` or your own overlay.
|
|
7307
|
+
* **Built from:** `bs-card` (the surface), `bs-input` (the month/year dropdown triggers and the range date fields), `bs-menu` and `bs-menu-item` (the month/year lists).
|
|
5948
7308
|
* ## When to use
|
|
5949
7309
|
* - Picking a date where seeing the surrounding days of the week/month helps (a booking, a
|
|
5950
7310
|
* deadline, a report window).
|
|
@@ -6077,6 +7437,64 @@ declare namespace LocalJSX {
|
|
|
6077
7437
|
*/
|
|
6078
7438
|
"size"?: BsDialogSize;
|
|
6079
7439
|
}
|
|
7440
|
+
/**
|
|
7441
|
+
* A full-block page for when the user can't get to what they asked for: page not found (404), a server
|
|
7442
|
+
* error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
|
|
7443
|
+
* "Error page" component's five states.
|
|
7444
|
+
* Each `type` brings its own icon, tint, code label ("404", "Maintenance", ...), heading, paragraph and
|
|
7445
|
+
* buttons, all overridable by props. The component doesn't navigate or retry anything: it emits
|
|
7446
|
+
* `bsPrimary` / `bsSecondary` and your app decides what "Go to Overview" or "Try again" does.
|
|
7447
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions).
|
|
7448
|
+
* ## When to use
|
|
7449
|
+
* - Replacing the content of a page or panel that can't be shown, with a clear way forward.
|
|
7450
|
+
* ## When not to use
|
|
7451
|
+
* - A problem with one field or one action -- use inline validation or a `bs-snackbar`.
|
|
7452
|
+
* - A blocking question the user must answer -- use `bs-dialog`.
|
|
7453
|
+
*/
|
|
7454
|
+
interface BsErrorPage {
|
|
7455
|
+
/**
|
|
7456
|
+
* The small label under the icon, e.g. "404". Defaults per `type` ("404", "500", "403", "Maintenance", "Offline"). Set it to an empty string to hide it.
|
|
7457
|
+
*/
|
|
7458
|
+
"code"?: string;
|
|
7459
|
+
/**
|
|
7460
|
+
* Paragraph under the heading. Defaults per `type`.
|
|
7461
|
+
*/
|
|
7462
|
+
"description"?: string;
|
|
7463
|
+
/**
|
|
7464
|
+
* Heading. Defaults per `type`.
|
|
7465
|
+
*/
|
|
7466
|
+
"heading"?: string;
|
|
7467
|
+
/**
|
|
7468
|
+
* HTML heading level for the heading, 1-6. Use 1 when this replaces the whole page; lower when it sits inside a section that already has a heading above it.
|
|
7469
|
+
* @default 1
|
|
7470
|
+
*/
|
|
7471
|
+
"headingLevel"?: number;
|
|
7472
|
+
/**
|
|
7473
|
+
* Fires when the primary button is pressed.
|
|
7474
|
+
*/
|
|
7475
|
+
"onBsPrimary"?: (event: BsErrorPageCustomEvent<void>) => void;
|
|
7476
|
+
/**
|
|
7477
|
+
* Fires when the secondary button is pressed.
|
|
7478
|
+
*/
|
|
7479
|
+
"onBsSecondary"?: (event: BsErrorPageCustomEvent<void>) => void;
|
|
7480
|
+
/**
|
|
7481
|
+
* Label of the primary button. Defaults per `type`. Set it to an empty string to hide it.
|
|
7482
|
+
*/
|
|
7483
|
+
"primaryLabel"?: string;
|
|
7484
|
+
/**
|
|
7485
|
+
* A small reference line under the buttons, e.g. `"Error ID: 7f3c-21a9 · 30.09.2026 10:42"`, for support to look up. Nothing is shown when empty.
|
|
7486
|
+
*/
|
|
7487
|
+
"reference"?: string;
|
|
7488
|
+
/**
|
|
7489
|
+
* Label of the secondary button. Defaults per `type` (only `not-found`, `server-error` and `no-access` have one). Set it to an empty string to hide it.
|
|
7490
|
+
*/
|
|
7491
|
+
"secondaryLabel"?: string;
|
|
7492
|
+
/**
|
|
7493
|
+
* Which error: `not-found` (404), `server-error` (500), `no-access` (403), `maintenance` or `offline`.
|
|
7494
|
+
* @default 'not-found'
|
|
7495
|
+
*/
|
|
7496
|
+
"type"?: BsErrorPageType;
|
|
7497
|
+
}
|
|
6080
7498
|
/**
|
|
6081
7499
|
* A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
|
|
6082
7500
|
* the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
|
|
@@ -6251,6 +7669,36 @@ declare namespace LocalJSX {
|
|
|
6251
7669
|
*/
|
|
6252
7670
|
"variant"?: BsIconButtonVariant;
|
|
6253
7671
|
}
|
|
7672
|
+
/**
|
|
7673
|
+
* A small rounded square holding an icon, tinted by intent -- the visual marker next to a status,
|
|
7674
|
+
* a list item or a feature. Matches the Figma "Icon tile" component (3 sizes x 6 intents).
|
|
7675
|
+
* Each intent shows a default glyph (house, check, warning, cross, grid, info); put your own icon in
|
|
7676
|
+
* the default slot to replace it. A slotted icon is sized to the tile (12/16/24px) and coloured
|
|
7677
|
+
* with the intent's icon colour, as long as it draws with `currentColor`.
|
|
7678
|
+
* The tile is decorative by default (hidden from assistive tech). Don't rely on the colour or glyph
|
|
7679
|
+
* alone to convey status: slot text into `text` (it sits beside the square, in
|
|
7680
|
+
* `--bs-icon-tile-text-color`), or set `label` to give the tile its own accessible name.
|
|
7681
|
+
* ## When to use
|
|
7682
|
+
* - Marking a row, card or message with a status or category icon.
|
|
7683
|
+
* ## When not to use
|
|
7684
|
+
* - As a button -- it isn't interactive. Use `bs-icon-button`.
|
|
7685
|
+
*/
|
|
7686
|
+
interface BsIconTile {
|
|
7687
|
+
/**
|
|
7688
|
+
* Colour and default glyph. `brand` uses the brand colours; `information` the info palette.
|
|
7689
|
+
* @default 'default'
|
|
7690
|
+
*/
|
|
7691
|
+
"intent"?: BsIconTileIntent;
|
|
7692
|
+
/**
|
|
7693
|
+
* Accessible name. When set, the tile is exposed as an image with this name; when empty it is decorative and hidden from assistive tech.
|
|
7694
|
+
*/
|
|
7695
|
+
"label"?: string;
|
|
7696
|
+
/**
|
|
7697
|
+
* Tile size: `sm` 24px, `md` 32px, `lg` 48px.
|
|
7698
|
+
* @default 'sm'
|
|
7699
|
+
*/
|
|
7700
|
+
"size"?: BsIconTileSize;
|
|
7701
|
+
}
|
|
6254
7702
|
/**
|
|
6255
7703
|
* A pill-shaped tab button -- an optional leading icon plus a text label, rendered as a real
|
|
6256
7704
|
* `<button>` so it participates correctly in tab order and native click/keyboard activation.
|
|
@@ -6736,6 +8184,143 @@ declare namespace LocalJSX {
|
|
|
6736
8184
|
*/
|
|
6737
8185
|
"skipToContentLabel"?: string;
|
|
6738
8186
|
}
|
|
8187
|
+
/**
|
|
8188
|
+
* A "get set up" checklist, in four forms that matching the Figma "Onboarding checklist" component:
|
|
8189
|
+
* - `panel` -- the full list: heading, progress, every step with a status icon, and the current step
|
|
8190
|
+
* expanded with its description, time estimate, Skip for now and a primary action.
|
|
8191
|
+
* - `dashboard` -- a wide card for the top of a page: summary and progress on the left, the current step
|
|
8192
|
+
* and the next ones as small cards on the right, and a "See all steps" link.
|
|
8193
|
+
* - `launcher` -- a small always-visible chip that reopens the checklist; three layouts (`icon`, `ring`,
|
|
8194
|
+
* `inline`).
|
|
8195
|
+
* - `completion` -- the "You're all set" card once every step is done.
|
|
8196
|
+
* The component shows progress and reports what the user pressed. It doesn't know what a step means,
|
|
8197
|
+
* run it, or remember anything: your app owns the steps (`steps`, each with `done`), marks them done, and
|
|
8198
|
+
* decides which form to show.
|
|
8199
|
+
* **Built from:** `bs-card` (every surface), `bs-icon-tile` (the icons), `bs-button` (the actions),
|
|
8200
|
+
* `bs-icon-button` (the close button), `bs-progress-linear` (the progress bar), `bs-progress` (the launcher
|
|
8201
|
+
* ring).
|
|
8202
|
+
* ## When to use
|
|
8203
|
+
* - Guiding a new account or user through a short list of setup tasks they can do in any order or later.
|
|
8204
|
+
* ## When not to use
|
|
8205
|
+
* - A strict, linear flow where each step needs the one before -- use `bs-stepper`.
|
|
8206
|
+
* - A tour of the interface itself -- use `bs-product-tour`.
|
|
8207
|
+
* ## Accessibility
|
|
8208
|
+
* Steps are an ordered list; the current one has `aria-current="step"`, and each step carries a visually
|
|
8209
|
+
* hidden "Done" / "Not done". The progress bar is named with the progress text.
|
|
8210
|
+
*/
|
|
8211
|
+
interface BsOnboardingChecklist {
|
|
8212
|
+
/**
|
|
8213
|
+
* Caption on the cards of steps that come after the current one (`dashboard`).
|
|
8214
|
+
* @default 'After the step before'
|
|
8215
|
+
*/
|
|
8216
|
+
"afterLabel"?: string;
|
|
8217
|
+
/**
|
|
8218
|
+
* Shows a close button (`panel`, `dashboard`).
|
|
8219
|
+
* @default false
|
|
8220
|
+
*/
|
|
8221
|
+
"closable"?: boolean;
|
|
8222
|
+
/**
|
|
8223
|
+
* Accessible name of the close button.
|
|
8224
|
+
* @default 'Close'
|
|
8225
|
+
*/
|
|
8226
|
+
"closeLabel"?: string;
|
|
8227
|
+
/**
|
|
8228
|
+
* Paragraph under the heading. Defaults to a summary of the progress for `dashboard`. Nothing for `launcher`.
|
|
8229
|
+
*/
|
|
8230
|
+
"description"?: string;
|
|
8231
|
+
/**
|
|
8232
|
+
* Label of the main button (`completion`).
|
|
8233
|
+
* @default 'Go to dashboard'
|
|
8234
|
+
*/
|
|
8235
|
+
"doneLabel"?: string;
|
|
8236
|
+
/**
|
|
8237
|
+
* Heading. Defaults per `type` ("Get started", "Finish setting up", "Setup", "You're all set").
|
|
8238
|
+
*/
|
|
8239
|
+
"heading"?: string;
|
|
8240
|
+
/**
|
|
8241
|
+
* HTML heading level, 1-6.
|
|
8242
|
+
* @default 2
|
|
8243
|
+
*/
|
|
8244
|
+
"headingLevel"?: number;
|
|
8245
|
+
/**
|
|
8246
|
+
* Label of the secondary button (`completion`).
|
|
8247
|
+
* @default 'Hide checklist'
|
|
8248
|
+
*/
|
|
8249
|
+
"hideLabel"?: string;
|
|
8250
|
+
/**
|
|
8251
|
+
* Layout of the `launcher`: `icon` (tile, title, progress text), `ring` (circular progress, title, text) or `inline` (tile, title and text on one line, with a chevron).
|
|
8252
|
+
* @default 'icon'
|
|
8253
|
+
*/
|
|
8254
|
+
"launcherLayout"?: BsOnboardingLauncherLayout;
|
|
8255
|
+
/**
|
|
8256
|
+
* Fires when the close button is pressed.
|
|
8257
|
+
*/
|
|
8258
|
+
"onBsClose"?: (event: BsOnboardingChecklistCustomEvent<void>) => void;
|
|
8259
|
+
/**
|
|
8260
|
+
* Fires when the main button is pressed (`completion`).
|
|
8261
|
+
*/
|
|
8262
|
+
"onBsDone"?: (event: BsOnboardingChecklistCustomEvent<void>) => void;
|
|
8263
|
+
/**
|
|
8264
|
+
* Fires when Hide checklist is pressed (`completion`).
|
|
8265
|
+
*/
|
|
8266
|
+
"onBsHide"?: (event: BsOnboardingChecklistCustomEvent<void>) => void;
|
|
8267
|
+
/**
|
|
8268
|
+
* Fires when the user asks to open the full checklist: "See all steps" (`dashboard`) or the launcher.
|
|
8269
|
+
*/
|
|
8270
|
+
"onBsOpen"?: (event: BsOnboardingChecklistCustomEvent<void>) => void;
|
|
8271
|
+
/**
|
|
8272
|
+
* Fires when a step's primary action is pressed (`panel` button, `dashboard` Start): `{ id }`.
|
|
8273
|
+
*/
|
|
8274
|
+
"onBsStepAction"?: (event: BsOnboardingChecklistCustomEvent<{ id: string }>) => void;
|
|
8275
|
+
/**
|
|
8276
|
+
* Fires when "Skip for now" is pressed on the current step (`panel`): `{ id }`.
|
|
8277
|
+
*/
|
|
8278
|
+
"onBsStepSkip"?: (event: BsOnboardingChecklistCustomEvent<{ id: string }>) => void;
|
|
8279
|
+
/**
|
|
8280
|
+
* Template of the progress label; `{done}` and `{total}` are replaced.
|
|
8281
|
+
* @default '{done} of {total} done'
|
|
8282
|
+
*/
|
|
8283
|
+
"progressLabel"?: string;
|
|
8284
|
+
/**
|
|
8285
|
+
* Text under the launcher title. Defaults to "N% complete".
|
|
8286
|
+
*/
|
|
8287
|
+
"progressText"?: string;
|
|
8288
|
+
/**
|
|
8289
|
+
* Label of the link that opens the whole checklist (`dashboard`).
|
|
8290
|
+
* @default 'See all steps'
|
|
8291
|
+
*/
|
|
8292
|
+
"seeAllLabel"?: string;
|
|
8293
|
+
/**
|
|
8294
|
+
* Label of "Skip for now" on the current step (`panel`).
|
|
8295
|
+
* @default 'Skip for now'
|
|
8296
|
+
*/
|
|
8297
|
+
"skipLabel"?: string;
|
|
8298
|
+
/**
|
|
8299
|
+
* Label of the Start link on the current step's card (`dashboard`).
|
|
8300
|
+
* @default 'Start'
|
|
8301
|
+
*/
|
|
8302
|
+
"startLabel"?: string;
|
|
8303
|
+
/**
|
|
8304
|
+
* Visually hidden text on a finished step.
|
|
8305
|
+
* @default 'Done'
|
|
8306
|
+
*/
|
|
8307
|
+
"statusDoneLabel"?: string;
|
|
8308
|
+
/**
|
|
8309
|
+
* Visually hidden text on an unfinished step.
|
|
8310
|
+
* @default 'Not done'
|
|
8311
|
+
*/
|
|
8312
|
+
"statusTodoLabel"?: string;
|
|
8313
|
+
/**
|
|
8314
|
+
* The steps: `[{ id, label, description?, done?, estimate?, actionLabel?, skippable? }]`. The first step that isn't `done` is the current one. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule.
|
|
8315
|
+
* @default []
|
|
8316
|
+
*/
|
|
8317
|
+
"steps"?: BsOnboardingStep[];
|
|
8318
|
+
/**
|
|
8319
|
+
* Which form: `panel`, `dashboard`, `launcher` or `completion`.
|
|
8320
|
+
* @default 'panel'
|
|
8321
|
+
*/
|
|
8322
|
+
"type"?: BsOnboardingChecklistType;
|
|
8323
|
+
}
|
|
6739
8324
|
/**
|
|
6740
8325
|
* A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
|
|
6741
8326
|
* large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
|
|
@@ -6782,6 +8367,88 @@ declare namespace LocalJSX {
|
|
|
6782
8367
|
*/
|
|
6783
8368
|
"totalPages"?: number;
|
|
6784
8369
|
}
|
|
8370
|
+
/**
|
|
8371
|
+
* One step of a product tour: a centred **welcome** or **success** card with an art tile, or a
|
|
8372
|
+
* **pointer** card -- a compact step with a close button, a "1 of 3" progress label and Back/Next
|
|
8373
|
+
* actions -- whose arrow points at the thing it describes. Matches the Figma "Product Tour" and
|
|
8374
|
+
* "Pointer" components.
|
|
8375
|
+
* This is the step *card* only. It doesn't run a tour: it has no overlay, no spotlight, no
|
|
8376
|
+
* positioning against a target and no step sequencing. Your code decides which step is showing,
|
|
8377
|
+
* places the card next to its target (the arrow can sit on any of 12 positions via `direction`),
|
|
8378
|
+
* and moves on from `bsPrimary`/`bsSecondary`.
|
|
8379
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the art tile), `bs-button` (the actions), `bs-icon-button` (the close button).
|
|
8380
|
+
* ## When to use
|
|
8381
|
+
* - Introducing a feature on first run (`welcome`), confirming a finished tour (`success`), or
|
|
8382
|
+
* walking through the UI one pointer at a time (`pointer`).
|
|
8383
|
+
* ## When not to use
|
|
8384
|
+
* - A blocking decision or form -- use `bs-dialog`.
|
|
8385
|
+
* - A hint on hover or focus -- use `bs-tooltip`.
|
|
8386
|
+
*/
|
|
8387
|
+
interface BsProductTour {
|
|
8388
|
+
/**
|
|
8389
|
+
* Shows a close button in the corner (`pointer`).
|
|
8390
|
+
* @default false
|
|
8391
|
+
*/
|
|
8392
|
+
"closable"?: boolean;
|
|
8393
|
+
/**
|
|
8394
|
+
* Accessible name of the close button.
|
|
8395
|
+
* @default 'Close'
|
|
8396
|
+
*/
|
|
8397
|
+
"closeLabel"?: string;
|
|
8398
|
+
/**
|
|
8399
|
+
* Paragraph under the heading.
|
|
8400
|
+
*/
|
|
8401
|
+
"description"?: string;
|
|
8402
|
+
/**
|
|
8403
|
+
* Where the arrow sits (`pointer` only): the side of the card it's on, and for corners/edges which end it's near, e.g. `top-left` = on the top edge, near the left corner.
|
|
8404
|
+
* @default 'top'
|
|
8405
|
+
*/
|
|
8406
|
+
"direction"?: BsProductTourDirection;
|
|
8407
|
+
/**
|
|
8408
|
+
* Heading.
|
|
8409
|
+
*/
|
|
8410
|
+
"heading"?: string;
|
|
8411
|
+
/**
|
|
8412
|
+
* Fires when the close button is pressed.
|
|
8413
|
+
*/
|
|
8414
|
+
"onBsClose"?: (event: BsProductTourCustomEvent<void>) => void;
|
|
8415
|
+
/**
|
|
8416
|
+
* Fires when the primary button is pressed.
|
|
8417
|
+
*/
|
|
8418
|
+
"onBsPrimary"?: (event: BsProductTourCustomEvent<void>) => void;
|
|
8419
|
+
/**
|
|
8420
|
+
* Fires when the secondary button is pressed.
|
|
8421
|
+
*/
|
|
8422
|
+
"onBsSecondary"?: (event: BsProductTourCustomEvent<void>) => void;
|
|
8423
|
+
/**
|
|
8424
|
+
* Label of the primary button. Defaults to "Start" (`welcome`), "Done" (`success`) or "Next" (`pointer`). Set it to an empty string to hide the button.
|
|
8425
|
+
*/
|
|
8426
|
+
"primaryLabel"?: string;
|
|
8427
|
+
/**
|
|
8428
|
+
* Template of the progress label; `{step}` and `{total}` are replaced.
|
|
8429
|
+
* @default '{step} of {total}'
|
|
8430
|
+
*/
|
|
8431
|
+
"progressLabel"?: string;
|
|
8432
|
+
/**
|
|
8433
|
+
* Label of the secondary button. Defaults to "Later" (`welcome`) or "Back" (`pointer`); none for `success`. Set it to an empty string to hide the button.
|
|
8434
|
+
*/
|
|
8435
|
+
"secondaryLabel"?: string;
|
|
8436
|
+
/**
|
|
8437
|
+
* Current step, 1-based (`pointer`). Used with `total` for the progress label.
|
|
8438
|
+
* @default 1
|
|
8439
|
+
*/
|
|
8440
|
+
"step"?: number;
|
|
8441
|
+
/**
|
|
8442
|
+
* Number of steps (`pointer`). The progress label is hidden when this is 0.
|
|
8443
|
+
* @default 0
|
|
8444
|
+
*/
|
|
8445
|
+
"total"?: number;
|
|
8446
|
+
/**
|
|
8447
|
+
* `welcome` and `success` are centred cards with an art tile; `pointer` is the compact step with an arrow.
|
|
8448
|
+
* @default 'welcome'
|
|
8449
|
+
*/
|
|
8450
|
+
"type"?: BsProductTourType;
|
|
8451
|
+
}
|
|
6785
8452
|
/**
|
|
6786
8453
|
* A circular progress indicator -- either a static ring showing a percentage sweep
|
|
6787
8454
|
* (`type="determinate"`) or a continuously spinning ring signaling in-progress work with no known
|
|
@@ -6861,12 +8528,169 @@ declare namespace LocalJSX {
|
|
|
6861
8528
|
* `determinate` renders a static fill reflecting `value`; `indeterminate` renders a continuously sliding gradient bar and ignores `value`.
|
|
6862
8529
|
* @default 'determinate'
|
|
6863
8530
|
*/
|
|
6864
|
-
"type"?: BsProgressLinearType;
|
|
8531
|
+
"type"?: BsProgressLinearType;
|
|
8532
|
+
/**
|
|
8533
|
+
* Progress percentage, `0`-`100`. Only meaningful for `type="determinate"` -- ignored (and never rendered) for `type="indeterminate"`. Out-of-range values are clamped defensively.
|
|
8534
|
+
* @default 0
|
|
8535
|
+
*/
|
|
8536
|
+
"value"?: number;
|
|
8537
|
+
}
|
|
8538
|
+
/**
|
|
8539
|
+
* A block for sharing a link or taking a payment by QR code: a heading, the code on a white quiet
|
|
8540
|
+
* zone, the URL (or the amount, for payments) as text, an optional expiry chip, and Download and
|
|
8541
|
+
* Copy link actions. Matches the Figma "QR code" component (3 sizes x 2 types x 5 states, plus the
|
|
8542
|
+
* "with logo" variant).
|
|
8543
|
+
* **This component draws a code, it doesn't encode one.** Generate the real code in your product
|
|
8544
|
+
* with a QR library and hand it over either as a `matrix` (a square `boolean[][]`, `true` = dark
|
|
8545
|
+
* module) or as your own element in the `code` slot (an `<img>`, `<svg>` or `<canvas>`).
|
|
8546
|
+
* The code always sits on a white quiet zone with black modules, in dark mode too -- scanners need
|
|
8547
|
+
* the contrast.
|
|
8548
|
+
* **Built from:** `bs-card` (the surface), `bs-button` (Download, Copy link, Retry, Refresh), `bs-progress` (the loading spinner), `bs-chip-informative` (the expiry chip), `bs-icon-button` (the close button).
|
|
8549
|
+
* ## When to use
|
|
8550
|
+
* - Sharing a link to an order, document or page that someone will open on a phone.
|
|
8551
|
+
* - Taking a payment with an amount (`type="payment"`).
|
|
8552
|
+
* ## When not to use
|
|
8553
|
+
* - Encoding long text blobs -- a QR code that dense is hard to scan at the sizes here.
|
|
8554
|
+
* ## States
|
|
8555
|
+
* `loading` (generating the code), `error` (couldn't generate it; Retry), `expired` (Refresh) and
|
|
8556
|
+
* `scanned` (done: "Scanned", or "Payment received" for payments). Download and Copy link are disabled
|
|
8557
|
+
* in every state but `default`, and hidden once `scanned`.
|
|
8558
|
+
*/
|
|
8559
|
+
interface BsQrCode {
|
|
8560
|
+
/**
|
|
8561
|
+
* The amount shown under the code (`type="payment"`), e.g. `"148,00 kr"`.
|
|
8562
|
+
*/
|
|
8563
|
+
"amount"?: string;
|
|
8564
|
+
/**
|
|
8565
|
+
* Small label above the amount.
|
|
8566
|
+
* @default 'Total'
|
|
8567
|
+
*/
|
|
8568
|
+
"amountLabel"?: string;
|
|
8569
|
+
/**
|
|
8570
|
+
* Shows a close button in the corner.
|
|
8571
|
+
* @default false
|
|
8572
|
+
*/
|
|
8573
|
+
"closable"?: boolean;
|
|
8574
|
+
/**
|
|
8575
|
+
* Accessible name of the close button.
|
|
8576
|
+
* @default 'Close'
|
|
8577
|
+
*/
|
|
8578
|
+
"closeLabel"?: string;
|
|
8579
|
+
/**
|
|
8580
|
+
* Accessible name for the code image, e.g. `"QR code for order SO-10482"`. Applies to `matrix`; give a slotted `<img>` its own `alt`.
|
|
8581
|
+
* @default 'QR code'
|
|
8582
|
+
*/
|
|
8583
|
+
"codeLabel"?: string;
|
|
8584
|
+
/**
|
|
8585
|
+
* Label of the Copy link button.
|
|
8586
|
+
* @default 'Copy link'
|
|
8587
|
+
*/
|
|
8588
|
+
"copyLabel"?: string;
|
|
8589
|
+
/**
|
|
8590
|
+
* Line under the heading.
|
|
8591
|
+
*/
|
|
8592
|
+
"description"?: string;
|
|
8593
|
+
/**
|
|
8594
|
+
* Label of the Download button.
|
|
8595
|
+
* @default 'Download PNG'
|
|
8596
|
+
*/
|
|
8597
|
+
"downloadLabel"?: string;
|
|
8598
|
+
/**
|
|
8599
|
+
* Text in the `error` overlay.
|
|
8600
|
+
* @default "Couldn't load code"
|
|
8601
|
+
*/
|
|
8602
|
+
"errorLabel"?: string;
|
|
8603
|
+
/**
|
|
8604
|
+
* Text in the `expired` overlay.
|
|
8605
|
+
* @default 'Code expired'
|
|
8606
|
+
*/
|
|
8607
|
+
"expiredLabel"?: string;
|
|
8608
|
+
/**
|
|
8609
|
+
* Text of the expiry chip, e.g. `"Expires in 04:59"`. No chip when empty.
|
|
8610
|
+
*/
|
|
8611
|
+
"expiry"?: string;
|
|
8612
|
+
/**
|
|
8613
|
+
* Heading text.
|
|
8614
|
+
* @default 'Share the order'
|
|
8615
|
+
*/
|
|
8616
|
+
"heading"?: string;
|
|
8617
|
+
/**
|
|
8618
|
+
* Hides the Download and Copy link row.
|
|
8619
|
+
* @default false
|
|
8620
|
+
*/
|
|
8621
|
+
"hideActions"?: boolean;
|
|
8622
|
+
/**
|
|
8623
|
+
* Hides the Copy link button.
|
|
8624
|
+
* @default false
|
|
8625
|
+
*/
|
|
8626
|
+
"hideCopy"?: boolean;
|
|
8627
|
+
/**
|
|
8628
|
+
* Hides the Download button.
|
|
8629
|
+
* @default false
|
|
8630
|
+
*/
|
|
8631
|
+
"hideDownload"?: boolean;
|
|
8632
|
+
/**
|
|
8633
|
+
* Text in the `loading` overlay.
|
|
8634
|
+
* @default 'Generating code'
|
|
8635
|
+
*/
|
|
8636
|
+
"loadingLabel"?: string;
|
|
8637
|
+
/**
|
|
8638
|
+
* The code as a square matrix of modules, `true` = dark. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule. Ignored when the `code` slot is used.
|
|
8639
|
+
*/
|
|
8640
|
+
"matrix"?: boolean[][];
|
|
8641
|
+
/**
|
|
8642
|
+
* Fires when the close button is pressed.
|
|
8643
|
+
*/
|
|
8644
|
+
"onBsClose"?: (event: BsQrCodeCustomEvent<void>) => void;
|
|
8645
|
+
/**
|
|
8646
|
+
* Fires when Copy link is pressed, after the component tries to put `url` on the clipboard. `{ url }` is the `url` prop.
|
|
8647
|
+
*/
|
|
8648
|
+
"onBsCopy"?: (event: BsQrCodeCustomEvent<{ url?: string }>) => void;
|
|
8649
|
+
/**
|
|
8650
|
+
* Fires when Download is pressed. The component doesn't render a file; produce it from the code you generated.
|
|
8651
|
+
*/
|
|
8652
|
+
"onBsDownload"?: (event: BsQrCodeCustomEvent<void>) => void;
|
|
8653
|
+
/**
|
|
8654
|
+
* Fires when Refresh is pressed (`expired` state). Set `state` back to `loading` yourself.
|
|
8655
|
+
*/
|
|
8656
|
+
"onBsRefresh"?: (event: BsQrCodeCustomEvent<void>) => void;
|
|
8657
|
+
/**
|
|
8658
|
+
* Fires when Retry is pressed (`error` state). Set `state` back to `loading` yourself.
|
|
8659
|
+
*/
|
|
8660
|
+
"onBsRetry"?: (event: BsQrCodeCustomEvent<void>) => void;
|
|
8661
|
+
/**
|
|
8662
|
+
* Label of the Refresh button (`expired`).
|
|
8663
|
+
* @default 'Refresh'
|
|
8664
|
+
*/
|
|
8665
|
+
"refreshLabel"?: string;
|
|
8666
|
+
/**
|
|
8667
|
+
* Label of the Retry button (`error`).
|
|
8668
|
+
* @default 'Retry'
|
|
8669
|
+
*/
|
|
8670
|
+
"retryLabel"?: string;
|
|
8671
|
+
/**
|
|
8672
|
+
* Text in the `scanned` overlay. Defaults to "Payment received" for `type="payment"` and "Scanned" otherwise.
|
|
8673
|
+
*/
|
|
8674
|
+
"scannedLabel"?: string;
|
|
8675
|
+
/**
|
|
8676
|
+
* Card size: `sm`, `md` (default) or `lg`.
|
|
8677
|
+
* @default 'md'
|
|
8678
|
+
*/
|
|
8679
|
+
"size"?: BsQrCodeSize;
|
|
8680
|
+
/**
|
|
8681
|
+
* `default`, or one of the overlay states: `loading`, `error`, `expired`, `scanned`.
|
|
8682
|
+
* @default 'default'
|
|
8683
|
+
*/
|
|
8684
|
+
"state"?: BsQrCodeState;
|
|
8685
|
+
/**
|
|
8686
|
+
* `default` shows the URL under the code; `payment` shows the amount instead.
|
|
8687
|
+
* @default 'default'
|
|
8688
|
+
*/
|
|
8689
|
+
"type"?: BsQrCodeType;
|
|
6865
8690
|
/**
|
|
6866
|
-
*
|
|
6867
|
-
* @default 0
|
|
8691
|
+
* The link shown as text under the code (`type="default"`), and copied by Copy link.
|
|
6868
8692
|
*/
|
|
6869
|
-
"
|
|
8693
|
+
"url"?: string;
|
|
6870
8694
|
}
|
|
6871
8695
|
/**
|
|
6872
8696
|
* A single radio button with its label, for one mutually-exclusive choice within a group.
|
|
@@ -6906,6 +8730,150 @@ declare namespace LocalJSX {
|
|
|
6906
8730
|
*/
|
|
6907
8731
|
"value"?: string;
|
|
6908
8732
|
}
|
|
8733
|
+
/**
|
|
8734
|
+
* The three moments around an expiring session, as one card. Matches the Figma "Session timeout"
|
|
8735
|
+
* component's three types:
|
|
8736
|
+
* - `warning` -- "You'll be signed out soon": a live countdown with a draining bar, an optional
|
|
8737
|
+
* "your work is saved" note, and Sign out now / Stay signed in.
|
|
8738
|
+
* - `signed-out` -- "You've been signed out": who was signed in, with Sign in again and Use a different
|
|
8739
|
+
* account.
|
|
8740
|
+
* - `confirm-identity` -- "Confirm it's you": a fresh password check before a sensitive action, with
|
|
8741
|
+
* passkey / BankID alternatives and Cancel.
|
|
8742
|
+
* The component never signs anyone in or out. It shows the state and emits `bsPrimary`, `bsSecondary`,
|
|
8743
|
+
* `bsAlternative`, `bsCancel` and `bsExpire`; your app talks to the identity provider.
|
|
8744
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
|
|
8745
|
+
* `bs-progress-linear` (the countdown bar), `bs-avatar` (the signed-in account), `bs-input` (the
|
|
8746
|
+
* password field).
|
|
8747
|
+
* ## When to use
|
|
8748
|
+
* - Warning someone, before it happens, that an inactivity timeout is about to end their session.
|
|
8749
|
+
* - Telling someone their session ended, and letting them pick up where they left off.
|
|
8750
|
+
* - Asking for a fresh credential before a sensitive action.
|
|
8751
|
+
* ## When not to use
|
|
8752
|
+
* - A first-time sign-in page -- this assumes there was a session.
|
|
8753
|
+
* - Anything that is not about the session or the user's identity -- use `bs-dialog`.
|
|
8754
|
+
* ## Accessibility
|
|
8755
|
+
* The card is a labelled region. The countdown is a `timer` and is *not* announced every second; a polite
|
|
8756
|
+
* live region announces the time left at 60, 30 and 10 seconds instead. Wrap the card in your own modal
|
|
8757
|
+
* (`bs-dialog`) if the warning must trap focus.
|
|
8758
|
+
*/
|
|
8759
|
+
interface BsSessionTimeout {
|
|
8760
|
+
/**
|
|
8761
|
+
* Email of the account that was signed in (`signed-out`).
|
|
8762
|
+
*/
|
|
8763
|
+
"accountEmail"?: string;
|
|
8764
|
+
/**
|
|
8765
|
+
* Initials in the avatar (`signed-out`). Derived from `accountName` when not set.
|
|
8766
|
+
*/
|
|
8767
|
+
"accountInitials"?: string;
|
|
8768
|
+
/**
|
|
8769
|
+
* Name of the account that was signed in (`signed-out`).
|
|
8770
|
+
*/
|
|
8771
|
+
"accountName"?: string;
|
|
8772
|
+
/**
|
|
8773
|
+
* Other ways to confirm, shown as outlined buttons under the divider: `[{ id, label, icon? }]`. Defaults to a passkey and a BankID button. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule. Set `[]` to hide them.
|
|
8774
|
+
* @default [ { id: 'passkey', label: 'Use passkey', icon: 'fingerprint' }, { id: 'bankid', label: 'Use BankID', icon: 'key' }, ]
|
|
8775
|
+
*/
|
|
8776
|
+
"alternatives"?: BsSessionTimeoutAlternative[];
|
|
8777
|
+
/**
|
|
8778
|
+
* Label of the Cancel button (`confirm-identity`). Set to an empty string to hide it.
|
|
8779
|
+
* @default 'Cancel'
|
|
8780
|
+
*/
|
|
8781
|
+
"cancelLabel"?: string;
|
|
8782
|
+
/**
|
|
8783
|
+
* Count `secondsLeft` down once a second (`warning`), firing `bsExpire` at zero.
|
|
8784
|
+
* @default false
|
|
8785
|
+
*/
|
|
8786
|
+
"countdown"?: boolean;
|
|
8787
|
+
/**
|
|
8788
|
+
* Paragraph under the heading. Defaults per `type`.
|
|
8789
|
+
*/
|
|
8790
|
+
"description"?: string;
|
|
8791
|
+
/**
|
|
8792
|
+
* Label of the divider between the password and the alternatives.
|
|
8793
|
+
* @default 'or'
|
|
8794
|
+
*/
|
|
8795
|
+
"dividerLabel"?: string;
|
|
8796
|
+
/**
|
|
8797
|
+
* Heading. Defaults per `type`.
|
|
8798
|
+
*/
|
|
8799
|
+
"heading"?: string;
|
|
8800
|
+
/**
|
|
8801
|
+
* HTML heading level, 1-6.
|
|
8802
|
+
* @default 2
|
|
8803
|
+
*/
|
|
8804
|
+
"headingLevel"?: number;
|
|
8805
|
+
/**
|
|
8806
|
+
* Hides the icon tile.
|
|
8807
|
+
* @default false
|
|
8808
|
+
*/
|
|
8809
|
+
"hideIcon"?: boolean;
|
|
8810
|
+
/**
|
|
8811
|
+
* Fires when an alternative method is pressed (`confirm-identity`): `{ id }`.
|
|
8812
|
+
*/
|
|
8813
|
+
"onBsAlternative"?: (event: BsSessionTimeoutCustomEvent<{ id: string }>) => void;
|
|
8814
|
+
/**
|
|
8815
|
+
* Fires when Cancel is pressed (`confirm-identity`).
|
|
8816
|
+
*/
|
|
8817
|
+
"onBsCancel"?: (event: BsSessionTimeoutCustomEvent<void>) => void;
|
|
8818
|
+
/**
|
|
8819
|
+
* Fires once when `countdown` reaches zero.
|
|
8820
|
+
*/
|
|
8821
|
+
"onBsExpire"?: (event: BsSessionTimeoutCustomEvent<void>) => void;
|
|
8822
|
+
/**
|
|
8823
|
+
* Fires when the primary button is pressed. For `confirm-identity` the detail is `{ password }`; otherwise it is empty.
|
|
8824
|
+
*/
|
|
8825
|
+
"onBsPrimary"?: (event: BsSessionTimeoutCustomEvent<{ password?: string } | void>) => void;
|
|
8826
|
+
/**
|
|
8827
|
+
* Fires when the secondary button is pressed.
|
|
8828
|
+
*/
|
|
8829
|
+
"onBsSecondary"?: (event: BsSessionTimeoutCustomEvent<void>) => void;
|
|
8830
|
+
/**
|
|
8831
|
+
* Error shown under the password field, e.g. after a wrong password.
|
|
8832
|
+
*/
|
|
8833
|
+
"passwordError"?: string;
|
|
8834
|
+
/**
|
|
8835
|
+
* Label of the password field.
|
|
8836
|
+
* @default 'Password'
|
|
8837
|
+
*/
|
|
8838
|
+
"passwordLabel"?: string;
|
|
8839
|
+
/**
|
|
8840
|
+
* Label of the primary button. Defaults per `type` ("Stay signed in", "Sign in again", "Confirm").
|
|
8841
|
+
*/
|
|
8842
|
+
"primaryLabel"?: string;
|
|
8843
|
+
/**
|
|
8844
|
+
* Note under the countdown, e.g. "Your draft of INV-2041 is saved automatically." Hidden when empty.
|
|
8845
|
+
*/
|
|
8846
|
+
"savedMessage"?: string;
|
|
8847
|
+
/**
|
|
8848
|
+
* Label of the secondary button. Defaults per `type` ("Sign out now", "Use a different account"); none for `confirm-identity`. Set to an empty string to hide it.
|
|
8849
|
+
*/
|
|
8850
|
+
"secondaryLabel"?: string;
|
|
8851
|
+
/**
|
|
8852
|
+
* Seconds left before the session ends (`warning`). Mutable: with `countdown` the component decrements it itself; otherwise drive it from your own timer.
|
|
8853
|
+
* @default 0
|
|
8854
|
+
*/
|
|
8855
|
+
"secondsLeft"?: number;
|
|
8856
|
+
/**
|
|
8857
|
+
* Text next to the time under a minute.
|
|
8858
|
+
* @default 'seconds left'
|
|
8859
|
+
*/
|
|
8860
|
+
"secondsLeftLabel"?: string;
|
|
8861
|
+
/**
|
|
8862
|
+
* Text next to the time while a minute or more is left.
|
|
8863
|
+
* @default 'minutes left'
|
|
8864
|
+
*/
|
|
8865
|
+
"timeLeftLabel"?: string;
|
|
8866
|
+
/**
|
|
8867
|
+
* Length of the warning window in seconds, for the bar: it shows `secondsLeft / totalSeconds`. Defaults to the `secondsLeft` it first had.
|
|
8868
|
+
* @default 0
|
|
8869
|
+
*/
|
|
8870
|
+
"totalSeconds"?: number;
|
|
8871
|
+
/**
|
|
8872
|
+
* Which moment: `warning`, `signed-out` or `confirm-identity`.
|
|
8873
|
+
* @default 'warning'
|
|
8874
|
+
*/
|
|
8875
|
+
"type"?: BsSessionTimeoutType;
|
|
8876
|
+
}
|
|
6909
8877
|
/**
|
|
6910
8878
|
* A slider for picking a single numeric value (`type="default"`), a value snapped to evenly
|
|
6911
8879
|
* spaced ticks (`type="segmented"`), or a min/max pair (`type="range"`) from within a bounded
|
|
@@ -7021,6 +8989,15 @@ declare namespace LocalJSX {
|
|
|
7021
8989
|
* Label for the optional action button (e.g. "Undo", "Retry"). Omit this prop entirely to render no action button at all -- its presence, not a boolean flag, is what shows it.
|
|
7022
8990
|
*/
|
|
7023
8991
|
"actionLabel"?: string;
|
|
8992
|
+
/**
|
|
8993
|
+
* Variant of the action button. Defaults to the one that matches `variant` (outlined for `default`). Use `subtle` for a plain text action; colour it with `--bs-button-subtle-color` on `::part(action)`.
|
|
8994
|
+
*/
|
|
8995
|
+
"actionVariant"?: BsButtonVariant1;
|
|
8996
|
+
/**
|
|
8997
|
+
* Hides the close button, for a confirmation that goes away on its own or whose only control is the action. A snackbar with no way to dismiss it must be removed by the consumer.
|
|
8998
|
+
* @default false
|
|
8999
|
+
*/
|
|
9000
|
+
"hideClose"?: boolean;
|
|
7024
9001
|
/**
|
|
7025
9002
|
* Replaces the checkmark icon with a spinning loading indicator, for a message describing in-progress work (e.g. "Uploading files...") rather than a completed result.
|
|
7026
9003
|
* @default false
|
|
@@ -7332,6 +9309,7 @@ declare namespace LocalJSX {
|
|
|
7332
9309
|
* `value` is always 24-hour `HH:mm` (e.g. `"14:30"`), regardless of the displayed `format`.
|
|
7333
9310
|
* The picker renders inline at a fixed width; to show it as a popover, put it in your own overlay
|
|
7334
9311
|
* and close that overlay from `bsChange`/`bsCancel`.
|
|
9312
|
+
* **Built from:** `bs-card` (the surface), `bs-switch` (the 24h toggle), `bs-input` (the AM/PM dropdown), `bs-button` (Cancel/Confirm).
|
|
7335
9313
|
* ## When to use
|
|
7336
9314
|
* - Picking a time of day where the user steps through hours and minutes.
|
|
7337
9315
|
* ## When not to use
|
|
@@ -7465,6 +9443,230 @@ declare namespace LocalJSX {
|
|
|
7465
9443
|
*/
|
|
7466
9444
|
"placement"?: 'top';
|
|
7467
9445
|
}
|
|
9446
|
+
/**
|
|
9447
|
+
* A product's "What's new" surface, in three forms matching the Figma component:
|
|
9448
|
+
* - `feed` -- a docked panel: heading, "Mark all as read", filter tabs, the list of updates (each a
|
|
9449
|
+
* `bs-whats-new-entry`) and a link to the full release notes.
|
|
9450
|
+
* - `announcement` -- one big update, with a hero image, a tag, a heading, a few bullet points, "1 of 3"
|
|
9451
|
+
* and Remind me later / Next.
|
|
9452
|
+
* - `teaser` -- a small card pointing at the feed: tag, date, heading, a line of text and "Open What's new".
|
|
9453
|
+
* The component only shows what you give it and reports what the user pressed. It doesn't fetch updates,
|
|
9454
|
+
* track which the user has seen, or decide when to appear: your app owns `entries` (with their `unread`
|
|
9455
|
+
* flags) and reacts to the events.
|
|
9456
|
+
* **Built from:** `bs-card` (the surface), `bs-whats-new-entry` (each update), `bs-tabs` (the filters),
|
|
9457
|
+
* `bs-chip-informative` (the tags), `bs-button`, `bs-icon-button`.
|
|
9458
|
+
* ## When to use
|
|
9459
|
+
* - Telling users about changes to the product, in a place they can come back to.
|
|
9460
|
+
* ## When not to use
|
|
9461
|
+
* - Messages about the user's own data or an action they just took -- use `bs-snackbar`, `bs-toast`.
|
|
9462
|
+
* - A guided walk through the interface -- use `bs-product-tour`.
|
|
9463
|
+
*/
|
|
9464
|
+
interface BsWhatsNew {
|
|
9465
|
+
/**
|
|
9466
|
+
* Label of the link (`teaser`).
|
|
9467
|
+
* @default 'Open What’s new'
|
|
9468
|
+
*/
|
|
9469
|
+
"actionLabel"?: string;
|
|
9470
|
+
/**
|
|
9471
|
+
* Shows a close button.
|
|
9472
|
+
* @default false
|
|
9473
|
+
*/
|
|
9474
|
+
"closable"?: boolean;
|
|
9475
|
+
/**
|
|
9476
|
+
* Accessible name of the close button.
|
|
9477
|
+
* @default 'Close'
|
|
9478
|
+
*/
|
|
9479
|
+
"closeLabel"?: string;
|
|
9480
|
+
/**
|
|
9481
|
+
* The date as text (`teaser`).
|
|
9482
|
+
*/
|
|
9483
|
+
"date"?: string;
|
|
9484
|
+
/**
|
|
9485
|
+
* The line under the heading (`teaser`).
|
|
9486
|
+
*/
|
|
9487
|
+
"description"?: string;
|
|
9488
|
+
/**
|
|
9489
|
+
* Text shown when the selected filter has no entries.
|
|
9490
|
+
* @default 'Nothing new here yet.'
|
|
9491
|
+
*/
|
|
9492
|
+
"emptyLabel"?: string;
|
|
9493
|
+
/**
|
|
9494
|
+
* The updates in the feed: `[{ id, category?, tag?, tagColor?, date?, unread?, heading, description?, actionLabel?, image? }]`. Must be set as a JS property, not an HTML attribute -- see CONVENTIONS.md's non-string props rule.
|
|
9495
|
+
* @default []
|
|
9496
|
+
*/
|
|
9497
|
+
"entries"?: BsWhatsNewItem[];
|
|
9498
|
+
/**
|
|
9499
|
+
* The selected filter's `value`. Mutable: choosing a tab updates it.
|
|
9500
|
+
* @default 'all'
|
|
9501
|
+
*/
|
|
9502
|
+
"filter"?: string;
|
|
9503
|
+
/**
|
|
9504
|
+
* The filter tabs: `[{ value, label }]`. `value: "all"` shows every entry; any other value shows the entries whose `category` matches. Defaults to All, New Features, Improvements and Fixes (categories `features`, `improvements`, `fixes`). Set `[]` for no tabs.
|
|
9505
|
+
* @default [ { value: 'all', label: 'All' }, { value: 'features', label: 'New Features' }, { value: 'improvements', label: 'Improvements' }, { value: 'fixes', label: 'Fixes' }, ]
|
|
9506
|
+
*/
|
|
9507
|
+
"filters"?: BsWhatsNewFilter[];
|
|
9508
|
+
/**
|
|
9509
|
+
* Heading. Defaults to "What's new" for `feed`; set it for the other forms.
|
|
9510
|
+
*/
|
|
9511
|
+
"heading"?: string;
|
|
9512
|
+
/**
|
|
9513
|
+
* HTML heading level, 1-6.
|
|
9514
|
+
* @default 2
|
|
9515
|
+
*/
|
|
9516
|
+
"headingLevel"?: number;
|
|
9517
|
+
/**
|
|
9518
|
+
* URL of the hero image (`announcement`). Or slot your own into `hero`.
|
|
9519
|
+
*/
|
|
9520
|
+
"image"?: string;
|
|
9521
|
+
/**
|
|
9522
|
+
* Label of the "Mark all as read" button, shown while any entry is `unread`.
|
|
9523
|
+
* @default 'Mark all as read'
|
|
9524
|
+
*/
|
|
9525
|
+
"markAllReadLabel"?: string;
|
|
9526
|
+
/**
|
|
9527
|
+
* Fires when the close button is pressed.
|
|
9528
|
+
*/
|
|
9529
|
+
"onBsClose"?: (event: BsWhatsNewCustomEvent<void>) => void;
|
|
9530
|
+
/**
|
|
9531
|
+
* Fires when an entry's action link is pressed (`feed`): `{ id }`.
|
|
9532
|
+
*/
|
|
9533
|
+
"onBsEntryAction"?: (event: BsWhatsNewCustomEvent<{ id: string }>) => void;
|
|
9534
|
+
/**
|
|
9535
|
+
* Fires when the user picks a filter tab (`feed`): `{ value }`.
|
|
9536
|
+
*/
|
|
9537
|
+
"onBsFilterChange"?: (event: BsWhatsNewCustomEvent<{ value: string }>) => void;
|
|
9538
|
+
/**
|
|
9539
|
+
* Fires when "Mark all as read" is pressed (`feed`). Update the entries' `unread` yourself.
|
|
9540
|
+
*/
|
|
9541
|
+
"onBsMarkAllRead"?: (event: BsWhatsNewCustomEvent<void>) => void;
|
|
9542
|
+
/**
|
|
9543
|
+
* Fires when the teaser's link is pressed (`teaser`) -- open the feed.
|
|
9544
|
+
*/
|
|
9545
|
+
"onBsOpen"?: (event: BsWhatsNewCustomEvent<void>) => void;
|
|
9546
|
+
/**
|
|
9547
|
+
* Fires when the primary button (`announcement`) is pressed.
|
|
9548
|
+
*/
|
|
9549
|
+
"onBsPrimary"?: (event: BsWhatsNewCustomEvent<void>) => void;
|
|
9550
|
+
/**
|
|
9551
|
+
* Fires when the secondary button (`announcement`) is pressed.
|
|
9552
|
+
*/
|
|
9553
|
+
"onBsSecondary"?: (event: BsWhatsNewCustomEvent<void>) => void;
|
|
9554
|
+
/**
|
|
9555
|
+
* The bullet points (`announcement`). Must be set as a JS property -- see CONVENTIONS.md.
|
|
9556
|
+
* @default []
|
|
9557
|
+
*/
|
|
9558
|
+
"points"?: string[];
|
|
9559
|
+
/**
|
|
9560
|
+
* Label of the primary button (`announcement`). Empty hides it.
|
|
9561
|
+
* @default 'Next'
|
|
9562
|
+
*/
|
|
9563
|
+
"primaryLabel"?: string;
|
|
9564
|
+
/**
|
|
9565
|
+
* Text of the release notes link.
|
|
9566
|
+
* @default 'See all release notes'
|
|
9567
|
+
*/
|
|
9568
|
+
"releaseNotesLabel"?: string;
|
|
9569
|
+
/**
|
|
9570
|
+
* URL of the full release notes. The link is only shown when this is set.
|
|
9571
|
+
*/
|
|
9572
|
+
"releaseNotesUrl"?: string;
|
|
9573
|
+
/**
|
|
9574
|
+
* Label of the secondary button (`announcement`). Empty hides it.
|
|
9575
|
+
* @default 'Remind me later'
|
|
9576
|
+
*/
|
|
9577
|
+
"secondaryLabel"?: string;
|
|
9578
|
+
/**
|
|
9579
|
+
* Current step, 1-based (`announcement`). Used with `total`.
|
|
9580
|
+
* @default 1
|
|
9581
|
+
*/
|
|
9582
|
+
"step"?: number;
|
|
9583
|
+
/**
|
|
9584
|
+
* Template of the step label; `{step}` and `{total}` are replaced.
|
|
9585
|
+
* @default '{step} of {total}'
|
|
9586
|
+
*/
|
|
9587
|
+
"stepLabel"?: string;
|
|
9588
|
+
/**
|
|
9589
|
+
* Tag text (`announcement`, `teaser`), e.g. "New feature".
|
|
9590
|
+
*/
|
|
9591
|
+
"tag"?: string;
|
|
9592
|
+
/**
|
|
9593
|
+
* Colour of the tag.
|
|
9594
|
+
* @default 'info'
|
|
9595
|
+
*/
|
|
9596
|
+
"tagColor"?: BsWhatsNewEntryTagColor;
|
|
9597
|
+
/**
|
|
9598
|
+
* Number of announcements in the sequence (`announcement`). The step label is hidden when 0.
|
|
9599
|
+
* @default 0
|
|
9600
|
+
*/
|
|
9601
|
+
"total"?: number;
|
|
9602
|
+
/**
|
|
9603
|
+
* Which form: `feed`, `announcement` or `teaser`.
|
|
9604
|
+
* @default 'feed'
|
|
9605
|
+
*/
|
|
9606
|
+
"type"?: BsWhatsNewType;
|
|
9607
|
+
}
|
|
9608
|
+
/**
|
|
9609
|
+
* One update in a "What's new" list: a tag ("New feature", "Improvement", "Fix"), a date, an unread dot,
|
|
9610
|
+
* an optional image, a title, a short description and an optional action link ("Try it"). Matches the Figma
|
|
9611
|
+
* "What's new / Entry" component. It is a plain block of content -- no card -- so it can sit in a feed
|
|
9612
|
+
* (`bs-whats-new`), a list, or a page of release notes.
|
|
9613
|
+
* **Built from:** `bs-chip-informative` (the tag) and `bs-button` (the action).
|
|
9614
|
+
* ## When to use
|
|
9615
|
+
* - Announcing a change to the product, with enough detail to know whether it matters.
|
|
9616
|
+
* ## When not to use
|
|
9617
|
+
* - A message about the user's own data or an action they just took -- use `bs-snackbar` or `bs-toast`.
|
|
9618
|
+
*/
|
|
9619
|
+
interface BsWhatsNewEntry {
|
|
9620
|
+
/**
|
|
9621
|
+
* Label of the action link (e.g. "Try it"). No action when empty.
|
|
9622
|
+
*/
|
|
9623
|
+
"actionLabel"?: string;
|
|
9624
|
+
/**
|
|
9625
|
+
* The date as text, already formatted for the reader (e.g. "24.09.2026").
|
|
9626
|
+
*/
|
|
9627
|
+
"date"?: string;
|
|
9628
|
+
/**
|
|
9629
|
+
* Short description under the title.
|
|
9630
|
+
*/
|
|
9631
|
+
"description"?: string;
|
|
9632
|
+
/**
|
|
9633
|
+
* Draws a rule under the entry, to separate it from the next one.
|
|
9634
|
+
* @default false
|
|
9635
|
+
*/
|
|
9636
|
+
"divider"?: boolean;
|
|
9637
|
+
/**
|
|
9638
|
+
* Title.
|
|
9639
|
+
*/
|
|
9640
|
+
"heading"?: string;
|
|
9641
|
+
/**
|
|
9642
|
+
* HTML heading level for the title, 1-6.
|
|
9643
|
+
* @default 3
|
|
9644
|
+
*/
|
|
9645
|
+
"headingLevel"?: number;
|
|
9646
|
+
/**
|
|
9647
|
+
* Fires when the action link is pressed.
|
|
9648
|
+
*/
|
|
9649
|
+
"onBsAction"?: (event: BsWhatsNewEntryCustomEvent<void>) => void;
|
|
9650
|
+
/**
|
|
9651
|
+
* The tag text, e.g. "New feature". No tag when empty.
|
|
9652
|
+
*/
|
|
9653
|
+
"tag"?: string;
|
|
9654
|
+
/**
|
|
9655
|
+
* Colour of the tag: `info` (default), `success`, `warning`, `error` or `neutral`.
|
|
9656
|
+
* @default 'info'
|
|
9657
|
+
*/
|
|
9658
|
+
"tagColor"?: BsWhatsNewEntryTagColor1;
|
|
9659
|
+
/**
|
|
9660
|
+
* Shows a dot after the date for an update the user hasn't seen.
|
|
9661
|
+
* @default false
|
|
9662
|
+
*/
|
|
9663
|
+
"unread"?: boolean;
|
|
9664
|
+
/**
|
|
9665
|
+
* Visually hidden text for the unread dot.
|
|
9666
|
+
* @default 'Unread'
|
|
9667
|
+
*/
|
|
9668
|
+
"unreadLabel"?: string;
|
|
9669
|
+
}
|
|
7468
9670
|
|
|
7469
9671
|
interface BsAccordionAttributes {
|
|
7470
9672
|
"expanded": boolean;
|
|
@@ -7610,6 +9812,22 @@ declare namespace LocalJSX {
|
|
|
7610
9812
|
"actionLabel": string;
|
|
7611
9813
|
"allowClose": boolean;
|
|
7612
9814
|
}
|
|
9815
|
+
interface BsCookieConsentAttributes {
|
|
9816
|
+
"type": BsCookieConsentType;
|
|
9817
|
+
"heading": string;
|
|
9818
|
+
"headingLevel": number;
|
|
9819
|
+
"description": string;
|
|
9820
|
+
"policyUrl": string;
|
|
9821
|
+
"policyLabel": string;
|
|
9822
|
+
"customiseLabel": string;
|
|
9823
|
+
"rejectLabel": string;
|
|
9824
|
+
"acceptLabel": string;
|
|
9825
|
+
"saveLabel": string;
|
|
9826
|
+
"changeLabel": string;
|
|
9827
|
+
"alwaysOnLabel": string;
|
|
9828
|
+
"seeCookiesLabel": string;
|
|
9829
|
+
"closeLabel": string;
|
|
9830
|
+
}
|
|
7613
9831
|
interface BsDataTableAttributes {
|
|
7614
9832
|
"sortColumn": string;
|
|
7615
9833
|
"sortDirection": 'asc' | 'desc';
|
|
@@ -7638,6 +9856,16 @@ declare namespace LocalJSX {
|
|
|
7638
9856
|
"size": BsDialogSize;
|
|
7639
9857
|
"centered": boolean;
|
|
7640
9858
|
}
|
|
9859
|
+
interface BsErrorPageAttributes {
|
|
9860
|
+
"type": BsErrorPageType;
|
|
9861
|
+
"code": string;
|
|
9862
|
+
"heading": string;
|
|
9863
|
+
"headingLevel": number;
|
|
9864
|
+
"description": string;
|
|
9865
|
+
"primaryLabel": string;
|
|
9866
|
+
"secondaryLabel": string;
|
|
9867
|
+
"reference": string;
|
|
9868
|
+
}
|
|
7641
9869
|
interface BsFileUploadAttributes {
|
|
7642
9870
|
"direction": BsFileUploadDirection;
|
|
7643
9871
|
"heading": string;
|
|
@@ -7666,6 +9894,11 @@ declare namespace LocalJSX {
|
|
|
7666
9894
|
"type": 'button' | 'submit' | 'reset';
|
|
7667
9895
|
"ariaLabel": string | null;
|
|
7668
9896
|
}
|
|
9897
|
+
interface BsIconTileAttributes {
|
|
9898
|
+
"size": BsIconTileSize;
|
|
9899
|
+
"intent": BsIconTileIntent;
|
|
9900
|
+
"label": string;
|
|
9901
|
+
}
|
|
7669
9902
|
interface BsInlineTabAttributes {
|
|
7670
9903
|
"selected": boolean;
|
|
7671
9904
|
"disabled": boolean;
|
|
@@ -7736,6 +9969,25 @@ declare namespace LocalJSX {
|
|
|
7736
9969
|
"skipToContentLabel": string;
|
|
7737
9970
|
"logoBackground": 'auto' | 'light' | 'dark';
|
|
7738
9971
|
}
|
|
9972
|
+
interface BsOnboardingChecklistAttributes {
|
|
9973
|
+
"type": BsOnboardingChecklistType;
|
|
9974
|
+
"launcherLayout": BsOnboardingLauncherLayout;
|
|
9975
|
+
"heading": string;
|
|
9976
|
+
"description": string;
|
|
9977
|
+
"headingLevel": number;
|
|
9978
|
+
"progressText": string;
|
|
9979
|
+
"closable": boolean;
|
|
9980
|
+
"progressLabel": string;
|
|
9981
|
+
"skipLabel": string;
|
|
9982
|
+
"startLabel": string;
|
|
9983
|
+
"seeAllLabel": string;
|
|
9984
|
+
"afterLabel": string;
|
|
9985
|
+
"doneLabel": string;
|
|
9986
|
+
"hideLabel": string;
|
|
9987
|
+
"closeLabel": string;
|
|
9988
|
+
"statusDoneLabel": string;
|
|
9989
|
+
"statusTodoLabel": string;
|
|
9990
|
+
}
|
|
7739
9991
|
interface BsPaginationAttributes {
|
|
7740
9992
|
"totalPages": number;
|
|
7741
9993
|
"currentPage": number;
|
|
@@ -7743,6 +9995,19 @@ declare namespace LocalJSX {
|
|
|
7743
9995
|
"previousLabel": string;
|
|
7744
9996
|
"nextLabel": string;
|
|
7745
9997
|
}
|
|
9998
|
+
interface BsProductTourAttributes {
|
|
9999
|
+
"type": BsProductTourType;
|
|
10000
|
+
"direction": BsProductTourDirection;
|
|
10001
|
+
"heading": string;
|
|
10002
|
+
"description": string;
|
|
10003
|
+
"step": number;
|
|
10004
|
+
"total": number;
|
|
10005
|
+
"progressLabel": string;
|
|
10006
|
+
"primaryLabel": string;
|
|
10007
|
+
"secondaryLabel": string;
|
|
10008
|
+
"closable": boolean;
|
|
10009
|
+
"closeLabel": string;
|
|
10010
|
+
}
|
|
7746
10011
|
interface BsProgressAttributes {
|
|
7747
10012
|
"type": BsProgressType;
|
|
7748
10013
|
"size": BsProgressSize;
|
|
@@ -7758,12 +10023,59 @@ declare namespace LocalJSX {
|
|
|
7758
10023
|
"showLabel": boolean;
|
|
7759
10024
|
"ariaLabel": string | null;
|
|
7760
10025
|
}
|
|
10026
|
+
interface BsQrCodeAttributes {
|
|
10027
|
+
"type": BsQrCodeType;
|
|
10028
|
+
"size": BsQrCodeSize;
|
|
10029
|
+
"state": BsQrCodeState;
|
|
10030
|
+
"heading": string;
|
|
10031
|
+
"description": string;
|
|
10032
|
+
"url": string;
|
|
10033
|
+
"amount": string;
|
|
10034
|
+
"amountLabel": string;
|
|
10035
|
+
"expiry": string;
|
|
10036
|
+
"codeLabel": string;
|
|
10037
|
+
"closable": boolean;
|
|
10038
|
+
"hideActions": boolean;
|
|
10039
|
+
"hideDownload": boolean;
|
|
10040
|
+
"hideCopy": boolean;
|
|
10041
|
+
"downloadLabel": string;
|
|
10042
|
+
"copyLabel": string;
|
|
10043
|
+
"retryLabel": string;
|
|
10044
|
+
"refreshLabel": string;
|
|
10045
|
+
"loadingLabel": string;
|
|
10046
|
+
"errorLabel": string;
|
|
10047
|
+
"expiredLabel": string;
|
|
10048
|
+
"scannedLabel": string;
|
|
10049
|
+
"closeLabel": string;
|
|
10050
|
+
}
|
|
7761
10051
|
interface BsRadioAttributes {
|
|
7762
10052
|
"name": string;
|
|
7763
10053
|
"value": string;
|
|
7764
10054
|
"checked": boolean;
|
|
7765
10055
|
"disabled": boolean;
|
|
7766
10056
|
}
|
|
10057
|
+
interface BsSessionTimeoutAttributes {
|
|
10058
|
+
"type": BsSessionTimeoutType;
|
|
10059
|
+
"heading": string;
|
|
10060
|
+
"headingLevel": number;
|
|
10061
|
+
"description": string;
|
|
10062
|
+
"hideIcon": boolean;
|
|
10063
|
+
"primaryLabel": string;
|
|
10064
|
+
"secondaryLabel": string;
|
|
10065
|
+
"secondsLeft": number;
|
|
10066
|
+
"totalSeconds": number;
|
|
10067
|
+
"countdown": boolean;
|
|
10068
|
+
"timeLeftLabel": string;
|
|
10069
|
+
"secondsLeftLabel": string;
|
|
10070
|
+
"savedMessage": string;
|
|
10071
|
+
"accountName": string;
|
|
10072
|
+
"accountEmail": string;
|
|
10073
|
+
"accountInitials": string;
|
|
10074
|
+
"passwordLabel": string;
|
|
10075
|
+
"passwordError": string;
|
|
10076
|
+
"dividerLabel": string;
|
|
10077
|
+
"cancelLabel": string;
|
|
10078
|
+
}
|
|
7767
10079
|
interface BsSliderAttributes {
|
|
7768
10080
|
"type": BsSliderType;
|
|
7769
10081
|
"name": string;
|
|
@@ -7783,6 +10095,8 @@ declare namespace LocalJSX {
|
|
|
7783
10095
|
"variant": BsSnackbarVariant;
|
|
7784
10096
|
"loading": boolean;
|
|
7785
10097
|
"actionLabel": string;
|
|
10098
|
+
"actionVariant": BsButtonVariant;
|
|
10099
|
+
"hideClose": boolean;
|
|
7786
10100
|
}
|
|
7787
10101
|
interface BsSourceLinkAttributes {
|
|
7788
10102
|
"fileName": string;
|
|
@@ -7845,6 +10159,41 @@ declare namespace LocalJSX {
|
|
|
7845
10159
|
interface BsTooltipAttributes {
|
|
7846
10160
|
"placement": 'top';
|
|
7847
10161
|
}
|
|
10162
|
+
interface BsWhatsNewAttributes {
|
|
10163
|
+
"type": BsWhatsNewType;
|
|
10164
|
+
"heading": string;
|
|
10165
|
+
"headingLevel": number;
|
|
10166
|
+
"closable": boolean;
|
|
10167
|
+
"closeLabel": string;
|
|
10168
|
+
"filter": string;
|
|
10169
|
+
"markAllReadLabel": string;
|
|
10170
|
+
"releaseNotesLabel": string;
|
|
10171
|
+
"releaseNotesUrl": string;
|
|
10172
|
+
"emptyLabel": string;
|
|
10173
|
+
"tag": string;
|
|
10174
|
+
"tagColor": BsWhatsNewEntryTagColor;
|
|
10175
|
+
"image": string;
|
|
10176
|
+
"step": number;
|
|
10177
|
+
"total": number;
|
|
10178
|
+
"stepLabel": string;
|
|
10179
|
+
"secondaryLabel": string;
|
|
10180
|
+
"primaryLabel": string;
|
|
10181
|
+
"date": string;
|
|
10182
|
+
"description": string;
|
|
10183
|
+
"actionLabel": string;
|
|
10184
|
+
}
|
|
10185
|
+
interface BsWhatsNewEntryAttributes {
|
|
10186
|
+
"tag": string;
|
|
10187
|
+
"tagColor": BsWhatsNewEntryTagColor;
|
|
10188
|
+
"date": string;
|
|
10189
|
+
"unread": boolean;
|
|
10190
|
+
"heading": string;
|
|
10191
|
+
"headingLevel": number;
|
|
10192
|
+
"description": string;
|
|
10193
|
+
"actionLabel": string;
|
|
10194
|
+
"divider": boolean;
|
|
10195
|
+
"unreadLabel": string;
|
|
10196
|
+
}
|
|
7848
10197
|
|
|
7849
10198
|
interface IntrinsicElements {
|
|
7850
10199
|
"bs-accordion": Omit<BsAccordion, keyof BsAccordionAttributes> & { [K in keyof BsAccordion & keyof BsAccordionAttributes]?: BsAccordion[K] } & { [K in keyof BsAccordion & keyof BsAccordionAttributes as `attr:${K}`]?: BsAccordionAttributes[K] } & { [K in keyof BsAccordion & keyof BsAccordionAttributes as `prop:${K}`]?: BsAccordion[K] };
|
|
@@ -7874,12 +10223,15 @@ declare namespace LocalJSX {
|
|
|
7874
10223
|
"bs-chip-input": Omit<BsChipInput, keyof BsChipInputAttributes> & { [K in keyof BsChipInput & keyof BsChipInputAttributes]?: BsChipInput[K] } & { [K in keyof BsChipInput & keyof BsChipInputAttributes as `attr:${K}`]?: BsChipInputAttributes[K] } & { [K in keyof BsChipInput & keyof BsChipInputAttributes as `prop:${K}`]?: BsChipInput[K] };
|
|
7875
10224
|
"bs-composer": Omit<BsComposer, keyof BsComposerAttributes> & { [K in keyof BsComposer & keyof BsComposerAttributes]?: BsComposer[K] } & { [K in keyof BsComposer & keyof BsComposerAttributes as `attr:${K}`]?: BsComposerAttributes[K] } & { [K in keyof BsComposer & keyof BsComposerAttributes as `prop:${K}`]?: BsComposer[K] };
|
|
7876
10225
|
"bs-composer-status-banner": Omit<BsComposerStatusBanner, keyof BsComposerStatusBannerAttributes> & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes]?: BsComposerStatusBanner[K] } & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes as `attr:${K}`]?: BsComposerStatusBannerAttributes[K] } & { [K in keyof BsComposerStatusBanner & keyof BsComposerStatusBannerAttributes as `prop:${K}`]?: BsComposerStatusBanner[K] };
|
|
10226
|
+
"bs-cookie-consent": Omit<BsCookieConsent, keyof BsCookieConsentAttributes> & { [K in keyof BsCookieConsent & keyof BsCookieConsentAttributes]?: BsCookieConsent[K] } & { [K in keyof BsCookieConsent & keyof BsCookieConsentAttributes as `attr:${K}`]?: BsCookieConsentAttributes[K] } & { [K in keyof BsCookieConsent & keyof BsCookieConsentAttributes as `prop:${K}`]?: BsCookieConsent[K] };
|
|
7877
10227
|
"bs-data-table": Omit<BsDataTable, keyof BsDataTableAttributes> & { [K in keyof BsDataTable & keyof BsDataTableAttributes]?: BsDataTable[K] } & { [K in keyof BsDataTable & keyof BsDataTableAttributes as `attr:${K}`]?: BsDataTableAttributes[K] } & { [K in keyof BsDataTable & keyof BsDataTableAttributes as `prop:${K}`]?: BsDataTable[K] };
|
|
7878
10228
|
"bs-datepicker": Omit<BsDatepicker, keyof BsDatepickerAttributes> & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes]?: BsDatepicker[K] } & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes as `attr:${K}`]?: BsDatepickerAttributes[K] } & { [K in keyof BsDatepicker & keyof BsDatepickerAttributes as `prop:${K}`]?: BsDatepicker[K] };
|
|
7879
10229
|
"bs-dialog": Omit<BsDialog, keyof BsDialogAttributes> & { [K in keyof BsDialog & keyof BsDialogAttributes]?: BsDialog[K] } & { [K in keyof BsDialog & keyof BsDialogAttributes as `attr:${K}`]?: BsDialogAttributes[K] } & { [K in keyof BsDialog & keyof BsDialogAttributes as `prop:${K}`]?: BsDialog[K] };
|
|
10230
|
+
"bs-error-page": Omit<BsErrorPage, keyof BsErrorPageAttributes> & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes]?: BsErrorPage[K] } & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes as `attr:${K}`]?: BsErrorPageAttributes[K] } & { [K in keyof BsErrorPage & keyof BsErrorPageAttributes as `prop:${K}`]?: BsErrorPage[K] };
|
|
7880
10231
|
"bs-file-upload": Omit<BsFileUpload, keyof BsFileUploadAttributes> & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes]?: BsFileUpload[K] } & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes as `attr:${K}`]?: BsFileUploadAttributes[K] } & { [K in keyof BsFileUpload & keyof BsFileUploadAttributes as `prop:${K}`]?: BsFileUpload[K] };
|
|
7881
10232
|
"bs-file-upload-item": Omit<BsFileUploadItem, keyof BsFileUploadItemAttributes> & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes]?: BsFileUploadItem[K] } & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes as `attr:${K}`]?: BsFileUploadItemAttributes[K] } & { [K in keyof BsFileUploadItem & keyof BsFileUploadItemAttributes as `prop:${K}`]?: BsFileUploadItem[K] };
|
|
7882
10233
|
"bs-icon-button": Omit<BsIconButton, keyof BsIconButtonAttributes> & { [K in keyof BsIconButton & keyof BsIconButtonAttributes]?: BsIconButton[K] } & { [K in keyof BsIconButton & keyof BsIconButtonAttributes as `attr:${K}`]?: BsIconButtonAttributes[K] } & { [K in keyof BsIconButton & keyof BsIconButtonAttributes as `prop:${K}`]?: BsIconButton[K] };
|
|
10234
|
+
"bs-icon-tile": Omit<BsIconTile, keyof BsIconTileAttributes> & { [K in keyof BsIconTile & keyof BsIconTileAttributes]?: BsIconTile[K] } & { [K in keyof BsIconTile & keyof BsIconTileAttributes as `attr:${K}`]?: BsIconTileAttributes[K] } & { [K in keyof BsIconTile & keyof BsIconTileAttributes as `prop:${K}`]?: BsIconTile[K] };
|
|
7883
10235
|
"bs-inline-tab": Omit<BsInlineTab, keyof BsInlineTabAttributes> & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes]?: BsInlineTab[K] } & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes as `attr:${K}`]?: BsInlineTabAttributes[K] } & { [K in keyof BsInlineTab & keyof BsInlineTabAttributes as `prop:${K}`]?: BsInlineTab[K] };
|
|
7884
10236
|
"bs-input": Omit<BsInput, keyof BsInputAttributes> & { [K in keyof BsInput & keyof BsInputAttributes]?: BsInput[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `attr:${K}`]?: BsInputAttributes[K] } & { [K in keyof BsInput & keyof BsInputAttributes as `prop:${K}`]?: BsInput[K] };
|
|
7885
10237
|
"bs-logo": Omit<BsLogo, keyof BsLogoAttributes> & { [K in keyof BsLogo & keyof BsLogoAttributes]?: BsLogo[K] } & { [K in keyof BsLogo & keyof BsLogoAttributes as `attr:${K}`]?: BsLogoAttributes[K] } & { [K in keyof BsLogo & keyof BsLogoAttributes as `prop:${K}`]?: BsLogo[K] };
|
|
@@ -7888,10 +10240,14 @@ declare namespace LocalJSX {
|
|
|
7888
10240
|
"bs-navigation-drawer": Omit<BsNavigationDrawer, keyof BsNavigationDrawerAttributes> & { [K in keyof BsNavigationDrawer & keyof BsNavigationDrawerAttributes]?: BsNavigationDrawer[K] } & { [K in keyof BsNavigationDrawer & keyof BsNavigationDrawerAttributes as `attr:${K}`]?: BsNavigationDrawerAttributes[K] } & { [K in keyof BsNavigationDrawer & keyof BsNavigationDrawerAttributes as `prop:${K}`]?: BsNavigationDrawer[K] };
|
|
7889
10241
|
"bs-navigation-drawer-item": Omit<BsNavigationDrawerItem, keyof BsNavigationDrawerItemAttributes> & { [K in keyof BsNavigationDrawerItem & keyof BsNavigationDrawerItemAttributes]?: BsNavigationDrawerItem[K] } & { [K in keyof BsNavigationDrawerItem & keyof BsNavigationDrawerItemAttributes as `attr:${K}`]?: BsNavigationDrawerItemAttributes[K] } & { [K in keyof BsNavigationDrawerItem & keyof BsNavigationDrawerItemAttributes as `prop:${K}`]?: BsNavigationDrawerItem[K] };
|
|
7890
10242
|
"bs-navigation-header": Omit<BsNavigationHeader, keyof BsNavigationHeaderAttributes> & { [K in keyof BsNavigationHeader & keyof BsNavigationHeaderAttributes]?: BsNavigationHeader[K] } & { [K in keyof BsNavigationHeader & keyof BsNavigationHeaderAttributes as `attr:${K}`]?: BsNavigationHeaderAttributes[K] } & { [K in keyof BsNavigationHeader & keyof BsNavigationHeaderAttributes as `prop:${K}`]?: BsNavigationHeader[K] };
|
|
10243
|
+
"bs-onboarding-checklist": Omit<BsOnboardingChecklist, keyof BsOnboardingChecklistAttributes> & { [K in keyof BsOnboardingChecklist & keyof BsOnboardingChecklistAttributes]?: BsOnboardingChecklist[K] } & { [K in keyof BsOnboardingChecklist & keyof BsOnboardingChecklistAttributes as `attr:${K}`]?: BsOnboardingChecklistAttributes[K] } & { [K in keyof BsOnboardingChecklist & keyof BsOnboardingChecklistAttributes as `prop:${K}`]?: BsOnboardingChecklist[K] };
|
|
7891
10244
|
"bs-pagination": Omit<BsPagination, keyof BsPaginationAttributes> & { [K in keyof BsPagination & keyof BsPaginationAttributes]?: BsPagination[K] } & { [K in keyof BsPagination & keyof BsPaginationAttributes as `attr:${K}`]?: BsPaginationAttributes[K] } & { [K in keyof BsPagination & keyof BsPaginationAttributes as `prop:${K}`]?: BsPagination[K] };
|
|
10245
|
+
"bs-product-tour": Omit<BsProductTour, keyof BsProductTourAttributes> & { [K in keyof BsProductTour & keyof BsProductTourAttributes]?: BsProductTour[K] } & { [K in keyof BsProductTour & keyof BsProductTourAttributes as `attr:${K}`]?: BsProductTourAttributes[K] } & { [K in keyof BsProductTour & keyof BsProductTourAttributes as `prop:${K}`]?: BsProductTour[K] };
|
|
7892
10246
|
"bs-progress": Omit<BsProgress, keyof BsProgressAttributes> & { [K in keyof BsProgress & keyof BsProgressAttributes]?: BsProgress[K] } & { [K in keyof BsProgress & keyof BsProgressAttributes as `attr:${K}`]?: BsProgressAttributes[K] } & { [K in keyof BsProgress & keyof BsProgressAttributes as `prop:${K}`]?: BsProgress[K] };
|
|
7893
10247
|
"bs-progress-linear": Omit<BsProgressLinear, keyof BsProgressLinearAttributes> & { [K in keyof BsProgressLinear & keyof BsProgressLinearAttributes]?: BsProgressLinear[K] } & { [K in keyof BsProgressLinear & keyof BsProgressLinearAttributes as `attr:${K}`]?: BsProgressLinearAttributes[K] } & { [K in keyof BsProgressLinear & keyof BsProgressLinearAttributes as `prop:${K}`]?: BsProgressLinear[K] };
|
|
10248
|
+
"bs-qr-code": Omit<BsQrCode, keyof BsQrCodeAttributes> & { [K in keyof BsQrCode & keyof BsQrCodeAttributes]?: BsQrCode[K] } & { [K in keyof BsQrCode & keyof BsQrCodeAttributes as `attr:${K}`]?: BsQrCodeAttributes[K] } & { [K in keyof BsQrCode & keyof BsQrCodeAttributes as `prop:${K}`]?: BsQrCode[K] };
|
|
7894
10249
|
"bs-radio": Omit<BsRadio, keyof BsRadioAttributes> & { [K in keyof BsRadio & keyof BsRadioAttributes]?: BsRadio[K] } & { [K in keyof BsRadio & keyof BsRadioAttributes as `attr:${K}`]?: BsRadioAttributes[K] } & { [K in keyof BsRadio & keyof BsRadioAttributes as `prop:${K}`]?: BsRadio[K] };
|
|
10250
|
+
"bs-session-timeout": Omit<BsSessionTimeout, keyof BsSessionTimeoutAttributes> & { [K in keyof BsSessionTimeout & keyof BsSessionTimeoutAttributes]?: BsSessionTimeout[K] } & { [K in keyof BsSessionTimeout & keyof BsSessionTimeoutAttributes as `attr:${K}`]?: BsSessionTimeoutAttributes[K] } & { [K in keyof BsSessionTimeout & keyof BsSessionTimeoutAttributes as `prop:${K}`]?: BsSessionTimeout[K] };
|
|
7895
10251
|
"bs-slider": Omit<BsSlider, keyof BsSliderAttributes> & { [K in keyof BsSlider & keyof BsSliderAttributes]?: BsSlider[K] } & { [K in keyof BsSlider & keyof BsSliderAttributes as `attr:${K}`]?: BsSliderAttributes[K] } & { [K in keyof BsSlider & keyof BsSliderAttributes as `prop:${K}`]?: BsSlider[K] };
|
|
7896
10252
|
"bs-snackbar": Omit<BsSnackbar, keyof BsSnackbarAttributes> & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes]?: BsSnackbar[K] } & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes as `attr:${K}`]?: BsSnackbarAttributes[K] } & { [K in keyof BsSnackbar & keyof BsSnackbarAttributes as `prop:${K}`]?: BsSnackbar[K] };
|
|
7897
10253
|
"bs-source-link": Omit<BsSourceLink, keyof BsSourceLinkAttributes> & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes]?: BsSourceLink[K] } & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes as `attr:${K}`]?: BsSourceLinkAttributes[K] } & { [K in keyof BsSourceLink & keyof BsSourceLinkAttributes as `prop:${K}`]?: BsSourceLink[K] };
|
|
@@ -7903,6 +10259,8 @@ declare namespace LocalJSX {
|
|
|
7903
10259
|
"bs-timepicker": Omit<BsTimepicker, keyof BsTimepickerAttributes> & { [K in keyof BsTimepicker & keyof BsTimepickerAttributes]?: BsTimepicker[K] } & { [K in keyof BsTimepicker & keyof BsTimepickerAttributes as `attr:${K}`]?: BsTimepickerAttributes[K] } & { [K in keyof BsTimepicker & keyof BsTimepickerAttributes as `prop:${K}`]?: BsTimepicker[K] };
|
|
7904
10260
|
"bs-toast": Omit<BsToast, keyof BsToastAttributes> & { [K in keyof BsToast & keyof BsToastAttributes]?: BsToast[K] } & { [K in keyof BsToast & keyof BsToastAttributes as `attr:${K}`]?: BsToastAttributes[K] } & { [K in keyof BsToast & keyof BsToastAttributes as `prop:${K}`]?: BsToast[K] };
|
|
7905
10261
|
"bs-tooltip": Omit<BsTooltip, keyof BsTooltipAttributes> & { [K in keyof BsTooltip & keyof BsTooltipAttributes]?: BsTooltip[K] } & { [K in keyof BsTooltip & keyof BsTooltipAttributes as `attr:${K}`]?: BsTooltipAttributes[K] } & { [K in keyof BsTooltip & keyof BsTooltipAttributes as `prop:${K}`]?: BsTooltip[K] };
|
|
10262
|
+
"bs-whats-new": Omit<BsWhatsNew, keyof BsWhatsNewAttributes> & { [K in keyof BsWhatsNew & keyof BsWhatsNewAttributes]?: BsWhatsNew[K] } & { [K in keyof BsWhatsNew & keyof BsWhatsNewAttributes as `attr:${K}`]?: BsWhatsNewAttributes[K] } & { [K in keyof BsWhatsNew & keyof BsWhatsNewAttributes as `prop:${K}`]?: BsWhatsNew[K] };
|
|
10263
|
+
"bs-whats-new-entry": Omit<BsWhatsNewEntry, keyof BsWhatsNewEntryAttributes> & { [K in keyof BsWhatsNewEntry & keyof BsWhatsNewEntryAttributes]?: BsWhatsNewEntry[K] } & { [K in keyof BsWhatsNewEntry & keyof BsWhatsNewEntryAttributes as `attr:${K}`]?: BsWhatsNewEntryAttributes[K] } & { [K in keyof BsWhatsNewEntry & keyof BsWhatsNewEntryAttributes as `prop:${K}`]?: BsWhatsNewEntry[K] };
|
|
7906
10264
|
}
|
|
7907
10265
|
}
|
|
7908
10266
|
export { LocalJSX as JSX };
|
|
@@ -8138,6 +10496,9 @@ declare module "@stencil/core" {
|
|
|
8138
10496
|
* - `error` purely for visual emphasis — it signals a destructive action to the user, so reserve
|
|
8139
10497
|
* it for actions that actually delete/revoke/undo something.
|
|
8140
10498
|
* @prop --bs-button-radius - Corner radius. Aliased to `--bs-border-radius-100` by default.
|
|
10499
|
+
* @prop --bs-button-padding-x-sm - Left/right padding of a label-only button at `size="sm"`. Aliased to `--bs-spacing-300`.
|
|
10500
|
+
* @prop --bs-button-width - Width of the button. `auto` by default (fits its content); set `100%` for a full-width button, e.g. `bs-button { --bs-button-width: 100%; }`.
|
|
10501
|
+
* @prop --bs-button-subtle-color - Label/icon colour, `variant="subtle"`. Aliased to `--bs-color-neutral-default`; set it to `var(--bs-text-action)` for a blue text button.
|
|
8141
10502
|
* @prop --bs-button-height-sm - Height at `size="sm"`. Aliased to `--bs-spacing-500`.
|
|
8142
10503
|
* @prop --bs-button-height-md - Height at `size="md"`. Aliased to `--bs-spacing-600`.
|
|
8143
10504
|
* @prop --bs-button-height-lg - Height at `size="lg"`. Aliased to `--bs-spacing-700`.
|
|
@@ -8524,6 +10885,30 @@ declare module "@stencil/core" {
|
|
|
8524
10885
|
* every `type`). Aliased to `--bs-color-neutral-container-hover`.
|
|
8525
10886
|
*/
|
|
8526
10887
|
"bs-composer-status-banner": LocalJSX.IntrinsicElements["bs-composer-status-banner"] & JSXBase.HTMLAttributes<HTMLBsComposerStatusBannerElement>;
|
|
10888
|
+
/**
|
|
10889
|
+
* A cookie consent prompt in four forms, matching the Figma "Cookie consent" component:
|
|
10890
|
+
* - `banner` -- a wide bar: icon, heading, text, policy link, and Customise / Reject optional / Accept
|
|
10891
|
+
* all. Stacks into a column on narrow containers (its own width, not the viewport's).
|
|
10892
|
+
* - `card` -- the compact version of the same question, in a card.
|
|
10893
|
+
* - `preferences` -- the detailed dialog: one row per cookie category with a switch (strictly
|
|
10894
|
+
* necessary is "Always on"), an expandable list of the cookies in each, and Reject optional /
|
|
10895
|
+
* Accept all / Save choices.
|
|
10896
|
+
* - `saved` -- a dark confirmation bar ("Cookie choices saved") with a Change action.
|
|
10897
|
+
* The component only collects the choice. It doesn't set, read or delete cookies, remember that the
|
|
10898
|
+
* user answered, or decide when to show itself: your app does that from the events, and swaps `type`
|
|
10899
|
+
* (e.g. `banner` -> `preferences` on `bsCustomise`, `preferences` -> `saved` on `bsSave`).
|
|
10900
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
|
|
10901
|
+
* `bs-switch` (the category switches), `bs-chip-informative` (the "Always on" badge), `bs-icon-button`
|
|
10902
|
+
* (the close button), `bs-snackbar` (the saved confirmation).
|
|
10903
|
+
* ## When to use
|
|
10904
|
+
* - Asking for consent to optional cookies or similar tracking, as the law of your market requires.
|
|
10905
|
+
* ## When not to use
|
|
10906
|
+
* - Telling people about necessary cookies only -- that needs no consent prompt.
|
|
10907
|
+
* ## Fair choice
|
|
10908
|
+
* "Reject optional" has the same prominence as "Accept all" (same size, both always visible). Keep it
|
|
10909
|
+
* that way: a prompt that makes refusing harder than accepting isn't valid consent in most places.
|
|
10910
|
+
*/
|
|
10911
|
+
"bs-cookie-consent": LocalJSX.IntrinsicElements["bs-cookie-consent"] & JSXBase.HTMLAttributes<HTMLBsCookieConsentElement>;
|
|
8527
10912
|
/**
|
|
8528
10913
|
* A sortable, optionally row-selectable table for tabular data.
|
|
8529
10914
|
* `columns`, `rows`, and `cellRenderer` are JS-property-only — HTML attributes can only carry
|
|
@@ -8544,6 +10929,7 @@ declare module "@stencil/core" {
|
|
|
8544
10929
|
* ISO timestamps -- so a date can't shift by a day across time zones.
|
|
8545
10930
|
* The calendar renders inline at a fixed width; to show it as a popover, put it inside a
|
|
8546
10931
|
* `bs-menu` or your own overlay.
|
|
10932
|
+
* **Built from:** `bs-card` (the surface), `bs-input` (the month/year dropdown triggers and the range date fields), `bs-menu` and `bs-menu-item` (the month/year lists).
|
|
8547
10933
|
* ## When to use
|
|
8548
10934
|
* - Picking a date where seeing the surrounding days of the week/month helps (a booking, a
|
|
8549
10935
|
* deadline, a report window).
|
|
@@ -8574,6 +10960,21 @@ declare module "@stencil/core" {
|
|
|
8574
10960
|
* button in the header row next to the heading, same as before this addition.
|
|
8575
10961
|
*/
|
|
8576
10962
|
"bs-dialog": LocalJSX.IntrinsicElements["bs-dialog"] & JSXBase.HTMLAttributes<HTMLBsDialogElement>;
|
|
10963
|
+
/**
|
|
10964
|
+
* A full-block page for when the user can't get to what they asked for: page not found (404), a server
|
|
10965
|
+
* error (500), no access (403), planned maintenance, or no internet connection. Matches the Figma
|
|
10966
|
+
* "Error page" component's five states.
|
|
10967
|
+
* Each `type` brings its own icon, tint, code label ("404", "Maintenance", ...), heading, paragraph and
|
|
10968
|
+
* buttons, all overridable by props. The component doesn't navigate or retry anything: it emits
|
|
10969
|
+
* `bsPrimary` / `bsSecondary` and your app decides what "Go to Overview" or "Try again" does.
|
|
10970
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions).
|
|
10971
|
+
* ## When to use
|
|
10972
|
+
* - Replacing the content of a page or panel that can't be shown, with a clear way forward.
|
|
10973
|
+
* ## When not to use
|
|
10974
|
+
* - A problem with one field or one action -- use inline validation or a `bs-snackbar`.
|
|
10975
|
+
* - A blocking question the user must answer -- use `bs-dialog`.
|
|
10976
|
+
*/
|
|
10977
|
+
"bs-error-page": LocalJSX.IntrinsicElements["bs-error-page"] & JSXBase.HTMLAttributes<HTMLBsErrorPageElement>;
|
|
8577
10978
|
/**
|
|
8578
10979
|
* A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
|
|
8579
10980
|
* the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
|
|
@@ -8617,6 +11018,21 @@ declare module "@stencil/core" {
|
|
|
8617
11018
|
* accessible name.
|
|
8618
11019
|
*/
|
|
8619
11020
|
"bs-icon-button": LocalJSX.IntrinsicElements["bs-icon-button"] & JSXBase.HTMLAttributes<HTMLBsIconButtonElement>;
|
|
11021
|
+
/**
|
|
11022
|
+
* A small rounded square holding an icon, tinted by intent -- the visual marker next to a status,
|
|
11023
|
+
* a list item or a feature. Matches the Figma "Icon tile" component (3 sizes x 6 intents).
|
|
11024
|
+
* Each intent shows a default glyph (house, check, warning, cross, grid, info); put your own icon in
|
|
11025
|
+
* the default slot to replace it. A slotted icon is sized to the tile (12/16/24px) and coloured
|
|
11026
|
+
* with the intent's icon colour, as long as it draws with `currentColor`.
|
|
11027
|
+
* The tile is decorative by default (hidden from assistive tech). Don't rely on the colour or glyph
|
|
11028
|
+
* alone to convey status: slot text into `text` (it sits beside the square, in
|
|
11029
|
+
* `--bs-icon-tile-text-color`), or set `label` to give the tile its own accessible name.
|
|
11030
|
+
* ## When to use
|
|
11031
|
+
* - Marking a row, card or message with a status or category icon.
|
|
11032
|
+
* ## When not to use
|
|
11033
|
+
* - As a button -- it isn't interactive. Use `bs-icon-button`.
|
|
11034
|
+
*/
|
|
11035
|
+
"bs-icon-tile": LocalJSX.IntrinsicElements["bs-icon-tile"] & JSXBase.HTMLAttributes<HTMLBsIconTileElement>;
|
|
8620
11036
|
/**
|
|
8621
11037
|
* A pill-shaped tab button -- an optional leading icon plus a text label, rendered as a real
|
|
8622
11038
|
* `<button>` so it participates correctly in tab order and native click/keyboard activation.
|
|
@@ -8811,6 +11227,31 @@ declare module "@stencil/core" {
|
|
|
8811
11227
|
* `right` slot content pushed to the far right.
|
|
8812
11228
|
*/
|
|
8813
11229
|
"bs-navigation-header": LocalJSX.IntrinsicElements["bs-navigation-header"] & JSXBase.HTMLAttributes<HTMLBsNavigationHeaderElement>;
|
|
11230
|
+
/**
|
|
11231
|
+
* A "get set up" checklist, in four forms that matching the Figma "Onboarding checklist" component:
|
|
11232
|
+
* - `panel` -- the full list: heading, progress, every step with a status icon, and the current step
|
|
11233
|
+
* expanded with its description, time estimate, Skip for now and a primary action.
|
|
11234
|
+
* - `dashboard` -- a wide card for the top of a page: summary and progress on the left, the current step
|
|
11235
|
+
* and the next ones as small cards on the right, and a "See all steps" link.
|
|
11236
|
+
* - `launcher` -- a small always-visible chip that reopens the checklist; three layouts (`icon`, `ring`,
|
|
11237
|
+
* `inline`).
|
|
11238
|
+
* - `completion` -- the "You're all set" card once every step is done.
|
|
11239
|
+
* The component shows progress and reports what the user pressed. It doesn't know what a step means,
|
|
11240
|
+
* run it, or remember anything: your app owns the steps (`steps`, each with `done`), marks them done, and
|
|
11241
|
+
* decides which form to show.
|
|
11242
|
+
* **Built from:** `bs-card` (every surface), `bs-icon-tile` (the icons), `bs-button` (the actions),
|
|
11243
|
+
* `bs-icon-button` (the close button), `bs-progress-linear` (the progress bar), `bs-progress` (the launcher
|
|
11244
|
+
* ring).
|
|
11245
|
+
* ## When to use
|
|
11246
|
+
* - Guiding a new account or user through a short list of setup tasks they can do in any order or later.
|
|
11247
|
+
* ## When not to use
|
|
11248
|
+
* - A strict, linear flow where each step needs the one before -- use `bs-stepper`.
|
|
11249
|
+
* - A tour of the interface itself -- use `bs-product-tour`.
|
|
11250
|
+
* ## Accessibility
|
|
11251
|
+
* Steps are an ordered list; the current one has `aria-current="step"`, and each step carries a visually
|
|
11252
|
+
* hidden "Done" / "Not done". The progress bar is named with the progress text.
|
|
11253
|
+
*/
|
|
11254
|
+
"bs-onboarding-checklist": LocalJSX.IntrinsicElements["bs-onboarding-checklist"] & JSXBase.HTMLAttributes<HTMLBsOnboardingChecklistElement>;
|
|
8814
11255
|
/**
|
|
8815
11256
|
* A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
|
|
8816
11257
|
* large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
|
|
@@ -8827,6 +11268,24 @@ declare module "@stencil/core" {
|
|
|
8827
11268
|
* plain prev/next controls (no numbers) are simpler there.
|
|
8828
11269
|
*/
|
|
8829
11270
|
"bs-pagination": LocalJSX.IntrinsicElements["bs-pagination"] & JSXBase.HTMLAttributes<HTMLBsPaginationElement>;
|
|
11271
|
+
/**
|
|
11272
|
+
* One step of a product tour: a centred **welcome** or **success** card with an art tile, or a
|
|
11273
|
+
* **pointer** card -- a compact step with a close button, a "1 of 3" progress label and Back/Next
|
|
11274
|
+
* actions -- whose arrow points at the thing it describes. Matches the Figma "Product Tour" and
|
|
11275
|
+
* "Pointer" components.
|
|
11276
|
+
* This is the step *card* only. It doesn't run a tour: it has no overlay, no spotlight, no
|
|
11277
|
+
* positioning against a target and no step sequencing. Your code decides which step is showing,
|
|
11278
|
+
* places the card next to its target (the arrow can sit on any of 12 positions via `direction`),
|
|
11279
|
+
* and moves on from `bsPrimary`/`bsSecondary`.
|
|
11280
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the art tile), `bs-button` (the actions), `bs-icon-button` (the close button).
|
|
11281
|
+
* ## When to use
|
|
11282
|
+
* - Introducing a feature on first run (`welcome`), confirming a finished tour (`success`), or
|
|
11283
|
+
* walking through the UI one pointer at a time (`pointer`).
|
|
11284
|
+
* ## When not to use
|
|
11285
|
+
* - A blocking decision or form -- use `bs-dialog`.
|
|
11286
|
+
* - A hint on hover or focus -- use `bs-tooltip`.
|
|
11287
|
+
*/
|
|
11288
|
+
"bs-product-tour": LocalJSX.IntrinsicElements["bs-product-tour"] & JSXBase.HTMLAttributes<HTMLBsProductTourElement>;
|
|
8830
11289
|
/**
|
|
8831
11290
|
* A circular progress indicator -- either a static ring showing a percentage sweep
|
|
8832
11291
|
* (`type="determinate"`) or a continuously spinning ring signaling in-progress work with no known
|
|
@@ -8856,6 +11315,28 @@ declare module "@stencil/core" {
|
|
|
8856
11315
|
* weight of a bar.
|
|
8857
11316
|
*/
|
|
8858
11317
|
"bs-progress-linear": LocalJSX.IntrinsicElements["bs-progress-linear"] & JSXBase.HTMLAttributes<HTMLBsProgressLinearElement>;
|
|
11318
|
+
/**
|
|
11319
|
+
* A block for sharing a link or taking a payment by QR code: a heading, the code on a white quiet
|
|
11320
|
+
* zone, the URL (or the amount, for payments) as text, an optional expiry chip, and Download and
|
|
11321
|
+
* Copy link actions. Matches the Figma "QR code" component (3 sizes x 2 types x 5 states, plus the
|
|
11322
|
+
* "with logo" variant).
|
|
11323
|
+
* **This component draws a code, it doesn't encode one.** Generate the real code in your product
|
|
11324
|
+
* with a QR library and hand it over either as a `matrix` (a square `boolean[][]`, `true` = dark
|
|
11325
|
+
* module) or as your own element in the `code` slot (an `<img>`, `<svg>` or `<canvas>`).
|
|
11326
|
+
* The code always sits on a white quiet zone with black modules, in dark mode too -- scanners need
|
|
11327
|
+
* the contrast.
|
|
11328
|
+
* **Built from:** `bs-card` (the surface), `bs-button` (Download, Copy link, Retry, Refresh), `bs-progress` (the loading spinner), `bs-chip-informative` (the expiry chip), `bs-icon-button` (the close button).
|
|
11329
|
+
* ## When to use
|
|
11330
|
+
* - Sharing a link to an order, document or page that someone will open on a phone.
|
|
11331
|
+
* - Taking a payment with an amount (`type="payment"`).
|
|
11332
|
+
* ## When not to use
|
|
11333
|
+
* - Encoding long text blobs -- a QR code that dense is hard to scan at the sizes here.
|
|
11334
|
+
* ## States
|
|
11335
|
+
* `loading` (generating the code), `error` (couldn't generate it; Retry), `expired` (Refresh) and
|
|
11336
|
+
* `scanned` (done: "Scanned", or "Payment received" for payments). Download and Copy link are disabled
|
|
11337
|
+
* in every state but `default`, and hidden once `scanned`.
|
|
11338
|
+
*/
|
|
11339
|
+
"bs-qr-code": LocalJSX.IntrinsicElements["bs-qr-code"] & JSXBase.HTMLAttributes<HTMLBsQrCodeElement>;
|
|
8859
11340
|
/**
|
|
8860
11341
|
* A single radio button with its label, for one mutually-exclusive choice within a group.
|
|
8861
11342
|
* ## When to use
|
|
@@ -8867,6 +11348,33 @@ declare module "@stencil/core" {
|
|
|
8867
11348
|
* - An on/off setting that takes effect immediately (no explicit form submission) -- use `bs-switch`.
|
|
8868
11349
|
*/
|
|
8869
11350
|
"bs-radio": LocalJSX.IntrinsicElements["bs-radio"] & JSXBase.HTMLAttributes<HTMLBsRadioElement>;
|
|
11351
|
+
/**
|
|
11352
|
+
* The three moments around an expiring session, as one card. Matches the Figma "Session timeout"
|
|
11353
|
+
* component's three types:
|
|
11354
|
+
* - `warning` -- "You'll be signed out soon": a live countdown with a draining bar, an optional
|
|
11355
|
+
* "your work is saved" note, and Sign out now / Stay signed in.
|
|
11356
|
+
* - `signed-out` -- "You've been signed out": who was signed in, with Sign in again and Use a different
|
|
11357
|
+
* account.
|
|
11358
|
+
* - `confirm-identity` -- "Confirm it's you": a fresh password check before a sensitive action, with
|
|
11359
|
+
* passkey / BankID alternatives and Cancel.
|
|
11360
|
+
* The component never signs anyone in or out. It shows the state and emits `bsPrimary`, `bsSecondary`,
|
|
11361
|
+
* `bsAlternative`, `bsCancel` and `bsExpire`; your app talks to the identity provider.
|
|
11362
|
+
* **Built from:** `bs-card` (the surface), `bs-icon-tile` (the icon), `bs-button` (the actions),
|
|
11363
|
+
* `bs-progress-linear` (the countdown bar), `bs-avatar` (the signed-in account), `bs-input` (the
|
|
11364
|
+
* password field).
|
|
11365
|
+
* ## When to use
|
|
11366
|
+
* - Warning someone, before it happens, that an inactivity timeout is about to end their session.
|
|
11367
|
+
* - Telling someone their session ended, and letting them pick up where they left off.
|
|
11368
|
+
* - Asking for a fresh credential before a sensitive action.
|
|
11369
|
+
* ## When not to use
|
|
11370
|
+
* - A first-time sign-in page -- this assumes there was a session.
|
|
11371
|
+
* - Anything that is not about the session or the user's identity -- use `bs-dialog`.
|
|
11372
|
+
* ## Accessibility
|
|
11373
|
+
* The card is a labelled region. The countdown is a `timer` and is *not* announced every second; a polite
|
|
11374
|
+
* live region announces the time left at 60, 30 and 10 seconds instead. Wrap the card in your own modal
|
|
11375
|
+
* (`bs-dialog`) if the warning must trap focus.
|
|
11376
|
+
*/
|
|
11377
|
+
"bs-session-timeout": LocalJSX.IntrinsicElements["bs-session-timeout"] & JSXBase.HTMLAttributes<HTMLBsSessionTimeoutElement>;
|
|
8870
11378
|
/**
|
|
8871
11379
|
* A slider for picking a single numeric value (`type="default"`), a value snapped to evenly
|
|
8872
11380
|
* spaced ticks (`type="segmented"`), or a min/max pair (`type="range"`) from within a bounded
|
|
@@ -9027,6 +11535,7 @@ declare module "@stencil/core" {
|
|
|
9027
11535
|
* `value` is always 24-hour `HH:mm` (e.g. `"14:30"`), regardless of the displayed `format`.
|
|
9028
11536
|
* The picker renders inline at a fixed width; to show it as a popover, put it in your own overlay
|
|
9029
11537
|
* and close that overlay from `bsChange`/`bsCancel`.
|
|
11538
|
+
* **Built from:** `bs-card` (the surface), `bs-switch` (the 24h toggle), `bs-input` (the AM/PM dropdown), `bs-button` (Cancel/Confirm).
|
|
9030
11539
|
* ## When to use
|
|
9031
11540
|
* - Picking a time of day where the user steps through hours and minutes.
|
|
9032
11541
|
* ## When not to use
|
|
@@ -9073,6 +11582,37 @@ declare module "@stencil/core" {
|
|
|
9073
11582
|
* `--bs-line-height-body-sm`.
|
|
9074
11583
|
*/
|
|
9075
11584
|
"bs-tooltip": LocalJSX.IntrinsicElements["bs-tooltip"] & JSXBase.HTMLAttributes<HTMLBsTooltipElement>;
|
|
11585
|
+
/**
|
|
11586
|
+
* A product's "What's new" surface, in three forms matching the Figma component:
|
|
11587
|
+
* - `feed` -- a docked panel: heading, "Mark all as read", filter tabs, the list of updates (each a
|
|
11588
|
+
* `bs-whats-new-entry`) and a link to the full release notes.
|
|
11589
|
+
* - `announcement` -- one big update, with a hero image, a tag, a heading, a few bullet points, "1 of 3"
|
|
11590
|
+
* and Remind me later / Next.
|
|
11591
|
+
* - `teaser` -- a small card pointing at the feed: tag, date, heading, a line of text and "Open What's new".
|
|
11592
|
+
* The component only shows what you give it and reports what the user pressed. It doesn't fetch updates,
|
|
11593
|
+
* track which the user has seen, or decide when to appear: your app owns `entries` (with their `unread`
|
|
11594
|
+
* flags) and reacts to the events.
|
|
11595
|
+
* **Built from:** `bs-card` (the surface), `bs-whats-new-entry` (each update), `bs-tabs` (the filters),
|
|
11596
|
+
* `bs-chip-informative` (the tags), `bs-button`, `bs-icon-button`.
|
|
11597
|
+
* ## When to use
|
|
11598
|
+
* - Telling users about changes to the product, in a place they can come back to.
|
|
11599
|
+
* ## When not to use
|
|
11600
|
+
* - Messages about the user's own data or an action they just took -- use `bs-snackbar`, `bs-toast`.
|
|
11601
|
+
* - A guided walk through the interface -- use `bs-product-tour`.
|
|
11602
|
+
*/
|
|
11603
|
+
"bs-whats-new": LocalJSX.IntrinsicElements["bs-whats-new"] & JSXBase.HTMLAttributes<HTMLBsWhatsNewElement>;
|
|
11604
|
+
/**
|
|
11605
|
+
* One update in a "What's new" list: a tag ("New feature", "Improvement", "Fix"), a date, an unread dot,
|
|
11606
|
+
* an optional image, a title, a short description and an optional action link ("Try it"). Matches the Figma
|
|
11607
|
+
* "What's new / Entry" component. It is a plain block of content -- no card -- so it can sit in a feed
|
|
11608
|
+
* (`bs-whats-new`), a list, or a page of release notes.
|
|
11609
|
+
* **Built from:** `bs-chip-informative` (the tag) and `bs-button` (the action).
|
|
11610
|
+
* ## When to use
|
|
11611
|
+
* - Announcing a change to the product, with enough detail to know whether it matters.
|
|
11612
|
+
* ## When not to use
|
|
11613
|
+
* - A message about the user's own data or an action they just took -- use `bs-snackbar` or `bs-toast`.
|
|
11614
|
+
*/
|
|
11615
|
+
"bs-whats-new-entry": LocalJSX.IntrinsicElements["bs-whats-new-entry"] & JSXBase.HTMLAttributes<HTMLBsWhatsNewEntryElement>;
|
|
9076
11616
|
}
|
|
9077
11617
|
}
|
|
9078
11618
|
}
|