@synergy-design-system/components 1.13.0 → 1.15.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 (248) hide show
  1. package/dist/chunks/{chunk.ZKGSBP7D.js → chunk.2BEBXBDJ.js} +2 -2
  2. package/dist/chunks/{chunk.TOBWLVQY.js → chunk.2LMCM7HQ.js} +2 -2
  3. package/dist/chunks/{chunk.MM2YC5ZH.js → chunk.3JBPXBYC.js} +9 -9
  4. package/dist/chunks/{chunk.XF4DS2IU.js → chunk.3QNVV7DW.js} +11 -11
  5. package/dist/chunks/{chunk.CKASWRIG.js → chunk.4LD5UMX7.js} +2 -2
  6. package/dist/chunks/{chunk.FYJQBDYL.js → chunk.4TWUWTOI.js} +2 -2
  7. package/dist/chunks/{chunk.NXAAWXFC.js → chunk.5UETQYQR.js} +11 -11
  8. package/dist/chunks/{chunk.AW7IXLZ6.js → chunk.63JWIOGL.js} +2 -2
  9. package/dist/chunks/{chunk.7UVCYUNR.js → chunk.66MOXMDP.js} +2 -2
  10. package/dist/chunks/chunk.74N5WLM5.js +53 -0
  11. package/dist/chunks/chunk.74N5WLM5.js.map +7 -0
  12. package/dist/chunks/{chunk.JDXKGJ63.js → chunk.AOKNP4QD.js} +42 -2
  13. package/dist/chunks/{chunk.JDXKGJ63.js.map → chunk.AOKNP4QD.js.map} +2 -2
  14. package/dist/chunks/chunk.BHTLGDWT.js +166 -0
  15. package/dist/chunks/chunk.BHTLGDWT.js.map +7 -0
  16. package/dist/chunks/{chunk.LDWFJMF6.js → chunk.CHJC6OSN.js} +2 -2
  17. package/dist/chunks/{chunk.HOJ7LSMH.js → chunk.EFV5UWMX.js} +2 -2
  18. package/dist/chunks/{chunk.MEMVYSEM.js → chunk.FHEH5OSL.js} +2 -2
  19. package/dist/chunks/{chunk.4RYBHPDG.js → chunk.FKT4RXN7.js} +3 -3
  20. package/dist/chunks/{chunk.RBDVQQ3E.js → chunk.FYN26TFO.js} +5 -5
  21. package/dist/chunks/{chunk.WBOGDY52.js → chunk.G7XEHN2F.js} +2 -2
  22. package/dist/chunks/{chunk.BAPPYU2J.js → chunk.GARWLAOJ.js} +2 -2
  23. package/dist/chunks/{chunk.T7D7X73E.js → chunk.GCHIBXQT.js} +10 -10
  24. package/dist/chunks/{chunk.LAB4YJYE.js → chunk.GEHO4WRP.js} +2 -2
  25. package/dist/chunks/{chunk.LAB4YJYE.js.map → chunk.GEHO4WRP.js.map} +1 -1
  26. package/dist/chunks/chunk.GO3CCKC3.js +96 -0
  27. package/dist/chunks/chunk.GO3CCKC3.js.map +7 -0
  28. package/dist/chunks/{chunk.WWBODWZN.js → chunk.H46CGP6A.js} +2 -2
  29. package/dist/chunks/{chunk.HJNNSNKN.js → chunk.H7APDHTS.js} +3 -3
  30. package/dist/chunks/chunk.II4PANKR.js +56 -0
  31. package/dist/chunks/chunk.II4PANKR.js.map +7 -0
  32. package/dist/chunks/chunk.IJCD3LMC.js +12 -0
  33. package/dist/chunks/chunk.IJCD3LMC.js.map +7 -0
  34. package/dist/chunks/{chunk.EMIN5Z4Y.js → chunk.IUHZVWPW.js} +2 -2
  35. package/dist/chunks/chunk.IYGOMLU7.js +208 -0
  36. package/dist/chunks/chunk.IYGOMLU7.js.map +7 -0
  37. package/dist/chunks/{chunk.OQ7JU642.js → chunk.JCFKRHGM.js} +2 -2
  38. package/dist/chunks/{chunk.7JJZR4JG.js → chunk.JL53VHSP.js} +6 -6
  39. package/dist/chunks/{chunk.B35CKL75.js → chunk.JUD3T56D.js} +2 -2
  40. package/dist/chunks/{chunk.XKURNDPY.js → chunk.KC6TXACE.js} +2 -2
  41. package/dist/chunks/{chunk.UYD2OVFV.js → chunk.KZMWNTUS.js} +2 -2
  42. package/dist/chunks/chunk.KZMWNTUS.js.map +7 -0
  43. package/dist/chunks/chunk.L4UUXVRZ.js +312 -0
  44. package/dist/chunks/chunk.L4UUXVRZ.js.map +7 -0
  45. package/dist/chunks/{chunk.FIVDEPVP.js → chunk.LNUIMITL.js} +8 -8
  46. package/dist/chunks/{chunk.LUPEZL5H.js → chunk.MCJTXOVV.js} +2 -2
  47. package/dist/chunks/{chunk.LUPEZL5H.js.map → chunk.MCJTXOVV.js.map} +1 -1
  48. package/dist/chunks/chunk.MJYZDU37.js +318 -0
  49. package/dist/chunks/chunk.MJYZDU37.js.map +7 -0
  50. package/dist/chunks/{chunk.MKKJWJHG.js → chunk.MMDRQ7JM.js} +2 -2
  51. package/dist/chunks/{chunk.ZFDPWUKA.js → chunk.NBHBC5FQ.js} +12 -12
  52. package/dist/chunks/{chunk.J4XBGQBY.js → chunk.O3A57CXO.js} +3 -3
  53. package/dist/chunks/{chunk.F2JCTYYN.js → chunk.OLUNOSLX.js} +2 -2
  54. package/dist/chunks/{chunk.XRLJLT47.js → chunk.ON2HXIFZ.js} +3 -3
  55. package/dist/chunks/{chunk.BD3YJRAC.js → chunk.OVUVBTHH.js} +2 -2
  56. package/dist/chunks/chunk.P43W2NFX.js +12 -0
  57. package/dist/chunks/chunk.P43W2NFX.js.map +7 -0
  58. package/dist/chunks/chunk.QJGWS4TQ.js +12 -0
  59. package/dist/chunks/chunk.QJGWS4TQ.js.map +7 -0
  60. package/dist/chunks/{chunk.A3SKDWCT.js → chunk.QY3GFWGZ.js} +11 -2
  61. package/dist/chunks/{chunk.A3SKDWCT.js.map → chunk.QY3GFWGZ.js.map} +2 -2
  62. package/dist/chunks/{chunk.NE7RLB6A.js → chunk.SBHXUKMY.js} +2 -2
  63. package/dist/chunks/{chunk.3PBOWA5U.js → chunk.SE4NF6AN.js} +5 -5
  64. package/dist/chunks/chunk.SWPVARPP.js +61 -0
  65. package/dist/chunks/chunk.SWPVARPP.js.map +7 -0
  66. package/dist/chunks/{chunk.WNUV3MAD.js → chunk.T43ZXJKG.js} +3 -3
  67. package/dist/chunks/{chunk.4IIG6F76.js → chunk.TFWNKCFJ.js} +2 -2
  68. package/dist/chunks/chunk.TRMXLYYL.js +12 -0
  69. package/dist/chunks/chunk.TRMXLYYL.js.map +7 -0
  70. package/dist/chunks/{chunk.UJIWHSZR.js → chunk.V3JANQYN.js} +2 -2
  71. package/dist/chunks/{chunk.LKEOG4V4.js → chunk.V6OK2ECX.js} +2 -2
  72. package/dist/chunks/chunk.VDA7H6VI.js +286 -0
  73. package/dist/chunks/chunk.VDA7H6VI.js.map +7 -0
  74. package/dist/chunks/{chunk.JZLW5XX6.js → chunk.VPW6WZNZ.js} +2 -2
  75. package/dist/chunks/{chunk.N4VSEIRQ.js → chunk.VTKIDI7N.js} +7 -1
  76. package/dist/chunks/{chunk.N4VSEIRQ.js.map → chunk.VTKIDI7N.js.map} +2 -2
  77. package/dist/chunks/{chunk.YSDEWPDF.js → chunk.VUROYPEC.js} +3 -3
  78. package/dist/chunks/{chunk.WU6GTI3K.js → chunk.VZEN3JIH.js} +2 -2
  79. package/dist/chunks/{chunk.TDEBVJWI.js → chunk.WCIAL36G.js} +2 -2
  80. package/dist/chunks/{chunk.ZPMKYF4O.js → chunk.WHYX7AY4.js} +7 -7
  81. package/dist/chunks/chunk.WQJRBFZA.js +66 -0
  82. package/dist/chunks/chunk.WQJRBFZA.js.map +7 -0
  83. package/dist/chunks/{chunk.K74W3RP4.js → chunk.WV2VTAP2.js} +4 -4
  84. package/dist/chunks/chunk.XNP4OTUB.js +16 -0
  85. package/dist/chunks/chunk.XNP4OTUB.js.map +7 -0
  86. package/dist/chunks/{chunk.KZFU7TFZ.js → chunk.XSVH753L.js} +2 -2
  87. package/dist/chunks/{chunk.ZGKQGMNS.js → chunk.YBPWZ4QI.js} +2 -2
  88. package/dist/chunks/{chunk.TEWZUSS3.js → chunk.YNWVXDDQ.js} +2 -2
  89. package/dist/chunks/{chunk.OWAQA3TV.js → chunk.ZMIBKG2N.js} +2 -2
  90. package/dist/components/badge/badge.component.d.ts +19 -0
  91. package/dist/components/badge/badge.component.js +13 -0
  92. package/dist/components/badge/badge.component.js.map +7 -0
  93. package/dist/components/badge/badge.custom.styles.d.ts +2 -0
  94. package/dist/components/badge/badge.custom.styles.js +8 -0
  95. package/dist/components/badge/badge.custom.styles.js.map +7 -0
  96. package/dist/components/badge/badge.d.ts +8 -0
  97. package/dist/components/badge/badge.js +14 -0
  98. package/dist/components/badge/badge.js.map +7 -0
  99. package/dist/components/badge/badge.styles.d.ts +2 -0
  100. package/dist/components/badge/badge.styles.js +8 -0
  101. package/dist/components/badge/badge.styles.js.map +7 -0
  102. package/dist/components/button/button.component.js +10 -10
  103. package/dist/components/button/button.js +11 -11
  104. package/dist/components/button-group/button-group.component.js +2 -2
  105. package/dist/components/button-group/button-group.js +3 -3
  106. package/dist/components/checkbox/checkbox.component.js +6 -6
  107. package/dist/components/checkbox/checkbox.js +7 -7
  108. package/dist/components/divider/divider.component.js +2 -2
  109. package/dist/components/divider/divider.js +3 -3
  110. package/dist/components/drawer/drawer.component.js +11 -11
  111. package/dist/components/drawer/drawer.custom.styles.js +1 -1
  112. package/dist/components/drawer/drawer.js +12 -12
  113. package/dist/components/dropdown/dropdown.component.js +7 -7
  114. package/dist/components/dropdown/dropdown.js +8 -8
  115. package/dist/components/header/header.component.d.ts +42 -1
  116. package/dist/components/header/header.component.js +10 -8
  117. package/dist/components/header/header.js +11 -9
  118. package/dist/components/header/header.styles.js +1 -1
  119. package/dist/components/icon/icon.component.js +5 -5
  120. package/dist/components/icon/icon.js +6 -6
  121. package/dist/components/icon/library.js +2 -2
  122. package/dist/components/icon/library.system.js +1 -1
  123. package/dist/components/icon-button/icon-button.component.js +6 -6
  124. package/dist/components/icon-button/icon-button.js +7 -7
  125. package/dist/components/input/input.component.js +11 -11
  126. package/dist/components/input/input.js +12 -12
  127. package/dist/components/menu/menu.component.js +2 -2
  128. package/dist/components/menu/menu.js +3 -3
  129. package/dist/components/menu-item/menu-item.component.js +10 -10
  130. package/dist/components/menu-item/menu-item.js +11 -11
  131. package/dist/components/menu-item/submenu-controller.js +2 -2
  132. package/dist/components/menu-label/menu-label.component.js +3 -3
  133. package/dist/components/menu-label/menu-label.js +4 -4
  134. package/dist/components/nav-item/nav-item.component.d.ts +145 -0
  135. package/dist/components/nav-item/nav-item.component.js +15 -0
  136. package/dist/components/nav-item/nav-item.component.js.map +7 -0
  137. package/dist/components/nav-item/nav-item.d.ts +8 -0
  138. package/dist/components/nav-item/nav-item.js +16 -0
  139. package/dist/components/nav-item/nav-item.js.map +7 -0
  140. package/dist/components/nav-item/nav-item.styles.d.ts +2 -0
  141. package/dist/components/nav-item/nav-item.styles.js +8 -0
  142. package/dist/components/nav-item/nav-item.styles.js.map +7 -0
  143. package/dist/components/optgroup/optgroup.component.js +3 -3
  144. package/dist/components/optgroup/optgroup.js +4 -4
  145. package/dist/components/option/option.component.js +8 -8
  146. package/dist/components/option/option.js +9 -9
  147. package/dist/components/popup/popup.component.js +2 -2
  148. package/dist/components/popup/popup.js +3 -3
  149. package/dist/components/prio-nav/prio-nav.component.d.ts +110 -0
  150. package/dist/components/prio-nav/prio-nav.component.js +38 -0
  151. package/dist/components/prio-nav/prio-nav.component.js.map +7 -0
  152. package/dist/components/prio-nav/prio-nav.d.ts +8 -0
  153. package/dist/components/prio-nav/prio-nav.js +39 -0
  154. package/dist/components/prio-nav/prio-nav.js.map +7 -0
  155. package/dist/components/prio-nav/prio-nav.styles.d.ts +2 -0
  156. package/dist/components/prio-nav/prio-nav.styles.js +8 -0
  157. package/dist/components/prio-nav/prio-nav.styles.js.map +7 -0
  158. package/dist/components/prio-nav/utils.d.ts +20 -0
  159. package/dist/components/prio-nav/utils.js +12 -0
  160. package/dist/components/prio-nav/utils.js.map +7 -0
  161. package/dist/components/radio/radio.component.js +6 -6
  162. package/dist/components/radio/radio.js +7 -7
  163. package/dist/components/radio-button/radio-button.component.js +3 -3
  164. package/dist/components/radio-button/radio-button.js +4 -4
  165. package/dist/components/radio-group/radio-group.component.js +4 -4
  166. package/dist/components/radio-group/radio-group.js +5 -5
  167. package/dist/components/select/select.component.js +12 -12
  168. package/dist/components/select/select.js +13 -13
  169. package/dist/components/side-nav/side-nav.component.d.ts +122 -0
  170. package/dist/components/side-nav/side-nav.component.js +34 -0
  171. package/dist/components/side-nav/side-nav.component.js.map +7 -0
  172. package/dist/components/side-nav/side-nav.d.ts +8 -0
  173. package/dist/components/side-nav/side-nav.js +35 -0
  174. package/dist/components/side-nav/side-nav.js.map +7 -0
  175. package/dist/components/side-nav/side-nav.styles.d.ts +2 -0
  176. package/dist/components/side-nav/side-nav.styles.js +8 -0
  177. package/dist/components/side-nav/side-nav.styles.js.map +7 -0
  178. package/dist/components/spinner/spinner.component.js +4 -4
  179. package/dist/components/switch/switch.component.js +2 -2
  180. package/dist/components/switch/switch.js +3 -3
  181. package/dist/components/tag/tag.component.js +9 -9
  182. package/dist/components/tag/tag.js +10 -10
  183. package/dist/components/textarea/textarea.component.js +2 -2
  184. package/dist/components/textarea/textarea.js +3 -3
  185. package/dist/custom-elements.json +1988 -709
  186. package/dist/events/events.d.ts +2 -0
  187. package/dist/events/syn-burger-menu-hide.d.ts +6 -0
  188. package/dist/events/syn-burger-menu-show.d.ts +6 -0
  189. package/dist/synergy.d.ts +4 -0
  190. package/dist/synergy.js +110 -84
  191. package/dist/translations/de.js +12 -3
  192. package/dist/translations/de.js.map +2 -2
  193. package/dist/translations/en.js +1 -1
  194. package/dist/utilities/icon-library.js +2 -2
  195. package/dist/utilities/localize.d.ts +7 -0
  196. package/dist/utilities/localize.js +2 -2
  197. package/dist/vscode.html-custom-data.json +128 -8
  198. package/package.json +4 -3
  199. package/dist/chunks/chunk.SR56N2RY.js +0 -80
  200. package/dist/chunks/chunk.SR56N2RY.js.map +0 -7
  201. package/dist/chunks/chunk.UYD2OVFV.js.map +0 -7
  202. /package/dist/chunks/{chunk.ZKGSBP7D.js.map → chunk.2BEBXBDJ.js.map} +0 -0
  203. /package/dist/chunks/{chunk.TOBWLVQY.js.map → chunk.2LMCM7HQ.js.map} +0 -0
  204. /package/dist/chunks/{chunk.MM2YC5ZH.js.map → chunk.3JBPXBYC.js.map} +0 -0
  205. /package/dist/chunks/{chunk.XF4DS2IU.js.map → chunk.3QNVV7DW.js.map} +0 -0
  206. /package/dist/chunks/{chunk.CKASWRIG.js.map → chunk.4LD5UMX7.js.map} +0 -0
  207. /package/dist/chunks/{chunk.FYJQBDYL.js.map → chunk.4TWUWTOI.js.map} +0 -0
  208. /package/dist/chunks/{chunk.NXAAWXFC.js.map → chunk.5UETQYQR.js.map} +0 -0
  209. /package/dist/chunks/{chunk.AW7IXLZ6.js.map → chunk.63JWIOGL.js.map} +0 -0
  210. /package/dist/chunks/{chunk.7UVCYUNR.js.map → chunk.66MOXMDP.js.map} +0 -0
  211. /package/dist/chunks/{chunk.LDWFJMF6.js.map → chunk.CHJC6OSN.js.map} +0 -0
  212. /package/dist/chunks/{chunk.HOJ7LSMH.js.map → chunk.EFV5UWMX.js.map} +0 -0
  213. /package/dist/chunks/{chunk.MEMVYSEM.js.map → chunk.FHEH5OSL.js.map} +0 -0
  214. /package/dist/chunks/{chunk.4RYBHPDG.js.map → chunk.FKT4RXN7.js.map} +0 -0
  215. /package/dist/chunks/{chunk.RBDVQQ3E.js.map → chunk.FYN26TFO.js.map} +0 -0
  216. /package/dist/chunks/{chunk.WBOGDY52.js.map → chunk.G7XEHN2F.js.map} +0 -0
  217. /package/dist/chunks/{chunk.BAPPYU2J.js.map → chunk.GARWLAOJ.js.map} +0 -0
  218. /package/dist/chunks/{chunk.T7D7X73E.js.map → chunk.GCHIBXQT.js.map} +0 -0
  219. /package/dist/chunks/{chunk.WWBODWZN.js.map → chunk.H46CGP6A.js.map} +0 -0
  220. /package/dist/chunks/{chunk.HJNNSNKN.js.map → chunk.H7APDHTS.js.map} +0 -0
  221. /package/dist/chunks/{chunk.EMIN5Z4Y.js.map → chunk.IUHZVWPW.js.map} +0 -0
  222. /package/dist/chunks/{chunk.OQ7JU642.js.map → chunk.JCFKRHGM.js.map} +0 -0
  223. /package/dist/chunks/{chunk.7JJZR4JG.js.map → chunk.JL53VHSP.js.map} +0 -0
  224. /package/dist/chunks/{chunk.B35CKL75.js.map → chunk.JUD3T56D.js.map} +0 -0
  225. /package/dist/chunks/{chunk.XKURNDPY.js.map → chunk.KC6TXACE.js.map} +0 -0
  226. /package/dist/chunks/{chunk.FIVDEPVP.js.map → chunk.LNUIMITL.js.map} +0 -0
  227. /package/dist/chunks/{chunk.MKKJWJHG.js.map → chunk.MMDRQ7JM.js.map} +0 -0
  228. /package/dist/chunks/{chunk.ZFDPWUKA.js.map → chunk.NBHBC5FQ.js.map} +0 -0
  229. /package/dist/chunks/{chunk.J4XBGQBY.js.map → chunk.O3A57CXO.js.map} +0 -0
  230. /package/dist/chunks/{chunk.F2JCTYYN.js.map → chunk.OLUNOSLX.js.map} +0 -0
  231. /package/dist/chunks/{chunk.XRLJLT47.js.map → chunk.ON2HXIFZ.js.map} +0 -0
  232. /package/dist/chunks/{chunk.BD3YJRAC.js.map → chunk.OVUVBTHH.js.map} +0 -0
  233. /package/dist/chunks/{chunk.NE7RLB6A.js.map → chunk.SBHXUKMY.js.map} +0 -0
  234. /package/dist/chunks/{chunk.3PBOWA5U.js.map → chunk.SE4NF6AN.js.map} +0 -0
  235. /package/dist/chunks/{chunk.WNUV3MAD.js.map → chunk.T43ZXJKG.js.map} +0 -0
  236. /package/dist/chunks/{chunk.4IIG6F76.js.map → chunk.TFWNKCFJ.js.map} +0 -0
  237. /package/dist/chunks/{chunk.UJIWHSZR.js.map → chunk.V3JANQYN.js.map} +0 -0
  238. /package/dist/chunks/{chunk.LKEOG4V4.js.map → chunk.V6OK2ECX.js.map} +0 -0
  239. /package/dist/chunks/{chunk.JZLW5XX6.js.map → chunk.VPW6WZNZ.js.map} +0 -0
  240. /package/dist/chunks/{chunk.YSDEWPDF.js.map → chunk.VUROYPEC.js.map} +0 -0
  241. /package/dist/chunks/{chunk.WU6GTI3K.js.map → chunk.VZEN3JIH.js.map} +0 -0
  242. /package/dist/chunks/{chunk.TDEBVJWI.js.map → chunk.WCIAL36G.js.map} +0 -0
  243. /package/dist/chunks/{chunk.ZPMKYF4O.js.map → chunk.WHYX7AY4.js.map} +0 -0
  244. /package/dist/chunks/{chunk.K74W3RP4.js.map → chunk.WV2VTAP2.js.map} +0 -0
  245. /package/dist/chunks/{chunk.KZFU7TFZ.js.map → chunk.XSVH753L.js.map} +0 -0
  246. /package/dist/chunks/{chunk.ZGKQGMNS.js.map → chunk.YBPWZ4QI.js.map} +0 -0
  247. /package/dist/chunks/{chunk.TEWZUSS3.js.map → chunk.YNWVXDDQ.js.map} +0 -0
  248. /package/dist/chunks/{chunk.OWAQA3TV.js.map → chunk.ZMIBKG2N.js.map} +0 -0
