@brandsync/wc 0.0.10 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +3584 -508
- package/dist/brandsync-wc/brandsync-wc.css +20 -0
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/{p-b1e1b2d6.entry.js → p-09aa03d1.entry.js} +1 -1
- package/dist/brandsync-wc/p-0eee5477.entry.js +1 -0
- package/dist/brandsync-wc/p-0fa017ce.entry.js +1 -0
- package/dist/brandsync-wc/p-12ec9e92.entry.js +1 -0
- package/dist/brandsync-wc/{p-3dacae70.entry.js → p-1900f6ce.entry.js} +1 -1
- package/dist/brandsync-wc/{p-575ce905.entry.js → p-1adc59be.entry.js} +1 -1
- package/dist/brandsync-wc/p-1c6fa697.entry.js +1 -0
- package/dist/brandsync-wc/{p-dd747a12.entry.js → p-1cf715aa.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8a78d6ea.entry.js → p-20dbc6a1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a34f460d.entry.js → p-23457a21.entry.js} +1 -1
- package/dist/brandsync-wc/p-266f5dde.entry.js +1 -0
- package/dist/brandsync-wc/p-2a65aabb.entry.js +1 -0
- package/dist/brandsync-wc/{p-8d12ed96.entry.js → p-2c51d738.entry.js} +1 -1
- package/dist/brandsync-wc/p-3b31f7c7.entry.js +1 -0
- package/dist/brandsync-wc/p-46ddc8e1.entry.js +1 -0
- package/dist/brandsync-wc/p-56c66448.entry.js +1 -0
- package/dist/brandsync-wc/{p-18af02df.entry.js → p-57fdbb76.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7776b57b.entry.js → p-64e2a7d7.entry.js} +1 -1
- package/dist/brandsync-wc/{p-805644e4.entry.js → p-6e854e92.entry.js} +1 -1
- package/dist/brandsync-wc/p-72a33f88.entry.js +1 -0
- package/dist/brandsync-wc/p-8049f9f2.entry.js +1 -0
- package/dist/brandsync-wc/{p-d682675e.entry.js → p-88a0abee.entry.js} +1 -1
- package/dist/brandsync-wc/p-8b662ee3.entry.js +1 -0
- package/dist/brandsync-wc/{p-94ed898a.entry.js → p-8ded1eb6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-nLORuTUY.js → p-DST5-cTx.js} +2 -2
- package/dist/brandsync-wc/p-a5b15061.entry.js +1 -0
- package/dist/brandsync-wc/{p-30a0e168.entry.js → p-aba300a9.entry.js} +1 -1
- package/dist/brandsync-wc/p-b24a980b.entry.js +1 -0
- package/dist/brandsync-wc/{p-96f374be.entry.js → p-b289450a.entry.js} +1 -1
- package/dist/brandsync-wc/{p-880ea3f8.entry.js → p-b8a2f882.entry.js} +1 -1
- package/dist/brandsync-wc/p-c320b6b4.entry.js +1 -0
- package/dist/brandsync-wc/{p-1515498e.entry.js → p-d4e3ca77.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ce0914a7.entry.js → p-dd09d335.entry.js} +1 -1
- package/dist/brandsync-wc/p-ef8522b5.entry.js +1 -0
- package/dist/brandsync-wc/p-f04db1b0.entry.js +1 -0
- package/dist/cjs/brandsync-wc.cjs.js +2 -2
- package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +3 -2
- package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
- package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment.cjs.entry.js +3 -3
- package/dist/cjs/bs-badge.cjs.entry.js +1 -1
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/bs-button.cjs.entry.js +3 -3
- package/dist/cjs/bs-card.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +2 -2
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/bs-checkbox.cjs.entry.js +94 -0
- package/dist/cjs/bs-composer-status-banner.cjs.entry.js +14 -2
- package/dist/cjs/bs-composer.cjs.entry.js +37 -4
- package/dist/cjs/bs-data-table.cjs.entry.js +3 -3
- package/dist/cjs/bs-icon-button.cjs.entry.js +40 -0
- package/dist/cjs/bs-inline-tab.cjs.entry.js +69 -0
- package/dist/cjs/bs-input.cjs.entry.js +3 -3
- package/dist/cjs/bs-logo.cjs.entry.js +165 -0
- package/dist/cjs/bs-menu_2.cjs.entry.js +3 -3
- package/dist/cjs/bs-modal.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +104 -0
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +81 -0
- package/dist/cjs/bs-navigation-header.cjs.entry.js +44 -0
- package/dist/cjs/bs-radio.cjs.entry.js +49 -0
- package/dist/cjs/bs-slider.cjs.entry.js +191 -0
- package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
- package/dist/cjs/bs-switch.cjs.entry.js +57 -0
- package/dist/cjs/bs-tab.cjs.entry.js +80 -0
- package/dist/cjs/bs-tabs.cjs.entry.js +39 -0
- package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/{index-CVh-sqA_.js → index-B3sdhEGk.js} +74 -2
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +14 -2
- package/dist/collection/components/bs-ai-chatbot/bs-ai-chatbot.stories.js +26 -11
- package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +2 -1
- package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
- package/dist/collection/components/bs-attachment/bs-attachment.css +12 -33
- package/dist/collection/components/bs-attachment/bs-attachment.js +4 -10
- package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
- package/dist/collection/components/bs-button/{bs-button.cmp.test.js → bs-button/bs-button.cmp.test.js} +26 -0
- package/dist/collection/components/bs-button/{bs-button.css → bs-button/bs-button.css} +57 -6
- package/dist/collection/components/bs-button/{bs-button.js → bs-button/bs-button.js} +10 -5
- package/dist/collection/components/bs-button/{bs-button.stories.js → bs-button/bs-button.stories.js} +2 -27
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.js +83 -0
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +346 -0
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +185 -0
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.stories.js +74 -0
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +3 -3
- 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.cmp.test.js +117 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox.css +199 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox.js +265 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox.stories.js +65 -0
- package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +48 -7
- package/dist/collection/components/bs-composer/bs-composer.css +15 -0
- package/dist/collection/components/bs-composer/bs-composer.js +38 -4
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.cmp.test.js +47 -1
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +20 -1
- package/dist/collection/components/bs-data-table/bs-data-table.js +2 -2
- package/dist/collection/components/bs-input/bs-input.js +2 -2
- package/dist/collection/components/bs-logo/brandsync-logo-full-dark.js +44 -0
- package/dist/collection/components/bs-logo/brandsync-logo-full-light.js +40 -0
- package/dist/collection/components/bs-logo/brandsync-logo-mark.js +17 -0
- package/dist/collection/components/bs-logo/bs-logo.cmp.test.js +113 -0
- package/dist/collection/components/bs-logo/bs-logo.css +79 -0
- package/dist/collection/components/bs-logo/bs-logo.js +193 -0
- package/dist/collection/components/bs-logo/bs-logo.stories.js +69 -0
- package/dist/collection/components/bs-menu/bs-menu.js +1 -1
- package/dist/collection/components/bs-menu-item/bs-menu-item.js +1 -1
- package/dist/collection/components/bs-radio/bs-radio.cmp.test.js +76 -0
- package/dist/collection/components/bs-radio/bs-radio.css +164 -0
- package/dist/collection/components/bs-radio/bs-radio.js +170 -0
- package/dist/collection/components/bs-radio/bs-radio.stories.js +56 -0
- package/dist/collection/components/bs-slider/bs-slider.cmp.test.js +139 -0
- package/dist/collection/components/bs-slider/bs-slider.css +409 -0
- package/dist/collection/components/bs-slider/bs-slider.js +499 -0
- package/dist/collection/components/bs-slider/bs-slider.stories.js +70 -0
- package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
- package/dist/collection/components/bs-switch/bs-switch.cmp.test.js +71 -0
- package/dist/collection/components/bs-switch/bs-switch.css +196 -0
- package/dist/collection/components/bs-switch/bs-switch.js +185 -0
- package/dist/collection/components/bs-switch/bs-switch.stories.js +60 -0
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.cmp.test.js +104 -0
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.css +163 -0
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +192 -0
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.js +95 -0
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.cmp.test.js +120 -0
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.css +216 -0
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +232 -0
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.stories.js +138 -0
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.cmp.test.js +61 -0
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.css +39 -0
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +133 -0
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.stories.js +39 -0
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.js +131 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.css +257 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +253 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.js +202 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.cmp.test.js +172 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.css +325 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +314 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.stories.js +78 -0
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.js +77 -0
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +106 -0
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +188 -0
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.js +189 -0
- package/dist/components/bs-ai-disclaimer.js +1 -1
- package/dist/components/bs-ai-greeting.js +1 -1
- package/dist/components/bs-ai-thinking.js +1 -1
- package/dist/components/bs-attachment-list.js +1 -1
- package/dist/components/bs-attachment.js +1 -1
- package/dist/components/bs-badge.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-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.d.ts +11 -0
- package/dist/components/bs-checkbox.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-data-table.js +1 -1
- package/dist/components/bs-icon-button.d.ts +11 -0
- package/dist/components/bs-icon-button.js +1 -0
- package/dist/components/bs-inline-tab.d.ts +11 -0
- package/dist/components/bs-inline-tab.js +1 -0
- package/dist/components/bs-input.js +1 -1
- package/dist/components/bs-logo.d.ts +11 -0
- package/dist/components/bs-logo.js +1 -0
- package/dist/components/bs-menu-item.js +1 -1
- package/dist/components/bs-menu.js +1 -1
- package/dist/components/bs-modal.js +1 -1
- package/dist/components/bs-navigation-drawer-item.d.ts +11 -0
- package/dist/components/bs-navigation-drawer-item.js +1 -0
- package/dist/components/bs-navigation-drawer.d.ts +11 -0
- package/dist/components/bs-navigation-drawer.js +1 -0
- package/dist/components/bs-navigation-header.d.ts +11 -0
- package/dist/components/bs-navigation-header.js +1 -0
- package/dist/components/bs-radio.d.ts +11 -0
- package/dist/components/bs-radio.js +1 -0
- package/dist/components/bs-slider.d.ts +11 -0
- package/dist/components/bs-slider.js +1 -0
- package/dist/components/bs-source-link.js +1 -1
- package/dist/components/bs-switch.d.ts +11 -0
- package/dist/components/bs-switch.js +1 -0
- package/dist/components/bs-tab.d.ts +11 -0
- package/dist/components/bs-tab.js +1 -0
- package/dist/components/bs-tabs.d.ts +11 -0
- package/dist/components/bs-tabs.js +1 -0
- package/dist/components/bs-tooltip.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-BAOJc0V0.js +1 -0
- package/dist/components/{p-BpvhHQSw.js → p-Be1Pfcnm.js} +1 -1
- package/dist/components/{p-Cz2nfz2j.js → p-BqYyMGrB.js} +1 -1
- package/dist/components/p-CaWqTQBZ.js +1 -0
- package/dist/components/{p-DndQiCMP.js → p-DivZLd6i.js} +1 -1
- package/dist/components/{p-DHbUF0g6.js → p-xfx69LQx.js} +1 -1
- package/dist/esm/brandsync-wc.js +3 -3
- package/dist/esm/bs-ai-disclaimer.entry.js +3 -2
- package/dist/esm/bs-ai-greeting.entry.js +2 -2
- package/dist/esm/bs-ai-thinking.entry.js +2 -2
- package/dist/esm/bs-attachment-list.entry.js +2 -2
- package/dist/esm/bs-attachment.entry.js +3 -3
- package/dist/esm/bs-badge.entry.js +1 -1
- package/dist/esm/bs-button-skeleton.entry.js +2 -2
- package/dist/esm/bs-button.entry.js +3 -3
- package/dist/esm/bs-card.entry.js +1 -1
- package/dist/esm/bs-chatbot-feedback.entry.js +2 -2
- package/dist/esm/bs-chatbot-header.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/bs-checkbox.entry.js +92 -0
- package/dist/esm/bs-composer-status-banner.entry.js +14 -2
- package/dist/esm/bs-composer.entry.js +37 -4
- package/dist/esm/bs-data-table.entry.js +3 -3
- package/dist/esm/bs-icon-button.entry.js +38 -0
- package/dist/esm/bs-inline-tab.entry.js +67 -0
- package/dist/esm/bs-input.entry.js +3 -3
- package/dist/esm/bs-logo.entry.js +163 -0
- package/dist/esm/bs-menu_2.entry.js +3 -3
- package/dist/esm/bs-modal.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer-item.entry.js +102 -0
- package/dist/esm/bs-navigation-drawer.entry.js +79 -0
- package/dist/esm/bs-navigation-header.entry.js +42 -0
- package/dist/esm/bs-radio.entry.js +47 -0
- package/dist/esm/bs-slider.entry.js +189 -0
- package/dist/esm/bs-source-link.entry.js +3 -3
- package/dist/esm/bs-switch.entry.js +55 -0
- package/dist/esm/bs-tab.entry.js +78 -0
- package/dist/esm/bs-tabs.entry.js +37 -0
- package/dist/esm/bs-tooltip.entry.js +2 -2
- package/dist/esm/{index-nLORuTUY.js → index-DST5-cTx.js} +74 -2
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/bs-attachment/bs-attachment.d.ts +3 -9
- package/dist/types/components/bs-button/{bs-button.d.ts → bs-button/bs-button.d.ts} +5 -0
- package/dist/types/components/bs-button/{bs-button.stories.d.ts → bs-button/bs-button.stories.d.ts} +0 -2
- package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.d.ts +51 -0
- package/dist/types/components/bs-button/bs-icon-button/bs-icon-button.stories.d.ts +16 -0
- package/dist/types/components/bs-button-skeleton/bs-button-skeleton.d.ts +1 -1
- package/dist/types/components/bs-button-skeleton/bs-button-skeleton.stories.d.ts +1 -1
- package/dist/types/components/bs-checkbox/bs-checkbox.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +64 -0
- package/dist/types/components/bs-checkbox/bs-checkbox.stories.d.ts +23 -0
- package/dist/types/components/bs-composer/bs-composer.d.ts +26 -2
- package/dist/types/components/bs-composer-status-banner/bs-composer-status-banner.d.ts +14 -0
- package/dist/types/components/bs-logo/brandsync-logo-full-dark.d.ts +1 -0
- package/dist/types/components/bs-logo/brandsync-logo-full-light.d.ts +1 -0
- package/dist/types/components/bs-logo/brandsync-logo-mark.d.ts +1 -0
- package/dist/types/components/bs-logo/bs-logo.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-logo/bs-logo.d.ts +73 -0
- package/dist/types/components/bs-logo/bs-logo.stories.d.ts +17 -0
- package/dist/types/components/bs-radio/bs-radio.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-radio/bs-radio.d.ts +45 -0
- package/dist/types/components/bs-radio/bs-radio.stories.d.ts +16 -0
- package/dist/types/components/bs-slider/bs-slider.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-slider/bs-slider.d.ts +109 -0
- package/dist/types/components/bs-slider/bs-slider.stories.d.ts +24 -0
- package/dist/types/components/bs-switch/bs-switch.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-switch/bs-switch.d.ts +45 -0
- package/dist/types/components/bs-switch/bs-switch.stories.d.ts +17 -0
- package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.d.ts +65 -0
- package/dist/types/components/bs-tab/bs-inline-tab/bs-inline-tab.stories.d.ts +22 -0
- package/dist/types/components/bs-tab/bs-tab/bs-tab.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-tab/bs-tab/bs-tab.d.ts +74 -0
- package/dist/types/components/bs-tab/bs-tab/bs-tab.stories.d.ts +30 -0
- package/dist/types/components/bs-tab/bs-tabs/bs-tabs.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-tab/bs-tabs/bs-tabs.d.ts +45 -0
- package/dist/types/components/bs-tab/bs-tabs/bs-tabs.stories.d.ts +13 -0
- package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.cmp.test.d.ts +1 -0
- package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.d.ts +96 -0
- package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.d.ts +16 -0
- package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.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 +103 -0
- package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.stories.d.ts +20 -0
- package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.cmp.test.d.ts +1 -0
- package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.d.ts +60 -0
- package/dist/types/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.stories.d.ts +21 -0
- package/dist/types/components.d.ts +1973 -49
- package/package.json +1 -1
- package/dist/brandsync-wc/p-0d64ea40.entry.js +0 -1
- package/dist/brandsync-wc/p-16a54578.entry.js +0 -1
- package/dist/brandsync-wc/p-bc72439a.entry.js +0 -1
- package/dist/brandsync-wc/p-dad4a92c.entry.js +0 -1
- package/dist/brandsync-wc/p-eb4d87f0.entry.js +0 -1
- /package/dist/types/components/bs-button/{bs-button.cmp.test.d.ts → bs-button/bs-button.cmp.test.d.ts} +0 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
type BsSliderType = 'default' | 'segmented' | 'range';
|
|
3
|
+
interface BsSliderArgs {
|
|
4
|
+
type: BsSliderType;
|
|
5
|
+
showLabel: boolean;
|
|
6
|
+
label: string;
|
|
7
|
+
min: number;
|
|
8
|
+
max: number;
|
|
9
|
+
step: number;
|
|
10
|
+
value: number;
|
|
11
|
+
valueStart: number;
|
|
12
|
+
valueEnd: number;
|
|
13
|
+
segments: number;
|
|
14
|
+
disabled: boolean;
|
|
15
|
+
ariaLabel: string;
|
|
16
|
+
}
|
|
17
|
+
declare const meta: Meta<BsSliderArgs>;
|
|
18
|
+
export default meta;
|
|
19
|
+
type Story = StoryObj<BsSliderArgs>;
|
|
20
|
+
export declare const Default: Story;
|
|
21
|
+
export declare const Segmented: Story;
|
|
22
|
+
export declare const Range: Story;
|
|
23
|
+
export declare const Disabled: Story;
|
|
24
|
+
export declare const BareTrack: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
export type BsSwitchSize = 'md' | 'lg';
|
|
3
|
+
/**
|
|
4
|
+
* A toggle switch for an on/off setting that takes effect immediately (no explicit form
|
|
5
|
+
* submission required).
|
|
6
|
+
*
|
|
7
|
+
* ## When to use
|
|
8
|
+
* - A binary setting that applies right away (e.g. "Enable notifications", "Dark mode").
|
|
9
|
+
*
|
|
10
|
+
* ## When not to use
|
|
11
|
+
* - A binary choice that's part of a form submitted later, or one item within a group of
|
|
12
|
+
* independent choices -- use `bs-checkbox` instead.
|
|
13
|
+
* - A single mutually-exclusive choice from a set -- use a radio group instead.
|
|
14
|
+
*
|
|
15
|
+
* @slot - Default slot: the label text.
|
|
16
|
+
* @part track - The visual pill-shaped track.
|
|
17
|
+
* @part knob - The sliding circular knob.
|
|
18
|
+
* @part label - The label text wrapper.
|
|
19
|
+
*/
|
|
20
|
+
export declare class BsSwitch {
|
|
21
|
+
el: HTMLElement;
|
|
22
|
+
/** Sizing scale. Controls the track's width/height and the knob's diameter. */
|
|
23
|
+
size: BsSwitchSize;
|
|
24
|
+
/** Whether the switch is on. Mutable so clicking the label/input toggles it directly, and
|
|
25
|
+
* reflected so consumers can target `bs-switch[checked]` via CSS. */
|
|
26
|
+
checked: boolean;
|
|
27
|
+
/** Disables the switch: sets the native `disabled` attribute, suppresses hover/focus styling,
|
|
28
|
+
* and prevents toggling. */
|
|
29
|
+
disabled: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Accessible name for the switch. Required whenever the default (label) slot is empty (e.g. a
|
|
32
|
+
* bare "enabled" switch in a table row) -- without it, the internal native `<input>` has no
|
|
33
|
+
* accessible name at all. Setting `aria-label` directly on the `<bs-switch>` host does NOT
|
|
34
|
+
* work for this: that attribute stays on the light-DOM host and is never forwarded into the
|
|
35
|
+
* shadow DOM by the browser, so the actual focusable element (the native `<input>` inside) stays
|
|
36
|
+
* nameless. This prop exists specifically to bridge that gap -- same pattern as `bs-button`'s and
|
|
37
|
+
* `bs-checkbox`'s identical `ariaLabel` prop, both of which explicitly bind it onto their own
|
|
38
|
+
* internal focusable element for the same reason.
|
|
39
|
+
*/
|
|
40
|
+
ariaLabel: string | null;
|
|
41
|
+
/** Emitted when the checked state changes via user interaction, with the new `checked` value. */
|
|
42
|
+
bsChange: EventEmitter<boolean>;
|
|
43
|
+
private onChange;
|
|
44
|
+
render(): any;
|
|
45
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
type BsSwitchSize = 'md' | 'lg';
|
|
3
|
+
interface BsSwitchArgs {
|
|
4
|
+
size: BsSwitchSize;
|
|
5
|
+
checked: boolean;
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
label: string;
|
|
8
|
+
}
|
|
9
|
+
declare const meta: Meta<BsSwitchArgs>;
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<BsSwitchArgs>;
|
|
12
|
+
export declare const Default: Story;
|
|
13
|
+
export declare const Checked: Story;
|
|
14
|
+
export declare const Disabled: Story;
|
|
15
|
+
export declare const Medium: Story;
|
|
16
|
+
export declare const Large: Story;
|
|
17
|
+
export declare const AllCombinations: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
|
+
/**
|
|
3
|
+
* A pill-shaped tab button -- an optional leading icon plus a text label, rendered as a real
|
|
4
|
+
* `<button>` so it participates correctly in tab order and native click/keyboard activation.
|
|
5
|
+
* Unlike `bs-tab`'s underline indicator, selection here is communicated entirely by the pill's
|
|
6
|
+
* background fill color -- there is no separate indicator element.
|
|
7
|
+
*
|
|
8
|
+
* ## When to use
|
|
9
|
+
* - As one button within a segmented-control-style tab bar, where exactly one tab is
|
|
10
|
+
* selected/active at a time.
|
|
11
|
+
*
|
|
12
|
+
* ## When not to use
|
|
13
|
+
* - As a standalone action button -- use `bs-button` instead, `bs-inline-tab`'s visual language
|
|
14
|
+
* (muted pill until selected/hovered) only makes sense as part of a set.
|
|
15
|
+
*
|
|
16
|
+
* `selected` is NOT self-toggling -- clicking a `bs-inline-tab` only emits `bsSelect`, it does not
|
|
17
|
+
* set its own `selected` prop, and it does not unselect any sibling tabs. Wrap your
|
|
18
|
+
* `<bs-inline-tab>` elements in `<bs-tabs type="bs-inline-tab">` -- it owns `role="tablist"` and
|
|
19
|
+
* coordinates selection (listening for `bsSelect` and setting `selected`/`false` across siblings)
|
|
20
|
+
* for you. Using `bs-inline-tab` standalone, outside a `<bs-tabs>` wrapper, still means `selected`
|
|
21
|
+
* doesn't self-toggle and `role="tablist"` isn't provided automatically -- a consumer doing that
|
|
22
|
+
* would still need to coordinate `selected` and supply `role="tablist"` manually, same as
|
|
23
|
+
* `bs-tab.mdx`/`bs-radio.mdx` document for their own components. See `bs-inline-tab.mdx`'s
|
|
24
|
+
* Accessibility section for the full requirement, including `role="tabpanel"` on the corresponding
|
|
25
|
+
* content panels.
|
|
26
|
+
*
|
|
27
|
+
* @slot - Default slot: the tab's label text. When empty (icon-only), no space is reserved for it.
|
|
28
|
+
* @slot icon - Optional leading icon (24x24). When empty (text-only), no space is reserved for it.
|
|
29
|
+
* @part tab - The button element.
|
|
30
|
+
* @part icon - The icon wrapper.
|
|
31
|
+
* @part label - The label wrapper.
|
|
32
|
+
*/
|
|
33
|
+
export declare class BsInlineTab {
|
|
34
|
+
el: HTMLElement;
|
|
35
|
+
/** Whether this tab is the currently active one. NOT mutable and NOT self-toggling -- see the
|
|
36
|
+
* "Known gap" note in the class JSDoc. Still reflected as an attribute so consumers/CSS can
|
|
37
|
+
* target `bs-inline-tab[selected]`. */
|
|
38
|
+
selected: boolean;
|
|
39
|
+
/** Disables the tab: sets the native `disabled` attribute, suppresses hover/focus styling, and
|
|
40
|
+
* prevents clicking from emitting `bsSelect`. */
|
|
41
|
+
disabled: boolean;
|
|
42
|
+
/** Accessible name for the tab. Required for icon-only usage (no visible label text via the
|
|
43
|
+
* default slot) so screen readers still announce what the tab does -- without it, an icon-only
|
|
44
|
+
* tab has no discernible name at all (axe-core flags this as a critical `button-name`
|
|
45
|
+
* violation). Stencil reflects this camelCase prop to the `aria-label` HTML attribute
|
|
46
|
+
* automatically, same as `bs-tab`'s identical prop. */
|
|
47
|
+
ariaLabel: string | null;
|
|
48
|
+
/** Tracks whether the `icon` slot has assigned content. */
|
|
49
|
+
hasIcon: boolean;
|
|
50
|
+
/** Tracks whether the default (label) slot has assigned content. */
|
|
51
|
+
hasLabel: boolean;
|
|
52
|
+
/** Fires when the tab is clicked. Does not toggle `selected` itself -- see the class JSDoc. */
|
|
53
|
+
bsSelect: EventEmitter<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Computes the initial `hasIcon`/`hasLabel` state directly from the host's light DOM children,
|
|
56
|
+
* before first render -- same reasoning as `bs-tab.componentWillLoad` (a slot with zero assigned
|
|
57
|
+
* nodes from the start never fires `slotchange`).
|
|
58
|
+
*/
|
|
59
|
+
componentWillLoad(): void;
|
|
60
|
+
private hasSlottedContent;
|
|
61
|
+
private onIconSlotchange;
|
|
62
|
+
private onLabelSlotchange;
|
|
63
|
+
private onClick;
|
|
64
|
+
render(): any;
|
|
65
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
interface BsInlineTabArgs {
|
|
3
|
+
selected: boolean;
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
icon: boolean;
|
|
6
|
+
label: string;
|
|
7
|
+
ariaLabel: string;
|
|
8
|
+
}
|
|
9
|
+
declare const meta: Meta<BsInlineTabArgs>;
|
|
10
|
+
export default meta;
|
|
11
|
+
type Story = StoryObj<BsInlineTabArgs>;
|
|
12
|
+
export declare const Default: Story;
|
|
13
|
+
export declare const WithIcon: Story;
|
|
14
|
+
export declare const IconOnly: Story;
|
|
15
|
+
export declare const Selected: Story;
|
|
16
|
+
export declare const SelectedWithIcon: Story;
|
|
17
|
+
export declare const Disabled: Story;
|
|
18
|
+
interface BsInlineTabGroupArgs {
|
|
19
|
+
selectedTab: string;
|
|
20
|
+
icon: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare const Group: StoryObj<BsInlineTabGroupArgs>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { EventEmitter } from '../../../stencil-public-runtime';
|
|
2
|
+
export type BsTabIconPosition = 'start' | 'top';
|
|
3
|
+
/**
|
|
4
|
+
* A single tab button -- an optional icon plus a text label, rendered as a real `<button>` so it
|
|
5
|
+
* participates correctly in tab order and native click/keyboard activation.
|
|
6
|
+
*
|
|
7
|
+
* ## When to use
|
|
8
|
+
* - As one button within a tab bar, where exactly one tab is selected/active at a time.
|
|
9
|
+
*
|
|
10
|
+
* ## When not to use
|
|
11
|
+
* - As a standalone action button -- use `bs-button` instead, `bs-tab`'s visual language (muted
|
|
12
|
+
* until selected/hovered, underline indicator) only makes sense as part of a set.
|
|
13
|
+
*
|
|
14
|
+
* `selected` is NOT self-toggling -- clicking a `bs-tab` only emits `bsSelect`, it does not set its
|
|
15
|
+
* own `selected` prop, and it does not unselect any sibling tabs. Wrap your `<bs-tab>` elements in
|
|
16
|
+
* `<bs-tabs type="bs-tab">` -- it owns `role="tablist"` and coordinates selection (listening for
|
|
17
|
+
* `bsSelect` and setting `selected`/`false` across siblings) for you. Using `bs-tab` standalone,
|
|
18
|
+
* outside a `<bs-tabs>` wrapper, still means `selected` doesn't self-toggle and `role="tablist"`
|
|
19
|
+
* isn't provided automatically -- a consumer doing that would still need to coordinate `selected`
|
|
20
|
+
* and supply `role="tablist"` manually, same as `bs-radio.mdx` documents for `bs-radio`'s missing
|
|
21
|
+
* `bs-radio-group`. See `bs-tab.mdx`'s Accessibility section for the full requirement, including
|
|
22
|
+
* `role="tabpanel"` on the corresponding content panels.
|
|
23
|
+
*
|
|
24
|
+
* @slot - Default slot: the tab's label text. When empty (icon-only), no space is reserved for it.
|
|
25
|
+
* @slot icon - Optional icon (24x24). When empty (text-only), no space is reserved for it.
|
|
26
|
+
* @slot badge - Optional trailing badge, rendered after the label (e.g. an unread count). Typically
|
|
27
|
+
* a `bs-badge` element -- consumer's responsibility to style/populate, this component just reserves
|
|
28
|
+
* a slot for it. Only rendered for text-only and icon+text-horizontal layouts, per the design spec
|
|
29
|
+
* (not icon-only or icon+text-vertical).
|
|
30
|
+
* @part tab - The button element.
|
|
31
|
+
* @part icon - The icon wrapper.
|
|
32
|
+
* @part label - The label wrapper.
|
|
33
|
+
* @part badge - The badge wrapper.
|
|
34
|
+
* @part indicator - The selection/hover underline indicator.
|
|
35
|
+
*/
|
|
36
|
+
export declare class BsTab {
|
|
37
|
+
el: HTMLElement;
|
|
38
|
+
/** Whether this tab is the currently active one. NOT mutable and NOT self-toggling -- see the
|
|
39
|
+
* "Known gap" note in the class JSDoc. Still reflected as an attribute so consumers/CSS can
|
|
40
|
+
* target `bs-tab[selected]`. */
|
|
41
|
+
selected: boolean;
|
|
42
|
+
/** Disables the tab: sets the native `disabled` attribute, suppresses hover/focus styling, and
|
|
43
|
+
* prevents clicking from emitting `bsSelect`. */
|
|
44
|
+
disabled: boolean;
|
|
45
|
+
/** Where the icon sits relative to the label, when both `icon` and the default slot are
|
|
46
|
+
* populated. Ignored for icon-only/text-only layouts. */
|
|
47
|
+
iconPosition: BsTabIconPosition;
|
|
48
|
+
/** Accessible name for the tab. Required for icon-only usage (no visible label text via the
|
|
49
|
+
* default slot) so screen readers still announce what the tab does -- without it, an icon-only
|
|
50
|
+
* tab has no discernible name at all (axe-core flags this as a critical `button-name`
|
|
51
|
+
* violation). Stencil reflects this camelCase prop to the `aria-label` HTML attribute
|
|
52
|
+
* automatically, same as `bs-button`'s identical prop. */
|
|
53
|
+
ariaLabel: string | null;
|
|
54
|
+
/** Tracks whether the `icon` slot has assigned content. */
|
|
55
|
+
hasIcon: boolean;
|
|
56
|
+
/** Tracks whether the default (label) slot has assigned content. */
|
|
57
|
+
hasLabel: boolean;
|
|
58
|
+
/** Tracks whether the `badge` slot has assigned content. */
|
|
59
|
+
hasBadge: boolean;
|
|
60
|
+
/** Fires when the tab is clicked. Does not toggle `selected` itself -- see the class JSDoc. */
|
|
61
|
+
bsSelect: EventEmitter<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Computes the initial `hasIcon`/`hasLabel`/`hasBadge` state directly from the host's light DOM
|
|
64
|
+
* children, before first render -- same reasoning as `bs-button.componentWillLoad` (a slot with
|
|
65
|
+
* zero assigned nodes from the start never fires `slotchange`).
|
|
66
|
+
*/
|
|
67
|
+
componentWillLoad(): void;
|
|
68
|
+
private hasSlottedContent;
|
|
69
|
+
private onIconSlotchange;
|
|
70
|
+
private onLabelSlotchange;
|
|
71
|
+
private onBadgeSlotchange;
|
|
72
|
+
private onClick;
|
|
73
|
+
render(): any;
|
|
74
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import type { BsTabIconPosition } from './bs-tab';
|
|
3
|
+
interface BsTabArgs {
|
|
4
|
+
selected: boolean;
|
|
5
|
+
disabled: boolean;
|
|
6
|
+
icon: boolean;
|
|
7
|
+
iconPosition: BsTabIconPosition;
|
|
8
|
+
badge: boolean;
|
|
9
|
+
label: string;
|
|
10
|
+
ariaLabel: string;
|
|
11
|
+
}
|
|
12
|
+
declare const meta: Meta<BsTabArgs>;
|
|
13
|
+
export default meta;
|
|
14
|
+
type Story = StoryObj<BsTabArgs>;
|
|
15
|
+
export declare const Default: Story;
|
|
16
|
+
export declare const IconOnly: Story;
|
|
17
|
+
export declare const IconAndTextHorizontal: Story;
|
|
18
|
+
export declare const IconAndTextVertical: Story;
|
|
19
|
+
export declare const Selected: Story;
|
|
20
|
+
export declare const Disabled: Story;
|
|
21
|
+
export declare const WithBadge: Story;
|
|
22
|
+
type BsTabGroupOrientation = 'horizontal' | 'vertical';
|
|
23
|
+
interface BsTabGroupArgs {
|
|
24
|
+
selectedTab: string;
|
|
25
|
+
icon: boolean;
|
|
26
|
+
iconPosition: BsTabIconPosition;
|
|
27
|
+
badge: boolean;
|
|
28
|
+
groupOrientation: BsTabGroupOrientation;
|
|
29
|
+
}
|
|
30
|
+
export declare const Group: StoryObj<BsTabGroupArgs>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export type BsTabsType = 'bs-tab' | 'bs-inline-tab';
|
|
2
|
+
export type BsTabsOrientation = 'horizontal' | 'vertical';
|
|
3
|
+
/**
|
|
4
|
+
* A tab-group wrapper: owns `role="tablist"` and coordinates selection across its slotted
|
|
5
|
+
* `<bs-tab>` or `<bs-inline-tab>` children, so consumers no longer have to hand-roll this.
|
|
6
|
+
*
|
|
7
|
+
* `bs-tab.mdx`/`bs-inline-tab.mdx` previously documented this coordination -- listening for
|
|
8
|
+
* `bsSelect` and setting `selected`/`false` on siblings, plus supplying `role="tablist"` on
|
|
9
|
+
* whatever element groups the tabs -- as a "Known gap"/manual consumer responsibility. This
|
|
10
|
+
* component is that wrapper: it renders the `role="tablist"` element and listens for `bsSelect`
|
|
11
|
+
* itself. Using `<bs-tab>`/`<bs-inline-tab>` standalone, outside a `<bs-tabs>` wrapper, still means
|
|
12
|
+
* `selected` doesn't self-toggle -- a consumer doing that would still need to coordinate `selected`
|
|
13
|
+
* manually -- but that's no longer the first recommended path.
|
|
14
|
+
*
|
|
15
|
+
* ## When to use
|
|
16
|
+
* - Wrapping a set of `<bs-tab>` (underline style) or `<bs-inline-tab>` (pill style) elements that
|
|
17
|
+
* should behave as a single-selection tab bar.
|
|
18
|
+
*
|
|
19
|
+
* ## When not to use
|
|
20
|
+
* - For a single, standalone tab button not participating in a group -- use `bs-tab`/`bs-inline-tab`
|
|
21
|
+
* directly.
|
|
22
|
+
*
|
|
23
|
+
* @slot - Default slot: the tab elements (`<bs-tab>` or `<bs-inline-tab>`, matching `type`) that
|
|
24
|
+
* make up this group.
|
|
25
|
+
* @part tablist - The wrapping element carrying `role="tablist"`.
|
|
26
|
+
*/
|
|
27
|
+
export declare class BsTabs {
|
|
28
|
+
el: HTMLElement;
|
|
29
|
+
/** Which tab-button family this group wraps. Governs the wrapper's own visual treatment (gap-only
|
|
30
|
+
* for `bs-tab`, a filled pill bar for `bs-inline-tab`). Not reflected as an attribute -- nothing
|
|
31
|
+
* external needs to target it via CSS attribute selector, it only drives internal class names. */
|
|
32
|
+
type: BsTabsType;
|
|
33
|
+
/** Layout direction of the tab bar itself. Sets `aria-orientation` on the internal wrapper and
|
|
34
|
+
* switches `flex-direction`. */
|
|
35
|
+
orientation: BsTabsOrientation;
|
|
36
|
+
/**
|
|
37
|
+
* Catches `bsSelect` bubbling up from any slotted `<bs-tab>`/`<bs-inline-tab>` (Stencil's
|
|
38
|
+
* `@Event()` defaults to `bubbles: true, composed: true`, and `@Listen` without a target listens
|
|
39
|
+
* on the host itself), and sets `selected` on the clicked child / `false` on its siblings.
|
|
40
|
+
* Disabled children never emit `bsSelect` in the first place (each's own `onClick` guards
|
|
41
|
+
* `if (this.disabled) return;`), so no special-casing is needed here.
|
|
42
|
+
*/
|
|
43
|
+
onTabSelect(ev: CustomEvent<void>): void;
|
|
44
|
+
render(): any;
|
|
45
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
import type { BsTabsOrientation, BsTabsType } from './bs-tabs';
|
|
3
|
+
interface BsTabsArgs {
|
|
4
|
+
type: BsTabsType;
|
|
5
|
+
orientation: BsTabsOrientation;
|
|
6
|
+
selectedTab: string;
|
|
7
|
+
}
|
|
8
|
+
declare const meta: Meta<BsTabsArgs>;
|
|
9
|
+
export default meta;
|
|
10
|
+
type Story = StoryObj<BsTabsArgs>;
|
|
11
|
+
export declare const Default: Story;
|
|
12
|
+
export declare const InlineTabGroup: Story;
|
|
13
|
+
export declare const Vertical: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { EventEmitter } from '../../../../stencil-public-runtime';
|
|
2
|
+
/**
|
|
3
|
+
* A left-side persistent navigation sidebar: the BrandSync logo, a "Main Menu" title with a
|
|
4
|
+
* collapse toggle, a reserved slot for a search field, and a scrollable list of nav items.
|
|
5
|
+
*
|
|
6
|
+
* ## When to use
|
|
7
|
+
* - The primary in-app navigation, shown alongside `bs-navigation-header` (typically that
|
|
8
|
+
* header's `with-navigation-drawer` alignment, which omits its own logo since this component
|
|
9
|
+
* already renders one).
|
|
10
|
+
*
|
|
11
|
+
* ## When not to use
|
|
12
|
+
* - The top navigation bar itself -- use `bs-navigation-header` instead.
|
|
13
|
+
*
|
|
14
|
+
* This component renders a real `<nav>` landmark (no explicit `role` needed -- `<nav>` already
|
|
15
|
+
* carries the implicit `navigation` role), labeled via `aria-label={heading}` so the landmark
|
|
16
|
+
* still has a name even when collapsed (see below).
|
|
17
|
+
*
|
|
18
|
+
* `collapsed` narrows the drawer to a 96px icon-only rail, per Figma node 8028:135374
|
|
19
|
+
* ("Type=Collapsed"): the title text disappears, the logo swaps from the full "EG BrandSync"
|
|
20
|
+
* wordmark (`bs-logo variant="full"`) to the real icon-only mark (`bs-logo variant="mark"` -- a
|
|
21
|
+
* second, properly-designed asset, not a CSS crop of the full one) via CSS visibility toggling on
|
|
22
|
+
* both, the same `:host([collapsed])` attribute-selector pattern already used for the
|
|
23
|
+
* `search`/`search-trigger` swap below, the `search` slot is replaced by a compact built-in
|
|
24
|
+
* search-trigger button (this component can't meaningfully shrink arbitrary slotted search-field
|
|
25
|
+
* content down to icon size itself, so it emits `bsSearchClick` instead -- e.g. to open a full
|
|
26
|
+
* search overlay), and every top-level
|
|
27
|
+
* `bs-navigation-drawer-item`'s layout switches from icon-beside-label to icon-above-caption.
|
|
28
|
+
* That last part is real prop propagation, not a CSS trick: this component keeps each direct-child
|
|
29
|
+
* item's own `collapsed` prop in sync with its own (see `syncItemsCollapsed` below), the same
|
|
30
|
+
* direct-children-prop-sync approach `bs-tabs` already uses for coordinating `selected` across its
|
|
31
|
+
* `bs-tab` children. Clicking the toggle self-toggles `collapsed` (simple local UI state, not
|
|
32
|
+
* something needing cross-component coordination -- closer to `bs-switch`'s self-toggling
|
|
33
|
+
* `checked` than `bs-tab`'s non-self-toggling `selected`) and emits `bsCollapse` with the new
|
|
34
|
+
* value. The toggle's own caret icon does NOT rotate when collapsed -- Figma's collapsed mock
|
|
35
|
+
* reuses the identical left-pointing "CaretLeft" asset unchanged, confirmed by directly inspecting
|
|
36
|
+
* that state, so this deliberately does not add the same "flip on toggle" idiom the drawer item's
|
|
37
|
+
* own disclosure chevron does (that one really is an unconfirmed addition; this one was checked).
|
|
38
|
+
*
|
|
39
|
+
* @slot search - Reserved for a search field, e.g. a `bs-input type="search"`. This component
|
|
40
|
+
* does not build one itself. Hidden while `collapsed` (see above).
|
|
41
|
+
* @slot - Default slot: the scrollable list of nav items, typically one or more
|
|
42
|
+
* `bs-navigation-drawer-item` elements.
|
|
43
|
+
* @part logo - The wrapper around the BrandSync brand mark. Two of these exist in the shadow DOM
|
|
44
|
+
* at once (one wrapping a `bs-logo variant="full"`, one wrapping a `bs-logo variant="mark"`),
|
|
45
|
+
* both carrying this same part name (the same "multiple elements, one shared part name"
|
|
46
|
+
* approach `bs-attachment`'s `star` part uses) -- only one is visible at a time, toggled by
|
|
47
|
+
* plain CSS on `collapsed` (see above), so `::part(logo)` always reaches whichever is showing.
|
|
48
|
+
* @part title - The "Main Menu" heading text wrapper.
|
|
49
|
+
* @part collapse - The collapse toggle button.
|
|
50
|
+
* @part search - The wrapper around the `search` slot.
|
|
51
|
+
* @part search-trigger - The compact search button shown instead of the `search` slot while `collapsed`.
|
|
52
|
+
* @part items - The wrapper around the default (items) slot.
|
|
53
|
+
*/
|
|
54
|
+
export declare class BsNavigationDrawer {
|
|
55
|
+
el: HTMLElement;
|
|
56
|
+
/** Heading text shown next to the collapse toggle, and used as the `<nav>` landmark's
|
|
57
|
+
* `aria-label` (so the landmark keeps a name even when `collapsed` hides the visible text). */
|
|
58
|
+
heading: string;
|
|
59
|
+
/** Whether this drawer can be collapsed at all. `false` renders no collapse toggle/chevron --
|
|
60
|
+
* a "fixed" side nav (Carbon's terminology: a `Fixed Side Nav` never collapses, as opposed to a
|
|
61
|
+
* rail-capable one) that's always fully expanded. `collapsed` is ignored while this is `false`. */
|
|
62
|
+
collapsible: boolean;
|
|
63
|
+
/** Narrows the drawer to a 96px icon-only rail (Figma node 8028:135374). Mutable and reflected
|
|
64
|
+
* -- clicking the collapse toggle toggles this directly (self-toggling, see the class doc above
|
|
65
|
+
* for why), and this component keeps every direct-child `bs-navigation-drawer-item`'s own
|
|
66
|
+
* `collapsed` prop synced to match (see `syncItemsCollapsed`). */
|
|
67
|
+
collapsed: boolean;
|
|
68
|
+
/** Fires with the new `collapsed` value when the collapse toggle button is clicked. */
|
|
69
|
+
bsCollapse: EventEmitter<boolean>;
|
|
70
|
+
/** Fires when the compact search-trigger button (shown instead of the `search` slot while
|
|
71
|
+
* `collapsed`) is clicked -- e.g. to open a full search overlay. This component has no
|
|
72
|
+
* visibility into what the `search` slot actually contains, so it can't drive a real search
|
|
73
|
+
* itself once shrunk to icon size. */
|
|
74
|
+
bsSearchClick: EventEmitter<void>;
|
|
75
|
+
/** Forwarded straight to both internal `bs-logo` elements' own `background` prop. Defaults to
|
|
76
|
+
* `"auto"`, which follows the ambient `[data-theme="dark"]` state automatically (see `bs-logo`'s
|
|
77
|
+
* own docs) -- so if this drawer ends up on a dark surface via the normal theming mechanism, the
|
|
78
|
+
* logo switches to its dedicated dark-background asset with no wiring needed. Set
|
|
79
|
+
* `"light"`/`"dark"` explicitly only if you've overridden `--bs-navigation-drawer-bg` to
|
|
80
|
+
* something dark yourself *without* setting `[data-theme="dark"]`, and need to pin the logo
|
|
81
|
+
* regardless of theme. Has no visible effect on the `variant="mark"` logo shown while
|
|
82
|
+
* `collapsed` (see `bs-logo`'s own docs -- there's only one real designed mark asset, it's
|
|
83
|
+
* background-agnostic). */
|
|
84
|
+
logoBackground: 'auto' | 'light' | 'dark';
|
|
85
|
+
onCollapsedChange(collapsed: boolean): void;
|
|
86
|
+
componentDidLoad(): void;
|
|
87
|
+
/** Keeps every direct-child `bs-navigation-drawer-item`'s `collapsed` prop in sync with this
|
|
88
|
+
* component's own -- same direct-children-prop-sync approach `bs-tabs` uses for `selected`
|
|
89
|
+
* across its `bs-tab` children. Only direct children (top-level items): Figma's collapsed rail
|
|
90
|
+
* never shows nested/expanded children in the first place (see bs-navigation-drawer-item.css's
|
|
91
|
+
* `:host([collapsed])` rule forcing those hidden), so there's nothing to sync on them. */
|
|
92
|
+
private syncItemsCollapsed;
|
|
93
|
+
private onCollapseClick;
|
|
94
|
+
private onSearchTriggerClick;
|
|
95
|
+
render(): any;
|
|
96
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
interface BsNavigationDrawerArgs {
|
|
3
|
+
heading: string;
|
|
4
|
+
collapsible: boolean;
|
|
5
|
+
logoBackground: 'auto' | 'light' | 'dark';
|
|
6
|
+
}
|
|
7
|
+
declare const meta: Meta<BsNavigationDrawerArgs>;
|
|
8
|
+
export default meta;
|
|
9
|
+
type Story = StoryObj<BsNavigationDrawerArgs>;
|
|
10
|
+
export declare const FixedSideNav: Story;
|
|
11
|
+
export declare const FixedSideNavWithDivider: Story;
|
|
12
|
+
export declare const FixedSideNavWithIcons: Story;
|
|
13
|
+
export declare const Collapsed: Story;
|
|
14
|
+
export declare const Dark: Story;
|
|
15
|
+
export declare const WithoutSearch: Story;
|
|
16
|
+
export declare const EmptyItems: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { EventEmitter } from '../../../../stencil-public-runtime';
|
|
2
|
+
/**
|
|
3
|
+
* A single row within a `bs-navigation-drawer`'s item list -- either a plain leaf nav item, or an
|
|
4
|
+
* `expandable` group header that discloses nested `bs-navigation-drawer-item` children.
|
|
5
|
+
*
|
|
6
|
+
* ## When to use
|
|
7
|
+
* - Every row inside a `bs-navigation-drawer`'s default slot.
|
|
8
|
+
*
|
|
9
|
+
* ## When not to use
|
|
10
|
+
* - A standalone action outside a navigation drawer -- use `bs-button`/`bs-menu-item` instead.
|
|
11
|
+
*
|
|
12
|
+
* Click behavior is mutually exclusive, based on `expandable`:
|
|
13
|
+
* - `expandable = false` (a plain leaf item): clicking only emits `bsSelect`. `selected` is NOT
|
|
14
|
+
* self-toggling -- same non-self-toggling precedent as `bs-tab`'s `selected` (see `bs-tab.tsx`'s
|
|
15
|
+
* class doc): coordinating which sibling row is selected needs cross-item state a
|
|
16
|
+
* consumer/wrapper owns, not something this component can reason about on its own.
|
|
17
|
+
* - `expandable = true` (a group header, never shown with a `selected` tint): clicking toggles
|
|
18
|
+
* `this.expanded` directly and emits `bsToggle` with the new value, and does NOT emit
|
|
19
|
+
* `bsSelect`. This IS self-toggling, unlike `selected` above -- it's simple local disclosure
|
|
20
|
+
* state with no cross-item coordination needed, closer to `bs-switch`'s self-toggling `checked`
|
|
21
|
+
* than `bs-tab`'s non-self-toggling `selected`.
|
|
22
|
+
*
|
|
23
|
+
* Nesting: put child `<bs-navigation-drawer-item nested>` elements inside a parent
|
|
24
|
+
* `<bs-navigation-drawer-item expandable>` with `slot="children"`. The parent shows/hides that
|
|
25
|
+
* slot's content based on its own `expanded` prop, via a pure-CSS attribute selector (no JS
|
|
26
|
+
* visibility toggling needed, since `expanded` is reflected).
|
|
27
|
+
*
|
|
28
|
+
* `collapsed` switches this row from its normal icon-beside-label row layout to a compact
|
|
29
|
+
* icon-above-caption column (per Figma node 8028:135374, the drawer's "Type=Collapsed" state) --
|
|
30
|
+
* you don't need to set this yourself on every item: a parent `bs-navigation-drawer` keeps its own
|
|
31
|
+
* top-level items' `collapsed` prop in sync with its own `collapsed` state automatically (see
|
|
32
|
+
* `bs-navigation-drawer.tsx`'s `syncItemsCollapsed`, the same direct-children-prop-sync approach
|
|
33
|
+
* `bs-tabs` uses for coordinating `selected` across its own `bs-tab` children). It's still a public
|
|
34
|
+
* prop so a standalone item (or this component's own stories) can be demoed without the parent.
|
|
35
|
+
*
|
|
36
|
+
* @slot - Default slot: the row's label text.
|
|
37
|
+
* @slot icon - Optional leading icon (24x24). Only rendered (and only reserves layout space) when
|
|
38
|
+
* populated -- same "only take up space if slotted" pattern as `bs-tab`'s `icon` slot. Not
|
|
39
|
+
* rendered at all for `nested` rows (Figma's nested rows never have icons).
|
|
40
|
+
* @slot children - `expandable` only: nested `bs-navigation-drawer-item` rows, shown/hidden based
|
|
41
|
+
* on `expanded`.
|
|
42
|
+
* @part item - The row's root `<button>` element.
|
|
43
|
+
* @part icon - The icon wrapper (top-level, non-`nested` rows only).
|
|
44
|
+
* @part label - The label text wrapper.
|
|
45
|
+
* @part chevron - The trailing expand/collapse chevron wrapper (`expandable` only).
|
|
46
|
+
* @part children - The wrapper around the `children` slot.
|
|
47
|
+
*/
|
|
48
|
+
export declare class BsNavigationDrawerItem {
|
|
49
|
+
el: HTMLElement;
|
|
50
|
+
/** Tints the row's background/text to indicate it's the current destination. NOT
|
|
51
|
+
* self-toggling -- see the class doc above for why. Ignored (never applied) when `expandable`
|
|
52
|
+
* is true. Reflected so consumers/CSS can target `bs-navigation-drawer-item[selected]`. */
|
|
53
|
+
selected: boolean;
|
|
54
|
+
/** Renders this row as a disclosure/group header (trailing chevron, self-toggling `expanded`,
|
|
55
|
+
* `bsToggle` instead of `bsSelect` on click) instead of a plain navigable leaf item. See the
|
|
56
|
+
* class doc above for the full click-behavior split. */
|
|
57
|
+
expandable: boolean;
|
|
58
|
+
/** Whether an `expandable` row's `children` slot is shown. Mutable and reflected -- clicking an
|
|
59
|
+
* `expandable` row toggles this directly (self-toggling, unlike `selected` above), and CSS
|
|
60
|
+
* shows/hides the `children` slot wrapper based on the reflected attribute. Ignored when
|
|
61
|
+
* `expandable` is false. */
|
|
62
|
+
expanded: boolean;
|
|
63
|
+
/** Marks this as a child row nested under an `expandable` parent (via `slot="children"`) --
|
|
64
|
+
* deepens the left indent and stops reserving `icon` slot space entirely (Figma's nested rows
|
|
65
|
+
* never have icons). */
|
|
66
|
+
nested: boolean;
|
|
67
|
+
/**
|
|
68
|
+
* Optional accessible name override. Not required for `collapsed` rows -- unlike an
|
|
69
|
+
* icon-only button, the label caption stays visible (just restyled smaller, under the icon) in
|
|
70
|
+
* that mode per Figma, so the button's default accessible-name computation (its own text
|
|
71
|
+
* content) already works. Set this if you want a fuller/different name than the visible caption
|
|
72
|
+
* (e.g. truncated captions, or matching `bs-switch`/`bs-slider`'s `ariaLabel` convention for
|
|
73
|
+
* consistency).
|
|
74
|
+
*/
|
|
75
|
+
ariaLabel: string | null;
|
|
76
|
+
/**
|
|
77
|
+
* Switches this row to the compact icon-above-caption column layout used when its parent
|
|
78
|
+
* `bs-navigation-drawer` is `collapsed` (see the class doc above). Reflected so
|
|
79
|
+
* `bs-navigation-drawer-item[collapsed]` is CSS-targetable. Also forces `expandable` rows'
|
|
80
|
+
* chevron and `children` slot to stay hidden regardless of `expanded` -- Figma's collapsed rail
|
|
81
|
+
* never shows a nested tree.
|
|
82
|
+
*/
|
|
83
|
+
collapsed: boolean;
|
|
84
|
+
/** Fires on click, only when `expandable` is false. See the class doc above. */
|
|
85
|
+
bsSelect: EventEmitter<void>;
|
|
86
|
+
/** Fires with the new `expanded` value on click, only when `expandable` is true. See the class
|
|
87
|
+
* doc above. */
|
|
88
|
+
bsToggle: EventEmitter<boolean>;
|
|
89
|
+
/** Tracks whether the `icon` slot has assigned content, so the icon wrapper only reserves
|
|
90
|
+
* layout space when there's actually an icon -- same pattern as `bs-tab`'s `hasIcon`. Not used
|
|
91
|
+
* at all for `nested` rows, which never render an icon wrapper in the first place. */
|
|
92
|
+
hasIcon: boolean;
|
|
93
|
+
/**
|
|
94
|
+
* Computes the initial `hasIcon` state directly from the host's light DOM children, before
|
|
95
|
+
* first render -- same reasoning as `bs-tab.componentWillLoad`'s identical comment (a slot with
|
|
96
|
+
* zero assigned nodes from the start never fires `slotchange`).
|
|
97
|
+
*/
|
|
98
|
+
componentWillLoad(): void;
|
|
99
|
+
private hasSlottedContent;
|
|
100
|
+
private onIconSlotchange;
|
|
101
|
+
private onClick;
|
|
102
|
+
render(): any;
|
|
103
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Meta, StoryObj } from '@storybook/web-components-vite';
|
|
2
|
+
interface BsNavigationDrawerItemArgs {
|
|
3
|
+
label: string;
|
|
4
|
+
selected: boolean;
|
|
5
|
+
expandable: boolean;
|
|
6
|
+
expanded: boolean;
|
|
7
|
+
nested: boolean;
|
|
8
|
+
icon: boolean;
|
|
9
|
+
collapsed: boolean;
|
|
10
|
+
}
|
|
11
|
+
declare const meta: Meta<BsNavigationDrawerItemArgs>;
|
|
12
|
+
export default meta;
|
|
13
|
+
type Story = StoryObj<BsNavigationDrawerItemArgs>;
|
|
14
|
+
export declare const Default: Story;
|
|
15
|
+
export declare const Selected: Story;
|
|
16
|
+
export declare const Expandable: Story;
|
|
17
|
+
export declare const ExpandableWithChildren: Story;
|
|
18
|
+
export declare const Nested: Story;
|
|
19
|
+
export declare const IconOnlyLabelSpace: Story;
|
|
20
|
+
export declare const Collapsed: Story;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|