@brandsync/wc 1.16.0 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +20 -0
- package/REFERENCE.md +476 -0
- package/custom-elements.json +10039 -5497
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/{p-f271e1d2.entry.js → p-0082db6a.entry.js} +1 -1
- package/dist/brandsync-wc/p-07e0b444.entry.js +1 -0
- package/dist/brandsync-wc/{p-b67a0c8f.entry.js → p-08e0e704.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d165a742.entry.js → p-0a6f22fe.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8390a155.entry.js → p-14b4f4c4.entry.js} +1 -1
- package/dist/brandsync-wc/p-15f06226.entry.js +1 -0
- package/dist/brandsync-wc/{p-a5659499.entry.js → p-186e3b78.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c85fe37b.entry.js → p-1a47774e.entry.js} +1 -1
- package/dist/brandsync-wc/p-1a62e5b7.entry.js +1 -0
- package/dist/brandsync-wc/p-1aa0f9a3.entry.js +1 -0
- package/dist/brandsync-wc/{p-e9b6b30f.entry.js → p-1d8c2ec1.entry.js} +1 -1
- package/dist/brandsync-wc/p-246036cd.entry.js +1 -0
- package/dist/brandsync-wc/{p-45986ad4.entry.js → p-31ca98c3.entry.js} +1 -1
- package/dist/brandsync-wc/p-344695a8.entry.js +1 -0
- package/dist/brandsync-wc/{p-c25553bc.entry.js → p-345b5ef3.entry.js} +1 -1
- package/dist/brandsync-wc/{p-dcacee29.entry.js → p-34851d6d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6cb21302.entry.js → p-348fef11.entry.js} +1 -1
- package/dist/brandsync-wc/p-3e6f430a.entry.js +1 -0
- package/dist/brandsync-wc/p-43f8afda.entry.js +1 -0
- package/dist/brandsync-wc/{p-361aef36.entry.js → p-47929dca.entry.js} +1 -1
- package/dist/brandsync-wc/{p-cc4c8c1d.entry.js → p-47ce984f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d5a6098d.entry.js → p-4d4997af.entry.js} +1 -1
- package/dist/brandsync-wc/p-4ff649f1.entry.js +1 -0
- package/dist/brandsync-wc/p-50c116eb.entry.js +1 -0
- package/dist/brandsync-wc/{p-f3eca1ce.entry.js → p-50f60ed6.entry.js} +1 -1
- package/dist/brandsync-wc/p-52d61070.entry.js +1 -0
- package/dist/brandsync-wc/{p-2e285364.entry.js → p-55d336da.entry.js} +1 -1
- package/dist/brandsync-wc/{p-38fe9d07.entry.js → p-55d97d1d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9beeb30c.entry.js → p-56a45582.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e9afb553.entry.js → p-58179e15.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1ca8b01e.entry.js → p-5868793d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-38ac9aad.entry.js → p-5ac75555.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7b3518b8.entry.js → p-5cd1abc7.entry.js} +1 -1
- package/dist/brandsync-wc/{p-dfad8c0a.entry.js → p-5e36d46f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-54f9529f.entry.js → p-64f8eb7e.entry.js} +1 -1
- package/dist/brandsync-wc/p-6b019a88.entry.js +1 -0
- package/dist/brandsync-wc/{p-f0be9125.entry.js → p-6c987bc9.entry.js} +1 -1
- package/dist/brandsync-wc/{p-5ed1f45e.entry.js → p-757cd066.entry.js} +1 -1
- package/dist/brandsync-wc/{p-47b7fe76.entry.js → p-78114ea3.entry.js} +1 -1
- package/dist/brandsync-wc/p-7c29678d.entry.js +1 -0
- package/dist/brandsync-wc/{p-9d12b1fb.entry.js → p-7cfb1be6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-4ed00786.entry.js → p-841a80b4.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a56bc608.entry.js → p-87a10ee1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c05ee501.entry.js → p-8962abe0.entry.js} +1 -1
- package/dist/brandsync-wc/p-8e46a262.entry.js +1 -0
- package/dist/brandsync-wc/p-8f82ea7e.entry.js +1 -0
- package/dist/brandsync-wc/p-95c7f350.entry.js +1 -0
- package/dist/brandsync-wc/{p-3488c4fc.entry.js → p-9787bc0f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0159f0da.entry.js → p-998b95d3.entry.js} +1 -1
- package/dist/brandsync-wc/p-9bd739e5.entry.js +1 -0
- package/dist/brandsync-wc/p-a424a709.entry.js +1 -0
- package/dist/brandsync-wc/{p-b6081bba.entry.js → p-a51355d9.entry.js} +1 -1
- package/dist/brandsync-wc/{p-4ca40386.entry.js → p-a8c2855c.entry.js} +1 -1
- package/dist/brandsync-wc/{p-b663ee67.entry.js → p-a9d0a730.entry.js} +1 -1
- package/dist/brandsync-wc/{p-15f4c343.entry.js → p-ae207fd5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8048d033.entry.js → p-b1edc9b7.entry.js} +1 -1
- package/dist/brandsync-wc/{p-949a4270.entry.js → p-b759ae72.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7dc59e0b.entry.js → p-b7bbc52f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-912629c6.entry.js → p-bd901b06.entry.js} +1 -1
- package/dist/brandsync-wc/p-be7272ce.entry.js +1 -0
- package/dist/brandsync-wc/{p-401b3d3d.entry.js → p-bfff7cbb.entry.js} +1 -1
- package/dist/brandsync-wc/{p-298158da.entry.js → p-c020ffdf.entry.js} +1 -1
- package/dist/brandsync-wc/{p-abfa43f5.entry.js → p-c02ed03d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-baa3d37a.entry.js → p-cb002195.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ffc07eb5.entry.js → p-d3fe8cea.entry.js} +1 -1
- package/dist/brandsync-wc/{p-42b79d95.entry.js → p-d42a26c1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e72dd05e.entry.js → p-d985e569.entry.js} +1 -1
- package/dist/brandsync-wc/{p-cf287ff1.entry.js → p-e2491db8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-36fe783a.entry.js → p-e32a6df1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-65fa1b21.entry.js → p-e3e15670.entry.js} +1 -1
- package/dist/brandsync-wc/{p-67629178.entry.js → p-e4e9c961.entry.js} +1 -1
- package/dist/brandsync-wc/{p-521d0fc2.entry.js → p-e99c0937.entry.js} +1 -1
- package/dist/brandsync-wc/{p-89ea6366.entry.js → p-e9adfa44.entry.js} +1 -1
- package/dist/brandsync-wc/{p-76748795.entry.js → p-eb3bacb9.entry.js} +1 -1
- package/dist/brandsync-wc/p-ee00d3a5.entry.js +1 -0
- package/dist/brandsync-wc/{p-ed71eb02.entry.js → p-ee63423c.entry.js} +1 -1
- package/dist/brandsync-wc/p-f4628861.entry.js +1 -0
- package/dist/brandsync-wc/{p-d81c4f58.entry.js → p-f47b8673.entry.js} +1 -1
- package/dist/brandsync-wc/{p-b9c9bcba.entry.js → p-f6caa623.entry.js} +1 -1
- package/dist/brandsync-wc/p-f86b58bf.entry.js +1 -0
- package/dist/brandsync-wc/{p-00be9a64.entry.js → p-fa91106e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-538d5b58.entry.js → p-fb84002e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a12691d8.entry.js → p-fbc219c6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f3cc961b.entry.js → p-fd78ff22.entry.js} +1 -1
- package/dist/cjs/brandsync-wc.cjs.js +1 -1
- package/dist/cjs/bs-accordion-group.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
- package/dist/cjs/bs-app-recent-item_3.cjs.entry.js +133 -0
- package/dist/cjs/bs-app-shell.cjs.entry.js +1 -1
- package/dist/cjs/bs-app-switcher.cjs.entry.js +208 -0
- package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
- package/dist/cjs/bs-attachment.cjs.entry.js +1 -1
- package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
- package/dist/cjs/bs-badge.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/bs-button.cjs.entry.js +1 -1
- package/dist/cjs/bs-card.cjs.entry.js +1 -1
- package/dist/cjs/bs-carousel.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
- package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/bs-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-filter.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-informative.cjs.entry.js +1 -1
- package/dist/cjs/bs-chip-input.cjs.entry.js +1 -1
- package/dist/cjs/bs-citation-preview.cjs.entry.js +1 -1
- package/dist/cjs/bs-command-palette.cjs.entry.js +374 -0
- package/dist/cjs/bs-compact-menu-block_2.cjs.entry.js +46 -0
- package/dist/cjs/bs-company-switcher.cjs.entry.js +211 -0
- package/dist/cjs/bs-composer-status-banner.cjs.entry.js +1 -1
- package/dist/cjs/bs-composer.cjs.entry.js +1 -1
- package/dist/cjs/bs-container.cjs.entry.js +1 -1
- package/dist/cjs/bs-data-table.cjs.entry.js +2 -2
- package/dist/cjs/bs-datepicker.cjs.entry.js +1 -1
- package/dist/cjs/bs-divider.cjs.entry.js +1 -1
- package/dist/cjs/bs-empty-state.cjs.entry.js +47 -0
- package/dist/cjs/bs-error-page.cjs.entry.js +1 -1
- package/dist/cjs/bs-file-upload-item.cjs.entry.js +1 -1
- package/dist/cjs/bs-file-upload.cjs.entry.js +1 -1
- package/dist/cjs/bs-global-search.cjs.entry.js +326 -0
- package/dist/cjs/bs-grid.cjs.entry.js +2 -2
- package/dist/cjs/bs-icon-button.cjs.entry.js +8 -1
- package/dist/cjs/bs-icon-tile.cjs.entry.js +10 -2
- package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
- package/dist/cjs/bs-input_3.cjs.entry.js +4 -4
- package/dist/cjs/bs-key-caps.cjs.entry.js +39 -0
- package/dist/cjs/bs-key.cjs.entry.js +28 -0
- package/dist/cjs/bs-keyboard-shortcuts.cjs.entry.js +112 -0
- package/dist/cjs/bs-list-item_2.cjs.entry.js +215 -0
- package/dist/cjs/bs-list.cjs.entry.js +1 -1
- package/dist/cjs/bs-mega-menu.cjs.entry.js +70 -0
- package/dist/cjs/bs-message-list.cjs.entry.js +1 -1
- package/dist/cjs/bs-message.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +2 -2
- package/dist/cjs/bs-navigation-header.cjs.entry.js +5 -2
- package/dist/cjs/bs-page-header.cjs.entry.js +66 -0
- package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
- package/dist/cjs/bs-progress-linear.cjs.entry.js +2 -2
- package/dist/cjs/bs-progress.cjs.entry.js +2 -2
- package/dist/cjs/bs-qr-code.cjs.entry.js +1 -1
- package/dist/cjs/bs-radio.cjs.entry.js +1 -1
- package/dist/cjs/bs-search-item.cjs.entry.js +47 -0
- package/dist/cjs/bs-session-timeout.cjs.entry.js +1 -1
- package/dist/cjs/bs-shortcut-row.cjs.entry.js +27 -0
- package/dist/cjs/bs-slider.cjs.entry.js +1 -1
- package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
- package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
- package/dist/cjs/bs-spinner.cjs.entry.js +1 -1
- package/dist/cjs/bs-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/bs-stack.cjs.entry.js +1 -1
- package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
- package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
- package/dist/cjs/bs-switch.cjs.entry.js +1 -1
- package/dist/cjs/bs-tab_3.cjs.entry.js +3 -3
- package/dist/cjs/bs-timepicker.cjs.entry.js +2 -2
- package/dist/cjs/bs-toast.cjs.entry.js +1 -1
- package/dist/cjs/bs-tooltip-trigger.cjs.entry.js +1 -1
- package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/bs-tree-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-tree.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +17 -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.cmp.test.js +52 -0
- package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.css +111 -0
- package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.js +184 -0
- package/dist/collection/components/bs-app-recent-item/bs-app-recent-item.stories.js +28 -0
- package/dist/collection/components/bs-app-shell/bs-app-shell.js +1 -1
- package/dist/collection/components/bs-app-switcher/bs-app-switcher.cmp.test.js +179 -0
- package/dist/collection/components/bs-app-switcher/bs-app-switcher.css +173 -0
- package/dist/collection/components/bs-app-switcher/bs-app-switcher.js +902 -0
- package/dist/collection/components/bs-app-switcher/bs-app-switcher.stories.js +91 -0
- package/dist/collection/components/bs-app-tile/bs-app-tile.cmp.test.js +58 -0
- package/dist/collection/components/bs-app-tile/bs-app-tile.css +104 -0
- package/dist/collection/components/bs-app-tile/bs-app-tile.js +190 -0
- package/dist/collection/components/bs-app-tile/bs-app-tile.stories.js +43 -0
- package/dist/collection/components/bs-attachment/bs-attachment.js +1 -1
- package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
- package/dist/collection/components/bs-avatar/bs-avatar.css +3 -3
- package/dist/collection/components/bs-badge/bs-badge.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
- package/dist/collection/components/bs-button/bs-button/bs-button.js +1 -1
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +13 -0
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +27 -1
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
- package/dist/collection/components/bs-card/bs-card.js +1 -1
- package/dist/collection/components/bs-carousel/bs-carousel.js +1 -1
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
- package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
- package/dist/collection/components/bs-citation-preview/bs-citation-preview.js +1 -1
- package/dist/collection/components/bs-command-palette/bs-command-palette.cmp.test.js +207 -0
- package/dist/collection/components/bs-command-palette/bs-command-palette.css +214 -0
- package/dist/collection/components/bs-command-palette/bs-command-palette.js +1114 -0
- package/dist/collection/components/bs-command-palette/bs-command-palette.stories.js +194 -0
- package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.cmp.test.js +32 -0
- package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.css +43 -0
- package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.js +67 -0
- package/dist/collection/components/bs-compact-menu-block/bs-compact-menu-block.stories.js +25 -0
- package/dist/collection/components/bs-company-switcher/bs-company-switcher.cmp.test.js +171 -0
- package/dist/collection/components/bs-company-switcher/bs-company-switcher.css +196 -0
- package/dist/collection/components/bs-company-switcher/bs-company-switcher.js +720 -0
- package/dist/collection/components/bs-company-switcher/bs-company-switcher.stories.js +78 -0
- package/dist/collection/components/bs-composer/bs-composer.js +1 -1
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
- package/dist/collection/components/bs-container/bs-container.js +1 -1
- package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
- package/dist/collection/components/bs-datepicker/bs-datepicker.js +1 -1
- package/dist/collection/components/bs-divider/bs-divider.js +1 -1
- package/dist/collection/components/bs-empty-state/bs-empty-state.cmp.test.js +102 -0
- package/dist/collection/components/bs-empty-state/bs-empty-state.css +45 -0
- package/dist/collection/components/bs-empty-state/bs-empty-state.js +175 -0
- package/dist/collection/components/bs-empty-state/bs-empty-state.stories.js +52 -0
- 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.cmp.test.js +491 -0
- package/dist/collection/components/bs-global-search/bs-global-search.css +115 -0
- package/dist/collection/components/bs-global-search/bs-global-search.js +1024 -0
- package/dist/collection/components/bs-global-search/bs-global-search.stories.js +146 -0
- package/dist/collection/components/bs-grid/bs-grid.js +2 -2
- package/dist/collection/components/bs-icon-tile/bs-icon-tile.js +11 -2
- package/dist/collection/components/bs-input/bs-input.js +2 -2
- package/dist/collection/components/bs-key/bs-key.cmp.test.js +59 -0
- package/dist/collection/components/bs-key/bs-key.css +58 -0
- package/dist/collection/components/bs-key/bs-key.js +84 -0
- package/dist/collection/components/bs-key/bs-key.stories.js +19 -0
- package/dist/collection/components/bs-key-caps/bs-key-caps.cmp.test.js +60 -0
- package/dist/collection/components/bs-key-caps/bs-key-caps.css +28 -0
- package/dist/collection/components/bs-key-caps/bs-key-caps.js +120 -0
- package/dist/collection/components/bs-key-caps/bs-key-caps.stories.js +29 -0
- package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.cmp.test.js +194 -0
- package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.css +138 -0
- package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.js +485 -0
- package/dist/collection/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.stories.js +111 -0
- package/dist/collection/components/bs-list/bs-list.js +1 -1
- package/dist/collection/components/bs-list-item/bs-list-item.js +1 -1
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.cmp.test.js +131 -0
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.css +139 -0
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.js +358 -0
- package/dist/collection/components/bs-mega-menu/bs-mega-menu.stories.js +188 -0
- package/dist/collection/components/bs-menu/bs-menu.js +1 -1
- package/dist/collection/components/bs-menu-block/bs-menu-block.cmp.test.js +44 -0
- package/dist/collection/components/bs-menu-block/bs-menu-block.css +106 -0
- package/dist/collection/components/bs-menu-block/bs-menu-block.js +147 -0
- package/dist/collection/components/bs-menu-block/bs-menu-block.stories.js +36 -0
- package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
- package/dist/collection/components/bs-message/bs-message.js +1 -1
- package/dist/collection/components/bs-message-list/bs-message-list.js +1 -1
- package/dist/collection/components/bs-page-header/bs-page-header.cmp.test.js +206 -0
- package/dist/collection/components/bs-page-header/bs-page-header.css +252 -0
- package/dist/collection/components/bs-page-header/bs-page-header.js +351 -0
- package/dist/collection/components/bs-page-header/bs-page-header.stories.js +177 -0
- package/dist/collection/components/bs-pagination/bs-pagination.js +1 -1
- package/dist/collection/components/bs-popover/bs-popover.js +1 -1
- package/dist/collection/components/bs-progress/bs-progress.js +2 -2
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
- package/dist/collection/components/bs-qr-code/bs-qr-code.js +1 -1
- package/dist/collection/components/bs-radio/bs-radio.js +1 -1
- package/dist/collection/components/bs-search-item/bs-search-item.cmp.test.js +147 -0
- package/dist/collection/components/bs-search-item/bs-search-item.css +112 -0
- package/dist/collection/components/bs-search-item/bs-search-item.js +222 -0
- package/dist/collection/components/bs-search-item/bs-search-item.stories.js +31 -0
- package/dist/collection/components/bs-session-timeout/bs-session-timeout.js +1 -1
- package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.cmp.test.js +60 -0
- package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.css +42 -0
- package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.js +154 -0
- package/dist/collection/components/bs-shortcut-row/bs-shortcut-row.stories.js +24 -0
- package/dist/collection/components/bs-skeleton/bs-skeleton.js +1 -1
- package/dist/collection/components/bs-slider/bs-slider.js +1 -1
- package/dist/collection/components/bs-snackbar/bs-snackbar.js +1 -1
- package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
- package/dist/collection/components/bs-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-stepper/bs-stepper/bs-stepper.js +1 -1
- package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
- package/dist/collection/components/bs-switch/bs-switch.js +1 -1
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
- package/dist/collection/components/bs-timepicker/bs-timepicker.js +2 -2
- package/dist/collection/components/bs-toast/bs-toast.js +1 -1
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
- package/dist/collection/components/bs-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-whats-new-entry/bs-whats-new-entry.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +2 -2
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +79 -0
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +46 -0
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +10 -1
- package/dist/components/bs-accordion-group.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.d.ts +11 -0
- package/dist/components/bs-app-recent-item.js +1 -0
- package/dist/components/bs-app-shell.js +1 -1
- package/dist/components/bs-app-switcher.d.ts +11 -0
- package/dist/components/bs-app-switcher.js +1 -0
- package/dist/components/bs-app-tile.d.ts +11 -0
- package/dist/components/bs-app-tile.js +1 -0
- package/dist/components/bs-attachment-list.js +1 -1
- package/dist/components/bs-attachment.js +1 -1
- package/dist/components/bs-avatar.js +1 -1
- package/dist/components/bs-badge.js +1 -1
- package/dist/components/bs-breadcrumb-overflow.js +1 -1
- package/dist/components/bs-breadcrumb.js +1 -1
- package/dist/components/bs-breadcrumbs.js +1 -1
- package/dist/components/bs-button-skeleton.js +1 -1
- package/dist/components/bs-button.js +1 -1
- package/dist/components/bs-card.js +1 -1
- package/dist/components/bs-carousel.js +1 -1
- package/dist/components/bs-chatbot-feedback.js +1 -1
- package/dist/components/bs-chatbot-header.js +1 -1
- package/dist/components/bs-chatbot-response-action.js +1 -1
- package/dist/components/bs-chatbot-sources-drawer.js +1 -1
- package/dist/components/bs-chatbot-suggestion-button.js +1 -1
- package/dist/components/bs-checkbox-skeleton.js +1 -1
- package/dist/components/bs-checkbox.js +1 -1
- package/dist/components/bs-chip-filter.js +1 -1
- package/dist/components/bs-chip-informative.js +1 -1
- package/dist/components/bs-chip-input.js +1 -1
- package/dist/components/bs-citation-preview.js +1 -1
- package/dist/components/bs-command-palette.d.ts +11 -0
- package/dist/components/bs-command-palette.js +1 -0
- package/dist/components/bs-compact-menu-block.d.ts +11 -0
- package/dist/components/bs-compact-menu-block.js +1 -0
- package/dist/components/bs-company-switcher.d.ts +11 -0
- package/dist/components/bs-company-switcher.js +1 -0
- package/dist/components/bs-composer-status-banner.js +1 -1
- package/dist/components/bs-composer.js +1 -1
- package/dist/components/bs-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-dialog.js +1 -1
- package/dist/components/bs-divider.js +1 -1
- package/dist/components/bs-empty-state.d.ts +11 -0
- package/dist/components/bs-empty-state.js +1 -0
- 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.d.ts +11 -0
- package/dist/components/bs-global-search.js +1 -0
- package/dist/components/bs-grid.js +1 -1
- package/dist/components/bs-icon-button.js +1 -1
- package/dist/components/bs-icon-tile.js +1 -1
- package/dist/components/bs-inline-tab.js +1 -1
- package/dist/components/bs-input.js +1 -1
- package/dist/components/bs-key-caps.d.ts +11 -0
- package/dist/components/bs-key-caps.js +1 -0
- package/dist/components/bs-key.d.ts +11 -0
- package/dist/components/bs-key.js +1 -0
- package/dist/components/bs-keyboard-shortcuts.d.ts +11 -0
- package/dist/components/bs-keyboard-shortcuts.js +1 -0
- package/dist/components/bs-list-item.js +1 -1
- package/dist/components/bs-list.js +1 -1
- package/dist/components/bs-mega-menu.d.ts +11 -0
- package/dist/components/bs-mega-menu.js +1 -0
- package/dist/components/bs-menu-block.d.ts +11 -0
- package/dist/components/bs-menu-block.js +1 -0
- 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.d.ts +11 -0
- package/dist/components/bs-page-header.js +1 -0
- package/dist/components/bs-pagination.js +1 -1
- package/dist/components/bs-popover.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.js +1 -1
- package/dist/components/bs-search-item.d.ts +11 -0
- package/dist/components/bs-search-item.js +1 -0
- package/dist/components/bs-session-timeout.js +1 -1
- package/dist/components/bs-shortcut-row.d.ts +11 -0
- package/dist/components/bs-shortcut-row.js +1 -0
- package/dist/components/bs-side-panel.js +1 -1
- package/dist/components/bs-skeleton.js +1 -1
- package/dist/components/bs-slider.js +1 -1
- package/dist/components/bs-snackbar.js +1 -1
- package/dist/components/bs-source-link.js +1 -1
- package/dist/components/bs-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-stepper-step.js +1 -1
- package/dist/components/bs-stepper.js +1 -1
- package/dist/components/bs-switch.js +1 -1
- package/dist/components/bs-tab.js +1 -1
- package/dist/components/bs-tabs.js +1 -1
- package/dist/components/bs-timepicker.js +1 -1
- package/dist/components/bs-toast.js +1 -1
- package/dist/components/bs-tooltip-trigger.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/p-B6KgEbdM.js +1 -0
- package/dist/components/{p-CQjSDdH7.js → p-B8kw9EOx.js} +1 -1
- package/dist/components/p-BLPNwyiT.js +1 -0
- package/dist/components/{p-J9cxcDhY.js → p-BP1l6Q3Z.js} +1 -1
- package/dist/components/p-BS7ySxJZ.js +1 -0
- package/dist/components/{p-DYuzgzxI.js → p-BmdSbmFg.js} +1 -1
- package/dist/components/{p-CRtvJlh8.js → p-C1owRphU.js} +1 -1
- package/dist/components/{p-BsbtyRJV.js → p-C2rRVRIu.js} +1 -1
- package/dist/components/p-C3erqJFy.js +1 -0
- package/dist/components/p-Cd7p-48Q.js +1 -0
- package/dist/components/{p-CK7fiES5.js → p-CmlzHRkn.js} +1 -1
- package/dist/components/p-Co36mHEU.js +1 -0
- package/dist/components/p-D4_8H0vn.js +1 -0
- package/dist/components/{p-D0KM1R2i.js → p-D9dDFyPB.js} +1 -1
- package/dist/components/{p-DvNED6Lb.js → p-DBvhi__l.js} +1 -1
- package/dist/components/{p-kDJsWjTN.js → p-DFd4pP4i.js} +1 -1
- package/dist/components/{p-BdkE4auv.js → p-DVjuZdjF.js} +1 -1
- package/dist/components/{p-Bb1-2M8K.js → p-DW0Dw2LS.js} +1 -1
- package/dist/components/p-DcdFuKG9.js +1 -0
- package/dist/components/p-Deq0LzGO.js +1 -0
- package/dist/components/{p-BaJEv6rL.js → p-DgY5pxXd.js} +1 -1
- package/dist/components/{p-ByLUtXxO.js → p-DhhXayh6.js} +1 -1
- package/dist/components/p-DiORQQg3.js +1 -0
- package/dist/components/p-Dl0FedE5.js +1 -0
- package/dist/components/p-DsBToIYE.js +1 -0
- package/dist/components/{p-DFKc3lLA.js → p-DtbeCgXo.js} +1 -1
- package/dist/components/{p-C7RZ6qZC.js → p-DzvXbBvk.js} +1 -1
- package/dist/components/p-I1_Q3HQu.js +1 -0
- package/dist/components/{p-C93ymWm7.js → p-TXAiCnSZ.js} +1 -1
- package/dist/components/p-c-g3-oVu.js +1 -0
- package/dist/components/p-erdtytMq.js +1 -0
- package/dist/components/{p-B128GX8H.js → p-qXdgl7VG.js} +1 -1
- package/dist/esm/brandsync-wc.js +1 -1
- package/dist/esm/bs-accordion-group.entry.js +1 -1
- package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
- package/dist/esm/bs-ai-greeting.entry.js +1 -1
- package/dist/esm/bs-ai-thinking.entry.js +1 -1
- package/dist/esm/bs-app-recent-item_3.entry.js +129 -0
- package/dist/esm/bs-app-shell.entry.js +1 -1
- package/dist/esm/bs-app-switcher.entry.js +206 -0
- package/dist/esm/bs-attachment-list.entry.js +1 -1
- package/dist/esm/bs-attachment.entry.js +1 -1
- package/dist/esm/bs-avatar.entry.js +1 -1
- package/dist/esm/bs-badge.entry.js +1 -1
- package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
- package/dist/esm/bs-breadcrumb.entry.js +1 -1
- package/dist/esm/bs-breadcrumbs.entry.js +1 -1
- package/dist/esm/bs-button-skeleton.entry.js +1 -1
- package/dist/esm/bs-button.entry.js +1 -1
- package/dist/esm/bs-card.entry.js +1 -1
- package/dist/esm/bs-carousel.entry.js +1 -1
- package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
- package/dist/esm/bs-chatbot-header.entry.js +1 -1
- package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
- package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
- package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
- package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
- package/dist/esm/bs-checkbox.entry.js +1 -1
- package/dist/esm/bs-chip-filter.entry.js +1 -1
- package/dist/esm/bs-chip-informative.entry.js +1 -1
- package/dist/esm/bs-chip-input.entry.js +1 -1
- package/dist/esm/bs-citation-preview.entry.js +1 -1
- package/dist/esm/bs-command-palette.entry.js +372 -0
- package/dist/esm/bs-compact-menu-block_2.entry.js +43 -0
- package/dist/esm/bs-company-switcher.entry.js +209 -0
- package/dist/esm/bs-composer-status-banner.entry.js +1 -1
- package/dist/esm/bs-composer.entry.js +1 -1
- package/dist/esm/bs-container.entry.js +1 -1
- package/dist/esm/bs-data-table.entry.js +2 -2
- package/dist/esm/bs-datepicker.entry.js +1 -1
- package/dist/esm/bs-divider.entry.js +1 -1
- package/dist/esm/bs-empty-state.entry.js +45 -0
- package/dist/esm/bs-error-page.entry.js +1 -1
- package/dist/esm/bs-file-upload-item.entry.js +1 -1
- package/dist/esm/bs-file-upload.entry.js +1 -1
- package/dist/esm/bs-global-search.entry.js +324 -0
- package/dist/esm/bs-grid.entry.js +2 -2
- package/dist/esm/bs-icon-button.entry.js +8 -1
- package/dist/esm/bs-icon-tile.entry.js +11 -3
- package/dist/esm/bs-inline-tab.entry.js +1 -1
- package/dist/esm/bs-input_3.entry.js +4 -4
- package/dist/esm/bs-key-caps.entry.js +37 -0
- package/dist/esm/bs-key.entry.js +26 -0
- package/dist/esm/bs-keyboard-shortcuts.entry.js +110 -0
- package/dist/esm/bs-list-item_2.entry.js +212 -0
- package/dist/esm/bs-list.entry.js +1 -1
- package/dist/esm/bs-mega-menu.entry.js +68 -0
- package/dist/esm/bs-message-list.entry.js +1 -1
- package/dist/esm/bs-message.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer.entry.js +2 -2
- package/dist/esm/bs-navigation-header.entry.js +5 -2
- package/dist/esm/bs-page-header.entry.js +64 -0
- package/dist/esm/bs-pagination.entry.js +1 -1
- package/dist/esm/bs-progress-linear.entry.js +2 -2
- package/dist/esm/bs-progress.entry.js +2 -2
- package/dist/esm/bs-qr-code.entry.js +1 -1
- package/dist/esm/bs-radio.entry.js +1 -1
- package/dist/esm/bs-search-item.entry.js +45 -0
- package/dist/esm/bs-session-timeout.entry.js +1 -1
- package/dist/esm/bs-shortcut-row.entry.js +25 -0
- package/dist/esm/bs-slider.entry.js +1 -1
- package/dist/esm/bs-snackbar.entry.js +1 -1
- package/dist/esm/bs-source-link.entry.js +2 -2
- package/dist/esm/bs-spinner.entry.js +1 -1
- package/dist/esm/bs-split-pane.entry.js +1 -1
- package/dist/esm/bs-stack.entry.js +1 -1
- package/dist/esm/bs-stepper-step.entry.js +1 -1
- package/dist/esm/bs-stepper.entry.js +1 -1
- package/dist/esm/bs-switch.entry.js +1 -1
- package/dist/esm/bs-tab_3.entry.js +3 -3
- package/dist/esm/bs-timepicker.entry.js +2 -2
- package/dist/esm/bs-toast.entry.js +1 -1
- package/dist/esm/bs-tooltip-trigger.entry.js +1 -1
- package/dist/esm/bs-tooltip.entry.js +1 -1
- package/dist/esm/bs-tree-item.entry.js +2 -2
- package/dist/esm/bs-tree.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/bs-app-recent-item/bs-app-recent-item.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-app-recent-item/bs-app-recent-item.d.ts +51 -0
- package/dist/types/components/bs-app-recent-item/bs-app-recent-item.stories.d.ts +15 -0
- package/dist/types/components/bs-app-switcher/bs-app-switcher.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-app-switcher/bs-app-switcher.d.ts +159 -0
- package/dist/types/components/bs-app-switcher/bs-app-switcher.stories.d.ts +34 -0
- package/dist/types/components/bs-app-tile/bs-app-tile.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-app-tile/bs-app-tile.d.ts +51 -0
- package/dist/types/components/bs-app-tile/bs-app-tile.stories.d.ts +18 -0
- package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +7 -0
- package/dist/types/components/bs-command-palette/bs-command-palette.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-command-palette/bs-command-palette.d.ts +172 -0
- package/dist/types/components/bs-command-palette/bs-command-palette.stories.d.ts +56 -0
- package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.d.ts +28 -0
- package/dist/types/components/bs-compact-menu-block/bs-compact-menu-block.stories.d.ts +10 -0
- package/dist/types/components/bs-company-switcher/bs-company-switcher.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-company-switcher/bs-company-switcher.d.ts +130 -0
- package/dist/types/components/bs-company-switcher/bs-company-switcher.stories.d.ts +25 -0
- package/dist/types/components/bs-empty-state/bs-empty-state.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-empty-state/bs-empty-state.d.ts +50 -0
- package/dist/types/components/bs-empty-state/bs-empty-state.stories.d.ts +13 -0
- package/dist/types/components/bs-global-search/bs-global-search.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-global-search/bs-global-search.d.ts +166 -0
- package/dist/types/components/bs-global-search/bs-global-search.stories.d.ts +61 -0
- package/dist/types/components/bs-icon-tile/bs-icon-tile.d.ts +5 -0
- package/dist/types/components/bs-key/bs-key.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-key/bs-key.d.ts +36 -0
- package/dist/types/components/bs-key/bs-key.stories.d.ts +11 -0
- package/dist/types/components/bs-key-caps/bs-key-caps.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-key-caps/bs-key-caps.d.ts +31 -0
- package/dist/types/components/bs-key-caps/bs-key-caps.stories.d.ts +15 -0
- package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.d.ts +95 -0
- package/dist/types/components/bs-keyboard-shortcuts/bs-keyboard-shortcuts.stories.d.ts +43 -0
- package/dist/types/components/bs-mega-menu/bs-mega-menu.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-mega-menu/bs-mega-menu.d.ts +110 -0
- package/dist/types/components/bs-mega-menu/bs-mega-menu.stories.d.ts +55 -0
- package/dist/types/components/bs-menu-block/bs-menu-block.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-menu-block/bs-menu-block.d.ts +47 -0
- package/dist/types/components/bs-menu-block/bs-menu-block.stories.d.ts +15 -0
- package/dist/types/components/bs-page-header/bs-page-header.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-page-header/bs-page-header.d.ts +100 -0
- package/dist/types/components/bs-page-header/bs-page-header.stories.d.ts +41 -0
- package/dist/types/components/bs-search-item/bs-search-item.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-search-item/bs-search-item.d.ts +61 -0
- package/dist/types/components/bs-search-item/bs-search-item.stories.d.ts +13 -0
- package/dist/types/components/bs-shortcut-row/bs-shortcut-row.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-shortcut-row/bs-shortcut-row.d.ts +38 -0
- package/dist/types/components/bs-shortcut-row/bs-shortcut-row.stories.d.ts +13 -0
- package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.d.ts +7 -1
- package/dist/types/components.d.ts +3920 -71
- package/dist/types/svg-inline.d.ts +5 -0
- package/package.json +2 -1
- package/reference.d.ts +50 -2
- package/reference.json +1701 -31
- package/dist/brandsync-wc/p-0228a584.entry.js +0 -1
- package/dist/brandsync-wc/p-0f97fe35.entry.js +0 -1
- package/dist/brandsync-wc/p-23379d7c.entry.js +0 -1
- package/dist/brandsync-wc/p-34b0c048.entry.js +0 -1
- package/dist/brandsync-wc/p-3789c7a5.entry.js +0 -1
- package/dist/brandsync-wc/p-5a45ef51.entry.js +0 -1
- package/dist/brandsync-wc/p-769c5b4a.entry.js +0 -1
- package/dist/brandsync-wc/p-86774165.entry.js +0 -1
- package/dist/brandsync-wc/p-e5f50e93.entry.js +0 -1
- package/dist/brandsync-wc/p-f4d1d56e.entry.js +0 -1
- package/dist/cjs/bs-list-item.cjs.entry.js +0 -66
- package/dist/cjs/bs-popover.cjs.entry.js +0 -153
- package/dist/cjs/bs-skeleton.cjs.entry.js +0 -51
- package/dist/components/p-B80vOwH6.js +0 -1
- package/dist/components/p-ChcaPfNL.js +0 -1
- package/dist/components/p-GTDI4Ibw.js +0 -1
- package/dist/esm/bs-list-item.entry.js +0 -64
- package/dist/esm/bs-popover.entry.js +0 -151
- package/dist/esm/bs-skeleton.entry.js +0 -49
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { html, nothing } from "lit";
|
|
2
|
+
import { componentDescription } from "../../stories-utils";
|
|
3
|
+
/** Inline icon paths (no external URLs). */
|
|
4
|
+
export const ICON_PATHS = {
|
|
5
|
+
users: '<circle cx="9" cy="8" r="3.5" /><path d="M2.5 20a6.5 6.5 0 0 1 13 0" /><path d="M16 4.6a3.5 3.5 0 0 1 0 6.8M18 14a6.5 6.5 0 0 1 3.5 6" />',
|
|
6
|
+
invoice: '<path d="M7 3h8l4 4v14H7V3Z" /><path d="M15 3v4h4M10 12h6M10 16h6" />',
|
|
7
|
+
plus: '<path d="M12 5v14M5 12h14" />',
|
|
8
|
+
package: '<path d="M21 8 12 3 3 8v8l9 5 9-5V8Z" /><path d="m3 8 9 5 9-5M12 13v8" />',
|
|
9
|
+
store: '<path d="M4 9 5.5 4h13L20 9M4 9h16v11H4V9Z" /><path d="M9 20v-6h6v6" />',
|
|
10
|
+
arrow: '<path d="M5 12h14M13 6l6 6-6 6" />',
|
|
11
|
+
moon: '<path d="M20 14.5A8 8 0 0 1 9.5 4a8 8 0 1 0 10.5 10.5Z" />',
|
|
12
|
+
sun: '<circle cx="12" cy="12" r="4" /><path d="M12 3v2M12 19v2M3 12h2M19 12h2M5.6 5.6 7 7M17 17l1.4 1.4M5.6 18.4 7 17M17 7l1.4-1.4" />',
|
|
13
|
+
monitor: '<path d="M3 4h18v12H3V4ZM8 20h8M12 16v4" />',
|
|
14
|
+
download: '<path d="M12 4v11M7 11l5 5 5-5M5 20h14" />',
|
|
15
|
+
search: '<circle cx="11" cy="11" r="7" /><path d="m20 20-3.5-3.5" />',
|
|
16
|
+
list: '<path d="M8 6h12M8 12h12M8 18h12M4 6h.01M4 12h.01M4 18h.01" />',
|
|
17
|
+
};
|
|
18
|
+
/** Figma "Command Palette" data, shared by the stories and the tests. */
|
|
19
|
+
export const DEFAULT_ROWS = [
|
|
20
|
+
{ value: 'c-nordic', section: 'recent', label: 'Nordic Sports AS', trailing: 'Customer', icon: 'users' },
|
|
21
|
+
{ value: 'i-20931', section: 'recent', label: 'INV-20931', trailing: 'Invoice', icon: 'invoice' },
|
|
22
|
+
{ value: 'cmd-invoice', section: 'suggested', label: 'Create Invoice', keys: 'Ctrl+N', icon: 'plus' },
|
|
23
|
+
{ value: 'cmd-product', section: 'suggested', label: 'Add product', keys: 'Ctrl+Shift+P', icon: 'package' },
|
|
24
|
+
{ value: 'cmd-store', section: 'suggested', label: 'Switch store', keys: 'Ctrl+Ctrl+Ctrl', icon: 'store' },
|
|
25
|
+
{ value: 'nav-dashboard', section: 'navigation', label: 'Go to Dashboard', keys: 'G+D', icon: 'arrow' },
|
|
26
|
+
{ value: 'nav-settings', section: 'navigation', label: 'Go to Settings', keys: 'G+S', icon: 'arrow' },
|
|
27
|
+
];
|
|
28
|
+
export const SEARCHING_ROWS = [
|
|
29
|
+
{ value: 'cmd-invoice', section: 'commands', label: '', match: 'Create Invo', rest: 'ice', keys: 'Ctrl+N', icon: 'plus' },
|
|
30
|
+
{ value: 'cmd-export', section: 'commands', label: '', match: 'Export invo', rest: 'ices to CSV', icon: 'download' },
|
|
31
|
+
{ value: 'nav-invoices', section: 'navigation', label: '', match: 'Go to Invo', rest: 'ices', keys: 'G+I', icon: 'arrow' },
|
|
32
|
+
{ value: 'i-20931', section: 'records', label: '', match: 'INV', rest: '-20931 · Nordic Sports AS', description: 'Due 30 Oct · NOK 12 480', trailing: 'Invoice', icon: 'invoice' },
|
|
33
|
+
{ value: 'i-20877', section: 'records', label: '', match: 'INV', rest: '-20877 · Bergen Sko AS', description: 'Paid · NOK 4 150', trailing: 'Invoice', icon: 'invoice' },
|
|
34
|
+
];
|
|
35
|
+
export const COMMANDS_ONLY_ROWS = [
|
|
36
|
+
{ value: 'theme-dark', section: 'commands', label: 'Switch to dark ', match: 'theme', icon: 'moon' },
|
|
37
|
+
{ value: 'theme-light', section: 'commands', label: 'Switch to light theme', trailing: 'Current', icon: 'sun' },
|
|
38
|
+
{ value: 'theme-system', section: 'commands', label: 'Use system theme', icon: 'monitor' },
|
|
39
|
+
];
|
|
40
|
+
export const TRY_INSTEAD_ROWS = [
|
|
41
|
+
{ value: 'try-records', section: 'try-instead', label: 'Search records for “thme”', icon: 'search' },
|
|
42
|
+
{ value: 'try-commands', section: 'try-instead', label: 'Browse all commands', icon: 'list' },
|
|
43
|
+
];
|
|
44
|
+
const svg = (name) => {
|
|
45
|
+
const t = document.createElement('template');
|
|
46
|
+
t.innerHTML = `<svg slot="icon" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">${ICON_PATHS[name]}</svg>`;
|
|
47
|
+
return t.content.firstElementChild;
|
|
48
|
+
};
|
|
49
|
+
const rowTemplate = (r) => html `<bs-search-item slot=${r.section} value=${r.value} trailing=${r.trailing ?? nothing}>
|
|
50
|
+
${svg(r.icon)}${r.match && !r.rest ? nothing : r.label}${r.match ? html `<strong>${r.match}</strong>` : nothing}${r.rest ?? ''}
|
|
51
|
+
${r.description ? html `<span slot="description">${r.description}</span>` : nothing}
|
|
52
|
+
${r.keys ? html `<bs-key-caps slot="trailing" keys=${r.keys}></bs-key-caps>` : nothing}
|
|
53
|
+
</bs-search-item>`;
|
|
54
|
+
const meta = {
|
|
55
|
+
// The shared story data constants are exported for the tests; keep them out of the sidebar.
|
|
56
|
+
excludeStories: /^[A-Z0-9_]+$/,
|
|
57
|
+
title: 'Components/bs-command-palette',
|
|
58
|
+
parameters: { layout: 'fullscreen', docs: { description: { component: componentDescription('bs-command-palette') }, story: { inline: false, iframeHeight: 640 } } },
|
|
59
|
+
argTypes: {
|
|
60
|
+
open: { control: 'boolean' },
|
|
61
|
+
value: { control: 'text' },
|
|
62
|
+
status: { control: 'select', options: ['default', 'results', 'empty', 'loading'] },
|
|
63
|
+
placeholder: { control: 'text' },
|
|
64
|
+
showFooter: { control: 'boolean' },
|
|
65
|
+
keepOpenOnSelect: { control: 'boolean' },
|
|
66
|
+
hotkey: { control: 'text' },
|
|
67
|
+
scopeLabel: { control: 'text' },
|
|
68
|
+
emptyHeading: { control: 'text' },
|
|
69
|
+
emptyDescription: { control: 'text' },
|
|
70
|
+
didYouMean: { control: 'text' },
|
|
71
|
+
},
|
|
72
|
+
args: {
|
|
73
|
+
open: true,
|
|
74
|
+
value: '',
|
|
75
|
+
status: 'default',
|
|
76
|
+
placeholder: 'Type a command or search…',
|
|
77
|
+
showFooter: true,
|
|
78
|
+
keepOpenOnSelect: false,
|
|
79
|
+
hotkey: '',
|
|
80
|
+
emptyHeading: 'No commands or records',
|
|
81
|
+
emptyDescription: 'Check the spelling, or search records instead.',
|
|
82
|
+
},
|
|
83
|
+
render: args => html `
|
|
84
|
+
<div style="min-height: 640px">
|
|
85
|
+
<bs-command-palette
|
|
86
|
+
.open=${args.open}
|
|
87
|
+
.value=${args.value}
|
|
88
|
+
.status=${args.status}
|
|
89
|
+
.placeholder=${args.placeholder}
|
|
90
|
+
.showFooter=${args.showFooter}
|
|
91
|
+
.keepOpenOnSelect=${args.keepOpenOnSelect}
|
|
92
|
+
.hotkey=${args.hotkey}
|
|
93
|
+
.scopeLabel=${args.scopeLabel}
|
|
94
|
+
.emptyHeading=${args.emptyHeading}
|
|
95
|
+
.emptyDescription=${args.emptyDescription}
|
|
96
|
+
.didYouMean=${args.didYouMean}
|
|
97
|
+
>
|
|
98
|
+
${DEFAULT_ROWS.map(rowTemplate)}
|
|
99
|
+
</bs-command-palette>
|
|
100
|
+
</div>
|
|
101
|
+
`,
|
|
102
|
+
};
|
|
103
|
+
export default meta;
|
|
104
|
+
export const Closed = {
|
|
105
|
+
args: { open: false },
|
|
106
|
+
render: () => html `
|
|
107
|
+
<div style="min-height: 640px; padding: 16px">
|
|
108
|
+
<bs-button @click=${(e) => e.currentTarget.nextElementSibling.show()}>Open palette</bs-button>
|
|
109
|
+
<bs-command-palette hotkey="mod+k">${DEFAULT_ROWS.map(rowTemplate)}</bs-command-palette>
|
|
110
|
+
</div>
|
|
111
|
+
`,
|
|
112
|
+
};
|
|
113
|
+
export const Default = {};
|
|
114
|
+
export const Searching = {
|
|
115
|
+
args: { value: 'invo', status: 'results' },
|
|
116
|
+
render: args => html `
|
|
117
|
+
<div style="min-height: 640px">
|
|
118
|
+
<bs-command-palette .open=${args.open} .value=${args.value} .status=${args.status}>${SEARCHING_ROWS.map(rowTemplate)}</bs-command-palette>
|
|
119
|
+
</div>
|
|
120
|
+
`,
|
|
121
|
+
};
|
|
122
|
+
export const CommandsOnly = {
|
|
123
|
+
args: { value: '> theme', status: 'results' },
|
|
124
|
+
render: args => html `
|
|
125
|
+
<div style="min-height: 640px">
|
|
126
|
+
<bs-command-palette .open=${args.open} .value=${args.value} .status=${args.status}>${COMMANDS_ONLY_ROWS.map(rowTemplate)}</bs-command-palette>
|
|
127
|
+
</div>
|
|
128
|
+
`,
|
|
129
|
+
};
|
|
130
|
+
export const NoResults = {
|
|
131
|
+
args: { value: 'thme', status: 'empty' },
|
|
132
|
+
render: args => html `
|
|
133
|
+
<div style="min-height: 640px">
|
|
134
|
+
<bs-command-palette
|
|
135
|
+
.open=${args.open}
|
|
136
|
+
.value=${args.value}
|
|
137
|
+
status="empty"
|
|
138
|
+
empty-heading="No commands or records for “thme”"
|
|
139
|
+
did-you-mean="theme"
|
|
140
|
+
>
|
|
141
|
+
${TRY_INSTEAD_ROWS.map(rowTemplate)}
|
|
142
|
+
</bs-command-palette>
|
|
143
|
+
</div>
|
|
144
|
+
`,
|
|
145
|
+
};
|
|
146
|
+
export const Loading = {
|
|
147
|
+
args: { value: 'invo', status: 'loading' },
|
|
148
|
+
render: args => html `
|
|
149
|
+
<div style="min-height: 640px">
|
|
150
|
+
<bs-command-palette .open=${args.open} .value=${args.value} status="loading"></bs-command-palette>
|
|
151
|
+
</div>
|
|
152
|
+
`,
|
|
153
|
+
};
|
|
154
|
+
export const Interactive = {
|
|
155
|
+
args: { open: false },
|
|
156
|
+
render: () => {
|
|
157
|
+
const wrap = document.createElement('div');
|
|
158
|
+
wrap.style.cssText = 'min-height: 640px; padding: 16px';
|
|
159
|
+
const out = document.createElement('output');
|
|
160
|
+
out.style.cssText = 'display:block;margin-top:8px;font:14px/20px monospace;color:var(--bs-text-secondary)';
|
|
161
|
+
out.textContent = 'Press Ctrl/Cmd+K, type, use the arrow keys, Enter or Esc.';
|
|
162
|
+
const btn = document.createElement('bs-button');
|
|
163
|
+
btn.textContent = 'Open palette (Ctrl/Cmd+K)';
|
|
164
|
+
const cp = document.createElement('bs-command-palette');
|
|
165
|
+
cp.setAttribute('hotkey', 'mod+k');
|
|
166
|
+
const render = (rows) => {
|
|
167
|
+
cp.innerHTML = rows
|
|
168
|
+
.map(r => `<bs-search-item slot="${r.section}" value="${r.value}"${r.trailing ? ` trailing="${r.trailing}"` : ''}>${r.match && !r.rest ? '' : r.label}${r.match ? `<strong>${r.match}</strong>` : ''}${r.rest ?? ''}${r.description ? `<span slot="description">${r.description}</span>` : ''}${r.keys ? `<bs-key-caps slot="trailing" keys="${r.keys}"></bs-key-caps>` : ''}</bs-search-item>`)
|
|
169
|
+
.join('');
|
|
170
|
+
};
|
|
171
|
+
render(DEFAULT_ROWS);
|
|
172
|
+
// The app owns the filtering.
|
|
173
|
+
cp.addEventListener('bsInput', e => {
|
|
174
|
+
const d = e.detail;
|
|
175
|
+
const all = [...DEFAULT_ROWS, ...SEARCHING_ROWS, ...COMMANDS_ONLY_ROWS].filter((r, i, a) => a.findIndex(x => x.value === r.value) === i);
|
|
176
|
+
if (!d.query && !d.commandsOnly) {
|
|
177
|
+
cp.status = 'default';
|
|
178
|
+
render(DEFAULT_ROWS);
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
const rows = all.filter(r => (!d.commandsOnly || ['commands', 'suggested', 'navigation'].includes(r.section)) && `${r.label}${r.match ?? ''}${r.rest ?? ''}`.toLowerCase().includes(d.query.toLowerCase()));
|
|
182
|
+
render(rows);
|
|
183
|
+
cp.status = rows.length ? 'results' : 'empty';
|
|
184
|
+
}
|
|
185
|
+
out.textContent = `bsInput ${JSON.stringify(d)}`;
|
|
186
|
+
});
|
|
187
|
+
for (const n of ['bsSelect', 'bsSuggestion', 'bsOpenChange', 'bsScopeExit']) {
|
|
188
|
+
cp.addEventListener(n, e => (out.textContent = `${n} ${JSON.stringify(e.detail ?? null)}`));
|
|
189
|
+
}
|
|
190
|
+
btn.addEventListener('click', () => cp.show());
|
|
191
|
+
wrap.append(btn, out, cp);
|
|
192
|
+
return wrap;
|
|
193
|
+
},
|
|
194
|
+
};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
import axe from "axe-core";
|
|
3
|
+
import { assertShadowParts, assertCssCustomProperties } from "../../test/helpers/conventions";
|
|
4
|
+
const q = (el, s) => el.shadowRoot.querySelector(s);
|
|
5
|
+
const make = async (props = {}) => {
|
|
6
|
+
const r = await render(h("div", { style: { width: '245px' } }, h("bs-compact-menu-block", { name: "Payments" })));
|
|
7
|
+
const el = r.root.querySelector('bs-compact-menu-block');
|
|
8
|
+
Object.assign(el, props);
|
|
9
|
+
await r.waitForChanges();
|
|
10
|
+
return { ...r, el };
|
|
11
|
+
};
|
|
12
|
+
describe('bs-compact-menu-block', () => {
|
|
13
|
+
it('is a button named by its text, with the parts and custom properties', async () => {
|
|
14
|
+
const { el } = await make();
|
|
15
|
+
const c = q(el, '[part="container"]');
|
|
16
|
+
expect(c.tagName).toBe('BUTTON');
|
|
17
|
+
expect(c.textContent).toBe('Payments');
|
|
18
|
+
assertShadowParts(el.shadowRoot, ['container']);
|
|
19
|
+
assertCssCustomProperties(el, ['--bs-compact-menu-block-padding', '--bs-compact-menu-block-bg-hover', '--bs-compact-menu-block-focus-ring']);
|
|
20
|
+
});
|
|
21
|
+
it('is a single 36px line', async () => {
|
|
22
|
+
const { el } = await make();
|
|
23
|
+
expect(Math.round(el.getBoundingClientRect().height)).toBe(36);
|
|
24
|
+
});
|
|
25
|
+
it('has no axe violations', async () => {
|
|
26
|
+
for (const props of [{}]) {
|
|
27
|
+
const { el } = await make(props);
|
|
28
|
+
const results = await axe.run(el);
|
|
29
|
+
expect(results.violations.map(v => `${JSON.stringify(props)} ${v.id}: ${v.help}`)).toEqual([]);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
});
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
:host {
|
|
2
|
+
display: block;
|
|
3
|
+
box-sizing: border-box;
|
|
4
|
+
--bs-compact-menu-block-padding: var(--bs-spacing-100);
|
|
5
|
+
--bs-compact-menu-block-radius: var(--bs-border-radius-100);
|
|
6
|
+
--bs-compact-menu-block-bg: transparent;
|
|
7
|
+
--bs-compact-menu-block-bg-hover: var(--bs-surface-hover);
|
|
8
|
+
--bs-compact-menu-block-bg-pressed: var(--bs-surface-pressed);
|
|
9
|
+
--bs-compact-menu-block-color: var(--bs-text-default);
|
|
10
|
+
--bs-compact-menu-block-focus-ring: var(--bs-border-info);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.bs-compact-menu-block {
|
|
14
|
+
box-sizing: border-box;
|
|
15
|
+
display: block;
|
|
16
|
+
width: 100%;
|
|
17
|
+
margin: 0;
|
|
18
|
+
padding: var(--bs-compact-menu-block-padding);
|
|
19
|
+
border: 0;
|
|
20
|
+
border-radius: var(--bs-compact-menu-block-radius);
|
|
21
|
+
background: var(--bs-compact-menu-block-bg);
|
|
22
|
+
color: var(--bs-compact-menu-block-color);
|
|
23
|
+
font-family: var(--bs-typography-font-family-body, Roboto), sans-serif;
|
|
24
|
+
font-size: var(--bs-fontsize-body-sm);
|
|
25
|
+
font-weight: var(--bs-font-weight-regular);
|
|
26
|
+
line-height: calc(var(--bs-line-height-body-sm) * 1px);
|
|
27
|
+
text-align: left;
|
|
28
|
+
cursor: pointer;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.bs-compact-menu-block:hover,
|
|
32
|
+
.bs-compact-menu-block:focus-visible {
|
|
33
|
+
background: var(--bs-compact-menu-block-bg-hover);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.bs-compact-menu-block:active {
|
|
37
|
+
background: var(--bs-compact-menu-block-bg-pressed);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.bs-compact-menu-block:focus-visible {
|
|
41
|
+
outline: var(--bs-spacing-25) solid var(--bs-compact-menu-block-focus-ring);
|
|
42
|
+
outline-offset: 0;
|
|
43
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* A plain text entry in a mega menu: one line, no icon. Matches the Figma "Compact menu block" component
|
|
4
|
+
* (Default, Hover, Pressed and Focused).
|
|
5
|
+
*
|
|
6
|
+
* The block is always a native button and only emits events; it never navigates. Hover, pressed and focus come from the
|
|
7
|
+
* native element.
|
|
8
|
+
*
|
|
9
|
+
* ## When to use
|
|
10
|
+
* - A dense list of destinations in a mega menu, usually inside `bs-mega-menu` with `type="compact"`.
|
|
11
|
+
*
|
|
12
|
+
* ## When not to use
|
|
13
|
+
* - A destination that needs an icon or a description -- use `bs-menu-block`.
|
|
14
|
+
* - A command in a dropdown list -- use `bs-menu-item`.
|
|
15
|
+
*
|
|
16
|
+
* @part container - The button.
|
|
17
|
+
* @prop --bs-compact-menu-block-padding - Padding inside the block. Aliased to `--bs-spacing-100`.
|
|
18
|
+
* @prop --bs-compact-menu-block-radius - Corner radius. Aliased to `--bs-border-radius-100`.
|
|
19
|
+
* @prop --bs-compact-menu-block-bg - Resting background. `transparent`.
|
|
20
|
+
* @prop --bs-compact-menu-block-bg-hover - Aliased to `--bs-surface-hover`.
|
|
21
|
+
* @prop --bs-compact-menu-block-bg-pressed - Aliased to `--bs-surface-pressed`.
|
|
22
|
+
* @prop --bs-compact-menu-block-color - Text colour. Aliased to `--bs-text-default`.
|
|
23
|
+
* @prop --bs-compact-menu-block-focus-ring - Focus ring colour. Aliased to `--bs-border-info`.
|
|
24
|
+
*/
|
|
25
|
+
export class BsCompactMenuBlock {
|
|
26
|
+
/** The text, and the accessible name. */
|
|
27
|
+
name;
|
|
28
|
+
render() {
|
|
29
|
+
const common = { part: 'container', class: 'bs-compact-menu-block' };
|
|
30
|
+
return (h("button", { key: '2bd3b6eebed0124d8f013bb1d1a74d14bd3d76c5', ...common, type: "button" }, this.name));
|
|
31
|
+
}
|
|
32
|
+
static get is() { return "bs-compact-menu-block"; }
|
|
33
|
+
static get encapsulation() { return "shadow"; }
|
|
34
|
+
static get originalStyleUrls() {
|
|
35
|
+
return {
|
|
36
|
+
"$": ["bs-compact-menu-block.css"]
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
static get styleUrls() {
|
|
40
|
+
return {
|
|
41
|
+
"$": ["bs-compact-menu-block.css"]
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
static get properties() {
|
|
45
|
+
return {
|
|
46
|
+
"name": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"mutable": false,
|
|
49
|
+
"complexType": {
|
|
50
|
+
"original": "string",
|
|
51
|
+
"resolved": "string",
|
|
52
|
+
"references": {}
|
|
53
|
+
},
|
|
54
|
+
"required": true,
|
|
55
|
+
"optional": false,
|
|
56
|
+
"docs": {
|
|
57
|
+
"tags": [],
|
|
58
|
+
"text": "The text, and the accessible name."
|
|
59
|
+
},
|
|
60
|
+
"getter": false,
|
|
61
|
+
"setter": false,
|
|
62
|
+
"reflect": false,
|
|
63
|
+
"attribute": "name"
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { componentDescription } from "../../stories-utils";
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/bs-compact-menu-block',
|
|
5
|
+
parameters: { layout: 'padded', docs: { description: { component: componentDescription('bs-compact-menu-block') } } },
|
|
6
|
+
argTypes: { name: { control: 'text' } },
|
|
7
|
+
args: { name: 'Payments' },
|
|
8
|
+
render: args => html `
|
|
9
|
+
<div style="width: 245px">
|
|
10
|
+
<bs-compact-menu-block name=${args.name}></bs-compact-menu-block>
|
|
11
|
+
</div>
|
|
12
|
+
`,
|
|
13
|
+
};
|
|
14
|
+
export default meta;
|
|
15
|
+
export const Default = {};
|
|
16
|
+
/** A list of blocks. Hover, pressed and focus come from the native element: point at a block, press it, or Tab to it. */
|
|
17
|
+
export const States = {
|
|
18
|
+
render: () => html `
|
|
19
|
+
<div style="display:flex;flex-direction:column;width:245px">
|
|
20
|
+
<bs-compact-menu-block name="General ledger"></bs-compact-menu-block>
|
|
21
|
+
<bs-compact-menu-block name="Journal entries"></bs-compact-menu-block>
|
|
22
|
+
<bs-compact-menu-block name="Chart of accounts"></bs-compact-menu-block>
|
|
23
|
+
</div>
|
|
24
|
+
`,
|
|
25
|
+
};
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
import axe from "axe-core";
|
|
3
|
+
import { userEvent } from "vitest/browser";
|
|
4
|
+
import { assertShadowParts, assertCssCustomProperties } from "../../test/helpers/conventions";
|
|
5
|
+
import { COMPANIES, RECENT_IDS } from "./bs-company-switcher.stories";
|
|
6
|
+
const q = (el, s) => el.shadowRoot.querySelector(s);
|
|
7
|
+
const qa = (el, s) => Array.from(el.shadowRoot.querySelectorAll(s));
|
|
8
|
+
const settle = (ms = 80) => new Promise(r => setTimeout(r, ms));
|
|
9
|
+
const make = async (props = {}) => {
|
|
10
|
+
const r = await render(h("div", { style: { width: '500px', minHeight: '600px' } }, h("bs-company-switcher", null)));
|
|
11
|
+
const el = r.root.querySelector('bs-company-switcher');
|
|
12
|
+
Object.assign(el, { companies: COMPANIES, currentId: 'nordic', recentIds: RECENT_IDS, ...props });
|
|
13
|
+
await r.waitForChanges();
|
|
14
|
+
await settle();
|
|
15
|
+
const type = async (query) => {
|
|
16
|
+
q(el, 'bs-input').dispatchEvent(new CustomEvent('bsInput', { detail: query }));
|
|
17
|
+
await r.waitForChanges();
|
|
18
|
+
};
|
|
19
|
+
const press = async (k) => {
|
|
20
|
+
await userEvent.keyboard(k);
|
|
21
|
+
await r.waitForChanges();
|
|
22
|
+
};
|
|
23
|
+
return { ...r, el, type, press };
|
|
24
|
+
};
|
|
25
|
+
const headers = (el) => qa(el, '[part="group-header"]').map(h => h.textContent);
|
|
26
|
+
const rows = (el) => qa(el, '[part="row"]');
|
|
27
|
+
describe('bs-company-switcher', () => {
|
|
28
|
+
it('renders a 260px trigger with initials avatar, name, org number and chevron', async () => {
|
|
29
|
+
const { el } = await make();
|
|
30
|
+
const trigger = q(el, '[part="trigger"]');
|
|
31
|
+
expect(Math.round(el.getBoundingClientRect().width)).toBe(260);
|
|
32
|
+
expect(Math.round(trigger.getBoundingClientRect().height)).toBe(54);
|
|
33
|
+
expect(q(el, 'bs-avatar').initials).toBe('NS');
|
|
34
|
+
expect(q(el, '[part="name"]').textContent).toBe('Nordic Sports AS');
|
|
35
|
+
expect(q(el, '[part="subtitle"]').textContent).toBe('Org. no. 923 456 789');
|
|
36
|
+
expect(q(el, '.bs-company-switcher__chevron')).not.toBeNull();
|
|
37
|
+
expect(trigger.getAttribute('aria-expanded')).toBe('false');
|
|
38
|
+
assertShadowParts(el.shadowRoot, ['trigger', 'name', 'subtitle', 'panel']);
|
|
39
|
+
assertCssCustomProperties(el, ['--bs-company-switcher-width', '--bs-company-switcher-panel-width', '--bs-company-switcher-shadow']);
|
|
40
|
+
});
|
|
41
|
+
it('opens on trigger click, reflects open, emits bsOpenChange and moves focus to the search field', async () => {
|
|
42
|
+
const { el, waitForChanges } = await make();
|
|
43
|
+
const got = [];
|
|
44
|
+
el.addEventListener('bsOpenChange', (e) => got.push(e.detail));
|
|
45
|
+
q(el, '[part="trigger"]').click();
|
|
46
|
+
await waitForChanges();
|
|
47
|
+
await settle();
|
|
48
|
+
expect(el.open).toBe(true);
|
|
49
|
+
expect(el.hasAttribute('open')).toBe(true);
|
|
50
|
+
expect(got).toEqual([true]);
|
|
51
|
+
expect(q(el, '[part="trigger"]').getAttribute('aria-expanded')).toBe('true');
|
|
52
|
+
expect(el.shadowRoot.activeElement?.tagName).toBe('BS-INPUT');
|
|
53
|
+
const panel = q(el, '[part="panel"]').getBoundingClientRect();
|
|
54
|
+
expect(Math.round(panel.width)).toBe(360);
|
|
55
|
+
});
|
|
56
|
+
it('shows Current, Recent and All companies groups with the check on the current row', async () => {
|
|
57
|
+
const { el } = await make({ open: true });
|
|
58
|
+
expect(headers(el)).toEqual(['Current', 'Recent', 'All companies · 3']);
|
|
59
|
+
expect(rows(el)).toHaveLength(6);
|
|
60
|
+
const current = rows(el)[0];
|
|
61
|
+
expect(current.selected).toBe(true);
|
|
62
|
+
expect(current.querySelector('[slot="trailing"]')).not.toBeNull();
|
|
63
|
+
expect(current.textContent).toContain('NO · Org. no. 923 456 789');
|
|
64
|
+
expect(q(el, '[role="listbox"]')).not.toBeNull();
|
|
65
|
+
assertShadowParts(el.shadowRoot, ['search', 'list', 'group', 'group-header', 'row', 'footer']);
|
|
66
|
+
});
|
|
67
|
+
it('filters by name or org. number, case-insensitively, with a matches header', async () => {
|
|
68
|
+
const { el, type } = await make({ open: true });
|
|
69
|
+
await type('FJORD');
|
|
70
|
+
expect(headers(el)).toEqual(['1 match']);
|
|
71
|
+
expect(rows(el)).toHaveLength(1);
|
|
72
|
+
await type('556 781');
|
|
73
|
+
expect(rows(el).map(r => r.textContent)).toEqual([expect.stringContaining('Baltic Freight AB')]);
|
|
74
|
+
await type('92');
|
|
75
|
+
expect(headers(el)).toEqual(['2 matches']);
|
|
76
|
+
await type('');
|
|
77
|
+
expect(headers(el)).toEqual(['Current', 'Recent', 'All companies · 3']);
|
|
78
|
+
});
|
|
79
|
+
it('shows the no-results state with the footer still present', async () => {
|
|
80
|
+
const { el, type } = await make({ open: true });
|
|
81
|
+
await type('zzz');
|
|
82
|
+
const empty = q(el, '[part="empty"]');
|
|
83
|
+
expect(empty.heading).toBe('No companies match “zzz”');
|
|
84
|
+
expect(empty.description).toBe('Check the spelling, or search by org. number.');
|
|
85
|
+
expect(q(el, '[part="list"]')).toBeNull();
|
|
86
|
+
expect(q(el, '[part="footer"]')).not.toBeNull();
|
|
87
|
+
});
|
|
88
|
+
it('navigates with arrow keys and switches with Enter', async () => {
|
|
89
|
+
const { el, press, waitForChanges } = await make({ open: true });
|
|
90
|
+
await settle();
|
|
91
|
+
const got = [];
|
|
92
|
+
el.addEventListener('bsCompanySwitch', (e) => got.push(e.detail));
|
|
93
|
+
await press('{ArrowDown}');
|
|
94
|
+
await press('{ArrowDown}');
|
|
95
|
+
const combo = q(el, '[role="combobox"]');
|
|
96
|
+
expect(combo.getAttribute('aria-activedescendant')).toBe(rows(el)[1].id);
|
|
97
|
+
await press('{ArrowUp}');
|
|
98
|
+
expect(combo.getAttribute('aria-activedescendant')).toBe(rows(el)[0].id);
|
|
99
|
+
await press('{ArrowDown}');
|
|
100
|
+
await press('{Enter}');
|
|
101
|
+
await waitForChanges();
|
|
102
|
+
expect(got.map(c => c.id)).toEqual(['fjord']);
|
|
103
|
+
expect(el.open).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
it('switching a row by click emits bsCompanySwitch; the current row only closes', async () => {
|
|
106
|
+
const { el, waitForChanges } = await make({ open: true });
|
|
107
|
+
const got = [];
|
|
108
|
+
el.addEventListener('bsCompanySwitch', (e) => got.push(e.detail));
|
|
109
|
+
rows(el)[0].click();
|
|
110
|
+
await waitForChanges();
|
|
111
|
+
expect(got).toEqual([]);
|
|
112
|
+
expect(el.open).toBe(false);
|
|
113
|
+
el.open = true;
|
|
114
|
+
await waitForChanges();
|
|
115
|
+
rows(el)[2].click();
|
|
116
|
+
await waitForChanges();
|
|
117
|
+
expect(got.map(c => c.id)).toEqual(['aurora']);
|
|
118
|
+
});
|
|
119
|
+
it('stays open in the switching state when the handler sets switchingId', async () => {
|
|
120
|
+
const { el, waitForChanges } = await make({ open: true });
|
|
121
|
+
el.addEventListener('bsCompanySwitch', (e) => (el.switchingId = e.detail.id));
|
|
122
|
+
rows(el)[1].click();
|
|
123
|
+
await waitForChanges();
|
|
124
|
+
expect(el.open).toBe(true);
|
|
125
|
+
const row = rows(el)[1];
|
|
126
|
+
expect(row.querySelector('bs-spinner')).not.toBeNull();
|
|
127
|
+
expect(row.getAttribute('aria-busy')).toBe('true');
|
|
128
|
+
const trigger = q(el, '[part="trigger"]');
|
|
129
|
+
expect(trigger.getAttribute('aria-busy')).toBe('true');
|
|
130
|
+
expect(q(el, '[part="subtitle"]').textContent).toBe('Switching…');
|
|
131
|
+
expect(q(el, '.bs-company-switcher__trigger bs-spinner')).not.toBeNull();
|
|
132
|
+
});
|
|
133
|
+
it('closes on Escape and returns focus to the trigger', async () => {
|
|
134
|
+
const { el, press } = await make({ open: true });
|
|
135
|
+
await settle();
|
|
136
|
+
await press('{Escape}');
|
|
137
|
+
await settle();
|
|
138
|
+
expect(el.open).toBe(false);
|
|
139
|
+
expect(el.shadowRoot.activeElement).toBe(q(el, '[part="trigger"]'));
|
|
140
|
+
});
|
|
141
|
+
it('emits bsManageCompanies and bsAddCompanies from the footer', async () => {
|
|
142
|
+
const { el, waitForChanges } = await make({ open: true });
|
|
143
|
+
const got = [];
|
|
144
|
+
el.addEventListener('bsManageCompanies', () => got.push('manage'));
|
|
145
|
+
el.addEventListener('bsAddCompanies', () => got.push('add'));
|
|
146
|
+
const [manage, add] = qa(el, '[part="footer"] bs-button');
|
|
147
|
+
expect(manage.textContent).toContain('Manage Companies');
|
|
148
|
+
expect(add.textContent).toContain('Add companies');
|
|
149
|
+
manage.click();
|
|
150
|
+
add.click();
|
|
151
|
+
await waitForChanges();
|
|
152
|
+
expect(got).toEqual(['manage', 'add']);
|
|
153
|
+
});
|
|
154
|
+
it('uses label props for i18n', async () => {
|
|
155
|
+
const { el, waitForChanges } = await make({ open: true, manageLabel: 'Administrer', searchPlaceholder: 'Finn selskap' });
|
|
156
|
+
await waitForChanges();
|
|
157
|
+
expect(q(el, 'bs-input').placeholder).toBe('Finn selskap');
|
|
158
|
+
expect(q(el, '[part="footer"]').textContent).toContain('Administrer');
|
|
159
|
+
});
|
|
160
|
+
it('has no axe violations open (apart from bs-popover\'s own trigger wrapper)', async () => {
|
|
161
|
+
const { el } = await make({ open: true });
|
|
162
|
+
// Known gap in bs-popover: its trigger wrapper <div> carries aria-expanded/haspopup without a role
|
|
163
|
+
// (bs-popover's own tests assert those attributes), so axe flags aria-allowed-attr on it.
|
|
164
|
+
const results = await axe.run(el);
|
|
165
|
+
const violations = results.violations
|
|
166
|
+
.map(v => ({ ...v, nodes: v.nodes.filter(n => !n.html.includes('bs-popover__trigger')) }))
|
|
167
|
+
.filter(v => v.nodes.length)
|
|
168
|
+
.map(v => `${v.id}: ${v.help}`);
|
|
169
|
+
expect(violations).toEqual([]);
|
|
170
|
+
});
|
|
171
|
+
});
|