@@ -4,12 +4,12 @@
4
4
  "modules": [
5
5
  {
6
6
  "kind": "javascript-module",
7
- "path": "components/button-group/button-group.js",
7
+ "path": "components/badge/badge.js",
8
8
  "declarations": [
9
9
  {
10
10
  "kind": "class",
11
11
  "description": "",
12
- "name": "SynButtonGroup",
12
+ "name": "SynBadge",
13
13
  "cssParts": [
14
14
  {
15
15
  "description": "The component's base wrapper.",
@@ -18,115 +18,51 @@
18
18
  ],
19
19
  "slots": [
20
20
  {
21
- "description": "One or more `<syn-button>` elements to display in the button group.",
21
+ "description": "The badge's content.",
22
22
  "name": ""
23
23
  }
24
24
  ],
25
25
  "members": [
26
26
  {
27
27
  "kind": "field",
28
- "name": "defaultSlot",
29
- "type": {
30
- "text": "HTMLSlotElement"
31
- }
32
- },
33
- {
34
- "kind": "field",
35
- "name": "disableRole",
36
- "type": {
37
- "text": "boolean"
38
- },
39
- "default": "false"
28
+ "name": "localize",
29
+ "privacy": "private",
30
+ "readonly": true,
31
+ "default": "new LocalizeController(this)"
40
32
  },
41
33
  {
42
34
  "kind": "field",
43
- "name": "label",
35
+ "name": "variant",
44
36
  "type": {
45
- "text": "string"
37
+ "text": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
46
38
  },
47
- "default": "''",
48
- "description": "A label to use for the button group. This won't be displayed on the screen, but it will be announced by assistive\ndevices when interacting with the control and is strongly recommended.",
49
- "attribute": "label"
50
- },
51
- {
52
- "kind": "method",
53
- "name": "handleFocus",
54
- "privacy": "private",
55
- "parameters": [
56
- {
57
- "name": "event",
58
- "type": {
59
- "text": "Event"
60
- }
61
- }
62
- ]
63
- },
64
- {
65
- "kind": "method",
66
- "name": "handleBlur",
67
- "privacy": "private",
68
- "parameters": [
69
- {
70
- "name": "event",
71
- "type": {
72
- "text": "Event"
73
- }
74
- }
75
- ]
76
- },
77
- {
78
- "kind": "method",
79
- "name": "handleMouseOver",
80
- "privacy": "private",
81
- "parameters": [
82
- {
83
- "name": "event",
84
- "type": {
85
- "text": "Event"
86
- }
87
- }
88
- ]
89
- },
90
- {
91
- "kind": "method",
92
- "name": "handleMouseOut",
93
- "privacy": "private",
94
- "parameters": [
95
- {
96
- "name": "event",
97
- "type": {
98
- "text": "Event"
99
- }
100
- }
101
- ]
102
- },
103
- {
104
- "kind": "method",
105
- "name": "handleSlotChange",
106
- "privacy": "private"
39
+ "default": "'primary'",
40
+ "description": "The badge's theme variant.",
41
+ "attribute": "variant",
42
+ "reflects": true
107
43
  }
108
44
  ],
109
45
  "attributes": [
110
46
  {
111
- "name": "label",
47
+ "name": "variant",
112
48
  "type": {
113
- "text": "string"
49
+ "text": "'primary' | 'success' | 'neutral' | 'warning' | 'danger'"
114
50
  },
115
- "default": "''",
116
- "description": "A label to use for the button group. This won't be displayed on the screen, but it will be announced by assistive\ndevices when interacting with the control and is strongly recommended.",
117
- "fieldName": "label"
51
+ "default": "'primary'",
52
+ "description": "The badge's theme variant.",
53
+ "fieldName": "variant"
118
54
  }
119
55
  ],
120
56
  "superclass": {
121
57
  "name": "SynergyElement",
122
58
  "module": "/src/internal/synergy-element.js"
123
59
  },
124
- "summary": "Button groups can be used to group related buttons into sections.",
125
- "tagNameWithoutPrefix": "button-group",
126
- "tagName": "syn-button-group",
60
+ "summary": "Badges are used to draw attention and display statuses or counts.",
61
+ "tagNameWithoutPrefix": "badge",
62
+ "tagName": "syn-badge",
127
63
  "customElement": true,
128
- "jsDoc": "/**\n * @summary Button groups can be used to group related buttons into sections.\n * @documentation https://synergy.style/components/button-group\n * @status stable\n * @since 2.0\n *\n * @slot - One or more `<syn-button>` elements to display in the button group.\n *\n * @csspart base - The component's base wrapper.\n */",
129
- "documentation": "https://synergy.style/components/button-group",
64
+ "jsDoc": "/**\n * @summary Badges are used to draw attention and display statuses or counts.\n * @documentation https://synergy.style/components/badge\n * @status stable\n * @since 2.0\n *\n * @slot - The badge's content.\n *\n * @csspart base - The component's base wrapper.\n */",
65
+ "documentation": "https://synergy.style/components/badge",
130
66
  "status": "stable",
131
67
  "since": "2.0"
132
68
  }
@@ -136,8 +72,8 @@
136
72
  "kind": "js",
137
73
  "name": "default",
138
74
  "declaration": {
139
- "name": "SynButtonGroup",
140
- "module": "components/button-group/button-group.js"
75
+ "name": "SynBadge",
76
+ "module": "components/badge/badge.js"
141
77
  }
142
78
  }
143
79
  ]
@@ -756,6 +692,146 @@
756
692
  }
757
693
  ]
758
694
  },
695
+ {
696
+ "kind": "javascript-module",
697
+ "path": "components/button-group/button-group.js",
698
+ "declarations": [
699
+ {
700
+ "kind": "class",
701
+ "description": "",
702
+ "name": "SynButtonGroup",
703
+ "cssParts": [
704
+ {
705
+ "description": "The component's base wrapper.",
706
+ "name": "base"
707
+ }
708
+ ],
709
+ "slots": [
710
+ {
711
+ "description": "One or more `<syn-button>` elements to display in the button group.",
712
+ "name": ""
713
+ }
714
+ ],
715
+ "members": [
716
+ {
717
+ "kind": "field",
718
+ "name": "defaultSlot",
719
+ "type": {
720
+ "text": "HTMLSlotElement"
721
+ }
722
+ },
723
+ {
724
+ "kind": "field",
725
+ "name": "disableRole",
726
+ "type": {
727
+ "text": "boolean"
728
+ },
729
+ "default": "false"
730
+ },
731
+ {
732
+ "kind": "field",
733
+ "name": "label",
734
+ "type": {
735
+ "text": "string"
736
+ },
737
+ "default": "''",
738
+ "description": "A label to use for the button group. This won't be displayed on the screen, but it will be announced by assistive\ndevices when interacting with the control and is strongly recommended.",
739
+ "attribute": "label"
740
+ },
741
+ {
742
+ "kind": "method",
743
+ "name": "handleFocus",
744
+ "privacy": "private",
745
+ "parameters": [
746
+ {
747
+ "name": "event",
748
+ "type": {
749
+ "text": "Event"
750
+ }
751
+ }
752
+ ]
753
+ },
754
+ {
755
+ "kind": "method",
756
+ "name": "handleBlur",
757
+ "privacy": "private",
758
+ "parameters": [
759
+ {
760
+ "name": "event",
761
+ "type": {
762
+ "text": "Event"
763
+ }
764
+ }
765
+ ]
766
+ },
767
+ {
768
+ "kind": "method",
769
+ "name": "handleMouseOver",
770
+ "privacy": "private",
771
+ "parameters": [
772
+ {
773
+ "name": "event",
774
+ "type": {
775
+ "text": "Event"
776
+ }
777
+ }
778
+ ]
779
+ },
780
+ {
781
+ "kind": "method",
782
+ "name": "handleMouseOut",
783
+ "privacy": "private",
784
+ "parameters": [
785
+ {
786
+ "name": "event",
787
+ "type": {
788
+ "text": "Event"
789
+ }
790
+ }
791
+ ]
792
+ },
793
+ {
794
+ "kind": "method",
795
+ "name": "handleSlotChange",
796
+ "privacy": "private"
797
+ }
798
+ ],
799
+ "attributes": [
800
+ {
801
+ "name": "label",
802
+ "type": {
803
+ "text": "string"
804
+ },
805
+ "default": "''",
806
+ "description": "A label to use for the button group. This won't be displayed on the screen, but it will be announced by assistive\ndevices when interacting with the control and is strongly recommended.",
807
+ "fieldName": "label"
808
+ }
809
+ ],
810
+ "superclass": {
811
+ "name": "SynergyElement",
812
+ "module": "/src/internal/synergy-element.js"
813
+ },
814
+ "summary": "Button groups can be used to group related buttons into sections.",
815
+ "tagNameWithoutPrefix": "button-group",
816
+ "tagName": "syn-button-group",
817
+ "customElement": true,
818
+ "jsDoc": "/**\n * @summary Button groups can be used to group related buttons into sections.\n * @documentation https://synergy.style/components/button-group\n * @status stable\n * @since 2.0\n *\n * @slot - One or more `<syn-button>` elements to display in the button group.\n *\n * @csspart base - The component's base wrapper.\n */",
819
+ "documentation": "https://synergy.style/components/button-group",
820
+ "status": "stable",
821
+ "since": "2.0"
822
+ }
823
+ ],
824
+ "exports": [
825
+ {
826
+ "kind": "js",
827
+ "name": "default",
828
+ "declaration": {
829
+ "name": "SynButtonGroup",
830
+ "module": "components/button-group/button-group.js"
831
+ }
832
+ }
833
+ ]
834
+ },
759
835
  {
760
836
  "kind": "javascript-module",
761
837
  "path": "components/checkbox/checkbox.js",
@@ -2128,6 +2204,10 @@
2128
2204
  {
2129
2205
  "description": "The wrapper that is holding the optional top navigation section",
2130
2206
  "name": "navigation"
2207
+ },
2208
+ {
2209
+ "description": "The button that toggles the burger menu",
2210
+ "name": "burger-menu-toggle-button"
2131
2211
  }
2132
2212
  ],
2133
2213
  "slots": [
@@ -2146,6 +2226,14 @@
2146
2226
  {
2147
2227
  "description": "This slot can be used to add an optional horizontal navigation",
2148
2228
  "name": "navigation"
2229
+ },
2230
+ {
2231
+ "description": "An icon to use in lieu of the default show burger menu icon",
2232
+ "name": "show-burger-menu"
2233
+ },
2234
+ {
2235
+ "description": "An icon to use in lieu of the default hide burger menu icon",
2236
+ "name": "hide-burger-menu"
2149
2237
  }
2150
2238
  ],
2151
2239
  "members": [
@@ -2167,14 +2255,103 @@
2167
2255
  },
2168
2256
  {
2169
2257
  "kind": "field",
2170
- "name": "label",
2258
+ "name": "localize",
2259
+ "privacy": "private",
2260
+ "readonly": true,
2261
+ "default": "new LocalizeController(this)"
2262
+ },
2263
+ {
2264
+ "kind": "field",
2265
+ "name": "mutationObserver",
2171
2266
  "type": {
2172
- "text": "string"
2267
+ "text": "MutationObserver"
2173
2268
  },
2174
- "default": "''",
2175
- "description": "The headers label. If you need to display HTML, use the `label` slot instead.",
2176
- "attribute": "label"
2177
- }
2269
+ "privacy": "private",
2270
+ "description": "Internal mutation observer"
2271
+ },
2272
+ {
2273
+ "kind": "field",
2274
+ "name": "label",
2275
+ "type": {
2276
+ "text": "string"
2277
+ },
2278
+ "default": "''",
2279
+ "description": "The headers label. If you need to display HTML, use the `default` slot instead.",
2280
+ "attribute": "label"
2281
+ },
2282
+ {
2283
+ "kind": "field",
2284
+ "name": "showBurgerMenu",
2285
+ "type": {
2286
+ "text": "boolean"
2287
+ },
2288
+ "default": "false",
2289
+ "description": "Adds a button to toggle the burger menu's visibility.\nThe button is added automatically, if the component finds a syn-side-nav in non-rail mode.",
2290
+ "attribute": "show-burger-menu",
2291
+ "reflects": true
2292
+ },
2293
+ {
2294
+ "kind": "field",
2295
+ "name": "burgerMenuVisible",
2296
+ "type": {
2297
+ "text": "boolean"
2298
+ },
2299
+ "default": "false",
2300
+ "description": "Determines whether or not the burger menu is currently visible.",
2301
+ "attribute": "burger-menu-visible",
2302
+ "reflects": true
2303
+ },
2304
+ {
2305
+ "kind": "field",
2306
+ "name": "sideNav",
2307
+ "type": {
2308
+ "text": "SynSideNav | null"
2309
+ },
2310
+ "privacy": "private",
2311
+ "description": "The side nav"
2312
+ },
2313
+ {
2314
+ "kind": "method",
2315
+ "name": "handleBurgerMenuToggle",
2316
+ "privacy": "private"
2317
+ },
2318
+ {
2319
+ "kind": "method",
2320
+ "name": "updateBurgerMenuBasedOnSideNav",
2321
+ "privacy": "private"
2322
+ },
2323
+ {
2324
+ "kind": "method",
2325
+ "name": "handleBurgerMenuVisible"
2326
+ },
2327
+ {
2328
+ "kind": "method",
2329
+ "name": "connectSideNavigation",
2330
+ "parameters": [
2331
+ {
2332
+ "name": "sideNav",
2333
+ "type": {
2334
+ "text": "SynSideNav"
2335
+ },
2336
+ "description": "The side navigation to connect to the header"
2337
+ }
2338
+ ],
2339
+ "description": "Connect a `syn-side-nav` to add automatic interaction of the header with the side navigation\nlike showing the burger menu icon and open / close handling.\n\nIf no side navigation is connected, the header will use the first `syn-side-nav` element it\nfinds."
2340
+ }
2341
+ ],
2342
+ "events": [
2343
+ {
2344
+ "description": "Emitted when the burger menu button is toggled to visible",
2345
+ "name": "syn-burger-menu-show",
2346
+ "reactName": "onSynBurgerMenuShow",
2347
+ "eventName": "SynBurgerMenuShowEvent"
2348
+ },
2349
+ {
2350
+ "description": "Emitted when the burger menu button is toggled to not visible",
2351
+ "name": "syn-burger-menu-hide",
2352
+ "reactName": "onSynBurgerMenuHide",
2353
+ "eventName": "SynBurgerMenuHideEvent"
2354
+ }
2178
2355
  ],
