@solid-design-system/components 3.22.18 → 3.23.1
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/combobox.js +11 -0
- package/dist/components/es/dropdown.js +1 -1
- package/dist/components/es/map-marker.js +1 -1
- package/dist/components/es/navigation-item.js +1 -1
- package/dist/components/es/optgroup.js +1 -0
- package/dist/components/es/option-renderer.js +1 -0
- package/dist/components/es/select.js +7 -3
- package/dist/components/es/solid-components2.js +7 -7
- package/dist/components/es/tabbable.js +1 -1
- package/dist/components/es/utils.js +1 -0
- package/dist/components/umd/solid-components.js +37 -23
- package/dist/custom-elements.json +1 -1
- package/dist/package/components/combobox/combobox.d.ts +129 -0
- package/dist/package/components/combobox/combobox.js +958 -0
- package/dist/package/components/combobox/option-renderer.d.ts +5 -0
- package/dist/package/components/combobox/option-renderer.js +4 -0
- package/dist/package/components/combobox/utils.d.ts +8 -0
- package/dist/package/components/combobox/utils.js +14 -0
- package/dist/package/components/dropdown/dropdown.d.ts +2 -1
- package/dist/package/components/dropdown/dropdown.js +37 -28
- package/dist/package/components/navigation-item/navigation-item.d.ts +1 -0
- package/dist/package/components/navigation-item/navigation-item.js +4 -1
- package/dist/package/components/optgroup/optgroup.d.ts +20 -0
- package/dist/package/components/optgroup/optgroup.js +68 -0
- package/dist/package/components/select/select.d.ts +5 -1
- package/dist/package/components/select/select.js +94 -29
- package/dist/package/internal/tabbable.js +1 -1
- package/dist/package/solid-components.d.ts +2 -0
- package/dist/package/solid-components.js +74 -70
- package/dist/package/styles/tailwind.css.js +1 -1
- package/dist/package/translations/de.js +7 -4
- package/dist/package/translations/en.js +7 -4
- package/dist/package/utilities/localize.d.ts +3 -0
- package/dist/versioned-components/es/accordion-group.js +1 -1
- package/dist/versioned-components/es/accordion.js +1 -1
- package/dist/versioned-components/es/audio.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/combobox.js +11 -0
- 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/expandable.js +1 -1
- package/dist/versioned-components/es/flipcard.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/optgroup.js +1 -0
- package/dist/versioned-components/es/option-renderer.js +1 -0
- package/dist/versioned-components/es/option.js +1 -1
- package/dist/versioned-components/es/quickfact.js +1 -1
- package/dist/versioned-components/es/radio-button.js +1 -1
- package/dist/versioned-components/es/radio-group.js +1 -1
- package/dist/versioned-components/es/radio.js +1 -1
- package/dist/versioned-components/es/scrollable.js +1 -1
- package/dist/versioned-components/es/select.js +7 -3
- package/dist/versioned-components/es/solid-components2.js +7 -7
- package/dist/versioned-components/es/spinner.js +1 -1
- package/dist/versioned-components/es/step-group.js +1 -1
- package/dist/versioned-components/es/step.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/tabbable.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/utils.js +1 -0
- 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/audio/audio.d.ts +1 -1
- package/dist/versioned-package/components/audio/audio.js +6 -6
- package/dist/versioned-package/components/badge/badge.d.ts +1 -1
- package/dist/versioned-package/components/badge/badge.js +1 -1
- package/dist/versioned-package/components/brandshape/brandshape.d.ts +1 -1
- package/dist/versioned-package/components/brandshape/brandshape.js +1 -1
- package/dist/versioned-package/components/button/button.d.ts +1 -1
- package/dist/versioned-package/components/button/button.js +4 -4
- package/dist/versioned-package/components/carousel/carousel.d.ts +1 -1
- package/dist/versioned-package/components/carousel/carousel.js +6 -6
- package/dist/versioned-package/components/carousel-item/carousel-item.d.ts +1 -1
- package/dist/versioned-package/components/carousel-item/carousel-item.js +1 -1
- package/dist/versioned-package/components/checkbox/checkbox.d.ts +1 -1
- package/dist/versioned-package/components/checkbox/checkbox.js +3 -3
- package/dist/versioned-package/components/checkbox-group/checkbox-group.d.ts +1 -1
- package/dist/versioned-package/components/checkbox-group/checkbox-group.js +5 -5
- package/dist/versioned-package/components/combobox/combobox.d.ts +129 -0
- package/dist/versioned-package/components/combobox/combobox.js +958 -0
- package/dist/versioned-package/components/combobox/option-renderer.d.ts +5 -0
- package/dist/versioned-package/components/combobox/option-renderer.js +4 -0
- package/dist/versioned-package/components/combobox/utils.d.ts +8 -0
- package/dist/versioned-package/components/combobox/utils.js +14 -0
- 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 +3 -2
- package/dist/versioned-package/components/dropdown/dropdown.js +42 -33
- package/dist/versioned-package/components/expandable/expandable.d.ts +1 -1
- package/dist/versioned-package/components/expandable/expandable.js +2 -2
- package/dist/versioned-package/components/flipcard/flipcard.d.ts +1 -1
- package/dist/versioned-package/components/flipcard/flipcard.js +1 -1
- 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 +3 -3
- 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 +2 -1
- package/dist/versioned-package/components/navigation-item/navigation-item.js +9 -6
- 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/optgroup/optgroup.d.ts +20 -0
- package/dist/versioned-package/components/optgroup/optgroup.js +68 -0
- 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/quickfact/quickfact.d.ts +1 -1
- package/dist/versioned-package/components/quickfact/quickfact.js +2 -2
- package/dist/versioned-package/components/radio/radio.d.ts +1 -1
- package/dist/versioned-package/components/radio/radio.js +2 -2
- package/dist/versioned-package/components/radio-button/radio-button.d.ts +1 -1
- package/dist/versioned-package/components/radio-button/radio-button.js +2 -2
- package/dist/versioned-package/components/radio-group/radio-group.d.ts +2 -2
- package/dist/versioned-package/components/radio-group/radio-group.js +13 -13
- package/dist/versioned-package/components/scrollable/scrollable.d.ts +1 -1
- package/dist/versioned-package/components/scrollable/scrollable.js +3 -3
- package/dist/versioned-package/components/select/select.d.ts +9 -5
- package/dist/versioned-package/components/select/select.js +115 -50
- package/dist/versioned-package/components/spinner/spinner.d.ts +1 -1
- package/dist/versioned-package/components/spinner/spinner.js +1 -1
- package/dist/versioned-package/components/step/step.d.ts +1 -1
- package/dist/versioned-package/components/step/step.js +2 -2
- package/dist/versioned-package/components/step-group/step-group.d.ts +1 -1
- package/dist/versioned-package/components/step-group/step-group.js +2 -2
- package/dist/versioned-package/components/switch/switch.d.ts +1 -1
- package/dist/versioned-package/components/switch/switch.js +1 -1
- package/dist/versioned-package/components/tab/tab.d.ts +1 -1
- package/dist/versioned-package/components/tab/tab.js +2 -2
- package/dist/versioned-package/components/tab-group/tab-group.d.ts +1 -1
- package/dist/versioned-package/components/tab-group/tab-group.js +13 -13
- package/dist/versioned-package/components/tab-panel/tab-panel.d.ts +1 -1
- package/dist/versioned-package/components/tab-panel/tab-panel.js +2 -2
- package/dist/versioned-package/components/tag/tag.d.ts +1 -1
- package/dist/versioned-package/components/tag/tag.js +2 -2
- package/dist/versioned-package/components/teaser/teaser.js +1 -1
- package/dist/versioned-package/components/teaser-media/teaser-media.js +1 -1
- package/dist/versioned-package/components/textarea/textarea.d.ts +1 -1
- package/dist/versioned-package/components/textarea/textarea.js +2 -2
- package/dist/versioned-package/components/tooltip/tooltip.d.ts +1 -1
- package/dist/versioned-package/components/tooltip/tooltip.js +5 -5
- package/dist/versioned-package/components/video/video.d.ts +1 -1
- package/dist/versioned-package/components/video/video.js +2 -2
- package/dist/versioned-package/internal/form.js +3 -3
- package/dist/versioned-package/internal/tabbable.js +1 -1
- package/dist/versioned-package/solid-components.d.ts +2 -0
- package/dist/versioned-package/solid-components.js +74 -70
- package/dist/versioned-package/styles/headline/headline.css.js +1 -1
- package/dist/versioned-package/styles/tailwind.css.js +1 -1
- package/dist/versioned-package/translations/de.js +7 -4
- package/dist/versioned-package/translations/en.js +7 -4
- package/dist/versioned-package/utilities/autocomplete-config.js +4 -4
- package/dist/versioned-package/utilities/localize.d.ts +3 -0
- package/dist/versioned-styles/solid-styles.css +1 -1
- package/dist/vscode.html-custom-data.json +373 -47
- package/dist/web-types.json +3335 -1813
- package/package.json +3 -3
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { TemplateResult } from 'lit';
|
|
2
|
+
import type SdOption from '../option/option.js';
|
|
3
|
+
export type OptionRenderer = (option: SdOption, query?: string) => TemplateResult | string | HTMLElement;
|
|
4
|
+
export declare const defaultOptionRenderer: OptionRenderer;
|
|
5
|
+
export declare const highlightOptionRenderer: OptionRenderer;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type SdOptGroup from '../optgroup/optgroup.js';
|
|
2
|
+
import type SdOption from '../option/option.js';
|
|
3
|
+
export declare const getAssignedElementsForSlot: (slot: HTMLSlotElement) => HTMLElement[];
|
|
4
|
+
export declare const getOptionOrNestedOptions: (item: HTMLElement) => SdOption | SdOption[];
|
|
5
|
+
export declare const isOptgroup: (item: HTMLElement) => item is SdOptGroup;
|
|
6
|
+
export declare const getAllOptions: (items: HTMLElement[]) => (SdOption | SdOption[])[];
|
|
7
|
+
export declare const filterOnlyOptgroups: (items: HTMLElement[]) => SdOptGroup[];
|
|
8
|
+
export declare const normalizeString: (str: string) => string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const getAssignedElementsForSlot = (slot) => Array.from(slot.assignedElements({ flatten: true }));
|
|
2
|
+
const getOptionOrNestedOptions = (item) => item.tagName.toLocaleLowerCase() === "sd-3-23-1-option" ? item : Array.from(item.querySelectorAll(":scope > sd-3-23-1-option"));
|
|
3
|
+
const isOptgroup = (item) => item.tagName.toLocaleLowerCase() === "sd-3-23-1-optgroup";
|
|
4
|
+
const getAllOptions = (items) => items.map(getOptionOrNestedOptions);
|
|
5
|
+
const filterOnlyOptgroups = (items) => items.filter(isOptgroup);
|
|
6
|
+
const normalizeString = (str) => str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
|
|
7
|
+
export {
|
|
8
|
+
filterOnlyOptgroups,
|
|
9
|
+
getAllOptions,
|
|
10
|
+
getAssignedElementsForSlot,
|
|
11
|
+
getOptionOrNestedOptions,
|
|
12
|
+
isOptgroup,
|
|
13
|
+
normalizeString
|
|
14
|
+
};
|
|
@@ -157,7 +157,7 @@ let SdDialog = class extends SolidElement {
|
|
|
157
157
|
)}"><div part="overlay" class="fixed inset-0 bg-primary-800 opacity-90" @click="${() => this.requestClose("overlay")}" tabindex="-1"></div><div part="panel" class="${cx(
|
|
158
158
|
"flex flex-col z-20 bg-white focus:outline-none py-4 sm:py-8 relative gap-6",
|
|
159
159
|
this.open && "flex opacity-100"
|
|
160
|
-
)}" 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-3-
|
|
160
|
+
)}" 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-3-23-1-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-3-23-1-icon label="${this.localize.term("close")}" name="close" library="system" color="currentColor"></sd-3-23-1-icon></sd-3-23-1-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>`;
|
|
161
161
|
}
|
|
162
162
|
};
|
|
163
163
|
SdDialog.styles = [
|
|
@@ -188,7 +188,7 @@ __decorateClass([
|
|
|
188
188
|
watch("open", { waitUntilFirstUpdate: true })
|
|
189
189
|
], SdDialog.prototype, "handleOpenChange", 1);
|
|
190
190
|
SdDialog = __decorateClass([
|
|
191
|
-
customElement("sd-3-
|
|
191
|
+
customElement("sd-3-23-1-dialog")
|
|
192
192
|
], SdDialog);
|
|
193
193
|
setDefaultAnimation("dialog.show", {
|
|
194
194
|
keyframes: [
|
|
@@ -34,7 +34,7 @@ let SdDivider = class extends SolidElement {
|
|
|
34
34
|
SdDivider.styles = [
|
|
35
35
|
componentStyles,
|
|
36
36
|
SolidElement.styles,
|
|
37
|
-
css`:host{margin:var(--sd-spacing-0,0)}:host(sd-3-
|
|
37
|
+
css`:host{margin:var(--sd-spacing-0,0)}:host(sd-3-23-1-divider[orientation=horizontal]){display:block}:host(sd-3-23-1-divider[orientation=vertical]){display:inline-block}`
|
|
38
38
|
];
|
|
39
39
|
__decorateClass([
|
|
40
40
|
property({ reflect: true })
|
|
@@ -43,7 +43,7 @@ __decorateClass([
|
|
|
43
43
|
property({ type: Boolean, reflect: true })
|
|
44
44
|
], SdDivider.prototype, "inverted", 2);
|
|
45
45
|
SdDivider = __decorateClass([
|
|
46
|
-
customElement("sd-3-
|
|
46
|
+
customElement("sd-3-23-1-divider")
|
|
47
47
|
], SdDivider);
|
|
48
48
|
export {
|
|
49
49
|
SdDivider as default
|
|
@@ -182,7 +182,7 @@ let SdDrawer = class extends SolidElement {
|
|
|
182
182
|
end: "top-0 end-0 bottom-auto start-auto w-[--width] h-full",
|
|
183
183
|
start: "top-0 end-auto bottom-auto start-0 w-[--width] h-full"
|
|
184
184
|
}[this.placement]
|
|
185
|
-
)}" role="dialog" aria-modal="true" aria-hidden="${this.open ? "false" : "true"}" aria-label="${this.label}" aria-labelledby="${ifDefined(!this.noHeader ? "title" : void 0)}" tabindex="0">${!this.noHeader ? html`<header part="header" class="flex justify-between py-2 px-4 items-center flex-shrink-0" style="min-height:56px"><div part="title"><slot name="header" part="title" class="flex-auto text-xl m-0" id="title"></slot></div><div class="shrink-0 flex flex-wrap justify-end gap-1 ml-4 absolute top-2 right-2"><sd-3-
|
|
185
|
+
)}" role="dialog" aria-modal="true" aria-hidden="${this.open ? "false" : "true"}" aria-label="${this.label}" aria-labelledby="${ifDefined(!this.noHeader ? "title" : void 0)}" tabindex="0">${!this.noHeader ? html`<header part="header" class="flex justify-between py-2 px-4 items-center flex-shrink-0" style="min-height:56px"><div part="title"><slot name="header" part="title" class="flex-auto text-xl m-0" id="title"></slot></div><div class="shrink-0 flex flex-wrap justify-end gap-1 ml-4 absolute top-2 right-2"><sd-3-23-1-button variant="tertiary" size="lg" part="close-button" @click="${() => this.requestClose("close-button")}"><sd-3-23-1-icon label="${this.localize.term("close")}" name="close" library="system"></sd-3-23-1-icon></sd-3-23-1-button></div></header>` : ""}<div part="body" class="flex-auto block px-4"><slot></slot></div><footer part="footer" class="${cx(this.hasSlotController.test("footer") ? "text-left p-4" : "hidden")}"><slot name="footer"></slot></footer></div></div>`;
|
|
186
186
|
}
|
|
187
187
|
};
|
|
188
188
|
SdDrawer.styles = [
|
|
@@ -221,7 +221,7 @@ __decorateClass([
|
|
|
221
221
|
watch("contained", { waitUntilFirstUpdate: true })
|
|
222
222
|
], SdDrawer.prototype, "handleNoModalChange", 1);
|
|
223
223
|
SdDrawer = __decorateClass([
|
|
224
|
-
customElement("sd-3-
|
|
224
|
+
customElement("sd-3-23-1-drawer")
|
|
225
225
|
], SdDrawer);
|
|
226
226
|
setDefaultAnimation("drawer.showStart", {
|
|
227
227
|
keyframes: [
|
|
@@ -22,6 +22,8 @@ export default class SdDropdown extends SolidElement {
|
|
|
22
22
|
connectedCallback(): void;
|
|
23
23
|
firstUpdated(): void;
|
|
24
24
|
disconnectedCallback(): void;
|
|
25
|
+
getAccessibleTrigger(): HTMLElement | null;
|
|
26
|
+
updateAccessibleTrigger(): void;
|
|
25
27
|
focusOnTrigger(): void;
|
|
26
28
|
getMenu(): SdMenu | undefined;
|
|
27
29
|
handleKeyDown(event: KeyboardEvent): void;
|
|
@@ -33,7 +35,6 @@ export default class SdDropdown extends SolidElement {
|
|
|
33
35
|
handleTriggerKeyDown(event: KeyboardEvent): void;
|
|
34
36
|
handleTriggerKeyUp(event: KeyboardEvent): void;
|
|
35
37
|
handleTriggerSlotChange(): void;
|
|
36
|
-
updateAccessibleTrigger(): void;
|
|
37
38
|
show(): Promise<void>;
|
|
38
39
|
hide(): Promise<void>;
|
|
39
40
|
reposition(): void;
|
|
@@ -45,6 +46,6 @@ export default class SdDropdown extends SolidElement {
|
|
|
45
46
|
}
|
|
46
47
|
declare global {
|
|
47
48
|
interface HTMLElementTagNameMap {
|
|
48
|
-
'sd-3-
|
|
49
|
+
'sd-3-23-1-dropdown': SdDropdown;
|
|
49
50
|
}
|
|
50
51
|
}
|
|
@@ -60,8 +60,44 @@ let SdDropdown = class extends SolidElement {
|
|
|
60
60
|
this.removeOpenListeners();
|
|
61
61
|
this.hide();
|
|
62
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Slotted triggers can be arbitrary content. The accessible trigger is the tabbable element
|
|
65
|
+
* within the slotted trigger. This could be the slotted element itself, a child of the slotted element,
|
|
66
|
+
* or an element within the slotted elements shadow root.
|
|
67
|
+
*
|
|
68
|
+
* e.g. the accessible trigger of an <sd-3-23-1-button> is a <button> located inside its shadow root.
|
|
69
|
+
*
|
|
70
|
+
* To determine this, we assume the first tabbable element in the trigger slot is the "accessible trigger."
|
|
71
|
+
* */
|
|
72
|
+
getAccessibleTrigger() {
|
|
73
|
+
const assignedElements = this.trigger.assignedElements({ flatten: true });
|
|
74
|
+
const accessibleTrigger = assignedElements.find((el) => getTabbableBoundary(el).start);
|
|
75
|
+
let target = null;
|
|
76
|
+
if (accessibleTrigger) {
|
|
77
|
+
switch (accessibleTrigger.tagName.toLowerCase()) {
|
|
78
|
+
case "sd-3-23-1-button":
|
|
79
|
+
case "sd-3-23-1-icon-button":
|
|
80
|
+
target = accessibleTrigger.button;
|
|
81
|
+
break;
|
|
82
|
+
case "sd-3-23-1-navigation-item":
|
|
83
|
+
target = accessibleTrigger.button;
|
|
84
|
+
break;
|
|
85
|
+
default:
|
|
86
|
+
target = accessibleTrigger;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return target;
|
|
90
|
+
}
|
|
91
|
+
// Slotted triggers can be arbitrary content, but we need to connect them to the dropdown panel with `aria-haspopup` and
|
|
92
|
+
// `aria-expanded`. These must be applied to the `accessible trigger`.
|
|
93
|
+
updateAccessibleTrigger() {
|
|
94
|
+
const target = this.getAccessibleTrigger();
|
|
95
|
+
if (!target) return;
|
|
96
|
+
target.setAttribute("aria-haspopup", "true");
|
|
97
|
+
target.setAttribute("aria-expanded", this.open ? "true" : "false");
|
|
98
|
+
}
|
|
63
99
|
focusOnTrigger() {
|
|
64
|
-
const trigger = this.
|
|
100
|
+
const trigger = this.getAccessibleTrigger();
|
|
65
101
|
if (typeof (trigger == null ? void 0 : trigger.focus) === "function") {
|
|
66
102
|
trigger.focus();
|
|
67
103
|
}
|
|
@@ -163,33 +199,6 @@ let SdDropdown = class extends SolidElement {
|
|
|
163
199
|
handleTriggerSlotChange() {
|
|
164
200
|
this.updateAccessibleTrigger();
|
|
165
201
|
}
|
|
166
|
-
//
|
|
167
|
-
// Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and
|
|
168
|
-
// `aria-expanded`. These must be applied to the "accessible trigger" (the tabbable portion of the trigger element
|
|
169
|
-
// that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,
|
|
170
|
-
// a child of the slotted element, or an element in the slotted element's shadow root.
|
|
171
|
-
//
|
|
172
|
-
// For example, the accessible trigger of an <sd-3-22-18-button> is a <button> located inside its shadow root.
|
|
173
|
-
//
|
|
174
|
-
// To determine this, we assume the first tabbable element in the trigger slot is the "accessible trigger."
|
|
175
|
-
//
|
|
176
|
-
updateAccessibleTrigger() {
|
|
177
|
-
const assignedElements = this.trigger.assignedElements({ flatten: true });
|
|
178
|
-
const accessibleTrigger = assignedElements.find((el) => getTabbableBoundary(el).start);
|
|
179
|
-
let target;
|
|
180
|
-
if (accessibleTrigger) {
|
|
181
|
-
switch (accessibleTrigger.tagName.toLowerCase()) {
|
|
182
|
-
case "sd-3-22-18-button":
|
|
183
|
-
case "sd-3-22-18-icon-button":
|
|
184
|
-
target = accessibleTrigger.button;
|
|
185
|
-
break;
|
|
186
|
-
default:
|
|
187
|
-
target = accessibleTrigger;
|
|
188
|
-
}
|
|
189
|
-
target.setAttribute("aria-haspopup", "true");
|
|
190
|
-
target.setAttribute("aria-expanded", this.open ? "true" : "false");
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
202
|
/** Shows the dropdown panel. */
|
|
194
203
|
async show() {
|
|
195
204
|
if (this.open) {
|
|
@@ -215,7 +224,7 @@ let SdDropdown = class extends SolidElement {
|
|
|
215
224
|
}
|
|
216
225
|
addOpenListeners() {
|
|
217
226
|
this.panel.addEventListener("sd-activate", this.handleMenuItemActivate);
|
|
218
|
-
this.panel.addEventListener("sd-3-
|
|
227
|
+
this.panel.addEventListener("sd-3-23-1-select", this.handlePanelSelect);
|
|
219
228
|
this.panel.addEventListener("keydown", this.handleKeyDown);
|
|
220
229
|
document.addEventListener("keydown", this.handleDocumentKeyDown);
|
|
221
230
|
document.addEventListener("mousedown", this.handleDocumentMouseDown);
|
|
@@ -223,7 +232,7 @@ let SdDropdown = class extends SolidElement {
|
|
|
223
232
|
removeOpenListeners() {
|
|
224
233
|
if (this.panel) {
|
|
225
234
|
this.panel.removeEventListener("sd-activate", this.handleMenuItemActivate);
|
|
226
|
-
this.panel.removeEventListener("sd-3-
|
|
235
|
+
this.panel.removeEventListener("sd-3-23-1-select", this.handlePanelSelect);
|
|
227
236
|
this.panel.removeEventListener("keydown", this.handleKeyDown);
|
|
228
237
|
}
|
|
229
238
|
document.removeEventListener("keydown", this.handleDocumentKeyDown);
|
|
@@ -256,11 +265,11 @@ let SdDropdown = class extends SolidElement {
|
|
|
256
265
|
}
|
|
257
266
|
}
|
|
258
267
|
render() {
|
|
259
|
-
return html`<sd-3-
|
|
268
|
+
return html`<sd-3-23-1-popup part="base" id="dropdown" placement="${this.placement}" distance="${this.rounded && this.distance < 1 ? 1 : this.distance}" skidding="${this.skidding}" strategy="${this.hoist ? "fixed" : "absolute"}" ?flip="${!this.noFlip}" shift auto-size="vertical" auto-size-padding="10" ?active="${this.open}"><slot name="trigger" slot="anchor" part="trigger" class="block" @click="${this.handleTriggerClick}" @keydown="${this.handleTriggerKeyDown}" @keyup="${this.handleTriggerKeyUp}" @slotchange="${this.handleTriggerSlotChange}"></slot><slot part="panel" class="${cx(
|
|
260
269
|
"shadow bg-white",
|
|
261
270
|
this.open ? "block pointer-events-auto" : "pointer-events-none",
|
|
262
271
|
this.rounded && "rounded-md"
|
|
263
|
-
)}" aria-hidden="${this.open ? "false" : "true"}" aria-labelledby="dropdown"></slot></sd-3-
|
|
272
|
+
)}" aria-hidden="${this.open ? "false" : "true"}" aria-labelledby="dropdown"></slot></sd-3-23-1-popup>`;
|
|
264
273
|
}
|
|
265
274
|
};
|
|
266
275
|
SdDropdown.styles = [
|
|
@@ -314,7 +323,7 @@ __decorateClass([
|
|
|
314
323
|
watch("open", { waitUntilFirstUpdate: true })
|
|
315
324
|
], SdDropdown.prototype, "handleOpenChange", 1);
|
|
316
325
|
SdDropdown = __decorateClass([
|
|
317
|
-
customElement("sd-3-
|
|
326
|
+
customElement("sd-3-23-1-dropdown")
|
|
318
327
|
], SdDropdown);
|
|
319
328
|
setDefaultAnimation("dropdown.show", {
|
|
320
329
|
keyframes: [
|
|
@@ -70,7 +70,7 @@ let SdExpandable = class extends SolidElement {
|
|
|
70
70
|
"sd-interactive sd-interactive--reset !h-full !justify-center !w-full !text-base !flex !items-center !underline !underline-offset-2 !toggle",
|
|
71
71
|
this.inverted && "sd-interactive--inverted",
|
|
72
72
|
!this.inverted ? "!focus-visible:focus-outline" : "!focus-visible:focus-outline-inverted"
|
|
73
|
-
)}" @click="${this.onToggleClick}">${this.open ? html`<slot name="toggle-open"><sd-3-
|
|
73
|
+
)}" @click="${this.onToggleClick}">${this.open ? html`<slot name="toggle-open"><sd-3-23-1-icon class="mr-2 text-xl" library="system" name="chevron-up"></sd-3-23-1-icon>${this.localize.term("showLess")}</slot>` : html`<slot name="toggle-closed"><sd-3-23-1-icon class="mr-2 text-xl" library="system" name="chevron-down"></sd-3-23-1-icon>${this.localize.term("showMore")}</slot>`}</button>`;
|
|
74
74
|
}
|
|
75
75
|
firstUpdated() {
|
|
76
76
|
this.cloneContentToLightDOM();
|
|
@@ -109,7 +109,7 @@ __decorateClass([
|
|
|
109
109
|
watch("open", { waitUntilFirstUpdate: true })
|
|
110
110
|
], SdExpandable.prototype, "onOpenChange", 1);
|
|
111
111
|
SdExpandable = __decorateClass([
|
|
112
|
-
customElement("sd-3-
|
|
112
|
+
customElement("sd-3-23-1-expandable")
|
|
113
113
|
], SdExpandable);
|
|
114
114
|
export {
|
|
115
115
|
SdExpandable as default
|
|
@@ -173,7 +173,7 @@ __decorateClass([
|
|
|
173
173
|
property({ type: String, reflect: true, attribute: "back-variant" })
|
|
174
174
|
], SdFlipcard.prototype, "backVariant", 2);
|
|
175
175
|
SdFlipcard = __decorateClass([
|
|
176
|
-
customElement("sd-3-
|
|
176
|
+
customElement("sd-3-23-1-flipcard")
|
|
177
177
|
], SdFlipcard);
|
|
178
178
|
export {
|
|
179
179
|
SdFlipcard as default
|
|
@@ -63,11 +63,11 @@ let SdHeader = class extends SolidElement {
|
|
|
63
63
|
setCalculatedHeightProperty() {
|
|
64
64
|
if (this.fixed && this.refHeaderElement) {
|
|
65
65
|
document.documentElement.style.setProperty(
|
|
66
|
-
"--sd-3-
|
|
66
|
+
"--sd-3-23-1-header-calculated-height",
|
|
67
67
|
`${this.refHeaderElement.clientHeight}px`
|
|
68
68
|
);
|
|
69
69
|
} else {
|
|
70
|
-
document.documentElement.style.removeProperty("--sd-3-
|
|
70
|
+
document.documentElement.style.removeProperty("--sd-3-23-1-header-calculated-height");
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
render() {
|
|
@@ -84,7 +84,7 @@ let SdHeader = class extends SolidElement {
|
|
|
84
84
|
SdHeader.styles = [
|
|
85
85
|
SolidElement.styles,
|
|
86
86
|
componentStyles,
|
|
87
|
-
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-3-
|
|
87
|
+
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-3-23-1-header-inner-width);max-width:var(--sd-3-23-1-header-inner-max-width);padding:var(--sd-3-23-1-header-padding,12px 16px)}`
|
|
88
88
|
];
|
|
89
89
|
__decorateClass([
|
|
90
90
|
property({ reflect: true, type: Boolean })
|
|
@@ -93,7 +93,7 @@ __decorateClass([
|
|
|
93
93
|
debounce(100)
|
|
94
94
|
], SdHeader.prototype, "onResize", 1);
|
|
95
95
|
SdHeader = __decorateClass([
|
|
96
|
-
customElement("sd-3-
|
|
96
|
+
customElement("sd-3-23-1-header")
|
|
97
97
|
], SdHeader);
|
|
98
98
|
export {
|
|
99
99
|
SdHeader as default
|
|
@@ -278,13 +278,13 @@ let SdInput = class extends SolidElement {
|
|
|
278
278
|
"min-w-0 flex-grow focus:outline-none bg-transparent placeholder-neutral-700",
|
|
279
279
|
this.size === "sm" ? "h-6" : "h-8",
|
|
280
280
|
textSize
|
|
281
|
-
)}" 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 invalid-message" @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-3-
|
|
281
|
+
)}" 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 invalid-message" @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-3-23-1-icon class="${cx("icon-fill-neutral-800", iconSize)}" library="system" name="closing-round"></sd-3-23-1-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-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="eye"></sd-3-23-1-icon></slot>` : html`<slot name="hide-password-icon"><sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="eye-crossed-out"></sd-3-23-1-icon></slot>`}</button>` : ""} ${(this.type === "date" || this.type === "datetime-local") && !isFirefox ? html`<sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="calendar"></sd-3-23-1-icon>` : ""} ${this.type === "time" ? html`<sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="clock"></sd-3-23-1-icon>` : ""} ${this.type === "search" ? html`<button class="flex items-center" type="button" tabindex="-1"><sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="magnifying-glass"></sd-3-23-1-icon></button>` : ""} ${this.showInvalidStyle ? html`<sd-3-23-1-icon part="invalid-icon" class="${cx("text-error", iconMarginLeft, iconSize)}" library="system" name="risk"></sd-3-23-1-icon>` : ""} ${this.showValidStyle && this.styleOnValid ? html`<sd-3-23-1-icon class="${cx("text-success flex-shrink-0", iconMarginLeft, iconSize)}" library="system" name="status-check" part="valid-icon"></sd-3-23-1-icon>` : ""} ${slots["right"] ? html`<slot name="right" part="right" class="${cx("inline-flex", iconColor, iconMarginLeft, iconSize)}"></slot>` : ""} ${this.type === "number" && this.spinButtons ? html`<div part="stepper" class="flex items-center"><button part="decrement-number-stepper" class="stepper-button flex" type="button" ?disabled="${this.isDecrementDisabled()}" aria-hidden="true" ${longPress({ start: () => this.handleStepDown(), end: () => this.handleChange() })} tabindex="-1"><slot name="decrement-number-stepper"><sd-3-23-1-icon name="system/minus-circle" label="Decrease value" class="${cx(iconColor, iconMarginLeft, iconSize)}"></sd-3-23-1-icon></slot></button> <button part="increment-number-stepper" class="stepper-button flex" type="button" ?disabled="${this.isIncrementDisabled()}" aria-hidden="true" ${longPress({ start: () => this.handleStepUp(), end: () => this.handleChange() })} tabindex="-1"><slot name="increment-number-stepper"><sd-3-23-1-icon name="system/plus-circle" label="Decrease value" class="${cx(iconColor, iconMarginLeft, iconSize)}"></sd-3-23-1-icon></slot></button></div>` : ""}</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}">${this.helpText}</slot></div>${this.formControlController.renderInvalidMessage()}`;
|
|
282
282
|
}
|
|
283
283
|
};
|
|
284
284
|
SdInput.styles = [
|
|
285
285
|
componentStyles,
|
|
286
286
|
SolidElement.styles,
|
|
287
|
-
css`:host{position:relative;box-sizing:border-box;display:inline-block;width:100%;text-align:left}:host([vertical]){display:block}:host([required]) #label::after{content:' *'}details summary::-webkit-details-marker{display:none}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input[type=time]::-webkit-calendar-picker-indicator{background:0 0}details summary::-webkit-details-marker,input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}.stepper-button[disabled] sd-3-
|
|
287
|
+
css`:host{position:relative;box-sizing:border-box;display:inline-block;width:100%;text-align:left}:host([vertical]){display:block}:host([required]) #label::after{content:' *'}details summary::-webkit-details-marker{display:none}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input[type=time]::-webkit-calendar-picker-indicator{background:0 0}details summary::-webkit-details-marker,input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}.stepper-button[disabled] sd-3-23-1-icon{--tw-text-opacity:1;color:rgb(var(--sd-color-neutral-500,174 174 174) / var(--tw-text-opacity))}`
|
|
288
288
|
];
|
|
289
289
|
__decorateClass([
|
|
290
290
|
query("#input")
|
|
@@ -411,7 +411,7 @@ __decorateClass([
|
|
|
411
411
|
watch("value", { waitUntilFirstUpdate: true })
|
|
412
412
|
], SdInput.prototype, "handleValueChange", 1);
|
|
413
413
|
SdInput = __decorateClass([
|
|
414
|
-
customElement("sd-3-
|
|
414
|
+
customElement("sd-3-23-1-input")
|
|
415
415
|
], SdInput);
|
|
416
416
|
export {
|
|
417
417
|
SdInput as default
|
|
@@ -76,7 +76,7 @@ let SdLink = class extends SolidElement {
|
|
|
76
76
|
};
|
|
77
77
|
SdLink.styles = [
|
|
78
78
|
SolidElement.styles,
|
|
79
|
-
css`::slotted(sd-3-
|
|
79
|
+
css`::slotted(sd-3-23-1-icon){font-size:1.25em;margin-bottom:-.25em}:host([size=sm][standalone]) ::slotted(sd-3-23-1-icon){font-size:var(--sd-font-size-base,1rem)}:host([size=lg][standalone]) ::slotted(sd-3-23-1-icon){font-size:var(--sd-font-size-xl,1.5rem)}`
|
|
80
80
|
];
|
|
81
81
|
__decorateClass([
|
|
82
82
|
query("a")
|
|
@@ -100,7 +100,7 @@ __decorateClass([
|
|
|
100
100
|
property()
|
|
101
101
|
], SdLink.prototype, "download", 2);
|
|
102
102
|
SdLink = __decorateClass([
|
|
103
|
-
customElement("sd-3-
|
|
103
|
+
customElement("sd-3-23-1-link")
|
|
104
104
|
], SdLink);
|
|
105
105
|
export {
|
|
106
106
|
SdLink as default
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import SolidElement from '../../internal/solid-element';
|
|
2
2
|
export default class SdNavigationItem extends SolidElement {
|
|
3
3
|
private readonly hasSlotController;
|
|
4
|
+
button: HTMLButtonElement | HTMLLinkElement | null;
|
|
4
5
|
vertical: boolean;
|
|
5
6
|
size: 'base' | 'lg' | 'sm';
|
|
6
7
|
href: string;
|
|
@@ -28,6 +29,6 @@ export default class SdNavigationItem extends SolidElement {
|
|
|
28
29
|
}
|
|
29
30
|
declare global {
|
|
30
31
|
interface HTMLElementTagNameMap {
|
|
31
|
-
'sd-3-
|
|
32
|
+
'sd-3-23-1-navigation-item': SdNavigationItem;
|
|
32
33
|
}
|
|
33
34
|
}
|
|
@@ -3,7 +3,7 @@ import { customElement } from "../../internal/register-custom-element.js";
|
|
|
3
3
|
import { HasSlotController } from "../../internal/slot.js";
|
|
4
4
|
import { literal, html } from "lit/static-html.js";
|
|
5
5
|
import { ifDefined } from "lit/directives/if-defined.js";
|
|
6
|
-
import { property } from "lit/decorators.js";
|
|
6
|
+
import { query, property } from "lit/decorators.js";
|
|
7
7
|
import componentStyles from "../../styles/component.styles.js";
|
|
8
8
|
import cx from "classix";
|
|
9
9
|
import InteractiveStyles from "../../styles/interactive/interactive.css.js";
|
|
@@ -115,16 +115,16 @@ let SdNavigationItem = class extends SolidElement {
|
|
|
115
115
|
isAccordion ? "grow" : "w-full",
|
|
116
116
|
slots["description"] || this.separated ? "pb-1" : horizontalPaddingBottom,
|
|
117
117
|
this.calculatePaddingX
|
|
118
|
-
)}">${this.divider && this.vertical ? html`<sd-3-
|
|
118
|
+
)}">${this.divider && this.vertical ? html`<sd-3-23-1-divider part="divider" class="${cx("w-full transition-all absolute -top-0.25 left-0", this.calculatePaddingX)}"></sd-3-23-1-divider>` : ""} <span part="content-container" class="inline-flex items-center flex-auto">${this.separated ? html`<a class="${cx(
|
|
119
119
|
"mr-4 w-full inline-flex items-center pl-4 cursor-pointer relative focus-visible:focus-outline hover:bg-neutral-200 group transition-all min-h-[48px]",
|
|
120
120
|
!slots["description"] && "py-4"
|
|
121
|
-
)}" href="${ifDefined(isLink ? this.href : void 0)}" target="${ifDefined(isLink ? this.target : void 0)}" download="${ifDefined(isLink ? this.download : void 0)}"><slot part="content" class="inline"></slot></a>` : html`<slot part="content" class="inline"></slot>`} </span>${(this.chevron || slots["children"]) && this.vertical ? this.separated ? html`<button type="button" title="toggle-details" class="sd-interactive sd-interactive--reset" @click="${this.handleClickSummary}"><sd-3-
|
|
121
|
+
)}" href="${ifDefined(isLink ? this.href : void 0)}" target="${ifDefined(isLink ? this.target : void 0)}" download="${ifDefined(isLink ? this.download : void 0)}"><slot part="content" class="inline"></slot></a>` : html`<slot part="content" class="inline"></slot>`} </span>${(this.chevron || slots["children"]) && this.vertical ? this.separated ? html`<button type="button" title="toggle-details" class="sd-interactive sd-interactive--reset" @click="${this.handleClickSummary}"><sd-3-23-1-icon name="chevron-down" part="chevron" library="system" color="currentColor" class="${cx(
|
|
122
122
|
"mr-4 h-6 w-6 transition-all",
|
|
123
123
|
isAccordion || this.separated ? this.open ? "rotate-180" : "rotate-0" : "rotate-[270deg]"
|
|
124
|
-
)}"></sd-3-
|
|
124
|
+
)}"></sd-3-23-1-icon></button>` : html`<sd-3-23-1-icon name="chevron-down" part="chevron" library="system" color="currentColor" class="${cx(
|
|
125
125
|
"h-6 w-6 ml-2 transition-all",
|
|
126
126
|
isAccordion ? this.open ? "rotate-180" : "rotate-0" : "rotate-[270deg]"
|
|
127
|
-
)}"></sd-3-
|
|
127
|
+
)}"></sd-3-23-1-icon>` : ""} </span>${slots["description"] && this.vertical ? html`<slot name="description" part="description" class="${cx(
|
|
128
128
|
"inline-block text-sm text-left text-black",
|
|
129
129
|
isAccordion || this.separated ? "grow" : "w-full",
|
|
130
130
|
this.separated ? "px-4" : this.calculatePaddingX,
|
|
@@ -145,6 +145,9 @@ SdNavigationItem.styles = [
|
|
|
145
145
|
unsafeCSS(InteractiveStyles),
|
|
146
146
|
css`:host{position:relative;box-sizing:border-box;display:inline-block}:host([vertical]){display:block}details summary::-webkit-details-marker{display:none}`
|
|
147
147
|
];
|
|
148
|
+
__decorateClass([
|
|
149
|
+
query('a[part="base"], button[part="base"]')
|
|
150
|
+
], SdNavigationItem.prototype, "button", 2);
|
|
148
151
|
__decorateClass([
|
|
149
152
|
property({ type: Boolean, reflect: true })
|
|
150
153
|
], SdNavigationItem.prototype, "vertical", 2);
|
|
@@ -185,7 +188,7 @@ __decorateClass([
|
|
|
185
188
|
property({ type: Boolean, reflect: true })
|
|
186
189
|
], SdNavigationItem.prototype, "separated", 2);
|
|
187
190
|
SdNavigationItem = __decorateClass([
|
|
188
|
-
customElement("sd-3-
|
|
191
|
+
customElement("sd-3-23-1-navigation-item")
|
|
189
192
|
], SdNavigationItem);
|
|
190
193
|
export {
|
|
191
194
|
SdNavigationItem as default
|