@synergy-design-system/components 1.7.0 → 1.9.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 (275) hide show
  1. package/README.md +8 -0
  2. package/dist/chunks/{chunk.23HTU3YE.js → chunk.2EI3TNL7.js} +1 -16
  3. package/dist/chunks/chunk.2EI3TNL7.js.map +7 -0
  4. package/dist/chunks/{chunk.RSONAU45.js → chunk.2RF7KO5I.js} +1 -12
  5. package/dist/chunks/chunk.2RF7KO5I.js.map +7 -0
  6. package/dist/chunks/{chunk.GHMKOVA3.js → chunk.3DE5ARIC.js} +23 -3
  7. package/dist/chunks/chunk.3DE5ARIC.js.map +7 -0
  8. package/dist/chunks/chunk.3O5WTWSN.js +12 -0
  9. package/dist/chunks/chunk.3O5WTWSN.js.map +7 -0
  10. package/dist/chunks/{chunk.MFFJYORB.js → chunk.3STW62TA.js} +1 -12
  11. package/dist/chunks/chunk.3STW62TA.js.map +7 -0
  12. package/dist/chunks/{chunk.EKOK7YPB.js → chunk.4QS5IWYB.js} +1 -16
  13. package/dist/chunks/chunk.4QS5IWYB.js.map +7 -0
  14. package/dist/chunks/{chunk.ULMZHWWW.js → chunk.5BMNRZ7L.js} +2 -2
  15. package/dist/chunks/{chunk.SMSP5C6C.js → chunk.5CB3CVZ7.js} +2 -2
  16. package/dist/chunks/{chunk.GMUVD5B2.js → chunk.5R3OVMH2.js} +25 -10
  17. package/dist/chunks/chunk.5R3OVMH2.js.map +7 -0
  18. package/dist/chunks/{chunk.EI34C7LC.js → chunk.6MS3WNDW.js} +8 -7
  19. package/dist/chunks/chunk.6MS3WNDW.js.map +7 -0
  20. package/dist/chunks/{chunk.4ZURABYO.js → chunk.A7IIJ2LL.js} +1 -7
  21. package/dist/chunks/{chunk.O7USYXBT.js.map → chunk.A7IIJ2LL.js.map} +3 -3
  22. package/dist/chunks/{chunk.PGCXJ2PT.js → chunk.ACTJFDNK.js} +1 -12
  23. package/dist/chunks/chunk.ACTJFDNK.js.map +7 -0
  24. package/dist/chunks/{chunk.MNMITYTH.js → chunk.ADRKUQGR.js} +1 -12
  25. package/dist/chunks/chunk.ADRKUQGR.js.map +7 -0
  26. package/dist/chunks/{chunk.5OPODPPZ.js → chunk.AJU6C4KC.js} +2 -2
  27. package/dist/chunks/{chunk.VZ7S7YYN.js → chunk.AVTU2BGE.js} +2 -2
  28. package/dist/chunks/{chunk.QHFGD6WW.js → chunk.BGHK4NQA.js} +1 -12
  29. package/dist/chunks/chunk.BGHK4NQA.js.map +7 -0
  30. package/dist/chunks/{chunk.LWXCBEHD.js → chunk.BGKFRWWO.js} +5 -5
  31. package/dist/chunks/{chunk.3ZHSSMBL.js → chunk.BJYVLDYR.js} +84 -6
  32. package/dist/chunks/chunk.BJYVLDYR.js.map +7 -0
  33. package/dist/chunks/chunk.BLOH2ZNU.js +636 -0
  34. package/dist/chunks/chunk.BLOH2ZNU.js.map +7 -0
  35. package/dist/chunks/{chunk.USYR7G7Z.js → chunk.BTZX6ZFZ.js} +2 -2
  36. package/dist/chunks/{chunk.W6V7TPGK.js → chunk.CFIQXXMW.js} +1 -12
  37. package/dist/chunks/chunk.CFIQXXMW.js.map +7 -0
  38. package/dist/chunks/{chunk.RA2WSKQT.js → chunk.F4THECWA.js} +2 -2
  39. package/dist/chunks/{chunk.Z4NKFCKY.js → chunk.FSONLJTT.js} +19 -15
  40. package/dist/chunks/chunk.FSONLJTT.js.map +7 -0
  41. package/dist/chunks/{chunk.PMTVLWNZ.js → chunk.FUNZW7ES.js} +2 -2
  42. package/dist/chunks/{chunk.OJREQD2D.js → chunk.GAPQVJGQ.js} +22 -14
  43. package/dist/chunks/chunk.GAPQVJGQ.js.map +7 -0
  44. package/dist/chunks/{chunk.NAX6WP3D.js → chunk.GBOII6N4.js} +11 -7
  45. package/dist/chunks/chunk.GBOII6N4.js.map +7 -0
  46. package/dist/chunks/chunk.GTSRMEPE.js +108 -0
  47. package/dist/chunks/chunk.GTSRMEPE.js.map +7 -0
  48. package/dist/chunks/{chunk.JAKJHV44.js → chunk.HF75YRVS.js} +22 -15
  49. package/dist/chunks/chunk.HF75YRVS.js.map +7 -0
  50. package/dist/chunks/{chunk.7VOPIPHW.js → chunk.IOPUYG6Q.js} +2 -2
  51. package/dist/chunks/{chunk.5THN2K5Q.js → chunk.IR2PZHC7.js} +2 -2
  52. package/dist/chunks/{chunk.SBEIXLRW.js → chunk.K3O2PP7X.js} +6 -5
  53. package/dist/chunks/chunk.K3O2PP7X.js.map +7 -0
  54. package/dist/chunks/{chunk.TUYEX4KP.js → chunk.KDDTDU4B.js} +73 -35
  55. package/dist/chunks/chunk.KDDTDU4B.js.map +7 -0
  56. package/dist/chunks/{chunk.5BOEKFIJ.js → chunk.KNXO2FGQ.js} +86 -48
  57. package/dist/chunks/chunk.KNXO2FGQ.js.map +7 -0
  58. package/dist/chunks/{chunk.HG5QC5EW.js → chunk.KUO3KJOC.js} +2 -2
  59. package/dist/chunks/{chunk.B6AKFQJS.js → chunk.LF2XSSHD.js} +2 -2
  60. package/dist/chunks/{chunk.2FN5DTS6.js → chunk.LJQ7LEPV.js} +1 -12
  61. package/dist/chunks/chunk.LJQ7LEPV.js.map +7 -0
  62. package/dist/chunks/{chunk.KP7SYG4K.js → chunk.LZE7OXKV.js} +2 -2
  63. package/dist/chunks/{chunk.CYN675Z6.js → chunk.MDZ22YWD.js} +12 -8
  64. package/dist/chunks/chunk.MDZ22YWD.js.map +7 -0
  65. package/dist/chunks/{chunk.JN7CLMQZ.js → chunk.MIMALEWP.js} +21 -7
  66. package/dist/chunks/chunk.MIMALEWP.js.map +7 -0
  67. package/dist/chunks/{chunk.XSXBQCWN.js → chunk.O6AXKVFJ.js} +11 -7
  68. package/dist/chunks/chunk.O6AXKVFJ.js.map +7 -0
  69. package/dist/chunks/{chunk.N2I6HVX3.js → chunk.OSBC36KQ.js} +4 -9
  70. package/dist/chunks/chunk.OSBC36KQ.js.map +7 -0
  71. package/dist/chunks/chunk.PHSJD47V.js +162 -0
  72. package/dist/chunks/chunk.PHSJD47V.js.map +7 -0
  73. package/dist/chunks/{chunk.JBYBQ5TQ.js → chunk.PKO6FEOM.js} +1 -12
  74. package/dist/chunks/chunk.PKO6FEOM.js.map +7 -0
  75. package/dist/chunks/{chunk.7KSU2SUD.js → chunk.PRZRH7SN.js} +2 -2
  76. package/dist/chunks/{chunk.4MYR27GF.js → chunk.PWMSNMDF.js} +13 -9
  77. package/dist/chunks/chunk.PWMSNMDF.js.map +7 -0
  78. package/dist/chunks/{chunk.BQG5LF7J.js → chunk.QAUTITK3.js} +2 -2
  79. package/dist/chunks/{chunk.DJOAQ4JU.js → chunk.QNDC5KWA.js} +43 -2
  80. package/dist/chunks/{chunk.6XU6OLZ3.js → chunk.QNQNR3RY.js} +1 -16
  81. package/dist/chunks/chunk.QNQNR3RY.js.map +7 -0
  82. package/dist/chunks/{chunk.Q7X5NOPZ.js → chunk.QY6MKIMK.js} +2 -2
  83. package/dist/chunks/{chunk.VQWUZKDS.js → chunk.RMQZMRVP.js} +2 -2
  84. package/dist/chunks/{chunk.XXF35USM.js → chunk.RMZBSKRR.js} +59 -109
  85. package/dist/chunks/chunk.RMZBSKRR.js.map +7 -0
  86. package/dist/chunks/{chunk.OJ4KOC7R.js → chunk.SJMMPKWP.js} +1 -12
  87. package/dist/chunks/chunk.SJMMPKWP.js.map +7 -0
  88. package/dist/chunks/{chunk.AMTCNRDE.js → chunk.SZCGMXW5.js} +3 -3
  89. package/dist/chunks/chunk.SZCGMXW5.js.map +7 -0
  90. package/dist/chunks/{chunk.JHXCBOUD.js → chunk.TTL762VF.js} +57 -60
  91. package/dist/chunks/chunk.TTL762VF.js.map +7 -0
  92. package/dist/chunks/chunk.UYD2OVFV.js +83 -0
  93. package/dist/chunks/chunk.UYD2OVFV.js.map +7 -0
  94. package/dist/chunks/{chunk.7EGCXNF2.js → chunk.UZFPGR6M.js} +8 -7
  95. package/dist/chunks/chunk.UZFPGR6M.js.map +7 -0
  96. package/dist/chunks/{chunk.SXW2KV3B.js → chunk.VATYXV2O.js} +2 -2
  97. package/dist/chunks/{chunk.AFEABUNX.js → chunk.W5JK7V7K.js} +6 -1
  98. package/dist/chunks/chunk.W5JK7V7K.js.map +7 -0
  99. package/dist/chunks/{chunk.IRT2DA6R.js → chunk.WC5SV4TV.js} +28 -18
  100. package/dist/chunks/chunk.WC5SV4TV.js.map +7 -0
  101. package/dist/chunks/{chunk.HKCTVD3U.js → chunk.XEI5ZP7Y.js} +11 -7
  102. package/dist/chunks/chunk.XEI5ZP7Y.js.map +7 -0
  103. package/dist/chunks/{chunk.4I6M5V6O.js → chunk.XIUSSERX.js} +1 -16
  104. package/dist/chunks/chunk.XIUSSERX.js.map +7 -0
  105. package/dist/chunks/{chunk.6V3HOZNE.js → chunk.Y72MIUNI.js} +2 -2
  106. package/dist/chunks/{chunk.IKKMWFWH.js → chunk.ZIQXX272.js} +2 -2
  107. package/dist/chunks/{chunk.GOVLCQY5.js → chunk.ZT5DUKVA.js} +2 -2
  108. package/dist/components/button/button.component.js +13 -14
  109. package/dist/components/button/button.custom.styles.js +1 -1
  110. package/dist/components/button/button.js +14 -15
  111. package/dist/components/button/button.styles.js +2 -4
  112. package/dist/components/button-group/button-group.component.js +4 -5
  113. package/dist/components/button-group/button-group.js +5 -6
  114. package/dist/components/button-group/button-group.styles.js +2 -3
  115. package/dist/components/checkbox/checkbox.component.d.ts +5 -0
  116. package/dist/components/checkbox/checkbox.component.js +12 -11
  117. package/dist/components/checkbox/checkbox.custom.styles.js +1 -1
  118. package/dist/components/checkbox/checkbox.js +13 -12
  119. package/dist/components/checkbox/checkbox.styles.js +2 -4
  120. package/dist/components/divider/divider.component.js +5 -6
  121. package/dist/components/divider/divider.custom.styles.js +1 -1
  122. package/dist/components/divider/divider.js +6 -7
  123. package/dist/components/divider/divider.styles.js +2 -4
  124. package/dist/components/drawer/drawer.component.d.ts +110 -0
  125. package/dist/components/drawer/drawer.component.js +27 -0
  126. package/dist/components/drawer/drawer.component.js.map +7 -0
  127. package/dist/components/drawer/drawer.custom.styles.d.ts +2 -0
  128. package/dist/components/drawer/drawer.custom.styles.js +8 -0
  129. package/dist/components/drawer/drawer.custom.styles.js.map +7 -0
  130. package/dist/components/drawer/drawer.d.ts +8 -0
  131. package/dist/components/drawer/drawer.js +28 -0
  132. package/dist/components/drawer/drawer.js.map +7 -0
  133. package/dist/components/drawer/drawer.styles.d.ts +2 -0
  134. package/dist/components/drawer/drawer.styles.js +8 -0
  135. package/dist/components/drawer/drawer.styles.js.map +7 -0
  136. package/dist/components/icon/icon.component.js +6 -7
  137. package/dist/components/icon/icon.custom.styles.js +1 -1
  138. package/dist/components/icon/icon.js +7 -8
  139. package/dist/components/icon/icon.styles.js +2 -4
  140. package/dist/components/icon/library.default.js +1 -1
  141. package/dist/components/icon/library.js +1 -1
  142. package/dist/components/icon/library.system.js +1 -1
  143. package/dist/components/icon-button/icon-button.component.js +8 -9
  144. package/dist/components/icon-button/icon-button.custom.styles.js +1 -1
  145. package/dist/components/icon-button/icon-button.js +9 -10
  146. package/dist/components/icon-button/icon-button.styles.js +2 -4
  147. package/dist/components/input/input.component.js +14 -15
  148. package/dist/components/input/input.custom.styles.js +1 -1
  149. package/dist/components/input/input.js +15 -16
  150. package/dist/components/input/input.styles.js +2 -5
  151. package/dist/components/optgroup/optgroup.component.js +6 -7
  152. package/dist/components/optgroup/optgroup.js +7 -8
  153. package/dist/components/optgroup/optgroup.styles.js +1 -1
  154. package/dist/components/option/option.component.js +8 -9
  155. package/dist/components/option/option.custom.styles.js +1 -1
  156. package/dist/components/option/option.js +9 -10
  157. package/dist/components/option/option.styles.js +2 -4
  158. package/dist/components/popup/popup.component.d.ts +9 -0
  159. package/dist/components/popup/popup.component.js +4 -5
  160. package/dist/components/popup/popup.styles.js +2 -3
  161. package/dist/components/radio/radio.component.js +8 -9
  162. package/dist/components/radio/radio.custom.styles.js +1 -1
  163. package/dist/components/radio/radio.js +9 -10
  164. package/dist/components/radio/radio.styles.js +2 -4
  165. package/dist/components/radio-button/radio-button.component.js +6 -8
  166. package/dist/components/radio-button/radio-button.js +7 -9
  167. package/dist/components/radio-button/radio-button.styles.js +3 -5
  168. package/dist/components/radio-group/radio-group.component.d.ts +1 -0
  169. package/dist/components/radio-group/radio-group.component.js +9 -10
  170. package/dist/components/radio-group/radio-group.custom.styles.js +1 -1
  171. package/dist/components/radio-group/radio-group.js +10 -11
  172. package/dist/components/radio-group/radio-group.styles.js +2 -5
  173. package/dist/components/select/select.component.d.ts +1 -0
  174. package/dist/components/select/select.component.js +20 -20
  175. package/dist/components/select/select.custom.styles.js +1 -1
  176. package/dist/components/select/select.js +21 -21
  177. package/dist/components/select/select.styles.js +2 -5
  178. package/dist/components/spinner/spinner.component.js +4 -5
  179. package/dist/components/spinner/spinner.styles.js +2 -3
  180. package/dist/components/switch/switch.component.d.ts +5 -0
  181. package/dist/components/switch/switch.component.js +9 -8
  182. package/dist/components/switch/switch.custom.styles.js +2 -2
  183. package/dist/components/switch/switch.js +10 -9
  184. package/dist/components/switch/switch.styles.js +2 -4
  185. package/dist/components/tag/tag.component.js +10 -11
  186. package/dist/components/tag/tag.custom.styles.js +1 -1
  187. package/dist/components/tag/tag.js +11 -12
  188. package/dist/components/tag/tag.styles.js +2 -4
  189. package/dist/components/textarea/textarea.component.js +8 -9
  190. package/dist/components/textarea/textarea.custom.styles.js +1 -1
  191. package/dist/components/textarea/textarea.js +9 -10
  192. package/dist/components/textarea/textarea.styles.js +2 -5
  193. package/dist/custom-elements.json +877 -351
  194. package/dist/events/events.d.ts +2 -0
  195. package/dist/events/syn-initial-focus.d.ts +6 -0
  196. package/dist/events/syn-request-close.d.ts +8 -0
  197. package/dist/internal/active-elements.d.ts +15 -0
  198. package/dist/internal/longpress.d.ts +2 -2
  199. package/dist/internal/modal.d.ts +24 -0
  200. package/dist/internal/string.d.ts +2 -0
  201. package/dist/internal/tabbable.d.ts +9 -0
  202. package/dist/synergy-autoloader.js +1 -1
  203. package/dist/synergy.d.ts +1 -0
  204. package/dist/synergy.js +88 -81
  205. package/dist/themes/utility.css +29 -0
  206. package/dist/translations/de.js +1 -1
  207. package/dist/translations/en.js +1 -1
  208. package/dist/utilities/animation-registry.js +2 -2
  209. package/dist/utilities/base-path.js +1 -1
  210. package/dist/utilities/form.js +3 -3
  211. package/dist/utilities/icon-library.js +1 -1
  212. package/dist/utilities/localize.js +1 -1
  213. package/dist/vscode.html-custom-data.json +78 -21
  214. package/package.json +4 -5
  215. package/dist/chunks/chunk.23HTU3YE.js.map +0 -7
  216. package/dist/chunks/chunk.2FN5DTS6.js.map +0 -7
  217. package/dist/chunks/chunk.3ZHSSMBL.js.map +0 -7
  218. package/dist/chunks/chunk.4I6M5V6O.js.map +0 -7
  219. package/dist/chunks/chunk.4MYR27GF.js.map +0 -7
  220. package/dist/chunks/chunk.4ZURABYO.js.map +0 -7
  221. package/dist/chunks/chunk.5BOEKFIJ.js.map +0 -7
  222. package/dist/chunks/chunk.6XU6OLZ3.js.map +0 -7
  223. package/dist/chunks/chunk.7EGCXNF2.js.map +0 -7
  224. package/dist/chunks/chunk.AFEABUNX.js.map +0 -7
  225. package/dist/chunks/chunk.AMTCNRDE.js.map +0 -7
  226. package/dist/chunks/chunk.CYN675Z6.js.map +0 -7
  227. package/dist/chunks/chunk.EI34C7LC.js.map +0 -7
  228. package/dist/chunks/chunk.EKOK7YPB.js.map +0 -7
  229. package/dist/chunks/chunk.GHMKOVA3.js.map +0 -7
  230. package/dist/chunks/chunk.GMUVD5B2.js.map +0 -7
  231. package/dist/chunks/chunk.HKCTVD3U.js.map +0 -7
  232. package/dist/chunks/chunk.IRT2DA6R.js.map +0 -7
  233. package/dist/chunks/chunk.JAKJHV44.js.map +0 -7
  234. package/dist/chunks/chunk.JBYBQ5TQ.js.map +0 -7
  235. package/dist/chunks/chunk.JHXCBOUD.js.map +0 -7
  236. package/dist/chunks/chunk.JN7CLMQZ.js.map +0 -7
  237. package/dist/chunks/chunk.MFFJYORB.js.map +0 -7
  238. package/dist/chunks/chunk.MNMITYTH.js.map +0 -7
  239. package/dist/chunks/chunk.N2I6HVX3.js.map +0 -7
  240. package/dist/chunks/chunk.NAX6WP3D.js.map +0 -7
  241. package/dist/chunks/chunk.O7USYXBT.js +0 -23
  242. package/dist/chunks/chunk.OJ4KOC7R.js.map +0 -7
  243. package/dist/chunks/chunk.OJREQD2D.js.map +0 -7
  244. package/dist/chunks/chunk.PGCXJ2PT.js.map +0 -7
  245. package/dist/chunks/chunk.QHFGD6WW.js.map +0 -7
  246. package/dist/chunks/chunk.RSONAU45.js.map +0 -7
  247. package/dist/chunks/chunk.SBEIXLRW.js.map +0 -7
  248. package/dist/chunks/chunk.TUYEX4KP.js.map +0 -7
  249. package/dist/chunks/chunk.W6V7TPGK.js.map +0 -7
  250. package/dist/chunks/chunk.XSXBQCWN.js.map +0 -7
  251. package/dist/chunks/chunk.XXF35USM.js.map +0 -7
  252. package/dist/chunks/chunk.Z4NKFCKY.js.map +0 -7
  253. package/dist/web-types.json +0 -2449
  254. /package/dist/chunks/{chunk.ULMZHWWW.js.map → chunk.5BMNRZ7L.js.map} +0 -0
  255. /package/dist/chunks/{chunk.SMSP5C6C.js.map → chunk.5CB3CVZ7.js.map} +0 -0
  256. /package/dist/chunks/{chunk.5OPODPPZ.js.map → chunk.AJU6C4KC.js.map} +0 -0
  257. /package/dist/chunks/{chunk.VZ7S7YYN.js.map → chunk.AVTU2BGE.js.map} +0 -0
  258. /package/dist/chunks/{chunk.LWXCBEHD.js.map → chunk.BGKFRWWO.js.map} +0 -0
  259. /package/dist/chunks/{chunk.USYR7G7Z.js.map → chunk.BTZX6ZFZ.js.map} +0 -0
  260. /package/dist/chunks/{chunk.RA2WSKQT.js.map → chunk.F4THECWA.js.map} +0 -0
  261. /package/dist/chunks/{chunk.PMTVLWNZ.js.map → chunk.FUNZW7ES.js.map} +0 -0
  262. /package/dist/chunks/{chunk.7VOPIPHW.js.map → chunk.IOPUYG6Q.js.map} +0 -0
  263. /package/dist/chunks/{chunk.5THN2K5Q.js.map → chunk.IR2PZHC7.js.map} +0 -0
  264. /package/dist/chunks/{chunk.HG5QC5EW.js.map → chunk.KUO3KJOC.js.map} +0 -0
  265. /package/dist/chunks/{chunk.B6AKFQJS.js.map → chunk.LF2XSSHD.js.map} +0 -0
  266. /package/dist/chunks/{chunk.KP7SYG4K.js.map → chunk.LZE7OXKV.js.map} +0 -0
  267. /package/dist/chunks/{chunk.7KSU2SUD.js.map → chunk.PRZRH7SN.js.map} +0 -0
  268. /package/dist/chunks/{chunk.BQG5LF7J.js.map → chunk.QAUTITK3.js.map} +0 -0
  269. /package/dist/chunks/{chunk.DJOAQ4JU.js.map → chunk.QNDC5KWA.js.map} +0 -0
  270. /package/dist/chunks/{chunk.Q7X5NOPZ.js.map → chunk.QY6MKIMK.js.map} +0 -0
  271. /package/dist/chunks/{chunk.VQWUZKDS.js.map → chunk.RMQZMRVP.js.map} +0 -0
  272. /package/dist/chunks/{chunk.SXW2KV3B.js.map → chunk.VATYXV2O.js.map} +0 -0
  273. /package/dist/chunks/{chunk.6V3HOZNE.js.map → chunk.Y72MIUNI.js.map} +0 -0
  274. /package/dist/chunks/{chunk.IKKMWFWH.js.map → chunk.ZIQXX272.js.map} +0 -0
  275. /package/dist/chunks/{chunk.GOVLCQY5.js.map → chunk.ZT5DUKVA.js.map} +0 -0
