@synergy-design-system/components 1.11.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (228) hide show
  1. package/dist/chunks/chunk.2KYFCKCK.js +10 -0
  2. package/dist/chunks/chunk.2KYFCKCK.js.map +7 -0
  3. package/dist/chunks/chunk.2QOQY4ZG.js +132 -0
  4. package/dist/chunks/chunk.2QOQY4ZG.js.map +7 -0
  5. package/dist/chunks/{chunk.GTSRMEPE.js → chunk.2QYALZBT.js} +2 -51
  6. package/dist/chunks/chunk.2QYALZBT.js.map +7 -0
  7. package/dist/chunks/{chunk.2OLVTQ5P.js → chunk.3A65FBTX.js} +2 -1
  8. package/dist/chunks/chunk.3A65FBTX.js.map +7 -0
  9. package/dist/chunks/chunk.3FOVDOJX.js +26 -0
  10. package/dist/chunks/chunk.3FOVDOJX.js.map +7 -0
  11. package/dist/chunks/{chunk.27H5YFFI.js → chunk.3PBOWA5U.js} +5 -5
  12. package/dist/chunks/{chunk.L6ENEGDU.js → chunk.4IIG6F76.js} +2 -2
  13. package/dist/chunks/{chunk.RUEZLCM4.js → chunk.4RYBHPDG.js} +2 -2
  14. package/dist/chunks/{chunk.XGXFE6IF.js → chunk.66WXVGAW.js} +16 -2
  15. package/dist/chunks/{chunk.XGXFE6IF.js.map → chunk.66WXVGAW.js.map} +1 -1
  16. package/dist/chunks/chunk.7BEVGRQ2.js +52 -0
  17. package/dist/chunks/chunk.7BEVGRQ2.js.map +7 -0
  18. package/dist/chunks/{chunk.RKCUJRKU.js → chunk.7JJZR4JG.js} +3 -3
  19. package/dist/chunks/{chunk.P2PJU2JX.js → chunk.AW7IXLZ6.js} +2 -2
  20. package/dist/chunks/{chunk.OEBVCWZK.js → chunk.B35CKL75.js} +2 -2
  21. package/dist/chunks/{chunk.NJPQTVZC.js → chunk.BAPPYU2J.js} +3 -3
  22. package/dist/chunks/{chunk.DAQB7JE5.js → chunk.BD3YJRAC.js} +2 -2
  23. package/dist/chunks/{chunk.RRG6TAY7.js → chunk.CKASWRIG.js} +2 -2
  24. package/dist/chunks/chunk.EMIN5Z4Y.js +12 -0
  25. package/dist/chunks/chunk.EMIN5Z4Y.js.map +7 -0
  26. package/dist/chunks/{chunk.5NLSHXNC.js → chunk.F2JCTYYN.js} +2 -2
  27. package/dist/chunks/chunk.FIVDEPVP.js +194 -0
  28. package/dist/chunks/chunk.FIVDEPVP.js.map +7 -0
  29. package/dist/chunks/{chunk.MTUGTGK4.js → chunk.FYJQBDYL.js} +2 -2
  30. package/dist/chunks/{chunk.XOIRFMBL.js → chunk.HJNNSNKN.js} +3 -3
  31. package/dist/chunks/chunk.HOJ7LSMH.js +12 -0
  32. package/dist/chunks/chunk.HOJ7LSMH.js.map +7 -0
  33. package/dist/chunks/chunk.J4XBGQBY.js +35 -0
  34. package/dist/chunks/chunk.J4XBGQBY.js.map +7 -0
  35. package/dist/chunks/{chunk.YJO3VNKR.js → chunk.JZLW5XX6.js} +2 -2
  36. package/dist/chunks/{chunk.24VV3YAD.js → chunk.K74W3RP4.js} +3 -3
  37. package/dist/chunks/chunk.KZFU7TFZ.js +131 -0
  38. package/dist/chunks/chunk.KZFU7TFZ.js.map +7 -0
  39. package/dist/chunks/{chunk.TIZ7TBXR.js → chunk.LDWFJMF6.js} +2 -2
  40. package/dist/chunks/{chunk.5Q46XTEM.js → chunk.LKEOG4V4.js} +2 -2
  41. package/dist/chunks/{chunk.WPY6PWSD.js → chunk.LUPEZL5H.js} +2 -2
  42. package/dist/chunks/{chunk.WPY6PWSD.js.map → chunk.LUPEZL5H.js.map} +1 -1
  43. package/dist/chunks/{chunk.KBQDYKZQ.js → chunk.MEMVYSEM.js} +2 -2
  44. package/dist/chunks/{chunk.Q3LOBGRV.js → chunk.MKKJWJHG.js} +2 -2
  45. package/dist/chunks/{chunk.WGHLFFPZ.js → chunk.MM2YC5ZH.js} +6 -6
  46. package/dist/chunks/{chunk.CHESV63R.js → chunk.NE7RLB6A.js} +2 -2
  47. package/dist/chunks/{chunk.HQC36QXK.js → chunk.NXAAWXFC.js} +18 -133
  48. package/dist/chunks/chunk.NXAAWXFC.js.map +7 -0
  49. package/dist/chunks/chunk.OOABXWCW.js +111 -0
  50. package/dist/chunks/chunk.OOABXWCW.js.map +7 -0
  51. package/dist/chunks/{chunk.EGIUUFQ4.js → chunk.OQ7JU642.js} +2 -2
  52. package/dist/chunks/{chunk.OQ72PVRS.js → chunk.OWAQA3TV.js} +2 -2
  53. package/dist/chunks/chunk.PDHVYHXD.js +156 -0
  54. package/dist/chunks/chunk.PDHVYHXD.js.map +7 -0
  55. package/dist/chunks/chunk.PILX7LVU.js +26 -0
  56. package/dist/chunks/chunk.PILX7LVU.js.map +7 -0
  57. package/dist/chunks/{chunk.G5AYV6GN.js → chunk.RBDVQQ3E.js} +6 -6
  58. package/dist/chunks/chunk.RRWSXFQ5.js +239 -0
  59. package/dist/chunks/chunk.RRWSXFQ5.js.map +7 -0
  60. package/dist/chunks/chunk.RSSY7KPD.js +24 -0
  61. package/dist/chunks/chunk.RSSY7KPD.js.map +7 -0
  62. package/dist/chunks/chunk.SLCYXMHB.js +57 -0
  63. package/dist/chunks/chunk.SLCYXMHB.js.map +7 -0
  64. package/dist/chunks/{chunk.WJX2T5MU.js → chunk.SR56N2RY.js} +6 -6
  65. package/dist/chunks/{chunk.XOL5KILI.js → chunk.T7D7X73E.js} +10 -8
  66. package/dist/chunks/{chunk.XOL5KILI.js.map → chunk.T7D7X73E.js.map} +1 -1
  67. package/dist/chunks/{chunk.EK3YHGUC.js → chunk.TDEBVJWI.js} +3 -3
  68. package/dist/chunks/{chunk.HIBWKIA6.js → chunk.TEWZUSS3.js} +3 -3
  69. package/dist/chunks/{chunk.C64JGJO3.js → chunk.TOBWLVQY.js} +2 -2
  70. package/dist/chunks/chunk.UJIWHSZR.js +12 -0
  71. package/dist/chunks/chunk.UJIWHSZR.js.map +7 -0
  72. package/dist/chunks/{chunk.XOQKLUKE.js → chunk.WBOGDY52.js} +2 -2
  73. package/dist/chunks/{chunk.HZDJ5AOY.js → chunk.WNUV3MAD.js} +3 -3
  74. package/dist/chunks/{chunk.3GR4ZUZH.js → chunk.WU6GTI3K.js} +2 -2
  75. package/dist/chunks/chunk.WWBODWZN.js +12 -0
  76. package/dist/chunks/chunk.WWBODWZN.js.map +7 -0
  77. package/dist/chunks/chunk.X6GR6IA2.js +29 -0
  78. package/dist/chunks/chunk.X6GR6IA2.js.map +7 -0
  79. package/dist/chunks/{chunk.HSC2UWAO.js → chunk.XF4DS2IU.js} +8 -8
  80. package/dist/chunks/{chunk.C5HHWDZB.js → chunk.XKURNDPY.js} +2 -2
  81. package/dist/chunks/{chunk.JAHRZFQ6.js → chunk.XRLJLT47.js} +4 -4
  82. package/dist/chunks/{chunk.TWO26WWF.js → chunk.YSDEWPDF.js} +4 -4
  83. package/dist/chunks/chunk.ZFDPWUKA.js +365 -0
  84. package/dist/chunks/chunk.ZFDPWUKA.js.map +7 -0
  85. package/dist/chunks/{chunk.42OELSP4.js → chunk.ZGKQGMNS.js} +2 -2
  86. package/dist/chunks/chunk.ZKGSBP7D.js +12 -0
  87. package/dist/chunks/chunk.ZKGSBP7D.js.map +7 -0
  88. package/dist/chunks/{chunk.6QB26MQP.js → chunk.ZPMKYF4O.js} +7 -7
  89. package/dist/components/button/button.component.js +7 -7
  90. package/dist/components/button/button.js +8 -8
  91. package/dist/components/button-group/button-group.component.js +2 -2
  92. package/dist/components/button-group/button-group.js +3 -3
  93. package/dist/components/checkbox/checkbox.component.js +6 -6
  94. package/dist/components/checkbox/checkbox.js +7 -7
  95. package/dist/components/divider/divider.component.js +2 -2
  96. package/dist/components/divider/divider.js +3 -3
  97. package/dist/components/drawer/drawer.component.js +11 -9
  98. package/dist/components/drawer/drawer.js +12 -10
  99. package/dist/components/dropdown/dropdown.component.d.ts +96 -0
  100. package/dist/components/dropdown/dropdown.component.js +19 -0
  101. package/dist/components/dropdown/dropdown.component.js.map +7 -0
  102. package/dist/components/dropdown/dropdown.custom.styles.d.ts +2 -0
  103. package/dist/components/dropdown/dropdown.custom.styles.js +8 -0
  104. package/dist/components/dropdown/dropdown.custom.styles.js.map +7 -0
  105. package/dist/components/dropdown/dropdown.d.ts +8 -0
  106. package/dist/components/dropdown/dropdown.js +20 -0
  107. package/dist/components/dropdown/dropdown.js.map +7 -0
  108. package/dist/components/dropdown/dropdown.styles.d.ts +2 -0
  109. package/dist/components/dropdown/dropdown.styles.js +8 -0
  110. package/dist/components/dropdown/dropdown.styles.js.map +7 -0
  111. package/dist/components/header/header.component.js +7 -7
  112. package/dist/components/header/header.js +8 -8
  113. package/dist/components/icon/icon.component.js +4 -4
  114. package/dist/components/icon/icon.js +5 -5
  115. package/dist/components/icon-button/icon-button.component.js +5 -5
  116. package/dist/components/icon-button/icon-button.js +6 -6
  117. package/dist/components/input/input.component.js +8 -8
  118. package/dist/components/input/input.custom.styles.js +1 -1
  119. package/dist/components/input/input.js +9 -9
  120. package/dist/components/menu/menu.component.d.ts +39 -0
  121. package/dist/components/menu/menu.component.js +11 -0
  122. package/dist/components/menu/menu.component.js.map +7 -0
  123. package/dist/components/menu/menu.custom.styles.d.ts +2 -0
  124. package/dist/components/menu/menu.custom.styles.js +8 -0
  125. package/dist/components/menu/menu.custom.styles.js.map +7 -0
  126. package/dist/components/menu/menu.d.ts +8 -0
  127. package/dist/components/menu/menu.js +12 -0
  128. package/dist/components/menu/menu.js.map +7 -0
  129. package/dist/components/menu/menu.styles.d.ts +2 -0
  130. package/dist/components/menu/menu.styles.js +8 -0
  131. package/dist/components/menu/menu.styles.js.map +7 -0
  132. package/dist/components/menu-item/menu-item.component.d.ts +67 -0
  133. package/dist/components/menu-item/menu-item.component.js +27 -0
  134. package/dist/components/menu-item/menu-item.component.js.map +7 -0
  135. package/dist/components/menu-item/menu-item.custom.styles.d.ts +2 -0
  136. package/dist/components/menu-item/menu-item.custom.styles.js +8 -0
  137. package/dist/components/menu-item/menu-item.custom.styles.js.map +7 -0
  138. package/dist/components/menu-item/menu-item.d.ts +8 -0
  139. package/dist/components/menu-item/menu-item.js +28 -0
  140. package/dist/components/menu-item/menu-item.js.map +7 -0
  141. package/dist/components/menu-item/menu-item.styles.d.ts +2 -0
  142. package/dist/components/menu-item/menu-item.styles.js +8 -0
  143. package/dist/components/menu-item/menu-item.styles.js.map +7 -0
  144. package/dist/components/menu-item/submenu-controller.d.ts +36 -0
  145. package/dist/components/menu-item/submenu-controller.js +11 -0
  146. package/dist/components/menu-item/submenu-controller.js.map +7 -0
  147. package/dist/components/menu-label/menu-label.component.d.ts +31 -0
  148. package/dist/components/menu-label/menu-label.component.js +15 -0
  149. package/dist/components/menu-label/menu-label.component.js.map +7 -0
  150. package/dist/components/menu-label/menu-label.custom.styles.d.ts +2 -0
  151. package/dist/components/menu-label/menu-label.custom.styles.js +8 -0
  152. package/dist/components/menu-label/menu-label.custom.styles.js.map +7 -0
  153. package/dist/components/menu-label/menu-label.d.ts +8 -0
  154. package/dist/components/menu-label/menu-label.js +16 -0
  155. package/dist/components/menu-label/menu-label.js.map +7 -0
  156. package/dist/components/menu-label/menu-label.styles.d.ts +2 -0
  157. package/dist/components/menu-label/menu-label.styles.js +8 -0
  158. package/dist/components/menu-label/menu-label.styles.js.map +7 -0
  159. package/dist/components/optgroup/optgroup.component.js +4 -4
  160. package/dist/components/optgroup/optgroup.js +5 -5
  161. package/dist/components/option/option.component.js +5 -5
  162. package/dist/components/option/option.js +6 -6
  163. package/dist/components/popup/popup.component.js +2 -2
  164. package/dist/components/popup/popup.d.ts +8 -0
  165. package/dist/components/popup/popup.js +11 -0
  166. package/dist/components/popup/popup.js.map +7 -0
  167. package/dist/components/radio/radio.component.js +5 -5
  168. package/dist/components/radio/radio.js +6 -6
  169. package/dist/components/radio-button/radio-button.component.js +3 -3
  170. package/dist/components/radio-button/radio-button.js +4 -4
  171. package/dist/components/radio-group/radio-group.component.js +5 -5
  172. package/dist/components/radio-group/radio-group.js +6 -6
  173. package/dist/components/select/select.component.js +13 -12
  174. package/dist/components/select/select.js +14 -13
  175. package/dist/components/spinner/spinner.component.js +2 -2
  176. package/dist/components/switch/switch.component.js +3 -3
  177. package/dist/components/switch/switch.js +4 -4
  178. package/dist/components/tag/tag.component.js +6 -6
  179. package/dist/components/tag/tag.js +7 -7
  180. package/dist/components/textarea/textarea.component.js +3 -3
  181. package/dist/components/textarea/textarea.js +4 -4
  182. package/dist/custom-elements.json +1802 -943
  183. package/dist/events/events.d.ts +1 -0
  184. package/dist/events/syn-select.d.ts +9 -0
  185. package/dist/synergy.d.ts +5 -0
  186. package/dist/synergy.js +97 -62
  187. package/dist/themes/utility.css +12 -3
  188. package/dist/vscode.html-custom-data.json +137 -17
  189. package/package.json +4 -4
  190. package/dist/chunks/chunk.2OLVTQ5P.js.map +0 -7
  191. package/dist/chunks/chunk.GTSRMEPE.js.map +0 -7
  192. package/dist/chunks/chunk.HQC36QXK.js.map +0 -7
  193. /package/dist/chunks/{chunk.27H5YFFI.js.map → chunk.3PBOWA5U.js.map} +0 -0
  194. /package/dist/chunks/{chunk.L6ENEGDU.js.map → chunk.4IIG6F76.js.map} +0 -0
  195. /package/dist/chunks/{chunk.RUEZLCM4.js.map → chunk.4RYBHPDG.js.map} +0 -0
  196. /package/dist/chunks/{chunk.RKCUJRKU.js.map → chunk.7JJZR4JG.js.map} +0 -0
  197. /package/dist/chunks/{chunk.P2PJU2JX.js.map → chunk.AW7IXLZ6.js.map} +0 -0
  198. /package/dist/chunks/{chunk.OEBVCWZK.js.map → chunk.B35CKL75.js.map} +0 -0
  199. /package/dist/chunks/{chunk.NJPQTVZC.js.map → chunk.BAPPYU2J.js.map} +0 -0
  200. /package/dist/chunks/{chunk.DAQB7JE5.js.map → chunk.BD3YJRAC.js.map} +0 -0
  201. /package/dist/chunks/{chunk.RRG6TAY7.js.map → chunk.CKASWRIG.js.map} +0 -0
  202. /package/dist/chunks/{chunk.5NLSHXNC.js.map → chunk.F2JCTYYN.js.map} +0 -0
  203. /package/dist/chunks/{chunk.MTUGTGK4.js.map → chunk.FYJQBDYL.js.map} +0 -0
  204. /package/dist/chunks/{chunk.XOIRFMBL.js.map → chunk.HJNNSNKN.js.map} +0 -0
  205. /package/dist/chunks/{chunk.YJO3VNKR.js.map → chunk.JZLW5XX6.js.map} +0 -0
  206. /package/dist/chunks/{chunk.24VV3YAD.js.map → chunk.K74W3RP4.js.map} +0 -0
  207. /package/dist/chunks/{chunk.TIZ7TBXR.js.map → chunk.LDWFJMF6.js.map} +0 -0
  208. /package/dist/chunks/{chunk.5Q46XTEM.js.map → chunk.LKEOG4V4.js.map} +0 -0
  209. /package/dist/chunks/{chunk.KBQDYKZQ.js.map → chunk.MEMVYSEM.js.map} +0 -0
  210. /package/dist/chunks/{chunk.Q3LOBGRV.js.map → chunk.MKKJWJHG.js.map} +0 -0
  211. /package/dist/chunks/{chunk.WGHLFFPZ.js.map → chunk.MM2YC5ZH.js.map} +0 -0
  212. /package/dist/chunks/{chunk.CHESV63R.js.map → chunk.NE7RLB6A.js.map} +0 -0
  213. /package/dist/chunks/{chunk.EGIUUFQ4.js.map → chunk.OQ7JU642.js.map} +0 -0
  214. /package/dist/chunks/{chunk.OQ72PVRS.js.map → chunk.OWAQA3TV.js.map} +0 -0
  215. /package/dist/chunks/{chunk.G5AYV6GN.js.map → chunk.RBDVQQ3E.js.map} +0 -0
  216. /package/dist/chunks/{chunk.WJX2T5MU.js.map → chunk.SR56N2RY.js.map} +0 -0
  217. /package/dist/chunks/{chunk.EK3YHGUC.js.map → chunk.TDEBVJWI.js.map} +0 -0
  218. /package/dist/chunks/{chunk.HIBWKIA6.js.map → chunk.TEWZUSS3.js.map} +0 -0
  219. /package/dist/chunks/{chunk.C64JGJO3.js.map → chunk.TOBWLVQY.js.map} +0 -0
  220. /package/dist/chunks/{chunk.XOQKLUKE.js.map → chunk.WBOGDY52.js.map} +0 -0
  221. /package/dist/chunks/{chunk.HZDJ5AOY.js.map → chunk.WNUV3MAD.js.map} +0 -0
  222. /package/dist/chunks/{chunk.3GR4ZUZH.js.map → chunk.WU6GTI3K.js.map} +0 -0
  223. /package/dist/chunks/{chunk.HSC2UWAO.js.map → chunk.XF4DS2IU.js.map} +0 -0
  224. /package/dist/chunks/{chunk.C5HHWDZB.js.map → chunk.XKURNDPY.js.map} +0 -0
  225. /package/dist/chunks/{chunk.JAHRZFQ6.js.map → chunk.XRLJLT47.js.map} +0 -0
  226. /package/dist/chunks/{chunk.TWO26WWF.js.map → chunk.YSDEWPDF.js.map} +0 -0
  227. /package/dist/chunks/{chunk.42OELSP4.js.map → chunk.ZGKQGMNS.js.map} +0 -0
  228. /package/dist/chunks/{chunk.6QB26MQP.js.map → chunk.ZPMKYF4O.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynIconButton
3
- } from "./chunk.XOIRFMBL.js";
3
+ } from "./chunk.HJNNSNKN.js";
4
4
 
