@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.
Files changed (211) hide show
  1. package/dist/cdn/p-C9-yH6MD.js +33 -0
  2. package/dist/cdn/p-CQQRfw1L.js +18 -0
  3. package/dist/cdn/seki-carousel-dots.js +7 -3
  4. package/dist/cdn/seki-carousel-next.js +8 -6
  5. package/dist/cdn/seki-carousel-previous.js +8 -6
  6. package/dist/cdn/seki-carousel.js +15 -1
  7. package/dist/cdn/seki-date-picker.js +71 -36
  8. package/dist/cdn/seki-drawer.js +76 -32
  9. package/dist/cdn/seki-hover-card-content.js +2 -2
  10. package/dist/cdn/seki-hover-card-trigger.js +3 -3
  11. package/dist/cdn/seki-hover-card.js +59 -4
  12. package/dist/cdn/seki-resizable-handle.js +11 -2
  13. package/dist/cdn/seki-resizable-panel-group.js +9 -3
  14. package/dist/cdn/seki-resizable-panel.js +42 -20
  15. package/dist/cdn/seki-select-content.js +21 -13
  16. package/dist/cdn/seki-select-group.js +3 -4
  17. package/dist/cdn/seki-select-option.js +33 -15
  18. package/dist/cdn/seki-select-trigger.js +6 -4
  19. package/dist/cdn/seki-select.js +2 -2
  20. package/dist/cdn/seki-sheet.js +71 -30
  21. package/dist/cdn/seki-sidebar-footer.js +3 -1
  22. package/dist/cdn/seki-sidebar-header.js +3 -1
  23. package/dist/cdn/seki-sidebar-menu-button.js +3 -1
  24. package/dist/cdn/seki-sidebar-rail.js +3 -1
  25. package/dist/cdn/seki-sidebar-trigger.js +6 -1
  26. package/dist/cdn/seki-sidebar.js +5 -2
  27. package/dist/cdn/seki-tooltip.js +47 -2
  28. package/dist/cjs/loader.cjs.js +1 -1
  29. package/dist/cjs/option-id-wIa73qWK.js +20 -0
  30. package/dist/cjs/seki-carousel-dots.cjs.entry.js +7 -3
  31. package/dist/cjs/seki-carousel-next.cjs.entry.js +8 -6
  32. package/dist/cjs/seki-carousel-previous.cjs.entry.js +8 -6
  33. package/dist/cjs/seki-carousel.cjs.entry.js +15 -1
  34. package/dist/cjs/seki-date-picker.cjs.entry.js +64 -32
  35. package/dist/cjs/seki-drawer.cjs.entry.js +67 -27
  36. package/dist/cjs/seki-hover-card-content.cjs.entry.js +2 -2
  37. package/dist/cjs/seki-hover-card-trigger.cjs.entry.js +3 -3
  38. package/dist/cjs/seki-hover-card.cjs.entry.js +53 -3
  39. package/dist/cjs/seki-resizable-handle.cjs.entry.js +11 -2
  40. package/dist/cjs/seki-resizable-panel-group.cjs.entry.js +9 -3
  41. package/dist/cjs/seki-resizable-panel.cjs.entry.js +42 -20
  42. package/dist/cjs/seki-select-content.cjs.entry.js +20 -11
  43. package/dist/cjs/seki-select-group.cjs.entry.js +2 -2
  44. package/dist/cjs/seki-select-option.cjs.entry.js +32 -13
  45. package/dist/cjs/seki-select-trigger.cjs.entry.js +5 -2
  46. package/dist/cjs/seki-select.cjs.entry.js +2 -2
  47. package/dist/cjs/seki-sheet.cjs.entry.js +62 -25
  48. package/dist/cjs/seki-sidebar-footer.cjs.entry.js +3 -1
  49. package/dist/cjs/seki-sidebar-header.cjs.entry.js +3 -1
  50. package/dist/cjs/seki-sidebar-menu-button.cjs.entry.js +3 -1
  51. package/dist/cjs/seki-sidebar-rail.cjs.entry.js +3 -1
  52. package/dist/cjs/seki-sidebar-trigger.cjs.entry.js +6 -1
  53. package/dist/cjs/seki-sidebar.cjs.entry.js +5 -2
  54. package/dist/cjs/seki-tooltip.cjs.entry.js +43 -2
  55. package/dist/cjs/sekiui.cjs.js +1 -1
  56. package/dist/cjs/when-defined-B2Lkz6uR.js +36 -0
  57. package/dist/collection/components/carousel/seki-carousel-dots.js +7 -3
  58. package/dist/collection/components/carousel/seki-carousel-next.js +8 -6
  59. package/dist/collection/components/carousel/seki-carousel-previous.js +8 -6
  60. package/dist/collection/components/carousel/seki-carousel.js +15 -1
  61. package/dist/collection/components/date-picker/seki-date-picker.js +124 -36
  62. package/dist/collection/components/drawer/seki-drawer.js +132 -31
  63. package/dist/collection/components/hover-card/seki-hover-card-content.js +2 -2
  64. package/dist/collection/components/hover-card/seki-hover-card-trigger.js +3 -3
  65. package/dist/collection/components/hover-card/seki-hover-card.js +142 -6
  66. package/dist/collection/components/resizable/seki-resizable-handle.js +11 -2
  67. package/dist/collection/components/resizable/seki-resizable-panel-group.js +23 -3
  68. package/dist/collection/components/resizable/seki-resizable-panel.js +42 -20
  69. package/dist/collection/components/select/seki-select.js +6 -12
  70. package/dist/collection/components/select-content/seki-select-content.css +8 -0
  71. package/dist/collection/components/select-content/seki-select-content.js +20 -11
  72. package/dist/collection/components/select-group/seki-select-group.js +2 -2
  73. package/dist/collection/components/select-option/seki-select-option.js +32 -13
  74. package/dist/collection/components/select-trigger/seki-select-trigger.js +5 -2
  75. package/dist/collection/components/sheet/seki-sheet.js +127 -29
  76. package/dist/collection/components/sidebar/seki-sidebar-footer.js +3 -1
  77. package/dist/collection/components/sidebar/seki-sidebar-header.js +3 -1
  78. package/dist/collection/components/sidebar/seki-sidebar-menu-button.js +3 -1
  79. package/dist/collection/components/sidebar/seki-sidebar-rail.js +3 -1
  80. package/dist/collection/components/sidebar/seki-sidebar-trigger.js +6 -1
  81. package/dist/collection/components/sidebar/seki-sidebar.js +5 -2
  82. package/dist/collection/components/tooltip/seki-tooltip.js +92 -2
  83. package/dist/collection/utils/select/index.js +1 -0
  84. package/dist/collection/utils/select/option-id.js +16 -0
  85. package/dist/collection/utils/when-defined.js +31 -0
  86. package/dist/components/p-C9-yH6MD.js +33 -0
  87. package/dist/components/p-CQQRfw1L.js +18 -0
  88. package/dist/components/seki-carousel-dots.js +7 -3
  89. package/dist/components/seki-carousel-next.js +8 -6
  90. package/dist/components/seki-carousel-previous.js +8 -6
  91. package/dist/components/seki-carousel.js +15 -1
  92. package/dist/components/seki-date-picker.js +71 -36
  93. package/dist/components/seki-drawer.js +76 -32
  94. package/dist/components/seki-hover-card-content.js +2 -2
  95. package/dist/components/seki-hover-card-trigger.js +3 -3
  96. package/dist/components/seki-hover-card.js +59 -4
  97. package/dist/components/seki-resizable-handle.js +11 -2
  98. package/dist/components/seki-resizable-panel-group.js +9 -3
  99. package/dist/components/seki-resizable-panel.js +42 -20
  100. package/dist/components/seki-select-content.js +21 -13
  101. package/dist/components/seki-select-group.js +3 -4
  102. package/dist/components/seki-select-option.js +33 -15
  103. package/dist/components/seki-select-trigger.js +6 -4
  104. package/dist/components/seki-select.js +2 -2
  105. package/dist/components/seki-sheet.js +71 -30
  106. package/dist/components/seki-sidebar-footer.js +3 -1
  107. package/dist/components/seki-sidebar-header.js +3 -1
  108. package/dist/components/seki-sidebar-menu-button.js +3 -1
  109. package/dist/components/seki-sidebar-rail.js +3 -1
  110. package/dist/components/seki-sidebar-trigger.js +6 -1
  111. package/dist/components/seki-sidebar.js +5 -2
  112. package/dist/components/seki-tooltip.js +47 -2
  113. package/dist/esm/loader.js +1 -1
  114. package/dist/esm/option-id-CQQRfw1L.js +18 -0
  115. package/dist/esm/seki-carousel-dots.entry.js +7 -3
  116. package/dist/esm/seki-carousel-next.entry.js +8 -6
  117. package/dist/esm/seki-carousel-previous.entry.js +8 -6
  118. package/dist/esm/seki-carousel.entry.js +15 -1
  119. package/dist/esm/seki-date-picker.entry.js +64 -32
  120. package/dist/esm/seki-drawer.entry.js +67 -27
  121. package/dist/esm/seki-hover-card-content.entry.js +2 -2
  122. package/dist/esm/seki-hover-card-trigger.entry.js +3 -3
  123. package/dist/esm/seki-hover-card.entry.js +53 -3
  124. package/dist/esm/seki-resizable-handle.entry.js +11 -2
  125. package/dist/esm/seki-resizable-panel-group.entry.js +9 -3
  126. package/dist/esm/seki-resizable-panel.entry.js +42 -20
  127. package/dist/esm/seki-select-content.entry.js +20 -11
  128. package/dist/esm/seki-select-group.entry.js +2 -2
  129. package/dist/esm/seki-select-option.entry.js +32 -13
  130. package/dist/esm/seki-select-trigger.entry.js +5 -2
  131. package/dist/esm/seki-select.entry.js +2 -2
  132. package/dist/esm/seki-sheet.entry.js +62 -25
  133. package/dist/esm/seki-sidebar-footer.entry.js +3 -1
  134. package/dist/esm/seki-sidebar-header.entry.js +3 -1
  135. package/dist/esm/seki-sidebar-menu-button.entry.js +3 -1
  136. package/dist/esm/seki-sidebar-rail.entry.js +3 -1
  137. package/dist/esm/seki-sidebar-trigger.entry.js +6 -1
  138. package/dist/esm/seki-sidebar.entry.js +5 -2
  139. package/dist/esm/seki-tooltip.entry.js +43 -2
  140. package/dist/esm/sekiui.js +1 -1
  141. package/dist/esm/when-defined-C9-yH6MD.js +33 -0
  142. package/dist/sekiui/p-02f1728e.entry.js +1 -0
  143. package/dist/sekiui/p-05b33a61.entry.js +1 -0
  144. package/dist/sekiui/p-12e36a4f.entry.js +1 -0
  145. package/dist/sekiui/p-1cd6b3e6.entry.js +1 -0
  146. package/dist/sekiui/p-1e24698b.entry.js +1 -0
  147. package/dist/sekiui/p-26bb17cb.entry.js +1 -0
  148. package/dist/sekiui/p-26d433ff.entry.js +1 -0
  149. package/dist/sekiui/p-26f96e2d.entry.js +1 -0
  150. package/dist/sekiui/p-29b22c0f.entry.js +1 -0
  151. package/dist/sekiui/p-30fafcc6.entry.js +1 -0
  152. package/dist/sekiui/p-3de5878b.entry.js +1 -0
  153. package/dist/sekiui/p-649dbdf0.entry.js +1 -0
  154. package/dist/sekiui/p-71656184.entry.js +1 -0
  155. package/dist/sekiui/p-7926c04a.entry.js +1 -0
  156. package/dist/sekiui/p-9f4149b9.entry.js +1 -0
  157. package/dist/sekiui/p-C9-yH6MD.js +1 -0
  158. package/dist/sekiui/p-CQQRfw1L.js +1 -0
  159. package/dist/sekiui/p-ae87ca35.entry.js +1 -0
  160. package/dist/sekiui/p-b82c2267.entry.js +1 -0
  161. package/dist/sekiui/p-bf151423.entry.js +1 -0
  162. package/dist/sekiui/{p-219c8350.entry.js → p-c0f21b6a.entry.js} +1 -1
  163. package/dist/sekiui/p-c3ef507f.entry.js +1 -0
  164. package/dist/sekiui/p-d10a186d.entry.js +1 -0
  165. package/dist/sekiui/p-d1c72c91.entry.js +1 -0
  166. package/dist/sekiui/p-d1d3ae40.entry.js +1 -0
  167. package/dist/sekiui/p-fba3fa73.entry.js +1 -0
  168. package/dist/sekiui/p-fe3e661d.entry.js +1 -0
  169. package/dist/sekiui/sekiui.esm.js +1 -1
  170. package/dist/types/components/carousel/seki-carousel.d.ts +1 -0
  171. package/dist/types/components/date-picker/seki-date-picker.d.ts +21 -5
  172. package/dist/types/components/drawer/seki-drawer.d.ts +22 -6
  173. package/dist/types/components/hover-card/seki-hover-card.d.ts +24 -4
  174. package/dist/types/components/resizable/seki-resizable-handle.d.ts +1 -0
  175. package/dist/types/components/resizable/seki-resizable-panel-group.d.ts +6 -0
  176. package/dist/types/components/resizable/seki-resizable-panel.d.ts +9 -0
  177. package/dist/types/components/select/seki-select.d.ts +3 -3
  178. package/dist/types/components/select-content/seki-select-content.d.ts +8 -5
  179. package/dist/types/components/select-option/seki-select-option.d.ts +6 -4
  180. package/dist/types/components/sheet/seki-sheet.d.ts +22 -6
  181. package/dist/types/components/tooltip/seki-tooltip.d.ts +13 -0
  182. package/dist/types/components.d.ts +145 -17
  183. package/dist/types/utils/select/index.d.ts +1 -0
  184. package/dist/types/utils/select/option-id.d.ts +14 -0
  185. package/dist/types/utils/select/types.d.ts +0 -7
  186. package/dist/types/utils/when-defined.d.ts +19 -0
  187. package/package.json +3 -1
  188. package/dist/sekiui/p-01f26bec.entry.js +0 -1
  189. package/dist/sekiui/p-117b6f5a.entry.js +0 -1
  190. package/dist/sekiui/p-1250cad1.entry.js +0 -1
  191. package/dist/sekiui/p-1866201e.entry.js +0 -1
  192. package/dist/sekiui/p-2e18933c.entry.js +0 -1
  193. package/dist/sekiui/p-2e2e7d0b.entry.js +0 -1
  194. package/dist/sekiui/p-346cc18f.entry.js +0 -1
  195. package/dist/sekiui/p-6311a4d8.entry.js +0 -1
  196. package/dist/sekiui/p-69843ed8.entry.js +0 -1
  197. package/dist/sekiui/p-779764c0.entry.js +0 -1
  198. package/dist/sekiui/p-786c153b.entry.js +0 -1
  199. package/dist/sekiui/p-87bcbb66.entry.js +0 -1
  200. package/dist/sekiui/p-88dd3e1f.entry.js +0 -1
  201. package/dist/sekiui/p-944c70a1.entry.js +0 -1
  202. package/dist/sekiui/p-9820cd16.entry.js +0 -1
  203. package/dist/sekiui/p-9abfa3a5.entry.js +0 -1
  204. package/dist/sekiui/p-ac7bd611.entry.js +0 -1
  205. package/dist/sekiui/p-b45e11d8.entry.js +0 -1
  206. package/dist/sekiui/p-c62c4ad7.entry.js +0 -1
  207. package/dist/sekiui/p-caa51bdf.entry.js +0 -1
  208. package/dist/sekiui/p-ce986fde.entry.js +0 -1
  209. package/dist/sekiui/p-e45e6992.entry.js +0 -1
  210. package/dist/sekiui/p-ede4bb0c.entry.js +0 -1
  211. 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 shadow