@@ -6,9 +6,11 @@ export type * from './syn-clear.ts';
6
6
  export type * from './syn-error.ts';
7
7
  export type * from './syn-focus.ts';
8
8
  export type * from './syn-hide.ts';
9
+ export type * from './syn-initial-focus.ts';
9
10
  export type * from './syn-input.ts';
10
11
  export type * from './syn-invalid.ts';
11
12
  export type * from './syn-load.ts';
12
13
  export type * from './syn-remove.ts';
13
14
  export type * from './syn-reposition.ts';
15
+ export type * from './syn-request-close.ts';
14
16
  export type * from './syn-show.ts';
@@ -0,0 +1,6 @@
1
+ export type SynInitialFocusEvent = CustomEvent<Record<PropertyKey, never>>;
2
+ declare global {
3
+ interface GlobalEventHandlersEventMap {
4
+ 'syn-initial-focus': SynInitialFocusEvent;
5
+ }
6
+ }
@@ -0,0 +1,8 @@
1
+ export type SynRequestCloseEvent = CustomEvent<{
2
+ source: 'close-button' | 'keyboard' | 'overlay';
3
+ }>;
4
+ declare global {
5
+ interface GlobalEventHandlersEventMap {
6
+ 'syn-request-close': SynRequestCloseEvent;
7
+ }
8
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Use a generator so we can iterate and possibly break early.
3
+ * @example
4
+ * // to operate like a regular array. This kinda nullifies generator benefits, but worth knowing if you need the whole array.
5
+ * const allActiveElements = [...activeElements()]
6
+ *
7
+ * // Early return
8
+ * for (const activeElement of activeElements()) {
9
+ * if (<cond>) {
10
+ * break; // Break the loop, dont need to iterate over the whole array or store an array in memory!
11
+ * }
12
+ * }
13
+ */
14
+ export declare function activeElements(activeElement?: Element | null): Generator<Element>;
15
+ export declare function getDeepestActiveElement(): Element | undefined;
@@ -1,4 +1,4 @@
1
- /// <reference types="node" />
1
+ /// <reference types="node" resolution-mode="require"/>
2
2
  import { type ElementPart, noChange, nothing } from 'lit';
3
3
  import { AsyncDirective, type DirectiveParameters, type Part } from 'lit/async-directive.js';
4
4
  type Callbacks = {
@@ -38,5 +38,5 @@ declare class LongPressDirective extends AsyncDirective {
38
38
  */
39
39
  private stopSpinningAndCleanUp;
40
40
  }
41
- export declare const longPress: (_callback: Callbacks) => import("lit/async-directive").DirectiveResult<typeof LongPressDirective>;
41
+ export declare const longPress: (_callback: Callbacks) => import("lit/async-directive.js").DirectiveResult<typeof LongPressDirective>;
42
42
  export type { LongPressDirective };
@@ -0,0 +1,24 @@
1
+ export default class Modal {
2
+ element: HTMLElement;
3
+ isExternalActivated: boolean;
4
+ tabDirection: 'forward' | 'backward';
5
+ currentFocus: HTMLElement | null;
6
+ previousFocus: HTMLElement | null;
7
+ elementsWithTabbableControls: string[];
8
+ constructor(element: HTMLElement);
9
+ /** Activates focus trapping. */
10
+ activate(): void;
11
+ /** Deactivates focus trapping. */
12
+ deactivate(): void;
13
+ /** Determines if this modal element is currently active or not. */
14
+ isActive(): boolean;
15
+ /** Activates external modal behavior and temporarily disables focus trapping. */
16
+ activateExternal(): void;
17
+ /** Deactivates external modal behavior and re-enables focus trapping. */
18
+ deactivateExternal(): void;
19
+ private checkFocus;
20
+ private handleFocusIn;
21
+ private possiblyHasTabbableChildren;
22
+ private handleKeyDown;
23
+ private handleKeyUp;
24
+ }
@@ -0,0 +1,2 @@
1
+ /** Converts the first letter of a string to uppercase */
2
+ export declare function uppercaseFirstLetter(string: string): string;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Returns the first and last bounding elements that are tabbable. This is more performant than checking every single
3
+ * element because it short-circuits after finding the first and last ones.
4
+ */
5
+ export declare function getTabbableBoundary(root: HTMLElement | ShadowRoot): {
6
+ start: HTMLElement;
7
+ end: HTMLElement;
8
+ };
9
+ export declare function getTabbableElements(root: HTMLElement | ShadowRoot): HTMLElement[];
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  getBasePath
3
3
  } from "./chunks/chunk.C7624ITA.js";
4
- import "./chunks/chunk.DJOAQ4JU.js";
4
+ import "./chunks/chunk.QNDC5KWA.js";
5
5
 
6
6
  // src/synergy-autoloader.ts
7
7
  var observer = new MutationObserver((mutations) => {
package/dist/synergy.d.ts CHANGED
@@ -2,6 +2,7 @@ export { default as SynButtonGroup } from './components/button-group/button-grou
2
2
  export { default as SynButton } from './components/button/button.js';
3
3
  export { default as SynCheckbox } from './components/checkbox/checkbox.js';
4
4
  export { default as SynDivider } from './components/divider/divider.js';
5
+ export { default as SynDrawer } from './components/drawer/drawer.js';
5
6
  export { default as SynIconButton } from './components/icon-button/icon-button.js';
6
7
  export { default as SynIcon } from './components/icon/icon.js';
7
8
  export { default as SynInput } from './components/input/input.js';
package/dist/synergy.js CHANGED
@@ -1,131 +1,138 @@
1
+ import {
2
+ textarea_default
3
+ } from "./chunks/chunk.IR2PZHC7.js";
1
4
  import {
2
5
  getFormControls,
3
6
  serialize
4
- } from "./chunks/chunk.HG5QC5EW.js";
7
+ } from "./chunks/chunk.KUO3KJOC.js";
5
8
  import "./chunks/chunk.NKIYFJN2.js";
6
- import {
7
- tag_default
8
- } from "./chunks/chunk.SMSP5C6C.js";
9
- import {
10
- textarea_default
11
- } from "./chunks/chunk.5THN2K5Q.js";
12
- import "./chunks/chunk.JAKJHV44.js";
13
- import "./chunks/chunk.23HTU3YE.js";
14
- import "./chunks/chunk.YBIBWRKC.js";
15
9
  import {
16
10
  switch_default
17
- } from "./chunks/chunk.VQWUZKDS.js";
18
- import "./chunks/chunk.TUYEX4KP.js";
19
- import "./chunks/chunk.MNMITYTH.js";
20
- import "./chunks/chunk.AFEABUNX.js";
11
+ } from "./chunks/chunk.RMQZMRVP.js";
21
12
  import {
22
- radio_group_default
23
- } from "./chunks/chunk.7VOPIPHW.js";
24
- import "./chunks/chunk.OJREQD2D.js";
25
- import "./chunks/chunk.4I6M5V6O.js";
26
- import "./chunks/chunk.F4MRQLNL.js";
13
+ tag_default
14
+ } from "./chunks/chunk.5CB3CVZ7.js";
15
+ import "./chunks/chunk.HF75YRVS.js";
16
+ import "./chunks/chunk.2EI3TNL7.js";
17
+ import "./chunks/chunk.YBIBWRKC.js";
27
18
  import {
28
19
  select_default
29
- } from "./chunks/chunk.KP7SYG4K.js";
30
- import "./chunks/chunk.XXF35USM.js";
31
- import "./chunks/chunk.BQG5LF7J.js";
32
- import "./chunks/chunk.NAX6WP3D.js";
33
- import "./chunks/chunk.QHFGD6WW.js";
20
+ } from "./chunks/chunk.LZE7OXKV.js";
21
+ import "./chunks/chunk.RMZBSKRR.js";
22
+ import "./chunks/chunk.GBOII6N4.js";
34
23
  import "./chunks/chunk.7W73A57K.js";
