@brandsync/wc 1.6.0 → 1.7.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 +1122 -98
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/{p-44bfdd4b.entry.js → p-06e9b45d.entry.js} +1 -1
- package/dist/brandsync-wc/p-0d86c22d.entry.js +1 -0
- package/dist/brandsync-wc/{p-e2ac61c4.entry.js → p-13e4966c.entry.js} +1 -1
- package/dist/brandsync-wc/{p-18c59979.entry.js → p-18021c05.entry.js} +1 -1
- package/dist/brandsync-wc/{p-cfb49342.entry.js → p-1c8160c2.entry.js} +1 -1
- package/dist/brandsync-wc/{p-00f733ef.entry.js → p-21c14465.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6d0c054b.entry.js → p-27100489.entry.js} +1 -1
- package/dist/brandsync-wc/{p-639946e7.entry.js → p-2d6955d6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-3ed5b215.entry.js → p-309f920e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-fcd4ec60.entry.js → p-30d6a6d0.entry.js} +1 -1
- package/dist/brandsync-wc/{p-57e1dc35.entry.js → p-3eab22a5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-57609703.entry.js → p-4b0938a5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-512dafc6.entry.js → p-5312b6a5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9fb8848c.entry.js → p-538cc08e.entry.js} +1 -1
- package/dist/brandsync-wc/p-55e6438c.entry.js +1 -0
- package/dist/brandsync-wc/{p-a8cdf449.entry.js → p-600b5434.entry.js} +1 -1
- package/dist/brandsync-wc/p-61db6ce2.entry.js +1 -0
- package/dist/brandsync-wc/{p-ef68f29b.entry.js → p-70e035ed.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0aca5f0e.entry.js → p-77433277.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f714683d.entry.js → p-777a9dbf.entry.js} +1 -1
- package/dist/brandsync-wc/p-7ed5670e.entry.js +1 -0
- package/dist/brandsync-wc/{p-e35249c4.entry.js → p-819a3dae.entry.js} +1 -1
- package/dist/brandsync-wc/{p-11224cab.entry.js → p-85c70f6d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-525504c2.entry.js → p-8b2ab522.entry.js} +1 -1
- package/dist/brandsync-wc/{p-abda1d69.entry.js → p-8b57f606.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a603a13a.entry.js → p-9c1be2a0.entry.js} +1 -1
- package/dist/brandsync-wc/{p-604553a0.entry.js → p-a36a0e6a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-3cb58df8.entry.js → p-b0634051.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7b9598d9.entry.js → p-b2dc9886.entry.js} +1 -1
- package/dist/brandsync-wc/{p-413a1ee0.entry.js → p-bcee3d60.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a3a4d541.entry.js → p-be14f99f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-52d5f6a9.entry.js → p-c197cc95.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9b72cc12.entry.js → p-c3a28a89.entry.js} +1 -1
- package/dist/brandsync-wc/{p-43617f2e.entry.js → p-d06543a5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c5011746.entry.js → p-d25b7b74.entry.js} +1 -1
- package/dist/brandsync-wc/{p-bb77098b.entry.js → p-e1069ba9.entry.js} +1 -1
- package/dist/brandsync-wc/p-e427bbda.entry.js +1 -0
- package/dist/brandsync-wc/{p-bb68e236.entry.js → p-e61efe4d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6c769a1d.entry.js → p-f14bda01.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c054f493.entry.js → p-f243683f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7609221f.entry.js → p-f518f486.entry.js} +1 -1
- package/dist/brandsync-wc/{p-98021881.entry.js → p-f8f03334.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a8e2a2b2.entry.js → p-fba01c96.entry.js} +1 -1
- package/dist/brandsync-wc/{p-db46376b.entry.js → p-fde5e9f1.entry.js} +1 -1
- package/dist/cjs/brandsync-wc.cjs.js +1 -1
- package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
- package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/bs-carousel.cjs.entry.js +196 -0
- package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
- package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
- 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-data-table.cjs.entry.js +2 -2
- package/dist/cjs/bs-file-upload-item.cjs.entry.js +85 -0
- package/dist/cjs/bs-file-upload.cjs.entry.js +110 -0
- package/dist/cjs/bs-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
- package/dist/cjs/bs-input.cjs.entry.js +2 -2
- package/dist/cjs/bs-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/bs-menu.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-header.cjs.entry.js +1 -1
- package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
- package/dist/cjs/bs-progress-linear.cjs.entry.js +7 -2
- package/dist/cjs/bs-progress.cjs.entry.js +2 -2
- package/dist/cjs/bs-radio.cjs.entry.js +1 -1
- package/dist/cjs/bs-slider.cjs.entry.js +1 -1
- package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
- package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
- package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
- package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
- package/dist/cjs/bs-switch.cjs.entry.js +1 -1
- package/dist/cjs/bs-tab.cjs.entry.js +1 -1
- package/dist/cjs/bs-tabs.cjs.entry.js +1 -1
- package/dist/cjs/bs-toast.cjs.entry.js +1 -1
- package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -0
- package/dist/collection/components/bs-accordion/bs-accordion.cmp.test.js +5 -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-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-carousel/bs-carousel.cmp.test.js +198 -0
- package/dist/collection/components/bs-carousel/bs-carousel.css +107 -0
- package/dist/collection/components/bs-carousel/bs-carousel.js +531 -0
- package/dist/collection/components/bs-carousel/bs-carousel.stories.js +68 -0
- 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-checkbox/bs-checkbox.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
- package/dist/collection/components/bs-composer/bs-composer.js +1 -1
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
- package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
- package/dist/collection/components/bs-file-upload/bs-file-upload.cmp.test.js +119 -0
- package/dist/collection/components/bs-file-upload/bs-file-upload.css +139 -0
- package/dist/collection/components/bs-file-upload/bs-file-upload.js +342 -0
- package/dist/collection/components/bs-file-upload/bs-file-upload.stories.js +116 -0
- package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.cmp.test.js +115 -0
- package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.css +154 -0
- package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +329 -0
- package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.stories.js +54 -0
- package/dist/collection/components/bs-input/bs-input.js +2 -2
- package/dist/collection/components/bs-menu/bs-menu.js +1 -1
- package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
- package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
- package/dist/collection/components/bs-progress/bs-progress.js +2 -2
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +27 -2
- package/dist/collection/components/bs-radio/bs-radio.js +1 -1
- package/dist/collection/components/bs-slider/bs-slider.js +1 -1
- package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -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-toast/bs-toast.js +1 -1
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +1 -1
- 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/collection/test/helpers/conventions.js +46 -0
- package/dist/collection/test/helpers/conventions.unit.test.js +38 -0
- 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-breadcrumb-overflow.js +1 -1
- package/dist/components/bs-breadcrumbs.js +1 -1
- package/dist/components/bs-button-skeleton.js +1 -1
- package/dist/components/bs-carousel.d.ts +11 -0
- package/dist/components/bs-carousel.js +1 -0
- 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-data-table.js +1 -1
- package/dist/components/bs-dialog.js +1 -1
- package/dist/components/bs-file-upload-item.d.ts +11 -0
- package/dist/components/bs-file-upload-item.js +1 -0
- package/dist/components/bs-file-upload.d.ts +11 -0
- package/dist/components/bs-file-upload.js +1 -0
- package/dist/components/bs-icon-button.js +1 -1
- package/dist/components/bs-inline-tab.js +1 -1
- package/dist/components/bs-input.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-pagination.js +1 -1
- package/dist/components/bs-progress-linear.js +1 -1
- package/dist/components/bs-progress.js +1 -1
- package/dist/components/bs-radio.js +1 -1
- 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-toast.js +1 -1
- package/dist/components/bs-tooltip.js +1 -1
- package/dist/components/p-BxFJ74fI.js +1 -0
- package/dist/components/{p-DKMMCLxx.js → p-DI5GgSqL.js} +1 -1
- package/dist/components/{p-DIezWdNu.js → p-Dqt-Qp4W.js} +1 -1
- package/dist/components/p-Dx8gAOVC.js +1 -0
- package/dist/components/{p-B8eut73c.js → p-LYvoWZt4.js} +1 -1
- package/dist/components/{p-3gs695M6.js → p-v4T0qPVn.js} +1 -1
- package/dist/esm/brandsync-wc.js +1 -1
- package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
- package/dist/esm/bs-ai-greeting.entry.js +1 -1
- package/dist/esm/bs-ai-thinking.entry.js +1 -1
- package/dist/esm/bs-attachment-list.entry.js +1 -1
- package/dist/esm/bs-breadcrumbs.entry.js +1 -1
- package/dist/esm/bs-button-skeleton.entry.js +1 -1
- package/dist/esm/bs-carousel.entry.js +194 -0
- package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
- package/dist/esm/bs-chatbot-header.entry.js +1 -1
- package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
- package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
- package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
- package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
- 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-data-table.entry.js +2 -2
- package/dist/esm/bs-file-upload-item.entry.js +83 -0
- package/dist/esm/bs-file-upload.entry.js +108 -0
- package/dist/esm/bs-icon-button.entry.js +1 -1
- package/dist/esm/bs-inline-tab.entry.js +1 -1
- package/dist/esm/bs-input.entry.js +2 -2
- package/dist/esm/bs-menu-item.entry.js +1 -1
- package/dist/esm/bs-menu.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer.entry.js +1 -1
- package/dist/esm/bs-navigation-header.entry.js +1 -1
- package/dist/esm/bs-pagination.entry.js +1 -1
- package/dist/esm/bs-progress-linear.entry.js +7 -2
- package/dist/esm/bs-progress.entry.js +2 -2
- package/dist/esm/bs-radio.entry.js +1 -1
- package/dist/esm/bs-slider.entry.js +1 -1
- package/dist/esm/bs-snackbar.entry.js +1 -1
- package/dist/esm/bs-source-link.entry.js +2 -2
- package/dist/esm/bs-stepper-step.entry.js +1 -1
- package/dist/esm/bs-stepper.entry.js +1 -1
- package/dist/esm/bs-switch.entry.js +1 -1
- package/dist/esm/bs-tab.entry.js +1 -1
- package/dist/esm/bs-tabs.entry.js +1 -1
- package/dist/esm/bs-toast.entry.js +1 -1
- package/dist/esm/bs-tooltip.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/bs-carousel/bs-carousel.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-carousel/bs-carousel.d.ts +101 -0
- package/dist/types/components/bs-carousel/bs-carousel.stories.d.ts +17 -0
- package/dist/types/components/bs-file-upload/bs-file-upload.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-file-upload/bs-file-upload.d.ts +59 -0
- package/dist/types/components/bs-file-upload/bs-file-upload.stories.d.ts +21 -0
- package/dist/types/components/bs-file-upload-item/bs-file-upload-item.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-file-upload-item/bs-file-upload-item.d.ts +58 -0
- package/dist/types/components/bs-file-upload-item/bs-file-upload-item.stories.d.ts +18 -0
- package/dist/types/components/bs-progress-linear/bs-progress-linear.d.ts +5 -0
- package/dist/types/components.d.ts +594 -0
- package/dist/types/test/helpers/conventions.d.ts +21 -0
- package/dist/types/test/helpers/conventions.unit.test.d.ts +1 -0
- package/package.json +2 -1
- package/dist/brandsync-wc/p-6bf8a5bd.entry.js +0 -1
- package/dist/brandsync-wc/p-fe778b6b.entry.js +0 -1
|
@@ -43,7 +43,7 @@ const BsStepper = class {
|
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
45
|
render() {
|
|
46
|
-
return index.h("slot", { key: '
|
|
46
|
+
return index.h("slot", { key: '5e707b38009031a71566e20ec8b9d1df55462e27', onSlotchange: this.onSlotChange });
|
|
47
47
|
}
|
|
48
48
|
static get watchers() { return {
|
|
49
49
|
"currentStep": [{
|
|
@@ -48,7 +48,7 @@ const BsSwitch = class {
|
|
|
48
48
|
const knobClasses = ['bs-switch__knob', `bs-switch__knob--${this.size}`, this.disabled ? 'bs-switch__knob--disabled' : '']
|
|
49
49
|
.filter(Boolean)
|
|
50
50
|
.join(' ');
|
|
51
|
-
return (index.h("label", { key: '
|
|
51
|
+
return (index.h("label", { key: 'b726eda9fd90c67368ff44f288d39a80516ac68c', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, index.h("input", { key: 'ff95ba83169aae65ec57068f2b461b23fe344903', class: "bs-switch__input", type: "checkbox", role: "switch", checked: this.checked, disabled: this.disabled, "aria-checked": String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), index.h("span", { key: 'e09834a43eb922bcf973b880da3baa1694389ca0', part: "track", class: trackClasses }, index.h("span", { key: 'dc6c409faddb65511847a941331926ae736ce9ec', part: "knob", class: knobClasses })), index.h("span", { key: '2943c9fb029632360d21aaaa544d7674322cafc6', part: "label", class: "bs-switch__label" }, index.h("slot", { key: '55ef83bfb72ed4b463b854eff1fd9472048dcfc4' }))));
|
|
52
52
|
}
|
|
53
53
|
static get delegatesFocus() { return true; }
|
|
54
54
|
};
|
|
@@ -72,7 +72,7 @@ const BsTab = class {
|
|
|
72
72
|
const iconOnly = this.hasIcon && !this.hasLabel;
|
|
73
73
|
const vertical = this.hasIcon && this.hasLabel && this.iconPosition === 'top';
|
|
74
74
|
const showBadge = this.hasBadge && !iconOnly && !vertical;
|
|
75
|
-
return (index.h("button", { key: '
|
|
75
|
+
return (index.h("button", { key: 'b70b65a38774feac31afb3c742c1c347d0d8f009', type: "button", part: "tab", role: "tab", class: `bs-tab ${this.selected ? 'bs-tab--selected' : ''} ${this.disabled ? 'bs-tab--disabled' : ''} ${iconOnly ? 'bs-tab--icon-only' : ''} ${vertical ? 'bs-tab--vertical' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, onClick: this.onClick }, index.h("span", { key: 'bae69ab5499b9e8f695cf0bc559fa395097ae7dc', part: "icon", class: `bs-tab__icon ${this.hasIcon ? 'bs-tab__icon--has-content' : ''}` }, index.h("slot", { key: 'b6f545c119b1e53520ee0a62b51d84071aace11f', name: "icon", onSlotchange: this.onIconSlotchange })), index.h("span", { key: '6c8cf0dd0394ebfc9a5825d01713628ce20d1c2d', part: "label", class: `bs-tab__label ${this.hasLabel ? 'bs-tab__label--has-content' : ''}` }, index.h("slot", { key: '7eddcdcc73576ac8fc4f640e3f9cdc8c5cc04eb8', onSlotchange: this.onLabelSlotchange })), index.h("span", { key: 'acf5cd096bb0ff3a7c2bd898759995dc73b261f5', part: "badge", class: `bs-tab__badge ${showBadge ? 'bs-tab__badge--has-content' : ''}` }, index.h("slot", { key: 'f97ae6b3b7760883b3ce9c20a0e7ec29dd43677e', name: "badge", onSlotchange: this.onBadgeSlotchange })), index.h("span", { key: '2db637b4b3f398b8d300731565b0accd1138fe88', part: "indicator", class: "bs-tab__indicator" })));
|
|
76
76
|
}
|
|
77
77
|
};
|
|
78
78
|
BsTab.style = bsTabCss();
|
|
@@ -31,7 +31,7 @@ const BsTabs = class {
|
|
|
31
31
|
}
|
|
32
32
|
render() {
|
|
33
33
|
const vertical = this.orientation === 'vertical';
|
|
34
|
-
return (index.h("div", { key: '
|
|
34
|
+
return (index.h("div", { key: '3d45234fd7f253c692fe4bbc150e5e31c3c0144d', part: "tablist", role: "tablist", "aria-orientation": this.orientation, class: `bs-tabs bs-tabs--${this.type} ${vertical ? 'bs-tabs--vertical' : ''}` }, index.h("slot", { key: '1872fc2d82a5cde90b9e5b7fc76976f1083a3563' })));
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
BsTabs.style = bsTabsCss();
|
|
@@ -19,7 +19,7 @@ const BsToast = class {
|
|
|
19
19
|
this.bsDismiss.emit();
|
|
20
20
|
};
|
|
21
21
|
render() {
|
|
22
|
-
return (index.h("div", { key: '
|
|
22
|
+
return (index.h("div", { key: '238f177a44aa2bd735432fe8f3fd1d761065d023', part: "container", class: `bs-toast bs-toast--${this.state}`, role: "status", "aria-live": this.state === 'error' ? 'assertive' : 'polite' }, index.h("div", { key: '717e222c7b271db0ff5aa57db8ce0efa15bfaf50', class: "bs-toast__content" }, index.h("span", { key: '316106f6efbcc8abe6bb155e77ec21343b93287c', part: "icon", class: "bs-toast__icon", "aria-hidden": "true" }, index.h(StateIcon, { key: '5973febbe8d7be889fd14cac847c417a22acb111', state: this.state })), index.h("span", { key: '1d16db1ba5c010ac5af237b4b399e0dda6f6df59', part: "message", class: "bs-toast__message" }, index.h("slot", { key: '40e97271fec790a850491be58ae87e54b4765a6a' }))), index.h("div", { key: '16744b9b6ad79d13aec16afa6593ab0de1ec5ee2', class: "bs-toast__actions" }, index.h("button", { key: '87adace9953b2dca831543132f3fe5590bc4c52f', part: "close", type: "button", class: "bs-toast__close", "aria-label": "Dismiss", onClick: this.onDismiss }, index.h(CloseIcon, { key: 'dcf5ffe7a5553ec2792d801c7f62ed367d1454ef' })))));
|
|
23
23
|
}
|
|
24
24
|
};
|
|
25
25
|
const StateIcon = ({ state }) => {
|
|
@@ -16,7 +16,7 @@ const BsTooltip = class {
|
|
|
16
16
|
*/
|
|
17
17
|
placement = 'top';
|
|
18
18
|
render() {
|
|
19
|
-
return (index.h("div", { key: '
|
|
19
|
+
return (index.h("div", { key: '81d300180aa98431ab694c50e76bb7e55a65efb0', class: "bs-tooltip" }, index.h("span", { key: '42e53b74b32dab5418e1e7ce37210316fd14341e', part: "arrow", class: "bs-tooltip__arrow" }), index.h("div", { key: '9b118fbb55282ef4cc7ccdf45da46c1939e25147', part: "bubble", class: "bs-tooltip__bubble" }, index.h("slot", { key: '52f128c55db4da2bbdc6b94c254ab80fb7dcc53f' }))));
|
|
20
20
|
}
|
|
21
21
|
};
|
|
22
22
|
BsTooltip.style = bsTooltipCss();
|
package/dist/cjs/loader.cjs.js
CHANGED
|
@@ -5,7 +5,7 @@ var index = require('./index-D7e6DfLV.js');
|
|
|
5
5
|
const defineCustomElements = async (win, options) => {
|
|
6
6
|
if (typeof window === 'undefined') return undefined;
|
|
7
7
|
await index.globalScripts();
|
|
8
|
-
return index.bootstrapLazy([["bs-input.cjs",[[785,"bs-input",{"value":[1025],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4],"required":[4],"step":[2],"min":[2],"max":[2],"options":[16],"rows":[2],"chips":[16],"titleOptions":[16],"initialsTitle":[1,"initials-title"],"countryOptions":[16],"country":[1],"length":[2],"open":[1540],"hasIcon":[32],"hasEndIcon":[32],"passwordVisible":[32],"chipDraft":[32]},[[0,"keydown","onHostKeydown"],[0,"focusout","onHostFocusOut"]]]]],["bs-snackbar.cjs",[[769,"bs-snackbar",{"variant":[1],"loading":[4],"actionLabel":[1,"action-label"]}]]],["bs-attachment.cjs",[[513,"bs-attachment",{"type":[1],"fileName":[1,"file-name"],"imageSrc":[1,"image-src"],"imageAlt":[1,"image-alt"],"loading":[4],"removable":[4]}]]],["bs-breadcrumb-overflow.cjs",[[513,"bs-breadcrumb-overflow",{"items":[16],"overflowLabel":[1,"overflow-label"],"size":[513],"open":[32]},[[0,"keydown","onHostKeydown"],[0,"focusout","onHostFocusOut"]]]]],["bs-chatbot-header.cjs",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-dialog.cjs",[[769,"bs-dialog",{"open":[1540],"heading":[1],"size":[1],"centered":[516],"hasFooter":[32],"hasImage":[32],"hasIcon":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]],["bs-navigation-drawer.cjs",[[769,"bs-navigation-drawer",{"heading":[1],"collapsible":[4],"collapsed":[1540],"logoBackground":[1,"logo-background"],"showLogo":[4,"show-logo"]},null,{"collapsed":[{"onCollapsedChange":0}]}]]],["bs-navigation-header.cjs",[[769,"bs-navigation-header",{"alignment":[1],"ariaLabel":[1,"aria-label"],"skipToContentHref":[1,"skip-to-content-href"],"skipToContentLabel":[1,"skip-to-content-label"],"logoBackground":[1,"logo-background"]}]]],["bs-accordion.cjs",[[769,"bs-accordion",{"expanded":[516],"size":[1],"disabled":[4],"showIcon":[4,"show-icon"],"showPreview":[4,"show-preview"]}]]],["bs-ai-disclaimer.cjs",[[257,"bs-ai-disclaimer"]]],["bs-ai-greeting.cjs",[[513,"bs-ai-greeting",{"assistantName":[1,"assistant-name"],"productName":[1,"product-name"]}]]],["bs-ai-thinking.cjs",[[513,"bs-ai-thinking",{"label":[1]}]]],["bs-attachment-list.cjs",[[769,"bs-attachment-list",{"ariaLabel":[1,"aria-label"],"canScrollRight":[32]}]]],["bs-avatar.cjs",[[513,"bs-avatar",{"type":[1],"size":[1],"initials":[1],"src":[1],"alt":[1],"ariaLabel":[1,"aria-label"],"disabled":[516]}]]],["bs-badge.cjs",[[769,"bs-badge",{"variant":[1]}]]],["bs-breadcrumb.cjs",[[769,"bs-breadcrumb",{"href":[1],"current":[516],"size":[513]}]]],["bs-breadcrumbs.cjs",[[769,"bs-breadcrumbs",{"label":[1],"size":[1]},null,{"size":[{"onSizeChange":0}]}]]],["bs-button-skeleton.cjs",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card.cjs",[[769,"bs-card",{"surface":[1],"hasImage":[32]}]]],["bs-chatbot-feedback.cjs",[[513,"bs-chatbot-feedback",{"rating":[1538],"submitted":[1540],"comment":[1025],"heading":[1],"subtitle":[1]}]]],["bs-chatbot-response-action.cjs",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-chatbot-sources-drawer.cjs",[[769,"bs-chatbot-sources-drawer",{"heading":[1],"count":[2],"slottedCount":[32]}]]],["bs-chatbot-suggestion-button.cjs",[[769,"bs-chatbot-suggestion-button",{"disabled":[4]}]]],["bs-checkbox.cjs",[[785,"bs-checkbox",{"size":[1],"checked":[1540],"indeterminate":[1540],"disabled":[4],"error":[4],"ariaLabel":[1,"aria-label"]},null,{"indeterminate":[{"onIndeterminateChange":0}]}]]],["bs-checkbox-skeleton.cjs",[[513,"bs-checkbox-skeleton",{"size":[1]}]]],["bs-chip-filter.cjs",[[785,"bs-chip-filter",{"size":[1],"selected":[516],"dropdown":[4],"disabled":[4],"ariaLabel":[1,"aria-label"],"hasIcon":[32]}]]],["bs-chip-informative.cjs",[[769,"bs-chip-informative",{"color":[1],"size":[1],"disabled":[516],"hasIcon":[32]}]]],["bs-chip-input.cjs",[[785,"bs-chip-input",{"size":[1],"selected":[1540],"disabled":[516],"hasIcon":[32],"labelText":[32]}]]],["bs-composer.cjs",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1025],"state":[513],"ariaLabel":[1,"aria-label"],"hasAttachments":[32]}]]],["bs-composer-status-banner.cjs",[[769,"bs-composer-status-banner",{"type":[1],"message":[1],"showIcon":[4,"show-icon"],"showButton":[4,"show-button"],"actionLabel":[1,"action-label"],"allowClose":[4,"allow-close"]}]]],["bs-data-table.cjs",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32],"clearSelection":[64]}]]],["bs-inline-tab.cjs",[[769,"bs-inline-tab",{"selected":[516],"disabled":[4],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasLabel":[32]}]]],["bs-navigation-drawer-item.cjs",[[769,"bs-navigation-drawer-item",{"selected":[516],"expandable":[4],"expanded":[1540],"nested":[4],"ariaLabel":[1,"aria-label"],"collapsed":[516],"hasIcon":[32]}]]],["bs-
|
|
8
|
+
return index.bootstrapLazy([["bs-carousel.cjs",[[769,"bs-carousel",{"tracker":[1],"slidesPerView":[2,"slides-per-view"],"currentPage":[1538,"current-page"],"autoplay":[4],"interval":[2],"paused":[1540],"label":[1],"previousLabel":[1,"previous-label"],"nextLabel":[1,"next-label"],"pauseLabel":[1,"pause-label"],"playLabel":[1,"play-label"],"slideCount":[32],"interacting":[32]},[[1,"mouseenter","onMouseEnter"],[1,"mouseleave","onMouseLeave"],[0,"focusin","onFocusIn"],[0,"focusout","onFocusOut"]],{"currentPage":[{"onCurrentPageChange":0}],"autoplay":[{"updateTimer":0}],"paused":[{"updateTimer":0}],"interval":[{"updateTimer":0}],"interacting":[{"updateTimer":0}],"slideCount":[{"updateTimer":0}],"slidesPerView":[{"updateTimer":0}]}]]],["bs-file-upload-item.cjs",[[769,"bs-file-upload-item",{"state":[513],"fileName":[1,"file-name"],"fileSize":[1,"file-size"],"progress":[2],"message":[1],"thumbnailSrc":[1,"thumbnail-src"],"thumbnailAlt":[1,"thumbnail-alt"],"cancelLabel":[1,"cancel-label"],"removeLabel":[1,"remove-label"]}]]],["bs-input.cjs",[[785,"bs-input",{"value":[1025],"type":[1],"label":[1],"placeholder":[1],"description":[1],"error":[1],"disabled":[4],"required":[4],"step":[2],"min":[2],"max":[2],"options":[16],"rows":[2],"chips":[16],"titleOptions":[16],"initialsTitle":[1,"initials-title"],"countryOptions":[16],"country":[1],"length":[2],"open":[1540],"hasIcon":[32],"hasEndIcon":[32],"passwordVisible":[32],"chipDraft":[32]},[[0,"keydown","onHostKeydown"],[0,"focusout","onHostFocusOut"]]]]],["bs-snackbar.cjs",[[769,"bs-snackbar",{"variant":[1],"loading":[4],"actionLabel":[1,"action-label"]}]]],["bs-attachment.cjs",[[513,"bs-attachment",{"type":[1],"fileName":[1,"file-name"],"imageSrc":[1,"image-src"],"imageAlt":[1,"image-alt"],"loading":[4],"removable":[4]}]]],["bs-breadcrumb-overflow.cjs",[[513,"bs-breadcrumb-overflow",{"items":[16],"overflowLabel":[1,"overflow-label"],"size":[513],"open":[32]},[[0,"keydown","onHostKeydown"],[0,"focusout","onHostFocusOut"]]]]],["bs-chatbot-header.cjs",[[769,"bs-chatbot-header",{"heading":[1],"expanded":[1540]}]]],["bs-dialog.cjs",[[769,"bs-dialog",{"open":[1540],"heading":[1],"size":[1],"centered":[516],"hasFooter":[32],"hasImage":[32],"hasIcon":[32]},[[4,"keydown","onKeydown"],[4,"focusin","onFocusIn"]]]]],["bs-file-upload.cjs",[[769,"bs-file-upload",{"direction":[513],"heading":[1],"description":[1],"buttonLabel":[1,"button-label"],"accept":[1],"multiple":[4],"disabled":[516],"dragging":[1540]}]]],["bs-navigation-drawer.cjs",[[769,"bs-navigation-drawer",{"heading":[1],"collapsible":[4],"collapsed":[1540],"logoBackground":[1,"logo-background"],"showLogo":[4,"show-logo"]},null,{"collapsed":[{"onCollapsedChange":0}]}]]],["bs-navigation-header.cjs",[[769,"bs-navigation-header",{"alignment":[1],"ariaLabel":[1,"aria-label"],"skipToContentHref":[1,"skip-to-content-href"],"skipToContentLabel":[1,"skip-to-content-label"],"logoBackground":[1,"logo-background"]}]]],["bs-accordion.cjs",[[769,"bs-accordion",{"expanded":[516],"size":[1],"disabled":[4],"showIcon":[4,"show-icon"],"showPreview":[4,"show-preview"]}]]],["bs-ai-disclaimer.cjs",[[257,"bs-ai-disclaimer"]]],["bs-ai-greeting.cjs",[[513,"bs-ai-greeting",{"assistantName":[1,"assistant-name"],"productName":[1,"product-name"]}]]],["bs-ai-thinking.cjs",[[513,"bs-ai-thinking",{"label":[1]}]]],["bs-attachment-list.cjs",[[769,"bs-attachment-list",{"ariaLabel":[1,"aria-label"],"canScrollRight":[32]}]]],["bs-avatar.cjs",[[513,"bs-avatar",{"type":[1],"size":[1],"initials":[1],"src":[1],"alt":[1],"ariaLabel":[1,"aria-label"],"disabled":[516]}]]],["bs-badge.cjs",[[769,"bs-badge",{"variant":[1]}]]],["bs-breadcrumb.cjs",[[769,"bs-breadcrumb",{"href":[1],"current":[516],"size":[513]}]]],["bs-breadcrumbs.cjs",[[769,"bs-breadcrumbs",{"label":[1],"size":[1]},null,{"size":[{"onSizeChange":0}]}]]],["bs-button-skeleton.cjs",[[513,"bs-button-skeleton",{"size":[1]}]]],["bs-card.cjs",[[769,"bs-card",{"surface":[1],"hasImage":[32]}]]],["bs-chatbot-feedback.cjs",[[513,"bs-chatbot-feedback",{"rating":[1538],"submitted":[1540],"comment":[1025],"heading":[1],"subtitle":[1]}]]],["bs-chatbot-response-action.cjs",[[769,"bs-chatbot-response-action",{"sourcesCount":[2,"sources-count"],"menuOpen":[1540,"menu-open"]},[[4,"click","onDocumentClick"],[4,"keydown","onKeydown"]]]]],["bs-chatbot-sources-drawer.cjs",[[769,"bs-chatbot-sources-drawer",{"heading":[1],"count":[2],"slottedCount":[32]}]]],["bs-chatbot-suggestion-button.cjs",[[769,"bs-chatbot-suggestion-button",{"disabled":[4]}]]],["bs-checkbox.cjs",[[785,"bs-checkbox",{"size":[1],"checked":[1540],"indeterminate":[1540],"disabled":[4],"error":[4],"ariaLabel":[1,"aria-label"]},null,{"indeterminate":[{"onIndeterminateChange":0}]}]]],["bs-checkbox-skeleton.cjs",[[513,"bs-checkbox-skeleton",{"size":[1]}]]],["bs-chip-filter.cjs",[[785,"bs-chip-filter",{"size":[1],"selected":[516],"dropdown":[4],"disabled":[4],"ariaLabel":[1,"aria-label"],"hasIcon":[32]}]]],["bs-chip-informative.cjs",[[769,"bs-chip-informative",{"color":[1],"size":[1],"disabled":[516],"hasIcon":[32]}]]],["bs-chip-input.cjs",[[785,"bs-chip-input",{"size":[1],"selected":[1540],"disabled":[516],"hasIcon":[32],"labelText":[32]}]]],["bs-composer.cjs",[[785,"bs-composer",{"variant":[1],"placeholder":[1],"value":[1025],"state":[513],"ariaLabel":[1,"aria-label"],"hasAttachments":[32]}]]],["bs-composer-status-banner.cjs",[[769,"bs-composer-status-banner",{"type":[1],"message":[1],"showIcon":[4,"show-icon"],"showButton":[4,"show-button"],"actionLabel":[1,"action-label"],"allowClose":[4,"allow-close"]}]]],["bs-data-table.cjs",[[513,"bs-data-table",{"columns":[16],"rows":[16],"sortColumn":[1,"sort-column"],"sortDirection":[1,"sort-direction"],"selectable":[4],"cellRenderer":[16],"selectedIds":[32],"clearSelection":[64]}]]],["bs-inline-tab.cjs",[[769,"bs-inline-tab",{"selected":[516],"disabled":[4],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasLabel":[32]}]]],["bs-navigation-drawer-item.cjs",[[769,"bs-navigation-drawer-item",{"selected":[516],"expandable":[4],"expanded":[1540],"nested":[4],"ariaLabel":[1,"aria-label"],"collapsed":[516],"hasIcon":[32]}]]],["bs-progress.cjs",[[513,"bs-progress",{"type":[1],"size":[1],"strokeWidth":[2,"stroke-width"],"value":[2],"showLabel":[4,"show-label"]}]]],["bs-radio.cjs",[[785,"bs-radio",{"name":[1],"value":[1],"checked":[1540],"disabled":[4]}]]],["bs-slider.cjs",[[529,"bs-slider",{"type":[1],"showLabel":[4,"show-label"],"label":[1],"min":[2],"max":[2],"step":[2],"value":[1026],"valueStart":[1026,"value-start"],"valueEnd":[1026,"value-end"],"segments":[2],"disabled":[4],"ariaLabel":[1,"aria-label"]}]]],["bs-source-link.cjs",[[769,"bs-source-link",{"fileName":[1,"file-name"],"sourceName":[1,"source-name"],"version":[1],"href":[1],"target":[1]}]]],["bs-stepper.cjs",[[769,"bs-stepper",{"currentStep":[2,"current-step"],"direction":[513],"showDescription":[4,"show-description"]},null,{"currentStep":[{"onPropChange":0}],"direction":[{"onPropChange":0}],"showDescription":[{"onPropChange":0}]}]]],["bs-stepper-step.cjs",[[513,"bs-stepper-step",{"name":[1],"description":[1],"error":[4],"disabled":[4],"computedState":[1,"computed-state"],"direction":[1],"showDescription":[4,"show-description"]}]]],["bs-switch.cjs",[[785,"bs-switch",{"size":[1],"checked":[1540],"disabled":[4],"ariaLabel":[1,"aria-label"]}]]],["bs-tab.cjs",[[769,"bs-tab",{"selected":[516],"disabled":[4],"iconPosition":[1,"icon-position"],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasLabel":[32],"hasBadge":[32]}]]],["bs-tabs.cjs",[[769,"bs-tabs",{"type":[1],"orientation":[1]},[[0,"bsSelect","onTabSelect"]]]]],["bs-toast.cjs",[[769,"bs-toast",{"state":[1]}]]],["bs-menu-item.cjs",[[769,"bs-menu-item",{"disabled":[4],"hasIcon":[32]}]]],["bs-pagination.cjs",[[513,"bs-pagination",{"totalPages":[2,"total-pages"],"currentPage":[1538,"current-page"],"siblingCount":[2,"sibling-count"],"previousLabel":[1,"previous-label"],"nextLabel":[1,"next-label"]}]]],["bs-progress-linear.cjs",[[769,"bs-progress-linear",{"type":[1],"size":[1],"value":[2],"showLabel":[4,"show-label"],"ariaLabel":[1,"aria-label"],"hasLabelContent":[32]}]]],["bs-tooltip.cjs",[[769,"bs-tooltip",{"placement":[1]}]]],["bs-logo.cjs",[[513,"bs-logo",{"variant":[1],"background":[1],"src":[1],"alt":[1]}]]],["bs-menu.cjs",[[257,"bs-menu"]]],["bs-button.cjs",[[785,"bs-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"],"hasIcon":[32],"hasEndIcon":[32],"hasLabel":[32]}]]],["bs-icon-button.cjs",[[785,"bs-icon-button",{"variant":[1],"size":[1],"disabled":[4],"type":[1],"ariaLabel":[1,"aria-label"]}]]]], options);
|
|
9
9
|
};
|
|
10
10
|
|
|
11
11
|
exports.setNonce = index.setNonce;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
"components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js",
|
|
9
9
|
"components/bs-button/bs-button/bs-button.js",
|
|
10
10
|
"components/bs-card/bs-card.js",
|
|
11
|
+
"components/bs-carousel/bs-carousel.js",
|
|
11
12
|
"components/bs-checkbox/bs-checkbox.js",
|
|
12
13
|
"components/bs-chip/bs-chip-filter/bs-chip-filter.js",
|
|
13
14
|
"components/bs-chip/bs-chip-informative/bs-chip-informative.js",
|
|
@@ -16,6 +17,8 @@
|
|
|
16
17
|
"components/bs-composer-status-banner/bs-composer-status-banner.js",
|
|
17
18
|
"components/bs-data-table/bs-data-table.js",
|
|
18
19
|
"components/bs-dialog/bs-dialog.js",
|
|
20
|
+
"components/bs-file-upload/bs-file-upload.js",
|
|
21
|
+
"components/bs-file-upload-item/bs-file-upload-item.js",
|
|
19
22
|
"components/bs-button/bs-icon-button/bs-icon-button.js",
|
|
20
23
|
"components/bs-logo/bs-logo.js",
|
|
21
24
|
"components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js",
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
import { runAxeCheck } from "../../test/helpers/conventions";
|
|
2
3
|
describe('bs-accordion', () => {
|
|
4
|
+
it('has no axe-core accessibility violations', async () => {
|
|
5
|
+
const { root } = await render(h("bs-accordion", null, h("span", { slot: "label" }, "Title"), "Body content"));
|
|
6
|
+
await runAxeCheck(root);
|
|
7
|
+
});
|
|
3
8
|
['medium', 'large'].forEach(size => {
|
|
4
9
|
it(`renders collapsed, size="${size}"`, async () => {
|
|
5
10
|
const { root } = await render(h("bs-accordion", { size: size }, h("span", { slot: "label" }, "Title"), "Body content"));
|
|
@@ -25,7 +25,7 @@ import { h } from "@stencil/core";
|
|
|
25
25
|
export class BsAiDisclaimer {
|
|
26
26
|
render() {
|
|
27
27
|
https: //images.unsplash.com/photo-1512917774080-9991f1c4c750?w=200&h=200&fit=crop
|
|
28
|
-
return (h("div", { key: '
|
|
28
|
+
return (h("div", { key: '2df50141b934d044d68015cc40b0cc525f374ec7', class: "bs-ai-disclaimer" }, h("p", { key: '42e735a432c16d16c4daa786bbd3e2757d298e68', part: "text", class: "bs-ai-disclaimer__text" }, h("slot", { key: 'fe037a3b1bd4bf6135448abd6ce2de8aa4cec6d5' }))));
|
|
29
29
|
}
|
|
30
30
|
static get is() { return "bs-ai-disclaimer"; }
|
|
31
31
|
static get encapsulation() { return "shadow"; }
|
|
@@ -43,7 +43,7 @@ export class BsAiGreeting {
|
|
|
43
43
|
const subtext = this.productName
|
|
44
44
|
? `How can I help you with ${this.productName} today?`
|
|
45
45
|
: 'How can I help you today?';
|
|
46
|
-
return (h("div", { key: '
|
|
46
|
+
return (h("div", { key: '36ef1fa16f576af16387a9119c6fb3003fde61de', class: "bs-ai-greeting" }, h("div", { key: '397127700354b1a9b46b3adc5c4e7bec3803b5cf', part: "heading", class: "bs-ai-greeting__heading" }, h("p", { key: '3bf51034fa5fc1ea28856e1d44b629f6614cdf1a', class: "bs-ai-greeting__heading-line" }, "Hi. I'm ", this.assistantName, ","), h("p", { key: 'b718d68dfb5c602eb035950b9ff661ab569b9302', class: "bs-ai-greeting__heading-line" }, "your AI assistant.")), h("p", { key: '1d271a06cfc0909c8c8c6487a05da3aebf925c09', part: "subtext", class: "bs-ai-greeting__subtext" }, subtext)));
|
|
47
47
|
}
|
|
48
48
|
static get is() { return "bs-ai-greeting"; }
|
|
49
49
|
static get encapsulation() { return "shadow"; }
|
|
@@ -29,7 +29,7 @@ export class BsAiThinking {
|
|
|
29
29
|
/** The status text shown next to the icon, e.g. "Retrieving", "Thinking", "Searching". */
|
|
30
30
|
label = 'Thinking';
|
|
31
31
|
render() {
|
|
32
|
-
return (h("div", { key: '
|
|
32
|
+
return (h("div", { key: '310fa2c79337dd330219ea2f0c11c5105692f964', class: "bs-ai-thinking", role: "status", "aria-live": "polite" }, h("img", { key: '0e6b3bf38aeff1166675e6761ada150ddfc344b1', part: "icon", class: "bs-ai-thinking__icon", src: GENIE_MARK_ICON, alt: "", "aria-hidden": "true" }), h("span", { key: '5611170fc41f29361c79be7e30599ae61ef5a976', part: "label", class: "bs-ai-thinking__label" }, this.label)));
|
|
33
33
|
}
|
|
34
34
|
static get is() { return "bs-ai-thinking"; }
|
|
35
35
|
static get encapsulation() { return "shadow"; }
|
|
@@ -58,7 +58,7 @@ export class BsAttachmentList {
|
|
|
58
58
|
this.canScrollRight = row.scrollWidth - row.clientWidth - row.scrollLeft > 1;
|
|
59
59
|
};
|
|
60
60
|
render() {
|
|
61
|
-
return (h("div", { key: '
|
|
61
|
+
return (h("div", { key: '2e265dcc82737c0b129be0196f68c0ec1a745789', class: "bs-attachment-list" }, h("div", { key: 'b148b3743237126437344dc1680c6c64c311f89a', part: "row", class: "bs-attachment-list__row", ref: el => (this.row = el), onScroll: this.onScroll, role: "group", "aria-label": this.ariaLabel, tabIndex: 0 }, h("slot", { key: 'db30b9615067b73db4c048991745055742be759f', onSlotchange: this.onSlotchange })), this.canScrollRight && h("div", { key: '989a64c7dc6e8cb99036a779b0eefc02b4706dc6', part: "fade", class: "bs-attachment-list__fade", "aria-hidden": "true" })));
|
|
62
62
|
}
|
|
63
63
|
static get is() { return "bs-attachment-list"; }
|
|
64
64
|
static get encapsulation() { return "shadow"; }
|
|
@@ -54,7 +54,7 @@ export class BsBreadcrumbs {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
render() {
|
|
57
|
-
return (h("nav", { key: '
|
|
57
|
+
return (h("nav", { key: '14bf783e0dc34d1f8368bde48499e684b1410b94', "aria-label": this.label }, h("ol", { key: 'feef69a5164f6d7dad670e56cdbd7912aff96c2c', part: "list", class: "bs-breadcrumbs__list" }, h("slot", { key: 'b616fc5fcf0181025be6e5570b7d0fa10cae146e', onSlotchange: this.onSlotChange }))));
|
|
58
58
|
}
|
|
59
59
|
static get is() { return "bs-breadcrumbs"; }
|
|
60
60
|
static get encapsulation() { return "shadow"; }
|
|
@@ -50,7 +50,7 @@ export class BsIconButton {
|
|
|
50
50
|
*/
|
|
51
51
|
ariaLabel = null;
|
|
52
52
|
render() {
|
|
53
|
-
return (h("button", { key: '
|
|
53
|
+
return (h("button", { key: '0721387caf111462e6ae846647ba1c48363158aa', class: `bs-icon-button bs-icon-button--${this.variant} bs-icon-button--${this.size}`, type: this.type, disabled: this.disabled, "aria-label": this.ariaLabel }, h("span", { key: '8c69f815b6ca603cfcfab34e3530f4c783da0ee7', part: "icon", class: "bs-icon-button__icon" }, h("slot", { key: '8533f8ecfae182d6bd7d7e0dd6af328015948864' }))));
|
|
54
54
|
}
|
|
55
55
|
static get is() { return "bs-icon-button"; }
|
|
56
56
|
static get encapsulation() { return "shadow"; }
|
|
@@ -25,7 +25,7 @@ export class BsButtonSkeleton {
|
|
|
25
25
|
/** Sizing scale, matching the `bs-button` size it stands in for. */
|
|
26
26
|
size = 'md';
|
|
27
27
|
render() {
|
|
28
|
-
return h("span", { key: '
|
|
28
|
+
return h("span", { key: '1b7d442c2522cd4591862c6d72ee9bc491570518', part: "container", class: `bs-button-skeleton bs-button-skeleton--${this.size}`, role: "status", "aria-label": "Loading" });
|
|
29
29
|
}
|
|
30
30
|
static get is() { return "bs-button-skeleton"; }
|
|
31
31
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
import { afterEach, beforeEach, vi } from "vitest";
|
|
3
|
+
import { userEvent } from "vitest/browser";
|
|
4
|
+
import { assertShadowParts, runAxeCheck } from "../../test/helpers/conventions";
|
|
5
|
+
const slides = (n) => Array.from({ length: n }, (_, i) => h("div", null, "Slide ", i + 1));
|
|
6
|
+
const visible = (root) => Array.from(root.children).filter(c => !c.hidden).map(c => c.textContent);
|
|
7
|
+
// Autoplay deliberately holds while the pointer is over the carousel (WCAG pause-on-hover). The test
|
|
8
|
+
// browser keeps ONE pointer for the whole run, so an earlier test that hovered something near the top
|
|
9
|
+
// of the page leaves it resting where the next carousel renders -- which then holds autoplay and
|
|
10
|
+
// never advances (this is exactly what failed on the CI runner while passing locally). Park the
|
|
11
|
+
// pointer in the opposite corner before each autoplay test so they don't depend on test order.
|
|
12
|
+
const parkPointer = async () => {
|
|
13
|
+
const dot = document.createElement('div');
|
|
14
|
+
dot.style.cssText = 'position:fixed;right:0;bottom:0;width:8px;height:8px';
|
|
15
|
+
document.body.appendChild(dot);
|
|
16
|
+
await userEvent.hover(dot);
|
|
17
|
+
dot.remove();
|
|
18
|
+
};
|
|
19
|
+
// Autoplay also starts paused for users who prefer reduced motion; make that independent of the
|
|
20
|
+
// machine running the tests.
|
|
21
|
+
const stubReducedMotion = (reduce) => vi.spyOn(window, 'matchMedia').mockImplementation((query) => ({
|
|
22
|
+
matches: reduce && query.includes('prefers-reduced-motion'),
|
|
23
|
+
media: query,
|
|
24
|
+
onchange: null,
|
|
25
|
+
addListener: () => undefined,
|
|
26
|
+
removeListener: () => undefined,
|
|
27
|
+
addEventListener: () => undefined,
|
|
28
|
+
removeEventListener: () => undefined,
|
|
29
|
+
dispatchEvent: () => false,
|
|
30
|
+
}));
|
|
31
|
+
// Resolves with the page of the next bsPageChange. Rejects with the carousel's state if none comes in
|
|
32
|
+
// time, so a failure says WHY autoplay held (hovered/focused/paused) instead of just "timed out".
|
|
33
|
+
const nextPage = (el, timeout = 5000) => new Promise((resolve, reject) => {
|
|
34
|
+
const timer = setTimeout(() => {
|
|
35
|
+
const host = el;
|
|
36
|
+
const live = el.shadowRoot?.querySelector('[part="slides"]')?.getAttribute('aria-live');
|
|
37
|
+
reject(new Error(`no bsPageChange within the timeout (paused=${host.paused}, :hover=${el.matches(':hover')}, ` +
|
|
38
|
+
`:focus-within=${el.matches(':focus-within')}, aria-live=${live})`));
|
|
39
|
+
}, timeout);
|
|
40
|
+
el.addEventListener('bsPageChange', (e) => {
|
|
41
|
+
clearTimeout(timer);
|
|
42
|
+
resolve(e.detail);
|
|
43
|
+
}, { once: true });
|
|
44
|
+
});
|
|
45
|
+
const btn = (el) => el?.shadowRoot?.querySelector('button');
|
|
46
|
+
describe('bs-carousel', () => {
|
|
47
|
+
it('has no axe-core violations (dots and numbers)', async () => {
|
|
48
|
+
for (const tracker of ['dots', 'numbers']) {
|
|
49
|
+
const { root } = await render(h("bs-carousel", { tracker: tracker, autoplay: true, label: "Featured" }, slides(9)));
|
|
50
|
+
await runAxeCheck(root);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
it('exposes its documented shadow parts', async () => {
|
|
54
|
+
const { root } = await render(h("bs-carousel", { autoplay: true }, slides(9)));
|
|
55
|
+
assertShadowParts(root.shadowRoot, ['carousel', 'slides', 'tracker', 'prev', 'next', 'dots', 'dot', 'current', 'pause']);
|
|
56
|
+
});
|
|
57
|
+
it('shows slidesPerView slides per page and hides the rest', async () => {
|
|
58
|
+
const { root } = await render(h("bs-carousel", null, slides(7)));
|
|
59
|
+
expect(visible(root)).toEqual(['Slide 1', 'Slide 2', 'Slide 3']);
|
|
60
|
+
});
|
|
61
|
+
it('slidesPerView=1 shows one slide per page', async () => {
|
|
62
|
+
const { root } = await render(h("bs-carousel", { slidesPerView: 1 }, slides(3)));
|
|
63
|
+
expect(visible(root)).toEqual(['Slide 1']);
|
|
64
|
+
});
|
|
65
|
+
it('labels the region and each slide, without overriding existing labels', async () => {
|
|
66
|
+
const { root } = await render(h("bs-carousel", { label: "News" }, h("div", { "aria-label": "Custom" }, "A"), h("div", null, "B")));
|
|
67
|
+
const region = root.shadowRoot.querySelector('[part="carousel"]');
|
|
68
|
+
expect(region).toEqualAttribute('role', 'region');
|
|
69
|
+
expect(region).toEqualAttribute('aria-roledescription', 'carousel');
|
|
70
|
+
expect(region).toEqualAttribute('aria-label', 'News');
|
|
71
|
+
expect(root.children[0].getAttribute('aria-label')).toBe('Custom');
|
|
72
|
+
expect(root.children[1].getAttribute('aria-label')).toBe('2 of 2');
|
|
73
|
+
expect(root.children[1].getAttribute('aria-roledescription')).toBe('slide');
|
|
74
|
+
});
|
|
75
|
+
describe('dots tracker', () => {
|
|
76
|
+
it('renders one dot per page with the current one active', async () => {
|
|
77
|
+
const { root } = await render(h("bs-carousel", null, slides(12)));
|
|
78
|
+
const dots = root.shadowRoot.querySelectorAll('[part~="dot"]');
|
|
79
|
+
expect(dots.length).toBe(4);
|
|
80
|
+
expect(dots[0].getAttribute('part')).toContain('current');
|
|
81
|
+
expect(root.shadowRoot.querySelectorAll('[part~="current"]').length).toBe(1);
|
|
82
|
+
});
|
|
83
|
+
it('next/previous move the page, emit bsPageChange, and disable at the ends', async () => {
|
|
84
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-carousel", null, slides(9)));
|
|
85
|
+
const spy = spyOnEvent('bsPageChange');
|
|
86
|
+
const prev = root.shadowRoot.querySelector('[part="prev"]');
|
|
87
|
+
const next = root.shadowRoot.querySelector('[part="next"]');
|
|
88
|
+
expect(prev.disabled).toBe(true);
|
|
89
|
+
btn(next).click();
|
|
90
|
+
await waitForChanges();
|
|
91
|
+
expect(visible(root)).toEqual(['Slide 4', 'Slide 5', 'Slide 6']);
|
|
92
|
+
expect(root.currentPage).toBe(2);
|
|
93
|
+
expect(spy).toHaveReceivedEventDetail(2);
|
|
94
|
+
btn(next).click();
|
|
95
|
+
await waitForChanges();
|
|
96
|
+
expect(next.disabled).toBe(true);
|
|
97
|
+
btn(prev).click();
|
|
98
|
+
await waitForChanges();
|
|
99
|
+
expect(root.currentPage).toBe(2);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
describe('numbers tracker', () => {
|
|
103
|
+
it('renders a bs-pagination with one number per page and navigates on click', async () => {
|
|
104
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-carousel", { tracker: "numbers" }, slides(15)));
|
|
105
|
+
const spy = spyOnEvent('bsPageChange');
|
|
106
|
+
const pagination = root.shadowRoot.querySelector('bs-pagination');
|
|
107
|
+
expect(pagination.totalPages).toBe(5);
|
|
108
|
+
pagination.shadowRoot.querySelectorAll('.bs-pagination__page')[2].click();
|
|
109
|
+
await waitForChanges();
|
|
110
|
+
expect(root.currentPage).toBe(3);
|
|
111
|
+
expect(visible(root)).toEqual(['Slide 7', 'Slide 8', 'Slide 9']);
|
|
112
|
+
expect(spy).toHaveReceivedEventTimes(1);
|
|
113
|
+
expect(spy).toHaveReceivedEventDetail(3);
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
it('hides the tracker when there is only one page', async () => {
|
|
117
|
+
const { root } = await render(h("bs-carousel", null, slides(3)));
|
|
118
|
+
expect(root.shadowRoot.querySelector('[part="tracker"]')).toBeNull();
|
|
119
|
+
});
|
|
120
|
+
it('clamps an out-of-range currentPage', async () => {
|
|
121
|
+
const { root, waitForChanges } = await render(h("bs-carousel", { currentPage: 99 }, slides(9)));
|
|
122
|
+
await waitForChanges();
|
|
123
|
+
expect(root.currentPage).toBe(3);
|
|
124
|
+
expect(visible(root)).toEqual(['Slide 7', 'Slide 8', 'Slide 9']);
|
|
125
|
+
});
|
|
126
|
+
it('reacts to slides being added', async () => {
|
|
127
|
+
const { root, waitForChanges } = await render(h("bs-carousel", null, slides(3)));
|
|
128
|
+
for (let i = 4; i <= 7; i++) {
|
|
129
|
+
const d = document.createElement('div');
|
|
130
|
+
d.textContent = `Slide ${i}`;
|
|
131
|
+
root.appendChild(d);
|
|
132
|
+
}
|
|
133
|
+
await waitForChanges();
|
|
134
|
+
expect(root.shadowRoot.querySelectorAll('[part~="dot"]').length).toBe(3);
|
|
135
|
+
});
|
|
136
|
+
describe('autoplay', () => {
|
|
137
|
+
beforeEach(async () => {
|
|
138
|
+
stubReducedMotion(false);
|
|
139
|
+
await parkPointer();
|
|
140
|
+
});
|
|
141
|
+
afterEach(() => {
|
|
142
|
+
vi.restoreAllMocks();
|
|
143
|
+
});
|
|
144
|
+
it('renders no Pause button unless autoplay is set', async () => {
|
|
145
|
+
const { root } = await render(h("bs-carousel", null, slides(9)));
|
|
146
|
+
expect(root.shadowRoot.querySelector('[part="pause"]')).toBeNull();
|
|
147
|
+
});
|
|
148
|
+
it('auto-advances, looping from the last page to the first', async () => {
|
|
149
|
+
const { root } = await render(h("bs-carousel", { autoplay: true, interval: 250 }, slides(6)));
|
|
150
|
+
expect(await nextPage(root)).toBe(2);
|
|
151
|
+
expect(await nextPage(root)).toBe(1);
|
|
152
|
+
});
|
|
153
|
+
it('starts paused (showing Play) for users who prefer reduced motion, and does not advance', async () => {
|
|
154
|
+
stubReducedMotion(true);
|
|
155
|
+
const { root, waitForChanges } = await render(h("bs-carousel", { autoplay: true, interval: 250 }, slides(6)));
|
|
156
|
+
await waitForChanges();
|
|
157
|
+
expect(root.paused).toBe(true);
|
|
158
|
+
expect(root.shadowRoot.querySelector('[part="pause"]').textContent).toContain('Play');
|
|
159
|
+
await new Promise(r => setTimeout(r, 700));
|
|
160
|
+
expect(root.currentPage).toBe(1);
|
|
161
|
+
});
|
|
162
|
+
it('holds auto-advance while the pointer is over the carousel', async () => {
|
|
163
|
+
const { root, waitForChanges } = await render(h("bs-carousel", { autoplay: true, interval: 250 }, slides(6)));
|
|
164
|
+
await waitForChanges();
|
|
165
|
+
root.dispatchEvent(new MouseEvent('mouseenter'));
|
|
166
|
+
await waitForChanges();
|
|
167
|
+
expect(root.shadowRoot.querySelector('[part="slides"]').getAttribute('aria-live')).toBe('polite');
|
|
168
|
+
await new Promise(r => setTimeout(r, 700));
|
|
169
|
+
expect(root.currentPage).toBe(1);
|
|
170
|
+
root.dispatchEvent(new MouseEvent('mouseleave'));
|
|
171
|
+
expect(await nextPage(root)).toBe(2);
|
|
172
|
+
});
|
|
173
|
+
it('Pause stops auto-advance, flips to Play, and emits bsPauseChange', async () => {
|
|
174
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-carousel", { autoplay: true, interval: 1000 }, slides(9)));
|
|
175
|
+
const spy = spyOnEvent('bsPauseChange');
|
|
176
|
+
const pause = root.shadowRoot.querySelector('[part="pause"]');
|
|
177
|
+
expect(pause.textContent).toContain('Pause');
|
|
178
|
+
btn(pause).click();
|
|
179
|
+
await waitForChanges();
|
|
180
|
+
expect(root.paused).toBe(true);
|
|
181
|
+
expect(pause.textContent).toContain('Play');
|
|
182
|
+
expect(spy).toHaveReceivedEventDetail(true);
|
|
183
|
+
// Longer than one interval: had it not stopped, it would have advanced by now.
|
|
184
|
+
await new Promise(r => setTimeout(r, 1300));
|
|
185
|
+
expect(root.currentPage).toBe(1);
|
|
186
|
+
});
|
|
187
|
+
it('holds auto-advance while focus is inside, and announces politely only when not rotating', async () => {
|
|
188
|
+
const { root, waitForChanges } = await render(h("bs-carousel", { autoplay: true, interval: 1000 }, slides(9)));
|
|
189
|
+
const live = () => root.shadowRoot.querySelector('[part="slides"]').getAttribute('aria-live');
|
|
190
|
+
expect(live()).toBe('off');
|
|
191
|
+
root.dispatchEvent(new FocusEvent('focusin'));
|
|
192
|
+
await waitForChanges();
|
|
193
|
+
expect(live()).toBe('polite');
|
|
194
|
+
await new Promise(r => setTimeout(r, 1300));
|
|
195
|
+
expect(root.currentPage).toBe(1);
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
});
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prop --bs-carousel-gap: Gap between visible slides. Aliased to --bs-spacing-200.
|
|
3
|
+
* @prop --bs-carousel-tracker-offset: Vertical gap between the slides and the tracker row. Aliased to --bs-spacing-200.
|
|
4
|
+
* @prop --bs-carousel-tracker-gap: Gap between the items of the tracker row (previous, dots, next, Pause). Aliased to --bs-spacing-50.
|
|
5
|
+
* @prop --bs-carousel-dot-size: Width/height of an inactive dot; the active dot is twice as wide. Aliased to --bs-spacing-100 (8px, exact match to Figma).
|
|
6
|
+
* @prop --bs-carousel-dot-radius: Corner radius of a dot. Aliased to --bs-border-radius-full.
|
|
7
|
+
* @prop --bs-carousel-dot-color: Fill of an inactive dot. Aliased to --bs-surface-container.
|
|
8
|
+
* @prop --bs-carousel-dot-active-color: Fill of the active dot. Aliased to --bs-color-primary-default.
|
|
9
|
+
* @prop --bs-carousel-dots-gap: Gap between dots. Aliased to --bs-spacing-50.
|
|
10
|
+
*/
|
|
11
|
+
:host {
|
|
12
|
+
display: block;
|
|
13
|
+
|
|
14
|
+
--bs-carousel-gap: var(--bs-spacing-200);
|
|
15
|
+
--bs-carousel-tracker-offset: var(--bs-spacing-200);
|
|
16
|
+
--bs-carousel-tracker-gap: var(--bs-spacing-50);
|
|
17
|
+
|
|
18
|
+
--bs-carousel-dot-size: var(--bs-spacing-100);
|
|
19
|
+
--bs-carousel-dot-radius: var(--bs-border-radius-full);
|
|
20
|
+
--bs-carousel-dot-color: var(--bs-surface-container);
|
|
21
|
+
--bs-carousel-dot-active-color: var(--bs-color-primary-default);
|
|
22
|
+
--bs-carousel-dots-gap: var(--bs-spacing-50);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.bs-carousel {
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
align-items: center;
|
|
29
|
+
gap: var(--bs-carousel-tracker-offset);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.bs-carousel__slides {
|
|
33
|
+
display: flex;
|
|
34
|
+
align-items: flex-start;
|
|
35
|
+
gap: var(--bs-carousel-gap);
|
|
36
|
+
width: 100%;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/* Each slide takes an equal share of the row for the configured slidesPerView (set inline by the
|
|
40
|
+
component -- an internal variable, not a customization point). */
|
|
41
|
+
.bs-carousel__slides ::slotted(*) {
|
|
42
|
+
flex: 0 0
|
|
43
|
+
calc(
|
|
44
|
+
(100% - (var(--bs-carousel-slides-per-view) - 1) * var(--bs-carousel-gap)) / var(--bs-carousel-slides-per-view)
|
|
45
|
+
);
|
|
46
|
+
min-width: 0;
|
|
47
|
+
box-sizing: border-box;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* Off-page slides carry the `hidden` attribute; a slide's own :host { display } would otherwise
|
|
51
|
+
override the UA's [hidden] rule. */
|
|
52
|
+
.bs-carousel__slides ::slotted([hidden]) {
|
|
53
|
+
display: none !important;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.bs-carousel__tracker {
|
|
57
|
+
display: flex;
|
|
58
|
+
align-items: center;
|
|
59
|
+
gap: var(--bs-carousel-tracker-gap);
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.bs-carousel__nav {
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
gap: var(--bs-carousel-tracker-gap);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.bs-carousel__dots {
|
|
69
|
+
display: flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
gap: var(--bs-carousel-dots-gap);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.bs-carousel__dot {
|
|
75
|
+
display: block;
|
|
76
|
+
width: var(--bs-carousel-dot-size);
|
|
77
|
+
height: var(--bs-carousel-dot-size);
|
|
78
|
+
border-radius: var(--bs-carousel-dot-radius);
|
|
79
|
+
background: var(--bs-carousel-dot-color);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.bs-carousel__dot--active {
|
|
83
|
+
width: calc(var(--bs-carousel-dot-size) * 2);
|
|
84
|
+
background: var(--bs-carousel-dot-active-color);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/* Figma colors the previous/next chevrons with the default icon color (--bs-icon-default, #21262e),
|
|
88
|
+
one step darker than bs-icon-button's subtle variant (--bs-icon-neutral-default). Re-pointing that
|
|
89
|
+
token on these buttons only keeps the alias-to-a-token rule without touching bs-icon-button. */
|
|
90
|
+
.bs-carousel__nav bs-icon-button {
|
|
91
|
+
--bs-icon-neutral-default: var(--bs-icon-default);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* In RTL the previous button sits on the right, so its chevron must point right (and vice versa). */
|
|
95
|
+
:host(:dir(rtl)) .bs-carousel__chevron {
|
|
96
|
+
transform: scaleX(-1);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@media (forced-colors: active) {
|
|
100
|
+
.bs-carousel__dot {
|
|
101
|
+
forced-color-adjust: none;
|
|
102
|
+
background: GrayText;
|
|
103
|
+
}
|
|
104
|
+
.bs-carousel__dot--active {
|
|
105
|
+
background: Highlight;
|
|
106
|
+
}
|
|
107
|
+
}
|