@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
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/menu-item/menu-item.styles.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 --submenu-offset: -2px;\n\n display: block;\n }\n\n :host([inert]) {\n display: none;\n }\n\n .menu-item {\n position: relative;\n display: flex;\n align-items: stretch;\n font-family: var(--syn-font-sans);\n font-size: var(--syn-font-size-medium);\n font-weight: var(--syn-font-weight-normal);\n line-height: var(--syn-line-height-normal);\n letter-spacing: var(--syn-letter-spacing-normal);\n color: var(--syn-color-neutral-700);\n padding: var(--syn-spacing-2x-small) var(--syn-spacing-2x-small);\n transition: var(--syn-transition-fast) fill;\n user-select: none;\n -webkit-user-select: none;\n white-space: nowrap;\n cursor: pointer;\n }\n\n .menu-item.menu-item--disabled {\n outline: none;\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n .menu-item.menu-item--loading {\n outline: none;\n cursor: wait;\n }\n\n .menu-item.menu-item--loading *:not(syn-spinner) {\n opacity: 0.5;\n }\n\n .menu-item--loading syn-spinner {\n --indicator-color: currentColor;\n --track-width: 1px;\n position: absolute;\n font-size: 0.75em;\n top: calc(50% - 0.5em);\n left: 0.65rem;\n opacity: 1;\n }\n\n .menu-item .menu-item__label {\n flex: 1 1 auto;\n display: inline-block;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n .menu-item .menu-item__prefix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .menu-item .menu-item__prefix::slotted(*) {\n margin-inline-end: var(--syn-spacing-x-small);\n }\n\n .menu-item .menu-item__suffix {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n }\n\n .menu-item .menu-item__suffix::slotted(*) {\n margin-inline-start: var(--syn-spacing-x-small);\n }\n\n /* Safe triangle */\n .menu-item--submenu-expanded::after {\n content: '';\n position: fixed;\n z-index: calc(var(--syn-z-index-dropdown) - 1);\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n clip-path: polygon(\n var(--safe-triangle-cursor-x, 0) var(--safe-triangle-cursor-y, 0),\n var(--safe-triangle-submenu-start-x, 0) var(--safe-triangle-submenu-start-y, 0),\n var(--safe-triangle-submenu-end-x, 0) var(--safe-triangle-submenu-end-y, 0)\n );\n }\n\n :host(:focus-visible) {\n outline: none;\n }\n\n :host(:hover:not([aria-disabled='true'], :focus-visible)) .menu-item,\n .menu-item--submenu-expanded {\n background-color: var(--syn-color-neutral-100);\n color: var(--syn-color-neutral-1000);\n }\n\n :host(:focus-visible) .menu-item {\n outline: none;\n background-color: var(--syn-color-primary-600);\n color: var(--syn-color-neutral-0);\n opacity: 1;\n }\n\n .menu-item .menu-item__check,\n .menu-item .menu-item__chevron {\n flex: 0 0 auto;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5em;\n visibility: hidden;\n }\n\n .menu-item--checked .menu-item__check,\n .menu-item--has-submenu .menu-item__chevron {\n visibility: visible;\n }\n\n /* Add elevation and z-index to submenus */\n syn-popup::part(popup) {\n box-shadow: var(--syn-shadow-large);\n z-index: var(--syn-z-index-dropdown);\n margin-left: var(--submenu-offset);\n }\n\n .menu-item--rtl syn-popup::part(popup) {\n margin-left: calc(-1 * var(--submenu-offset));\n }\n\n @media (forced-colors: active) {\n :host(:hover:not([aria-disabled='true'])) .menu-item,\n :host(:focus-visible) .menu-item {\n outline: dashed 1px SelectedItem;\n outline-offset: -1px;\n }\n }\n`;\n"],
5
+ "mappings": ";AAMA,SAAS,WAAW;AAEpB,IAAO,2BAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,26 @@
1
+ // src/components/menu/menu.custom.styles.ts
2
+ import { css } from "lit";
3
+ var menu_custom_styles_default = css`
4
+ :host {
5
+ border-radius: 0;
6
+ }
7
+
8
+ /**
9
+ * Make sure to hide the syn-divider for the first syn-optgroup
10
+ * Note! ::slotted does currently not work with ::part, so we
11
+ * opted for using a css variable here.
12
+ */
13
+ ::slotted(syn-menu-label:first-of-type) {
14
+ --display-divider: none;
15
+ }
16
+
17
+ ::slotted(syn-divider) {
18
+ /* #369: Slotted syn-dividers should use a lighter color so they do not crash with the border visually */
19
+ --color: var(--syn-color-neutral-200);
20
+ }
21
+ `;
22
+
23
+ export {
24
+ menu_custom_styles_default
25
+ };
26
+ //# sourceMappingURL=chunk.PILX7LVU.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/menu/menu.custom.styles.ts"],
4
+ "sourcesContent": ["import { css } from 'lit';\n\nexport default css`\n :host {\n border-radius: 0;\n }\n\n /**\n * Make sure to hide the syn-divider for the first syn-optgroup\n * Note! ::slotted does currently not work with ::part, so we\n * opted for using a css variable here.\n */\n ::slotted(syn-menu-label:first-of-type) {\n --display-divider: none;\n }\n\n ::slotted(syn-divider) {\n /* #369: Slotted syn-dividers should use a lighter color so they do not crash with the border visually */\n --color: var(--syn-color-neutral-200);\n }\n`;\n"],
5
+ "mappings": ";AAAA,SAAS,WAAW;AAEpB,IAAO,6BAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -8,9 +8,6 @@ import {
8
8
  form_control_custom_styles_default,
9
9
  form_control_styles_default
10
10
  } from "./chunk.TTL762VF.js";
11
- import {
12
- SynButtonGroup
13
- } from "./chunk.27H5YFFI.js";
14
11
  import {
15
12
  FormControlController,
16
13
  customErrorValidityState,
@@ -19,14 +16,17 @@ import {
19
16
  } from "./chunk.SZCGMXW5.js";
20
17
  import {
21
18
  HasSlotController
22
- } from "./chunk.XGXFE6IF.js";
19
+ } from "./chunk.66WXVGAW.js";
23
20
  import {
24
21
  watch
25
22
  } from "./chunk.AVTU2BGE.js";
23
+ import {
24
+ SynButtonGroup
25
+ } from "./chunk.3PBOWA5U.js";
26
26
  import {
27
27
  SynergyElement,
28
28
  component_styles_default
29
- } from "./chunk.WPY6PWSD.js";
29
+ } from "./chunk.LUPEZL5H.js";
30
30
  import {
31
31
  __decorateClass
32
32
  } from "./chunk.QNDC5KWA.js";
@@ -356,4 +356,4 @@ __decorateClass([
356
356
  export {
357
357
  SynRadioGroup
358
358
  };
359
- //# sourceMappingURL=chunk.G5AYV6GN.js.map
359
+ //# sourceMappingURL=chunk.RBDVQQ3E.js.map
@@ -0,0 +1,239 @@
1
+ // src/components/menu-item/submenu-controller.ts
2
+ import { createRef, ref } from "lit/directives/ref.js";
3
+ import { html } from "lit";
4
+ var SubmenuController = class {
5
+ constructor(host, hasSlotController, localize) {
6
+ this.popupRef = createRef();
7
+ this.enableSubmenuTimer = -1;
8
+ this.isConnected = false;
9
+ this.isPopupConnected = false;
10
+ this.skidding = 0;
11
+ this.submenuOpenDelay = 100;
12
+ // Set the safe triangle cursor position
13
+ this.handleMouseMove = (event) => {
14
+ this.host.style.setProperty("--safe-triangle-cursor-x", `${event.clientX}px`);
15
+ this.host.style.setProperty("--safe-triangle-cursor-y", `${event.clientY}px`);
16
+ };
17
+ this.handleMouseOver = () => {
18
+ if (this.hasSlotController.test("submenu")) {
19
+ this.enableSubmenu();
20
+ }
21
+ };
22
+ // Focus on the first menu-item of a submenu.
23
+ this.handleKeyDown = (event) => {
24
+ switch (event.key) {
25
+ case "Escape":
26
+ case "Tab":
27
+ this.disableSubmenu();
28
+ break;
29
+ case "ArrowLeft":
30
+ if (event.target !== this.host) {
31
+ event.preventDefault();
32
+ event.stopPropagation();
33
+ this.host.focus();
34
+ this.disableSubmenu();
35
+ }
36
+ break;
37
+ case "ArrowRight":
38
+ case "Enter":
39
+ case " ":
40
+ this.handleSubmenuEntry(event);
41
+ break;
42
+ default:
43
+ break;
44
+ }
45
+ };
46
+ this.handleClick = (event) => {
47
+ var _a;
48
+ if (event.target === this.host) {
49
+ event.preventDefault();
50
+ event.stopPropagation();
51
+ } else if (event.target instanceof Element && (event.target.tagName === "syn-menu-item" || ((_a = event.target.role) == null ? void 0 : _a.startsWith("menuitem")))) {
52
+ this.disableSubmenu();
53
+ }
54
+ };
55
+ // Close this submenu on focus outside of the parent or any descendants.
56
+ this.handleFocusOut = (event) => {
57
+ if (event.relatedTarget && event.relatedTarget instanceof Element && this.host.contains(event.relatedTarget)) {
58
+ return;
59
+ }
60
+ this.disableSubmenu();
61
+ };
62
+ // Prevent the parent menu-item from getting focus on mouse movement on the submenu
63
+ this.handlePopupMouseover = (event) => {
64
+ event.stopPropagation();
65
+ };
66
+ // Set the safe triangle values for the submenu when the position changes
67
+ this.handlePopupReposition = () => {
68
+ const submenuSlot = this.host.renderRoot.querySelector("slot[name='submenu']");
69
+ const menu = submenuSlot == null ? void 0 : submenuSlot.assignedElements({ flatten: true }).filter((el) => el.localName === "syn-menu")[0];
70
+ const isRtl = this.localize.dir() === "rtl";
71
+ if (!menu) {
72
+ return;
73
+ }
74
+ const { left, top, width, height } = menu.getBoundingClientRect();
75
+ this.host.style.setProperty("--safe-triangle-submenu-start-x", `${isRtl ? left + width : left}px`);
76
+ this.host.style.setProperty("--safe-triangle-submenu-start-y", `${top}px`);
77
+ this.host.style.setProperty("--safe-triangle-submenu-end-x", `${isRtl ? left + width : left}px`);
78
+ this.host.style.setProperty("--safe-triangle-submenu-end-y", `${top + height}px`);
79
+ };
80
+ (this.host = host).addController(this);
81
+ this.hasSlotController = hasSlotController;
82
+ this.localize = localize;
83
+ }
84
+ hostConnected() {
85
+ if (this.hasSlotController.test("submenu") && !this.host.disabled) {
86
+ this.addListeners();
87
+ }
88
+ }
89
+ hostDisconnected() {
90
+ this.removeListeners();
91
+ }
92
+ hostUpdated() {
93
+ if (this.hasSlotController.test("submenu") && !this.host.disabled) {
94
+ this.addListeners();
95
+ this.updateSkidding();
96
+ } else {
97
+ this.removeListeners();
98
+ }
99
+ }
100
+ addListeners() {
101
+ if (!this.isConnected) {
102
+ this.host.addEventListener("mousemove", this.handleMouseMove);
103
+ this.host.addEventListener("mouseover", this.handleMouseOver);
104
+ this.host.addEventListener("keydown", this.handleKeyDown);
105
+ this.host.addEventListener("click", this.handleClick);
106
+ this.host.addEventListener("focusout", this.handleFocusOut);
107
+ this.isConnected = true;
108
+ }
109
+ if (!this.isPopupConnected) {
110
+ if (this.popupRef.value) {
111
+ this.popupRef.value.addEventListener("mouseover", this.handlePopupMouseover);
112
+ this.popupRef.value.addEventListener("syn-reposition", this.handlePopupReposition);
113
+ this.isPopupConnected = true;
114
+ }
115
+ }
116
+ }
117
+ removeListeners() {
118
+ if (this.isConnected) {
119
+ this.host.removeEventListener("mousemove", this.handleMouseMove);
120
+ this.host.removeEventListener("mouseover", this.handleMouseOver);
121
+ this.host.removeEventListener("keydown", this.handleKeyDown);
122
+ this.host.removeEventListener("click", this.handleClick);
123
+ this.host.removeEventListener("focusout", this.handleFocusOut);
124
+ this.isConnected = false;
125
+ }
126
+ if (this.isPopupConnected) {
127
+ if (this.popupRef.value) {
128
+ this.popupRef.value.removeEventListener("mouseover", this.handlePopupMouseover);
129
+ this.popupRef.value.removeEventListener("syn-reposition", this.handlePopupReposition);
130
+ this.isPopupConnected = false;
131
+ }
132
+ }
133
+ }
134
+ handleSubmenuEntry(event) {
135
+ const submenuSlot = this.host.renderRoot.querySelector("slot[name='submenu']");
136
+ if (!submenuSlot) {
137
+ console.error("Cannot activate a submenu if no corresponding menuitem can be found.", this);
138
+ return;
139
+ }
140
+ let menuItems = null;
141
+ for (const elt of submenuSlot.assignedElements()) {
142
+ menuItems = elt.querySelectorAll("syn-menu-item, [role^='menuitem']");
143
+ if (menuItems.length !== 0) {
144
+ break;
145
+ }
146
+ }
147
+ if (!menuItems || menuItems.length === 0) {
148
+ return;
149
+ }
150
+ menuItems[0].setAttribute("tabindex", "0");
151
+ for (let i = 1; i !== menuItems.length; ++i) {
152
+ menuItems[i].setAttribute("tabindex", "-1");
153
+ }
154
+ if (this.popupRef.value) {
155
+ event.preventDefault();
156
+ event.stopPropagation();
157
+ if (this.popupRef.value.active) {
158
+ if (menuItems[0] instanceof HTMLElement) {
159
+ menuItems[0].focus();
160
+ }
161
+ } else {
162
+ this.enableSubmenu(false);
163
+ this.host.updateComplete.then(() => {
164
+ if (menuItems[0] instanceof HTMLElement) {
165
+ menuItems[0].focus();
166
+ }
167
+ });
168
+ this.host.requestUpdate();
169
+ }
170
+ }
171
+ }
172
+ setSubmenuState(state) {
173
+ if (this.popupRef.value) {
174
+ if (this.popupRef.value.active !== state) {
175
+ this.popupRef.value.active = state;
176
+ this.host.requestUpdate();
177
+ }
178
+ }
179
+ }
180
+ // Shows the submenu. Supports disabling the opening delay, e.g. for keyboard events that want to set the focus to the
181
+ // newly opened menu.
182
+ enableSubmenu(delay = true) {
183
+ if (delay) {
184
+ this.enableSubmenuTimer = window.setTimeout(() => {
185
+ this.setSubmenuState(true);
186
+ }, this.submenuOpenDelay);
187
+ } else {
188
+ this.setSubmenuState(true);
189
+ }
190
+ }
191
+ disableSubmenu() {
192
+ clearTimeout(this.enableSubmenuTimer);
193
+ this.setSubmenuState(false);
194
+ }
195
+ // Calculate the space the top of a menu takes-up, for aligning the popup menu-item with the activating element.
196
+ updateSkidding() {
197
+ var _a;
198
+ if (!((_a = this.host.parentElement) == null ? void 0 : _a.computedStyleMap)) {
199
+ return;
200
+ }
201
+ const styleMap = this.host.parentElement.computedStyleMap();
202
+ const attrs = ["padding-top", "border-top-width", "margin-top"];
203
+ const skidding = attrs.reduce((accumulator, attr) => {
204
+ var _a2;
205
+ const styleValue = (_a2 = styleMap.get(attr)) != null ? _a2 : new CSSUnitValue(0, "px");
206
+ const unitValue = styleValue instanceof CSSUnitValue ? styleValue : new CSSUnitValue(0, "px");
207
+ const pxValue = unitValue.to("px");
208
+ return accumulator - pxValue.value;
209
+ }, 0);
210
+ this.skidding = skidding;
211
+ }
212
+ isExpanded() {
213
+ return this.popupRef.value ? this.popupRef.value.active : false;
214
+ }
215
+ renderSubmenu() {
216
+ const isLtr = this.localize.dir() === "ltr";
217
+ if (!this.isConnected) {
218
+ return html` <slot name="submenu" hidden></slot> `;
219
+ }
220
+ return html`
221
+ <syn-popup
222
+ ${ref(this.popupRef)}
223
+ placement=${isLtr ? "right-start" : "left-start"}
224
+ anchor="anchor"
225
+ flip
226
+ flip-fallback-strategy="best-fit"
227
+ skidding="${this.skidding}"
228
+ strategy="fixed"
229
+ >
230
+ <slot name="submenu"></slot>
231
+ </syn-popup>
232
+ `;
233
+ }
234
+ };
235
+
236
+ export {
237
+ SubmenuController
238
+ };
239
+ //# sourceMappingURL=chunk.RRWSXFQ5.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/menu-item/submenu-controller.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 { createRef, ref, type Ref } from 'lit/directives/ref.js';\nimport { type HasSlotController } from '../../internal/slot.js';\nimport { html } from 'lit';\nimport { type LocalizeController } from '../../utilities/localize.js';\nimport type { ReactiveController, ReactiveControllerHost } from 'lit';\nimport type SynMenuItem from './menu-item.js';\nimport type SynPopup from '../popup/popup.js';\n\n/** A reactive controller to manage the registration of event listeners for submenus. */\nexport class SubmenuController implements ReactiveController {\n private host: ReactiveControllerHost & SynMenuItem;\n private popupRef: Ref<SynPopup> = createRef();\n private enableSubmenuTimer = -1;\n private isConnected = false;\n private isPopupConnected = false;\n private skidding = 0;\n private readonly hasSlotController: HasSlotController;\n private readonly localize: LocalizeController;\n private readonly submenuOpenDelay = 100;\n\n constructor(\n host: ReactiveControllerHost & SynMenuItem,\n hasSlotController: HasSlotController,\n localize: LocalizeController\n ) {\n (this.host = host).addController(this);\n this.hasSlotController = hasSlotController;\n this.localize = localize;\n }\n\n hostConnected() {\n if (this.hasSlotController.test('submenu') && !this.host.disabled) {\n this.addListeners();\n }\n }\n\n hostDisconnected() {\n this.removeListeners();\n }\n\n hostUpdated() {\n if (this.hasSlotController.test('submenu') && !this.host.disabled) {\n this.addListeners();\n this.updateSkidding();\n } else {\n this.removeListeners();\n }\n }\n\n private addListeners() {\n if (!this.isConnected) {\n this.host.addEventListener('mousemove', this.handleMouseMove);\n this.host.addEventListener('mouseover', this.handleMouseOver);\n this.host.addEventListener('keydown', this.handleKeyDown);\n this.host.addEventListener('click', this.handleClick);\n this.host.addEventListener('focusout', this.handleFocusOut);\n this.isConnected = true;\n }\n\n // The popup does not seem to get wired when the host is\n // connected, so manage its listeners separately.\n if (!this.isPopupConnected) {\n if (this.popupRef.value) {\n this.popupRef.value.addEventListener('mouseover', this.handlePopupMouseover);\n this.popupRef.value.addEventListener('syn-reposition', this.handlePopupReposition);\n this.isPopupConnected = true;\n }\n }\n }\n\n private removeListeners() {\n if (this.isConnected) {\n this.host.removeEventListener('mousemove', this.handleMouseMove);\n this.host.removeEventListener('mouseover', this.handleMouseOver);\n this.host.removeEventListener('keydown', this.handleKeyDown);\n this.host.removeEventListener('click', this.handleClick);\n this.host.removeEventListener('focusout', this.handleFocusOut);\n this.isConnected = false;\n }\n if (this.isPopupConnected) {\n if (this.popupRef.value) {\n this.popupRef.value.removeEventListener('mouseover', this.handlePopupMouseover);\n this.popupRef.value.removeEventListener('syn-reposition', this.handlePopupReposition);\n this.isPopupConnected = false;\n }\n }\n }\n\n // Set the safe triangle cursor position\n private handleMouseMove = (event: MouseEvent) => {\n this.host.style.setProperty('--safe-triangle-cursor-x', `${event.clientX}px`);\n this.host.style.setProperty('--safe-triangle-cursor-y', `${event.clientY}px`);\n };\n\n private handleMouseOver = () => {\n if (this.hasSlotController.test('submenu')) {\n this.enableSubmenu();\n }\n };\n\n private handleSubmenuEntry(event: KeyboardEvent) {\n // Pass focus to the first menu-item in the submenu.\n const submenuSlot: HTMLSlotElement | null = this.host.renderRoot.querySelector(\"slot[name='submenu']\");\n\n // Missing slot\n if (!submenuSlot) {\n console.error('Cannot activate a submenu if no corresponding menuitem can be found.', this);\n return;\n }\n\n // Menus\n let menuItems: NodeListOf<Element> | null = null;\n for (const elt of submenuSlot.assignedElements()) {\n menuItems = elt.querySelectorAll(\"syn-menu-item, [role^='menuitem']\");\n if (menuItems.length !== 0) {\n break;\n }\n }\n\n if (!menuItems || menuItems.length === 0) {\n return;\n }\n\n menuItems[0].setAttribute('tabindex', '0');\n for (let i = 1; i !== menuItems.length; ++i) {\n menuItems[i].setAttribute('tabindex', '-1');\n }\n\n // Open the submenu (if not open), and set focus to first menuitem.\n if (this.popupRef.value) {\n event.preventDefault();\n event.stopPropagation();\n if (this.popupRef.value.active) {\n if (menuItems[0] instanceof HTMLElement) {\n menuItems[0].focus();\n }\n } else {\n this.enableSubmenu(false);\n this.host.updateComplete.then(() => {\n if (menuItems![0] instanceof HTMLElement) {\n menuItems![0].focus();\n }\n });\n this.host.requestUpdate();\n }\n }\n }\n\n // Focus on the first menu-item of a submenu.\n private handleKeyDown = (event: KeyboardEvent) => {\n switch (event.key) {\n case 'Escape':\n case 'Tab':\n this.disableSubmenu();\n break;\n case 'ArrowLeft':\n // Either focus is currently on the host element or a child\n if (event.target !== this.host) {\n event.preventDefault();\n event.stopPropagation();\n this.host.focus();\n this.disableSubmenu();\n }\n break;\n case 'ArrowRight':\n case 'Enter':\n case ' ':\n this.handleSubmenuEntry(event);\n break;\n default:\n break;\n }\n };\n\n private handleClick = (event: MouseEvent) => {\n // Clicking on the item which heads the menu does nothing, otherwise hide submenu and propagate\n if (event.target === this.host) {\n event.preventDefault();\n event.stopPropagation();\n } else if (\n event.target instanceof Element &&\n (event.target.tagName === 'syn-menu-item' || event.target.role?.startsWith('menuitem'))\n ) {\n this.disableSubmenu();\n }\n };\n\n // Close this submenu on focus outside of the parent or any descendants.\n private handleFocusOut = (event: FocusEvent) => {\n if (event.relatedTarget && event.relatedTarget instanceof Element && this.host.contains(event.relatedTarget)) {\n return;\n }\n this.disableSubmenu();\n };\n\n // Prevent the parent menu-item from getting focus on mouse movement on the submenu\n private handlePopupMouseover = (event: MouseEvent) => {\n event.stopPropagation();\n };\n\n // Set the safe triangle values for the submenu when the position changes\n private handlePopupReposition = () => {\n const submenuSlot: HTMLSlotElement | null = this.host.renderRoot.querySelector(\"slot[name='submenu']\");\n const menu = submenuSlot?.assignedElements({ flatten: true }).filter(el => el.localName === 'syn-menu')[0];\n const isRtl = this.localize.dir() === 'rtl';\n\n if (!menu) {\n return;\n }\n\n const { left, top, width, height } = menu.getBoundingClientRect();\n\n this.host.style.setProperty('--safe-triangle-submenu-start-x', `${isRtl ? left + width : left}px`);\n this.host.style.setProperty('--safe-triangle-submenu-start-y', `${top}px`);\n this.host.style.setProperty('--safe-triangle-submenu-end-x', `${isRtl ? left + width : left}px`);\n this.host.style.setProperty('--safe-triangle-submenu-end-y', `${top + height}px`);\n };\n\n private setSubmenuState(state: boolean) {\n if (this.popupRef.value) {\n if (this.popupRef.value.active !== state) {\n this.popupRef.value.active = state;\n this.host.requestUpdate();\n }\n }\n }\n\n // Shows the submenu. Supports disabling the opening delay, e.g. for keyboard events that want to set the focus to the\n // newly opened menu.\n private enableSubmenu(delay = true) {\n if (delay) {\n this.enableSubmenuTimer = window.setTimeout(() => {\n this.setSubmenuState(true);\n }, this.submenuOpenDelay);\n } else {\n this.setSubmenuState(true);\n }\n }\n\n private disableSubmenu() {\n clearTimeout(this.enableSubmenuTimer);\n this.setSubmenuState(false);\n }\n\n // Calculate the space the top of a menu takes-up, for aligning the popup menu-item with the activating element.\n private updateSkidding(): void {\n // .computedStyleMap() not always available.\n if (!this.host.parentElement?.computedStyleMap) {\n return;\n }\n const styleMap: StylePropertyMapReadOnly = this.host.parentElement.computedStyleMap();\n const attrs: string[] = ['padding-top', 'border-top-width', 'margin-top'];\n\n const skidding = attrs.reduce((accumulator, attr) => {\n const styleValue: CSSStyleValue = styleMap.get(attr) ?? new CSSUnitValue(0, 'px');\n const unitValue = styleValue instanceof CSSUnitValue ? styleValue : new CSSUnitValue(0, 'px');\n const pxValue = unitValue.to('px');\n return accumulator - pxValue.value;\n }, 0);\n\n this.skidding = skidding;\n }\n\n isExpanded(): boolean {\n return this.popupRef.value ? this.popupRef.value.active : false;\n }\n\n renderSubmenu() {\n const isLtr = this.localize.dir() === 'ltr';\n\n // Always render the slot, but conditionally render the outer <syn-popup>\n if (!this.isConnected) {\n return html` <slot name=\"submenu\" hidden></slot> `;\n }\n\n return html`\n <syn-popup\n ${ref(this.popupRef)}\n placement=${isLtr ? 'right-start' : 'left-start'}\n anchor=\"anchor\"\n flip\n flip-fallback-strategy=\"best-fit\"\n skidding=\"${this.skidding}\"\n strategy=\"fixed\"\n >\n <slot name=\"submenu\"></slot>\n </syn-popup>\n `;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["_a"]
7
+ }
@@ -0,0 +1,24 @@
1
+ // src/components/menu/menu.styles.ts
2
+ import { css } from "lit";
3
+ var menu_styles_default = css`
4
+ /* stylelint-disable */
5
+ :host {
6
+ display: block;
7
+ position: relative;
8
+ background: var(--syn-panel-background-color);
9
+ border: solid var(--syn-panel-border-width) var(--syn-panel-border-color);
10
+ border-radius: var(--syn-border-radius-medium);
11
+ padding: var(--syn-spacing-x-small) 0;
12
+ overflow: auto;
13
+ overscroll-behavior: none;
14
+ }
15
+
16
+ ::slotted(syn-divider) {
17
+ --spacing: var(--syn-spacing-x-small);
18
+ }
19
+ `;
20
+
21
+ export {
22
+ menu_styles_default
23
+ };
24
+ //# sourceMappingURL=chunk.RSSY7KPD.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/menu/menu.styles.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 display: block;\n position: relative;\n background: var(--syn-panel-background-color);\n border: solid var(--syn-panel-border-width) var(--syn-panel-border-color);\n border-radius: var(--syn-border-radius-medium);\n padding: var(--syn-spacing-x-small) 0;\n overflow: auto;\n overscroll-behavior: none;\n }\n\n ::slotted(syn-divider) {\n --spacing: var(--syn-spacing-x-small);\n }\n`;\n"],
5
+ "mappings": ";AAMA,SAAS,WAAW;AAEpB,IAAO,sBAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -0,0 +1,57 @@
1
+ // src/components/dropdown/dropdown.styles.ts
2
+ import { css } from "lit";
3
+ var dropdown_styles_default = css`
4
+ /* stylelint-disable */
5
+ :host {
6
+ display: inline-block;
7
+ }
8
+
9
+ .dropdown::part(popup) {
10
+ z-index: var(--syn-z-index-dropdown);
11
+ }
12
+
13
+ .dropdown[data-current-placement^='top']::part(popup) {
14
+ transform-origin: bottom;
15
+ }
16
+
17
+ .dropdown[data-current-placement^='bottom']::part(popup) {
18
+ transform-origin: top;
19
+ }
20
+
21
+ .dropdown[data-current-placement^='left']::part(popup) {
22
+ transform-origin: right;
23
+ }
24
+
25
+ .dropdown[data-current-placement^='right']::part(popup) {
26
+ transform-origin: left;
27
+ }
28
+
29
+ .dropdown__trigger {
30
+ display: block;
31
+ }
32
+
33
+ .dropdown__panel {
34
+ font-family: var(--syn-font-sans);
35
+ font-size: var(--syn-font-size-medium);
36
+ font-weight: var(--syn-font-weight-normal);
37
+ box-shadow: var(--syn-shadow-large);
38
+ border-radius: var(--syn-border-radius-medium);
39
+ pointer-events: none;
40
+ }
41
+
42
+ .dropdown--open .dropdown__panel {
43
+ display: block;
44
+ pointer-events: all;
45
+ }
46
+
47
+ /* When users slot a menu, make sure it conforms to the popup's auto-size */
48
+ ::slotted(syn-menu) {
49
+ max-width: var(--auto-size-available-width) !important;
50
+ max-height: var(--auto-size-available-height) !important;
51
+ }
52
+ `;
53
+
54
+ export {
55
+ dropdown_styles_default
56
+ };
57
+ //# sourceMappingURL=chunk.SLCYXMHB.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/components/dropdown/dropdown.styles.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 display: inline-block;\n }\n\n .dropdown::part(popup) {\n z-index: var(--syn-z-index-dropdown);\n }\n\n .dropdown[data-current-placement^='top']::part(popup) {\n transform-origin: bottom;\n }\n\n .dropdown[data-current-placement^='bottom']::part(popup) {\n transform-origin: top;\n }\n\n .dropdown[data-current-placement^='left']::part(popup) {\n transform-origin: right;\n }\n\n .dropdown[data-current-placement^='right']::part(popup) {\n transform-origin: left;\n }\n\n .dropdown__trigger {\n display: block;\n }\n\n .dropdown__panel {\n font-family: var(--syn-font-sans);\n font-size: var(--syn-font-size-medium);\n font-weight: var(--syn-font-weight-normal);\n box-shadow: var(--syn-shadow-large);\n border-radius: var(--syn-border-radius-medium);\n pointer-events: none;\n }\n\n .dropdown--open .dropdown__panel {\n display: block;\n pointer-events: all;\n }\n\n /* When users slot a menu, make sure it conforms to the popup's auto-size */\n ::slotted(syn-menu) {\n max-width: var(--auto-size-available-width) !important;\n max-height: var(--auto-size-available-height) !important;\n }\n`;\n"],
5
+ "mappings": ";AAMA,SAAS,WAAW;AAEpB,IAAO,0BAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -1,16 +1,16 @@
1
- import {
2
- icon_default
3
- } from "./chunk.XOQKLUKE.js";
4
1
  import {
5
2
  header_styles_default
6
3
  } from "./chunk.JDXKGJ63.js";
4
+ import {
5
+ icon_default
6
+ } from "./chunk.WBOGDY52.js";
7
7
  import {
8
8
  HasSlotController
9
- } from "./chunk.XGXFE6IF.js";
9
+ } from "./chunk.66WXVGAW.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";
@@ -77,4 +77,4 @@ __decorateClass([
77
77
  export {
78
78
  SynHeader
79
79
  };
80
- //# sourceMappingURL=chunk.WJX2T5MU.js.map
80
+ //# sourceMappingURL=chunk.SR56N2RY.js.map
@@ -1,21 +1,23 @@
1
1
  import {
2
2
  SynTag
3
- } from "./chunk.24VV3YAD.js";
3
+ } from "./chunk.K74W3RP4.js";
4
4
  import {
5
5
  select_custom_styles_default
6
6
  } from "./chunk.OWMT6OL2.js";
7
7
  import {
8
8
  select_styles_default
9
9
  } from "./chunk.QNQNR3RY.js";
10
+ import {
11
+ scrollIntoView
12
+ } from "./chunk.2QYALZBT.js";
10
13
  import {
11
14
  SynPopup
12
- } from "./chunk.MTUGTGK4.js";
15
+ } from "./chunk.FYJQBDYL.js";
13
16
  import {
14
17
  animateTo,
15
- scrollIntoView,
16
18
  stopAnimations,
17
19
  waitForEvent
18
- } from "./chunk.GTSRMEPE.js";
20
+ } from "./chunk.7BEVGRQ2.js";
19
21
  import {
20
22
  getAnimation,
21
23
  setDefaultAnimation
@@ -35,17 +37,17 @@ import {
35
37
  } from "./chunk.SZCGMXW5.js";
36
38
  import {
37
39
  HasSlotController
38
- } from "./chunk.XGXFE6IF.js";
40
+ } from "./chunk.66WXVGAW.js";
39
41
  import {
40
42
  SynIcon
41
- } from "./chunk.6QB26MQP.js";
43
+ } from "./chunk.ZPMKYF4O.js";
42
44
  import {
43
45
  watch
44
46
  } from "./chunk.AVTU2BGE.js";
45
47
  import {
46
48
  SynergyElement,
47
49
  component_styles_default
48
- } from "./chunk.WPY6PWSD.js";
50
+ } from "./chunk.LUPEZL5H.js";
49
51
  import {
50
52
  __decorateClass
51
53
  } from "./chunk.QNDC5KWA.js";
@@ -758,4 +760,4 @@ setDefaultAnimation("select.hide", {
758
760
  export {
759
761
  SynSelect
760
762
  };
761
- //# sourceMappingURL=chunk.XOL5KILI.js.map
763
+ //# sourceMappingURL=chunk.T7D7X73E.js.map