35
- import "./chunks/chunk.6XU6OLZ3.js";
24
+ import "./chunks/chunk.BGHK4NQA.js";
36
25
  import "./chunks/chunk.OWMT6OL2.js";
26
+ import "./chunks/chunk.QNQNR3RY.js";
27
+ import "./chunks/chunk.KDDTDU4B.js";
28
+ import "./chunks/chunk.ADRKUQGR.js";
29
+ import "./chunks/chunk.W5JK7V7K.js";
37
30
  import {
38
31
  radio_default
39
- } from "./chunks/chunk.PMTVLWNZ.js";
40
- import "./chunks/chunk.CYN675Z6.js";
41
- import "./chunks/chunk.JBYBQ5TQ.js";
42
- import "./chunks/chunk.V6VND4OF.js";
32
+ } from "./chunks/chunk.FUNZW7ES.js";
43
33
  import {
44
34
  radio_button_default
45
- } from "./chunks/chunk.SXW2KV3B.js";
46
- import "./chunks/chunk.7EGCXNF2.js";
47
- import "./chunks/chunk.IKKMWFWH.js";
35
+ } from "./chunks/chunk.VATYXV2O.js";
36
+ import "./chunks/chunk.UZFPGR6M.js";
37
+ import "./chunks/chunk.ZIQXX272.js";
48
38
  import {
49
- optgroup_default
50
- } from "./chunks/chunk.5OPODPPZ.js";
51
- import "./chunks/chunk.LWXCBEHD.js";
52
- import "./chunks/chunk.KG52EHDB.js";
39
+ radio_group_default
40
+ } from "./chunks/chunk.IOPUYG6Q.js";
41
+ import "./chunks/chunk.GAPQVJGQ.js";
42
+ import "./chunks/chunk.F4MRQLNL.js";
43
+ import "./chunks/chunk.XIUSSERX.js";
53
44
  import {
54
45
  option_default
55
- } from "./chunks/chunk.6V3HOZNE.js";
56
- import "./chunks/chunk.GMUVD5B2.js";
57
- import "./chunks/chunk.W6V7TPGK.js";
58
- import "./chunks/chunk.3B24TYVN.js";
59
- import "./chunks/chunk.3ZHSSMBL.js";
60
- import "./chunks/chunk.JN7CLMQZ.js";
61
- import {
62
- icon_button_default
63
- } from "./chunks/chunk.GOVLCQY5.js";
64
- import "./chunks/chunk.XSXBQCWN.js";
65
- import "./chunks/chunk.2FN5DTS6.js";
66
- import "./chunks/chunk.OJF7KL44.js";
46
+ } from "./chunks/chunk.Y72MIUNI.js";
47
+ import "./chunks/chunk.BJYVLDYR.js";
48
+ import "./chunks/chunk.MIMALEWP.js";
49
+ import "./chunks/chunk.MDZ22YWD.js";
50
+ import "./chunks/chunk.V6VND4OF.js";
51
+ import "./chunks/chunk.PKO6FEOM.js";
67
52
  import {
68
53
  input_default
69
- } from "./chunks/chunk.ULMZHWWW.js";
70
- import "./chunks/chunk.IRT2DA6R.js";
71
- import "./chunks/chunk.EKOK7YPB.js";
72
- import "./chunks/chunk.JHXCBOUD.js";
54
+ } from "./chunks/chunk.5BMNRZ7L.js";
55
+ import "./chunks/chunk.WC5SV4TV.js";
73
56
  import "./chunks/chunk.2OLVTQ5P.js";