5
5
  // src/components/icon-button/icon-button.ts
6
6
  var icon_button_default = SynIconButton;
@@ -9,4 +9,4 @@ SynIconButton.define("syn-icon-button");
9
9
  export {
10
10
  icon_button_default
11
11
  };
12
- //# sourceMappingURL=chunk.5NLSHXNC.js.map
12
+ //# sourceMappingURL=chunk.F2JCTYYN.js.map
@@ -0,0 +1,194 @@
1
+ import {
2
+ menu_item_custom_styles_default
3
+ } from "./chunk.OOABXWCW.js";
4
+ import {
5
+ menu_item_styles_default
6
+ } from "./chunk.PDHVYHXD.js";
7
+ import {
8
+ SubmenuController
9
+ } from "./chunk.RRWSXFQ5.js";
10
+ import {
11
+ SynPopup
12
+ } from "./chunk.FYJQBDYL.js";
13
+ import {
14
+ SynSpinner
15
+ } from "./chunk.4RYBHPDG.js";
16
+ import {
17
+ LocalizeController
18
+ } from "./chunk.LAB4YJYE.js";
19
+ import {
20
+ HasSlotController,
21
+ getTextContent
22
+ } from "./chunk.66WXVGAW.js";
23
+ import {
24
+ SynIcon
25
+ } from "./chunk.ZPMKYF4O.js";
26
+ import {
27
+ watch
28
+ } from "./chunk.AVTU2BGE.js";
29
+ import {
30
+ SynergyElement,
31
+ component_styles_default
32
+ } from "./chunk.LUPEZL5H.js";
33
+ import {
34
+ __decorateClass
35
+ } from "./chunk.QNDC5KWA.js";
36
+
37
+ // src/components/menu-item/menu-item.component.ts
38
+ import { classMap } from "lit/directives/class-map.js";
39
+ import { html } from "lit";
40
+ import { property, query } from "lit/decorators.js";
41
+ var SynMenuItem = class extends SynergyElement {
42
+ constructor() {
43
+ super(...arguments);
44
+ this.type = "normal";
45
+ this.checked = false;
46
+ this.value = "";
47
+ this.loading = false;
48
+ this.disabled = false;
49
+ this.localize = new LocalizeController(this);
50
+ this.hasSlotController = new HasSlotController(this, "submenu");
51
+ this.submenuController = new SubmenuController(this, this.hasSlotController, this.localize);
52
+ this.handleHostClick = (event) => {
53
+ if (this.disabled) {
54
+ event.preventDefault();
55
+ event.stopImmediatePropagation();
56
+ }
57
+ };
58
+ this.handleMouseOver = (event) => {
59
+ this.focus();
60
+ event.stopPropagation();
61
+ };
62
+ }
63
+ connectedCallback() {
64
+ super.connectedCallback();
65
+ this.addEventListener("click", this.handleHostClick);
66
+ this.addEventListener("mouseover", this.handleMouseOver);
67
+ }
68
+ disconnectedCallback() {
69
+ super.disconnectedCallback();
70
+ this.removeEventListener("click", this.handleHostClick);
71
+ this.removeEventListener("mouseover", this.handleMouseOver);
72
+ }
73
+ handleDefaultSlotChange() {
74
+ const textLabel = this.getTextLabel();
75
+ if (typeof this.cachedTextLabel === "undefined") {
76
+ this.cachedTextLabel = textLabel;
77
+ return;
78
+ }
79
+ if (textLabel !== this.cachedTextLabel) {
80
+ this.cachedTextLabel = textLabel;
81
+ this.emit("slotchange", { bubbles: true, composed: false, cancelable: false });
82
+ }
83
+ }
84
+ handleCheckedChange() {
85
+ if (this.checked && this.type !== "checkbox") {
86
+ this.checked = false;
87
+ console.error('The checked attribute can only be used on menu items with type="checkbox"', this);
88
+ return;
89
+ }
90
+ if (this.type === "checkbox") {
91
+ this.setAttribute("aria-checked", this.checked ? "true" : "false");
92
+ } else {
93
+ this.removeAttribute("aria-checked");
94
+ }
95
+ }
96
+ handleDisabledChange() {
97
+ this.setAttribute("aria-disabled", this.disabled ? "true" : "false");
98
+ }
99
+ handleTypeChange() {
100
+ if (this.type === "checkbox") {
101
+ this.setAttribute("role", "menuitemcheckbox");
102
+ this.setAttribute("aria-checked", this.checked ? "true" : "false");
103
+ } else {
104
+ this.setAttribute("role", "menuitem");
105
+ this.removeAttribute("aria-checked");
106
+ }
107
+ }
108
+ /** Returns a text label based on the contents of the menu item's default slot. */
109
+ getTextLabel() {
110
+ return getTextContent(this.defaultSlot);
111
+ }
112
+ isSubmenu() {
113
+ return this.hasSlotController.test("submenu");
114
+ }
115
+ render() {
116
+ const isRtl = this.localize.dir() === "rtl";
117
+ const isSubmenuExpanded = this.submenuController.isExpanded();
118
+ return html`
119
+ <div
120
+ id="anchor"
121
+ part="base"
122
+ class=${classMap({
123
+ "menu-item": true,
124
+ "menu-item--rtl": isRtl,
125
+ "menu-item--checked": this.checked,
126
+ "menu-item--disabled": this.disabled,
127
+ "menu-item--loading": this.loading,
128
+ "menu-item--has-submenu": this.isSubmenu(),
129
+ "menu-item--submenu-expanded": isSubmenuExpanded
130
+ })}
131
+ ?aria-haspopup="${this.isSubmenu()}"
132
+ ?aria-expanded="${isSubmenuExpanded ? true : false}"
133
+ >
134
+ <span part="checked-icon" class="menu-item__check">
135
+ <syn-icon name="check" library="system" aria-hidden="true"></syn-icon>
136
+ </span>
137
+
138
+ <slot name="prefix" part="prefix" class="menu-item__prefix"></slot>
139
+
140
+ <slot part="label" class="menu-item__label" @slotchange=${this.handleDefaultSlotChange}></slot>
141
+
142
+ <slot name="suffix" part="suffix" class="menu-item__suffix"></slot>
143
+
144
+ <span part="submenu-icon" class="menu-item__chevron">
145
+ <syn-icon name="chevron-down" library="system" aria-hidden="true"></syn-icon>
146
+ </span>
147
+
148
+ ${this.submenuController.renderSubmenu()}
149
+ ${this.loading ? html` <syn-spinner part="spinner" exportparts="base:spinner__base"></syn-spinner> ` : ""}
150
+ </div>
151
+ `;
152
+ }
153
+ };
154
+ SynMenuItem.styles = [component_styles_default, menu_item_styles_default, menu_item_custom_styles_default];
155
+ SynMenuItem.dependencies = {
156
+ "syn-icon": SynIcon,
157
+ "syn-popup": SynPopup,
158
+ "syn-spinner": SynSpinner
159
+ };
160
+ __decorateClass([
161
+ query("slot:not([name])")
162
+ ], SynMenuItem.prototype, "defaultSlot", 2);
163
+ __decorateClass([
164
+ query(".menu-item")
165
+ ], SynMenuItem.prototype, "menuItem", 2);
166
+ __decorateClass([
167
+ property()
168
+ ], SynMenuItem.prototype, "type", 2);
169
+ __decorateClass([
170
+ property({ type: Boolean, reflect: true })
171
+ ], SynMenuItem.prototype, "checked", 2);
172
+ __decorateClass([
173
+ property()
174
+ ], SynMenuItem.prototype, "value", 2);
175
+ __decorateClass([
176
+ property({ type: Boolean, reflect: true })
177
+ ], SynMenuItem.prototype, "loading", 2);
178
+ __decorateClass([
179
+ property({ type: Boolean, reflect: true })
180
+ ], SynMenuItem.prototype, "disabled", 2);
181
+ __decorateClass([
182
+ watch("checked")
183
+ ], SynMenuItem.prototype, "handleCheckedChange", 1);
184
+ __decorateClass([
185
+ watch("disabled")
186
+ ], SynMenuItem.prototype, "handleDisabledChange", 1);
187
+ __decorateClass([
188
+ watch("type")
189
+ ], SynMenuItem.prototype, "handleTypeChange", 1);
190
+
191
+ export {
192
+ SynMenuItem
193
+ };
194
+ //# sourceMappingURL=chunk.FIVDEPVP.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/menu-item/menu-item.component.ts"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { classMap } from 'lit/directives/class-map.js';\nimport { getTextContent, HasSlotController } from '../../internal/slot.js';\nimport { html } from 'lit';\nimport { LocalizeController } from '../../utilities/localize.js';\nimport { property, query } from 'lit/decorators.js';\nimport { SubmenuController } from './submenu-controller.js';\nimport { watch } from '../../internal/watch.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport SynIcon from '../icon/icon.component.js';\nimport SynPopup from '../popup/popup.component.js';\nimport SynSpinner from '../spinner/spinner.component.js';\nimport styles from './menu-item.styles.js';\nimport customStyles from './menu-item.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\n\n/**\n * @summary Menu items provide options for the user to pick from in a menu.\n * @documentation https://synergy.style/components/menu-item\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n * @dependency syn-popup\n * @dependency syn-spinner\n *\n * @slot - The menu item's label.\n * @slot prefix - Used to prepend an icon or similar element to the menu item.\n * @slot suffix - Used to append an icon or similar element to the menu item.\n * @slot submenu - Used to denote a nested menu.\n *\n * @csspart base - The component's base wrapper.\n * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked.\n * @csspart prefix - The prefix container.\n * @csspart label - The menu item label.\n * @csspart suffix - The suffix container.\n * @csspart spinner - The spinner that shows when the menu item is in the loading state.\n * @csspart spinner__base - The spinner's base part.\n * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented).\n *\n * @cssproperty [--submenu-offset=-2px] - The distance submenus shift to overlap the parent menu.\n */\nexport default class SynMenuItem extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles, customStyles];\n static dependencies = {\n 'syn-icon': SynIcon,\n 'syn-popup': SynPopup,\n 'syn-spinner': SynSpinner\n };\n\n private cachedTextLabel: string;\n\n @query('slot:not([name])') defaultSlot: HTMLSlotElement;\n @query('.menu-item') menuItem: HTMLElement;\n\n /** The type of menu item to render. To use `checked`, this value must be set to `checkbox`. */\n @property() type: 'normal' | 'checkbox' = 'normal';\n\n /** Draws the item in a checked state. */\n @property({ type: Boolean, reflect: true }) checked = false;\n\n /** A unique value to store in the menu item. This can be used as a way to identify menu items when selected. */\n @property() value = '';\n\n /** Draws the menu item in a loading state. */\n @property({ type: Boolean, reflect: true }) loading = false;\n\n /** Draws the menu item in a disabled state, preventing selection. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n private readonly localize = new LocalizeController(this);\n private readonly hasSlotController = new HasSlotController(this, 'submenu');\n private submenuController: SubmenuController = new SubmenuController(this, this.hasSlotController, this.localize);\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.handleHostClick);\n this.addEventListener('mouseover', this.handleMouseOver);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.handleHostClick);\n this.removeEventListener('mouseover', this.handleMouseOver);\n }\n\n private handleDefaultSlotChange() {\n const textLabel = this.getTextLabel();\n\n // Ignore the first time the label is set\n if (typeof this.cachedTextLabel === 'undefined') {\n this.cachedTextLabel = textLabel;\n return;\n }\n\n // When the label changes, emit a slotchange event so parent controls see it\n if (textLabel !== this.cachedTextLabel) {\n this.cachedTextLabel = textLabel;\n this.emit('slotchange', { bubbles: true, composed: false, cancelable: false });\n }\n }\n\n private handleHostClick = (event: MouseEvent) => {\n // Prevent the click event from being emitted when the button is disabled or loading\n if (this.disabled) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n };\n\n private handleMouseOver = (event: MouseEvent) => {\n this.focus();\n event.stopPropagation();\n };\n\n @watch('checked')\n handleCheckedChange() {\n // For proper accessibility, users have to use type=\"checkbox\" to use the checked attribute\n if (this.checked && this.type !== 'checkbox') {\n this.checked = false;\n console.error('The checked attribute can only be used on menu items with type=\"checkbox\"', this);\n return;\n }\n\n // Only checkbox types can receive the aria-checked attribute\n if (this.type === 'checkbox') {\n this.setAttribute('aria-checked', this.checked ? 'true' : 'false');\n } else {\n this.removeAttribute('aria-checked');\n }\n }\n\n @watch('disabled')\n handleDisabledChange() {\n this.setAttribute('aria-disabled', this.disabled ? 'true' : 'false');\n }\n\n @watch('type')\n handleTypeChange() {\n if (this.type === 'checkbox') {\n this.setAttribute('role', 'menuitemcheckbox');\n this.setAttribute('aria-checked', this.checked ? 'true' : 'false');\n } else {\n this.setAttribute('role', 'menuitem');\n this.removeAttribute('aria-checked');\n }\n }\n\n /** Returns a text label based on the contents of the menu item's default slot. */\n getTextLabel() {\n return getTextContent(this.defaultSlot);\n }\n\n isSubmenu() {\n return this.hasSlotController.test('submenu');\n }\n\n render() {\n const isRtl = this.localize.dir() === 'rtl';\n const isSubmenuExpanded = this.submenuController.isExpanded();\n\n return html`\n <div\n id=\"anchor\"\n part=\"base\"\n class=${classMap({\n 'menu-item': true,\n 'menu-item--rtl': isRtl,\n 'menu-item--checked': this.checked,\n 'menu-item--disabled': this.disabled,\n 'menu-item--loading': this.loading,\n 'menu-item--has-submenu': this.isSubmenu(),\n 'menu-item--submenu-expanded': isSubmenuExpanded\n })}\n ?aria-haspopup=\"${this.isSubmenu()}\"\n ?aria-expanded=\"${isSubmenuExpanded ? true : false}\"\n >\n <span part=\"checked-icon\" class=\"menu-item__check\">\n <syn-icon name=\"check\" library=\"system\" aria-hidden=\"true\"></syn-icon>\n </span>\n\n <slot name=\"prefix\" part=\"prefix\" class=\"menu-item__prefix\"></slot>\n\n <slot part=\"label\" class=\"menu-item__label\" @slotchange=${this.handleDefaultSlotChange}></slot>\n\n <slot name=\"suffix\" part=\"suffix\" class=\"menu-item__suffix\"></slot>\n\n <span part=\"submenu-icon\" class=\"menu-item__chevron\">\n <syn-icon name=\"chevron-down\" library=\"system\" aria-hidden=\"true\"></syn-icon>\n </span>\n\n ${this.submenuController.renderSubmenu()}\n ${this.loading ? html` <syn-spinner part=\"spinner\" exportparts=\"base:spinner__base\"></syn-spinner> ` : ''}\n </div>\n `;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -4,7 +4,7 @@ import {
4
4
  import {
5
5
  SynergyElement,
6
6
  component_styles_default
7
- } from "./chunk.WPY6PWSD.js";
7
+ } from "./chunk.LUPEZL5H.js";
8
8
  import {
9
9
  __decorateClass,
10
10
  __spreadProps,
@@ -409,4 +409,4 @@ __decorateClass([
409
409
  export {
410
410
  SynPopup
411
411
  };
412
- //# sourceMappingURL=chunk.MTUGTGK4.js.map
412
+ //# sourceMappingURL=chunk.FYJQBDYL.js.map
@@ -6,11 +6,11 @@ import {
6
6
  } from "./chunk.LJQ7LEPV.js";
7
7
  import {
8
8
  SynIcon
9
- } from "./chunk.6QB26MQP.js";
9
+ } from "./chunk.ZPMKYF4O.js";
10
10
  import {
11
11
  SynergyElement,
12
12
  component_styles_default
13
- } from "./chunk.WPY6PWSD.js";
13
+ } from "./chunk.LUPEZL5H.js";
14
14
  import {
15
15
  __decorateClass
16
16
  } from "./chunk.QNDC5KWA.js";
@@ -138,4 +138,4 @@ __decorateClass([
138
138
  export {
139
139
  SynIconButton
140
140
  };
141
- //# sourceMappingURL=chunk.XOIRFMBL.js.map
141
+ //# sourceMappingURL=chunk.HJNNSNKN.js.map
@@ -0,0 +1,12 @@
1
+ import {
2
+ SynDropdown
3
+ } from "./chunk.ZFDPWUKA.js";
4
+
5
+ // src/components/dropdown/dropdown.ts
6
+ var dropdown_default = SynDropdown;
7
+ SynDropdown.define("syn-dropdown");
8
+
9
+ export {
10
+ dropdown_default
11
+ };
12
+ //# sourceMappingURL=chunk.HOJ7LSMH.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/dropdown/dropdown.ts"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport SynDropdown from './dropdown.component.js';\n\nexport * from './dropdown.component.js';\nexport default SynDropdown;\n\nSynDropdown.define('syn-dropdown');\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'syn-dropdown': SynDropdown;\n }\n}\n"],
5
+ "mappings": ";;;;;AASA,IAAO,mBAAQ;AAEf,YAAY,OAAO,cAAc;",
6
+ "names": []
7
+ }
@@ -0,0 +1,35 @@
1
+ import {
2
+ menu_label_custom_styles_default
3
+ } from "./chunk.X6GR6IA2.js";
4
+ import {
5
+ menu_label_styles_default
6
+ } from "./chunk.3FOVDOJX.js";
7
+ import {
8
+ SynDivider
9
+ } from "./chunk.ZGKQGMNS.js";
10
+ import {
11
+ SynergyElement,
12
+ component_styles_default
13
+ } from "./chunk.LUPEZL5H.js";
14
+
15
+ // src/components/menu-label/menu-label.component.ts
16
+ import { html } from "lit";
17
+ var SynMenuLabel = class extends SynergyElement {
18
+ render() {
19
+ return html`
20
+ <div part="base" class="menu-label-wrapper">
21
+ <syn-divider class="menu-label__divider" part="divider"></syn-divider>
22
+ <slot part="label" class="menu-label"></slot>
23
+ </div>
24
+ `;
25
+ }
26
+ };
27
+ SynMenuLabel.styles = [component_styles_default, menu_label_styles_default, menu_label_custom_styles_default];
28
+ SynMenuLabel.dependencies = {
29
+ "syn-divider": SynDivider
30
+ };
31
+
32
+ export {
33
+ SynMenuLabel
34
+ };
35
+ //# sourceMappingURL=chunk.J4XBGQBY.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/menu-label/menu-label.component.ts"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { html } from 'lit';\nimport SynDivider from '../divider/divider.component.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './menu-label.styles.js';\nimport customStyles from './menu-label.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\n\n/**\n * @summary Menu labels are used to describe a group of menu items.\n * @documentation https://synergy.style/components/menu-label\n * @status stable\n * @since 2.0\n *\n * @dependency syn-divider\n *\n * @slot - The menu label's content.\n *\n * @csspart base - The component's base wrapper.\n * @csspart divider - The divider that is displayed above the content\n * @csspart label - The label that is displayed below the divider\n *\n * @cssproperty --display-divider - Display property of the divider. Defaults to \"block\"\n */\nexport default class SynMenuLabel extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles, customStyles];\n\n static dependencies = {\n 'syn-divider': SynDivider,\n };\n \n render() {\n return html`\n <div part=\"base\" class=\"menu-label-wrapper\">\n <syn-divider class=\"menu-label__divider\" part=\"divider\"></syn-divider>\n <slot part=\"label\" class=\"menu-label\"></slot>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'syn-menu-label': SynMenuLabel;\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;AAMA,SAAS,YAAY;AAwBrB,IAAqB,eAArB,cAA0C,eAAe;AAAA,EAOvD,SAAS;AACP,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMT;AACF;AAfqB,aACZ,SAAyB,CAAC,0BAAiB,2BAAQ,gCAAY;AADnD,aAGZ,eAAe;AAAA,EACpB,eAAe;AACjB;",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynRadio
3
- } from "./chunk.HZDJ5AOY.js";
3
+ } from "./chunk.WNUV3MAD.js";
4
4
 
