@brandsync/wc 1.3.0 → 1.5.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 +302 -91
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/{p-7ea0133f.entry.js → p-1b16b6e4.entry.js} +1 -1
- package/dist/brandsync-wc/{p-5d118af1.entry.js → p-1bfc80c3.entry.js} +1 -1
- package/dist/brandsync-wc/{p-2a7cc40c.entry.js → p-1d094352.entry.js} +1 -1
- package/dist/brandsync-wc/p-27741046.entry.js +1 -0
- package/dist/brandsync-wc/{p-0c8050e8.entry.js → p-2c2057f5.entry.js} +1 -1
- package/dist/brandsync-wc/p-2e8bf5da.entry.js +1 -0
- package/dist/brandsync-wc/{p-a73bfd31.entry.js → p-3145cc00.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d589fa72.entry.js → p-35850bfe.entry.js} +1 -1
- package/dist/brandsync-wc/p-3e4a9f38.entry.js +1 -0
- package/dist/brandsync-wc/p-3f6980bf.entry.js +1 -0
- package/dist/brandsync-wc/p-42f428b0.entry.js +1 -0
- package/dist/brandsync-wc/{p-b2704450.entry.js → p-46957b76.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0d5cc77f.entry.js → p-4df71e00.entry.js} +1 -1
- package/dist/brandsync-wc/{p-72e02bd5.entry.js → p-58969b2b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0299e8e1.entry.js → p-5ea24f7e.entry.js} +1 -1
- package/dist/brandsync-wc/p-5f233b4e.entry.js +1 -0
- package/dist/brandsync-wc/{p-19c98e13.entry.js → p-692fd5f0.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9ad278f4.entry.js → p-69c76966.entry.js} +1 -1
- package/dist/brandsync-wc/{p-be675b82.entry.js → p-6acdf2e1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-673546bf.entry.js → p-6b62bf53.entry.js} +1 -1
- package/dist/brandsync-wc/{p-23758f81.entry.js → p-6fd1fb04.entry.js} +1 -1
- package/dist/brandsync-wc/{p-29c360f3.entry.js → p-76a37a98.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8b5f4ca7.entry.js → p-83bda5f1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a16afeaa.entry.js → p-899d24f8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-94266d72.entry.js → p-8f90e906.entry.js} +1 -1
- package/dist/brandsync-wc/{p-5a4db480.entry.js → p-906b4faa.entry.js} +1 -1
- package/dist/brandsync-wc/{p-eae7587e.entry.js → p-943fc6b9.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7de20530.entry.js → p-95e0fb92.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ca74c7d9.entry.js → p-9d5cf289.entry.js} +1 -1
- package/dist/brandsync-wc/{p-CvfB8CQv.js → p-CcPfH1dJ.js} +2 -2
- package/dist/brandsync-wc/{p-04c26826.entry.js → p-a34c7553.entry.js} +1 -1
- package/dist/brandsync-wc/{p-bf4a5b1b.entry.js → p-a55a3d87.entry.js} +1 -1
- package/dist/brandsync-wc/{p-76d391d7.entry.js → p-a64b64f8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f196642a.entry.js → p-a77a5438.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8acb623e.entry.js → p-a96ec9a1.entry.js} +1 -1
- package/dist/brandsync-wc/p-ac2ccc4b.entry.js +1 -0
- package/dist/brandsync-wc/{p-18e0cff4.entry.js → p-b332fe01.entry.js} +1 -1
- package/dist/brandsync-wc/{p-8ec95da5.entry.js → p-b4211012.entry.js} +1 -1
- package/dist/brandsync-wc/{p-f652d79c.entry.js → p-ba650ca9.entry.js} +1 -1
- package/dist/brandsync-wc/{p-96d1ce21.entry.js → p-c91eb3eb.entry.js} +1 -1
- package/dist/brandsync-wc/{p-bcafba87.entry.js → p-cd90ed34.entry.js} +1 -1
- package/dist/brandsync-wc/{p-7091f130.entry.js → p-d1dfd37d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e58b1dbb.entry.js → p-d69e5034.entry.js} +1 -1
- package/dist/brandsync-wc/{p-b63362e7.entry.js → p-da6fa359.entry.js} +1 -1
- package/dist/brandsync-wc/p-dadbb3f1.entry.js +1 -0
- package/dist/brandsync-wc/{p-d5d15d9f.entry.js → p-dbd49107.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9f9c1a1d.entry.js → p-dc974a34.entry.js} +1 -1
- package/dist/brandsync-wc/{p-35d98580.entry.js → p-e9a89ea0.entry.js} +1 -1
- package/dist/brandsync-wc/p-eb1c98a5.entry.js +1 -0
- package/dist/brandsync-wc/{p-bd2cc2c6.entry.js → p-f0a6ff05.entry.js} +1 -1
- package/dist/brandsync-wc/{p-39204377.entry.js → p-f4cb1337.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c4a16564.entry.js → p-fd1acc0f.entry.js} +1 -1
- package/dist/cjs/brandsync-wc.cjs.js +2 -2
- package/dist/cjs/bs-accordion.cjs.entry.js +54 -0
- package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +2 -2
- package/dist/cjs/bs-ai-greeting.cjs.entry.js +2 -2
- package/dist/cjs/bs-ai-thinking.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment-list.cjs.entry.js +2 -2
- package/dist/cjs/bs-attachment.cjs.entry.js +2 -2
- package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
- package/dist/cjs/bs-badge.cjs.entry.js +2 -2
- package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +2 -2
- package/dist/cjs/bs-breadcrumb.cjs.entry.js +2 -2
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/cjs/bs-checkbox.cjs.entry.js +2 -2
- package/dist/cjs/bs-chip-filter.cjs.entry.js +10 -6
- package/dist/cjs/bs-chip-informative.cjs.entry.js +2 -2
- package/dist/cjs/bs-chip-input.cjs.entry.js +2 -2
- package/dist/cjs/bs-composer-status-banner.cjs.entry.js +2 -2
- package/dist/cjs/bs-composer.cjs.entry.js +26 -3
- package/dist/cjs/bs-data-table.cjs.entry.js +21 -4
- package/dist/cjs/bs-dialog.cjs.entry.js +1 -1
- package/dist/cjs/bs-icon-button.cjs.entry.js +3 -3
- package/dist/cjs/bs-inline-tab.cjs.entry.js +2 -2
- package/dist/cjs/bs-input.cjs.entry.js +3 -3
- package/dist/cjs/bs-logo.cjs.entry.js +1 -1
- package/dist/cjs/bs-menu-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-menu.cjs.entry.js +2 -2
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +2 -2
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +3 -3
- package/dist/cjs/bs-navigation-header.cjs.entry.js +3 -3
- package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
- package/dist/cjs/bs-progress-linear.cjs.entry.js +3 -3
- package/dist/cjs/bs-progress.cjs.entry.js +3 -3
- package/dist/cjs/bs-radio.cjs.entry.js +2 -2
- package/dist/cjs/bs-slider.cjs.entry.js +2 -2
- package/dist/cjs/bs-snackbar.cjs.entry.js +13 -3
- package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
- package/dist/cjs/bs-stepper-step.cjs.entry.js +2 -2
- package/dist/cjs/bs-stepper.cjs.entry.js +2 -2
- package/dist/cjs/bs-switch.cjs.entry.js +2 -2
- package/dist/cjs/bs-tab.cjs.entry.js +2 -2
- package/dist/cjs/bs-tabs.cjs.entry.js +2 -2
- package/dist/cjs/bs-toast.cjs.entry.js +2 -2
- package/dist/cjs/bs-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/{index-CdAh5BFg.js → index-Bj1mNOtg.js} +17 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/bs-accordion/bs-accordion.cmp.test.js +112 -0
- package/dist/collection/components/bs-accordion/bs-accordion.css +174 -0
- package/dist/collection/components/bs-accordion/bs-accordion.js +203 -0
- package/dist/collection/components/bs-accordion/bs-accordion.stories.js +63 -0
- package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
- package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
- package/dist/collection/components/bs-attachment/bs-attachment.js +1 -1
- package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
- package/dist/collection/components/bs-badge/bs-badge.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
- package/dist/collection/components/bs-button/bs-button/bs-button.css +15 -5
- package/dist/collection/components/bs-button/bs-button/bs-button.js +1 -1
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.css +15 -7
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +1 -1
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
- package/dist/collection/components/bs-card/bs-card.js +1 -1
- package/dist/collection/components/bs-chatbot-feedback/bs-chatbot-feedback.js +1 -1
- package/dist/collection/components/bs-chatbot-header/bs-chatbot-header.js +1 -1
- package/dist/collection/components/bs-chatbot-response-action/bs-chatbot-response-action.js +1 -1
- package/dist/collection/components/bs-chatbot-sources-drawer/bs-chatbot-sources-drawer.js +1 -1
- package/dist/collection/components/bs-chatbot-suggestion-button/bs-chatbot-suggestion-button.js +1 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox-skeleton/bs-checkbox-skeleton.js +1 -1
- package/dist/collection/components/bs-checkbox/bs-checkbox.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.cmp.test.js +19 -5
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +11 -7
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
- package/dist/collection/components/bs-composer/bs-composer.cmp.test.js +44 -0
- package/dist/collection/components/bs-composer/bs-composer.js +29 -6
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +1 -1
- package/dist/collection/components/bs-data-table/bs-data-table.cmp.test.js +108 -0
- package/dist/collection/components/bs-data-table/bs-data-table.css +5 -3
- package/dist/collection/components/bs-data-table/bs-data-table.js +40 -2
- package/dist/collection/components/bs-input/bs-input.js +2 -2
- 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.js +1 -1
- package/dist/collection/components/bs-progress/bs-progress.js +2 -2
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +2 -2
- package/dist/collection/components/bs-radio/bs-radio.js +1 -1
- package/dist/collection/components/bs-slider/bs-slider.js +1 -1
- package/dist/collection/components/bs-snackbar/bs-snackbar.cmp.test.js +4 -1
- package/dist/collection/components/bs-snackbar/bs-snackbar.css +8 -155
- package/dist/collection/components/bs-snackbar/bs-snackbar.js +11 -1
- package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
- package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +1 -1
- package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +1 -1
- package/dist/collection/components/bs-switch/bs-switch.js +1 -1
- package/dist/collection/components/bs-tab/bs-inline-tab/bs-inline-tab.js +1 -1
- package/dist/collection/components/bs-tab/bs-tab/bs-tab.js +1 -1
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +1 -1
- package/dist/collection/components/bs-toast/bs-toast.js +1 -1
- 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 +6 -0
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.css +43 -1
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer-item/bs-navigation-drawer-item.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.css +25 -0
- package/dist/collection/components/ui-shell/bs-navigation-header/bs-navigation-header/bs-navigation-header.js +1 -1
- package/dist/components/bs-accordion.d.ts +11 -0
- package/dist/components/bs-accordion.js +1 -0
- package/dist/components/bs-ai-disclaimer.js +1 -1
- package/dist/components/bs-ai-greeting.js +1 -1
- package/dist/components/bs-ai-thinking.js +1 -1
- package/dist/components/bs-attachment-list.js +1 -1
- package/dist/components/bs-attachment.js +1 -1
- package/dist/components/bs-badge.js +1 -1
- package/dist/components/bs-breadcrumb-overflow.js +1 -1
- package/dist/components/bs-breadcrumb.js +1 -1
- package/dist/components/bs-breadcrumbs.js +1 -1
- package/dist/components/bs-button-skeleton.js +1 -1
- package/dist/components/bs-button.js +1 -1
- package/dist/components/bs-card.js +1 -1
- package/dist/components/bs-chatbot-feedback.js +1 -1
- package/dist/components/bs-chatbot-header.js +1 -1
- package/dist/components/bs-chatbot-response-action.js +1 -1
- package/dist/components/bs-chatbot-sources-drawer.js +1 -1
- package/dist/components/bs-chatbot-suggestion-button.js +1 -1
- package/dist/components/bs-checkbox-skeleton.js +1 -1
- package/dist/components/bs-checkbox.js +1 -1
- package/dist/components/bs-chip-filter.js +1 -1
- package/dist/components/bs-chip-informative.js +1 -1
- package/dist/components/bs-chip-input.js +1 -1
- package/dist/components/bs-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.js +1 -1
- package/dist/components/bs-icon-button.js +1 -1
- package/dist/components/bs-inline-tab.js +1 -1
- package/dist/components/bs-input.js +1 -1
- package/dist/components/bs-menu-item.js +1 -1
- package/dist/components/bs-menu.js +1 -1
- package/dist/components/bs-navigation-drawer-item.js +1 -1
- package/dist/components/bs-navigation-drawer.js +1 -1
- package/dist/components/bs-navigation-header.js +1 -1
- package/dist/components/bs-pagination.js +1 -1
- package/dist/components/bs-progress-linear.js +1 -1
- package/dist/components/bs-progress.js +1 -1
- package/dist/components/bs-radio.js +1 -1
- package/dist/components/bs-slider.js +1 -1
- package/dist/components/bs-snackbar.js +1 -1
- package/dist/components/bs-source-link.js +1 -1
- package/dist/components/bs-stepper-step.js +1 -1
- package/dist/components/bs-stepper.js +1 -1
- package/dist/components/bs-switch.js +1 -1
- package/dist/components/bs-tab.js +1 -1
- package/dist/components/bs-tabs.js +1 -1
- package/dist/components/bs-toast.js +1 -1
- package/dist/components/bs-tooltip.js +1 -1
- package/dist/components/p-Byl-ZwBI.js +1 -0
- package/dist/components/p-D4omPSOU.js +1 -0
- package/dist/components/{p-BIgPiuc-.js → p-DOApNIwD.js} +1 -1
- package/dist/components/{p-BUtz3sub.js → p-Dkv8x1_Z.js} +1 -1
- package/dist/components/{p-Rn1IWs8l.js → p-lvnXqw5g.js} +1 -1
- package/dist/esm/brandsync-wc.js +3 -3
- package/dist/esm/bs-accordion.entry.js +52 -0
- package/dist/esm/bs-ai-disclaimer.entry.js +2 -2
- package/dist/esm/bs-ai-greeting.entry.js +2 -2
- package/dist/esm/bs-ai-thinking.entry.js +2 -2
- package/dist/esm/bs-attachment-list.entry.js +2 -2
- package/dist/esm/bs-attachment.entry.js +2 -2
- package/dist/esm/bs-avatar.entry.js +1 -1
- package/dist/esm/bs-badge.entry.js +2 -2
- package/dist/esm/bs-breadcrumb-overflow.entry.js +2 -2
- package/dist/esm/bs-breadcrumb.entry.js +2 -2
- package/dist/esm/bs-breadcrumbs.entry.js +2 -2
- 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 +2 -2
- 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 +2 -2
- package/dist/esm/bs-checkbox.entry.js +2 -2
- package/dist/esm/bs-chip-filter.entry.js +10 -6
- package/dist/esm/bs-chip-informative.entry.js +2 -2
- package/dist/esm/bs-chip-input.entry.js +2 -2
- package/dist/esm/bs-composer-status-banner.entry.js +2 -2
- package/dist/esm/bs-composer.entry.js +26 -3
- package/dist/esm/bs-data-table.entry.js +21 -4
- package/dist/esm/bs-dialog.entry.js +1 -1
- package/dist/esm/bs-icon-button.entry.js +3 -3
- package/dist/esm/bs-inline-tab.entry.js +2 -2
- package/dist/esm/bs-input.entry.js +3 -3
- package/dist/esm/bs-logo.entry.js +1 -1
- package/dist/esm/bs-menu-item.entry.js +2 -2
- package/dist/esm/bs-menu.entry.js +2 -2
- package/dist/esm/bs-navigation-drawer-item.entry.js +2 -2
- package/dist/esm/bs-navigation-drawer.entry.js +3 -3
- package/dist/esm/bs-navigation-header.entry.js +3 -3
- package/dist/esm/bs-pagination.entry.js +2 -2
- package/dist/esm/bs-progress-linear.entry.js +3 -3
- package/dist/esm/bs-progress.entry.js +3 -3
- package/dist/esm/bs-radio.entry.js +2 -2
- package/dist/esm/bs-slider.entry.js +2 -2
- package/dist/esm/bs-snackbar.entry.js +13 -3
- package/dist/esm/bs-source-link.entry.js +3 -3
- package/dist/esm/bs-stepper-step.entry.js +2 -2
- package/dist/esm/bs-stepper.entry.js +2 -2
- package/dist/esm/bs-switch.entry.js +2 -2
- package/dist/esm/bs-tab.entry.js +2 -2
- package/dist/esm/bs-tabs.entry.js +2 -2
- package/dist/esm/bs-toast.entry.js +2 -2
- package/dist/esm/bs-tooltip.entry.js +2 -2
- package/dist/esm/{index-CvfB8CQv.js → index-CcPfH1dJ.js} +17 -0
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/bs-accordion/bs-accordion.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-accordion/bs-accordion.d.ts +51 -0
- package/dist/types/components/bs-accordion/bs-accordion.stories.d.ts +20 -0
- package/dist/types/components/bs-chip/bs-chip-filter/bs-chip-filter.d.ts +7 -2
- package/dist/types/components/bs-composer/bs-composer.d.ts +15 -1
- package/dist/types/components/bs-data-table/bs-data-table.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-data-table/bs-data-table.d.ts +5 -0
- package/dist/types/components.d.ts +133 -6
- package/package.json +1 -1
- package/dist/brandsync-wc/p-00d40aca.entry.js +0 -1
- package/dist/brandsync-wc/p-03676f8a.entry.js +0 -1
- package/dist/brandsync-wc/p-127d698d.entry.js +0 -1
- package/dist/brandsync-wc/p-1780224d.entry.js +0 -1
- package/dist/brandsync-wc/p-35bcb932.entry.js +0 -1
- package/dist/brandsync-wc/p-b2abd8d9.entry.js +0 -1
- package/dist/brandsync-wc/p-cd703364.entry.js +0 -1
- package/dist/brandsync-wc/p-fc9d52d4.entry.js +0 -1
- package/dist/components/p-B8JpGodL.js +0 -1
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prop --bs-accordion-radius: Corner radius of the whole component. Aliased to --bs-border-radius-100.
|
|
3
|
+
* @prop --bs-accordion-header-padding-y-medium: Header vertical padding, size="medium". Aliased to --bs-spacing-150.
|
|
4
|
+
* @prop --bs-accordion-header-padding-y-large: Header vertical padding, size="large". Aliased to --bs-spacing-250.
|
|
5
|
+
* @prop --bs-accordion-header-padding-x: Header horizontal padding (both edges, Icon=Yes). Aliased to --bs-spacing-200.
|
|
6
|
+
* @prop --bs-accordion-content-padding-bottom: Body content bottom padding. Aliased to --bs-spacing-150.
|
|
7
|
+
* @prop --bs-accordion-content-padding-right: Body content right padding. Aliased to --bs-spacing-200.
|
|
8
|
+
* @prop --bs-accordion-content-padding-left: Body content left padding, Icon=Yes (aligns under the label, past the icon box). Aliased to --bs-spacing-800.
|
|
9
|
+
* @prop --bs-accordion-content-padding-left-no-icon: Body content left padding, Icon=No. Aliased to --bs-spacing-200.
|
|
10
|
+
* @prop --bs-accordion-icon-width-medium: Leading icon box width, size="medium". Aliased to --bs-spacing-800.
|
|
11
|
+
* @prop --bs-accordion-icon-height-medium: Leading icon box height, size="medium". Not square -- 48px, no 150-scale token matches exactly so this is set directly in px, matching Figma's own spec.
|
|
12
|
+
* @prop --bs-accordion-icon-size-large: Leading icon box width/height, size="large" (square). Aliased to --bs-spacing-800.
|
|
13
|
+
* @prop --bs-accordion-font-size: Label font size. Aliased to --bs-font-size-md.
|
|
14
|
+
* @prop --bs-accordion-line-height: Label line height. Aliased to --bs-line-height-body-md.
|
|
15
|
+
* @prop --bs-accordion-font-weight: Label font weight. Aliased to --bs-font-weight-semibold.
|
|
16
|
+
* @prop --bs-accordion-text-default: Label/content color, enabled. Aliased to --bs-text-default.
|
|
17
|
+
* @prop --bs-accordion-bg-hover: Header background, hover/active/focus-visible (Figma renders hover and pressed identically). Aliased to --bs-surface-hover.
|
|
18
|
+
* @prop --bs-accordion-bg-disabled: Header/content background, disabled. Aliased to --bs-surface-action-disabled.
|
|
19
|
+
* @prop --bs-accordion-text-disabled: Label/content color, disabled. Aliased to --bs-text-on-disabled.
|
|
20
|
+
* @prop --bs-accordion-focus-ring: Focus-visible outer ring color. Aliased to --bs-border-neutral-focus.
|
|
21
|
+
*/
|
|
22
|
+
:host {
|
|
23
|
+
display: block;
|
|
24
|
+
|
|
25
|
+
--bs-accordion-radius: var(--bs-border-radius-100);
|
|
26
|
+
--bs-accordion-header-padding-y-medium: var(--bs-spacing-150);
|
|
27
|
+
--bs-accordion-header-padding-y-large: var(--bs-spacing-250);
|
|
28
|
+
--bs-accordion-header-padding-x: var(--bs-spacing-200);
|
|
29
|
+
--bs-accordion-content-padding-bottom: var(--bs-spacing-150);
|
|
30
|
+
--bs-accordion-content-padding-right: var(--bs-spacing-200);
|
|
31
|
+
--bs-accordion-content-padding-left: var(--bs-spacing-800);
|
|
32
|
+
--bs-accordion-content-padding-left-no-icon: var(--bs-spacing-200);
|
|
33
|
+
--bs-accordion-icon-width-medium: var(--bs-spacing-800);
|
|
34
|
+
--bs-accordion-icon-height-medium: 48px;
|
|
35
|
+
--bs-accordion-icon-size-large: var(--bs-spacing-800);
|
|
36
|
+
--bs-accordion-font-size: var(--bs-font-size-md);
|
|
37
|
+
--bs-accordion-line-height: var(--bs-line-height-body-md);
|
|
38
|
+
--bs-accordion-font-weight: var(--bs-font-weight-semibold);
|
|
39
|
+
--bs-accordion-text-default: var(--bs-text-default);
|
|
40
|
+
--bs-accordion-bg-hover: var(--bs-surface-hover);
|
|
41
|
+
--bs-accordion-bg-disabled: var(--bs-surface-action-disabled);
|
|
42
|
+
--bs-accordion-text-disabled: var(--bs-text-on-disabled);
|
|
43
|
+
--bs-accordion-focus-ring: var(--bs-border-neutral-focus);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.bs-accordion {
|
|
47
|
+
display: block;
|
|
48
|
+
border-radius: var(--bs-accordion-radius);
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
font-family: inherit;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.bs-accordion__header {
|
|
54
|
+
display: flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
width: 100%;
|
|
57
|
+
border: none;
|
|
58
|
+
background: transparent;
|
|
59
|
+
color: var(--bs-accordion-text-default);
|
|
60
|
+
padding: 0 var(--bs-accordion-header-padding-x);
|
|
61
|
+
cursor: pointer;
|
|
62
|
+
font-family: inherit;
|
|
63
|
+
text-align: left;
|
|
64
|
+
border-radius: var(--bs-accordion-radius);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.bs-accordion__header--medium {
|
|
68
|
+
padding-top: var(--bs-accordion-header-padding-y-medium);
|
|
69
|
+
padding-bottom: var(--bs-accordion-header-padding-y-medium);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.bs-accordion__header--large {
|
|
73
|
+
padding-top: var(--bs-accordion-header-padding-y-large);
|
|
74
|
+
padding-bottom: var(--bs-accordion-header-padding-y-large);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Icon=No: no icon box reserving space on the left -- the label gets the symmetric padding
|
|
78
|
+
directly, confirmed against Figma's Icon=No variant. */
|
|
79
|
+
.bs-accordion__header--no-icon {
|
|
80
|
+
padding-left: var(--bs-accordion-header-padding-x);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.bs-accordion__header:hover,
|
|
84
|
+
.bs-accordion__header:active {
|
|
85
|
+
background: var(--bs-accordion-bg-hover);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.bs-accordion__header:focus-visible {
|
|
89
|
+
background: var(--bs-accordion-bg-hover);
|
|
90
|
+
outline: 2px solid var(--bs-accordion-focus-ring);
|
|
91
|
+
outline-offset: -2px;
|
|
92
|
+
/* Ring radius = component radius + 2px, so the ring visually hugs the component's own rounded
|
|
93
|
+
corners instead of looking squared-off relative to them. */
|
|
94
|
+
border-radius: calc(var(--bs-accordion-radius) + 2px);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.bs-accordion__header:disabled {
|
|
98
|
+
background: var(--bs-accordion-bg-disabled);
|
|
99
|
+
color: var(--bs-accordion-text-disabled);
|
|
100
|
+
cursor: default;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.bs-accordion__icon {
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: center;
|
|
106
|
+
justify-content: center;
|
|
107
|
+
flex-shrink: 0;
|
|
108
|
+
color: inherit;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.bs-accordion__icon svg {
|
|
112
|
+
width: 24px;
|
|
113
|
+
height: 24px;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.bs-accordion__icon--medium {
|
|
117
|
+
width: var(--bs-accordion-icon-width-medium);
|
|
118
|
+
height: var(--bs-accordion-icon-height-medium);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.bs-accordion__icon--large {
|
|
122
|
+
width: var(--bs-accordion-icon-size-large);
|
|
123
|
+
height: var(--bs-accordion-icon-size-large);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
.bs-accordion__label {
|
|
127
|
+
flex: 1 1 auto;
|
|
128
|
+
min-width: 0;
|
|
129
|
+
font-size: var(--bs-accordion-font-size);
|
|
130
|
+
line-height: calc(var(--bs-accordion-line-height) * 1px);
|
|
131
|
+
font-weight: var(--bs-accordion-font-weight);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.bs-accordion__caret {
|
|
135
|
+
display: flex;
|
|
136
|
+
align-items: center;
|
|
137
|
+
justify-content: center;
|
|
138
|
+
width: 24px;
|
|
139
|
+
height: 24px;
|
|
140
|
+
flex-shrink: 0;
|
|
141
|
+
color: inherit;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.bs-accordion__caret svg {
|
|
145
|
+
width: 24px;
|
|
146
|
+
height: 24px;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.bs-accordion__content {
|
|
150
|
+
padding-top: 0;
|
|
151
|
+
padding-bottom: var(--bs-accordion-content-padding-bottom);
|
|
152
|
+
padding-right: var(--bs-accordion-content-padding-right);
|
|
153
|
+
padding-left: var(--bs-accordion-content-padding-left);
|
|
154
|
+
color: var(--bs-accordion-text-default);
|
|
155
|
+
font-size: var(--bs-accordion-font-size);
|
|
156
|
+
line-height: calc(var(--bs-accordion-line-height) * 1px);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.bs-accordion__content--no-icon {
|
|
160
|
+
padding-left: var(--bs-accordion-content-padding-left-no-icon);
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
/* Collapsed + showPreview: pure CSS truncation of the SAME slotted content to a single line --
|
|
164
|
+
not different content. */
|
|
165
|
+
.bs-accordion__content--collapsed {
|
|
166
|
+
white-space: nowrap;
|
|
167
|
+
overflow: hidden;
|
|
168
|
+
text-overflow: ellipsis;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.bs-accordion--disabled .bs-accordion__content {
|
|
172
|
+
background: var(--bs-accordion-bg-disabled);
|
|
173
|
+
color: var(--bs-accordion-text-disabled);
|
|
174
|
+
}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* A single collapsible section -- a clickable header (optional leading icon, label, trailing
|
|
4
|
+
* caret) that reveals or hides a body content area.
|
|
5
|
+
*
|
|
6
|
+
* This component renders exactly one section. A consumer stacks multiple `bs-accordion` elements
|
|
7
|
+
* (optionally managing which one(s) are expanded, e.g. "only one open at a time") themselves --
|
|
8
|
+
* there's no accordion-group wrapper here, matching Figma's component which only specs the single
|
|
9
|
+
* section, not a group behavior.
|
|
10
|
+
*
|
|
11
|
+
* @slot - Default slot: the body/content area, shown below the header when expanded (and, unless
|
|
12
|
+
* `showPreview` is `false`, truncated to one line when collapsed).
|
|
13
|
+
* @slot label - The header's title text.
|
|
14
|
+
* @slot icon - Optional leading icon, overriding the default Plus glyph. Only rendered when
|
|
15
|
+
* `showIcon` is `true`.
|
|
16
|
+
* @part container - The outer wrapper.
|
|
17
|
+
* @part header - The clickable header row.
|
|
18
|
+
* @part icon - The leading icon wrapper.
|
|
19
|
+
* @part label - The label wrapper.
|
|
20
|
+
* @part caret - The trailing caret wrapper.
|
|
21
|
+
* @part content - The body content wrapper.
|
|
22
|
+
*/
|
|
23
|
+
export class BsAccordion {
|
|
24
|
+
/** Whether the section is expanded. This is the single source of truth for the component's
|
|
25
|
+
* visual state -- a controlled component, like a controlled `<input>`. Clicking (or
|
|
26
|
+
* keyboard-activating) the header never mutates this prop itself; it only emits `bsToggle` with
|
|
27
|
+
* the requested new value. If the consumer doesn't echo the change back via this prop (e.g.
|
|
28
|
+
* some validation rejects it), the rendering stays exactly as `expanded` says, rather than
|
|
29
|
+
* drifting into an internally-tracked truth -- same lesson as bs-chip-filter's `selected` prop.
|
|
30
|
+
* Reflected so consumers can target `bs-accordion[expanded]` via CSS. NOT `mutable: true`. */
|
|
31
|
+
expanded = false;
|
|
32
|
+
/** Sizing scale. Controls the leading icon box's dimensions and the header's vertical padding --
|
|
33
|
+
* the body content area's padding stays constant across sizes, matching the Figma spec. */
|
|
34
|
+
size = 'medium';
|
|
35
|
+
/** Disables the header: suppresses hover/focus/pressed styling, prevents toggling via click or
|
|
36
|
+
* keyboard, and removes it from the tab order. */
|
|
37
|
+
disabled = false;
|
|
38
|
+
/** Shows the leading icon area (default Plus glyph, or the `icon` slot's content). When
|
|
39
|
+
* `false`, no icon box is reserved and the header/body padding tighten to the left edge. */
|
|
40
|
+
showIcon = true;
|
|
41
|
+
/** When collapsed, renders the body content truncated to a single line (pure CSS truncation of
|
|
42
|
+
* the same slotted content, not different content) instead of rendering nothing. Has no effect
|
|
43
|
+
* while expanded -- the full content always renders then, regardless of this prop. */
|
|
44
|
+
showPreview = true;
|
|
45
|
+
/** Emitted when the header is activated (click, or Enter/Space while focused), with the
|
|
46
|
+
* REQUESTED new expanded value (`!expanded`). Never fires while `disabled`. */
|
|
47
|
+
bsToggle;
|
|
48
|
+
onActivate = () => {
|
|
49
|
+
if (this.disabled)
|
|
50
|
+
return;
|
|
51
|
+
this.bsToggle.emit(!this.expanded);
|
|
52
|
+
};
|
|
53
|
+
render() {
|
|
54
|
+
// A native <button> wraps the whole header row (icon + label + caret) rather than a
|
|
55
|
+
// `<div role="button">`: it gets click, keyboard activation (Enter/Space), focus-visible
|
|
56
|
+
// styling, and `disabled` semantics (not focusable, no events) for free, and flexbox handles
|
|
57
|
+
// laying out its children as easily as a <div>'s -- no layout reason to hand-roll any of that.
|
|
58
|
+
return (h("div", { key: '2774538f3bc8d52e5a295edafbdad5e2a12dddda', part: "container", class: `bs-accordion bs-accordion--${this.size} ${this.disabled ? 'bs-accordion--disabled' : ''}` }, h("button", { key: '7e1942dca9082ac653dd7e3d55d9b919790bcd5b', type: "button", part: "header", class: `bs-accordion__header bs-accordion__header--${this.size} ${this.showIcon ? '' : 'bs-accordion__header--no-icon'}`, disabled: this.disabled, "aria-expanded": String(this.expanded), onClick: this.onActivate }, this.showIcon && (h("span", { key: 'abd274cb295ae34e9220846a1e8466623f65663a', part: "icon", class: `bs-accordion__icon bs-accordion__icon--${this.size}`, "aria-hidden": "true" }, h("slot", { key: 'd9c4c429852c77f4a10c05eb247a9d3d35559ef6', name: "icon" }, h(PlusIcon, { key: '2fb492c43754a517e4e98b684f811be21777e849' })))), h("span", { key: '0b0c7d891e30aa3d45f70d7ff1c79e93ae0dfd6c', part: "label", class: "bs-accordion__label" }, h("slot", { key: '21cc50e1f368663dc1a980c9dd96522265c8c433', name: "label" })), h("span", { key: 'b9506bf3fa94a5ad05083b5cda4eafa29de0369f', part: "caret", class: "bs-accordion__caret", "aria-hidden": "true" }, this.expanded ? h(CaretUpIcon, null) : h(CaretDownIcon, null))), (this.expanded || this.showPreview) && (h("div", { key: '36db0dc0bdf61286d61136be6c3d4292e64e9a51', part: "content", class: `bs-accordion__content ${this.showIcon ? '' : 'bs-accordion__content--no-icon'} ${this.expanded ? 'bs-accordion__content--expanded' : 'bs-accordion__content--collapsed'}` }, h("slot", { key: '51747175592ba93a1e41d4cf98f9e1bf1630d847' })))));
|
|
59
|
+
}
|
|
60
|
+
static get is() { return "bs-accordion"; }
|
|
61
|
+
static get encapsulation() { return "shadow"; }
|
|
62
|
+
static get originalStyleUrls() {
|
|
63
|
+
return {
|
|
64
|
+
"$": ["bs-accordion.css"]
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
static get styleUrls() {
|
|
68
|
+
return {
|
|
69
|
+
"$": ["bs-accordion.css"]
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
static get properties() {
|
|
73
|
+
return {
|
|
74
|
+
"expanded": {
|
|
75
|
+
"type": "boolean",
|
|
76
|
+
"mutable": false,
|
|
77
|
+
"complexType": {
|
|
78
|
+
"original": "boolean",
|
|
79
|
+
"resolved": "boolean",
|
|
80
|
+
"references": {}
|
|
81
|
+
},
|
|
82
|
+
"required": false,
|
|
83
|
+
"optional": false,
|
|
84
|
+
"docs": {
|
|
85
|
+
"tags": [],
|
|
86
|
+
"text": "Whether the section is expanded. This is the single source of truth for the component's\nvisual state -- a controlled component, like a controlled `<input>`. Clicking (or\nkeyboard-activating) the header never mutates this prop itself; it only emits `bsToggle` with\nthe requested new value. If the consumer doesn't echo the change back via this prop (e.g.\nsome validation rejects it), the rendering stays exactly as `expanded` says, rather than\ndrifting into an internally-tracked truth -- same lesson as bs-chip-filter's `selected` prop.\nReflected so consumers can target `bs-accordion[expanded]` via CSS. NOT `mutable: true`."
|
|
87
|
+
},
|
|
88
|
+
"getter": false,
|
|
89
|
+
"setter": false,
|
|
90
|
+
"reflect": true,
|
|
91
|
+
"attribute": "expanded",
|
|
92
|
+
"defaultValue": "false"
|
|
93
|
+
},
|
|
94
|
+
"size": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"mutable": false,
|
|
97
|
+
"complexType": {
|
|
98
|
+
"original": "BsAccordionSize",
|
|
99
|
+
"resolved": "\"large\" | \"medium\"",
|
|
100
|
+
"references": {
|
|
101
|
+
"BsAccordionSize": {
|
|
102
|
+
"location": "local",
|
|
103
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-accordion/bs-accordion.tsx",
|
|
104
|
+
"id": "src/components/bs-accordion/bs-accordion.tsx::BsAccordionSize"
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"required": false,
|
|
109
|
+
"optional": false,
|
|
110
|
+
"docs": {
|
|
111
|
+
"tags": [],
|
|
112
|
+
"text": "Sizing scale. Controls the leading icon box's dimensions and the header's vertical padding --\nthe body content area's padding stays constant across sizes, matching the Figma spec."
|
|
113
|
+
},
|
|
114
|
+
"getter": false,
|
|
115
|
+
"setter": false,
|
|
116
|
+
"reflect": false,
|
|
117
|
+
"attribute": "size",
|
|
118
|
+
"defaultValue": "'medium'"
|
|
119
|
+
},
|
|
120
|
+
"disabled": {
|
|
121
|
+
"type": "boolean",
|
|
122
|
+
"mutable": false,
|
|
123
|
+
"complexType": {
|
|
124
|
+
"original": "boolean",
|
|
125
|
+
"resolved": "boolean",
|
|
126
|
+
"references": {}
|
|
127
|
+
},
|
|
128
|
+
"required": false,
|
|
129
|
+
"optional": false,
|
|
130
|
+
"docs": {
|
|
131
|
+
"tags": [],
|
|
132
|
+
"text": "Disables the header: suppresses hover/focus/pressed styling, prevents toggling via click or\nkeyboard, and removes it from the tab order."
|
|
133
|
+
},
|
|
134
|
+
"getter": false,
|
|
135
|
+
"setter": false,
|
|
136
|
+
"reflect": false,
|
|
137
|
+
"attribute": "disabled",
|
|
138
|
+
"defaultValue": "false"
|
|
139
|
+
},
|
|
140
|
+
"showIcon": {
|
|
141
|
+
"type": "boolean",
|
|
142
|
+
"mutable": false,
|
|
143
|
+
"complexType": {
|
|
144
|
+
"original": "boolean",
|
|
145
|
+
"resolved": "boolean",
|
|
146
|
+
"references": {}
|
|
147
|
+
},
|
|
148
|
+
"required": false,
|
|
149
|
+
"optional": false,
|
|
150
|
+
"docs": {
|
|
151
|
+
"tags": [],
|
|
152
|
+
"text": "Shows the leading icon area (default Plus glyph, or the `icon` slot's content). When\n`false`, no icon box is reserved and the header/body padding tighten to the left edge."
|
|
153
|
+
},
|
|
154
|
+
"getter": false,
|
|
155
|
+
"setter": false,
|
|
156
|
+
"reflect": false,
|
|
157
|
+
"attribute": "show-icon",
|
|
158
|
+
"defaultValue": "true"
|
|
159
|
+
},
|
|
160
|
+
"showPreview": {
|
|
161
|
+
"type": "boolean",
|
|
162
|
+
"mutable": false,
|
|
163
|
+
"complexType": {
|
|
164
|
+
"original": "boolean",
|
|
165
|
+
"resolved": "boolean",
|
|
166
|
+
"references": {}
|
|
167
|
+
},
|
|
168
|
+
"required": false,
|
|
169
|
+
"optional": false,
|
|
170
|
+
"docs": {
|
|
171
|
+
"tags": [],
|
|
172
|
+
"text": "When collapsed, renders the body content truncated to a single line (pure CSS truncation of\nthe same slotted content, not different content) instead of rendering nothing. Has no effect\nwhile expanded -- the full content always renders then, regardless of this prop."
|
|
173
|
+
},
|
|
174
|
+
"getter": false,
|
|
175
|
+
"setter": false,
|
|
176
|
+
"reflect": false,
|
|
177
|
+
"attribute": "show-preview",
|
|
178
|
+
"defaultValue": "true"
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
static get events() {
|
|
183
|
+
return [{
|
|
184
|
+
"method": "bsToggle",
|
|
185
|
+
"name": "bsToggle",
|
|
186
|
+
"bubbles": true,
|
|
187
|
+
"cancelable": true,
|
|
188
|
+
"composed": true,
|
|
189
|
+
"docs": {
|
|
190
|
+
"tags": [],
|
|
191
|
+
"text": "Emitted when the header is activated (click, or Enter/Space while focused), with the\nREQUESTED new expanded value (`!expanded`). Never fires while `disabled`."
|
|
192
|
+
},
|
|
193
|
+
"complexType": {
|
|
194
|
+
"original": "boolean",
|
|
195
|
+
"resolved": "boolean",
|
|
196
|
+
"references": {}
|
|
197
|
+
}
|
|
198
|
+
}];
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
const PlusIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M12 5V19", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" }), h("path", { d: "M5 12H19", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
|
|
202
|
+
const CaretDownIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M6 9.75L12 15.75L18 9.75", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
|
|
203
|
+
const CaretUpIcon = () => (h("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M6 14.25L12 8.25L18 14.25", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })));
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { componentDescription, propDescription } from "../../stories-utils";
|
|
3
|
+
const sizes = ['medium', 'large'];
|
|
4
|
+
// Demonstrates a real consumer echoing the change back -- the component itself never mutates
|
|
5
|
+
// `expanded` (see the class JSDoc: it's a controlled prop). Without this, clicking the header
|
|
6
|
+
// would visibly do nothing in the story even though `bsToggle` did fire.
|
|
7
|
+
const echoToggle = (ev) => {
|
|
8
|
+
ev.currentTarget.toggleAttribute('expanded', ev.detail);
|
|
9
|
+
};
|
|
10
|
+
const meta = {
|
|
11
|
+
title: 'Components/bs-accordion',
|
|
12
|
+
parameters: { docs: { description: { component: componentDescription('bs-accordion') } } },
|
|
13
|
+
render: args => html `
|
|
14
|
+
<bs-accordion
|
|
15
|
+
?expanded=${args.expanded}
|
|
16
|
+
size=${args.size}
|
|
17
|
+
?disabled=${args.disabled}
|
|
18
|
+
?show-icon=${args.showIcon}
|
|
19
|
+
?show-preview=${args.showPreview}
|
|
20
|
+
@bsToggle=${echoToggle}
|
|
21
|
+
>
|
|
22
|
+
<span slot="label">${args.label}</span>
|
|
23
|
+
${args.content}
|
|
24
|
+
</bs-accordion>
|
|
25
|
+
`,
|
|
26
|
+
argTypes: {
|
|
27
|
+
expanded: { control: 'boolean', description: propDescription('bs-accordion', 'expanded') },
|
|
28
|
+
size: { control: { type: 'select' }, options: sizes, description: propDescription('bs-accordion', 'size') },
|
|
29
|
+
disabled: { control: 'boolean', description: propDescription('bs-accordion', 'disabled') },
|
|
30
|
+
showIcon: { control: 'boolean', description: propDescription('bs-accordion', 'show-icon') },
|
|
31
|
+
showPreview: { control: 'boolean', description: propDescription('bs-accordion', 'show-preview') },
|
|
32
|
+
label: { control: 'text', description: 'Slotted header title (not a real attribute -- see the `label` slot).' },
|
|
33
|
+
content: { control: 'text', description: 'Slotted body content (not a real attribute -- see the default slot).' },
|
|
34
|
+
},
|
|
35
|
+
args: {
|
|
36
|
+
expanded: false,
|
|
37
|
+
size: 'medium',
|
|
38
|
+
disabled: false,
|
|
39
|
+
showIcon: true,
|
|
40
|
+
showPreview: true,
|
|
41
|
+
label: 'Section title',
|
|
42
|
+
content: 'This is the body content shown when the section is expanded, or truncated to one line as a preview while collapsed.',
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
export default meta;
|
|
46
|
+
export const Default = {};
|
|
47
|
+
export const Expanded = {
|
|
48
|
+
args: { expanded: true },
|
|
49
|
+
};
|
|
50
|
+
export const Large = {
|
|
51
|
+
args: { size: 'large' },
|
|
52
|
+
};
|
|
53
|
+
export const NoIcon = {
|
|
54
|
+
name: 'No icon',
|
|
55
|
+
args: { showIcon: false },
|
|
56
|
+
};
|
|
57
|
+
export const NoPreview = {
|
|
58
|
+
name: 'No preview',
|
|
59
|
+
args: { showPreview: false },
|
|
60
|
+
};
|
|
61
|
+
export const Disabled = {
|
|
62
|
+
args: { disabled: true },
|
|
63
|
+
};
|
|
@@ -25,7 +25,7 @@ import { h } from "@stencil/core";
|
|
|
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: '
|
|
28
|
+
return (h("div", { key: 'b79f8540dbf4563a831fa687f55710f5e5a55037', class: "bs-ai-disclaimer" }, h("p", { key: '82f3cc3744e1012201953eaa0b73a0ac5dc4bcd4', part: "text", class: "bs-ai-disclaimer__text" }, h("slot", { key: 'f4413eaf53353f3635ae6ec1e2a4af263e0bf67f' }))));
|
|
29
29
|
}
|
|
30
30
|
static get is() { return "bs-ai-disclaimer"; }
|
|
31
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: 'eeb2acbb2c6aa8daa803dab57c343b35995200b3', class: "bs-ai-greeting" }, h("div", { key: 'ece228ba66ee9b783a768258a5c52c1270297962', part: "heading", class: "bs-ai-greeting__heading" }, h("p", { key: 'f316e250f35b05dda813f5b517f42373eebcde45', class: "bs-ai-greeting__heading-line" }, "Hi. I'm ", this.assistantName, ","), h("p", { key: '99ac26f89ec8fb3fba000025975c95920faca41a', class: "bs-ai-greeting__heading-line" }, "your AI assistant.")), h("p", { key: '3326155e697a1dd0d0512574d0405f5e176d3967', 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: '29dcf35868288138ffdd7e1a59ecd48396b45ce7', class: "bs-ai-thinking", role: "status", "aria-live": "polite" }, h("img", { key: 'ca7354850cc25b2c55b2901f7d34ce216fe79d76', part: "icon", class: "bs-ai-thinking__icon", src: GENIE_MARK_ICON, alt: "", "aria-hidden": "true" }), h("span", { key: '888e38812266e053a58ad91932d4a7df804e52da', 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"; }
|
|
@@ -50,7 +50,7 @@ export class BsAttachment {
|
|
|
50
50
|
};
|
|
51
51
|
render() {
|
|
52
52
|
const isImage = this.type === 'image';
|
|
53
|
-
return (h("div", { key: '
|
|
53
|
+
return (h("div", { key: '824fb2e4d386156dbf23a58118c82fe02bb37f81', 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: 'f7665d54bd9c14185c53cff66ff3fc913358f865', part: "remove", class: "bs-attachment__remove", size: "xs", variant: "neutral", ariaLabel: `Remove attachment: ${this.fileName}`, onClick: this.onRemoveClick }, h(CloseIcon, { key: '508cb34b696b733bbc78e84af32072439c2d1665' })))));
|
|
54
54
|
}
|
|
55
55
|
renderImage() {
|
|
56
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: '5508a6c6185bf836d4b30e7341f29f80ba06f2c3', class: "bs-attachment-list" }, h("div", { key: 'c8652402e683f80aee373adad7ad41590dd7fbaf', 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: 'fb838b763b7047419d072c2c9f2cbe81046041e4', onSlotchange: this.onSlotchange })), this.canScrollRight && h("div", { key: 'faaf4be7542539a32675fb2046b26840e539d509', 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"; }
|
|
@@ -17,7 +17,7 @@ export class BsBadge {
|
|
|
17
17
|
/** Maps directly to the brandsync-tokens `--bs-badge-bg-*` / `--bs-badge-text-*` sets. */
|
|
18
18
|
variant = 'default';
|
|
19
19
|
render() {
|
|
20
|
-
return (h("span", { key: '
|
|
20
|
+
return (h("span", { key: '91c12085eda1d9599e50542a273bab640e7f348f', part: "container", class: `bs-badge bs-badge--${this.variant}` }, h("slot", { key: '21f0edd06967e4f608cc16f27c52d3eec0794eb0' })));
|
|
21
21
|
}
|
|
22
22
|
static get is() { return "bs-badge"; }
|
|
23
23
|
static get encapsulation() { return "shadow"; }
|
|
@@ -43,7 +43,7 @@ export class BsBreadcrumb {
|
|
|
43
43
|
* off-brand. Reflected so consumers/CSS can target `bs-breadcrumb[size="sm"]`. */
|
|
44
44
|
size = 'md';
|
|
45
45
|
render() {
|
|
46
|
-
return (h(Host, { key: '
|
|
46
|
+
return (h(Host, { key: 'f9c93eed4d4844e03cdfc50c9efbee238c188257', role: "listitem" }, h("span", { key: 'e0f26700582662cd4269bd786a9c81fd8031716e', part: "separator", class: "bs-breadcrumb__separator", "aria-hidden": "true" }, h(CaretRightIcon, { key: '77e8ed02ffd367e9b7ca39869ab41a95759450e4' })), 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
47
|
}
|
|
48
48
|
static get is() { return "bs-breadcrumb"; }
|
|
49
49
|
static get encapsulation() { return "shadow"; }
|
package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js
CHANGED
|
@@ -77,7 +77,7 @@ export class BsBreadcrumbOverflow {
|
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
render() {
|
|
80
|
-
return (h(Host, { key: '
|
|
80
|
+
return (h(Host, { key: '6219cabef08760aa3940d9a4e12d6e5ecd21e407', role: "listitem" }, h("span", { key: '59261696d02c49b1ea81b29d822d6d42c4fbafd5', part: "separator", class: "bs-breadcrumb-overflow__separator", "aria-hidden": "true" }, h(CaretRightIcon, { key: '62921ade525de21d7e74e732e0736c345fef87b7' })), h("span", { key: '0a8e9a9dc472ab9d1b63bdd497ceda12e04a736a', class: "bs-breadcrumb-overflow__wrapper" }, h("button", { key: '6930b4b341ee5b810eae5ffe32e33022402a01d3', type: "button", part: "ellipsis", class: "bs-breadcrumb-overflow__ellipsis", "aria-haspopup": "menu", "aria-expanded": String(this.open), "aria-label": this.overflowLabel, onClick: this.onEllipsisToggle }, h(DotsThreeIcon, { key: 'c9cf273fa51bac2bf11953d294184be641a47a9f' })), this.open && this.items.length > 0 && (h("bs-menu", { key: '1a1948a75569ad7639131d2982c8ebdf28027f85', part: "menu", class: "bs-breadcrumb-overflow__menu" }, this.items.map(item => item.href ? (h("a", { part: "link", class: "bs-breadcrumb-overflow__link", href: item.href }, item.label)) : (h("span", { part: "link", class: "bs-breadcrumb-overflow__link" }, item.label))))))));
|
|
81
81
|
}
|
|
82
82
|
static get is() { return "bs-breadcrumb-overflow"; }
|
|
83
83
|
static get encapsulation() { return "shadow"; }
|
|
@@ -54,7 +54,7 @@ export class BsBreadcrumbs {
|
|
|
54
54
|
});
|
|
55
55
|
}
|
|
56
56
|
render() {
|
|
57
|
-
return (h("nav", { key: '
|
|
57
|
+
return (h("nav", { key: '5ff4734b3de9444f7347443acdc0dcea94bb43a1', "aria-label": this.label }, h("ol", { key: '0aebf74594c40b9268576cf1ccdb872dc3866ab3', part: "list", class: "bs-breadcrumbs__list" }, h("slot", { key: '998f3aeb715ef1fdf4e602cb50e612f9125832af', onSlotchange: this.onSlotChange }))));
|
|
58
58
|
}
|
|
59
59
|
static get is() { return "bs-breadcrumbs"; }
|
|
60
60
|
static get encapsulation() { return "shadow"; }
|
|
@@ -46,8 +46,17 @@
|
|
|
46
46
|
step family, matching --bs-button-neutral-container (--bs-color-neutral-container) itself. */
|
|
47
47
|
--bs-button-neutral-hover: var(--bs-color-neutral-container-hover);
|
|
48
48
|
--bs-button-neutral-pressed: var(--bs-color-neutral-container-pressed);
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
/* Verified against Figma node 2842:50233/50230/50227/50224 (Style=Outline, States=Enabled/
|
|
50
|
+
Hovered/Focused/Pressed): border/text colors step through brand-600 -> 700 -> 800 across
|
|
51
|
+
enabled -> hover -> pressed, NOT a single "hover" color reused for both hover and pressed
|
|
52
|
+
(that was this variant's previous bug -- hover and pressed were indistinguishable, and
|
|
53
|
+
neither matched the enabled color Figma actually specifies). Text color matches
|
|
54
|
+
--bs-text-action-hover (brand-700) on BOTH hover and pressed per the spec -- pressed does NOT
|
|
55
|
+
get its own darker text color, only the border does. */
|
|
56
|
+
--bs-button-outlined-border: var(--bs-color-primary-default);
|
|
57
|
+
--bs-button-outlined-border-hover: var(--bs-color-primary-hover);
|
|
58
|
+
--bs-button-outlined-border-pressed: var(--bs-color-primary-pressed);
|
|
59
|
+
--bs-button-outlined-text-hover: var(--bs-text-action-hover);
|
|
51
60
|
--bs-button-outlined-focus: var(--bs-border-primary-focus);
|
|
52
61
|
--bs-button-outlined-container: var(--bs-color-primary-container);
|
|
53
62
|
}
|
|
@@ -231,16 +240,17 @@
|
|
|
231
240
|
.bs-button--outlined {
|
|
232
241
|
background: transparent;
|
|
233
242
|
color: var(--bs-color-primary-default);
|
|
234
|
-
border:
|
|
243
|
+
border: 1px solid var(--bs-button-outlined-border);
|
|
235
244
|
}
|
|
236
245
|
.bs-button--outlined:hover:not(:disabled) {
|
|
237
246
|
background: var(--bs-button-outlined-container);
|
|
238
247
|
border-color: var(--bs-button-outlined-border-hover);
|
|
248
|
+
color: var(--bs-button-outlined-text-hover);
|
|
239
249
|
}
|
|
240
250
|
.bs-button--outlined:active:not(:disabled) {
|
|
241
251
|
background: var(--bs-button-outlined-container);
|
|
242
|
-
color: var(--bs-
|
|
243
|
-
border-color: var(--bs-button-outlined-border-
|
|
252
|
+
color: var(--bs-button-outlined-text-hover);
|
|
253
|
+
border-color: var(--bs-button-outlined-border-pressed);
|
|
244
254
|
}
|
|
245
255
|
.bs-button--outlined:disabled {
|
|
246
256
|
opacity: var(--bs-opacity-disabled);
|
|
@@ -105,7 +105,7 @@ export class BsButton {
|
|
|
105
105
|
};
|
|
106
106
|
render() {
|
|
107
107
|
const iconOnly = (this.hasIcon || this.hasEndIcon) && !this.hasLabel;
|
|
108
|
-
return (h("button", { key: '
|
|
108
|
+
return (h("button", { key: '08e40944935e444c596287a6ff6c57da0e3918f1', class: `bs-button bs-button--${this.variant} bs-button--${this.size} ${iconOnly ? 'bs-button--icon-only' : ''} ${this.hasIcon && !iconOnly ? 'bs-button--has-icon' : ''} ${this.hasEndIcon && !iconOnly ? 'bs-button--has-end-icon' : ''}`, type: this.type, disabled: this.disabled, "aria-label": this.ariaLabel }, h("span", { key: 'c6499f182e59e2ea19370fe2b5ff3f767f3ed95e', part: "icon", class: `bs-button__icon ${this.hasIcon ? 'bs-button__icon--visible' : ''}` }, h("slot", { key: '0f73b8af02609430f1a4d9c148cfc5c26e3d85b3', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '5d9c542387b6e012acc0f83fb6ecf96f9f86155d', part: "label", class: "bs-button__label" }, h("slot", { key: '97ef5087ea966548db790f1bfd0c6d88c961ba67', onSlotchange: this.onLabelSlotchange })), h("span", { key: '893c0d7ad7f1a3cc80d770e914a1dfe7f7d21205', part: "end-icon", class: `bs-button__end-icon ${this.hasEndIcon ? 'bs-button__end-icon--visible' : ''}` }, h("slot", { key: '0125dedf6e415dd43a1075d2ac8c03e911320ec5', name: "end-icon", onSlotchange: this.onEndIconSlotchange }))));
|
|
109
109
|
}
|
|
110
110
|
static get is() { return "bs-button"; }
|
|
111
111
|
static get encapsulation() { return "shadow"; }
|