@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
|
@@ -23,18 +23,32 @@ const PANEL_STYLE = `
|
|
|
23
23
|
background: var(--bs-surface-base);
|
|
24
24
|
font-family: var(--bs-typography-font-family-body), sans-serif;
|
|
25
25
|
`;
|
|
26
|
+
// Page padding per the Genie Chatbot pattern spec (16px left/right, 24px top/bottom -- not a flat
|
|
27
|
+
// 16px on every side). No uniform \`gap\` here: the user-bubble-to-AI-response spacing below is a
|
|
28
|
+
// distinct, much larger value (40px) than any other spacing within a single AI turn, so it's set
|
|
29
|
+
// explicitly per-element instead of via one flex gap.
|
|
26
30
|
const TRANSCRIPT_STYLE = `
|
|
27
31
|
flex: 1;
|
|
28
32
|
min-height: 0;
|
|
29
33
|
overflow-y: auto;
|
|
30
34
|
display: flex;
|
|
31
35
|
flex-direction: column;
|
|
32
|
-
|
|
33
|
-
padding: var(--bs-spacing-200);
|
|
36
|
+
padding: var(--bs-spacing-300) var(--bs-spacing-200);
|
|
34
37
|
`;
|
|
38
|
+
// The gap from a user's message bubble to the AI's response that follows it, per the Genie
|
|
39
|
+
// Chatbot pattern spec's conversationWindow.userBubbleToAiResponsePx (40px) -- deliberately much
|
|
40
|
+
// larger than ordinary internal spacing (e.g. the 4px gap between an AI response's own text and
|
|
41
|
+
// its action row below).
|
|
42
|
+
const AI_RESPONSE_GAP_STYLE = `margin-top: var(--bs-spacing-500);`;
|
|
43
|
+
// margin: 0 on both -- these render as <p> tags, and this Storybook environment has no CSS reset
|
|
44
|
+
// zeroing the browser's default <p> margin (~1em top/bottom). Left unset, that default margin
|
|
45
|
+
// silently added to the intentional 40px user-bubble-to-AI-response gap (AI_RESPONSE_GAP_STYLE
|
|
46
|
+
// above), measuring 56px instead of the spec's 40px -- confirmed via getBoundingClientRect before
|
|
47
|
+
// this fix.
|
|
35
48
|
const USER_BUBBLE_STYLE = `
|
|
36
49
|
align-self: flex-end;
|
|
37
50
|
max-width: 80%;
|
|
51
|
+
margin: 0;
|
|
38
52
|
padding: var(--bs-spacing-100) var(--bs-spacing-150);
|
|
39
53
|
border-radius: var(--bs-border-radius-150);
|
|
40
54
|
background: var(--bs-color-primary-container);
|
|
@@ -44,6 +58,7 @@ const USER_BUBBLE_STYLE = `
|
|
|
44
58
|
`;
|
|
45
59
|
const AI_RESPONSE_STYLE = `
|
|
46
60
|
max-width: 100%;
|
|
61
|
+
margin: 0;
|
|
47
62
|
color: var(--bs-text-default);
|
|
48
63
|
font-size: var(--bs-font-size-md);
|
|
49
64
|
line-height: 1.5;
|
|
@@ -62,7 +77,7 @@ export const EmptyState = {
|
|
|
62
77
|
</div>
|
|
63
78
|
</div>
|
|
64
79
|
<bs-composer aria-label="Message" style="margin: var(--bs-spacing-100) var(--bs-spacing-200) 0;"></bs-composer>
|
|
65
|
-
<bs-ai-disclaimer style="padding: var(--bs-spacing-
|
|
80
|
+
<bs-ai-disclaimer style="padding: var(--bs-spacing-150) 0 var(--bs-spacing-100);">AI can make mistakes. Please verify important information.</bs-ai-disclaimer>
|
|
66
81
|
</div>
|
|
67
82
|
`,
|
|
68
83
|
};
|
|
@@ -73,7 +88,7 @@ export const ActiveConversation = {
|
|
|
73
88
|
<bs-chatbot-header heading="Genie"></bs-chatbot-header>
|
|
74
89
|
<div style=${TRANSCRIPT_STYLE}>
|
|
75
90
|
<p style=${USER_BUBBLE_STYLE}>How do I submit a ByggSøk application?</p>
|
|
76
|
-
<div style="display: flex; flex-direction: column; gap: var(--bs-spacing-50);">
|
|
91
|
+
<div style="${AI_RESPONSE_GAP_STYLE} display: flex; flex-direction: column; gap: var(--bs-spacing-50);">
|
|
77
92
|
<p style=${AI_RESPONSE_STYLE}>
|
|
78
93
|
You can submit a ByggSøk application through the municipal portal. Log in with your ID, select "New
|
|
79
94
|
application", and attach your building plans before submitting for review.
|
|
@@ -82,7 +97,7 @@ export const ActiveConversation = {
|
|
|
82
97
|
</div>
|
|
83
98
|
</div>
|
|
84
99
|
<bs-composer aria-label="Message" style="margin: var(--bs-spacing-100) var(--bs-spacing-200) 0;"></bs-composer>
|
|
85
|
-
<bs-ai-disclaimer style="padding: var(--bs-spacing-
|
|
100
|
+
<bs-ai-disclaimer style="padding: var(--bs-spacing-150) 0 var(--bs-spacing-100);">AI can make mistakes. Please verify important information.</bs-ai-disclaimer>
|
|
86
101
|
</div>
|
|
87
102
|
`,
|
|
88
103
|
};
|
|
@@ -93,10 +108,10 @@ export const Thinking = {
|
|
|
93
108
|
<bs-chatbot-header heading="Genie"></bs-chatbot-header>
|
|
94
109
|
<div style=${TRANSCRIPT_STYLE}>
|
|
95
110
|
<p style=${USER_BUBBLE_STYLE}>How do I submit a ByggSøk application?</p>
|
|
96
|
-
<bs-ai-thinking label="Retrieving sources"></bs-ai-thinking>
|
|
111
|
+
<bs-ai-thinking label="Retrieving sources" style=${AI_RESPONSE_GAP_STYLE}></bs-ai-thinking>
|
|
97
112
|
</div>
|
|
98
113
|
<bs-composer aria-label="Message" state="generating" style="margin: var(--bs-spacing-100) var(--bs-spacing-200) 0;"></bs-composer>
|
|
99
|
-
<bs-ai-disclaimer style="padding: var(--bs-spacing-
|
|
114
|
+
<bs-ai-disclaimer style="padding: var(--bs-spacing-150) 0 var(--bs-spacing-100);">AI can make mistakes. Please verify important information.</bs-ai-disclaimer>
|
|
100
115
|
</div>
|
|
101
116
|
`,
|
|
102
117
|
};
|
|
@@ -107,7 +122,7 @@ export const WithSourcesDrawerOpen = {
|
|
|
107
122
|
<bs-chatbot-header heading="Genie"></bs-chatbot-header>
|
|
108
123
|
<div style=${TRANSCRIPT_STYLE}>
|
|
109
124
|
<p style=${USER_BUBBLE_STYLE}>How do I submit a ByggSøk application?</p>
|
|
110
|
-
<div style="display: flex; flex-direction: column; gap: var(--bs-spacing-50);">
|
|
125
|
+
<div style="${AI_RESPONSE_GAP_STYLE} display: flex; flex-direction: column; gap: var(--bs-spacing-50);">
|
|
111
126
|
<p style=${AI_RESPONSE_STYLE}>
|
|
112
127
|
You can submit a ByggSøk application through the municipal portal. Log in with your ID, select "New
|
|
113
128
|
application", and attach your building plans before submitting for review.
|
|
@@ -116,7 +131,7 @@ export const WithSourcesDrawerOpen = {
|
|
|
116
131
|
</div>
|
|
117
132
|
</div>
|
|
118
133
|
<bs-composer aria-label="Message" style="margin: var(--bs-spacing-100) var(--bs-spacing-200) 0;"></bs-composer>
|
|
119
|
-
<bs-ai-disclaimer style="padding: var(--bs-spacing-
|
|
134
|
+
<bs-ai-disclaimer style="padding: var(--bs-spacing-150) 0 var(--bs-spacing-100);">AI can make mistakes. Please verify important information.</bs-ai-disclaimer>
|
|
120
135
|
|
|
121
136
|
<!-- Backdrop -->
|
|
122
137
|
<div style="position: absolute; inset: 0; background: rgba(33, 38, 46, 0.32);"></div>
|
|
@@ -152,7 +167,7 @@ export const UploadingAttachments = {
|
|
|
152
167
|
</bs-attachment-list>
|
|
153
168
|
</bs-composer>
|
|
154
169
|
</div>
|
|
155
|
-
<bs-ai-disclaimer style="padding: var(--bs-spacing-
|
|
170
|
+
<bs-ai-disclaimer style="padding: var(--bs-spacing-150) 0 var(--bs-spacing-100);">AI can make mistakes. Please verify important information.</bs-ai-disclaimer>
|
|
156
171
|
</div>
|
|
157
172
|
`,
|
|
158
173
|
};
|
|
@@ -174,7 +189,7 @@ export const SendFailed = {
|
|
|
174
189
|
></bs-composer-status-banner>
|
|
175
190
|
<bs-composer aria-label="Message"></bs-composer>
|
|
176
191
|
</div>
|
|
177
|
-
<bs-ai-disclaimer style="padding: var(--bs-spacing-
|
|
192
|
+
<bs-ai-disclaimer style="padding: var(--bs-spacing-150) 0 var(--bs-spacing-100);">AI can make mistakes. Please verify important information.</bs-ai-disclaimer>
|
|
178
193
|
</div>
|
|
179
194
|
`,
|
|
180
195
|
};
|
|
@@ -24,7 +24,8 @@ import { h } from "@stencil/core";
|
|
|
24
24
|
*/
|
|
25
25
|
export class BsAiDisclaimer {
|
|
26
26
|
render() {
|
|
27
|
-
|
|
27
|
+
https: //images.unsplash.com/photo-1512917774080-9991f1c4c750?w=200&h=200&fit=crop
|
|
28
|
+
return (h("div", { key: '4ef6ca1bd71846f361322763d4a8a9b629da9c33', class: "bs-ai-disclaimer" }, h("p", { key: '62ae8fe04dfcba8c357a4bc2e540a86c02faa961', part: "text", class: "bs-ai-disclaimer__text" }, h("slot", { key: '229c78f58ac3a9868492e82434ff894a20f29613' }))));
|
|
28
29
|
}
|
|
29
30
|
static get is() { return "bs-ai-disclaimer"; }
|
|
30
31
|
static get encapsulation() { return "shadow"; }
|
|
@@ -43,7 +43,7 @@ export class BsAiGreeting {
|
|
|
43
43
|
const subtext = this.productName
|
|
44
44
|
? `How can I help you with ${this.productName} today?`
|
|
45
45
|
: 'How can I help you today?';
|
|
46
|
-
return (h("div", { key: '
|
|
46
|
+
return (h("div", { key: 'f3cfd0ecf060abf18c9f043f8ebbe7d93926e044', class: "bs-ai-greeting" }, h("div", { key: 'e1cb5cba1752e5261a750734db768e32f8ce7723', part: "heading", class: "bs-ai-greeting__heading" }, h("p", { key: '31e0f592eb17a6c48f407837e37b29cd8b580cde', class: "bs-ai-greeting__heading-line" }, "Hi. I'm ", this.assistantName, ","), h("p", { key: 'd35c3fb4df5d90eccef75638881f27e37d379ded', class: "bs-ai-greeting__heading-line" }, "your AI assistant.")), h("p", { key: 'cb7d9a8081c0128f8e24eb165cf7857bcb82cdeb', part: "subtext", class: "bs-ai-greeting__subtext" }, subtext)));
|
|
47
47
|
}
|
|
48
48
|
static get is() { return "bs-ai-greeting"; }
|
|
49
49
|
static get encapsulation() { return "shadow"; }
|
|
@@ -29,7 +29,7 @@ export class BsAiThinking {
|
|
|
29
29
|
/** The status text shown next to the icon, e.g. "Retrieving", "Thinking", "Searching". */
|
|
30
30
|
label = 'Thinking';
|
|
31
31
|
render() {
|
|
32
|
-
return (h("div", { key: '
|
|
32
|
+
return (h("div", { key: '312409b5eb383fc321814784c036841e43b6311e', class: "bs-ai-thinking", role: "status", "aria-live": "polite" }, h("img", { key: 'c98b5fdff23e9911cb946774e98b2f308838cf4d', part: "icon", class: "bs-ai-thinking__icon", src: GENIE_MARK_ICON, alt: "", "aria-hidden": "true" }), h("span", { key: '65d4193a343877b05e031c36e03c9faa5a439db6', part: "label", class: "bs-ai-thinking__label" }, this.label)));
|
|
33
33
|
}
|
|
34
34
|
static get is() { return "bs-ai-thinking"; }
|
|
35
35
|
static get encapsulation() { return "shadow"; }
|
|
@@ -7,10 +7,6 @@
|
|
|
7
7
|
--bs-attachment-filename-color: var(--bs-text-default);
|
|
8
8
|
--bs-attachment-badge-bg-pdf: var(--bs-badge-bg-error);
|
|
9
9
|
--bs-attachment-badge-bg-document: var(--bs-badge-bg-info);
|
|
10
|
-
--bs-attachment-remove-bg: var(--bs-button-neutral-container);
|
|
11
|
-
--bs-attachment-remove-hover: var(--bs-button-neutral-hover);
|
|
12
|
-
--bs-attachment-remove-pressed: var(--bs-button-neutral-pressed);
|
|
13
|
-
--bs-attachment-remove-focus: var(--bs-border-neutral-focus);
|
|
14
10
|
}
|
|
15
11
|
|
|
16
12
|
.bs-attachment {
|
|
@@ -98,35 +94,23 @@
|
|
|
98
94
|
background: var(--bs-attachment-badge-bg-document);
|
|
99
95
|
}
|
|
100
96
|
|
|
101
|
-
/* --- Remove button ---
|
|
97
|
+
/* --- Remove button ---
|
|
98
|
+
bs-icon-button owns its own background/color/radius/hover/pressed/focus styling internally
|
|
99
|
+
(variant="neutral" size="xs") -- this component only positions it (absolute, top-right corner)
|
|
100
|
+
and drives the hover/focus-revealed opacity, both external layout concerns bs-icon-button
|
|
101
|
+
itself has no opinion on. */
|
|
102
102
|
|
|
103
103
|
.bs-attachment__remove {
|
|
104
|
-
box-sizing: border-box;
|
|
105
104
|
position: absolute;
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
height: 20px;
|
|
113
|
-
padding: 0;
|
|
114
|
-
background: var(--bs-attachment-remove-bg);
|
|
115
|
-
border: none;
|
|
116
|
-
border-radius: var(--bs-border-radius-50);
|
|
117
|
-
color: var(--bs-icon-default);
|
|
118
|
-
cursor: pointer;
|
|
105
|
+
/* Verified against Figma node 2513:32843 (EG Genie UI Kit v1.0): the remove button's own 32x32
|
|
106
|
+
hit-target box sits flush at the thumbnail's top-right corner (top:0, right:0), with the
|
|
107
|
+
*visible* 16px button centered inside it (8px inset on every side) -- so the visible button's
|
|
108
|
+
real offset from the thumbnail's corner is 8px, not 4px. */
|
|
109
|
+
top: var(--bs-spacing-100);
|
|
110
|
+
right: var(--bs-spacing-100);
|
|
119
111
|
opacity: 0;
|
|
120
112
|
pointer-events: none;
|
|
121
|
-
transition:
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
.bs-attachment__remove:hover {
|
|
125
|
-
background: var(--bs-attachment-remove-hover);
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
.bs-attachment__remove:active {
|
|
129
|
-
background: var(--bs-attachment-remove-pressed);
|
|
113
|
+
transition: opacity var(--bs-duration-fast) var(--bs-easing-standard);
|
|
130
114
|
}
|
|
131
115
|
|
|
132
116
|
.bs-attachment:hover .bs-attachment__remove,
|
|
@@ -135,11 +119,6 @@
|
|
|
135
119
|
pointer-events: auto;
|
|
136
120
|
}
|
|
137
121
|
|
|
138
|
-
.bs-attachment__remove:focus-visible {
|
|
139
|
-
outline: 2px solid var(--bs-attachment-remove-focus);
|
|
140
|
-
outline-offset: 1px;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
122
|
/* --- Spinner --- */
|
|
144
123
|
|
|
145
124
|
.bs-attachment__spinner {
|
|
@@ -2,7 +2,9 @@ import { h } from "@stencil/core";
|
|
|
2
2
|
/**
|
|
3
3
|
* A single file attachment preview for `bs-composer` -- an image thumbnail, or a filename card
|
|
4
4
|
* with a colored file-type badge (PDF/Document), with an optional upload-in-progress spinner and
|
|
5
|
-
* a hover/focus-revealed remove button
|
|
5
|
+
* a hover/focus-revealed remove button (a `bs-icon-button` with `size="xs"` `variant="neutral"` --
|
|
6
|
+
* the same 16x16px compact tier `bs-icon-button` documents as meant for exactly this kind of
|
|
7
|
+
* chip/tag "remove" control).
|
|
6
8
|
*
|
|
7
9
|
* ## When to use
|
|
8
10
|
* - Rendered by the consuming app for each file a user has attached to a Genie AI chat message,
|
|
@@ -27,14 +29,6 @@ import { h } from "@stencil/core";
|
|
|
27
29
|
* @prop --bs-attachment-badge-bg-pdf - PDF badge background. Aliased to `--bs-badge-bg-error`.
|
|
28
30
|
* @prop --bs-attachment-badge-bg-document - Document badge background. Aliased to
|
|
29
31
|
* `--bs-badge-bg-info`.
|
|
30
|
-
* @prop --bs-attachment-remove-bg - Remove button (neutral icon button) default background.
|
|
31
|
-
* Aliased to `--bs-button-neutral-container`.
|
|
32
|
-
* @prop --bs-attachment-remove-hover - Remove button hover background. Aliased to
|
|
33
|
-
* `--bs-button-neutral-hover`.
|
|
34
|
-
* @prop --bs-attachment-remove-pressed - Remove button active/pressed background. Aliased to
|
|
35
|
-
* `--bs-button-neutral-pressed`.
|
|
36
|
-
* @prop --bs-attachment-remove-focus - Remove button focus outline color. Aliased to
|
|
37
|
-
* `--bs-border-neutral-focus`.
|
|
38
32
|
*/
|
|
39
33
|
export class BsAttachment {
|
|
40
34
|
/** Which kind of attachment preview to render. */
|
|
@@ -56,7 +50,7 @@ export class BsAttachment {
|
|
|
56
50
|
};
|
|
57
51
|
render() {
|
|
58
52
|
const isImage = this.type === 'image';
|
|
59
|
-
return (h("div", { key: '
|
|
53
|
+
return (h("div", { key: '54b6d63b3e3fa98e5ec10444253b145080facc97', class: { 'bs-attachment': true, 'bs-attachment--loading': this.loading }, "aria-busy": this.loading ? 'true' : 'false' }, isImage ? this.renderImage() : this.renderCard(), this.removable && (h("bs-icon-button", { key: 'bc0c6cd660a361886447f38b56578a2271384e99', part: "remove", class: "bs-attachment__remove", size: "xs", variant: "neutral", ariaLabel: `Remove attachment: ${this.fileName}`, onClick: this.onRemoveClick }, h(CloseIcon, { key: 'fc932382233dfe20c46666705f1c79540bc08d35' })))));
|
|
60
54
|
}
|
|
61
55
|
renderImage() {
|
|
62
56
|
return (h("div", { part: "thumbnail", class: "bs-attachment__thumbnail" }, h("img", { class: "bs-attachment__image", src: this.imageSrc, alt: this.imageAlt }), this.loading && h(Spinner, { class: "bs-attachment__spinner bs-attachment__spinner--overlay", size: 16 })));
|
|
@@ -58,7 +58,7 @@ export class BsAttachmentList {
|
|
|
58
58
|
this.canScrollRight = row.scrollWidth - row.clientWidth - row.scrollLeft > 1;
|
|
59
59
|
};
|
|
60
60
|
render() {
|
|
61
|
-
return (h("div", { key: '
|
|
61
|
+
return (h("div", { key: '41159aec889d4dfa26d368b1d24f8678856da661', class: "bs-attachment-list" }, h("div", { key: '0e3c29de5f945209e9b91b406bd287524f41d801', part: "row", class: "bs-attachment-list__row", ref: el => (this.row = el), onScroll: this.onScroll, role: "group", "aria-label": this.ariaLabel, tabIndex: 0 }, h("slot", { key: '657b063a8a38e176bf8bae6234f9db02b18ab7c4', onSlotchange: this.onSlotchange })), this.canScrollRight && h("div", { key: '1331fa30ed368f253e95812343356fc22a0280c7', part: "fade", class: "bs-attachment-list__fade", "aria-hidden": "true" })));
|
|
62
62
|
}
|
|
63
63
|
static get is() { return "bs-attachment-list"; }
|
|
64
64
|
static get encapsulation() { return "shadow"; }
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
describe('bs-avatar', () => {
|
|
3
|
+
it('defaults to type="icon" size="md"', async () => {
|
|
4
|
+
const { root } = await render(h("bs-avatar", null));
|
|
5
|
+
const container = root.shadowRoot.querySelector('[part="container"]');
|
|
6
|
+
expect(container).toHaveClass('bs-avatar--icon');
|
|
7
|
+
expect(container).toHaveClass('bs-avatar--md');
|
|
8
|
+
expect(container).toEqualAttribute('role', 'img');
|
|
9
|
+
});
|
|
10
|
+
it('renders the fallback user icon for type="icon"', async () => {
|
|
11
|
+
const { root } = await render(h("bs-avatar", { type: "icon" }));
|
|
12
|
+
expect(root.shadowRoot.querySelector('[part="icon"]')).not.toBeNull();
|
|
13
|
+
expect(root.shadowRoot.querySelector('[part="initials"]')).toBeNull();
|
|
14
|
+
expect(root.shadowRoot.querySelector('[part="image"]')).toBeNull();
|
|
15
|
+
});
|
|
16
|
+
it('renders the initials text for type="initials"', async () => {
|
|
17
|
+
const { root } = await render(h("bs-avatar", { type: "initials", initials: "SL" }));
|
|
18
|
+
const initials = root.shadowRoot.querySelector('[part="initials"]');
|
|
19
|
+
expect(initials).not.toBeNull();
|
|
20
|
+
expect(initials.textContent).toBe('SL');
|
|
21
|
+
expect(root.shadowRoot.querySelector('[part="icon"]')).toBeNull();
|
|
22
|
+
});
|
|
23
|
+
it('renders a real <img> with src/alt for type="image", with no outer role/aria-label', async () => {
|
|
24
|
+
const { root } = await render(h("bs-avatar", { type: "image", src: "https://example.com/photo.jpg", alt: "Sam Lee" }));
|
|
25
|
+
const img = root.shadowRoot.querySelector('[part="image"]');
|
|
26
|
+
expect(img).not.toBeNull();
|
|
27
|
+
expect(img.tagName).toBe('IMG');
|
|
28
|
+
expect(img).toEqualAttribute('src', 'https://example.com/photo.jpg');
|
|
29
|
+
expect(img).toEqualAttribute('alt', 'Sam Lee');
|
|
30
|
+
const container = root.shadowRoot.querySelector('[part="container"]');
|
|
31
|
+
expect(container.hasAttribute('role')).toBe(false);
|
|
32
|
+
expect(container.hasAttribute('aria-label')).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
it('falls back to alt="" (not a missing attribute) when alt is not provided for type="image"', async () => {
|
|
35
|
+
const { root } = await render(h("bs-avatar", { type: "image", src: "https://example.com/photo.jpg" }));
|
|
36
|
+
const img = root.shadowRoot.querySelector('[part="image"]');
|
|
37
|
+
expect(img).toEqualAttribute('alt', '');
|
|
38
|
+
});
|
|
39
|
+
it('sets aria-label from ariaLabel for type="icon"/"initials"', async () => {
|
|
40
|
+
const { root } = await render(h("bs-avatar", { type: "initials", initials: "SL", ariaLabel: "Sam Lee" }));
|
|
41
|
+
expect(root.shadowRoot.querySelector('[part="container"]')).toEqualAttribute('aria-label', 'Sam Lee');
|
|
42
|
+
});
|
|
43
|
+
it('applies the correct size class for every size value', async () => {
|
|
44
|
+
const sizes = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
|
|
45
|
+
for (const size of sizes) {
|
|
46
|
+
const { root } = await render(h("bs-avatar", { size: size }));
|
|
47
|
+
expect(root.shadowRoot.querySelector('[part="container"]')).toHaveClass(`bs-avatar--${size}`);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
it('reflects disabled as a host attribute', async () => {
|
|
51
|
+
const { root } = await render(h("bs-avatar", { disabled: true }));
|
|
52
|
+
expect(root.hasAttribute('disabled')).toBe(true);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prop --bs-avatar-size-xs: Width/height at size="xs". 24px, matching Figma's own six-step scale.
|
|
3
|
+
* @prop --bs-avatar-size-sm: Width/height at size="sm". 32px.
|
|
4
|
+
* @prop --bs-avatar-size-md: Width/height at size="md". 44px.
|
|
5
|
+
* @prop --bs-avatar-size-lg: Width/height at size="lg". 64px.
|
|
6
|
+
* @prop --bs-avatar-size-xl: Width/height at size="xl". 96px.
|
|
7
|
+
* @prop --bs-avatar-size-xxl: Width/height at size="xxl". 128px.
|
|
8
|
+
* @prop --bs-avatar-radius: Corner radius -- always a full circle regardless of size. Aliased to
|
|
9
|
+
* --bs-border-radius-full.
|
|
10
|
+
* @prop --bs-avatar-border-width: Border width at every size except xxl. Aliased to
|
|
11
|
+
* --bs-border-width-thin (1px).
|
|
12
|
+
* @prop --bs-avatar-border-width-xxl: Border width at size="xxl" specifically -- Figma specs this
|
|
13
|
+
* one size a hair thicker (1.333px) than the other five, not a rounding artifact.
|
|
14
|
+
* @prop --bs-avatar-bg-dafault: Background, resting. Aliased to --bs-surface-raised. Named
|
|
15
|
+
* "dafault" (not a typo introduced here) -- this is this library's own vendored
|
|
16
|
+
* brandsync-tokens token verbatim; see CLAUDE.md's note on pre-existing malformed vendored
|
|
17
|
+
* token names.
|
|
18
|
+
* @prop --bs-avatar-bg-hover: Background on hover. Aliased to --bs-surface-raised -- identical to
|
|
19
|
+
* the resting value; only the border recolors on hover (see below).
|
|
20
|
+
* @prop --bs-avatar-bg-pressed: Background while pressed. Aliased to --bs-surface-raised, same
|
|
21
|
+
* reasoning as hover.
|
|
22
|
+
* @prop --bs-avatar-bg-focused: Background while focused. Aliased to --bs-surface-raised, same
|
|
23
|
+
* reasoning as hover.
|
|
24
|
+
* @prop --bs-avatar-border-primary: Border color, resting. Aliased to
|
|
25
|
+
* --bs-border-neutral-container.
|
|
26
|
+
* @prop --bs-avatar-border-hover: Border color on hover. Aliased to
|
|
27
|
+
* --bs-border-neutral-container-hover.
|
|
28
|
+
* @prop --bs-avatar-border-pressed: Border color while pressed. Aliased to
|
|
29
|
+
* --bs-border-neutral-container-pressed.
|
|
30
|
+
* @prop --bs-avatar-border-focused: Border color while focused -- Figma keeps this identical to
|
|
31
|
+
* the resting --bs-avatar-border-primary; the focus ring (--bs-avatar-border-focus below) is a
|
|
32
|
+
* separate, additional ring, not a border recolor.
|
|
33
|
+
* @prop --bs-avatar-border-focus: Focus ring color -- a separate ring drawn just outside the
|
|
34
|
+
* avatar's own border, not the border's own color (see --bs-avatar-border-focused above).
|
|
35
|
+
* Aliased to --bs-border-neutral-focus.
|
|
36
|
+
* @prop --bs-avatar-icon-primary: Fallback user-icon color (type="icon"). Aliased to
|
|
37
|
+
* --bs-icon-muted.
|
|
38
|
+
* @prop --bs-avatar-text-default: Initials text color (type="initials"). Aliased to
|
|
39
|
+
* --bs-text-default.
|
|
40
|
+
*
|
|
41
|
+
* All of the --bs-avatar-* custom properties above are this library's existing vendored
|
|
42
|
+
* brandsync-tokens tokens (see tokens.css), not new ones invented for this component --
|
|
43
|
+
* brandsync-tokens already ships a full avatar-specific token set, referenced here directly
|
|
44
|
+
* rather than re-aliased through component-local names the way most other components in this
|
|
45
|
+
* library do, since there's nothing left to add a layer of indirection over.
|
|
46
|
+
*/
|
|
47
|
+
:host {
|
|
48
|
+
display: inline-flex;
|
|
49
|
+
vertical-align: middle;
|
|
50
|
+
|
|
51
|
+
--bs-avatar-size-xs: 24px;
|
|
52
|
+
--bs-avatar-size-sm: 32px;
|
|
53
|
+
--bs-avatar-size-md: 44px;
|
|
54
|
+
--bs-avatar-size-lg: 64px;
|
|
55
|
+
--bs-avatar-size-xl: 96px;
|
|
56
|
+
--bs-avatar-size-xxl: 128px;
|
|
57
|
+
|
|
58
|
+
--bs-avatar-radius: var(--bs-border-radius-full);
|
|
59
|
+
--bs-avatar-border-width: var(--bs-border-width-thin);
|
|
60
|
+
--bs-avatar-border-width-xxl: 1.333px;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.bs-avatar {
|
|
64
|
+
box-sizing: border-box;
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
justify-content: center;
|
|
68
|
+
overflow: hidden;
|
|
69
|
+
border-radius: var(--bs-avatar-radius);
|
|
70
|
+
border: var(--bs-avatar-border-width) solid var(--bs-avatar-border-primary);
|
|
71
|
+
background: var(--bs-avatar-bg-dafault);
|
|
72
|
+
flex-shrink: 0;
|
|
73
|
+
/* Prevents the initials text (or a stray click-drag anywhere in the circle) from highlighting
|
|
74
|
+
like ordinary selectable text -- this component is meant to read as a single glyph/photo, not
|
|
75
|
+
text content, especially once a consuming app makes it interactive (see the class doc in
|
|
76
|
+
bs-avatar.tsx). Same convention already used for bs-data-table's own clickable sort header. */
|
|
77
|
+
user-select: none;
|
|
78
|
+
-webkit-user-select: none;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.bs-avatar--xs {
|
|
82
|
+
width: var(--bs-avatar-size-xs);
|
|
83
|
+
height: var(--bs-avatar-size-xs);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.bs-avatar--sm {
|
|
87
|
+
width: var(--bs-avatar-size-sm);
|
|
88
|
+
height: var(--bs-avatar-size-sm);
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.bs-avatar--md {
|
|
92
|
+
width: var(--bs-avatar-size-md);
|
|
93
|
+
height: var(--bs-avatar-size-md);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.bs-avatar--lg {
|
|
97
|
+
width: var(--bs-avatar-size-lg);
|
|
98
|
+
height: var(--bs-avatar-size-lg);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.bs-avatar--xl {
|
|
102
|
+
width: var(--bs-avatar-size-xl);
|
|
103
|
+
height: var(--bs-avatar-size-xl);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.bs-avatar--xxl {
|
|
107
|
+
width: var(--bs-avatar-size-xxl);
|
|
108
|
+
height: var(--bs-avatar-size-xxl);
|
|
109
|
+
border-width: var(--bs-avatar-border-width-xxl);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/* type="image" */
|
|
113
|
+
.bs-avatar__image {
|
|
114
|
+
display: block;
|
|
115
|
+
width: 100%;
|
|
116
|
+
height: 100%;
|
|
117
|
+
object-fit: cover;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/* type="icon" -- proportional to the container regardless of size, so one shared viewBox scales
|
|
121
|
+
cleanly across all six sizes without needing a per-size icon custom property. */
|
|
122
|
+
.bs-avatar__icon {
|
|
123
|
+
width: 60%;
|
|
124
|
+
height: 60%;
|
|
125
|
+
color: var(--bs-avatar-icon-primary);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* type="initials" -- font styling genuinely varies per size, not a simple linear scale (xs/sm
|
|
129
|
+
share one tier, lg sits between md and xl/xxl using a different font family/weight despite
|
|
130
|
+
matching md's font SIZE) -- matching Figma's own per-size type styles exactly rather than
|
|
131
|
+
interpolating a "cleaner" scale of our own. */
|
|
132
|
+
.bs-avatar__initials {
|
|
133
|
+
color: var(--bs-avatar-text-default);
|
|
134
|
+
font-family: var(--bs-typography-font-family-body);
|
|
135
|
+
font-weight: var(--bs-font-weight-medium);
|
|
136
|
+
text-align: center;
|
|
137
|
+
white-space: nowrap;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
.bs-avatar--xs .bs-avatar__initials,
|
|
141
|
+
.bs-avatar--sm .bs-avatar__initials {
|
|
142
|
+
font-size: var(--bs-fontsize-caption-sm);
|
|
143
|
+
line-height: calc(var(--bs-line-height-caption-sm) * 1px);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.bs-avatar--md .bs-avatar__initials {
|
|
147
|
+
font-family: var(--bs-typography-font-family-heading);
|
|
148
|
+
font-weight: var(--bs-font-weight-bold);
|
|
149
|
+
font-size: var(--bs-fontsize-heading-h6);
|
|
150
|
+
line-height: calc(var(--bs-line-height-heading-h6) * 1px);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.bs-avatar--lg .bs-avatar__initials {
|
|
154
|
+
font-size: var(--bs-fontsize-body-md);
|
|
155
|
+
line-height: calc(var(--bs-line-height-body-md) * 1px);
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.bs-avatar--xl .bs-avatar__initials,
|
|
159
|
+
.bs-avatar--xxl .bs-avatar__initials {
|
|
160
|
+
font-family: var(--bs-typography-font-family-heading);
|
|
161
|
+
font-weight: var(--bs-font-weight-bold);
|
|
162
|
+
font-size: var(--bs-fontsize-heading-h4);
|
|
163
|
+
line-height: calc(var(--bs-line-height-heading-h4) * 1px);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/* Interaction states -- real :hover/:focus-visible/:active on the HOST itself (not a wrapping
|
|
167
|
+
button this component doesn't render), so a consuming app gets this treatment for free just by
|
|
168
|
+
making the <bs-avatar> element itself interactive (a click handler + tabindex, or wrapping it in
|
|
169
|
+
their own <button>) -- see the class doc in bs-avatar.tsx for why. Guarded by :not([disabled])
|
|
170
|
+
so a disabled avatar never shows a hover/focus/pressed treatment even if a consumer's own
|
|
171
|
+
wrapping control still lets these pseudo-classes match. */
|
|
172
|
+
:host(:hover:not([disabled])) .bs-avatar {
|
|
173
|
+
background: var(--bs-avatar-bg-hover);
|
|
174
|
+
border-color: var(--bs-avatar-border-hover);
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
:host(:active:not([disabled])) .bs-avatar {
|
|
178
|
+
background: var(--bs-avatar-bg-pressed);
|
|
179
|
+
border-color: var(--bs-avatar-border-pressed);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* Focus keeps the resting border color (--bs-avatar-border-focused is identical to
|
|
183
|
+
--bs-avatar-border-primary in Figma) and adds a separate ring just outside it instead of
|
|
184
|
+
recoloring the border itself -- unlike hover/pressed above. */
|
|
185
|
+
:host(:focus-visible:not([disabled])) {
|
|
186
|
+
outline: none;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
:host(:focus-visible:not([disabled])) .bs-avatar {
|
|
190
|
+
background: var(--bs-avatar-bg-focused);
|
|
191
|
+
border-color: var(--bs-avatar-border-focused);
|
|
192
|
+
box-shadow: 0 0 0 3px var(--bs-avatar-border-focus);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
:host([disabled]) {
|
|
196
|
+
opacity: 0.5;
|
|
197
|
+
}
|