2179
2356
  "attributes": [
2180
2357
  {
@@ -2183,8 +2360,26 @@
2183
2360
  "text": "string"
2184
2361
  },
2185
2362
  "default": "''",
2186
- "description": "The headers label. If you need to display HTML, use the `label` slot instead.",
2363
+ "description": "The headers label. If you need to display HTML, use the `default` slot instead.",
2187
2364
  "fieldName": "label"
2365
+ },
2366
+ {
2367
+ "name": "show-burger-menu",
2368
+ "type": {
2369
+ "text": "boolean"
2370
+ },
2371
+ "default": "false",
2372
+ "description": "Adds a button to toggle the burger menu's visibility.\nThe button is added automatically, if the component finds a syn-side-nav in non-rail mode.",
2373
+ "fieldName": "showBurgerMenu"
2374
+ },
2375
+ {
2376
+ "name": "burger-menu-visible",
2377
+ "type": {
2378
+ "text": "boolean"
2379
+ },
2380
+ "default": "false",
2381
+ "description": "Determines whether or not the burger menu is currently visible.",
2382
+ "fieldName": "burgerMenuVisible"
2188
2383
  }
2189
2384
  ],
2190
2385
  "superclass": {
@@ -2195,7 +2390,7 @@
2195
2390
  "tagNameWithoutPrefix": "header",
2196
2391
  "tagName": "syn-header",
2197
2392
  "customElement": true,
2198
- "jsDoc": "/**\n * @summary The <syn-header /> element provides a generic application header\n * that can be used to add applications name, toolbar and primary navigation.\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-header--docs\n * @status stable\n * @since 1.10.0\n *\n * @slot - The label for the header.\n * @slot logo - The logo that should be displayed. Will fall back to the SICK logo if not provided.\n * @slot meta-navigation - The meta-navigation is used to add various application toolbar icons.\n * Best used with `<syn-icon-button />` and `<syn-drop-down />`\n * @slot navigation - This slot can be used to add an optional horizontal navigation\n *\n * @csspart base - The component's base wrapper.\n * @csspart content - The wrapper most content items reside\n * @csspart logo - The wrapper the application logo resides in\n * @csspart label - The element wrapping the application name\n * @csspart meta-navigation - The Item wrapping the optional application menu\n * @csspart navigation - The wrapper that is holding the optional top navigation section\n */",
2393
+ "jsDoc": "/**\n * @summary The <syn-header /> element provides a generic application header\n * that can be used to add applications name, toolbar and primary navigation.\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-header--docs\n * @status stable\n * @since 1.10.0\n *\n * @slot - The label for the header.\n * @slot logo - The logo that should be displayed. Will fall back to the SICK logo if not provided.\n * @slot meta-navigation - The meta-navigation is used to add various application toolbar icons.\n * Best used with `<syn-icon-button />` and `<syn-drop-down />`\n * @slot navigation - This slot can be used to add an optional horizontal navigation\n * @slot show-burger-menu - An icon to use in lieu of the default show burger menu icon\n * @slot hide-burger-menu - An icon to use in lieu of the default hide burger menu icon\n *\n * @event syn-burger-menu-show - Emitted when the burger menu button is toggled to visible\n * @event syn-burger-menu-hide - Emitted when the burger menu button is toggled to not visible\n *\n * @csspart base - The component's base wrapper.\n * @csspart content - The wrapper most content items reside\n * @csspart logo - The wrapper the application logo resides in\n * @csspart label - The element wrapping the application name\n * @csspart meta-navigation - The Item wrapping the optional application menu\n * @csspart navigation - The wrapper that is holding the optional top navigation section\n * @csspart burger-menu-toggle-button - The button that toggles the burger menu\n */",
2199
2394
  "documentation": "https://synergy-design-system.github.io/?path=/docs/components-syn-header--docs",
2200
2395
  "status": "stable",
2201
2396
  "since": "1.10.0"
@@ -4228,29 +4423,57 @@
4228
4423
  },
4229
4424
  {
4230
4425
  "kind": "javascript-module",
4231
- "path": "components/optgroup/optgroup.js",
4426
+ "path": "components/nav-item/nav-item.js",
4232
4427
  "declarations": [
4233
4428
  {
4234
4429
  "kind": "class",
4235
4430
  "description": "",
4236
- "name": "SynOptgroup",
4431
+ "name": "SynNavItem",
4237
4432
  "cssProperties": [
4238
4433
  {
4239
- "description": "Display property of the divider. Defaults to \"block\"",
4240
- "name": "--display-divider"
4434
+ "description": "Numeric value, indicating the level the item is placed at.",
4435
+ "name": "--indentation"
4436
+ },
4437
+ {
4438
+ "description": "The amount of pixels each level will indent.",
4439
+ "name": "--indentation-stepping"
4440
+ },
4441
+ {
4442
+ "description": "Display property of the children. Defaults to \"contents\"",
4443
+ "name": "--display-children"
4241
4444
  }
4242
4445
  ],
4243
4446
  "cssParts": [
4244
4447
  {
4245
- "description": "The component's base wrapper.",
4448
+ "description": "The component's base wrapper including children.",
4246
4449
  "name": "base"
4247
4450
  },
4248
4451
  {
4249
- "description": "The container that wraps prefix, label and base",
4250
- "name": "label-container"
4452
+ "description": "The wrapper that holds the children",
4453
+ "name": "children"
4251
4454
  },
4252
4455
  {
4253
- "description": "The divider that is displayed above the content",
4456
+ "description": "The component's content wrapper.",
4457
+ "name": "content-wrapper"
4458
+ },
4459
+ {
4460
+ "description": "The component's content excluding children.",
4461
+ "name": "content"
4462
+ },
4463
+ {
4464
+ "description": "The indicator used when current is set to true",
4465
+ "name": "current-indicator"
4466
+ },
4467
+ {
4468
+ "description": "The container that wraps the chevron.",
4469
+ "name": "chevron"
4470
+ },
4471
+ {
4472
+ "description": "The details element rendered when there are children available",
4473
+ "name": "details"
4474
+ },
4475
+ {
4476
+ "description": "The components optional top divider.",
4254
4477
  "name": "divider"
4255
4478
  },
4256
4479
  {
@@ -4260,28 +4483,24 @@
4260
4483
  {
4261
4484
  "description": "The container that wraps the suffix.",
4262
4485
  "name": "suffix"
4263
- },
4264
- {
4265
- "description": "The container that wraps the <syn-option> elements.",
4266
- "name": "options"
4267
4486
  }
4268
4487
  ],
4269
4488
  "slots": [
4270
4489
  {
4271
- "description": "The given options. Must be `<syn-option>` elements.",
4490
+ "description": "The navigation item's label.",
4272
4491
  "name": ""
4273
4492
  },
4274
4493
  {
4275
4494
  "description": "A presentational prefix icon or similar element.",
4276
4495
  "name": "prefix"
4277
4496
  },
4278
- {
4279
- "description": "The label for the optgroup",
4280
- "name": "label"
4281
- },
4282
4497
  {
4283
4498
  "description": "A presentational suffix icon or similar element.",
4284
4499
  "name": "suffix"
4500
+ },
4501
+ {
4502
+ "description": "Slot used to provide nested child navigation elements. If provided, details and summary elements will be used. A chevron will be shown on the right side regardless of the chevron property.",
4503
+ "name": "children"
4285
4504
  }
4286
4505
  ],
4287
4506
  "members": [
@@ -4299,259 +4518,354 @@
4299
4518
  "name": "hasSlotController",
4300
4519
  "privacy": "private",
4301
4520
  "readonly": true,
4302
- "default": "new HasSlotController(this, '[default]', 'prefix', 'suffix', 'label')"
4521
+ "default": "new HasSlotController(this, '[default]', 'children', 'prefix', 'suffix')"
4303
4522
  },
4304
4523
  {
4305
4524
  "kind": "field",
4306
- "name": "defaultSlot",
4525
+ "name": "resizeObserver",
4307
4526
  "type": {
4308
- "text": "HTMLSlotElement"
4309
- }
4527
+ "text": "ResizeObserver"
4528
+ },
4529
+ "privacy": "private"
4310
4530
  },
4311
4531
  {
4312
- "kind": "method",
4313
- "name": "handleDisableOptions",
4532
+ "kind": "field",
4533
+ "name": "hasFocus",
4534
+ "type": {
4535
+ "text": "boolean"
4536
+ },
4314
4537
  "privacy": "private",
4315
- "description": "Syncs the disabled prop for all slotted syn-options when it is triggered"
4538
+ "default": "false",
4539
+ "description": "The current focus state"
4316
4540
  },
4317
4541
  {
4318
4542
  "kind": "field",
4319
- "name": "disabled",
4543
+ "name": "showPrefixOnly",
4320
4544
  "type": {
4321
4545
  "text": "boolean"
4322
4546
  },
4547
+ "privacy": "private",
4323
4548
  "default": "false",
4324
- "description": "Disables all options in the optgroup.",
4325
- "attribute": "disabled",
4326
- "reflects": true
4549
+ "description": "Only the prefix should be displayed"
4327
4550
  },
4328
4551
  {
4329
4552
  "kind": "field",
4330
- "name": "label",
4553
+ "name": "currentMarkedChild",
4331
4554
  "type": {
4332
- "text": "string"
4555
+ "text": "boolean"
4333
4556
  },
4334
- "default": "''",
4335
- "description": "The optgroups label. If you need to display HTML, use the `label` slot instead.",
4336
- "attribute": "label"
4557
+ "privacy": "private",
4558
+ "default": "false",
4559
+ "description": "A nested nav-item is marked as current"
4337
4560
  },
4338
4561
  {
4339
- "kind": "method",
4340
- "name": "handleDisabledChange"
4341
- }
4342
- ],
4343
- "attributes": [
4344
- {
4345
- "name": "disabled",
4562
+ "kind": "field",
4563
+ "name": "isMultiLine",
4346
4564
  "type": {
4347
4565
  "text": "boolean"
4348
4566
  },
4567
+ "privacy": "private",
4349
4568
  "default": "false",
4350
- "description": "Disables all options in the optgroup.",
4351
- "fieldName": "disabled"
4569
+ "description": "The content area is multiline"
4352
4570
  },
4353
4571
  {
4354
- "name": "label",
4572
+ "kind": "field",
4573
+ "name": "childrenSlot",
4355
4574
  "type": {
4356
- "text": "string"
4575
+ "text": "HTMLSlotElement"
4357
4576
  },
4358
- "default": "''",
4359
- "description": "The optgroups label. If you need to display HTML, use the `label` slot instead.",
4360
- "fieldName": "label"
4361
- }
4362
- ],
4363
- "superclass": {
4364
- "name": "SynergyElement",
4365
- "module": "/src/internal/synergy-element.js"
4366
- },
4367
- "summary": "The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.",
4368
- "tagNameWithoutPrefix": "optgroup",
4369
- "tagName": "syn-optgroup",
4370
- "customElement": true,
4371
- "jsDoc": "/**\n * @summary The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs\n * @status stable\n * @since 1.3.0\n *\n * @dependency syn-divider\n *\n * @slot - The given options. Must be `<syn-option>` elements.\n * @slot prefix - A presentational prefix icon or similar element.\n * @slot label - The label for the optgroup\n * @slot suffix - A presentational suffix icon or similar element.\n *\n * @csspart base - The component's base wrapper.\n * @csspart label-container - The container that wraps prefix, label and base\n * @csspart divider - The divider that is displayed above the content\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n * @csspart options - The container that wraps the <syn-option> elements.\n *\n * @cssproperty --display-divider - Display property of the divider. Defaults to \"block\"\n */",
4372
- "documentation": "https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs",
4373
- "status": "stable",
4374
- "since": "1.3.0",
4375
- "dependencies": [
4376
- "syn-divider"
4377
- ]
4378
- }
4379
- ],
4380
- "exports": [
4381
- {
4382
- "kind": "js",
4383
- "name": "default",
4384
- "declaration": {
4385
- "name": "SynOptgroup",
4386
- "module": "components/optgroup/optgroup.js"
4387
- }
4388
- }
4389
- ]
4390
- },
4391
- {
4392
- "kind": "javascript-module",
4393
- "path": "components/option/option.js",
4394
- "declarations": [
4395
- {
4396
- "kind": "class",
4397
- "description": "",
4398
- "name": "SynOption",
4399
- "cssParts": [
4400
- {
4401
- "description": "The checked icon, an `<syn-icon>` element.",
4402
- "name": "checked-icon"
4403
- },
4404
- {
4405
- "description": "The component's base wrapper.",
4406
- "name": "base"
4407
- },
4408
- {
4409
- "description": "The option's label.",
4410
- "name": "label"
4411
- },
4412
- {
4413
- "description": "The container that wraps the prefix.",
4414
- "name": "prefix"
4415
- },
4416
- {
4417
- "description": "The container that wraps the suffix.",
4418
- "name": "suffix"
4419
- }
4420
- ],
4421
- "slots": [
4422
- {
4423
- "description": "The option's label.",
4424
- "name": ""
4577
+ "description": "Reference to the children slot"
4425
4578
  },
4426
- {
4427
- "description": "Used to prepend an icon or similar element to the menu item.",
4428
- "name": "prefix"
4429
- },
4430
- {
4431
- "description": "Used to append an icon or similar element to the menu item.",
4432
- "name": "suffix"
4433
- }
4434
- ],
4435
- "members": [
4436
4579
  {
4437
4580
  "kind": "field",
4438
- "name": "dependencies",
4581
+ "name": "control",
4439
4582
  "type": {
4440
- "text": "object"
4583
+ "text": "HTMLButtonElement | HTMLLinkElement | HTMLElement"
4441
4584
  },
4442
- "static": true,
4443
- "default": "{ 'syn-icon': SynIcon }"
4585
+ "description": "Reference to the outermost button"
4444
4586
  },
4445
4587
  {
4446
4588
  "kind": "field",
4447
- "name": "cachedTextLabel",
4589
+ "name": "href",
4448
4590
  "type": {
4449
4591
  "text": "string"
4450
4592
  },
4451
- "privacy": "private"
4452
- },
4453
- {
4454
- "kind": "field",
4455
- "name": "localize",
4456
- "privacy": "private",
4457
- "readonly": true,
4458
- "default": "new LocalizeController(this)"
4593
+ "description": "The navigation item's href target.\nIf provided, the navigation item will use an anchor tag otherwise it will use a button tag.\n\nIf the 'children' slot is provided, the navigation item will ignore the 'href' and use\naccordion behavior.",
4594
+ "attribute": "href",
4595
+ "reflects": true
4459
4596
  },
4460
4597
  {
4461
4598
  "kind": "field",
4462
- "name": "defaultSlot",
4599
+ "name": "current",
4463
4600
  "type": {
4464
- "text": "HTMLSlotElement"
4465
- }
4601
+ "text": "boolean"
4602
+ },
4603
+ "default": "false",
4604
+ "attribute": "current",
4605
+ "reflects": true
4466
4606
  },
4467
4607
  {
4468
4608
  "kind": "field",
4469
- "name": "current",
4609
+ "name": "disabled",
4470
4610
  "type": {
4471
4611
  "text": "boolean"
4472
4612
  },
4473
- "default": "false"
4613
+ "default": "false",
4614
+ "description": "Disables the navigation item.",
4615
+ "attribute": "disabled",
4616
+ "reflects": true
4474
4617
  },
4475
4618
  {
4476
4619
  "kind": "field",
4477
- "name": "selected",
4620
+ "name": "horizontal",
4478
4621
  "type": {
4479
4622
  "text": "boolean"
4480
4623
  },
4481
- "default": "false"
4624
+ "default": "false",
4625
+ "description": "The navigation item's orientation.",
4626
+ "attribute": "horizontal",
4627
+ "reflects": true
4482
4628
  },
4483
4629
  {
4484
4630
  "kind": "field",
4485
- "name": "hasHover",
4631
+ "name": "chevron",
4486
4632
  "type": {
4487
4633
  "text": "boolean"
4488
4634
  },
4489
- "default": "false"
4635
+ "default": "false",
4636
+ "description": "Appends a chevron to the right side of a navigation item.\nOnly used if `horizontal` is false.",
4637
+ "attribute": "chevron",
4638
+ "reflects": true
4490
4639
  },
4491
4640
  {
4492
4641
  "kind": "field",
4493
- "name": "value",
4642
+ "name": "open",
4494
4643
  "type": {
4495
- "text": "string"
4644
+ "text": "boolean"
4496
4645
  },
4497
- "default": "''",
4498
- "description": "The option's value. When selected, the containing form control will receive this value. The value must be unique\nfrom other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\nmultiple values.",
4499
- "attribute": "value",
4646
+ "default": "false",
4647
+ "description": "Reflects HTML details element state and allows control from parent.\nOnly used if `horizontal` is false and `children` is defined.",
4648
+ "attribute": "open",
4500
4649
  "reflects": true
4501
4650
  },
4502
4651
  {
4503
4652
  "kind": "field",
4504
- "name": "disabled",
4653
+ "name": "divider",
4505
4654
  "type": {
4506
4655
  "text": "boolean"
4507
4656
  },
4508
4657
  "default": "false",
4509
- "description": "Draws the option in a disabled state, preventing selection.",
4510
- "attribute": "disabled",
4658
+ "description": "Toggle to true to show a divider above the element.\nOnly available when horizontal is false.",
4659
+ "attribute": "divider",
4511
4660
  "reflects": true
4512
4661
  },
4513
4662
  {
4514
4663
  "kind": "method",
4515
- "name": "handleDefaultSlotChange",
4664
+ "name": "isButton",
4665
+ "privacy": "private",
4666
+ "return": {
4667
+ "type": {
4668
+ "text": "boolean"
4669
+ }
4670
+ }
4671
+ },
4672
+ {
4673
+ "kind": "method",
4674
+ "name": "isLink",
4675
+ "privacy": "private",
4676
+ "return": {
4677
+ "type": {
4678
+ "text": "boolean"
4679
+ }
4680
+ }
4681
+ },
4682
+ {
4683
+ "kind": "method",
4684
+ "name": "isAccordion",
4685
+ "privacy": "private",
4686
+ "return": {
4687
+ "type": {
4688
+ "text": "boolean"
4689
+ }
4690
+ }
4691
+ },
4692
+ {
4693
+ "kind": "method",
4694
+ "name": "getNavItemChildren",
4695
+ "privacy": "private",
4696
+ "return": {
4697
+ "type": {
4698
+ "text": "SynNavItem[]"
4699
+ }
4700
+ },
4701
+ "parameters": [
4702
+ {
4703
+ "name": "childrenSlot",
4704
+ "type": {
4705
+ "text": "HTMLSlotElement"
4706
+ }
4707
+ }
4708
+ ]
4709
+ },
4710
+ {
4711
+ "kind": "method",
4712
+ "name": "getAllNestedNavItems",
4713
+ "privacy": "private",
4714
+ "return": {
4715
+ "type": {
4716
+ "text": "SynNavItem[]"
4717
+ }
4718
+ },
4719
+ "parameters": [
4720
+ {
4721
+ "name": "childrenSlot",
4722
+ "type": {
4723
+ "text": "HTMLSlotElement"
4724
+ }
4725
+ }
4726
+ ]
4727
+ },
4728
+ {
4729
+ "kind": "method",
4730
+ "name": "handleCurrentMarkedChild",
4516
4731
  "privacy": "private"
4517
4732
  },
4518
4733
  {
4519
4734
  "kind": "method",
4520
- "name": "handleMouseEnter",
4735
+ "name": "handleClickButton",
4736
+ "privacy": "private",
4737
+ "parameters": [
4738
+ {
4739
+ "name": "e",
4740
+ "type": {
4741
+ "text": "MouseEvent"
4742
+ }
4743
+ }
4744
+ ]
4745
+ },
4746
+ {
4747
+ "kind": "method",
4748
+ "name": "handleClickSummary",
4749
+ "privacy": "private",
4750
+ "parameters": [
4751
+ {
4752
+ "name": "e",
4753
+ "type": {
4754
+ "text": "MouseEvent"
4755
+ }
4756
+ }
4757
+ ]
4758
+ },
4759
+ {
4760
+ "kind": "method",
4761
+ "name": "hideDetails",
4521
4762
  "privacy": "private"
4522
4763
  },
4523
4764
  {
4524
4765
  "kind": "method",
4525
- "name": "handleMouseLeave",
4766
+ "name": "showDetails",
4526
4767
  "privacy": "private"
4527
4768
  },
4528
4769
  {
4529
4770
  "kind": "method",
4530
- "name": "handleDisabledChange"
4771
+ "name": "handleSlotChange",
4772
+ "privacy": "private",
4773
+ "description": "Automatically add the correct level of indentation for sub items if none is provided"
4531
4774
  },
4532
4775
  {
4533
4776
  "kind": "method",
4534
- "name": "handleSelectedChange"
4777
+ "name": "handleBlur",
4778
+ "privacy": "private"
4535
4779
  },
4536
4780
  {
4537
4781
  "kind": "method",
4538
- "name": "handleValueChange"
4782
+ "name": "handleFocus",
4783
+ "privacy": "private"
4539
4784
  },
4540
4785
  {
4541
4786
  "kind": "method",
4542
- "name": "getTextLabel",
4543
- "description": "Returns a plain text label based on the option's content."
4787
+ "name": "handleWidth",
4788
+ "privacy": "private",
4789
+ "parameters": [
4790
+ {
4791
+ "name": "entries",
4792
+ "type": {
4793
+ "text": "ResizeObserverEntry[]"
4794
+ }
4795
+ }
4796
+ ]
4797
+ },
4798
+ {
4799
+ "kind": "method",
4800
+ "name": "handleOpenChange"
4801
+ },
4802
+ {
4803
+ "kind": "method",
4804
+ "name": "blur",
4805
+ "description": "Removes focus from the button."
4806
+ },
4807
+ {
4808
+ "kind": "method",
4809
+ "name": "click",
4810
+ "description": "Simulates a click on the nav-items button, link or summary."
4811
+ },
4812
+ {
4813
+ "kind": "method",
4814
+ "name": "focus",
4815
+ "parameters": [
4816
+ {
4817
+ "name": "options",
4818
+ "optional": true,
4819
+ "type": {
4820
+ "text": "FocusOptions"
4821
+ }
4822
+ }
4823
+ ],
4824
+ "description": "Sets focus on the nav-item"
4825
+ }
4826
+ ],
4827
+ "events": [
4828
+ {
4829
+ "description": "Emitted when the navigation item: - has children, - and is clicked while HTML details are hidden.",
4830
+ "name": "syn-show",
4831
+ "reactName": "onSynShow",
4832
+ "eventName": "SynShowEvent"
4833
+ },
4834
+ {
4835
+ "description": "Emitted when the navigation item: - has children, - and is clicked while HTML details are shown.",
4836
+ "name": "syn-hide",
4837
+ "reactName": "onSynHide",
4838
+ "eventName": "SynHideEvent"
4839
+ },
4840
+ {
4841
+ "description": "Emitted when the button loses focus.",
4842
+ "name": "syn-blur",
4843
+ "reactName": "onSynBlur",
4844
+ "eventName": "SynBlurEvent"
4845
+ },
4846
+ {
4847
+ "description": "Emitted when the button gains focus.",
4848
+ "name": "syn-focus",
4849
+ "reactName": "onSynFocus",
4850
+ "eventName": "SynFocusEvent"
4544
4851
  }
4545
4852
  ],
4546
4853
  "attributes": [
4547
4854
  {
4548
- "name": "value",
4855
+ "name": "href",
4549
4856
  "type": {
4550
4857
  "text": "string"
4551
4858
  },
4552
- "default": "''",
4553
- "description": "The option's value. When selected, the containing form control will receive this value. The value must be unique\nfrom other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\nmultiple values.",
4554
- "fieldName": "value"
4859
+ "description": "The navigation item's href target.\nIf provided, the navigation item will use an anchor tag otherwise it will use a button tag.\n\nIf the 'children' slot is provided, the navigation item will ignore the 'href' and use\naccordion behavior.",
4860
+ "fieldName": "href"
4861
+ },
4862
+ {
4863
+ "name": "current",
4864
+ "type": {
4865
+ "text": "boolean"
4866
+ },
4867
+ "default": "false",
4868
+ "fieldName": "current"
4555
4869
  },
4556
4870
  {
4557
4871
  "name": "disabled",
@@ -4559,24 +4873,59 @@
4559
4873
  "text": "boolean"
4560
4874
  },
4561
4875
  "default": "false",
4562
- "description": "Draws the option in a disabled state, preventing selection.",
4876
+ "description": "Disables the navigation item.",
4563
4877
  "fieldName": "disabled"
4878
+ },
4879
+ {
4880
+ "name": "horizontal",
4881
+ "type": {
4882
+ "text": "boolean"
4883
+ },
4884
+ "default": "false",
4885
+ "description": "The navigation item's orientation.",
4886
+ "fieldName": "horizontal"
4887
+ },
4888
+ {
4889
+ "name": "chevron",
4890
+ "type": {
4891
+ "text": "boolean"
4892
+ },
4893
+ "default": "false",
4894
+ "description": "Appends a chevron to the right side of a navigation item.\nOnly used if `horizontal` is false.",
4895
+ "fieldName": "chevron"
4896
+ },
4897
+ {
4898
+ "name": "open",
4899
+ "type": {
4900
+ "text": "boolean"
4901
+ },
4902
+ "default": "false",
4903
+ "description": "Reflects HTML details element state and allows control from parent.\nOnly used if `horizontal` is false and `children` is defined.",
4904
+ "fieldName": "open"
4905
+ },
4906
+ {
4907
+ "name": "divider",
4908
+ "type": {
4909
+ "text": "boolean"
4910
+ },
4911
+ "default": "false",
4912
+ "description": "Toggle to true to show a divider above the element.\nOnly available when horizontal is false.",
4913
+ "fieldName": "divider"
4564
4914
  }
4565
4915
  ],
4566
4916
  "superclass": {
4567
4917
  "name": "SynergyElement",
4568
4918
  "module": "/src/internal/synergy-element.js"
4569
4919
  },
4570
- "summary": "Options define the selectable items within various form controls such as [select](/components/select).",
4571
- "tagNameWithoutPrefix": "option",
4572
- "tagName": "syn-option",
4920
+ "summary": "Flexible button / link component that can be used to quickly build navigations.\nTakes one of 3 forms:\n- button (default),\n- link (overrides button if a 'href' is provided),\n- or accordion (overrides all other if 'children' slot is defined).",
4921
+ "tagNameWithoutPrefix": "nav-item",
4922
+ "tagName": "syn-nav-item",
4573
4923
  "customElement": true,
4574
- "jsDoc": "/**\n * @summary Options define the selectable items within various form controls such as [select](/components/select).\n * @documentation https://synergy.style/components/option\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n *\n * @slot - The option'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 *\n * @csspart checked-icon - The checked icon, an `<syn-icon>` element.\n * @csspart base - The component's base wrapper.\n * @csspart label - The option's label.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n */",
4575
- "documentation": "https://synergy.style/components/option",
4924
+ "jsDoc": "/**\n * @summary Flexible button / link component that can be used to quickly build navigations.\n * Takes one of 3 forms:\n * - button (default),\n * - link (overrides button if a 'href' is provided),\n * - or accordion (overrides all other if 'children' slot is defined).\n *\n * @status stable\n * @since 1.14.0\n *\n * @dependency syn-divider\n *\n * @event syn-show - Emitted when the navigation item:\n * - has children,\n * - and is clicked while HTML details are hidden.\n *\n * @event syn-hide - Emitted when the navigation item:\n * - has children,\n * - and is clicked while HTML details are shown.\n *\n * @event syn-blur - Emitted when the button loses focus.\n * @event syn-focus - Emitted when the button gains focus.\n *\n * @slot - The navigation item's label.\n * @slot prefix - A presentational prefix icon or similar element.\n * @slot suffix - A presentational suffix icon or similar element.\n * @slot children - Slot used to provide nested child navigation elements.\n * If provided, details and summary elements will be used.\n * A chevron will be shown on the right side regardless of the chevron property.\n *\n * @csspart base - The component's base wrapper including children.\n * @csspart children - The wrapper that holds the children\n * @csspart content-wrapper - The component's content wrapper.\n * @csspart content - The component's content excluding children.\n * @csspart current-indicator - The indicator used when current is set to true\n * @csspart chevron - The container that wraps the chevron.\n * @csspart details - The details element rendered when there are children available\n * @csspart divider - The components optional top divider.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n *\n * @cssproperty --indentation - Numeric value, indicating the level the item is placed at.\n * @cssproperty --indentation-stepping - The amount of pixels each level will indent.\n * @cssproperty --display-children - Display property of the children. Defaults to \"contents\"\n */",
4576
4925
  "status": "stable",
4577
- "since": "2.0",
4926
+ "since": "1.14.0",
4578
4927
  "dependencies": [
4579
- "syn-icon"
4928
+ "syn-divider"
4580
4929
  ]
4581
4930
  }