5
5
  // src/components/radio/radio.ts
6
6
  var radio_default = SynRadio;
@@ -9,4 +9,4 @@ SynRadio.define("syn-radio");
9
9
  export {
10
10
  radio_default
11
11
  };
12
- //# sourceMappingURL=chunk.YJO3VNKR.js.map
12
+ //# sourceMappingURL=chunk.JZLW5XX6.js.map
@@ -6,14 +6,14 @@ import {
6
6
  } from "./chunk.BGHK4NQA.js";
7
7
  import {
8
8
  SynIconButton
9
- } from "./chunk.XOIRFMBL.js";
9
+ } from "./chunk.HJNNSNKN.js";
10
10
  import {
11
11
  LocalizeController
12
12
  } from "./chunk.LAB4YJYE.js";
13
13
  import {
14
14
  SynergyElement,
15
15
  component_styles_default
16
- } from "./chunk.WPY6PWSD.js";
16
+ } from "./chunk.LUPEZL5H.js";
17
17
  import {
18
18
  __decorateClass
19
19
  } from "./chunk.QNDC5KWA.js";
@@ -76,4 +76,4 @@ __decorateClass([
76
76
  export {
77
77
  SynTag
78
78
  };
79
- //# sourceMappingURL=chunk.24VV3YAD.js.map
79
+ //# sourceMappingURL=chunk.K74W3RP4.js.map
@@ -0,0 +1,131 @@
1
+ import {
2
+ menu_custom_styles_default
3
+ } from "./chunk.PILX7LVU.js";
4
+ import {
5
+ menu_styles_default
6
+ } from "./chunk.RSSY7KPD.js";
7
+ import {
8
+ SynergyElement,
9
+ component_styles_default
10
+ } from "./chunk.LUPEZL5H.js";
11
+ import {
12
+ __decorateClass
13
+ } from "./chunk.QNDC5KWA.js";
14
+
15
+ // src/components/menu/menu.component.ts
16
+ import { html } from "lit";
17
+ import { query } from "lit/decorators.js";
18
+ var SynMenu = class extends SynergyElement {
19
+ connectedCallback() {
20
+ super.connectedCallback();
21
+ this.setAttribute("role", "menu");
22
+ }
23
+ handleClick(event) {
24
+ const menuItemTypes = ["menuitem", "menuitemcheckbox"];
25
+ const target = event.composedPath().find((el) => {
26
+ var _a;
27
+ return menuItemTypes.includes(((_a = el == null ? void 0 : el.getAttribute) == null ? void 0 : _a.call(el, "role")) || "");
28
+ });
29
+ if (!target)
30
+ return;
31
+ const item = target;
32
+ if (item.type === "checkbox") {
33
+ item.checked = !item.checked;
34
+ }
35
+ this.emit("syn-select", { detail: { item } });
36
+ }
37
+ handleKeyDown(event) {
38
+ if (event.key === "Enter" || event.key === " ") {
39
+ const item = this.getCurrentItem();
40
+ event.preventDefault();
41
+ event.stopPropagation();
42
+ item == null ? void 0 : item.click();
43
+ } else if (["ArrowDown", "ArrowUp", "Home", "End"].includes(event.key)) {
44
+ const items = this.getAllItems();
45
+ const activeItem = this.getCurrentItem();
46
+ let index = activeItem ? items.indexOf(activeItem) : 0;
47
+ if (items.length > 0) {
48
+ event.preventDefault();
49
+ event.stopPropagation();
50
+ if (event.key === "ArrowDown") {
51
+ index++;
52
+ } else if (event.key === "ArrowUp") {
53
+ index--;
54
+ } else if (event.key === "Home") {
55
+ index = 0;
56
+ } else if (event.key === "End") {
57
+ index = items.length - 1;
58
+ }
59
+ if (index < 0) {
60
+ index = items.length - 1;
61
+ }
62
+ if (index > items.length - 1) {
63
+ index = 0;
64
+ }
65
+ this.setCurrentItem(items[index]);
66
+ items[index].focus();
67
+ }
68
+ }
69
+ }
70
+ handleMouseDown(event) {
71
+ const target = event.target;
72
+ if (this.isMenuItem(target)) {
73
+ this.setCurrentItem(target);
74
+ }
75
+ }
76
+ handleSlotChange() {
77
+ const items = this.getAllItems();
78
+ if (items.length > 0) {
79
+ this.setCurrentItem(items[0]);
80
+ }
81
+ }
82
+ isMenuItem(item) {
83
+ var _a;
84
+ return item.tagName.toLowerCase() === "syn-menu-item" || ["menuitem", "menuitemcheckbox", "menuitemradio"].includes((_a = item.getAttribute("role")) != null ? _a : "");
85
+ }
86
+ /** @internal Gets all slotted menu items, ignoring dividers, headers, and other elements. */
87
+ getAllItems() {
88
+ return [...this.defaultSlot.assignedElements({ flatten: true })].filter((el) => {
89
+ if (el.inert || !this.isMenuItem(el)) {
90
+ return false;
91
+ }
92
+ return true;
93
+ });
94
+ }
95
+ /**
96
+ * @internal Gets the current menu item, which is the menu item that has `tabindex="0"` within the roving tab index.
97
+ * The menu item may or may not have focus, but for keyboard interaction purposes it's considered the "active" item.
98
+ */
99
+ getCurrentItem() {
100
+ return this.getAllItems().find((i) => i.getAttribute("tabindex") === "0");
101
+ }
102
+ /**
103
+ * @internal Sets the current menu item to the specified element. This sets `tabindex="0"` on the target element and
104
+ * `tabindex="-1"` to all other items. This method must be called prior to setting focus on a menu item.
105
+ */
106
+ setCurrentItem(item) {
107
+ const items = this.getAllItems();
108
+ items.forEach((i) => {
109
+ i.setAttribute("tabindex", i === item ? "0" : "-1");
110
+ });
111
+ }
112
+ render() {
113
+ return html`
114
+ <slot
115
+ @slotchange=${this.handleSlotChange}
116
+ @click=${this.handleClick}
117
+ @keydown=${this.handleKeyDown}
118
+ @mousedown=${this.handleMouseDown}
119
+ ></slot>
120
+ `;
121
+ }
122
+ };
123
+ SynMenu.styles = [component_styles_default, menu_styles_default, menu_custom_styles_default];
124
+ __decorateClass([
125
+ query("slot")
126
+ ], SynMenu.prototype, "defaultSlot", 2);
127
+
128
+ export {
129
+ SynMenu
130
+ };
131
+ //# sourceMappingURL=chunk.KZFU7TFZ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/menu/menu.component.ts"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { html } from 'lit';\nimport { query } from 'lit/decorators.js';\nimport componentStyles from '../../styles/component.styles.js';\nimport SynergyElement from '../../internal/synergy-element.js';\nimport styles from './menu.styles.js';\nimport customStyles from './menu.custom.styles.js';\nimport type { CSSResultGroup } from 'lit';\nimport type SynMenuItem from '../menu-item/menu-item.component.js';\n\nexport interface MenuSelectEventDetail {\n item: SynMenuItem;\n}\n\n/**\n * @summary Menus provide a list of options for the user to choose from.\n * @documentation https://synergy.style/components/menu\n * @status stable\n * @since 2.0\n *\n * @slot - The menu's content, including menu items, menu labels, and dividers.\n *\n * @event {{ item: SynMenuItem }} syn-select - Emitted when a menu item is selected.\n */\nexport default class SynMenu extends SynergyElement {\n static styles: CSSResultGroup = [componentStyles, styles, customStyles];\n\n @query('slot') defaultSlot: HTMLSlotElement;\n\n connectedCallback() {\n super.connectedCallback();\n this.setAttribute('role', 'menu');\n }\n\n private handleClick(event: MouseEvent) {\n const menuItemTypes = ['menuitem', 'menuitemcheckbox'];\n\n const target = event.composedPath().find((el: Element) => menuItemTypes.includes(el?.getAttribute?.('role') || ''));\n\n if (!target) return;\n\n // This isn't true. But we use it for TypeScript checks below.\n const item = target as SynMenuItem;\n\n if (item.type === 'checkbox') {\n item.checked = !item.checked;\n }\n\n this.emit('syn-select', { detail: { item } });\n }\n\n private handleKeyDown(event: KeyboardEvent) {\n // Make a selection when pressing enter or space\n if (event.key === 'Enter' || event.key === ' ') {\n const item = this.getCurrentItem();\n event.preventDefault();\n event.stopPropagation();\n\n // Simulate a click to support @click handlers on menu items that also work with the keyboard\n item?.click();\n }\n\n // Move the selection when pressing down or up\n else if (['ArrowDown', 'ArrowUp', 'Home', 'End'].includes(event.key)) {\n const items = this.getAllItems();\n const activeItem = this.getCurrentItem();\n let index = activeItem ? items.indexOf(activeItem) : 0;\n\n if (items.length > 0) {\n event.preventDefault();\n event.stopPropagation();\n\n if (event.key === 'ArrowDown') {\n index++;\n } else if (event.key === 'ArrowUp') {\n index--;\n } else if (event.key === 'Home') {\n index = 0;\n } else if (event.key === 'End') {\n index = items.length - 1;\n }\n\n if (index < 0) {\n index = items.length - 1;\n }\n if (index > items.length - 1) {\n index = 0;\n }\n\n this.setCurrentItem(items[index]);\n items[index].focus();\n }\n }\n }\n\n private handleMouseDown(event: MouseEvent) {\n const target = event.target as HTMLElement;\n\n if (this.isMenuItem(target)) {\n this.setCurrentItem(target as SynMenuItem);\n }\n }\n\n private handleSlotChange() {\n const items = this.getAllItems();\n\n // Reset the roving tab index when the slotted items change\n if (items.length > 0) {\n this.setCurrentItem(items[0]);\n }\n }\n\n private isMenuItem(item: HTMLElement) {\n return (\n item.tagName.toLowerCase() === 'syn-menu-item' ||\n ['menuitem', 'menuitemcheckbox', 'menuitemradio'].includes(item.getAttribute('role') ?? '')\n );\n }\n\n /** @internal Gets all slotted menu items, ignoring dividers, headers, and other elements. */\n getAllItems() {\n return [...this.defaultSlot.assignedElements({ flatten: true })].filter((el: HTMLElement) => {\n if (el.inert || !this.isMenuItem(el)) {\n return false;\n }\n return true;\n }) as SynMenuItem[];\n }\n\n /**\n * @internal Gets the current menu item, which is the menu item that has `tabindex=\"0\"` within the roving tab index.\n * The menu item may or may not have focus, but for keyboard interaction purposes it's considered the \"active\" item.\n */\n getCurrentItem() {\n return this.getAllItems().find(i => i.getAttribute('tabindex') === '0');\n }\n\n /**\n * @internal Sets the current menu item to the specified element. This sets `tabindex=\"0\"` on the target element and\n * `tabindex=\"-1\"` to all other items. This method must be called prior to setting focus on a menu item.\n */\n setCurrentItem(item: SynMenuItem) {\n const items = this.getAllItems();\n\n // Update tab indexes\n items.forEach(i => {\n i.setAttribute('tabindex', i === item ? '0' : '-1');\n });\n }\n\n render() {\n return html`\n <slot\n @slotchange=${this.handleSlotChange}\n @click=${this.handleClick}\n @keydown=${this.handleKeyDown}\n @mousedown=${this.handleMouseDown}\n ></slot>\n `;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynCheckbox
3
- } from "./chunk.JAHRZFQ6.js";
3
+ } from "./chunk.XRLJLT47.js";
4
4
 
