@solid-design-system/components 3.4.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/es/checkbox.js +1 -1
- package/dist/components/es/input.js +1 -1
- package/dist/components/es/option.js +1 -1
- package/dist/components/es/select.js +1 -1
- package/dist/components/es/solid-components2.js +1 -1
- package/dist/components/es/solid-element.js +2 -2
- package/dist/components/es/step-group.js +1 -0
- package/dist/components/es/step.js +1 -0
- package/dist/components/es/textarea.js +1 -1
- package/dist/components/umd/solid-components.js +21 -21
- package/dist/custom-elements.json +1 -1
- package/dist/package/components/checkbox/checkbox.js +1 -1
- package/dist/package/components/icon/library.system.d.ts +1 -2
- package/dist/package/components/icon/library.system.js +2 -7
- package/dist/package/components/input/input.js +1 -1
- package/dist/package/components/option/option.js +1 -1
- package/dist/package/components/select/select.js +1 -1
- package/dist/package/components/step/step.d.ts +27 -0
- package/dist/package/components/step/step.js +147 -0
- package/dist/package/components/step-group/step-group.d.ts +22 -0
- package/dist/package/components/step-group/step-group.js +127 -0
- package/dist/package/components/textarea/textarea.js +1 -1
- package/dist/package/solid-components.d.ts +2 -0
- package/dist/package/solid-components.js +24 -20
- package/dist/package/styles/paragraph/paragraph.css.js +4 -0
- package/dist/package/styles/tailwind.css.js +1 -1
- package/dist/versioned-components/es/accordion-group.js +1 -1
- package/dist/versioned-components/es/accordion.js +1 -1
- package/dist/versioned-components/es/badge.js +1 -1
- package/dist/versioned-components/es/brandshape.js +1 -1
- package/dist/versioned-components/es/button.js +1 -1
- package/dist/versioned-components/es/carousel-item.js +1 -1
- package/dist/versioned-components/es/carousel.js +3 -3
- package/dist/versioned-components/es/checkbox-group.js +1 -1
- package/dist/versioned-components/es/checkbox.js +1 -1
- package/dist/versioned-components/es/dialog.js +1 -1
- package/dist/versioned-components/es/divider.js +1 -1
- package/dist/versioned-components/es/drawer.js +1 -1
- package/dist/versioned-components/es/dropdown.js +1 -1
- package/dist/versioned-components/es/form.js +1 -1
- package/dist/versioned-components/es/header.js +1 -1
- package/dist/versioned-components/es/icon.js +1 -1
- package/dist/versioned-components/es/include.js +1 -1
- package/dist/versioned-components/es/input.js +1 -1
- package/dist/versioned-components/es/link.js +1 -1
- package/dist/versioned-components/es/map-marker.js +1 -1
- package/dist/versioned-components/es/navigation-item.js +1 -1
- package/dist/versioned-components/es/notification.js +1 -1
- package/dist/versioned-components/es/option.js +1 -1
- package/dist/versioned-components/es/popup.js +1 -1
- package/dist/versioned-components/es/radio-button.js +1 -1
- package/dist/versioned-components/es/radio-group.js +1 -1
- package/dist/versioned-components/es/radio.js +1 -1
- package/dist/versioned-components/es/scrollable.js +1 -1
- package/dist/versioned-components/es/select.js +3 -3
- package/dist/versioned-components/es/solid-components2.js +1 -1
- package/dist/versioned-components/es/solid-element.js +2 -2
- package/dist/versioned-components/es/spinner.js +1 -1
- package/dist/versioned-components/es/step-group.js +1 -0
- package/dist/versioned-components/es/step.js +1 -0
- package/dist/versioned-components/es/switch.js +1 -1
- package/dist/versioned-components/es/tab-group.js +1 -1
- package/dist/versioned-components/es/tab-panel.js +1 -1
- package/dist/versioned-components/es/tab.js +1 -1
- package/dist/versioned-components/es/tag.js +1 -1
- package/dist/versioned-components/es/teaser-media.js +1 -1
- package/dist/versioned-components/es/teaser.js +1 -1
- package/dist/versioned-components/es/textarea.js +1 -1
- package/dist/versioned-components/es/tooltip.js +2 -2
- package/dist/versioned-components/es/video.js +1 -1
- package/dist/versioned-package/_components/button-group/button-group.d.ts +1 -1
- package/dist/versioned-package/_components/button-group/button-group.js +11 -11
- package/dist/versioned-package/components/accordion/accordion.d.ts +1 -1
- package/dist/versioned-package/components/accordion/accordion.js +2 -2
- package/dist/versioned-package/components/accordion-group/accordion-group.d.ts +1 -1
- package/dist/versioned-package/components/accordion-group/accordion-group.js +3 -3
- package/dist/versioned-package/components/badge/badge.d.ts +1 -1
- package/dist/versioned-package/components/badge/badge.js +1 -1
- package/dist/versioned-package/components/brandshape/brandshape.d.ts +1 -1
- package/dist/versioned-package/components/brandshape/brandshape.js +1 -1
- package/dist/versioned-package/components/button/button.d.ts +1 -1
- package/dist/versioned-package/components/button/button.js +4 -4
- package/dist/versioned-package/components/carousel/carousel.d.ts +1 -1
- package/dist/versioned-package/components/carousel/carousel.js +6 -6
- package/dist/versioned-package/components/carousel-item/carousel-item.d.ts +1 -1
- package/dist/versioned-package/components/carousel-item/carousel-item.js +1 -1
- package/dist/versioned-package/components/checkbox/checkbox.d.ts +1 -1
- package/dist/versioned-package/components/checkbox/checkbox.js +3 -3
- package/dist/versioned-package/components/checkbox-group/checkbox-group.d.ts +1 -1
- package/dist/versioned-package/components/checkbox-group/checkbox-group.js +5 -5
- package/dist/versioned-package/components/dialog/dialog.d.ts +1 -1
- package/dist/versioned-package/components/dialog/dialog.js +2 -2
- package/dist/versioned-package/components/divider/divider.d.ts +1 -1
- package/dist/versioned-package/components/divider/divider.js +2 -2
- package/dist/versioned-package/components/drawer/drawer.d.ts +1 -1
- package/dist/versioned-package/components/drawer/drawer.js +2 -2
- package/dist/versioned-package/components/dropdown/dropdown.d.ts +1 -1
- package/dist/versioned-package/components/dropdown/dropdown.js +8 -8
- package/dist/versioned-package/components/header/header.d.ts +1 -1
- package/dist/versioned-package/components/header/header.js +4 -4
- package/dist/versioned-package/components/icon/icon.d.ts +1 -1
- package/dist/versioned-package/components/icon/icon.js +1 -1
- package/dist/versioned-package/components/icon/library.system.d.ts +1 -2
- package/dist/versioned-package/components/icon/library.system.js +2 -7
- package/dist/versioned-package/components/include/include.d.ts +1 -1
- package/dist/versioned-package/components/include/include.js +1 -1
- package/dist/versioned-package/components/input/input.d.ts +1 -1
- package/dist/versioned-package/components/input/input.js +2 -2
- package/dist/versioned-package/components/link/link.d.ts +1 -1
- package/dist/versioned-package/components/link/link.js +2 -2
- package/dist/versioned-package/components/map-marker/map-marker.d.ts +1 -1
- package/dist/versioned-package/components/map-marker/map-marker.js +1 -1
- package/dist/versioned-package/components/navigation-item/navigation-item.d.ts +1 -1
- package/dist/versioned-package/components/navigation-item/navigation-item.js +3 -3
- package/dist/versioned-package/components/notification/notification.d.ts +1 -1
- package/dist/versioned-package/components/notification/notification.js +5 -5
- package/dist/versioned-package/components/option/option.d.ts +1 -1
- package/dist/versioned-package/components/option/option.js +2 -2
- package/dist/versioned-package/components/popup/popup.d.ts +1 -1
- package/dist/versioned-package/components/popup/popup.js +1 -1
- package/dist/versioned-package/components/radio/radio.d.ts +1 -1
- package/dist/versioned-package/components/radio/radio.js +2 -2
- package/dist/versioned-package/components/radio-button/radio-button.d.ts +1 -1
- package/dist/versioned-package/components/radio-button/radio-button.js +2 -2
- package/dist/versioned-package/components/radio-group/radio-group.d.ts +2 -2
- package/dist/versioned-package/components/radio-group/radio-group.js +13 -13
- package/dist/versioned-package/components/scrollable/scrollable.d.ts +1 -1
- package/dist/versioned-package/components/scrollable/scrollable.js +3 -3
- package/dist/versioned-package/components/select/select.d.ts +4 -4
- package/dist/versioned-package/components/select/select.js +25 -25
- package/dist/versioned-package/components/spinner/spinner.d.ts +1 -1
- package/dist/versioned-package/components/spinner/spinner.js +1 -1
- package/dist/versioned-package/components/step/step.d.ts +27 -0
- package/dist/versioned-package/components/step/step.js +147 -0
- package/dist/versioned-package/components/step-group/step-group.d.ts +22 -0
- package/dist/versioned-package/components/step-group/step-group.js +127 -0
- package/dist/versioned-package/components/switch/switch.d.ts +1 -1
- package/dist/versioned-package/components/switch/switch.js +1 -1
- package/dist/versioned-package/components/tab/tab.d.ts +1 -1
- package/dist/versioned-package/components/tab/tab.js +2 -2
- package/dist/versioned-package/components/tab-group/tab-group.d.ts +1 -1
- package/dist/versioned-package/components/tab-group/tab-group.js +13 -13
- package/dist/versioned-package/components/tab-panel/tab-panel.d.ts +1 -1
- package/dist/versioned-package/components/tab-panel/tab-panel.js +2 -2
- package/dist/versioned-package/components/tag/tag.d.ts +1 -1
- package/dist/versioned-package/components/tag/tag.js +2 -2
- package/dist/versioned-package/components/teaser/teaser.js +1 -1
- package/dist/versioned-package/components/teaser-media/teaser-media.js +1 -1
- package/dist/versioned-package/components/textarea/textarea.d.ts +1 -1
- package/dist/versioned-package/components/textarea/textarea.js +2 -2
- package/dist/versioned-package/components/tooltip/tooltip.d.ts +1 -1
- package/dist/versioned-package/components/tooltip/tooltip.js +5 -5
- package/dist/versioned-package/components/video/video.d.ts +1 -1
- package/dist/versioned-package/components/video/video.js +2 -2
- package/dist/versioned-package/internal/form.js +3 -3
- package/dist/versioned-package/solid-components.d.ts +2 -0
- package/dist/versioned-package/solid-components.js +24 -20
- package/dist/versioned-package/styles/headline/headline.css.js +1 -1
- package/dist/versioned-package/styles/paragraph/paragraph.css.js +4 -0
- package/dist/versioned-package/styles/tailwind.css.js +1 -1
- package/dist/versioned-package/utilities/autocomplete-config.js +4 -4
- package/dist/versioned-styles/solid-styles.css +1 -1
- package/dist/vscode.html-custom-data.json +263 -39
- package/dist/web-types.json +600 -40
- package/package.json +3 -3
|
@@ -4,7 +4,7 @@ import SolidElement from '../../internal/solid-element';
|
|
|
4
4
|
import type { SolidFormControl } from '../../internal/solid-element';
|
|
5
5
|
export default class SdRadioGroup extends SolidElement implements SolidFormControl {
|
|
6
6
|
static dependencies: {
|
|
7
|
-
'sd-3-
|
|
7
|
+
'sd-3-5-0-button-group': typeof SdButtonGroup;
|
|
8
8
|
};
|
|
9
9
|
protected readonly formControlController: FormControlController;
|
|
10
10
|
private readonly hasSlotController;
|
|
@@ -48,6 +48,6 @@ export default class SdRadioGroup extends SolidElement implements SolidFormContr
|
|
|
48
48
|
}
|
|
49
49
|
declare global {
|
|
50
50
|
interface HTMLElementTagNameMap {
|
|
51
|
-
'sd-3-
|
|
51
|
+
'sd-3-5-0-radio-group': SdRadioGroup;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
@@ -68,10 +68,10 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
68
68
|
this.formControlController.updateValidity();
|
|
69
69
|
}
|
|
70
70
|
getAllRadios() {
|
|
71
|
-
return [...this.querySelectorAll("sd-3-
|
|
71
|
+
return [...this.querySelectorAll("sd-3-5-0-radio, sd-3-5-0-radio-button")];
|
|
72
72
|
}
|
|
73
73
|
handleRadioClick(event) {
|
|
74
|
-
const target = event.target.closest("sd-3-
|
|
74
|
+
const target = event.target.closest("sd-3-5-0-radio, sd-3-5-0-radio-button");
|
|
75
75
|
const radios = this.getAllRadios();
|
|
76
76
|
const oldValue = this.value;
|
|
77
77
|
if (target.disabled) {
|
|
@@ -147,7 +147,7 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
147
147
|
}
|
|
148
148
|
})
|
|
149
149
|
);
|
|
150
|
-
this.hasButtonGroup = radios.some((radio) => radio.tagName.toLowerCase() === "sd-3-
|
|
150
|
+
this.hasButtonGroup = radios.some((radio) => radio.tagName.toLowerCase() === "sd-3-5-0-radio-button");
|
|
151
151
|
if (!radios.some((radio) => radio.checked)) {
|
|
152
152
|
if (this.hasButtonGroup) {
|
|
153
153
|
const buttonRadio = (_a = radios[0].shadowRoot) == null ? void 0 : _a.querySelector("button");
|
|
@@ -159,26 +159,26 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
if (this.hasButtonGroup) {
|
|
162
|
-
const buttonGroup = (_b = this.shadowRoot) == null ? void 0 : _b.querySelector("sd-3-
|
|
162
|
+
const buttonGroup = (_b = this.shadowRoot) == null ? void 0 : _b.querySelector("sd-3-5-0-button-group");
|
|
163
163
|
if (buttonGroup) {
|
|
164
164
|
buttonGroup.disableRole = true;
|
|
165
165
|
}
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
syncRadios() {
|
|
169
|
-
if (customElements.get("sd-3-
|
|
169
|
+
if (customElements.get("sd-3-5-0-radio") && customElements.get("sd-3-5-0-radio-button")) {
|
|
170
170
|
this.syncRadioElements();
|
|
171
171
|
return;
|
|
172
172
|
}
|
|
173
|
-
if (customElements.get("sd-3-
|
|
173
|
+
if (customElements.get("sd-3-5-0-radio")) {
|
|
174
174
|
this.syncRadioElements();
|
|
175
175
|
} else {
|
|
176
|
-
customElements.whenDefined("sd-3-
|
|
176
|
+
customElements.whenDefined("sd-3-5-0-radio").then(() => this.syncRadios());
|
|
177
177
|
}
|
|
178
|
-
if (customElements.get("sd-3-
|
|
178
|
+
if (customElements.get("sd-3-5-0-radio-button")) {
|
|
179
179
|
this.syncRadioElements();
|
|
180
180
|
} else {
|
|
181
|
-
customElements.whenDefined("sd-3-
|
|
181
|
+
customElements.whenDefined("sd-3-5-0-radio-button").then(() => this.syncRadios());
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
updateCheckedRadio() {
|
|
@@ -253,14 +253,14 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
253
253
|
vertical: "flex-col",
|
|
254
254
|
horizontal: "flex-row"
|
|
255
255
|
}[this.orientation]
|
|
256
|
-
)}"><div class="sr-only"><label><input id="validation-input" type="text" ?required="${this.required}" tabindex="-1" hidden @invalid="${this.handleInvalid}"></label></div>${this.hasButtonGroup ? html`<sd-3-
|
|
256
|
+
)}"><div class="sr-only"><label><input id="validation-input" type="text" ?required="${this.required}" tabindex="-1" hidden @invalid="${this.handleInvalid}"></label></div>${this.hasButtonGroup ? html`<sd-3-5-0-button-group part="button-group" exportparts="base:button-group__base" role="presentation">${defaultSlot}</sd-3-5-0-button-group>` : defaultSlot}</div></fieldset>${this.formControlController.renderInvalidMessage()}`;
|
|
257
257
|
}
|
|
258
258
|
};
|
|
259
|
-
SdRadioGroup.dependencies = { "sd-3-
|
|
259
|
+
SdRadioGroup.dependencies = { "sd-3-5-0-button-group": SdButtonGroup };
|
|
260
260
|
SdRadioGroup.styles = [
|
|
261
261
|
componentStyles,
|
|
262
262
|
SolidElement.styles,
|
|
263
|
-
css`:host{display:block}:host([orientation=vertical]) ::slotted(sd-3-
|
|
263
|
+
css`:host{display:block}:host([orientation=vertical]) ::slotted(sd-3-5-0-radio){margin-bottom:var(--sd-spacing-2,.5rem);display:flex}:host([orientation=vertical]) ::slotted(sd-3-5-0-radio:last-of-type){margin-bottom:var(--sd-spacing-0,0)}:host([orientation=horizontal]) ::slotted(sd-3-5-0-radio){margin-right:var(--sd-spacing-6,1.5rem)}:host([orientation=horizontal]) ::slotted(sd-3-5-0-radio:last-of-type){margin-right:var(--sd-spacing-0,0)}:host([orientation=horizontal]):host([size=sm]) ::slotted(sd-3-5-0-radio){margin-right:var(--sd-spacing-4,1rem)}:host([orientation=horizontal]):host([size=sm]) ::slotted(sd-3-5-0-radio:last-of-type){margin-right:var(--sd-spacing-0,0)}:host([required]) #label::after{content:' *'}`
|
|
264
264
|
];
|
|
265
265
|
__decorateClass([
|
|
266
266
|
query("slot:not([name])")
|
|
@@ -314,7 +314,7 @@ __decorateClass([
|
|
|
314
314
|
watch("value")
|
|
315
315
|
], SdRadioGroup.prototype, "handleValueChange", 1);
|
|
316
316
|
SdRadioGroup = __decorateClass([
|
|
317
|
-
customElement("sd-3-
|
|
317
|
+
customElement("sd-3-5-0-radio-group")
|
|
318
318
|
], SdRadioGroup);
|
|
319
319
|
export {
|
|
320
320
|
SdRadioGroup as default
|
|
@@ -112,14 +112,14 @@ let SdScrollable = class extends SolidElement {
|
|
|
112
112
|
this.orientation === "auto" && "scroll-auto overflow-auto",
|
|
113
113
|
this.scrollbars ? "show-scrollbars" : "hide-scrollbars",
|
|
114
114
|
this.inset ? "p-4" : ""
|
|
115
|
-
)}" @scroll="${this.updateScrollIndicatorVisibility}"><div part="scroll-content" class="flex-1"><slot></slot></div></div>${this.buttons ? html`${this.isScrollHorizontalEnabled ? html`${this.canScroll.left ? html`<div part="button-left" class="absolute z-10 flex items-center justify-center top-0 left-0 h-full w-8"><button part="button-start" class="${cx(scrollButtonClasses)}" @click="${() => this.handleScroll("left")}"><slot name="icon-start"><sd-3-
|
|
115
|
+
)}" @scroll="${this.updateScrollIndicatorVisibility}"><div part="scroll-content" class="flex-1"><slot></slot></div></div>${this.buttons ? html`${this.isScrollHorizontalEnabled ? html`${this.canScroll.left ? html`<div part="button-left" class="absolute z-10 flex items-center justify-center top-0 left-0 h-full w-8"><button part="button-start" class="${cx(scrollButtonClasses)}" @click="${() => this.handleScroll("left")}"><slot name="icon-start"><sd-3-5-0-icon library="system" name="chevron-up" class="rotate-[-90deg]"></sd-3-5-0-icon></slot></button></div>` : null} ${this.canScroll.right ? html`<div part="button-right" class="absolute z-10 flex items-center justify-center top-0 right-0 h-full w-8"><button part="button-end" class="${cx(scrollButtonClasses)}" @click="${() => this.handleScroll("right")}"><slot name="icon-end"><sd-3-5-0-icon library="system" name="chevron-down" class="rotate-[-90deg]"></sd-3-5-0-icon></slot></button></div>` : null}` : null} ${this.isScrollVerticalEnabled ? html`${this.canScroll.up ? html`<div part="button-top" class="absolute z-10 flex items-center justify-center top-0 left-0 w-full h-8"><button part="button-start" class="${cx(scrollButtonClasses)}" @click="${() => this.handleScroll("up")}"><slot name="icon-start"><sd-3-5-0-icon library="system" name="chevron-up"></sd-3-5-0-icon></slot></button></div>` : null} ${this.canScroll.down ? html`<div part="button-bottom" class="absolute z-10 flex items-center justify-center bottom-0 left-0 w-full h-8"><button part="button-end" class="${cx(scrollButtonClasses)}" @click="${() => this.handleScroll("down")}"><slot name="icon-end"><sd-3-5-0-icon library="system" name="chevron-down"></sd-3-5-0-icon></slot></button></div>` : null}` : null}` : null} ${this.shadows ? html`${this.isScrollHorizontalEnabled ? html`${this.canScroll.left ? html`<div part="shadow-left" class="${scrollShadowClasses} left top-0 left-0 w-[6px] h-full"></div>` : null} ${this.canScroll.right ? html`<div part="shadow-right" class="${scrollShadowClasses} right top-0 right-0 w-[6px] h-full"></div>` : null}` : null} ${this.isScrollVerticalEnabled ? html`${this.canScroll.up ? html`<div part="shadow-top" class="${scrollShadowClasses} top top-0 left-0 w-full h-[6px]"></div>` : null} ${this.canScroll.down ? html`<div part="shadow-bottom" class="${scrollShadowClasses} bottom bottom-0 left-0 w-full h-[6px]"></div>` : null}` : null}` : null}`;
|
|
116
116
|
}
|
|
117
117
|
};
|
|
118
118
|
SdScrollable.styles = [
|
|
119
119
|
SolidElement.styles,
|
|
120
120
|
unsafeCSS(InteractiveStyles),
|
|
121
121
|
componentStyles,
|
|
122
|
-
css`:host{--gradient-color:rgba(255, 255, 255, 0);--gradient:var(--gradient-color) 0%,#fff 80%,#fff 100%;position:relative;display:flex;overflow:hidden}.hide-scrollbars{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbars::-webkit-scrollbar{display:none}.scroll-container::-webkit-scrollbar-thumb{background-color:transparent}.scroll-container:hover::-webkit-scrollbar-thumb{background:var(--background-neutral-400,#c3c3c3);border-radius:var(--sd-border-radius-sm,.125rem)}.scroll-container::-webkit-scrollbar{height:var(--sd-spacing-1,.25rem);width:var(--sd-spacing-1,.25rem)}.scroll-auto{overflow:auto}[part=button-left]{background:linear-gradient(270deg,var(--gradient))}[part=button-right]{background:linear-gradient(90deg,var(--gradient))}[part=button-top]{background:linear-gradient(0deg,var(--gradient))}[part=button-bottom]{background:linear-gradient(180deg,var(--gradient))}[part=shadow-left]{background:linear-gradient(270deg,rgba(24,24,24,0) 50%,rgba(24,24,24,.4) 100%)}[part=shadow-right]{background:linear-gradient(90deg,rgba(24,24,24,0) 50%,rgba(24,24,24,.4) 100%)}[part=shadow-top]{background:linear-gradient(0deg,rgba(24,24,24,0) 50%,rgba(24,24,24,.4) 100%)}[part=shadow-bottom]{background:linear-gradient(180deg,rgba(24,24,24,0) 50%,rgba(24,24,24,.4) 100%)}.sd-3-
|
|
122
|
+
css`:host{--gradient-color:rgba(255, 255, 255, 0);--gradient:var(--gradient-color) 0%,#fff 80%,#fff 100%;position:relative;display:flex;overflow:hidden}.hide-scrollbars{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbars::-webkit-scrollbar{display:none}.scroll-container::-webkit-scrollbar-thumb{background-color:transparent}.scroll-container:hover::-webkit-scrollbar-thumb{background:var(--background-neutral-400,#c3c3c3);border-radius:var(--sd-border-radius-sm,.125rem)}.scroll-container::-webkit-scrollbar{height:var(--sd-spacing-1,.25rem);width:var(--sd-spacing-1,.25rem)}.scroll-auto{overflow:auto}[part=button-left]{background:linear-gradient(270deg,var(--gradient))}[part=button-right]{background:linear-gradient(90deg,var(--gradient))}[part=button-top]{background:linear-gradient(0deg,var(--gradient))}[part=button-bottom]{background:linear-gradient(180deg,var(--gradient))}[part=shadow-left]{background:linear-gradient(270deg,rgba(24,24,24,0) 50%,rgba(24,24,24,.4) 100%)}[part=shadow-right]{background:linear-gradient(90deg,rgba(24,24,24,0) 50%,rgba(24,24,24,.4) 100%)}[part=shadow-top]{background:linear-gradient(0deg,rgba(24,24,24,0) 50%,rgba(24,24,24,.4) 100%)}[part=shadow-bottom]{background:linear-gradient(180deg,rgba(24,24,24,0) 50%,rgba(24,24,24,.4) 100%)}.sd-3-5-0-icon--top{align-self:flex-start}.sd-3-5-0-icon--down{align-self:flex-end}`
|
|
123
123
|
];
|
|
124
124
|
__decorateClass([
|
|
125
125
|
property({ type: String, reflect: true })
|
|
@@ -149,7 +149,7 @@ __decorateClass([
|
|
|
149
149
|
state()
|
|
150
150
|
], SdScrollable.prototype, "isScrollVerticalEnabled", 2);
|
|
151
151
|
SdScrollable = __decorateClass([
|
|
152
|
-
customElement("sd-3-
|
|
152
|
+
customElement("sd-3-5-0-scrollable")
|
|
153
153
|
], SdScrollable);
|
|
154
154
|
export {
|
|
155
155
|
SdScrollable as default
|
|
@@ -7,9 +7,9 @@ import type { TemplateResult } from 'lit';
|
|
|
7
7
|
import type SdOption from '../option/option';
|
|
8
8
|
export default class SdSelect extends SolidElement implements SolidFormControl {
|
|
9
9
|
static dependencies: {
|
|
10
|
-
'sd-3-
|
|
11
|
-
'sd-3-
|
|
12
|
-
'sd-3-
|
|
10
|
+
'sd-3-5-0-icon': typeof SdIcon;
|
|
11
|
+
'sd-3-5-0-popup': typeof SdPopup;
|
|
12
|
+
'sd-3-5-0-tag': typeof SdTag;
|
|
13
13
|
};
|
|
14
14
|
private readonly formControlController;
|
|
15
15
|
private readonly hasSlotController;
|
|
@@ -97,6 +97,6 @@ export default class SdSelect extends SolidElement implements SolidFormControl {
|
|
|
97
97
|
}
|
|
98
98
|
declare global {
|
|
99
99
|
interface HTMLElementTagNameMap {
|
|
100
|
-
'sd-3-
|
|
100
|
+
'sd-3-5-0-select': SdSelect;
|
|
101
101
|
}
|
|
102
102
|
}
|
|
@@ -32,7 +32,7 @@ let SdSelect = class extends SolidElement {
|
|
|
32
32
|
constructor() {
|
|
33
33
|
super(...arguments);
|
|
34
34
|
this.formControlController = new FormControlController(this, {
|
|
35
|
-
assumeInteractionOn: ["sd-blur", "sd-3-
|
|
35
|
+
assumeInteractionOn: ["sd-blur", "sd-3-5-0-input"]
|
|
36
36
|
});
|
|
37
37
|
this.hasSlotController = new HasSlotController(this, "help-text", "label");
|
|
38
38
|
this.localize = new LocalizeController(this);
|
|
@@ -63,11 +63,11 @@ let SdSelect = class extends SolidElement {
|
|
|
63
63
|
this.styleOnValid = false;
|
|
64
64
|
this.hoist = false;
|
|
65
65
|
this.getTag = (option) => {
|
|
66
|
-
return html`<sd-3-
|
|
66
|
+
return html`<sd-3-5-0-tag ?disabled="${this.disabled}" part="tag" exportparts="
|
|
67
67
|
base:tag__base,
|
|
68
68
|
content:tag__content,
|
|
69
69
|
removable-indicator:tag__removable-indicator,
|
|
70
|
-
" size="${this.size === "sm" ? "sm" : "lg"}" removable @sd-remove="${(event) => this.handleTagRemove(event, option)}">${option.getTextLabel()}</sd-3-
|
|
70
|
+
" size="${this.size === "sm" ? "sm" : "lg"}" removable @sd-remove="${(event) => this.handleTagRemove(event, option)}">${option.getTextLabel()}</sd-3-5-0-tag>`;
|
|
71
71
|
};
|
|
72
72
|
this.handleDocumentFocusIn = (event) => {
|
|
73
73
|
const path = event.composedPath();
|
|
@@ -78,7 +78,7 @@ let SdSelect = class extends SolidElement {
|
|
|
78
78
|
this.handleDocumentKeyDown = (event) => {
|
|
79
79
|
const target = event.target;
|
|
80
80
|
const isClearButton = target.closest(".select__clear") !== null;
|
|
81
|
-
const isIconButton = target.closest("sd-3-
|
|
81
|
+
const isIconButton = target.closest("sd-3-5-0-icon-button") !== null;
|
|
82
82
|
if (isClearButton || isIconButton) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
@@ -241,7 +241,7 @@ let SdSelect = class extends SolidElement {
|
|
|
241
241
|
}
|
|
242
242
|
handleOptionClick(event) {
|
|
243
243
|
const target = event.target;
|
|
244
|
-
const option = target.closest("sd-3-
|
|
244
|
+
const option = target.closest("sd-3-5-0-option");
|
|
245
245
|
const oldValue = this.value;
|
|
246
246
|
if (option && !option.disabled) {
|
|
247
247
|
if (this.multiple) {
|
|
@@ -266,7 +266,7 @@ let SdSelect = class extends SolidElement {
|
|
|
266
266
|
const allOptions = this.getAllOptions();
|
|
267
267
|
const value = Array.isArray(this.value) ? this.value : [this.value];
|
|
268
268
|
const values = [];
|
|
269
|
-
if (customElements.get("sd-3-
|
|
269
|
+
if (customElements.get("sd-3-5-0-option")) {
|
|
270
270
|
allOptions.forEach((option) => {
|
|
271
271
|
if (this.multiple) {
|
|
272
272
|
option.checkbox = true;
|
|
@@ -275,7 +275,7 @@ let SdSelect = class extends SolidElement {
|
|
|
275
275
|
});
|
|
276
276
|
this.setSelectedOptions(allOptions.filter((el) => value.includes(el.value)));
|
|
277
277
|
} else {
|
|
278
|
-
customElements.whenDefined("sd-3-
|
|
278
|
+
customElements.whenDefined("sd-3-5-0-option").then(() => this.handleDefaultSlotChange());
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
handleTagRemove(event, option) {
|
|
@@ -288,13 +288,13 @@ let SdSelect = class extends SolidElement {
|
|
|
288
288
|
});
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
|
-
// Gets an array of all <sd-3-
|
|
291
|
+
// Gets an array of all <sd-3-5-0-option> elements
|
|
292
292
|
getAllOptions() {
|
|
293
|
-
return [...this.querySelectorAll("sd-3-
|
|
293
|
+
return [...this.querySelectorAll("sd-3-5-0-option")];
|
|
294
294
|
}
|
|
295
|
-
// Gets the first <sd-3-
|
|
295
|
+
// Gets the first <sd-3-5-0-option> element
|
|
296
296
|
getFirstOption() {
|
|
297
|
-
return this.querySelector("sd-3-
|
|
297
|
+
return this.querySelector("sd-3-5-0-option");
|
|
298
298
|
}
|
|
299
299
|
// Sets the current option, which is the option the user is currently interacting with (e.g. via keyboard). Only one
|
|
300
300
|
// option may be "current" at a time.
|
|
@@ -356,7 +356,7 @@ let SdSelect = class extends SolidElement {
|
|
|
356
356
|
const tag = this.getTag(option, index);
|
|
357
357
|
return html`<div @sd-remove="${(e) => this.handleTagRemove(e, option)}">${typeof tag === "string" ? unsafeHTML(tag) : tag}</div>`;
|
|
358
358
|
} else if (index === this.maxOptionsVisible) {
|
|
359
|
-
return html`<sd-3-
|
|
359
|
+
return html`<sd-3-5-0-tag size="${this.size === "sm" ? "sm" : "lg"}" ?disabled="${this.disabled}">+${this.selectedOptions.length - index}</sd-3-5-0-tag>`;
|
|
360
360
|
}
|
|
361
361
|
return html``;
|
|
362
362
|
});
|
|
@@ -372,7 +372,7 @@ let SdSelect = class extends SolidElement {
|
|
|
372
372
|
handleMouseLeave() {
|
|
373
373
|
this.hasHover = false;
|
|
374
374
|
}
|
|
375
|
-
/** Receives incoming event detail from sd-3-
|
|
375
|
+
/** Receives incoming event detail from sd-3-5-0-popup and updates local state for conditional styling. */
|
|
376
376
|
handleCurrentPlacement(e) {
|
|
377
377
|
const incomingPlacement = e.detail;
|
|
378
378
|
if (incomingPlacement) {
|
|
@@ -381,7 +381,7 @@ let SdSelect = class extends SolidElement {
|
|
|
381
381
|
}
|
|
382
382
|
handleUseTagsChange() {
|
|
383
383
|
const allOptions = this.getAllOptions();
|
|
384
|
-
if (customElements.get("sd-3-
|
|
384
|
+
if (customElements.get("sd-3-5-0-option")) {
|
|
385
385
|
allOptions.forEach((option) => {
|
|
386
386
|
option.checkbox = this.multiple;
|
|
387
387
|
});
|
|
@@ -526,7 +526,7 @@ let SdSelect = class extends SolidElement {
|
|
|
526
526
|
default: "border-neutral-800"
|
|
527
527
|
}[selectState],
|
|
528
528
|
this.open && (this.currentPlacement === "bottom" ? "rounded-bl-none rounded-br-none" : "rounded-tl-none rounded-tr-none")
|
|
529
|
-
)}"></div><sd-3-
|
|
529
|
+
)}"></div><sd-3-5-0-popup @sd-current-placement="${this.handleCurrentPlacement}" class="${cx(
|
|
530
530
|
"inline-flex relative w-full",
|
|
531
531
|
this.currentPlacement === "bottom" ? "origin-top" : "origin-bottom"
|
|
532
532
|
)}" placement="${this.placement}" strategy="${this.hoist ? "fixed" : "absolute"}" flip shift sync="width" auto-size="vertical" auto-size-padding="10" exportparts="
|
|
@@ -543,33 +543,33 @@ let SdSelect = class extends SolidElement {
|
|
|
543
543
|
"appearance-none outline-none flex-grow bg-transparent w-full",
|
|
544
544
|
cursorStyles,
|
|
545
545
|
this.multiple && this.useTags && this.value.length > 0 ? "hidden" : ""
|
|
546
|
-
)}" type="text" placeholder="${this.placeholder}" .disabled="${this.disabled}" .value="${this.displayLabel}" autocomplete="off" spellcheck="false" autocapitalize="off" readonly="readonly" aria-controls="listbox" aria-expanded="${this.open ? "true" : "false"}" aria-haspopup="listbox" aria-labelledby="label" aria-disabled="${this.disabled ? "true" : "false"}" aria-describedby="help-text" role="combobox" tabindex="0" @focus="${this.handleFocus}" @blur="${this.handleBlur}"> ${this.multiple && this.useTags ? html`<div part="tags" class="flex-grow flex flex-wrap items-center gap-1">${this.tags}</div>` : ""} <input class="${cx("value-input absolute top-0 left-0 w-full h-full opacity-0 -z-10", cursorStyles)}" type="text" ?disabled="${this.disabled}" ?required="${this.required}" .value="${Array.isArray(this.value) ? this.value.join(", ") : this.value}" tabindex="-1" aria-hidden="true" @focus="${() => this.focus()}" @invalid="${this.handleInvalid}"> ${hasClearIcon ? html`<button part="clear-button" class="${cx("select__clear flex justify-center", iconMarginLeft)}" type="button" aria-label="${this.localize.term("clearEntry")}" @mousedown="${this.handleClearMouseDown}" @click="${this.handleClearClick}" tabindex="-1"><slot name="clear-icon"><sd-3-
|
|
546
|
+
)}" type="text" placeholder="${this.placeholder}" .disabled="${this.disabled}" .value="${this.displayLabel}" autocomplete="off" spellcheck="false" autocapitalize="off" readonly="readonly" aria-controls="listbox" aria-expanded="${this.open ? "true" : "false"}" aria-haspopup="listbox" aria-labelledby="label" aria-disabled="${this.disabled ? "true" : "false"}" aria-describedby="help-text" role="combobox" tabindex="0" @focus="${this.handleFocus}" @blur="${this.handleBlur}"> ${this.multiple && this.useTags ? html`<div part="tags" class="flex-grow flex flex-wrap items-center gap-1">${this.tags}</div>` : ""} <input class="${cx("value-input absolute top-0 left-0 w-full h-full opacity-0 -z-10", cursorStyles)}" type="text" ?disabled="${this.disabled}" ?required="${this.required}" .value="${Array.isArray(this.value) ? this.value.join(", ") : this.value}" tabindex="-1" aria-hidden="true" @focus="${() => this.focus()}" @invalid="${this.handleInvalid}"> ${hasClearIcon ? html`<button part="clear-button" class="${cx("select__clear flex justify-center", iconMarginLeft)}" type="button" aria-label="${this.localize.term("clearEntry")}" @mousedown="${this.handleClearMouseDown}" @click="${this.handleClearClick}" tabindex="-1"><slot name="clear-icon"><sd-3-5-0-icon class="${cx("text-neutral-500", iconSize)}" library="system" name="closing-round"></sd-3-5-0-icon></slot></button>` : ""} ${this.showInvalidStyle ? html`<sd-3-5-0-icon part="invalid-icon" class="${cx(iconMarginLeft, iconSize)}" library="system" name="risk"></sd-3-5-0-icon>` : ""} ${this.styleOnValid && this.showValidStyle ? html`<sd-3-5-0-icon part="valid-icon" class="${cx("flex-shrink-0", iconMarginLeft, iconSize)}" library="system" name="status-check"></sd-3-5-0-icon>` : ""}<slot name="expand-icon" part="expand-icon" class="${cx(
|
|
547
547
|
"inline-flex ml-2 transition-all",
|
|
548
548
|
this.open ? "rotate-180" : "rotate-0",
|
|
549
549
|
this.disabled ? "text-neutral-500" : "text-primary",
|
|
550
550
|
iconSize
|
|
551
|
-
)}"><sd-3-
|
|
551
|
+
)}"><sd-3-5-0-icon name="chevron-down" part="chevron" library="system" color="currentColor"></sd-3-5-0-icon></slot></div><div id="listbox" role="listbox" aria-expanded="${this.open ? "true" : "false"}" aria-multiselectable="${this.multiple ? "true" : "false"}" aria-labelledby="label" part="listbox" class="${cx(
|
|
552
552
|
"bg-white px-2 py-3 relative border-primary",
|
|
553
553
|
this.open && "shadow",
|
|
554
554
|
this.currentPlacement === "bottom" ? "border-r-2 border-b-2 border-l-2 rounded-br-default rounded-bl-default" : "border-r-2 border-t-2 border-l-2 rounded-tr-default rounded-tl-default"
|
|
555
|
-
)}" tabindex="-1" @mouseup="${this.handleOptionClick}" @slotchange="${this.handleDefaultSlotChange}"><slot></slot></div></sd-3-
|
|
555
|
+
)}" tabindex="-1" @mouseup="${this.handleOptionClick}" @slotchange="${this.handleDefaultSlotChange}"><slot></slot></div></sd-3-5-0-popup></div><div class="text-sm text-neutral-700" part="form-control-help-text" id="help-text" aria-hidden="${hasHelpText ? "false" : "true"}"><slot name="help-text">${this.helpText}</slot></div></div>${this.formControlController.renderInvalidMessage()}`;
|
|
556
556
|
}
|
|
557
557
|
};
|
|
558
558
|
SdSelect.dependencies = {
|
|
559
|
-
"sd-3-
|
|
560
|
-
"sd-3-
|
|
561
|
-
"sd-3-
|
|
559
|
+
"sd-3-5-0-icon": SdIcon,
|
|
560
|
+
"sd-3-5-0-popup": SdPopup,
|
|
561
|
+
"sd-3-5-0-tag": SdTag
|
|
562
562
|
};
|
|
563
563
|
SdSelect.styles = [
|
|
564
564
|
componentStyles,
|
|
565
565
|
SolidElement.styles,
|
|
566
|
-
css`:host{position:relative;display:block;width:100%}:host([required]) #label::after{content:' *'}sd-3-
|
|
566
|
+
css`:host{position:relative;display:block;width:100%}:host([required]) #label::after{content:' *'}sd-3-5-0-popup::part(popup){z-index:var(--sd-z-index-dropdown,900);overflow-y:scroll}sd-3-5-0-tag::part(base){border-radius:var(--sd-border-radius-default,.25rem);padding-left:var(--sd-spacing-1,.25rem);padding-right:var(--sd-spacing-1,.25rem)}sd-3-5-0-tag[size=lg]::part(base){padding-left:var(--sd-spacing-2,.5rem);padding-right:var(--sd-spacing-2,.5rem)}sd-3-5-0-tag[disabled=false]::part(base):hover{--tw-bg-opacity:1;background-color:rgb(var(--sd-color-primary-100,236 240 249) / var(--tw-bg-opacity))}`
|
|
567
567
|
];
|
|
568
568
|
__decorateClass([
|
|
569
|
-
queryAssignedElements({ selector: "sd-3-
|
|
569
|
+
queryAssignedElements({ selector: "sd-3-5-0-option" })
|
|
570
570
|
], SdSelect.prototype, "_optionsInDefaultSlot", 2);
|
|
571
571
|
__decorateClass([
|
|
572
|
-
query("sd-3-
|
|
572
|
+
query("sd-3-5-0-popup")
|
|
573
573
|
], SdSelect.prototype, "popup", 2);
|
|
574
574
|
__decorateClass([
|
|
575
575
|
query('[part="combobox"]')
|
|
@@ -688,7 +688,7 @@ __decorateClass([
|
|
|
688
688
|
watch("value", { waitUntilFirstUpdate: true })
|
|
689
689
|
], SdSelect.prototype, "handleValueChange", 1);
|
|
690
690
|
SdSelect = __decorateClass([
|
|
691
|
-
customElement("sd-3-
|
|
691
|
+
customElement("sd-3-5-0-select")
|
|
692
692
|
], SdSelect);
|
|
693
693
|
setDefaultAnimation("select.show", {
|
|
694
694
|
keyframes: [
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import SolidElement from '../../internal/solid-element';
|
|
2
|
+
export default class SdStep extends SolidElement {
|
|
3
|
+
size: 'lg' | 'sm';
|
|
4
|
+
orientation: 'horizontal' | 'vertical';
|
|
5
|
+
disabled: boolean;
|
|
6
|
+
current: boolean;
|
|
7
|
+
noTail: boolean;
|
|
8
|
+
notInteractive: boolean;
|
|
9
|
+
label: string;
|
|
10
|
+
description: string;
|
|
11
|
+
index: number;
|
|
12
|
+
href: string;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
private isLink;
|
|
15
|
+
private handleBlur;
|
|
16
|
+
private handleFocus;
|
|
17
|
+
handleCurrentChange(): void;
|
|
18
|
+
handleDisabledChange(): void;
|
|
19
|
+
handleInteractivityChange(): void;
|
|
20
|
+
render(): import("lit-html").TemplateResult;
|
|
21
|
+
static styles: import("lit").CSSResultGroup[];
|
|
22
|
+
}
|
|
23
|
+
declare global {
|
|
24
|
+
interface HTMLElementTagNameMap {
|
|
25
|
+
'sd-3-5-0-step': SdStep;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { unsafeCSS, css } from "lit";
|
|
2
|
+
import { customElement } from "../../internal/register-custom-element.js";
|
|
3
|
+
import { literal, html } from "lit/static-html.js";
|
|
4
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
5
|
+
import { property } from "lit/decorators.js";
|
|
6
|
+
import { watch } from "../../internal/watch.js";
|
|
7
|
+
import componentStyles from "../../styles/component.styles.js";
|
|
8
|
+
import cx from "classix";
|
|
9
|
+
import ParagraphStyles from "../../styles/paragraph/paragraph.css.js";
|
|
10
|
+
import SolidElement from "../../internal/solid-element.js";
|
|
11
|
+
var __defProp = Object.defineProperty;
|
|
12
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
13
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
14
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
15
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
16
|
+
if (decorator = decorators[i])
|
|
17
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
18
|
+
if (kind && result)
|
|
19
|
+
__defProp(target, key, result);
|
|
20
|
+
return result;
|
|
21
|
+
};
|
|
22
|
+
let SdStep = class extends SolidElement {
|
|
23
|
+
constructor() {
|
|
24
|
+
super(...arguments);
|
|
25
|
+
this.size = "lg";
|
|
26
|
+
this.orientation = "horizontal";
|
|
27
|
+
this.disabled = false;
|
|
28
|
+
this.current = false;
|
|
29
|
+
this.noTail = false;
|
|
30
|
+
this.notInteractive = false;
|
|
31
|
+
this.label = "";
|
|
32
|
+
this.description = "";
|
|
33
|
+
this.index = 1;
|
|
34
|
+
this.href = "";
|
|
35
|
+
}
|
|
36
|
+
connectedCallback() {
|
|
37
|
+
super.connectedCallback();
|
|
38
|
+
}
|
|
39
|
+
isLink() {
|
|
40
|
+
return this.href ? true : false;
|
|
41
|
+
}
|
|
42
|
+
handleBlur() {
|
|
43
|
+
this.emit("sd-blur");
|
|
44
|
+
}
|
|
45
|
+
handleFocus() {
|
|
46
|
+
this.emit("sd-focus");
|
|
47
|
+
}
|
|
48
|
+
handleCurrentChange() {
|
|
49
|
+
if (this.current) {
|
|
50
|
+
this.disabled = false;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
handleDisabledChange() {
|
|
54
|
+
if (this.disabled) {
|
|
55
|
+
this.current = false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
handleInteractivityChange() {
|
|
59
|
+
if (this.notInteractive) {
|
|
60
|
+
this.current = false;
|
|
61
|
+
this.disabled = false;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
render() {
|
|
65
|
+
const isLink = this.isLink();
|
|
66
|
+
const tag = this.notInteractive ? literal`div` : isLink ? literal`a` : literal`button`;
|
|
67
|
+
return html`<div part="base" class="${cx(
|
|
68
|
+
"flex pt-1",
|
|
69
|
+
this.orientation === "horizontal" ? "flex-col w-full" : "flex-row gap-4 items-stretch h-full w-min overflow-hidden",
|
|
70
|
+
!this.disabled && !this.current && !this.notInteractive && "group"
|
|
71
|
+
)}" @focus="${this.handleFocus}" @blur="${this.handleBlur}"><div part="circle-and-tail-container" class="${cx(
|
|
72
|
+
"flex shrink-0 gap-2",
|
|
73
|
+
this.noTail && "w-max",
|
|
74
|
+
this.orientation === "horizontal" ? "flex-row" : "flex-col items-stretch",
|
|
75
|
+
this.orientation === "horizontal" ? this.size === "lg" ? "translateLg" : "translateSm" : this.size === "lg" ? "mt-1" : "mt-3"
|
|
76
|
+
)}"><${tag} part="circle" ?disabled="${this.disabled}" tabindex="${!this.disabled && !this.current ? "0" : "-1"}" href="${ifDefined(isLink ? this.href : void 0)}" aria-current="${this.current ? "step" : void 0}" aria-label="Step ${this.index}" class="${cx(
|
|
77
|
+
"border rounded-full aspect-square circle flex items-center justify-center shrink-0 font-bold select-none",
|
|
78
|
+
!this.disabled && !this.current ? "focus-visible:focus-outline" : "focus-visible:outline-none",
|
|
79
|
+
this.notInteractive ? this.size === "lg" ? "w-[72px]" : "w-12" : this.size === "lg" ? "w-12" : "w-8",
|
|
80
|
+
this.disabled && "border-neutral-400 text-neutral-500",
|
|
81
|
+
!this.disabled && !this.current && !this.notInteractive && "border-primary group-hover:bg-primary-100 group-hover:border-primary-500",
|
|
82
|
+
this.notInteractive ? "border-neutral-400" : "group-hover:cursor-pointer",
|
|
83
|
+
this.current && "bg-accent border-none text-white"
|
|
84
|
+
)}"><slot name="circle-content" class="${cx(
|
|
85
|
+
!this.disabled && !this.current && !this.notInteractive && "text-primary group-hover:text-primary-500 group-hover:fill-primary-500",
|
|
86
|
+
this.notInteractive && "text-primary",
|
|
87
|
+
this.size === "lg" ? "text-lg" : "text-sm"
|
|
88
|
+
)}">${!this.disabled && !this.current && !this.notInteractive ? html`<sd-3-5-0-icon name="status-check" library="system"></sd-3-5-0-icon>` : html`${this.index}`}</slot></${tag}>${this.noTail ? "" : this.orientation === "horizontal" ? html`<sd-3-5-0-divider part="tail" orientation="horizontal" class="${cx(
|
|
89
|
+
"w-full my-auto mr-2",
|
|
90
|
+
!this.disabled && !this.current && !this.notInteractive && "tail-to-primary"
|
|
91
|
+
)}"></sd-3-5-0-divider>` : html`<sd-3-5-0-divider part="tail" orientation="vertical" class="${cx(
|
|
92
|
+
"flex-grow flex-shrink-0 basis-auto h-full w-[1px] mx-auto",
|
|
93
|
+
!this.disabled && !this.current && !this.notInteractive && "tail-to-primary"
|
|
94
|
+
)}"></sd-3-5-0-divider>`}</div><div part="text-container" class="${cx("mt-4 mr-4 break-words flex flex-col gap-2", this.orientation === "horizontal" ? "text-center w-40" : "w-max text-left", this.disabled && "!text-neutral-500")}"><div part="label" class="${cx("!font-bold sd-paragraph", this.disabled && "!text-neutral-500", !this.disabled && !this.current && !this.notInteractive ? "!text-primary group-hover:!text-primary-500 group-hover:cursor-pointer" : "text-black")}"><slot name="label">${this.label}</slot></div><div part="description" class="${cx("sd-paragraph sd-paragraph--size-sm", this.disabled && "!text-neutral-500")}">${this.description || html`<slot></slot>`}</div></div></div>`;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
SdStep.styles = [
|
|
98
|
+
SolidElement.styles,
|
|
99
|
+
componentStyles,
|
|
100
|
+
unsafeCSS(ParagraphStyles),
|
|
101
|
+
css`:host{flex:1 1 0%}[part=base]:not(:has(sd-3-5-0-divider)){height:-moz-max-content;height:max-content}:host([no-tail]){flex-grow:0}.translateLg{transform:translateX(55px)}.translateSm{transform:translateX(64px)}.tail-to-primary::part(main){--tw-border-opacity:1!important;border-color:rgb(var(--sd-color-primary,0 53 142) / var(--tw-border-opacity))!important}.group:hover .tail-to-primary::part(main){--tw-border-opacity:1!important;border-color:rgb(var(--sd-color-primary-500,70 109 175) / var(--tw-border-opacity))!important}sd-3-5-0-divider::part(main){--tw-border-opacity:1!important;border-color:rgb(var(--sd-color-neutral-400,195 195 195) / var(--tw-border-opacity))!important}`
|
|
102
|
+
];
|
|
103
|
+
__decorateClass([
|
|
104
|
+
property({ reflect: true })
|
|
105
|
+
], SdStep.prototype, "size", 2);
|
|
106
|
+
__decorateClass([
|
|
107
|
+
property({ reflect: true })
|
|
108
|
+
], SdStep.prototype, "orientation", 2);
|
|
109
|
+
__decorateClass([
|
|
110
|
+
property({ type: Boolean, reflect: true })
|
|
111
|
+
], SdStep.prototype, "disabled", 2);
|
|
112
|
+
__decorateClass([
|
|
113
|
+
property({ type: Boolean, reflect: true })
|
|
114
|
+
], SdStep.prototype, "current", 2);
|
|
115
|
+
__decorateClass([
|
|
116
|
+
property({ reflect: true, type: Boolean, attribute: "no-tail" })
|
|
117
|
+
], SdStep.prototype, "noTail", 2);
|
|
118
|
+
__decorateClass([
|
|
119
|
+
property({ type: Boolean, reflect: true, attribute: "not-interactive" })
|
|
120
|
+
], SdStep.prototype, "notInteractive", 2);
|
|
121
|
+
__decorateClass([
|
|
122
|
+
property()
|
|
123
|
+
], SdStep.prototype, "label", 2);
|
|
124
|
+
__decorateClass([
|
|
125
|
+
property()
|
|
126
|
+
], SdStep.prototype, "description", 2);
|
|
127
|
+
__decorateClass([
|
|
128
|
+
property({ type: Number, reflect: true, attribute: "index" })
|
|
129
|
+
], SdStep.prototype, "index", 2);
|
|
130
|
+
__decorateClass([
|
|
131
|
+
property()
|
|
132
|
+
], SdStep.prototype, "href", 2);
|
|
133
|
+
__decorateClass([
|
|
134
|
+
watch("current")
|
|
135
|
+
], SdStep.prototype, "handleCurrentChange", 1);
|
|
136
|
+
__decorateClass([
|
|
137
|
+
watch("disabled")
|
|
138
|
+
], SdStep.prototype, "handleDisabledChange", 1);
|
|
139
|
+
__decorateClass([
|
|
140
|
+
watch("notInteractive")
|
|
141
|
+
], SdStep.prototype, "handleInteractivityChange", 1);
|
|
142
|
+
SdStep = __decorateClass([
|
|
143
|
+
customElement("sd-3-5-0-step")
|
|
144
|
+
], SdStep);
|
|
145
|
+
export {
|
|
146
|
+
SdStep as default
|
|
147
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import SolidElement from '../../internal/solid-element';
|
|
2
|
+
export default class SdStepGroup extends SolidElement {
|
|
3
|
+
private steps;
|
|
4
|
+
body: HTMLSlotElement;
|
|
5
|
+
size: 'lg' | 'sm';
|
|
6
|
+
orientation: 'horizontal' | 'vertical';
|
|
7
|
+
activeStep: number;
|
|
8
|
+
notInteractive: boolean;
|
|
9
|
+
connectedCallback(): void;
|
|
10
|
+
updateSize(): void;
|
|
11
|
+
updateOrientation(): void;
|
|
12
|
+
private getAllSteps;
|
|
13
|
+
setActiveStep(index: number): void;
|
|
14
|
+
handleInteractivityChange(): void;
|
|
15
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
16
|
+
static styles: import("lit").CSSResultGroup[];
|
|
17
|
+
}
|
|
18
|
+
declare global {
|
|
19
|
+
interface HTMLElementTagNameMap {
|
|
20
|
+
'sd-3-5-0-step-group': SdStepGroup;
|
|
21
|
+
}
|
|
22
|
+
}
|