@brandsync/wc 1.19.0 → 1.20.1
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 +266 -11
- package/custom-elements.json +11415 -6969
- 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-a688a7ca.entry.js → p-08a5e178.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a50c5e68.entry.js → p-08d08dc9.entry.js} +1 -1
- package/dist/brandsync-wc/{p-568de1b0.entry.js → p-0ebb60a8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-10b8937f.entry.js → p-11fefb5a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-313ec145.entry.js → p-13d98ec3.entry.js} +1 -1
- package/dist/brandsync-wc/p-14719554.entry.js +1 -0
- package/dist/brandsync-wc/{p-42fcf134.entry.js → p-18cfec13.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9751a12d.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-5371b31c.entry.js → p-1ce4395a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-de0dfd1c.entry.js → p-1daf48b1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-86f04e9e.entry.js → p-20dd8b76.entry.js} +1 -1
- package/dist/brandsync-wc/{p-391504ab.entry.js → p-2210c680.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f10b19a8.entry.js → p-23367a4d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-02314404.entry.js → p-238be384.entry.js} +1 -1
- package/dist/brandsync-wc/p-23affb5d.entry.js +1 -0
- package/dist/brandsync-wc/p-23b3958e.entry.js +1 -0
- package/dist/brandsync-wc/{p-03ad83a3.entry.js → p-2621b1b2.entry.js} +1 -1
- package/dist/brandsync-wc/p-28723df1.entry.js +1 -0
- package/dist/brandsync-wc/{p-d484e976.entry.js → p-28a34097.entry.js} +1 -1
- package/dist/brandsync-wc/{p-129a4de7.entry.js → p-2a96ce61.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7160a72e.entry.js → p-2f58b161.entry.js} +1 -1
- package/dist/brandsync-wc/p-319b7baa.entry.js +1 -0
- package/dist/brandsync-wc/{p-8a606b38.entry.js → p-32004fb3.entry.js} +1 -1
- package/dist/brandsync-wc/{p-78c94cfe.entry.js → p-32157c7a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ab99b8c3.entry.js → p-32d83763.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8b21f623.entry.js → p-338b5e39.entry.js} +1 -1
- package/dist/brandsync-wc/p-39c50762.entry.js +1 -0
- 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-8e107d7a.entry.js → p-452f6c13.entry.js} +1 -1
- package/dist/brandsync-wc/{p-527fd08d.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-4ffcf41a.entry.js → p-4f19e8d8.entry.js} +1 -1
- package/dist/brandsync-wc/p-50a154b8.entry.js +1 -0
- package/dist/brandsync-wc/{p-26e0ab15.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-90d8d45f.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-028d3244.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-4d1ee16e.entry.js → p-5ea899c4.entry.js} +1 -1
- package/dist/brandsync-wc/p-60636c6c.entry.js +1 -0
- 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-6ae75ed0.entry.js +1 -0
- package/dist/brandsync-wc/p-6b1ba5ec.entry.js +1 -0
- package/dist/brandsync-wc/p-6bdd9ef9.entry.js +1 -0
- package/dist/brandsync-wc/{p-dc2ea372.entry.js → p-6db03e96.entry.js} +1 -1
- package/dist/brandsync-wc/{p-64e19200.entry.js → p-70924681.entry.js} +1 -1
- package/dist/brandsync-wc/{p-590deea0.entry.js → p-78e4dd14.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f96f45ae.entry.js → p-806bb471.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8a18864a.entry.js → p-89dbb3c8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ebcd105d.entry.js → p-8a4d64fd.entry.js} +1 -1
- 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-8d1ad4b0.entry.js → p-90442341.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a2bfbf02.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-Vo0zbGRB.js +1 -0
- package/dist/brandsync-wc/p-a1d34ff3.entry.js +1 -0
- package/dist/brandsync-wc/{p-15c6f0f3.entry.js → p-a3c7b4e7.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9ba500f1.entry.js → p-a6cbb6c6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-70a5897b.entry.js → p-a86560e6.entry.js} +1 -1
- package/dist/brandsync-wc/p-aa70e80c.entry.js +1 -0
- package/dist/brandsync-wc/p-aa99b1f8.entry.js +1 -0
- package/dist/brandsync-wc/{p-0dff9822.entry.js → p-b0f4cbca.entry.js} +1 -1
- package/dist/brandsync-wc/{p-3c6980b9.entry.js → p-b1663378.entry.js} +1 -1
- package/dist/brandsync-wc/{p-25914efc.entry.js → p-b1b14615.entry.js} +1 -1
- package/dist/brandsync-wc/p-b6dc9234.entry.js +1 -0
- package/dist/brandsync-wc/{p-2389f473.entry.js → p-b7545d9b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d80eecf4.entry.js → p-baca1abf.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a92c0f06.entry.js → p-bfdd135b.entry.js} +1 -1
- package/dist/brandsync-wc/p-c0e5db3d.entry.js +1 -0
- package/dist/brandsync-wc/{p-89fa7567.entry.js → p-c23e274a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-4928c4ad.entry.js → p-c39e6be9.entry.js} +1 -1
- package/dist/brandsync-wc/{p-30736034.entry.js → p-c6c15b9f.entry.js} +1 -1
- package/dist/brandsync-wc/p-ca8a1e51.entry.js +1 -0
- package/dist/brandsync-wc/{p-9fa7bd83.entry.js → p-d263deec.entry.js} +1 -1
- 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-e5235e76.entry.js → p-d67840f5.entry.js} +1 -1
- package/dist/brandsync-wc/p-d8a299a9.entry.js +1 -0
- package/dist/brandsync-wc/{p-8ac86d16.entry.js → p-dc59a735.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f4796801.entry.js → p-dd3499ab.entry.js} +1 -1
- package/dist/brandsync-wc/p-debc308d.entry.js +1 -0
- package/dist/brandsync-wc/{p-c01e231e.entry.js → p-e18cb639.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7bff3aa5.entry.js → p-e18e45bc.entry.js} +1 -1
- package/dist/brandsync-wc/{p-4c51da66.entry.js → p-e2268c96.entry.js} +1 -1
- package/dist/brandsync-wc/p-e4033ebc.entry.js +1 -0
- package/dist/brandsync-wc/p-e8027825.entry.js +1 -0
- package/dist/brandsync-wc/{p-7c741b8d.entry.js → p-eb1b1497.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9868ee72.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-0819add7.entry.js → p-f22d2db8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-feb46fa6.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-21e5d4d6.entry.js → p-fc7df528.entry.js} +1 -1
- package/dist/brandsync-wc/{p-27663faf.entry.js → p-fe6f71da.entry.js} +1 -1
- 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 +2 -2
- 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 +5 -5
- package/dist/cjs/bs-app-shell.cjs.entry.js +2 -2
- package/dist/cjs/bs-app-switcher.cjs.entry.js +1 -1
- package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment.cjs.entry.js +2 -2
- package/dist/cjs/bs-avatar.cjs.entry.js +3 -10
- package/dist/cjs/bs-badge.cjs.entry.js +2 -2
- package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
- 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 +17 -4
- package/dist/cjs/bs-card.cjs.entry.js +44 -3
- package/dist/cjs/bs-carousel.cjs.entry.js +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dist/cjs/bs-chip-filter.cjs.entry.js +2 -2
- package/dist/cjs/bs-chip-informative.cjs.entry.js +2 -2
- package/dist/cjs/bs-chip-input.cjs.entry.js +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +2 -2
- package/dist/cjs/bs-popover.cjs.entry.js +223 -0
- package/dist/cjs/bs-presence.cjs.entry.js +2 -2
- 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 +6 -2
- package/dist/cjs/bs-search-item.cjs.entry.js +2 -2
- 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 +1 -1
- 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 +4 -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 +2 -2
- 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 +2 -2
- package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/bs-tree-item.cjs.entry.js +3 -3
- 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/collection/collection-manifest.json +19 -1
- package/dist/collection/components/bs-a11y.cmp.test.js +9 -0
- package/dist/collection/components/bs-accordion/bs-accordion.js +1 -1
- 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-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-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-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-breadcrumbs/bs-breadcrumbs.js +26 -1
- package/dist/collection/components/bs-button/bs-button/bs-button.cmp.test.js +31 -2
- package/dist/collection/components/bs-button/bs-button/bs-button.css +16 -18
- package/dist/collection/components/bs-button/bs-button/bs-button.js +102 -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 +32 -2
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +68 -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.js +2 -2
- package/dist/collection/components/bs-carousel/bs-carousel.stories.js +9 -5
- 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.js +1 -1
- package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.cmp.test.js +18 -0
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.css +8 -2
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +4 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -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.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
- package/dist/collection/components/bs-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.cmp.test.js +13 -7
- 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 +1 -2
- 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-divider/bs-divider.js +1 -1
- package/dist/collection/components/bs-dropdown/bs-dropdown.cmp.test.js +133 -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 +8 -0
- package/dist/collection/components/bs-list-item/bs-list-item.js +24 -1
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +1 -1
- 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.js +1 -1
- package/dist/collection/components/bs-menu-item/bs-menu-item.stories.js +19 -15
- 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.js +1 -1
- package/dist/collection/components/bs-popover/bs-popover.cmp.test.js +11 -4
- package/dist/collection/components/bs-popover/bs-popover.js +26 -2
- package/dist/collection/components/bs-presence/bs-presence.js +1 -1
- 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.js +25 -1
- 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.js +1 -1
- package/dist/collection/components/bs-search-item/bs-search-item.js +1 -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-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.js +3 -3
- 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.js +1 -1
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +2 -2
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -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 +1 -1
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.stories.js +7 -7
- 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 +144 -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.js +1 -1
- package/dist/collection/components/bs-tree/bs-tree.js +1 -1
- package/dist/collection/components/bs-tree-item/bs-tree-item.js +2 -2
- package/dist/collection/components/bs-tree-item/bs-tree-item.stories.js +6 -4
- package/dist/collection/components/bs-whats-new-entry/bs-whats-new-entry.js +1 -1
- package/dist/collection/components/disabled-aria.cmp.test.js +19 -0
- 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/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.js +1 -1
- 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.js +1 -1
- 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-B5yjDh8h.js +1 -0
- package/dist/components/p-B81aicKA.js +1 -0
- package/dist/components/{p-CFR3Q0io.js → p-BB1HiIxJ.js} +1 -1
- package/dist/components/p-BLJL4BVY.js +1 -0
- package/dist/components/{p-D5eN9Lfa.js → p-BR7C-aKy.js} +1 -1
- package/dist/components/{p-D3PuUD8Z.js → p-Ba8J2kHD.js} +1 -1
- package/dist/components/{p-DF2FcJPs.js → p-C3YETziz.js} +1 -1
- package/dist/components/p-CALH_mHQ.js +1 -0
- package/dist/components/{p-DcD5eV_Z.js → p-CKTbatgt.js} +1 -1
- package/dist/components/{p-lPTgyF9v.js → p-CL99S8-7.js} +1 -1
- package/dist/components/{p-Dj393s3S.js → p-CZfbB-t_.js} +1 -1
- package/dist/components/p-CcAX4o5o.js +1 -0
- package/dist/components/{p-6Rr9bjVN.js → p-Cso2DKAz.js} +1 -1
- package/dist/components/{p-CVQycAap.js → p-CxNNy2m6.js} +1 -1
- package/dist/components/{p-CHZE_FrW.js → p-Cz38kNDe.js} +1 -1
- package/dist/components/{p-Y5FyLR8G.js → p-D4W5LcEW.js} +1 -1
- package/dist/components/{p--Tyv3LIl.js → p-DARbgzSz.js} +1 -1
- package/dist/components/p-DHZ_DStJ.js +1 -0
- package/dist/components/{p-BQ4rSQDm.js → p-DK1uv2fu.js} +1 -1
- package/dist/components/{p-DLnZG_G9.js → p-DL9HtG41.js} +1 -1
- package/dist/components/{p-Cr8cHmpM.js → p-DLNoxNuW.js} +1 -1
- package/dist/components/{p-4yShCgRb.js → p-DMp5CvEJ.js} +1 -1
- package/dist/components/p-DO4sVZCh.js +1 -0
- package/dist/components/{p-DDgzEg1C.js → p-DOW-YekD.js} +1 -1
- package/dist/components/p-DUV80kt-.js +1 -0
- package/dist/components/{p-BTPdjnXT.js → p-DVqoLSEW.js} +1 -1
- package/dist/components/{p-DtkTnaOp.js → p-DaKBSL2O.js} +1 -1
- package/dist/components/{p-ZfE38vXZ.js → p-Dlp2c-Ii.js} +1 -1
- package/dist/components/{p-XZXdZpt4.js → p-DnagAPBF.js} +1 -1
- package/dist/components/p-Dt3b6VYT.js +1 -0
- package/dist/components/{p-BWRkbt0f.js → p-KiyJJwzr.js} +1 -1
- package/dist/components/p-Vo0zbGRB.js +1 -0
- package/dist/components/p-_zxYDrzi.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 +2 -2
- 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 +5 -5
- package/dist/esm/bs-app-shell.entry.js +2 -2
- package/dist/esm/bs-app-switcher.entry.js +1 -1
- package/dist/esm/bs-attachment-list.entry.js +2 -2
- package/dist/esm/bs-attachment.entry.js +2 -2
- package/dist/esm/bs-avatar.entry.js +3 -10
- package/dist/esm/bs-badge.entry.js +2 -2
- package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
- 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 +17 -4
- package/dist/esm/bs-card.entry.js +44 -3
- package/dist/esm/bs-carousel.entry.js +2 -2
- 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 +2 -2
- 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 +1 -1
- package/dist/esm/bs-chip-filter.entry.js +2 -2
- package/dist/esm/bs-chip-informative.entry.js +2 -2
- package/dist/esm/bs-chip-input.entry.js +2 -2
- 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 +1 -1
- 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 +2 -2
- 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 +2 -2
- package/dist/esm/bs-popover.entry.js +221 -0
- package/dist/esm/bs-presence.entry.js +2 -2
- 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 +6 -2
- package/dist/esm/bs-search-item.entry.js +2 -2
- 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 +1 -1
- 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 +4 -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 +2 -2
- 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 +2 -2
- package/dist/esm/bs-tooltip.entry.js +2 -2
- package/dist/esm/bs-tree-item.entry.js +3 -3
- 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/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.d.ts +9 -0
- package/dist/types/components/bs-button/bs-button/bs-button.d.ts +22 -6
- package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +7 -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 +1 -1
- package/dist/types/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.d.ts +3 -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-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-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 +3 -0
- package/dist/types/components/bs-popover/bs-popover.d.ts +9 -1
- package/dist/types/components/bs-radio/bs-radio.d.ts +4 -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-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-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-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-tab/bs-inline-tab/bs-inline-tab.stories.d.ts +0 -1
- 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/disabled-aria.cmp.test.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 +3107 -88
- 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/package.json +6 -1
- package/reference.d.ts +63 -9
- package/reference.json +670 -17
- package/dist/brandsync-wc/p-08649f52.entry.js +0 -1
- package/dist/brandsync-wc/p-1580c56c.entry.js +0 -1
- package/dist/brandsync-wc/p-171fa239.entry.js +0 -1
- package/dist/brandsync-wc/p-197ac73f.entry.js +0 -1
- package/dist/brandsync-wc/p-1e33bc10.entry.js +0 -1
- package/dist/brandsync-wc/p-270b2cb0.entry.js +0 -1
- package/dist/brandsync-wc/p-28c38959.entry.js +0 -1
- package/dist/brandsync-wc/p-2a8b2ac9.entry.js +0 -1
- package/dist/brandsync-wc/p-2a967b45.entry.js +0 -1
- package/dist/brandsync-wc/p-2b3d0bd4.entry.js +0 -1
- package/dist/brandsync-wc/p-30ff0659.entry.js +0 -1
- package/dist/brandsync-wc/p-3627e0c6.entry.js +0 -1
- package/dist/brandsync-wc/p-38a2210a.entry.js +0 -1
- package/dist/brandsync-wc/p-3b212a8a.entry.js +0 -1
- package/dist/brandsync-wc/p-4dfd4715.entry.js +0 -1
- package/dist/brandsync-wc/p-6afacd47.entry.js +0 -1
- package/dist/brandsync-wc/p-6f32a08e.entry.js +0 -1
- package/dist/brandsync-wc/p-776b677f.entry.js +0 -1
- package/dist/brandsync-wc/p-D3SkQJpw.js +0 -3
- package/dist/brandsync-wc/p-ab301e9d.entry.js +0 -1
- package/dist/brandsync-wc/p-d15e48eb.entry.js +0 -1
- package/dist/brandsync-wc/p-e1d30e31.entry.js +0 -1
- package/dist/brandsync-wc/p-e776d145.entry.js +0 -1
- package/dist/brandsync-wc/p-e7c80f48.entry.js +0 -1
- package/dist/brandsync-wc/p-eb680cff.entry.js +0 -1
- package/dist/brandsync-wc/p-f3b60029.entry.js +0 -1
- package/dist/brandsync-wc/p-f4628861.entry.js +0 -1
- package/dist/brandsync-wc/p-f5e6fdf8.entry.js +0 -1
- package/dist/brandsync-wc/p-f93127e1.entry.js +0 -1
- package/dist/cjs/bs-input_3.cjs.entry.js +0 -461
- package/dist/cjs/bs-list-item_2.cjs.entry.js +0 -261
- package/dist/cjs/bs-spinner.cjs.entry.js +0 -24
- package/dist/components/p-B2gx7SZk.js +0 -1
- package/dist/components/p-BHzj13sd.js +0 -1
- package/dist/components/p-BIxcCDgl.js +0 -1
- package/dist/components/p-BfCah-Ij.js +0 -1
- package/dist/components/p-BpkPo4ay.js +0 -1
- package/dist/components/p-CvSewXZF.js +0 -1
- package/dist/components/p-DXbcyEgd.js +0 -1
- package/dist/components/p-DXwatzvM.js +0 -1
- package/dist/components/p-DsBToIYE.js +0 -1
- package/dist/components/p-EGNLb4cQ.js +0 -1
- package/dist/components/p-Jik5UkAe.js +0 -1
- package/dist/components/p-syO0ipbw.js +0 -1
- package/dist/components/p-up01gvHY.js +0 -1
- package/dist/esm/bs-input_3.entry.js +0 -457
- package/dist/esm/bs-list-item_2.entry.js +0 -258
- package/dist/esm/bs-spinner.entry.js +0 -22
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
const OVERFLOW_ATTR = 'data-bs-toolbar-overflowed';
|
|
3
|
+
/**
|
|
4
|
+
* A bar of related controls (buttons, toggles, selects) with a left and a right group, grouped
|
|
5
|
+
* separators, a single tab stop and arrow-key navigation between the controls (WAI-ARIA toolbar
|
|
6
|
+
* pattern). Optionally, controls that do not fit collapse into a "more" menu.
|
|
7
|
+
*
|
|
8
|
+
* Keyboard: the toolbar is ONE tab stop. Left/Right arrows (Up/Down when `orientation="vertical"`,
|
|
9
|
+
* mirrored in RTL) move focus between the controls and wrap; Home/End jump to the first/last. The
|
|
10
|
+
* control last focused is the one Tab returns to. Disabled controls are skipped.
|
|
11
|
+
*
|
|
12
|
+
* Direct children of the `left`/`right` slots are the toolbar's controls. A slotted `bs-divider` is a
|
|
13
|
+
* separator: the toolbar sets its `orientation` perpendicular to its own and skips it when navigating.
|
|
14
|
+
*
|
|
15
|
+
* ## When to use
|
|
16
|
+
* - Several related actions that act on the same content (a text editor's formatting row, a table's
|
|
17
|
+
* bulk actions, a viewer's zoom controls).
|
|
18
|
+
*
|
|
19
|
+
* ## When not to use
|
|
20
|
+
* - Navigating between pages or sections -- use `bs-tabs`, `bs-navigation-header` or a nav.
|
|
21
|
+
* - A single action or a form's submit row -- place the `bs-button`s directly.
|
|
22
|
+
* - A menu of actions that opens on demand -- use `bs-popover` with `bs-menu`.
|
|
23
|
+
*
|
|
24
|
+
* ## Overflow
|
|
25
|
+
* With `overflow` set (horizontal only), controls from the end of the bar that do not fit are hidden and
|
|
26
|
+
* listed in a `bs-menu` behind a "more" button; choosing an entry activates the original control. An
|
|
27
|
+
* entry's text is the control's `data-label`, else its `aria-label`, else its text content, else `title`:
|
|
28
|
+
* give icon-only controls one of these.
|
|
29
|
+
*
|
|
30
|
+
* Composition: built from `bs-icon-button`, `bs-popover`, `bs-menu` and `bs-menu-item` (overflow) and
|
|
31
|
+
* expects `bs-button`, `bs-icon-button`, `bs-divider` etc. as slotted content.
|
|
32
|
+
*
|
|
33
|
+
* @slot left - The left (leading) group of controls.
|
|
34
|
+
* @slot right - The right (trailing) group of controls; pushed to the far end of the bar.
|
|
35
|
+
* @part container - The element carrying `role="toolbar"`.
|
|
36
|
+
* @part left - The wrapper around the `left` slot.
|
|
37
|
+
* @part right - The wrapper around the `right` slot.
|
|
38
|
+
* @part overflow - The overflow `bs-popover` (only rendered when `overflow` is set).
|
|
39
|
+
*/
|
|
40
|
+
// Note: CSS Custom Properties (--bs-toolbar-*) are documented via @prop comments in bs-toolbar.css.
|
|
41
|
+
export class BsToolbar {
|
|
42
|
+
el;
|
|
43
|
+
/** Accessible name of the toolbar (`aria-label`). Required for a good experience, and essential
|
|
44
|
+
* when a page has more than one toolbar -- say what it controls ("Text formatting"). */
|
|
45
|
+
label;
|
|
46
|
+
/** Direction of the bar. Sets `aria-orientation`, switches which arrow keys navigate, and sets the
|
|
47
|
+
* orientation of slotted `bs-divider`s to the perpendicular one. */
|
|
48
|
+
orientation = 'horizontal';
|
|
49
|
+
/** Collapse controls that do not fit into a "more" menu (see Overflow in the description).
|
|
50
|
+
* Horizontal toolbars only; ignored when `orientation="vertical"`. */
|
|
51
|
+
overflow = false;
|
|
52
|
+
/** Accessible name and tooltip of the overflow button. */
|
|
53
|
+
overflowLabel = 'More actions';
|
|
54
|
+
overflowed = [];
|
|
55
|
+
activeEl;
|
|
56
|
+
resizeObserver;
|
|
57
|
+
containerEl;
|
|
58
|
+
triggerEl;
|
|
59
|
+
popoverEl;
|
|
60
|
+
componentDidLoad() {
|
|
61
|
+
this.syncItems();
|
|
62
|
+
this.observe();
|
|
63
|
+
}
|
|
64
|
+
disconnectedCallback() {
|
|
65
|
+
this.resizeObserver?.disconnect();
|
|
66
|
+
this.resizeObserver = undefined;
|
|
67
|
+
}
|
|
68
|
+
connectedCallback() {
|
|
69
|
+
// Re-attached after a disconnect (componentDidLoad only runs once).
|
|
70
|
+
if (this.containerEl)
|
|
71
|
+
this.observe();
|
|
72
|
+
}
|
|
73
|
+
onConfigChange() {
|
|
74
|
+
this.syncItems();
|
|
75
|
+
this.observe();
|
|
76
|
+
}
|
|
77
|
+
observe() {
|
|
78
|
+
this.resizeObserver?.disconnect();
|
|
79
|
+
this.resizeObserver = undefined;
|
|
80
|
+
if (!this.overflowActive() || typeof ResizeObserver === 'undefined' || !this.containerEl)
|
|
81
|
+
return;
|
|
82
|
+
this.resizeObserver = new ResizeObserver(() => this.syncItems());
|
|
83
|
+
this.resizeObserver.observe(this.containerEl);
|
|
84
|
+
}
|
|
85
|
+
overflowActive() {
|
|
86
|
+
return this.overflow && this.orientation === 'horizontal';
|
|
87
|
+
}
|
|
88
|
+
/** Every direct child of the two groups, in visual order (left group, then right group). */
|
|
89
|
+
children() {
|
|
90
|
+
const slots = Array.from(this.el.shadowRoot?.querySelectorAll('slot') ?? []);
|
|
91
|
+
return slots.flatMap(s => s.assignedElements({ flatten: true }));
|
|
92
|
+
}
|
|
93
|
+
isDivider(el) {
|
|
94
|
+
return el.tagName === 'BS-DIVIDER';
|
|
95
|
+
}
|
|
96
|
+
/** Controls that arrow keys can land on: not separators, not disabled, not collapsed into the menu. */
|
|
97
|
+
navigable() {
|
|
98
|
+
const items = this.children().filter(c => !this.isDivider(c) && !c.disabled && c.getAttribute('aria-disabled') !== 'true' && !c.hasAttribute(OVERFLOW_ATTR) && !c.hidden);
|
|
99
|
+
if (this.triggerEl && this.overflowed.length > 0)
|
|
100
|
+
items.push(this.triggerEl);
|
|
101
|
+
return items;
|
|
102
|
+
}
|
|
103
|
+
labelOf(el) {
|
|
104
|
+
return (el.dataset.label || el.getAttribute('aria-label') || el.textContent?.trim() || el.getAttribute('title') || '').trim();
|
|
105
|
+
}
|
|
106
|
+
/** Single pass: perpendicular dividers, overflow partitioning, roving tabindex. */
|
|
107
|
+
syncItems = () => {
|
|
108
|
+
const perpendicular = this.orientation === 'horizontal' ? 'vertical' : 'horizontal';
|
|
109
|
+
this.children().forEach(c => {
|
|
110
|
+
if (this.isDivider(c))
|
|
111
|
+
c.orientation = perpendicular;
|
|
112
|
+
});
|
|
113
|
+
this.updateOverflow();
|
|
114
|
+
this.syncRoving();
|
|
115
|
+
};
|
|
116
|
+
updateOverflow() {
|
|
117
|
+
const items = this.children();
|
|
118
|
+
items.forEach(c => c.removeAttribute(OVERFLOW_ATTR));
|
|
119
|
+
if (!this.overflowActive() || !this.containerEl) {
|
|
120
|
+
if (this.overflowed.length)
|
|
121
|
+
this.overflowed = [];
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
const container = this.containerEl;
|
|
125
|
+
// Reserve room for the "more" button while measuring.
|
|
126
|
+
if (this.popoverEl)
|
|
127
|
+
this.popoverEl.hidden = false;
|
|
128
|
+
const collapsed = [];
|
|
129
|
+
for (let i = items.length - 1; i >= 0 && container.scrollWidth > container.clientWidth + 0.5; i--) {
|
|
130
|
+
items[i].setAttribute(OVERFLOW_ATTR, '');
|
|
131
|
+
if (!this.isDivider(items[i]))
|
|
132
|
+
collapsed.unshift(items[i]);
|
|
133
|
+
}
|
|
134
|
+
// Do not leave a separator dangling at the end of what is still visible.
|
|
135
|
+
for (let i = items.length - 1; i >= 0; i--) {
|
|
136
|
+
if (items[i].hasAttribute(OVERFLOW_ATTR))
|
|
137
|
+
continue;
|
|
138
|
+
if (this.isDivider(items[i]) && collapsed.length)
|
|
139
|
+
items[i].setAttribute(OVERFLOW_ATTR, '');
|
|
140
|
+
else
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
if (this.popoverEl)
|
|
144
|
+
this.popoverEl.hidden = collapsed.length === 0;
|
|
145
|
+
const next = collapsed.map(el => ({ el, label: this.labelOf(el) }));
|
|
146
|
+
const same = next.length === this.overflowed.length && next.every((n, i) => n.el === this.overflowed[i].el && n.label === this.overflowed[i].label);
|
|
147
|
+
if (!same)
|
|
148
|
+
this.overflowed = next;
|
|
149
|
+
}
|
|
150
|
+
/** Roving tabindex: exactly one control is in the tab order. */
|
|
151
|
+
syncRoving() {
|
|
152
|
+
const nav = this.navigable();
|
|
153
|
+
const all = [...this.children().filter(c => !this.isDivider(c)), ...(this.triggerEl ? [this.triggerEl] : [])];
|
|
154
|
+
if (!this.activeEl || !nav.includes(this.activeEl))
|
|
155
|
+
this.activeEl = nav[0];
|
|
156
|
+
all.forEach(c => c.setAttribute('tabindex', c === this.activeEl ? '0' : '-1'));
|
|
157
|
+
}
|
|
158
|
+
componentDidRender() {
|
|
159
|
+
// The trigger/popover only exist after a render; re-sync tabindex for them.
|
|
160
|
+
this.syncRoving();
|
|
161
|
+
}
|
|
162
|
+
onFocusIn(ev) {
|
|
163
|
+
const path = ev.composedPath();
|
|
164
|
+
const hit = this.navigable().find(c => path.includes(c));
|
|
165
|
+
if (hit && hit !== this.activeEl) {
|
|
166
|
+
this.activeEl = hit;
|
|
167
|
+
this.syncRoving();
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
onKeyDown(ev) {
|
|
171
|
+
const vertical = this.orientation === 'vertical';
|
|
172
|
+
const rtl = getComputedStyle(this.el).direction === 'rtl';
|
|
173
|
+
const prevKey = vertical ? 'ArrowUp' : rtl ? 'ArrowRight' : 'ArrowLeft';
|
|
174
|
+
const nextKey = vertical ? 'ArrowDown' : rtl ? 'ArrowLeft' : 'ArrowRight';
|
|
175
|
+
if (![prevKey, nextKey, 'Home', 'End'].includes(ev.key))
|
|
176
|
+
return;
|
|
177
|
+
// An open overflow menu uses its own arrow keys.
|
|
178
|
+
if (this.popoverEl?.open)
|
|
179
|
+
return;
|
|
180
|
+
const nav = this.navigable();
|
|
181
|
+
const path = ev.composedPath();
|
|
182
|
+
const current = nav.findIndex(c => path.includes(c));
|
|
183
|
+
if (current === -1)
|
|
184
|
+
return;
|
|
185
|
+
// Controls that use the arrow keys themselves (text fields, selects) keep them.
|
|
186
|
+
const origin = path[0];
|
|
187
|
+
if (origin?.matches?.('input:not([type="button"]):not([type="checkbox"]):not([type="radio"]), textarea, select') && ev.key !== 'Home' && ev.key !== 'End')
|
|
188
|
+
return;
|
|
189
|
+
ev.preventDefault();
|
|
190
|
+
let next = current;
|
|
191
|
+
if (ev.key === nextKey)
|
|
192
|
+
next = (current + 1) % nav.length;
|
|
193
|
+
else if (ev.key === prevKey)
|
|
194
|
+
next = (current - 1 + nav.length) % nav.length;
|
|
195
|
+
else if (ev.key === 'Home')
|
|
196
|
+
next = 0;
|
|
197
|
+
else
|
|
198
|
+
next = nav.length - 1;
|
|
199
|
+
this.activeEl = nav[next];
|
|
200
|
+
this.syncRoving();
|
|
201
|
+
nav[next].focus();
|
|
202
|
+
}
|
|
203
|
+
activate(entry) {
|
|
204
|
+
if (this.popoverEl)
|
|
205
|
+
this.popoverEl.open = false;
|
|
206
|
+
const inner = entry.el.shadowRoot?.querySelector('button, a');
|
|
207
|
+
(inner ?? entry.el).click();
|
|
208
|
+
}
|
|
209
|
+
render() {
|
|
210
|
+
const showOverflow = this.overflowActive();
|
|
211
|
+
return (h("div", { key: '93257f14c9265acd97ba79c3f0fb194ed5d6a9c1', part: "container", role: "toolbar", "aria-label": this.label, "aria-orientation": this.orientation, class: `bs-toolbar bs-toolbar--${this.orientation}`, ref: el => (this.containerEl = el) }, h("div", { key: 'c7354cad6a03fb6f2fa844a37212612111619451', part: "left", class: "bs-toolbar__group bs-toolbar__group--left" }, h("slot", { key: 'f5c27b8a5e4402c1d2e29435b9037980cac485e7', name: "left", onSlotchange: this.syncItems })), h("div", { key: '22e411c3e07a31a5227fcc4acbb6ab86d7a26969', part: "right", class: "bs-toolbar__group bs-toolbar__group--right" }, h("slot", { key: 'c5233aab6977a57022bd98cb3f439808680997db', name: "right", onSlotchange: this.syncItems })), showOverflow && (h("bs-popover", { key: '0f2e2537a2a1ec1d5617bb149a57f4ecba5b4943', part: "overflow", class: "bs-toolbar__overflow", placement: "bottom-end", hidden: this.overflowed.length === 0, ref: el => (this.popoverEl = el) }, h("bs-icon-button", { key: '5fc3dd6a5e2022a1fb6e550fd24ac5c37eab4ba0', slot: "trigger", variant: "subtle", size: "md", ariaLabel: this.overflowLabel, title: this.overflowLabel, ref: el => (this.triggerEl = el) }, h(MoreIcon, { key: '860ac10129d78cf94554c8a21a98dd02aec17372' })), h("bs-menu", { key: '29900699fb44356d6d0e3ff2b8f2bebb3c14395f' }, this.overflowed.map(entry => (h("bs-menu-item", { onBsSelect: () => this.activate(entry) }, entry.label))))))));
|
|
212
|
+
}
|
|
213
|
+
static get is() { return "bs-toolbar"; }
|
|
214
|
+
static get encapsulation() { return "shadow"; }
|
|
215
|
+
static get originalStyleUrls() {
|
|
216
|
+
return {
|
|
217
|
+
"$": ["bs-toolbar.css"]
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
static get styleUrls() {
|
|
221
|
+
return {
|
|
222
|
+
"$": ["bs-toolbar.css"]
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
static get properties() {
|
|
226
|
+
return {
|
|
227
|
+
"label": {
|
|
228
|
+
"type": "string",
|
|
229
|
+
"mutable": false,
|
|
230
|
+
"complexType": {
|
|
231
|
+
"original": "string",
|
|
232
|
+
"resolved": "string",
|
|
233
|
+
"references": {}
|
|
234
|
+
},
|
|
235
|
+
"required": false,
|
|
236
|
+
"optional": true,
|
|
237
|
+
"docs": {
|
|
238
|
+
"tags": [],
|
|
239
|
+
"text": "Accessible name of the toolbar (`aria-label`). Required for a good experience, and essential\nwhen a page has more than one toolbar -- say what it controls (\"Text formatting\")."
|
|
240
|
+
},
|
|
241
|
+
"getter": false,
|
|
242
|
+
"setter": false,
|
|
243
|
+
"reflect": false,
|
|
244
|
+
"attribute": "label"
|
|
245
|
+
},
|
|
246
|
+
"orientation": {
|
|
247
|
+
"type": "string",
|
|
248
|
+
"mutable": false,
|
|
249
|
+
"complexType": {
|
|
250
|
+
"original": "BsToolbarOrientation",
|
|
251
|
+
"resolved": "\"horizontal\" | \"vertical\"",
|
|
252
|
+
"references": {
|
|
253
|
+
"BsToolbarOrientation": {
|
|
254
|
+
"location": "local",
|
|
255
|
+
"path": "/home/runner/work/eg-brandsync-storybook/eg-brandsync-storybook/packages/wc/src/components/bs-toolbar/bs-toolbar.tsx",
|
|
256
|
+
"id": "src/components/bs-toolbar/bs-toolbar.tsx::BsToolbarOrientation"
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
"required": false,
|
|
261
|
+
"optional": false,
|
|
262
|
+
"docs": {
|
|
263
|
+
"tags": [],
|
|
264
|
+
"text": "Direction of the bar. Sets `aria-orientation`, switches which arrow keys navigate, and sets the\norientation of slotted `bs-divider`s to the perpendicular one."
|
|
265
|
+
},
|
|
266
|
+
"getter": false,
|
|
267
|
+
"setter": false,
|
|
268
|
+
"reflect": true,
|
|
269
|
+
"attribute": "orientation",
|
|
270
|
+
"defaultValue": "'horizontal'"
|
|
271
|
+
},
|
|
272
|
+
"overflow": {
|
|
273
|
+
"type": "boolean",
|
|
274
|
+
"mutable": false,
|
|
275
|
+
"complexType": {
|
|
276
|
+
"original": "boolean",
|
|
277
|
+
"resolved": "boolean",
|
|
278
|
+
"references": {}
|
|
279
|
+
},
|
|
280
|
+
"required": false,
|
|
281
|
+
"optional": false,
|
|
282
|
+
"docs": {
|
|
283
|
+
"tags": [],
|
|
284
|
+
"text": "Collapse controls that do not fit into a \"more\" menu (see Overflow in the description).\nHorizontal toolbars only; ignored when `orientation=\"vertical\"`."
|
|
285
|
+
},
|
|
286
|
+
"getter": false,
|
|
287
|
+
"setter": false,
|
|
288
|
+
"reflect": true,
|
|
289
|
+
"attribute": "overflow",
|
|
290
|
+
"defaultValue": "false"
|
|
291
|
+
},
|
|
292
|
+
"overflowLabel": {
|
|
293
|
+
"type": "string",
|
|
294
|
+
"mutable": false,
|
|
295
|
+
"complexType": {
|
|
296
|
+
"original": "string",
|
|
297
|
+
"resolved": "string",
|
|
298
|
+
"references": {}
|
|
299
|
+
},
|
|
300
|
+
"required": false,
|
|
301
|
+
"optional": false,
|
|
302
|
+
"docs": {
|
|
303
|
+
"tags": [],
|
|
304
|
+
"text": "Accessible name and tooltip of the overflow button."
|
|
305
|
+
},
|
|
306
|
+
"getter": false,
|
|
307
|
+
"setter": false,
|
|
308
|
+
"reflect": false,
|
|
309
|
+
"attribute": "overflow-label",
|
|
310
|
+
"defaultValue": "'More actions'"
|
|
311
|
+
}
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
static get states() {
|
|
315
|
+
return {
|
|
316
|
+
"overflowed": {}
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
static get elementRef() { return "el"; }
|
|
320
|
+
static get watchers() {
|
|
321
|
+
return [{
|
|
322
|
+
"propName": "orientation",
|
|
323
|
+
"methodName": "onConfigChange"
|
|
324
|
+
}, {
|
|
325
|
+
"propName": "overflow",
|
|
326
|
+
"methodName": "onConfigChange"
|
|
327
|
+
}];
|
|
328
|
+
}
|
|
329
|
+
static get listeners() {
|
|
330
|
+
return [{
|
|
331
|
+
"name": "focusin",
|
|
332
|
+
"method": "onFocusIn",
|
|
333
|
+
"target": undefined,
|
|
334
|
+
"capture": false,
|
|
335
|
+
"passive": false
|
|
336
|
+
}, {
|
|
337
|
+
"name": "keydown",
|
|
338
|
+
"method": "onKeyDown",
|
|
339
|
+
"target": undefined,
|
|
340
|
+
"capture": false,
|
|
341
|
+
"passive": false
|
|
342
|
+
}];
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
const MoreIcon = () => (h("svg", { viewBox: "0 0 24 24", width: "24", height: "24", fill: "currentColor", "aria-hidden": "true" }, h("circle", { cx: "5", cy: "12", r: "1.75" }), h("circle", { cx: "12", cy: "12", r: "1.75" }), h("circle", { cx: "19", cy: "12", r: "1.75" })));
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { componentDescription, propDescription } from "../../stories-utils";
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/bs-toolbar',
|
|
5
|
+
parameters: { docs: { description: { component: componentDescription('bs-toolbar') } } },
|
|
6
|
+
render: args => html `
|
|
7
|
+
<bs-toolbar label=${args.label} orientation=${args.orientation} ?overflow=${args.overflow} overflow-label=${args.overflowLabel}>
|
|
8
|
+
<bs-button slot="left" variant="subtle" size="sm">Bold</bs-button>
|
|
9
|
+
<bs-button slot="left" variant="subtle" size="sm">Italic</bs-button>
|
|
10
|
+
<bs-button slot="left" variant="subtle" size="sm">Underline</bs-button>
|
|
11
|
+
<bs-divider slot="left"></bs-divider>
|
|
12
|
+
<bs-button slot="left" variant="subtle" size="sm">Link</bs-button>
|
|
13
|
+
<bs-button slot="left" variant="subtle" size="sm" disabled>Image</bs-button>
|
|
14
|
+
<bs-button slot="right" variant="outlined" size="sm">Preview</bs-button>
|
|
15
|
+
<bs-button slot="right" size="sm">Publish</bs-button>
|
|
16
|
+
</bs-toolbar>
|
|
17
|
+
`,
|
|
18
|
+
argTypes: {
|
|
19
|
+
label: { control: 'text', description: propDescription('bs-toolbar', 'label') },
|
|
20
|
+
orientation: { control: 'select', options: ['horizontal', 'vertical'], description: propDescription('bs-toolbar', 'orientation') },
|
|
21
|
+
overflow: { control: 'boolean', description: propDescription('bs-toolbar', 'overflow') },
|
|
22
|
+
overflowLabel: { control: 'text', description: propDescription('bs-toolbar', 'overflowLabel') },
|
|
23
|
+
},
|
|
24
|
+
args: { label: 'Text formatting', orientation: 'horizontal', overflow: false, overflowLabel: 'More actions' },
|
|
25
|
+
};
|
|
26
|
+
export default meta;
|
|
27
|
+
export const Default = {};
|
|
28
|
+
export const Vertical = {
|
|
29
|
+
args: { orientation: 'vertical' },
|
|
30
|
+
};
|
|
31
|
+
export const WithOverflow = {
|
|
32
|
+
name: 'With overflow',
|
|
33
|
+
args: { overflow: true },
|
|
34
|
+
render: args => html `
|
|
35
|
+
<p>Resize the frame: controls that do not fit move into the "more" menu.</p>
|
|
36
|
+
<div style="width: 360px; resize: horizontal; overflow: hidden; border: 1px dashed var(--bs-border-default); padding: 4px;">
|
|
37
|
+
<bs-toolbar label=${args.label} ?overflow=${args.overflow} overflow-label=${args.overflowLabel}>
|
|
38
|
+
<bs-button slot="left" variant="subtle" size="sm">Bold</bs-button>
|
|
39
|
+
<bs-button slot="left" variant="subtle" size="sm">Italic</bs-button>
|
|
40
|
+
<bs-button slot="left" variant="subtle" size="sm">Underline</bs-button>
|
|
41
|
+
<bs-divider slot="left"></bs-divider>
|
|
42
|
+
<bs-button slot="left" variant="subtle" size="sm">Link</bs-button>
|
|
43
|
+
<bs-button slot="left" variant="subtle" size="sm">Image</bs-button>
|
|
44
|
+
<bs-button slot="right" variant="subtle" size="sm">Preview</bs-button>
|
|
45
|
+
<bs-button slot="right" variant="subtle" size="sm">Share</bs-button>
|
|
46
|
+
</bs-toolbar>
|
|
47
|
+
</div>
|
|
48
|
+
`,
|
|
49
|
+
};
|
|
@@ -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: '7438b2bc709f2d62040070103f75a4dd0e726114', class: "bs-tooltip" }, h("span", { key: 'cd88ccd274ee0350e98ea445389fcd84ab7d02dc', part: "arrow", class: "bs-tooltip__arrow" }), h("div", { key: 'c3729dae5e62fd114a16f6ab4fa4022d85b7fc7b', part: "bubble", class: "bs-tooltip__bubble" }, h("slot", { key: '37b8b395d40fb5736780013d968be1ff5ce428fc' }))));
|
|
46
46
|
}
|
|
47
47
|
static get is() { return "bs-tooltip"; }
|
|
48
48
|
static get encapsulation() { return "shadow"; }
|
|
@@ -107,7 +107,7 @@ export class BsTooltipTrigger {
|
|
|
107
107
|
};
|
|
108
108
|
render() {
|
|
109
109
|
const show = (this.visible && !!this.text) || (this.closing && !!this.text);
|
|
110
|
-
return (h("div", { key: '
|
|
110
|
+
return (h("div", { key: '0c851c6c284a63da84ff11fd411764c705513245', 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: '3653d362eafdd977e8b9d250d1852195e7ba270f' }), h("div", { key: '64619b9d59eb00b3e453d6bb924ad982a7e2bec6', part: "tooltip", id: this.tooltipId, class: "bs-tooltip-trigger__tooltip", role: "tooltip", hidden: !show, ref: el => (this.tipEl = el) }, h("bs-tooltip", { key: 'a160e7016cf49323d410dc10930d6994e8f41c3f', ref: el => (this.bubbleEl = el) }, this.text))));
|
|
111
111
|
}
|
|
112
112
|
static get is() { return "bs-tooltip-trigger"; }
|
|
113
113
|
static get encapsulation() { return "shadow"; }
|
|
@@ -189,7 +189,7 @@ export class BsTree {
|
|
|
189
189
|
e.preventDefault();
|
|
190
190
|
}
|
|
191
191
|
render() {
|
|
192
|
-
return (h("div", { key: '
|
|
192
|
+
return (h("div", { key: '019cf7e2aaefd8b3f51c40ea0570fa9b89b5e649', part: "container", class: "bs-tree", role: "tree", "aria-label": this.ariaLabel }, h("slot", { key: 'ffe3e5e88c82965542974fa1433c43310d197c66' })));
|
|
193
193
|
}
|
|
194
194
|
static get is() { return "bs-tree"; }
|
|
195
195
|
static get encapsulation() { return "shadow"; }
|
|
@@ -93,11 +93,11 @@ export class BsTreeItem {
|
|
|
93
93
|
const isParent = this.hasChildren;
|
|
94
94
|
const managed = !!this.el.closest('bs-tree');
|
|
95
95
|
const showChildren = isParent && this.expanded;
|
|
96
|
-
return (h(Host, { key: '
|
|
96
|
+
return (h(Host, { key: '6f3c66ebc9521308d5d62c2bf99686aa9a6b81bf', role: "treeitem", "aria-level": String(this.level), "aria-expanded": isParent ? String(this.expanded) : null, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : null, ...(managed || this.disabled ? {} : { tabindex: '0' }) }, h("div", { key: '8e12e8462f1a44affa4497aea0e9a0479b803856', class: "bs-tree-item__row", style: { '--bs-tree-item-level': String(this.level) } }, h("div", { key: 'f741901613fc37b68543bdd9653fee29e4f796fc', part: "container", class: {
|
|
97
97
|
'bs-tree-item__container': true,
|
|
98
98
|
'bs-tree-item__container--selected': this.selected,
|
|
99
99
|
'bs-tree-item__container--disabled': this.disabled,
|
|
100
|
-
}, onClick: this.onRowClick }, !this.disabled && h("bs-ripple", { key: '
|
|
100
|
+
}, onClick: this.onRowClick }, !this.disabled && h("bs-ripple", { key: 'ecf50e0d6aa5301e1d20c35315472df2350c7096', part: "ripple" }), isParent && (h("span", { key: 'd74db0427a8aabf2af0ea5bd43eaefd7945e014f', part: "caret", class: { 'bs-tree-item__caret': true, 'bs-tree-item__caret--open': this.expanded }, "aria-hidden": "true", onClick: this.onCaretClick }, h(CaretRightIcon, { key: '2f4e12fe239b2527406204e0e3a7f41648dfa4d5' }))), h("span", { key: '4da3bb534d15625c414df6997b7dc7a290b66a29', class: "bs-tree-item__content" }, this.showIcon && (h("span", { key: '17031fb35aabc2e10d030c4434a4e6134d87a76a', part: "icon", class: "bs-tree-item__icon", "aria-hidden": "true" }, h("slot", { key: 'a8893678e82949127398b93cbfd0ab5e6bd83a2c', name: "icon" }, isParent ? h(FolderIcon, null) : h(FileIcon, null)))), h("span", { key: 'ff63bf09058f4e09bde9adcccdc57a0a6b9ffa37', part: "label", class: "bs-tree-item__label" }, h("slot", { key: '556b43ed85f0996034a0ca8b214cca6cc619ed26', name: "label" }, this.label))))), showChildren && (h("div", { key: 'd4d5ffa0b6b9697dd39cc89bb15a752647abb0b6', part: "group", class: "bs-tree-item__group", role: "group" }, h("slot", { key: 'eaec9a53f467af86637e040358bf75eff76dd139' })))));
|
|
101
101
|
}
|
|
102
102
|
static get is() { return "bs-tree-item"; }
|
|
103
103
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { html } from "lit";
|
|
2
2
|
import { componentDescription } from "../../stories-utils";
|
|
3
|
+
// A bs-tree-item is role="treeitem", which must sit inside a role="tree" -- a bare `div` stands in for
|
|
4
|
+
// bs-tree here so the item is shown on its own without the tree's roving-tabindex behaviour.
|
|
3
5
|
const meta = {
|
|
4
6
|
title: 'Components/bs-tree-item',
|
|
5
7
|
parameters: { docs: { description: { component: componentDescription('bs-tree-item') } } },
|
|
6
8
|
render: args => html `
|
|
7
|
-
<div style="width: 360px">
|
|
9
|
+
<div role="tree" aria-label="Example tree" style="width: 360px">
|
|
8
10
|
<bs-tree-item label=${args.label} ?expanded=${args.expanded} ?selected=${args.selected} ?disabled=${args.disabled} .showIcon=${args.showIcon}>
|
|
9
11
|
<bs-tree-item label="Child item"></bs-tree-item>
|
|
10
12
|
</bs-tree-item>
|
|
@@ -27,12 +29,12 @@ export const Disabled = { args: { disabled: true } };
|
|
|
27
29
|
export const WithoutIcon = { args: { showIcon: false } };
|
|
28
30
|
export const Child = {
|
|
29
31
|
render: () => html `
|
|
30
|
-
<div style="width: 360px"><bs-tree-item label="Leaf item"></bs-tree-item></div>
|
|
32
|
+
<div role="tree" aria-label="Example tree" style="width: 360px"><bs-tree-item label="Leaf item"></bs-tree-item></div>
|
|
31
33
|
`,
|
|
32
34
|
};
|
|
33
35
|
export const Levels = {
|
|
34
36
|
render: () => html `
|
|
35
|
-
<div style="width: 360px">
|
|
37
|
+
<div role="tree" aria-label="Example tree" style="width: 360px">
|
|
36
38
|
<bs-tree-item label="Level 1" expanded>
|
|
37
39
|
<bs-tree-item label="Level 2" expanded>
|
|
38
40
|
<bs-tree-item label="Level 3"></bs-tree-item>
|
|
@@ -43,7 +45,7 @@ export const Levels = {
|
|
|
43
45
|
};
|
|
44
46
|
export const CustomIcon = {
|
|
45
47
|
render: () => html `
|
|
46
|
-
<div style="width: 360px">
|
|
48
|
+
<div role="tree" aria-label="Example tree" style="width: 360px">
|
|
47
49
|
<bs-tree-item label="Starred">
|
|
48
50
|
<svg slot="icon" viewBox="0 0 24 24" fill="none" aria-hidden="true">
|
|
49
51
|
<path d="M12 3.75L14.6 9.1L20.5 9.9L16.2 14L17.3 19.9L12 17.1L6.7 19.9L7.8 14L3.5 9.9L9.4 9.1L12 3.75Z" stroke="currentColor" stroke-width="1.5" stroke-linejoin="round" />
|
|
@@ -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: 'b0baa810350e1d1ba94e195e5bb71568916648c1', class: "bs-whats-new-entry" }, (this.tag || this.date || this.unread) && (h("div", { key: 'f6aceea84fa2d8093fee7bf1f12e1a33d157773a', part: "meta", class: "bs-whats-new-entry__meta" }, this.tag && (h("bs-chip-informative", { key: '5177b66addbdb1bc0a8896f14bfde2d165bdc22d', part: "tag", size: "sm", color: this.tagColor }, this.tag)), this.date && (h("span", { key: 'bd9e2492cf9b78d808676211be29283a3853a5f1', part: "date", class: "bs-whats-new-entry__date" }, this.date)), this.unread && (h("span", { key: '2a99186b9ac53f76cf8e4e148971dd96bebc3339', part: "unread", class: "bs-whats-new-entry__unread" }, h("span", { key: '777d53e3498d5b9ccc33b196ddefda132ec8966d', class: "bs-whats-new-entry__sr-only" }, this.unreadLabel))))), h("div", { key: '685ca45b3fa9677a29c6cfceb2f142bbd10aeaaa', part: "image", class: { 'bs-whats-new-entry__image': true, 'bs-whats-new-entry__image--visible': this.hasImage } }, h("slot", { key: '39cb638562151a700da6221de805d277fc38a912', name: "image", onSlotchange: (ev) => (this.hasImage = ev.target.assignedNodes().length > 0) })), h("div", { key: '6d93a6efef38d79e711772bd674812721d6c4036', 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: '2178e908d195961d7af63f96483978a7727f2daa', part: "description", class: "bs-whats-new-entry__description" }, this.description)), this.actionLabel && (h("bs-button", { key: '1e63a9582f52578d4507b509b1cc31f85f29518f', part: "action", class: "bs-whats-new-entry__action", variant: "subtle", size: "sm", onClick: () => this.bsAction.emit() }, this.actionLabel, h("svg", { key: '5e81c66251de6ac1fadc34acfe38ba69296d1a80', 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: '4909c3ab738167ff9c4b43a4f3091c5ebc9708ee', d: "M5 12H19" }), h("path", { key: 'e5316c0212c03d7fb576d99e4e823cc23b820d65', d: "M13 6L19 12L13 18" }))))), this.divider && h("div", { key: '77fa0ba2722d89185b6084c50526083e5ce0ddcb', 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"; }
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
const cases = [
|
|
3
|
+
{ name: 'bs-accordion', mount: d => h("bs-accordion", { disabled: d }, "Body"), target: r => r.shadowRoot.querySelector('[part="container"]') },
|
|
4
|
+
{ name: 'bs-chip-informative', mount: d => h("bs-chip-informative", { disabled: d }, "Label"), target: r => r },
|
|
5
|
+
{ name: 'bs-shortcut-row', mount: d => h("bs-shortcut-row", { action: "Save", keys: ['s'], disabled: d }), target: r => r.shadowRoot.querySelector('[part="container"]') },
|
|
6
|
+
{ name: 'bs-search-item', mount: d => h("bs-search-item", { disabled: d }, "Result"), target: r => r.shadowRoot.querySelector('[part="container"]') },
|
|
7
|
+
{ name: 'bs-slider', mount: d => h("bs-slider", { disabled: d, ariaLabel: "Volume" }), target: r => r.shadowRoot.querySelector('.bs-slider') },
|
|
8
|
+
{ name: 'bs-stepper-step', mount: d => h("bs-stepper-step", { name: "Confirm", disabled: d }), target: r => r },
|
|
9
|
+
];
|
|
10
|
+
describe('aria-disabled on disabled components', () => {
|
|
11
|
+
cases.forEach(({ name, mount, target }) => {
|
|
12
|
+
it(`${name} sets aria-disabled only while disabled`, async () => {
|
|
13
|
+
const off = await render(mount(false));
|
|
14
|
+
expect(target(off.root)?.hasAttribute('aria-disabled')).toBe(false);
|
|
15
|
+
const on = await render(mount(true));
|
|
16
|
+
expect(target(on.root)).toEqualAttribute('aria-disabled', 'true');
|
|
17
|
+
});
|
|
18
|
+
});
|
|
19
|
+
});
|
|
@@ -314,4 +314,29 @@ describe('bs-navigation-drawer: small-screen overlay (<= 768px)', () => {
|
|
|
314
314
|
await new Promise(r => setTimeout(r, 350));
|
|
315
315
|
await runAxeCheck(root);
|
|
316
316
|
});
|
|
317
|
+
describe('item spacing', () => {
|
|
318
|
+
const rows = (els) => els.map(e => e.getBoundingClientRect());
|
|
319
|
+
it('rendered gap between top-level and nested rows is 12px (spacing-150)', async () => {
|
|
320
|
+
const { root, waitForChanges } = await render(h("bs-navigation-drawer", { heading: "Docs" }, h("bs-navigation-drawer-item", null, "One"), h("bs-navigation-drawer-item", { expandable: true, expanded: true }, "Two", h("bs-navigation-drawer-item", { slot: "children", nested: true }, "Child A"), h("bs-navigation-drawer-item", { slot: "children", nested: true }, "Child B")), h("bs-navigation-drawer-item", null, "Three")));
|
|
321
|
+
await waitForChanges();
|
|
322
|
+
const btn = (el) => el.shadowRoot.querySelector('[part="item"]');
|
|
323
|
+
const tops = Array.from(root.querySelectorAll(':scope > bs-navigation-drawer-item'));
|
|
324
|
+
const kids = Array.from(root.querySelectorAll('bs-navigation-drawer-item[slot="children"]'));
|
|
325
|
+
const [a, b, c] = rows(tops.map(btn));
|
|
326
|
+
const [k1, k2] = rows(kids.map(btn));
|
|
327
|
+
// item "Two": its row button, then children wrapper, then next top-level row
|
|
328
|
+
expect(Math.round(b.top - a.bottom)).toBe(12);
|
|
329
|
+
expect(Math.round(k2.top - k1.bottom)).toBe(12);
|
|
330
|
+
expect(Math.round(c.top - k2.bottom)).toBe(12);
|
|
331
|
+
expect(Math.round(k1.top - b.bottom)).toBe(12);
|
|
332
|
+
// section gap (logo/title/search/list) stays 24px
|
|
333
|
+
expect(getComputedStyle(root.shadowRoot.querySelector('nav')).rowGap).toBe('24px');
|
|
334
|
+
});
|
|
335
|
+
it('collapsed rows are also 12px apart', async () => {
|
|
336
|
+
const { root, waitForChanges } = await render(h("bs-navigation-drawer", { collapsed: true }, h("bs-navigation-drawer-item", { collapsed: true }, "One"), h("bs-navigation-drawer-item", { collapsed: true }, "Two")));
|
|
337
|
+
await waitForChanges();
|
|
338
|
+
const [a, b] = rows(Array.from(root.querySelectorAll('bs-navigation-drawer-item')).map(e => e.shadowRoot.querySelector('[part="item"]')));
|
|
339
|
+
expect(Math.round(b.top - a.bottom)).toBe(12);
|
|
340
|
+
});
|
|
341
|
+
});
|
|
317
342
|
});
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
* @prop --bs-navigation-drawer-collapse-icon: Collapse toggle icon color. Aliased to
|
|
39
39
|
* --bs-icon-default.
|
|
40
40
|
* @prop --bs-navigation-drawer-items-gap: Gap between top-level item rows in the items list.
|
|
41
|
-
* Aliased to --bs-spacing-
|
|
41
|
+
* Aliased to --bs-spacing-150 (12px).
|
|
42
42
|
* @prop --bs-navigation-drawer-collapsed-width: Width of the drawer when `collapsed`. 96px, per
|
|
43
43
|
* Figma node 8028:135374's own frame ("Type=Collapsed").
|
|
44
44
|
* @prop --bs-navigation-drawer-search-trigger-size: Width/height of the compact search-trigger
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
--bs-navigation-drawer-collapse-pressed: var(--bs-color-neutral-container-pressed);
|
|
82
82
|
--bs-navigation-drawer-collapse-icon: var(--bs-icon-default);
|
|
83
83
|
|
|
84
|
-
--bs-navigation-drawer-items-gap: var(--bs-spacing-
|
|
84
|
+
--bs-navigation-drawer-items-gap: var(--bs-spacing-150);
|
|
85
85
|
|
|
86
86
|
--bs-navigation-drawer-collapsed-width: 96px;
|
|
87
87
|
|
|
@@ -234,11 +234,11 @@ export class BsNavigationDrawer {
|
|
|
234
234
|
};
|
|
235
235
|
render() {
|
|
236
236
|
const classes = ['bs-navigation-drawer', this.mobile ? 'bs-navigation-drawer--overlay' : '', this.overlayOpen ? 'bs-navigation-drawer--open' : ''].filter(Boolean).join(' ');
|
|
237
|
-
return (h(Host, { key: '
|
|
237
|
+
return (h(Host, { key: 'f95176f9c590fde2d2d6a9dcade6b921510ce653', "data-overlay": this.mobile ? '' : undefined }, this.mobile && h("div", { key: '2d9bdef1463962ca2e2f1f5aee7024636904c5c7', part: "backdrop", class: "bs-navigation-drawer__backdrop", onClick: this.requestClose }), h("nav", { key: 'b527d2a521652628c5b4dfda7004be716dba3b2e', ref: el => (this.navRef = el), class: classes, "aria-label": this.heading,
|
|
238
238
|
// Stays a plain <nav> landmark in every state: ARIA does not allow role="dialog" on <nav>
|
|
239
239
|
// (axe: aria-allowed-role). Modality is behavioral -- focus is held inside, the page behind is
|
|
240
240
|
// scrimmed, Escape closes -- rather than announced through aria-modal.
|
|
241
|
-
tabIndex: this.mobile ? -1 : undefined }, this.showLogo && (h("div", { key: '
|
|
241
|
+
tabIndex: this.mobile ? -1 : undefined }, this.showLogo && (h("div", { key: '14dcefaf6fac6349b44dfd0cfeaf0f8b28d48014', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--full" }, h("bs-logo", { key: 'f76b740e5f9378c19f9ca933c0f7910075c473b3', variant: "full", background: this.logoBackground }))), this.showLogo && (h("div", { key: '1978885ce2cfca859118159384e093e70bc8c2d9', part: "logo", class: "bs-navigation-drawer__logo bs-navigation-drawer__logo--mark" }, h("bs-logo", { key: '5087b539af51e373703256b9913b4a074e2917f4', variant: "mark", background: this.logoBackground }))), h("div", { key: '31b5f080ce98b4ba96aad0f9ba9df7b31ecfd5b9', class: "bs-navigation-drawer__title-row" }, h("span", { key: 'bf2880d7b095a6ca46d38782b0f9de8aa7cedbb8', part: "title", class: "bs-navigation-drawer__title" }, this.heading), this.collapsible && (h("button", { key: 'cf6f2d98894c664e38d97563a616912e9d6fef3e', 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: 'c89adbac8d05ae9d3367683b960d8d35d0422e76' })))), h("div", { key: 'b018a42d16190db2bd6f95365fe36d38eb627300', part: "search", class: "bs-navigation-drawer__search" }, h("slot", { key: '1d217d7ad3c67d1b5e8a8655fd94bdbc77149b4f', name: "search" })), h("button", { key: '2b1bc189a5474dfc76e3d73e9c1623105002fd22', type: "button", part: "search-trigger", class: "bs-navigation-drawer__search-trigger", "aria-label": this.searchLabel, onClick: this.onSearchTriggerClick }, h(SearchIcon, { key: '634ab26e0bf8c38c9e4ba97305a94003112450b4' })), h("div", { key: 'df8559db4c5c25ff5d98b858759d142b1639fdc3', part: "items", class: "bs-navigation-drawer__items" }, h("slot", { key: 'b643a037ec21cc62d3ae60491028d26cb19e099c' })))));
|
|
242
242
|
}
|
|
243
243
|
static get is() { return "bs-navigation-drawer"; }
|
|
244
244
|
static get encapsulation() { return "shadow"; }
|