57
+ import "./chunks/chunk.4QS5IWYB.js";
74
58
  import {
75
- divider_default
76
- } from "./chunks/chunk.B6AKFQJS.js";
59
+ optgroup_default
60
+ } from "./chunks/chunk.AJU6C4KC.js";
61
+ import "./chunks/chunk.BGKFRWWO.js";
62
+ import "./chunks/chunk.KG52EHDB.js";
63
+ import "./chunks/chunk.5R3OVMH2.js";
64
+ import "./chunks/chunk.3B24TYVN.js";
65
+ import "./chunks/chunk.CFIQXXMW.js";
77
66
  import {
78
67
  icon_default
79
- } from "./chunks/chunk.USYR7G7Z.js";
68
+ } from "./chunks/chunk.BTZX6ZFZ.js";
80
69
  import {
81
- checkbox_default
82
- } from "./chunks/chunk.7KSU2SUD.js";
70
+ icon_button_default
71
+ } from "./chunks/chunk.ZT5DUKVA.js";
72
+ import {
73
+ divider_default
74
+ } from "./chunks/chunk.LF2XSSHD.js";
75
+ import {
76
+ drawer_default
77
+ } from "./chunks/chunk.3O5WTWSN.js";
78
+ import "./chunks/chunk.BLOH2ZNU.js";
79
+ import "./chunks/chunk.GTSRMEPE.js";
80
+ import "./chunks/chunk.QAUTITK3.js";
81
+ import "./chunks/chunk.O6AXKVFJ.js";
82
+ import "./chunks/chunk.OJF7KL44.js";
83
+ import "./chunks/chunk.LJQ7LEPV.js";
84
+ import "./chunks/chunk.UYD2OVFV.js";
85
+ import "./chunks/chunk.PHSJD47V.js";
83
86
  import {
84
87
  button_group_default
85
- } from "./chunks/chunk.RA2WSKQT.js";
86
- import "./chunks/chunk.EI34C7LC.js";
87
- import "./chunks/chunk.4ZURABYO.js";
88
- import "./chunks/chunk.HKCTVD3U.js";
89
- import "./chunks/chunk.PGCXJ2PT.js";
88
+ } from "./chunks/chunk.F4THECWA.js";
89
+ import {
90
+ checkbox_default
91
+ } from "./chunks/chunk.PRZRH7SN.js";
92
+ import "./chunks/chunk.KNXO2FGQ.js";
93
+ import "./chunks/chunk.WFAJR3FN.js";
94
+ import "./chunks/chunk.TTL762VF.js";
95
+ import "./chunks/chunk.2XZKXVMR.js";
96
+ import "./chunks/chunk.3STW62TA.js";
97
+ import "./chunks/chunk.XEI5ZP7Y.js";
90
98
  import "./chunks/chunk.FA6V2WD6.js";