5
5
  // src/components/checkbox/checkbox.ts
6
6
  var checkbox_default = SynCheckbox;
@@ -9,4 +9,4 @@ SynCheckbox.define("syn-checkbox");
9
9
  export {
10
10
  checkbox_default
11
11
  };
12
- //# sourceMappingURL=chunk.TIZ7TBXR.js.map
12
+ //# sourceMappingURL=chunk.LDWFJMF6.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynInput
3
- } from "./chunk.WGHLFFPZ.js";
3
+ } from "./chunk.MM2YC5ZH.js";
4
4
 
5
5
  // src/components/input/input.ts
6
6
  var input_default = SynInput;
@@ -9,4 +9,4 @@ SynInput.define("syn-input");
9
9
  export {
10
10
  input_default
11
11
  };
12
- //# sourceMappingURL=chunk.5Q46XTEM.js.map
12
+ //# sourceMappingURL=chunk.LKEOG4V4.js.map
@@ -67,7 +67,7 @@ var SynergyElement = class extends LitElement {
67
67
  };
68
68
  /* eslint-disable */
69
69
  // @ts-expect-error This is auto-injected at build time.
70
- SynergyElement.version = "1.11.0";
70
+ SynergyElement.version = "1.13.0";
71
71
  SynergyElement.dependencies = {};
