@brandsync/wc 1.12.1 → 1.13.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/CHANGELOG.md +16 -0
- package/CONVENTIONS.md +109 -0
- package/REFERENCE.md +1357 -0
- package/custom-elements.json +2628 -338
- package/dist/brandsync-wc/brandsync-wc.css +1 -1783
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/{p-83c90489.entry.js → p-00be9a64.entry.js} +1 -1
- package/dist/brandsync-wc/{p-b9ccd9d1.entry.js → p-020cb767.entry.js} +1 -1
- package/dist/brandsync-wc/p-046a53de.entry.js +1 -0
- package/dist/brandsync-wc/{p-282ddbee.entry.js → p-07966676.entry.js} +1 -1
- package/dist/brandsync-wc/p-0cb6fc39.entry.js +1 -0
- package/dist/brandsync-wc/{p-2497d128.entry.js → p-0e940ee1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e5daa6ca.entry.js → p-10290c41.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e2556b4e.entry.js → p-144b6ac8.entry.js} +1 -1
- package/dist/brandsync-wc/p-1b5cc9b8.entry.js +1 -0
- package/dist/brandsync-wc/p-23b56775.entry.js +1 -0
- package/dist/brandsync-wc/{p-a9169157.entry.js → p-23cc532f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-81605b82.entry.js → p-361aef36.entry.js} +1 -1
- package/dist/brandsync-wc/{p-89fabf27.entry.js → p-3789c7a5.entry.js} +1 -1
- package/dist/brandsync-wc/p-3f6682f8.entry.js +1 -0
- package/dist/brandsync-wc/{p-f5180578.entry.js → p-4054a944.entry.js} +1 -1
- package/dist/brandsync-wc/{p-fc069773.entry.js → p-45cb3e6d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-de110ad0.entry.js → p-47b7fe76.entry.js} +1 -1
- package/dist/brandsync-wc/{p-2f4e08e1.entry.js → p-47cd19aa.entry.js} +1 -1
- package/dist/brandsync-wc/{p-3a1af63a.entry.js → p-4bbc4809.entry.js} +1 -1
- package/dist/brandsync-wc/{p-247e36ad.entry.js → p-4ea435a6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-56c37e0a.entry.js → p-4ea9b6a1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1978e63c.entry.js → p-53362609.entry.js} +1 -1
- package/dist/brandsync-wc/p-658532b7.entry.js +1 -0
- package/dist/brandsync-wc/p-68f0be29.entry.js +1 -0
- package/dist/brandsync-wc/{p-09bc1923.entry.js → p-694fe468.entry.js} +1 -1
- package/dist/brandsync-wc/{p-78f4fcf0.entry.js → p-6ca1e51b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-52cb2358.entry.js → p-6e923ebc.entry.js} +1 -1
- package/dist/brandsync-wc/p-7e24dbd7.entry.js +1 -0
- package/dist/brandsync-wc/{p-00a0d489.entry.js → p-8048d033.entry.js} +1 -1
- package/dist/brandsync-wc/{p-2368a92e.entry.js → p-8184d7de.entry.js} +1 -1
- package/dist/brandsync-wc/p-8390a155.entry.js +1 -0
- package/dist/brandsync-wc/{p-0b2d3b7e.entry.js → p-86028548.entry.js} +1 -1
- package/dist/brandsync-wc/{p-fcee0dc4.entry.js → p-89fa7567.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7796b93f.entry.js → p-8c9938a5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-68fcd4a4.entry.js → p-9125632c.entry.js} +1 -1
- package/dist/brandsync-wc/{p-416322bd.entry.js → p-94d435a2.entry.js} +1 -1
- package/dist/brandsync-wc/{p-69c0a85d.entry.js → p-95f034fc.entry.js} +1 -1
- package/dist/brandsync-wc/p-9b58c0c5.entry.js +1 -0
- package/dist/brandsync-wc/{p-39a26c64.entry.js → p-9cf8274a.entry.js} +1 -1
- package/dist/brandsync-wc/p-9d12b1fb.entry.js +1 -0
- package/dist/brandsync-wc/{p-5ba90a13.entry.js → p-9d660c03.entry.js} +1 -1
- package/dist/brandsync-wc/p-D3SkQJpw.js +3 -0
- package/dist/brandsync-wc/{p-7f954939.entry.js → p-a28ef52e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-09435f41.entry.js → p-a5659499.entry.js} +1 -1
- package/dist/brandsync-wc/p-ab07c9b5.entry.js +1 -0
- package/dist/brandsync-wc/p-b0b2e525.entry.js +1 -0
- package/dist/brandsync-wc/p-b6ac1b50.entry.js +1 -0
- package/dist/brandsync-wc/p-bee30626.entry.js +1 -0
- package/dist/brandsync-wc/p-bf8bd386.entry.js +1 -0
- package/dist/brandsync-wc/{p-1aab6d07.entry.js → p-c05ee501.entry.js} +1 -1
- package/dist/brandsync-wc/p-c3da3080.entry.js +1 -0
- package/dist/brandsync-wc/p-c679b631.entry.js +1 -0
- package/dist/brandsync-wc/p-cceb8484.entry.js +1 -0
- package/dist/brandsync-wc/p-cd53bba9.entry.js +1 -0
- package/dist/brandsync-wc/p-ce16f038.entry.js +1 -0
- package/dist/brandsync-wc/{p-491b51e6.entry.js → p-d5a6098d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f15d9524.entry.js → p-d64cae57.entry.js} +1 -1
- package/dist/brandsync-wc/p-dfad8c0a.entry.js +1 -0
- package/dist/brandsync-wc/p-e0504a4b.entry.js +1 -0
- package/dist/brandsync-wc/{p-0ee4126c.entry.js → p-e1b7bea7.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0b7c77c1.entry.js → p-e65d286c.entry.js} +1 -1
- package/dist/brandsync-wc/p-ed5c2d97.entry.js +1 -0
- package/dist/brandsync-wc/p-f134a502.entry.js +1 -0
- package/dist/brandsync-wc/p-f271e1d2.entry.js +1 -0
- package/dist/brandsync-wc/{p-3f09296a.entry.js → p-f3eca1ce.entry.js} +1 -1
- package/dist/brandsync-wc/{p-617bd13a.entry.js → p-f8d47004.entry.js} +1 -1
- package/dist/brandsync-wc/p-fa34fe20.entry.js +1 -0
- package/dist/brandsync-wc/{p-2177042f.entry.js → p-fa6b9750.entry.js} +1 -1
- package/dist/brandsync-wc/p-fb4d0093.entry.js +1 -0
- package/dist/brandsync-wc/{p-78a69a59.entry.js → p-fc76031e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-be3dd446.entry.js → p-ffc07eb5.entry.js} +1 -1
- package/dist/cjs/brandsync-wc.cjs.js +2 -2
- package/dist/cjs/bs-accordion-group.cjs.entry.js +33 -0
- 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 +9 -5
- 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 +4 -2
- package/dist/cjs/bs-button.cjs.entry.js +1 -1
- package/dist/cjs/bs-card.cjs.entry.js +1 -1
- package/dist/cjs/bs-carousel.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +18 -2
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +20 -2
- package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +25 -3
- package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +4 -2
- package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +3 -3
- package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +4 -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 +4 -2
- package/dist/cjs/bs-citation-preview.cjs.entry.js +29 -0
- package/dist/cjs/bs-composer-status-banner.cjs.entry.js +11 -3
- package/dist/cjs/bs-composer.cjs.entry.js +36 -7
- package/dist/cjs/bs-cookie-consent.cjs.entry.js +1 -1
- package/dist/cjs/bs-data-table.cjs.entry.js +5 -3
- package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
- package/dist/cjs/bs-dialog.cjs.entry.js +4 -2
- package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
- package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
- package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
- package/dist/cjs/bs-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/bs-icon-tile.cjs.entry.js +1 -1
- package/dist/cjs/bs-inline-tab.cjs.entry.js +2 -2
- package/dist/cjs/bs-input_3.cjs.entry.js +15 -7
- package/dist/cjs/bs-logo.cjs.entry.js +1 -1
- package/dist/cjs/bs-message-list.cjs.entry.js +71 -0
- package/dist/cjs/bs-message.cjs.entry.js +25 -0
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +9 -3
- package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
- package/dist/cjs/bs-onboarding-checklist.cjs.entry.js +1 -1
- package/dist/cjs/bs-pagination.cjs.entry.js +6 -2
- package/dist/cjs/bs-popover.cjs.entry.js +153 -0
- package/dist/cjs/bs-product-tour.cjs.entry.js +1 -1
- package/dist/cjs/bs-progress-linear.cjs.entry.js +3 -3
- package/dist/cjs/bs-progress.cjs.entry.js +3 -3
- package/dist/cjs/bs-qr-code.cjs.entry.js +2 -2
- package/dist/cjs/bs-radio.cjs.entry.js +2 -2
- package/dist/cjs/bs-session-timeout.cjs.entry.js +2 -2
- package/dist/cjs/bs-side-panel.cjs.entry.js +164 -0
- package/dist/cjs/bs-skeleton.cjs.entry.js +51 -0
- package/dist/cjs/bs-slider.cjs.entry.js +7 -3
- package/dist/cjs/bs-snackbar.cjs.entry.js +2 -2
- package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
- package/dist/cjs/bs-spinner.cjs.entry.js +24 -0
- 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 +4 -4
- package/dist/cjs/bs-timepicker.cjs.entry.js +8 -4
- package/dist/cjs/bs-toast.cjs.entry.js +4 -2
- package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +46 -0
- package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/bs-whats-new.cjs.entry.js +1 -1
- package/dist/cjs/index-BYfMRtlW.js +1863 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +9 -0
- package/dist/collection/components/bs-accordion-group/bs-accordion-group.cmp.test.js +39 -0
- package/dist/collection/components/bs-accordion-group/bs-accordion-group.css +10 -0
- package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +86 -0
- package/dist/collection/components/bs-accordion-group/bs-accordion-group.stories.js +18 -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/bs-attachment.js +48 -4
- 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-skeleton/bs-button-skeleton.js +23 -1
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.cmp.test.js +10 -0
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +178 -2
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.cmp.test.js +6 -0
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +200 -1
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.cmp.test.js +8 -0
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.css +4 -0
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +223 -1
- package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +24 -2
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.css +1 -4
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +3 -6
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +23 -1
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +23 -1
- package/dist/collection/components/bs-citation-preview/bs-citation-preview.cmp.test.js +34 -0
- package/dist/collection/components/bs-citation-preview/bs-citation-preview.css +36 -0
- package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +154 -0
- package/dist/collection/components/bs-citation-preview/bs-citation-preview.stories.js +22 -0
- package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +29 -2
- package/dist/collection/components/bs-composer/bs-composer.css +16 -0
- package/dist/collection/components/bs-composer/bs-composer.js +234 -6
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.cmp.test.js +5 -0
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.css +16 -0
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +49 -1
- package/dist/collection/components/bs-data-table/bs-data-table.js +24 -2
- package/dist/collection/components/bs-dialog/bs-dialog.js +23 -1
- package/dist/collection/components/bs-input/bs-input.js +92 -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-message/bs-message.cmp.test.js +36 -0
- package/dist/collection/components/bs-message/bs-message.css +77 -0
- package/dist/collection/components/bs-message/bs-message.js +156 -0
- package/dist/collection/components/bs-message/bs-message.stories.js +33 -0
- package/dist/collection/components/bs-message-list/bs-message-list.cmp.test.js +58 -0
- package/dist/collection/components/bs-message-list/bs-message-list.css +40 -0
- package/dist/collection/components/bs-message-list/bs-message-list.js +161 -0
- package/dist/collection/components/bs-message-list/bs-message-list.stories.js +17 -0
- package/dist/collection/components/bs-pagination/bs-pagination.cmp.test.js +5 -0
- package/dist/collection/components/bs-pagination/bs-pagination.js +45 -1
- package/dist/collection/components/bs-popover/bs-popover.cmp.test.js +107 -0
- package/dist/collection/components/bs-popover/bs-popover.css +61 -0
- package/dist/collection/components/bs-popover/bs-popover.js +247 -0
- package/dist/collection/components/bs-popover/bs-popover.stories.js +26 -0
- package/dist/collection/components/bs-progress/bs-progress.js +2 -2
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
- package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
- package/dist/collection/components/bs-radio/bs-radio.js +1 -1
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
- package/dist/collection/components/bs-side-panel/bs-side-panel.cmp.test.js +117 -0
- package/dist/collection/components/bs-side-panel/bs-side-panel.css +77 -0
- package/dist/collection/components/bs-side-panel/bs-side-panel.js +325 -0
- package/dist/collection/components/bs-side-panel/bs-side-panel.stories.js +24 -0
- package/dist/collection/components/bs-skeleton/bs-skeleton.cmp.test.js +49 -0
- package/dist/collection/components/bs-skeleton/bs-skeleton.css +62 -0
- package/dist/collection/components/bs-skeleton/bs-skeleton.js +204 -0
- package/dist/collection/components/bs-skeleton/bs-skeleton.stories.js +43 -0
- package/dist/collection/components/bs-slider/bs-slider.js +46 -2
- 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-spinner/bs-spinner.cmp.test.js +32 -0
- package/dist/collection/components/bs-spinner/bs-spinner.css +61 -0
- package/dist/collection/components/bs-spinner/bs-spinner.js +96 -0
- package/dist/collection/components/bs-spinner/bs-spinner.stories.js +30 -0
- 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.js +48 -4
- package/dist/collection/components/bs-toast/bs-toast.js +23 -1
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
- package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.cmp.test.js +73 -0
- package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.css +52 -0
- package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +140 -0
- package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.stories.js +21 -0
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +68 -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/collection/global/brand-theming.cmp.test.js +44 -0
- package/dist/components/bs-accordion-group.d.ts +11 -0
- package/dist/components/bs-accordion-group.js +1 -0
- 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-citation-preview.d.ts +11 -0
- package/dist/components/bs-citation-preview.js +1 -0
- package/dist/components/bs-composer-status-banner.js +1 -1
- package/dist/components/bs-composer.js +1 -1
- package/dist/components/bs-cookie-consent.js +1 -1
- package/dist/components/bs-data-table.js +1 -1
- package/dist/components/bs-datepicker.js +1 -1
- package/dist/components/bs-dialog.js +1 -1
- package/dist/components/bs-error-page.js +1 -1
- 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.js +1 -1
- 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-message-list.d.ts +11 -0
- package/dist/components/bs-message-list.js +1 -0
- package/dist/components/bs-message.d.ts +11 -0
- package/dist/components/bs-message.js +1 -0
- 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.js +1 -1
- package/dist/components/bs-pagination.js +1 -1
- package/dist/components/bs-popover.d.ts +11 -0
- package/dist/components/bs-popover.js +1 -0
- package/dist/components/bs-product-tour.js +1 -1
- package/dist/components/bs-progress-linear.js +1 -1
- package/dist/components/bs-progress.js +1 -1
- package/dist/components/bs-qr-code.js +1 -1
- package/dist/components/bs-radio.js +1 -1
- package/dist/components/bs-session-timeout.js +1 -1
- package/dist/components/bs-side-panel.d.ts +11 -0
- package/dist/components/bs-side-panel.js +1 -0
- package/dist/components/bs-skeleton.d.ts +11 -0
- package/dist/components/bs-skeleton.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-spinner.d.ts +11 -0
- package/dist/components/bs-spinner.js +1 -0
- package/dist/components/bs-stepper-step.js +1 -1
- package/dist/components/bs-stepper.js +1 -1
- package/dist/components/bs-switch.js +1 -1
- package/dist/components/bs-tab.js +1 -1
- package/dist/components/bs-tabs.js +1 -1
- package/dist/components/bs-timepicker.js +1 -1
- package/dist/components/bs-toast.js +1 -1
- package/dist/components/bs-tooltip-trigger.d.ts +11 -0
- package/dist/components/bs-tooltip-trigger.js +1 -0
- package/dist/components/bs-tooltip.js +1 -1
- package/dist/components/bs-whats-new-entry.js +1 -1
- package/dist/components/bs-whats-new.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-B2gx7SZk.js +1 -0
- package/dist/components/{p-BEEoVNRu.js → p-BTPdjnXT.js} +1 -1
- package/dist/components/{p-Be9L4_Fe.js → p-BVhF8cZQ.js} +1 -1
- package/dist/components/{p-C_j_jDM6.js → p-Bfq5YVOv.js} +1 -1
- package/dist/components/{p-DE8K7fg0.js → p-C2NR1v3p.js} +1 -1
- package/dist/components/{p-YsHQLXET.js → p-C9jIMBG3.js} +1 -1
- package/dist/components/{p-DuLL7Ouw.js → p-CRtvJlh8.js} +1 -1
- package/dist/components/{p-Dr0Qk9Zc.js → p-ChcaPfNL.js} +1 -1
- package/dist/components/{p-CbimDNGY.js → p-CrmEXUwm.js} +1 -1
- package/dist/components/p-Cu-aeY9t.js +1 -0
- package/dist/components/{p-zTHlbyH6.js → p-DAwSBMeM.js} +1 -1
- package/dist/components/{p-qmS2CBqi.js → p-DYuzgzxI.js} +1 -1
- package/dist/components/p-DfzrJKwN.js +1 -0
- package/dist/components/{p-CUfs0ROR.js → p-DpVeeIko.js} +1 -1
- package/dist/components/p-DqXI9V2A.js +1 -0
- package/dist/components/p-Dqg8l1y6.js +1 -0
- package/dist/components/{p-CA31vqjL.js → p-DvNED6Lb.js} +1 -1
- package/dist/components/{p-C8yT2Ucq.js → p-QnTjSed5.js} +1 -1
- package/dist/components/{p-CncySD_-.js → p-Rx4bpeYN.js} +1 -1
- package/dist/components/{p-Be_Pmccm.js → p-owdeCW0M.js} +1 -1
- package/dist/components/{p-Bl_tVzeq.js → p-uHvS81XA.js} +1 -1
- package/dist/esm/brandsync-wc.js +3 -3
- package/dist/esm/bs-accordion-group.entry.js +31 -0
- 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 +9 -5
- 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 +4 -2
- package/dist/esm/bs-button.entry.js +1 -1
- package/dist/esm/bs-card.entry.js +1 -1
- package/dist/esm/bs-carousel.entry.js +1 -1
- package/dist/esm/bs-chatbot-feedback.entry.js +18 -2
- package/dist/esm/bs-chatbot-header.entry.js +20 -2
- package/dist/esm/bs-chatbot-response-action.entry.js +25 -3
- package/dist/esm/bs-chatbot-sources-drawer.entry.js +4 -2
- package/dist/esm/bs-chatbot-suggestion-button.entry.js +3 -3
- package/dist/esm/bs-checkbox-skeleton.entry.js +4 -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 +4 -2
- package/dist/esm/bs-citation-preview.entry.js +27 -0
- package/dist/esm/bs-composer-status-banner.entry.js +11 -3
- package/dist/esm/bs-composer.entry.js +36 -7
- package/dist/esm/bs-cookie-consent.entry.js +1 -1
- package/dist/esm/bs-data-table.entry.js +5 -3
- package/dist/esm/bs-datepicker.entry.js +1 -1
- package/dist/esm/bs-dialog.entry.js +4 -2
- package/dist/esm/bs-error-page.entry.js +1 -1
- package/dist/esm/bs-file-upload-item.entry.js +1 -1
- package/dist/esm/bs-file-upload.entry.js +1 -1
- package/dist/esm/bs-icon-button.entry.js +1 -1
- package/dist/esm/bs-icon-tile.entry.js +1 -1
- package/dist/esm/bs-inline-tab.entry.js +2 -2
- package/dist/esm/bs-input_3.entry.js +15 -7
- package/dist/esm/bs-logo.entry.js +1 -1
- package/dist/esm/bs-message-list.entry.js +69 -0
- package/dist/esm/bs-message.entry.js +23 -0
- package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
- package/dist/esm/bs-navigation-drawer.entry.js +9 -3
- package/dist/esm/bs-navigation-header.entry.js +2 -2
- package/dist/esm/bs-onboarding-checklist.entry.js +1 -1
- package/dist/esm/bs-pagination.entry.js +6 -2
- package/dist/esm/bs-popover.entry.js +151 -0
- package/dist/esm/bs-product-tour.entry.js +1 -1
- package/dist/esm/bs-progress-linear.entry.js +3 -3
- package/dist/esm/bs-progress.entry.js +3 -3
- package/dist/esm/bs-qr-code.entry.js +2 -2
- package/dist/esm/bs-radio.entry.js +2 -2
- package/dist/esm/bs-session-timeout.entry.js +2 -2
- package/dist/esm/bs-side-panel.entry.js +162 -0
- package/dist/esm/bs-skeleton.entry.js +49 -0
- package/dist/esm/bs-slider.entry.js +7 -3
- package/dist/esm/bs-snackbar.entry.js +2 -2
- package/dist/esm/bs-source-link.entry.js +3 -3
- package/dist/esm/bs-spinner.entry.js +22 -0
- 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 +4 -4
- package/dist/esm/bs-timepicker.entry.js +8 -4
- package/dist/esm/bs-toast.entry.js +4 -2
- package/dist/esm/bs-tooltip-trigger.entry.js +44 -0
- package/dist/esm/bs-tooltip.entry.js +2 -2
- package/dist/esm/bs-whats-new.entry.js +1 -1
- package/dist/esm/index-D3SkQJpw.js +1853 -0
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/bs-accordion-group/bs-accordion-group.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-accordion-group/bs-accordion-group.d.ts +25 -0
- package/dist/types/components/bs-accordion-group/bs-accordion-group.stories.d.ts +9 -0
- package/dist/types/components/bs-attachment/bs-attachment.d.ts +4 -0
- package/dist/types/components/bs-button-skeleton/bs-button-skeleton.d.ts +2 -0
- package/dist/types/components/bs-chatbot-feedback/bs-chatbot-feedback.d.ts +16 -0
- package/dist/types/components/bs-chatbot-header/bs-chatbot-header.d.ts +19 -0
- package/dist/types/components/bs-chatbot-response-action/bs-chatbot-response-action.d.ts +22 -0
- package/dist/types/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.d.ts +2 -0
- package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.d.ts +2 -5
- package/dist/types/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.d.ts +2 -0
- package/dist/types/components/bs-chip/bs-chip-input/bs-chip-input.d.ts +2 -0
- package/dist/types/components/bs-citation-preview/bs-citation-preview.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-citation-preview/bs-citation-preview.d.ts +40 -0
- package/dist/types/components/bs-citation-preview/bs-citation-preview.stories.d.ts +13 -0
- package/dist/types/components/bs-composer/bs-composer.d.ts +25 -1
- package/dist/types/components/bs-composer-status-banner/bs-composer-status-banner.d.ts +5 -0
- package/dist/types/components/bs-data-table/bs-data-table.d.ts +2 -0
- package/dist/types/components/bs-dialog/bs-dialog.d.ts +2 -0
- package/dist/types/components/bs-input/bs-input.d.ts +8 -0
- package/dist/types/components/bs-message/bs-message.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-message/bs-message.d.ts +49 -0
- package/dist/types/components/bs-message/bs-message.stories.d.ts +15 -0
- package/dist/types/components/bs-message-list/bs-message-list.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-message-list/bs-message-list.d.ts +44 -0
- package/dist/types/components/bs-message-list/bs-message-list.stories.d.ts +8 -0
- package/dist/types/components/bs-pagination/bs-pagination.d.ts +4 -0
- package/dist/types/components/bs-popover/bs-popover.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-popover/bs-popover.d.ts +58 -0
- package/dist/types/components/bs-popover/bs-popover.stories.d.ts +11 -0
- package/dist/types/components/bs-side-panel/bs-side-panel.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-side-panel/bs-side-panel.d.ts +67 -0
- package/dist/types/components/bs-side-panel/bs-side-panel.stories.d.ts +14 -0
- package/dist/types/components/bs-skeleton/bs-skeleton.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-skeleton/bs-skeleton.d.ts +44 -0
- package/dist/types/components/bs-skeleton/bs-skeleton.stories.d.ts +17 -0
- package/dist/types/components/bs-slider/bs-slider.d.ts +4 -0
- package/dist/types/components/bs-spinner/bs-spinner.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-spinner/bs-spinner.d.ts +32 -0
- package/dist/types/components/bs-spinner/bs-spinner.stories.d.ts +12 -0
- package/dist/types/components/bs-timepicker/bs-timepicker.d.ts +4 -0
- package/dist/types/components/bs-toast/bs-toast.d.ts +2 -0
- package/dist/types/components/bs-tooltip-trigger/bs-tooltip-trigger.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-tooltip-trigger/bs-tooltip-trigger.d.ts +35 -0
- package/dist/types/components/bs-tooltip-trigger/bs-tooltip-trigger.stories.d.ts +10 -0
- package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.d.ts +6 -0
- package/dist/types/components.d.ts +1778 -38
- package/dist/types/global/brand-theming.cmp.test.d.ts +1 -0
- package/package.json +21 -5
- package/reference.d.ts +242 -0
- package/reference.json +4176 -0
- package/reference.mjs +2 -0
- package/tailwind-preset.cjs +36 -0
- package/testing/vitest-setup.mjs +41 -0
- package/dist/brandsync-wc/p-09cbf05b.entry.js +0 -1
- package/dist/brandsync-wc/p-0f8cd2e8.entry.js +0 -1
- package/dist/brandsync-wc/p-1261f0b0.entry.js +0 -1
- package/dist/brandsync-wc/p-20030f4d.entry.js +0 -1
- package/dist/brandsync-wc/p-22f8201a.entry.js +0 -1
- package/dist/brandsync-wc/p-34e5feaf.entry.js +0 -1
- package/dist/brandsync-wc/p-452f9c1c.entry.js +0 -1
- package/dist/brandsync-wc/p-6a696161.entry.js +0 -1
- package/dist/brandsync-wc/p-6c6cdf77.entry.js +0 -1
- package/dist/brandsync-wc/p-6e735e37.entry.js +0 -1
- package/dist/brandsync-wc/p-73f214ed.entry.js +0 -1
- package/dist/brandsync-wc/p-823ab3b2.entry.js +0 -1
- package/dist/brandsync-wc/p-DqQRXQMx.js +0 -3
- package/dist/brandsync-wc/p-b84366a7.entry.js +0 -1
- package/dist/brandsync-wc/p-b8d2ce91.entry.js +0 -1
- package/dist/brandsync-wc/p-b9a4042e.entry.js +0 -1
- package/dist/brandsync-wc/p-d754ee13.entry.js +0 -1
- package/dist/brandsync-wc/p-d75f3f87.entry.js +0 -1
- package/dist/brandsync-wc/p-d8b29a53.entry.js +0 -1
- package/dist/brandsync-wc/p-f7d15fbe.entry.js +0 -1
- package/dist/cjs/index-tFJjflK5.js +0 -1863
- package/dist/components/p-BGW5q5LZ.js +0 -1
- package/dist/components/p-BZ3M4lOU.js +0 -1
- package/dist/components/p-CVrEuVFo.js +0 -1
- package/dist/components/p-CeUK3n7D.js +0 -1
- package/dist/esm/index-DqQRXQMx.js +0 -1853
|
@@ -42,7 +42,7 @@ export class BsTooltip {
|
|
|
42
42
|
*/
|
|
43
43
|
placement = 'top';
|
|
44
44
|
render() {
|
|
45
|
-
return (h("div", { key: '
|
|
45
|
+
return (h("div", { key: 'cd34354a526f3bfe60473dcccd3199149cb8dd62', class: "bs-tooltip" }, h("span", { key: '17943240c38e9c9ebaf80860462afaab841c8049', part: "arrow", class: "bs-tooltip__arrow" }), h("div", { key: '6c2a1c40f7d6ce8b2d14eddb143fe90bb896077c', part: "bubble", class: "bs-tooltip__bubble" }, h("slot", { key: '3b3f22ea81394e4ee95e3e78400599cd570f5d98' }))));
|
|
46
46
|
}
|
|
47
47
|
static get is() { return "bs-tooltip"; }
|
|
48
48
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
const tip = (root) => root.shadowRoot.querySelector('[part="tooltip"]');
|
|
3
|
+
const wrap = (root) => root.shadowRoot.querySelector('[part="trigger"]');
|
|
4
|
+
describe('bs-tooltip-trigger', () => {
|
|
5
|
+
it('is hidden by default and linked via aria-describedby', async () => {
|
|
6
|
+
const { root } = await render(h("bs-tooltip-trigger", { text: "Hint" }, h("button", null, "Go")));
|
|
7
|
+
expect(tip(root).hasAttribute('hidden')).toBe(true);
|
|
8
|
+
expect(tip(root)).toEqualAttribute('role', 'tooltip');
|
|
9
|
+
expect(wrap(root).getAttribute('aria-describedby')).toBe(tip(root).id);
|
|
10
|
+
expect(tip(root).querySelector('bs-tooltip')).toHaveTextContent('Hint');
|
|
11
|
+
});
|
|
12
|
+
it('shows on mouseenter and hides on mouseleave', async () => {
|
|
13
|
+
const { root, waitForChanges } = await render(h("bs-tooltip-trigger", { text: "Hint" }, h("button", null, "Go")));
|
|
14
|
+
wrap(root).dispatchEvent(new MouseEvent('mouseenter'));
|
|
15
|
+
await waitForChanges();
|
|
16
|
+
expect(tip(root).hasAttribute('hidden')).toBe(false);
|
|
17
|
+
wrap(root).dispatchEvent(new MouseEvent('mouseleave'));
|
|
18
|
+
await waitForChanges();
|
|
19
|
+
expect(tip(root).hasAttribute('hidden')).toBe(true);
|
|
20
|
+
});
|
|
21
|
+
it('shows on focus and dismisses with Escape', async () => {
|
|
22
|
+
const { root, waitForChanges } = await render(h("bs-tooltip-trigger", { text: "Hint" }, h("button", null, "Go")));
|
|
23
|
+
wrap(root).dispatchEvent(new FocusEvent('focusin', { bubbles: true }));
|
|
24
|
+
await waitForChanges();
|
|
25
|
+
expect(tip(root).hasAttribute('hidden')).toBe(false);
|
|
26
|
+
wrap(root).dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true }));
|
|
27
|
+
await waitForChanges();
|
|
28
|
+
expect(tip(root).hasAttribute('hidden')).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
it('respects delay', async () => {
|
|
31
|
+
const { root, waitForChanges } = await render(h("bs-tooltip-trigger", { text: "Hint", delay: 50 }, h("button", null, "Go")));
|
|
32
|
+
wrap(root).dispatchEvent(new MouseEvent('mouseenter'));
|
|
33
|
+
await waitForChanges();
|
|
34
|
+
expect(tip(root).hasAttribute('hidden')).toBe(true);
|
|
35
|
+
await new Promise(r => setTimeout(r, 80));
|
|
36
|
+
await waitForChanges();
|
|
37
|
+
expect(tip(root).hasAttribute('hidden')).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
it('cancels a pending show when the pointer leaves before the delay', async () => {
|
|
40
|
+
const { root, waitForChanges } = await render(h("bs-tooltip-trigger", { text: "Hint", delay: 50 }, h("button", null, "Go")));
|
|
41
|
+
wrap(root).dispatchEvent(new MouseEvent('mouseenter'));
|
|
42
|
+
wrap(root).dispatchEvent(new MouseEvent('mouseleave'));
|
|
43
|
+
await new Promise(r => setTimeout(r, 80));
|
|
44
|
+
await waitForChanges();
|
|
45
|
+
expect(tip(root).hasAttribute('hidden')).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
it('defaults placement to bottom, below the trigger', async () => {
|
|
48
|
+
const { root, waitForChanges } = await render(h("bs-tooltip-trigger", { text: "Hint" }, h("button", null, "Go")));
|
|
49
|
+
expect(root.placement).toBe('bottom');
|
|
50
|
+
wrap(root).dispatchEvent(new MouseEvent('mouseenter'));
|
|
51
|
+
await waitForChanges();
|
|
52
|
+
const t = tip(root).getBoundingClientRect();
|
|
53
|
+
const w = wrap(root).getBoundingClientRect();
|
|
54
|
+
expect(t.top).toBeGreaterThanOrEqual(w.bottom);
|
|
55
|
+
});
|
|
56
|
+
for (const placement of ['top', 'start', 'end']) {
|
|
57
|
+
it(`positions the tooltip on the ${placement} side`, async () => {
|
|
58
|
+
const { root, waitForChanges } = await render(h("div", { style: { padding: '200px' } }, h("bs-tooltip-trigger", { text: "Hint", placement: placement }, h("button", null, "Go"))));
|
|
59
|
+
const host = root.querySelector('bs-tooltip-trigger');
|
|
60
|
+
const hw = host.shadowRoot.querySelector('[part="trigger"]');
|
|
61
|
+
hw.dispatchEvent(new MouseEvent('mouseenter'));
|
|
62
|
+
await waitForChanges();
|
|
63
|
+
const t = host.shadowRoot.querySelector('[part="tooltip"]').getBoundingClientRect();
|
|
64
|
+
const w = hw.getBoundingClientRect();
|
|
65
|
+
if (placement === 'top')
|
|
66
|
+
expect(t.bottom).toBeLessThanOrEqual(w.top);
|
|
67
|
+
if (placement === 'start')
|
|
68
|
+
expect(t.right).toBeLessThanOrEqual(w.left);
|
|
69
|
+
if (placement === 'end')
|
|
70
|
+
expect(t.left).toBeGreaterThanOrEqual(w.right);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: inline-block;
|
|
3
|
+
--bs-tooltip-trigger-offset: var(--bs-spacing-100);
|
|
4
|
+
--bs-tooltip-trigger-z-index: var(--bs-z-index-popover);
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.bs-tooltip-trigger {
|
|
8
|
+
position: relative;
|
|
9
|
+
display: inline-block;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.bs-tooltip-trigger__tooltip {
|
|
13
|
+
position: absolute;
|
|
14
|
+
top: calc(100% + var(--bs-tooltip-trigger-offset));
|
|
15
|
+
left: 50%;
|
|
16
|
+
transform: translateX(-50%);
|
|
17
|
+
z-index: var(--bs-tooltip-trigger-z-index);
|
|
18
|
+
width: max-content;
|
|
19
|
+
pointer-events: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.bs-tooltip-trigger__tooltip[hidden] {
|
|
23
|
+
display: none;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
:host([placement='top']) .bs-tooltip-trigger__tooltip {
|
|
27
|
+
top: auto;
|
|
28
|
+
bottom: calc(100% + var(--bs-tooltip-trigger-offset));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
:host([placement='start']) .bs-tooltip-trigger__tooltip,
|
|
32
|
+
:host([placement='end']) .bs-tooltip-trigger__tooltip {
|
|
33
|
+
top: 50%;
|
|
34
|
+
left: auto;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
:host([placement='start']) .bs-tooltip-trigger__tooltip {
|
|
38
|
+
right: calc(100% + var(--bs-tooltip-trigger-offset));
|
|
39
|
+
transform: translateY(-50%);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
:host([placement='end']) .bs-tooltip-trigger__tooltip {
|
|
43
|
+
left: calc(100% + var(--bs-tooltip-trigger-offset));
|
|
44
|
+
transform: translateY(-50%);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* bs-tooltip only draws an upward arrow (below-trigger layout); hide it for other sides. */
|
|
48
|
+
:host([placement='top']) bs-tooltip::part(arrow),
|
|
49
|
+
:host([placement='start']) bs-tooltip::part(arrow),
|
|
50
|
+
:host([placement='end']) bs-tooltip::part(arrow) {
|
|
51
|
+
display: none;
|
|
52
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
let tooltipTriggerId = 0;
|
|
3
|
+
/**
|
|
4
|
+
* Wraps a trigger element and shows a `bs-tooltip` on hover or keyboard focus, after an optional
|
|
5
|
+
* delay. Escape dismisses it. The tooltip is linked to the trigger with `aria-describedby`.
|
|
6
|
+
*
|
|
7
|
+
* Composed from `bs-tooltip`.
|
|
8
|
+
*
|
|
9
|
+
* ## When to use
|
|
10
|
+
* - A short hint for an icon button or truncated label.
|
|
11
|
+
*
|
|
12
|
+
* ## When not to use
|
|
13
|
+
* - Interactive content or long text (use `bs-popover`).
|
|
14
|
+
*
|
|
15
|
+
* @slot - Default slot: the trigger element.
|
|
16
|
+
* @part trigger - The wrapper around the trigger; carries aria-describedby.
|
|
17
|
+
* @part tooltip - The positioned tooltip wrapper (role="tooltip").
|
|
18
|
+
* @prop --bs-tooltip-trigger-offset - Gap between trigger and tooltip. Aliased to `--bs-spacing-100`.
|
|
19
|
+
* @prop --bs-tooltip-trigger-z-index - Stacking order. Aliased to `--bs-z-index-popover`.
|
|
20
|
+
*/
|
|
21
|
+
export class BsTooltipTrigger {
|
|
22
|
+
/** Tooltip message. */
|
|
23
|
+
text = '';
|
|
24
|
+
/** Milliseconds to wait before showing the tooltip. */
|
|
25
|
+
delay = 0;
|
|
26
|
+
/** Side of the trigger the tooltip appears on. The bs-tooltip arrow is only drawn for 'bottom'. */
|
|
27
|
+
placement = 'bottom';
|
|
28
|
+
visible = false;
|
|
29
|
+
tooltipId = `bs-tooltip-trigger-${++tooltipTriggerId}`;
|
|
30
|
+
timer;
|
|
31
|
+
disconnectedCallback() {
|
|
32
|
+
clearTimeout(this.timer);
|
|
33
|
+
}
|
|
34
|
+
show = () => {
|
|
35
|
+
clearTimeout(this.timer);
|
|
36
|
+
if (this.delay > 0)
|
|
37
|
+
this.timer = setTimeout(() => (this.visible = true), this.delay);
|
|
38
|
+
else
|
|
39
|
+
this.visible = true;
|
|
40
|
+
};
|
|
41
|
+
hide = () => {
|
|
42
|
+
clearTimeout(this.timer);
|
|
43
|
+
this.visible = false;
|
|
44
|
+
};
|
|
45
|
+
onKeyDown = (ev) => {
|
|
46
|
+
if (ev.key === 'Escape' && this.visible)
|
|
47
|
+
this.hide();
|
|
48
|
+
};
|
|
49
|
+
render() {
|
|
50
|
+
const show = this.visible && !!this.text;
|
|
51
|
+
return (h("div", { key: '2fc1cae6e9561dcb1849011c40771038efd0f546', part: "trigger", class: "bs-tooltip-trigger", "aria-describedby": this.tooltipId, onMouseEnter: this.show, onMouseLeave: this.hide, onFocusin: this.show, onFocusout: this.hide, onKeyDown: this.onKeyDown }, h("slot", { key: 'ceb7dd09728db2917e47db7178b543a8766a9147' }), h("div", { key: '8a1809cc681b826a44de2d49a672933d48a2163b', part: "tooltip", id: this.tooltipId, class: "bs-tooltip-trigger__tooltip", role: "tooltip", hidden: !show }, h("bs-tooltip", { key: '00df96c8a33440e72bd46ada9aca02ba75fb1cd5' }, this.text))));
|
|
52
|
+
}
|
|
53
|
+
static get is() { return "bs-tooltip-trigger"; }
|
|
54
|
+
static get encapsulation() { return "shadow"; }
|
|
55
|
+
static get originalStyleUrls() {
|
|
56
|
+
return {
|
|
57
|
+
"$": ["bs-tooltip-trigger.css"]
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
static get styleUrls() {
|
|
61
|
+
return {
|
|
62
|
+
"$": ["bs-tooltip-trigger.css"]
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
static get properties() {
|
|
66
|
+
return {
|
|
67
|
+
"text": {
|
|
68
|
+
"type": "string",
|
|
69
|
+
"mutable": false,
|
|
70
|
+
"complexType": {
|
|
71
|
+
"original": "string",
|
|
72
|
+
"resolved": "string",
|
|
73
|
+
"references": {}
|
|
74
|
+
},
|
|
75
|
+
"required": false,
|
|
76
|
+
"optional": false,
|
|
77
|
+
"docs": {
|
|
78
|
+
"tags": [],
|
|
79
|
+
"text": "Tooltip message."
|
|
80
|
+
},
|
|
81
|
+
"getter": false,
|
|
82
|
+
"setter": false,
|
|
83
|
+
"reflect": false,
|
|
84
|
+
"attribute": "text",
|
|
85
|
+
"defaultValue": "''"
|
|
86
|
+
},
|
|
87
|
+
"delay": {
|
|
88
|
+
"type": "number",
|
|
89
|
+
"mutable": false,
|
|
90
|
+
"complexType": {
|
|
91
|
+
"original": "number",
|
|
92
|
+
"resolved": "number",
|
|
93
|
+
"references": {}
|
|
94
|
+
},
|
|
95
|
+
"required": false,
|
|
96
|
+
"optional": false,
|
|
97
|
+
"docs": {
|
|
98
|
+
"tags": [],
|
|
99
|
+
"text": "Milliseconds to wait before showing the tooltip."
|
|
100
|
+
},
|
|
101
|
+
"getter": false,
|
|
102
|
+
"setter": false,
|
|
103
|
+
"reflect": false,
|
|
104
|
+
"attribute": "delay",
|
|
105
|
+
"defaultValue": "0"
|
|
106
|
+
},
|
|
107
|
+
"placement": {
|
|
108
|
+
"type": "string",
|
|
109
|
+
"mutable": false,
|
|
110
|
+
"complexType": {
|
|
111
|
+
"original": "BsTooltipTriggerPlacement",
|
|
112
|
+
"resolved": "\"bottom\" | \"end\" | \"start\" | \"top\"",
|
|
113
|
+
"references": {
|
|
114
|
+
"BsTooltipTriggerPlacement": {
|
|
115
|
+
"location": "local",
|
|
116
|
+
"path": "/home/runner/work/eg-brandsync-storybook/eg-brandsync-storybook/packages/wc/src/components/bs-tooltip-trigger/bs-tooltip-trigger.tsx",
|
|
117
|
+
"id": "src/components/bs-tooltip-trigger/bs-tooltip-trigger.tsx::BsTooltipTriggerPlacement"
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"required": false,
|
|
122
|
+
"optional": false,
|
|
123
|
+
"docs": {
|
|
124
|
+
"tags": [],
|
|
125
|
+
"text": "Side of the trigger the tooltip appears on. The bs-tooltip arrow is only drawn for 'bottom'."
|
|
126
|
+
},
|
|
127
|
+
"getter": false,
|
|
128
|
+
"setter": false,
|
|
129
|
+
"reflect": true,
|
|
130
|
+
"attribute": "placement",
|
|
131
|
+
"defaultValue": "'bottom'"
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
static get states() {
|
|
136
|
+
return {
|
|
137
|
+
"visible": {}
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { componentDescription } from "../../stories-utils";
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/bs-tooltip-trigger',
|
|
5
|
+
parameters: { docs: { description: { component: componentDescription('bs-tooltip-trigger') } } },
|
|
6
|
+
render: args => html `
|
|
7
|
+
<div style="padding: 24px;">
|
|
8
|
+
<bs-tooltip-trigger text=${args.text} delay=${args.delay}>
|
|
9
|
+
<bs-button>Hover or focus me</bs-button>
|
|
10
|
+
</bs-tooltip-trigger>
|
|
11
|
+
</div>
|
|
12
|
+
`,
|
|
13
|
+
argTypes: {
|
|
14
|
+
text: { control: 'text' },
|
|
15
|
+
delay: { control: 'number' },
|
|
16
|
+
},
|
|
17
|
+
args: { text: 'Extra information', delay: 0 },
|
|
18
|
+
};
|
|
19
|
+
export default meta;
|
|
20
|
+
export const Default = {};
|
|
21
|
+
export const Delayed = { args: { delay: 500 } };
|
|
@@ -50,7 +50,7 @@ export class BsWhatsNewEntry {
|
|
|
50
50
|
hasImage = false;
|
|
51
51
|
render() {
|
|
52
52
|
const level = Math.min(6, Math.max(1, Math.trunc(Number(this.headingLevel)) || 3));
|
|
53
|
-
return (h("div", { key: '
|
|
53
|
+
return (h("div", { key: 'ff956b15aeb7267e70e15fd447d7ccc02bdf488f', class: "bs-whats-new-entry" }, (this.tag || this.date || this.unread) && (h("div", { key: '7bd5e8ea1e0a3628ece59407cc58354c3d30426e', part: "meta", class: "bs-whats-new-entry__meta" }, this.tag && (h("bs-chip-informative", { key: '6ae5623bf2e65c1d7a52ec93f0801c9ea188de08', part: "tag", size: "sm", color: this.tagColor }, this.tag)), this.date && (h("span", { key: '741b8fbb241b9ee321a8e77fbb81550d8a61cf21', part: "date", class: "bs-whats-new-entry__date" }, this.date)), this.unread && (h("span", { key: 'caa348708573629d60ccf047357dd086f2c7350e', part: "unread", class: "bs-whats-new-entry__unread" }, h("span", { key: 'a5671ad6a6ec951b4cb20ae5dfb6dbcd1e6b3006', class: "bs-whats-new-entry__sr-only" }, this.unreadLabel))))), h("div", { key: '10953346635c715ca0eb5c82f2b281a5a7113a90', part: "image", class: { 'bs-whats-new-entry__image': true, 'bs-whats-new-entry__image--visible': this.hasImage } }, h("slot", { key: '63764e4700d494eb78c0fe0c9c203575ddced731', name: "image", onSlotchange: (ev) => (this.hasImage = ev.target.assignedNodes().length > 0) })), h("div", { key: 'b81d30298930bb2f1aa3ac3256ece61f700d0480', class: "bs-whats-new-entry__content" }, this.heading && h(`h${level}`, { part: 'heading', class: { 'bs-whats-new-entry__heading': true } }, this.heading), this.description && (h("p", { key: '5a0c0096dd06fb735ec4f5f897c9a392d37aa723', part: "description", class: "bs-whats-new-entry__description" }, this.description)), this.actionLabel && (h("bs-button", { key: 'dc86c02b65b3dca892873b08f3b541d92db9058c', part: "action", class: "bs-whats-new-entry__action", variant: "subtle", size: "sm", onClick: () => this.bsAction.emit() }, this.actionLabel, h("svg", { key: '2b6bdb66eff8f452bec1ea47e5c2ec6cb4854b8b', slot: "end-icon", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round", "aria-hidden": "true" }, h("path", { key: '67299241e7a3d29adfd9b97512b3e6ee49f833c7', d: "M5 12H19" }), h("path", { key: 'd7e8ee2608e3345b0ab0aa1988d6da42b1f14ecf', d: "M13 6L19 12L13 18" }))))), this.divider && h("div", { key: '3c7d0fb5f1aebc224de840c68bb66f1bbc9b540e', part: "divider", class: "bs-whats-new-entry__divider" })));
|
|
54
54
|
}
|
|
55
55
|
static get is() { return "bs-whats-new-entry"; }
|
|
56
56
|
static get encapsulation() { return "shadow"; }
|
|
@@ -73,6 +73,12 @@ export class BsNavigationDrawer {
|
|
|
73
73
|
* a "fixed" side nav (Carbon's terminology: a `Fixed Side Nav` never collapses, as opposed to a
|
|
74
74
|
* rail-capable one) that's always fully expanded. `collapsed` is ignored while this is `false`. */
|
|
75
75
|
collapsible = true;
|
|
76
|
+
/** Accessible name of the collapse toggle while the drawer is expanded. */
|
|
77
|
+
collapseLabel = 'Collapse';
|
|
78
|
+
/** Accessible name of the collapse toggle while the drawer is collapsed. */
|
|
79
|
+
expandLabel = 'Expand';
|
|
80
|
+
/** Accessible name of the search trigger. */
|
|
81
|
+
searchLabel = 'Search';
|
|
76
82
|
/** Narrows the drawer to a 96px icon-only rail (Figma node 8028:135374). Mutable and reflected
|
|
77
83
|
* -- clicking the collapse toggle toggles this directly (self-toggling, see the class doc above
|
|
78
84
|
* for why), and this component keeps every direct-child `bs-navigation-drawer-item`'s own
|
|
@@ -228,11 +234,11 @@ export class BsNavigationDrawer {
|
|
|
228
234
|
};
|
|
229
235
|
render() {
|
|
230
236
|
const classes = ['bs-navigation-drawer', this.mobile ? 'bs-navigation-drawer--overlay' : '', this.overlayOpen ? 'bs-navigation-drawer--open' : ''].filter(Boolean).join(' ');
|
|
231
|
-
return (h(Host, { key: '
|
|
237
|
+
return (h(Host, { key: 'e968fe7b53118c3c7a790d640c42870eafde4399', "data-overlay": this.mobile ? '' : undefined }, this.mobile && h("div", { key: '2779ef664093e7439a5af96d17921e015240bc1e', part: "backdrop", class: "bs-navigation-drawer__backdrop", onClick: this.requestClose }), h("nav", { key: '939895e91353feb4b213b1219a610780f70a69e9', ref: el => (this.navRef = el), class: classes, "aria-label": this.heading,
|
|
232
238
|
// Stays a plain <nav> landmark in every state: ARIA does not allow role="dialog" on <nav>
|
|
233
239
|
// (axe: aria-allowed-role). Modality is behavioral -- focus is held inside, the page behind is
|
|
234
240
|
// scrimmed, Escape closes -- rather than announced through aria-modal.
|
|
235
|
-
tabIndex: this.mobile ? -1 : undefined }, this.showLogo && (h("div", { key: '
|
|
241
|
+
tabIndex: this.mobile ? -1 : undefined }, this.showLogo && (h("div", { key: '53ca093c161021ba1f8549ff969560968b39c2d5', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--full" }, h("bs-logo", { key: '6166408f8acf95f9bcb069c513c857608357e0c1', variant: "full", background: this.logoBackground }))), this.showLogo && (h("div", { key: '9ca4a65ea05110d158273703a9085a5ef89964b4', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--mark" }, h("bs-logo", { key: '31d54855aa0f529e2c739b25ebe34c1076ccf350', variant: "mark", background: this.logoBackground }))), h("div", { key: '7bdea3c4d784670f3fecdff8c211bdd82cf0448a', class: "bs-navigation-drawer__title-row" }, h("span", { key: 'bc2297655109ec140ca626c3cde5a6a74d79d0b0', part: "title", class: "bs-navigation-drawer__title" }, this.heading), this.collapsible && (h("button", { key: 'ca81bfae546d50fd79576918c88be5adc89adbbb', type: "button", part: "collapse", class: "bs-navigation-drawer__collapse", "aria-label": this.collapsed ? this.expandLabel : this.collapseLabel, "aria-pressed": this.collapsed ? 'true' : 'false', onClick: this.onCollapseClick }, h(CaretLeftIcon, { key: '2ea855c83eef0901aa39f633d07cc91c54872a37' })))), h("div", { key: 'ae34f590f34f8cfd027d715f4ff1ddbb46aae391', part: "search", class: "bs-navigation-drawer__search" }, h("slot", { key: '4dd811fdfcd60a59cddb8b50c048f27583dd0947', name: "search" })), h("button", { key: 'f364a533ca3ef62c85b90b9481c2a9cf1a731e05', type: "button", part: "search-trigger", class: "bs-navigation-drawer__search-trigger", "aria-label": this.searchLabel, onClick: this.onSearchTriggerClick }, h(SearchIcon, { key: '0d5ba9b9631baa75fd5c198b85da436dda988542' })), h("div", { key: 'b78d387d26bf047766558ddbb82bb797e6262c5b', part: "items", class: "bs-navigation-drawer__items" }, h("slot", { key: '6d0e7f8a1885839d737fe1883cb81cc4e7750170' })))));
|
|
236
242
|
}
|
|
237
243
|
static get is() { return "bs-navigation-drawer"; }
|
|
238
244
|
static get encapsulation() { return "shadow"; }
|
|
@@ -288,6 +294,66 @@ export class BsNavigationDrawer {
|
|
|
288
294
|
"attribute": "collapsible",
|
|
289
295
|
"defaultValue": "true"
|
|
290
296
|
},
|
|
297
|
+
"collapseLabel": {
|
|
298
|
+
"type": "string",
|
|
299
|
+
"mutable": false,
|
|
300
|
+
"complexType": {
|
|
301
|
+
"original": "string",
|
|
302
|
+
"resolved": "string",
|
|
303
|
+
"references": {}
|
|
304
|
+
},
|
|
305
|
+
"required": false,
|
|
306
|
+
"optional": false,
|
|
307
|
+
"docs": {
|
|
308
|
+
"tags": [],
|
|
309
|
+
"text": "Accessible name of the collapse toggle while the drawer is expanded."
|
|
310
|
+
},
|
|
311
|
+
"getter": false,
|
|
312
|
+
"setter": false,
|
|
313
|
+
"reflect": false,
|
|
314
|
+
"attribute": "collapse-label",
|
|
315
|
+
"defaultValue": "'Collapse'"
|
|
316
|
+
},
|
|
317
|
+
"expandLabel": {
|
|
318
|
+
"type": "string",
|
|
319
|
+
"mutable": false,
|
|
320
|
+
"complexType": {
|
|
321
|
+
"original": "string",
|
|
322
|
+
"resolved": "string",
|
|
323
|
+
"references": {}
|
|
324
|
+
},
|
|
325
|
+
"required": false,
|
|
326
|
+
"optional": false,
|
|
327
|
+
"docs": {
|
|
328
|
+
"tags": [],
|
|
329
|
+
"text": "Accessible name of the collapse toggle while the drawer is collapsed."
|
|
330
|
+
},
|
|
331
|
+
"getter": false,
|
|
332
|
+
"setter": false,
|
|
333
|
+
"reflect": false,
|
|
334
|
+
"attribute": "expand-label",
|
|
335
|
+
"defaultValue": "'Expand'"
|
|
336
|
+
},
|
|
337
|
+
"searchLabel": {
|
|
338
|
+
"type": "string",
|
|
339
|
+
"mutable": false,
|
|
340
|
+
"complexType": {
|
|
341
|
+
"original": "string",
|
|
342
|
+
"resolved": "string",
|
|
343
|
+
"references": {}
|
|
344
|
+
},
|
|
345
|
+
"required": false,
|
|
346
|
+
"optional": false,
|
|
347
|
+
"docs": {
|
|
348
|
+
"tags": [],
|
|
349
|
+
"text": "Accessible name of the search trigger."
|
|
350
|
+
},
|
|
351
|
+
"getter": false,
|
|
352
|
+
"setter": false,
|
|
353
|
+
"reflect": false,
|
|
354
|
+
"attribute": "search-label",
|
|
355
|
+
"defaultValue": "'Search'"
|
|
356
|
+
},
|
|
291
357
|
"collapsed": {
|
|
292
358
|
"type": "boolean",
|
|
293
359
|
"mutable": true,
|
|
@@ -131,7 +131,7 @@ export class BsNavigationDrawerItem {
|
|
|
131
131
|
// incorrectly also toggle this parent row on every child click. Both are wrapped in a
|
|
132
132
|
// `display: contents` container so render() still returns a single root node (this codebase's
|
|
133
133
|
// convention, e.g. bs-input.tsx) without that wrapper affecting layout at all.
|
|
134
|
-
return (h("div", { key: '
|
|
134
|
+
return (h("div", { key: '2b7837f89946d774a7c6bf6134fe03a62bed79aa', class: "bs-navigation-drawer-item__root" }, h("button", { key: 'cebf928c1e885475888eadbea33aeb2af60a7443', type: "button", part: "item", class: rowClasses, "aria-expanded": this.expandable ? String(this.expanded) : undefined, "aria-label": this.ariaLabel ?? undefined, onClick: this.onClick }, !this.nested && (h("span", { key: 'f8e4029d48812fc0be2329d5b8f302b74ca9689f', part: "icon", class: `bs-navigation-drawer-item__icon ${this.hasIcon ? 'bs-navigation-drawer-item__icon--has-content' : ''}` }, h("slot", { key: '409ca913c113ce786b3f4f484d7ea9771909c00a', name: "icon", onSlotchange: this.onIconSlotchange }))), h("span", { key: '56a14dcab7c950d2ab6b57fe74341d1df35ef73b', part: "label", class: "bs-navigation-drawer-item__label" }, h("slot", { key: 'b00be42b3c445777489bd0ad932980a8742aa089' })), this.expandable && (h("span", { key: '6a78c1753ae1b0e784258ac5bcd476521b2c70ab', part: "chevron", class: `bs-navigation-drawer-item__chevron ${this.expanded ? 'bs-navigation-drawer-item__chevron--expanded' : ''}` }, h(ChevronDownIcon, { key: '720c5f0985638d83c45813cf0c9ec124f9202b8d' })))), this.expandable && (h("span", { key: '8a48654707a75fd986d0a0fb12a23466656e21a5', part: "children", class: "bs-navigation-drawer-item__children" }, h("slot", { key: '95644fd25b27916348a15faaf9721ca4ff086c06', name: "children" })))));
|
|
135
135
|
}
|
|
136
136
|
static get is() { return "bs-navigation-drawer-item"; }
|
|
137
137
|
static get encapsulation() { return "shadow"; }
|
|
@@ -61,7 +61,7 @@ export class BsNavigationHeader {
|
|
|
61
61
|
render() {
|
|
62
62
|
const showLogo = this.alignment !== 'with-navigation-drawer';
|
|
63
63
|
const rootClasses = `bs-navigation-header bs-navigation-header--${this.alignment}`;
|
|
64
|
-
return (h("header", { key: '
|
|
64
|
+
return (h("header", { key: '13902b4fc78c50b646532b05b0628cd87795bbdc', class: rootClasses, "aria-label": this.ariaLabel ?? undefined }, this.skipToContentHref && (h("a", { key: '98d3add96ab6da8f108b47ccb3317fddccf16fdd', part: "skip-link", class: "bs-navigation-header__skip-link", href: this.skipToContentHref }, this.skipToContentLabel)), showLogo && (h("bs-logo", { key: '3de6328cdced810f59e169adb9c894f357bb3362', part: "logo", class: "bs-navigation-header__logo", variant: "full", background: this.logoBackground })), h("div", { key: '3963c852293dd06990345d11c262eb437998b9a6', part: "left", class: "bs-navigation-header__left" }, h("slot", { key: '3d19c967ad4d6d2ac53e73623e26607ec60bc040', name: "left" })), h("div", { key: 'a4b7019e8df5d5d00163815058af7396c578e3f4', part: "right", class: "bs-navigation-header__right" }, h("slot", { key: '9e07a80b8a8e03b567e5112291f56055300e0e89', name: "right" }))));
|
|
65
65
|
}
|
|
66
66
|
static get is() { return "bs-navigation-header"; }
|
|
67
67
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
const probe = (host, prop) => {
|
|
3
|
+
const el = document.createElement('div');
|
|
4
|
+
el.style.background = `var(${prop})`;
|
|
5
|
+
host.appendChild(el);
|
|
6
|
+
return getComputedStyle(el).backgroundColor;
|
|
7
|
+
};
|
|
8
|
+
const mount = (html) => {
|
|
9
|
+
const wrap = document.createElement('div');
|
|
10
|
+
wrap.innerHTML = html;
|
|
11
|
+
document.body.appendChild(wrap);
|
|
12
|
+
return wrap;
|
|
13
|
+
};
|
|
14
|
+
describe('[data-brand] theming contract', () => {
|
|
15
|
+
it('re-derives brand tokens from a scale overridden on a wrapper element', () => {
|
|
16
|
+
const wrap = mount(`
|
|
17
|
+
<style>[data-brand="red"] { --bs-brand-600: rgb(200, 0, 0); --bs-brand-500: rgb(0, 200, 0); }</style>
|
|
18
|
+
<div id="plain"></div>
|
|
19
|
+
<div id="branded" data-brand="red"><section id="inner"></section></div>`);
|
|
20
|
+
const plain = wrap.querySelector('#plain');
|
|
21
|
+
const inner = wrap.querySelector('#inner');
|
|
22
|
+
expect(probe(inner, '--bs-color-primary-default')).toBe('rgb(200, 0, 0)');
|
|
23
|
+
expect(probe(inner, '--bs-text-action')).toBe('rgb(200, 0, 0)');
|
|
24
|
+
expect(probe(inner, '--bs-focus-border-')).toBe('rgb(0, 200, 0)');
|
|
25
|
+
expect(probe(inner, '--bs-border-primary-focus')).toBe('rgb(0, 200, 0)');
|
|
26
|
+
// Outside a data-brand element the defaults are untouched.
|
|
27
|
+
expect(probe(plain, '--bs-color-primary-default')).not.toBe('rgb(200, 0, 0)');
|
|
28
|
+
wrap.remove();
|
|
29
|
+
});
|
|
30
|
+
it('keeps the information-blue focus default outside a data-brand element', () => {
|
|
31
|
+
const wrap = mount('<div id="plain"></div>');
|
|
32
|
+
const plain = wrap.querySelector('#plain');
|
|
33
|
+
expect(probe(plain, '--bs-focus-border-')).toBe(probe(plain, '--bs-information-500'));
|
|
34
|
+
wrap.remove();
|
|
35
|
+
});
|
|
36
|
+
it('uses the dark-mode derivations on a data-brand element under data-theme="dark"', () => {
|
|
37
|
+
const wrap = mount(`
|
|
38
|
+
<style>[data-brand="red"] { --bs-brand-400: rgb(1, 2, 3); --bs-brand-600: rgb(9, 9, 9); }</style>
|
|
39
|
+
<div data-theme="dark"><div data-brand="red"><i id="inner"></i></div></div>`);
|
|
40
|
+
const inner = wrap.querySelector('#inner');
|
|
41
|
+
expect(probe(inner, '--bs-color-primary-default')).toBe('rgb(1, 2, 3)');
|
|
42
|
+
wrap.remove();
|
|
43
|
+
});
|
|
44
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Components, JSX } from "../types/components";
|
|
2
|
+
|
|
3
|
+
interface BsAccordionGroup extends Components.BsAccordionGroup, HTMLElement {}
|
|
4
|
+
export const BsAccordionGroup: {
|
|
5
|
+
prototype: BsAccordionGroup;
|
|
6
|
+
new (): BsAccordionGroup;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Used to define this component and all nested components recursively.
|
|
10
|
+
*/
|
|
11
|
+
export const defineCustomElement: () => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as o,p as s,H as c,h as r}from"./p-B2gx7SZk.js";const t=s(class extends c{constructor(o){super(),!1!==o&&this.__registerHost(),this.__attachShadow()}get el(){return this}multiple=!1;onToggle(o){const s=o.target;if(!s||"bs-accordion"!==s.tagName.toLowerCase())return;const c=o.detail;s.expanded=c,c&&!this.multiple&&Array.from(this.el.querySelectorAll("bs-accordion")).forEach((o=>{o!==s&&(o.expanded=!1)}))}render(){return r("div",{key:"fb67e69d63c6eb30093cf9b74a035a498d4b38b1",part:"group",class:"bs-accordion-group"},r("slot",{key:"ddc57ac0aa2fb44f866000c6abe255e416fa19b8"}))}static get style(){return":host{display:block;--bs-accordion-group-gap:0}.bs-accordion-group{display:flex;flex-direction:column;gap:var(--bs-accordion-group-gap)}"}},[769,"bs-accordion-group",{multiple:[4]},[[0,"bsToggle","onToggle"]]]);function e(){"undefined"!=typeof customElements&&["bs-accordion-group"].forEach((s=>{"bs-accordion-group"===s&&(customElements.get(o(s))||customElements.define(o(s),t))}))}e();const n=t,a=e;export{n as BsAccordionGroup,a as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as o,p as a,H as i,c as e,h as c}from"./p-
|
|
1
|
+
import{t as o,p as a,H as i,c as e,h as c}from"./p-B2gx7SZk.js";const n=a(class extends i{constructor(o){super(),!1!==o&&this.__registerHost(),this.__attachShadow(),this.bsToggle=e(this,"bsToggle")}expanded=!1;size="medium";disabled=!1;showIcon=!0;showPreview=!0;bsToggle;onActivate=()=>{this.disabled||this.bsToggle.emit(!this.expanded)};render(){return c("div",{key:"2774538f3bc8d52e5a295edafbdad5e2a12dddda",part:"container",class:`bs-accordion bs-accordion--${this.size} ${this.disabled?"bs-accordion--disabled":""}`},c("button",{key:"7e1942dca9082ac653dd7e3d55d9b919790bcd5b",type:"button",part:"header",class:`bs-accordion__header bs-accordion__header--${this.size} ${this.showIcon?"":"bs-accordion__header--no-icon"}`,disabled:this.disabled,"aria-expanded":this.expanded+"",onClick:this.onActivate},this.showIcon&&c("span",{key:"abd274cb295ae34e9220846a1e8466623f65663a",part:"icon",class:"bs-accordion__icon bs-accordion__icon--"+this.size,"aria-hidden":"true"},c("slot",{key:"d9c4c429852c77f4a10c05eb247a9d3d35559ef6",name:"icon"},c(d,{key:"2fb492c43754a517e4e98b684f811be21777e849"}))),c("span",{key:"a02484f1a47148493fbc193bc4b9daa8e4c634e7",part:"label",class:"bs-accordion__label "+(this.showIcon?"":"bs-accordion__label--no-icon")},c("slot",{key:"8241ccee7233e85c2d69c225c07e67b982674ef7",name:"label"})),c("span",{key:"6e36ee8dbd22ca924f9d8ea8b5c3017c5478f058",part:"caret",class:"bs-accordion__caret bs-accordion__caret--"+this.size,"aria-hidden":"true"},c(this.expanded?s:r,null))),(this.expanded||this.showPreview)&&c("div",{key:"1e3ad6fe654c633a4094ea9014ef79d82feae2db",part:"content",class:`bs-accordion__content ${this.showIcon?"":"bs-accordion__content--no-icon"} ${this.expanded?"bs-accordion__content--expanded":"bs-accordion__content--collapsed"}`},c("slot",{key:"6a60fd12ed4ec7e3b4ab0e56414e0a90c4f5d889"})))}static get style(){return":host{display:block;--bs-accordion-radius:var(--bs-border-radius-100);--bs-accordion-header-padding-y-medium:var(--bs-spacing-150);--bs-accordion-header-padding-y-large:var(--bs-spacing-250);--bs-accordion-header-padding-x:var(--bs-spacing-200);--bs-accordion-content-padding-bottom:var(--bs-spacing-150);--bs-accordion-content-padding-right:var(--bs-spacing-200);--bs-accordion-content-padding-left:var(--bs-spacing-800);--bs-accordion-content-padding-left-no-icon:var(--bs-spacing-200);--bs-accordion-icon-width-medium:var(--bs-spacing-800);--bs-accordion-icon-height-medium:48px;--bs-accordion-icon-size-large:var(--bs-spacing-800);--bs-accordion-font-size:var(--bs-font-size-md);--bs-accordion-line-height:var(--bs-line-height-body-md);--bs-accordion-font-weight:var(--bs-font-weight-semibold);--bs-accordion-text-default:var(--bs-text-default);--bs-accordion-bg-hover:var(--bs-surface-hover);--bs-accordion-bg-disabled:var(--bs-surface-action-disabled);--bs-accordion-text-disabled:var(--bs-text-on-disabled);--bs-accordion-focus-ring:var(--bs-border-neutral-focus)}.bs-accordion{display:block;border-radius:var(--bs-accordion-radius);overflow:hidden;font-family:inherit}.bs-accordion:has(.bs-accordion__header:hover),.bs-accordion:has(.bs-accordion__header:active){background:var(--bs-accordion-bg-hover)}.bs-accordion:has(.bs-accordion__header:focus-visible){background:var(--bs-accordion-bg-hover);outline:2px solid var(--bs-accordion-focus-ring);outline-offset:2px;border-radius:calc(var(--bs-accordion-radius) + 2px)}.bs-accordion__header{display:flex;align-items:center;width:100%;border:none;background:transparent;color:var(--bs-accordion-text-default);padding:0;cursor:pointer;font-family:inherit;text-align:start}.bs-accordion__header:focus-visible{outline:none}.bs-accordion__header--medium{padding-top:var(--bs-accordion-header-padding-y-medium);padding-bottom:var(--bs-accordion-header-padding-y-medium)}.bs-accordion__header--large{padding-top:var(--bs-accordion-header-padding-y-large);padding-bottom:var(--bs-accordion-header-padding-y-large)}.bs-accordion__header:disabled{background:var(--bs-accordion-bg-disabled);color:var(--bs-accordion-text-disabled);cursor:default}.bs-accordion__icon{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:inherit}.bs-accordion__icon svg{width:24px;height:24px}.bs-accordion__icon--medium{width:var(--bs-accordion-icon-width-medium);height:var(--bs-accordion-icon-height-medium)}.bs-accordion__icon--large{width:var(--bs-accordion-icon-size-large);height:var(--bs-accordion-icon-size-large)}.bs-accordion__label{flex:1 1 auto;min-width:0;font-size:var(--bs-accordion-font-size);line-height:calc(var(--bs-accordion-line-height) * 1px);font-weight:var(--bs-accordion-font-weight)}.bs-accordion__label--no-icon{padding-inline-start:var(--bs-accordion-header-padding-x)}.bs-accordion__caret{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:inherit}.bs-accordion__caret svg{width:24px;height:24px}.bs-accordion__caret--medium{width:var(--bs-accordion-icon-width-medium);height:var(--bs-accordion-icon-height-medium)}.bs-accordion__caret--large{width:var(--bs-accordion-icon-size-large);height:var(--bs-accordion-icon-size-large)}.bs-accordion__content{padding-top:0;padding-bottom:var(--bs-accordion-content-padding-bottom);padding-inline-end:var(--bs-accordion-content-padding-right);padding-inline-start:var(--bs-accordion-content-padding-left);color:var(--bs-accordion-text-default);font-size:var(--bs-accordion-font-size);line-height:calc(var(--bs-accordion-line-height) * 1px)}.bs-accordion__content--no-icon{padding-inline-start:var(--bs-accordion-content-padding-left-no-icon)}.bs-accordion__content--collapsed{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bs-accordion--disabled .bs-accordion__content{background:var(--bs-accordion-bg-disabled);color:var(--bs-accordion-text-disabled)}"}},[769,"bs-accordion",{expanded:[516],size:[1],disabled:[4],showIcon:[4,"show-icon"],showPreview:[4,"show-preview"]}]),d=()=>c("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},c("path",{d:"M12 5V19",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}),c("path",{d:"M5 12H19",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})),r=()=>c("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},c("path",{d:"M6 9.75L12 15.75L18 9.75",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"})),s=()=>c("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true"},c("path",{d:"M6 14.25L12 8.25L18 14.25",stroke:"currentColor","stroke-width":"1.5","stroke-linecap":"round","stroke-linejoin":"round"}));function t(){"undefined"!=typeof customElements&&["bs-accordion"].forEach((a=>{"bs-accordion"===a&&(customElements.get(o(a))||customElements.define(o(a),n))}))}t();const b=n,l=t;export{b as BsAccordion,l as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as i,p as e,H as s,h as a}from"./p-
|
|
1
|
+
import{t as i,p as e,H as s,h as a}from"./p-B2gx7SZk.js";const t=e(class extends s{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow()}render(){return a("div",{key:"aec38bf071a57a6c8119da90be01c6402516a325",class:"bs-ai-disclaimer"},a("p",{key:"bf6c345d245719858a860946a5cd7239195e6473",part:"text",class:"bs-ai-disclaimer__text"},a("slot",{key:"2ffedee80e7e0af3985334d97a3acf62730a29c1"})))}static get style(){return":host{display:block;--bs-ai-disclaimer-padding-x:var(--bs-spacing-200);--bs-ai-disclaimer-text-color:var(--bs-text-secondary);--bs-ai-disclaimer-font-size:var(--bs-font-size-sm);--bs-ai-disclaimer-line-height:var(--bs-line-height-body-sm)}.bs-ai-disclaimer{box-sizing:border-box;display:flex;align-items:center;justify-content:center;padding:0 var(--bs-ai-disclaimer-padding-x);font-family:inherit}.bs-ai-disclaimer__text{margin:0;flex:1 0 0;min-width:0;color:var(--bs-ai-disclaimer-text-color);font-size:var(--bs-ai-disclaimer-font-size);line-height:calc(var(--bs-ai-disclaimer-line-height) * 1px);text-align:center;word-break:break-word}"}},[257,"bs-ai-disclaimer"]);function r(){"undefined"!=typeof customElements&&["bs-ai-disclaimer"].forEach((e=>{"bs-ai-disclaimer"===e&&(customElements.get(i(e))||customElements.define(i(e),t))}))}r();const c=t,d=r;export{c as BsAiDisclaimer,d as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e,p as i,H as t,h as a}from"./p-
|
|
1
|
+
import{t as e,p as i,H as t,h as a}from"./p-B2gx7SZk.js";const n=i(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow()}assistantName="Genie";productName;render(){const e=this.productName?`How can I help you with ${this.productName} today?`:"How can I help you today?";return a("div",{key:"e4c5ff754165c67768925d339ac83a8c3facc26d",class:"bs-ai-greeting"},a("div",{key:"cacd058adb5f2c734aab464ade21baeecffac6be",part:"heading",class:"bs-ai-greeting__heading"},a("p",{key:"c8d8aa21905b85ae127e006dc9e9e6799306d45c",class:"bs-ai-greeting__heading-line"},"Hi. I'm ",this.assistantName,","),a("p",{key:"60450fae96fbe4c72b1529f5cf7b43525c2f2d23",class:"bs-ai-greeting__heading-line"},"your AI assistant.")),a("p",{key:"4448ad6f944def68aa965e5f7d89ded0a769ca76",part:"subtext",class:"bs-ai-greeting__subtext"},e))}static get style(){return":host{display:block;--bs-ai-greeting-gap:var(--bs-spacing-200);--bs-ai-greeting-max-width:490px;--bs-ai-greeting-heading-color:var(--bs-text-default);--bs-ai-greeting-heading-font-size:var(--bs-font-size-4xl);--bs-ai-greeting-heading-line-height:var(--bs-line-height-body-lg);--bs-ai-greeting-heading-weight:var(--bs-font-weight-bold);--bs-ai-greeting-heading-gap:var(--bs-spacing-200);--bs-ai-greeting-subtext-color:var(--bs-text-secondary);--bs-ai-greeting-subtext-font-size:var(--bs-font-size-xl);--bs-ai-greeting-subtext-line-height:var(--bs-line-height-body-lg)}.bs-ai-greeting{box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--bs-ai-greeting-gap);max-width:var(--bs-ai-greeting-max-width);margin:0 auto;text-align:center;font-family:inherit}.bs-ai-greeting__heading{display:flex;flex-direction:column;gap:var(--bs-ai-greeting-heading-gap);color:var(--bs-ai-greeting-heading-color);font-size:var(--bs-ai-greeting-heading-font-size);font-weight:var(--bs-ai-greeting-heading-weight);line-height:calc(var(--bs-ai-greeting-heading-line-height) * 1px)}.bs-ai-greeting__heading-line{margin:0}.bs-ai-greeting__subtext{margin:0;color:var(--bs-ai-greeting-subtext-color);font-size:var(--bs-ai-greeting-subtext-font-size);font-weight:var(--bs-font-weight-regular);line-height:calc(var(--bs-ai-greeting-subtext-line-height) * 1px)}"}},[513,"bs-ai-greeting",{assistantName:[1,"assistant-name"],productName:[1,"product-name"]}]);function s(){"undefined"!=typeof customElements&&["bs-ai-greeting"].forEach((i=>{"bs-ai-greeting"===i&&(customElements.get(e(i))||customElements.define(e(i),n))}))}s();const g=n,r=s;export{g as BsAiGreeting,r as defineCustomElement}
|