@solid-design-system/components 2.12.0 → 3.0.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/custom-elements.json +1 -1
- package/dist/styles/solid-styles.css +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/select.js +3 -3
- package/dist/versioned-components/es/spinner.js +1 -1
- 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 +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/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/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/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 +15 -15
- package/dist/versioned-package/components/select/select.d.ts +4 -4
- package/dist/versioned-package/components/select/select.js +29 -29
- 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/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 +15 -15
- 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 +3 -3
- 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/styles/headline/headline.css.js +1 -1
- package/dist/versioned-styles/solid-styles.css +1 -1
- package/dist/vscode.html-custom-data.json +38 -38
- package/dist/web-types.json +39 -39
- package/package.json +1 -1
|
@@ -129,7 +129,7 @@ let SdNotification = class extends SolidElement {
|
|
|
129
129
|
() => {
|
|
130
130
|
toastStack.removeChild(this);
|
|
131
131
|
resolve();
|
|
132
|
-
if (toastStack.querySelector("sd-
|
|
132
|
+
if (toastStack.querySelector("sd-3-0-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-
|
|
149
|
+
)}"><sd-3-0-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-
|
|
154
|
+
}[this.variant] || ""}" library="system" class="h-6 w-6 text-white"></sd-3-0-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-
|
|
157
|
+
)}"><slot part="message" class="block w-full pl-3 py-2" aria-live="polite"></slot>${this.closable ? html`<sd-3-0-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-3-0-0-icon name="close" library="system" color="currentColor"></sd-3-0-0-icon></sd-3-0-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-
|
|
193
|
+
customElement("sd-3-0-0-notification")
|
|
194
194
|
], SdNotification);
|
|
195
195
|
setDefaultAnimation("notification.show", {
|
|
196
196
|
keyframes: [
|
|
@@ -94,7 +94,7 @@ let SdOption = class extends SolidElement {
|
|
|
94
94
|
)}"></span> ${this.checkbox ? html`<span id="control" part="control ${this.selected ? " control--checked" : "control--unchecked"}" class="${cx(
|
|
95
95
|
"relative flex flex-initial items-center justify-center border rounded-sm h-4 w-4 mr-2",
|
|
96
96
|
this.disabled ? "border-neutral-500" : this.selected ? "bg-accent border-accent" : "border-neutral-800"
|
|
97
|
-
)}">${this.selected ? html`<sd-
|
|
97
|
+
)}">${this.selected ? html`<sd-3-0-0-icon part="checked-icon" class="text-white w-3 h-3" library="system" name="status-hook"></sd-3-0-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>`;
|
|
98
98
|
}
|
|
99
99
|
};
|
|
100
100
|
SdOption.styles = [
|
|
@@ -136,7 +136,7 @@ __decorateClass([
|
|
|
136
136
|
watch("value")
|
|
137
137
|
], SdOption.prototype, "handleValueChange", 1);
|
|
138
138
|
SdOption = __decorateClass([
|
|
139
|
-
customElement("sd-
|
|
139
|
+
customElement("sd-3-0-0-option")
|
|
140
140
|
], SdOption);
|
|
141
141
|
export {
|
|
142
142
|
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-
|
|
332
|
+
customElement("sd-3-0-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-
|
|
76
|
+
"sd-3-0-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-
|
|
124
|
+
customElement("sd-3-0-0-radio")
|
|
125
125
|
], SdRadio);
|
|
126
126
|
export {
|
|
127
127
|
SdRadio as default
|
|
@@ -84,7 +84,7 @@ let SdRadioButton = class extends SolidElement {
|
|
|
84
84
|
SdRadioButton.styles = [
|
|
85
85
|
SolidElement.styles,
|
|
86
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-
|
|
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-3-0-0-button-group__button--first:not(.sd-3-0-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-3-0-0-button-group__button--inner) button{border-radius:var(--sd-border-radius-none,0)}:host(.sd-3-0-0-button-group__button--last:not(.sd-3-0-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-3-0-0-button-group__button:not(.sd-3-0-0-button-group__button--first)){margin-inline-start:-1px}:host(.sd-3-0-0-button-group__button--hover){z-index:10}:host(.sd-3-0-0-button-group__button--focus),:host(.sd-3-0-0-button-group__button[checked]){z-index:20}`
|
|
88
88
|
];
|
|
89
89
|
__decorateClass([
|
|
90
90
|
query(".button")
|
|
@@ -111,7 +111,7 @@ __decorateClass([
|
|
|
111
111
|
watch("disabled", { waitUntilFirstUpdate: true })
|
|
112
112
|
], SdRadioButton.prototype, "handleDisabledChange", 1);
|
|
113
113
|
SdRadioButton = __decorateClass([
|
|
114
|
-
customElement("sd-
|
|
114
|
+
customElement("sd-3-0-0-radio-button")
|
|
115
115
|
], SdRadioButton);
|
|
116
116
|
export {
|
|
117
117
|
SdRadioButton as default
|
|
@@ -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-
|
|
7
|
+
'sd-3-0-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-
|
|
51
|
+
'sd-3-0-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-
|
|
71
|
+
return [...this.querySelectorAll("sd-3-0-0-radio, sd-3-0-0-radio-button")];
|
|
72
72
|
}
|
|
73
73
|
handleRadioClick(event) {
|
|
74
|
-
const target = event.target.closest("sd-
|
|
74
|
+
const target = event.target.closest("sd-3-0-0-radio, sd-3-0-0-radio-button");
|
|
75
75
|
const radios = this.getAllRadios();
|
|
76
76
|
const oldValue = this.value;
|
|
77
77
|
if (target.disabled) {
|
|
@@ -81,7 +81,7 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
81
81
|
radios.forEach((radio) => radio.checked = radio === target);
|
|
82
82
|
if (this.value !== oldValue) {
|
|
83
83
|
this.emit("sd-change");
|
|
84
|
-
this.emit("sd-
|
|
84
|
+
this.emit("sd-3-0-0-input");
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
handleKeyDown(event) {
|
|
@@ -115,7 +115,7 @@ let SdRadioGroup = class extends SolidElement {
|
|
|
115
115
|
}
|
|
116
116
|
if (this.value !== oldValue) {
|
|
117
117
|
this.emit("sd-change");
|
|
118
|
-
this.emit("sd-
|
|
118
|
+
this.emit("sd-3-0-0-input");
|
|
119
119
|
}
|
|
120
120
|
event.preventDefault();
|
|
121
121
|
}
|
|
@@ -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-
|
|
150
|
+
this.hasButtonGroup = radios.some((radio) => radio.tagName.toLowerCase() === "sd-3-0-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-
|
|
162
|
+
const buttonGroup = (_b = this.shadowRoot) == null ? void 0 : _b.querySelector("sd-3-0-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-
|
|
169
|
+
if (customElements.get("sd-3-0-0-radio") && customElements.get("sd-3-0-0-radio-button")) {
|
|
170
170
|
this.syncRadioElements();
|
|
171
171
|
return;
|
|
172
172
|
}
|
|
173
|
-
if (customElements.get("sd-
|
|
173
|
+
if (customElements.get("sd-3-0-0-radio")) {
|
|
174
174
|
this.syncRadioElements();
|
|
175
175
|
} else {
|
|
176
|
-
customElements.whenDefined("sd-
|
|
176
|
+
customElements.whenDefined("sd-3-0-0-radio").then(() => this.syncRadios());
|
|
177
177
|
}
|
|
178
|
-
if (customElements.get("sd-
|
|
178
|
+
if (customElements.get("sd-3-0-0-radio-button")) {
|
|
179
179
|
this.syncRadioElements();
|
|
180
180
|
} else {
|
|
181
|
-
customElements.whenDefined("sd-
|
|
181
|
+
customElements.whenDefined("sd-3-0-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-
|
|
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-0-0-button-group part="button-group" exportparts="base:button-group__base" role="presentation">${defaultSlot}</sd-3-0-0-button-group>` : defaultSlot}</div></fieldset>${this.formControlController.renderInvalidMessage()}`;
|
|
257
257
|
}
|
|
258
258
|
};
|
|
259
|
-
SdRadioGroup.dependencies = { "sd-
|
|
259
|
+
SdRadioGroup.dependencies = { "sd-3-0-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-
|
|
263
|
+
css`:host{display:block}:host([orientation=vertical]) ::slotted(sd-3-0-0-radio){margin-bottom:var(--sd-spacing-2,.5rem);display:flex}:host([orientation=vertical]) ::slotted(sd-3-0-0-radio:last-of-type){margin-bottom:var(--sd-spacing-0,0)}:host([orientation=horizontal]) ::slotted(sd-3-0-0-radio){margin-right:var(--sd-spacing-6,1.5rem)}:host([orientation=horizontal]) ::slotted(sd-3-0-0-radio:last-of-type){margin-right:var(--sd-spacing-0,0)}:host([orientation=horizontal]):host([size=sm]) ::slotted(sd-3-0-0-radio){margin-right:var(--sd-spacing-4,1rem)}:host([orientation=horizontal]):host([size=sm]) ::slotted(sd-3-0-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-
|
|
317
|
+
customElement("sd-3-0-0-radio-group")
|
|
318
318
|
], SdRadioGroup);
|
|
319
319
|
export {
|
|
320
320
|
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-
|
|
11
|
-
'sd-
|
|
12
|
-
'sd-
|
|
10
|
+
'sd-3-0-0-icon': typeof SdIcon;
|
|
11
|
+
'sd-3-0-0-popup': typeof SdPopup;
|
|
12
|
+
'sd-3-0-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-
|
|
100
|
+
'sd-3-0-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-
|
|
35
|
+
assumeInteractionOn: ["sd-blur", "sd-3-0-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-
|
|
66
|
+
return html`<sd-3-0-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-
|
|
70
|
+
" size="${this.size === "sm" ? "sm" : "lg"}" removable @sd-remove="${(event) => this.handleTagRemove(event, option)}">${option.getTextLabel()}</sd-3-0-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-
|
|
81
|
+
const isIconButton = target.closest("sd-3-0-0-icon-button") !== null;
|
|
82
82
|
if (isClearButton || isIconButton) {
|
|
83
83
|
return;
|
|
84
84
|
}
|
|
@@ -102,7 +102,7 @@ let SdSelect = class extends SolidElement {
|
|
|
102
102
|
this.setSelectedOptions(this.currentOption);
|
|
103
103
|
}
|
|
104
104
|
this.updateComplete.then(() => {
|
|
105
|
-
this.emit("sd-
|
|
105
|
+
this.emit("sd-3-0-0-input");
|
|
106
106
|
this.emit("sd-change");
|
|
107
107
|
});
|
|
108
108
|
if (!this.multiple) {
|
|
@@ -230,7 +230,7 @@ let SdSelect = class extends SolidElement {
|
|
|
230
230
|
this.displayInput.focus({ preventScroll: true });
|
|
231
231
|
this.updateComplete.then(() => {
|
|
232
232
|
this.emit("sd-clear");
|
|
233
|
-
this.emit("sd-
|
|
233
|
+
this.emit("sd-3-0-0-input");
|
|
234
234
|
this.emit("sd-change");
|
|
235
235
|
});
|
|
236
236
|
}
|
|
@@ -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-
|
|
244
|
+
const option = target.closest("sd-3-0-0-option");
|
|
245
245
|
const oldValue = this.value;
|
|
246
246
|
if (option && !option.disabled) {
|
|
247
247
|
if (this.multiple) {
|
|
@@ -252,7 +252,7 @@ let SdSelect = class extends SolidElement {
|
|
|
252
252
|
this.updateComplete.then(() => this.displayInput.focus({ preventScroll: true }));
|
|
253
253
|
if (this.value !== oldValue) {
|
|
254
254
|
this.updateComplete.then(() => {
|
|
255
|
-
this.emit("sd-
|
|
255
|
+
this.emit("sd-3-0-0-input");
|
|
256
256
|
this.emit("sd-change");
|
|
257
257
|
});
|
|
258
258
|
}
|
|
@@ -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-
|
|
269
|
+
if (customElements.get("sd-3-0-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-
|
|
278
|
+
customElements.whenDefined("sd-3-0-0-option").then(() => this.handleDefaultSlotChange());
|
|
279
279
|
}
|
|
280
280
|
}
|
|
281
281
|
handleTagRemove(event, option) {
|
|
@@ -283,18 +283,18 @@ let SdSelect = class extends SolidElement {
|
|
|
283
283
|
if (!this.disabled) {
|
|
284
284
|
this.toggleOptionSelection(option, false);
|
|
285
285
|
this.updateComplete.then(() => {
|
|
286
|
-
this.emit("sd-
|
|
286
|
+
this.emit("sd-3-0-0-input");
|
|
287
287
|
this.emit("sd-change");
|
|
288
288
|
});
|
|
289
289
|
}
|
|
290
290
|
}
|
|
291
|
-
// Gets an array of all <sd-
|
|
291
|
+
// Gets an array of all <sd-3-0-0-option> elements
|
|
292
292
|
getAllOptions() {
|
|
293
|
-
return [...this.querySelectorAll("sd-
|
|
293
|
+
return [...this.querySelectorAll("sd-3-0-0-option")];
|
|
294
294
|
}
|
|
295
|
-
// Gets the first <sd-
|
|
295
|
+
// Gets the first <sd-3-0-0-option> element
|
|
296
296
|
getFirstOption() {
|
|
297
|
-
return this.querySelector("sd-
|
|
297
|
+
return this.querySelector("sd-3-0-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-
|
|
359
|
+
return html`<sd-3-0-0-tag size="${this.size === "sm" ? "sm" : "lg"}" ?disabled="${this.disabled}">+${this.selectedOptions.length - index}</sd-3-0-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-
|
|
375
|
+
/** Receives incoming event detail from sd-3-0-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-
|
|
384
|
+
if (customElements.get("sd-3-0-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-
|
|
529
|
+
)}"></div><sd-3-0-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-
|
|
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-0-0-icon class="${cx("text-neutral-500", iconSize)}" library="system" name="closing-round"></sd-3-0-0-icon></slot></button>` : ""} ${this.showInvalidStyle ? html`<sd-3-0-0-icon part="invalid-icon" class="${cx(iconMarginLeft, iconSize)}" library="system" name="risk"></sd-3-0-0-icon>` : ""} ${this.styleOnValid && this.showValidStyle ? html`<sd-3-0-0-icon part="valid-icon" class="${cx("flex-shrink-0", iconMarginLeft, iconSize)}" library="system" name="confirm"></sd-3-0-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-
|
|
551
|
+
)}"><sd-3-0-0-icon name="chevron-down" part="chevron" library="system" color="currentColor"></sd-3-0-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-
|
|
555
|
+
)}" tabindex="-1" @mouseup="${this.handleOptionClick}" @slotchange="${this.handleDefaultSlotChange}"><slot></slot></div></sd-3-0-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-
|
|
560
|
-
"sd-
|
|
561
|
-
"sd-
|
|
559
|
+
"sd-3-0-0-icon": SdIcon,
|
|
560
|
+
"sd-3-0-0-popup": SdPopup,
|
|
561
|
+
"sd-3-0-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-
|
|
566
|
+
css`:host{position:relative;display:block;width:100%}:host([required]) #label::after{content:' *'}sd-3-0-0-popup::part(popup){z-index:var(--sd-z-index-dropdown,900);overflow-y:scroll}sd-3-0-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-0-0-tag[size=lg]::part(base){padding-left:var(--sd-spacing-2,.5rem);padding-right:var(--sd-spacing-2,.5rem)}sd-3-0-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-
|
|
569
|
+
queryAssignedElements({ selector: "sd-3-0-0-option" })
|
|
570
570
|
], SdSelect.prototype, "_optionsInDefaultSlot", 2);
|
|
571
571
|
__decorateClass([
|
|
572
|
-
query("sd-
|
|
572
|
+
query("sd-3-0-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-
|
|
691
|
+
customElement("sd-3-0-0-select")
|
|
692
692
|
], SdSelect);
|
|
693
693
|
setDefaultAnimation("select.show", {
|
|
694
694
|
keyframes: [
|
|
@@ -51,7 +51,7 @@ let SdSwitch = class extends SolidElement {
|
|
|
51
51
|
this.emit("sd-blur");
|
|
52
52
|
}
|
|
53
53
|
handleInput() {
|
|
54
|
-
this.emit("sd-
|
|
54
|
+
this.emit("sd-3-0-0-input");
|
|
55
55
|
}
|
|
56
56
|
handleInvalid(event) {
|
|
57
57
|
this.formControlController.setValidity(false);
|
|
@@ -163,7 +163,7 @@ __decorateClass([
|
|
|
163
163
|
watch(["checked"], { waitUntilFirstUpdate: true })
|
|
164
164
|
], SdSwitch.prototype, "handleStateChange", 1);
|
|
165
165
|
SdSwitch = __decorateClass([
|
|
166
|
-
customElement("sd-
|
|
166
|
+
customElement("sd-3-0-0-switch")
|
|
167
167
|
], SdSwitch);
|
|
168
168
|
export {
|
|
169
169
|
SdSwitch as default
|
|
@@ -21,7 +21,7 @@ let SdTab = class extends SolidElement {
|
|
|
21
21
|
constructor() {
|
|
22
22
|
super(...arguments);
|
|
23
23
|
this.attrId = ++id;
|
|
24
|
-
this.componentId = `sd-
|
|
24
|
+
this.componentId = `sd-3-0-0-tab-${this.attrId}`;
|
|
25
25
|
this.panel = "";
|
|
26
26
|
this.variant = "default";
|
|
27
27
|
this.active = false;
|
|
@@ -88,7 +88,7 @@ __decorateClass([
|
|
|
88
88
|
watch("disabled")
|
|
89
89
|
], SdTab.prototype, "handleDisabledChange", 1);
|
|
90
90
|
SdTab = __decorateClass([
|
|
91
|
-
customElement("sd-
|
|
91
|
+
customElement("sd-3-0-0-tab")
|
|
92
92
|
], SdTab);
|
|
93
93
|
export {
|
|
94
94
|
SdTab as default
|