@swisspost/design-system-components 10.0.0-next.47 → 10.0.0-next.48

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 (255) hide show
  1. package/dist/cjs/{event-from-AKK8RQrn.js → event-from-C6kpQwhw.js} +2 -2
  2. package/dist/cjs/index-CpDyH7Ww.js +4 -4
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/{package-wsZ6ig4j.js → package-CZyXYkIN.js} +1 -1
  5. package/dist/cjs/post-accordion_2.cjs.entry.js +4 -4
  6. package/dist/cjs/post-avatar.cjs.entry.js +91 -54
  7. package/dist/cjs/post-back-to-top.cjs.entry.js +1 -1
  8. package/dist/cjs/post-banner.cjs.entry.js +3 -3
  9. package/dist/cjs/post-breadcrumb-item_2.cjs.entry.js +1 -1
  10. package/dist/cjs/post-breadcrumbs.cjs.entry.js +1 -1
  11. package/dist/cjs/post-card-control.cjs.entry.js +1 -1
  12. package/dist/cjs/post-closebutton_15.cjs.entry.js +4 -5
  13. package/dist/cjs/post-collapsible_2.cjs.entry.js +2 -2
  14. package/dist/cjs/post-components.cjs.js +1 -1
  15. package/dist/cjs/post-footer.cjs.entry.js +1 -1
  16. package/dist/cjs/post-linkarea.cjs.entry.js +1 -1
  17. package/dist/cjs/post-popover.cjs.entry.js +1 -1
  18. package/dist/cjs/post-rating.cjs.entry.js +1 -1
  19. package/dist/cjs/post-tab-header.cjs.entry.js +1 -1
  20. package/dist/cjs/post-tab-panel.cjs.entry.js +1 -1
  21. package/dist/cjs/post-tabs.cjs.entry.js +2 -2
  22. package/dist/cjs/post-tooltip-trigger.cjs.entry.js +1 -1
  23. package/dist/cjs/post-tooltip.cjs.entry.js +1 -1
  24. package/dist/collection/components/post-accordion-item/post-accordion-item.js +5 -5
  25. package/dist/collection/components/post-avatar/avatar-utils.js +16 -0
  26. package/dist/collection/components/post-avatar/post-avatar.js +90 -57
  27. package/dist/collection/components/post-banner/post-banner.js +2 -2
  28. package/dist/collection/components/post-closebutton/post-closebutton.js +1 -19
  29. package/dist/collection/components/post-menu/post-menu.js +4 -1
  30. package/dist/collection/components/post-tabs/post-tabs.js +3 -3
  31. package/dist/collection/utils/event-from.js +2 -2
  32. package/dist/{esm/event-from-8U5GFtQP.js → components/event-from.js} +2 -2
  33. package/dist/components/get-root.js +15 -0
  34. package/dist/components/index.d.ts +73 -0
  35. package/dist/components/index.js +36 -2315
  36. package/dist/components/package.js +3 -0
  37. package/dist/components/post-accordion-item.js +1 -1
  38. package/dist/components/post-accordion-item2.js +113 -0
  39. package/dist/components/post-accordion.js +1 -1
  40. package/dist/components/post-accordion2.js +138 -0
  41. package/dist/components/post-avatar.js +99 -62
  42. package/dist/components/post-back-to-top.js +6 -7
  43. package/dist/components/post-banner.js +10 -11
  44. package/dist/components/post-breadcrumb-item.js +1 -1
  45. package/dist/components/post-breadcrumb-item2.js +79 -0
  46. package/dist/components/post-breadcrumbs.js +13 -14
  47. package/dist/components/post-card-control.js +8 -9
  48. package/dist/components/post-closebutton.js +5 -7
  49. package/dist/components/post-collapsible-trigger.js +1 -1
  50. package/dist/components/post-collapsible-trigger2.js +135 -0
  51. package/dist/components/post-collapsible.js +1 -1
  52. package/dist/components/post-collapsible2.js +110 -0
  53. package/dist/components/post-footer.js +10 -11
  54. package/dist/components/post-header.js +6 -7
  55. package/dist/components/post-icon.js +1 -1
  56. package/dist/components/post-icon2.js +153 -0
  57. package/dist/components/post-language-option.js +8 -9
  58. package/dist/components/post-language-switch.js +12 -13
  59. package/dist/components/post-linkarea.js +3 -4
  60. package/dist/components/post-list-item.js +3 -4
  61. package/dist/components/post-list.js +4 -5
  62. package/dist/components/post-logo.js +5 -6
  63. package/dist/components/post-mainnavigation.js +4 -5
  64. package/dist/components/post-megadropdown-trigger.js +6 -7
  65. package/dist/components/post-megadropdown.js +7 -8
  66. package/dist/components/post-menu-item.js +1 -1
  67. package/dist/components/post-menu-item2.js +30 -0
  68. package/dist/components/post-menu-trigger.js +1 -1
  69. package/dist/components/post-menu-trigger2.js +110 -0
  70. package/dist/components/post-menu.js +1 -1
  71. package/dist/components/post-menu2.js +222 -0
  72. package/dist/components/post-popover.js +6 -7
  73. package/dist/components/post-popovercontainer.js +1 -1
  74. package/dist/components/post-popovercontainer2.js +3018 -0
  75. package/dist/components/post-rating.js +8 -9
  76. package/dist/components/post-tab-header.js +6 -7
  77. package/dist/components/post-tab-panel.js +6 -7
  78. package/dist/components/post-tabs.js +7 -8
  79. package/dist/components/post-togglebutton.js +3 -4
  80. package/dist/components/post-tooltip-trigger.js +6 -7
  81. package/dist/components/post-tooltip.js +6 -7
  82. package/dist/components/react/index.d.ts +33 -0
  83. package/dist/components/react/index.js +2315 -0
  84. package/dist/components/react/p-0Ltezq5O.js +3 -0
  85. package/dist/components/{p-i0-mizzM.js → react/p-38PqL5iD.js} +1 -1
  86. package/dist/components/react/p-BLchVpF6.js +14 -0
  87. package/dist/components/react/p-C35MCWIp.js +35 -0
  88. package/dist/components/{p-336Lbkey.js → react/p-CGsAj6ij.js} +1 -1
  89. package/dist/components/react/p-CJ80BZ06.js +178 -0
  90. package/dist/{esm/index-BWC0gtGU.js → components/react/p-CV7fm1rW.js} +1 -1
  91. package/dist/components/react/p-C_2k3G1c.js +264 -0
  92. package/dist/components/{p-DP5pj8mq.js → react/p-Ce7jgYmK.js} +1 -1
  93. package/dist/components/{p-BSvy4uym.js → react/p-CiYSngKM.js} +7 -7
  94. package/dist/components/{p-Cxrx7SXz.js → react/p-Da5wbVP8.js} +1 -1
  95. package/dist/components/{p-DVGX_JCp.js → react/p-Dq9F2i7n.js} +2 -2
  96. package/dist/components/{p-DEi5TIMq.js → react/p-DzYquz3e.js} +2 -2
  97. package/dist/components/{p-pHxypsHK.js → react/p-JHuJA2Lv.js} +4 -4
  98. package/dist/components/react/p-SbIC4aZX.js +11 -0
  99. package/dist/components/{p-C0H2ohSv.js → react/p-Tg0GNTZM.js} +2 -2
  100. package/dist/components/{p-8U5GFtQP.js → react/p-kraHE1r3.js} +2 -2
  101. package/dist/components/{p-BM8mtEfS.js → react/p-q8Fvf8A0.js} +1 -1
  102. package/dist/components/react/p-r4txK0AC.js +3 -0
  103. package/dist/components/react/post-accordion-item.d.ts +11 -0
  104. package/dist/components/react/post-accordion-item.js +6 -0
  105. package/dist/components/react/post-accordion.d.ts +11 -0
  106. package/dist/components/react/post-accordion.js +6 -0
  107. package/dist/components/react/post-avatar.d.ts +11 -0
  108. package/dist/components/react/post-avatar.js +226 -0
  109. package/dist/components/react/post-back-to-top.d.ts +11 -0
  110. package/dist/components/react/post-back-to-top.js +145 -0
  111. package/dist/components/react/post-banner.d.ts +11 -0
  112. package/dist/components/react/post-banner.js +99 -0
  113. package/dist/components/react/post-breadcrumb-item.d.ts +11 -0
  114. package/dist/components/react/post-breadcrumb-item.js +6 -0
  115. package/dist/components/react/post-breadcrumbs.d.ts +11 -0
  116. package/dist/components/react/post-breadcrumbs.js +187 -0
  117. package/dist/components/react/post-card-control.d.ts +11 -0
  118. package/dist/components/react/post-card-control.js +327 -0
  119. package/dist/components/react/post-closebutton.d.ts +11 -0
  120. package/dist/components/react/post-closebutton.js +50 -0
  121. package/dist/components/react/post-collapsible-trigger.d.ts +11 -0
  122. package/dist/components/react/post-collapsible-trigger.js +6 -0
  123. package/dist/components/react/post-collapsible.d.ts +11 -0
  124. package/dist/components/react/post-collapsible.js +6 -0
  125. package/dist/components/react/post-footer.d.ts +11 -0
  126. package/dist/components/react/post-footer.js +117 -0
  127. package/dist/components/react/post-header.d.ts +11 -0
  128. package/dist/components/react/post-header.js +333 -0
  129. package/dist/components/react/post-icon.d.ts +11 -0
  130. package/dist/components/react/post-icon.js +6 -0
  131. package/dist/components/react/post-language-option.d.ts +11 -0
  132. package/dist/components/react/post-language-option.js +101 -0
  133. package/dist/components/react/post-language-switch.d.ts +11 -0
  134. package/dist/components/react/post-language-switch.js +159 -0
  135. package/dist/components/react/post-linkarea.d.ts +11 -0
  136. package/dist/components/react/post-linkarea.js +46 -0
  137. package/dist/components/react/post-list-item.d.ts +11 -0
  138. package/dist/components/react/post-list-item.js +39 -0
  139. package/dist/components/react/post-list.d.ts +11 -0
  140. package/dist/components/react/post-list.js +62 -0
  141. package/dist/components/react/post-logo.d.ts +11 -0
  142. package/dist/components/react/post-logo.js +59 -0
  143. package/dist/components/react/post-mainnavigation.d.ts +11 -0
  144. package/dist/components/react/post-mainnavigation.js +181 -0
  145. package/dist/components/react/post-megadropdown-trigger.d.ts +11 -0
  146. package/dist/components/react/post-megadropdown-trigger.js +137 -0
  147. package/dist/components/react/post-megadropdown.d.ts +11 -0
  148. package/dist/components/react/post-megadropdown.js +197 -0
  149. package/dist/components/react/post-menu-item.d.ts +11 -0
  150. package/dist/components/react/post-menu-item.js +6 -0
  151. package/dist/components/react/post-menu-trigger.d.ts +11 -0
  152. package/dist/components/react/post-menu-trigger.js +6 -0
  153. package/dist/components/react/post-menu.d.ts +11 -0
  154. package/dist/components/react/post-menu.js +6 -0
  155. package/dist/components/react/post-popover.d.ts +11 -0
  156. package/dist/components/react/post-popover.js +189 -0
  157. package/dist/components/react/post-popovercontainer.d.ts +11 -0
  158. package/dist/components/react/post-popovercontainer.js +6 -0
  159. package/dist/components/react/post-rating.d.ts +11 -0
  160. package/dist/components/react/post-rating.js +153 -0
  161. package/dist/components/react/post-tab-header.d.ts +11 -0
  162. package/dist/components/react/post-tab-header.js +53 -0
  163. package/dist/components/react/post-tab-panel.d.ts +11 -0
  164. package/dist/components/react/post-tab-panel.js +55 -0
  165. package/dist/components/react/post-tabs.d.ts +11 -0
  166. package/dist/components/react/post-tabs.js +197 -0
  167. package/dist/components/react/post-togglebutton.d.ts +11 -0
  168. package/dist/components/react/post-togglebutton.js +57 -0
  169. package/dist/components/react/post-tooltip-trigger.d.ts +11 -0
  170. package/dist/components/react/post-tooltip-trigger.js +5223 -0
  171. package/dist/components/react/post-tooltip.d.ts +11 -0
  172. package/dist/components/react/post-tooltip.js +115 -0
  173. package/dist/components/switch-variants.js +3 -0
  174. package/dist/docs.json +20 -30
  175. package/dist/esm/event-from-kraHE1r3.js +105 -0
  176. package/dist/esm/index-C8a0ddDa.js +4 -4
  177. package/dist/esm/index-VmK3ABCB.js +88 -0
  178. package/dist/esm/loader.js +1 -1
  179. package/dist/esm/package-0Ltezq5O.js +3 -0
  180. package/dist/esm/post-accordion_2.entry.js +5 -5
  181. package/dist/esm/post-avatar.entry.js +92 -55
  182. package/dist/esm/post-back-to-top.entry.js +2 -2
  183. package/dist/esm/post-banner.entry.js +4 -4
  184. package/dist/esm/post-breadcrumb-item_2.entry.js +2 -2
  185. package/dist/esm/post-breadcrumbs.entry.js +2 -2
  186. package/dist/esm/post-card-control.entry.js +2 -2
  187. package/dist/esm/post-closebutton_15.entry.js +6 -7
  188. package/dist/esm/post-collapsible_2.entry.js +3 -3
  189. package/dist/esm/post-components.js +1 -1
  190. package/dist/esm/post-footer.entry.js +2 -2
  191. package/dist/esm/post-linkarea.entry.js +1 -1
  192. package/dist/esm/post-popover.entry.js +2 -2
  193. package/dist/esm/post-rating.entry.js +2 -2
  194. package/dist/esm/post-tab-header.entry.js +2 -2
  195. package/dist/esm/post-tab-panel.entry.js +2 -2
  196. package/dist/esm/post-tabs.entry.js +2 -2
  197. package/dist/esm/post-tooltip-trigger.entry.js +2 -2
  198. package/dist/esm/post-tooltip.entry.js +2 -2
  199. package/dist/loader/cdn.js +1 -0
  200. package/dist/loader/index.cjs.js +1 -0
  201. package/{loader → dist/loader}/index.d.ts +1 -1
  202. package/dist/loader/index.es2017.js +1 -0
  203. package/{loader → dist/loader}/index.js +1 -1
  204. package/dist/post-components/p-0Ltezq5O.js +1 -0
  205. package/dist/post-components/{p-bbe02ba3.entry.js → p-16772417.entry.js} +1 -1
  206. package/dist/post-components/{p-45007aac.entry.js → p-38d3d441.entry.js} +1 -1
  207. package/dist/post-components/{p-f67b616a.entry.js → p-3c71f590.entry.js} +1 -1
  208. package/dist/post-components/{p-a2fa5ce4.entry.js → p-40f21542.entry.js} +1 -1
  209. package/dist/post-components/{p-031f7489.entry.js → p-4243cdd1.entry.js} +1 -1
  210. package/dist/post-components/p-4c18cb8c.entry.js +1 -0
  211. package/dist/post-components/{p-c1cf39cb.entry.js → p-51dc7647.entry.js} +1 -1
  212. package/dist/post-components/{p-e9802b56.entry.js → p-6777e505.entry.js} +1 -1
  213. package/dist/post-components/{p-2f698af4.entry.js → p-6add880f.entry.js} +1 -1
  214. package/dist/post-components/{p-2ca196d6.entry.js → p-8363fedb.entry.js} +1 -1
  215. package/dist/post-components/p-83998038.entry.js +1 -0
  216. package/dist/post-components/{p-d0d92071.entry.js → p-85bb1b5e.entry.js} +1 -1
  217. package/dist/post-components/{p-3adbdda7.entry.js → p-8f4d8685.entry.js} +1 -1
  218. package/dist/post-components/{p-1e6a068a.entry.js → p-95ad536d.entry.js} +1 -1
  219. package/dist/post-components/{p-9428231b.entry.js → p-9d806e89.entry.js} +1 -1
  220. package/dist/post-components/{p-BWC0gtGU.js → p-VmK3ABCB.js} +1 -1
  221. package/dist/post-components/{p-57703aee.entry.js → p-aad86320.entry.js} +1 -1
  222. package/dist/post-components/p-c3e38acf.entry.js +1 -0
  223. package/dist/post-components/{p-ab8017bb.entry.js → p-d61bb2ff.entry.js} +1 -1
  224. package/dist/post-components/p-kraHE1r3.js +1 -0
  225. package/dist/post-components/post-components.esm.js +1 -1
  226. package/dist/types/components/post-accordion-item/post-accordion-item.d.ts +3 -3
  227. package/dist/types/components/post-avatar/avatar-utils.d.ts +3 -0
  228. package/dist/types/components/post-avatar/post-avatar.d.ts +13 -10
  229. package/dist/types/components/post-closebutton/post-closebutton.d.ts +0 -6
  230. package/dist/types/components/post-menu/post-menu.d.ts +3 -0
  231. package/dist/types/components/post-tabs/post-tabs.d.ts +2 -2
  232. package/dist/types/components.d.ts +0 -19
  233. package/dist/types/utils/component-on-ready.d.ts +2 -2
  234. package/hydrate/index.js +110 -70
  235. package/hydrate/index.mjs +110 -70
  236. package/package.json +19 -9
  237. package/dist/components/p-Z01QMrov.js +0 -3
  238. package/dist/esm/package-Z01QMrov.js +0 -3
  239. package/dist/post-components/p-7b8ab026.entry.js +0 -1
  240. package/dist/post-components/p-8U5GFtQP.js +0 -1
  241. package/dist/post-components/p-Z01QMrov.js +0 -1
  242. package/dist/post-components/p-ac73ab00.entry.js +0 -1
  243. package/dist/post-components/p-e96239c4.entry.js +0 -1
  244. package/loader/cdn.js +0 -1
  245. package/loader/index.cjs.js +0 -1
  246. package/loader/index.es2017.js +0 -1
  247. /package/dist/components/{p-CJ80BZ06.js → breakpoints.js} +0 -0
  248. /package/dist/components/{p-SbIC4aZX.js → fade.js} +0 -0
  249. /package/dist/components/{p-C35MCWIp.js → get-focusable-children.js} +0 -0
  250. /package/dist/components/{p-r4txK0AC.js → heading-levels.js} +0 -0
  251. /package/dist/components/{p-BLchVpF6.js → index.browser.js} +0 -0
  252. /package/dist/components/{p-CV7fm1rW.js → index2.js} +0 -0
  253. /package/dist/components/{p-C_2k3G1c.js → long-press-event.js} +0 -0
  254. /package/dist/components/{p-CBFgkSgY.js → react/p-CBFgkSgY.js} +0 -0
  255. /package/dist/components/{p-DjIHLduJ.js → react/p-DjIHLduJ.js} +0 -0
