@solid-design-system/components 1.35.1 → 1.36.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/radio-button.js +1 -0
- package/dist/components/es/radio-group.js +1 -1
- package/dist/components/es/solid-components2.js +1 -1
- package/dist/components/es/solid-element.js +1 -1
- package/dist/components/umd/solid-components.js +19 -19
- package/dist/custom-elements.json +1 -1
- package/dist/package/components/radio-button/radio-button.d.ts +25 -0
- package/dist/package/components/radio-button/radio-button.js +118 -0
- package/dist/package/components/radio-group/radio-group.js +4 -2
- package/dist/package/solid-components.d.ts +1 -0
- package/dist/package/solid-components.js +20 -18
- 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/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-control.styles.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/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 -0
- package/dist/versioned-components/es/radio-group.js +1 -1
- package/dist/versioned-components/es/radio.js +1 -1
- package/dist/versioned-components/es/select.js +2 -2
- package/dist/versioned-components/es/solid-components2.js +1 -1
- package/dist/versioned-components/es/solid-element.js +1 -1
- package/dist/versioned-components/es/spinner.js +1 -1
- package/dist/versioned-components/es/switch.js +1 -1
- package/dist/versioned-components/es/tag.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 +4 -4
- 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/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/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 +4 -4
- 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/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 +25 -0
- package/dist/versioned-package/components/radio-button/radio-button.js +118 -0
- package/dist/versioned-package/components/radio-group/radio-group.d.ts +2 -2
- package/dist/versioned-package/components/radio-group/radio-group.js +18 -16
- package/dist/versioned-package/components/select/select.d.ts +4 -4
- package/dist/versioned-package/components/select/select.js +28 -28
- 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/switch/switch.d.ts +1 -1
- package/dist/versioned-package/components/switch/switch.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/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 +2 -2
- package/dist/versioned-package/solid-components.d.ts +1 -0
- package/dist/versioned-package/solid-components.js +20 -18
- package/dist/versioned-package/styles/form-control.styles.js +1 -1
- package/dist/versioned-package/styles/tailwind.css.js +1 -1
- package/dist/versioned-styles/solid-styles.css +1 -1
- package/dist/vscode.html-custom-data.json +97 -33
- package/dist/web-types.json +100 -1
- package/package.json +5 -4
|
@@ -64,11 +64,11 @@ let SdHeader = class extends SolidElement {
|
|
|
64
64
|
setCalculatedHeightProperty() {
|
|
65
65
|
if (this.fixed && this.refHeaderElement) {
|
|
66
66
|
document.documentElement.style.setProperty(
|
|
67
|
-
"--sd-1-
|
|
67
|
+
"--sd-1-36-0-header-calculated-height",
|
|
68
68
|
`${this.refHeaderElement.clientHeight}px`
|
|
69
69
|
);
|
|
70
70
|
} else {
|
|
71
|
-
document.documentElement.style.removeProperty("--sd-1-
|
|
71
|
+
document.documentElement.style.removeProperty("--sd-1-36-0-header-calculated-height");
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
74
|
render() {
|
|
@@ -85,7 +85,7 @@ let SdHeader = class extends SolidElement {
|
|
|
85
85
|
SdHeader.styles = [
|
|
86
86
|
SolidElement.styles,
|
|
87
87
|
componentStyles,
|
|
88
|
-
css`:host{display:block}:host([fixed]){position:fixed;left:var(--sd-spacing-0,0);top:var(--sd-spacing-0,0);width:100%}:host([fixed]) header::after{content:'';position:absolute;left:var(--sd-spacing-0,0);right:var(--sd-spacing-0,0);top:100%;height:var(--sd-spacing-2,.5rem);background:var(--gradient-vertical-black-40-transparent,linear-gradient(0deg,#18181800 50%,#18181866 100%))}[part=main]{width:var(--sd-1-
|
|
88
|
+
css`:host{display:block}:host([fixed]){position:fixed;left:var(--sd-spacing-0,0);top:var(--sd-spacing-0,0);width:100%}:host([fixed]) header::after{content:'';position:absolute;left:var(--sd-spacing-0,0);right:var(--sd-spacing-0,0);top:100%;height:var(--sd-spacing-2,.5rem);background:var(--gradient-vertical-black-40-transparent,linear-gradient(0deg,#18181800 50%,#18181866 100%))}[part=main]{width:var(--sd-1-36-0-header-inner-width);max-width:var(--sd-1-36-0-header-inner-max-width);padding:var(--sd-1-36-0-header-padding,12px 16px)}`
|
|
89
89
|
];
|
|
90
90
|
__decorateClass([
|
|
91
91
|
property({ reflect: true, type: Boolean })
|
|
@@ -94,7 +94,7 @@ __decorateClass([
|
|
|
94
94
|
debounce(100)
|
|
95
95
|
], SdHeader.prototype, "onResize", 1);
|
|
96
96
|
SdHeader = __decorateClass([
|
|
97
|
-
customElement("sd-1-
|
|
97
|
+
customElement("sd-1-36-0-header")
|
|
98
98
|
], SdHeader);
|
|
99
99
|
export {
|
|
100
100
|
SdHeader as default
|
|
@@ -101,7 +101,7 @@ let SdInput = class extends SolidElement {
|
|
|
101
101
|
handleClearClick(event) {
|
|
102
102
|
this.value = "";
|
|
103
103
|
this.emit("sd-clear");
|
|
104
|
-
this.emit("sd-1-
|
|
104
|
+
this.emit("sd-1-36-0-input");
|
|
105
105
|
this.emit("sd-change");
|
|
106
106
|
this.input.focus();
|
|
107
107
|
event.stopPropagation();
|
|
@@ -113,7 +113,7 @@ let SdInput = class extends SolidElement {
|
|
|
113
113
|
handleInput() {
|
|
114
114
|
this.value = this.input.value;
|
|
115
115
|
this.formControlController.updateValidity();
|
|
116
|
-
this.emit("sd-1-
|
|
116
|
+
this.emit("sd-1-36-0-input");
|
|
117
117
|
}
|
|
118
118
|
handleInvalid() {
|
|
119
119
|
this.formControlController.setValidity(false);
|
|
@@ -261,7 +261,7 @@ let SdInput = class extends SolidElement {
|
|
|
261
261
|
"min-w-0 flex-grow focus:outline-none bg-transparent placeholder-neutral-700",
|
|
262
262
|
this.size === "sm" ? "h-6" : "h-8",
|
|
263
263
|
textSize
|
|
264
|
-
)}" type="${this.type === "password" && this.passwordVisible ? "text" : this.type}" title="${this.title}" name="${ifDefined(this.name)}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" ?required="${this.required}" placeholder="${ifDefined(this.placeholder)}" minlength="${ifDefined(this.minlength)}" maxlength="${ifDefined(this.maxlength)}" min="${ifDefined(this.min)}" max="${ifDefined(this.max)}" step="${ifDefined(this.step)}" .value="${live(this.value)}" autocapitalize="${ifDefined(this.type === "password" ? "off" : this.autocapitalize)}" autocomplete="${ifDefined(this.type === "password" ? "off" : this.autocomplete)}" autocorrect="${ifDefined(this.type === "password" ? "off" : this.autocorrect)}" ?autofocus="${this.autofocus}" spellcheck="${this.spellcheck}" pattern="${ifDefined(this.pattern)}" enterkeyhint="${ifDefined(this.enterkeyhint)}" inputmode="${ifDefined(this.inputmode)}" aria-describedby="help-text" @change="${this.handleChange}" @input="${this.handleInput}" @invalid="${this.handleInvalid}" @keydown="${this.handleKeyDown}" @focus="${this.handleFocus}" @blur="${this.handleBlur}"> ${hasClearIcon ? html`<button part="clear-button" class="${cx("flex justify-center ", iconMarginLeft)}" type="button" aria-label="${this.localize.term("clearEntry")}" @click="${this.handleClearClick}" tabindex="-1"><slot name="clear-icon"><sd-1-
|
|
264
|
+
)}" type="${this.type === "password" && this.passwordVisible ? "text" : this.type}" title="${this.title}" name="${ifDefined(this.name)}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" ?required="${this.required}" placeholder="${ifDefined(this.placeholder)}" minlength="${ifDefined(this.minlength)}" maxlength="${ifDefined(this.maxlength)}" min="${ifDefined(this.min)}" max="${ifDefined(this.max)}" step="${ifDefined(this.step)}" .value="${live(this.value)}" autocapitalize="${ifDefined(this.type === "password" ? "off" : this.autocapitalize)}" autocomplete="${ifDefined(this.type === "password" ? "off" : this.autocomplete)}" autocorrect="${ifDefined(this.type === "password" ? "off" : this.autocorrect)}" ?autofocus="${this.autofocus}" spellcheck="${this.spellcheck}" pattern="${ifDefined(this.pattern)}" enterkeyhint="${ifDefined(this.enterkeyhint)}" inputmode="${ifDefined(this.inputmode)}" aria-describedby="help-text" @change="${this.handleChange}" @input="${this.handleInput}" @invalid="${this.handleInvalid}" @keydown="${this.handleKeyDown}" @focus="${this.handleFocus}" @blur="${this.handleBlur}"> ${hasClearIcon ? html`<button part="clear-button" class="${cx("flex justify-center ", iconMarginLeft)}" type="button" aria-label="${this.localize.term("clearEntry")}" @click="${this.handleClearClick}" tabindex="-1"><slot name="clear-icon"><sd-1-36-0-icon class="${cx("text-neutral-500", iconSize)}" library="system" name="closing-round"></sd-1-36-0-icon></slot></button>` : ""} ${this.passwordToggle && this.type === "password" ? html`<button aria-label="${this.localize.term(this.passwordVisible ? "hidePassword" : "showPassword")}" part="password-toggle-button" class="flex items-center" type="button" @click="${this.handlePasswordToggle}" tabindex="-1">${this.passwordVisible ? html`<slot name="show-password-icon"><sd-1-36-0-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="eye"></sd-1-36-0-icon></slot>` : html`<slot name="hide-password-icon"><sd-1-36-0-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="eye-crossed-out"></sd-1-36-0-icon></slot>`}</button>` : ""} ${(this.type === "date" || this.type === "datetime-local") && !isFirefox ? html`<sd-1-36-0-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="calendar"></sd-1-36-0-icon>` : ""} ${this.type === "time" ? html`<sd-1-36-0-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="clock"></sd-1-36-0-icon>` : ""} ${isInvalid ? html`<sd-1-36-0-icon class="${cx("text-error", iconMarginLeft, iconSize)}" library="system" name="risk"></sd-1-36-0-icon>` : ""} ${isValid ? html`<sd-1-36-0-icon class="${cx("text-success", iconMarginLeft, iconSize)}" library="system" name="confirm"></sd-1-36-0-icon>` : ""} ${slots["right"] ? html`<slot name="right" part="right" class="${cx("inline-flex", iconColor, iconMarginLeft, iconSize)}"></slot>` : ""}</div></div><slot name="help-text" part="form-control-help-text" id="help-text" class="${cx("text-sm text-neutral-700", hasHelpText ? "block" : "hidden")}" aria-hidden="${hasHelpText ? "false" : "true"}">${this.helpText}</slot></div>`;
|
|
265
265
|
}
|
|
266
266
|
};
|
|
267
267
|
SdInput.styles = [
|
|
@@ -383,7 +383,7 @@ __decorateClass([
|
|
|
383
383
|
watch("value", { waitUntilFirstUpdate: true })
|
|
384
384
|
], SdInput.prototype, "handleValueChange", 1);
|
|
385
385
|
SdInput = __decorateClass([
|
|
386
|
-
customElement("sd-1-
|
|
386
|
+
customElement("sd-1-36-0-input")
|
|
387
387
|
], SdInput);
|
|
388
388
|
export {
|
|
389
389
|
SdInput as default
|
|
@@ -77,7 +77,7 @@ let SdLink = class extends SolidElement {
|
|
|
77
77
|
};
|
|
78
78
|
SdLink.styles = [
|
|
79
79
|
SolidElement.styles,
|
|
80
|
-
css`::slotted(sd-1-
|
|
80
|
+
css`::slotted(sd-1-36-0-icon){font-size:1.25em;margin-bottom:-.25em}:host([size=sm][standalone]) ::slotted(sd-1-36-0-icon){font-size:var(--sd-font-size-base,1rem)}:host([size=lg][standalone]) ::slotted(sd-1-36-0-icon){font-size:var(--sd-font-size-xl,1.5rem)}`
|
|
81
81
|
];
|
|
82
82
|
__decorateClass([
|
|
83
83
|
query("a")
|
|
@@ -101,7 +101,7 @@ __decorateClass([
|
|
|
101
101
|
property()
|
|
102
102
|
], SdLink.prototype, "download", 2);
|
|
103
103
|
SdLink = __decorateClass([
|
|
104
|
-
customElement("sd-1-
|
|
104
|
+
customElement("sd-1-36-0-link")
|
|
105
105
|
], SdLink);
|
|
106
106
|
export {
|
|
107
107
|
SdLink as default
|
|
@@ -105,10 +105,10 @@ let SdNavigationItem = class extends SolidElement {
|
|
|
105
105
|
isAccordion ? "grow" : "w-full",
|
|
106
106
|
slots["description"] ? "pb-1" : horizontalPaddingBottom,
|
|
107
107
|
this.calculatePaddingX()
|
|
108
|
-
)}">${this.divider && this.vertical ? html`<sd-1-
|
|
108
|
+
)}">${this.divider && this.vertical ? html`<sd-1-36-0-divider part="divider" class="${cx("w-full transition-all absolute -top-[1px] left-0", this.calculatePaddingX())}"></sd-1-36-0-divider>` : ""} <span class="inline-flex items-center flex-auto"><slot part="content" class="inline"></slot></span>${(this.chevron || slots["children"]) && this.vertical ? html`<sd-1-36-0-icon name="chevron-down" part="chevron" library="system" color="currentColor" class="${cx(
|
|
109
109
|
"h-6 w-6 ml-2 transition-all",
|
|
110
110
|
isAccordion ? this.open ? "rotate-180" : "rotate-0" : "rotate-[270deg]"
|
|
111
|
-
)}"></sd-1-
|
|
111
|
+
)}"></sd-1-36-0-icon>` : ""} </span>${slots["description"] && this.vertical ? html`<slot name="description" part="description" class="${cx(
|
|
112
112
|
"inline-block text-sm text-left text-black",
|
|
113
113
|
isAccordion ? "grow" : "w-full",
|
|
114
114
|
horizontalPaddingBottom,
|
|
@@ -159,7 +159,7 @@ __decorateClass([
|
|
|
159
159
|
property({ type: Boolean, reflect: true })
|
|
160
160
|
], SdNavigationItem.prototype, "open", 2);
|
|
161
161
|
SdNavigationItem = __decorateClass([
|
|
162
|
-
customElement("sd-1-
|
|
162
|
+
customElement("sd-1-36-0-navigation-item")
|
|
163
163
|
], SdNavigationItem);
|
|
164
164
|
export {
|
|
165
165
|
SdNavigationItem as default
|
|
@@ -129,7 +129,7 @@ let SdNotification = class extends SolidElement {
|
|
|
129
129
|
() => {
|
|
130
130
|
toastStack.removeChild(this);
|
|
131
131
|
resolve();
|
|
132
|
-
if (toastStack.querySelector("sd-1-
|
|
132
|
+
if (toastStack.querySelector("sd-1-36-0-notification") === null) {
|
|
133
133
|
toastStack.remove();
|
|
134
134
|
}
|
|
135
135
|
},
|
|
@@ -146,15 +146,15 @@ let SdNotification = class extends SolidElement {
|
|
|
146
146
|
warning: "bg-warning",
|
|
147
147
|
error: "bg-error"
|
|
148
148
|
}[this.variant]
|
|
149
|
-
)}"><sd-1-
|
|
149
|
+
)}"><sd-1-36-0-icon name="${{
|
|
150
150
|
info: "info-circle",
|
|
151
151
|
success: "confirm-circle",
|
|
152
152
|
warning: "exclamation-circle",
|
|
153
153
|
error: "warning"
|
|
154
|
-
}[this.variant] || ""}" library="system" class="h-6 w-6 text-white"></sd-1-
|
|
154
|
+
}[this.variant] || ""}" library="system" class="h-6 w-6 text-white"></sd-1-36-0-icon></slot><div part="content" class="${cx(
|
|
155
155
|
"h-full w-full p-1 gap-2 flex items-center justify-stretch bg-white",
|
|
156
156
|
"border-solid border-[1px] border-l-0 border-neutral-400"
|
|
157
|
-
)}"><slot part="message" class="block w-full pl-3 py-2" aria-live="polite"></slot>${this.closable ? html`<sd-1-
|
|
157
|
+
)}"><slot part="message" class="block w-full pl-3 py-2" aria-live="polite"></slot>${this.closable ? html`<sd-1-36-0-button size="md" variant="tertiary" part="close-button" class="ml-auto flex flex-[0_0_auto] items-stretch" label="${this.localize.term("close")}" @click="${this.handleCloseClick}"><sd-1-36-0-icon name="close" library="system" color="currentColor"></sd-1-36-0-icon></sd-1-36-0-button>` : ""}</div>${this.durationIndicator ? html`<div part="duration-indicator__elapsed" id="duration-indicator__elapsed" style="${`animation-duration: ${this.duration}ms`}" class="${cx(`absolute w-0 h-[2px] bottom-0 bg-primary z-10 animate-grow`)}"></div><div part="duration-indicator__total" class="w-full h-[2px] bottom-0 absolute bg-neutral-400"></div>` : ""}</div>`;
|
|
158
158
|
}
|
|
159
159
|
};
|
|
160
160
|
SdNotification.styles = [
|
|
@@ -190,7 +190,7 @@ __decorateClass([
|
|
|
190
190
|
watch("duration")
|
|
191
191
|
], SdNotification.prototype, "handleDurationChange", 1);
|
|
192
192
|
SdNotification = __decorateClass([
|
|
193
|
-
customElement("sd-1-
|
|
193
|
+
customElement("sd-1-36-0-notification")
|
|
194
194
|
], SdNotification);
|
|
195
195
|
setDefaultAnimation("notification.show", {
|
|
196
196
|
keyframes: [
|
|
@@ -95,7 +95,7 @@ let SdOption = class extends SolidElement {
|
|
|
95
95
|
)}"></span> ${this.checkbox ? html`<span id="control" part="control ${this.selected ? " control--checked" : "control--unchecked"}" class="${cx(
|
|
96
96
|
"relative flex flex-initial items-center justify-center border rounded-sm h-4 w-4 mr-2",
|
|
97
97
|
this.disabled ? "border-neutral-500" : this.selected ? "bg-accent border-accent" : "border-neutral-800"
|
|
98
|
-
)}">${this.selected ? html`<sd-1-
|
|
98
|
+
)}">${this.selected ? html`<sd-1-36-0-icon part="checked-icon" class="text-white w-3 h-3" library="system" name="status-hook"></sd-1-36-0-icon>` : ""}</span>` : ""} ${slots["left"] ? html`<slot name="left" part="left" class="inline-flex mr-2"></slot>` : ""}<slot part="label" class="inline-block flex-grow" @slotchange="${this.handleDefaultSlotChange}"></slot>${slots["right"] ? html`<slot name="right" part="right" class="inline-flex ml-2"></slot>` : ""}</div>`;
|
|
99
99
|
}
|
|
100
100
|
};
|
|
101
101
|
SdOption.styles = [
|
|
@@ -138,7 +138,7 @@ __decorateClass([
|
|
|
138
138
|
watch("value")
|
|
139
139
|
], SdOption.prototype, "handleValueChange", 1);
|
|
140
140
|
SdOption = __decorateClass([
|
|
141
|
-
customElement("sd-1-
|
|
141
|
+
customElement("sd-1-36-0-option")
|
|
142
142
|
], SdOption);
|
|
143
143
|
export {
|
|
144
144
|
SdOption as default
|
|
@@ -329,7 +329,7 @@ __decorateClass([
|
|
|
329
329
|
property({ attribute: "auto-size-padding", type: Number })
|
|
330
330
|
], SdPopup.prototype, "autoSizePadding", 2);
|
|
331
331
|
SdPopup = __decorateClass([
|
|
332
|
-
customElement("sd-1-
|
|
332
|
+
customElement("sd-1-36-0-popup")
|
|
333
333
|
], SdPopup);
|
|
334
334
|
export {
|
|
335
335
|
SdPopup as default
|
|
@@ -73,7 +73,7 @@ let SdRadio = class extends SolidElement {
|
|
|
73
73
|
}
|
|
74
74
|
render() {
|
|
75
75
|
return html`<span part="base" class="${cx(
|
|
76
|
-
"sd-1-
|
|
76
|
+
"sd-1-36-0-radio group inline-flex items-start items-center text-base leading-normal text-black cursor-pointer align-middle",
|
|
77
77
|
this.disabled && "hover:cursor-not-allowed",
|
|
78
78
|
{
|
|
79
79
|
/* sizes, fonts */
|
|
@@ -121,7 +121,7 @@ __decorateClass([
|
|
|
121
121
|
watch("disabled", { waitUntilFirstUpdate: true })
|
|
122
122
|
], SdRadio.prototype, "handleDisabledChange", 1);
|
|
123
123
|
SdRadio = __decorateClass([
|
|
124
|
-
customElement("sd-1-
|
|
124
|
+
customElement("sd-1-36-0-radio")
|
|
125
125
|
], SdRadio);
|
|
126
126
|
export {
|
|
127
127
|
SdRadio as default
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import SolidElement from '../../internal/solid-element';
|
|
2
|
+
export default class SdRadioButton extends SolidElement {
|
|
3
|
+
private readonly hasSlotController;
|
|
4
|
+
input: HTMLInputElement;
|
|
5
|
+
hiddenInput: HTMLInputElement;
|
|
6
|
+
protected hasFocus: boolean;
|
|
7
|
+
checked: boolean;
|
|
8
|
+
value: string;
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
size: 'lg' | 'md' | 'sm';
|
|
11
|
+
connectedCallback(): void;
|
|
12
|
+
private handleBlur;
|
|
13
|
+
private handleClick;
|
|
14
|
+
private handleFocus;
|
|
15
|
+
handleDisabledChange(): void;
|
|
16
|
+
focus(options?: FocusOptions): void;
|
|
17
|
+
blur(): void;
|
|
18
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
19
|
+
static styles: import("lit").CSSResultGroup[];
|
|
20
|
+
}
|
|
21
|
+
declare global {
|
|
22
|
+
interface HTMLElementTagNameMap {
|
|
23
|
+
'sd-1-36-0-radio-button': SdRadioButton;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { css, html } from "lit";
|
|
2
|
+
import { customElement } from "../../internal/register-custom-element.js";
|
|
3
|
+
import { HasSlotController } from "../../internal/slot.js";
|
|
4
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
5
|
+
import { query, state, 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 SolidElement from "../../internal/solid-element.js";
|
|
10
|
+
var __defProp = Object.defineProperty;
|
|
11
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
12
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
13
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
14
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
15
|
+
if (decorator = decorators[i])
|
|
16
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
17
|
+
if (kind && result)
|
|
18
|
+
__defProp(target, key, result);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
21
|
+
let SdRadioButton = class extends SolidElement {
|
|
22
|
+
constructor() {
|
|
23
|
+
super(...arguments);
|
|
24
|
+
this.hasSlotController = new HasSlotController(this, "[default]", "icon");
|
|
25
|
+
this.hasFocus = false;
|
|
26
|
+
this.checked = false;
|
|
27
|
+
this.disabled = false;
|
|
28
|
+
this.size = "lg";
|
|
29
|
+
}
|
|
30
|
+
connectedCallback() {
|
|
31
|
+
super.connectedCallback();
|
|
32
|
+
this.setAttribute("role", "presentation");
|
|
33
|
+
}
|
|
34
|
+
handleBlur() {
|
|
35
|
+
this.hasFocus = false;
|
|
36
|
+
this.emit("sd-blur");
|
|
37
|
+
}
|
|
38
|
+
handleClick(e) {
|
|
39
|
+
if (this.disabled) {
|
|
40
|
+
e.preventDefault();
|
|
41
|
+
e.stopPropagation();
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
this.checked = true;
|
|
45
|
+
}
|
|
46
|
+
handleFocus() {
|
|
47
|
+
this.hasFocus = true;
|
|
48
|
+
this.emit("sd-focus");
|
|
49
|
+
}
|
|
50
|
+
handleDisabledChange() {
|
|
51
|
+
this.setAttribute("aria-disabled", this.disabled ? "true" : "false");
|
|
52
|
+
}
|
|
53
|
+
/** Sets focus on the radio button. */
|
|
54
|
+
focus(options) {
|
|
55
|
+
this.input.focus(options);
|
|
56
|
+
}
|
|
57
|
+
/** Removes focus from the radio button. */
|
|
58
|
+
blur() {
|
|
59
|
+
this.input.blur();
|
|
60
|
+
}
|
|
61
|
+
render() {
|
|
62
|
+
const hasDefaultSlot = this.hasSlotController.test("[default]");
|
|
63
|
+
const hasIconSlot = this.hasSlotController.test("icon");
|
|
64
|
+
const buttonSizeClass = `${this.size}-${hasDefaultSlot ? "label" : "no-label"}`;
|
|
65
|
+
return html`<div part="base" role="presentation" class="relative"><button part="${`button${this.checked ? " button--checked" : ""}`}" role="radio" aria-checked="${this.checked}" class="${cx(
|
|
66
|
+
"relative text-center border rounded-default transition-all ease-in-out duration-100 items-center justify-center focus-visible:focus-outline",
|
|
67
|
+
this.size === "sm" ? "text-sm" : "text-base",
|
|
68
|
+
this.checked && !this.disabled ? "bg-primary border-primary text-white hover:bg-primary-500 hover:border-primary-500" : this.disabled && !this.checked ? "border-neutral-500 text-neutral-500 hover:cursor-not-allowed" : this.disabled && this.checked ? "bg-neutral-500 text-white hover:cursor-not-allowed" : "bg-transparent text-primary border-primary hover:bg-primary-100 hover:border-primary-500 hover:text-primary-500 cursor-pointer",
|
|
69
|
+
hasDefaultSlot && "px-4",
|
|
70
|
+
this.hasFocus && "focused-class",
|
|
71
|
+
hasDefaultSlot && "button--has-label",
|
|
72
|
+
hasIconSlot && "button--has-icon flex gap-2",
|
|
73
|
+
buttonSizeClass
|
|
74
|
+
)}" aria-disabled="${this.disabled}" type="button" value="${ifDefined(this.value)}" tabindex="${this.checked ? "0" : "-1"}" @blur="${this.handleBlur}" @focus="${this.handleFocus}" @click="${this.handleClick}"><slot name="icon" part="icon" class="${cx(
|
|
75
|
+
hasIconSlot && "inline-flex relative items-center",
|
|
76
|
+
{
|
|
77
|
+
sm: "text-base",
|
|
78
|
+
md: "text-lg",
|
|
79
|
+
lg: "text-xl"
|
|
80
|
+
}[this.size]
|
|
81
|
+
)}" ?hidden="${!hasIconSlot}"></slot>${hasDefaultSlot ? html`<slot part="label" class="button__label inline-flex relative items-center whitespace-nowrap"></slot>` : null}</button></div>`;
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
SdRadioButton.styles = [
|
|
85
|
+
SolidElement.styles,
|
|
86
|
+
componentStyles,
|
|
87
|
+
css`:host{display:block;width:-moz-min-content;width:min-content}.hidden-input{all:unset;position:absolute;inset:var(--sd-spacing-0,0);z-index:-10;opacity:var(--sd-opacity-0,0);outline-style:dotted;outline-width:1px;outline-color:rgb(var(--sd-color-error,204 25 55) / 1)}.lg-label{height:var(--sd-spacing-12,3rem)}.lg-no-label{height:var(--sd-spacing-12,3rem);width:var(--sd-spacing-12,3rem)}.md-label{height:var(--sd-spacing-10,2.5rem)}.md-no-label{height:var(--sd-spacing-10,2.5rem);width:var(--sd-spacing-10,2.5rem)}.sm-label{height:var(--sd-spacing-8,2rem)}.sm-no-label{height:var(--sd-spacing-8,2rem);width:var(--sd-spacing-8,2rem)}:host(.sd-1-36-0-button-group__button--first:not(.sd-1-36-0-button-group__button--last)) button{border-top-right-radius:var(--sd-border-radius-none,0);border-bottom-right-radius:var(--sd-border-radius-none,0)}:host(.sd-1-36-0-button-group__button--inner) button{border-radius:var(--sd-border-radius-none,0)}:host(.sd-1-36-0-button-group__button--last:not(.sd-1-36-0-button-group__button--first)) button{border-top-left-radius:var(--sd-border-radius-none,0);border-bottom-left-radius:var(--sd-border-radius-none,0)}:host(.sd-1-36-0-button-group__button:not(.sd-1-36-0-button-group__button--first)){margin-inline-start:-1px}:host(.sd-1-36-0-button-group__button--hover){z-index:10}:host(.sd-1-36-0-button-group__button--focus),:host(.sd-1-36-0-button-group__button[checked]){z-index:20}`
|
|
88
|
+
];
|
|
89
|
+
__decorateClass([
|
|
90
|
+
query(".button")
|
|
91
|
+
], SdRadioButton.prototype, "input", 2);
|
|
92
|
+
__decorateClass([
|
|
93
|
+
query(".hidden-input")
|
|
94
|
+
], SdRadioButton.prototype, "hiddenInput", 2);
|
|
95
|
+
__decorateClass([
|
|
96
|
+
state()
|
|
97
|
+
], SdRadioButton.prototype, "hasFocus", 2);
|
|
98
|
+
__decorateClass([
|
|
99
|
+
property({ type: Boolean, reflect: true })
|
|
100
|
+
], SdRadioButton.prototype, "checked", 2);
|
|
101
|
+
__decorateClass([
|
|
102
|
+
property()
|
|
103
|
+
], SdRadioButton.prototype, "value", 2);
|
|
104
|
+
__decorateClass([
|
|
105
|
+
property({ type: Boolean, reflect: true })
|
|
106
|
+
], SdRadioButton.prototype, "disabled", 2);
|
|
107
|
+
__decorateClass([
|
|
108
|
+
property({ reflect: true })
|
|
109
|
+
], SdRadioButton.prototype, "size", 2);
|
|
110
|
+
__decorateClass([
|
|
111
|
+
watch("disabled", { waitUntilFirstUpdate: true })
|
|
112
|
+
], SdRadioButton.prototype, "handleDisabledChange", 1);
|
|
113
|
+
SdRadioButton = __decorateClass([
|
|
114
|
+
customElement("sd-1-36-0-radio-button")
|
|
115
|
+
], SdRadioButton);
|
|
116
|
+
export {
|
|
117
|
+
SdRadioButton as default
|
|
118
|
+
};
|
|
@@ -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-1-
|
|
7
|
+
'sd-1-36-0-button-group': typeof SdButtonGroup;
|
|
8
8
|
};
|
|
9
9
|
protected readonly formControlController: FormControlController;
|
|
10
10
|
private readonly hasSlotController;
|
|
@@ -47,6 +47,6 @@ export default class SdRadioGroup extends SolidElement implements SolidFormContr
|
|
|
47
47
|
}
|
|
48
48
|
declare global {
|
|
49
49
|
interface HTMLElementTagNameMap {
|
|
50
|
-
'sd-1-
|
|
50
|
+
'sd-1-36-0-radio-group': SdRadioGroup;
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -72,10 +72,10 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
72
72
|
this.formControlController.updateValidity();
|
|
73
73
|
}
|
|
74
74
|
getAllRadios() {
|
|
75
|
-
return [...this.querySelectorAll("sd-1-
|
|
75
|
+
return [...this.querySelectorAll("sd-1-36-0-radio, sd-1-36-0-radio-button")];
|
|
76
76
|
}
|
|
77
77
|
handleRadioClick(event) {
|
|
78
|
-
const target = event.target.closest("sd-1-
|
|
78
|
+
const target = event.target.closest("sd-1-36-0-radio, sd-1-36-0-radio-button");
|
|
79
79
|
const radios = this.getAllRadios();
|
|
80
80
|
const oldValue = this.value;
|
|
81
81
|
if (target.disabled) {
|
|
@@ -85,7 +85,7 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
85
85
|
radios.forEach((radio) => radio.checked = radio === target);
|
|
86
86
|
if (this.value !== oldValue) {
|
|
87
87
|
this.emit("sd-change");
|
|
88
|
-
this.emit("sd-1-
|
|
88
|
+
this.emit("sd-1-36-0-input");
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
handleKeyDown(event) {
|
|
@@ -119,7 +119,7 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
119
119
|
}
|
|
120
120
|
if (this.value !== oldValue) {
|
|
121
121
|
this.emit("sd-change");
|
|
122
|
-
this.emit("sd-1-
|
|
122
|
+
this.emit("sd-1-36-0-input");
|
|
123
123
|
}
|
|
124
124
|
event.preventDefault();
|
|
125
125
|
}
|
|
@@ -144,10 +144,12 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
144
144
|
await radio.updateComplete;
|
|
145
145
|
radio.checked = radio.value === this.value;
|
|
146
146
|
radio.size = this.size;
|
|
147
|
-
|
|
147
|
+
if ("invalid" in radio) {
|
|
148
|
+
radio.invalid = this.invalid;
|
|
149
|
+
}
|
|
148
150
|
})
|
|
149
151
|
);
|
|
150
|
-
this.hasButtonGroup = radios.some((radio) => radio.tagName.toLowerCase() === "sd-1-
|
|
152
|
+
this.hasButtonGroup = radios.some((radio) => radio.tagName.toLowerCase() === "sd-1-36-0-radio-button");
|
|
151
153
|
if (!radios.some((radio) => radio.checked)) {
|
|
152
154
|
if (this.hasButtonGroup) {
|
|
153
155
|
const buttonRadio = (_a = radios[0].shadowRoot) == null ? void 0 : _a.querySelector("button");
|
|
@@ -159,26 +161,26 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
159
161
|
}
|
|
160
162
|
}
|
|
161
163
|
if (this.hasButtonGroup) {
|
|
162
|
-
const buttonGroup = (_b = this.shadowRoot) == null ? void 0 : _b.querySelector("sd-1-
|
|
164
|
+
const buttonGroup = (_b = this.shadowRoot) == null ? void 0 : _b.querySelector("sd-1-36-0-button-group");
|
|
163
165
|
if (buttonGroup) {
|
|
164
166
|
buttonGroup.disableRole = true;
|
|
165
167
|
}
|
|
166
168
|
}
|
|
167
169
|
}
|
|
168
170
|
syncRadios() {
|
|
169
|
-
if (customElements.get("sd-1-
|
|
171
|
+
if (customElements.get("sd-1-36-0-radio") && customElements.get("sd-1-36-0-radio-button")) {
|
|
170
172
|
this.syncRadioElements();
|
|
171
173
|
return;
|
|
172
174
|
}
|
|
173
|
-
if (customElements.get("sd-1-
|
|
175
|
+
if (customElements.get("sd-1-36-0-radio")) {
|
|
174
176
|
this.syncRadioElements();
|
|
175
177
|
} else {
|
|
176
|
-
customElements.whenDefined("sd-1-
|
|
178
|
+
customElements.whenDefined("sd-1-36-0-radio").then(() => this.syncRadios());
|
|
177
179
|
}
|
|
178
|
-
if (customElements.get("sd-1-
|
|
180
|
+
if (customElements.get("sd-1-36-0-radio-button")) {
|
|
179
181
|
this.syncRadioElements();
|
|
180
182
|
} else {
|
|
181
|
-
customElements.whenDefined("sd-1-
|
|
183
|
+
customElements.whenDefined("sd-1-36-0-radio-button").then(() => this.syncRadios());
|
|
182
184
|
}
|
|
183
185
|
}
|
|
184
186
|
updateCheckedRadio() {
|
|
@@ -255,14 +257,14 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
255
257
|
vertical: "flex-col",
|
|
256
258
|
horizontal: "flex-row"
|
|
257
259
|
}[this.orientation]
|
|
258
|
-
)}"><div class="sr-only"><div id="error-message" aria-live="assertive">${this.errorText}</div><label><input id="validation-input" type="text" ?required="${this.required}" tabindex="-1" hidden @invalid="${this.handleInvalid}"></label></div>${defaultSlot}</div></fieldset>`;
|
|
260
|
+
)}"><div class="sr-only"><div id="error-message" aria-live="assertive">${this.errorText}</div><label><input id="validation-input" type="text" ?required="${this.required}" tabindex="-1" hidden @invalid="${this.handleInvalid}"></label></div>${this.hasButtonGroup ? html`<sd-1-36-0-button-group part="button-group" exportparts="base:button-group__base" role="presentation">${defaultSlot}</sd-1-36-0-button-group>` : defaultSlot}</div></fieldset>`;
|
|
259
261
|
}
|
|
260
262
|
};
|
|
261
|
-
SdRadioGroup.dependencies = { "sd-1-
|
|
263
|
+
SdRadioGroup.dependencies = { "sd-1-36-0-button-group": SdButtonGroup };
|
|
262
264
|
SdRadioGroup.styles = [
|
|
263
265
|
componentStyles,
|
|
264
266
|
SolidElement.styles,
|
|
265
|
-
css`:host{display:block}:host([orientation=vertical]) ::slotted(sd-1-
|
|
267
|
+
css`:host{display:block}:host([orientation=vertical]) ::slotted(sd-1-36-0-radio){margin-bottom:var(--sd-spacing-2,.5rem);display:flex}:host([orientation=vertical]) ::slotted(sd-1-36-0-radio:last-of-type){margin-bottom:var(--sd-spacing-0,0)}:host([orientation=horizontal]) ::slotted(sd-1-36-0-radio){margin-right:var(--sd-spacing-6,1.5rem)}:host([orientation=horizontal]) ::slotted(sd-1-36-0-radio:last-of-type){margin-right:var(--sd-spacing-0,0)}:host([orientation=horizontal]):host([size=sm]) ::slotted(sd-1-36-0-radio){margin-right:var(--sd-spacing-4,1rem)}:host([orientation=horizontal]):host([size=sm]) ::slotted(sd-1-36-0-radio:last-of-type){margin-right:var(--sd-spacing-0,0)}:host([required]) #label.has-label::after{content:'*';margin-left:var(--sd-spacing-0-5,.125rem)}`
|
|
266
268
|
];
|
|
267
269
|
__decorateClass([
|
|
268
270
|
query("slot:not([name])")
|
|
@@ -313,7 +315,7 @@ __decorateClass([
|
|
|
313
315
|
watch("value")
|
|
314
316
|
], SdRadioGroup.prototype, "handleValueChange", 1);
|
|
315
317
|
SdRadioGroup = __decorateClass([
|
|
316
|
-
customElement("sd-1-
|
|
318
|
+
customElement("sd-1-36-0-radio-group")
|
|
317
319
|
], SdRadioGroup);
|
|
318
320
|
export {
|
|
319
321
|
SdRadioGroup 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-1-
|
|
11
|
-
'sd-1-
|
|
12
|
-
'sd-1-
|
|
10
|
+
'sd-1-36-0-icon': typeof SdIcon;
|
|
11
|
+
'sd-1-36-0-popup': typeof SdPopup;
|
|
12
|
+
'sd-1-36-0-tag': typeof SdTag;
|
|
13
13
|
};
|
|
14
14
|
private readonly formControlController;
|
|
15
15
|
private readonly hasSlotController;
|
|
@@ -96,6 +96,6 @@ export default class SdSelect extends SolidElement implements SolidFormControl {
|
|
|
96
96
|
}
|
|
97
97
|
declare global {
|
|
98
98
|
interface HTMLElementTagNameMap {
|
|
99
|
-
'sd-1-
|
|
99
|
+
'sd-1-36-0-select': SdSelect;
|
|
100
100
|
}
|
|
101
101
|
}
|