@brandsync/wc 0.0.11 → 0.1.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/custom-elements.json +5869 -1633
- package/dist/brandsync-wc/brandsync-wc.css +20 -0
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/p-00bb9bda.entry.js +1 -0
- package/dist/brandsync-wc/{p-8dff4f24.entry.js → p-0847f5c0.entry.js} +1 -1
- package/dist/brandsync-wc/p-0ba35c3b.entry.js +1 -0
- package/dist/brandsync-wc/{p-073e5fee.entry.js → p-0f3cb0c4.entry.js} +1 -1
- package/dist/brandsync-wc/p-10f6f3cd.entry.js +1 -0
- package/dist/brandsync-wc/{p-c6d330c3.entry.js → p-111974df.entry.js} +1 -1
- package/dist/brandsync-wc/p-11f3fceb.entry.js +1 -0
- package/dist/brandsync-wc/p-171fed0c.entry.js +1 -0
- package/dist/brandsync-wc/{p-dd224cb3.entry.js → p-18813680.entry.js} +1 -1
- package/dist/brandsync-wc/p-1b7c9928.entry.js +1 -0
- package/dist/brandsync-wc/p-1ce7dd64.entry.js +1 -0
- package/dist/brandsync-wc/p-2063a6d6.entry.js +1 -0
- package/dist/brandsync-wc/{p-4ca15322.entry.js → p-20c24179.entry.js} +1 -1
- package/dist/brandsync-wc/{p-b174403d.entry.js → p-321ed4d3.entry.js} +1 -1
- package/dist/brandsync-wc/p-38aad266.entry.js +1 -0
- package/dist/brandsync-wc/p-43e37883.entry.js +1 -0
- package/dist/brandsync-wc/p-55a8d4b5.entry.js +1 -0
- package/dist/brandsync-wc/p-59ac2495.entry.js +1 -0
- package/dist/brandsync-wc/p-5ae9e60e.entry.js +1 -0
- package/dist/brandsync-wc/p-6b469b2d.entry.js +1 -0
- package/dist/brandsync-wc/p-6d85fba4.entry.js +1 -0
- package/dist/brandsync-wc/p-6e95eb36.entry.js +1 -0
- package/dist/brandsync-wc/{p-84ae4420.entry.js → p-73217b90.entry.js} +1 -1
- package/dist/brandsync-wc/p-752c04c8.entry.js +1 -0
- package/dist/brandsync-wc/p-79af762c.entry.js +1 -0
- package/dist/brandsync-wc/p-81d49240.entry.js +1 -0
- package/dist/brandsync-wc/p-91551e7b.entry.js +1 -0
- package/dist/brandsync-wc/p-917a5bbc.entry.js +1 -0
- package/dist/brandsync-wc/{p-0b858120.entry.js → p-9876e83c.entry.js} +1 -1
- package/dist/brandsync-wc/p-9bcd99aa.entry.js +1 -0
- package/dist/brandsync-wc/{p-d1dc2ced.entry.js → p-9c4768aa.entry.js} +1 -1
- package/dist/brandsync-wc/{p-DP_bvuvB.js → p-Do3l4of3.js} +2 -2
- package/dist/brandsync-wc/p-aa43d478.entry.js +1 -0
- package/dist/brandsync-wc/p-c3079ad7.entry.js +1 -0
- package/dist/brandsync-wc/{p-74a4dd91.entry.js → p-c3c383dc.entry.js} +1 -1
- package/dist/brandsync-wc/p-cc79e75f.entry.js +1 -0
- package/dist/brandsync-wc/p-ce7fc368.entry.js +1 -0
- package/dist/brandsync-wc/{p-030a8ba7.entry.js → p-d3265e70.entry.js} +1 -1
- package/dist/brandsync-wc/p-d55bbcec.entry.js +1 -0
- package/dist/brandsync-wc/{p-1bf0b2d5.entry.js → p-e93e944b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7a605d98.entry.js → p-eb04c578.entry.js} +1 -1
- package/dist/brandsync-wc/{p-3c8fbaa8.entry.js → p-f0ae2740.entry.js} +1 -1
- package/dist/brandsync-wc/p-f4f22015.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-avatar.cjs.entry.js +60 -0
- package/dist/cjs/bs-badge.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +56 -0
- package/dist/cjs/bs-breadcrumb.cjs.entry.js +33 -0
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +49 -0
- 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 +10 -3
- 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-skeleton.cjs.entry.js +20 -0
- package/dist/cjs/bs-checkbox.cjs.entry.js +14 -3
- 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-dialog.cjs.entry.js +110 -0
- 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 +24 -12
- package/dist/cjs/bs-logo.cjs.entry.js +165 -0
- package/dist/cjs/{bs-menu_2.cjs.entry.js → bs-menu-item.cjs.entry.js} +2 -15
- package/dist/cjs/bs-menu.cjs.entry.js +17 -0
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +104 -0
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +87 -0
- package/dist/cjs/bs-navigation-header.cjs.entry.js +44 -0
- package/dist/cjs/bs-pagination.cjs.entry.js +85 -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-snackbar.cjs.entry.js +41 -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-CGrdFg95.js → index-DHVw-IPK.js} +2 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +21 -3
- 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-avatar/bs-avatar.cmp.test.js +54 -0
- package/dist/collection/components/bs-avatar/bs-avatar.css +197 -0
- package/dist/collection/components/bs-avatar/bs-avatar.js +251 -0
- package/dist/collection/components/bs-avatar/bs-avatar.stories.js +67 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.cmp.test.js +62 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.css +93 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +130 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.cmp.test.js +118 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.css +125 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +192 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.cmp.test.js +58 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.css +18 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +129 -0
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.stories.js +84 -0
- 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-card/bs-card.cmp.test.js +19 -0
- package/dist/collection/components/bs-card/bs-card.css +37 -5
- package/dist/collection/components/bs-card/bs-card.js +18 -2
- package/dist/collection/components/bs-card/bs-card.stories.js +17 -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.css +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.cmp.test.js +23 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.css +64 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +81 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.stories.js +25 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox.cmp.test.js +10 -0
- package/dist/collection/components/bs-checkbox/bs-checkbox.css +7 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox.js +32 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox.stories.js +12 -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-modal/bs-modal.cmp.test.js → bs-dialog/bs-dialog.cmp.test.js} +63 -19
- package/dist/collection/components/bs-dialog/bs-dialog.css +130 -0
- package/dist/collection/components/bs-dialog/bs-dialog.js +273 -0
- package/dist/collection/components/bs-dialog/bs-dialog.stories.js +115 -0
- package/dist/collection/components/bs-input/bs-input.cmp.test.js +20 -0
- package/dist/collection/components/bs-input/bs-input.css +80 -2
- package/dist/collection/components/bs-input/bs-input.js +28 -10
- package/dist/collection/components/bs-input/bs-input.stories.js +14 -11
- 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-pagination/bs-pagination.cmp.test.js +102 -0
- package/dist/collection/components/bs-pagination/bs-pagination.css +120 -0
- package/dist/collection/components/bs-pagination/bs-pagination.js +233 -0
- package/dist/collection/components/bs-pagination/bs-pagination.stories.js +43 -0
- 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-snackbar/bs-snackbar.cmp.test.js +77 -0
- package/dist/collection/components/bs-snackbar/bs-snackbar.css +321 -0
- package/dist/collection/components/bs-snackbar/bs-snackbar.js +172 -0
- package/dist/collection/components/bs-snackbar/bs-snackbar.stories.js +59 -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 +143 -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 +281 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.js +274 -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 +446 -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-avatar.d.ts +11 -0
- package/dist/components/bs-avatar.js +1 -0
- package/dist/components/bs-badge.js +1 -1
- package/dist/components/bs-breadcrumb-overflow.d.ts +11 -0
- package/dist/components/bs-breadcrumb-overflow.js +1 -0
- package/dist/components/bs-breadcrumb.d.ts +11 -0
- package/dist/components/bs-breadcrumb.js +1 -0
- package/dist/components/bs-breadcrumbs.d.ts +11 -0
- package/dist/components/bs-breadcrumbs.js +1 -0
- 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-skeleton.d.ts +11 -0
- package/dist/components/bs-checkbox-skeleton.js +1 -0
- package/dist/components/bs-checkbox.js +1 -1
- package/dist/components/bs-composer-status-banner.js +1 -1
- package/dist/components/bs-composer.js +1 -1
- package/dist/components/bs-data-table.js +1 -1
- package/dist/components/bs-dialog.d.ts +11 -0
- package/dist/components/bs-dialog.js +1 -0
- 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-modal.d.ts → bs-logo.d.ts} +4 -4
- 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-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-pagination.d.ts +11 -0
- package/dist/components/bs-pagination.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-snackbar.d.ts +11 -0
- package/dist/components/bs-snackbar.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-BFcVSpES.js +1 -0
- package/dist/components/{p-D1cYtKyN.js → p-BJZYe7M4.js} +1 -1
- package/dist/components/p-BKaZWFE1.js +1 -0
- package/dist/components/{p-BUbGEXL7.js → p-BtX5URLk.js} +1 -1
- package/dist/components/{p-B9PrXIl_.js → p-CgaPcyEJ.js} +1 -1
- package/dist/components/{p-D2HDHZjz.js → p-qK1XlpTA.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-avatar.entry.js +58 -0
- package/dist/esm/bs-badge.entry.js +1 -1
- package/dist/esm/bs-breadcrumb-overflow.entry.js +54 -0
- package/dist/esm/bs-breadcrumb.entry.js +31 -0
- package/dist/esm/bs-breadcrumbs.entry.js +47 -0
- 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 +10 -3
- 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-skeleton.entry.js +18 -0
- package/dist/esm/bs-checkbox.entry.js +14 -3
- 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-dialog.entry.js +108 -0
- 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 +24 -12
- package/dist/esm/bs-logo.entry.js +163 -0
- package/dist/esm/{bs-menu_2.entry.js → bs-menu-item.entry.js} +3 -15
- package/dist/esm/bs-menu.entry.js +15 -0
- package/dist/esm/bs-navigation-drawer-item.entry.js +102 -0
- package/dist/esm/bs-navigation-drawer.entry.js +85 -0
- package/dist/esm/bs-navigation-header.entry.js +42 -0
- package/dist/esm/bs-pagination.entry.js +83 -0
- package/dist/esm/bs-radio.entry.js +47 -0
- package/dist/esm/bs-slider.entry.js +189 -0
- package/dist/esm/bs-snackbar.entry.js +39 -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-DP_bvuvB.js → index-Do3l4of3.js} +2 -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-avatar/bs-avatar.d.ts +67 -0
- package/dist/types/components/bs-avatar/bs-avatar.stories.d.ts +20 -0
- package/dist/types/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.d.ts +44 -0
- package/dist/types/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.d.ts +69 -0
- package/dist/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.d.ts +45 -0
- package/dist/types/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.stories.d.ts +14 -0
- package/dist/types/components/bs-button/bs-button/bs-button.cmp.test.d.ts +1 -0
- 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-card/bs-card.d.ts +10 -1
- package/dist/types/components/bs-card/bs-card.stories.d.ts +1 -0
- package/dist/types/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.d.ts +36 -0
- package/dist/types/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.stories.d.ts +10 -0
- package/dist/types/components/bs-checkbox/bs-checkbox.d.ts +11 -0
- package/dist/types/components/bs-checkbox/bs-checkbox.stories.d.ts +1 -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-dialog/bs-dialog.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-dialog/bs-dialog.d.ts +74 -0
- package/dist/types/components/{bs-modal/bs-modal.stories.d.ts → bs-dialog/bs-dialog.stories.d.ts} +5 -3
- package/dist/types/components/bs-input/bs-input.d.ts +8 -1
- 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-pagination/bs-pagination.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-pagination/bs-pagination.d.ts +51 -0
- package/dist/types/components/bs-pagination/bs-pagination.stories.d.ts +14 -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-snackbar/bs-snackbar.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-snackbar/bs-snackbar.d.ts +51 -0
- package/dist/types/components/bs-snackbar/bs-snackbar.stories.d.ts +16 -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 +104 -0
- package/dist/types/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.stories.d.ts +19 -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 +25 -0
- package/dist/types/components.d.ts +2908 -114
- package/package.json +1 -1
- package/dist/brandsync-wc/p-2598ca88.entry.js +0 -1
- package/dist/brandsync-wc/p-3dd9b814.entry.js +0 -1
- package/dist/brandsync-wc/p-41edb0a2.entry.js +0 -1
- package/dist/brandsync-wc/p-6254dcbe.entry.js +0 -1
- package/dist/brandsync-wc/p-7131d0a1.entry.js +0 -1
- package/dist/brandsync-wc/p-8c302968.entry.js +0 -1
- package/dist/brandsync-wc/p-8d78171b.entry.js +0 -1
- package/dist/brandsync-wc/p-93e44903.entry.js +0 -1
- package/dist/brandsync-wc/p-aa45d877.entry.js +0 -1
- package/dist/cjs/bs-modal.cjs.entry.js +0 -69
- package/dist/collection/components/bs-modal/bs-modal.css +0 -66
- package/dist/collection/components/bs-modal/bs-modal.js +0 -198
- package/dist/collection/components/bs-modal/bs-modal.stories.js +0 -38
- package/dist/components/bs-modal.js +0 -1
- package/dist/esm/bs-modal.entry.js +0 -67
- package/dist/types/components/bs-modal/bs-modal.d.ts +0 -45
- /package/dist/types/components/{bs-button/bs-button.cmp.test.d.ts → bs-avatar/bs-avatar.cmp.test.d.ts} +0 -0
- /package/dist/types/components/{bs-modal/bs-modal.cmp.test.d.ts → bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.cmp.test.d.ts} +0 -0
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* A circular representation of a person or entity -- a photo, initials, or (as a fallback when
|
|
4
|
+
* neither is available) a generic user-silhouette icon.
|
|
5
|
+
*
|
|
6
|
+
* ## When to use
|
|
7
|
+
* - Representing a specific user or account: in a header, a comment, a member list, etc.
|
|
8
|
+
* - `type="initials"` when a photo isn't available but a name is (e.g. "Sam Lee" -> "SL").
|
|
9
|
+
* - `type="icon"` (the default) as the generic fallback when neither a photo nor a name/initials
|
|
10
|
+
* is available yet.
|
|
11
|
+
*
|
|
12
|
+
* ## When not to use
|
|
13
|
+
* - A company/brand logo -- use `bs-logo` instead.
|
|
14
|
+
*
|
|
15
|
+
* This component is decorative/informational by default, not an interactive control -- it renders
|
|
16
|
+
* a plain `<span>`/`<img>`, not a `<button>`. Figma's own component set includes hover/focused/
|
|
17
|
+
* pressed states (e.g. for an account-switcher trigger use case), which this implements as real
|
|
18
|
+
* `:hover`/`:focus-visible`/`:active` CSS on the host itself -- so wrapping this in your own
|
|
19
|
+
* `<button>`, or setting `tabindex` and a click handler on the `<bs-avatar>` element directly, gets
|
|
20
|
+
* the matching visual treatment for free with no extra wiring. Left genuinely non-interactive
|
|
21
|
+
* (no implicit role/tabindex of its own) so it doesn't misrepresent a purely decorative avatar
|
|
22
|
+
* (e.g. next to a comment) as a control when it isn't one.
|
|
23
|
+
*
|
|
24
|
+
* @part container - The circular wrapper (all three `type`s render this; `image` additionally
|
|
25
|
+
* wraps a real `<img>` inside it, since the border/background/radius treatment is identical
|
|
26
|
+
* across types and factoring it into one shared part keeps `::part(container)` overrides
|
|
27
|
+
* consistent regardless of which `type` ends up rendering).
|
|
28
|
+
* @part image - The `<img>` itself. Only rendered for `type="image"`.
|
|
29
|
+
* @part initials - The initials text. Only rendered for `type="initials"`.
|
|
30
|
+
* @part icon - The fallback user-silhouette icon. Only rendered for `type="icon"`.
|
|
31
|
+
*/
|
|
32
|
+
// Note: this component's CSS Custom Properties are documented via @prop comments in bs-avatar.css,
|
|
33
|
+
// not here -- see bs-navigation-header.css's identical note. Most of them are this library's
|
|
34
|
+
// existing vendored --bs-avatar-* tokens (see tokens.css), not new ones invented for this
|
|
35
|
+
// component -- brandsync-tokens already ships a full avatar-specific token set.
|
|
36
|
+
export class BsAvatar {
|
|
37
|
+
/** What to render inside the circle. `icon` (default) is the generic fallback for when neither
|
|
38
|
+
* a photo nor initials are available yet. */
|
|
39
|
+
type = 'icon';
|
|
40
|
+
/** Sizing scale -- `xs` (24px) through `xxl` (128px), matching Figma's own six-step scale. */
|
|
41
|
+
size = 'md';
|
|
42
|
+
/** `type="initials"` only: the initials text to display (e.g. `"SL"` for "Sam Lee"). Ignored
|
|
43
|
+
* for `icon`/`image`. */
|
|
44
|
+
initials = null;
|
|
45
|
+
/** `type="image"` only: the photo URL. This component does not fetch it itself -- network
|
|
46
|
+
* calls, loading/error states, and caching are the consuming app's responsibility, same
|
|
47
|
+
* convention as `bs-logo`'s own `src` prop. Ignored for `icon`/`initials`. */
|
|
48
|
+
src = null;
|
|
49
|
+
/** `type="image"` only: accessible alt text for the photo, set directly on the real `<img>`
|
|
50
|
+
* this renders -- a person's photo is meaningful content, not decorative, so pass something
|
|
51
|
+
* real (e.g. their name). Falls back to `alt=""` (decorative to assistive tech) when unset,
|
|
52
|
+
* rather than omitting the attribute entirely, but don't rely on that fallback. Ignored for
|
|
53
|
+
* `icon`/`initials` -- see `ariaLabel` for those instead. */
|
|
54
|
+
alt = null;
|
|
55
|
+
/** `type="icon"`/`"initials"` only: accessible name for the avatar, set as `aria-label` on the
|
|
56
|
+
* `role="img"` wrapper this renders (neither is a real `<img>`, so there's no native `alt` to
|
|
57
|
+
* set). Setting a plain `aria-label` attribute on the `<bs-avatar>` host does NOT work for this
|
|
58
|
+
* -- that attribute stays on the light-DOM host and never crosses into the shadow DOM, so the
|
|
59
|
+
* actual `role="img"` element stays nameless. Same pattern as `bs-checkbox`'s identical
|
|
60
|
+
* `ariaLabel` prop. Ignored for `image` -- see `alt` for that instead. */
|
|
61
|
+
ariaLabel = null;
|
|
62
|
+
/** Applies the disabled treatment (50% opacity) and suppresses the hover/focus/pressed CSS
|
|
63
|
+
* states -- this doesn't set a native `disabled` attribute (this component renders no native
|
|
64
|
+
* form control), it's purely a visual/interaction-state flag for when a consuming app has
|
|
65
|
+
* wrapped this in its own disabled control. Reflected so the `:host([disabled])` CSS selector
|
|
66
|
+
* that drives all of the above still matches when a consumer sets the JS property directly
|
|
67
|
+
* (`el.disabled = true`) rather than the HTML attribute. */
|
|
68
|
+
disabled = false;
|
|
69
|
+
render() {
|
|
70
|
+
const classes = `bs-avatar bs-avatar--${this.type} bs-avatar--${this.size}`;
|
|
71
|
+
if (this.type === 'image') {
|
|
72
|
+
return (h("span", { part: "container", class: classes }, h("img", { part: "image", class: "bs-avatar__image", src: this.src ?? undefined, alt: this.alt ?? '' })));
|
|
73
|
+
}
|
|
74
|
+
return (h("span", { part: "container", class: classes, role: "img", "aria-label": this.ariaLabel ?? undefined }, this.type === 'initials' ? (h("span", { part: "initials", class: "bs-avatar__initials" }, this.initials)) : (h(UserIcon, null))));
|
|
75
|
+
}
|
|
76
|
+
static get is() { return "bs-avatar"; }
|
|
77
|
+
static get encapsulation() { return "shadow"; }
|
|
78
|
+
static get originalStyleUrls() {
|
|
79
|
+
return {
|
|
80
|
+
"$": ["bs-avatar.css"]
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
static get styleUrls() {
|
|
84
|
+
return {
|
|
85
|
+
"$": ["bs-avatar.css"]
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
static get properties() {
|
|
89
|
+
return {
|
|
90
|
+
"type": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"mutable": false,
|
|
93
|
+
"complexType": {
|
|
94
|
+
"original": "BsAvatarType",
|
|
95
|
+
"resolved": "\"icon\" | \"image\" | \"initials\"",
|
|
96
|
+
"references": {
|
|
97
|
+
"BsAvatarType": {
|
|
98
|
+
"location": "local",
|
|
99
|
+
"path": "/Users/vivka/brandsync-web-components/src/components/bs-avatar/bs-avatar.tsx",
|
|
100
|
+
"id": "src/components/bs-avatar/bs-avatar.tsx::BsAvatarType"
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required": false,
|
|
105
|
+
"optional": false,
|
|
106
|
+
"docs": {
|
|
107
|
+
"tags": [],
|
|
108
|
+
"text": "What to render inside the circle. `icon` (default) is the generic fallback for when neither\na photo nor initials are available yet."
|
|
109
|
+
},
|
|
110
|
+
"getter": false,
|
|
111
|
+
"setter": false,
|
|
112
|
+
"reflect": false,
|
|
113
|
+
"attribute": "type",
|
|
114
|
+
"defaultValue": "'icon'"
|
|
115
|
+
},
|
|
116
|
+
"size": {
|
|
117
|
+
"type": "string",
|
|
118
|
+
"mutable": false,
|
|
119
|
+
"complexType": {
|
|
120
|
+
"original": "BsAvatarSize",
|
|
121
|
+
"resolved": "\"lg\" | \"md\" | \"sm\" | \"xl\" | \"xs\" | \"xxl\"",
|
|
122
|
+
"references": {
|
|
123
|
+
"BsAvatarSize": {
|
|
124
|
+
"location": "local",
|
|
125
|
+
"path": "/Users/vivka/brandsync-web-components/src/components/bs-avatar/bs-avatar.tsx",
|
|
126
|
+
"id": "src/components/bs-avatar/bs-avatar.tsx::BsAvatarSize"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"required": false,
|
|
131
|
+
"optional": false,
|
|
132
|
+
"docs": {
|
|
133
|
+
"tags": [],
|
|
134
|
+
"text": "Sizing scale -- `xs` (24px) through `xxl` (128px), matching Figma's own six-step scale."
|
|
135
|
+
},
|
|
136
|
+
"getter": false,
|
|
137
|
+
"setter": false,
|
|
138
|
+
"reflect": false,
|
|
139
|
+
"attribute": "size",
|
|
140
|
+
"defaultValue": "'md'"
|
|
141
|
+
},
|
|
142
|
+
"initials": {
|
|
143
|
+
"type": "string",
|
|
144
|
+
"mutable": false,
|
|
145
|
+
"complexType": {
|
|
146
|
+
"original": "string | null",
|
|
147
|
+
"resolved": "string",
|
|
148
|
+
"references": {}
|
|
149
|
+
},
|
|
150
|
+
"required": false,
|
|
151
|
+
"optional": false,
|
|
152
|
+
"docs": {
|
|
153
|
+
"tags": [],
|
|
154
|
+
"text": "`type=\"initials\"` only: the initials text to display (e.g. `\"SL\"` for \"Sam Lee\"). Ignored\nfor `icon`/`image`."
|
|
155
|
+
},
|
|
156
|
+
"getter": false,
|
|
157
|
+
"setter": false,
|
|
158
|
+
"reflect": false,
|
|
159
|
+
"attribute": "initials",
|
|
160
|
+
"defaultValue": "null"
|
|
161
|
+
},
|
|
162
|
+
"src": {
|
|
163
|
+
"type": "string",
|
|
164
|
+
"mutable": false,
|
|
165
|
+
"complexType": {
|
|
166
|
+
"original": "string | null",
|
|
167
|
+
"resolved": "string",
|
|
168
|
+
"references": {}
|
|
169
|
+
},
|
|
170
|
+
"required": false,
|
|
171
|
+
"optional": false,
|
|
172
|
+
"docs": {
|
|
173
|
+
"tags": [],
|
|
174
|
+
"text": "`type=\"image\"` only: the photo URL. This component does not fetch it itself -- network\ncalls, loading/error states, and caching are the consuming app's responsibility, same\nconvention as `bs-logo`'s own `src` prop. Ignored for `icon`/`initials`."
|
|
175
|
+
},
|
|
176
|
+
"getter": false,
|
|
177
|
+
"setter": false,
|
|
178
|
+
"reflect": false,
|
|
179
|
+
"attribute": "src",
|
|
180
|
+
"defaultValue": "null"
|
|
181
|
+
},
|
|
182
|
+
"alt": {
|
|
183
|
+
"type": "string",
|
|
184
|
+
"mutable": false,
|
|
185
|
+
"complexType": {
|
|
186
|
+
"original": "string | null",
|
|
187
|
+
"resolved": "string",
|
|
188
|
+
"references": {}
|
|
189
|
+
},
|
|
190
|
+
"required": false,
|
|
191
|
+
"optional": false,
|
|
192
|
+
"docs": {
|
|
193
|
+
"tags": [],
|
|
194
|
+
"text": "`type=\"image\"` only: accessible alt text for the photo, set directly on the real `<img>`\nthis renders -- a person's photo is meaningful content, not decorative, so pass something\nreal (e.g. their name). Falls back to `alt=\"\"` (decorative to assistive tech) when unset,\nrather than omitting the attribute entirely, but don't rely on that fallback. Ignored for\n`icon`/`initials` -- see `ariaLabel` for those instead."
|
|
195
|
+
},
|
|
196
|
+
"getter": false,
|
|
197
|
+
"setter": false,
|
|
198
|
+
"reflect": false,
|
|
199
|
+
"attribute": "alt",
|
|
200
|
+
"defaultValue": "null"
|
|
201
|
+
},
|
|
202
|
+
"ariaLabel": {
|
|
203
|
+
"type": "string",
|
|
204
|
+
"mutable": false,
|
|
205
|
+
"complexType": {
|
|
206
|
+
"original": "string | null",
|
|
207
|
+
"resolved": "string",
|
|
208
|
+
"references": {}
|
|
209
|
+
},
|
|
210
|
+
"required": false,
|
|
211
|
+
"optional": false,
|
|
212
|
+
"docs": {
|
|
213
|
+
"tags": [],
|
|
214
|
+
"text": "`type=\"icon\"`/`\"initials\"` only: accessible name for the avatar, set as `aria-label` on the\n`role=\"img\"` wrapper this renders (neither is a real `<img>`, so there's no native `alt` to\nset). Setting a plain `aria-label` attribute on the `<bs-avatar>` host does NOT work for this\n-- that attribute stays on the light-DOM host and never crosses into the shadow DOM, so the\nactual `role=\"img\"` element stays nameless. Same pattern as `bs-checkbox`'s identical\n`ariaLabel` prop. Ignored for `image` -- see `alt` for that instead."
|
|
215
|
+
},
|
|
216
|
+
"getter": false,
|
|
217
|
+
"setter": false,
|
|
218
|
+
"reflect": false,
|
|
219
|
+
"attribute": "aria-label",
|
|
220
|
+
"defaultValue": "null"
|
|
221
|
+
},
|
|
222
|
+
"disabled": {
|
|
223
|
+
"type": "boolean",
|
|
224
|
+
"mutable": false,
|
|
225
|
+
"complexType": {
|
|
226
|
+
"original": "boolean",
|
|
227
|
+
"resolved": "boolean",
|
|
228
|
+
"references": {}
|
|
229
|
+
},
|
|
230
|
+
"required": false,
|
|
231
|
+
"optional": false,
|
|
232
|
+
"docs": {
|
|
233
|
+
"tags": [],
|
|
234
|
+
"text": "Applies the disabled treatment (50% opacity) and suppresses the hover/focus/pressed CSS\nstates -- this doesn't set a native `disabled` attribute (this component renders no native\nform control), it's purely a visual/interaction-state flag for when a consuming app has\nwrapped this in its own disabled control. Reflected so the `:host([disabled])` CSS selector\nthat drives all of the above still matches when a consumer sets the JS property directly\n(`el.disabled = true`) rather than the HTML attribute."
|
|
235
|
+
},
|
|
236
|
+
"getter": false,
|
|
237
|
+
"setter": false,
|
|
238
|
+
"reflect": true,
|
|
239
|
+
"attribute": "disabled",
|
|
240
|
+
"defaultValue": "false"
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
// A generic, standard "user" silhouette (head + shoulders bust) -- not a pixel port of Figma's own
|
|
246
|
+
// exported icon asset (a plain raster/vector glyph this common isn't a proprietary brand asset
|
|
247
|
+
// worth treating as a fixed image import, unlike e.g. bs-logo's actual wordmark), same
|
|
248
|
+
// inline-icon-helper-function pattern as bs-chatbot-header.tsx's NewChatIcon/ExpandIcon/etc. Single
|
|
249
|
+
// shared viewBox scales cleanly to every avatar size via plain CSS width/height, so one glyph
|
|
250
|
+
// covers all six sizes.
|
|
251
|
+
const UserIcon = () => (h("svg", { part: "icon", class: "bs-avatar__icon", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("circle", { cx: "12", cy: "8", r: "4", fill: "currentColor" }), h("path", { d: "M4 20.5C4 16.634 7.582 13.5 12 13.5C16.418 13.5 20 16.634 20 20.5", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" })));
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { componentDescription, propDescription } from "../../stories-utils";
|
|
3
|
+
const types = ['icon', 'initials', 'image'];
|
|
4
|
+
const sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
|
|
5
|
+
// A placeholder photo for the "image" demo stories -- this component never fetches a photo
|
|
6
|
+
// itself (see its own class doc), this is purely story content standing in for a real user photo
|
|
7
|
+
// a consuming app would supply.
|
|
8
|
+
const PLACEHOLDER_PHOTO = 'https://i.pravatar.cc/256?img=68';
|
|
9
|
+
const meta = {
|
|
10
|
+
title: 'Components/bs-avatar',
|
|
11
|
+
parameters: { docs: { description: { component: componentDescription('bs-avatar') } } },
|
|
12
|
+
render: args => html `
|
|
13
|
+
<bs-avatar
|
|
14
|
+
type=${args.type}
|
|
15
|
+
size=${args.size}
|
|
16
|
+
initials=${args.initials}
|
|
17
|
+
src=${args.src}
|
|
18
|
+
alt=${args.alt}
|
|
19
|
+
aria-label=${args.ariaLabel}
|
|
20
|
+
?disabled=${args.disabled}
|
|
21
|
+
></bs-avatar>
|
|
22
|
+
`,
|
|
23
|
+
argTypes: {
|
|
24
|
+
type: { control: 'select', options: types, description: propDescription('bs-avatar', 'type') },
|
|
25
|
+
size: { control: 'select', options: sizes, description: propDescription('bs-avatar', 'size') },
|
|
26
|
+
initials: { control: 'text', description: propDescription('bs-avatar', 'initials') },
|
|
27
|
+
src: { control: 'text', description: propDescription('bs-avatar', 'src') },
|
|
28
|
+
alt: { control: 'text', description: propDescription('bs-avatar', 'alt') },
|
|
29
|
+
ariaLabel: { control: 'text', description: propDescription('bs-avatar', 'ariaLabel') },
|
|
30
|
+
disabled: { control: 'boolean', description: propDescription('bs-avatar', 'disabled') },
|
|
31
|
+
},
|
|
32
|
+
args: {
|
|
33
|
+
type: 'icon',
|
|
34
|
+
size: 'md',
|
|
35
|
+
initials: 'SL',
|
|
36
|
+
src: '',
|
|
37
|
+
alt: '',
|
|
38
|
+
ariaLabel: 'Sam Lee',
|
|
39
|
+
disabled: false,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
export default meta;
|
|
43
|
+
export const Icon = {};
|
|
44
|
+
export const Initials = {
|
|
45
|
+
args: { type: 'initials' },
|
|
46
|
+
};
|
|
47
|
+
export const Image = {
|
|
48
|
+
args: { type: 'image', src: PLACEHOLDER_PHOTO, alt: 'Sam Lee' },
|
|
49
|
+
};
|
|
50
|
+
export const Sizes = {
|
|
51
|
+
render: args => html `
|
|
52
|
+
<div style="display:flex; gap:16px; align-items:center;">
|
|
53
|
+
${sizes.map(size => html `<bs-avatar type=${args.type} size=${size} initials=${args.initials} aria-label=${args.ariaLabel}></bs-avatar>`)}
|
|
54
|
+
</div>
|
|
55
|
+
`,
|
|
56
|
+
};
|
|
57
|
+
export const Disabled = {
|
|
58
|
+
args: { disabled: true },
|
|
59
|
+
};
|
|
60
|
+
// Not a special prop -- this just sets tabindex="0" directly on the element (a consuming app's
|
|
61
|
+
// own choice to make an avatar interactive, e.g. an account-switcher trigger) to demonstrate that
|
|
62
|
+
// the real :hover/:focus-visible/:active CSS states apply with no extra wiring -- see the class
|
|
63
|
+
// doc in bs-avatar.tsx for why. Tab to it (or click/hold it) to see the states.
|
|
64
|
+
export const Interactive = {
|
|
65
|
+
args: { type: 'initials' },
|
|
66
|
+
render: args => html `<bs-avatar type=${args.type} size=${args.size} initials=${args.initials} aria-label=${args.ariaLabel} tabindex="0"></bs-avatar>`,
|
|
67
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
describe('bs-breadcrumb', () => {
|
|
3
|
+
it('sets role="listitem" on the host', async () => {
|
|
4
|
+
const { root } = await render(h("bs-breadcrumb", { href: "/" }, "Home"));
|
|
5
|
+
expect(root).toEqualAttribute('role', 'listitem');
|
|
6
|
+
});
|
|
7
|
+
it('renders a separator marked aria-hidden', async () => {
|
|
8
|
+
const { root } = await render(h("bs-breadcrumb", { href: "/" }, "Home"));
|
|
9
|
+
const separator = root.shadowRoot.querySelector('[part="separator"]');
|
|
10
|
+
expect(separator).not.toBeNull();
|
|
11
|
+
expect(separator).toEqualAttribute('aria-hidden', 'true');
|
|
12
|
+
});
|
|
13
|
+
it('current renders a non-link <span aria-current="page">, even when href is also set', async () => {
|
|
14
|
+
const { root } = await render(h("bs-breadcrumb", { href: "/should-be-ignored", current: true }, "Edit"));
|
|
15
|
+
const current = root.shadowRoot.querySelector('[part="current"]');
|
|
16
|
+
expect(current).not.toBeNull();
|
|
17
|
+
expect(current.tagName).toBe('SPAN');
|
|
18
|
+
expect(current).toEqualAttribute('aria-current', 'page');
|
|
19
|
+
// `current`'s own shadow-DOM textContent is empty -- it only contains a <slot>, and
|
|
20
|
+
// `Element.textContent` doesn't traverse slotted/assigned light-DOM nodes. Check the host's
|
|
21
|
+
// textContent instead, which does include its own light-DOM children.
|
|
22
|
+
expect(root.textContent.trim()).toBe('Edit');
|
|
23
|
+
expect(root.shadowRoot.querySelector('a')).toBeNull();
|
|
24
|
+
});
|
|
25
|
+
it('href (not current) renders a real <a href>', async () => {
|
|
26
|
+
const { root } = await render(h("bs-breadcrumb", { href: "/settings" }, "Settings"));
|
|
27
|
+
const link = root.shadowRoot.querySelector('[part="link"]');
|
|
28
|
+
expect(link).not.toBeNull();
|
|
29
|
+
expect(link.tagName).toBe('A');
|
|
30
|
+
expect(link).toEqualAttribute('href', '/settings');
|
|
31
|
+
});
|
|
32
|
+
it('neither href nor current renders a plain, non-interactive <span>', async () => {
|
|
33
|
+
const { root } = await render(h("bs-breadcrumb", null, "No Link"));
|
|
34
|
+
const link = root.shadowRoot.querySelector('[part="link"]');
|
|
35
|
+
expect(link).not.toBeNull();
|
|
36
|
+
expect(link.tagName).toBe('SPAN');
|
|
37
|
+
expect(root.shadowRoot.querySelector('a')).toBeNull();
|
|
38
|
+
});
|
|
39
|
+
it("hides the first crumb's separator, regardless of tag, and shows the second's", async () => {
|
|
40
|
+
const { root } = await render(h("bs-breadcrumbs", null, h("bs-breadcrumb", { href: "/" }, "Home"), h("bs-breadcrumb", { href: "/settings" }, "Settings")));
|
|
41
|
+
const crumbs = root.querySelectorAll('bs-breadcrumb');
|
|
42
|
+
const [first, second] = Array.from(crumbs);
|
|
43
|
+
const firstSeparator = first.shadowRoot.querySelector('[part="separator"]');
|
|
44
|
+
const secondSeparator = second.shadowRoot.querySelector('[part="separator"]');
|
|
45
|
+
expect(getComputedStyle(firstSeparator).display).toBe('none');
|
|
46
|
+
expect(getComputedStyle(secondSeparator).display).not.toBe('none');
|
|
47
|
+
});
|
|
48
|
+
describe('size', () => {
|
|
49
|
+
it('defaults to "md" and reflects the attribute', async () => {
|
|
50
|
+
const { root } = await render(h("bs-breadcrumb", { href: "/" }, "Home"));
|
|
51
|
+
expect(root).toEqualAttribute('size', 'md');
|
|
52
|
+
});
|
|
53
|
+
it('reflects a "sm" size and scales down the computed font-size', async () => {
|
|
54
|
+
const mdRender = await render(h("bs-breadcrumb", { href: "/" }, "Home"));
|
|
55
|
+
const smRender = await render(h("bs-breadcrumb", { href: "/", size: "sm" }, "Home"));
|
|
56
|
+
expect(smRender.root).toEqualAttribute('size', 'sm');
|
|
57
|
+
const mdFontSize = getComputedStyle(mdRender.root).fontSize;
|
|
58
|
+
const smFontSize = getComputedStyle(smRender.root).fontSize;
|
|
59
|
+
expect(smFontSize).not.toBe(mdFontSize);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prop --bs-breadcrumb-gap: Gap between the separator icon and this crumb's own content. Aliased to --bs-spacing-50.
|
|
3
|
+
* @prop --bs-breadcrumb-separator-color: Separator icon color. Aliased to --bs-icon-default.
|
|
4
|
+
* @prop --bs-breadcrumb-color-default: Text color, non-current crumb. Aliased to --bs-text-muted.
|
|
5
|
+
* @prop --bs-breadcrumb-color-hover: Text color, non-current link crumb on hover/focus. Aliased to --bs-text-default.
|
|
6
|
+
* @prop --bs-breadcrumb-color-current: Text color, the current-page crumb. Aliased to --bs-text-default.
|
|
7
|
+
* @prop --bs-breadcrumb-font-size: Aliased to --bs-font-size-md.
|
|
8
|
+
* @prop --bs-breadcrumb-line-height: Aliased to --bs-line-height-body-md.
|
|
9
|
+
* @prop --bs-breadcrumb-font-size-sm: Font size at size="sm". Aliased to --bs-font-size-sm.
|
|
10
|
+
* @prop --bs-breadcrumb-line-height-sm: Line height at size="sm". Aliased to --bs-line-height-body-sm.
|
|
11
|
+
* @prop --bs-breadcrumb-font-weight-default: Font weight, non-current crumb. Aliased to --bs-font-weight-regular.
|
|
12
|
+
* @prop --bs-breadcrumb-font-weight-current: Font weight, the current-page crumb. Aliased to --bs-font-weight-semibold.
|
|
13
|
+
* @prop --bs-breadcrumb-focus-ring-color: Focus ring color for a link crumb. Aliased to --bs-border-neutral-focus.
|
|
14
|
+
* @prop --bs-breadcrumb-radius: Border radius for a link crumb's focus ring. Aliased to --bs-border-radius-50.
|
|
15
|
+
*/
|
|
16
|
+
:host {
|
|
17
|
+
display: inline-flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
|
|
20
|
+
--bs-breadcrumb-gap: var(--bs-spacing-50);
|
|
21
|
+
|
|
22
|
+
--bs-breadcrumb-separator-color: var(--bs-icon-default);
|
|
23
|
+
|
|
24
|
+
--bs-breadcrumb-color-default: var(--bs-text-muted);
|
|
25
|
+
--bs-breadcrumb-color-hover: var(--bs-text-default);
|
|
26
|
+
--bs-breadcrumb-color-current: var(--bs-text-default);
|
|
27
|
+
|
|
28
|
+
--bs-breadcrumb-font-size: var(--bs-font-size-md);
|
|
29
|
+
--bs-breadcrumb-line-height: var(--bs-line-height-body-md);
|
|
30
|
+
--bs-breadcrumb-font-size-sm: var(--bs-font-size-sm);
|
|
31
|
+
--bs-breadcrumb-line-height-sm: var(--bs-line-height-body-sm);
|
|
32
|
+
--bs-breadcrumb-font-weight-default: var(--bs-font-weight-regular);
|
|
33
|
+
--bs-breadcrumb-font-weight-current: var(--bs-font-weight-semibold);
|
|
34
|
+
|
|
35
|
+
--bs-breadcrumb-focus-ring-color: var(--bs-border-neutral-focus);
|
|
36
|
+
--bs-breadcrumb-radius: var(--bs-border-radius-50);
|
|
37
|
+
|
|
38
|
+
gap: var(--bs-breadcrumb-gap);
|
|
39
|
+
font-family: inherit;
|
|
40
|
+
font-size: var(--bs-breadcrumb-font-size);
|
|
41
|
+
line-height: calc(var(--bs-breadcrumb-line-height) * 1px);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* This crumb is visually first in the trail -- pure DOM position (not :first-of-type, which only
|
|
45
|
+
counts same-tag siblings and would wrongly also match a bs-breadcrumb immediately following a
|
|
46
|
+
bs-breadcrumb-overflow). See bs-breadcrumb-overflow.css for the identical rule. */
|
|
47
|
+
:host(:first-child) .bs-breadcrumb__separator {
|
|
48
|
+
display: none;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/* size="sm" scales font-size/line-height only -- the separator icon's pixel size is unchanged,
|
|
52
|
+
since Figma didn't specify a sm icon size (see the `size` prop's doc comment in bs-breadcrumb.tsx). */
|
|
53
|
+
:host([size='sm']) {
|
|
54
|
+
font-size: var(--bs-breadcrumb-font-size-sm);
|
|
55
|
+
line-height: calc(var(--bs-breadcrumb-line-height-sm) * 1px);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.bs-breadcrumb__separator {
|
|
59
|
+
display: inline-flex;
|
|
60
|
+
align-items: center;
|
|
61
|
+
justify-content: center;
|
|
62
|
+
width: 16px;
|
|
63
|
+
height: 16px;
|
|
64
|
+
flex-shrink: 0;
|
|
65
|
+
color: var(--bs-breadcrumb-separator-color);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.bs-breadcrumb__separator svg {
|
|
69
|
+
width: 16px;
|
|
70
|
+
height: 16px;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.bs-breadcrumb__link {
|
|
74
|
+
color: var(--bs-breadcrumb-color-default);
|
|
75
|
+
font-weight: var(--bs-breadcrumb-font-weight-default);
|
|
76
|
+
text-decoration: none;
|
|
77
|
+
border-radius: var(--bs-breadcrumb-radius);
|
|
78
|
+
transition: color var(--bs-duration-fast) var(--bs-easing-standard);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
a.bs-breadcrumb__link:hover {
|
|
82
|
+
color: var(--bs-breadcrumb-color-hover);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
a.bs-breadcrumb__link:focus-visible {
|
|
86
|
+
outline: 2px solid var(--bs-breadcrumb-focus-ring-color);
|
|
87
|
+
outline-offset: 2px;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.bs-breadcrumb__current {
|
|
91
|
+
color: var(--bs-breadcrumb-color-current);
|
|
92
|
+
font-weight: var(--bs-breadcrumb-font-weight-current);
|
|
93
|
+
}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import { Host, h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* A single crumb within a `<bs-breadcrumbs>` trail: a leading separator icon plus either a link,
|
|
4
|
+
* plain text, or the current-page label, depending on `current`/`href`.
|
|
5
|
+
*
|
|
6
|
+
* Rendering follows the W3C ARIA Authoring Practices breadcrumb pattern
|
|
7
|
+
* (https://www.w3.org/WAI/ARIA/apg/patterns/breadcrumb/): the current page is marked
|
|
8
|
+
* `aria-current="page"` and is never a link -- this holds even when `href` is also set, unlike
|
|
9
|
+
* Carbon Design System's `cds-breadcrumb-item`, which allows a link on the current item.
|
|
10
|
+
*
|
|
11
|
+
* Sets `role="listitem"` on the host, mirroring Carbon's own `CDSBreadcrumbItem.connectedCallback()`
|
|
12
|
+
* -- since this is a custom-element child of a real `<ol>` rather than a real `<li>`, the
|
|
13
|
+
* accessibility tree needs this explicit role to preserve the list's semantics.
|
|
14
|
+
*
|
|
15
|
+
* ## When to use
|
|
16
|
+
* - As one crumb inside a `<bs-breadcrumbs>` trail.
|
|
17
|
+
*
|
|
18
|
+
* ## When not to use
|
|
19
|
+
* - Standalone, outside a `<bs-breadcrumbs>` wrapper -- its `<ol>`/`<nav>` context and
|
|
20
|
+
* first-child-aware separator hiding depend on that parent structure.
|
|
21
|
+
*
|
|
22
|
+
* @slot - Default slot: the crumb's label content/text.
|
|
23
|
+
* @part separator - The leading separator icon wrapper.
|
|
24
|
+
* @part link - The anchor (or, when there's no `href`, plain `<span>`) for a non-current crumb.
|
|
25
|
+
* @part current - The current-page text element.
|
|
26
|
+
*/
|
|
27
|
+
// Note: this component's CSS Custom Properties (--bs-breadcrumb-*) are documented via @prop
|
|
28
|
+
// comments in bs-breadcrumb.css, not here -- see bs-tab.tsx's identical note.
|
|
29
|
+
export class BsBreadcrumb {
|
|
30
|
+
/** Destination for a non-current crumb. Ignored when `current` is true -- the current page is
|
|
31
|
+
* never a link, even if `href` is set (see the class JSDoc). */
|
|
32
|
+
href;
|
|
33
|
+
/** Whether this crumb is the current page. Renders as plain (non-link) text marked
|
|
34
|
+
* `aria-current="page"`, reflected as an attribute so consumers/CSS can target
|
|
35
|
+
* `bs-breadcrumb[current]`. */
|
|
36
|
+
current = false;
|
|
37
|
+
/** Size variant. Normally set automatically by a parent `<bs-breadcrumbs size="...">` -- the
|
|
38
|
+
* container propagates its own `size` as a JS property to every slotted `bs-breadcrumb`/
|
|
39
|
+
* `bs-breadcrumb-overflow` child (see `bs-breadcrumbs.tsx`'s `propagateSize`), since CSS custom
|
|
40
|
+
* properties can't carry an enum that switches rules on their own. Can also be set directly on a
|
|
41
|
+
* standalone crumb. `sm` scales down font-size/line-height only -- the separator icon's pixel
|
|
42
|
+
* size is unchanged, since Figma didn't specify a `sm` icon size and guessing one risked drifting
|
|
43
|
+
* off-brand. Reflected so consumers/CSS can target `bs-breadcrumb[size="sm"]`. */
|
|
44
|
+
size = 'md';
|
|
45
|
+
render() {
|
|
46
|
+
return (h(Host, { key: '631ab305f75d905c7e54facdc55348b84095530d', role: "listitem" }, h("span", { key: 'a84c1b0b123d5e930c27fc5a10e0bde66003e99b', part: "separator", class: "bs-breadcrumb__separator", "aria-hidden": "true" }, h(CaretRightIcon, { key: '540d161da72801edb9d308c2023da7dd76042912' })), this.current ? (h("span", { part: "current", class: "bs-breadcrumb__current", "aria-current": "page" }, h("slot", null))) : this.href ? (h("a", { part: "link", class: "bs-breadcrumb__link", href: this.href }, h("slot", null))) : (h("span", { part: "link", class: "bs-breadcrumb__link" }, h("slot", null)))));
|
|
47
|
+
}
|
|
48
|
+
static get is() { return "bs-breadcrumb"; }
|
|
49
|
+
static get encapsulation() { return "shadow"; }
|
|
50
|
+
static get originalStyleUrls() {
|
|
51
|
+
return {
|
|
52
|
+
"$": ["bs-breadcrumb.css"]
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
static get styleUrls() {
|
|
56
|
+
return {
|
|
57
|
+
"$": ["bs-breadcrumb.css"]
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
static get properties() {
|
|
61
|
+
return {
|
|
62
|
+
"href": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"mutable": false,
|
|
65
|
+
"complexType": {
|
|
66
|
+
"original": "string",
|
|
67
|
+
"resolved": "string",
|
|
68
|
+
"references": {}
|
|
69
|
+
},
|
|
70
|
+
"required": false,
|
|
71
|
+
"optional": true,
|
|
72
|
+
"docs": {
|
|
73
|
+
"tags": [],
|
|
74
|
+
"text": "Destination for a non-current crumb. Ignored when `current` is true -- the current page is\nnever a link, even if `href` is set (see the class JSDoc)."
|
|
75
|
+
},
|
|
76
|
+
"getter": false,
|
|
77
|
+
"setter": false,
|
|
78
|
+
"reflect": false,
|
|
79
|
+
"attribute": "href"
|
|
80
|
+
},
|
|
81
|
+
"current": {
|
|
82
|
+
"type": "boolean",
|
|
83
|
+
"mutable": false,
|
|
84
|
+
"complexType": {
|
|
85
|
+
"original": "boolean",
|
|
86
|
+
"resolved": "boolean",
|
|
87
|
+
"references": {}
|
|
88
|
+
},
|
|
89
|
+
"required": false,
|
|
90
|
+
"optional": false,
|
|
91
|
+
"docs": {
|
|
92
|
+
"tags": [],
|
|
93
|
+
"text": "Whether this crumb is the current page. Renders as plain (non-link) text marked\n`aria-current=\"page\"`, reflected as an attribute so consumers/CSS can target\n`bs-breadcrumb[current]`."
|
|
94
|
+
},
|
|
95
|
+
"getter": false,
|
|
96
|
+
"setter": false,
|
|
97
|
+
"reflect": true,
|
|
98
|
+
"attribute": "current",
|
|
99
|
+
"defaultValue": "false"
|
|
100
|
+
},
|
|
101
|
+
"size": {
|
|
102
|
+
"type": "string",
|
|
103
|
+
"mutable": false,
|
|
104
|
+
"complexType": {
|
|
105
|
+
"original": "BsBreadcrumbSize",
|
|
106
|
+
"resolved": "\"md\" | \"sm\"",
|
|
107
|
+
"references": {
|
|
108
|
+
"BsBreadcrumbSize": {
|
|
109
|
+
"location": "local",
|
|
110
|
+
"path": "/Users/vivka/brandsync-web-components/src/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.tsx",
|
|
111
|
+
"id": "src/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.tsx::BsBreadcrumbSize"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"required": false,
|
|
116
|
+
"optional": false,
|
|
117
|
+
"docs": {
|
|
118
|
+
"tags": [],
|
|
119
|
+
"text": "Size variant. Normally set automatically by a parent `<bs-breadcrumbs size=\"...\">` -- the\ncontainer propagates its own `size` as a JS property to every slotted `bs-breadcrumb`/\n`bs-breadcrumb-overflow` child (see `bs-breadcrumbs.tsx`'s `propagateSize`), since CSS custom\nproperties can't carry an enum that switches rules on their own. Can also be set directly on a\nstandalone crumb. `sm` scales down font-size/line-height only -- the separator icon's pixel\nsize is unchanged, since Figma didn't specify a `sm` icon size and guessing one risked drifting\noff-brand. Reflected so consumers/CSS can target `bs-breadcrumb[size=\"sm\"]`."
|
|
120
|
+
},
|
|
121
|
+
"getter": false,
|
|
122
|
+
"setter": false,
|
|
123
|
+
"reflect": true,
|
|
124
|
+
"attribute": "size",
|
|
125
|
+
"defaultValue": "'md'"
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const CaretRightIcon = () => (h("svg", { viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M6 3L11 8L6 13", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
|