@solid-design-system/components 1.39.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/es/dialog.js +1 -0
- package/dist/components/es/drawer.js +1 -1
- package/dist/components/es/input.js +1 -1
- package/dist/components/es/modal.js +1 -0
- package/dist/components/es/select.js +3 -3
- package/dist/components/es/solid-components2.js +1 -1
- package/dist/components/es/solid-element.js +1 -1
- package/dist/components/es/textarea.js +1 -1
- package/dist/components/umd/solid-components.js +18 -18
- package/dist/custom-elements.json +1 -1
- package/dist/package/components/dialog/dialog.d.ts +32 -0
- package/dist/package/components/dialog/dialog.js +222 -0
- package/dist/package/components/input/input.d.ts +1 -0
- package/dist/package/components/input/input.js +6 -2
- package/dist/package/components/select/select.d.ts +1 -0
- package/dist/package/components/select/select.js +6 -2
- package/dist/package/components/textarea/textarea.d.ts +1 -0
- package/dist/package/components/textarea/textarea.js +7 -2
- package/dist/package/solid-components.d.ts +1 -0
- package/dist/package/solid-components.js +48 -46
- package/dist/package/styles/headline/headline.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 -0
- 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/modal.js +1 -0
- 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/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/dialog/dialog.d.ts +32 -0
- package/dist/versioned-package/components/dialog/dialog.js +222 -0
- 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 +2 -1
- package/dist/versioned-package/components/input/input.js +9 -5
- 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 +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 +5 -4
- package/dist/versioned-package/components/select/select.js +33 -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/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 +2 -1
- package/dist/versioned-package/components/textarea/textarea.js +9 -4
- 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 +1 -0
- package/dist/versioned-package/solid-components.js +48 -46
- package/dist/versioned-package/styles/headline/headline.css.js +4 -0
- 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 +106 -32
- package/dist/web-types.json +363 -33
- package/package.json +3 -3
|
@@ -22,19 +22,19 @@ let SdButtonGroup = class extends SolidElement {
|
|
|
22
22
|
}
|
|
23
23
|
handleFocus(event) {
|
|
24
24
|
const button = findButton(event.target);
|
|
25
|
-
button == null ? void 0 : button.classList.add("sd-1-
|
|
25
|
+
button == null ? void 0 : button.classList.add("sd-2-1-0-button-group__button--focus");
|
|
26
26
|
}
|
|
27
27
|
handleBlur(event) {
|
|
28
28
|
const button = findButton(event.target);
|
|
29
|
-
button == null ? void 0 : button.classList.remove("sd-1-
|
|
29
|
+
button == null ? void 0 : button.classList.remove("sd-2-1-0-button-group__button--focus");
|
|
30
30
|
}
|
|
31
31
|
handleMouseOver(event) {
|
|
32
32
|
const button = findButton(event.target);
|
|
33
|
-
button == null ? void 0 : button.classList.add("sd-1-
|
|
33
|
+
button == null ? void 0 : button.classList.add("sd-2-1-0-button-group__button--hover");
|
|
34
34
|
}
|
|
35
35
|
handleMouseOut(event) {
|
|
36
36
|
const button = findButton(event.target);
|
|
37
|
-
button == null ? void 0 : button.classList.remove("sd-1-
|
|
37
|
+
button == null ? void 0 : button.classList.remove("sd-2-1-0-button-group__button--hover");
|
|
38
38
|
}
|
|
39
39
|
handleSlotChange() {
|
|
40
40
|
const slottedElements = [...this.defaultSlot.assignedElements({ flatten: true })];
|
|
@@ -42,11 +42,11 @@ let SdButtonGroup = class extends SolidElement {
|
|
|
42
42
|
const index = slottedElements.indexOf(el);
|
|
43
43
|
const button = findButton(el);
|
|
44
44
|
if (button !== null) {
|
|
45
|
-
button.classList.add("sd-1-
|
|
46
|
-
button.classList.toggle("sd-1-
|
|
47
|
-
button.classList.toggle("sd-1-
|
|
48
|
-
button.classList.toggle("sd-1-
|
|
49
|
-
button.classList.toggle("sd-1-
|
|
45
|
+
button.classList.add("sd-2-1-0-button-group__button");
|
|
46
|
+
button.classList.toggle("sd-2-1-0-button-group__button--first", index === 0);
|
|
47
|
+
button.classList.toggle("sd-2-1-0-button-group__button--inner", index > 0 && index < slottedElements.length - 1);
|
|
48
|
+
button.classList.toggle("sd-2-1-0-button-group__button--last", index === slottedElements.length - 1);
|
|
49
|
+
button.classList.toggle("sd-2-1-0-button-group__button--radio", button.tagName.toLowerCase() === "sd-2-1-0-radio-button");
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
52
|
}
|
|
@@ -65,10 +65,10 @@ __decorateClass([
|
|
|
65
65
|
property()
|
|
66
66
|
], SdButtonGroup.prototype, "label", 2);
|
|
67
67
|
SdButtonGroup = __decorateClass([
|
|
68
|
-
customElement("sd-1-
|
|
68
|
+
customElement("sd-2-1-0-button-group")
|
|
69
69
|
], SdButtonGroup);
|
|
70
70
|
function findButton(el) {
|
|
71
|
-
const selector = "sd-1-
|
|
71
|
+
const selector = "sd-2-1-0-button, sd-2-1-0-radio-button";
|
|
72
72
|
return el.closest(selector) ?? el.querySelector(selector);
|
|
73
73
|
}
|
|
74
74
|
export {
|
|
@@ -108,7 +108,7 @@ let SdAccordion = class extends SolidElement {
|
|
|
108
108
|
)}"></div><slot name="summary" part="summary" class="flex flex-auto items-center text-left">${this.summary}</slot><span part="summary-icon" class="${cx(
|
|
109
109
|
"flex flex-grow-0 flex-shrink-0 flex-auto items-center transition-all ease-in-out duration-300 text-xl",
|
|
110
110
|
this.open && "rotate-180"
|
|
111
|
-
)}"><slot name="expand-icon" class="${cx(this.open && "hidden")}"><sd-1-
|
|
111
|
+
)}"><slot name="expand-icon" class="${cx(this.open && "hidden")}"><sd-2-1-0-icon library="system" name="chevron-down"></sd-2-1-0-icon></slot><slot name="collapse-icon" class="${cx(!this.open && "hidden")}"><sd-2-1-0-icon library="system" name="chevron-down"></sd-2-1-0-icon></slot></span></header><div part="content" id="content" class="overflow-hidden"><slot part="content__slot" class="block px-4 py-6" role="region" aria-labelledby="header"></slot></div></div>`;
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
114
|
SdAccordion.styles = [
|
|
@@ -134,7 +134,7 @@ __decorateClass([
|
|
|
134
134
|
watch("open", { waitUntilFirstUpdate: true })
|
|
135
135
|
], SdAccordion.prototype, "handleOpenChange", 1);
|
|
136
136
|
SdAccordion = __decorateClass([
|
|
137
|
-
customElement("sd-1-
|
|
137
|
+
customElement("sd-2-1-0-accordion")
|
|
138
138
|
], SdAccordion);
|
|
139
139
|
setDefaultAnimation("accordion.show", {
|
|
140
140
|
keyframes: [
|
|
@@ -48,16 +48,16 @@ let SdAccordionGroup = class extends SolidElement {
|
|
|
48
48
|
SdAccordionGroup.styles = [
|
|
49
49
|
componentStyles,
|
|
50
50
|
SolidElement.styles,
|
|
51
|
-
css`:host{display:block}::slotted(sd-1-
|
|
51
|
+
css`:host{display:block}::slotted(sd-2-1-0-accordion:not(:first-of-type)){margin-top:-1px}`
|
|
52
52
|
];
|
|
53
53
|
__decorateClass([
|
|
54
|
-
queryAssignedElements({ selector: "sd-1-
|
|
54
|
+
queryAssignedElements({ selector: "sd-2-1-0-accordion" })
|
|
55
55
|
], SdAccordionGroup.prototype, "_accordionsInDefaultSlot", 2);
|
|
56
56
|
__decorateClass([
|
|
57
57
|
property({ attribute: "close-others", type: Boolean })
|
|
58
58
|
], SdAccordionGroup.prototype, "closeOthers", 2);
|
|
59
59
|
SdAccordionGroup = __decorateClass([
|
|
60
|
-
customElement("sd-1-
|
|
60
|
+
customElement("sd-2-1-0-accordion-group")
|
|
61
61
|
], SdAccordionGroup);
|
|
62
62
|
export {
|
|
63
63
|
SdAccordionGroup as default
|
|
@@ -123,7 +123,7 @@ __decorateClass([
|
|
|
123
123
|
state()
|
|
124
124
|
], SdBrandshape.prototype, "componentBreakpoint", 2);
|
|
125
125
|
SdBrandshape = __decorateClass([
|
|
126
|
-
customElement("sd-1-
|
|
126
|
+
customElement("sd-2-1-0-brandshape")
|
|
127
127
|
], SdBrandshape);
|
|
128
128
|
export {
|
|
129
129
|
SdBrandshape as default
|
|
@@ -213,19 +213,19 @@ let SdButton = class extends SolidElement {
|
|
|
213
213
|
md: "ml-2",
|
|
214
214
|
lg: "ml-2"
|
|
215
215
|
}[this.size]
|
|
216
|
-
)}"></slot>${this.loading ? html`<sd-1-
|
|
216
|
+
)}"></slot>${this.loading ? html`<sd-2-1-0-spinner class="${cx("absolute top-1/2 left-1/2 transform -translate-x-1/2 -translate-y-1/2")}"></sd-2-1-0-spinner>` : ""}</${tag}>`;
|
|
217
217
|
}
|
|
218
218
|
};
|
|
219
219
|
SdButton.styles = [
|
|
220
220
|
componentStyles,
|
|
221
221
|
SolidElement.styles,
|
|
222
|
-
css`:host{position:relative;display:inline-block;width:var(--sd-spacing-auto,auto);cursor:pointer}sd-1-
|
|
222
|
+
css`:host{position:relative;display:inline-block;width:var(--sd-spacing-auto,auto);cursor:pointer}sd-2-1-0-spinner{--indicator-color:currentColor;--track-color:var(--tw-varcolor-200)}::slotted(sd-2-1-0-badge){pointer-events:none;position:absolute;top:var(--sd-spacing-0,0);right:var(--sd-spacing-0,0);--tw-translate-x:50%!important;--tw-translate-y:-50%!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}::slotted(sd-2-1-0-icon),sd-2-1-0-spinner{font-size:calc(var(--tw-varspacing)/ 2)}`
|
|
223
223
|
];
|
|
224
224
|
__decorateClass([
|
|
225
225
|
query("a, button")
|
|
226
226
|
], SdButton.prototype, "button", 2);
|
|
227
227
|
__decorateClass([
|
|
228
|
-
queryAssignedElements({ selector: "sd-1-
|
|
228
|
+
queryAssignedElements({ selector: "sd-2-1-0-icon" })
|
|
229
229
|
], SdButton.prototype, "_iconsInDefaultSlot", 2);
|
|
230
230
|
__decorateClass([
|
|
231
231
|
state()
|
|
@@ -288,7 +288,7 @@ __decorateClass([
|
|
|
288
288
|
watch("disabled", { waitUntilFirstUpdate: true })
|
|
289
289
|
], SdButton.prototype, "handleDisabledChange", 1);
|
|
290
290
|
SdButton = __decorateClass([
|
|
291
|
-
customElement("sd-1-
|
|
291
|
+
customElement("sd-2-1-0-button")
|
|
292
292
|
], SdButton);
|
|
293
293
|
export {
|
|
294
294
|
SdButton as default
|
|
@@ -39,7 +39,7 @@ let SdCarousel = class extends SolidElement {
|
|
|
39
39
|
this.pausedAutoplay = false;
|
|
40
40
|
this.autoplayController = new AutoplayController(this, () => this.next());
|
|
41
41
|
this.scrollController = new ScrollController(this);
|
|
42
|
-
this.slides = this.getElementsByTagName("sd-1-
|
|
42
|
+
this.slides = this.getElementsByTagName("sd-2-1-0-carousel-item");
|
|
43
43
|
this.intersectionObserverEntries = /* @__PURE__ */ new Map();
|
|
44
44
|
this.localize = new LocalizeController(this);
|
|
45
45
|
this.handleSlotChange = (mutations) => {
|
|
@@ -276,7 +276,7 @@ let SdCarousel = class extends SolidElement {
|
|
|
276
276
|
"!mr-6 !rounded-sm sd-interactive",
|
|
277
277
|
!prevEnabled && "sd-interactive--disabled",
|
|
278
278
|
this.inverted ? "sd-interactive--inverted" : "sd-interactive--reset"
|
|
279
|
-
)}" aria-label="${this.localize.term("previousSlide")}" aria-controls="scroll-container" aria-disabled="${prevEnabled ? "false" : "true"}" @click="${prevEnabled ? () => this.previous() : null}"><slot name="previous-icon"><sd-1-
|
|
279
|
+
)}" aria-label="${this.localize.term("previousSlide")}" aria-controls="scroll-container" aria-disabled="${prevEnabled ? "false" : "true"}" @click="${prevEnabled ? () => this.previous() : null}"><slot name="previous-icon"><sd-2-1-0-icon class="${cx("h-6 w-6 rotate-90 grid place-items-center")}" library="system" name="${isLtr ? "chevron-down" : "chevron-up"}"></sd-2-1-0-icon></slot></button> ${this.variant === "dot" ? html`<div part="pagination-dot" role="tablist" class="${cx("carousel__pagination dot flex wrap items-center gap-2")}" aria-controls="scroll-container">${map(range(pagesCount), (index) => {
|
|
280
280
|
const isActive = index === currentPage;
|
|
281
281
|
return html`<button part="pagination-item ${isActive ? "pagination-item--active" : ""}" class="${cx(
|
|
282
282
|
"carousel__pagination-item",
|
|
@@ -296,19 +296,19 @@ let SdCarousel = class extends SolidElement {
|
|
|
296
296
|
)}" aria-label="${this.localize.term("nextSlide")}" aria-controls="scroll-container" aria-disabled="${nextEnabled ? "false" : "true"}" @click="${nextEnabled ? () => {
|
|
297
297
|
console.log("click-next");
|
|
298
298
|
this.next();
|
|
299
|
-
} : null}"><slot name="next-icon"><sd-1-
|
|
299
|
+
} : null}"><slot name="next-icon"><sd-2-1-0-icon class="${cx("h-6 w-6 rotate-90 grid place-items-center")}" library="system" name="${isLtr ? "chevron-up" : "chevron-down"}"></sd-2-1-0-icon></slot></button></div><button class="${cx(
|
|
300
300
|
"ml-6 !rounded-sm",
|
|
301
301
|
"!absolute !right-0 sd-interactive",
|
|
302
302
|
this.inverted ? "sd-interactive--inverted" : "sd-interactive--reset",
|
|
303
303
|
!this.autoplay && "!hidden"
|
|
304
|
-
)}" part="autoplay-controls" @click="${() => this.pausedAutoplay = !this.pausedAutoplay}"><slot name="autoplay-start" class="${cx(!this.pausedAutoplay ? "hidden" : "")}"><sd-1-
|
|
304
|
+
)}" part="autoplay-controls" @click="${() => this.pausedAutoplay = !this.pausedAutoplay}"><slot name="autoplay-start" class="${cx(!this.pausedAutoplay ? "hidden" : "")}"><sd-2-1-0-icon class="h-6 w-6 grid place-items-center" library="system" name="start"></sd-2-1-0-icon></slot><slot name="autoplay-pause" class="${cx(this.pausedAutoplay ? "hidden" : "")}"><sd-2-1-0-icon class="h-6 w-6 grid place-items-center" library="system" name="pause"></sd-2-1-0-icon></slot></button></div></div>`;
|
|
305
305
|
}
|
|
306
306
|
};
|
|
307
307
|
SdCarousel.styles = [
|
|
308
308
|
SolidElement.styles,
|
|
309
309
|
unsafeCSS(InteractiveStyles),
|
|
310
310
|
componentStyles,
|
|
311
|
-
css`:host{--slide-gap:var(--sl-spacing-medium, 1rem);--scroll-hint:0px;display:flex}.carousel{grid-template-areas:'. slides .' '. pagination .'}.carousel__pagination{grid-area:pagination}.carousel__slides{grid-area:slides;scrollbar-width:none;--slide-size:calc((100% - (var(--slides-per-page) - 1) * var(--slide-gap)) / var(--slides-per-page));grid-auto-columns:var(--slide-size);-moz-column-gap:var(--slide-gap);column-gap:var(--slide-gap);scroll-padding-inline:var(--scroll-hint);padding-inline:var(--scroll-hint)}.carousel__slides::-webkit-scrollbar{display:none}@media (prefers-reduced-motion){:where(.carousel__slides){scroll-behavior:auto}}.carousel__navigation{grid-area:navigation}sd-1-
|
|
311
|
+
css`:host{--slide-gap:var(--sl-spacing-medium, 1rem);--scroll-hint:0px;display:flex}.carousel{grid-template-areas:'. slides .' '. pagination .'}.carousel__pagination{grid-area:pagination}.carousel__slides{grid-area:slides;scrollbar-width:none;--slide-size:calc((100% - (var(--slides-per-page) - 1) * var(--slide-gap)) / var(--slides-per-page));grid-auto-columns:var(--slide-size);-moz-column-gap:var(--slide-gap);column-gap:var(--slide-gap);scroll-padding-inline:var(--scroll-hint);padding-inline:var(--scroll-hint)}.carousel__slides::-webkit-scrollbar{display:none}@media (prefers-reduced-motion){:where(.carousel__slides){scroll-behavior:auto}}.carousel__navigation{grid-area:navigation}sd-2-1-0-button::part(label){pointer-events:none;display:flex;flex:1 1 auto;align-items:center}`
|
|
312
312
|
];
|
|
313
313
|
__decorateClass([
|
|
314
314
|
property({ type: String, reflect: true })
|
|
@@ -360,7 +360,7 @@ __decorateClass([
|
|
|
360
360
|
watch("autoplay")
|
|
361
361
|
], SdCarousel.prototype, "handleAutoplayChange", 1);
|
|
362
362
|
SdCarousel = __decorateClass([
|
|
363
|
-
customElement("sd-1-
|
|
363
|
+
customElement("sd-2-1-0-carousel")
|
|
364
364
|
], SdCarousel);
|
|
365
365
|
export {
|
|
366
366
|
SdCarousel as default
|
|
@@ -31,7 +31,7 @@ SdCarouselItem.styles = [
|
|
|
31
31
|
css`:host{aspect-ratio:var(--aspect-ratio);scroll-snap-align:start;scroll-snap-stop:always;display:flex;height:100%;width:100%;flex-direction:column;align-items:center;justify-content:center}::slotted(img){height:100%;width:100%;-o-object-fit:cover;object-fit:cover}`
|
|
32
32
|
];
|
|
33
33
|
SdCarouselItem = __decorateClass([
|
|
34
|
-
customElement("sd-1-
|
|
34
|
+
customElement("sd-2-1-0-carousel-item")
|
|
35
35
|
], SdCarouselItem);
|
|
36
36
|
export {
|
|
37
37
|
SdCarouselItem as default
|
|
@@ -55,7 +55,7 @@ let SdCheckbox = class extends SolidElement {
|
|
|
55
55
|
this.emit("sd-blur");
|
|
56
56
|
}
|
|
57
57
|
handleInput() {
|
|
58
|
-
this.emit("sd-1-
|
|
58
|
+
this.emit("sd-2-1-0-input");
|
|
59
59
|
}
|
|
60
60
|
handleInvalid(event) {
|
|
61
61
|
this.formControlController.setValidity(false);
|
|
@@ -110,7 +110,7 @@ let SdCheckbox = class extends SolidElement {
|
|
|
110
110
|
render() {
|
|
111
111
|
const checkboxState = this.disabled && this.indeterminate ? "disabledIndeterminate" : this.disabled && this.checked ? "disabledChecked" : this.disabled ? "disabled" : this.showInvalidStyle && this.indeterminate ? "invalidIndeterminate" : this.showInvalidStyle ? "invalid" : this.checked || this.indeterminate ? "filled" : "default";
|
|
112
112
|
return html`<label part="base" class="${cx(
|
|
113
|
-
"sd-1-
|
|
113
|
+
"sd-2-1-0-checkbox group flex items-start text-base leading-normal text-black cursor-pointer",
|
|
114
114
|
this.disabled && "hover:cursor-not-allowed",
|
|
115
115
|
{
|
|
116
116
|
/* sizes, fonts */
|
|
@@ -134,7 +134,7 @@ let SdCheckbox = class extends SolidElement {
|
|
|
134
134
|
filled: "border-accent hover:border-accent-550 group-hover:border-accent-550 bg-accent group-hover:bg-accent-550",
|
|
135
135
|
default: "border-neutral-800 hover:bg-neutral-200 group-hover:bg-neutral-200 bg-white"
|
|
136
136
|
}[checkboxState]
|
|
137
|
-
)}">${this.checked ? html`<sd-1-
|
|
137
|
+
)}">${this.checked ? html`<sd-2-1-0-icon part="checked-icon" class="text-white w-3 h-3" library="system" name="status-hook"></sd-2-1-0-icon>` : ""} ${!this.checked && this.indeterminate ? html`<sd-2-1-0-icon part="indeterminate-icon" class="text-white w-3 h-3" library="system" name="status-minus"></sd-2-1-0-icon>` : ""} </span><span part="label" id="label" class="${cx(
|
|
138
138
|
"select-none inline-block ml-2",
|
|
139
139
|
this.disabled ? "text-neutral-500" : this.showInvalidStyle ? "text-error" : "text-black"
|
|
140
140
|
)}"><slot></slot></span></label> ${this.formControlController.renderInvalidMessage()}`;
|
|
@@ -190,7 +190,7 @@ __decorateClass([
|
|
|
190
190
|
watch(["checked", "indeterminate"], { waitUntilFirstUpdate: true })
|
|
191
191
|
], SdCheckbox.prototype, "handleStateChange", 1);
|
|
192
192
|
SdCheckbox = __decorateClass([
|
|
193
|
-
customElement("sd-1-
|
|
193
|
+
customElement("sd-2-1-0-checkbox")
|
|
194
194
|
], SdCheckbox);
|
|
195
195
|
export {
|
|
196
196
|
SdCheckbox as default
|
|
@@ -27,7 +27,7 @@ let SdCheckboxGroup = class extends SolidElement {
|
|
|
27
27
|
this.orientation = "vertical";
|
|
28
28
|
}
|
|
29
29
|
getAllCheckboxes() {
|
|
30
|
-
return [...this.querySelectorAll("sd-1-
|
|
30
|
+
return [...this.querySelectorAll("sd-2-1-0-checkbox")];
|
|
31
31
|
}
|
|
32
32
|
async syncCheckboxElements() {
|
|
33
33
|
const checkboxes = this.getAllCheckboxes();
|
|
@@ -43,10 +43,10 @@ let SdCheckboxGroup = class extends SolidElement {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
syncCheckboxes() {
|
|
46
|
-
if (customElements.get("sd-1-
|
|
46
|
+
if (customElements.get("sd-2-1-0-checkbox")) {
|
|
47
47
|
this.syncCheckboxElements();
|
|
48
48
|
} else {
|
|
49
|
-
customElements.whenDefined("sd-1-
|
|
49
|
+
customElements.whenDefined("sd-2-1-0-checkbox").then(() => this.syncCheckboxes());
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
handleSizeChange() {
|
|
@@ -77,7 +77,7 @@ let SdCheckboxGroup = class extends SolidElement {
|
|
|
77
77
|
SdCheckboxGroup.styles = [
|
|
78
78
|
componentStyles,
|
|
79
79
|
SolidElement.styles,
|
|
80
|
-
css`:host{display:block}:host([orientation=vertical]) ::slotted(sd-1-
|
|
80
|
+
css`:host{display:block}:host([orientation=vertical]) ::slotted(sd-2-1-0-checkbox){margin-bottom:var(--sd-spacing-2,.5rem);display:flex}:host([orientation=vertical]) ::slotted(sd-2-1-0-checkbox:last-of-type){margin-bottom:var(--sd-spacing-0,0)}:host([orientation=horizontal]) ::slotted(sd-2-1-0-checkbox){margin-right:var(--sd-spacing-6,1.5rem)}:host([orientation=horizontal]) ::slotted(sd-2-1-0-checkbox:last-of-type){margin-right:var(--sd-spacing-0,0)}:host([orientation=horizontal]):host([size=sm]) ::slotted(sd-2-1-0-checkbox){margin-right:var(--sd-spacing-4,1rem)}:host([orientation=horizontal]):host([size=sm]) ::slotted(sd-2-1-0-checkbox:last-of-type){margin-right:var(--sd-spacing-0,0)}`
|
|
81
81
|
];
|
|
82
82
|
__decorateClass([
|
|
83
83
|
property()
|
|
@@ -95,7 +95,7 @@ __decorateClass([
|
|
|
95
95
|
watch("invalid", { waitUntilFirstUpdate: true })
|
|
96
96
|
], SdCheckboxGroup.prototype, "handleInvalid", 1);
|
|
97
97
|
SdCheckboxGroup = __decorateClass([
|
|
98
|
-
customElement("sd-1-
|
|
98
|
+
customElement("sd-2-1-0-checkbox-group")
|
|
99
99
|
], SdCheckboxGroup);
|
|
100
100
|
export {
|
|
101
101
|
SdCheckboxGroup as default
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import '../button/button';
|
|
2
|
+
import '../icon/icon';
|
|
3
|
+
import SolidElement from '../../internal/solid-element';
|
|
4
|
+
export default class SdDialog extends SolidElement {
|
|
5
|
+
private readonly hasSlotController;
|
|
6
|
+
private readonly localize;
|
|
7
|
+
private modal;
|
|
8
|
+
private originalTrigger;
|
|
9
|
+
dialog: HTMLElement;
|
|
10
|
+
panel: HTMLElement;
|
|
11
|
+
overlay: HTMLElement;
|
|
12
|
+
open: boolean;
|
|
13
|
+
headline: string;
|
|
14
|
+
noCloseButton: boolean;
|
|
15
|
+
connectedCallback(): void;
|
|
16
|
+
firstUpdated(): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
private requestClose;
|
|
19
|
+
private addOpenListeners;
|
|
20
|
+
private removeOpenListeners;
|
|
21
|
+
private handleDocumentKeyDown;
|
|
22
|
+
handleOpenChange(): Promise<void>;
|
|
23
|
+
show(): Promise<void>;
|
|
24
|
+
hide(): Promise<void>;
|
|
25
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
26
|
+
static styles: import("lit").CSSResultGroup[];
|
|
27
|
+
}
|
|
28
|
+
declare global {
|
|
29
|
+
interface HTMLElementTagNameMap {
|
|
30
|
+
'sd-2-1-0-dialog': SdDialog;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
import "../button/button.js";
|
|
2
|
+
import "../icon/icon.js";
|
|
3
|
+
import { animateTo, stopAnimations } from "../../internal/animate.js";
|
|
4
|
+
import { unsafeCSS, css, html } from "lit";
|
|
5
|
+
import { customElement } from "../../internal/register-custom-element.js";
|
|
6
|
+
import { setDefaultAnimation, getAnimation } from "../../utilities/animation-registry.js";
|
|
7
|
+
import { HasSlotController } from "../../internal/slot.js";
|
|
8
|
+
import { LocalizeController } from "../../utilities/localize.js";
|
|
9
|
+
import { lockBodyScrolling, unlockBodyScrolling } from "../../internal/scroll.js";
|
|
10
|
+
import { query, property } from "lit/decorators.js";
|
|
11
|
+
import { waitForEvent } from "../../internal/event.js";
|
|
12
|
+
import { watch } from "../../internal/watch.js";
|
|
13
|
+
import componentStyles from "../../styles/component.styles.js";
|
|
14
|
+
import cx from "classix";
|
|
15
|
+
import HeadlineStyles from "../../styles/headline/headline.css.js";
|
|
16
|
+
import Modal from "../../internal/modal.js";
|
|
17
|
+
import SolidElement from "../../internal/solid-element.js";
|
|
18
|
+
var __defProp = Object.defineProperty;
|
|
19
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
20
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
21
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
22
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
23
|
+
if (decorator = decorators[i])
|
|
24
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
25
|
+
if (kind && result)
|
|
26
|
+
__defProp(target, key, result);
|
|
27
|
+
return result;
|
|
28
|
+
};
|
|
29
|
+
let SdDialog = class extends SolidElement {
|
|
30
|
+
constructor() {
|
|
31
|
+
super(...arguments);
|
|
32
|
+
this.hasSlotController = new HasSlotController(this, "footer");
|
|
33
|
+
this.localize = new LocalizeController(this);
|
|
34
|
+
this.open = false;
|
|
35
|
+
this.headline = "";
|
|
36
|
+
this.noCloseButton = false;
|
|
37
|
+
}
|
|
38
|
+
connectedCallback() {
|
|
39
|
+
super.connectedCallback();
|
|
40
|
+
this.handleDocumentKeyDown = this.handleDocumentKeyDown.bind(this);
|
|
41
|
+
this.modal = new Modal(this);
|
|
42
|
+
}
|
|
43
|
+
firstUpdated() {
|
|
44
|
+
this.dialog.hidden = !this.open;
|
|
45
|
+
if (this.open) {
|
|
46
|
+
this.addOpenListeners();
|
|
47
|
+
this.modal.activate();
|
|
48
|
+
lockBodyScrolling(this);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
disconnectedCallback() {
|
|
52
|
+
super.disconnectedCallback();
|
|
53
|
+
unlockBodyScrolling(this);
|
|
54
|
+
}
|
|
55
|
+
requestClose(source) {
|
|
56
|
+
const sdRequestClose = this.emit("sd-request-close", {
|
|
57
|
+
cancelable: true,
|
|
58
|
+
detail: { source }
|
|
59
|
+
});
|
|
60
|
+
if (sdRequestClose.defaultPrevented) {
|
|
61
|
+
const animation = getAnimation(this, "dialog.denyClose", { dir: this.localize.dir() });
|
|
62
|
+
animateTo(this.panel, animation.keyframes, animation.options);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.hide();
|
|
66
|
+
}
|
|
67
|
+
addOpenListeners() {
|
|
68
|
+
document.addEventListener("keydown", this.handleDocumentKeyDown);
|
|
69
|
+
}
|
|
70
|
+
removeOpenListeners() {
|
|
71
|
+
document.removeEventListener("keydown", this.handleDocumentKeyDown);
|
|
72
|
+
}
|
|
73
|
+
handleDocumentKeyDown(event) {
|
|
74
|
+
if (this.open && event.key === "Escape") {
|
|
75
|
+
event.stopPropagation();
|
|
76
|
+
this.requestClose("keyboard");
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
async handleOpenChange() {
|
|
80
|
+
if (this.open) {
|
|
81
|
+
this.emit("sd-show");
|
|
82
|
+
this.addOpenListeners();
|
|
83
|
+
this.originalTrigger = document.activeElement;
|
|
84
|
+
this.modal.activate();
|
|
85
|
+
lockBodyScrolling(this);
|
|
86
|
+
const autoFocusTarget = this.querySelector("[autofocus]");
|
|
87
|
+
if (autoFocusTarget) {
|
|
88
|
+
autoFocusTarget.removeAttribute("autofocus");
|
|
89
|
+
}
|
|
90
|
+
await Promise.all([stopAnimations(this.dialog), stopAnimations(this.overlay)]);
|
|
91
|
+
this.dialog.hidden = false;
|
|
92
|
+
requestAnimationFrame(() => {
|
|
93
|
+
const slInitialFocus = this.emit("sd-initial-focus", { cancelable: true });
|
|
94
|
+
if (!slInitialFocus.defaultPrevented) {
|
|
95
|
+
if (autoFocusTarget) {
|
|
96
|
+
autoFocusTarget.focus({ preventScroll: true });
|
|
97
|
+
} else {
|
|
98
|
+
this.panel.focus({ preventScroll: true });
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
if (autoFocusTarget) {
|
|
102
|
+
autoFocusTarget.setAttribute("autofocus", "");
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
const panelAnimation = getAnimation(this, "dialog.show", { dir: this.localize.dir() });
|
|
106
|
+
const overlayAnimation = getAnimation(this, "dialog.overlay.show", { dir: this.localize.dir() });
|
|
107
|
+
await Promise.all([
|
|
108
|
+
animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options),
|
|
109
|
+
animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options)
|
|
110
|
+
]);
|
|
111
|
+
this.emit("sd-after-show");
|
|
112
|
+
} else {
|
|
113
|
+
this.emit("sd-hide");
|
|
114
|
+
this.removeOpenListeners();
|
|
115
|
+
this.modal.deactivate();
|
|
116
|
+
await Promise.all([stopAnimations(this.dialog), stopAnimations(this.overlay)]);
|
|
117
|
+
const panelAnimation = getAnimation(this, "dialog.hide", { dir: this.localize.dir() });
|
|
118
|
+
const overlayAnimation = getAnimation(this, "dialog.overlay.hide", { dir: this.localize.dir() });
|
|
119
|
+
await Promise.all([
|
|
120
|
+
animateTo(this.overlay, overlayAnimation.keyframes, overlayAnimation.options).then(() => {
|
|
121
|
+
this.overlay.hidden = true;
|
|
122
|
+
}),
|
|
123
|
+
animateTo(this.panel, panelAnimation.keyframes, panelAnimation.options).then(() => {
|
|
124
|
+
this.panel.hidden = true;
|
|
125
|
+
})
|
|
126
|
+
]);
|
|
127
|
+
this.dialog.hidden = true;
|
|
128
|
+
this.overlay.hidden = false;
|
|
129
|
+
this.panel.hidden = false;
|
|
130
|
+
unlockBodyScrolling(this);
|
|
131
|
+
const trigger = this.originalTrigger;
|
|
132
|
+
if (typeof (trigger == null ? void 0 : trigger.focus) === "function") {
|
|
133
|
+
setTimeout(() => trigger.focus());
|
|
134
|
+
}
|
|
135
|
+
this.emit("sd-after-hide");
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/** Shows the dialog. */
|
|
139
|
+
async show() {
|
|
140
|
+
if (this.open) {
|
|
141
|
+
return void 0;
|
|
142
|
+
}
|
|
143
|
+
this.open = true;
|
|
144
|
+
return waitForEvent(this, "sd-after-show");
|
|
145
|
+
}
|
|
146
|
+
/** Hides the dialog */
|
|
147
|
+
async hide() {
|
|
148
|
+
if (!this.open) {
|
|
149
|
+
return void 0;
|
|
150
|
+
}
|
|
151
|
+
this.open = false;
|
|
152
|
+
return waitForEvent(this, "sd-after-hide");
|
|
153
|
+
}
|
|
154
|
+
render() {
|
|
155
|
+
return html`<div part="base" class="${cx(
|
|
156
|
+
"flex items-center justify-center fixed inset-0 z-dialog",
|
|
157
|
+
this.hasSlotController.test("footer") && "dialog--has-footer"
|
|
158
|
+
)}"><div part="overlay" class="fixed inset-0 bg-primary-800 opacity-90" @click="${() => this.requestClose("overlay")}" tabindex="-1"></div><div part="panel" class="${cx(
|
|
159
|
+
"flex flex-col z-20 bg-white focus:outline-none py-4 sm:py-8 relative gap-6",
|
|
160
|
+
this.open && "flex opacity-100"
|
|
161
|
+
)}" role="dialog" aria-modal="true" aria-hidden="${this.open ? "false" : "true"}" aria-label="${this.headline}" aria-labelledby="title" tabindex="0"><header part="header" class="flex flex-grow-0 flex-shrink-0 basis-auto px-6 sm:px-10"><h2 part="title" class="flex-auto m-0" id="title">${this.headline.length > 0 ? html`<h4 class="sd-headline sd-headline--size-3xl leading-tight">${this.headline}</h4>` : html`<slot name="headline"></slot>`}</h2>${!this.noCloseButton ? html`<sd-2-1-0-button part="close-button" variant="tertiary" exportparts="base:close-button__base" class="${cx("absolute top-2 right-2")}" name="x-lg" @click="${() => this.requestClose("close-button")}" type="button"><sd-2-1-0-icon name="system/close" library="global-resources" color="currentColor"></sd-2-1-0-icon></sd-2-1-0-button>` : ""}</header><main part="body" class="flex flex-auto overflow-auto w-full px-6 sm:px-10"><slot></slot></main><footer part="footer" class="flex flex-grow-0 flex-shrink-0 basis-auto ml-auto gap-4 px-6 sm:px-10"><slot name="footer"></slot></footer></div></div>`;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
SdDialog.styles = [
|
|
165
|
+
componentStyles,
|
|
166
|
+
unsafeCSS(HeadlineStyles),
|
|
167
|
+
SolidElement.styles,
|
|
168
|
+
css`:host{--width:662px}[part=panel]{width:var(--width);max-height:80vh}[part=body]{-webkit-overflow-scrolling:touch}@media (max-width:414px){:host{--width:335px}[part=footer]{width:100%}}`
|
|
169
|
+
];
|
|
170
|
+
__decorateClass([
|
|
171
|
+
query('[part="base"]')
|
|
172
|
+
], SdDialog.prototype, "dialog", 2);
|
|
173
|
+
__decorateClass([
|
|
174
|
+
query('[part="panel"]')
|
|
175
|
+
], SdDialog.prototype, "panel", 2);
|
|
176
|
+
__decorateClass([
|
|
177
|
+
query('[part="overlay"]')
|
|
178
|
+
], SdDialog.prototype, "overlay", 2);
|
|
179
|
+
__decorateClass([
|
|
180
|
+
property({ type: Boolean, reflect: true })
|
|
181
|
+
], SdDialog.prototype, "open", 2);
|
|
182
|
+
__decorateClass([
|
|
183
|
+
property({ reflect: true })
|
|
184
|
+
], SdDialog.prototype, "headline", 2);
|
|
185
|
+
__decorateClass([
|
|
186
|
+
property({ attribute: "no-close-button", type: Boolean, reflect: true })
|
|
187
|
+
], SdDialog.prototype, "noCloseButton", 2);
|
|
188
|
+
__decorateClass([
|
|
189
|
+
watch("open", { waitUntilFirstUpdate: true })
|
|
190
|
+
], SdDialog.prototype, "handleOpenChange", 1);
|
|
191
|
+
SdDialog = __decorateClass([
|
|
192
|
+
customElement("sd-2-1-0-dialog")
|
|
193
|
+
], SdDialog);
|
|
194
|
+
setDefaultAnimation("dialog.show", {
|
|
195
|
+
keyframes: [
|
|
196
|
+
{ opacity: 0, scale: 0.8 },
|
|
197
|
+
{ opacity: 1, scale: 1 }
|
|
198
|
+
],
|
|
199
|
+
options: { duration: 250, easing: "ease" }
|
|
200
|
+
});
|
|
201
|
+
setDefaultAnimation("dialog.hide", {
|
|
202
|
+
keyframes: [
|
|
203
|
+
{ opacity: 1, scale: 1 },
|
|
204
|
+
{ opacity: 0, scale: 0.8 }
|
|
205
|
+
],
|
|
206
|
+
options: { duration: 250, easing: "ease" }
|
|
207
|
+
});
|
|
208
|
+
setDefaultAnimation("dialog.denyClose", {
|
|
209
|
+
keyframes: [{ scale: 1 }, { scale: 1.02 }, { scale: 1 }],
|
|
210
|
+
options: { duration: 250 }
|
|
211
|
+
});
|
|
212
|
+
setDefaultAnimation("dialog.overlay.show", {
|
|
213
|
+
keyframes: [{ opacity: 0 }, { opacity: 1 }],
|
|
214
|
+
options: { duration: 250 }
|
|
215
|
+
});
|
|
216
|
+
setDefaultAnimation("dialog.overlay.hide", {
|
|
217
|
+
keyframes: [{ opacity: 1 }, { opacity: 0 }],
|
|
218
|
+
options: { duration: 250 }
|
|
219
|
+
});
|
|
220
|
+
export {
|
|
221
|
+
SdDialog as default
|
|
222
|
+
};
|