99
+ import "./chunks/chunk.ACTJFDNK.js";
91
100
  import {
92
101
  button_default
93
- } from "./chunks/chunk.Q7X5NOPZ.js";
94
- import "./chunks/chunk.Z4NKFCKY.js";
95
- import "./chunks/chunk.SBEIXLRW.js";
96
- import "./chunks/chunk.N2I6HVX3.js";
97
- import "./chunks/chunk.XGXFE6IF.js";
102
+ } from "./chunks/chunk.QY6MKIMK.js";
103
+ import "./chunks/chunk.FSONLJTT.js";
104
+ import "./chunks/chunk.K3O2PP7X.js";
105
+ import "./chunks/chunk.OSBC36KQ.js";
98
106
  import "./chunks/chunk.LAB4YJYE.js";
99
107
  import "./chunks/chunk.A3SKDWCT.js";
100
- import "./chunks/chunk.OJ4KOC7R.js";
101
- import "./chunks/chunk.K55MKNUR.js";
102
- import "./chunks/chunk.5BOEKFIJ.js";
103
- import "./chunks/chunk.WFAJR3FN.js";
104
- import "./chunks/chunk.MFFJYORB.js";
105
- import "./chunks/chunk.AMTCNRDE.js";
106
- import "./chunks/chunk.4MYR27GF.js";
107
- import "./chunks/chunk.RSONAU45.js";
108
- import "./chunks/chunk.PJO6TM3T.js";
108
+ import "./chunks/chunk.SZCGMXW5.js";
109
+ import "./chunks/chunk.XGXFE6IF.js";
110
+ import "./chunks/chunk.PWMSNMDF.js";
109
111
  import {
110
112
  registerIconLibrary,
111
113
  unregisterIconLibrary
112
114
  } from "./chunks/chunk.JRXQK6LG.js";