19
- * DOM whenever the parent's value/focus state changes post-mount. This is
20
- * applied imperatively rather than through a Stencil @State bump + render()
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
- * shadow DOM directly here side-steps that entirely.
26
+ * DOM directly here side-steps that entirely.
25
27
  */
26
28
  this.handleParentContextChange = () => {
27
- var _a;
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
- // Deterministic id, scoped to this option's own shadow root. seki-select-trigger
79
- // no longer references it via aria-activedescendant (see #292 — the id lives in
80
- // a different tree scope than the trigger's button, so that IDREF could never
81
- // resolve); kept for scrollToOption() and as a stable hook for tests/consumers.
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
- return `option-${this.value}`;
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: '0b45512c5e13b194e043e47fb5b45706e17742f6' }, h("div", { key: '500cf182ac44ea1fced2d7bb095bed0300140fe2', 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: '5760df03485c8a319df0f47e11e7812daf975b90', class: "option-label" }, h("slot", { key: 'e8f30da45607a6ac80c4091e33109134e1860d62' })), h("span", { key: '59646b48367babc22ef134f298194fde8a493085', class: "option-indicator", "aria-hidden": "true" }, h("slot", { key: '7729ba2b454001bb5d71f5c3af7aaf2702999df2', name: "selected-indicator" }, h("svg", { key: 'ac6b0035fae24b5532e6c14ee2339b618abcb1e8', width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: 'ec5d88d49bd03bbafde5a7bfcd746665cd5e02c6', d: "M10 3L4.5 8.5L2 6", stroke: "currentColor", "stroke-width": "1.5", "stroke-linecap": "round", "stroke-linejoin": "round" })))))));
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 "shadow"; }
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-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
+ 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 "shadow"; }
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.isOpen = false;
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 open() {
32
- this.isOpen = true;
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 close() {
40
- this.isOpen = false;
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 toggle() {
57
- if (this.isOpen) {
58
- await this.close();
83
+ async toggleSheet() {
84
+ if (this._isOpen) {
85
+ await this.closeSheet();
59
86
  }
60
87
  else {
61
- await this.open();
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.toggle();
98
+ this.toggleSheet();
66
99
  }
67
100
  handleCloseSheet() {
68
- this.close();
101
+ this.closeSheet();
69
102
  }
70
103
  handleKeydown(ev) {
71
- if (this.isOpen && ev.key === 'Escape') {
72
- this.close();
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: '2cfec9307b44b6b51ce1414392b4c2463fc24c96', class: {
112
+ return (h("div", { key: '0d7f939728b7332e649e79b9189215f6ec2ee0ad', class: {
80
113
  'seki-sheet': true,
81
- 'seki-sheet--open': this.isOpen,
82
- }, part: "sheet" }, h("slot", { key: 'a8785aaf5f121ab236840527c54aefce477197d3' }), this.isOpen && (h("div", { key: '60727f47bb3426fded9d40202811d363e082c93e', class: "seki-sheet-overlay", part: "overlay", onClick: () => this.close() }))));
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
- "isOpen": {}
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
- "open": {
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
- "close": {
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
- "toggle": {
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: '9a2ebdc291b6ed7daa648c4b76684791b434477f', "data-icon-mode": this._isIconMode ? 'true' : 'false' }, h("div", { key: '8d3748862827f9d9173d8a567defaf4945b729e3', class: { 'sidebar-footer': true, 'sidebar-footer--icon-mode': this._isIconMode } }, h("slot", { key: '499a4a2e38198ed2e7c808d4b8671f2828e72e3a' }))));
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: 'dffab004a98884d98974fb7bd513d36c58a614f6', "data-icon-mode": this._isIconMode ? 'true' : 'false' }, h("div", { key: '3779d79509479f6e2e03d67e17f480ce833f79d2', class: { 'sidebar-header': true, 'sidebar-header--icon-mode': this._isIconMode } }, h("slot", { key: 'bd0dc0a0ffb50302594a82a5d66baee214228c89' }))));
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: '4ad764a828d94c36bd2c2f3da03021de7c840033' }, buttonProps), h("span", { key: '46d54d1c9c00da9ff872cbea5005e259a32b2bf1', class: "sidebar-menu-button-content" }, h("slot", { key: '74e7c32ee30b69e7a8e34339983657cda40ca604' })), this._isIconMode && this.tooltipText && (h("span", { key: 'dac5cc781bcbe62e5fd66e6fcd2278710218af92', class: "sr-only" }, this.tooltipText))));
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: '79ffed26bc4327ba5f1de9b8bad97875e577bcc8' }, h("button", { key: 'd2239a1ee3fd2d7cb4af24e2d57bb776850d93a6', class: "sidebar-rail", type: "button", tabIndex: -1, "aria-hidden": "true", onClick: this.handleClick, title: "Toggle sidebar" }, h("slot", { key: 'd9677dcf1739a26c2c50d5297d86302e6deef5a4' }))));
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: '710c2e498aba73505947fdd40ef4ebfa2fd6f452' }, h("button", { key: 'd08c906afe57f392fc09ce3cb165199bac889cb5', 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: 'd8a51ef01bdbf22fd04efc33195b83b583a0f80c' }, h("svg", { key: 'e78789a27515ea2478cb4ef0bac254b605a95cb0', 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: '55b0d78be2313cc2c4f6188747517c0723cdaa73', width: "18", height: "18", x: "3", y: "3", rx: "2" }), h("path", { key: '436522322595a5db692bbc25e8cd7eca1d55057f', d: "M9 3v18" }))), h("span", { key: 'db23ca2266166ba0271c3b5baf6ac16ec8c8ba4c', class: "sr-only" }, this._isOpen ? 'Close sidebar' : 'Open sidebar'))));
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: 'd0c658a422f9df8dfffb5b999950a30a55f7691e', "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: '9349459bcee006b9ab721a838542e83fe230be54', class: "sidebar-overlay", onClick: this.handleOverlayClick, "aria-hidden": "true" })), h("aside", { key: '742b7a834dc63ceee602415005222c0317f66a3b', class: {
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: 'a2097f110bb64dbb251002f8e7fb566cd3b91158' }))));
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"; }