@@ -0,0 +1,222 @@
1
+ import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
2
+ import { a as PLACEMENT_TYPES, d as defineCustomElement$1 } from './post-popovercontainer2.js';
3
+ import { v as version } from './package.js';
4
+ import { g as getFocusableChildren } from './get-focusable-children.js';
5
+ import { d as checkEmptyOrOneOf } from './index2.js';
6
+ import './breakpoints.js';
7
+ import { E as EventFrom } from './event-from.js';
8
+ import { g as getRoot } from './get-root.js';
9
+
10
+ const postMenuCss = "@keyframes popIn{from{transform:scale(0.9);opacity:0;transition-property:transform,opacity,overlay,display;transition-behavior:allow-discrete;transition-duration:var(--post-transition-duration, 0.35s);transition-timing-function:linear(0, 0.007, 0.029 2.2%, 0.118 4.7%, 0.625 14.4%, 0.826 19%, 0.902, 0.962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, 0.999 61.6%, 0.995 71.2%, 1)}to{opacity:1;transform:scale(1)}}:host{display:block}:where([part=menu]){display:flex;flex-direction:column;padding-block:.5rem}";
11
+
12
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
13
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
14
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
15
+ r = Reflect.decorate(decorators, target, key, desc);
16
+ else
17
+ for (var i = decorators.length - 1; i >= 0; i--)
18
+ if (d = decorators[i])
19
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
20
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
21
+ };
22
+ const PostMenu = /*@__PURE__*/ proxyCustomElement(class PostMenu extends HTMLElement {
23
+ constructor() {
24
+ super();
25
+ this.__registerHost();
26
+ this.__attachShadow();
27
+ this.toggleMenu = createEvent(this, "toggleMenu", 7);
28
+ this.lastFocusedElement = null;
29
+ this.KEYCODES = {
30
+ SPACE: ' ',
31
+ ENTER: 'Enter',
32
+ UP: 'ArrowUp',
33
+ DOWN: 'ArrowDown',
34
+ TAB: 'Tab',
35
+ HOME: 'Home',
36
+ END: 'End',
37
+ ESCAPE: 'Escape',
38
+ };
39
+ /**
40
+ * Defines the position of the menu relative to its trigger.
41
+ * Menus are automatically flipped to the opposite side if there is not enough available space and are shifted towards the viewport if they would overlap edge boundaries.
42
+ * For supported values and behavior details, see the [Floating UI placement documentation](https://floating-ui.com/docs/computePosition#placement).
43
+ */
44
+ this.placement = 'bottom';
45
+ /**
46
+ * Holds the current visibility state of the menu.
47
+ * This state is internally managed to track whether the menu is open (`true`) or closed (`false`),
48
+ * and updates automatically when the menu is toggled.
49
+ */
50
+ this.isVisible = false;
51
+ this.handleKeyDown = (e) => {
52
+ e.stopPropagation();
53
+ if (e.key === this.KEYCODES.ESCAPE) {
54
+ this.toggle(this.host);
55
+ return;
56
+ }
57
+ if (Object.values(this.KEYCODES).includes(e.key)) {
58
+ this.controlKeyDownHandler(e);
59
+ }
60
+ };
61
+ this.handlePostToggle = (event) => {
62
+ this.isVisible = event.detail;
63
+ this.toggleMenu.emit(this.isVisible);
64
+ requestAnimationFrame(() => {
65
+ if (this.isVisible) {
66
+ this.lastFocusedElement = this.root?.activeElement;
67
+ const menuItems = this.getSlottedItems();
68
+ if (menuItems.length > 0) {
69
+ menuItems[0].focus();
70
+ }
71
+ }
72
+ else if (this.lastFocusedElement) {
73
+ this.lastFocusedElement.focus();
74
+ }
75
+ });
76
+ };
77
+ this.handleClick = (e) => {
78
+ const target = e.target;
79
+ if (['BUTTON', 'A', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
80
+ this.toggle(this.host);
81
+ }
82
+ };
83
+ }
84
+ validatePlacement() {
85
+ checkEmptyOrOneOf(this, 'placement', PLACEMENT_TYPES);
86
+ }
87
+ connectedCallback() {
88
+ this.root = getRoot(this.host);
89
+ this.host.addEventListener('keydown', this.handleKeyDown);
90
+ this.host.addEventListener('click', this.handleClick);
91
+ }
92
+ disconnectedCallback() {
93
+ this.host.removeEventListener('keydown', this.handleKeyDown);
94
+ this.host.removeEventListener('click', this.handleClick);
95
+ this.popoverRef?.removeEventListener('postToggle', this.handlePostToggle);
96
+ }
97
+ componentDidLoad() {
98
+ this.validatePlacement();
99
+ if (this.popoverRef) {
100
+ this.popoverRef.addEventListener('postToggle', this.handlePostToggle);
101
+ }
102
+ }
103
+ /**
104
+ * Toggles the menu visibility based on its current state.
105
+ */
106
+ async toggle(target) {
107
+ if (this.popoverRef) {
108
+ await this.popoverRef.toggle(target);
109
+ }
110
+ else {
111
+ console.error('toggle: popoverRef is null or undefined');
112
+ }
113
+ }
114
+ /**
115
+ * Displays the popover menu, focusing the first menu item.
116
+ *
117
+ * @param target - The HTML element relative to which the popover menu should be displayed.
118
+ */
119
+ async show(target) {
120
+ if (this.popoverRef) {
121
+ await this.popoverRef.show(target);
122
+ }
123
+ else {
124
+ console.error('show: popoverRef is null or undefined');
125
+ }
126
+ }
127
+ /**
128
+ * Hides the popover menu and restores focus to the previously focused element.
129
+ */
130
+ async hide() {
131
+ if (this.popoverRef) {
132
+ await this.popoverRef.hide();
133
+ }
134
+ else {
135
+ console.error('hide: popoverRef is null or undefined');
136
+ }
137
+ }
138
+ controlKeyDownHandler(e) {
139
+ const menuItems = this.getSlottedItems();
140
+ if (!menuItems.length) {
141
+ return;
142
+ }
143
+ let currentIndex = menuItems.findIndex(el => {
144
+ // Check if the item is currently focused within its rendered scope (document or shadow root)
145
+ return el === getRoot(el).activeElement;
146
+ });
147
+ switch (e.key) {
148
+ case this.KEYCODES.UP:
149
+ e.preventDefault();
150
+ currentIndex = (currentIndex - 1 + menuItems.length) % menuItems.length;
151
+ break;
152
+ case this.KEYCODES.DOWN:
153
+ e.preventDefault();
154
+ currentIndex = (currentIndex + 1) % menuItems.length;
155
+ break;
156
+ case this.KEYCODES.HOME:
157
+ currentIndex = 0;
158
+ break;
159
+ case this.KEYCODES.END:
160
+ e.preventDefault();
161
+ currentIndex = menuItems.length - 1;
162
+ break;
163
+ case this.KEYCODES.SPACE:
164
+ this.toggle(this.host);
165
+ return;
166
+ case this.KEYCODES.TAB:
167
+ this.toggle(this.host);
168
+ break;
169
+ }
170
+ if (menuItems[currentIndex]) {
171
+ menuItems[currentIndex].focus();
172
+ }
173
+ }
174
+ getSlottedItems() {
175
+ const slot = this.host.shadowRoot.querySelector('slot');
176
+ const slottedElements = slot ? slot.assignedElements() : [];
177
+ return (slottedElements
178
+ // If the element is a slot, get the assigned elements
179
+ .flatMap(el => (el instanceof HTMLSlotElement ? el.assignedElements() : el))
180
+ // For each menu item, get any focusable children (e.g., buttons, links)
181
+ .flatMap(el => Array.from(getFocusableChildren(el))));
182
+ }
183
+ render() {
184
+ return (h(Host, { key: 'ee365a30646247563fccd55556f7667cb1591d02', "data-version": version, role: "menu" }, h("post-popovercontainer", { key: 'c649841d408d3f35dfed959cdc6b041163ff80d3', placement: this.placement, ref: e => (this.popoverRef = e) }, h("div", { key: '9f4f145b80c716d27dc51f4bcb0d269b2b2678a8', part: "menu" }, h("slot", { key: '72b53c8f154a4a91541799a789e8618a8d1a9c2c' })))));
185
+ }
186
+ get host() { return this; }
187
+ static get watchers() { return {
188
+ "placement": ["validatePlacement"]
189
+ }; }
190
+ static get style() { return postMenuCss; }
191
+ }, [1, "post-menu", {
192
+ "placement": [1],
193
+ "isVisible": [32],
194
+ "toggle": [64],
195
+ "show": [64],
196
+ "hide": [64]
197
+ }, undefined, {
198
+ "placement": ["validatePlacement"]
199
+ }]);
200
+ __decorate([
201
+ EventFrom('post-popovercontainer')
202
+ ], PostMenu.prototype, "handlePostToggle", void 0);
203
+ function defineCustomElement() {
204
+ if (typeof customElements === "undefined") {
205
+ return;
206
+ }
207
+ const components = ["post-menu", "post-popovercontainer"];
208
+ components.forEach(tagName => { switch (tagName) {
209
+ case "post-menu":
210
+ if (!customElements.get(tagName)) {
211
+ customElements.define(tagName, PostMenu);
212
+ }
213
+ break;
214
+ case "post-popovercontainer":
215
+ if (!customElements.get(tagName)) {
216
+ defineCustomElement$1();
217
+ }
218
+ break;
219
+ } });
220
+ }
221
+
222
+ export { PostMenu as P, defineCustomElement as d };
@@ -1,8 +1,8 @@
1
- import { p as proxyCustomElement, H, h, a as Host } from './index.js';
2
- import { d as defineCustomElement$2, a as PLACEMENT_TYPES } from './p-DP5pj8mq.js';
3
- import { v as version } from './p-Z01QMrov.js';
4
- import { I as IS_BROWSER } from './p-CJ80BZ06.js';
5
- import { d as checkEmptyOrOneOf, c as checkRequiredAndType } from './p-CV7fm1rW.js';
1
+ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
2
+ import { a as PLACEMENT_TYPES, d as defineCustomElement$2 } from './post-popovercontainer2.js';
3
+ import { v as version } from './package.js';
4
+ import { I as IS_BROWSER } from './breakpoints.js';
5
+ import { d as checkEmptyOrOneOf, c as checkRequiredAndType } from './index2.js';
6
6
 
7
7
  function getAttributeObserver(attribute, handler) {
8
8
  /**
@@ -49,7 +49,7 @@ const globalToggleHandler = (e) => {
49
49
  const popover = document.getElementById(popoverTarget);
50
50
  popover?.toggle(currentElement);
51
51
  };
52
- const PostPopover$1 = /*@__PURE__*/ proxyCustomElement(class PostPopover extends H {
52
+ const PostPopover$1 = /*@__PURE__*/ proxyCustomElement(class PostPopover extends HTMLElement {
53
53
  validatePlacement() {
54
54
  checkEmptyOrOneOf(this, 'placement', PLACEMENT_TYPES);
55
55
  }
@@ -181,7 +181,6 @@ function defineCustomElement$1() {
181
181
  break;
182
182
  } });
183
183
  }
184
- defineCustomElement$1();
185
184
 
186
185
  const PostPopover = PostPopover$1;
187
186
  const defineCustomElement = defineCustomElement$1;
@@ -1,4 +1,4 @@
1
- import { P as PostPopovercontainer$1, d as defineCustomElement$1 } from './p-DP5pj8mq.js';
1
+ import { P as PostPopovercontainer$1, d as defineCustomElement$1 } from './post-popovercontainer2.js';
2
2
 
3
3
  const PostPopovercontainer = PostPopovercontainer$1;
4
4
  const defineCustomElement = defineCustomElement$1;