113
115
  import "./chunks/chunk.6C4JXZZN.js";
114
116
  import "./chunks/chunk.5AAIHRMI.js";
115
- import "./chunks/chunk.VZ7S7YYN.js";
116
- import "./chunks/chunk.GHMKOVA3.js";
117
+ import "./chunks/chunk.PJO6TM3T.js";
118
+ import "./chunks/chunk.2RF7KO5I.js";
119
+ import "./chunks/chunk.AVTU2BGE.js";
117
120
  import {
118
121
  getBasePath,
119
122
  setBasePath
120
123
  } from "./chunks/chunk.C7624ITA.js";
121
- import "./chunks/chunk.O7USYXBT.js";
122
- import "./chunks/chunk.2XZKXVMR.js";
123
- import "./chunks/chunk.DJOAQ4JU.js";
124
+ import "./chunks/chunk.K55MKNUR.js";
125
+ import "./chunks/chunk.SJMMPKWP.js";
126
+ import "./chunks/chunk.6MS3WNDW.js";
127
+ import "./chunks/chunk.3DE5ARIC.js";
128
+ import "./chunks/chunk.A7IIJ2LL.js";
129
+ import "./chunks/chunk.QNDC5KWA.js";
124
130
  export {
125
131
  button_default as SynButton,
126
132
  button_group_default as SynButtonGroup,
127
133
  checkbox_default as SynCheckbox,
128
134
  divider_default as SynDivider,
135
+ drawer_default as SynDrawer,
129
136
  icon_default as SynIcon,
130
137
  icon_button_default as SynIconButton,
131
138
  input_default as SynInput,
@@ -0,0 +1,29 @@
1
+ /*
2
+ * This file contains utility classes that can't be contained in a component and must be applied to the light DOM. None
3
+ * of the rules in this stylesheet should target component tags or HTML tags, and all classes *must* start with ".syn-"
4
+ * to reduce the possibility of collisions.
5
+ */
6
+
7
+ .syn-scroll-lock {
8
+ overflow: hidden !important;
9
+ padding-right: var(--syn-scroll-lock-size) !important;
10
+ }
11
+
12
+ .syn-toast-stack {
13
+ inset-inline-end: 0;
14
+ max-height: 100%;
15
+ max-width: 100%;
16
+ overflow: auto;
17
+ position: fixed;
18
+ top: 0;
19
+ width: 28rem;
20
+ z-index: var(--syn-z-index-toast);
21
+ }
22
+
23
+ .syn-toast-stack syn-alert {
24
+ margin: var(--syn-spacing-medium);
25
+ }
26
+
27
+ .syn-toast-stack syn-alert::part(base) {
28
+ box-shadow: var(--syn-shadow-large);
29
+ }
@@ -2,7 +2,7 @@ import {
2
2
  registerTranslation
3
3
  } from "../chunks/chunk.LAB4YJYE.js";
4
4
  import "../chunks/chunk.A3SKDWCT.js";
5
- import "../chunks/chunk.DJOAQ4JU.js";
5
+ import "../chunks/chunk.QNDC5KWA.js";
6
6
 
7
7
  // src/translations/de.ts
8
8
  var translation = {
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  en_default
3
3
  } from "../chunks/chunk.A3SKDWCT.js";
4
- import "../chunks/chunk.DJOAQ4JU.js";
4
+ import "../chunks/chunk.QNDC5KWA.js";
5
5
  export {
6
6
  en_default as default
7
7
  };
@@ -2,8 +2,8 @@ import {
2
2
  getAnimation,
3
3
  setAnimation,
4
4
  setDefaultAnimation
5
- } from "../chunks/chunk.BQG5LF7J.js";
6
- import "../chunks/chunk.DJOAQ4JU.js";
5
+ } from "../chunks/chunk.QAUTITK3.js";
6
+ import "../chunks/chunk.QNDC5KWA.js";
7
7
  export {
8
8
  getAnimation,
9
9
  setAnimation,
@@ -2,7 +2,7 @@ import {
2
2
  getBasePath,
3
3
  setBasePath
4
4
  } from "../chunks/chunk.C7624ITA.js";
5
- import "../chunks/chunk.DJOAQ4JU.js";
5
+ import "../chunks/chunk.QNDC5KWA.js";
6
6
  export {
7
7
  getBasePath,
8
8
  setBasePath
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getFormControls,
3
3
  serialize
4
- } from "../chunks/chunk.HG5QC5EW.js";
5
- import "../chunks/chunk.AMTCNRDE.js";
6
- import "../chunks/chunk.DJOAQ4JU.js";
4
+ } from "../chunks/chunk.KUO3KJOC.js";
5
+ import "../chunks/chunk.SZCGMXW5.js";
6
+ import "../chunks/chunk.QNDC5KWA.js";
7
7
  export {
8
8
  getFormControls,
9
9
  serialize
@@ -6,7 +6,7 @@ import {
6
6
  import "../chunks/chunk.6C4JXZZN.js";
7
7
  import "../chunks/chunk.5AAIHRMI.js";
8
8
  import "../chunks/chunk.C7624ITA.js";
9
- import "../chunks/chunk.DJOAQ4JU.js";
9
+ import "../chunks/chunk.QNDC5KWA.js";
10
10
  export {
11
11
  registerIconLibrary,
12
12
  unregisterIconLibrary
@@ -3,7 +3,7 @@ import {
3
3
  registerTranslation
4
4
  } from "../chunks/chunk.LAB4YJYE.js";
5
5
  import "../chunks/chunk.A3SKDWCT.js";
6
- import "../chunks/chunk.DJOAQ4JU.js";
6
+ import "../chunks/chunk.QNDC5KWA.js";
7
7
  export {
8
8
  LocalizeController,
9
9
  registerTranslation
@@ -2,6 +2,23 @@
2
2
  "$schema": "https://raw.githubusercontent.com/microsoft/vscode-html-languageservice/main/docs/customData.schema.json",
3
3
  "version": 1.1,
4
4
  "tags": [
5
+ {
6
+ "name": "syn-button-group",
7
+ "description": "Button groups can be used to group related buttons into sections.\n---\n\n\n### **Slots:**\n - _default_ - One or more `<syn-button>` elements to display in the button group.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
8
+ "attributes": [
9
+ {
10
+ "name": "label",
11
+ "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.",
12
+ "values": []
13
+ }
14
+ ],
15
+ "references": [
16
+ {
17
+ "name": "Documentation",
18
+ "url": "https://synergy.style/components/button-group"
19
+ }
20
+ ]
21
+ },
5
22
  {
6
23
  "name": "syn-button",
7
24
  "description": "Buttons represent actions that are available to the user.\n---\n\n\n### **Events:**\n - **syn-blur** - Emitted when the button loses focus.\n- **syn-focus** - Emitted when the button gains focus.\n- **syn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the button.\n- **focus(options: _FocusOptions_)** - Sets focus on the button.\n- **blur()** - Removes focus from the button.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The button's label.\n- **prefix** - A presentational prefix icon or similar element.\n- **suffix** - A presentational suffix icon or similar element.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **prefix** - The container that wraps the prefix.\n- **label** - The button's label.\n- **suffix** - The container that wraps the suffix.\n- **caret** - The button's caret icon, an `<syn-icon>` element.\n- **spinner** - The spinner that shows when the button is in the loading state.",
@@ -131,26 +148,9 @@
131
148
  }
132
149
  ]
133
150
  },
134
- {
135
- "name": "syn-button-group",
136
- "description": "Button groups can be used to group related buttons into sections.\n---\n\n\n### **Slots:**\n - _default_ - One or more `<syn-button>` elements to display in the button group.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.",
137
- "attributes": [
138
- {
139
- "name": "label",
140
- "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.",
141
- "values": []
142
- }
143
- ],
144
- "references": [
145
- {
146
- "name": "Documentation",
147
- "url": "https://synergy.style/components/button-group"
148
- }
149
- ]
150
- },
151
151
  {
152
152
  "name": "syn-checkbox",
153
- "description": "Checkboxes allow the user to toggle an option on or off.\n---\n\n\n### **Events:**\n - **syn-blur** - Emitted when the checkbox loses focus.\n- **syn-change** - Emitted when the checked state changes.\n- **syn-focus** - Emitted when the checkbox gains focus.\n- **syn-input** - Emitted when the checkbox receives input.\n- **syn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the checkbox.\n- **focus(options: _FocusOptions_)** - Sets focus on the checkbox.\n- **blur()** - Removes focus from the checkbox.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The checkbox's label.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the checkbox's checked state.\n- **control--checked** - Matches the control part when the checkbox is checked.\n- **control--indeterminate** - Matches the control part when the checkbox is indeterminate.\n- **checked-icon** - The checked icon, an `<syn-icon>` element.\n- **indeterminate-icon** - The indeterminate icon, an `<syn-icon>` element.\n- **label** - The container that wraps the checkbox's label.",
153
+ "description": "Checkboxes allow the user to toggle an option on or off.\n---\n\n\n### **Events:**\n - **syn-blur** - Emitted when the checkbox loses focus.\n- **syn-change** - Emitted when the checked state changes.\n- **syn-focus** - Emitted when the checkbox gains focus.\n- **syn-input** - Emitted when the checkbox receives input.\n- **syn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the checkbox.\n- **focus(options: _FocusOptions_)** - Sets focus on the checkbox.\n- **blur()** - Removes focus from the checkbox.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string.\n\n### **Slots:**\n - _default_ - The checkbox's label.\n- **help-text** - Text that describes how to use the checkbox. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The square container that wraps the checkbox's checked state.\n- **control--checked** - Matches the control part when the checkbox is checked.\n- **control--indeterminate** - Matches the control part when the checkbox is indeterminate.\n- **checked-icon** - The checked icon, an `<syn-icon>` element.\n- **indeterminate-icon** - The indeterminate icon, an `<syn-icon>` element.\n- **label** - The container that wraps the checkbox's label.\n- **form-control-help-text** - The help text's wrapper.",
154
154
  "attributes": [
155
155
  { "name": "title", "values": [] },
156
156
  {
@@ -196,6 +196,11 @@
196
196
  "name": "required",
197
197
  "description": "Makes the checkbox a required field.",
198
198
  "values": []
199
+ },
200
+ {
201
+ "name": "help-text",
202
+ "description": "The checkbox's help text. If you need to display HTML, use the `help-text` slot instead.",
203
+ "values": []
199
204
  }
200
205
  ],
201
206
  "references": [
@@ -222,6 +227,48 @@
222
227
  }
223
228
  ]
224
229
  },
230
+ {
231
+ "name": "syn-drawer",
232
+ "description": "Drawers slide in from a container to expose additional options and information.\n---\n\n\n### **Events:**\n - **syn-show** - Emitted when the drawer opens.\n- **syn-after-show** - Emitted after the drawer opens and all animations are complete.\n- **syn-hide** - Emitted when the drawer closes.\n- **syn-after-hide** - Emitted after the drawer closes and all animations are complete.\n- **syn-initial-focus** - Emitted when the drawer opens and is ready to receive focus. Calling `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.\n- **syn-request-close** - Emitted when the user attempts to close the drawer by clicking the close button, clicking the overlay, or pressing escape. Calling `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in destructive behavior such as data loss.\n\n### **Methods:**\n - **show()** - Shows the drawer.\n- **hide()** - Hides the drawer\n\n### **Slots:**\n - _default_ - The drawer's main content.\n- **label** - The drawer's label. Alternatively, you can use the `label` attribute.\n- **header-actions** - Optional actions to add to the header. Works best with `<syn-icon-button>`.\n- **footer** - The drawer's footer, usually one or more buttons representing various options.\n\n### **CSS Properties:**\n - **--size** - The preferred size of the drawer. This will be applied to the drawer's width or height depending on its `placement`. Note that the drawer will shrink to accommodate smaller screens. _(default: undefined)_\n- **--header-spacing** - The amount of padding to use for the header. _(default: undefined)_\n- **--body-spacing** - The amount of padding to use for the body. _(default: undefined)_\n- **--footer-spacing** - The amount of padding to use for the footer. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **overlay** - The overlay that covers the screen behind the drawer.\n- **panel** - The drawer's panel (where the drawer and its content are rendered).\n- **header** - The drawer's header. This element wraps the title and header actions.\n- **header-actions** - Optional actions to add to the header. Works best with `<syn-icon-button>`.\n- **title** - The drawer's title.\n- **close-button** - The close button, an `<syn-icon-button>`.\n- **close-button__base** - The close button's exported `base` part.\n- **body** - The drawer's body.\n- **footer** - The drawer's footer.",
233
+ "attributes": [
234
+ {
235
+ "name": "open",
236
+ "description": "Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can\nuse the `show()` and `hide()` methods and this attribute will reflect the drawer's open state.",
237
+ "values": []
238
+ },
239
+ {
240
+ "name": "label",
241
+ "description": "The drawer's label as displayed in the header. You should always include a relevant label even when using\n`no-header`, as it is required for proper accessibility. If you need to display HTML, use the `label` slot instead.",
242
+ "values": []
243
+ },
244
+ {
245
+ "name": "placement",
246
+ "description": "The direction from which the drawer will open.",
247
+ "values": [
248
+ { "name": "top" },
249
+ { "name": "end" },
250
+ { "name": "bottom" },
251
+ { "name": "start" }
252
+ ]
253
+ },
254
+ {
255
+ "name": "contained",
256
+ "description": "By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of\nits parent element, set this attribute and add `position: relative` to the parent.",
257
+ "values": []
258
+ },
259
+ {
260
+ "name": "no-header",
261
+ "description": "Removes the header. This will also remove the default close button, so please ensure you provide an easy,\naccessible way for users to dismiss the drawer.",
262
+ "values": []
263
+ }
264
+ ],
265
+ "references": [
266
+ {
267
+ "name": "Documentation",
268
+ "url": "https://synergy.style/components/drawer"
269
+ }
270
+ ]
271
+ },
225
272
  {
226
273
  "name": "syn-icon",
227
274
  "description": "Icons are symbols that can be used to represent various options within an application.\n---\n\n\n### **Events:**\n - **syn-load** - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.\n- **syn-error** - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.\n\n### **CSS Parts:**\n - **svg** - The internal SVG element.\n- **use** - The <use> element generated when using `spriteSheet: true`",
@@ -569,7 +616,7 @@
569
616
  },
570
617
  {
571
618
  "name": "syn-popup",
572
- "description": "Popup is a utility that lets you declaratively anchor \"popup\" containers to another element.\n---\n\n\n### **Events:**\n - **syn-reposition** - Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive operations in your listener or consider debouncing it.\n\n### **Methods:**\n - **reposition()** - Forces the popup to recalculate and reposition itself.\n\n### **Slots:**\n - _default_ - The popup's content.\n- **anchor** - 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.\n\n### **CSS Properties:**\n - **--arrow-size** - The size of the arrow. Note that an arrow won't be shown unless the `arrow` attribute is used. _(default: 6px)_\n- **--arrow-color** - The color of the arrow. _(default: var(--syn-color-neutral-0))_\n- **--auto-size-available-width** - 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`. _(default: undefined)_\n- **--auto-size-available-height** - 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`. _(default: undefined)_\n\n### **CSS Parts:**\n - **arrow** - 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.\n- **popup** - The popup's container. Useful for setting a background color, box shadow, etc.",
619
+ "description": "Popup is a utility that lets you declaratively anchor \"popup\" containers to another element.\n---\n\n\n### **Events:**\n - **syn-reposition** - Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive operations in your listener or consider debouncing it.\n\n### **Methods:**\n - **reposition()** - Forces the popup to recalculate and reposition itself.\n\n### **Slots:**\n - _default_ - The popup's content.\n- **anchor** - 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.\n\n### **CSS Properties:**\n - **--arrow-size** - The size of the arrow. Note that an arrow won't be shown unless the `arrow` attribute is used. _(default: 6px)_\n- **--arrow-color** - The color of the arrow. _(default: var(--syn-color-neutral-0))_\n- **--auto-size-available-width** - 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`. _(default: undefined)_\n- **--auto-size-available-height** - 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`. _(default: undefined)_\n\n### **CSS Parts:**\n - **arrow** - 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.\n- **popup** - The popup's container. Useful for setting a background color, box shadow, etc.\n- **hover-bridge** - The hover bridge element. Only available when the `hover-bridge` option is enabled.",
573
620
  "attributes": [
574
621
  {
575
622
  "name": "anchor",
@@ -702,6 +749,11 @@
702
749
  "name": "auto-size-padding",
703
750
  "description": "The amount of padding, in pixels, to exceed before the auto-size behavior will occur.",
704
751
  "values": []
752
+ },
753
+ {
754
+ "name": "hover-bridge",
755
+ "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.",
756
+ "values": []
705
757
  }
706
758
  ],
707
759
  "references": [
@@ -775,7 +827,7 @@
775
827
  },
776
828
  {
777
829
  "name": "syn-radio-group",
778
- "description": "Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.\n---\n\n\n### **Events:**\n - **syn-change** - Emitted when the radio group's selected value changes.\n- **syn-input** - Emitted when the radio group receives user input.\n- **syn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The default slot where `<syn-radio>` or `<syn-radio-button>` elements are placed.\n- **label** - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label` attribute.\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The input's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **button-group** - The button group that wraps radio buttons.\n- **button-group__base** - The button group's `base` part.",
830
+ "description": "Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.\n---\n\n\n### **Events:**\n - **syn-change** - Emitted when the radio group's selected value changes.\n- **syn-input** - Emitted when the radio group receives user input.\n- **syn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity(): _boolean_** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The default slot where `<syn-radio>` or `<syn-radio-button>` elements are placed.\n- **label** - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label` attribute.\n- **help-text** - Text that describes how to use the radio group. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Parts:**\n - **form-control** - The form control that wraps the label, input, and help text.\n- **form-control-label** - The label's wrapper.\n- **form-control-input** - The input's wrapper.\n- **form-control-help-text** - The help text's wrapper.\n- **button-group** - The button group that wraps radio buttons.\n- **button-group__base** - The button group's `base` part.",
779
831
  "attributes": [
780
832
  {
781
833
  "name": "label",
@@ -936,7 +988,7 @@
936
988
  },
937
989
  {
938
990
  "name": "syn-switch",
939
- "description": "Switches allow the user to toggle an option on or off.\n---\n\n\n### **Events:**\n - **syn-blur** - Emitted when the control loses focus.\n- **syn-change** - Emitted when the control's checked state changes.\n- **syn-input** - Emitted when the control receives input.\n- **syn-focus** - Emitted when the control gains focus.\n- **syn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the switch.\n- **focus(options: _FocusOptions_)** - Sets focus on the switch.\n- **blur()** - Removes focus from the switch.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The switch's label.\n\n### **CSS Properties:**\n - **--width** - The width of the switch. _(default: undefined)_\n- **--height** - The height of the switch. _(default: undefined)_\n- **--thumb-size** - The size of the thumb. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The control that houses the switch's thumb.\n- **thumb** - The switch's thumb.\n- **label** - The switch's label.",
991
+ "description": "Switches allow the user to toggle an option on or off.\n---\n\n\n### **Events:**\n - **syn-blur** - Emitted when the control loses focus.\n- **syn-change** - Emitted when the control's checked state changes.\n- **syn-input** - Emitted when the control receives input.\n- **syn-focus** - Emitted when the control gains focus.\n- **syn-invalid** - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n\n### **Methods:**\n - **click()** - Simulates a click on the switch.\n- **focus(options: _FocusOptions_)** - Sets focus on the switch.\n- **blur()** - Removes focus from the switch.\n- **checkValidity()** - Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid.\n- **getForm(): _HTMLFormElement | null_** - Gets the associated form, if one exists.\n- **reportValidity()** - Checks for validity and shows the browser's validation message if the control is invalid.\n- **setCustomValidity(message: _string_)** - Sets a custom validation message. Pass an empty string to restore validity.\n\n### **Slots:**\n - _default_ - The switch's label.\n- **help-text** - Text that describes how to use the switch. Alternatively, you can use the `help-text` attribute.\n\n### **CSS Properties:**\n - **--width** - The width of the switch. _(default: undefined)_\n- **--height** - The height of the switch. _(default: undefined)_\n- **--thumb-size** - The size of the thumb. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The component's base wrapper.\n- **control** - The control that houses the switch's thumb.\n- **thumb** - The switch's thumb.\n- **label** - The switch's label.\n- **form-control-help-text** - The help text's wrapper.",
940
992
  "attributes": [
941
993
  { "name": "title", "values": [] },
942
994
  {
@@ -977,6 +1029,11 @@
977
1029
  "name": "required",
978
1030
  "description": "Makes the switch a required field.",
979
1031
  "values": []
1032
+ },
1033
+ {
1034
+ "name": "help-text",
1035
+ "description": "The switch's help text. If you need to display HTML, use the `help-text` slot instead.",
1036
+ "values": []
980
1037
  }
981
1038
  ],
982
1039
  "references": [