@brandsync/wc 1.9.0 → 1.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +8864 -3754
- package/dist/brandsync-wc/brandsync-wc.css +33 -0
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/{p-9f8852a0.entry.js → p-00a0d489.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a5feaad4.entry.js → p-061ddc46.entry.js} +1 -1
- package/dist/brandsync-wc/{p-360452c2.entry.js → p-09435f41.entry.js} +1 -1
- package/dist/brandsync-wc/{p-107b1c5d.entry.js → p-09bc1923.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1f7208cb.entry.js → p-09cbf05b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7c94e6ae.entry.js → p-0b2d3b7e.entry.js} +1 -1
- package/dist/brandsync-wc/p-0b7c77c1.entry.js +1 -0
- package/dist/brandsync-wc/p-0ee4126c.entry.js +1 -0
- package/dist/brandsync-wc/{p-0e39b9cc.entry.js → p-0f8cd2e8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1c0db4d6.entry.js → p-1261f0b0.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6bf2f116.entry.js → p-1978e63c.entry.js} +1 -1
- package/dist/brandsync-wc/p-1aab6d07.entry.js +1 -0
- package/dist/brandsync-wc/{p-6fd7dd6a.entry.js → p-20030f4d.entry.js} +1 -1
- package/dist/brandsync-wc/p-2177042f.entry.js +1 -0
- package/dist/brandsync-wc/{p-33e44094.entry.js → p-2368a92e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-29027559.entry.js → p-247e36ad.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ae978c9a.entry.js → p-2497d128.entry.js} +1 -1
- package/dist/brandsync-wc/{p-fc240aa0.entry.js → p-282ddbee.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0eed6813.entry.js → p-2f4e08e1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c3f72584.entry.js → p-34e5feaf.entry.js} +1 -1
- package/dist/brandsync-wc/{p-062cfa34.entry.js → p-39a26c64.entry.js} +1 -1
- package/dist/brandsync-wc/p-3a1af63a.entry.js +1 -0
- package/dist/brandsync-wc/{p-9f6fe37d.entry.js → p-3f09296a.entry.js} +1 -1
- package/dist/brandsync-wc/p-416322bd.entry.js +1 -0
- package/dist/brandsync-wc/{p-bbcc47b0.entry.js → p-491b51e6.entry.js} +1 -1
- package/dist/brandsync-wc/p-52cb2358.entry.js +1 -0
- package/dist/brandsync-wc/{p-3ec74d35.entry.js → p-56c37e0a.entry.js} +1 -1
- package/dist/brandsync-wc/p-5ba90a13.entry.js +1 -0
- package/dist/brandsync-wc/{p-2181378f.entry.js → p-5f27f04d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a09e157f.entry.js → p-617bd13a.entry.js} +1 -1
- package/dist/brandsync-wc/p-68fcd4a4.entry.js +1 -0
- package/dist/brandsync-wc/{p-cfcf3f0a.entry.js → p-69c0a85d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9f65f998.entry.js → p-6a696161.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8ee0153b.entry.js → p-6c6cdf77.entry.js} +1 -1
- package/dist/brandsync-wc/{p-051d3064.entry.js → p-6e735e37.entry.js} +1 -1
- package/dist/brandsync-wc/{p-fc58c663.entry.js → p-73f214ed.entry.js} +1 -1
- package/dist/brandsync-wc/{p-be2c1740.entry.js → p-7796b93f.entry.js} +1 -1
- package/dist/brandsync-wc/p-78a69a59.entry.js +1 -0
- package/dist/brandsync-wc/{p-27bbed83.entry.js → p-78f4fcf0.entry.js} +1 -1
- package/dist/brandsync-wc/p-7f954939.entry.js +1 -0
- package/dist/brandsync-wc/{p-835a8dc7.entry.js → p-81605b82.entry.js} +1 -1
- package/dist/brandsync-wc/{p-de7c946d.entry.js → p-823ab3b2.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a92eec48.entry.js → p-89fabf27.entry.js} +1 -1
- package/dist/brandsync-wc/{p-AgoOSYvW.js → p-DqQRXQMx.js} +2 -2
- package/dist/brandsync-wc/{p-70f64b25.entry.js → p-a9169157.entry.js} +1 -1
- package/dist/brandsync-wc/{p-05c7de28.entry.js → p-afb07368.entry.js} +1 -1
- package/dist/brandsync-wc/{p-235ae012.entry.js → p-b84366a7.entry.js} +1 -1
- package/dist/brandsync-wc/p-b9a4042e.entry.js +1 -0
- package/dist/brandsync-wc/{p-275072dd.entry.js → p-b9ccd9d1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-61c1a2a3.entry.js → p-be3dd446.entry.js} +1 -1
- package/dist/brandsync-wc/p-c0a92750.entry.js +1 -0
- package/dist/brandsync-wc/{p-6331de9c.entry.js → p-d754ee13.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e9b43754.entry.js → p-d75f3f87.entry.js} +1 -1
- package/dist/brandsync-wc/{p-3176d1d3.entry.js → p-d8b29a53.entry.js} +1 -1
- package/dist/brandsync-wc/p-de110ad0.entry.js +1 -0
- package/dist/brandsync-wc/p-e2556b4e.entry.js +1 -0
- package/dist/brandsync-wc/{p-4574a707.entry.js → p-e5daa6ca.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c4de155c.entry.js → p-f15d9524.entry.js} +1 -1
- package/dist/brandsync-wc/p-f5180578.entry.js +1 -0
- package/dist/brandsync-wc/{p-114d2fd8.entry.js → p-f7d15fbe.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a0d5a620.entry.js → p-fc069773.entry.js} +1 -1
- package/dist/brandsync-wc/p-fcee0dc4.entry.js +1 -0
- package/dist/cjs/brandsync-wc.cjs.js +2 -2
- package/dist/cjs/bs-accordion.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +2 -2
- package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
- package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment.cjs.entry.js +1 -1
- package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
- package/dist/cjs/bs-badge.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +2 -2
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/bs-button.cjs.entry.js +3 -3
- package/dist/cjs/bs-card.cjs.entry.js +3 -3
- package/dist/cjs/bs-carousel.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +2 -2
- package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/bs-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-filter.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
- package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
- package/dist/cjs/bs-composer.cjs.entry.js +1 -1
- package/dist/cjs/bs-cookie-consent.cjs.entry.js +186 -0
- package/dist/cjs/bs-data-table.cjs.entry.js +1 -1
- package/dist/cjs/bs-datepicker.cjs.entry.js +414 -0
- package/dist/cjs/bs-dialog.cjs.entry.js +1 -1
- package/dist/cjs/bs-error-page.cjs.entry.js +103 -0
- package/dist/cjs/bs-file-upload-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-file-upload.cjs.entry.js +2 -2
- package/dist/cjs/bs-icon-button.cjs.entry.js +2 -2
- package/dist/cjs/bs-icon-tile.cjs.entry.js +52 -0
- package/dist/cjs/bs-inline-tab.cjs.entry.js +2 -2
- package/dist/cjs/{bs-input.cjs.entry.js → bs-input_3.cjs.entry.js} +74 -6
- package/dist/cjs/bs-logo.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +3 -3
- package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
- package/dist/cjs/bs-onboarding-checklist.cjs.entry.js +161 -0
- package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
- package/dist/cjs/bs-product-tour.cjs.entry.js +78 -0
- package/dist/cjs/bs-progress-linear.cjs.entry.js +4 -4
- package/dist/cjs/bs-progress.cjs.entry.js +3 -3
- package/dist/cjs/bs-qr-code.cjs.entry.js +148 -0
- package/dist/cjs/bs-radio.cjs.entry.js +2 -2
- package/dist/cjs/bs-session-timeout.cjs.entry.js +215 -0
- package/dist/cjs/bs-slider.cjs.entry.js +2 -2
- package/dist/cjs/bs-snackbar.cjs.entry.js +9 -3
- package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
- package/dist/cjs/bs-stepper-step.cjs.entry.js +2 -2
- package/dist/cjs/bs-stepper.cjs.entry.js +2 -2
- package/dist/cjs/bs-switch.cjs.entry.js +2 -2
- package/dist/cjs/bs-tab_3.cjs.entry.js +255 -0
- package/dist/cjs/bs-timepicker.cjs.entry.js +209 -0
- package/dist/cjs/bs-toast.cjs.entry.js +2 -2
- package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/bs-whats-new.cjs.entry.js +144 -0
- package/dist/cjs/{index-kk9YXF2S.js → index-tFJjflK5.js} +15 -3
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +11 -0
- package/dist/collection/components/bs-a11y.cmp.test.js +26 -0
- package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
- package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
- package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
- package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +28 -0
- package/dist/collection/components/bs-button/bs-button/bs-button.css +8 -2
- package/dist/collection/components/bs-button/bs-button/bs-button.js +4 -1
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
- package/dist/collection/components/bs-card/bs-card.cmp.test.js +48 -0
- package/dist/collection/components/bs-card/bs-card.css +37 -16
- package/dist/collection/components/bs-card/bs-card.js +2 -2
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
- package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.cmp.test.js +217 -0
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.css +350 -0
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.js +668 -0
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.stories.js +103 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.cmp.test.js +191 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.css +325 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.js +788 -0
- package/dist/collection/components/bs-datepicker/bs-datepicker.stories.js +64 -0
- package/dist/collection/components/bs-error-page/bs-error-page.cmp.test.js +99 -0
- package/dist/collection/components/bs-error-page/bs-error-page.css +105 -0
- package/dist/collection/components/bs-error-page/bs-error-page.js +328 -0
- package/dist/collection/components/bs-error-page/bs-error-page.stories.js +57 -0
- package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
- package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.cmp.test.js +175 -0
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.css +112 -0
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +158 -0
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.stories.js +45 -0
- package/dist/collection/components/bs-input/bs-input.cmp.test.js +14 -0
- package/dist/collection/components/bs-input/bs-input.css +9 -2
- package/dist/collection/components/bs-input/bs-input.js +7 -4
- package/dist/collection/components/bs-menu/bs-menu.js +1 -1
- package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
- package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.js +280 -0
- package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.css +488 -0
- package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.js +674 -0
- package/dist/collection/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.js +92 -0
- package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
- package/dist/collection/components/bs-product-tour/bs-product-tour.cmp.test.js +116 -0
- package/dist/collection/components/bs-product-tour/bs-product-tour.css +265 -0
- package/dist/collection/components/bs-product-tour/bs-product-tour.js +391 -0
- package/dist/collection/components/bs-product-tour/bs-product-tour.stories.js +68 -0
- package/dist/collection/components/bs-progress/bs-progress.js +2 -2
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.css +1 -1
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
- package/dist/collection/components/bs-qr-code/bs-qr-code.cmp.test.js +152 -0
- package/dist/collection/components/bs-qr-code/bs-qr-code.css +307 -0
- package/dist/collection/components/bs-qr-code/bs-qr-code.js +767 -0
- package/dist/collection/components/bs-qr-code/bs-qr-code.stories.js +99 -0
- package/dist/collection/components/bs-radio/bs-radio.js +1 -1
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.cmp.test.js +202 -0
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.css +239 -0
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +772 -0
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.stories.js +88 -0
- package/dist/collection/components/bs-slider/bs-slider.js +1 -1
- package/dist/collection/components/bs-snackbar/bs-snackbar.cmp.test.js +20 -0
- package/dist/collection/components/bs-snackbar/bs-snackbar.css +6 -4
- package/dist/collection/components/bs-snackbar/bs-snackbar.js +53 -1
- package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
- package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
- package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
- package/dist/collection/components/bs-switch/bs-switch.js +1 -1
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
- package/dist/collection/components/bs-timepicker/bs-timepicker.cmp.test.js +141 -0
- package/dist/collection/components/bs-timepicker/bs-timepicker.css +204 -0
- package/dist/collection/components/bs-timepicker/bs-timepicker.js +511 -0
- package/dist/collection/components/bs-timepicker/bs-timepicker.stories.js +44 -0
- package/dist/collection/components/bs-toast/bs-toast.js +1 -1
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
- package/dist/collection/components/bs-whats-new/bs-whats-new.cmp.test.js +200 -0
- package/dist/collection/components/bs-whats-new/bs-whats-new.css +315 -0
- package/dist/collection/components/bs-whats-new/bs-whats-new.js +790 -0
- package/dist/collection/components/bs-whats-new/bs-whats-new.stories.js +105 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.js +79 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.css +131 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +295 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.stories.js +67 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
- package/dist/components/bs-accordion.js +1 -1
- package/dist/components/bs-ai-disclaimer.js +1 -1
- package/dist/components/bs-ai-greeting.js +1 -1
- package/dist/components/bs-ai-thinking.js +1 -1
- package/dist/components/bs-attachment-list.js +1 -1
- package/dist/components/bs-attachment.js +1 -1
- package/dist/components/bs-avatar.js +1 -1
- package/dist/components/bs-badge.js +1 -1
- package/dist/components/bs-breadcrumb-overflow.js +1 -1
- package/dist/components/bs-breadcrumb.js +1 -1
- package/dist/components/bs-breadcrumbs.js +1 -1
- package/dist/components/bs-button-skeleton.js +1 -1
- package/dist/components/bs-button.js +1 -1
- package/dist/components/bs-card.js +1 -1
- package/dist/components/bs-carousel.js +1 -1
- package/dist/components/bs-chatbot-feedback.js +1 -1
- package/dist/components/bs-chatbot-header.js +1 -1
- package/dist/components/bs-chatbot-response-action.js +1 -1
- package/dist/components/bs-chatbot-sources-drawer.js +1 -1
- package/dist/components/bs-chatbot-suggestion-button.js +1 -1
- package/dist/components/bs-checkbox-skeleton.js +1 -1
- package/dist/components/bs-checkbox.js +1 -1
- package/dist/components/bs-chip-filter.js +1 -1
- package/dist/components/bs-chip-informative.js +1 -1
- package/dist/components/bs-chip-input.js +1 -1
- package/dist/components/bs-composer-status-banner.js +1 -1
- package/dist/components/bs-composer.js +1 -1
- package/dist/components/bs-cookie-consent.d.ts +11 -0
- package/dist/components/bs-cookie-consent.js +1 -0
- package/dist/components/bs-data-table.js +1 -1
- package/dist/components/bs-datepicker.d.ts +11 -0
- package/dist/components/bs-datepicker.js +1 -0
- package/dist/components/bs-dialog.js +1 -1
- package/dist/components/bs-error-page.d.ts +11 -0
- package/dist/components/bs-error-page.js +1 -0
- package/dist/components/bs-file-upload-item.js +1 -1
- package/dist/components/bs-file-upload.js +1 -1
- package/dist/components/bs-icon-button.js +1 -1
- package/dist/components/bs-icon-tile.d.ts +11 -0
- package/dist/components/bs-icon-tile.js +1 -0
- package/dist/components/bs-inline-tab.js +1 -1
- package/dist/components/bs-input.js +1 -1
- package/dist/components/bs-logo.js +1 -1
- package/dist/components/bs-menu-item.js +1 -1
- package/dist/components/bs-menu.js +1 -1
- package/dist/components/bs-navigation-drawer-item.js +1 -1
- package/dist/components/bs-navigation-drawer.js +1 -1
- package/dist/components/bs-navigation-header.js +1 -1
- package/dist/components/bs-onboarding-checklist.d.ts +11 -0
- package/dist/components/bs-onboarding-checklist.js +1 -0
- package/dist/components/bs-pagination.js +1 -1
- package/dist/components/bs-product-tour.d.ts +11 -0
- package/dist/components/bs-product-tour.js +1 -0
- package/dist/components/bs-progress-linear.js +1 -1
- package/dist/components/bs-progress.js +1 -1
- package/dist/components/bs-qr-code.d.ts +11 -0
- package/dist/components/bs-qr-code.js +1 -0
- package/dist/components/bs-radio.js +1 -1
- package/dist/components/bs-session-timeout.d.ts +11 -0
- package/dist/components/bs-session-timeout.js +1 -0
- package/dist/components/bs-slider.js +1 -1
- package/dist/components/bs-snackbar.js +1 -1
- package/dist/components/bs-source-link.js +1 -1
- package/dist/components/bs-stepper-step.js +1 -1
- package/dist/components/bs-stepper.js +1 -1
- package/dist/components/bs-switch.js +1 -1
- package/dist/components/bs-tab.js +1 -1
- package/dist/components/bs-tabs.js +1 -1
- package/dist/components/bs-timepicker.d.ts +11 -0
- package/dist/components/bs-timepicker.js +1 -0
- package/dist/components/bs-toast.js +1 -1
- package/dist/components/bs-tooltip.js +1 -1
- package/dist/components/bs-whats-new-entry.d.ts +11 -0
- package/dist/components/bs-whats-new-entry.js +1 -0
- package/dist/components/bs-whats-new.d.ts +11 -0
- package/dist/components/bs-whats-new.js +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/{p-R2MlkUzD.js → p-BEEoVNRu.js} +1 -1
- package/dist/components/{p-EtXc94lJ.js → p-BZ3M4lOU.js} +1 -1
- package/dist/components/p-B_I4UEMp.js +1 -0
- package/dist/components/{p-BfEyD6Ku.js → p-Be9L4_Fe.js} +1 -1
- package/dist/components/p-Be_Pmccm.js +1 -0
- package/dist/components/p-Bl_tVzeq.js +1 -0
- package/dist/components/p-C8yT2Ucq.js +1 -0
- package/dist/components/p-CA31vqjL.js +1 -0
- package/dist/components/p-CUfs0ROR.js +1 -0
- package/dist/components/{p-JYlmcxBn.js → p-CVrEuVFo.js} +1 -1
- package/dist/components/{p-BA3c9Rom.js → p-C_j_jDM6.js} +1 -1
- package/dist/components/p-CbimDNGY.js +1 -0
- package/dist/components/{p-Buly0d5G.js → p-CeUK3n7D.js} +1 -1
- package/dist/components/p-CncySD_-.js +1 -0
- package/dist/components/p-DE8K7fg0.js +1 -0
- package/dist/components/p-Dr0Qk9Zc.js +1 -0
- package/dist/components/p-DuLL7Ouw.js +1 -0
- package/dist/components/p-YsHQLXET.js +1 -0
- package/dist/components/p-qmS2CBqi.js +1 -0
- package/dist/components/{p-BoeorHNv.js → p-zTHlbyH6.js} +1 -1
- package/dist/esm/brandsync-wc.js +3 -3
- package/dist/esm/bs-accordion.entry.js +1 -1
- package/dist/esm/bs-ai-disclaimer.entry.js +2 -2
- package/dist/esm/bs-ai-greeting.entry.js +2 -2
- package/dist/esm/bs-ai-thinking.entry.js +2 -2
- package/dist/esm/bs-attachment-list.entry.js +2 -2
- package/dist/esm/bs-attachment.entry.js +1 -1
- package/dist/esm/bs-avatar.entry.js +1 -1
- package/dist/esm/bs-badge.entry.js +1 -1
- package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
- package/dist/esm/bs-breadcrumb.entry.js +1 -1
- package/dist/esm/bs-breadcrumbs.entry.js +2 -2
- package/dist/esm/bs-button-skeleton.entry.js +2 -2
- package/dist/esm/bs-button.entry.js +3 -3
- package/dist/esm/bs-card.entry.js +3 -3
- package/dist/esm/bs-carousel.entry.js +1 -1
- package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
- package/dist/esm/bs-chatbot-header.entry.js +2 -2
- package/dist/esm/bs-chatbot-response-action.entry.js +2 -2
- package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
- package/dist/esm/bs-chatbot-suggestion-button.entry.js +2 -2
- package/dist/esm/bs-checkbox-skeleton.entry.js +2 -2
- package/dist/esm/bs-checkbox.entry.js +1 -1
- package/dist/esm/bs-chip-filter.entry.js +1 -1
- package/dist/esm/bs-chip-informative.entry.js +1 -1
- package/dist/esm/bs-chip-input.entry.js +1 -1
- package/dist/esm/bs-composer-status-banner.entry.js +1 -1
- package/dist/esm/bs-composer.entry.js +1 -1
- package/dist/esm/bs-cookie-consent.entry.js +184 -0
- package/dist/esm/bs-data-table.entry.js +1 -1
- package/dist/esm/bs-datepicker.entry.js +412 -0
- package/dist/esm/bs-dialog.entry.js +1 -1
- package/dist/esm/bs-error-page.entry.js +101 -0
- package/dist/esm/bs-file-upload-item.entry.js +2 -2
- package/dist/esm/bs-file-upload.entry.js +2 -2
- package/dist/esm/bs-icon-button.entry.js +2 -2
- package/dist/esm/bs-icon-tile.entry.js +50 -0
- package/dist/esm/bs-inline-tab.entry.js +2 -2
- package/dist/esm/{bs-input.entry.js → bs-input_3.entry.js} +73 -7
- package/dist/esm/bs-logo.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
- package/dist/esm/bs-navigation-drawer.entry.js +3 -3
- package/dist/esm/bs-navigation-header.entry.js +2 -2
- package/dist/esm/bs-onboarding-checklist.entry.js +159 -0
- package/dist/esm/bs-pagination.entry.js +2 -2
- package/dist/esm/bs-product-tour.entry.js +76 -0
- package/dist/esm/bs-progress-linear.entry.js +4 -4
- package/dist/esm/bs-progress.entry.js +3 -3
- package/dist/esm/bs-qr-code.entry.js +146 -0
- package/dist/esm/bs-radio.entry.js +2 -2
- package/dist/esm/bs-session-timeout.entry.js +213 -0
- package/dist/esm/bs-slider.entry.js +2 -2
- package/dist/esm/bs-snackbar.entry.js +9 -3
- package/dist/esm/bs-source-link.entry.js +3 -3
- package/dist/esm/bs-stepper-step.entry.js +2 -2
- package/dist/esm/bs-stepper.entry.js +2 -2
- package/dist/esm/bs-switch.entry.js +2 -2
- package/dist/esm/bs-tab_3.entry.js +251 -0
- package/dist/esm/bs-timepicker.entry.js +207 -0
- package/dist/esm/bs-toast.entry.js +2 -2
- package/dist/esm/bs-tooltip.entry.js +2 -2
- package/dist/esm/bs-whats-new.entry.js +142 -0
- package/dist/esm/{index-AgoOSYvW.js → index-DqQRXQMx.js} +15 -3
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/bs-button/bs-button/bs-button.d.ts +3 -0
- package/dist/types/components/bs-cookie-consent/bs-cookie-consent.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-cookie-consent/bs-cookie-consent.d.ts +136 -0
- package/dist/types/components/bs-cookie-consent/bs-cookie-consent.stories.d.ts +16 -0
- package/dist/types/components/bs-datepicker/bs-datepicker.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-datepicker/bs-datepicker.d.ts +138 -0
- package/dist/types/components/bs-datepicker/bs-datepicker.stories.d.ts +20 -0
- package/dist/types/components/bs-error-page/bs-error-page.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-error-page/bs-error-page.d.ts +60 -0
- package/dist/types/components/bs-error-page/bs-error-page.stories.d.ts +22 -0
- package/dist/types/components/bs-icon-tile/bs-icon-tile.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +40 -0
- package/dist/types/components/bs-icon-tile/bs-icon-tile.stories.d.ts +13 -0
- package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.d.ts +140 -0
- package/dist/types/components/bs-onboarding-checklist/bs-onboarding-checklist.stories.d.ts +18 -0
- package/dist/types/components/bs-product-tour/bs-product-tour.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-product-tour/bs-product-tour.d.ts +78 -0
- package/dist/types/components/bs-product-tour/bs-product-tour.stories.d.ts +19 -0
- package/dist/types/components/bs-qr-code/bs-qr-code.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-qr-code/bs-qr-code.d.ts +124 -0
- package/dist/types/components/bs-qr-code/bs-qr-code.stories.d.ts +28 -0
- package/dist/types/components/bs-session-timeout/bs-session-timeout.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-session-timeout/bs-session-timeout.d.ts +141 -0
- package/dist/types/components/bs-session-timeout/bs-session-timeout.stories.d.ts +19 -0
- package/dist/types/components/bs-snackbar/bs-snackbar.d.ts +7 -0
- package/dist/types/components/bs-timepicker/bs-timepicker.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-timepicker/bs-timepicker.d.ts +103 -0
- package/dist/types/components/bs-timepicker/bs-timepicker.stories.d.ts +14 -0
- package/dist/types/components/bs-whats-new/bs-whats-new.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-whats-new/bs-whats-new.d.ts +147 -0
- package/dist/types/components/bs-whats-new/bs-whats-new.stories.d.ts +14 -0
- package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.d.ts +53 -0
- package/dist/types/components/bs-whats-new-entry/bs-whats-new-entry.stories.d.ts +18 -0
- package/dist/types/components.d.ts +3072 -17
- package/package.json +1 -1
- package/dist/brandsync-wc/p-2891d40b.entry.js +0 -1
- package/dist/brandsync-wc/p-36bf37d9.entry.js +0 -1
- package/dist/brandsync-wc/p-3b64e3cd.entry.js +0 -1
- package/dist/brandsync-wc/p-4e5dcaff.entry.js +0 -1
- package/dist/brandsync-wc/p-7b00dd36.entry.js +0 -1
- package/dist/brandsync-wc/p-c10d2529.entry.js +0 -1
- package/dist/brandsync-wc/p-f006d962.entry.js +0 -1
- package/dist/brandsync-wc/p-f074f94e.entry.js +0 -1
- package/dist/brandsync-wc/p-f7d47c17.entry.js +0 -1
- package/dist/brandsync-wc/p-fddc7bd1.entry.js +0 -1
- package/dist/cjs/bs-menu-item.cjs.entry.js +0 -34
- package/dist/cjs/bs-menu.cjs.entry.js +0 -39
- package/dist/cjs/bs-tab.cjs.entry.js +0 -88
- package/dist/cjs/bs-tabs.cjs.entry.js +0 -133
- package/dist/components/p-CpUHnsq9.js +0 -1
- package/dist/components/p-wei0Ija2.js +0 -1
- package/dist/esm/bs-menu-item.entry.js +0 -32
- package/dist/esm/bs-menu.entry.js +0 -37
- package/dist/esm/bs-tab.entry.js +0 -86
- package/dist/esm/bs-tabs.entry.js +0 -131
|
@@ -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,15 +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";
|
|
28
|
+
import { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
|
|
27
29
|
import { BsDialogSize } from "./components/bs-dialog/bs-dialog";
|
|
30
|
+
import { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
|
|
28
31
|
import { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
|
|
29
32
|
import { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
|
|
30
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";
|
|
31
35
|
import { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
|
|
32
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";
|
|
33
39
|
import { BsProgressSize, BsProgressStrokeWidth, BsProgressType } from "./components/bs-progress/bs-progress";
|
|
34
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";
|
|
35
43
|
import { BsSliderType } from "./components/bs-slider/bs-slider";
|
|
36
44
|
import { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
|
|
37
45
|
import { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
|
|
@@ -39,7 +47,11 @@ import { BsStepperDirection as BsStepperDirection1, BsStepperStepComputedState }
|
|
|
39
47
|
import { BsSwitchSize } from "./components/bs-switch/bs-switch";
|
|
40
48
|
import { BsTabIconPosition } from "./components/bs-tab/bs-tab/bs-tab";
|
|
41
49
|
import { BsTabsOrientation, BsTabsType } from "./components/bs-tab/bs-tabs/bs-tabs";
|
|
50
|
+
import { BsTimepickerChange } from "./components/bs-timepicker/bs-timepicker";
|
|
42
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";
|
|
43
55
|
export { BsAccordionSize } from "./components/bs-accordion/bs-accordion";
|
|
44
56
|
export { BsAttachmentType } from "./components/bs-attachment/bs-attachment";
|
|
45
57
|
export { BsAvatarSize, BsAvatarType } from "./components/bs-avatar/bs-avatar";
|
|
@@ -48,7 +60,7 @@ export { BsBreadcrumbSize } from "./components/bs-breadcrumb/bs-breadcrumb/bs-br
|
|
|
48
60
|
export { BsBreadcrumbOverflowItem } from "./components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow";
|
|
49
61
|
export { BsBreadcrumbSize as BsBreadcrumbSize1 } from "./components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb";
|
|
50
62
|
export { BsButtonSize, BsButtonVariant } from "./components/bs-button/bs-button/bs-button";
|
|
51
|
-
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";
|
|
52
64
|
export { BsCardSurface } from "./components/bs-card/bs-card";
|
|
53
65
|
export { BsCarouselTracker } from "./components/bs-carousel/bs-carousel";
|
|
54
66
|
export { BsCheckboxSize } from "./components/bs-checkbox/bs-checkbox";
|
|
@@ -58,15 +70,23 @@ export { BsChipInformativeColor, BsChipInformativeSize } from "./components/bs-c
|
|
|
58
70
|
export { BsChipInputSize } from "./components/bs-chip/bs-chip-input/bs-chip-input";
|
|
59
71
|
export { BsComposerState, BsComposerVariant } from "./components/bs-composer/bs-composer";
|
|
60
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";
|
|
61
74
|
export { BsDataTableColumn, BsDataTableRow } from "./components/bs-data-table/bs-data-table";
|
|
75
|
+
export { BsDatepickerChange } from "./components/bs-datepicker/bs-datepicker";
|
|
62
76
|
export { BsDialogSize } from "./components/bs-dialog/bs-dialog";
|
|
77
|
+
export { BsErrorPageType } from "./components/bs-error-page/bs-error-page";
|
|
63
78
|
export { BsFileUploadDirection } from "./components/bs-file-upload/bs-file-upload";
|
|
64
79
|
export { BsFileUploadItemState } from "./components/bs-file-upload-item/bs-file-upload-item";
|
|
65
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";
|
|
66
82
|
export { BsLogoBackground, BsLogoVariant } from "./components/bs-logo/bs-logo";
|
|
67
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";
|
|
68
86
|
export { BsProgressSize, BsProgressStrokeWidth, BsProgressType } from "./components/bs-progress/bs-progress";
|
|
69
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";
|
|
70
90
|
export { BsSliderType } from "./components/bs-slider/bs-slider";
|
|
71
91
|
export { BsSnackbarVariant } from "./components/bs-snackbar/bs-snackbar";
|
|
72
92
|
export { BsStepperDirection } from "./components/bs-stepper/bs-stepper-step/bs-stepper-step";
|
|
@@ -74,7 +94,11 @@ export { BsStepperDirection as BsStepperDirection1, BsStepperStepComputedState }
|
|
|
74
94
|
export { BsSwitchSize } from "./components/bs-switch/bs-switch";
|
|
75
95
|
export { BsTabIconPosition } from "./components/bs-tab/bs-tab/bs-tab";
|
|
76
96
|
export { BsTabsOrientation, BsTabsType } from "./components/bs-tab/bs-tabs/bs-tabs";
|
|
97
|
+
export { BsTimepickerChange } from "./components/bs-timepicker/bs-timepicker";
|
|
77
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";
|
|
78
102
|
export namespace Components {
|
|
79
103
|
/**
|
|
80
104
|
* A single collapsible section -- a clickable header (optional leading icon, label, trailing
|
|
@@ -468,6 +492,9 @@ export namespace Components {
|
|
|
468
492
|
* - `error` purely for visual emphasis — it signals a destructive action to the user, so reserve
|
|
469
493
|
* it for actions that actually delete/revoke/undo something.
|
|
470
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.
|
|
471
498
|
* @prop --bs-button-height-sm - Height at `size="sm"`. Aliased to `--bs-spacing-500`.
|
|
472
499
|
* @prop --bs-button-height-md - Height at `size="md"`. Aliased to `--bs-spacing-600`.
|
|
473
500
|
* @prop --bs-button-height-lg - Height at `size="lg"`. Aliased to `--bs-spacing-700`.
|
|
@@ -1174,6 +1201,103 @@ export namespace Components {
|
|
|
1174
1201
|
*/
|
|
1175
1202
|
"type": BsComposerStatusBannerType;
|
|
1176
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
|
+
}
|
|
1177
1301
|
/**
|
|
1178
1302
|
* A sortable, optionally row-selectable table for tabular data.
|
|
1179
1303
|
* `columns`, `rows`, and `cellRenderer` are JS-property-only — HTML attributes can only carry
|
|
@@ -1214,6 +1338,100 @@ export namespace Components {
|
|
|
1214
1338
|
*/
|
|
1215
1339
|
"sortDirection": 'asc' | 'desc';
|
|
1216
1340
|
}
|
|
1341
|
+
/**
|
|
1342
|
+
* An inline calendar for picking a single date, or a start/end date range. Matches the Figma
|
|
1343
|
+
* "Date picker" component's two types: "Default" (month and year dropdowns above the grid) and
|
|
1344
|
+
* "Range" (start and end date fields above the grid, with the days between highlighted).
|
|
1345
|
+
* Dates are always `YYYY-MM-DD` strings, interpreted in the user's local time zone -- never full
|
|
1346
|
+
* ISO timestamps -- so a date can't shift by a day across time zones.
|
|
1347
|
+
* The calendar renders inline at a fixed width; to show it as a popover, put it inside a
|
|
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).
|
|
1350
|
+
* ## When to use
|
|
1351
|
+
* - Picking a date where seeing the surrounding days of the week/month helps (a booking, a
|
|
1352
|
+
* deadline, a report window).
|
|
1353
|
+
* - Picking a period (`range`) such as a start and end date.
|
|
1354
|
+
* ## When not to use
|
|
1355
|
+
* - A date the user knows by heart and can type quickly (a birth date) -- `bs-input type="date"`
|
|
1356
|
+
* is faster there.
|
|
1357
|
+
* ## Keyboard
|
|
1358
|
+
* Arrow keys move by day/week, Home/End jump to the start/end of the week, PageUp/PageDown move by
|
|
1359
|
+
* month (with Shift, by year), Enter/Space select the focused day.
|
|
1360
|
+
*/
|
|
1361
|
+
interface BsDatepicker {
|
|
1362
|
+
/**
|
|
1363
|
+
* The range end (`YYYY-MM-DD`) in `range` mode.
|
|
1364
|
+
* @default ''
|
|
1365
|
+
*/
|
|
1366
|
+
"end": string;
|
|
1367
|
+
/**
|
|
1368
|
+
* Label above the end field in `range` mode.
|
|
1369
|
+
* @default 'End date'
|
|
1370
|
+
*/
|
|
1371
|
+
"endLabel": string;
|
|
1372
|
+
/**
|
|
1373
|
+
* First column of the grid: `0` for Sunday (the Figma spec), `1` for Monday, ... `6`.
|
|
1374
|
+
* @default 0
|
|
1375
|
+
*/
|
|
1376
|
+
"firstDayOfWeek": number;
|
|
1377
|
+
/**
|
|
1378
|
+
* BCP 47 locale used for month names, weekday names and the title.
|
|
1379
|
+
* @default 'en-GB'
|
|
1380
|
+
*/
|
|
1381
|
+
"locale": string;
|
|
1382
|
+
/**
|
|
1383
|
+
* Latest selectable date (`YYYY-MM-DD`). Later days render disabled.
|
|
1384
|
+
*/
|
|
1385
|
+
"max"?: string;
|
|
1386
|
+
/**
|
|
1387
|
+
* Earliest selectable date (`YYYY-MM-DD`). Earlier days render disabled.
|
|
1388
|
+
*/
|
|
1389
|
+
"min"?: string;
|
|
1390
|
+
/**
|
|
1391
|
+
* Accessible name for the month dropdown (single mode).
|
|
1392
|
+
* @default 'Month'
|
|
1393
|
+
*/
|
|
1394
|
+
"monthLabel": string;
|
|
1395
|
+
/**
|
|
1396
|
+
* The `name` the value is submitted under in a surrounding `<form>`. In `range` mode the dates are submitted as `<name>-start` and `<name>-end`.
|
|
1397
|
+
*/
|
|
1398
|
+
"name"?: string;
|
|
1399
|
+
/**
|
|
1400
|
+
* Accessible name for the next-month button.
|
|
1401
|
+
* @default 'Next month'
|
|
1402
|
+
*/
|
|
1403
|
+
"nextLabel": string;
|
|
1404
|
+
/**
|
|
1405
|
+
* Accessible name for the previous-month button.
|
|
1406
|
+
* @default 'Previous month'
|
|
1407
|
+
*/
|
|
1408
|
+
"previousLabel": string;
|
|
1409
|
+
/**
|
|
1410
|
+
* Select a start/end range instead of a single date.
|
|
1411
|
+
* @default false
|
|
1412
|
+
*/
|
|
1413
|
+
"range": boolean;
|
|
1414
|
+
/**
|
|
1415
|
+
* The range start (`YYYY-MM-DD`) in `range` mode.
|
|
1416
|
+
* @default ''
|
|
1417
|
+
*/
|
|
1418
|
+
"start": string;
|
|
1419
|
+
/**
|
|
1420
|
+
* Label above the start field in `range` mode.
|
|
1421
|
+
* @default 'Start date'
|
|
1422
|
+
*/
|
|
1423
|
+
"startLabel": string;
|
|
1424
|
+
/**
|
|
1425
|
+
* The selected date (`YYYY-MM-DD`) in single mode. Mutable so a click updates it directly; `bsChange` still fires for the consumer to react. Ignored when `range` is set.
|
|
1426
|
+
* @default ''
|
|
1427
|
+
*/
|
|
1428
|
+
"value": string;
|
|
1429
|
+
/**
|
|
1430
|
+
* Accessible name for the year dropdown (single mode).
|
|
1431
|
+
* @default 'Year'
|
|
1432
|
+
*/
|
|
1433
|
+
"yearLabel": string;
|
|
1434
|
+
}
|
|
1217
1435
|
/**
|
|
1218
1436
|
* An overlay dialog that interrupts the current flow for a focused task or confirmation.
|
|
1219
1437
|
* Closes itself on backdrop click, Escape, or its own close button, and emits `bsClose`.
|
|
@@ -1248,6 +1466,56 @@ export namespace Components {
|
|
|
1248
1466
|
*/
|
|
1249
1467
|
"size": BsDialogSize;
|
|
1250
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
|
+
}
|
|
1251
1519
|
/**
|
|
1252
1520
|
* A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
|
|
1253
1521
|
* the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
|
|
@@ -1398,6 +1666,36 @@ export namespace Components {
|
|
|
1398
1666
|
*/
|
|
1399
1667
|
"variant": BsIconButtonVariant;
|
|
1400
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
|
+
}
|
|
1401
1699
|
/**
|
|
1402
1700
|
* A pill-shaped tab button -- an optional leading icon plus a text label, rendered as a real
|
|
1403
1701
|
* `<button>` so it participates correctly in tab order and native click/keyboard activation.
|
|
@@ -1829,6 +2127,119 @@ export namespace Components {
|
|
|
1829
2127
|
*/
|
|
1830
2128
|
"skipToContentLabel": string;
|
|
1831
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
|
+
}
|
|
1832
2243
|
/**
|
|
1833
2244
|
* A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
|
|
1834
2245
|
* large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
|
|
@@ -1871,6 +2282,76 @@ export namespace Components {
|
|
|
1871
2282
|
*/
|
|
1872
2283
|
"totalPages": number;
|
|
1873
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
|
+
}
|
|
1874
2355
|
/**
|
|
1875
2356
|
* A circular progress indicator -- either a static ring showing a percentage sweep
|
|
1876
2357
|
* (`type="determinate"`) or a continuously spinning ring signaling in-progress work with no known
|
|
@@ -1957,6 +2438,143 @@ export namespace Components {
|
|
|
1957
2438
|
*/
|
|
1958
2439
|
"value": number;
|
|
1959
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
|
+
}
|
|
1960
2578
|
/**
|
|
1961
2579
|
* A single radio button with its label, for one mutually-exclusive choice within a group.
|
|
1962
2580
|
* ## When to use
|
|
@@ -1987,6 +2605,130 @@ export namespace Components {
|
|
|
1987
2605
|
*/
|
|
1988
2606
|
"value": string;
|
|
1989
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
|
+
}
|
|
1990
2732
|
/**
|
|
1991
2733
|
* A slider for picking a single numeric value (`type="default"`), a value snapped to evenly
|
|
1992
2734
|
* spaced ticks (`type="segmented"`), or a min/max pair (`type="range"`) from within a bounded
|
|
@@ -2090,6 +2832,15 @@ export namespace Components {
|
|
|
2090
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.
|
|
2091
2833
|
*/
|
|
2092
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;
|
|
2093
2844
|
/**
|
|
2094
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.
|
|
2095
2846
|
* @default false
|
|
@@ -2364,6 +3115,80 @@ export namespace Components {
|
|
|
2364
3115
|
*/
|
|
2365
3116
|
"value"?: string;
|
|
2366
3117
|
}
|
|
3118
|
+
/**
|
|
3119
|
+
* An inline time picker: hour and minute spinners (up/down carets, or the arrow keys on the value),
|
|
3120
|
+
* an AM/PM dropdown in 12-hour mode, a 24h switch, and Cancel/Confirm buttons. Matches the Figma
|
|
3121
|
+
* "Time picker" component's two formats (12h with AM/PM, and 24h).
|
|
3122
|
+
* The picker works on a draft: nothing is committed until the user presses Confirm, which updates
|
|
3123
|
+
* `value` and fires `bsChange`. Cancel discards the draft and fires `bsCancel`.
|
|
3124
|
+
* `value` is always 24-hour `HH:mm` (e.g. `"14:30"`), regardless of the displayed `format`.
|
|
3125
|
+
* The picker renders inline at a fixed width; to show it as a popover, put it in your own overlay
|
|
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).
|
|
3128
|
+
* ## When to use
|
|
3129
|
+
* - Picking a time of day where the user steps through hours and minutes.
|
|
3130
|
+
* ## When not to use
|
|
3131
|
+
* - A time the user can type faster than step to -- a plain `bs-input` is quicker.
|
|
3132
|
+
* ## Keyboard
|
|
3133
|
+
* Tab to the hour or minute value, then ArrowUp/ArrowDown step it (wrapping), Home/End jump to the
|
|
3134
|
+
* first/last value, and typing digits sets it directly.
|
|
3135
|
+
*/
|
|
3136
|
+
interface BsTimepicker {
|
|
3137
|
+
/**
|
|
3138
|
+
* Label of the Cancel button.
|
|
3139
|
+
* @default 'Cancel'
|
|
3140
|
+
*/
|
|
3141
|
+
"cancelLabel": string;
|
|
3142
|
+
/**
|
|
3143
|
+
* Label of the Confirm button.
|
|
3144
|
+
* @default 'Confirm'
|
|
3145
|
+
*/
|
|
3146
|
+
"confirmLabel": string;
|
|
3147
|
+
/**
|
|
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.
|
|
3149
|
+
* @default '12h'
|
|
3150
|
+
*/
|
|
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
|
+
}
|
|
2367
3192
|
/**
|
|
2368
3193
|
* A transient status message for confirming the result of an action (e.g. "Files uploaded
|
|
2369
3194
|
* successfully.") -- a state-specific icon, a message, and a close button.
|
|
@@ -2413,6 +3238,198 @@ export namespace Components {
|
|
|
2413
3238
|
*/
|
|
2414
3239
|
"placement": 'top';
|
|
2415
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;
|
|
3369
|
+
/**
|
|
3370
|
+
* Which form: `feed`, `announcement` or `teaser`.
|
|
3371
|
+
* @default 'feed'
|
|
3372
|
+
*/
|
|
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 {
|
|
3387
|
+
/**
|
|
3388
|
+
* Label of the action link (e.g. "Try it"). No action when empty.
|
|
3389
|
+
*/
|
|
3390
|
+
"actionLabel"?: string;
|
|
3391
|
+
/**
|
|
3392
|
+
* The date as text, already formatted for the reader (e.g. "24.09.2026").
|
|
3393
|
+
*/
|
|
3394
|
+
"date"?: string;
|
|
3395
|
+
/**
|
|
3396
|
+
* Short description under the title.
|
|
3397
|
+
*/
|
|
3398
|
+
"description"?: string;
|
|
3399
|
+
/**
|
|
3400
|
+
* Draws a rule under the entry, to separate it from the next one.
|
|
3401
|
+
* @default false
|
|
3402
|
+
*/
|
|
3403
|
+
"divider": boolean;
|
|
3404
|
+
/**
|
|
3405
|
+
* Title.
|
|
3406
|
+
*/
|
|
3407
|
+
"heading"?: string;
|
|
3408
|
+
/**
|
|
3409
|
+
* HTML heading level for the title, 1-6.
|
|
3410
|
+
* @default 3
|
|
3411
|
+
*/
|
|
3412
|
+
"headingLevel": number;
|
|
3413
|
+
/**
|
|
3414
|
+
* The tag text, e.g. "New feature". No tag when empty.
|
|
3415
|
+
*/
|
|
3416
|
+
"tag"?: string;
|
|
3417
|
+
/**
|
|
3418
|
+
* Colour of the tag: `info` (default), `success`, `warning`, `error` or `neutral`.
|
|
3419
|
+
* @default 'info'
|
|
3420
|
+
*/
|
|
3421
|
+
"tagColor": BsWhatsNewEntryTagColor1;
|
|
3422
|
+
/**
|
|
3423
|
+
* Shows a dot after the date for an update the user hasn't seen.
|
|
3424
|
+
* @default false
|
|
3425
|
+
*/
|
|
3426
|
+
"unread": boolean;
|
|
3427
|
+
/**
|
|
3428
|
+
* Visually hidden text for the unread dot.
|
|
3429
|
+
* @default 'Unread'
|
|
3430
|
+
*/
|
|
3431
|
+
"unreadLabel": string;
|
|
3432
|
+
}
|
|
2416
3433
|
}
|
|
2417
3434
|
export interface BsAccordionCustomEvent<T> extends CustomEvent<T> {
|
|
2418
3435
|
detail: T;
|
|
@@ -2474,14 +3491,26 @@ export interface BsComposerStatusBannerCustomEvent<T> extends CustomEvent<T> {
|
|
|
2474
3491
|
detail: T;
|
|
2475
3492
|
target: HTMLBsComposerStatusBannerElement;
|
|
2476
3493
|
}
|
|
3494
|
+
export interface BsCookieConsentCustomEvent<T> extends CustomEvent<T> {
|
|
3495
|
+
detail: T;
|
|
3496
|
+
target: HTMLBsCookieConsentElement;
|
|
3497
|
+
}
|
|
2477
3498
|
export interface BsDataTableCustomEvent<T> extends CustomEvent<T> {
|
|
2478
3499
|
detail: T;
|
|
2479
3500
|
target: HTMLBsDataTableElement;
|
|
2480
3501
|
}
|
|
3502
|
+
export interface BsDatepickerCustomEvent<T> extends CustomEvent<T> {
|
|
3503
|
+
detail: T;
|
|
3504
|
+
target: HTMLBsDatepickerElement;
|
|
3505
|
+
}
|
|
2481
3506
|
export interface BsDialogCustomEvent<T> extends CustomEvent<T> {
|
|
2482
3507
|
detail: T;
|
|
2483
3508
|
target: HTMLBsDialogElement;
|
|
2484
3509
|
}
|
|
3510
|
+
export interface BsErrorPageCustomEvent<T> extends CustomEvent<T> {
|
|
3511
|
+
detail: T;
|
|
3512
|
+
target: HTMLBsErrorPageElement;
|
|
3513
|
+
}
|
|
2485
3514
|
export interface BsFileUploadCustomEvent<T> extends CustomEvent<T> {
|
|
2486
3515
|
detail: T;
|
|
2487
3516
|
target: HTMLBsFileUploadElement;
|
|
@@ -2510,14 +3539,30 @@ export interface BsNavigationDrawerItemCustomEvent<T> extends CustomEvent<T> {
|
|
|
2510
3539
|
detail: T;
|
|
2511
3540
|
target: HTMLBsNavigationDrawerItemElement;
|
|
2512
3541
|
}
|
|
3542
|
+
export interface BsOnboardingChecklistCustomEvent<T> extends CustomEvent<T> {
|
|
3543
|
+
detail: T;
|
|
3544
|
+
target: HTMLBsOnboardingChecklistElement;
|
|
3545
|
+
}
|
|
2513
3546
|
export interface BsPaginationCustomEvent<T> extends CustomEvent<T> {
|
|
2514
3547
|
detail: T;
|
|
2515
3548
|
target: HTMLBsPaginationElement;
|
|
2516
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
|
+
}
|
|
2517
3558
|
export interface BsRadioCustomEvent<T> extends CustomEvent<T> {
|
|
2518
3559
|
detail: T;
|
|
2519
3560
|
target: HTMLBsRadioElement;
|
|
2520
3561
|
}
|
|
3562
|
+
export interface BsSessionTimeoutCustomEvent<T> extends CustomEvent<T> {
|
|
3563
|
+
detail: T;
|
|
3564
|
+
target: HTMLBsSessionTimeoutElement;
|
|
3565
|
+
}
|
|
2521
3566
|
export interface BsSliderCustomEvent<T> extends CustomEvent<T> {
|
|
2522
3567
|
detail: T;
|
|
2523
3568
|
target: HTMLBsSliderElement;
|
|
@@ -2542,10 +3587,22 @@ export interface BsTabsCustomEvent<T> extends CustomEvent<T> {
|
|
|
2542
3587
|
detail: T;
|
|
2543
3588
|
target: HTMLBsTabsElement;
|
|
2544
3589
|
}
|
|
3590
|
+
export interface BsTimepickerCustomEvent<T> extends CustomEvent<T> {
|
|
3591
|
+
detail: T;
|
|
3592
|
+
target: HTMLBsTimepickerElement;
|
|
3593
|
+
}
|
|
2545
3594
|
export interface BsToastCustomEvent<T> extends CustomEvent<T> {
|
|
2546
3595
|
detail: T;
|
|
2547
3596
|
target: HTMLBsToastElement;
|
|
2548
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
|
+
}
|
|
2549
3606
|
declare global {
|
|
2550
3607
|
interface HTMLBsAccordionElementEventMap {
|
|
2551
3608
|
"bsToggle": boolean;
|
|
@@ -2875,6 +3932,9 @@ declare global {
|
|
|
2875
3932
|
* - `error` purely for visual emphasis — it signals a destructive action to the user, so reserve
|
|
2876
3933
|
* it for actions that actually delete/revoke/undo something.
|
|
2877
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.
|
|
2878
3938
|
* @prop --bs-button-height-sm - Height at `size="sm"`. Aliased to `--bs-spacing-500`.
|
|
2879
3939
|
* @prop --bs-button-height-md - Height at `size="md"`. Aliased to `--bs-spacing-600`.
|
|
2880
3940
|
* @prop --bs-button-height-lg - Height at `size="lg"`. Aliased to `--bs-spacing-700`.
|
|
@@ -3473,14 +4533,60 @@ declare global {
|
|
|
3473
4533
|
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3474
4534
|
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
3475
4535
|
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
3476
|
-
removeEventListener<K extends keyof HTMLBsComposerStatusBannerElementEventMap>(type: K, listener: (this: HTMLBsComposerStatusBannerElement, ev: BsComposerStatusBannerCustomEvent<HTMLBsComposerStatusBannerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
4536
|
+
removeEventListener<K extends keyof HTMLBsComposerStatusBannerElementEventMap>(type: K, listener: (this: HTMLBsComposerStatusBannerElement, ev: BsComposerStatusBannerCustomEvent<HTMLBsComposerStatusBannerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
4537
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4538
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4539
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
4540
|
+
}
|
|
4541
|
+
var HTMLBsComposerStatusBannerElement: {
|
|
4542
|
+
prototype: HTMLBsComposerStatusBannerElement;
|
|
4543
|
+
new (): HTMLBsComposerStatusBannerElement;
|
|
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;
|
|
3477
4583
|
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3478
4584
|
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
3479
4585
|
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
3480
4586
|
}
|
|
3481
|
-
var
|
|
3482
|
-
prototype:
|
|
3483
|
-
new ():
|
|
4587
|
+
var HTMLBsCookieConsentElement: {
|
|
4588
|
+
prototype: HTMLBsCookieConsentElement;
|
|
4589
|
+
new (): HTMLBsCookieConsentElement;
|
|
3484
4590
|
};
|
|
3485
4591
|
interface HTMLBsDataTableElementEventMap {
|
|
3486
4592
|
"bsSort": { column: string; direction: 'asc' | 'desc' };
|
|
@@ -3511,6 +4617,43 @@ declare global {
|
|
|
3511
4617
|
prototype: HTMLBsDataTableElement;
|
|
3512
4618
|
new (): HTMLBsDataTableElement;
|
|
3513
4619
|
};
|
|
4620
|
+
interface HTMLBsDatepickerElementEventMap {
|
|
4621
|
+
"bsChange": BsDatepickerChange;
|
|
4622
|
+
}
|
|
4623
|
+
/**
|
|
4624
|
+
* An inline calendar for picking a single date, or a start/end date range. Matches the Figma
|
|
4625
|
+
* "Date picker" component's two types: "Default" (month and year dropdowns above the grid) and
|
|
4626
|
+
* "Range" (start and end date fields above the grid, with the days between highlighted).
|
|
4627
|
+
* Dates are always `YYYY-MM-DD` strings, interpreted in the user's local time zone -- never full
|
|
4628
|
+
* ISO timestamps -- so a date can't shift by a day across time zones.
|
|
4629
|
+
* The calendar renders inline at a fixed width; to show it as a popover, put it inside a
|
|
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).
|
|
4632
|
+
* ## When to use
|
|
4633
|
+
* - Picking a date where seeing the surrounding days of the week/month helps (a booking, a
|
|
4634
|
+
* deadline, a report window).
|
|
4635
|
+
* - Picking a period (`range`) such as a start and end date.
|
|
4636
|
+
* ## When not to use
|
|
4637
|
+
* - A date the user knows by heart and can type quickly (a birth date) -- `bs-input type="date"`
|
|
4638
|
+
* is faster there.
|
|
4639
|
+
* ## Keyboard
|
|
4640
|
+
* Arrow keys move by day/week, Home/End jump to the start/end of the week, PageUp/PageDown move by
|
|
4641
|
+
* month (with Shift, by year), Enter/Space select the focused day.
|
|
4642
|
+
*/
|
|
4643
|
+
interface HTMLBsDatepickerElement extends Components.BsDatepicker, HTMLStencilElement {
|
|
4644
|
+
addEventListener<K extends keyof HTMLBsDatepickerElementEventMap>(type: K, listener: (this: HTMLBsDatepickerElement, ev: BsDatepickerCustomEvent<HTMLBsDatepickerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4645
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4646
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4647
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
4648
|
+
removeEventListener<K extends keyof HTMLBsDatepickerElementEventMap>(type: K, listener: (this: HTMLBsDatepickerElement, ev: BsDatepickerCustomEvent<HTMLBsDatepickerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
4649
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4650
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4651
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
4652
|
+
}
|
|
4653
|
+
var HTMLBsDatepickerElement: {
|
|
4654
|
+
prototype: HTMLBsDatepickerElement;
|
|
4655
|
+
new (): HTMLBsDatepickerElement;
|
|
4656
|
+
};
|
|
3514
4657
|
interface HTMLBsDialogElementEventMap {
|
|
3515
4658
|
"bsClose": void;
|
|
3516
4659
|
}
|
|
@@ -3545,6 +4688,38 @@ declare global {
|
|
|
3545
4688
|
prototype: HTMLBsDialogElement;
|
|
3546
4689
|
new (): HTMLBsDialogElement;
|
|
3547
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
|
+
};
|
|
3548
4723
|
interface HTMLBsFileUploadElementEventMap {
|
|
3549
4724
|
"bsFilesSelect": File[];
|
|
3550
4725
|
"bsFilesReject": File[];
|
|
@@ -3627,6 +4802,26 @@ declare global {
|
|
|
3627
4802
|
prototype: HTMLBsIconButtonElement;
|
|
3628
4803
|
new (): HTMLBsIconButtonElement;
|
|
3629
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
|
+
};
|
|
3630
4825
|
interface HTMLBsInlineTabElementEventMap {
|
|
3631
4826
|
"bsSelect": void;
|
|
3632
4827
|
}
|
|
@@ -3925,6 +5120,52 @@ declare global {
|
|
|
3925
5120
|
prototype: HTMLBsNavigationHeaderElement;
|
|
3926
5121
|
new (): HTMLBsNavigationHeaderElement;
|
|
3927
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
|
+
};
|
|
3928
5169
|
interface HTMLBsPaginationElementEventMap {
|
|
3929
5170
|
"bsPageChange": number;
|
|
3930
5171
|
}
|
|
@@ -3957,6 +5198,42 @@ declare global {
|
|
|
3957
5198
|
prototype: HTMLBsPaginationElement;
|
|
3958
5199
|
new (): HTMLBsPaginationElement;
|
|
3959
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
|
+
};
|
|
3960
5237
|
/**
|
|
3961
5238
|
* A circular progress indicator -- either a static ring showing a percentage sweep
|
|
3962
5239
|
* (`type="determinate"`) or a continuously spinning ring signaling in-progress work with no known
|
|
@@ -3996,6 +5273,48 @@ declare global {
|
|
|
3996
5273
|
prototype: HTMLBsProgressLinearElement;
|
|
3997
5274
|
new (): HTMLBsProgressLinearElement;
|
|
3998
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
|
+
};
|
|
3999
5318
|
interface HTMLBsRadioElementEventMap {
|
|
4000
5319
|
"bsChange": string;
|
|
4001
5320
|
}
|
|
@@ -4023,6 +5342,53 @@ declare global {
|
|
|
4023
5342
|
prototype: HTMLBsRadioElement;
|
|
4024
5343
|
new (): HTMLBsRadioElement;
|
|
4025
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
|
+
};
|
|
4026
5392
|
interface HTMLBsSliderElementEventMap {
|
|
4027
5393
|
"bsChange": number;
|
|
4028
5394
|
"bsRangeChange": { start: number; end: number };
|
|
@@ -4282,6 +5648,42 @@ declare global {
|
|
|
4282
5648
|
prototype: HTMLBsTabsElement;
|
|
4283
5649
|
new (): HTMLBsTabsElement;
|
|
4284
5650
|
};
|
|
5651
|
+
interface HTMLBsTimepickerElementEventMap {
|
|
5652
|
+
"bsChange": BsTimepickerChange;
|
|
5653
|
+
"bsCancel": void;
|
|
5654
|
+
}
|
|
5655
|
+
/**
|
|
5656
|
+
* An inline time picker: hour and minute spinners (up/down carets, or the arrow keys on the value),
|
|
5657
|
+
* an AM/PM dropdown in 12-hour mode, a 24h switch, and Cancel/Confirm buttons. Matches the Figma
|
|
5658
|
+
* "Time picker" component's two formats (12h with AM/PM, and 24h).
|
|
5659
|
+
* The picker works on a draft: nothing is committed until the user presses Confirm, which updates
|
|
5660
|
+
* `value` and fires `bsChange`. Cancel discards the draft and fires `bsCancel`.
|
|
5661
|
+
* `value` is always 24-hour `HH:mm` (e.g. `"14:30"`), regardless of the displayed `format`.
|
|
5662
|
+
* The picker renders inline at a fixed width; to show it as a popover, put it in your own overlay
|
|
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).
|
|
5665
|
+
* ## When to use
|
|
5666
|
+
* - Picking a time of day where the user steps through hours and minutes.
|
|
5667
|
+
* ## When not to use
|
|
5668
|
+
* - A time the user can type faster than step to -- a plain `bs-input` is quicker.
|
|
5669
|
+
* ## Keyboard
|
|
5670
|
+
* Tab to the hour or minute value, then ArrowUp/ArrowDown step it (wrapping), Home/End jump to the
|
|
5671
|
+
* first/last value, and typing digits sets it directly.
|
|
5672
|
+
*/
|
|
5673
|
+
interface HTMLBsTimepickerElement extends Components.BsTimepicker, HTMLStencilElement {
|
|
5674
|
+
addEventListener<K extends keyof HTMLBsTimepickerElementEventMap>(type: K, listener: (this: HTMLBsTimepickerElement, ev: BsTimepickerCustomEvent<HTMLBsTimepickerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5675
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5676
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
5677
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
5678
|
+
removeEventListener<K extends keyof HTMLBsTimepickerElementEventMap>(type: K, listener: (this: HTMLBsTimepickerElement, ev: BsTimepickerCustomEvent<HTMLBsTimepickerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
5679
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5680
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
5681
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
5682
|
+
}
|
|
5683
|
+
var HTMLBsTimepickerElement: {
|
|
5684
|
+
prototype: HTMLBsTimepickerElement;
|
|
5685
|
+
new (): HTMLBsTimepickerElement;
|
|
5686
|
+
};
|
|
4285
5687
|
interface HTMLBsToastElementEventMap {
|
|
4286
5688
|
"bsDismiss": void;
|
|
4287
5689
|
}
|
|
@@ -4340,6 +5742,75 @@ declare global {
|
|
|
4340
5742
|
prototype: HTMLBsTooltipElement;
|
|
4341
5743
|
new (): HTMLBsTooltipElement;
|
|
4342
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
|
+
};
|
|
4343
5814
|
interface HTMLElementTagNameMap {
|
|
4344
5815
|
"bs-accordion": HTMLBsAccordionElement;
|
|
4345
5816
|
"bs-ai-disclaimer": HTMLBsAiDisclaimerElement;
|
|
@@ -4368,11 +5839,15 @@ declare global {
|
|
|
4368
5839
|
"bs-chip-input": HTMLBsChipInputElement;
|
|
4369
5840
|
"bs-composer": HTMLBsComposerElement;
|
|
4370
5841
|
"bs-composer-status-banner": HTMLBsComposerStatusBannerElement;
|
|
5842
|
+
"bs-cookie-consent": HTMLBsCookieConsentElement;
|
|
4371
5843
|
"bs-data-table": HTMLBsDataTableElement;
|
|
5844
|
+
"bs-datepicker": HTMLBsDatepickerElement;
|
|
4372
5845
|
"bs-dialog": HTMLBsDialogElement;
|
|
5846
|
+
"bs-error-page": HTMLBsErrorPageElement;
|
|
4373
5847
|
"bs-file-upload": HTMLBsFileUploadElement;
|
|
4374
5848
|
"bs-file-upload-item": HTMLBsFileUploadItemElement;
|
|
4375
5849
|
"bs-icon-button": HTMLBsIconButtonElement;
|
|
5850
|
+
"bs-icon-tile": HTMLBsIconTileElement;
|
|
4376
5851
|
"bs-inline-tab": HTMLBsInlineTabElement;
|
|
4377
5852
|
"bs-input": HTMLBsInputElement;
|
|
4378
5853
|
"bs-logo": HTMLBsLogoElement;
|
|
@@ -4381,10 +5856,14 @@ declare global {
|
|
|
4381
5856
|
"bs-navigation-drawer": HTMLBsNavigationDrawerElement;
|
|
4382
5857
|
"bs-navigation-drawer-item": HTMLBsNavigationDrawerItemElement;
|
|
4383
5858
|
"bs-navigation-header": HTMLBsNavigationHeaderElement;
|
|
5859
|
+
"bs-onboarding-checklist": HTMLBsOnboardingChecklistElement;
|
|
4384
5860
|
"bs-pagination": HTMLBsPaginationElement;
|
|
5861
|
+
"bs-product-tour": HTMLBsProductTourElement;
|
|
4385
5862
|
"bs-progress": HTMLBsProgressElement;
|
|
4386
5863
|
"bs-progress-linear": HTMLBsProgressLinearElement;
|
|
5864
|
+
"bs-qr-code": HTMLBsQrCodeElement;
|
|
4387
5865
|
"bs-radio": HTMLBsRadioElement;
|
|
5866
|
+
"bs-session-timeout": HTMLBsSessionTimeoutElement;
|
|
4388
5867
|
"bs-slider": HTMLBsSliderElement;
|
|
4389
5868
|
"bs-snackbar": HTMLBsSnackbarElement;
|
|
4390
5869
|
"bs-source-link": HTMLBsSourceLinkElement;
|
|
@@ -4393,8 +5872,11 @@ declare global {
|
|
|
4393
5872
|
"bs-switch": HTMLBsSwitchElement;
|
|
4394
5873
|
"bs-tab": HTMLBsTabElement;
|
|
4395
5874
|
"bs-tabs": HTMLBsTabsElement;
|
|
5875
|
+
"bs-timepicker": HTMLBsTimepickerElement;
|
|
4396
5876
|
"bs-toast": HTMLBsToastElement;
|
|
4397
5877
|
"bs-tooltip": HTMLBsTooltipElement;
|
|
5878
|
+
"bs-whats-new": HTMLBsWhatsNewElement;
|
|
5879
|
+
"bs-whats-new-entry": HTMLBsWhatsNewEntryElement;
|
|
4398
5880
|
}
|
|
4399
5881
|
}
|
|
4400
5882
|
declare namespace LocalJSX {
|
|
@@ -4806,6 +6288,9 @@ declare namespace LocalJSX {
|
|
|
4806
6288
|
* - `error` purely for visual emphasis — it signals a destructive action to the user, so reserve
|
|
4807
6289
|
* it for actions that actually delete/revoke/undo something.
|
|
4808
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.
|
|
4809
6294
|
* @prop --bs-button-height-sm - Height at `size="sm"`. Aliased to `--bs-spacing-500`.
|
|
4810
6295
|
* @prop --bs-button-height-md - Height at `size="md"`. Aliased to `--bs-spacing-600`.
|
|
4811
6296
|
* @prop --bs-button-height-lg - Height at `size="lg"`. Aliased to `--bs-spacing-700`.
|
|
@@ -5648,6 +7133,131 @@ declare namespace LocalJSX {
|
|
|
5648
7133
|
*/
|
|
5649
7134
|
"type"?: BsComposerStatusBannerType;
|
|
5650
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'
|
|
7188
|
+
*/
|
|
7189
|
+
"customiseLabel"?: string;
|
|
7190
|
+
/**
|
|
7191
|
+
* Paragraph under the heading (the message, for `saved`). Defaults per `type`.
|
|
7192
|
+
*/
|
|
7193
|
+
"description"?: string;
|
|
7194
|
+
/**
|
|
7195
|
+
* Heading. Defaults per `type`.
|
|
7196
|
+
*/
|
|
7197
|
+
"heading"?: string;
|
|
7198
|
+
/**
|
|
7199
|
+
* HTML heading level, 1-6.
|
|
7200
|
+
* @default 2
|
|
7201
|
+
*/
|
|
7202
|
+
"headingLevel"?: number;
|
|
7203
|
+
/**
|
|
7204
|
+
* Fires when Accept all is pressed. `{ choices }` has every category on.
|
|
7205
|
+
*/
|
|
7206
|
+
"onBsAccept"?: (event: BsCookieConsentCustomEvent<{ choices: BsCookieChoices }>) => void;
|
|
7207
|
+
/**
|
|
7208
|
+
* Fires when a category switch is toggled (`preferences`).
|
|
7209
|
+
*/
|
|
7210
|
+
"onBsChoice"?: (event: BsCookieConsentCustomEvent<{ id: string; enabled: boolean }>) => void;
|
|
7211
|
+
/**
|
|
7212
|
+
* Fires when the close button is pressed (`preferences`).
|
|
7213
|
+
*/
|
|
7214
|
+
"onBsClose"?: (event: BsCookieConsentCustomEvent<void>) => void;
|
|
7215
|
+
/**
|
|
7216
|
+
* Fires when Customise is pressed -- show the `preferences` form.
|
|
7217
|
+
*/
|
|
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;
|
|
7260
|
+
}
|
|
5651
7261
|
/**
|
|
5652
7262
|
* A sortable, optionally row-selectable table for tabular data.
|
|
5653
7263
|
* `columns`, `rows`, and `cellRenderer` are JS-property-only — HTML attributes can only carry
|
|
@@ -5686,6 +7296,112 @@ declare namespace LocalJSX {
|
|
|
5686
7296
|
*/
|
|
5687
7297
|
"sortDirection"?: 'asc' | 'desc';
|
|
5688
7298
|
}
|
|
7299
|
+
/**
|
|
7300
|
+
* An inline calendar for picking a single date, or a start/end date range. Matches the Figma
|
|
7301
|
+
* "Date picker" component's two types: "Default" (month and year dropdowns above the grid) and
|
|
7302
|
+
* "Range" (start and end date fields above the grid, with the days between highlighted).
|
|
7303
|
+
* Dates are always `YYYY-MM-DD` strings, interpreted in the user's local time zone -- never full
|
|
7304
|
+
* ISO timestamps -- so a date can't shift by a day across time zones.
|
|
7305
|
+
* The calendar renders inline at a fixed width; to show it as a popover, put it inside a
|
|
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).
|
|
7308
|
+
* ## When to use
|
|
7309
|
+
* - Picking a date where seeing the surrounding days of the week/month helps (a booking, a
|
|
7310
|
+
* deadline, a report window).
|
|
7311
|
+
* - Picking a period (`range`) such as a start and end date.
|
|
7312
|
+
* ## When not to use
|
|
7313
|
+
* - A date the user knows by heart and can type quickly (a birth date) -- `bs-input type="date"`
|
|
7314
|
+
* is faster there.
|
|
7315
|
+
* ## Keyboard
|
|
7316
|
+
* Arrow keys move by day/week, Home/End jump to the start/end of the week, PageUp/PageDown move by
|
|
7317
|
+
* month (with Shift, by year), Enter/Space select the focused day.
|
|
7318
|
+
*/
|
|
7319
|
+
interface BsDatepicker {
|
|
7320
|
+
/**
|
|
7321
|
+
* If `true`, the user cannot interact with the element.
|
|
7322
|
+
*/
|
|
7323
|
+
"disabled"?: boolean;
|
|
7324
|
+
/**
|
|
7325
|
+
* The range end (`YYYY-MM-DD`) in `range` mode.
|
|
7326
|
+
* @default ''
|
|
7327
|
+
*/
|
|
7328
|
+
"end"?: string;
|
|
7329
|
+
/**
|
|
7330
|
+
* Label above the end field in `range` mode.
|
|
7331
|
+
* @default 'End date'
|
|
7332
|
+
*/
|
|
7333
|
+
"endLabel"?: string;
|
|
7334
|
+
/**
|
|
7335
|
+
* First column of the grid: `0` for Sunday (the Figma spec), `1` for Monday, ... `6`.
|
|
7336
|
+
* @default 0
|
|
7337
|
+
*/
|
|
7338
|
+
"firstDayOfWeek"?: number;
|
|
7339
|
+
/**
|
|
7340
|
+
* The `id` of a `<form>` element to associate this element with.
|
|
7341
|
+
*/
|
|
7342
|
+
"form"?: string;
|
|
7343
|
+
/**
|
|
7344
|
+
* BCP 47 locale used for month names, weekday names and the title.
|
|
7345
|
+
* @default 'en-GB'
|
|
7346
|
+
*/
|
|
7347
|
+
"locale"?: string;
|
|
7348
|
+
/**
|
|
7349
|
+
* Latest selectable date (`YYYY-MM-DD`). Later days render disabled.
|
|
7350
|
+
*/
|
|
7351
|
+
"max"?: string;
|
|
7352
|
+
/**
|
|
7353
|
+
* Earliest selectable date (`YYYY-MM-DD`). Earlier days render disabled.
|
|
7354
|
+
*/
|
|
7355
|
+
"min"?: string;
|
|
7356
|
+
/**
|
|
7357
|
+
* Accessible name for the month dropdown (single mode).
|
|
7358
|
+
* @default 'Month'
|
|
7359
|
+
*/
|
|
7360
|
+
"monthLabel"?: string;
|
|
7361
|
+
/**
|
|
7362
|
+
* The `name` the value is submitted under in a surrounding `<form>`. In `range` mode the dates are submitted as `<name>-start` and `<name>-end`.
|
|
7363
|
+
*/
|
|
7364
|
+
"name"?: string;
|
|
7365
|
+
/**
|
|
7366
|
+
* Accessible name for the next-month button.
|
|
7367
|
+
* @default 'Next month'
|
|
7368
|
+
*/
|
|
7369
|
+
"nextLabel"?: string;
|
|
7370
|
+
/**
|
|
7371
|
+
* Fires when the user changes the selection. Single mode: `{ value }`. Range mode: `{ start, end }` -- fired once for the first click (with an empty `end`) and again when the range is completed. Not fired when the props are set programmatically.
|
|
7372
|
+
*/
|
|
7373
|
+
"onBsChange"?: (event: BsDatepickerCustomEvent<BsDatepickerChange>) => void;
|
|
7374
|
+
/**
|
|
7375
|
+
* Accessible name for the previous-month button.
|
|
7376
|
+
* @default 'Previous month'
|
|
7377
|
+
*/
|
|
7378
|
+
"previousLabel"?: string;
|
|
7379
|
+
/**
|
|
7380
|
+
* Select a start/end range instead of a single date.
|
|
7381
|
+
* @default false
|
|
7382
|
+
*/
|
|
7383
|
+
"range"?: boolean;
|
|
7384
|
+
/**
|
|
7385
|
+
* The range start (`YYYY-MM-DD`) in `range` mode.
|
|
7386
|
+
* @default ''
|
|
7387
|
+
*/
|
|
7388
|
+
"start"?: string;
|
|
7389
|
+
/**
|
|
7390
|
+
* Label above the start field in `range` mode.
|
|
7391
|
+
* @default 'Start date'
|
|
7392
|
+
*/
|
|
7393
|
+
"startLabel"?: string;
|
|
7394
|
+
/**
|
|
7395
|
+
* The selected date (`YYYY-MM-DD`) in single mode. Mutable so a click updates it directly; `bsChange` still fires for the consumer to react. Ignored when `range` is set.
|
|
7396
|
+
* @default ''
|
|
7397
|
+
*/
|
|
7398
|
+
"value"?: string;
|
|
7399
|
+
/**
|
|
7400
|
+
* Accessible name for the year dropdown (single mode).
|
|
7401
|
+
* @default 'Year'
|
|
7402
|
+
*/
|
|
7403
|
+
"yearLabel"?: string;
|
|
7404
|
+
}
|
|
5689
7405
|
/**
|
|
5690
7406
|
* An overlay dialog that interrupts the current flow for a focused task or confirmation.
|
|
5691
7407
|
* Closes itself on backdrop click, Escape, or its own close button, and emits `bsClose`.
|
|
@@ -5715,11 +7431,69 @@ declare namespace LocalJSX {
|
|
|
5715
7431
|
* Mutable + reflected so the component can close itself (backdrop click, Escape, close button) the same way a native `<dialog>` does, while still emitting `bsClose` for the consumer to react to.
|
|
5716
7432
|
* @default false
|
|
5717
7433
|
*/
|
|
5718
|
-
"open"?: boolean;
|
|
7434
|
+
"open"?: boolean;
|
|
7435
|
+
/**
|
|
7436
|
+
* @default 'md'
|
|
7437
|
+
*/
|
|
7438
|
+
"size"?: BsDialogSize;
|
|
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;
|
|
5719
7492
|
/**
|
|
5720
|
-
*
|
|
7493
|
+
* Which error: `not-found` (404), `server-error` (500), `no-access` (403), `maintenance` or `offline`.
|
|
7494
|
+
* @default 'not-found'
|
|
5721
7495
|
*/
|
|
5722
|
-
"
|
|
7496
|
+
"type"?: BsErrorPageType;
|
|
5723
7497
|
}
|
|
5724
7498
|
/**
|
|
5725
7499
|
* A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
|
|
@@ -5895,6 +7669,36 @@ declare namespace LocalJSX {
|
|
|
5895
7669
|
*/
|
|
5896
7670
|
"variant"?: BsIconButtonVariant;
|
|
5897
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
|
+
}
|
|
5898
7702
|
/**
|
|
5899
7703
|
* A pill-shaped tab button -- an optional leading icon plus a text label, rendered as a real
|
|
5900
7704
|
* `<button>` so it participates correctly in tab order and native click/keyboard activation.
|
|
@@ -6380,6 +8184,143 @@ declare namespace LocalJSX {
|
|
|
6380
8184
|
*/
|
|
6381
8185
|
"skipToContentLabel"?: string;
|
|
6382
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
|
+
}
|
|
6383
8324
|
/**
|
|
6384
8325
|
* A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
|
|
6385
8326
|
* large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
|
|
@@ -6426,6 +8367,88 @@ declare namespace LocalJSX {
|
|
|
6426
8367
|
*/
|
|
6427
8368
|
"totalPages"?: number;
|
|
6428
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
|
+
}
|
|
6429
8452
|
/**
|
|
6430
8453
|
* A circular progress indicator -- either a static ring showing a percentage sweep
|
|
6431
8454
|
* (`type="determinate"`) or a continuously spinning ring signaling in-progress work with no known
|
|
@@ -6512,6 +8535,163 @@ declare namespace LocalJSX {
|
|
|
6512
8535
|
*/
|
|
6513
8536
|
"value"?: number;
|
|
6514
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;
|
|
8690
|
+
/**
|
|
8691
|
+
* The link shown as text under the code (`type="default"`), and copied by Copy link.
|
|
8692
|
+
*/
|
|
8693
|
+
"url"?: string;
|
|
8694
|
+
}
|
|
6515
8695
|
/**
|
|
6516
8696
|
* A single radio button with its label, for one mutually-exclusive choice within a group.
|
|
6517
8697
|
* ## When to use
|
|
@@ -6534,21 +8714,165 @@ declare namespace LocalJSX {
|
|
|
6534
8714
|
*/
|
|
6535
8715
|
"disabled"?: boolean;
|
|
6536
8716
|
/**
|
|
6537
|
-
* The `id` of a `<form>` element to associate this element with.
|
|
8717
|
+
* The `id` of a `<form>` element to associate this element with.
|
|
8718
|
+
*/
|
|
8719
|
+
"form"?: string;
|
|
8720
|
+
/**
|
|
8721
|
+
* The native radio input's `name` attribute. Passed straight through to the native input inside. Also the group key: `bs-radio` elements sharing a `name` within the same root (document or shadow root) behave as one radio group -- checking one unchecks the others, arrow keys move between them, and only one is in the tab order. Native grouping can't cross each radio's own shadow root, so this component implements it itself.
|
|
8722
|
+
*/
|
|
8723
|
+
"name"?: string;
|
|
8724
|
+
/**
|
|
8725
|
+
* Emitted with this radio's own `value` when it becomes checked via user interaction. Since native same-`name` grouping doesn't cross shadow-root boundaries (see the `name` prop's doc), a consumer wiring up a group of `bs-radio`s does not need to un-check the others itself.
|
|
8726
|
+
*/
|
|
8727
|
+
"onBsChange"?: (event: BsRadioCustomEvent<string>) => void;
|
|
8728
|
+
/**
|
|
8729
|
+
* The native radio input's `value` attribute -- read from `event.target.value`, or used when wiring the group up to a form.
|
|
8730
|
+
*/
|
|
8731
|
+
"value"?: string;
|
|
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'
|
|
6538
8859
|
*/
|
|
6539
|
-
"
|
|
8860
|
+
"secondsLeftLabel"?: string;
|
|
6540
8861
|
/**
|
|
6541
|
-
*
|
|
8862
|
+
* Text next to the time while a minute or more is left.
|
|
8863
|
+
* @default 'minutes left'
|
|
6542
8864
|
*/
|
|
6543
|
-
"
|
|
8865
|
+
"timeLeftLabel"?: string;
|
|
6544
8866
|
/**
|
|
6545
|
-
*
|
|
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
|
|
6546
8869
|
*/
|
|
6547
|
-
"
|
|
8870
|
+
"totalSeconds"?: number;
|
|
6548
8871
|
/**
|
|
6549
|
-
*
|
|
8872
|
+
* Which moment: `warning`, `signed-out` or `confirm-identity`.
|
|
8873
|
+
* @default 'warning'
|
|
6550
8874
|
*/
|
|
6551
|
-
"
|
|
8875
|
+
"type"?: BsSessionTimeoutType;
|
|
6552
8876
|
}
|
|
6553
8877
|
/**
|
|
6554
8878
|
* A slider for picking a single numeric value (`type="default"`), a value snapped to evenly
|
|
@@ -6665,6 +8989,15 @@ declare namespace LocalJSX {
|
|
|
6665
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.
|
|
6666
8990
|
*/
|
|
6667
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;
|
|
6668
9001
|
/**
|
|
6669
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.
|
|
6670
9003
|
* @default false
|
|
@@ -6967,6 +9300,96 @@ declare namespace LocalJSX {
|
|
|
6967
9300
|
*/
|
|
6968
9301
|
"value"?: string;
|
|
6969
9302
|
}
|
|
9303
|
+
/**
|
|
9304
|
+
* An inline time picker: hour and minute spinners (up/down carets, or the arrow keys on the value),
|
|
9305
|
+
* an AM/PM dropdown in 12-hour mode, a 24h switch, and Cancel/Confirm buttons. Matches the Figma
|
|
9306
|
+
* "Time picker" component's two formats (12h with AM/PM, and 24h).
|
|
9307
|
+
* The picker works on a draft: nothing is committed until the user presses Confirm, which updates
|
|
9308
|
+
* `value` and fires `bsChange`. Cancel discards the draft and fires `bsCancel`.
|
|
9309
|
+
* `value` is always 24-hour `HH:mm` (e.g. `"14:30"`), regardless of the displayed `format`.
|
|
9310
|
+
* The picker renders inline at a fixed width; to show it as a popover, put it in your own overlay
|
|
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).
|
|
9313
|
+
* ## When to use
|
|
9314
|
+
* - Picking a time of day where the user steps through hours and minutes.
|
|
9315
|
+
* ## When not to use
|
|
9316
|
+
* - A time the user can type faster than step to -- a plain `bs-input` is quicker.
|
|
9317
|
+
* ## Keyboard
|
|
9318
|
+
* Tab to the hour or minute value, then ArrowUp/ArrowDown step it (wrapping), Home/End jump to the
|
|
9319
|
+
* first/last value, and typing digits sets it directly.
|
|
9320
|
+
*/
|
|
9321
|
+
interface BsTimepicker {
|
|
9322
|
+
/**
|
|
9323
|
+
* Label of the Cancel button.
|
|
9324
|
+
* @default 'Cancel'
|
|
9325
|
+
*/
|
|
9326
|
+
"cancelLabel"?: string;
|
|
9327
|
+
/**
|
|
9328
|
+
* Label of the Confirm button.
|
|
9329
|
+
* @default 'Confirm'
|
|
9330
|
+
*/
|
|
9331
|
+
"confirmLabel"?: string;
|
|
9332
|
+
/**
|
|
9333
|
+
* If `true`, the user cannot interact with the element.
|
|
9334
|
+
*/
|
|
9335
|
+
"disabled"?: boolean;
|
|
9336
|
+
/**
|
|
9337
|
+
* The `id` of a `<form>` element to associate this element with.
|
|
9338
|
+
*/
|
|
9339
|
+
"form"?: string;
|
|
9340
|
+
/**
|
|
9341
|
+
* 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.
|
|
9342
|
+
* @default '12h'
|
|
9343
|
+
*/
|
|
9344
|
+
"format"?: '12h' | '24h';
|
|
9345
|
+
/**
|
|
9346
|
+
* Label of the 24h switch.
|
|
9347
|
+
* @default '24h'
|
|
9348
|
+
*/
|
|
9349
|
+
"formatLabel"?: string;
|
|
9350
|
+
/**
|
|
9351
|
+
* Heading text.
|
|
9352
|
+
* @default 'Select Time'
|
|
9353
|
+
*/
|
|
9354
|
+
"heading"?: string;
|
|
9355
|
+
/**
|
|
9356
|
+
* Accessible name of the hour spinner.
|
|
9357
|
+
* @default 'Hour'
|
|
9358
|
+
*/
|
|
9359
|
+
"hourLabel"?: string;
|
|
9360
|
+
/**
|
|
9361
|
+
* Accessible name of the minute spinner.
|
|
9362
|
+
* @default 'Minute'
|
|
9363
|
+
*/
|
|
9364
|
+
"minuteLabel"?: string;
|
|
9365
|
+
/**
|
|
9366
|
+
* Step, in minutes, of the minute spinner's carets and arrow keys. Typing is not constrained.
|
|
9367
|
+
* @default 1
|
|
9368
|
+
*/
|
|
9369
|
+
"minuteStep"?: number;
|
|
9370
|
+
/**
|
|
9371
|
+
* The `name` the confirmed value is submitted under in a surrounding `<form>`.
|
|
9372
|
+
*/
|
|
9373
|
+
"name"?: string;
|
|
9374
|
+
/**
|
|
9375
|
+
* Fires when the user presses Cancel. The draft is reset to `value`.
|
|
9376
|
+
*/
|
|
9377
|
+
"onBsCancel"?: (event: BsTimepickerCustomEvent<void>) => void;
|
|
9378
|
+
/**
|
|
9379
|
+
* Fires when the user presses Confirm: `{ value }` as 24-hour `HH:mm`. Not fired when `value` is set programmatically.
|
|
9380
|
+
*/
|
|
9381
|
+
"onBsChange"?: (event: BsTimepickerCustomEvent<BsTimepickerChange>) => void;
|
|
9382
|
+
/**
|
|
9383
|
+
* Accessible name of the AM/PM dropdown.
|
|
9384
|
+
* @default 'AM/PM'
|
|
9385
|
+
*/
|
|
9386
|
+
"periodLabel"?: string;
|
|
9387
|
+
/**
|
|
9388
|
+
* 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.
|
|
9389
|
+
* @default ''
|
|
9390
|
+
*/
|
|
9391
|
+
"value"?: string;
|
|
9392
|
+
}
|
|
6970
9393
|
/**
|
|
6971
9394
|
* A transient status message for confirming the result of an action (e.g. "Files uploaded
|
|
6972
9395
|
* successfully.") -- a state-specific icon, a message, and a close button.
|
|
@@ -7020,6 +9443,230 @@ declare namespace LocalJSX {
|
|
|
7020
9443
|
*/
|
|
7021
9444
|
"placement"?: 'top';
|
|
7022
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
|
+
}
|
|
7023
9670
|
|
|
7024
9671
|
interface BsAccordionAttributes {
|
|
7025
9672
|
"expanded": boolean;
|
|
@@ -7165,17 +9812,60 @@ declare namespace LocalJSX {
|
|
|
7165
9812
|
"actionLabel": string;
|
|
7166
9813
|
"allowClose": boolean;
|
|
7167
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
|
+
}
|
|
7168
9831
|
interface BsDataTableAttributes {
|
|
7169
9832
|
"sortColumn": string;
|
|
7170
9833
|
"sortDirection": 'asc' | 'desc';
|
|
7171
9834
|
"selectable": boolean;
|
|
7172
9835
|
}
|
|
9836
|
+
interface BsDatepickerAttributes {
|
|
9837
|
+
"name": string;
|
|
9838
|
+
"range": boolean;
|
|
9839
|
+
"value": string;
|
|
9840
|
+
"start": string;
|
|
9841
|
+
"end": string;
|
|
9842
|
+
"min": string;
|
|
9843
|
+
"max": string;
|
|
9844
|
+
"locale": string;
|
|
9845
|
+
"firstDayOfWeek": number;
|
|
9846
|
+
"startLabel": string;
|
|
9847
|
+
"endLabel": string;
|
|
9848
|
+
"monthLabel": string;
|
|
9849
|
+
"yearLabel": string;
|
|
9850
|
+
"previousLabel": string;
|
|
9851
|
+
"nextLabel": string;
|
|
9852
|
+
}
|
|
7173
9853
|
interface BsDialogAttributes {
|
|
7174
9854
|
"open": boolean;
|
|
7175
9855
|
"heading": string;
|
|
7176
9856
|
"size": BsDialogSize;
|
|
7177
9857
|
"centered": boolean;
|
|
7178
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
|
+
}
|
|
7179
9869
|
interface BsFileUploadAttributes {
|
|
7180
9870
|
"direction": BsFileUploadDirection;
|
|
7181
9871
|
"heading": string;
|
|
@@ -7204,6 +9894,11 @@ declare namespace LocalJSX {
|
|
|
7204
9894
|
"type": 'button' | 'submit' | 'reset';
|
|
7205
9895
|
"ariaLabel": string | null;
|
|
7206
9896
|
}
|
|
9897
|
+
interface BsIconTileAttributes {
|
|
9898
|
+
"size": BsIconTileSize;
|
|
9899
|
+
"intent": BsIconTileIntent;
|
|
9900
|
+
"label": string;
|
|
9901
|
+
}
|
|
7207
9902
|
interface BsInlineTabAttributes {
|
|
7208
9903
|
"selected": boolean;
|
|
7209
9904
|
"disabled": boolean;
|
|
@@ -7274,6 +9969,25 @@ declare namespace LocalJSX {
|
|
|
7274
9969
|
"skipToContentLabel": string;
|
|
7275
9970
|
"logoBackground": 'auto' | 'light' | 'dark';
|
|
7276
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
|
+
}
|
|
7277
9991
|
interface BsPaginationAttributes {
|
|
7278
9992
|
"totalPages": number;
|
|
7279
9993
|
"currentPage": number;
|
|
@@ -7281,6 +9995,19 @@ declare namespace LocalJSX {
|
|
|
7281
9995
|
"previousLabel": string;
|
|
7282
9996
|
"nextLabel": string;
|
|
7283
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
|
+
}
|
|
7284
10011
|
interface BsProgressAttributes {
|
|
7285
10012
|
"type": BsProgressType;
|
|
7286
10013
|
"size": BsProgressSize;
|
|
@@ -7296,12 +10023,59 @@ declare namespace LocalJSX {
|
|
|
7296
10023
|
"showLabel": boolean;
|
|
7297
10024
|
"ariaLabel": string | null;
|
|
7298
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
|
+
}
|
|
7299
10051
|
interface BsRadioAttributes {
|
|
7300
10052
|
"name": string;
|
|
7301
10053
|
"value": string;
|
|
7302
10054
|
"checked": boolean;
|
|
7303
10055
|
"disabled": boolean;
|
|
7304
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
|
+
}
|
|
7305
10079
|
interface BsSliderAttributes {
|
|
7306
10080
|
"type": BsSliderType;
|
|
7307
10081
|
"name": string;
|
|
@@ -7321,6 +10095,8 @@ declare namespace LocalJSX {
|
|
|
7321
10095
|
"variant": BsSnackbarVariant;
|
|
7322
10096
|
"loading": boolean;
|
|
7323
10097
|
"actionLabel": string;
|
|
10098
|
+
"actionVariant": BsButtonVariant;
|
|
10099
|
+
"hideClose": boolean;
|
|
7324
10100
|
}
|
|
7325
10101
|
interface BsSourceLinkAttributes {
|
|
7326
10102
|
"fileName": string;
|
|
@@ -7364,12 +10140,60 @@ declare namespace LocalJSX {
|
|
|
7364
10140
|
"orientation": BsTabsOrientation;
|
|
7365
10141
|
"value": string;
|
|
7366
10142
|
}
|
|
10143
|
+
interface BsTimepickerAttributes {
|
|
10144
|
+
"name": string;
|
|
10145
|
+
"value": string;
|
|
10146
|
+
"format": '12h' | '24h';
|
|
10147
|
+
"minuteStep": number;
|
|
10148
|
+
"heading": string;
|
|
10149
|
+
"formatLabel": string;
|
|
10150
|
+
"confirmLabel": string;
|
|
10151
|
+
"cancelLabel": string;
|
|
10152
|
+
"hourLabel": string;
|
|
10153
|
+
"minuteLabel": string;
|
|
10154
|
+
"periodLabel": string;
|
|
10155
|
+
}
|
|
7367
10156
|
interface BsToastAttributes {
|
|
7368
10157
|
"state": BsToastState;
|
|
7369
10158
|
}
|
|
7370
10159
|
interface BsTooltipAttributes {
|
|
7371
10160
|
"placement": 'top';
|
|
7372
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
|
+
}
|
|
7373
10197
|
|
|
7374
10198
|
interface IntrinsicElements {
|
|
7375
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] };
|
|
@@ -7399,11 +10223,15 @@ declare namespace LocalJSX {
|
|
|
7399
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] };
|
|
7400
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] };
|
|
7401
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] };
|
|
7402
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] };
|
|
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] };
|
|
7403
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] };
|
|
7404
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] };
|
|
7405
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] };
|
|
7406
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] };
|
|
7407
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] };
|
|
7408
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] };
|
|
7409
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] };
|
|
@@ -7412,10 +10240,14 @@ declare namespace LocalJSX {
|
|
|
7412
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] };
|
|
7413
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] };
|
|
7414
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] };
|
|
7415
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] };
|
|
7416
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] };
|
|
7417
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] };
|
|
7418
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] };
|
|
7419
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] };
|
|
7420
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] };
|
|
7421
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] };
|
|
@@ -7424,8 +10256,11 @@ declare namespace LocalJSX {
|
|
|
7424
10256
|
"bs-switch": Omit<BsSwitch, keyof BsSwitchAttributes> & { [K in keyof BsSwitch & keyof BsSwitchAttributes]?: BsSwitch[K] } & { [K in keyof BsSwitch & keyof BsSwitchAttributes as `attr:${K}`]?: BsSwitchAttributes[K] } & { [K in keyof BsSwitch & keyof BsSwitchAttributes as `prop:${K}`]?: BsSwitch[K] };
|
|
7425
10257
|
"bs-tab": Omit<BsTab, keyof BsTabAttributes> & { [K in keyof BsTab & keyof BsTabAttributes]?: BsTab[K] } & { [K in keyof BsTab & keyof BsTabAttributes as `attr:${K}`]?: BsTabAttributes[K] } & { [K in keyof BsTab & keyof BsTabAttributes as `prop:${K}`]?: BsTab[K] };
|
|
7426
10258
|
"bs-tabs": Omit<BsTabs, keyof BsTabsAttributes> & { [K in keyof BsTabs & keyof BsTabsAttributes]?: BsTabs[K] } & { [K in keyof BsTabs & keyof BsTabsAttributes as `attr:${K}`]?: BsTabsAttributes[K] } & { [K in keyof BsTabs & keyof BsTabsAttributes as `prop:${K}`]?: BsTabs[K] };
|
|
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] };
|
|
7427
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] };
|
|
7428
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] };
|
|
7429
10264
|
}
|
|
7430
10265
|
}
|
|
7431
10266
|
export { LocalJSX as JSX };
|
|
@@ -7661,6 +10496,9 @@ declare module "@stencil/core" {
|
|
|
7661
10496
|
* - `error` purely for visual emphasis — it signals a destructive action to the user, so reserve
|
|
7662
10497
|
* it for actions that actually delete/revoke/undo something.
|
|
7663
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.
|
|
7664
10502
|
* @prop --bs-button-height-sm - Height at `size="sm"`. Aliased to `--bs-spacing-500`.
|
|
7665
10503
|
* @prop --bs-button-height-md - Height at `size="md"`. Aliased to `--bs-spacing-600`.
|
|
7666
10504
|
* @prop --bs-button-height-lg - Height at `size="lg"`. Aliased to `--bs-spacing-700`.
|
|
@@ -8047,6 +10885,30 @@ declare module "@stencil/core" {
|
|
|
8047
10885
|
* every `type`). Aliased to `--bs-color-neutral-container-hover`.
|
|
8048
10886
|
*/
|
|
8049
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>;
|
|
8050
10912
|
/**
|
|
8051
10913
|
* A sortable, optionally row-selectable table for tabular data.
|
|
8052
10914
|
* `columns`, `rows`, and `cellRenderer` are JS-property-only — HTML attributes can only carry
|
|
@@ -8059,6 +10921,27 @@ declare module "@stencil/core" {
|
|
|
8059
10921
|
* - Deeply nested/hierarchical data — this component renders one flat row per record.
|
|
8060
10922
|
*/
|
|
8061
10923
|
"bs-data-table": LocalJSX.IntrinsicElements["bs-data-table"] & JSXBase.HTMLAttributes<HTMLBsDataTableElement>;
|
|
10924
|
+
/**
|
|
10925
|
+
* An inline calendar for picking a single date, or a start/end date range. Matches the Figma
|
|
10926
|
+
* "Date picker" component's two types: "Default" (month and year dropdowns above the grid) and
|
|
10927
|
+
* "Range" (start and end date fields above the grid, with the days between highlighted).
|
|
10928
|
+
* Dates are always `YYYY-MM-DD` strings, interpreted in the user's local time zone -- never full
|
|
10929
|
+
* ISO timestamps -- so a date can't shift by a day across time zones.
|
|
10930
|
+
* The calendar renders inline at a fixed width; to show it as a popover, put it inside a
|
|
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).
|
|
10933
|
+
* ## When to use
|
|
10934
|
+
* - Picking a date where seeing the surrounding days of the week/month helps (a booking, a
|
|
10935
|
+
* deadline, a report window).
|
|
10936
|
+
* - Picking a period (`range`) such as a start and end date.
|
|
10937
|
+
* ## When not to use
|
|
10938
|
+
* - A date the user knows by heart and can type quickly (a birth date) -- `bs-input type="date"`
|
|
10939
|
+
* is faster there.
|
|
10940
|
+
* ## Keyboard
|
|
10941
|
+
* Arrow keys move by day/week, Home/End jump to the start/end of the week, PageUp/PageDown move by
|
|
10942
|
+
* month (with Shift, by year), Enter/Space select the focused day.
|
|
10943
|
+
*/
|
|
10944
|
+
"bs-datepicker": LocalJSX.IntrinsicElements["bs-datepicker"] & JSXBase.HTMLAttributes<HTMLBsDatepickerElement>;
|
|
8062
10945
|
/**
|
|
8063
10946
|
* An overlay dialog that interrupts the current flow for a focused task or confirmation.
|
|
8064
10947
|
* Closes itself on backdrop click, Escape, or its own close button, and emits `bsClose`.
|
|
@@ -8077,6 +10960,21 @@ declare module "@stencil/core" {
|
|
|
8077
10960
|
* button in the header row next to the heading, same as before this addition.
|
|
8078
10961
|
*/
|
|
8079
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>;
|
|
8080
10978
|
/**
|
|
8081
10979
|
* A file dropzone: drag files onto it, or press "Browse file" to open the file picker. It reports
|
|
8082
10980
|
* the chosen files and does nothing else -- the consuming app owns the upload itself and shows its
|
|
@@ -8120,6 +11018,21 @@ declare module "@stencil/core" {
|
|
|
8120
11018
|
* accessible name.
|
|
8121
11019
|
*/
|
|
8122
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>;
|
|
8123
11036
|
/**
|
|
8124
11037
|
* A pill-shaped tab button -- an optional leading icon plus a text label, rendered as a real
|
|
8125
11038
|
* `<button>` so it participates correctly in tab order and native click/keyboard activation.
|
|
@@ -8314,6 +11227,31 @@ declare module "@stencil/core" {
|
|
|
8314
11227
|
* `right` slot content pushed to the far right.
|
|
8315
11228
|
*/
|
|
8316
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>;
|
|
8317
11255
|
/**
|
|
8318
11256
|
* A numbered page control -- previous/next chevrons, page-number buttons, and `...` overflow for
|
|
8319
11257
|
* large page counts. Matches the Figma "Pagination" component's "Default" type (the classic
|
|
@@ -8330,6 +11268,24 @@ declare module "@stencil/core" {
|
|
|
8330
11268
|
* plain prev/next controls (no numbers) are simpler there.
|
|
8331
11269
|
*/
|
|
8332
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>;
|
|
8333
11289
|
/**
|
|
8334
11290
|
* A circular progress indicator -- either a static ring showing a percentage sweep
|
|
8335
11291
|
* (`type="determinate"`) or a continuously spinning ring signaling in-progress work with no known
|
|
@@ -8359,6 +11315,28 @@ declare module "@stencil/core" {
|
|
|
8359
11315
|
* weight of a bar.
|
|
8360
11316
|
*/
|
|
8361
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>;
|
|
8362
11340
|
/**
|
|
8363
11341
|
* A single radio button with its label, for one mutually-exclusive choice within a group.
|
|
8364
11342
|
* ## When to use
|
|
@@ -8370,6 +11348,33 @@ declare module "@stencil/core" {
|
|
|
8370
11348
|
* - An on/off setting that takes effect immediately (no explicit form submission) -- use `bs-switch`.
|
|
8371
11349
|
*/
|
|
8372
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>;
|
|
8373
11378
|
/**
|
|
8374
11379
|
* A slider for picking a single numeric value (`type="default"`), a value snapped to evenly
|
|
8375
11380
|
* spaced ticks (`type="segmented"`), or a min/max pair (`type="range"`) from within a bounded
|
|
@@ -8521,6 +11526,25 @@ declare module "@stencil/core" {
|
|
|
8521
11526
|
* directly.
|
|
8522
11527
|
*/
|
|
8523
11528
|
"bs-tabs": LocalJSX.IntrinsicElements["bs-tabs"] & JSXBase.HTMLAttributes<HTMLBsTabsElement>;
|
|
11529
|
+
/**
|
|
11530
|
+
* An inline time picker: hour and minute spinners (up/down carets, or the arrow keys on the value),
|
|
11531
|
+
* an AM/PM dropdown in 12-hour mode, a 24h switch, and Cancel/Confirm buttons. Matches the Figma
|
|
11532
|
+
* "Time picker" component's two formats (12h with AM/PM, and 24h).
|
|
11533
|
+
* The picker works on a draft: nothing is committed until the user presses Confirm, which updates
|
|
11534
|
+
* `value` and fires `bsChange`. Cancel discards the draft and fires `bsCancel`.
|
|
11535
|
+
* `value` is always 24-hour `HH:mm` (e.g. `"14:30"`), regardless of the displayed `format`.
|
|
11536
|
+
* The picker renders inline at a fixed width; to show it as a popover, put it in your own overlay
|
|
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).
|
|
11539
|
+
* ## When to use
|
|
11540
|
+
* - Picking a time of day where the user steps through hours and minutes.
|
|
11541
|
+
* ## When not to use
|
|
11542
|
+
* - A time the user can type faster than step to -- a plain `bs-input` is quicker.
|
|
11543
|
+
* ## Keyboard
|
|
11544
|
+
* Tab to the hour or minute value, then ArrowUp/ArrowDown step it (wrapping), Home/End jump to the
|
|
11545
|
+
* first/last value, and typing digits sets it directly.
|
|
11546
|
+
*/
|
|
11547
|
+
"bs-timepicker": LocalJSX.IntrinsicElements["bs-timepicker"] & JSXBase.HTMLAttributes<HTMLBsTimepickerElement>;
|
|
8524
11548
|
/**
|
|
8525
11549
|
* A transient status message for confirming the result of an action (e.g. "Files uploaded
|
|
8526
11550
|
* successfully.") -- a state-specific icon, a message, and a close button.
|
|
@@ -8558,6 +11582,37 @@ declare module "@stencil/core" {
|
|
|
8558
11582
|
* `--bs-line-height-body-sm`.
|
|
8559
11583
|
*/
|
|
8560
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>;
|
|
8561
11616
|
}
|
|
8562
11617
|
}
|
|
8563
11618
|
}
|