@brandsync/wc 0.1.0 → 1.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 +1513 -669
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/p-00d40aca.entry.js +1 -0
- package/dist/brandsync-wc/{p-6e95eb36.entry.js → p-0299e8e1.entry.js} +1 -1
- package/dist/brandsync-wc/p-0921ca0d.entry.js +1 -0
- package/dist/brandsync-wc/{p-f4f22015.entry.js → p-0a2d690f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-111974df.entry.js → p-0cf117f4.entry.js} +1 -1
- package/dist/brandsync-wc/{p-aa43d478.entry.js → p-127d698d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9bcd99aa.entry.js → p-1780224d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-55a8d4b5.entry.js → p-18e0cff4.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0847f5c0.entry.js → p-1abacfe8.entry.js} +1 -1
- package/dist/brandsync-wc/{p-10f6f3cd.entry.js → p-2a7cc40c.entry.js} +1 -1
- package/dist/brandsync-wc/{p-79af762c.entry.js → p-2e7586dd.entry.js} +1 -1
- package/dist/brandsync-wc/{p-eb04c578.entry.js → p-31b28025.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1ce7dd64.entry.js → p-32fe390d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-38aad266.entry.js → p-35bcb932.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0ba35c3b.entry.js → p-393efb5d.entry.js} +1 -1
- package/dist/brandsync-wc/p-3e61d206.entry.js +1 -0
- package/dist/brandsync-wc/{p-91551e7b.entry.js → p-3e8728dc.entry.js} +1 -1
- package/dist/brandsync-wc/{p-20c24179.entry.js → p-5321186f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-11f3fceb.entry.js → p-579fbe4d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d3265e70.entry.js → p-63906504.entry.js} +1 -1
- package/dist/brandsync-wc/{p-59ac2495.entry.js → p-673546bf.entry.js} +1 -1
- package/dist/brandsync-wc/{p-73217b90.entry.js → p-696f885c.entry.js} +1 -1
- package/dist/brandsync-wc/{p-d55bbcec.entry.js → p-6ef0a0ed.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6d85fba4.entry.js → p-6fc78ccf.entry.js} +1 -1
- package/dist/brandsync-wc/{p-917a5bbc.entry.js → p-7091f130.entry.js} +1 -1
- package/dist/brandsync-wc/{p-752c04c8.entry.js → p-72e02bd5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-9c4768aa.entry.js → p-778fcc55.entry.js} +1 -1
- package/dist/brandsync-wc/{p-18813680.entry.js → p-790fadf9.entry.js} +1 -1
- package/dist/brandsync-wc/{p-321ed4d3.entry.js → p-82953f42.entry.js} +1 -1
- package/dist/brandsync-wc/p-8b5f4ca7.entry.js +1 -0
- package/dist/brandsync-wc/{p-Do3l4of3.js → p-CvfB8CQv.js} +2 -2
- package/dist/brandsync-wc/{p-c3079ad7.entry.js → p-a16afeaa.entry.js} +1 -1
- package/dist/brandsync-wc/{p-cc79e75f.entry.js → p-a73bfd31.entry.js} +1 -1
- package/dist/brandsync-wc/{p-00bb9bda.entry.js → p-a7704457.entry.js} +1 -1
- package/dist/brandsync-wc/{p-2063a6d6.entry.js → p-aa1cc2b6.entry.js} +1 -1
- package/dist/brandsync-wc/{p-e93e944b.entry.js → p-ac12372f.entry.js} +1 -1
- package/dist/brandsync-wc/p-b2abd8d9.entry.js +1 -0
- package/dist/brandsync-wc/p-b63362e7.entry.js +1 -0
- package/dist/brandsync-wc/{p-9876e83c.entry.js → p-bb2ec290.entry.js} +1 -1
- package/dist/brandsync-wc/{p-171fed0c.entry.js → p-c7427962.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6b469b2d.entry.js → p-c76ca89f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-43e37883.entry.js → p-c7b9a5c7.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c3c383dc.entry.js → p-ca74c7d9.entry.js} +1 -1
- package/dist/brandsync-wc/p-cc9f85d6.entry.js +1 -0
- package/dist/brandsync-wc/{p-1b7c9928.entry.js → p-cff188cb.entry.js} +1 -1
- package/dist/brandsync-wc/{p-81d49240.entry.js → p-e230ed08.entry.js} +1 -1
- package/dist/brandsync-wc/{p-5ae9e60e.entry.js → p-f652d79c.entry.js} +1 -1
- package/dist/brandsync-wc/p-fc9d52d4.entry.js +1 -0
- package/dist/cjs/brandsync-wc.cjs.js +3 -3
- 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 +1 -1
- package/dist/cjs/bs-avatar.cjs.entry.js +1 -1
- package/dist/cjs/bs-badge.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb-overflow.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +2 -2
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +2 -2
- package/dist/cjs/bs-button.cjs.entry.js +1 -1
- 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 +1 -1
- package/dist/cjs/bs-chip-filter.cjs.entry.js +68 -0
- package/dist/cjs/bs-chip-informative.cjs.entry.js +42 -0
- package/dist/cjs/bs-chip-input.cjs.entry.js +76 -0
- package/dist/cjs/bs-composer-status-banner.cjs.entry.js +2 -2
- package/dist/cjs/bs-composer.cjs.entry.js +2 -2
- package/dist/cjs/bs-data-table.cjs.entry.js +3 -3
- package/dist/cjs/bs-dialog.cjs.entry.js +13 -3
- package/dist/cjs/bs-icon-button.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/bs-navigation-header.cjs.entry.js +2 -2
- package/dist/cjs/bs-pagination.cjs.entry.js +2 -2
- 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 +2 -2
- package/dist/cjs/bs-source-link.cjs.entry.js +3 -3
- package/dist/cjs/bs-stepper-step.cjs.entry.js +44 -0
- package/dist/cjs/bs-stepper.cjs.entry.js +62 -0
- 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-tooltip.cjs.entry.js +2 -2
- package/dist/cjs/{index-DHVw-IPK.js → index-CdAh5BFg.js} +27 -14
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +6 -1
- package/dist/collection/components/bs-ai-disclaimer/bs-ai-disclaimer.js +1 -1
- package/dist/collection/components/bs-ai-greeting/bs-ai-greeting.js +1 -1
- package/dist/collection/components/bs-ai-thinking/bs-ai-thinking.js +1 -1
- package/dist/collection/components/bs-attachment/bs-attachment.js +1 -1
- package/dist/collection/components/bs-attachment-list/bs-attachment-list.js +1 -1
- package/dist/collection/components/bs-avatar/bs-avatar.js +2 -2
- package/dist/collection/components/bs-badge/bs-badge.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb/bs-breadcrumb.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumb-overflow/bs-breadcrumb-overflow.js +1 -1
- package/dist/collection/components/bs-breadcrumb/bs-breadcrumbs/bs-breadcrumbs.js +1 -1
- package/dist/collection/components/bs-button/bs-button/bs-button.js +2 -2
- package/dist/collection/components/bs-button/bs-icon-button/bs-icon-button.js +3 -3
- package/dist/collection/components/bs-button-skeleton/bs-button-skeleton.js +1 -1
- package/dist/collection/components/bs-card/bs-card.css +6 -0
- 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 +99 -0
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.css +156 -0
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.js +222 -0
- package/dist/collection/components/bs-chip/bs-chip-filter/bs-chip-filter.stories.js +76 -0
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.cmp.test.js +43 -0
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.css +135 -0
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +143 -0
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.stories.js +70 -0
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.cmp.test.js +93 -0
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.css +172 -0
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +208 -0
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.stories.js +67 -0
- package/dist/collection/components/bs-composer/bs-composer.js +3 -3
- package/dist/collection/components/bs-composer-status-banner/bs-composer-status-banner.js +2 -2
- package/dist/collection/components/bs-data-table/bs-data-table.js +6 -6
- package/dist/collection/components/bs-dialog/bs-dialog.cmp.test.js +6 -0
- package/dist/collection/components/bs-dialog/bs-dialog.js +13 -3
- package/dist/collection/components/bs-input/bs-input.js +2 -2
- package/dist/collection/components/bs-logo/bs-logo.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-radio/bs-radio.js +1 -1
- package/dist/collection/components/bs-slider/bs-slider.js +2 -2
- package/dist/collection/components/bs-snackbar/bs-snackbar.js +2 -2
- package/dist/collection/components/bs-source-link/bs-source-link.js +2 -2
- package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.cmp.test.js +42 -0
- package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.css +29 -0
- package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.js +162 -0
- package/dist/collection/components/bs-stepper/bs-stepper/bs-stepper.stories.js +59 -0
- package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.cmp.test.js +73 -0
- package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.css +258 -0
- package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +231 -0
- package/dist/collection/components/bs-switch/bs-switch.js +2 -2
- 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 +2 -2
- package/dist/collection/components/bs-tab/bs-tabs/bs-tabs.js +3 -3
- 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.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.js +2 -2
- 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.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.d.ts +11 -0
- package/dist/components/bs-chip-filter.js +1 -0
- package/dist/components/bs-chip-informative.d.ts +11 -0
- package/dist/components/bs-chip-informative.js +1 -0
- package/dist/components/bs-chip-input.d.ts +11 -0
- package/dist/components/bs-chip-input.js +1 -0
- package/dist/components/bs-composer-status-banner.js +1 -1
- package/dist/components/bs-composer.js +1 -1
- package/dist/components/bs-data-table.js +1 -1
- package/dist/components/bs-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-logo.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-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.d.ts +11 -0
- package/dist/components/bs-stepper-step.js +1 -0
- package/dist/components/bs-stepper.d.ts +11 -0
- package/dist/components/bs-stepper.js +1 -0
- 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-tooltip.js +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/{p-BFcVSpES.js → p-B8JpGodL.js} +1 -1
- package/dist/components/{p-qK1XlpTA.js → p-BFVUq5m5.js} +1 -1
- package/dist/components/{p-BtX5URLk.js → p-BPUNjzjH.js} +1 -1
- package/dist/components/{p-CgaPcyEJ.js → p-Bb6vh9PN.js} +1 -1
- package/dist/components/{p-BJZYe7M4.js → p-CsnFdZ3v.js} +1 -1
- package/dist/components/{p-BKaZWFE1.js → p-DwVm6HIb.js} +1 -1
- package/dist/esm/brandsync-wc.js +4 -4
- 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 +1 -1
- package/dist/esm/bs-avatar.entry.js +1 -1
- package/dist/esm/bs-badge.entry.js +1 -1
- package/dist/esm/bs-breadcrumb-overflow.entry.js +1 -1
- package/dist/esm/bs-breadcrumb.entry.js +1 -1
- package/dist/esm/bs-breadcrumbs.entry.js +2 -2
- package/dist/esm/bs-button-skeleton.entry.js +2 -2
- package/dist/esm/bs-button.entry.js +1 -1
- 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 +1 -1
- package/dist/esm/bs-chip-filter.entry.js +66 -0
- package/dist/esm/bs-chip-informative.entry.js +40 -0
- package/dist/esm/bs-chip-input.entry.js +74 -0
- package/dist/esm/bs-composer-status-banner.entry.js +2 -2
- package/dist/esm/bs-composer.entry.js +2 -2
- package/dist/esm/bs-data-table.entry.js +3 -3
- package/dist/esm/bs-dialog.entry.js +13 -3
- package/dist/esm/bs-icon-button.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/bs-navigation-header.entry.js +2 -2
- package/dist/esm/bs-pagination.entry.js +2 -2
- 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 +2 -2
- package/dist/esm/bs-source-link.entry.js +3 -3
- package/dist/esm/bs-stepper-step.entry.js +42 -0
- package/dist/esm/bs-stepper.entry.js +60 -0
- 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-tooltip.entry.js +2 -2
- package/dist/esm/{index-Do3l4of3.js → index-CvfB8CQv.js} +27 -14
- package/dist/esm/loader.js +3 -3
- package/dist/types/components/bs-chip/bs-chip-filter/bs-chip-filter.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-chip/bs-chip-filter/bs-chip-filter.d.ts +56 -0
- package/dist/types/components/bs-chip/bs-chip-filter/bs-chip-filter.stories.d.ts +20 -0
- package/dist/types/components/bs-chip/bs-chip-informative/bs-chip-informative.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-chip/bs-chip-informative/bs-chip-informative.d.ts +41 -0
- package/dist/types/components/bs-chip/bs-chip-informative/bs-chip-informative.stories.d.ts +21 -0
- package/dist/types/components/bs-chip/bs-chip-input/bs-chip-input.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-chip/bs-chip-input/bs-chip-input.d.ts +60 -0
- package/dist/types/components/bs-chip/bs-chip-input/bs-chip-input.stories.d.ts +18 -0
- package/dist/types/components/bs-stepper/bs-stepper/bs-stepper.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-stepper/bs-stepper/bs-stepper.d.ts +48 -0
- package/dist/types/components/bs-stepper/bs-stepper/bs-stepper.stories.d.ts +14 -0
- package/dist/types/components/bs-stepper/bs-stepper-step/bs-stepper-step.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-stepper/bs-stepper-step/bs-stepper-step.d.ts +55 -0
- package/dist/types/components.d.ts +653 -0
- package/dist/types/stencil-public-runtime.d.ts +62 -55
- package/loader/index.d.ts +1 -1
- package/package.json +6 -5
- package/dist/brandsync-wc/p-0f3cb0c4.entry.js +0 -1
- package/dist/brandsync-wc/p-ce7fc368.entry.js +0 -1
- package/dist/brandsync-wc/p-f0ae2740.entry.js +0 -1
|
@@ -105,7 +105,7 @@ export class BsLogo {
|
|
|
105
105
|
"references": {
|
|
106
106
|
"BsLogoVariant": {
|
|
107
107
|
"location": "local",
|
|
108
|
-
"path": "/
|
|
108
|
+
"path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-logo/bs-logo.tsx",
|
|
109
109
|
"id": "src/components/bs-logo/bs-logo.tsx::BsLogoVariant"
|
|
110
110
|
}
|
|
111
111
|
}
|
|
@@ -131,7 +131,7 @@ export class BsLogo {
|
|
|
131
131
|
"references": {
|
|
132
132
|
"BsLogoBackground": {
|
|
133
133
|
"location": "local",
|
|
134
|
-
"path": "/
|
|
134
|
+
"path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-logo/bs-logo.tsx",
|
|
135
135
|
"id": "src/components/bs-logo/bs-logo.tsx::BsLogoBackground"
|
|
136
136
|
}
|
|
137
137
|
}
|
|
@@ -22,7 +22,7 @@ import { h } from "@stencil/core";
|
|
|
22
22
|
*/
|
|
23
23
|
export class BsMenu {
|
|
24
24
|
render() {
|
|
25
|
-
return (h("div", { key: '
|
|
25
|
+
return (h("div", { key: '23a5c16e982c711bfa9f8e914869601be45812b9', part: "list", class: "bs-menu", role: "menu" }, h("slot", { key: 'a7d9116f56d91721231b3f94e727626c6c221aa8' })));
|
|
26
26
|
}
|
|
27
27
|
static get is() { return "bs-menu"; }
|
|
28
28
|
static get encapsulation() { return "shadow"; }
|
|
@@ -47,7 +47,7 @@ export class BsMenuItem {
|
|
|
47
47
|
this.bsSelect.emit();
|
|
48
48
|
};
|
|
49
49
|
render() {
|
|
50
|
-
return (h("button", { key: '
|
|
50
|
+
return (h("button", { key: 'f328aa848cc8ae0c908640a23834f3fd8d8ffea7', type: "button", part: "item", role: "menuitem", class: `bs-menu-item ${this.disabled ? 'bs-menu-item--disabled' : ''}`, disabled: this.disabled, "aria-disabled": this.disabled ? 'true' : undefined, onClick: this.onClick }, h("span", { key: '75a23a3ee9a9896e2607222b18155651d6ada39f', part: "icon", class: `bs-menu-item__icon ${this.hasIcon ? 'bs-menu-item__icon--has-content' : ''}` }, h("slot", { key: '08d468b52d6913d89f2443e8597a44bfacc4f2ea', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '148053d9ff48297dfa276ddbf46f57c13675a5c4', part: "label", class: "bs-menu-item__label" }, h("slot", { key: '05d417308229673796e014788f25de2b4c2d4eaf' }))));
|
|
51
51
|
}
|
|
52
52
|
static get is() { return "bs-menu-item"; }
|
|
53
53
|
static get encapsulation() { return "shadow"; }
|
|
@@ -87,7 +87,7 @@ export class BsPagination {
|
|
|
87
87
|
}
|
|
88
88
|
render() {
|
|
89
89
|
const pageList = this.getPageList();
|
|
90
|
-
return (h("nav", { key: '
|
|
90
|
+
return (h("nav", { key: '1a60cd70c34f8d1f8f2d3a8aa62f99d4d38ab462', "aria-label": "Pagination" }, h("ul", { key: '42381f91ef2ebff6c4cc1a9c4ffb28a993931c43', part: "list", class: "bs-pagination__list" }, h("li", { key: '655ad21a3198ea47f85d6dbfa09df9fb05d09e4f', part: "item", class: "bs-pagination__item" }, h("button", { key: '8342d94ae7f7164445a09356acee9ce4d0cb6d1b', part: "prev", type: "button", class: "bs-pagination__control", "aria-label": this.previousLabel, disabled: this.currentPage <= 1, onClick: () => this.goToPage(this.currentPage - 1) }, h(ChevronLeftIcon, { key: '8f7b7a32551781a04c5525dedbeeae586453bb7f' }))), pageList.map((item, index) => item === 'ellipsis' ? (h("li", { part: "item", class: "bs-pagination__item", key: `ellipsis-${index}` }, h("span", { part: "ellipsis", class: "bs-pagination__ellipsis", "aria-hidden": "true" }, h(EllipsisIcon, null)))) : (h("li", { part: "item", class: "bs-pagination__item", key: item }, h("button", { part: item === this.currentPage ? 'page current' : 'page', type: "button", class: `bs-pagination__control bs-pagination__page ${item === this.currentPage ? 'bs-pagination__page--current' : ''}`, "aria-label": `Go to page ${item}`, "aria-current": item === this.currentPage ? 'page' : undefined, onClick: () => this.goToPage(item) }, item)))), h("li", { key: '0a7d4a39c332130e865a16d7f3751db44ea777bb', part: "item", class: "bs-pagination__item" }, h("button", { key: 'e3b5276ca79d150bd8fe89f86973a9fb3458c481', part: "next", type: "button", class: "bs-pagination__control", "aria-label": this.nextLabel, disabled: this.currentPage >= this.safeTotalPages, onClick: () => this.goToPage(this.currentPage + 1) }, h(ChevronRightIcon, { key: 'fe89db6f4c5bbd4fdaa3ee499b448c8603a7f132' }))))));
|
|
91
91
|
}
|
|
92
92
|
static get is() { return "bs-pagination"; }
|
|
93
93
|
static get encapsulation() { return "shadow"; }
|
|
@@ -51,7 +51,7 @@ export class BsRadio {
|
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
render() {
|
|
54
|
-
return (h("label", { key: '
|
|
54
|
+
return (h("label", { key: '349589d9d20270aedcbd67d528057b9b0c41c486', class: `bs-radio ${this.disabled ? 'bs-radio--disabled' : ''}` }, h("input", { key: '36da81bb4a82a78cd1e49ca2d27b4837e6077bd9', class: "bs-radio__input", type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), h("span", { key: '1f5e0d0a2c49875b63b70bf1618f1c374d7f5dae', class: "bs-radio__hit-area" }, h("span", { key: '63f4e1e619aa3faca1cda08ad878f23b83836d0c', class: "bs-radio__state-layer" }, h("span", { key: '5487d7782497766e8d3c1261c035214055b4ecf3', part: "circle", class: `bs-radio__circle ${this.checked ? 'bs-radio__circle--selected' : ''}` }, this.checked && h("span", { key: '6a8cd123cf6588c8e18c5841176556bf8f22b1bb', part: "dot", class: "bs-radio__dot" })))), h("span", { key: 'b21075cb92382cbdcb3d11404b5db27ac5823308', part: "label", class: "bs-radio__label" }, h("slot", { key: '8ca2bb29e32c2f0d52832b42643c0efd7cc89e9a' }))));
|
|
55
55
|
}
|
|
56
56
|
static get is() { return "bs-radio"; }
|
|
57
57
|
static get encapsulation() { return "shadow"; }
|
|
@@ -199,7 +199,7 @@ export class BsSlider {
|
|
|
199
199
|
render() {
|
|
200
200
|
const isRange = this.type === 'range';
|
|
201
201
|
const rootClasses = ['bs-slider', this.disabled ? 'bs-slider--disabled' : ''].filter(Boolean).join(' ');
|
|
202
|
-
return (h("div", { key: '
|
|
202
|
+
return (h("div", { key: 'e4647158959bb507711a1d9872e68f64d5f7bd34', class: rootClasses }, this.showLabel && (h("div", { key: 'eb5d67b8717cc627b63a17f85471e757d35cec85', class: "bs-slider__header" }, h("span", { key: '48f6184206774111a5beb1869857020d7008f013', id: "bs-slider-label", part: "label", class: "bs-slider__label" }, this.label), isRange ? (h("span", { class: "bs-slider__value-fields" }, this.renderPercentField(this.percent(this.effectiveValueStart), this.onStartPercentFieldChange, this.ariaLabel ?? 'Start value'), h("span", { class: "bs-slider__separator" }, "\u2013"), this.renderPercentField(this.percent(this.effectiveValueEnd), this.onEndPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} end` : 'End value'))) : (this.renderPercentField(this.percent(this.value), this.onPercentFieldChange, this.ariaLabel ? `${this.ariaLabel} value` : 'Value')))), h("div", { key: '1ee4796e51f2d29b1b5bad812d81f037d1d2d29f', class: "bs-slider__row" }, this.showLabel && (h("span", { key: '4bfdfd86f9c5ae5c2f8ca08c0758be9fce483056', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: '06ee3063570c858bcdf49960b9021a301e56288e', part: "bound", class: "bs-slider__bound" }, this.max)))));
|
|
203
203
|
}
|
|
204
204
|
static get is() { return "bs-slider"; }
|
|
205
205
|
static get encapsulation() { return "shadow"; }
|
|
@@ -225,7 +225,7 @@ export class BsSlider {
|
|
|
225
225
|
"references": {
|
|
226
226
|
"BsSliderType": {
|
|
227
227
|
"location": "local",
|
|
228
|
-
"path": "/
|
|
228
|
+
"path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-slider/bs-slider.tsx",
|
|
229
229
|
"id": "src/components/bs-slider/bs-slider.tsx::BsSliderType"
|
|
230
230
|
}
|
|
231
231
|
}
|
|
@@ -51,7 +51,7 @@ export class BsSnackbar {
|
|
|
51
51
|
this.bsDismiss.emit();
|
|
52
52
|
};
|
|
53
53
|
render() {
|
|
54
|
-
return (h("div", { key: '
|
|
54
|
+
return (h("div", { key: '3dc0997bd057ef72d7322d28ad5c561fb5e24730', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: '3b77e4ac957cd73368883afbb7b47fb5cc46966b', class: "bs-snackbar__content" }, h("span", { key: '45a8c01714b0a3bec9ffcc470a83959a1d9f0539', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '6738316060e8da63c45ceda8ec2a2fce0dbcbc24', part: "message", class: "bs-snackbar__message" }, h("slot", { key: 'f88fe59ad8c970a222b2349a86df8c9ccb2836ab' }))), h("div", { key: '171fa694e2faccca014bb75234958cd458b17fe7', class: "bs-snackbar__actions" }, this.actionLabel && (h("button", { key: '2f529c556bbc9b6d01fddb23b434a6e381f38529', part: "action", type: "button", class: "bs-snackbar__action", onClick: this.onAction }, this.actionLabel)), h("button", { key: '1f45a977afdd80ee603e122fe8ac36b8161d6ee3', part: "close", type: "button", class: "bs-snackbar__close", "aria-label": "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: 'f16229c70fdbd0329e4a91fe7fbbf58e43e7870f' })))));
|
|
55
55
|
}
|
|
56
56
|
static get is() { return "bs-snackbar"; }
|
|
57
57
|
static get encapsulation() { return "shadow"; }
|
|
@@ -76,7 +76,7 @@ export class BsSnackbar {
|
|
|
76
76
|
"references": {
|
|
77
77
|
"BsSnackbarVariant": {
|
|
78
78
|
"location": "local",
|
|
79
|
-
"path": "/
|
|
79
|
+
"path": "/home/runner/work/Brandsync-web-components/Brandsync-web-components/packages/wc/src/components/bs-snackbar/bs-snackbar.tsx",
|
|
80
80
|
"id": "src/components/bs-snackbar/bs-snackbar.tsx::BsSnackbarVariant"
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -51,8 +51,8 @@ export class BsSourceLink {
|
|
|
51
51
|
};
|
|
52
52
|
render() {
|
|
53
53
|
const inner = [
|
|
54
|
-
h("span", { key: '
|
|
55
|
-
h("span", { key: '
|
|
54
|
+
h("span", { key: 'f439433f45bc81b4c515903661311431d99637cd', class: "bs-source-link__left" }, h("span", { key: '4ede9ae3793da7453679723866a519e73ee963aa', class: "bs-source-link__filename-row" }, h("span", { key: '6b4b95fde466988248d34d27705df76acce5927a', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: '24cf2dcc3d04fb2d6e543d1e8bae0e96d0df2d14', name: "icon" }, h(FileTextIcon, { key: 'f04e008075912dfac619c1a2e676346bc7d226d5' }))), h("p", { key: '16b2120d5391930dfc239cb5dd18c40de0cb7aa0', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: 'ec10ed741f33eba57624e0840253f96851f1481a', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: '56d4a784e30ceff1568bb393d4c3b368f81a0f3e', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: '95db8a3be1c61741e7d30229c642fea7d321b6b0', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '4f8caac5193d8671811f9972654ab049f23bac49', part: "version", class: "bs-source-link__version" }, this.version)))),
|
|
55
|
+
h("span", { key: '6009485aa7f7d802a82195c50374693f66782737', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: '1032169a5bfb02f9fbf1d7a5d5d255f313e1da29' })),
|
|
56
56
|
];
|
|
57
57
|
return this.href ? (h("a", { class: "bs-source-link", href: this.href, target: this.target, rel: "noopener noreferrer", onClick: this.onClick }, inner)) : (h("button", { type: "button", class: "bs-source-link", onClick: this.onClick }, inner));
|
|
58
58
|
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
describe('bs-stepper', () => {
|
|
3
|
+
it('propagates computedState to slotted steps based on position relative to currentStep', async () => {
|
|
4
|
+
const { root, waitForChanges } = await render(h("bs-stepper", { currentStep: 2 }, h("bs-stepper-step", { name: "Cart" }), h("bs-stepper-step", { name: "Shipping" }), h("bs-stepper-step", { name: "Payment" }), h("bs-stepper-step", { name: "Confirm" })));
|
|
5
|
+
await waitForChanges();
|
|
6
|
+
const steps = root.querySelectorAll('bs-stepper-step');
|
|
7
|
+
expect(steps[0].computedState).toBe('done');
|
|
8
|
+
expect(steps[1].computedState).toBe('done');
|
|
9
|
+
expect(steps[2].computedState).toBe('current');
|
|
10
|
+
expect(steps[3].computedState).toBe('enabled');
|
|
11
|
+
});
|
|
12
|
+
it('re-propagates computedState when currentStep changes', async () => {
|
|
13
|
+
const { root, waitForChanges } = await render(h("bs-stepper", { currentStep: 0 }, h("bs-stepper-step", { name: "A" }), h("bs-stepper-step", { name: "B" })));
|
|
14
|
+
await waitForChanges();
|
|
15
|
+
root.currentStep = 1;
|
|
16
|
+
await waitForChanges();
|
|
17
|
+
const steps = root.querySelectorAll('bs-stepper-step');
|
|
18
|
+
expect(steps[0].computedState).toBe('done');
|
|
19
|
+
expect(steps[1].computedState).toBe('current');
|
|
20
|
+
});
|
|
21
|
+
it('propagates direction and showDescription to slotted steps', async () => {
|
|
22
|
+
const { root, waitForChanges } = await render(h("bs-stepper", { direction: "vertical", showDescription: false }, h("bs-stepper-step", { name: "A" })));
|
|
23
|
+
await waitForChanges();
|
|
24
|
+
const step = root.querySelector('bs-stepper-step');
|
|
25
|
+
expect(step.direction).toBe('vertical');
|
|
26
|
+
expect(step.showDescription).toBe(false);
|
|
27
|
+
});
|
|
28
|
+
it('propagates the current props to a step added after initial render', async () => {
|
|
29
|
+
// currentStep=0 and this being the only (so index-0) step once appended -- 0 === 0 -> "current".
|
|
30
|
+
const { root, waitForChanges } = await render(h("bs-stepper", { currentStep: 0 }));
|
|
31
|
+
await waitForChanges();
|
|
32
|
+
const step = document.createElement('bs-stepper-step');
|
|
33
|
+
step.setAttribute('name', 'Late add');
|
|
34
|
+
root.appendChild(step);
|
|
35
|
+
await waitForChanges();
|
|
36
|
+
expect(step.computedState).toBe('current');
|
|
37
|
+
});
|
|
38
|
+
it('reflects the direction attribute for the container itself', async () => {
|
|
39
|
+
const { root } = await render(h("bs-stepper", { direction: "vertical" }));
|
|
40
|
+
expect(root).toEqualAttribute('direction', 'vertical');
|
|
41
|
+
});
|
|
42
|
+
});
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @prop --bs-stepper-edge-padding: Horizontal padding, direction="horizontal" only. Aliased to
|
|
3
|
+
* --bs-spacing-800. Every step's name/description centers under its own icon (see
|
|
4
|
+
* bs-stepper-step.css), including the first and last steps -- whose icons sit flush against this
|
|
5
|
+
* container's own edges. Without this padding, a first/last step's centered text has room to
|
|
6
|
+
* overflow in only one direction and clips against the container edge (confirmed by measuring a
|
|
7
|
+
* real render: a description clipped to a negative x position). This padding exists purely to give
|
|
8
|
+
* that overflow somewhere to go; it isn't a general "breathing room" affordance for content that
|
|
9
|
+
* fits.
|
|
10
|
+
*/
|
|
11
|
+
/* This container renders a bare <slot> with no wrapping element (see bs-stepper.tsx), so :host
|
|
12
|
+
itself is what establishes the flex row/column context each slotted bs-stepper-step's own
|
|
13
|
+
`:host(.bs-stepper-step--horizontal) { flex: 1 1 0; }` (etc.) expects from its parent. */
|
|
14
|
+
:host {
|
|
15
|
+
display: flex;
|
|
16
|
+
width: 100%;
|
|
17
|
+
|
|
18
|
+
--bs-stepper-edge-padding: var(--bs-spacing-800);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
:host([direction='vertical']) {
|
|
22
|
+
flex-direction: column;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
:host(:not([direction='vertical'])) {
|
|
26
|
+
flex-direction: row;
|
|
27
|
+
align-items: flex-start;
|
|
28
|
+
padding: 0 var(--bs-stepper-edge-padding);
|
|
29
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* A sequence of named steps showing overall progress through a multi-step flow (e.g. a checkout,
|
|
4
|
+
* an onboarding wizard) -- each step reads as enabled (not yet reached), current, done, error, or
|
|
5
|
+
* disabled, connected by a rail between them.
|
|
6
|
+
*
|
|
7
|
+
* This container is intentionally thin: it renders a `<slot>` for `<bs-stepper-step>` children and
|
|
8
|
+
* propagates `currentStep`/`direction`/`showDescription` down to them as JS properties whenever any
|
|
9
|
+
* of those change or the slotted children themselves change -- the same "container pushes state
|
|
10
|
+
* onto its slotted children" pattern `bs-tabs` uses for `selected` and `bs-breadcrumbs` uses for
|
|
11
|
+
* `size`. Each step computes its own `enabled`/`current`/`done` state from its position among its
|
|
12
|
+
* siblings relative to `currentStep`, unless that step's own `error`/`disabled` prop overrides it.
|
|
13
|
+
*
|
|
14
|
+
* This is a static status display, not an interactive control -- Figma's spec shows no
|
|
15
|
+
* hover/pressed treatment on any step, so nothing here is clickable.
|
|
16
|
+
*
|
|
17
|
+
* ## When to use
|
|
18
|
+
* - Showing where the user is in a fixed, ordered, multi-step flow.
|
|
19
|
+
*
|
|
20
|
+
* ## When not to use
|
|
21
|
+
* - A flow whose steps aren't fixed/known in advance -- a stepper implies the full sequence is
|
|
22
|
+
* already known.
|
|
23
|
+
* - As a substitute for actual in-page navigation between steps -- pair this with real controls
|
|
24
|
+
* (Next/Back buttons) elsewhere in the flow, this component only displays status.
|
|
25
|
+
*
|
|
26
|
+
* @slot - Default slot: the `<bs-stepper-step>` elements making up the sequence, in order.
|
|
27
|
+
*/
|
|
28
|
+
export class BsStepper {
|
|
29
|
+
el;
|
|
30
|
+
/** 0-indexed: which step is current. Every step before this index reads as "done" (unless that
|
|
31
|
+
* step's own `error`/`disabled` overrides it), every step after reads as "enabled". */
|
|
32
|
+
currentStep = 0;
|
|
33
|
+
/** `horizontal` (icon above name/description, connected by a horizontal rail) or `vertical`
|
|
34
|
+
* (icon beside name/description, connected by a vertical rail). Propagated to every slotted
|
|
35
|
+
* `bs-stepper-step`, and reflected as an attribute so this container's own `:host` CSS can switch
|
|
36
|
+
* its `flex-direction` to match -- a bare `<slot>` with no wrapping element (see `render()`)
|
|
37
|
+
* means the slotted steps' flex-row/column layout comes directly from `:host` here, not from any
|
|
38
|
+
* wrapper div. */
|
|
39
|
+
direction = 'horizontal';
|
|
40
|
+
/** Whether each step's description renders at all. Propagated to every slotted
|
|
41
|
+
* `bs-stepper-step`. */
|
|
42
|
+
showDescription = true;
|
|
43
|
+
onPropChange() {
|
|
44
|
+
this.propagateToSteps();
|
|
45
|
+
}
|
|
46
|
+
componentDidLoad() {
|
|
47
|
+
this.propagateToSteps();
|
|
48
|
+
}
|
|
49
|
+
onSlotChange = () => {
|
|
50
|
+
this.propagateToSteps();
|
|
51
|
+
};
|
|
52
|
+
propagateToSteps() {
|
|
53
|
+
const steps = this.el.querySelectorAll(':scope > bs-stepper-step');
|
|
54
|
+
steps.forEach((step, index) => {
|
|
55
|
+
const computedState = index < this.currentStep ? 'done' : index === this.currentStep ? 'current' : 'enabled';
|
|
56
|
+
Object.assign(step, {
|
|
57
|
+
computedState,
|
|
58
|
+
direction: this.direction,
|
|
59
|
+
showDescription: this.showDescription,
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
render() {
|
|
64
|
+
return h("slot", { key: '1c5d7d0c6a9fef9c06dfd08bd529a1582fe18478', onSlotchange: this.onSlotChange });
|
|
65
|
+
}
|
|
66
|
+
static get is() { return "bs-stepper"; }
|
|
67
|
+
static get encapsulation() { return "shadow"; }
|
|
68
|
+
static get originalStyleUrls() {
|
|
69
|
+
return {
|
|
70
|
+
"$": ["bs-stepper.css"]
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
static get styleUrls() {
|
|
74
|
+
return {
|
|
75
|
+
"$": ["bs-stepper.css"]
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
static get properties() {
|
|
79
|
+
return {
|
|
80
|
+
"currentStep": {
|
|
81
|
+
"type": "number",
|
|
82
|
+
"mutable": false,
|
|
83
|
+
"complexType": {
|
|
84
|
+
"original": "number",
|
|
85
|
+
"resolved": "number",
|
|
86
|
+
"references": {}
|
|
87
|
+
},
|
|
88
|
+
"required": false,
|
|
89
|
+
"optional": false,
|
|
90
|
+
"docs": {
|
|
91
|
+
"tags": [],
|
|
92
|
+
"text": "0-indexed: which step is current. Every step before this index reads as \"done\" (unless that\nstep's own `error`/`disabled` overrides it), every step after reads as \"enabled\"."
|
|
93
|
+
},
|
|
94
|
+
"getter": false,
|
|
95
|
+
"setter": false,
|
|
96
|
+
"reflect": false,
|
|
97
|
+
"attribute": "current-step",
|
|
98
|
+
"defaultValue": "0"
|
|
99
|
+
},
|
|
100
|
+
"direction": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"mutable": false,
|
|
103
|
+
"complexType": {
|
|
104
|
+
"original": "BsStepperDirection",
|
|
105
|
+
"resolved": "\"horizontal\" | \"vertical\"",
|
|
106
|
+
"references": {
|
|
107
|
+
"BsStepperDirection": {
|
|
108
|
+
"location": "import",
|
|
109
|
+
"path": "../bs-stepper-step/bs-stepper-step",
|
|
110
|
+
"id": "src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx::BsStepperDirection",
|
|
111
|
+
"referenceLocation": "BsStepperDirection"
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"required": false,
|
|
116
|
+
"optional": false,
|
|
117
|
+
"docs": {
|
|
118
|
+
"tags": [],
|
|
119
|
+
"text": "`horizontal` (icon above name/description, connected by a horizontal rail) or `vertical`\n(icon beside name/description, connected by a vertical rail). Propagated to every slotted\n`bs-stepper-step`, and reflected as an attribute so this container's own `:host` CSS can switch\nits `flex-direction` to match -- a bare `<slot>` with no wrapping element (see `render()`)\nmeans the slotted steps' flex-row/column layout comes directly from `:host` here, not from any\nwrapper div."
|
|
120
|
+
},
|
|
121
|
+
"getter": false,
|
|
122
|
+
"setter": false,
|
|
123
|
+
"reflect": true,
|
|
124
|
+
"attribute": "direction",
|
|
125
|
+
"defaultValue": "'horizontal'"
|
|
126
|
+
},
|
|
127
|
+
"showDescription": {
|
|
128
|
+
"type": "boolean",
|
|
129
|
+
"mutable": false,
|
|
130
|
+
"complexType": {
|
|
131
|
+
"original": "boolean",
|
|
132
|
+
"resolved": "boolean",
|
|
133
|
+
"references": {}
|
|
134
|
+
},
|
|
135
|
+
"required": false,
|
|
136
|
+
"optional": false,
|
|
137
|
+
"docs": {
|
|
138
|
+
"tags": [],
|
|
139
|
+
"text": "Whether each step's description renders at all. Propagated to every slotted\n`bs-stepper-step`."
|
|
140
|
+
},
|
|
141
|
+
"getter": false,
|
|
142
|
+
"setter": false,
|
|
143
|
+
"reflect": false,
|
|
144
|
+
"attribute": "show-description",
|
|
145
|
+
"defaultValue": "true"
|
|
146
|
+
}
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
static get elementRef() { return "el"; }
|
|
150
|
+
static get watchers() {
|
|
151
|
+
return [{
|
|
152
|
+
"propName": "currentStep",
|
|
153
|
+
"methodName": "onPropChange"
|
|
154
|
+
}, {
|
|
155
|
+
"propName": "direction",
|
|
156
|
+
"methodName": "onPropChange"
|
|
157
|
+
}, {
|
|
158
|
+
"propName": "showDescription",
|
|
159
|
+
"methodName": "onPropChange"
|
|
160
|
+
}];
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { componentDescription, propDescription } from "../../../stories-utils";
|
|
3
|
+
const meta = {
|
|
4
|
+
title: 'Components/bs-stepper',
|
|
5
|
+
parameters: { docs: { description: { component: componentDescription('bs-stepper') } } },
|
|
6
|
+
render: args => html `
|
|
7
|
+
<bs-stepper current-step=${args.currentStep} direction=${args.direction} show-description=${args.showDescription}>
|
|
8
|
+
<bs-stepper-step name="Cart" description="Review items"></bs-stepper-step>
|
|
9
|
+
<bs-stepper-step name="Shipping" description="Delivery address"></bs-stepper-step>
|
|
10
|
+
<bs-stepper-step name="Payment" description="Card details"></bs-stepper-step>
|
|
11
|
+
<bs-stepper-step name="Confirm" description="Review order"></bs-stepper-step>
|
|
12
|
+
</bs-stepper>
|
|
13
|
+
`,
|
|
14
|
+
argTypes: {
|
|
15
|
+
currentStep: { control: { type: 'number', min: 0, max: 3 }, description: propDescription('bs-stepper', 'currentStep') },
|
|
16
|
+
direction: { control: { type: 'select' }, options: ['horizontal', 'vertical'], description: propDescription('bs-stepper', 'direction') },
|
|
17
|
+
showDescription: { control: 'boolean', description: propDescription('bs-stepper', 'showDescription') },
|
|
18
|
+
},
|
|
19
|
+
args: {
|
|
20
|
+
currentStep: 1,
|
|
21
|
+
direction: 'horizontal',
|
|
22
|
+
showDescription: true,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
export default meta;
|
|
26
|
+
export const Default = {};
|
|
27
|
+
export const Vertical = {
|
|
28
|
+
args: { direction: 'vertical' },
|
|
29
|
+
};
|
|
30
|
+
// A step's own `error` attribute overrides its position-derived state -- Shipping shows the error
|
|
31
|
+
// treatment even though it's before currentStep (which would normally read as "done").
|
|
32
|
+
export const WithError = {
|
|
33
|
+
name: 'With an error step',
|
|
34
|
+
args: { currentStep: 2 },
|
|
35
|
+
render: args => html `
|
|
36
|
+
<bs-stepper current-step=${args.currentStep} direction=${args.direction} show-description=${args.showDescription}>
|
|
37
|
+
<bs-stepper-step name="Cart" description="Review items"></bs-stepper-step>
|
|
38
|
+
<bs-stepper-step name="Shipping" description="Delivery address" error></bs-stepper-step>
|
|
39
|
+
<bs-stepper-step name="Payment" description="Card details"></bs-stepper-step>
|
|
40
|
+
<bs-stepper-step name="Confirm" description="Review order"></bs-stepper-step>
|
|
41
|
+
</bs-stepper>
|
|
42
|
+
`,
|
|
43
|
+
};
|
|
44
|
+
export const WithDisabledStep = {
|
|
45
|
+
name: 'With a disabled step',
|
|
46
|
+
args: { currentStep: 2 },
|
|
47
|
+
render: args => html `
|
|
48
|
+
<bs-stepper current-step=${args.currentStep} direction=${args.direction} show-description=${args.showDescription}>
|
|
49
|
+
<bs-stepper-step name="Cart" description="Review items"></bs-stepper-step>
|
|
50
|
+
<bs-stepper-step name="Shipping" description="Delivery address"></bs-stepper-step>
|
|
51
|
+
<bs-stepper-step name="Payment" description="Card details"></bs-stepper-step>
|
|
52
|
+
<bs-stepper-step name="Confirm" description="Review order" disabled></bs-stepper-step>
|
|
53
|
+
</bs-stepper>
|
|
54
|
+
`,
|
|
55
|
+
};
|
|
56
|
+
export const NoDescription = {
|
|
57
|
+
name: 'No description',
|
|
58
|
+
args: { showDescription: false },
|
|
59
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
describe('bs-stepper-step', () => {
|
|
3
|
+
it('defaults to enabled/horizontal/showDescription=true when used standalone', async () => {
|
|
4
|
+
const { root } = await render(h("bs-stepper-step", { name: "Cart" }));
|
|
5
|
+
expect(root.shadowRoot.querySelector('[part="icon"]')).toHaveClass('bs-stepper-step__icon--enabled');
|
|
6
|
+
expect(root).toHaveClass('bs-stepper-step--horizontal');
|
|
7
|
+
});
|
|
8
|
+
it('renders the name text', async () => {
|
|
9
|
+
const { root } = await render(h("bs-stepper-step", { name: "Shipping" }));
|
|
10
|
+
expect(root.shadowRoot.querySelector('[part="name"]').textContent.trim()).toBe('Shipping');
|
|
11
|
+
});
|
|
12
|
+
describe('state resolution', () => {
|
|
13
|
+
it('error overrides computedState', async () => {
|
|
14
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", computedState: "done", error: true }));
|
|
15
|
+
expect(root.shadowRoot.querySelector('[part="icon"]')).toHaveClass('bs-stepper-step__icon--error');
|
|
16
|
+
});
|
|
17
|
+
it('disabled overrides both computedState and error', async () => {
|
|
18
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", computedState: "current", error: true, disabled: true }));
|
|
19
|
+
expect(root.shadowRoot.querySelector('[part="icon"]')).toHaveClass('bs-stepper-step__icon--disabled');
|
|
20
|
+
});
|
|
21
|
+
it('falls back to computedState when neither error nor disabled is set', async () => {
|
|
22
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", computedState: "done" }));
|
|
23
|
+
expect(root.shadowRoot.querySelector('[part="icon"]')).toHaveClass('bs-stepper-step__icon--done');
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
describe('icon content per state', () => {
|
|
27
|
+
it('done shows a checkmark', async () => {
|
|
28
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", computedState: "done" }));
|
|
29
|
+
expect(root.shadowRoot.querySelector('[part="icon"] svg')).not.toBeNull();
|
|
30
|
+
});
|
|
31
|
+
it('current shows an inner dot, no svg', async () => {
|
|
32
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", computedState: "current" }));
|
|
33
|
+
expect(root.shadowRoot.querySelector('.bs-stepper-step__icon-dot')).not.toBeNull();
|
|
34
|
+
expect(root.shadowRoot.querySelector('[part="icon"] svg')).toBeNull();
|
|
35
|
+
});
|
|
36
|
+
it('enabled shows neither', async () => {
|
|
37
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", computedState: "enabled" }));
|
|
38
|
+
expect(root.shadowRoot.querySelector('.bs-stepper-step__icon-dot')).toBeNull();
|
|
39
|
+
expect(root.shadowRoot.querySelector('[part="icon"] svg')).toBeNull();
|
|
40
|
+
});
|
|
41
|
+
it('error shows an exclamation icon', async () => {
|
|
42
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", error: true }));
|
|
43
|
+
expect(root.shadowRoot.querySelector('[part="icon"] svg')).not.toBeNull();
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe('showDescription', () => {
|
|
47
|
+
it('renders the description when set and showDescription is true', async () => {
|
|
48
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", description: "Some detail", showDescription: true }));
|
|
49
|
+
expect(root.shadowRoot.querySelector('[part="description"]').textContent.trim()).toBe('Some detail');
|
|
50
|
+
});
|
|
51
|
+
it('does not render a description when showDescription is false', async () => {
|
|
52
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", description: "Some detail", showDescription: false }));
|
|
53
|
+
expect(root.shadowRoot.querySelector('[part="description"]')).toBeNull();
|
|
54
|
+
});
|
|
55
|
+
it('does not render a description that was never set, even with showDescription true', async () => {
|
|
56
|
+
const { root } = await render(h("bs-stepper-step", { name: "A", showDescription: true }));
|
|
57
|
+
expect(root.shadowRoot.querySelector('[part="description"]')).toBeNull();
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
it('hides its own trailing connector when last in its parent, regardless of tag mix', async () => {
|
|
61
|
+
const container = document.createElement('div');
|
|
62
|
+
container.innerHTML = '<bs-stepper-step name="A"></bs-stepper-step><bs-stepper-step name="B"></bs-stepper-step>';
|
|
63
|
+
document.body.appendChild(container);
|
|
64
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
65
|
+
await new Promise(resolve => requestAnimationFrame(resolve));
|
|
66
|
+
const [first, second] = Array.from(container.querySelectorAll('bs-stepper-step'));
|
|
67
|
+
const firstConnector = first.shadowRoot.querySelector('.bs-stepper-step__connector');
|
|
68
|
+
const secondConnector = second.shadowRoot.querySelector('.bs-stepper-step__connector');
|
|
69
|
+
expect(getComputedStyle(firstConnector).visibility).not.toBe('hidden');
|
|
70
|
+
expect(getComputedStyle(secondConnector).visibility).toBe('hidden');
|
|
71
|
+
container.remove();
|
|
72
|
+
});
|
|
73
|
+
});
|