@brandsync/wc 1.1.0 → 1.3.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 +586 -0
- package/dist/brandsync-wc/brandsync-wc.esm.js +1 -1
- package/dist/brandsync-wc/p-03676f8a.entry.js +1 -0
- package/dist/brandsync-wc/{p-0a2d690f.entry.js → p-04c26826.entry.js} +1 -1
- package/dist/brandsync-wc/{p-a7704457.entry.js → p-0c8050e8.entry.js} +1 -1
- package/dist/brandsync-wc/p-0d5cc77f.entry.js +1 -0
- package/dist/brandsync-wc/{p-3e61d206.entry.js → p-19c98e13.entry.js} +1 -1
- package/dist/brandsync-wc/{p-31b28025.entry.js → p-23758f81.entry.js} +1 -1
- package/dist/brandsync-wc/{p-5321186f.entry.js → p-29c360f3.entry.js} +1 -1
- package/dist/brandsync-wc/{p-696f885c.entry.js → p-35d98580.entry.js} +1 -1
- package/dist/brandsync-wc/p-39204377.entry.js +1 -0
- package/dist/brandsync-wc/p-5a4db480.entry.js +1 -0
- package/dist/brandsync-wc/{p-0cf117f4.entry.js → p-5d118af1.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c76ca89f.entry.js → p-76d391d7.entry.js} +1 -1
- package/dist/brandsync-wc/{p-aa1cc2b6.entry.js → p-7de20530.entry.js} +1 -1
- package/dist/brandsync-wc/{p-32fe390d.entry.js → p-7ea0133f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-778fcc55.entry.js → p-8acb623e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-63906504.entry.js → p-8ec95da5.entry.js} +1 -1
- package/dist/brandsync-wc/{p-0921ca0d.entry.js → p-94266d72.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6ef0a0ed.entry.js → p-96d1ce21.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c7427962.entry.js → p-9ad278f4.entry.js} +1 -1
- package/dist/brandsync-wc/{p-ac12372f.entry.js → p-9f9c1a1d.entry.js} +1 -1
- package/dist/brandsync-wc/{p-579fbe4d.entry.js → p-b2704450.entry.js} +1 -1
- package/dist/brandsync-wc/{p-82953f42.entry.js → p-bcafba87.entry.js} +1 -1
- package/dist/brandsync-wc/p-bd2cc2c6.entry.js +1 -0
- package/dist/brandsync-wc/{p-2e7586dd.entry.js → p-be675b82.entry.js} +1 -1
- package/dist/brandsync-wc/{p-790fadf9.entry.js → p-bf4a5b1b.entry.js} +1 -1
- package/dist/brandsync-wc/{p-1abacfe8.entry.js → p-c4a16564.entry.js} +1 -1
- package/dist/brandsync-wc/{p-393efb5d.entry.js → p-cd703364.entry.js} +1 -1
- package/dist/brandsync-wc/{p-c7b9a5c7.entry.js → p-d589fa72.entry.js} +1 -1
- package/dist/brandsync-wc/{p-6fc78ccf.entry.js → p-d5d15d9f.entry.js} +1 -1
- package/dist/brandsync-wc/{p-bb2ec290.entry.js → p-e58b1dbb.entry.js} +1 -1
- package/dist/brandsync-wc/{p-3e8728dc.entry.js → p-eae7587e.entry.js} +1 -1
- package/dist/brandsync-wc/{p-cff188cb.entry.js → p-f196642a.entry.js} +1 -1
- package/dist/cjs/brandsync-wc.cjs.js +1 -1
- package/dist/cjs/bs-ai-disclaimer.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-greeting.cjs.entry.js +1 -1
- package/dist/cjs/bs-ai-thinking.cjs.entry.js +1 -1
- package/dist/cjs/bs-attachment-list.cjs.entry.js +1 -1
- package/dist/cjs/bs-breadcrumbs.cjs.entry.js +1 -1
- package/dist/cjs/bs-button-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-feedback.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-header.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-response-action.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-sources-drawer.cjs.entry.js +1 -1
- package/dist/cjs/bs-chatbot-suggestion-button.cjs.entry.js +1 -1
- package/dist/cjs/bs-checkbox-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/bs-inline-tab.cjs.entry.js +1 -1
- package/dist/cjs/bs-input.cjs.entry.js +2 -2
- package/dist/cjs/bs-menu-item.cjs.entry.js +1 -1
- package/dist/cjs/bs-menu.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer-item.cjs.entry.js +1 -1
- package/dist/cjs/bs-navigation-drawer.cjs.entry.js +1 -1
- package/dist/cjs/bs-pagination.cjs.entry.js +1 -1
- package/dist/cjs/bs-progress-linear.cjs.entry.js +65 -0
- package/dist/cjs/bs-progress.cjs.entry.js +69 -0
- package/dist/cjs/bs-radio.cjs.entry.js +1 -1
- package/dist/cjs/bs-slider.cjs.entry.js +1 -1
- package/dist/cjs/bs-snackbar.cjs.entry.js +1 -1
- package/dist/cjs/bs-source-link.cjs.entry.js +2 -2
- package/dist/cjs/bs-stepper-step.cjs.entry.js +1 -1
- package/dist/cjs/bs-stepper.cjs.entry.js +1 -1
- package/dist/cjs/bs-switch.cjs.entry.js +1 -1
- package/dist/cjs/bs-tab.cjs.entry.js +1 -1
- package/dist/cjs/bs-tabs.cjs.entry.js +1 -1
- package/dist/cjs/bs-toast.cjs.entry.js +45 -0
- package/dist/cjs/bs-tooltip.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/collection-manifest.json +3 -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-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 +2 -2
- 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.js +1 -1
- package/dist/collection/components/bs-chip/bs-chip-informative/bs-chip-informative.js +2 -2
- package/dist/collection/components/bs-chip/bs-chip-input/bs-chip-input.js +1 -1
- package/dist/collection/components/bs-composer/bs-composer.js +2 -2
- 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.js +4 -4
- package/dist/collection/components/bs-dialog/bs-dialog.js +1 -1
- 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-progress/bs-progress.cmp.test.js +96 -0
- package/dist/collection/components/bs-progress/bs-progress.css +119 -0
- package/dist/collection/components/bs-progress/bs-progress.js +212 -0
- package/dist/collection/components/bs-progress/bs-progress.stories.js +72 -0
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.cmp.test.js +92 -0
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.css +108 -0
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.js +192 -0
- package/dist/collection/components/bs-progress-linear/bs-progress-linear.stories.js +66 -0
- 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.js +1 -1
- package/dist/collection/components/bs-stepper/bs-stepper-step/bs-stepper-step.js +3 -3
- 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-toast/bs-toast.cmp.test.js +59 -0
- package/dist/collection/components/bs-toast/bs-toast.css +151 -0
- package/dist/collection/components/bs-toast/bs-toast.js +108 -0
- package/dist/collection/components/bs-toast/bs-toast.stories.js +39 -0
- package/dist/collection/components/bs-tooltip/bs-tooltip.js +1 -1
- package/dist/collection/components/ui-shell/bs-navigation-drawer/bs-navigation-drawer/bs-navigation-drawer.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 +1 -1
- 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-breadcrumb-overflow.js +1 -1
- package/dist/components/bs-breadcrumbs.js +1 -1
- package/dist/components/bs-button-skeleton.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-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-pagination.js +1 -1
- package/dist/components/bs-progress-linear.d.ts +11 -0
- package/dist/components/bs-progress-linear.js +1 -0
- package/dist/components/bs-progress.d.ts +11 -0
- package/dist/components/bs-progress.js +1 -0
- 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.d.ts +11 -0
- package/dist/components/bs-toast.js +1 -0
- package/dist/components/bs-tooltip.js +1 -1
- package/dist/components/{p-Bb6vh9PN.js → p-BIgPiuc-.js} +1 -1
- package/dist/components/{p-BFVUq5m5.js → p-BUtz3sub.js} +1 -1
- package/dist/components/{p-BPUNjzjH.js → p-Rn1IWs8l.js} +1 -1
- package/dist/esm/brandsync-wc.js +1 -1
- package/dist/esm/bs-ai-disclaimer.entry.js +1 -1
- package/dist/esm/bs-ai-greeting.entry.js +1 -1
- package/dist/esm/bs-ai-thinking.entry.js +1 -1
- package/dist/esm/bs-attachment-list.entry.js +1 -1
- package/dist/esm/bs-breadcrumbs.entry.js +1 -1
- package/dist/esm/bs-button-skeleton.entry.js +1 -1
- package/dist/esm/bs-chatbot-feedback.entry.js +1 -1
- package/dist/esm/bs-chatbot-header.entry.js +1 -1
- package/dist/esm/bs-chatbot-response-action.entry.js +1 -1
- package/dist/esm/bs-chatbot-sources-drawer.entry.js +1 -1
- package/dist/esm/bs-chatbot-suggestion-button.entry.js +1 -1
- package/dist/esm/bs-checkbox-skeleton.entry.js +1 -1
- package/dist/esm/bs-inline-tab.entry.js +1 -1
- package/dist/esm/bs-input.entry.js +2 -2
- package/dist/esm/bs-menu-item.entry.js +1 -1
- package/dist/esm/bs-menu.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer-item.entry.js +1 -1
- package/dist/esm/bs-navigation-drawer.entry.js +1 -1
- package/dist/esm/bs-pagination.entry.js +1 -1
- package/dist/esm/bs-progress-linear.entry.js +63 -0
- package/dist/esm/bs-progress.entry.js +67 -0
- package/dist/esm/bs-radio.entry.js +1 -1
- package/dist/esm/bs-slider.entry.js +1 -1
- package/dist/esm/bs-snackbar.entry.js +1 -1
- package/dist/esm/bs-source-link.entry.js +2 -2
- package/dist/esm/bs-stepper-step.entry.js +1 -1
- package/dist/esm/bs-stepper.entry.js +1 -1
- package/dist/esm/bs-switch.entry.js +1 -1
- package/dist/esm/bs-tab.entry.js +1 -1
- package/dist/esm/bs-tabs.entry.js +1 -1
- package/dist/esm/bs-toast.entry.js +43 -0
- package/dist/esm/bs-tooltip.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/types/components/bs-progress/bs-progress.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-progress/bs-progress.d.ts +46 -0
- package/dist/types/components/bs-progress/bs-progress.stories.d.ts +18 -0
- package/dist/types/components/bs-progress-linear/bs-progress-linear.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-progress-linear/bs-progress-linear.d.ts +50 -0
- package/dist/types/components/bs-progress-linear/bs-progress-linear.stories.d.ts +17 -0
- package/dist/types/components/bs-toast/bs-toast.cmp.test.d.ts +1 -0
- package/dist/types/components/bs-toast/bs-toast.d.ts +27 -0
- package/dist/types/components/bs-toast/bs-toast.stories.d.ts +12 -0
- package/dist/types/components.d.ts +320 -0
- package/package.json +1 -1
- package/dist/brandsync-wc/p-cc9f85d6.entry.js +0 -1
- package/dist/brandsync-wc/p-e230ed08.entry.js +0 -1
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
import { h } from "@stencil/core";
|
|
2
|
+
/**
|
|
3
|
+
* A linear (horizontal) progress indicator -- either a static bar showing a percentage fill
|
|
4
|
+
* (`type="determinate"`) or a continuously sliding bar signaling in-progress work with no known
|
|
5
|
+
* completion percentage (`type="indeterminate"`).
|
|
6
|
+
*
|
|
7
|
+
* ## When to use
|
|
8
|
+
* - Showing the progress of a task with a known, quantifiable completion percentage (`determinate`),
|
|
9
|
+
* e.g. a file upload.
|
|
10
|
+
* - Signaling that work is happening in the background with no meaningful percentage to report
|
|
11
|
+
* (`indeterminate`), e.g. while waiting on a network response.
|
|
12
|
+
*
|
|
13
|
+
* ## When not to use
|
|
14
|
+
* - For a compact, ring-shaped progress indicator -- use `bs-progress` (circular) instead.
|
|
15
|
+
* - For a percentage that's better expressed as plain text, without the reserved space and visual
|
|
16
|
+
* weight of a bar.
|
|
17
|
+
*
|
|
18
|
+
* @slot - Free-form label content rendered below the bar (e.g. "Uploading..."), gated by
|
|
19
|
+
* `showLabel`. Unlike `bs-progress`'s label, this is not a computed `${value}%` string -- it's
|
|
20
|
+
* consumer-supplied content, per the Figma spec's free-text "Label" placeholder.
|
|
21
|
+
* @part container - The outer wrapper (bar + optional label).
|
|
22
|
+
* @part track - The background track bar.
|
|
23
|
+
* @part fill - The colored progress/sliding fill bar.
|
|
24
|
+
* @part label - The label wrapper (only rendered when `showLabel` is true and slotted content exists).
|
|
25
|
+
*/
|
|
26
|
+
export class BsProgressLinear {
|
|
27
|
+
el;
|
|
28
|
+
/** Whether the default slot currently has any real (non-whitespace) content -- the label
|
|
29
|
+
* wrapper is only rendered when `showLabel` is true AND slotted content exists, so an empty
|
|
30
|
+
* label never reserves visual space/line-height for nothing. Recomputed on `slotchange`. */
|
|
31
|
+
hasLabelContent = false;
|
|
32
|
+
/** `determinate` renders a static fill reflecting `value`; `indeterminate` renders a
|
|
33
|
+
* continuously sliding gradient bar and ignores `value`. */
|
|
34
|
+
type = 'determinate';
|
|
35
|
+
/** Bar height: `small` (4px) or `large` (8px). */
|
|
36
|
+
size = 'large';
|
|
37
|
+
/** Progress percentage, `0`-`100`. Only meaningful for `type="determinate"` -- ignored (and
|
|
38
|
+
* never rendered) for `type="indeterminate"`. Out-of-range values are clamped defensively. */
|
|
39
|
+
value = 0;
|
|
40
|
+
/** Shows the slotted label below the bar. When `false`, or when no content is slotted, the
|
|
41
|
+
* label wrapper isn't rendered at all. Defaults to `true`. */
|
|
42
|
+
showLabel = true;
|
|
43
|
+
get clampedValue() {
|
|
44
|
+
return Math.min(100, Math.max(0, this.value));
|
|
45
|
+
}
|
|
46
|
+
render() {
|
|
47
|
+
const isDeterminate = this.type === 'determinate';
|
|
48
|
+
const value = this.clampedValue;
|
|
49
|
+
return (h("div", { key: '5c8e982bad03ed994700f3021a2304f4b51b3f4a', part: "container", class: "bs-progress-linear" }, h("div", { key: 'e2327781cdfbec66cee4a09a0d518cd71f9a8fb7', part: "track", class: `bs-progress-linear__track bs-progress-linear__track--${this.size}`, role: "progressbar", "aria-valuemin": isDeterminate ? '0' : undefined, "aria-valuemax": isDeterminate ? '100' : undefined, "aria-valuenow": isDeterminate ? String(value) : undefined, "aria-busy": isDeterminate ? undefined : 'true' }, isDeterminate ? (h("div", { part: "fill", class: "bs-progress-linear__fill", style: { width: `${value}%` } })) : (
|
|
50
|
+
// Figma's indeterminate bar is a soft "comet" gradient segment (transparent -> blue ->
|
|
51
|
+
// transparent) sliding left-to-right across the track's full width in a loop -- the
|
|
52
|
+
// same fade concept as bs-progress's indeterminate ring's conic-gradient comet tail,
|
|
53
|
+
// but along a straight line via a linear-gradient + `transform: translateX(...)`
|
|
54
|
+
// keyframe animation instead of a rotating conic-gradient.
|
|
55
|
+
h("div", { part: "fill", class: "bs-progress-linear__fill bs-progress-linear__fill--indeterminate" }))), this.showLabel && this.hasLabelContent && (h("span", { key: 'adbb34071dedfe8e164f1cf208e95c7f1f241399', part: "label", class: "bs-progress-linear__label" }, h("slot", { key: '74020827d39b5d7d38feee377058c434f7e78f11' })))));
|
|
56
|
+
}
|
|
57
|
+
// The default slot's assigned content lives in the host's light DOM regardless of whether a
|
|
58
|
+
// <slot> is currently rendered in the shadow tree, so this can be computed directly from the
|
|
59
|
+
// host's childNodes -- no need to render an always-present hidden <slot> just to observe it.
|
|
60
|
+
componentWillLoad() {
|
|
61
|
+
this.updateLabelVisibility();
|
|
62
|
+
this.mutationObserver = new MutationObserver(() => this.updateLabelVisibility());
|
|
63
|
+
this.mutationObserver.observe(this.el, { childList: true, characterData: true, subtree: true });
|
|
64
|
+
}
|
|
65
|
+
disconnectedCallback() {
|
|
66
|
+
this.mutationObserver?.disconnect();
|
|
67
|
+
}
|
|
68
|
+
mutationObserver;
|
|
69
|
+
updateLabelVisibility() {
|
|
70
|
+
this.hasLabelContent = Array.from(this.el.childNodes).some(node => {
|
|
71
|
+
if (node.nodeType === Node.TEXT_NODE)
|
|
72
|
+
return (node.textContent ?? '').trim().length > 0;
|
|
73
|
+
if (node.nodeType === Node.ELEMENT_NODE)
|
|
74
|
+
return true;
|
|
75
|
+
return false;
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
static get is() { return "bs-progress-linear"; }
|
|
79
|
+
static get encapsulation() { return "shadow"; }
|
|
80
|
+
static get originalStyleUrls() {
|
|
81
|
+
return {
|
|
82
|
+
"$": ["bs-progress-linear.css"]
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
static get styleUrls() {
|
|
86
|
+
return {
|
|
87
|
+
"$": ["bs-progress-linear.css"]
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
static get properties() {
|
|
91
|
+
return {
|
|
92
|
+
"type": {
|
|
93
|
+
"type": "string",
|
|
94
|
+
"mutable": false,
|
|
95
|
+
"complexType": {
|
|
96
|
+
"original": "BsProgressLinearType",
|
|
97
|
+
"resolved": "\"determinate\" | \"indeterminate\"",
|
|
98
|
+
"references": {
|
|
99
|
+
"BsProgressLinearType": {
|
|
100
|
+
"location": "local",
|
|
101
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-progress-linear/bs-progress-linear.tsx",
|
|
102
|
+
"id": "src/components/bs-progress-linear/bs-progress-linear.tsx::BsProgressLinearType"
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"required": false,
|
|
107
|
+
"optional": false,
|
|
108
|
+
"docs": {
|
|
109
|
+
"tags": [],
|
|
110
|
+
"text": "`determinate` renders a static fill reflecting `value`; `indeterminate` renders a\ncontinuously sliding gradient bar and ignores `value`."
|
|
111
|
+
},
|
|
112
|
+
"getter": false,
|
|
113
|
+
"setter": false,
|
|
114
|
+
"reflect": false,
|
|
115
|
+
"attribute": "type",
|
|
116
|
+
"defaultValue": "'determinate'"
|
|
117
|
+
},
|
|
118
|
+
"size": {
|
|
119
|
+
"type": "string",
|
|
120
|
+
"mutable": false,
|
|
121
|
+
"complexType": {
|
|
122
|
+
"original": "BsProgressLinearSize",
|
|
123
|
+
"resolved": "\"large\" | \"small\"",
|
|
124
|
+
"references": {
|
|
125
|
+
"BsProgressLinearSize": {
|
|
126
|
+
"location": "local",
|
|
127
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-progress-linear/bs-progress-linear.tsx",
|
|
128
|
+
"id": "src/components/bs-progress-linear/bs-progress-linear.tsx::BsProgressLinearSize"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
"required": false,
|
|
133
|
+
"optional": false,
|
|
134
|
+
"docs": {
|
|
135
|
+
"tags": [],
|
|
136
|
+
"text": "Bar height: `small` (4px) or `large` (8px)."
|
|
137
|
+
},
|
|
138
|
+
"getter": false,
|
|
139
|
+
"setter": false,
|
|
140
|
+
"reflect": false,
|
|
141
|
+
"attribute": "size",
|
|
142
|
+
"defaultValue": "'large'"
|
|
143
|
+
},
|
|
144
|
+
"value": {
|
|
145
|
+
"type": "number",
|
|
146
|
+
"mutable": false,
|
|
147
|
+
"complexType": {
|
|
148
|
+
"original": "number",
|
|
149
|
+
"resolved": "number",
|
|
150
|
+
"references": {}
|
|
151
|
+
},
|
|
152
|
+
"required": false,
|
|
153
|
+
"optional": false,
|
|
154
|
+
"docs": {
|
|
155
|
+
"tags": [],
|
|
156
|
+
"text": "Progress percentage, `0`-`100`. Only meaningful for `type=\"determinate\"` -- ignored (and\nnever rendered) for `type=\"indeterminate\"`. Out-of-range values are clamped defensively."
|
|
157
|
+
},
|
|
158
|
+
"getter": false,
|
|
159
|
+
"setter": false,
|
|
160
|
+
"reflect": false,
|
|
161
|
+
"attribute": "value",
|
|
162
|
+
"defaultValue": "0"
|
|
163
|
+
},
|
|
164
|
+
"showLabel": {
|
|
165
|
+
"type": "boolean",
|
|
166
|
+
"mutable": false,
|
|
167
|
+
"complexType": {
|
|
168
|
+
"original": "boolean",
|
|
169
|
+
"resolved": "boolean",
|
|
170
|
+
"references": {}
|
|
171
|
+
},
|
|
172
|
+
"required": false,
|
|
173
|
+
"optional": false,
|
|
174
|
+
"docs": {
|
|
175
|
+
"tags": [],
|
|
176
|
+
"text": "Shows the slotted label below the bar. When `false`, or when no content is slotted, the\nlabel wrapper isn't rendered at all. Defaults to `true`."
|
|
177
|
+
},
|
|
178
|
+
"getter": false,
|
|
179
|
+
"setter": false,
|
|
180
|
+
"reflect": false,
|
|
181
|
+
"attribute": "show-label",
|
|
182
|
+
"defaultValue": "true"
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
}
|
|
186
|
+
static get states() {
|
|
187
|
+
return {
|
|
188
|
+
"hasLabelContent": {}
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
static get elementRef() { return "el"; }
|
|
192
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { html } from "lit";
|
|
2
|
+
import { componentDescription, propDescription } from "../../stories-utils";
|
|
3
|
+
const types = ['determinate', 'indeterminate'];
|
|
4
|
+
const sizes = ['small', 'large'];
|
|
5
|
+
const meta = {
|
|
6
|
+
title: 'Components/bs-progress/Linear',
|
|
7
|
+
parameters: { docs: { description: { component: componentDescription('bs-progress-linear') } } },
|
|
8
|
+
render: args => html `
|
|
9
|
+
<bs-progress-linear type=${args.type} size=${args.size} value=${args.value} show-label=${args.showLabel}>
|
|
10
|
+
${args.label}
|
|
11
|
+
</bs-progress-linear>
|
|
12
|
+
`,
|
|
13
|
+
argTypes: {
|
|
14
|
+
type: { control: { type: 'select' }, options: types, description: propDescription('bs-progress-linear', 'type') },
|
|
15
|
+
size: { control: { type: 'select' }, options: sizes, description: propDescription('bs-progress-linear', 'size') },
|
|
16
|
+
value: { control: { type: 'range', min: 0, max: 100 }, description: propDescription('bs-progress-linear', 'value') },
|
|
17
|
+
showLabel: { control: 'boolean', description: propDescription('bs-progress-linear', 'show-label') },
|
|
18
|
+
label: { control: 'text', description: 'Slotted label content (default slot).' },
|
|
19
|
+
},
|
|
20
|
+
args: {
|
|
21
|
+
type: 'determinate',
|
|
22
|
+
size: 'large',
|
|
23
|
+
value: 40,
|
|
24
|
+
showLabel: true,
|
|
25
|
+
label: 'Label',
|
|
26
|
+
},
|
|
27
|
+
};
|
|
28
|
+
export default meta;
|
|
29
|
+
export const Default = {};
|
|
30
|
+
// One instance per size, stacked, at a fixed mid-range value.
|
|
31
|
+
export const Sizes = {
|
|
32
|
+
name: 'Sizes',
|
|
33
|
+
render: () => html `
|
|
34
|
+
<div style="display: flex; flex-direction: column; gap: 24px; width: 320px;">
|
|
35
|
+
${sizes.map(size => html `<bs-progress-linear size=${size} value="40">Label</bs-progress-linear>`)}
|
|
36
|
+
</div>
|
|
37
|
+
`,
|
|
38
|
+
};
|
|
39
|
+
// A few sample values across the range, illustrating the fill from empty to full.
|
|
40
|
+
export const Values = {
|
|
41
|
+
name: 'Values',
|
|
42
|
+
render: () => html `
|
|
43
|
+
<div style="display: flex; flex-direction: column; gap: 24px; width: 320px;">
|
|
44
|
+
${[0, 25, 50, 75, 100].map(value => html `<bs-progress-linear value=${value}>${value}%</bs-progress-linear>`)}
|
|
45
|
+
</div>
|
|
46
|
+
`,
|
|
47
|
+
};
|
|
48
|
+
export const WithoutLabel = {
|
|
49
|
+
name: 'Without label',
|
|
50
|
+
args: { showLabel: false },
|
|
51
|
+
render: args => html `
|
|
52
|
+
<div style="width: 320px;">
|
|
53
|
+
<bs-progress-linear type=${args.type} size=${args.size} value=${args.value} show-label=${args.showLabel}>
|
|
54
|
+
${args.label}
|
|
55
|
+
</bs-progress-linear>
|
|
56
|
+
</div>
|
|
57
|
+
`,
|
|
58
|
+
};
|
|
59
|
+
export const Indeterminate = {
|
|
60
|
+
args: { type: 'indeterminate' },
|
|
61
|
+
render: args => html `
|
|
62
|
+
<div style="width: 320px;">
|
|
63
|
+
<bs-progress-linear type=${args.type} size=${args.size} show-label=${args.showLabel}> ${args.label} </bs-progress-linear>
|
|
64
|
+
</div>
|
|
65
|
+
`,
|
|
66
|
+
};
|
|
@@ -51,7 +51,7 @@ export class BsRadio {
|
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
render() {
|
|
54
|
-
return (h("label", { key: '
|
|
54
|
+
return (h("label", { key: '161bfbd0b2275f33cb8fbc5b3e4851ec30edbbce', class: `bs-radio ${this.disabled ? 'bs-radio--disabled' : ''}` }, h("input", { key: '264d57cbd6c4f0052d8db28fb0fb11e274448b9b', class: "bs-radio__input", type: "radio", name: this.name, value: this.value, checked: this.checked, disabled: this.disabled, onChange: this.onChange }), h("span", { key: 'c7caedd6dfad0b5808a6e1bea575c4f958d2ea0b', class: "bs-radio__hit-area" }, h("span", { key: '1192afc8c59dce5fdf5c226dd560e4885175a73c', class: "bs-radio__state-layer" }, h("span", { key: '7869c22cde3a99465500cc7cb52b281189db6f94', part: "circle", class: `bs-radio__circle ${this.checked ? 'bs-radio__circle--selected' : ''}` }, this.checked && h("span", { key: '8f9cce005680970137aa380f64792a877a28fee6', part: "dot", class: "bs-radio__dot" })))), h("span", { key: 'a1539f067d44caf5988a1a86755bf47d9738fe08', part: "label", class: "bs-radio__label" }, h("slot", { key: 'be0394e88cc984e2d558881be9305753fec90ddc' }))));
|
|
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: '1cbd5e53dd0d8fb327d8584428dd21332661b5e2', class: rootClasses }, this.showLabel && (h("div", { key: '3634d341e67ebc1bfba90b86b104fa5553d67d1d', class: "bs-slider__header" }, h("span", { key: '3ebf6d66bd5c8e51fe9d9b42844cbfc1c45ae696', 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: '874e62bf31a4fdba314c9999d15abfbf211fb5bc', class: "bs-slider__row" }, this.showLabel && (h("span", { key: 'eb26f532ddac948279faa4bc6c60d263b0538ee6', part: "bound", class: "bs-slider__bound" }, this.min)), isRange ? this.renderRangeThumbs() : this.renderSingleThumb(), this.showLabel && (h("span", { key: '01bab87bfab37495ce857bbfd16d8417aea61a61', 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": "/home/runner/work/Brandsync-
|
|
228
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/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: '3251935ac23aa9157004eefdb6e324234eb6bfcb', part: "container", class: `bs-snackbar bs-snackbar--${this.variant}`, role: "status", "aria-live": this.variant === 'error' ? 'assertive' : 'polite' }, h("div", { key: 'c45e3cbe89cf2b956e46c71db87eb9644d3ef4df', class: "bs-snackbar__content" }, h("span", { key: '840a2ab80a6ff4691eb341157f8285f70310ec33', part: "icon", class: "bs-snackbar__icon", "aria-hidden": "true" }, this.loading ? h("span", { class: "bs-snackbar__spinner" }) : h(CheckCircleIcon, null)), h("span", { key: '6f947d2327529ae23c4de691ea509b39ce5e2490', part: "message", class: "bs-snackbar__message" }, h("slot", { key: '4cde5846deeb26cfb4fa134e789b641c9674618d' }))), h("div", { key: 'f5c1cc73c36ddfd5feef19fbcc24668c407cbd3d', class: "bs-snackbar__actions" }, this.actionLabel && (h("button", { key: 'ae7b54aee03e21f0d770b6440a5ef0138f835be8', part: "action", type: "button", class: "bs-snackbar__action", onClick: this.onAction }, this.actionLabel)), h("button", { key: 'f689a78a40fbd268760e9624ed0f02ba3ac71b07', part: "close", type: "button", class: "bs-snackbar__close", "aria-label": "Dismiss", onClick: this.onDismiss }, h(CloseIcon, { key: 'e731694f295179bb1cf85111116e2bf8f5e83cb7' })))));
|
|
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": "/home/runner/work/Brandsync-
|
|
79
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/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: '6e0bde7df2c893933c6490a995e418a43de6454f', class: "bs-source-link__left" }, h("span", { key: '9724f21e43696b3a07daabd05a348eaee96cd082', class: "bs-source-link__filename-row" }, h("span", { key: '901c8a90c0707197d0ae5f5c053f2e197683c973', part: "icon", class: "bs-source-link__icon" }, h("slot", { key: 'ca4ecd68ec7149bfe61830b3bd75a45e7086c165', name: "icon" }, h(FileTextIcon, { key: '656b72e726370c03b271e83397666be76544eb65' }))), h("p", { key: 'c20b0bc181548a81c57364b707afba77d535d62a', part: "filename", class: "bs-source-link__filename" }, this.fileName)), h("span", { key: '3178845a3c16d2ffd5fc1942806851370d966290', class: "bs-source-link__meta" }, this.sourceName && (h("span", { key: '6967d7fa214067d5e0d14123d287c4ce6cf40496', part: "source", class: "bs-source-link__source" }, this.sourceName)), this.sourceName && this.version && h("span", { key: 'a58b3e8d2d8ef4a23c8d6155454ab5825fd737b5', class: "bs-source-link__dot", "aria-hidden": "true" }), this.version && (h("span", { key: '1701393a524375eee95905308a9b8be1b9647bc8', part: "version", class: "bs-source-link__version" }, this.version)))),
|
|
55
|
+
h("span", { key: 'a291c8de9d56e8b269660441930b4bf95977883f', part: "arrow", class: "bs-source-link__arrow", "aria-hidden": "true" }, h(ArrowUpRightIcon, { key: '90a1a20ee9f84e5e339fa2a11c59691f6f45759f' })),
|
|
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
|
}
|
|
@@ -61,7 +61,7 @@ export class BsStepper {
|
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
render() {
|
|
64
|
-
return h("slot", { key: '
|
|
64
|
+
return h("slot", { key: 'ce510c14afc31408f1a8b04a6ab6a6bc8480dd97', onSlotchange: this.onSlotChange });
|
|
65
65
|
}
|
|
66
66
|
static get is() { return "bs-stepper"; }
|
|
67
67
|
static get encapsulation() { return "shadow"; }
|
|
@@ -57,7 +57,7 @@ export class BsStepperStep {
|
|
|
57
57
|
}
|
|
58
58
|
render() {
|
|
59
59
|
const state = this.state;
|
|
60
|
-
return (h(Host, { key: '
|
|
60
|
+
return (h(Host, { key: '0885597069b454df03e0797e6fc3ec4bba3357b1', role: "listitem", class: `bs-stepper-step--${this.direction}` }, h("div", { key: 'e5bf87615b06b2ffd35b18329a925171c45cbf4e', class: "bs-stepper-step__top" }, h("span", { key: 'e82c4b4d88769d9301a258f9f8ba10e75aac381d', part: "icon", class: `bs-stepper-step__icon bs-stepper-step__icon--${state}` }, state === 'current' && h("span", { key: '61b0982711c74851add824ccb561f26711ed1162', class: "bs-stepper-step__icon-dot" }), state === 'done' && h(CheckIcon, { key: 'f53ba1c507f79cac0ee4cde326c2a95580b95ea2' }), state === 'error' && h(ExclamationIcon, { key: '9671c46079a379711410c878cb520d915ff419b3' })), h("span", { key: 'af6ba4667e1237ff2ade9947a19ccea455aa1cb1', part: "connector", class: "bs-stepper-step__connector", "aria-hidden": "true" }, h("span", { key: '337b424d21fa9ad1c1289a314d1e4aee1d868e08', class: "bs-stepper-step__connector-line" }))), h("span", { key: '265d260e904153b4875fecd899affb5e16482e52', part: "label", class: `bs-stepper-step__label bs-stepper-step__label--${state}` }, h("span", { key: '2402a6d04e7467ea9b14b86569093226253ce934', part: "name", class: "bs-stepper-step__name" }, this.name), this.showDescription && this.description && (h("span", { key: 'ed6b927749fb9b174bf481e862fc4109ca557e1a', part: "description", class: "bs-stepper-step__description" }, this.description)))));
|
|
61
61
|
}
|
|
62
62
|
static get is() { return "bs-stepper-step"; }
|
|
63
63
|
static get encapsulation() { return "shadow"; }
|
|
@@ -161,7 +161,7 @@ export class BsStepperStep {
|
|
|
161
161
|
"references": {
|
|
162
162
|
"BsStepperStepComputedState": {
|
|
163
163
|
"location": "local",
|
|
164
|
-
"path": "/home/runner/work/Brandsync-
|
|
164
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx",
|
|
165
165
|
"id": "src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx::BsStepperStepComputedState"
|
|
166
166
|
}
|
|
167
167
|
}
|
|
@@ -187,7 +187,7 @@ export class BsStepperStep {
|
|
|
187
187
|
"references": {
|
|
188
188
|
"BsStepperDirection": {
|
|
189
189
|
"location": "local",
|
|
190
|
-
"path": "/home/runner/work/Brandsync-
|
|
190
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx",
|
|
191
191
|
"id": "src/components/bs-stepper/bs-stepper-step/bs-stepper-step.tsx::BsStepperDirection"
|
|
192
192
|
}
|
|
193
193
|
}
|
|
@@ -58,7 +58,7 @@ export class BsSwitch {
|
|
|
58
58
|
const knobClasses = ['bs-switch__knob', `bs-switch__knob--${this.size}`, this.disabled ? 'bs-switch__knob--disabled' : '']
|
|
59
59
|
.filter(Boolean)
|
|
60
60
|
.join(' ');
|
|
61
|
-
return (h("label", { key: '
|
|
61
|
+
return (h("label", { key: '8cc77a7334a032869209299197e49619d3ac6291', class: `bs-switch ${this.disabled ? 'bs-switch--disabled' : ''}` }, h("input", { key: '2d052950431ecd2ea7dfdfef8252ef2ec5bd2dc4', class: "bs-switch__input", type: "checkbox", role: "switch", checked: this.checked, disabled: this.disabled, "aria-checked": String(this.checked), "aria-label": this.ariaLabel, onChange: this.onChange }), h("span", { key: 'f3a7f7260a0f915e22eb32408495c4e114a9bcff', part: "track", class: trackClasses }, h("span", { key: '4c59c865cca27b3d7f068a2798a5901a43b1ef40', part: "knob", class: knobClasses })), h("span", { key: '807b245462b4b44f224beb892312f914625065e6', part: "label", class: "bs-switch__label" }, h("slot", { key: '056f758a35f0a9f5392561a6a47a3f8a65c9ffc7' }))));
|
|
62
62
|
}
|
|
63
63
|
static get is() { return "bs-switch"; }
|
|
64
64
|
static get encapsulation() { return "shadow"; }
|
|
@@ -84,7 +84,7 @@ export class BsSwitch {
|
|
|
84
84
|
"references": {
|
|
85
85
|
"BsSwitchSize": {
|
|
86
86
|
"location": "local",
|
|
87
|
-
"path": "/home/runner/work/Brandsync-
|
|
87
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-switch/bs-switch.tsx",
|
|
88
88
|
"id": "src/components/bs-switch/bs-switch.tsx::BsSwitchSize"
|
|
89
89
|
}
|
|
90
90
|
}
|
|
@@ -86,7 +86,7 @@ export class BsInlineTab {
|
|
|
86
86
|
};
|
|
87
87
|
render() {
|
|
88
88
|
const iconOnly = this.hasIcon && !this.hasLabel;
|
|
89
|
-
return (h("button", { key: '
|
|
89
|
+
return (h("button", { key: '7a3fe9444808cf379acdef7f06b0e6b07fb52ff0', type: "button", part: "tab", role: "tab", class: `bs-inline-tab ${this.selected ? 'bs-inline-tab--selected' : ''} ${this.disabled ? 'bs-inline-tab--disabled' : ''} ${iconOnly ? 'bs-inline-tab--icon-only' : ''} ${this.hasIcon ? 'bs-inline-tab--has-icon' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, onClick: this.onClick }, h("span", { key: '39dbd2c9f65157efaa7a94b119d90c9251a3a4b7', part: "icon", class: `bs-inline-tab__icon ${this.hasIcon ? 'bs-inline-tab__icon--has-content' : ''}` }, h("slot", { key: 'a3f8079e25a29834beb3a477e5b9c29f9d474429', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: 'edf1472b4ac667300d24b2fb8c8fea9f51705492', part: "label", class: `bs-inline-tab__label ${this.hasLabel ? 'bs-inline-tab__label--has-content' : ''}` }, h("slot", { key: 'a3500324e792e92c3f68a4144644a9a8916e1fb4', onSlotchange: this.onLabelSlotchange }))));
|
|
90
90
|
}
|
|
91
91
|
static get is() { return "bs-inline-tab"; }
|
|
92
92
|
static get encapsulation() { return "shadow"; }
|
|
@@ -99,7 +99,7 @@ export class BsTab {
|
|
|
99
99
|
const iconOnly = this.hasIcon && !this.hasLabel;
|
|
100
100
|
const vertical = this.hasIcon && this.hasLabel && this.iconPosition === 'top';
|
|
101
101
|
const showBadge = this.hasBadge && !iconOnly && !vertical;
|
|
102
|
-
return (h("button", { key: '
|
|
102
|
+
return (h("button", { key: '582c9b12915fa85e4b05114e4c1d5a15ec9253d1', type: "button", part: "tab", role: "tab", class: `bs-tab ${this.selected ? 'bs-tab--selected' : ''} ${this.disabled ? 'bs-tab--disabled' : ''} ${iconOnly ? 'bs-tab--icon-only' : ''} ${vertical ? 'bs-tab--vertical' : ''}`, disabled: this.disabled, "aria-selected": String(this.selected), "aria-disabled": this.disabled ? 'true' : undefined, "aria-label": this.ariaLabel, onClick: this.onClick }, h("span", { key: 'd2e55d29b23478056bb3f24a00ec1237fa9e0a9d', part: "icon", class: `bs-tab__icon ${this.hasIcon ? 'bs-tab__icon--has-content' : ''}` }, h("slot", { key: '767704d1770a124686fa503c0ca19b651412c07f', name: "icon", onSlotchange: this.onIconSlotchange })), h("span", { key: '8d4f45d058cbbd5bc64a03862048faaaa1effdf3', part: "label", class: `bs-tab__label ${this.hasLabel ? 'bs-tab__label--has-content' : ''}` }, h("slot", { key: '45805bbb18a4a8a39b01e1bc81a37a2b09449d3c', onSlotchange: this.onLabelSlotchange })), h("span", { key: '27a3379b320a5ac2f2a437c8ca980989cf5ed239', part: "badge", class: `bs-tab__badge ${showBadge ? 'bs-tab__badge--has-content' : ''}` }, h("slot", { key: '2bbd98cc2c68472a9399b3c5ff67ddbeae441949', name: "badge", onSlotchange: this.onBadgeSlotchange })), h("span", { key: '3f75545064c2114483382e1ee65e23f5aad33ccd', part: "indicator", class: "bs-tab__indicator" })));
|
|
103
103
|
}
|
|
104
104
|
static get is() { return "bs-tab"; }
|
|
105
105
|
static get encapsulation() { return "shadow"; }
|
|
@@ -164,7 +164,7 @@ export class BsTab {
|
|
|
164
164
|
"references": {
|
|
165
165
|
"BsTabIconPosition": {
|
|
166
166
|
"location": "local",
|
|
167
|
-
"path": "/home/runner/work/Brandsync-
|
|
167
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-tab/bs-tab/bs-tab.tsx",
|
|
168
168
|
"id": "src/components/bs-tab/bs-tab/bs-tab.tsx::BsTabIconPosition"
|
|
169
169
|
}
|
|
170
170
|
}
|
|
@@ -50,7 +50,7 @@ export class BsTabs {
|
|
|
50
50
|
}
|
|
51
51
|
render() {
|
|
52
52
|
const vertical = this.orientation === 'vertical';
|
|
53
|
-
return (h("div", { key: '
|
|
53
|
+
return (h("div", { key: 'a2e67e62af5aec684a0b79e06905e1d2dbc1d469', part: "tablist", role: "tablist", "aria-orientation": this.orientation, class: `bs-tabs bs-tabs--${this.type} ${vertical ? 'bs-tabs--vertical' : ''}` }, h("slot", { key: '6b3b19d55ff342c65ef321e6556cf56701dc18a0' })));
|
|
54
54
|
}
|
|
55
55
|
static get is() { return "bs-tabs"; }
|
|
56
56
|
static get encapsulation() { return "shadow"; }
|
|
@@ -75,7 +75,7 @@ export class BsTabs {
|
|
|
75
75
|
"references": {
|
|
76
76
|
"BsTabsType": {
|
|
77
77
|
"location": "local",
|
|
78
|
-
"path": "/home/runner/work/Brandsync-
|
|
78
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-tab/bs-tabs/bs-tabs.tsx",
|
|
79
79
|
"id": "src/components/bs-tab/bs-tabs/bs-tabs.tsx::BsTabsType"
|
|
80
80
|
}
|
|
81
81
|
}
|
|
@@ -101,7 +101,7 @@ export class BsTabs {
|
|
|
101
101
|
"references": {
|
|
102
102
|
"BsTabsOrientation": {
|
|
103
103
|
"location": "local",
|
|
104
|
-
"path": "/home/runner/work/Brandsync-
|
|
104
|
+
"path": "/home/runner/work/Brandsync-webcomponents/Brandsync-webcomponents/packages/wc/src/components/bs-tab/bs-tabs/bs-tabs.tsx",
|
|
105
105
|
"id": "src/components/bs-tab/bs-tabs/bs-tabs.tsx::BsTabsOrientation"
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { render, h, describe, it, expect } from "@stencil/vitest";
|
|
2
|
+
describe('bs-toast', () => {
|
|
3
|
+
it('defaults to the "info" state', async () => {
|
|
4
|
+
const { root } = await render(h("bs-toast", null, "Files uploaded successfully."));
|
|
5
|
+
const container = root.shadowRoot.querySelector('[part="container"]');
|
|
6
|
+
expect(container).toHaveClass('bs-toast--info');
|
|
7
|
+
});
|
|
8
|
+
['info', 'success', 'warning', 'error'].forEach(state => {
|
|
9
|
+
it(`applies the "${state}" state class`, async () => {
|
|
10
|
+
const { root } = await render(h("bs-toast", { state: state }, "Message"));
|
|
11
|
+
const container = root.shadowRoot.querySelector('[part="container"]');
|
|
12
|
+
expect(container).toHaveClass(`bs-toast--${state}`);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
it('renders the slotted message', async () => {
|
|
16
|
+
const { root } = await render(h("bs-toast", null, "Files uploaded successfully."));
|
|
17
|
+
expect(root).toHaveTextContent('Files uploaded successfully.');
|
|
18
|
+
});
|
|
19
|
+
describe('icon per state', () => {
|
|
20
|
+
it('renders an icon for the info state', async () => {
|
|
21
|
+
const { root } = await render(h("bs-toast", { state: "info" }, "Message"));
|
|
22
|
+
const icon = root.shadowRoot.querySelector('[part="icon"]');
|
|
23
|
+
expect(icon.querySelector('svg')).not.toBeNull();
|
|
24
|
+
});
|
|
25
|
+
it('renders a different icon markup per state', async () => {
|
|
26
|
+
const renders = await Promise.all(['info', 'success', 'warning', 'error'].map(async (state) => {
|
|
27
|
+
const { root } = await render(h("bs-toast", { state: state }, "Message"));
|
|
28
|
+
return root.shadowRoot.querySelector('[part="icon"]').innerHTML;
|
|
29
|
+
}));
|
|
30
|
+
expect(new Set(renders).size).toBe(renders.length);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('close button', () => {
|
|
34
|
+
it('always renders a close button with an accessible name', async () => {
|
|
35
|
+
const { root } = await render(h("bs-toast", null, "Message"));
|
|
36
|
+
const close = root.shadowRoot.querySelector('[part="close"]');
|
|
37
|
+
expect(close).not.toBeNull();
|
|
38
|
+
expect(close).toEqualAttribute('aria-label', 'Dismiss');
|
|
39
|
+
});
|
|
40
|
+
it('emits bsDismiss when the close button is clicked', async () => {
|
|
41
|
+
const { root, spyOnEvent } = await render(h("bs-toast", null, "Message"));
|
|
42
|
+
const dismissSpy = spyOnEvent('bsDismiss');
|
|
43
|
+
root.shadowRoot.querySelector('[part="close"]').click();
|
|
44
|
+
expect(dismissSpy).toHaveReceivedEventTimes(1);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('aria-live', () => {
|
|
48
|
+
it('uses aria-live="polite" for non-error states', async () => {
|
|
49
|
+
const { root } = await render(h("bs-toast", { state: "success" }, "Message"));
|
|
50
|
+
const container = root.shadowRoot.querySelector('[part="container"]');
|
|
51
|
+
expect(container).toEqualAttribute('aria-live', 'polite');
|
|
52
|
+
});
|
|
53
|
+
it('uses aria-live="assertive" for the error state', async () => {
|
|
54
|
+
const { root } = await render(h("bs-toast", { state: "error" }, "Message"));
|
|
55
|
+
const container = root.shadowRoot.querySelector('[part="container"]');
|
|
56
|
+
expect(container).toEqualAttribute('aria-live', 'assertive');
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
});
|