4582
4931
  ],
@@ -4585,433 +4934,798 @@
4585
4934
  "kind": "js",
4586
4935
  "name": "default",
4587
4936
  "declaration": {
4588
- "name": "SynOption",
4589
- "module": "components/option/option.js"
4937
+ "name": "SynNavItem",
4938
+ "module": "components/nav-item/nav-item.js"
4590
4939
  }
4591
4940
  }
4592
4941
  ]
4593
4942
  },
4594
4943
  {
4595
4944
  "kind": "javascript-module",
4596
- "path": "components/popup/popup.js",
4945
+ "path": "components/optgroup/optgroup.js",
4597
4946
  "declarations": [
4598
4947
  {
4599
4948
  "kind": "class",
4600
4949
  "description": "",
4601
- "name": "SynPopup",
4950
+ "name": "SynOptgroup",
4602
4951
  "cssProperties": [
4603
4952
  {
4604
- "description": "The size of the arrow. Note that an arrow won't be shown unless the `arrow` attribute is used.",
4605
- "name": "--arrow-size",
4606
- "default": "6px"
4607
- },
4608
- {
4609
- "description": "The color of the arrow.",
4610
- "name": "--arrow-color",
4611
- "default": "var(--syn-color-neutral-0)"
4612
- },
4613
- {
4614
- "description": "A read-only custom property that determines the amount of width the popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only available when using `auto-size`.",
4615
- "name": "--auto-size-available-width"
4616
- },
4617
- {
4618
- "description": "A read-only custom property that determines the amount of height the popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only available when using `auto-size`.",
4619
- "name": "--auto-size-available-height"
4953
+ "description": "Display property of the divider. Defaults to \"block\"",
4954
+ "name": "--display-divider"
4620
4955
  }
4621
4956
  ],
4622
4957
  "cssParts": [
4623
4958
  {
4624
- "description": "The arrow's container. Avoid setting `top|bottom|left|right` properties, as these values are assigned dynamically as the popup moves. This is most useful for applying a background color to match the popup, and maybe a border or box shadow.",
4625
- "name": "arrow"
4959
+ "description": "The component's base wrapper.",
4960
+ "name": "base"
4626
4961
  },
4627
4962
  {
4628
- "description": "The popup's container. Useful for setting a background color, box shadow, etc.",
4629
- "name": "popup"
4963
+ "description": "The container that wraps prefix, label and base",
4964
+ "name": "label-container"
4630
4965
  },
4631
4966
  {
4632
- "description": "The hover bridge element. Only available when the `hover-bridge` option is enabled.",
4633
- "name": "hover-bridge"
4634
- }
4635
- ],
4636
- "slots": [
4967
+ "description": "The divider that is displayed above the content",
4968
+ "name": "divider"
4969
+ },
4637
4970
  {
4638
- "description": "The popup's content.",
4971
+ "description": "The container that wraps the prefix.",
4972
+ "name": "prefix"
4973
+ },
4974
+ {
4975
+ "description": "The container that wraps the suffix.",
4976
+ "name": "suffix"
4977
+ },
4978
+ {
4979
+ "description": "The container that wraps the <syn-option> elements.",
4980
+ "name": "options"
4981
+ }
4982
+ ],
4983
+ "slots": [
4984
+ {
4985
+ "description": "The given options. Must be `<syn-option>` elements.",
4639
4986
  "name": ""
4640
4987
  },
4641
4988
  {
4642
- "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can use the `anchor` attribute or property instead.",
4643
- "name": "anchor"
4989
+ "description": "A presentational prefix icon or similar element.",
4990
+ "name": "prefix"
4991
+ },
4992
+ {
4993
+ "description": "The label for the optgroup",
4994
+ "name": "label"
4995
+ },
4996
+ {
4997
+ "description": "A presentational suffix icon or similar element.",
4998
+ "name": "suffix"
4644
4999
  }
4645
5000
  ],
4646
5001
  "members": [
4647
5002
  {
4648
5003
  "kind": "field",
4649
- "name": "anchorEl",
5004
+ "name": "dependencies",
4650
5005
  "type": {
4651
- "text": "Element | VirtualElement | null"
5006
+ "text": "object"
4652
5007
  },
4653
- "privacy": "private"
5008
+ "static": true,
5009
+ "default": "{\n 'syn-divider': SynDivider,\n }"
4654
5010
  },
4655
5011
  {
4656
5012
  "kind": "field",
4657
- "name": "cleanup",
4658
- "type": {
4659
- "text": "ReturnType<typeof autoUpdate> | undefined"
4660
- },
4661
- "privacy": "private"
5013
+ "name": "hasSlotController",
5014
+ "privacy": "private",
5015
+ "readonly": true,
5016
+ "default": "new HasSlotController(this, '[default]', 'prefix', 'suffix', 'label')"
4662
5017
  },
4663
5018
  {
4664
5019
  "kind": "field",
4665
- "name": "popup",
5020
+ "name": "defaultSlot",
4666
5021
  "type": {
4667
- "text": "HTMLElement"
4668
- },
4669
- "description": "A reference to the internal popup container. Useful for animating and styling the popup with JavaScript."
5022
+ "text": "HTMLSlotElement"
5023
+ }
5024
+ },
5025
+ {
5026
+ "kind": "method",
5027
+ "name": "handleDisableOptions",
5028
+ "privacy": "private",
5029
+ "description": "Syncs the disabled prop for all slotted syn-options when it is triggered"
4670
5030
  },
4671
5031
  {
4672
5032
  "kind": "field",
4673
- "name": "arrowEl",
5033
+ "name": "disabled",
4674
5034
  "type": {
4675
- "text": "HTMLElement"
5035
+ "text": "boolean"
4676
5036
  },
4677
- "privacy": "private"
5037
+ "default": "false",
5038
+ "description": "Disables all options in the optgroup.",
5039
+ "attribute": "disabled",
5040
+ "reflects": true
4678
5041
  },
4679
5042
  {
4680
5043
  "kind": "field",
4681
- "name": "anchor",
5044
+ "name": "label",
4682
5045
  "type": {
4683
- "text": "Element | string | VirtualElement"
5046
+ "text": "string"
4684
5047
  },
4685
- "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
4686
- "attribute": "anchor"
5048
+ "default": "''",
5049
+ "description": "The optgroups label. If you need to display HTML, use the `label` slot instead.",
5050
+ "attribute": "label"
4687
5051
  },
4688
5052
  {
4689
- "kind": "field",
4690
- "name": "active",
5053
+ "kind": "method",
5054
+ "name": "handleDisabledChange"
5055
+ }
5056
+ ],
5057
+ "attributes": [
5058
+ {
5059
+ "name": "disabled",
4691
5060
  "type": {
4692
5061
  "text": "boolean"
4693
5062
  },
4694
5063
  "default": "false",
4695
- "description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
4696
- "attribute": "active",
4697
- "reflects": true
5064
+ "description": "Disables all options in the optgroup.",
5065
+ "fieldName": "disabled"
4698
5066
  },
4699
5067
  {
4700
- "kind": "field",
4701
- "name": "placement",
5068
+ "name": "label",
4702
5069
  "type": {
4703
- "text": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'"
5070
+ "text": "string"
4704
5071
  },
4705
- "default": "'top'",
4706
- "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
4707
- "attribute": "placement",
4708
- "reflects": true
5072
+ "default": "''",
5073
+ "description": "The optgroups label. If you need to display HTML, use the `label` slot instead.",
5074
+ "fieldName": "label"
5075
+ }
5076
+ ],
5077
+ "superclass": {
5078
+ "name": "SynergyElement",
5079
+ "module": "/src/internal/synergy-element.js"
5080
+ },
5081
+ "summary": "The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.",
5082
+ "tagNameWithoutPrefix": "optgroup",
5083
+ "tagName": "syn-optgroup",
5084
+ "customElement": true,
5085
+ "jsDoc": "/**\n * @summary The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs\n * @status stable\n * @since 1.3.0\n *\n * @dependency syn-divider\n *\n * @slot - The given options. Must be `<syn-option>` elements.\n * @slot prefix - A presentational prefix icon or similar element.\n * @slot label - The label for the optgroup\n * @slot suffix - A presentational suffix icon or similar element.\n *\n * @csspart base - The component's base wrapper.\n * @csspart label-container - The container that wraps prefix, label and base\n * @csspart divider - The divider that is displayed above the content\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n * @csspart options - The container that wraps the <syn-option> elements.\n *\n * @cssproperty --display-divider - Display property of the divider. Defaults to \"block\"\n */",
5086
+ "documentation": "https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs",
5087
+ "status": "stable",
5088
+ "since": "1.3.0",
5089
+ "dependencies": [
5090
+ "syn-divider"
5091
+ ]
5092
+ }
5093
+ ],
5094
+ "exports": [
5095
+ {
5096
+ "kind": "js",
5097
+ "name": "default",
5098
+ "declaration": {
5099
+ "name": "SynOptgroup",
5100
+ "module": "components/optgroup/optgroup.js"
5101
+ }
5102
+ }
5103
+ ]
5104
+ },
5105
+ {
5106
+ "kind": "javascript-module",
5107
+ "path": "components/option/option.js",
5108
+ "declarations": [
5109
+ {
5110
+ "kind": "class",
5111
+ "description": "",
5112
+ "name": "SynOption",
5113
+ "cssParts": [
5114
+ {
5115
+ "description": "The checked icon, an `<syn-icon>` element.",
5116
+ "name": "checked-icon"
5117
+ },
5118
+ {
5119
+ "description": "The component's base wrapper.",
5120
+ "name": "base"
5121
+ },
5122
+ {
5123
+ "description": "The option's label.",
5124
+ "name": "label"
5125
+ },
5126
+ {
5127
+ "description": "The container that wraps the prefix.",
5128
+ "name": "prefix"
5129
+ },
5130
+ {
5131
+ "description": "The container that wraps the suffix.",
5132
+ "name": "suffix"
5133
+ }
5134
+ ],
5135
+ "slots": [
5136
+ {
5137
+ "description": "The option's label.",
5138
+ "name": ""
4709
5139
  },
5140
+ {
5141
+ "description": "Used to prepend an icon or similar element to the menu item.",
5142
+ "name": "prefix"
5143
+ },
5144
+ {
5145
+ "description": "Used to append an icon or similar element to the menu item.",
5146
+ "name": "suffix"
5147
+ }
5148
+ ],
5149
+ "members": [
4710
5150
  {
4711
5151
  "kind": "field",
4712
- "name": "strategy",
5152
+ "name": "dependencies",
4713
5153
  "type": {
4714
- "text": "'absolute' | 'fixed'"
5154
+ "text": "object"
4715
5155
  },
4716
- "default": "'absolute'",
4717
- "description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
4718
- "attribute": "strategy",
4719
- "reflects": true
5156
+ "static": true,
5157
+ "default": "{ 'syn-icon': SynIcon }"
4720
5158
  },
4721
5159
  {
4722
5160
  "kind": "field",
4723
- "name": "distance",
5161
+ "name": "cachedTextLabel",
4724
5162
  "type": {
4725
- "text": "number"
5163
+ "text": "string"
4726
5164
  },
4727
- "default": "0",
4728
- "description": "The distance in pixels from which to offset the panel away from its anchor.",
4729
- "attribute": "distance"
5165
+ "privacy": "private"
4730
5166
  },
4731
5167
  {
4732
5168
  "kind": "field",
4733
- "name": "skidding",
4734
- "type": {
4735
- "text": "number"
4736
- },
4737
- "default": "0",
4738
- "description": "The distance in pixels from which to offset the panel along its anchor.",
4739
- "attribute": "skidding"
5169
+ "name": "localize",
5170
+ "privacy": "private",
5171
+ "readonly": true,
5172
+ "default": "new LocalizeController(this)"
4740
5173
  },
4741
5174
  {
4742
5175
  "kind": "field",
4743
- "name": "arrow",
5176
+ "name": "defaultSlot",
4744
5177
  "type": {
4745
- "text": "boolean"
4746
- },
4747
- "default": "false",
4748
- "description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
4749
- "attribute": "arrow"
5178
+ "text": "HTMLSlotElement"
5179
+ }
4750
5180
  },
4751
5181
  {
4752
5182
  "kind": "field",
4753
- "name": "arrowPlacement",
5183
+ "name": "current",
4754
5184
  "type": {
4755
- "text": "'start' | 'end' | 'center' | 'anchor'"
5185
+ "text": "boolean"
4756
5186
  },
4757
- "default": "'anchor'",
4758
- "description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
4759
- "attribute": "arrow-placement"
5187
+ "default": "false"
4760
5188
  },
4761
5189
  {
4762
5190
  "kind": "field",
4763
- "name": "arrowPadding",
5191
+ "name": "selected",
4764
5192
  "type": {
4765
- "text": "number"
5193
+ "text": "boolean"
4766
5194
  },
4767
- "default": "10",
4768
- "description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
4769
- "attribute": "arrow-padding"
5195
+ "default": "false"
4770
5196
  },
4771
5197
  {
4772
5198
  "kind": "field",
4773
- "name": "flip",
5199
+ "name": "hasHover",
4774
5200
  "type": {
4775
5201
  "text": "boolean"
4776
5202
  },
4777
- "default": "false",
4778
- "description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
4779
- "attribute": "flip"
5203
+ "default": "false"
4780
5204
  },
4781
5205
  {
4782
5206
  "kind": "field",
4783
- "name": "flipFallbackPlacements",
5207
+ "name": "value",
4784
5208
  "type": {
4785
5209
  "text": "string"
4786
5210
  },
4787
5211
  "default": "''",
4788
- "description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
4789
- "attribute": "flip-fallback-placements"
5212
+ "description": "The option's value. When selected, the containing form control will receive this value. The value must be unique\nfrom other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\nmultiple values.",
5213
+ "attribute": "value",
5214
+ "reflects": true
4790
5215
  },
4791
5216
  {
4792
5217
  "kind": "field",
4793
- "name": "flipFallbackStrategy",
5218
+ "name": "disabled",
4794
5219
  "type": {
4795
- "text": "'best-fit' | 'initial'"
5220
+ "text": "boolean"
4796
5221
  },
4797
- "default": "'best-fit'",
4798
- "description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
4799
- "attribute": "flip-fallback-strategy"
5222
+ "default": "false",
5223
+ "description": "Draws the option in a disabled state, preventing selection.",
5224
+ "attribute": "disabled",
5225
+ "reflects": true
4800
5226
  },
4801
5227
  {
4802
- "kind": "field",
4803
- "name": "flipBoundary",
4804
- "type": {
4805
- "text": "Element | Element[]"
4806
- },
4807
- "description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
4808
- "attribute": "flipBoundary"
5228
+ "kind": "method",
5229
+ "name": "handleDefaultSlotChange",
5230
+ "privacy": "private"
4809
5231
  },
4810
5232
  {
4811
- "kind": "field",
4812
- "name": "flipPadding",
5233
+ "kind": "method",
5234
+ "name": "handleMouseEnter",
5235
+ "privacy": "private"
5236
+ },
5237
+ {
5238
+ "kind": "method",
5239
+ "name": "handleMouseLeave",
5240
+ "privacy": "private"
5241
+ },
5242
+ {
5243
+ "kind": "method",
5244
+ "name": "handleDisabledChange"
5245
+ },
5246
+ {
5247
+ "kind": "method",
5248
+ "name": "handleSelectedChange"
5249
+ },
5250
+ {
5251
+ "kind": "method",
5252
+ "name": "handleValueChange"
5253
+ },
5254
+ {
5255
+ "kind": "method",
5256
+ "name": "getTextLabel",
5257
+ "description": "Returns a plain text label based on the option's content."
5258
+ }
5259
+ ],
5260
+ "attributes": [
5261
+ {
5262
+ "name": "value",
4813
5263
  "type": {
4814
- "text": "number"
5264
+ "text": "string"
4815
5265
  },
4816
- "default": "0",
4817
- "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
4818
- "attribute": "flip-padding"
5266
+ "default": "''",
5267
+ "description": "The option's value. When selected, the containing form control will receive this value. The value must be unique\nfrom other options in the same group. Values may not contain spaces, as spaces are used as delimiters when listing\nmultiple values.",
5268
+ "fieldName": "value"
4819
5269
  },
4820
5270
  {
4821
- "kind": "field",
4822
- "name": "shift",
5271
+ "name": "disabled",
4823
5272
  "type": {
4824
5273
  "text": "boolean"
4825
5274
  },
4826
5275
  "default": "false",
4827
- "description": "Moves the popup along the axis to keep it in view when clipped.",
4828
- "attribute": "shift"
5276
+ "description": "Draws the option in a disabled state, preventing selection.",
5277
+ "fieldName": "disabled"
5278
+ }
5279
+ ],
5280
+ "superclass": {
5281
+ "name": "SynergyElement",
5282
+ "module": "/src/internal/synergy-element.js"
5283
+ },
5284
+ "summary": "Options define the selectable items within various form controls such as [select](/components/select).",
5285
+ "tagNameWithoutPrefix": "option",
5286
+ "tagName": "syn-option",
5287
+ "customElement": true,
5288
+ "jsDoc": "/**\n * @summary Options define the selectable items within various form controls such as [select](/components/select).\n * @documentation https://synergy.style/components/option\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n *\n * @slot - The option'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 *\n * @csspart checked-icon - The checked icon, an `<syn-icon>` element.\n * @csspart base - The component's base wrapper.\n * @csspart label - The option's label.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n */",
5289
+ "documentation": "https://synergy.style/components/option",
5290
+ "status": "stable",
5291
+ "since": "2.0",
5292
+ "dependencies": [
5293
+ "syn-icon"
5294
+ ]
5295
+ }
5296
+ ],
5297
+ "exports": [
5298
+ {
5299
+ "kind": "js",
5300
+ "name": "default",
5301
+ "declaration": {
5302
+ "name": "SynOption",
5303
+ "module": "components/option/option.js"
5304
+ }
5305
+ }
5306
+ ]
5307
+ },
5308
+ {
5309
+ "kind": "javascript-module",
5310
+ "path": "components/popup/popup.js",
5311
+ "declarations": [
5312
+ {
5313
+ "kind": "class",
5314
+ "description": "",
5315
+ "name": "SynPopup",
5316
+ "cssProperties": [
5317
+ {
5318
+ "description": "The size of the arrow. Note that an arrow won't be shown unless the `arrow` attribute is used.",
5319
+ "name": "--arrow-size",
5320
+ "default": "6px"
4829
5321
  },
4830
5322
  {
4831
- "kind": "field",
4832
- "name": "shiftBoundary",
4833
- "type": {
4834
- "text": "Element | Element[]"
4835
- },
4836
- "description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
4837
- "attribute": "shiftBoundary"
5323
+ "description": "The color of the arrow.",
5324
+ "name": "--arrow-color",
5325
+ "default": "var(--syn-color-neutral-0)"
4838
5326
  },
4839
5327
  {
4840
- "kind": "field",
4841
- "name": "shiftPadding",
4842
- "type": {
4843
- "text": "number"
4844
- },
4845
- "default": "0",
4846
- "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
4847
- "attribute": "shift-padding"
5328
+ "description": "A read-only custom property that determines the amount of width the popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only available when using `auto-size`.",
5329
+ "name": "--auto-size-available-width"
4848
5330
  },
4849
5331
  {
4850
- "kind": "field",
4851
- "name": "autoSize",
4852
- "type": {
4853
- "text": "'horizontal' | 'vertical' | 'both'"
4854
- },
4855
- "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
4856
- "attribute": "auto-size"
5332
+ "description": "A read-only custom property that determines the amount of height the popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only available when using `auto-size`.",
5333
+ "name": "--auto-size-available-height"
5334
+ }
5335
+ ],
5336
+ "cssParts": [
5337
+ {
5338
+ "description": "The arrow's container. Avoid setting `top|bottom|left|right` properties, as these values are assigned dynamically as the popup moves. This is most useful for applying a background color to match the popup, and maybe a border or box shadow.",
5339
+ "name": "arrow"
5340
+ },
5341
+ {
5342
+ "description": "The popup's container. Useful for setting a background color, box shadow, etc.",
5343
+ "name": "popup"
5344
+ },
5345
+ {
5346
+ "description": "The hover bridge element. Only available when the `hover-bridge` option is enabled.",
5347
+ "name": "hover-bridge"
5348
+ }
5349
+ ],
5350
+ "slots": [
5351
+ {
5352
+ "description": "The popup's content.",
5353
+ "name": ""
4857
5354
  },
5355
+ {
5356
+ "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can use the `anchor` attribute or property instead.",
5357
+ "name": "anchor"
5358
+ }
5359
+ ],
5360
+ "members": [
4858
5361
  {
4859
5362
  "kind": "field",
4860
- "name": "sync",
5363
+ "name": "anchorEl",
4861
5364
  "type": {
4862
- "text": "'width' | 'height' | 'both'"
5365
+ "text": "Element | VirtualElement | null"
4863
5366
  },
4864
- "description": "Syncs the popup's width or height to that of the anchor element.",
4865
- "attribute": "sync"
5367
+ "privacy": "private"
4866
5368
  },
4867
5369
  {
4868
5370
  "kind": "field",
4869
- "name": "autoSizeBoundary",
5371
+ "name": "cleanup",
4870
5372
  "type": {
4871
- "text": "Element | Element[]"
5373
+ "text": "ReturnType<typeof autoUpdate> | undefined"
4872
5374
  },
4873
- "description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
4874
- "attribute": "autoSizeBoundary"
5375
+ "privacy": "private"
4875
5376
  },
4876
5377
  {
4877
5378
  "kind": "field",
4878
- "name": "autoSizePadding",
5379
+ "name": "popup",
4879
5380
  "type": {
4880
- "text": "number"
5381
+ "text": "HTMLElement"
4881
5382
  },
4882
- "default": "0",
4883
- "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
4884
- "attribute": "auto-size-padding"
5383
+ "description": "A reference to the internal popup container. Useful for animating and styling the popup with JavaScript."
4885
5384
  },
4886
5385
  {
4887
5386
  "kind": "field",
4888
- "name": "hoverBridge",
5387
+ "name": "arrowEl",
4889
5388
  "type": {
4890
- "text": "boolean"
5389
+ "text": "HTMLElement"
4891
5390
  },
4892
- "default": "false",
4893
- "description": "When a gap exists between the anchor and the popup element, this option will add a \"hover bridge\" that fills the\ngap using an invisible element. This makes listening for events such as `mouseenter` and `mouseleave` more sane\nbecause the pointer never technically leaves the element. The hover bridge will only be drawn when the popover is\nactive.",
4894
- "attribute": "hover-bridge"
4895
- },
4896
- {
4897
- "kind": "method",
4898
- "name": "handleAnchorChange",
4899
- "privacy": "private"
4900
- },
4901
- {
4902
- "kind": "method",
4903
- "name": "start",
4904
5391
  "privacy": "private"
4905
5392
  },
4906
- {
4907
- "kind": "method",
4908
- "name": "stop",
4909
- "privacy": "private",
4910
- "return": {
4911
- "type": {
4912
- "text": "Promise<void>"
4913
- }
4914
- }
4915
- },
4916
- {
4917
- "kind": "method",
4918
- "name": "reposition",
4919
- "description": "Forces the popup to recalculate and reposition itself."
4920
- },
4921
5393
  {
4922
5394
  "kind": "field",
4923
- "name": "updateHoverBridge",
4924
- "privacy": "private"
4925
- }
4926
- ],
4927
- "events": [
4928
- {
4929
- "description": "Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive operations in your listener or consider debouncing it.",
4930
- "name": "syn-reposition",
4931
- "reactName": "onSynReposition",
4932
- "eventName": "SynRepositionEvent"
4933
- }
4934
- ],
4935
- "attributes": [
4936
- {
4937
5395
  "name": "anchor",
4938
5396
  "type": {
4939
5397
  "text": "Element | string | VirtualElement"
4940
5398
  },
4941
5399
  "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
4942
- "fieldName": "anchor"
5400
+ "attribute": "anchor"
4943
5401
  },
4944
5402
  {
5403
+ "kind": "field",
4945
5404
  "name": "active",
4946
5405
  "type": {
4947
5406
  "text": "boolean"
4948
5407
  },
4949
5408
  "default": "false",
4950
5409
  "description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
4951
- "fieldName": "active"
5410
+ "attribute": "active",
5411
+ "reflects": true
4952
5412
  },
4953
5413
  {
5414
+ "kind": "field",
4954
5415
  "name": "placement",
4955
5416
  "type": {
4956
5417
  "text": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'"
4957
5418
  },
4958
5419
  "default": "'top'",
4959
5420
  "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
4960
- "fieldName": "placement"
5421
+ "attribute": "placement",
5422
+ "reflects": true
4961
5423
  },
4962
5424
  {
5425
+ "kind": "field",
4963
5426
  "name": "strategy",
4964
5427
  "type": {
4965
5428
  "text": "'absolute' | 'fixed'"
4966
5429
  },
4967
5430
  "default": "'absolute'",
4968
5431
  "description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
4969
- "fieldName": "strategy"
5432
+ "attribute": "strategy",
5433
+ "reflects": true
4970
5434
  },
4971
5435
  {
5436
+ "kind": "field",
4972
5437
  "name": "distance",
4973
5438
  "type": {
4974
5439
  "text": "number"
4975
5440
  },
4976
5441
  "default": "0",
4977
5442
  "description": "The distance in pixels from which to offset the panel away from its anchor.",
4978
- "fieldName": "distance"
5443
+ "attribute": "distance"
4979
5444
  },
4980
5445
  {
5446
+ "kind": "field",
4981
5447
  "name": "skidding",
4982
5448
  "type": {
4983
5449
  "text": "number"
4984
5450
  },
4985
5451
  "default": "0",
4986
5452
  "description": "The distance in pixels from which to offset the panel along its anchor.",
4987
- "fieldName": "skidding"
5453
+ "attribute": "skidding"
4988
5454
  },
4989
5455
  {
5456
+ "kind": "field",
4990
5457
  "name": "arrow",
4991
5458
  "type": {
4992
5459
  "text": "boolean"
4993
5460
  },
4994
5461
  "default": "false",
4995
5462
  "description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
4996
- "fieldName": "arrow"
5463
+ "attribute": "arrow"
4997
5464
  },
4998
5465
  {
4999
- "name": "arrow-placement",
5466
+ "kind": "field",
5467
+ "name": "arrowPlacement",
5000
5468
  "type": {
5001
5469
  "text": "'start' | 'end' | 'center' | 'anchor'"
5002
5470
  },
5003
5471
  "default": "'anchor'",
5004
5472
  "description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
5005
- "fieldName": "arrowPlacement"
5473
+ "attribute": "arrow-placement"
5006
5474
  },
5007
5475
  {
5008
- "name": "arrow-padding",
5476
+ "kind": "field",
5477
+ "name": "arrowPadding",
5009
5478
  "type": {
5010
5479
  "text": "number"
5011
5480
  },
5012
5481
  "default": "10",
5013
5482
  "description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
5014
- "fieldName": "arrowPadding"
5483
+ "attribute": "arrow-padding"
5484
+ },
5485
+ {
5486
+ "kind": "field",
5487
+ "name": "flip",
5488
+ "type": {
5489
+ "text": "boolean"
5490
+ },
5491
+ "default": "false",
5492
+ "description": "When set, placement of the popup will flip to the opposite site to keep it in view. You can use\n`flipFallbackPlacements` to further configure how the fallback placement is determined.",
5493
+ "attribute": "flip"
5494
+ },
5495
+ {
5496
+ "kind": "field",
5497
+ "name": "flipFallbackPlacements",
5498
+ "type": {
5499
+ "text": "string"
5500
+ },
5501
+ "default": "''",
5502
+ "description": "If the preferred placement doesn't fit, popup will be tested in these fallback placements until one fits. Must be a\nstring of any number of placements separated by a space, e.g. \"top bottom left\". If no placement fits, the flip\nfallback strategy will be used instead.",
5503
+ "attribute": "flip-fallback-placements"
5504
+ },
5505
+ {
5506
+ "kind": "field",
5507
+ "name": "flipFallbackStrategy",
5508
+ "type": {
5509
+ "text": "'best-fit' | 'initial'"
5510
+ },
5511
+ "default": "'best-fit'",
5512
+ "description": "When neither the preferred placement nor the fallback placements fit, this value will be used to determine whether\nthe popup should be positioned using the best available fit based on available space or as it was initially\npreferred.",
5513
+ "attribute": "flip-fallback-strategy"
5514
+ },
5515
+ {
5516
+ "kind": "field",
5517
+ "name": "flipBoundary",
5518
+ "type": {
5519
+ "text": "Element | Element[]"
5520
+ },
5521
+ "description": "The flip boundary describes clipping element(s) that overflow will be checked relative to when flipping. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
5522
+ "attribute": "flipBoundary"
5523
+ },
5524
+ {
5525
+ "kind": "field",
5526
+ "name": "flipPadding",
5527
+ "type": {
5528
+ "text": "number"
5529
+ },
5530
+ "default": "0",
5531
+ "description": "The amount of padding, in pixels, to exceed before the flip behavior will occur.",
5532
+ "attribute": "flip-padding"
5533
+ },
5534
+ {
5535
+ "kind": "field",
5536
+ "name": "shift",
5537
+ "type": {
5538
+ "text": "boolean"
5539
+ },
5540
+ "default": "false",
5541
+ "description": "Moves the popup along the axis to keep it in view when clipped.",
5542
+ "attribute": "shift"
5543
+ },
5544
+ {
5545
+ "kind": "field",
5546
+ "name": "shiftBoundary",
5547
+ "type": {
5548
+ "text": "Element | Element[]"
5549
+ },
5550
+ "description": "The shift boundary describes clipping element(s) that overflow will be checked relative to when shifting. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
5551
+ "attribute": "shiftBoundary"
5552
+ },
5553
+ {
5554
+ "kind": "field",
5555
+ "name": "shiftPadding",
5556
+ "type": {
5557
+ "text": "number"
5558
+ },
5559
+ "default": "0",
5560
+ "description": "The amount of padding, in pixels, to exceed before the shift behavior will occur.",
5561
+ "attribute": "shift-padding"
5562
+ },
5563
+ {
5564
+ "kind": "field",
5565
+ "name": "autoSize",
5566
+ "type": {
5567
+ "text": "'horizontal' | 'vertical' | 'both'"
5568
+ },
5569
+ "description": "When set, this will cause the popup to automatically resize itself to prevent it from overflowing.",
5570
+ "attribute": "auto-size"
5571
+ },
5572
+ {
5573
+ "kind": "field",
5574
+ "name": "sync",
5575
+ "type": {
5576
+ "text": "'width' | 'height' | 'both'"
5577
+ },
5578
+ "description": "Syncs the popup's width or height to that of the anchor element.",
5579
+ "attribute": "sync"
5580
+ },
5581
+ {
5582
+ "kind": "field",
5583
+ "name": "autoSizeBoundary",
5584
+ "type": {
5585
+ "text": "Element | Element[]"
5586
+ },
5587
+ "description": "The auto-size boundary describes clipping element(s) that overflow will be checked relative to when resizing. By\ndefault, the boundary includes overflow ancestors that will cause the element to be clipped. If needed, you can\nchange the boundary by passing a reference to one or more elements to this property.",
5588
+ "attribute": "autoSizeBoundary"
5589
+ },
5590
+ {
5591
+ "kind": "field",
5592
+ "name": "autoSizePadding",
5593
+ "type": {
5594
+ "text": "number"
5595
+ },
5596
+ "default": "0",
5597
+ "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
5598
+ "attribute": "auto-size-padding"
5599
+ },
5600
+ {
5601
+ "kind": "field",
5602
+ "name": "hoverBridge",
5603
+ "type": {
5604
+ "text": "boolean"
5605
+ },
5606
+ "default": "false",
5607
+ "description": "When a gap exists between the anchor and the popup element, this option will add a \"hover bridge\" that fills the\ngap using an invisible element. This makes listening for events such as `mouseenter` and `mouseleave` more sane\nbecause the pointer never technically leaves the element. The hover bridge will only be drawn when the popover is\nactive.",
5608
+ "attribute": "hover-bridge"
5609
+ },
5610
+ {
5611
+ "kind": "method",
5612
+ "name": "handleAnchorChange",
5613
+ "privacy": "private"
5614
+ },
5615
+ {
5616
+ "kind": "method",
5617
+ "name": "start",
5618
+ "privacy": "private"
5619
+ },
5620
+ {
5621
+ "kind": "method",
5622
+ "name": "stop",
5623
+ "privacy": "private",
5624
+ "return": {
5625
+ "type": {
5626
+ "text": "Promise<void>"
5627
+ }
5628
+ }
5629
+ },
5630
+ {
5631
+ "kind": "method",
5632
+ "name": "reposition",
5633
+ "description": "Forces the popup to recalculate and reposition itself."
5634
+ },
5635
+ {
5636
+ "kind": "field",
5637
+ "name": "updateHoverBridge",
5638
+ "privacy": "private"
5639
+ }
5640
+ ],
5641
+ "events": [
5642
+ {
5643
+ "description": "Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive operations in your listener or consider debouncing it.",
5644
+ "name": "syn-reposition",
5645
+ "reactName": "onSynReposition",
5646
+ "eventName": "SynRepositionEvent"
5647
+ }
5648
+ ],
5649
+ "attributes": [
5650
+ {
5651
+ "name": "anchor",
5652
+ "type": {
5653
+ "text": "Element | string | VirtualElement"
5654
+ },
5655
+ "description": "The element the popup will be anchored to. If the anchor lives outside of the popup, you can provide the anchor\nelement `id`, a DOM element reference, or a `VirtualElement`. If the anchor lives inside the popup, use the\n`anchor` slot instead.",
5656
+ "fieldName": "anchor"
5657
+ },
5658
+ {
5659
+ "name": "active",
5660
+ "type": {
5661
+ "text": "boolean"
5662
+ },
5663
+ "default": "false",
5664
+ "description": "Activates the positioning logic and shows the popup. When this attribute is removed, the positioning logic is torn\ndown and the popup will be hidden.",
5665
+ "fieldName": "active"
5666
+ },
5667
+ {
5668
+ "name": "placement",
5669
+ "type": {
5670
+ "text": "| 'top'\n | 'top-start'\n | 'top-end'\n | 'bottom'\n | 'bottom-start'\n | 'bottom-end'\n | 'right'\n | 'right-start'\n | 'right-end'\n | 'left'\n | 'left-start'\n | 'left-end'"
5671
+ },
5672
+ "default": "'top'",
5673
+ "description": "The preferred placement of the popup. Note that the actual placement will vary as configured to keep the\npanel inside of the viewport.",
5674
+ "fieldName": "placement"
5675
+ },
5676
+ {
5677
+ "name": "strategy",
5678
+ "type": {
5679
+ "text": "'absolute' | 'fixed'"
5680
+ },
5681
+ "default": "'absolute'",
5682
+ "description": "Determines how the popup is positioned. The `absolute` strategy works well in most cases, but if overflow is\nclipped, using a `fixed` position strategy can often workaround it.",
5683
+ "fieldName": "strategy"
5684
+ },
5685
+ {
5686
+ "name": "distance",
5687
+ "type": {
5688
+ "text": "number"
5689
+ },
5690
+ "default": "0",
5691
+ "description": "The distance in pixels from which to offset the panel away from its anchor.",
5692
+ "fieldName": "distance"
5693
+ },
5694
+ {
5695
+ "name": "skidding",
5696
+ "type": {
5697
+ "text": "number"
5698
+ },
5699
+ "default": "0",
5700
+ "description": "The distance in pixels from which to offset the panel along its anchor.",
5701
+ "fieldName": "skidding"
5702
+ },
5703
+ {
5704
+ "name": "arrow",
5705
+ "type": {
5706
+ "text": "boolean"
5707
+ },
5708
+ "default": "false",
5709
+ "description": "Attaches an arrow to the popup. The arrow's size and color can be customized using the `--arrow-size` and\n`--arrow-color` custom properties. For additional customizations, you can also target the arrow using\n`::part(arrow)` in your stylesheet.",
5710
+ "fieldName": "arrow"
5711
+ },
5712
+ {
5713
+ "name": "arrow-placement",
5714
+ "type": {
5715
+ "text": "'start' | 'end' | 'center' | 'anchor'"
5716
+ },
5717
+ "default": "'anchor'",
5718
+ "description": "The placement of the arrow. The default is `anchor`, which will align the arrow as close to the center of the\nanchor as possible, considering available space and `arrow-padding`. A value of `start`, `end`, or `center` will\nalign the arrow to the start, end, or center of the popover instead.",
5719
+ "fieldName": "arrowPlacement"
5720
+ },
5721
+ {
5722
+ "name": "arrow-padding",
5723
+ "type": {
5724
+ "text": "number"
5725
+ },
5726
+ "default": "10",
5727
+ "description": "The amount of padding between the arrow and the edges of the popup. If the popup has a border-radius, for example,\nthis will prevent it from overflowing the corners.",
5728
+ "fieldName": "arrowPadding"
5015
5729
  },
5016
5730
  {
5017
5731
  "name": "flip",
@@ -5153,32 +5867,257 @@
5153
5867
  },
5154
5868
  {
5155
5869
  "kind": "javascript-module",
5156
- "path": "components/radio/radio.js",
5870
+ "path": "components/prio-nav/prio-nav.js",
5157
5871
  "declarations": [
5158
5872
  {
5159
5873
  "kind": "class",
5160
5874
  "description": "",
5161
- "name": "SynRadio",
5875
+ "name": "SynPrioNav",
5162
5876
  "cssParts": [
5163
5877
  {
5164
5878
  "description": "The component's base wrapper.",
5165
5879
  "name": "base"
5166
5880
  },
5167
5881
  {
5168
- "description": "The circular container that wraps the radio's checked state.",
5169
- "name": "control"
5882
+ "description": "The wrapper around the priority menu",
5883
+ "name": "priority-menu"
5170
5884
  },
5171
5885
  {
5172
- "description": "The radio control when the radio is checked.",
5173
- "name": "control--checked"
5886
+ "description": "The navigation item for the priority menu",
5887
+ "name": "priority-menu-nav-item"
5174
5888
  },
5175
5889
  {
5176
- "description": "The checked icon, an `<syn-icon>` element.",
5177
- "name": "checked-icon"
5890
+ "description": "The label for the priority menu",
5891
+ "name": "priority-menu-label"
5178
5892
  },
5179
5893
  {
5180
- "description": "The container that wraps the radio's label.",
5181
- "name": "label"
5894
+ "description": "The icon for the priority menu",
5895
+ "name": "priority-menu-icon"
5896
+ },
5897
+ {
5898
+ "description": "The container for the shifted navigation items, if there is not enough space.",
5899
+ "name": "priority-menu-container"
5900
+ }
5901
+ ],
5902
+ "slots": [
5903
+ {
5904
+ "description": "The given navigation items. Must be horizontal `<syn-nav-item>`s or have a role of \"menuitem\"",
5905
+ "name": ""
5906
+ }
5907
+ ],
5908
+ "members": [
5909
+ {
5910
+ "kind": "field",
5911
+ "name": "dependencies",
5912
+ "type": {
5913
+ "text": "object"
5914
+ },
5915
+ "static": true,
5916
+ "default": "{\n 'syn-dropdown': SynDropdown,\n 'syn-icon': SynIcon,\n 'syn-menu': SynMenu,\n 'syn-nav-item': SynNavItem,\n }"
5917
+ },
5918
+ {
5919
+ "kind": "field",
5920
+ "name": "resizeObserver",
5921
+ "type": {
5922
+ "text": "ResizeObserver"
5923
+ },
5924
+ "privacy": "private",
5925
+ "description": "Internal resize observer"
5926
+ },
5927
+ {
5928
+ "kind": "field",
5929
+ "name": "defaultSlot",
5930
+ "type": {
5931
+ "text": "HTMLSlotElement"
5932
+ },
5933
+ "privacy": "private",
5934
+ "description": "Reference to the rendered children slot"
5935
+ },
5936
+ {
5937
+ "kind": "field",
5938
+ "name": "menuSlot",
5939
+ "type": {
5940
+ "text": "HTMLSlotElement"
5941
+ },
5942
+ "privacy": "private",
5943
+ "description": "Reference to the slot where priority menu items are placed"
5944
+ },
5945
+ {
5946
+ "kind": "field",
5947
+ "name": "horizontalNav",
5948
+ "type": {
5949
+ "text": "HTMLDivElement"
5950
+ },
5951
+ "privacy": "private",
5952
+ "description": "The wrapper that holds the horizontal navigation items"
5953
+ },
5954
+ {
5955
+ "kind": "field",
5956
+ "name": "priorityMenu",
5957
+ "type": {
5958
+ "text": "SynDropdown"
5959
+ },
5960
+ "privacy": "private",
5961
+ "description": "The priority menu dropdown"
5962
+ },
5963
+ {
5964
+ "kind": "field",
5965
+ "name": "priorityMenuLabel",
5966
+ "type": {
5967
+ "text": "string"
5968
+ },
5969
+ "default": "'Menu'",
5970
+ "description": "The components priority menu label.\nThis will be shown after the priority menu 3 dots link",
5971
+ "attribute": "priority-menu-label"
5972
+ },
5973
+ {
5974
+ "kind": "field",
5975
+ "name": "itemPositionsCached",
5976
+ "type": {
5977
+ "text": "boolean"
5978
+ },
5979
+ "privacy": "private",
5980
+ "default": "false",
5981
+ "description": "Internal state reflecting if the item positions have been cached"
5982
+ },
5983
+ {
5984
+ "kind": "field",
5985
+ "name": "amountOfNavItems",
5986
+ "type": {
5987
+ "text": "number"
5988
+ },
5989
+ "privacy": "private",
5990
+ "default": "0",
5991
+ "description": "The amount of nav items that are currently slotted"
5992
+ },
5993
+ {
5994
+ "kind": "field",
5995
+ "name": "amountOfVisibleItems",
5996
+ "type": {
5997
+ "text": "number"
5998
+ },
5999
+ "privacy": "private",
6000
+ "default": "0",
6001
+ "description": "The amount of items that are currently visible"
6002
+ },
6003
+ {
6004
+ "kind": "field",
6005
+ "name": "hasItemsInDropdown",
6006
+ "type": {
6007
+ "text": "boolean"
6008
+ },
6009
+ "privacy": "private",
6010
+ "default": "false",
6011
+ "description": "Internal state reflecting if there are items in the priority menu"
6012
+ },
6013
+ {
6014
+ "kind": "method",
6015
+ "name": "getSlottedNavItems",
6016
+ "privacy": "private",
6017
+ "description": "Get a list of all slotted `<syn-nav-item />` elements\nthat are either in the main slot or the priority menu slot"
6018
+ },
6019
+ {
6020
+ "kind": "method",
6021
+ "name": "cacheItemPositions",
6022
+ "privacy": "private",
6023
+ "parameters": [
6024
+ {
6025
+ "name": "items",
6026
+ "type": {
6027
+ "text": "SynNavItem[]"
6028
+ },
6029
+ "description": "The items to cache the position for"
6030
+ }
6031
+ ],
6032
+ "description": "Cache the items right offset position to make faster checks placement into priority menu"
6033
+ },
6034
+ {
6035
+ "kind": "method",
6036
+ "name": "handlePriorityMenu",
6037
+ "privacy": "private",
6038
+ "description": "Determines which items should be shown or hidden, depending on the current width"
6039
+ },
6040
+ {
6041
+ "kind": "method",
6042
+ "name": "renderPriorityMenu",
6043
+ "privacy": "private"
6044
+ },
6045
+ {
6046
+ "kind": "method",
6047
+ "name": "slotChange",
6048
+ "privacy": "private"
6049
+ }
6050
+ ],
6051
+ "attributes": [
6052
+ {
6053
+ "name": "priority-menu-label",
6054
+ "type": {
6055
+ "text": "string"
6056
+ },
6057
+ "default": "'Menu'",
6058
+ "description": "The components priority menu label.\nThis will be shown after the priority menu 3 dots link",
6059
+ "fieldName": "priorityMenuLabel"
6060
+ }
6061
+ ],
6062
+ "superclass": {
6063
+ "name": "SynergyElement",
6064
+ "module": "/src/internal/synergy-element.js"
6065
+ },
6066
+ "summary": "The `<syn-prio-nav />` element provides a generic navigation bar\nthat can be used to group multiple navigation items (usually horizontal `<syn-nav-item />`s)\ntogether. It will automatically group all items not visible in the viewport into a custom\npriority menu.",
6067
+ "tagNameWithoutPrefix": "prio-nav",
6068
+ "tagName": "syn-prio-nav",
6069
+ "customElement": true,
6070
+ "jsDoc": "/**\n * @summary The `<syn-prio-nav />` element provides a generic navigation bar\n * that can be used to group multiple navigation items (usually horizontal `<syn-nav-item />`s)\n * together. It will automatically group all items not visible in the viewport into a custom\n * priority menu.\n *\n * @example\n * <syn-prio-nav>\n * <syn-nav-item current horizontal>Item 1</syn-nav-item>\n * <button role=\"menuitem\">Item 2 (custom)</button>\n * <syn-nav-item horizontal>Item 3</syn-nav-item>\n * </syn-prio-nav>\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-prio-nav--docs\n * @status stable\n * @since 1.14.0\n *\n * @dependency syn-dropdown\n * @dependency syn-icon\n * @dependency syn-menu\n * @dependency syn-nav-item\n *\n * @slot - The given navigation items. Must be horizontal `<syn-nav-item>`s\n * or have a role of \"menuitem\"\n *\n * @csspart base - The component's base wrapper.\n * @csspart priority-menu - The wrapper around the priority menu\n * @csspart priority-menu-nav-item - The navigation item for the priority menu\n * @csspart priority-menu-label - The label for the priority menu\n * @csspart priority-menu-icon - The icon for the priority menu\n * @csspart priority-menu-container - The container for the shifted navigation items,\n * if there is not enough space.\n *\n */",
6071
+ "documentation": "https://synergy-design-system.github.io/?path=/docs/components-syn-prio-nav--docs",
6072
+ "status": "stable",
6073
+ "since": "1.14.0",
6074
+ "dependencies": [
6075
+ "syn-dropdown",
6076
+ "syn-icon",
6077
+ "syn-menu",
6078
+ "syn-nav-item"
6079
+ ]
6080
+ }
6081
+ ],
6082
+ "exports": [
6083
+ {
6084
+ "kind": "js",
6085
+ "name": "default",
6086
+ "declaration": {
6087
+ "name": "SynPrioNav",
6088
+ "module": "components/prio-nav/prio-nav.js"
6089
+ }
6090
+ }
6091
+ ]
6092
+ },
6093
+ {
6094
+ "kind": "javascript-module",
6095
+ "path": "components/radio/radio.js",
6096
+ "declarations": [
6097
+ {
6098
+ "kind": "class",
6099
+ "description": "",
6100
+ "name": "SynRadio",
6101
+ "cssParts": [
6102
+ {
6103
+ "description": "The component's base wrapper.",
6104
+ "name": "base"
6105
+ },
6106
+ {
6107
+ "description": "The circular container that wraps the radio's checked state.",
6108
+ "name": "control"
6109
+ },
6110
+ {
6111
+ "description": "The radio control when the radio is checked.",
6112
+ "name": "control--checked"
6113
+ },
6114
+ {
6115
+ "description": "The checked icon, an `<syn-icon>` element.",
6116
+ "name": "checked-icon"
6117
+ },
6118
+ {
6119
+ "description": "The container that wraps the radio's label.",
6120
+ "name": "label"
5182
6121
  }
5183
6122
  ],
5184
6123
  "slots": [
@@ -6613,315 +7552,655 @@
6613
7552
  },
6614
7553
  {
6615
7554
  "kind": "method",
6616
- "name": "handleInvalid",
7555
+ "name": "handleInvalid",
7556
+ "privacy": "private",
7557
+ "parameters": [
7558
+ {
7559
+ "name": "event",
7560
+ "type": {
7561
+ "text": "Event"
7562
+ }
7563
+ }
7564
+ ]
7565
+ },
7566
+ {
7567
+ "kind": "method",
7568
+ "name": "handleDisabledChange"
7569
+ },
7570
+ {
7571
+ "kind": "method",
7572
+ "name": "handleValueChange"
7573
+ },
7574
+ {
7575
+ "kind": "method",
7576
+ "name": "handleOpenChange"
7577
+ },
7578
+ {
7579
+ "kind": "method",
7580
+ "name": "show",
7581
+ "description": "Shows the listbox."
7582
+ },
7583
+ {
7584
+ "kind": "method",
7585
+ "name": "hide",
7586
+ "description": "Hides the listbox."
7587
+ },
7588
+ {
7589
+ "kind": "method",
7590
+ "name": "checkValidity",
7591
+ "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid."
7592
+ },
7593
+ {
7594
+ "kind": "method",
7595
+ "name": "getForm",
7596
+ "return": {
7597
+ "type": {
7598
+ "text": "HTMLFormElement | null"
7599
+ }
7600
+ },
7601
+ "description": "Gets the associated form, if one exists."
7602
+ },
7603
+ {
7604
+ "kind": "method",
7605
+ "name": "reportValidity",
7606
+ "description": "Checks for validity and shows the browser's validation message if the control is invalid."
7607
+ },
7608
+ {
7609
+ "kind": "method",
7610
+ "name": "setCustomValidity",
7611
+ "parameters": [
7612
+ {
7613
+ "name": "message",
7614
+ "type": {
7615
+ "text": "string"
7616
+ }
7617
+ }
7618
+ ],
7619
+ "description": "Sets a custom validation message. Pass an empty string to restore validity."
7620
+ },
7621
+ {
7622
+ "kind": "method",
7623
+ "name": "focus",
7624
+ "parameters": [
7625
+ {
7626
+ "name": "options",
7627
+ "optional": true,
7628
+ "type": {
7629
+ "text": "FocusOptions"
7630
+ }
7631
+ }
7632
+ ],
7633
+ "description": "Sets focus on the control."
7634
+ },
7635
+ {
7636
+ "kind": "method",
7637
+ "name": "blur",
7638
+ "description": "Removes focus from the control."
7639
+ }
7640
+ ],
7641
+ "events": [
7642
+ {
7643
+ "description": "Emitted when the control's value changes.",
7644
+ "name": "syn-change",
7645
+ "reactName": "onSynChange",
7646
+ "eventName": "SynChangeEvent"
7647
+ },
7648
+ {
7649
+ "description": "Emitted when the control's value is cleared.",
7650
+ "name": "syn-clear",
7651
+ "reactName": "onSynClear",
7652
+ "eventName": "SynClearEvent"
7653
+ },
7654
+ {
7655
+ "description": "Emitted when the control receives input.",
7656
+ "name": "syn-input",
7657
+ "reactName": "onSynInput",
7658
+ "eventName": "SynInputEvent"
7659
+ },
7660
+ {
7661
+ "description": "Emitted when the control gains focus.",
7662
+ "name": "syn-focus",
7663
+ "reactName": "onSynFocus",
7664
+ "eventName": "SynFocusEvent"
7665
+ },
7666
+ {
7667
+ "description": "Emitted when the control loses focus.",
7668
+ "name": "syn-blur",
7669
+ "reactName": "onSynBlur",
7670
+ "eventName": "SynBlurEvent"
7671
+ },
7672
+ {
7673
+ "description": "Emitted when the select's menu opens.",
7674
+ "name": "syn-show",
7675
+ "reactName": "onSynShow",
7676
+ "eventName": "SynShowEvent"
7677
+ },
7678
+ {
7679
+ "description": "Emitted after the select's menu opens and all animations are complete.",
7680
+ "name": "syn-after-show",
7681
+ "reactName": "onSynAfterShow",
7682
+ "eventName": "SynAfterShowEvent"
7683
+ },
7684
+ {
7685
+ "description": "Emitted when the select's menu closes.",
7686
+ "name": "syn-hide",
7687
+ "reactName": "onSynHide",
7688
+ "eventName": "SynHideEvent"
7689
+ },
7690
+ {
7691
+ "description": "Emitted after the select's menu closes and all animations are complete.",
7692
+ "name": "syn-after-hide",
7693
+ "reactName": "onSynAfterHide",
7694
+ "eventName": "SynAfterHideEvent"
7695
+ },
7696
+ {
7697
+ "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied.",
7698
+ "name": "syn-invalid",
7699
+ "reactName": "onSynInvalid",
7700
+ "eventName": "SynInvalidEvent"
7701
+ }
7702
+ ],
7703
+ "attributes": [
7704
+ {
7705
+ "name": "name",
7706
+ "type": {
7707
+ "text": "string"
7708
+ },
7709
+ "default": "''",
7710
+ "description": "The name of the select, submitted as a name/value pair with form data.",
7711
+ "fieldName": "name"
7712
+ },
7713
+ {
7714
+ "name": "value",
7715
+ "type": {
7716
+ "text": "string | string[]"
7717
+ },
7718
+ "default": "''",
7719
+ "description": "The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue attribute will be a space-delimited list of values based on the options selected, and the value property will\nbe an array. **For this reason, values must not contain spaces.**",
7720
+ "fieldName": "value"
7721
+ },
7722
+ {
7723
+ "name": "size",
7724
+ "type": {
7725
+ "text": "'small' | 'medium' | 'large'"
7726
+ },
7727
+ "default": "'medium'",
7728
+ "description": "The select's size.",
7729
+ "fieldName": "size"
7730
+ },
7731
+ {
7732
+ "name": "placeholder",
7733
+ "type": {
7734
+ "text": "string"
7735
+ },
7736
+ "default": "''",
7737
+ "description": "Placeholder text to show as a hint when the select is empty.",
7738
+ "fieldName": "placeholder"
7739
+ },
7740
+ {
7741
+ "name": "multiple",
7742
+ "type": {
7743
+ "text": "boolean"
7744
+ },
7745
+ "default": "false",
7746
+ "description": "Allows more than one option to be selected.",
7747
+ "fieldName": "multiple"
7748
+ },
7749
+ {
7750
+ "name": "max-options-visible",
7751
+ "type": {
7752
+ "text": "number"
7753
+ },
7754
+ "default": "3",
7755
+ "description": "The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.",
7756
+ "fieldName": "maxOptionsVisible"
7757
+ },
7758
+ {
7759
+ "name": "disabled",
7760
+ "type": {
7761
+ "text": "boolean"
7762
+ },
7763
+ "default": "false",
7764
+ "description": "Disables the select control.",
7765
+ "fieldName": "disabled"
7766
+ },
7767
+ {
7768
+ "name": "clearable",
7769
+ "type": {
7770
+ "text": "boolean"
7771
+ },
7772
+ "default": "false",
7773
+ "description": "Adds a clear button when the select is not empty.",
7774
+ "fieldName": "clearable"
7775
+ },
7776
+ {
7777
+ "name": "open",
7778
+ "type": {
7779
+ "text": "boolean"
7780
+ },
7781
+ "default": "false",
7782
+ "description": "Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.",
7783
+ "fieldName": "open"
7784
+ },
7785
+ {
7786
+ "name": "hoist",
7787
+ "type": {
7788
+ "text": "boolean"
7789
+ },
7790
+ "default": "false",
7791
+ "description": "Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
7792
+ "fieldName": "hoist"
7793
+ },
7794
+ {
7795
+ "name": "label",
7796
+ "type": {
7797
+ "text": "string"
7798
+ },
7799
+ "default": "''",
7800
+ "description": "The select's label. If you need to display HTML, use the `label` slot instead.",
7801
+ "fieldName": "label"
7802
+ },
7803
+ {
7804
+ "name": "placement",
7805
+ "type": {
7806
+ "text": "'top' | 'bottom'"
7807
+ },
7808
+ "default": "'bottom'",
7809
+ "description": "The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.",
7810
+ "fieldName": "placement"
7811
+ },
7812
+ {
7813
+ "name": "help-text",
7814
+ "type": {
7815
+ "text": "string"
7816
+ },
7817
+ "default": "''",
7818
+ "description": "The select's help text. If you need to display HTML, use the `help-text` slot instead.",
7819
+ "fieldName": "helpText"
7820
+ },
7821
+ {
7822
+ "name": "form",
7823
+ "type": {
7824
+ "text": "string"
7825
+ },
7826
+ "default": "''",
7827
+ "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
7828
+ "fieldName": "form"
7829
+ },
7830
+ {
7831
+ "name": "required",
7832
+ "type": {
7833
+ "text": "boolean"
7834
+ },
7835
+ "default": "false",
7836
+ "description": "The select's required attribute.",
7837
+ "fieldName": "required"
7838
+ },
7839
+ {
7840
+ "name": "getTag",
7841
+ "type": {
7842
+ "text": "(option: SynOption, index: number) => TemplateResult | string | HTMLElement"
7843
+ },
7844
+ "description": "A function that customizes the tags to be rendered when multiple=true. The first argument is the option, the second\nis the current tag's index. The function should return either a Lit TemplateResult or a string containing trusted HTML of the symbol to render at\nthe specified value.",
7845
+ "fieldName": "getTag"
7846
+ }
7847
+ ],
7848
+ "superclass": {
7849
+ "name": "SynergyElement",
7850
+ "module": "/src/internal/synergy-element.js"
7851
+ },
7852
+ "summary": "Selects allow you to choose items from a menu of predefined options.",
7853
+ "tagNameWithoutPrefix": "select",
7854
+ "tagName": "syn-select",
7855
+ "customElement": true,
7856
+ "jsDoc": "/**\n * @summary Selects allow you to choose items from a menu of predefined options.\n * @documentation https://synergy.style/components/select\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n * @dependency syn-popup\n * @dependency syn-tag\n *\n * @slot - The listbox options. Must be `<syn-option>` elements. You can use `<syn-divider>` to group items visually.\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event syn-change - Emitted when the control's value changes.\n * @event syn-clear - Emitted when the control's value is cleared.\n * @event syn-input - Emitted when the control receives input.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-show - Emitted when the select's menu opens.\n * @event syn-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event syn-hide - Emitted when the select's menu closes.\n * @event syn-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiselect` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n */",
7857
+ "documentation": "https://synergy.style/components/select",
7858
+ "status": "stable",
7859
+ "since": "2.0",
7860
+ "dependencies": [
7861
+ "syn-icon",
7862
+ "syn-popup",
7863
+ "syn-tag"
7864
+ ]
7865
+ }
7866
+ ],
7867
+ "exports": [
7868
+ {
7869
+ "kind": "js",
7870
+ "name": "default",
7871
+ "declaration": {
7872
+ "name": "SynSelect",
7873
+ "module": "components/select/select.js"
7874
+ }
7875
+ }
7876
+ ]
7877
+ },
7878
+ {
7879
+ "kind": "javascript-module",
7880
+ "path": "components/side-nav/side-nav.js",
7881
+ "declarations": [
7882
+ {
7883
+ "kind": "class",
7884
+ "description": "",
7885
+ "name": "SynSideNav",
7886
+ "cssProperties": [
7887
+ {
7888
+ "description": "The width of the side-nav if in open state",
7889
+ "name": "--side-nav-open-width"
7890
+ },
7891
+ {
7892
+ "description": "The width of the side-nav if in rail mode without open",
7893
+ "name": "--side-nav-rail-width"
7894
+ }
7895
+ ],
7896
+ "cssParts": [
7897
+ {
7898
+ "description": "The components base wrapper",
7899
+ "name": "base"
7900
+ },
7901
+ {
7902
+ "description": "The drawer that is used under the hood for creating the side-nav",
7903
+ "name": "drawer"
7904
+ },
7905
+ {
7906
+ "description": "The components main content container",
7907
+ "name": "content-container"
7908
+ },
7909
+ {
7910
+ "description": "The components main content",
7911
+ "name": "content"
7912
+ },
7913
+ {
7914
+ "description": "The components footer content container",
7915
+ "name": "footer-container"
7916
+ },
7917
+ {
7918
+ "description": "The components footer divider",
7919
+ "name": "footer-divider"
7920
+ },
7921
+ {
7922
+ "description": "The components footer content",
7923
+ "name": "footer"
7924
+ },
7925
+ {
7926
+ "description": "The overlay that covers the screen behind the side-nav.",
7927
+ "name": "overlay"
7928
+ }
7929
+ ],
7930
+ "slots": [
7931
+ {
7932
+ "description": "The main content of the side-nav. Used for <syn-nav-item /> elements.",
7933
+ "name": ""
7934
+ },
7935
+ {
7936
+ "description": "The footer content of the side-nav. Used for <syn-nav-item /> elements. Please avoid having to many nav-items as it can massively influence the user experience.",
7937
+ "name": "footer"
7938
+ }
7939
+ ],
7940
+ "members": [
7941
+ {
7942
+ "kind": "field",
7943
+ "name": "dependencies",
7944
+ "type": {
7945
+ "text": "object"
7946
+ },
7947
+ "static": true,
7948
+ "default": "{\n 'syn-divider': SynDivider,\n 'syn-drawer': SynDrawer,\n }"
7949
+ },
7950
+ {
7951
+ "kind": "field",
7952
+ "name": "hasSlotController",
7953
+ "privacy": "private",
7954
+ "readonly": true,
7955
+ "default": "new HasSlotController(this, '[default]', 'footer')"
7956
+ },
7957
+ {
7958
+ "kind": "field",
7959
+ "name": "localize",
7960
+ "privacy": "private",
7961
+ "readonly": true,
7962
+ "default": "new LocalizeController(this)"
7963
+ },
7964
+ {
7965
+ "kind": "field",
7966
+ "name": "timeout",
7967
+ "type": {
7968
+ "text": "NodeJS.Timeout"
7969
+ },
7970
+ "privacy": "private"
7971
+ },
7972
+ {
7973
+ "kind": "field",
7974
+ "name": "isAnimationActive",
7975
+ "type": {
7976
+ "text": "boolean"
7977
+ },
7978
+ "privacy": "private",
7979
+ "default": "false",
7980
+ "description": "Current animation active state"
7981
+ },
7982
+ {
7983
+ "kind": "field",
7984
+ "name": "drawer",
7985
+ "type": {
7986
+ "text": "SynDrawer"
7987
+ },
7988
+ "privacy": "private",
7989
+ "description": "Reference to the drawer"
7990
+ },
7991
+ {
7992
+ "kind": "field",
7993
+ "name": "open",
7994
+ "type": {
7995
+ "text": "boolean"
7996
+ },
7997
+ "default": "false",
7998
+ "description": "Indicates whether or not the side-nav is open.\nYou can toggle this attribute to show and hide the side-nav, or you can use the `show()` and\n`hide()` methods and this attribute will reflect the side-nav's open state.\n\nDepending if the rail attribute is set or not, the behavior will differ.\n\n__Non rail__:\nWith `open` will show the side-nav.\nWithout `open`, the side-nav will be hidden.\n\n__Rail__:\nWith `open` will show the whole side-nav with an overlay for touch devices\nor without an overlay for non-touch devices.\nWithout `open`, the side-nav will only show the prefix of nav-item's.",
7999
+ "attribute": "open",
8000
+ "reflects": true
8001
+ },
8002
+ {
8003
+ "kind": "field",
8004
+ "name": "rail",
8005
+ "type": {
8006
+ "text": "boolean"
8007
+ },
8008
+ "default": "false",
8009
+ "description": "Use the rail attribute to only show the prefix of navigation items in closed state.\nThis will open on hover on the rail navigation.\nOn touch devices the navigation opens on click and shows an overlay.\n\nNote: The Rail is only an option if all Navigation Items on the first level have an Icon.\nIf this is not the case you should use a burger navigation.",
8010
+ "attribute": "rail",
8011
+ "reflects": true
8012
+ },
8013
+ {
8014
+ "kind": "field",
8015
+ "name": "noFocusTrapping",
8016
+ "type": {
8017
+ "text": "boolean"
8018
+ },
8019
+ "default": "false",
8020
+ "description": "By default, the side-nav traps the focus if in non-rail mode and open.\nTo disable the focus trapping, set this attribute.",
8021
+ "attribute": "no-focus-trapping",
8022
+ "reflects": true
8023
+ },
8024
+ {
8025
+ "kind": "method",
8026
+ "name": "setDelayedCallback",
6617
8027
  "privacy": "private",
6618
8028
  "parameters": [
6619
8029
  {
6620
- "name": "event",
8030
+ "name": "callback",
6621
8031
  "type": {
6622
- "text": "Event"
8032
+ "text": "() => void"
6623
8033
  }
6624
8034
  }
6625
8035
  ]
6626
8036
  },
6627
8037
  {
6628
8038
  "kind": "method",
6629
- "name": "handleDisabledChange"
6630
- },
6631
- {
6632
- "kind": "method",
6633
- "name": "handleValueChange"
6634
- },
6635
- {
6636
- "kind": "method",
6637
- "name": "handleOpenChange"
6638
- },
6639
- {
6640
- "kind": "method",
6641
- "name": "show",
6642
- "description": "Shows the listbox."
8039
+ "name": "handleMouseEnter",
8040
+ "privacy": "private"
6643
8041
  },
6644
8042
  {
6645
8043
  "kind": "method",
6646
- "name": "hide",
6647
- "description": "Hides the listbox."
8044
+ "name": "handleMouseLeave",
8045
+ "privacy": "private"
6648
8046
  },
6649
8047
  {
6650
8048
  "kind": "method",
6651
- "name": "checkValidity",
6652
- "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid."
8049
+ "name": "handleRequestClose",
8050
+ "privacy": "private"
6653
8051
  },
6654
8052
  {
6655
8053
  "kind": "method",
6656
- "name": "getForm",
6657
- "return": {
6658
- "type": {
6659
- "text": "HTMLFormElement | null"
6660
- }
6661
- },
6662
- "description": "Gets the associated form, if one exists."
8054
+ "name": "addMouseListener",
8055
+ "privacy": "private"
6663
8056
  },
6664
8057
  {
6665
8058
  "kind": "method",
6666
- "name": "reportValidity",
6667
- "description": "Checks for validity and shows the browser's validation message if the control is invalid."
8059
+ "name": "removeMouseListener",
8060
+ "privacy": "private"
6668
8061
  },
6669
8062
  {
6670
8063
  "kind": "method",
6671
- "name": "setCustomValidity",
8064
+ "name": "setDrawerVisibility",
8065
+ "privacy": "private",
6672
8066
  "parameters": [
6673
8067
  {
6674
- "name": "message",
8068
+ "name": "isVisible",
6675
8069
  "type": {
6676
- "text": "string"
8070
+ "text": "boolean"
6677
8071
  }
6678
8072
  }
6679
- ],
6680
- "description": "Sets a custom validation message. Pass an empty string to restore validity."
8073
+ ]
6681
8074
  },
6682
8075
  {
6683
8076
  "kind": "method",
6684
- "name": "focus",
6685
- "parameters": [
6686
- {
6687
- "name": "options",
6688
- "optional": true,
6689
- "type": {
6690
- "text": "FocusOptions"
6691
- }
6692
- }
6693
- ],
6694
- "description": "Sets focus on the control."
8077
+ "name": "forceDrawerVisibilityForRailMode",
8078
+ "privacy": "private"
6695
8079
  },
6696
8080
  {
6697
8081
  "kind": "method",
6698
- "name": "blur",
6699
- "description": "Removes focus from the control."
6700
- }
6701
- ],
6702
- "events": [
6703
- {
6704
- "description": "Emitted when the control's value changes.",
6705
- "name": "syn-change",
6706
- "reactName": "onSynChange",
6707
- "eventName": "SynChangeEvent"
8082
+ "name": "setDrawerAnimations",
8083
+ "privacy": "private"
6708
8084
  },
6709
8085
  {
6710
- "description": "Emitted when the control's value is cleared.",
6711
- "name": "syn-clear",
6712
- "reactName": "onSynClear",
6713
- "eventName": "SynClearEvent"
8086
+ "kind": "method",
8087
+ "name": "handleModeChange"
6714
8088
  },
6715
8089
  {
6716
- "description": "Emitted when the control receives input.",
6717
- "name": "syn-input",
6718
- "reactName": "onSynInput",
6719
- "eventName": "SynInputEvent"
8090
+ "kind": "method",
8091
+ "name": "handleOpenChange"
6720
8092
  },
6721
8093
  {
6722
- "description": "Emitted when the control gains focus.",
6723
- "name": "syn-focus",
6724
- "reactName": "onSynFocus",
6725
- "eventName": "SynFocusEvent"
8094
+ "kind": "method",
8095
+ "name": "handleFocusTrapping"
6726
8096
  },
6727
8097
  {
6728
- "description": "Emitted when the control loses focus.",
6729
- "name": "syn-blur",
6730
- "reactName": "onSynBlur",
6731
- "eventName": "SynBlurEvent"
8098
+ "kind": "method",
8099
+ "name": "show",
8100
+ "description": "Shows the side-nav."
6732
8101
  },
6733
8102
  {
6734
- "description": "Emitted when the select's menu opens.",
8103
+ "kind": "method",
8104
+ "name": "hide",
8105
+ "description": "Hides the side-nav"
8106
+ }
8107
+ ],
8108
+ "events": [
8109
+ {
8110
+ "description": "Emitted when the side-nav opens.",
6735
8111
  "name": "syn-show",
6736
8112
  "reactName": "onSynShow",
6737
8113
  "eventName": "SynShowEvent"
6738
8114
  },
6739
8115
  {
6740
- "description": "Emitted after the select's menu opens and all animations are complete.",
8116
+ "description": "Emitted after the side-nav opens and all animations are complete.",
6741
8117
  "name": "syn-after-show",
6742
8118
  "reactName": "onSynAfterShow",
6743
8119
  "eventName": "SynAfterShowEvent"
6744
8120
  },
6745
8121
  {
6746
- "description": "Emitted when the select's menu closes.",
8122
+ "description": "Emitted when the side-nav closes.",
6747
8123
  "name": "syn-hide",
6748
8124
  "reactName": "onSynHide",
6749
8125
  "eventName": "SynHideEvent"
6750
8126
  },
6751
8127
  {
6752
- "description": "Emitted after the select's menu closes and all animations are complete.",
8128
+ "description": "Emitted after the side-nav closes and all animations are complete.",
6753
8129
  "name": "syn-after-hide",
6754
8130
  "reactName": "onSynAfterHide",
6755
8131
  "eventName": "SynAfterHideEvent"
6756
- },
6757
- {
6758
- "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied.",
6759
- "name": "syn-invalid",
6760
- "reactName": "onSynInvalid",
6761
- "eventName": "SynInvalidEvent"
6762
8132
  }
6763
8133
  ],
6764
8134
  "attributes": [
6765
8135
  {
6766
- "name": "name",
6767
- "type": {
6768
- "text": "string"
6769
- },
6770
- "default": "''",
6771
- "description": "The name of the select, submitted as a name/value pair with form data.",
6772
- "fieldName": "name"
6773
- },
6774
- {
6775
- "name": "value",
6776
- "type": {
6777
- "text": "string | string[]"
6778
- },
6779
- "default": "''",
6780
- "description": "The current value of the select, submitted as a name/value pair with form data. When `multiple` is enabled, the\nvalue attribute will be a space-delimited list of values based on the options selected, and the value property will\nbe an array. **For this reason, values must not contain spaces.**",
6781
- "fieldName": "value"
6782
- },
6783
- {
6784
- "name": "size",
6785
- "type": {
6786
- "text": "'small' | 'medium' | 'large'"
6787
- },
6788
- "default": "'medium'",
6789
- "description": "The select's size.",
6790
- "fieldName": "size"
6791
- },
6792
- {
6793
- "name": "placeholder",
6794
- "type": {
6795
- "text": "string"
6796
- },
6797
- "default": "''",
6798
- "description": "Placeholder text to show as a hint when the select is empty.",
6799
- "fieldName": "placeholder"
6800
- },
6801
- {
6802
- "name": "multiple",
6803
- "type": {
6804
- "text": "boolean"
6805
- },
6806
- "default": "false",
6807
- "description": "Allows more than one option to be selected.",
6808
- "fieldName": "multiple"
6809
- },
6810
- {
6811
- "name": "max-options-visible",
6812
- "type": {
6813
- "text": "number"
6814
- },
6815
- "default": "3",
6816
- "description": "The maximum number of selected options to show when `multiple` is true. After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected. Set to 0 to remove the limit.",
6817
- "fieldName": "maxOptionsVisible"
6818
- },
6819
- {
6820
- "name": "disabled",
6821
- "type": {
6822
- "text": "boolean"
6823
- },
6824
- "default": "false",
6825
- "description": "Disables the select control.",
6826
- "fieldName": "disabled"
6827
- },
6828
- {
6829
- "name": "clearable",
8136
+ "name": "open",
6830
8137
  "type": {
6831
8138
  "text": "boolean"
6832
8139
  },
6833
8140
  "default": "false",
6834
- "description": "Adds a clear button when the select is not empty.",
6835
- "fieldName": "clearable"
8141
+ "description": "Indicates whether or not the side-nav is open.\nYou can toggle this attribute to show and hide the side-nav, or you can use the `show()` and\n`hide()` methods and this attribute will reflect the side-nav's open state.\n\nDepending if the rail attribute is set or not, the behavior will differ.\n\n__Non rail__:\nWith `open` will show the side-nav.\nWithout `open`, the side-nav will be hidden.\n\n__Rail__:\nWith `open` will show the whole side-nav with an overlay for touch devices\nor without an overlay for non-touch devices.\nWithout `open`, the side-nav will only show the prefix of nav-item's.",
8142
+ "fieldName": "open"
6836
8143
  },
6837
8144
  {
6838
- "name": "open",
8145
+ "name": "rail",
6839
8146
  "type": {
6840
8147
  "text": "boolean"
6841
8148
  },
6842
8149
  "default": "false",
6843
- "description": "Indicates whether or not the select is open. You can toggle this attribute to show and hide the menu, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the select's open state.",
6844
- "fieldName": "open"
8150
+ "description": "Use the rail attribute to only show the prefix of navigation items in closed state.\nThis will open on hover on the rail navigation.\nOn touch devices the navigation opens on click and shows an overlay.\n\nNote: The Rail is only an option if all Navigation Items on the first level have an Icon.\nIf this is not the case you should use a burger navigation.",
8151
+ "fieldName": "rail"
6845
8152
  },
6846
8153
  {
6847
- "name": "hoist",
8154
+ "name": "no-focus-trapping",
6848
8155
  "type": {
6849
8156
  "text": "boolean"
6850
8157
  },
6851
8158
  "default": "false",
6852
- "description": "Enable this option to prevent the listbox from being clipped when the component is placed inside a container with\n`overflow: auto|scroll`. Hoisting uses a fixed positioning strategy that works in many, but not all, scenarios.",
6853
- "fieldName": "hoist"
6854
- },
8159
+ "description": "By default, the side-nav traps the focus if in non-rail mode and open.\nTo disable the focus trapping, set this attribute.",
8160
+ "fieldName": "noFocusTrapping"
8161
+ }
8162
+ ],
8163
+ "superclass": {
8164
+ "name": "SynergyElement",
8165
+ "module": "/src/internal/synergy-element.js"
8166
+ },
8167
+ "summary": "The <syn-side-nav /> element contains secondary navigation and fits below the header.\nIt can be used to group multiple navigation items (<syn-nav-item />s) together.",
8168
+ "tagNameWithoutPrefix": "side-nav",
8169
+ "tagName": "syn-side-nav",
8170
+ "customElement": true,
8171
+ "jsDoc": "/**\n * @summary The <syn-side-nav /> element contains secondary navigation and fits below the header.\n * It can be used to group multiple navigation items (<syn-nav-item />s) together.\n *\n * @example\n * <syn-side-nav open>\n * <syn-nav-item >Item 1</syn-nav-item>\n * <syn-nav-item divider>Item 2</syn-nav-item>\n * </syn-side-nav>\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-side-nav--docs\n * @status stable\n * @since 1.14.0\n *\n * @dependency syn-divider\n * @dependency syn-drawer\n *\n * @slot - The main content of the side-nav. Used for <syn-nav-item /> elements.\n * @slot footer - The footer content of the side-nav. Used for <syn-nav-item /> elements.\n * Please avoid having to many nav-items as it can massively influence the user experience.\n *\n * @event syn-show - Emitted when the side-nav opens.\n * @event syn-after-show - Emitted after the side-nav opens and all animations are complete.\n * @event syn-hide - Emitted when the side-nav closes.\n * @event syn-after-hide - Emitted after the side-nav closes and all animations are complete.\n *\n * @csspart base - The components base wrapper\n * @csspart drawer - The drawer that is used under the hood for creating the side-nav\n * @csspart content-container - The components main content container\n * @csspart content - The components main content\n * @csspart footer-container - The components footer content container\n * @csspart footer-divider - The components footer divider\n * @csspart footer - The components footer content\n * @csspart overlay - The overlay that covers the screen behind the side-nav.\n *\n * @cssproperty --side-nav-open-width - The width of the side-nav if in open state\n * @cssproperty --side-nav-rail-width - The width of the side-nav if in rail mode without open\n *\n * @animation sideNav.showNonRail - The animation to use when showing the side-nav in non-rail mode.\n * @animation sideNav.showRail - The animation to use when showing the side-nav in rail mode.\n * @animation sideNav.hideNonRail - The animation to use when hiding the side-nav in non-rail mode.\n * @animation sideNav.hideRail - The animation to use when hiding the side-nav in rail mode.\n * @animation sideNav.overlay.show - The animation to use when showing the side-nav's overlay.\n * @animation sideNav.overlay.hide - The animation to use when hiding the side-nav's overlay.\n */",
8172
+ "documentation": "https://synergy-design-system.github.io/?path=/docs/components-syn-side-nav--docs",
8173
+ "status": "stable",
8174
+ "since": "1.14.0",
8175
+ "dependencies": [
8176
+ "syn-divider",
8177
+ "syn-drawer"
8178
+ ],
8179
+ "animations": [
6855
8180
  {
6856
- "name": "label",
6857
- "type": {
6858
- "text": "string"
6859
- },
6860
- "default": "''",
6861
- "description": "The select's label. If you need to display HTML, use the `label` slot instead.",
6862
- "fieldName": "label"
8181
+ "name": "sideNav.showNonRail",
8182
+ "description": "The animation to use when showing the side-nav in non-rail mode."
6863
8183
  },
6864
8184
  {
6865
- "name": "placement",
6866
- "type": {
6867
- "text": "'top' | 'bottom'"
6868
- },
6869
- "default": "'bottom'",
6870
- "description": "The preferred placement of the select's menu. Note that the actual placement may vary as needed to keep the listbox\ninside of the viewport.",
6871
- "fieldName": "placement"
8185
+ "name": "sideNav.showRail",
8186
+ "description": "The animation to use when showing the side-nav in rail mode."
6872
8187
  },
6873
8188
  {
6874
- "name": "help-text",
6875
- "type": {
6876
- "text": "string"
6877
- },
6878
- "default": "''",
6879
- "description": "The select's help text. If you need to display HTML, use the `help-text` slot instead.",
6880
- "fieldName": "helpText"
8189
+ "name": "sideNav.hideNonRail",
8190
+ "description": "The animation to use when hiding the side-nav in non-rail mode."
6881
8191
  },
6882
8192
  {
6883
- "name": "form",
6884
- "type": {
6885
- "text": "string"
6886
- },
6887
- "default": "''",
6888
- "description": "By default, form controls are associated with the nearest containing `<form>` element. This attribute allows you\nto place the form control outside of a form and associate it with the form that has this `id`. The form must be in\nthe same document or shadow root for this to work.",
6889
- "fieldName": "form"
8193
+ "name": "sideNav.hideRail",
8194
+ "description": "The animation to use when hiding the side-nav in rail mode."
6890
8195
  },
6891
8196
  {
6892
- "name": "required",
6893
- "type": {
6894
- "text": "boolean"
6895
- },
6896
- "default": "false",
6897
- "description": "The select's required attribute.",
6898
- "fieldName": "required"
8197
+ "name": "sideNav.overlay.show",
8198
+ "description": "The animation to use when showing the side-nav's overlay."
6899
8199
  },
6900
8200
  {
6901
- "name": "getTag",
6902
- "type": {
6903
- "text": "(option: SynOption, index: number) => TemplateResult | string | HTMLElement"
6904
- },
6905
- "description": "A function that customizes the tags to be rendered when multiple=true. The first argument is the option, the second\nis the current tag's index. The function should return either a Lit TemplateResult or a string containing trusted HTML of the symbol to render at\nthe specified value.",
6906
- "fieldName": "getTag"
8201
+ "name": "sideNav.overlay.hide",
8202
+ "description": "The animation to use when hiding the side-nav's overlay."
6907
8203
  }
6908
- ],
6909
- "superclass": {
6910
- "name": "SynergyElement",
6911
- "module": "/src/internal/synergy-element.js"
6912
- },
6913
- "summary": "Selects allow you to choose items from a menu of predefined options.",
6914
- "tagNameWithoutPrefix": "select",
6915
- "tagName": "syn-select",
6916
- "customElement": true,
6917
- "jsDoc": "/**\n * @summary Selects allow you to choose items from a menu of predefined options.\n * @documentation https://synergy.style/components/select\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n * @dependency syn-popup\n * @dependency syn-tag\n *\n * @slot - The listbox options. Must be `<syn-option>` elements. You can use `<syn-divider>` to group items visually.\n * @slot label - The input's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n *\n * @event syn-change - Emitted when the control's value changes.\n * @event syn-clear - Emitted when the control's value is cleared.\n * @event syn-input - Emitted when the control receives input.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-show - Emitted when the select's menu opens.\n * @event syn-after-show - Emitted after the select's menu opens and all animations are complete.\n * @event syn-hide - Emitted when the select's menu closes.\n * @event syn-after-hide - Emitted after the select's menu closes and all animations are complete.\n * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The select's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart display-input - The element that displays the selected option's label, an `<input>` element.\n * @csspart listbox - The listbox container where options are slotted.\n * @csspart tags - The container that houses option tags when `multiselect` is used.\n * @csspart tag - The individual tags that represent each multiselect option.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n */",
6918
- "documentation": "https://synergy.style/components/select",
6919
- "status": "stable",
6920
- "since": "2.0",
6921
- "dependencies": [
6922
- "syn-icon",
6923
- "syn-popup",
6924
- "syn-tag"
6925
8204
  ]
6926
8205
  }
6927
8206
  ],
@@ -6930,8 +8209,8 @@
6930
8209
  "kind": "js",
6931
8210
  "name": "default",
6932
8211
  "declaration": {
6933
- "name": "SynSelect",
6934
- "module": "components/select/select.js"
8212
+ "name": "SynSideNav",
8213
+ "module": "components/side-nav/side-nav.js"
6935
8214
  }
6936
8215
  }
6937
8216
  ]
@@ -8342,7 +9621,7 @@
8342
9621
  "package": {
8343
9622
  "name": "@synergy-design-system/components",
8344
9623
  "description": "",
8345
- "version": "1.13.0",
9624
+ "version": "1.15.0",
8346
9625
  "author": {
8347
9626
  "name": "SICK Global UX Foundation",
8348
9627
  "url": "https://www.sick.com"