72
72
  __decorateClass([
73
73
  property()
@@ -80,4 +80,4 @@ export {
80
80
  component_styles_default,
81
81
  SynergyElement
82
82
  };
83
- //# sourceMappingURL=chunk.WPY6PWSD.js.map
83
+ //# sourceMappingURL=chunk.LUPEZL5H.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/styles/component.styles.ts", "../../src/internal/synergy-element.ts"],
4
- "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { css } from 'lit';\n\nexport default css`\n\t/* stylelint-disable */\n :host {\n box-sizing: border-box;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n`;\n", "// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n// Match event type name strings that are registered on GlobalEventHandlersEventMap...\ntype EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? // ...where the event detail is an object...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? // ...that is non-empty...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? never\n : // ...and has at least one non-optional property\n Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? never\n : T\n : never\n : never;\n\n// The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)\ntype EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? T\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? T\n : never\n : T\n : T;\n\n// `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail\ntype EventTypesWithRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;\n};\n\n// `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail\ntype EventTypesWithoutRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;\n};\n\n// Helper to make a specific property of an object non-optional\ntype WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\n// Given an event name string, get a valid type for the options to initialize the event that is more restrictive than\n// just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the\n// event requires it)\ntype SynEventInit<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>\n : CustomEventInit\n : CustomEventInit;\n\n// Given an event name string, get the type of the event\ntype GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>\n ? GlobalEventHandlersEventMap[T]\n : CustomEvent<unknown>\n : CustomEvent<unknown>;\n\n// `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message\ntype ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;\n\nexport default class SynergyElement extends LitElement {\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n /** Emits a custom event with more convenient defaults. */\n emit<T extends string & keyof EventTypesWithoutRequiredDetail>(\n name: EventTypeDoesNotRequireDetail<T>,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T>;\n emit<T extends string & keyof EventTypesWithRequiredDetail>(\n name: EventTypeRequiresDetail<T>,\n options: SynEventInit<T>\n ): GetCustomEventType<T>;\n emit<T extends string & keyof ValidEventTypeMap>(\n name: T,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T> {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event as GetCustomEventType<T>;\n }\n\n /* eslint-disable */\n // @ts-expect-error This is auto-injected at build time.\n static version = \"1.11.0\";\n \n\n static define(name: string, elementConstructor = this, options: ElementDefinitionOptions = {}) {\n const currentlyRegisteredConstructor = customElements.get(name) as\n | CustomElementConstructor\n | typeof SynergyElement;\n\n if (!currentlyRegisteredConstructor) {\n customElements.define(name, class extends elementConstructor {} as unknown as CustomElementConstructor, options);\n return;\n }\n\n let newVersion = ' (unknown version)';\n let existingVersion = newVersion;\n\n if ('version' in elementConstructor && elementConstructor.version) {\n newVersion = ' v' + elementConstructor.version;\n }\n\n if ('version' in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = ' v' + currentlyRegisteredConstructor.version;\n }\n\n // Need to make sure we're not working with null or empty strings before doing version comparisons.\n if (newVersion && existingVersion && newVersion === existingVersion) {\n // If versions match, we don't need to warn anyone. Carry on.\n return;\n }\n\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n\n static dependencies: Record<string, typeof SynergyElement> = {};\n\n constructor() {\n super();\n Object.entries((this.constructor as typeof SynergyElement).dependencies).forEach(([name, component]) => {\n (this.constructor as typeof SynergyElement).define(name, component);\n });\n }\n}\n\nexport interface SynergyFormControl extends SynergyElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | 'any';\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n\n // Form validation properties\n readonly validity: ValidityState;\n readonly validationMessage: string;\n\n // Form validation methods\n checkValidity: () => boolean;\n getForm: () => HTMLFormElement | null;\n reportValidity: () => boolean;\n setCustomValidity: (message: string) => void;\n}\n"],
4
+ "sourcesContent": ["// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { css } from 'lit';\n\nexport default css`\n\t/* stylelint-disable */\n :host {\n box-sizing: border-box;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n`;\n", "// ---------------------------------------------------------------------\n// \uD83D\uDD12 AUTOGENERATED BY VENDORISM\n// Removing this comment will prevent it from being managed by it.\n// ---------------------------------------------------------------------\n\n/* eslint-disable */\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\n// Match event type name strings that are registered on GlobalEventHandlersEventMap...\ntype EventTypeRequiresDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? // ...where the event detail is an object...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? // ...that is non-empty...\n GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? never\n : // ...and has at least one non-optional property\n Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? never\n : T\n : never\n : never;\n\n// The inverse of the above (match any type that doesn't match EventTypeRequiresDetail)\ntype EventTypeDoesNotRequireDetail<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? T\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? T\n : never\n : T\n : T;\n\n// `keyof EventTypesWithRequiredDetail` lists all registered event types that require detail\ntype EventTypesWithRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeRequiresDetail<EventType>]: true;\n};\n\n// `keyof EventTypesWithoutRequiredDetail` lists all registered event types that do NOT require detail\ntype EventTypesWithoutRequiredDetail = {\n [EventType in keyof GlobalEventHandlersEventMap as EventTypeDoesNotRequireDetail<EventType>]: true;\n};\n\n// Helper to make a specific property of an object non-optional\ntype WithRequired<T, K extends keyof T> = T & { [P in K]-?: T[P] };\n\n// Given an event name string, get a valid type for the options to initialize the event that is more restrictive than\n// just CustomEventInit when appropriate (validate the type of the event detail, and require it to be provided if the\n// event requires it)\ntype SynEventInit<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, unknown>>\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<Record<PropertyKey, never>>\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : Partial<GlobalEventHandlersEventMap[T]['detail']> extends GlobalEventHandlersEventMap[T]['detail']\n ? CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>\n : WithRequired<CustomEventInit<GlobalEventHandlersEventMap[T]['detail']>, 'detail'>\n : CustomEventInit\n : CustomEventInit;\n\n// Given an event name string, get the type of the event\ntype GetCustomEventType<T> = T extends keyof GlobalEventHandlersEventMap\n ? GlobalEventHandlersEventMap[T] extends CustomEvent<unknown>\n ? GlobalEventHandlersEventMap[T]\n : CustomEvent<unknown>\n : CustomEvent<unknown>;\n\n// `keyof ValidEventTypeMap` is equivalent to `keyof GlobalEventHandlersEventMap` but gives a nicer error message\ntype ValidEventTypeMap = EventTypesWithRequiredDetail | EventTypesWithoutRequiredDetail;\n\nexport default class SynergyElement extends LitElement {\n // Make localization attributes reactive\n @property() dir: string;\n @property() lang: string;\n\n /** Emits a custom event with more convenient defaults. */\n emit<T extends string & keyof EventTypesWithoutRequiredDetail>(\n name: EventTypeDoesNotRequireDetail<T>,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T>;\n emit<T extends string & keyof EventTypesWithRequiredDetail>(\n name: EventTypeRequiresDetail<T>,\n options: SynEventInit<T>\n ): GetCustomEventType<T>;\n emit<T extends string & keyof ValidEventTypeMap>(\n name: T,\n options?: SynEventInit<T> | undefined\n ): GetCustomEventType<T> {\n const event = new CustomEvent(name, {\n bubbles: true,\n cancelable: false,\n composed: true,\n detail: {},\n ...options\n });\n\n this.dispatchEvent(event);\n\n return event as GetCustomEventType<T>;\n }\n\n /* eslint-disable */\n // @ts-expect-error This is auto-injected at build time.\n static version = \"1.13.0\";\n \n\n static define(name: string, elementConstructor = this, options: ElementDefinitionOptions = {}) {\n const currentlyRegisteredConstructor = customElements.get(name) as\n | CustomElementConstructor\n | typeof SynergyElement;\n\n if (!currentlyRegisteredConstructor) {\n customElements.define(name, class extends elementConstructor {} as unknown as CustomElementConstructor, options);\n return;\n }\n\n let newVersion = ' (unknown version)';\n let existingVersion = newVersion;\n\n if ('version' in elementConstructor && elementConstructor.version) {\n newVersion = ' v' + elementConstructor.version;\n }\n\n if ('version' in currentlyRegisteredConstructor && currentlyRegisteredConstructor.version) {\n existingVersion = ' v' + currentlyRegisteredConstructor.version;\n }\n\n // Need to make sure we're not working with null or empty strings before doing version comparisons.\n if (newVersion && existingVersion && newVersion === existingVersion) {\n // If versions match, we don't need to warn anyone. Carry on.\n return;\n }\n\n console.warn(\n `Attempted to register <${name}>${newVersion}, but <${name}>${existingVersion} has already been registered.`\n );\n }\n\n static dependencies: Record<string, typeof SynergyElement> = {};\n\n constructor() {\n super();\n Object.entries((this.constructor as typeof SynergyElement).dependencies).forEach(([name, component]) => {\n (this.constructor as typeof SynergyElement).define(name, component);\n });\n }\n}\n\nexport interface SynergyFormControl extends SynergyElement {\n // Form attributes\n name: string;\n value: unknown;\n disabled?: boolean;\n defaultValue?: unknown;\n defaultChecked?: boolean;\n form?: string;\n\n // Constraint validation attributes\n pattern?: string;\n min?: number | string | Date;\n max?: number | string | Date;\n step?: number | 'any';\n required?: boolean;\n minlength?: number;\n maxlength?: number;\n\n // Form validation properties\n readonly validity: ValidityState;\n readonly validationMessage: string;\n\n // Form validation methods\n checkValidity: () => boolean;\n getForm: () => HTMLFormElement | null;\n reportValidity: () => boolean;\n setCustomValidity: (message: string) => void;\n}\n"],
5
5
  "mappings": ";;;;;;AAMA,SAAS,WAAW;AAEpB,IAAO,2BAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACFf,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AA+DzB,IAAqB,iBAArB,cAA4C,WAAW;AAAA,EAcrD,KACE,MACA,SACuB;AACvB,UAAM,QAAQ,IAAI,YAAY,MAAM;AAAA,MAClC,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,UAAU;AAAA,MACV,QAAQ,CAAC;AAAA,OACN,QACJ;AAED,SAAK,cAAc,KAAK;AAExB,WAAO;AAAA,EACT;AAAA,EAOA,OAAO,OAAO,MAAc,qBAAqB,MAAM,UAAoC,CAAC,GAAG;AAC7F,UAAM,iCAAiC,eAAe,IAAI,IAAI;AAI9D,QAAI,CAAC,gCAAgC;AACnC,qBAAe,OAAO,MAAM,cAAc,mBAAmB;AAAA,MAAC,GAA0C,OAAO;AAC/G;AAAA,IACF;AAEA,QAAI,aAAa;AACjB,QAAI,kBAAkB;AAEtB,QAAI,aAAa,sBAAsB,mBAAmB,SAAS;AACjE,mBAAa,OAAO,mBAAmB;AAAA,IACzC;AAEA,QAAI,aAAa,kCAAkC,+BAA+B,SAAS;AACzF,wBAAkB,OAAO,+BAA+B;AAAA,IAC1D;AAGA,QAAI,cAAc,mBAAmB,eAAe,iBAAiB;AAEnE;AAAA,IACF;AAEA,YAAQ;AAAA,MACN,0BAA0B,IAAI,IAAI,UAAU,UAAU,IAAI,IAAI,eAAe;AAAA,IAC/E;AAAA,EACF;AAAA,EAIA,cAAc;AACZ,UAAM;AACN,WAAO,QAAS,KAAK,YAAsC,YAAY,EAAE,QAAQ,CAAC,CAAC,MAAM,SAAS,MAAM;AACtG,MAAC,KAAK,YAAsC,OAAO,MAAM,SAAS;AAAA,IACpE,CAAC;AAAA,EACH;AACF;AAAA;AAAA;AA5EqB,eAiCZ,UAAU;AAjCE,eAoEZ,eAAsD,CAAC;AAlElD;AAAA,EAAX,SAAS;AAAA,GAFS,eAEP;AACA;AAAA,EAAX,SAAS;AAAA,GAHS,eAGP;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  SynButton
3
- } from "./chunk.HSC2UWAO.js";
3
+ } from "./chunk.XF4DS2IU.js";
4
4
 
5
5
  // src/components/button/button.ts
6
6
  var button_default = SynButton;
@@ -9,4 +9,4 @@ SynButton.define("syn-button");
9
9
  export {
10
10
  button_default
11
11
  };
12
- //# sourceMappingURL=chunk.KBQDYKZQ.js.map
12
+ //# sourceMappingURL=chunk.MEMVYSEM.js.map