@brandsync/wc 1.18.0 → 1.20.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 +42 -0
- package/REFERENCE.md +335 -17
- package/custom-elements.json +11339 -6515
- package/dist/brandsync-wc/brandsync-wc.css +1 -1
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/index.esm.js +1 -1
- package/dist/brandsync-wc/p-040d4755.entry.js +1 -0
- package/dist/brandsync-wc/{p-5868793d.entry.js → p-050270f5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ee63423c.entry.js → p-08a5e178.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d42a26c1.entry.js → p-08d08dc9.entry.js} +1 -1
- package/dist/brandsync-wc/p-0ebb60a8.entry.js +1 -0
- package/dist/brandsync-wc/{p-87a10ee1.entry.js → p-0f864a4f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d3fe8cea.entry.js → p-105c316e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7cfb1be6.entry.js → p-11fefb5a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-cb002195.entry.js → p-13d98ec3.entry.js} +1 -1
- package/dist/brandsync-wc/p-16f15ba5.entry.js +1 -0
- package/dist/brandsync-wc/{p-4d4997af.entry.js → p-18cfec13.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f86b58bf.entry.js → p-1a549f9a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a28ef52e.entry.js → p-1bf8a54a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-55d336da.entry.js → p-1ce4395a.entry.js} +1 -1
- package/dist/brandsync-wc/p-1daf48b1.entry.js +1 -0
- package/dist/brandsync-wc/p-20dd8b76.entry.js +1 -0
- package/dist/brandsync-wc/{p-a8c2855c.entry.js → p-2210c680.entry.js} +1 -1
- package/dist/brandsync-wc/p-23367a4d.entry.js +1 -0
- package/dist/brandsync-wc/p-238be384.entry.js +1 -0
- package/dist/brandsync-wc/p-23affb5d.entry.js +1 -0
- package/dist/brandsync-wc/{p-3e6f430a.entry.js → p-23b3958e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f6caa623.entry.js → p-2621b1b2.entry.js} +1 -1
- package/dist/brandsync-wc/p-28723df1.entry.js +1 -0
- package/dist/brandsync-wc/p-28a34097.entry.js +1 -0
- package/dist/brandsync-wc/{p-bd901b06.entry.js → p-2a96ce61.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c020ffdf.entry.js → p-2f58b161.entry.js} +1 -1
- package/dist/brandsync-wc/p-319b7baa.entry.js +1 -0
- package/dist/brandsync-wc/{p-0a6f22fe.entry.js → p-32004fb3.entry.js} +1 -1
- package/dist/brandsync-wc/{p-56a45582.entry.js → p-32157c7a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-43f8afda.entry.js → p-32d83763.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a424a709.entry.js → p-338b5e39.entry.js} +1 -1
- package/dist/brandsync-wc/p-3f6be3f7.entry.js +1 -0
- package/dist/brandsync-wc/p-409cf56b.entry.js +1 -0
- package/dist/brandsync-wc/{p-58179e15.entry.js → p-452f6c13.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9bd739e5.entry.js → p-47fc5f29.entry.js} +1 -1
- package/dist/brandsync-wc/p-4810bcc8.entry.js +1 -0
- package/dist/brandsync-wc/p-484a6546.entry.js +1 -0
- package/dist/brandsync-wc/p-4ae7b8b9.entry.js +1 -0
- package/dist/brandsync-wc/p-4d6f2fec.entry.js +1 -0
- package/dist/brandsync-wc/p-4f19e8d8.entry.js +1 -0
- package/dist/brandsync-wc/p-50a154b8.entry.js +1 -0
- package/dist/brandsync-wc/{p-345b5ef3.entry.js → p-50ac6889.entry.js} +1 -1
- package/dist/brandsync-wc/p-520b277a.entry.js +1 -0
- package/dist/brandsync-wc/p-53b1c545.entry.js +1 -0
- package/dist/brandsync-wc/{p-4ff649f1.entry.js → p-548b96f7.entry.js} +1 -1
- package/dist/brandsync-wc/{p-144b6ac8.entry.js → p-57ed5ac6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-fd78ff22.entry.js → p-587be2c6.entry.js} +1 -1
- package/dist/brandsync-wc/p-5a35d573.entry.js +1 -0
- package/dist/brandsync-wc/p-5b48a6c7.entry.js +1 -0
- package/dist/brandsync-wc/{p-50f60ed6.entry.js → p-5ea899c4.entry.js} +1 -1
- package/dist/brandsync-wc/p-6096900b.entry.js +1 -0
- package/dist/brandsync-wc/{p-fc76031e.entry.js → p-630d41ab.entry.js} +1 -1
- package/dist/brandsync-wc/p-66f1ca2e.entry.js +1 -0
- package/dist/brandsync-wc/p-69489f45.entry.js +1 -0
- package/dist/brandsync-wc/p-6adc9c4f.entry.js +1 -0
- package/dist/brandsync-wc/p-6bdd9ef9.entry.js +1 -0
- package/dist/brandsync-wc/p-6db03e96.entry.js +1 -0
- package/dist/brandsync-wc/{p-ae207fd5.entry.js → p-70924681.entry.js} +1 -1
- package/dist/brandsync-wc/p-7632f773.entry.js +1 -0
- package/dist/brandsync-wc/p-78e4dd14.entry.js +1 -0
- package/dist/brandsync-wc/{p-e3e15670.entry.js → p-806bb471.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1a62e5b7.entry.js → p-86fdbe8f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a51355d9.entry.js → p-89dbb3c8.entry.js} +1 -1
- package/dist/brandsync-wc/p-8a4d64fd.entry.js +1 -0
- package/dist/brandsync-wc/p-8c83cc99.entry.js +1 -0
- package/dist/brandsync-wc/p-8ccd1735.entry.js +1 -0
- package/dist/brandsync-wc/p-8d674f11.entry.js +1 -0
- package/dist/brandsync-wc/{p-1a47774e.entry.js → p-90442341.entry.js} +1 -1
- package/dist/brandsync-wc/{p-be7272ce.entry.js → p-9e93b482.entry.js} +1 -1
- package/dist/brandsync-wc/{p-020cb767.entry.js → p-9f852c8b.entry.js} +1 -1
- package/dist/brandsync-wc/p-BSt9HeTa.js +1 -0
- package/dist/brandsync-wc/p-Vo0zbGRB.js +1 -0
- package/dist/brandsync-wc/p-a1d34ff3.entry.js +1 -0
- package/dist/brandsync-wc/p-a3c7b4e7.entry.js +1 -0
- package/dist/brandsync-wc/{p-6c987bc9.entry.js → p-a6cbb6c6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-08e0e704.entry.js → p-a86560e6.entry.js} +1 -1
- package/dist/brandsync-wc/p-aa70e80c.entry.js +1 -0
- package/dist/brandsync-wc/p-b0f4cbca.entry.js +1 -0
- package/dist/brandsync-wc/{p-1aa0f9a3.entry.js → p-b1663378.entry.js} +1 -1
- package/dist/brandsync-wc/{p-50c116eb.entry.js → p-b1b14615.entry.js} +1 -1
- package/dist/brandsync-wc/{p-5ac75555.entry.js → p-b7545d9b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-31ca98c3.entry.js → p-baca1abf.entry.js} +1 -1
- package/dist/brandsync-wc/{p-55d97d1d.entry.js → p-bfdd135b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-89fa7567.entry.js → p-c23e274a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8f82ea7e.entry.js → p-c39e6be9.entry.js} +1 -1
- package/dist/brandsync-wc/p-c6c15b9f.entry.js +1 -0
- package/dist/brandsync-wc/p-c9888d09.entry.js +1 -0
- package/dist/brandsync-wc/p-ca8a1e51.entry.js +1 -0
- package/dist/brandsync-wc/p-d263deec.entry.js +1 -0
- package/dist/brandsync-wc/p-d555984e.entry.js +1 -0
- package/dist/brandsync-wc/p-d6600c7c.entry.js +1 -0
- package/dist/brandsync-wc/{p-0082db6a.entry.js → p-d67840f5.entry.js} +1 -1
- package/dist/brandsync-wc/p-d8a299a9.entry.js +1 -0
- package/dist/brandsync-wc/{p-14b4f4c4.entry.js → p-dd3499ab.entry.js} +1 -1
- package/dist/brandsync-wc/p-debc308d.entry.js +1 -0
- package/dist/brandsync-wc/{p-c02ed03d.entry.js → p-e18cb639.entry.js} +1 -1
- package/dist/brandsync-wc/p-e18e45bc.entry.js +1 -0
- package/dist/brandsync-wc/{p-841a80b4.entry.js → p-e2268c96.entry.js} +1 -1
- package/dist/brandsync-wc/p-e4033ebc.entry.js +1 -0
- package/dist/brandsync-wc/{p-7c29678d.entry.js → p-e6f57fae.entry.js} +1 -1
- package/dist/brandsync-wc/p-e8027825.entry.js +1 -0
- package/dist/brandsync-wc/{p-e32a6df1.entry.js → p-eb1b1497.entry.js} +1 -1
- package/dist/brandsync-wc/{p-bfff7cbb.entry.js → p-eb4ad606.entry.js} +1 -1
- package/dist/brandsync-wc/p-ecb1a27d.entry.js +1 -0
- package/dist/brandsync-wc/p-f229f59a.entry.js +1 -0
- package/dist/brandsync-wc/{p-5cd1abc7.entry.js → p-f22d2db8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e2491db8.entry.js → p-f71d7582.entry.js} +1 -1
- package/dist/brandsync-wc/p-fa894893.entry.js +1 -0
- package/dist/brandsync-wc/p-fbd204b6.entry.js +1 -0
- package/dist/brandsync-wc/{p-757cd066.entry.js → p-fc7df528.entry.js} +1 -1
- package/dist/brandsync-wc/{p-15f06226.entry.js → p-fe6f71da.entry.js} +1 -1
- package/dist/brandsync-wc/p-ff14edb6.entry.js +1 -0
- package/dist/brandsync-wc/p-ff85a9d8.entry.js +1 -0
- package/dist/brandsync-wc/p-wz7B473u.js +3 -0
- package/dist/cjs/brandsync-wc.cjs.js +2 -2
- package/dist/cjs/bs-accordion-group.cjs.entry.js +2 -2
- package/dist/cjs/bs-accordion.cjs.entry.js +61 -4
- 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-app-recent-item_3.cjs.entry.js +8 -8
- package/dist/cjs/bs-app-shell.cjs.entry.js +2 -2
- package/dist/cjs/bs-app-switcher.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment.cjs.entry.js +3 -3
- package/dist/cjs/bs-avatar.cjs.entry.js +3 -10
- package/dist/cjs/bs-badge.cjs.entry.js +3 -3
- package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +2 -2
- package/dist/cjs/bs-breadcrumb.cjs.entry.js +3 -3
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +10 -2
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/bs-button_2.cjs.entry.js +211 -0
- package/dist/cjs/bs-card.cjs.entry.js +44 -3
- package/dist/cjs/bs-carousel.cjs.entry.js +71 -6
- package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +3 -7
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +3 -7
- package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +3 -3
- package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +3 -3
- package/dist/cjs/bs-checkbox-group.cjs.entry.js +80 -0
- package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/bs-checkbox.cjs.entry.js +3 -3
- package/dist/cjs/bs-chip-filter.cjs.entry.js +3 -3
- package/dist/cjs/bs-chip-informative.cjs.entry.js +2 -2
- package/dist/cjs/bs-chip-input.cjs.entry.js +3 -3
- package/dist/cjs/bs-citation-preview.cjs.entry.js +2 -2
- package/dist/cjs/bs-code-block.cjs.entry.js +75 -0
- package/dist/cjs/bs-command-palette.cjs.entry.js +2 -2
- package/dist/cjs/bs-compact-menu-block_2.cjs.entry.js +5 -5
- package/dist/cjs/bs-company-switcher.cjs.entry.js +3 -3
- package/dist/cjs/bs-composer-status-banner.cjs.entry.js +2 -2
- package/dist/cjs/bs-composer.cjs.entry.js +6 -4
- package/dist/cjs/bs-container.cjs.entry.js +2 -2
- package/dist/cjs/bs-cookie-consent.cjs.entry.js +1 -1
- package/dist/cjs/bs-data-table.cjs.entry.js +8 -5
- package/dist/cjs/bs-datepicker.cjs.entry.js +2 -2
- package/dist/cjs/bs-description-item.cjs.entry.js +23 -0
- package/dist/cjs/bs-description-list.cjs.entry.js +40 -0
- package/dist/cjs/bs-dialog.cjs.entry.js +55 -4
- package/dist/cjs/bs-divider.cjs.entry.js +2 -2
- package/dist/cjs/bs-dropdown.cjs.entry.js +96 -0
- package/dist/cjs/bs-empty-state.cjs.entry.js +7 -3
- package/dist/cjs/bs-error-page.cjs.entry.js +2 -2
- package/dist/cjs/bs-file-upload-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-file-upload.cjs.entry.js +2 -2
- package/dist/cjs/bs-global-search.cjs.entry.js +3 -3
- package/dist/cjs/bs-grid.cjs.entry.js +3 -3
- package/dist/cjs/bs-heading.cjs.entry.js +28 -0
- package/dist/cjs/bs-icon-button.cjs.entry.js +10 -3
- package/dist/cjs/bs-icon-tile.cjs.entry.js +3 -3
- package/dist/cjs/bs-icon.cjs.entry.js +35 -0
- package/dist/cjs/bs-inline-tab.cjs.entry.js +3 -3
- package/dist/cjs/bs-input_4.cjs.entry.js +794 -0
- package/dist/cjs/bs-key-caps.cjs.entry.js +2 -2
- package/dist/cjs/bs-key.cjs.entry.js +2 -2
- package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +3 -3
- package/dist/cjs/bs-link.cjs.entry.js +52 -0
- package/dist/cjs/bs-list-item.cjs.entry.js +68 -0
- package/dist/cjs/bs-list.cjs.entry.js +9 -3
- package/dist/cjs/bs-logo.cjs.entry.js +1 -1
- package/dist/cjs/bs-mega-menu.cjs.entry.js +53 -3
- package/dist/cjs/bs-message-list.cjs.entry.js +2 -2
- package/dist/cjs/bs-message.cjs.entry.js +2 -2
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +26 -5
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +4 -4
- package/dist/cjs/bs-navigation-header.cjs.entry.js +4 -4
- package/dist/cjs/bs-onboarding-checklist.cjs.entry.js +1 -1
- package/dist/cjs/bs-page-header.cjs.entry.js +2 -2
- package/dist/cjs/bs-pagination.cjs.entry.js +3 -3
- package/dist/cjs/bs-popover.cjs.entry.js +199 -0
- package/dist/cjs/bs-presence.cjs.entry.js +88 -0
- package/dist/cjs/bs-product-tour.cjs.entry.js +1 -1
- package/dist/cjs/bs-progress-linear.cjs.entry.js +4 -4
- package/dist/cjs/bs-progress.cjs.entry.js +3 -3
- package/dist/cjs/bs-qr-code.cjs.entry.js +2 -2
- package/dist/cjs/bs-radio-group.cjs.entry.js +90 -0
- package/dist/cjs/bs-radio.cjs.entry.js +9 -5
- package/dist/cjs/bs-search-item.cjs.entry.js +3 -3
- package/dist/cjs/bs-select.cjs.entry.js +234 -0
- package/dist/cjs/bs-session-timeout.cjs.entry.js +2 -2
- package/dist/cjs/bs-shortcut-row.cjs.entry.js +2 -2
- package/dist/cjs/bs-side-panel.cjs.entry.js +53 -4
- package/dist/cjs/bs-skip-link.cjs.entry.js +52 -0
- package/dist/cjs/bs-slider.cjs.entry.js +3 -3
- package/dist/cjs/bs-snackbar.cjs.entry.js +3 -3
- package/dist/cjs/bs-source-link.cjs.entry.js +5 -4
- package/dist/cjs/bs-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/bs-stack.cjs.entry.js +2 -2
- package/dist/cjs/bs-stat.cjs.entry.js +53 -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 +5 -12
- package/dist/cjs/bs-tab_3.cjs.entry.js +16 -9
- package/dist/cjs/bs-table-of-contents.cjs.entry.js +171 -0
- package/dist/cjs/bs-tag.cjs.entry.js +51 -0
- package/dist/cjs/bs-text.cjs.entry.js +24 -0
- package/dist/cjs/bs-timepicker.cjs.entry.js +3 -3
- package/dist/cjs/bs-toast.cjs.entry.js +2 -2
- package/dist/cjs/bs-toggle-button-group.cjs.entry.js +108 -0
- package/dist/cjs/bs-toggle-button.cjs.entry.js +57 -0
- package/dist/cjs/bs-toolbar.cjs.entry.js +195 -0
- package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +62 -4
- package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/bs-tree-item.cjs.entry.js +4 -4
- package/dist/cjs/bs-tree.cjs.entry.js +2 -2
- package/dist/cjs/bs-whats-new.cjs.entry.js +1 -1
- package/dist/cjs/icon-registry-DWYCqjKw.js +64 -0
- package/dist/cjs/{index-BYfMRtlW.js → index-BFxk-bY6.js} +1 -1
- package/dist/cjs/index.cjs.js +4 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/motion-DOlI71lc.js +43 -0
- package/dist/collection/collection-manifest.json +21 -1
- package/dist/collection/components/bs-a11y.cmp.test.js +9 -0
- package/dist/collection/components/bs-accordion/bs-accordion.cmp.test.js +21 -6
- package/dist/collection/components/bs-accordion/bs-accordion.css +15 -0
- package/dist/collection/components/bs-accordion/bs-accordion.js +71 -2
- package/dist/collection/components/bs-accordion-group/bs-accordion-group.js +1 -1
- 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-app-recent-item/bs-app-recent-item.js +3 -3
- package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
- package/dist/collection/components/bs-app-switcher/bs-app-switcher.js +1 -1
- package/dist/collection/components/bs-app-tile/bs-app-tile.js +3 -3
- package/dist/collection/components/bs-attachment/bs-attachment.cmp.test.js +10 -0
- package/dist/collection/components/bs-attachment/bs-attachment.css +6 -6
- package/dist/collection/components/bs-attachment/bs-attachment.js +1 -1
- package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
- package/dist/collection/components/bs-avatar/bs-avatar.cmp.test.js +11 -1
- package/dist/collection/components/bs-avatar/bs-avatar.css +9 -4
- package/dist/collection/components/bs-avatar/bs-avatar.js +1 -8
- package/dist/collection/components/bs-badge/bs-badge.css +4 -1
- package/dist/collection/components/bs-badge/bs-badge.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.cmp.test.js +13 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.css +8 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +26 -1
- package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +43 -2
- package/dist/collection/components/bs-button/bs-button/bs-button.css +18 -18
- package/dist/collection/components/bs-button/bs-button/bs-button.js +105 -7
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +43 -0
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +34 -2
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +69 -1
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
- package/dist/collection/components/bs-card/bs-card.cmp.test.js +78 -0
- package/dist/collection/components/bs-card/bs-card.css +75 -0
- package/dist/collection/components/bs-card/bs-card.js +200 -1
- package/dist/collection/components/bs-card/bs-card.stories.js +32 -0
- package/dist/collection/components/bs-carousel/bs-carousel.cmp.test.js +39 -1
- package/dist/collection/components/bs-carousel/bs-carousel.css +9 -0
- package/dist/collection/components/bs-carousel/bs-carousel.js +75 -4
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.cmp.test.js +8 -0
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.css +11 -8
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -5
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.css +2 -3
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -5
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.css +2 -0
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +2 -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.cmp.test.js +18 -0
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.css +10 -2
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +5 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox.css +7 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox.js +2 -1
- package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.cmp.test.js +58 -0
- package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.css +65 -0
- package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.js +254 -0
- package/dist/collection/components/bs-checkbox-group/bs-checkbox-group.stories.js +34 -0
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.css +2 -0
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +2 -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.css +7 -0
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +2 -1
- package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
- package/dist/collection/components/bs-code-block/bs-code-block.cmp.test.js +78 -0
- package/dist/collection/components/bs-code-block/bs-code-block.css +132 -0
- package/dist/collection/components/bs-code-block/bs-code-block.js +317 -0
- package/dist/collection/components/bs-code-block/bs-code-block.stories.js +56 -0
- package/dist/collection/components/bs-command-palette/bs-command-palette.js +1 -1
- package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.js +1 -1
- package/dist/collection/components/bs-company-switcher/bs-company-switcher.js +2 -2
- package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +29 -0
- package/dist/collection/components/bs-composer/bs-composer.css +2 -1
- package/dist/collection/components/bs-composer/bs-composer.js +4 -2
- package/dist/collection/components/bs-composer/bs-composer.stories.js +0 -1
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
- package/dist/collection/components/bs-container/bs-container.js +1 -1
- package/dist/collection/components/bs-cookie-consent/bs-cookie-consent.cmp.test.js +1 -1
- package/dist/collection/components/bs-data-table/bs-data-table.cmp.test.js +39 -0
- package/dist/collection/components/bs-data-table/bs-data-table.css +12 -0
- package/dist/collection/components/bs-data-table/bs-data-table.js +34 -3
- package/dist/collection/components/bs-data-table/bs-data-table.stories.js +1 -1
- package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
- package/dist/collection/components/bs-description-item/bs-description-item.cmp.test.js +14 -0
- package/dist/collection/components/bs-description-item/bs-description-item.css +47 -0
- package/dist/collection/components/bs-description-item/bs-description-item.js +111 -0
- package/dist/collection/components/bs-description-list/bs-description-list.cmp.test.js +58 -0
- package/dist/collection/components/bs-description-list/bs-description-list.css +15 -0
- package/dist/collection/components/bs-description-list/bs-description-list.js +127 -0
- package/dist/collection/components/bs-description-list/bs-description-list.stories.js +34 -0
- package/dist/collection/components/bs-dialog/bs-dialog.cmp.test.js +32 -0
- package/dist/collection/components/bs-dialog/bs-dialog.css +16 -0
- package/dist/collection/components/bs-dialog/bs-dialog.js +61 -3
- package/dist/collection/components/bs-divider/bs-divider.js +1 -1
- package/dist/collection/components/bs-dropdown/bs-dropdown.cmp.test.js +135 -0
- package/dist/collection/components/bs-dropdown/bs-dropdown.css +3 -0
- package/dist/collection/components/bs-dropdown/bs-dropdown.js +218 -0
- package/dist/collection/components/bs-dropdown/bs-dropdown.stories.js +42 -0
- package/dist/collection/components/bs-empty-state/bs-empty-state.cmp.test.js +15 -0
- package/dist/collection/components/bs-empty-state/bs-empty-state.css +30 -1
- package/dist/collection/components/bs-empty-state/bs-empty-state.js +29 -1
- package/dist/collection/components/bs-empty-state/bs-empty-state.stories.js +24 -1
- package/dist/collection/components/bs-error-page/bs-error-page.js +1 -1
- package/dist/collection/components/bs-file-upload/bs-file-upload.js +1 -1
- package/dist/collection/components/bs-file-upload-item/bs-file-upload-item.js +1 -1
- package/dist/collection/components/bs-global-search/bs-global-search.js +2 -2
- package/dist/collection/components/bs-grid/bs-grid.js +2 -2
- package/dist/collection/components/bs-heading/bs-heading.cmp.test.js +38 -0
- package/dist/collection/components/bs-heading/bs-heading.css +42 -0
- package/dist/collection/components/bs-heading/bs-heading.js +154 -0
- package/dist/collection/components/bs-heading/bs-heading.stories.js +28 -0
- package/dist/collection/components/bs-icon/bs-icon.cmp.test.js +78 -0
- package/dist/collection/components/bs-icon/bs-icon.css +47 -0
- package/dist/collection/components/bs-icon/bs-icon.js +155 -0
- package/dist/collection/components/bs-icon/bs-icon.stories.js +52 -0
- package/dist/collection/components/bs-icon/icon-registry.js +58 -0
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +2 -2
- package/dist/collection/components/bs-input/bs-input.cmp.test.js +431 -45
- package/dist/collection/components/bs-input/bs-input.css +196 -12
- package/dist/collection/components/bs-input/bs-input.js +565 -46
- package/dist/collection/components/bs-input/bs-input.stories.js +32 -4
- package/dist/collection/components/bs-key/bs-key.js +1 -1
- package/dist/collection/components/bs-key-caps/bs-key-caps.js +1 -1
- package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +2 -2
- package/dist/collection/components/bs-link/bs-link.cmp.test.js +52 -0
- package/dist/collection/components/bs-link/bs-link.css +129 -0
- package/dist/collection/components/bs-link/bs-link.js +257 -0
- package/dist/collection/components/bs-link/bs-link.stories.js +31 -0
- package/dist/collection/components/bs-list/bs-list.cmp.test.js +23 -0
- package/dist/collection/components/bs-list/bs-list.js +32 -2
- package/dist/collection/components/bs-list/bs-list.stories.js +35 -2
- package/dist/collection/components/bs-list-item/bs-list-item.css +10 -0
- package/dist/collection/components/bs-list-item/bs-list-item.js +25 -1
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.cmp.test.js +73 -0
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.css +5 -1
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +89 -4
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.stories.js +5 -5
- package/dist/collection/components/bs-menu/bs-menu.js +1 -1
- package/dist/collection/components/bs-menu-block/bs-menu-block.js +3 -3
- package/dist/collection/components/bs-menu-item/bs-menu-item.css +2 -0
- package/dist/collection/components/bs-menu-item/bs-menu-item.js +2 -1
- package/dist/collection/components/bs-message/bs-message.js +1 -1
- package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
- package/dist/collection/components/bs-page-header/bs-page-header.js +1 -1
- package/dist/collection/components/bs-pagination/bs-pagination.css +2 -0
- package/dist/collection/components/bs-pagination/bs-pagination.js +2 -1
- package/dist/collection/components/bs-popover/bs-popover.cmp.test.js +20 -0
- package/dist/collection/components/bs-popover/bs-popover.css +3 -0
- package/dist/collection/components/bs-popover/bs-popover.js +59 -2
- package/dist/collection/components/bs-presence/bs-presence.cmp.test.js +64 -0
- package/dist/collection/components/bs-presence/bs-presence.css +80 -0
- package/dist/collection/components/bs-presence/bs-presence.js +233 -0
- package/dist/collection/components/bs-presence/bs-presence.stories.js +101 -0
- package/dist/collection/components/bs-progress/bs-progress.js +2 -2
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.css +4 -1
- 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.cmp.test.js +8 -0
- package/dist/collection/components/bs-radio/bs-radio.css +6 -0
- package/dist/collection/components/bs-radio/bs-radio.js +28 -3
- package/dist/collection/components/bs-radio-group/bs-radio-group.cmp.test.js +85 -0
- package/dist/collection/components/bs-radio-group/bs-radio-group.css +59 -0
- package/dist/collection/components/bs-radio-group/bs-radio-group.js +309 -0
- package/dist/collection/components/bs-radio-group/bs-radio-group.stories.js +35 -0
- package/dist/collection/components/bs-ripple/bs-ripple.cmp.test.js +45 -0
- package/dist/collection/components/bs-ripple/bs-ripple.css +32 -0
- package/dist/collection/components/bs-ripple/bs-ripple.js +188 -0
- package/dist/collection/components/bs-ripple/bs-ripple.stories.js +33 -0
- package/dist/collection/components/bs-search-item/bs-search-item.css +2 -0
- package/dist/collection/components/bs-search-item/bs-search-item.js +2 -1
- package/dist/collection/components/bs-select/bs-select.cmp.test.js +108 -0
- package/dist/collection/components/bs-select/bs-select.css +231 -0
- package/dist/collection/components/bs-select/bs-select.js +506 -0
- package/dist/collection/components/bs-select/bs-select.stories.js +58 -0
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
- package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +1 -1
- package/dist/collection/components/bs-side-panel/bs-side-panel.cmp.test.js +19 -0
- package/dist/collection/components/bs-side-panel/bs-side-panel.css +8 -0
- package/dist/collection/components/bs-side-panel/bs-side-panel.js +58 -2
- package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
- package/dist/collection/components/bs-skip-link/bs-skip-link.cmp.test.js +60 -0
- package/dist/collection/components/bs-skip-link/bs-skip-link.css +58 -0
- package/dist/collection/components/bs-skip-link/bs-skip-link.js +123 -0
- package/dist/collection/components/bs-skip-link/bs-skip-link.stories.js +27 -0
- package/dist/collection/components/bs-slider/bs-slider.cmp.test.js +13 -0
- package/dist/collection/components/bs-slider/bs-slider.css +3 -2
- package/dist/collection/components/bs-slider/bs-slider.js +1 -1
- package/dist/collection/components/bs-snackbar/bs-snackbar.cmp.test.js +22 -0
- package/dist/collection/components/bs-snackbar/bs-snackbar.css +23 -0
- package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
- package/dist/collection/components/bs-source-link/bs-source-link.css +2 -0
- package/dist/collection/components/bs-source-link/bs-source-link.js +4 -2
- package/dist/collection/components/bs-spinner/bs-spinner.js +1 -1
- package/dist/collection/components/bs-split-pane/bs-split-pane.js +1 -1
- package/dist/collection/components/bs-stack/bs-stack.js +1 -1
- package/dist/collection/components/bs-stat/bs-stat.cmp.test.js +49 -0
- package/dist/collection/components/bs-stat/bs-stat.css +116 -0
- package/dist/collection/components/bs-stat/bs-stat.js +284 -0
- package/dist/collection/components/bs-stat/bs-stat.stories.js +44 -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.css +9 -0
- package/dist/collection/components/bs-switch/bs-switch.js +4 -10
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +4 -2
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +2 -1
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.js +0 -4
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +2 -1
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.cmp.test.js +35 -0
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.css +6 -2
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +13 -6
- package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.cmp.test.js +125 -0
- package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.css +115 -0
- package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.js +392 -0
- package/dist/collection/components/bs-table-of-contents/bs-table-of-contents.stories.js +58 -0
- package/dist/collection/components/bs-tag/bs-tag.cmp.test.js +66 -0
- package/dist/collection/components/bs-tag/bs-tag.css +101 -0
- package/dist/collection/components/bs-tag/bs-tag.js +233 -0
- package/dist/collection/components/bs-tag/bs-tag.stories.js +59 -0
- package/dist/collection/components/bs-text/bs-text.cmp.test.js +33 -0
- package/dist/collection/components/bs-text/bs-text.css +48 -0
- package/dist/collection/components/bs-text/bs-text.js +126 -0
- package/dist/collection/components/bs-text/bs-text.stories.js +25 -0
- package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
- package/dist/collection/components/bs-toast/bs-toast.js +1 -1
- package/dist/collection/components/bs-toggle-button/bs-toggle-button.cmp.test.js +47 -0
- package/dist/collection/components/bs-toggle-button/bs-toggle-button.css +125 -0
- package/dist/collection/components/bs-toggle-button/bs-toggle-button.js +234 -0
- package/dist/collection/components/bs-toggle-button/bs-toggle-button.stories.js +22 -0
- package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.cmp.test.js +69 -0
- package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.css +43 -0
- package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.js +264 -0
- package/dist/collection/components/bs-toggle-button-group/bs-toggle-button-group.stories.js +42 -0
- package/dist/collection/components/bs-toolbar/bs-toolbar.cmp.test.js +149 -0
- package/dist/collection/components/bs-toolbar/bs-toolbar.css +82 -0
- package/dist/collection/components/bs-toolbar/bs-toolbar.js +345 -0
- package/dist/collection/components/bs-toolbar/bs-toolbar.stories.js +49 -0
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
- package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.cmp.test.js +53 -2
- package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.css +3 -0
- package/dist/collection/components/bs-tooltip-trigger/bs-tooltip-trigger.js +70 -3
- package/dist/collection/components/bs-tree/bs-tree.js +1 -1
- package/dist/collection/components/bs-tree-item/bs-tree-item.css +2 -0
- package/dist/collection/components/bs-tree-item/bs-tree-item.js +3 -2
- 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.cmp.test.js +25 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.css +2 -2
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.cmp.test.js +58 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.css +10 -2
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +63 -4
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +42 -9
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +44 -37
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +2 -2
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.js +22 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/test/helpers/block-link-navigation.js +13 -0
- package/dist/collection/test/helpers/contrast.js +57 -0
- package/dist/collection/utils/motion.js +37 -0
- package/dist/components/bs-accordion-group.js +1 -1
- package/dist/components/bs-accordion.js +1 -1
- package/dist/components/bs-ai-disclaimer.js +1 -1
- package/dist/components/bs-ai-greeting.js +1 -1
- package/dist/components/bs-ai-thinking.js +1 -1
- package/dist/components/bs-app-recent-item.js +1 -1
- package/dist/components/bs-app-shell.js +1 -1
- package/dist/components/bs-app-switcher.js +1 -1
- package/dist/components/bs-app-tile.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-group.d.ts +11 -0
- package/dist/components/bs-checkbox-group.js +1 -0
- 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.js +1 -1
- package/dist/components/bs-code-block.d.ts +11 -0
- package/dist/components/bs-code-block.js +1 -0
- package/dist/components/bs-command-palette.js +1 -1
- package/dist/components/bs-compact-menu-block.js +1 -1
- package/dist/components/bs-company-switcher.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-container.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-description-item.d.ts +11 -0
- package/dist/components/bs-description-item.js +1 -0
- package/dist/components/bs-description-list.d.ts +11 -0
- package/dist/components/bs-description-list.js +1 -0
- package/dist/components/bs-dialog.js +1 -1
- package/dist/components/bs-divider.js +1 -1
- package/dist/components/bs-dropdown.d.ts +11 -0
- package/dist/components/bs-dropdown.js +1 -0
- package/dist/components/bs-empty-state.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-global-search.js +1 -1
- package/dist/components/bs-grid.js +1 -1
- package/dist/components/bs-heading.d.ts +11 -0
- package/dist/components/bs-heading.js +1 -0
- package/dist/components/bs-icon-button.js +1 -1
- package/dist/components/bs-icon-tile.js +1 -1
- package/dist/components/bs-icon.d.ts +11 -0
- package/dist/components/bs-icon.js +1 -0
- package/dist/components/bs-inline-tab.js +1 -1
- package/dist/components/bs-input.js +1 -1
- package/dist/components/bs-key-caps.js +1 -1
- package/dist/components/bs-key.js +1 -1
- package/dist/components/bs-keyboard-shortcuts.js +1 -1
- package/dist/components/bs-link.d.ts +11 -0
- package/dist/components/bs-link.js +1 -0
- package/dist/components/bs-list-item.js +1 -1
- package/dist/components/bs-list.js +1 -1
- package/dist/components/bs-logo.js +1 -1
- package/dist/components/bs-mega-menu.js +1 -1
- package/dist/components/bs-menu-block.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.js +1 -1
- package/dist/components/bs-message.js +1 -1
- package/dist/components/bs-navigation-drawer-item.js +1 -1
- package/dist/components/bs-navigation-drawer.js +1 -1
- package/dist/components/bs-navigation-header.js +1 -1
- package/dist/components/bs-onboarding-checklist.js +1 -1
- package/dist/components/bs-page-header.js +1 -1
- package/dist/components/bs-pagination.js +1 -1
- package/dist/components/bs-popover.js +1 -1
- package/dist/components/bs-presence.d.ts +11 -0
- package/dist/components/bs-presence.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-group.d.ts +11 -0
- package/dist/components/bs-radio-group.js +1 -0
- package/dist/components/bs-radio.js +1 -1
- package/dist/components/bs-ripple.d.ts +11 -0
- package/dist/components/bs-ripple.js +1 -0
- package/dist/components/bs-search-item.js +1 -1
- package/dist/components/bs-select.d.ts +11 -0
- package/dist/components/bs-select.js +1 -0
- package/dist/components/bs-session-timeout.js +1 -1
- package/dist/components/bs-shortcut-row.js +1 -1
- package/dist/components/bs-side-panel.js +1 -1
- package/dist/components/bs-skeleton.js +1 -1
- package/dist/components/bs-skip-link.d.ts +11 -0
- package/dist/components/bs-skip-link.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.js +1 -1
- package/dist/components/bs-split-pane.js +1 -1
- package/dist/components/bs-stack.js +1 -1
- package/dist/components/bs-stat.d.ts +11 -0
- package/dist/components/bs-stat.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-table-of-contents.d.ts +11 -0
- package/dist/components/bs-table-of-contents.js +1 -0
- package/dist/components/bs-tabs.js +1 -1
- package/dist/components/bs-tag.d.ts +11 -0
- package/dist/components/bs-tag.js +1 -0
- package/dist/components/bs-text.d.ts +11 -0
- package/dist/components/bs-text.js +1 -0
- package/dist/components/bs-timepicker.js +1 -1
- package/dist/components/bs-toast.js +1 -1
- package/dist/components/bs-toggle-button-group.d.ts +11 -0
- package/dist/components/bs-toggle-button-group.js +1 -0
- package/dist/components/bs-toggle-button.d.ts +11 -0
- package/dist/components/bs-toggle-button.js +1 -0
- package/dist/components/bs-toolbar.d.ts +11 -0
- package/dist/components/bs-toolbar.js +1 -0
- package/dist/components/bs-tooltip-trigger.js +1 -1
- package/dist/components/bs-tooltip.js +1 -1
- package/dist/components/bs-tree-item.js +1 -1
- package/dist/components/bs-tree.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-Co36mHEU.js → p-BB1HiIxJ.js} +1 -1
- package/dist/components/p-BLJL4BVY.js +1 -0
- package/dist/components/p-BR7C-aKy.js +1 -0
- package/dist/components/p-BSt9HeTa.js +1 -0
- package/dist/components/{p-Dl0FedE5.js → p-Ba8J2kHD.js} +1 -1
- package/dist/components/p-CALH_mHQ.js +1 -0
- package/dist/components/{p-c-g3-oVu.js → p-CL99S8-7.js} +1 -1
- package/dist/components/p-CXv8kx8w.js +1 -0
- package/dist/components/{p-B6KgEbdM.js → p-CZfbB-t_.js} +1 -1
- package/dist/components/p-CcAX4o5o.js +1 -0
- package/dist/components/{p-C1owRphU.js → p-CePOtLtZ.js} +1 -1
- package/dist/components/p-Cso2DKAz.js +1 -0
- package/dist/components/p-CxNNy2m6.js +1 -0
- package/dist/components/{p-C3erqJFy.js → p-Cz38kNDe.js} +1 -1
- package/dist/components/p-D3XmFqCQ.js +1 -0
- package/dist/components/{p-Cd7p-48Q.js → p-D4W5LcEW.js} +1 -1
- package/dist/components/p-DARbgzSz.js +1 -0
- package/dist/components/{p-Deq0LzGO.js → p-DBgafacj.js} +1 -1
- package/dist/components/p-DHZ_DStJ.js +1 -0
- package/dist/components/{p-DcdFuKG9.js → p-DK1uv2fu.js} +1 -1
- package/dist/components/{p-DzvXbBvk.js → p-DL9HtG41.js} +1 -1
- package/dist/components/{p-CmlzHRkn.js → p-DLNoxNuW.js} +1 -1
- package/dist/components/{p-D4_8H0vn.js → p-DMp5CvEJ.js} +1 -1
- package/dist/components/p-DO4sVZCh.js +1 -0
- package/dist/components/{p-qXdgl7VG.js → p-DOW-YekD.js} +1 -1
- package/dist/components/{p-BTPdjnXT.js → p-DVqoLSEW.js} +1 -1
- package/dist/components/p-DYpJMHAH.js +1 -0
- package/dist/components/p-DaKBSL2O.js +1 -0
- package/dist/components/{p-DtbeCgXo.js → p-Dlp2c-Ii.js} +1 -1
- package/dist/components/p-DnagAPBF.js +1 -0
- package/dist/components/p-Dt3b6VYT.js +1 -0
- package/dist/components/{p-erdtytMq.js → p-DztU3DwY.js} +1 -1
- package/dist/components/p-KiyJJwzr.js +1 -0
- package/dist/components/p-Vo0zbGRB.js +1 -0
- package/dist/components/p-abyVFrPp.js +1 -0
- package/dist/components/p-mxDA3wKn.js +1 -0
- package/dist/components/p-wd9-vGpQ.js +1 -0
- package/dist/components/p-wscU7FUD.js +1 -0
- package/dist/esm/brandsync-wc.js +3 -3
- package/dist/esm/bs-accordion-group.entry.js +2 -2
- package/dist/esm/bs-accordion.entry.js +61 -4
- 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-app-recent-item_3.entry.js +8 -8
- package/dist/esm/bs-app-shell.entry.js +2 -2
- package/dist/esm/bs-app-switcher.entry.js +2 -2
- package/dist/esm/bs-attachment-list.entry.js +2 -2
- package/dist/esm/bs-attachment.entry.js +3 -3
- package/dist/esm/bs-avatar.entry.js +3 -10
- package/dist/esm/bs-badge.entry.js +3 -3
- package/dist/esm/bs-breadcrumb-overflow.entry.js +2 -2
- package/dist/esm/bs-breadcrumb.entry.js +3 -3
- package/dist/esm/bs-breadcrumbs.entry.js +10 -2
- package/dist/esm/bs-button-skeleton.entry.js +2 -2
- package/dist/esm/bs-button_2.entry.js +208 -0
- package/dist/esm/bs-card.entry.js +44 -3
- package/dist/esm/bs-carousel.entry.js +71 -6
- package/dist/esm/bs-chatbot-feedback.entry.js +3 -7
- package/dist/esm/bs-chatbot-header.entry.js +3 -7
- package/dist/esm/bs-chatbot-response-action.entry.js +3 -3
- package/dist/esm/bs-chatbot-sources-drawer.entry.js +2 -2
- package/dist/esm/bs-chatbot-suggestion-button.entry.js +3 -3
- package/dist/esm/bs-checkbox-group.entry.js +78 -0
- package/dist/esm/bs-checkbox-skeleton.entry.js +2 -2
- package/dist/esm/bs-checkbox.entry.js +3 -3
- package/dist/esm/bs-chip-filter.entry.js +3 -3
- package/dist/esm/bs-chip-informative.entry.js +2 -2
- package/dist/esm/bs-chip-input.entry.js +3 -3
- package/dist/esm/bs-citation-preview.entry.js +2 -2
- package/dist/esm/bs-code-block.entry.js +73 -0
- package/dist/esm/bs-command-palette.entry.js +2 -2
- package/dist/esm/bs-compact-menu-block_2.entry.js +5 -5
- package/dist/esm/bs-company-switcher.entry.js +3 -3
- package/dist/esm/bs-composer-status-banner.entry.js +2 -2
- package/dist/esm/bs-composer.entry.js +6 -4
- package/dist/esm/bs-container.entry.js +2 -2
- package/dist/esm/bs-cookie-consent.entry.js +1 -1
- package/dist/esm/bs-data-table.entry.js +8 -5
- package/dist/esm/bs-datepicker.entry.js +2 -2
- package/dist/esm/bs-description-item.entry.js +21 -0
- package/dist/esm/bs-description-list.entry.js +38 -0
- package/dist/esm/bs-dialog.entry.js +55 -4
- package/dist/esm/bs-divider.entry.js +2 -2
- package/dist/esm/bs-dropdown.entry.js +94 -0
- package/dist/esm/bs-empty-state.entry.js +7 -3
- package/dist/esm/bs-error-page.entry.js +2 -2
- package/dist/esm/bs-file-upload-item.entry.js +2 -2
- package/dist/esm/bs-file-upload.entry.js +2 -2
- package/dist/esm/bs-global-search.entry.js +3 -3
- package/dist/esm/bs-grid.entry.js +3 -3
- package/dist/esm/bs-heading.entry.js +26 -0
- package/dist/esm/bs-icon-button.entry.js +10 -3
- package/dist/esm/bs-icon-tile.entry.js +3 -3
- package/dist/esm/bs-icon.entry.js +33 -0
- package/dist/esm/bs-inline-tab.entry.js +3 -3
- package/dist/esm/bs-input_4.entry.js +789 -0
- package/dist/esm/bs-key-caps.entry.js +2 -2
- package/dist/esm/bs-key.entry.js +2 -2
- package/dist/esm/bs-keyboard-shortcuts.entry.js +3 -3
- package/dist/esm/bs-link.entry.js +50 -0
- package/dist/esm/bs-list-item.entry.js +66 -0
- package/dist/esm/bs-list.entry.js +9 -3
- package/dist/esm/bs-logo.entry.js +1 -1
- package/dist/esm/bs-mega-menu.entry.js +53 -3
- package/dist/esm/bs-message-list.entry.js +2 -2
- package/dist/esm/bs-message.entry.js +2 -2
- package/dist/esm/bs-navigation-drawer-item.entry.js +26 -5
- package/dist/esm/bs-navigation-drawer.entry.js +4 -4
- package/dist/esm/bs-navigation-header.entry.js +4 -4
- package/dist/esm/bs-onboarding-checklist.entry.js +1 -1
- package/dist/esm/bs-page-header.entry.js +2 -2
- package/dist/esm/bs-pagination.entry.js +3 -3
- package/dist/esm/bs-popover.entry.js +197 -0
- package/dist/esm/bs-presence.entry.js +86 -0
- package/dist/esm/bs-product-tour.entry.js +1 -1
- package/dist/esm/bs-progress-linear.entry.js +4 -4
- package/dist/esm/bs-progress.entry.js +3 -3
- package/dist/esm/bs-qr-code.entry.js +2 -2
- package/dist/esm/bs-radio-group.entry.js +88 -0
- package/dist/esm/bs-radio.entry.js +9 -5
- package/dist/esm/bs-search-item.entry.js +3 -3
- package/dist/esm/bs-select.entry.js +232 -0
- package/dist/esm/bs-session-timeout.entry.js +2 -2
- package/dist/esm/bs-shortcut-row.entry.js +2 -2
- package/dist/esm/bs-side-panel.entry.js +53 -4
- package/dist/esm/bs-skip-link.entry.js +50 -0
- package/dist/esm/bs-slider.entry.js +3 -3
- package/dist/esm/bs-snackbar.entry.js +3 -3
- package/dist/esm/bs-source-link.entry.js +5 -4
- package/dist/esm/bs-split-pane.entry.js +2 -2
- package/dist/esm/bs-stack.entry.js +2 -2
- package/dist/esm/bs-stat.entry.js +51 -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 +5 -12
- package/dist/esm/bs-tab_3.entry.js +16 -9
- package/dist/esm/bs-table-of-contents.entry.js +169 -0
- package/dist/esm/bs-tag.entry.js +49 -0
- package/dist/esm/bs-text.entry.js +22 -0
- package/dist/esm/bs-timepicker.entry.js +3 -3
- package/dist/esm/bs-toast.entry.js +2 -2
- package/dist/esm/bs-toggle-button-group.entry.js +106 -0
- package/dist/esm/bs-toggle-button.entry.js +55 -0
- package/dist/esm/bs-toolbar.entry.js +193 -0
- package/dist/esm/bs-tooltip-trigger.entry.js +62 -4
- package/dist/esm/bs-tooltip.entry.js +2 -2
- package/dist/esm/bs-tree-item.entry.js +4 -4
- package/dist/esm/bs-tree.entry.js +2 -2
- package/dist/esm/bs-whats-new.entry.js +1 -1
- package/dist/esm/icon-registry-Vo0zbGRB.js +60 -0
- package/dist/esm/{index-D3SkQJpw.js → index-wz7B473u.js} +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/motion-BSt9HeTa.js +39 -0
- package/dist/types/components/bs-accordion/bs-accordion.d.ts +22 -0
- package/dist/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.d.ts +9 -0
- package/dist/types/components/bs-button/bs-button/bs-button.d.ts +25 -6
- package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +8 -0
- package/dist/types/components/bs-card/bs-card.d.ts +35 -0
- package/dist/types/components/bs-card/bs-card.stories.d.ts +3 -0
- package/dist/types/components/bs-carousel/bs-carousel.d.ts +21 -1
- package/dist/types/components/bs-chatbot-response-action/bs-chatbot-response-action.d.ts +1 -0
- package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.d.ts +4 -0
- package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +1 -0
- package/dist/types/components/bs-checkbox-group/bs-checkbox-group.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-checkbox-group/bs-checkbox-group.d.ts +48 -0
- package/dist/types/components/bs-checkbox-group/bs-checkbox-group.stories.d.ts +15 -0
- package/dist/types/components/bs-chip/bs-chip-filter/bs-chip-filter.d.ts +1 -0
- package/dist/types/components/bs-chip/bs-chip-input/bs-chip-input.d.ts +1 -0
- package/dist/types/components/bs-code-block/bs-code-block.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-code-block/bs-code-block.d.ts +68 -0
- package/dist/types/components/bs-code-block/bs-code-block.stories.d.ts +18 -0
- package/dist/types/components/bs-data-table/bs-data-table.d.ts +11 -0
- package/dist/types/components/bs-description-item/bs-description-item.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-description-item/bs-description-item.d.ts +34 -0
- package/dist/types/components/bs-description-list/bs-description-list.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-description-list/bs-description-list.d.ts +33 -0
- package/dist/types/components/bs-description-list/bs-description-list.stories.d.ts +11 -0
- package/dist/types/components/bs-dialog/bs-dialog.d.ts +14 -0
- package/dist/types/components/bs-dropdown/bs-dropdown.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-dropdown/bs-dropdown.d.ts +51 -0
- package/dist/types/components/bs-dropdown/bs-dropdown.stories.d.ts +12 -0
- package/dist/types/components/bs-empty-state/bs-empty-state.d.ts +6 -0
- package/dist/types/components/bs-empty-state/bs-empty-state.stories.d.ts +3 -0
- package/dist/types/components/bs-heading/bs-heading.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-heading/bs-heading.d.ts +34 -0
- package/dist/types/components/bs-heading/bs-heading.stories.d.ts +15 -0
- package/dist/types/components/bs-icon/bs-icon.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-icon/bs-icon.d.ts +39 -0
- package/dist/types/components/bs-icon/bs-icon.stories.d.ts +16 -0
- package/dist/types/components/bs-icon/icon-registry.d.ts +16 -0
- package/dist/types/components/bs-input/bs-input.d.ts +83 -12
- package/dist/types/components/bs-input/bs-input.stories.d.ts +3 -1
- package/dist/types/components/bs-link/bs-link.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-link/bs-link.d.ts +48 -0
- package/dist/types/components/bs-link/bs-link.stories.d.ts +19 -0
- package/dist/types/components/bs-list/bs-list.d.ts +6 -0
- package/dist/types/components/bs-list/bs-list.stories.d.ts +4 -0
- package/dist/types/components/bs-list-item/bs-list-item.d.ts +4 -0
- package/dist/types/components/bs-mega-menu/bs-mega-menu.d.ts +26 -2
- package/dist/types/components/bs-menu-item/bs-menu-item.d.ts +1 -0
- package/dist/types/components/bs-pagination/bs-pagination.d.ts +1 -0
- package/dist/types/components/bs-popover/bs-popover.d.ts +15 -0
- package/dist/types/components/bs-presence/bs-presence.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-presence/bs-presence.d.ts +50 -0
- package/dist/types/components/bs-presence/bs-presence.stories.d.ts +15 -0
- package/dist/types/components/bs-radio/bs-radio.d.ts +5 -0
- package/dist/types/components/bs-radio-group/bs-radio-group.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-radio-group/bs-radio-group.d.ts +57 -0
- package/dist/types/components/bs-radio-group/bs-radio-group.stories.d.ts +16 -0
- package/dist/types/components/bs-ripple/bs-ripple.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-ripple/bs-ripple.d.ts +52 -0
- package/dist/types/components/bs-ripple/bs-ripple.stories.d.ts +11 -0
- package/dist/types/components/bs-search-item/bs-search-item.d.ts +1 -0
- package/dist/types/components/bs-select/bs-select.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-select/bs-select.d.ts +85 -0
- package/dist/types/components/bs-select/bs-select.stories.d.ts +19 -0
- package/dist/types/components/bs-side-panel/bs-side-panel.d.ts +13 -0
- package/dist/types/components/bs-skip-link/bs-skip-link.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-skip-link/bs-skip-link.d.ts +40 -0
- package/dist/types/components/bs-skip-link/bs-skip-link.stories.d.ts +10 -0
- package/dist/types/components/bs-source-link/bs-source-link.d.ts +1 -0
- package/dist/types/components/bs-stat/bs-stat.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-stat/bs-stat.d.ts +56 -0
- package/dist/types/components/bs-stat/bs-stat.stories.d.ts +16 -0
- package/dist/types/components/bs-switch/bs-switch.d.ts +1 -0
- package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +1 -0
- package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.d.ts +0 -1
- package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +1 -0
- package/dist/types/components/bs-tab/bs-tabs/bs-tabs.d.ts +5 -3
- package/dist/types/components/bs-table-of-contents/bs-table-of-contents.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-table-of-contents/bs-table-of-contents.d.ts +96 -0
- package/dist/types/components/bs-table-of-contents/bs-table-of-contents.stories.d.ts +13 -0
- package/dist/types/components/bs-tag/bs-tag.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-tag/bs-tag.d.ts +49 -0
- package/dist/types/components/bs-tag/bs-tag.stories.d.ts +16 -0
- package/dist/types/components/bs-text/bs-text.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-text/bs-text.d.ts +31 -0
- package/dist/types/components/bs-text/bs-text.stories.d.ts +14 -0
- package/dist/types/components/bs-toggle-button/bs-toggle-button.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-toggle-button/bs-toggle-button.d.ts +48 -0
- package/dist/types/components/bs-toggle-button/bs-toggle-button.stories.d.ts +13 -0
- package/dist/types/components/bs-toggle-button-group/bs-toggle-button-group.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-toggle-button-group/bs-toggle-button-group.d.ts +42 -0
- package/dist/types/components/bs-toggle-button-group/bs-toggle-button-group.stories.d.ts +13 -0
- package/dist/types/components/bs-toolbar/bs-toolbar.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-toolbar/bs-toolbar.d.ts +88 -0
- package/dist/types/components/bs-toolbar/bs-toolbar.stories.d.ts +13 -0
- package/dist/types/components/bs-tooltip-trigger/bs-tooltip-trigger.d.ts +18 -0
- package/dist/types/components/bs-tree-item/bs-tree-item.d.ts +1 -0
- package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.d.ts +11 -1
- package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.d.ts +3 -0
- package/dist/types/components.d.ts +3512 -94
- package/dist/types/index.d.ts +1 -0
- package/dist/types/test/helpers/block-link-navigation.d.ts +8 -0
- package/dist/types/test/helpers/contrast.d.ts +5 -0
- package/dist/types/utils/motion.d.ts +21 -0
- package/package.json +1 -1
- package/reference.d.ts +90 -30
- package/reference.json +898 -24
- package/dist/brandsync-wc/p-046a53de.entry.js +0 -1
- package/dist/brandsync-wc/p-07e0b444.entry.js +0 -1
- package/dist/brandsync-wc/p-186e3b78.entry.js +0 -1
- package/dist/brandsync-wc/p-1d8c2ec1.entry.js +0 -1
- package/dist/brandsync-wc/p-23b56775.entry.js +0 -1
- package/dist/brandsync-wc/p-246036cd.entry.js +0 -1
- package/dist/brandsync-wc/p-344695a8.entry.js +0 -1
- package/dist/brandsync-wc/p-34851d6d.entry.js +0 -1
- package/dist/brandsync-wc/p-348fef11.entry.js +0 -1
- package/dist/brandsync-wc/p-47929dca.entry.js +0 -1
- package/dist/brandsync-wc/p-47ce984f.entry.js +0 -1
- package/dist/brandsync-wc/p-52d61070.entry.js +0 -1
- package/dist/brandsync-wc/p-5e36d46f.entry.js +0 -1
- package/dist/brandsync-wc/p-64f8eb7e.entry.js +0 -1
- package/dist/brandsync-wc/p-6b019a88.entry.js +0 -1
- package/dist/brandsync-wc/p-78114ea3.entry.js +0 -1
- package/dist/brandsync-wc/p-8962abe0.entry.js +0 -1
- package/dist/brandsync-wc/p-8c9938a5.entry.js +0 -1
- package/dist/brandsync-wc/p-8e46a262.entry.js +0 -1
- package/dist/brandsync-wc/p-95c7f350.entry.js +0 -1
- package/dist/brandsync-wc/p-9787bc0f.entry.js +0 -1
- package/dist/brandsync-wc/p-998b95d3.entry.js +0 -1
- package/dist/brandsync-wc/p-D3SkQJpw.js +0 -3
- package/dist/brandsync-wc/p-a9d0a730.entry.js +0 -1
- package/dist/brandsync-wc/p-b1edc9b7.entry.js +0 -1
- package/dist/brandsync-wc/p-b759ae72.entry.js +0 -1
- package/dist/brandsync-wc/p-b7bbc52f.entry.js +0 -1
- package/dist/brandsync-wc/p-d985e569.entry.js +0 -1
- package/dist/brandsync-wc/p-e4e9c961.entry.js +0 -1
- package/dist/brandsync-wc/p-e99c0937.entry.js +0 -1
- package/dist/brandsync-wc/p-e9adfa44.entry.js +0 -1
- package/dist/brandsync-wc/p-eb3bacb9.entry.js +0 -1
- package/dist/brandsync-wc/p-ee00d3a5.entry.js +0 -1
- package/dist/brandsync-wc/p-f4628861.entry.js +0 -1
- package/dist/brandsync-wc/p-f47b8673.entry.js +0 -1
- package/dist/brandsync-wc/p-fa91106e.entry.js +0 -1
- package/dist/brandsync-wc/p-fb84002e.entry.js +0 -1
- package/dist/brandsync-wc/p-fbc219c6.entry.js +0 -1
- package/dist/cjs/bs-button.cjs.entry.js +0 -107
- package/dist/cjs/bs-input_3.cjs.entry.js +0 -461
- package/dist/cjs/bs-list-item_2.cjs.entry.js +0 -215
- package/dist/cjs/bs-spinner.cjs.entry.js +0 -24
- package/dist/components/p-B2gx7SZk.js +0 -1
- package/dist/components/p-B8kw9EOx.js +0 -1
- package/dist/components/p-BLPNwyiT.js +0 -1
- package/dist/components/p-BP1l6Q3Z.js +0 -1
- package/dist/components/p-BS7ySxJZ.js +0 -1
- package/dist/components/p-BmdSbmFg.js +0 -1
- package/dist/components/p-C2rRVRIu.js +0 -1
- package/dist/components/p-D9dDFyPB.js +0 -1
- package/dist/components/p-DBvhi__l.js +0 -1
- package/dist/components/p-DFd4pP4i.js +0 -1
- package/dist/components/p-DVjuZdjF.js +0 -1
- package/dist/components/p-DW0Dw2LS.js +0 -1
- package/dist/components/p-DgY5pxXd.js +0 -1
- package/dist/components/p-DhhXayh6.js +0 -1
- package/dist/components/p-DiORQQg3.js +0 -1
- package/dist/components/p-DsBToIYE.js +0 -1
- package/dist/components/p-I1_Q3HQu.js +0 -1
- package/dist/components/p-TXAiCnSZ.js +0 -1
- package/dist/esm/bs-button.entry.js +0 -105
- package/dist/esm/bs-input_3.entry.js +0 -457
- package/dist/esm/bs-list-item_2.entry.js +0 -212
- package/dist/esm/bs-spinner.entry.js +0 -22
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
import { vi } from "vitest";
|
|
2
3
|
describe('bs-input', () => {
|
|
3
4
|
it('renders a native text input with an empty value by default', async () => {
|
|
4
5
|
const { root } = await render(h("bs-input", null));
|
|
@@ -276,27 +277,141 @@ describe('bs-input', () => {
|
|
|
276
277
|
expect(root).not.toHaveAttribute('open');
|
|
277
278
|
});
|
|
278
279
|
});
|
|
280
|
+
// Shared helpers for the select / initials-title / country pickers (trigger button + in-shadow listbox).
|
|
281
|
+
const pickerKey = (root, k, sel = '[role="combobox"]') => root.shadowRoot.querySelector(sel).dispatchEvent(new KeyboardEvent('keydown', { key: k, bubbles: true, composed: true, cancelable: true }));
|
|
282
|
+
const selectOpts = [
|
|
283
|
+
{ label: 'One', value: '1' },
|
|
284
|
+
{ label: 'Two', value: '2' },
|
|
285
|
+
{ label: 'Three', value: '3' },
|
|
286
|
+
];
|
|
287
|
+
const countries = [
|
|
288
|
+
{ code: 'DK', label: 'Denmark', flagIcon: '\u{1F1E9}\u{1F1F0}' },
|
|
289
|
+
{ code: 'US', label: 'United States', flagIcon: '\u{1F1FA}\u{1F1F8}' },
|
|
290
|
+
{ code: 'GB', label: 'United Kingdom', flagIcon: '\u{1F1EC}\u{1F1E7}' },
|
|
291
|
+
];
|
|
279
292
|
describe('type="select"', () => {
|
|
280
|
-
it('renders a native select
|
|
281
|
-
const { root } = await render(h("bs-input", { type: "select", options:
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
expect(
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
expect(
|
|
293
|
+
it('renders a themed combobox trigger, not a native select, and no listbox while closed', async () => {
|
|
294
|
+
const { root } = await render(h("bs-input", { type: "select", label: "Role", options: selectOpts }));
|
|
295
|
+
expect(root.shadowRoot.querySelector('select')).toBeNull();
|
|
296
|
+
const trigger = root.shadowRoot.querySelector('button[role="combobox"]');
|
|
297
|
+
expect(trigger).toEqualAttribute('aria-haspopup', 'listbox');
|
|
298
|
+
expect(trigger).toEqualAttribute('aria-expanded', 'false');
|
|
299
|
+
expect(trigger).toEqualAttribute('id', 'control');
|
|
300
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).toBeNull();
|
|
301
|
+
});
|
|
302
|
+
it('opens a role=listbox with one role=option per entry on click, with aria-controls resolving in the shadow root', async () => {
|
|
303
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "select", value: "2", options: selectOpts }));
|
|
304
|
+
root.shadowRoot.querySelector('[part="field"]').click();
|
|
305
|
+
await waitForChanges();
|
|
306
|
+
const trigger = root.shadowRoot.querySelector('[role="combobox"]');
|
|
307
|
+
const options = root.shadowRoot.querySelectorAll('[role="option"]');
|
|
308
|
+
expect(trigger).toEqualAttribute('aria-expanded', 'true');
|
|
309
|
+
expect(root.shadowRoot.getElementById(trigger.getAttribute('aria-controls'))).toEqualAttribute('role', 'listbox');
|
|
310
|
+
expect(options.length).toBe(3);
|
|
311
|
+
expect(options[1]).toEqualAttribute('aria-selected', 'true');
|
|
312
|
+
expect(options[0]).toEqualAttribute('aria-selected', 'false');
|
|
313
|
+
// active option starts on the selected one and is exposed via aria-activedescendant
|
|
314
|
+
expect(trigger).toEqualAttribute('aria-activedescendant', 'option-1');
|
|
315
|
+
expect(options[1].querySelector('.bs-input__option-check')).not.toBeNull();
|
|
316
|
+
});
|
|
317
|
+
it('clicking an option sets value, closes, and emits bsInput + bsChange', async () => {
|
|
318
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "select", options: selectOpts }));
|
|
319
|
+
const changeSpy = spyOnEvent('bsChange');
|
|
320
|
+
const inputSpy = spyOnEvent('bsInput');
|
|
321
|
+
root.shadowRoot.querySelector('[part="field"]').click();
|
|
322
|
+
await waitForChanges();
|
|
323
|
+
root.shadowRoot.querySelectorAll('[role="option"]')[1].click();
|
|
324
|
+
await waitForChanges();
|
|
325
|
+
expect(changeSpy).toHaveReceivedEventDetail('2');
|
|
326
|
+
expect(inputSpy).toHaveReceivedEventDetail('2');
|
|
327
|
+
expect(root.value).toBe('2');
|
|
328
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).toBeNull();
|
|
329
|
+
expect(root.shadowRoot.querySelector('.bs-input__picker-text')).toHaveTextContent('Two');
|
|
330
|
+
});
|
|
331
|
+
it('supports keyboard: ArrowDown opens, arrows move, Enter selects, Escape closes', async () => {
|
|
332
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "select", options: selectOpts }));
|
|
333
|
+
const changeSpy = spyOnEvent('bsChange');
|
|
334
|
+
pickerKey(root, 'ArrowDown');
|
|
335
|
+
await waitForChanges();
|
|
336
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).not.toBeNull();
|
|
337
|
+
pickerKey(root, 'ArrowDown');
|
|
338
|
+
pickerKey(root, 'ArrowDown');
|
|
339
|
+
await waitForChanges();
|
|
340
|
+
expect(root.shadowRoot.querySelector('[role="combobox"]')).toEqualAttribute('aria-activedescendant', 'option-2');
|
|
341
|
+
pickerKey(root, 'Home');
|
|
342
|
+
await waitForChanges();
|
|
343
|
+
expect(root.shadowRoot.querySelector('[role="combobox"]')).toEqualAttribute('aria-activedescendant', 'option-0');
|
|
344
|
+
pickerKey(root, 'End');
|
|
345
|
+
pickerKey(root, 'Enter');
|
|
346
|
+
await waitForChanges();
|
|
347
|
+
expect(changeSpy).toHaveReceivedEventDetail('3');
|
|
348
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).toBeNull();
|
|
349
|
+
pickerKey(root, 'Enter');
|
|
350
|
+
await waitForChanges();
|
|
351
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).not.toBeNull();
|
|
352
|
+
root.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true, composed: true }));
|
|
353
|
+
await waitForChanges();
|
|
354
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).toBeNull();
|
|
355
|
+
expect(root.value).toBe('3');
|
|
356
|
+
});
|
|
357
|
+
it('type-ahead moves the active option while open and commits directly while closed', async () => {
|
|
358
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "select", options: selectOpts }));
|
|
359
|
+
const changeSpy = spyOnEvent('bsChange');
|
|
360
|
+
pickerKey(root, 't');
|
|
361
|
+
await waitForChanges();
|
|
362
|
+
expect(changeSpy).toHaveReceivedEventDetail('2');
|
|
363
|
+
pickerKey(root, 'ArrowDown');
|
|
364
|
+
await waitForChanges();
|
|
365
|
+
await new Promise(r => setTimeout(r, 600));
|
|
366
|
+
pickerKey(root, 'o');
|
|
367
|
+
await waitForChanges();
|
|
368
|
+
expect(root.shadowRoot.querySelector('[role="combobox"]')).toEqualAttribute('aria-activedescendant', 'option-0');
|
|
369
|
+
});
|
|
370
|
+
it('does not open when disabled', async () => {
|
|
371
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "select", disabled: true, options: selectOpts }));
|
|
372
|
+
root.shadowRoot.querySelector('[part="field"]').click();
|
|
373
|
+
await waitForChanges();
|
|
374
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).toBeNull();
|
|
375
|
+
expect(root.shadowRoot.querySelector('button[role="combobox"]')).toHaveAttribute('disabled');
|
|
376
|
+
});
|
|
377
|
+
it('participates in a form with the selected value', async () => {
|
|
378
|
+
const form = document.createElement('form');
|
|
379
|
+
document.body.appendChild(form);
|
|
380
|
+
const el = document.createElement('bs-input');
|
|
381
|
+
el.type = 'select';
|
|
382
|
+
el.name = 'role';
|
|
383
|
+
el.options = selectOpts;
|
|
384
|
+
el.value = '2';
|
|
385
|
+
form.appendChild(el);
|
|
386
|
+
await new Promise(r => setTimeout(r, 50));
|
|
387
|
+
expect(new FormData(form).get('role')).toBe('2');
|
|
388
|
+
form.remove();
|
|
389
|
+
});
|
|
390
|
+
it('styles the popup with BrandSync tokens (raised surface, shadow), in light and dark', async () => {
|
|
391
|
+
const popup = async (dark) => {
|
|
392
|
+
if (dark)
|
|
393
|
+
document.documentElement.setAttribute('data-theme', 'dark');
|
|
394
|
+
try {
|
|
395
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "select", options: selectOpts }));
|
|
396
|
+
root.shadowRoot.querySelector('[part="field"]').click();
|
|
397
|
+
await waitForChanges();
|
|
398
|
+
const el = root.shadowRoot.querySelector('[part="menu"]');
|
|
399
|
+
const cs = getComputedStyle(el);
|
|
400
|
+
const probe = document.createElement('div');
|
|
401
|
+
probe.style.background = 'var(--bs-surface-raised)';
|
|
402
|
+
document.body.appendChild(probe);
|
|
403
|
+
const expected = getComputedStyle(probe).backgroundColor;
|
|
404
|
+
probe.remove();
|
|
405
|
+
expect(cs.backgroundColor).toBe(expected);
|
|
406
|
+
expect(cs.boxShadow).not.toBe('none');
|
|
407
|
+
expect(cs.borderRadius).not.toBe('0px');
|
|
408
|
+
}
|
|
409
|
+
finally {
|
|
410
|
+
document.documentElement.removeAttribute('data-theme');
|
|
411
|
+
}
|
|
412
|
+
};
|
|
413
|
+
await popup(false);
|
|
414
|
+
await popup(true);
|
|
300
415
|
});
|
|
301
416
|
});
|
|
302
417
|
describe('type="textarea"', () => {
|
|
@@ -332,31 +447,56 @@ describe('bs-input', () => {
|
|
|
332
447
|
});
|
|
333
448
|
});
|
|
334
449
|
describe('type="initials"', () => {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
const
|
|
450
|
+
const titles = ['Mrs.', 'Mr.', 'Dr.'];
|
|
451
|
+
it('renders a title combobox followed by a text input, sharing one label', async () => {
|
|
452
|
+
const { root } = await render(h("bs-input", { type: "initials", label: "Name", titleOptions: titles, initialsTitle: "Mr." }));
|
|
453
|
+
const trigger = root.shadowRoot.querySelector('button[role="combobox"]');
|
|
338
454
|
const input = root.shadowRoot.querySelector('input');
|
|
339
455
|
const label = root.shadowRoot.querySelector('label');
|
|
340
|
-
expect(
|
|
456
|
+
expect(root.shadowRoot.querySelector('select')).toBeNull();
|
|
457
|
+
expect(trigger).toHaveTextContent('Mr.');
|
|
458
|
+
expect(trigger).toEqualAttribute('aria-label', 'Title');
|
|
341
459
|
expect(label).toEqualAttribute('for', 'control');
|
|
342
460
|
expect(input).toEqualAttribute('id', 'control');
|
|
343
461
|
});
|
|
344
|
-
it('
|
|
345
|
-
const { root, spyOnEvent } = await render(h("bs-input", { type: "initials", titleOptions:
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
expect(
|
|
462
|
+
it('opens a listbox, selecting a title emits bsTitleChange and updates initialsTitle', async () => {
|
|
463
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "initials", titleOptions: titles }));
|
|
464
|
+
const spy = spyOnEvent('bsTitleChange');
|
|
465
|
+
root.shadowRoot.querySelector('[part="field"]').click();
|
|
466
|
+
await waitForChanges();
|
|
467
|
+
const options = root.shadowRoot.querySelectorAll('[role="option"]');
|
|
468
|
+
expect(options.length).toBe(3);
|
|
469
|
+
options[1].click();
|
|
470
|
+
await waitForChanges();
|
|
471
|
+
expect(spy).toHaveReceivedEventDetail('Mr.');
|
|
472
|
+
expect(root.initialsTitle).toBe('Mr.');
|
|
473
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).toBeNull();
|
|
474
|
+
});
|
|
475
|
+
it('selects a title with the keyboard', async () => {
|
|
476
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "initials", titleOptions: titles }));
|
|
477
|
+
const spy = spyOnEvent('bsTitleChange');
|
|
478
|
+
pickerKey(root, 'ArrowDown');
|
|
479
|
+
pickerKey(root, 'ArrowDown');
|
|
480
|
+
pickerKey(root, 'Enter');
|
|
481
|
+
await waitForChanges();
|
|
482
|
+
expect(spy).toHaveReceivedEventDetail('Mr.');
|
|
351
483
|
});
|
|
352
|
-
it('renders the title
|
|
484
|
+
it('renders the title picker and the text input in two separate bordered [part="field"] boxes with a gap', async () => {
|
|
353
485
|
const { root } = await render(h("bs-input", { type: "initials", titleOptions: ['Mrs.', 'Mr.'] }));
|
|
354
486
|
const fields = root.shadowRoot.querySelectorAll('[part="field"]');
|
|
355
487
|
expect(fields).toHaveLength(2);
|
|
356
488
|
expect(fields[0]).toHaveClass('bs-input__field--initials-title');
|
|
357
|
-
expect(fields[0].querySelector('
|
|
489
|
+
expect(fields[0].querySelector('button[role="combobox"]')).not.toBeNull();
|
|
358
490
|
expect(fields[1]).toHaveClass('bs-input__field--initials-value');
|
|
359
491
|
expect(fields[1].querySelector('input')).not.toBeNull();
|
|
492
|
+
const [a, b] = Array.from(fields);
|
|
493
|
+
for (const f of [a, b]) {
|
|
494
|
+
const cs = getComputedStyle(f);
|
|
495
|
+
expect(cs.borderTopWidth).toBe('1px');
|
|
496
|
+
expect(cs.borderTopStyle).toBe('solid');
|
|
497
|
+
expect(parseFloat(cs.borderTopLeftRadius)).toBeGreaterThan(0);
|
|
498
|
+
}
|
|
499
|
+
expect(b.getBoundingClientRect().left - a.getBoundingClientRect().right).toBeGreaterThan(0);
|
|
360
500
|
});
|
|
361
501
|
it('applies the error class to both the title box and the value box', async () => {
|
|
362
502
|
const { root } = await render(h("bs-input", { type: "initials", titleOptions: ['Mrs.'], error: "Required" }));
|
|
@@ -366,18 +506,76 @@ describe('bs-input', () => {
|
|
|
366
506
|
});
|
|
367
507
|
});
|
|
368
508
|
describe('type="country"', () => {
|
|
369
|
-
it('renders a
|
|
370
|
-
const { root } = await render(h("bs-input", { type: "country",
|
|
371
|
-
const
|
|
372
|
-
expect(
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
const
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
509
|
+
it('renders two separate bordered fields: a flag picker and the phone input', async () => {
|
|
510
|
+
const { root } = await render(h("bs-input", { type: "country", country: "US", countryOptions: countries }));
|
|
511
|
+
const fields = Array.from(root.shadowRoot.querySelectorAll('[part="field"]'));
|
|
512
|
+
expect(fields).toHaveLength(2);
|
|
513
|
+
expect(root.shadowRoot.querySelector('select')).toBeNull();
|
|
514
|
+
expect(fields[0].querySelector('button[role="combobox"]')).not.toBeNull();
|
|
515
|
+
expect(fields[1].querySelector('input')).not.toBeNull();
|
|
516
|
+
for (const f of fields)
|
|
517
|
+
expect(getComputedStyle(f).borderTopWidth).toBe('1px');
|
|
518
|
+
expect(fields[1].getBoundingClientRect().left - fields[0].getBoundingClientRect().right).toBeGreaterThan(0);
|
|
519
|
+
});
|
|
520
|
+
it('shows the selected country flag in the trigger, with an accessible name', async () => {
|
|
521
|
+
const { root } = await render(h("bs-input", { type: "country", country: "US", countryOptions: countries }));
|
|
522
|
+
const trigger = root.shadowRoot.querySelector('button[role="combobox"]');
|
|
523
|
+
expect(trigger.querySelector('[part="flag"]')).toHaveTextContent('\u{1F1FA}\u{1F1F8}');
|
|
524
|
+
expect(trigger).toEqualAttribute('aria-label', 'Country: United States');
|
|
525
|
+
});
|
|
526
|
+
it('falls back to the country code when there is no flag', async () => {
|
|
527
|
+
const { root } = await render(h("bs-input", { type: "country", country: "DK", countryOptions: [{ code: 'DK', label: 'Denmark' }] }));
|
|
528
|
+
const trigger = root.shadowRoot.querySelector('button[role="combobox"]');
|
|
529
|
+
expect(trigger.querySelector('[part="flag"]')).toBeNull();
|
|
530
|
+
expect(trigger).toHaveTextContent('DK');
|
|
531
|
+
});
|
|
532
|
+
it('shows flag, code and name in each option and marks the selected one', async () => {
|
|
533
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "country", country: "US", countryOptions: countries }));
|
|
534
|
+
root.shadowRoot.querySelector('[part="field"]').click();
|
|
535
|
+
await waitForChanges();
|
|
536
|
+
const options = root.shadowRoot.querySelectorAll('[role="option"]');
|
|
537
|
+
expect(options.length).toBe(3);
|
|
538
|
+
expect(options[0].querySelector('[part="flag"]')).not.toBeNull();
|
|
539
|
+
expect(options[0]).toHaveTextContent('DK Denmark');
|
|
540
|
+
expect(options[1]).toEqualAttribute('aria-selected', 'true');
|
|
541
|
+
});
|
|
542
|
+
it('emits bsCountryChange and updates country when an option is chosen', async () => {
|
|
543
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "country", countryOptions: countries }));
|
|
544
|
+
const spy = spyOnEvent('bsCountryChange');
|
|
545
|
+
root.shadowRoot.querySelector('[part="field"]').click();
|
|
546
|
+
await waitForChanges();
|
|
547
|
+
root.shadowRoot.querySelectorAll('[role="option"]')[2].click();
|
|
548
|
+
await waitForChanges();
|
|
549
|
+
expect(spy).toHaveReceivedEventDetail('GB');
|
|
550
|
+
expect(root.country).toBe('GB');
|
|
551
|
+
});
|
|
552
|
+
it('keeps the phone number as the form value', async () => {
|
|
553
|
+
const form = document.createElement('form');
|
|
554
|
+
document.body.appendChild(form);
|
|
555
|
+
const el = document.createElement('bs-input');
|
|
556
|
+
el.type = 'country';
|
|
557
|
+
el.name = 'phone';
|
|
558
|
+
el.countryOptions = countries;
|
|
559
|
+
el.value = '12345678';
|
|
560
|
+
form.appendChild(el);
|
|
561
|
+
await new Promise(r => setTimeout(r, 50));
|
|
562
|
+
expect(new FormData(form).get('phone')).toBe('12345678');
|
|
563
|
+
form.remove();
|
|
564
|
+
});
|
|
565
|
+
it('supports keyboard selection and Escape', async () => {
|
|
566
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "country", countryOptions: countries }));
|
|
567
|
+
const spy = spyOnEvent('bsCountryChange');
|
|
568
|
+
pickerKey(root, 'ArrowDown');
|
|
569
|
+
await waitForChanges();
|
|
570
|
+
root.dispatchEvent(new KeyboardEvent('keydown', { key: 'Escape', bubbles: true, composed: true }));
|
|
571
|
+
await waitForChanges();
|
|
572
|
+
expect(root.shadowRoot.querySelector('[role="listbox"]')).toBeNull();
|
|
573
|
+
expect(spy).not.toHaveReceivedEvent();
|
|
574
|
+
pickerKey(root, 'ArrowDown');
|
|
575
|
+
pickerKey(root, 'ArrowDown');
|
|
576
|
+
pickerKey(root, 'Enter');
|
|
577
|
+
await waitForChanges();
|
|
578
|
+
expect(spy).toHaveReceivedEventDetail('US');
|
|
381
579
|
});
|
|
382
580
|
});
|
|
383
581
|
describe('type="pin"', () => {
|
|
@@ -428,4 +626,192 @@ describe('bs-input', () => {
|
|
|
428
626
|
expect(label.fontWeight).toBe('600');
|
|
429
627
|
});
|
|
430
628
|
});
|
|
629
|
+
describe('type="combobox"', () => {
|
|
630
|
+
const opts = [
|
|
631
|
+
{ label: 'Denmark', value: 'dk' },
|
|
632
|
+
{ label: 'Sweden', value: 'se' },
|
|
633
|
+
{ label: 'Norway', value: 'no' },
|
|
634
|
+
];
|
|
635
|
+
const key = (root, k) => root.shadowRoot.querySelector('input').dispatchEvent(new KeyboardEvent('keydown', { key: k, bubbles: true, composed: true, cancelable: true }));
|
|
636
|
+
const typeText = async (root, text, waitForChanges) => {
|
|
637
|
+
const input = root.shadowRoot.querySelector('input');
|
|
638
|
+
input.value = text;
|
|
639
|
+
input.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
|
|
640
|
+
await waitForChanges();
|
|
641
|
+
};
|
|
642
|
+
it('exposes combobox ARIA on the input, with aria-controls resolving inside the shadow root', async () => {
|
|
643
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts }));
|
|
644
|
+
const input = root.shadowRoot.querySelector('input');
|
|
645
|
+
expect(input).toEqualAttribute('role', 'combobox');
|
|
646
|
+
expect(input).toEqualAttribute('aria-expanded', 'false');
|
|
647
|
+
expect(input).toEqualAttribute('aria-autocomplete', 'list');
|
|
648
|
+
expect(input).toEqualAttribute('aria-controls', 'listbox');
|
|
649
|
+
expect(input).not.toHaveAttribute('aria-activedescendant');
|
|
650
|
+
key(root, 'ArrowDown');
|
|
651
|
+
await waitForChanges();
|
|
652
|
+
expect(input).toEqualAttribute('aria-expanded', 'true');
|
|
653
|
+
const listbox = root.shadowRoot.getElementById('listbox');
|
|
654
|
+
expect(listbox).not.toBeNull();
|
|
655
|
+
expect(listbox).toEqualAttribute('role', 'listbox');
|
|
656
|
+
expect(root.shadowRoot.querySelectorAll('[role="option"]').length).toBe(3);
|
|
657
|
+
expect(input).toEqualAttribute('aria-activedescendant', 'option-0');
|
|
658
|
+
expect(root.shadowRoot.getElementById('option-0')).toEqualAttribute('aria-selected', 'true');
|
|
659
|
+
});
|
|
660
|
+
it('ArrowDown/ArrowUp move the active option (wrapping), Home/End jump', async () => {
|
|
661
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts }));
|
|
662
|
+
const input = root.shadowRoot.querySelector('input');
|
|
663
|
+
key(root, 'ArrowDown');
|
|
664
|
+
key(root, 'ArrowDown');
|
|
665
|
+
await waitForChanges();
|
|
666
|
+
expect(input).toEqualAttribute('aria-activedescendant', 'option-1');
|
|
667
|
+
key(root, 'End');
|
|
668
|
+
await waitForChanges();
|
|
669
|
+
expect(input).toEqualAttribute('aria-activedescendant', 'option-2');
|
|
670
|
+
key(root, 'ArrowDown');
|
|
671
|
+
await waitForChanges();
|
|
672
|
+
expect(input).toEqualAttribute('aria-activedescendant', 'option-0');
|
|
673
|
+
key(root, 'ArrowUp');
|
|
674
|
+
await waitForChanges();
|
|
675
|
+
expect(input).toEqualAttribute('aria-activedescendant', 'option-2');
|
|
676
|
+
key(root, 'Home');
|
|
677
|
+
await waitForChanges();
|
|
678
|
+
expect(input).toEqualAttribute('aria-activedescendant', 'option-0');
|
|
679
|
+
});
|
|
680
|
+
it('opens and filters while typing and emits bsInput with the text', async () => {
|
|
681
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts }));
|
|
682
|
+
const spy = spyOnEvent('bsInput');
|
|
683
|
+
await typeText(root, 'sw', waitForChanges);
|
|
684
|
+
expect(spy).toHaveReceivedEventDetail('sw');
|
|
685
|
+
expect(root).toHaveAttribute('open');
|
|
686
|
+
const options = root.shadowRoot.querySelectorAll('[role="option"]');
|
|
687
|
+
expect(options.length).toBe(1);
|
|
688
|
+
expect(options[0]).toHaveTextContent('Sweden');
|
|
689
|
+
});
|
|
690
|
+
it('does not filter when filterOptions is false', async () => {
|
|
691
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts, filterOptions: false }));
|
|
692
|
+
await typeText(root, 'zzz', waitForChanges);
|
|
693
|
+
expect(root.shadowRoot.querySelectorAll('[role="option"]').length).toBe(3);
|
|
694
|
+
});
|
|
695
|
+
it('Enter selects the active option: sets value, closes, emits bsOptionSelect and bsChange', async () => {
|
|
696
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts }));
|
|
697
|
+
const selectSpy = spyOnEvent('bsOptionSelect');
|
|
698
|
+
const changeSpy = spyOnEvent('bsChange');
|
|
699
|
+
key(root, 'ArrowDown');
|
|
700
|
+
key(root, 'ArrowDown');
|
|
701
|
+
await waitForChanges();
|
|
702
|
+
key(root, 'Enter');
|
|
703
|
+
await waitForChanges();
|
|
704
|
+
expect(selectSpy).toHaveReceivedEventDetail({ label: 'Sweden', value: 'se' });
|
|
705
|
+
expect(changeSpy).toHaveReceivedEventDetail('Sweden');
|
|
706
|
+
expect(root).not.toHaveAttribute('open');
|
|
707
|
+
expect(root.shadowRoot.querySelector('input').value).toBe('Sweden');
|
|
708
|
+
expect(root.shadowRoot.getElementById('listbox')).toBeNull();
|
|
709
|
+
});
|
|
710
|
+
it('Enter without an active option does not select', async () => {
|
|
711
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts }));
|
|
712
|
+
const selectSpy = spyOnEvent('bsOptionSelect');
|
|
713
|
+
await typeText(root, 'den', waitForChanges);
|
|
714
|
+
key(root, 'Enter');
|
|
715
|
+
await waitForChanges();
|
|
716
|
+
expect(selectSpy).not.toHaveReceivedEvent();
|
|
717
|
+
});
|
|
718
|
+
it('clicking an option selects it', async () => {
|
|
719
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts, open: true }));
|
|
720
|
+
const selectSpy = spyOnEvent('bsOptionSelect');
|
|
721
|
+
root.shadowRoot.getElementById('option-2').click();
|
|
722
|
+
await waitForChanges();
|
|
723
|
+
expect(selectSpy).toHaveReceivedEventDetail({ label: 'Norway', value: 'no' });
|
|
724
|
+
});
|
|
725
|
+
it('Escape closes the popup', async () => {
|
|
726
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts, open: true }));
|
|
727
|
+
key(root, 'Escape');
|
|
728
|
+
await waitForChanges();
|
|
729
|
+
expect(root).not.toHaveAttribute('open');
|
|
730
|
+
});
|
|
731
|
+
it('shows a "No results" status when nothing matches', async () => {
|
|
732
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts }));
|
|
733
|
+
await typeText(root, 'xyz', waitForChanges);
|
|
734
|
+
expect(root.shadowRoot.querySelectorAll('[role="option"]').length).toBe(0);
|
|
735
|
+
expect(root.shadowRoot.querySelector('[role="status"]')).toHaveTextContent('No results');
|
|
736
|
+
});
|
|
737
|
+
it('shows a loading indicator and message while loading with no results', async () => {
|
|
738
|
+
const { root, waitForChanges } = await render(h("bs-input", { type: "combobox", label: "Country", options: [], loading: true, open: true }));
|
|
739
|
+
await waitForChanges();
|
|
740
|
+
expect(root.shadowRoot.querySelector('bs-spinner')).not.toBeNull();
|
|
741
|
+
expect(root.shadowRoot.querySelector('[role="status"]')).toHaveTextContent('Loading...');
|
|
742
|
+
});
|
|
743
|
+
it('renders a clear button only with a value; clicking it empties the value and emits events', async () => {
|
|
744
|
+
const { root, waitForChanges, spyOnEvent } = await render(h("bs-input", { type: "combobox", label: "Country", options: opts }));
|
|
745
|
+
expect(root.shadowRoot.querySelector('[part="clear"]')).toBeNull();
|
|
746
|
+
await typeText(root, 'den', waitForChanges);
|
|
747
|
+
const clear = root.shadowRoot.querySelector('[part="clear"]');
|
|
748
|
+
expect(clear).not.toBeNull();
|
|
749
|
+
const inputSpy = spyOnEvent('bsInput');
|
|
750
|
+
clear.click();
|
|
751
|
+
await waitForChanges();
|
|
752
|
+
expect(inputSpy).toHaveReceivedEventDetail('');
|
|
753
|
+
expect(root.shadowRoot.querySelector('input').value).toBe('');
|
|
754
|
+
expect(root.shadowRoot.querySelector('[part="clear"]')).toBeNull();
|
|
755
|
+
});
|
|
756
|
+
it('does not render a clear button when disabled', async () => {
|
|
757
|
+
const { root } = await render(h("bs-input", { type: "combobox", label: "Country", value: "Denmark", disabled: true }));
|
|
758
|
+
expect(root.shadowRoot.querySelector('[part="clear"]')).toBeNull();
|
|
759
|
+
});
|
|
760
|
+
});
|
|
761
|
+
describe('aria-label pass-through', () => {
|
|
762
|
+
it('sets aria-label on the control when there is no visible label', async () => {
|
|
763
|
+
const { root } = await render(h("bs-input", { ariaLabel: "Search products" }));
|
|
764
|
+
expect(root.shadowRoot.querySelector('input')).toEqualAttribute('aria-label', 'Search products');
|
|
765
|
+
});
|
|
766
|
+
it('does not set aria-label when a visible label exists', async () => {
|
|
767
|
+
const { root } = await render(h("bs-input", { label: "Name", ariaLabel: "Ignored" }));
|
|
768
|
+
expect(root.shadowRoot.querySelector('input')).not.toHaveAttribute('aria-label');
|
|
769
|
+
});
|
|
770
|
+
});
|
|
771
|
+
describe('type="date" picker icon', () => {
|
|
772
|
+
it('renders a single custom calendar button and opens the picker via showPicker()', async () => {
|
|
773
|
+
const { root } = await render(h("bs-input", { type: "date", label: "Date" }));
|
|
774
|
+
const input = root.shadowRoot.querySelector('input');
|
|
775
|
+
const showPicker = vi.fn();
|
|
776
|
+
input.showPicker = showPicker;
|
|
777
|
+
const btn = root.shadowRoot.querySelector('.bs-input__calendar-btn');
|
|
778
|
+
expect(btn).not.toBeNull();
|
|
779
|
+
btn.click();
|
|
780
|
+
expect(showPicker).toHaveBeenCalledTimes(1);
|
|
781
|
+
});
|
|
782
|
+
it('falls back to focusing the input when showPicker is unavailable', async () => {
|
|
783
|
+
const { root } = await render(h("bs-input", { type: "date", label: "Date" }));
|
|
784
|
+
const input = root.shadowRoot.querySelector('input');
|
|
785
|
+
input.showPicker = undefined;
|
|
786
|
+
root.shadowRoot.querySelector('.bs-input__calendar-btn').click();
|
|
787
|
+
expect(root.shadowRoot.activeElement).toBe(input);
|
|
788
|
+
});
|
|
789
|
+
});
|
|
790
|
+
describe('sizing', () => {
|
|
791
|
+
it('number stepper buttons are at least 24px', async () => {
|
|
792
|
+
const { root } = await render(h("bs-input", { type: "number", label: "Qty" }));
|
|
793
|
+
const btn = getComputedStyle(root.shadowRoot.querySelector('.bs-input__stepper-btn'));
|
|
794
|
+
expect(parseFloat(btn.width)).toBeGreaterThanOrEqual(24);
|
|
795
|
+
expect(parseFloat(btn.height)).toBeGreaterThanOrEqual(24);
|
|
796
|
+
});
|
|
797
|
+
it('description text is 14px and the stack gap is 8px', async () => {
|
|
798
|
+
const { root } = await render(h("bs-input", { label: "Name", description: "Helper" }));
|
|
799
|
+
expect(getComputedStyle(root.shadowRoot.querySelector('.bs-input__description')).fontSize).toBe('14px');
|
|
800
|
+
expect(getComputedStyle(root.shadowRoot.querySelector('.bs-input')).rowGap).toBe('8px');
|
|
801
|
+
});
|
|
802
|
+
it('pin uses a 6px cell gap and 44px cells', async () => {
|
|
803
|
+
const { root } = await render(h("bs-input", { type: "pin", length: 4 }));
|
|
804
|
+
const field = getComputedStyle(root.shadowRoot.querySelector('.bs-input__field--pin'));
|
|
805
|
+
expect(field.columnGap).toBe('6px');
|
|
806
|
+
const cell = getComputedStyle(root.shadowRoot.querySelector('.bs-input__pin-cell'));
|
|
807
|
+
expect(cell.width).toBe('44px');
|
|
808
|
+
expect(cell.height).toBe('44px');
|
|
809
|
+
});
|
|
810
|
+
it('chip pills use size="md" (24px)', async () => {
|
|
811
|
+
const { root } = await render(h("bs-input", { type: "chip", chips: ['a'] }));
|
|
812
|
+
const chip = root.shadowRoot.querySelector('bs-chip-informative');
|
|
813
|
+
expect(chip.size).toBe('md');
|
|
814
|
+
expect(chip.getBoundingClientRect().height).toBe(24);
|
|
815
|
+
});
|
|
816
|
+
});
|
|
431
817
|
});
|