@sekiui/elements 0.0.88 → 0.1.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/cdn/p-C9-yH6MD.js +33 -0
- package/dist/cdn/p-CQQRfw1L.js +18 -0
- package/dist/cdn/seki-carousel-dots.js +7 -3
- package/dist/cdn/seki-carousel-next.js +8 -6
- package/dist/cdn/seki-carousel-previous.js +8 -6
- package/dist/cdn/seki-carousel.js +15 -1
- package/dist/cdn/seki-date-picker.js +71 -36
- package/dist/cdn/seki-drawer.js +76 -32
- package/dist/cdn/seki-hover-card-content.js +2 -2
- package/dist/cdn/seki-hover-card-trigger.js +3 -3
- package/dist/cdn/seki-hover-card.js +59 -4
- package/dist/cdn/seki-resizable-handle.js +11 -2
- package/dist/cdn/seki-resizable-panel-group.js +9 -3
- package/dist/cdn/seki-resizable-panel.js +42 -20
- package/dist/cdn/seki-select-content.js +21 -13
- package/dist/cdn/seki-select-group.js +3 -4
- package/dist/cdn/seki-select-option.js +33 -15
- package/dist/cdn/seki-select-trigger.js +6 -4
- package/dist/cdn/seki-select.js +2 -2
- package/dist/cdn/seki-sheet.js +71 -30
- package/dist/cdn/seki-sidebar-footer.js +3 -1
- package/dist/cdn/seki-sidebar-header.js +3 -1
- package/dist/cdn/seki-sidebar-menu-button.js +3 -1
- package/dist/cdn/seki-sidebar-rail.js +3 -1
- package/dist/cdn/seki-sidebar-trigger.js +6 -1
- package/dist/cdn/seki-sidebar.js +5 -2
- package/dist/cdn/seki-tooltip.js +47 -2
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/option-id-wIa73qWK.js +20 -0
- package/dist/cjs/seki-carousel-dots.cjs.entry.js +7 -3
- package/dist/cjs/seki-carousel-next.cjs.entry.js +8 -6
- package/dist/cjs/seki-carousel-previous.cjs.entry.js +8 -6
- package/dist/cjs/seki-carousel.cjs.entry.js +15 -1
- package/dist/cjs/seki-date-picker.cjs.entry.js +64 -32
- package/dist/cjs/seki-drawer.cjs.entry.js +67 -27
- package/dist/cjs/seki-hover-card-content.cjs.entry.js +2 -2
- package/dist/cjs/seki-hover-card-trigger.cjs.entry.js +3 -3
- package/dist/cjs/seki-hover-card.cjs.entry.js +53 -3
- package/dist/cjs/seki-resizable-handle.cjs.entry.js +11 -2
- package/dist/cjs/seki-resizable-panel-group.cjs.entry.js +9 -3
- package/dist/cjs/seki-resizable-panel.cjs.entry.js +42 -20
- package/dist/cjs/seki-select-content.cjs.entry.js +20 -11
- package/dist/cjs/seki-select-group.cjs.entry.js +2 -2
- package/dist/cjs/seki-select-option.cjs.entry.js +32 -13
- package/dist/cjs/seki-select-trigger.cjs.entry.js +5 -2
- package/dist/cjs/seki-select.cjs.entry.js +2 -2
- package/dist/cjs/seki-sheet.cjs.entry.js +62 -25
- package/dist/cjs/seki-sidebar-footer.cjs.entry.js +3 -1
- package/dist/cjs/seki-sidebar-header.cjs.entry.js +3 -1
- package/dist/cjs/seki-sidebar-menu-button.cjs.entry.js +3 -1
- package/dist/cjs/seki-sidebar-rail.cjs.entry.js +3 -1
- package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +6 -1
- package/dist/cjs/seki-sidebar.cjs.entry.js +5 -2
- package/dist/cjs/seki-tooltip.cjs.entry.js +43 -2
- package/dist/cjs/sekiui.cjs.js +1 -1
- package/dist/cjs/when-defined-B2Lkz6uR.js +36 -0
- package/dist/collection/components/carousel/seki-carousel-dots.js +7 -3
- package/dist/collection/components/carousel/seki-carousel-next.js +8 -6
- package/dist/collection/components/carousel/seki-carousel-previous.js +8 -6
- package/dist/collection/components/carousel/seki-carousel.js +15 -1
- package/dist/collection/components/date-picker/seki-date-picker.js +124 -36
- package/dist/collection/components/drawer/seki-drawer.js +132 -31
- package/dist/collection/components/hover-card/seki-hover-card-content.js +2 -2
- package/dist/collection/components/hover-card/seki-hover-card-trigger.js +3 -3
- package/dist/collection/components/hover-card/seki-hover-card.js +142 -6
- package/dist/collection/components/resizable/seki-resizable-handle.js +11 -2
- package/dist/collection/components/resizable/seki-resizable-panel-group.js +23 -3
- package/dist/collection/components/resizable/seki-resizable-panel.js +42 -20
- package/dist/collection/components/select/seki-select.js +6 -12
- package/dist/collection/components/select-content/seki-select-content.css +8 -0
- package/dist/collection/components/select-content/seki-select-content.js +20 -11
- package/dist/collection/components/select-group/seki-select-group.js +2 -2
- package/dist/collection/components/select-option/seki-select-option.js +32 -13
- package/dist/collection/components/select-trigger/seki-select-trigger.js +5 -2
- package/dist/collection/components/sheet/seki-sheet.js +127 -29
- package/dist/collection/components/sidebar/seki-sidebar-footer.js +3 -1
- package/dist/collection/components/sidebar/seki-sidebar-header.js +3 -1
- package/dist/collection/components/sidebar/seki-sidebar-menu-button.js +3 -1
- package/dist/collection/components/sidebar/seki-sidebar-rail.js +3 -1
- package/dist/collection/components/sidebar/seki-sidebar-trigger.js +6 -1
- package/dist/collection/components/sidebar/seki-sidebar.js +5 -2
- package/dist/collection/components/tooltip/seki-tooltip.js +92 -2
- package/dist/collection/utils/select/index.js +1 -0
- package/dist/collection/utils/select/option-id.js +16 -0
- package/dist/collection/utils/when-defined.js +31 -0
- package/dist/components/p-C9-yH6MD.js +33 -0
- package/dist/components/p-CQQRfw1L.js +18 -0
- package/dist/components/seki-carousel-dots.js +7 -3
- package/dist/components/seki-carousel-next.js +8 -6
- package/dist/components/seki-carousel-previous.js +8 -6
- package/dist/components/seki-carousel.js +15 -1
- package/dist/components/seki-date-picker.js +71 -36
- package/dist/components/seki-drawer.js +76 -32
- package/dist/components/seki-hover-card-content.js +2 -2
- package/dist/components/seki-hover-card-trigger.js +3 -3
- package/dist/components/seki-hover-card.js +59 -4
- package/dist/components/seki-resizable-handle.js +11 -2
- package/dist/components/seki-resizable-panel-group.js +9 -3
- package/dist/components/seki-resizable-panel.js +42 -20
- package/dist/components/seki-select-content.js +21 -13
- package/dist/components/seki-select-group.js +3 -4
- package/dist/components/seki-select-option.js +33 -15
- package/dist/components/seki-select-trigger.js +6 -4
- package/dist/components/seki-select.js +2 -2
- package/dist/components/seki-sheet.js +71 -30
- package/dist/components/seki-sidebar-footer.js +3 -1
- package/dist/components/seki-sidebar-header.js +3 -1
- package/dist/components/seki-sidebar-menu-button.js +3 -1
- package/dist/components/seki-sidebar-rail.js +3 -1
- package/dist/components/seki-sidebar-trigger.js +6 -1
- package/dist/components/seki-sidebar.js +5 -2
- package/dist/components/seki-tooltip.js +47 -2
- package/dist/esm/loader.js +1 -1
- package/dist/esm/option-id-CQQRfw1L.js +18 -0
- package/dist/esm/seki-carousel-dots.entry.js +7 -3
- package/dist/esm/seki-carousel-next.entry.js +8 -6
- package/dist/esm/seki-carousel-previous.entry.js +8 -6
- package/dist/esm/seki-carousel.entry.js +15 -1
- package/dist/esm/seki-date-picker.entry.js +64 -32
- package/dist/esm/seki-drawer.entry.js +67 -27
- package/dist/esm/seki-hover-card-content.entry.js +2 -2
- package/dist/esm/seki-hover-card-trigger.entry.js +3 -3
- package/dist/esm/seki-hover-card.entry.js +53 -3
- package/dist/esm/seki-resizable-handle.entry.js +11 -2
- package/dist/esm/seki-resizable-panel-group.entry.js +9 -3
- package/dist/esm/seki-resizable-panel.entry.js +42 -20
- package/dist/esm/seki-select-content.entry.js +20 -11
- package/dist/esm/seki-select-group.entry.js +2 -2
- package/dist/esm/seki-select-option.entry.js +32 -13
- package/dist/esm/seki-select-trigger.entry.js +5 -2
- package/dist/esm/seki-select.entry.js +2 -2
- package/dist/esm/seki-sheet.entry.js +62 -25
- package/dist/esm/seki-sidebar-footer.entry.js +3 -1
- package/dist/esm/seki-sidebar-header.entry.js +3 -1
- package/dist/esm/seki-sidebar-menu-button.entry.js +3 -1
- package/dist/esm/seki-sidebar-rail.entry.js +3 -1
- package/dist/esm/seki-sidebar-trigger.entry.js +6 -1
- package/dist/esm/seki-sidebar.entry.js +5 -2
- package/dist/esm/seki-tooltip.entry.js +43 -2
- package/dist/esm/sekiui.js +1 -1
- package/dist/esm/when-defined-C9-yH6MD.js +33 -0
- package/dist/sekiui/p-02f1728e.entry.js +1 -0
- package/dist/sekiui/p-05b33a61.entry.js +1 -0
- package/dist/sekiui/p-12e36a4f.entry.js +1 -0
- package/dist/sekiui/p-1cd6b3e6.entry.js +1 -0
- package/dist/sekiui/p-1e24698b.entry.js +1 -0
- package/dist/sekiui/p-26bb17cb.entry.js +1 -0
- package/dist/sekiui/p-26d433ff.entry.js +1 -0
- package/dist/sekiui/p-26f96e2d.entry.js +1 -0
- package/dist/sekiui/p-29b22c0f.entry.js +1 -0
- package/dist/sekiui/p-30fafcc6.entry.js +1 -0
- package/dist/sekiui/p-3de5878b.entry.js +1 -0
- package/dist/sekiui/p-649dbdf0.entry.js +1 -0
- package/dist/sekiui/p-71656184.entry.js +1 -0
- package/dist/sekiui/p-7926c04a.entry.js +1 -0
- package/dist/sekiui/p-9f4149b9.entry.js +1 -0
- package/dist/sekiui/p-C9-yH6MD.js +1 -0
- package/dist/sekiui/p-CQQRfw1L.js +1 -0
- package/dist/sekiui/p-ae87ca35.entry.js +1 -0
- package/dist/sekiui/p-b82c2267.entry.js +1 -0
- package/dist/sekiui/p-bf151423.entry.js +1 -0
- package/dist/sekiui/{p-219c8350.entry.js → p-c0f21b6a.entry.js} +1 -1
- package/dist/sekiui/p-c3ef507f.entry.js +1 -0
- package/dist/sekiui/p-d10a186d.entry.js +1 -0
- package/dist/sekiui/p-d1c72c91.entry.js +1 -0
- package/dist/sekiui/p-d1d3ae40.entry.js +1 -0
- package/dist/sekiui/p-fba3fa73.entry.js +1 -0
- package/dist/sekiui/p-fe3e661d.entry.js +1 -0
- package/dist/sekiui/sekiui.esm.js +1 -1
- package/dist/types/components/carousel/seki-carousel.d.ts +1 -0
- package/dist/types/components/date-picker/seki-date-picker.d.ts +21 -5
- package/dist/types/components/drawer/seki-drawer.d.ts +22 -6
- package/dist/types/components/hover-card/seki-hover-card.d.ts +24 -4
- package/dist/types/components/resizable/seki-resizable-handle.d.ts +1 -0
- package/dist/types/components/resizable/seki-resizable-panel-group.d.ts +6 -0
- package/dist/types/components/resizable/seki-resizable-panel.d.ts +9 -0
- package/dist/types/components/select/seki-select.d.ts +3 -3
- package/dist/types/components/select-content/seki-select-content.d.ts +8 -5
- package/dist/types/components/select-option/seki-select-option.d.ts +6 -4
- package/dist/types/components/sheet/seki-sheet.d.ts +22 -6
- package/dist/types/components/tooltip/seki-tooltip.d.ts +13 -0
- package/dist/types/components.d.ts +145 -17
- package/dist/types/utils/select/index.d.ts +1 -0
- package/dist/types/utils/select/option-id.d.ts +14 -0
- package/dist/types/utils/select/types.d.ts +0 -7
- package/dist/types/utils/when-defined.d.ts +19 -0
- package/package.json +3 -1
- package/dist/sekiui/p-01f26bec.entry.js +0 -1
- package/dist/sekiui/p-117b6f5a.entry.js +0 -1
- package/dist/sekiui/p-1250cad1.entry.js +0 -1
- package/dist/sekiui/p-1866201e.entry.js +0 -1
- package/dist/sekiui/p-2e18933c.entry.js +0 -1
- package/dist/sekiui/p-2e2e7d0b.entry.js +0 -1
- package/dist/sekiui/p-346cc18f.entry.js +0 -1
- package/dist/sekiui/p-6311a4d8.entry.js +0 -1
- package/dist/sekiui/p-69843ed8.entry.js +0 -1
- package/dist/sekiui/p-779764c0.entry.js +0 -1
- package/dist/sekiui/p-786c153b.entry.js +0 -1
- package/dist/sekiui/p-87bcbb66.entry.js +0 -1
- package/dist/sekiui/p-88dd3e1f.entry.js +0 -1
- package/dist/sekiui/p-944c70a1.entry.js +0 -1
- package/dist/sekiui/p-9820cd16.entry.js +0 -1
- package/dist/sekiui/p-9abfa3a5.entry.js +0 -1
- package/dist/sekiui/p-ac7bd611.entry.js +0 -1
- package/dist/sekiui/p-b45e11d8.entry.js +0 -1
- package/dist/sekiui/p-c62c4ad7.entry.js +0 -1
- package/dist/sekiui/p-caa51bdf.entry.js +0 -1
- package/dist/sekiui/p-ce986fde.entry.js +0 -1
- package/dist/sekiui/p-e45e6992.entry.js +0 -1
- package/dist/sekiui/p-ede4bb0c.entry.js +0 -1
- package/dist/sekiui/p-f4abd9a2.entry.js +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
|
+
import { buildOptionId } from "../../utils/select";
|
|
2
3
|
import { syncTheme } from "../../utils/theme-sync";
|
|
3
4
|
import { subscribeToContextChange } from "../../utils/context-bridge";
|
|
4
5
|
/**
|
|
@@ -15,19 +16,20 @@ export class SekiSelectOption {
|
|
|
15
16
|
this.hasRegistered = false;
|
|
16
17
|
this.contextSubscription = { parent: null, unsubscribe: () => { } };
|
|
17
18
|
/**
|
|
18
|
-
* Refresh aria-selected/data-selected/data-focused directly on the
|
|
19
|
-
* DOM whenever the parent's value/focus state changes post-mount.
|
|
20
|
-
* applied imperatively rather than through a Stencil @State bump +
|
|
19
|
+
* Refresh aria-selected/data-selected/data-focused directly on the
|
|
20
|
+
* rendered DOM whenever the parent's value/focus state changes post-mount.
|
|
21
|
+
* This is applied imperatively rather than through a Stencil @State bump +
|
|
22
|
+
* render()
|
|
21
23
|
* — a component that reads a parent's state via closest() + an
|
|
22
24
|
* addEventListener callback and relies on render() re-invoking to reflect
|
|
23
25
|
* it is a confirmed-unreliable shape in this codebase (#244). Mutating the
|
|
24
|
-
*
|
|
26
|
+
* DOM directly here side-steps that entirely.
|
|
25
27
|
*/
|
|
26
28
|
this.handleParentContextChange = () => {
|
|
27
|
-
|
|
28
|
-
const optionEl = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.option');
|
|
29
|
+
const optionEl = this.el.querySelector('.option');
|
|
29
30
|
if (!optionEl)
|
|
30
31
|
return;
|
|
32
|
+
optionEl.id = this.optionId;
|
|
31
33
|
const selectContext = this.getSelectContext();
|
|
32
34
|
const isSelected = (selectContext === null || selectContext === void 0 ? void 0 : selectContext.isValueSelected(this.value)) || false;
|
|
33
35
|
const isFocused = (selectContext === null || selectContext === void 0 ? void 0 : selectContext.focusedOptionValue) === this.value;
|
|
@@ -75,15 +77,21 @@ export class SekiSelectOption {
|
|
|
75
77
|
// ===========================
|
|
76
78
|
// State
|
|
77
79
|
// ===========================
|
|
78
|
-
//
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
80
|
+
// Real, page-scoped DOM id as of #300 (scoped, non-shadow rendering) —
|
|
81
|
+
// seki-select-trigger's aria-activedescendant references this directly, so
|
|
82
|
+
// it must stay collision-free across multiple <seki-select> instances on
|
|
83
|
+
// one page. Prefixed with the parent select's own randomized contentId via
|
|
84
|
+
// buildOptionId (shared with seki-select-trigger so both compute the exact
|
|
85
|
+
// same string); falls back to the literal string 'select' if no parent
|
|
86
|
+
// context is available yet (e.g. before componentDidLoad registers it).
|
|
82
87
|
get optionId() {
|
|
83
|
-
|
|
88
|
+
var _a;
|
|
89
|
+
const selectContext = this.getSelectContext();
|
|
90
|
+
return buildOptionId((_a = selectContext === null || selectContext === void 0 ? void 0 : selectContext.contentId) !== null && _a !== void 0 ? _a : 'select', this.value);
|
|
84
91
|
}
|
|
85
92
|
componentDidLoad() {
|
|
86
93
|
this.registerWithParent();
|
|
94
|
+
this.refreshOptionId();
|
|
87
95
|
this.contextSubscription = subscribeToContextChange(this.el, 'seki-select', this.handleParentContextChange);
|
|
88
96
|
}
|
|
89
97
|
connectedCallback() {
|
|
@@ -101,6 +109,17 @@ export class SekiSelectOption {
|
|
|
101
109
|
selectContext === null || selectContext === void 0 ? void 0 : selectContext.unregisterOption(this.value);
|
|
102
110
|
this.contextSubscription.unsubscribe();
|
|
103
111
|
}
|
|
112
|
+
// If render() ran before the parent's selectContext was available (see the
|
|
113
|
+
// 'select' fallback in optionId's getter above), the DOM id was baked in as
|
|
114
|
+
// a non-unique placeholder. componentDidLoad and every later context change
|
|
115
|
+
// both call this to correct it once the real contentId is known — cheap
|
|
116
|
+
// because it's just an attribute write, not a structural re-render.
|
|
117
|
+
refreshOptionId() {
|
|
118
|
+
const optionEl = this.el.querySelector('.option');
|
|
119
|
+
if (optionEl) {
|
|
120
|
+
optionEl.id = this.optionId;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
104
123
|
registerWithParent() {
|
|
105
124
|
var _a;
|
|
106
125
|
const selectContext = this.getSelectContext();
|
|
@@ -126,10 +145,10 @@ export class SekiSelectOption {
|
|
|
126
145
|
const selectContext = this.getSelectContext();
|
|
127
146
|
const isSelected = (selectContext === null || selectContext === void 0 ? void 0 : selectContext.isValueSelected(this.value)) || false;
|
|
128
147
|
const isFocused = (selectContext === null || selectContext === void 0 ? void 0 : selectContext.focusedOptionValue) === this.value;
|
|
129
|
-
return (h(Host, { key: '
|
|
148
|
+
return (h(Host, { key: '5e81a06da7048aeea965ec7a1f3be01c38610b14' }, h("div", { key: '3129f00c2f8be28153ea68d4ad3552d5fe5babf2', class: "option", role: "option", id: this.optionId, onClick: this.handleOptionClick, onFocus: this.handleOptionFocus, onKeyDown: this.handleOptionKeyDown, "aria-selected": isSelected ? 'true' : 'false', "aria-disabled": this.disabled ? 'true' : undefined, "data-selected": isSelected ? 'true' : undefined, "data-focused": isFocused ? 'true' : undefined, "data-disabled": this.disabled ? 'true' : undefined, tabindex: -1 }, h("span", { key: 'fa3daec06f3f25a8339cde8ed9e19778bec0f515', class: "option-label" }, h("slot", { key: 'd778727c4ad82c8b155c6157b2f2c13f7b20bd56' })), h("span", { key: 'a0103ece80cb3a52cf1aa0afaaab801093fa9118', class: "option-indicator", "aria-hidden": "true" }, h("slot", { key: '6d17a76a97fec448881f315bfbd41714604325f5', name: "selected-indicator" }, h("svg", { key: '1b4066f6025db32d6d0e9c4c6e3cc6ee12844631', width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'c60be1174d75bc7f6f96e87d6f90a1ba4185d43e', d: "M10 3L4.5 8.5L2 6", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))))));
|
|
130
149
|
}
|
|
131
150
|
static get is() { return "seki-select-option"; }
|
|
132
|
-
static get encapsulation() { return "
|
|
151
|
+
static get encapsulation() { return "scoped"; }
|
|
133
152
|
static get originalStyleUrls() {
|
|
134
153
|
return {
|
|
135
154
|
"$": ["seki-select-option.css"]
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Host, h } from "@stencil/core";
|
|
2
|
+
import { buildOptionId } from "../../utils/select";
|
|
2
3
|
import { syncTheme } from "../../utils/theme-sync";
|
|
3
4
|
import { subscribeToContextChange } from "../../utils/context-bridge";
|
|
4
5
|
/**
|
|
@@ -124,12 +125,14 @@ export class SekiSelectTrigger {
|
|
|
124
125
|
}
|
|
125
126
|
const isOpen = selectContext.open;
|
|
126
127
|
const isDisabled = selectContext.disabled;
|
|
127
|
-
return (h(Host, null, h("button", { ref: (el) => (this.buttonRef = el), type: "button", class: "trigger-button", role: "combobox", "aria-expanded": isOpen ? 'true' : 'false', "aria-controls": selectContext.contentId, "aria-
|
|
128
|
+
return (h(Host, null, h("button", { ref: (el) => (this.buttonRef = el), type: "button", class: "trigger-button", role: "combobox", "aria-expanded": isOpen ? 'true' : 'false', "aria-controls": selectContext.contentId, "aria-activedescendant": selectContext.focusedOptionValue !== null
|
|
129
|
+
? buildOptionId(selectContext.contentId, selectContext.focusedOptionValue)
|
|
130
|
+
: undefined, "aria-label": selectContext.ariaLabel, "aria-labelledby": selectContext.ariaLabelledby, "aria-disabled": isDisabled ? 'true' : undefined, disabled: isDisabled, "data-disabled": isDisabled ? 'true' : undefined, "data-state": isOpen ? 'open' : 'closed' }, selectContext.multiple
|
|
128
131
|
? this.renderMultiValue(selectContext)
|
|
129
132
|
: this.renderSingleValue(selectContext), h("svg", { class: "trigger-chevron", width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true" }, h("path", { d: "M3 4.5L6 7.5L9 4.5", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))));
|
|
130
133
|
}
|
|
131
134
|
static get is() { return "seki-select-trigger"; }
|
|
132
|
-
static get encapsulation() { return "
|
|
135
|
+
static get encapsulation() { return "scoped"; }
|
|
133
136
|
static get originalStyleUrls() {
|
|
134
137
|
return {
|
|
135
138
|
"$": ["seki-select-trigger.css"]
|
|
@@ -20,66 +20,99 @@ import { syncTheme } from "../../utils/theme-sync";
|
|
|
20
20
|
*/
|
|
21
21
|
export class SekiSheet {
|
|
22
22
|
constructor() {
|
|
23
|
+
/**
|
|
24
|
+
* Controlled open state. Also readable/writable as the `open` attribute, so
|
|
25
|
+
* `<seki-sheet open>` renders open with no script involved.
|
|
26
|
+
*/
|
|
27
|
+
this.open = false;
|
|
28
|
+
/**
|
|
29
|
+
* Initial open state for uncontrolled usage
|
|
30
|
+
*/
|
|
31
|
+
this.defaultOpen = false;
|
|
23
32
|
/**
|
|
24
33
|
* Internal state for sheet open/closed
|
|
25
34
|
*/
|
|
26
|
-
this.
|
|
35
|
+
this._isOpen = false;
|
|
36
|
+
}
|
|
37
|
+
componentWillLoad() {
|
|
38
|
+
this._isOpen = this.open || this.defaultOpen;
|
|
39
|
+
this.open = this._isOpen;
|
|
40
|
+
}
|
|
41
|
+
componentDidLoad() {
|
|
42
|
+
this.updateContext();
|
|
43
|
+
}
|
|
44
|
+
handleOpenPropChange(newValue) {
|
|
45
|
+
// An outside assignment (`sheet.open = true`) has to win after first render;
|
|
46
|
+
// `open` is only read once in componentWillLoad otherwise.
|
|
47
|
+
if (newValue === this._isOpen)
|
|
48
|
+
return;
|
|
49
|
+
if (newValue) {
|
|
50
|
+
this.openSheet();
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
this.closeSheet();
|
|
54
|
+
}
|
|
27
55
|
}
|
|
28
56
|
/**
|
|
29
57
|
* Opens the sheet
|
|
30
58
|
*/
|
|
31
|
-
async
|
|
32
|
-
this.
|
|
59
|
+
async openSheet() {
|
|
60
|
+
if (this._isOpen)
|
|
61
|
+
return;
|
|
62
|
+
this._isOpen = true;
|
|
63
|
+
this.open = true;
|
|
33
64
|
this.updateContext();
|
|
34
65
|
this.sheetOpen.emit();
|
|
66
|
+
this.sekiOpenChange.emit(true);
|
|
35
67
|
}
|
|
36
68
|
/**
|
|
37
69
|
* Closes the sheet
|
|
38
70
|
*/
|
|
39
|
-
async
|
|
40
|
-
this.
|
|
71
|
+
async closeSheet() {
|
|
72
|
+
if (!this._isOpen)
|
|
73
|
+
return;
|
|
74
|
+
this._isOpen = false;
|
|
75
|
+
this.open = false;
|
|
41
76
|
this.updateContext();
|
|
42
77
|
this.sheetClose.emit();
|
|
43
|
-
|
|
44
|
-
updateContext() {
|
|
45
|
-
// seki-sheet-content has no other way to know this sheet's open state — it
|
|
46
|
-
// reads this off the host element via closest('seki-sheet').
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
|
-
this.el._sheetContext = { isOpen: this.isOpen };
|
|
49
|
-
}
|
|
50
|
-
componentDidLoad() {
|
|
51
|
-
this.updateContext();
|
|
78
|
+
this.sekiOpenChange.emit(false);
|
|
52
79
|
}
|
|
53
80
|
/**
|
|
54
81
|
* Toggles the sheet
|
|
55
82
|
*/
|
|
56
|
-
async
|
|
57
|
-
if (this.
|
|
58
|
-
await this.
|
|
83
|
+
async toggleSheet() {
|
|
84
|
+
if (this._isOpen) {
|
|
85
|
+
await this.closeSheet();
|
|
59
86
|
}
|
|
60
87
|
else {
|
|
61
|
-
await this.
|
|
88
|
+
await this.openSheet();
|
|
62
89
|
}
|
|
63
90
|
}
|
|
91
|
+
updateContext() {
|
|
92
|
+
// seki-sheet-content has no other way to know this sheet's open state — it
|
|
93
|
+
// reads this off the host element via closest('seki-sheet').
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
95
|
+
this.el._sheetContext = { isOpen: this._isOpen };
|
|
96
|
+
}
|
|
64
97
|
handleTriggerClick() {
|
|
65
|
-
this.
|
|
98
|
+
this.toggleSheet();
|
|
66
99
|
}
|
|
67
100
|
handleCloseSheet() {
|
|
68
|
-
this.
|
|
101
|
+
this.closeSheet();
|
|
69
102
|
}
|
|
70
103
|
handleKeydown(ev) {
|
|
71
|
-
if (this.
|
|
72
|
-
this.
|
|
104
|
+
if (this._isOpen && ev.key === 'Escape') {
|
|
105
|
+
this.closeSheet();
|
|
73
106
|
}
|
|
74
107
|
}
|
|
75
108
|
connectedCallback() {
|
|
76
109
|
syncTheme(this.el);
|
|
77
110
|
}
|
|
78
111
|
render() {
|
|
79
|
-
return (h("div", { key: '
|
|
112
|
+
return (h("div", { key: '0d7f939728b7332e649e79b9189215f6ec2ee0ad', class: {
|
|
80
113
|
'seki-sheet': true,
|
|
81
|
-
'seki-sheet--open': this.
|
|
82
|
-
}, part: "sheet" }, h("slot", { key: '
|
|
114
|
+
'seki-sheet--open': this._isOpen,
|
|
115
|
+
}, part: "sheet" }, h("slot", { key: '2ab893341627204176329e2a40ac342f9d92f93c' }), this._isOpen && (h("div", { key: 'f7f131f3a2a287926d1547ad656f8125a00a1150', class: "seki-sheet-overlay", part: "overlay", onClick: () => this.closeSheet() }))));
|
|
83
116
|
}
|
|
84
117
|
static get is() { return "seki-sheet"; }
|
|
85
118
|
static get encapsulation() { return "shadow"; }
|
|
@@ -93,9 +126,53 @@ export class SekiSheet {
|
|
|
93
126
|
"$": ["seki-sheet.css"]
|
|
94
127
|
};
|
|
95
128
|
}
|
|
129
|
+
static get properties() {
|
|
130
|
+
return {
|
|
131
|
+
"open": {
|
|
132
|
+
"type": "boolean",
|
|
133
|
+
"mutable": true,
|
|
134
|
+
"complexType": {
|
|
135
|
+
"original": "boolean",
|
|
136
|
+
"resolved": "boolean",
|
|
137
|
+
"references": {}
|
|
138
|
+
},
|
|
139
|
+
"required": false,
|
|
140
|
+
"optional": false,
|
|
141
|
+
"docs": {
|
|
142
|
+
"tags": [],
|
|
143
|
+
"text": "Controlled open state. Also readable/writable as the `open` attribute, so\n`<seki-sheet open>` renders open with no script involved."
|
|
144
|
+
},
|
|
145
|
+
"getter": false,
|
|
146
|
+
"setter": false,
|
|
147
|
+
"reflect": true,
|
|
148
|
+
"attribute": "open",
|
|
149
|
+
"defaultValue": "false"
|
|
150
|
+
},
|
|
151
|
+
"defaultOpen": {
|
|
152
|
+
"type": "boolean",
|
|
153
|
+
"mutable": false,
|
|
154
|
+
"complexType": {
|
|
155
|
+
"original": "boolean",
|
|
156
|
+
"resolved": "boolean",
|
|
157
|
+
"references": {}
|
|
158
|
+
},
|
|
159
|
+
"required": false,
|
|
160
|
+
"optional": false,
|
|
161
|
+
"docs": {
|
|
162
|
+
"tags": [],
|
|
163
|
+
"text": "Initial open state for uncontrolled usage"
|
|
164
|
+
},
|
|
165
|
+
"getter": false,
|
|
166
|
+
"setter": false,
|
|
167
|
+
"reflect": false,
|
|
168
|
+
"attribute": "default-open",
|
|
169
|
+
"defaultValue": "false"
|
|
170
|
+
}
|
|
171
|
+
};
|
|
172
|
+
}
|
|
96
173
|
static get states() {
|
|
97
174
|
return {
|
|
98
|
-
"
|
|
175
|
+
"_isOpen": {}
|
|
99
176
|
};
|
|
100
177
|
}
|
|
101
178
|
static get events() {
|
|
@@ -129,11 +206,26 @@ export class SekiSheet {
|
|
|
129
206
|
"resolved": "void",
|
|
130
207
|
"references": {}
|
|
131
208
|
}
|
|
209
|
+
}, {
|
|
210
|
+
"method": "sekiOpenChange",
|
|
211
|
+
"name": "sekiOpenChange",
|
|
212
|
+
"bubbles": true,
|
|
213
|
+
"cancelable": true,
|
|
214
|
+
"composed": true,
|
|
215
|
+
"docs": {
|
|
216
|
+
"tags": [],
|
|
217
|
+
"text": "Emitted whenever the open state changes. Matches the dialog/popover/collapsible\nevent shape so a consumer can listen to one event name across every overlay."
|
|
218
|
+
},
|
|
219
|
+
"complexType": {
|
|
220
|
+
"original": "boolean",
|
|
221
|
+
"resolved": "boolean",
|
|
222
|
+
"references": {}
|
|
223
|
+
}
|
|
132
224
|
}];
|
|
133
225
|
}
|
|
134
226
|
static get methods() {
|
|
135
227
|
return {
|
|
136
|
-
"
|
|
228
|
+
"openSheet": {
|
|
137
229
|
"complexType": {
|
|
138
230
|
"signature": "() => Promise<void>",
|
|
139
231
|
"parameters": [],
|
|
@@ -150,7 +242,7 @@ export class SekiSheet {
|
|
|
150
242
|
"tags": []
|
|
151
243
|
}
|
|
152
244
|
},
|
|
153
|
-
"
|
|
245
|
+
"closeSheet": {
|
|
154
246
|
"complexType": {
|
|
155
247
|
"signature": "() => Promise<void>",
|
|
156
248
|
"parameters": [],
|
|
@@ -167,7 +259,7 @@ export class SekiSheet {
|
|
|
167
259
|
"tags": []
|
|
168
260
|
}
|
|
169
261
|
},
|
|
170
|
-
"
|
|
262
|
+
"toggleSheet": {
|
|
171
263
|
"complexType": {
|
|
172
264
|
"signature": "() => Promise<void>",
|
|
173
265
|
"parameters": [],
|
|
@@ -187,6 +279,12 @@ export class SekiSheet {
|
|
|
187
279
|
};
|
|
188
280
|
}
|
|
189
281
|
static get elementRef() { return "el"; }
|
|
282
|
+
static get watchers() {
|
|
283
|
+
return [{
|
|
284
|
+
"propName": "open",
|
|
285
|
+
"methodName": "handleOpenPropChange"
|
|
286
|
+
}];
|
|
287
|
+
}
|
|
190
288
|
static get listeners() {
|
|
191
289
|
return [{
|
|
192
290
|
"name": "triggerClick",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { syncTheme } from "../../utils/theme-sync";
|
|
3
|
+
import { whenDefined } from "../../utils/when-defined";
|
|
3
4
|
export class SekiSidebarFooter {
|
|
4
5
|
constructor() {
|
|
5
6
|
this._isIconMode = false;
|
|
@@ -10,6 +11,7 @@ export class SekiSidebarFooter {
|
|
|
10
11
|
async syncWithProvider() {
|
|
11
12
|
const provider = document.querySelector('seki-sidebar-provider');
|
|
12
13
|
if (provider) {
|
|
14
|
+
await whenDefined('seki-sidebar-provider');
|
|
13
15
|
const state = await provider.getState();
|
|
14
16
|
this._isIconMode = !state.open && !state.isMobile;
|
|
15
17
|
}
|
|
@@ -21,7 +23,7 @@ export class SekiSidebarFooter {
|
|
|
21
23
|
syncTheme(this.el);
|
|
22
24
|
}
|
|
23
25
|
render() {
|
|
24
|
-
return (h(Host, { key: '
|
|
26
|
+
return (h(Host, { key: '97bbed99c8e35ed1d85fa6267e47350a1d0c61bb', "data-icon-mode": this._isIconMode ? 'true' : 'false' }, h("div", { key: 'e951a73db7bfb322726ff0db795808d7ce99b3a6', class: { 'sidebar-footer': true, 'sidebar-footer--icon-mode': this._isIconMode } }, h("slot", { key: 'ae12b7373d704f56fcb75bba1f5c000cf19d6c90' }))));
|
|
25
27
|
}
|
|
26
28
|
static get is() { return "seki-sidebar-footer"; }
|
|
27
29
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { syncTheme } from "../../utils/theme-sync";
|
|
3
|
+
import { whenDefined } from "../../utils/when-defined";
|
|
3
4
|
export class SekiSidebarHeader {
|
|
4
5
|
constructor() {
|
|
5
6
|
this._isIconMode = false;
|
|
@@ -10,6 +11,7 @@ export class SekiSidebarHeader {
|
|
|
10
11
|
async syncWithProvider() {
|
|
11
12
|
const provider = document.querySelector('seki-sidebar-provider');
|
|
12
13
|
if (provider) {
|
|
14
|
+
await whenDefined('seki-sidebar-provider');
|
|
13
15
|
const state = await provider.getState();
|
|
14
16
|
this._isIconMode = !state.open && !state.isMobile;
|
|
15
17
|
}
|
|
@@ -21,7 +23,7 @@ export class SekiSidebarHeader {
|
|
|
21
23
|
syncTheme(this.el);
|
|
22
24
|
}
|
|
23
25
|
render() {
|
|
24
|
-
return (h(Host, { key: '
|
|
26
|
+
return (h(Host, { key: 'db0e734d2c3a823fdee113913da5dc8d77b2c74a', "data-icon-mode": this._isIconMode ? 'true' : 'false' }, h("div", { key: 'f3bc87e475391af3f6bd1914e11647aaefdcb28f', class: { 'sidebar-header': true, 'sidebar-header--icon-mode': this._isIconMode } }, h("slot", { key: '9936d52c8d5c835be4db99fdea7b4133464f0bfe' }))));
|
|
25
27
|
}
|
|
26
28
|
static get is() { return "seki-sidebar-header"; }
|
|
27
29
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { h } from "@stencil/core";
|
|
2
2
|
import { syncTheme } from "../../utils/theme-sync";
|
|
3
|
+
import { whenDefined } from "../../utils/when-defined";
|
|
3
4
|
export class SekiSidebarMenuButton {
|
|
4
5
|
constructor() {
|
|
5
6
|
/**
|
|
@@ -30,6 +31,7 @@ export class SekiSidebarMenuButton {
|
|
|
30
31
|
async syncWithProvider() {
|
|
31
32
|
const provider = document.querySelector('seki-sidebar-provider');
|
|
32
33
|
if (provider) {
|
|
34
|
+
await whenDefined('seki-sidebar-provider');
|
|
33
35
|
const state = await provider.getState();
|
|
34
36
|
this._isIconMode = !state.open && !state.isMobile;
|
|
35
37
|
}
|
|
@@ -72,7 +74,7 @@ export class SekiSidebarMenuButton {
|
|
|
72
74
|
buttonProps.tabIndex = -1;
|
|
73
75
|
}
|
|
74
76
|
}
|
|
75
|
-
return (h(Tag, Object.assign({ key: '
|
|
77
|
+
return (h(Tag, Object.assign({ key: '5a9ae3864bd0f81f6a97016287654bf75daf781b' }, buttonProps), h("span", { key: '49aca3cd6870bed8b365ccd943b5ec2de09ff51b', class: "sidebar-menu-button-content" }, h("slot", { key: 'cf0ecec0ded3870521788cd0c7113e8c98d521f4' })), this._isIconMode && this.tooltipText && (h("span", { key: '272d33f45b0ad14a51de4f1af56b33549dcfb2c4', class: "sr-only" }, this.tooltipText))));
|
|
76
78
|
}
|
|
77
79
|
static get is() { return "seki-sidebar-menu-button"; }
|
|
78
80
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { syncTheme } from "../../utils/theme-sync";
|
|
3
|
+
import { whenDefined } from "../../utils/when-defined";
|
|
3
4
|
import { mirrorAncestorAttributes } from "../../utils/ancestor-attrs";
|
|
4
5
|
export class SekiSidebarRail {
|
|
5
6
|
constructor() {
|
|
6
7
|
this.handleClick = async () => {
|
|
7
8
|
const provider = document.querySelector('seki-sidebar-provider');
|
|
8
9
|
if (provider) {
|
|
10
|
+
await whenDefined('seki-sidebar-provider');
|
|
9
11
|
await provider.toggleSidebar();
|
|
10
12
|
}
|
|
11
13
|
};
|
|
@@ -20,7 +22,7 @@ export class SekiSidebarRail {
|
|
|
20
22
|
this.attrMirror = undefined;
|
|
21
23
|
}
|
|
22
24
|
render() {
|
|
23
|
-
return (h(Host, { key: '
|
|
25
|
+
return (h(Host, { key: '08ed37b7a0967238dfad84a8bd0f0f11fd750ccf' }, h("button", { key: '6c2dc41d659807fe6ce5f66a228d1157f8598b02', class: "sidebar-rail", type: "button", tabIndex: -1, "aria-hidden": "true", onClick: this.handleClick, title: "Toggle sidebar" }, h("slot", { key: 'd11d9face59e5aca55f21749376d6cb9464f612d' }))));
|
|
24
26
|
}
|
|
25
27
|
static get is() { return "seki-sidebar-rail"; }
|
|
26
28
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { syncTheme } from "../../utils/theme-sync";
|
|
3
|
+
import { whenDefined } from "../../utils/when-defined";
|
|
3
4
|
export class SekiSidebarTrigger {
|
|
4
5
|
constructor() {
|
|
5
6
|
/**
|
|
@@ -11,6 +12,7 @@ export class SekiSidebarTrigger {
|
|
|
11
12
|
this.provider = null;
|
|
12
13
|
this.handleClick = async () => {
|
|
13
14
|
if (this.provider && !this.disabled) {
|
|
15
|
+
await whenDefined('seki-sidebar-provider');
|
|
14
16
|
await this.provider.toggleSidebar();
|
|
15
17
|
}
|
|
16
18
|
};
|
|
@@ -21,6 +23,9 @@ export class SekiSidebarTrigger {
|
|
|
21
23
|
}
|
|
22
24
|
async syncWithProvider() {
|
|
23
25
|
if (this.provider) {
|
|
26
|
+
// In the per-tag custom-elements build the provider may still be an
|
|
27
|
+
// un-upgraded HTMLElement here; its @Methods only exist after definition.
|
|
28
|
+
await whenDefined('seki-sidebar-provider');
|
|
24
29
|
const state = await this.provider.getState();
|
|
25
30
|
this._isOpen = state.isMobile ? state.openMobile : state.open;
|
|
26
31
|
this._isMobile = state.isMobile;
|
|
@@ -34,7 +39,7 @@ export class SekiSidebarTrigger {
|
|
|
34
39
|
syncTheme(this.el);
|
|
35
40
|
}
|
|
36
41
|
render() {
|
|
37
|
-
return (h(Host, { key: '
|
|
42
|
+
return (h(Host, { key: 'a18bf01eca1a28a9b4f7043af9d175582c842793' }, h("button", { key: '7dd9593f5a61a5162dfd57c63e6d07d21607a3c6', class: "sidebar-trigger", type: "button", disabled: this.disabled, onClick: this.handleClick, "aria-label": this._isOpen ? 'Close sidebar' : 'Open sidebar', "aria-expanded": this._isOpen ? 'true' : 'false', "data-state": this._isOpen ? 'open' : 'closed' }, h("slot", { key: '2a99e96d6ae89b2b9fe6278b8abebd07a49b1bba' }, h("svg", { key: '1f4d96e67ed5a0db4040de3a29747bd2b95d30cf', xmlns: "http://www.w3.org/2000/svg", width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round", "stroke-linejoin": "round" }, h("rect", { key: '697fbbd25bfee694b0a58c736852ba61e8474552', width: "18", height: "18", x: "3", y: "3", rx: "2" }), h("path", { key: '0ccd3b41479789c19bd0c535665c562bd0d72e26', d: "M9 3v18" }))), h("span", { key: '172d3a201a80b474002ba5eded4ca56f025970cb', class: "sr-only" }, this._isOpen ? 'Close sidebar' : 'Open sidebar'))));
|
|
38
43
|
}
|
|
39
44
|
static get is() { return "seki-sidebar-trigger"; }
|
|
40
45
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { h, Host } from "@stencil/core";
|
|
2
2
|
import { syncTheme } from "../../utils/theme-sync";
|
|
3
|
+
import { whenDefined } from "../../utils/when-defined";
|
|
3
4
|
export class SekiSidebar {
|
|
4
5
|
constructor() {
|
|
5
6
|
/**
|
|
@@ -20,6 +21,7 @@ export class SekiSidebar {
|
|
|
20
21
|
this.handleOverlayClick = async () => {
|
|
21
22
|
const provider = this.el.closest('seki-sidebar-provider');
|
|
22
23
|
if (provider && this._isMobile) {
|
|
24
|
+
await whenDefined('seki-sidebar-provider');
|
|
23
25
|
await provider.setOpenMobile(false);
|
|
24
26
|
}
|
|
25
27
|
};
|
|
@@ -31,6 +33,7 @@ export class SekiSidebar {
|
|
|
31
33
|
async syncWithProvider() {
|
|
32
34
|
const provider = this.el.closest('seki-sidebar-provider');
|
|
33
35
|
if (provider) {
|
|
36
|
+
await whenDefined('seki-sidebar-provider');
|
|
34
37
|
const state = await provider.getState();
|
|
35
38
|
this._open = state.open;
|
|
36
39
|
this._openMobile = state.openMobile;
|
|
@@ -51,10 +54,10 @@ export class SekiSidebar {
|
|
|
51
54
|
const isIconMode = this.collapsible === 'icon' && isClosed && !this._isMobile;
|
|
52
55
|
const isOffcanvas = this.collapsible === 'offcanvas' && isClosed && !this._isMobile;
|
|
53
56
|
const showMobileSheet = this._isMobile && this._openMobile;
|
|
54
|
-
return (h(Host, { key: '
|
|
57
|
+
return (h(Host, { key: '191942c5c2d3d3c543b398f7bcbec0ae7e4177b8', "data-variant": this.variant, "data-collapsible": this.collapsible, "data-side": this.side, "data-state": isOpen ? 'open' : 'closed', "data-mobile": this._isMobile ? 'true' : 'false', "data-icon-mode": isIconMode ? 'true' : 'false', "data-offcanvas": isOffcanvas ? 'true' : 'false' }, showMobileSheet && (h("div", { key: 'bbdcc59f534b71525ae15c797bb2a9685d254e66', class: "sidebar-overlay", onClick: this.handleOverlayClick, "aria-hidden": "true" })), h("aside", { key: '8b8d5e372ef31d6d7fcad96284b02d55049e5344', class: {
|
|
55
58
|
'sidebar': true,
|
|
56
59
|
'sidebar--mobile-sheet': showMobileSheet,
|
|
57
|
-
}, role: "complementary", "aria-label": "Sidebar" }, h("slot", { key: '
|
|
60
|
+
}, role: "complementary", "aria-label": "Sidebar" }, h("slot", { key: 'c52ad8d438101ac1a5d339a4fac427587ae88be5' }))));
|
|
58
61
|
}
|
|
59
62
|
static get is() { return "seki-sidebar"; }
|
|
60
63
|
static get encapsulation() { return "shadow"; }
|