@synergy-design-system/components 1.11.0 → 1.12.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 (224) hide show
  1. package/dist/chunks/{chunk.RRG6TAY7.js → chunk.25VU42YC.js} +2 -2
  2. package/dist/chunks/{chunk.EGIUUFQ4.js → chunk.2HCVVOEV.js} +2 -2
  3. package/dist/chunks/chunk.2KYFCKCK.js +10 -0
  4. package/dist/chunks/chunk.2KYFCKCK.js.map +7 -0
  5. package/dist/chunks/chunk.2QOQY4ZG.js +132 -0
  6. package/dist/chunks/chunk.2QOQY4ZG.js.map +7 -0
  7. package/dist/chunks/{chunk.GTSRMEPE.js → chunk.2QYALZBT.js} +2 -51
  8. package/dist/chunks/chunk.2QYALZBT.js.map +7 -0
  9. package/dist/chunks/chunk.3FOVDOJX.js +26 -0
  10. package/dist/chunks/chunk.3FOVDOJX.js.map +7 -0
  11. package/dist/chunks/{chunk.HSC2UWAO.js → chunk.3V2G5ZN5.js} +8 -8
  12. package/dist/chunks/chunk.55KPESRA.js +131 -0
  13. package/dist/chunks/chunk.55KPESRA.js.map +7 -0
  14. package/dist/chunks/{chunk.G5AYV6GN.js → chunk.5D6C4M2C.js} +6 -6
  15. package/dist/chunks/{chunk.OEBVCWZK.js → chunk.5IL2WT3S.js} +2 -2
  16. package/dist/chunks/{chunk.XOQKLUKE.js → chunk.5UM7HWIJ.js} +2 -2
  17. package/dist/chunks/{chunk.TIZ7TBXR.js → chunk.62EBS3GI.js} +2 -2
  18. package/dist/chunks/{chunk.XGXFE6IF.js → chunk.66WXVGAW.js} +16 -2
  19. package/dist/chunks/{chunk.XGXFE6IF.js.map → chunk.66WXVGAW.js.map} +1 -1
  20. package/dist/chunks/{chunk.DAQB7JE5.js → chunk.6CAMLQSC.js} +2 -2
  21. package/dist/chunks/chunk.6G5WBKTI.js +35 -0
  22. package/dist/chunks/chunk.6G5WBKTI.js.map +7 -0
  23. package/dist/chunks/chunk.76A3JS2N.js +12 -0
  24. package/dist/chunks/chunk.76A3JS2N.js.map +7 -0
  25. package/dist/chunks/chunk.7BEVGRQ2.js +52 -0
  26. package/dist/chunks/chunk.7BEVGRQ2.js.map +7 -0
  27. package/dist/chunks/{chunk.OQ72PVRS.js → chunk.B7UA4FRG.js} +2 -2
  28. package/dist/chunks/{chunk.24VV3YAD.js → chunk.BRWLHYC5.js} +3 -3
  29. package/dist/chunks/{chunk.HZDJ5AOY.js → chunk.BUBQFHSV.js} +3 -3
  30. package/dist/chunks/{chunk.YJO3VNKR.js → chunk.D3SWRAXW.js} +2 -2
  31. package/dist/chunks/chunk.ENYO4NCR.js +21 -0
  32. package/dist/chunks/chunk.ENYO4NCR.js.map +7 -0
  33. package/dist/chunks/{chunk.L6ENEGDU.js → chunk.FTTKC5YD.js} +2 -2
  34. package/dist/chunks/{chunk.P2PJU2JX.js → chunk.G5TO77WM.js} +2 -2
  35. package/dist/chunks/chunk.GAES53RX.js +12 -0
  36. package/dist/chunks/chunk.GAES53RX.js.map +7 -0
  37. package/dist/chunks/chunk.HUCNUF4L.js +194 -0
  38. package/dist/chunks/chunk.HUCNUF4L.js.map +7 -0
  39. package/dist/chunks/{chunk.6QB26MQP.js → chunk.I2E3UJIK.js} +7 -7
  40. package/dist/chunks/{chunk.MTUGTGK4.js → chunk.IQK6FVMW.js} +2 -2
  41. package/dist/chunks/{chunk.5NLSHXNC.js → chunk.ISU5BF2G.js} +2 -2
  42. package/dist/chunks/{chunk.TWO26WWF.js → chunk.JT32Q3RE.js} +4 -4
  43. package/dist/chunks/{chunk.XOIRFMBL.js → chunk.KDY26CBL.js} +3 -3
  44. package/dist/chunks/{chunk.NJPQTVZC.js → chunk.KNZNW4VS.js} +3 -3
  45. package/dist/chunks/{chunk.WGHLFFPZ.js → chunk.MFHUNGFO.js} +5 -5
  46. package/dist/chunks/{chunk.C5HHWDZB.js → chunk.MWXEDKNQ.js} +2 -2
  47. package/dist/chunks/{chunk.HIBWKIA6.js → chunk.N3SVWIVG.js} +3 -3
  48. package/dist/chunks/{chunk.RUEZLCM4.js → chunk.NOUFWET6.js} +2 -2
  49. package/dist/chunks/{chunk.EK3YHGUC.js → chunk.NYY4POP7.js} +3 -3
  50. package/dist/chunks/chunk.OOABXWCW.js +111 -0
  51. package/dist/chunks/chunk.OOABXWCW.js.map +7 -0
  52. package/dist/chunks/chunk.PDHVYHXD.js +156 -0
  53. package/dist/chunks/chunk.PDHVYHXD.js.map +7 -0
  54. package/dist/chunks/chunk.PFJUBUDL.js +12 -0
  55. package/dist/chunks/chunk.PFJUBUDL.js.map +7 -0
  56. package/dist/chunks/{chunk.KBQDYKZQ.js → chunk.PLIQ6RPD.js} +2 -2
  57. package/dist/chunks/{chunk.XOL5KILI.js → chunk.PN6VIFO3.js} +10 -8
  58. package/dist/chunks/{chunk.XOL5KILI.js.map → chunk.PN6VIFO3.js.map} +1 -1
  59. package/dist/chunks/{chunk.42OELSP4.js → chunk.PQKD6OYF.js} +2 -2
  60. package/dist/chunks/{chunk.27H5YFFI.js → chunk.QDYPBFX4.js} +5 -5
  61. package/dist/chunks/{chunk.C64JGJO3.js → chunk.QXUPCXT5.js} +2 -2
  62. package/dist/chunks/{chunk.RKCUJRKU.js → chunk.R6GYAHAZ.js} +3 -3
  63. package/dist/chunks/chunk.RD2376VJ.js +12 -0
  64. package/dist/chunks/chunk.RD2376VJ.js.map +7 -0
  65. package/dist/chunks/chunk.RRWSXFQ5.js +239 -0
  66. package/dist/chunks/chunk.RRWSXFQ5.js.map +7 -0
  67. package/dist/chunks/chunk.RSSY7KPD.js +24 -0
  68. package/dist/chunks/chunk.RSSY7KPD.js.map +7 -0
  69. package/dist/chunks/{chunk.WJX2T5MU.js → chunk.SJCYCGUZ.js} +6 -6
  70. package/dist/chunks/chunk.SLCYXMHB.js +57 -0
  71. package/dist/chunks/chunk.SLCYXMHB.js.map +7 -0
  72. package/dist/chunks/{chunk.CHESV63R.js → chunk.TYPMG2S4.js} +2 -2
  73. package/dist/chunks/{chunk.HQC36QXK.js → chunk.VKSYJXTN.js} +18 -133
  74. package/dist/chunks/chunk.VKSYJXTN.js.map +7 -0
  75. package/dist/chunks/{chunk.3GR4ZUZH.js → chunk.W2GO4M3V.js} +2 -2
  76. package/dist/chunks/chunk.WATON67O.js +12 -0
  77. package/dist/chunks/chunk.WATON67O.js.map +7 -0
  78. package/dist/chunks/{chunk.Q3LOBGRV.js → chunk.WMAUFYXR.js} +2 -2
  79. package/dist/chunks/{chunk.JAHRZFQ6.js → chunk.WWMWREE4.js} +4 -4
  80. package/dist/chunks/{chunk.WPY6PWSD.js → chunk.X3D3MBIH.js} +2 -2
  81. package/dist/chunks/{chunk.WPY6PWSD.js.map → chunk.X3D3MBIH.js.map} +1 -1
  82. package/dist/chunks/chunk.X6GR6IA2.js +29 -0
  83. package/dist/chunks/chunk.X6GR6IA2.js.map +7 -0
  84. package/dist/chunks/{chunk.5Q46XTEM.js → chunk.YGF5AV75.js} +2 -2
  85. package/dist/chunks/chunk.ZZKLLRUA.js +365 -0
  86. package/dist/chunks/chunk.ZZKLLRUA.js.map +7 -0
  87. package/dist/components/button/button.component.js +7 -7
  88. package/dist/components/button/button.js +8 -8
  89. package/dist/components/button-group/button-group.component.js +2 -2
  90. package/dist/components/button-group/button-group.js +3 -3
  91. package/dist/components/checkbox/checkbox.component.js +6 -6
  92. package/dist/components/checkbox/checkbox.js +7 -7
  93. package/dist/components/divider/divider.component.js +2 -2
  94. package/dist/components/divider/divider.js +3 -3
  95. package/dist/components/drawer/drawer.component.js +11 -9
  96. package/dist/components/drawer/drawer.js +12 -10
  97. package/dist/components/dropdown/dropdown.component.d.ts +96 -0
  98. package/dist/components/dropdown/dropdown.component.js +19 -0
  99. package/dist/components/dropdown/dropdown.component.js.map +7 -0
  100. package/dist/components/dropdown/dropdown.custom.styles.d.ts +2 -0
  101. package/dist/components/dropdown/dropdown.custom.styles.js +8 -0
  102. package/dist/components/dropdown/dropdown.custom.styles.js.map +7 -0
  103. package/dist/components/dropdown/dropdown.d.ts +8 -0
  104. package/dist/components/dropdown/dropdown.js +20 -0
  105. package/dist/components/dropdown/dropdown.js.map +7 -0
  106. package/dist/components/dropdown/dropdown.styles.d.ts +2 -0
  107. package/dist/components/dropdown/dropdown.styles.js +8 -0
  108. package/dist/components/dropdown/dropdown.styles.js.map +7 -0
  109. package/dist/components/header/header.component.js +7 -7
  110. package/dist/components/header/header.js +8 -8
  111. package/dist/components/icon/icon.component.js +4 -4
  112. package/dist/components/icon/icon.js +5 -5
  113. package/dist/components/icon-button/icon-button.component.js +5 -5
  114. package/dist/components/icon-button/icon-button.js +6 -6
  115. package/dist/components/input/input.component.js +7 -7
  116. package/dist/components/input/input.js +8 -8
  117. package/dist/components/menu/menu.component.d.ts +39 -0
  118. package/dist/components/menu/menu.component.js +11 -0
  119. package/dist/components/menu/menu.component.js.map +7 -0
  120. package/dist/components/menu/menu.custom.styles.d.ts +2 -0
  121. package/dist/components/menu/menu.custom.styles.js +8 -0
  122. package/dist/components/menu/menu.custom.styles.js.map +7 -0
  123. package/dist/components/menu/menu.d.ts +8 -0
  124. package/dist/components/menu/menu.js +12 -0
  125. package/dist/components/menu/menu.js.map +7 -0
  126. package/dist/components/menu/menu.styles.d.ts +2 -0
  127. package/dist/components/menu/menu.styles.js +8 -0
  128. package/dist/components/menu/menu.styles.js.map +7 -0
  129. package/dist/components/menu-item/menu-item.component.d.ts +67 -0
  130. package/dist/components/menu-item/menu-item.component.js +27 -0
  131. package/dist/components/menu-item/menu-item.component.js.map +7 -0
  132. package/dist/components/menu-item/menu-item.custom.styles.d.ts +2 -0
  133. package/dist/components/menu-item/menu-item.custom.styles.js +8 -0
  134. package/dist/components/menu-item/menu-item.custom.styles.js.map +7 -0
  135. package/dist/components/menu-item/menu-item.d.ts +8 -0
  136. package/dist/components/menu-item/menu-item.js +28 -0
  137. package/dist/components/menu-item/menu-item.js.map +7 -0
  138. package/dist/components/menu-item/menu-item.styles.d.ts +2 -0
  139. package/dist/components/menu-item/menu-item.styles.js +8 -0
  140. package/dist/components/menu-item/menu-item.styles.js.map +7 -0
  141. package/dist/components/menu-item/submenu-controller.d.ts +36 -0
  142. package/dist/components/menu-item/submenu-controller.js +11 -0
  143. package/dist/components/menu-item/submenu-controller.js.map +7 -0
  144. package/dist/components/menu-label/menu-label.component.d.ts +31 -0
  145. package/dist/components/menu-label/menu-label.component.js +15 -0
  146. package/dist/components/menu-label/menu-label.component.js.map +7 -0
  147. package/dist/components/menu-label/menu-label.custom.styles.d.ts +2 -0
  148. package/dist/components/menu-label/menu-label.custom.styles.js +8 -0
  149. package/dist/components/menu-label/menu-label.custom.styles.js.map +7 -0
  150. package/dist/components/menu-label/menu-label.d.ts +8 -0
  151. package/dist/components/menu-label/menu-label.js +16 -0
  152. package/dist/components/menu-label/menu-label.js.map +7 -0
  153. package/dist/components/menu-label/menu-label.styles.d.ts +2 -0
  154. package/dist/components/menu-label/menu-label.styles.js +8 -0
  155. package/dist/components/menu-label/menu-label.styles.js.map +7 -0
  156. package/dist/components/optgroup/optgroup.component.js +4 -4
  157. package/dist/components/optgroup/optgroup.js +5 -5
  158. package/dist/components/option/option.component.js +5 -5
  159. package/dist/components/option/option.js +6 -6
  160. package/dist/components/popup/popup.component.js +2 -2
  161. package/dist/components/popup/popup.d.ts +8 -0
  162. package/dist/components/popup/popup.js +11 -0
  163. package/dist/components/popup/popup.js.map +7 -0
  164. package/dist/components/radio/radio.component.js +5 -5
  165. package/dist/components/radio/radio.js +6 -6
  166. package/dist/components/radio-button/radio-button.component.js +3 -3
  167. package/dist/components/radio-button/radio-button.js +4 -4
  168. package/dist/components/radio-group/radio-group.component.js +5 -5
  169. package/dist/components/radio-group/radio-group.js +6 -6
  170. package/dist/components/select/select.component.js +13 -12
  171. package/dist/components/select/select.js +14 -13
  172. package/dist/components/spinner/spinner.component.js +2 -2
  173. package/dist/components/switch/switch.component.js +3 -3
  174. package/dist/components/switch/switch.js +4 -4
  175. package/dist/components/tag/tag.component.js +6 -6
  176. package/dist/components/tag/tag.js +7 -7
  177. package/dist/components/textarea/textarea.component.js +3 -3
  178. package/dist/components/textarea/textarea.js +4 -4
  179. package/dist/custom-elements.json +1993 -1134
  180. package/dist/events/events.d.ts +1 -0
  181. package/dist/events/syn-select.d.ts +9 -0
  182. package/dist/synergy.d.ts +5 -0
  183. package/dist/synergy.js +96 -61
  184. package/dist/themes/utility.css +12 -3
  185. package/dist/vscode.html-custom-data.json +137 -17
  186. package/package.json +2 -2
  187. package/dist/chunks/chunk.GTSRMEPE.js.map +0 -7
  188. package/dist/chunks/chunk.HQC36QXK.js.map +0 -7
  189. /package/dist/chunks/{chunk.RRG6TAY7.js.map → chunk.25VU42YC.js.map} +0 -0
  190. /package/dist/chunks/{chunk.EGIUUFQ4.js.map → chunk.2HCVVOEV.js.map} +0 -0
  191. /package/dist/chunks/{chunk.HSC2UWAO.js.map → chunk.3V2G5ZN5.js.map} +0 -0
  192. /package/dist/chunks/{chunk.G5AYV6GN.js.map → chunk.5D6C4M2C.js.map} +0 -0
  193. /package/dist/chunks/{chunk.OEBVCWZK.js.map → chunk.5IL2WT3S.js.map} +0 -0
  194. /package/dist/chunks/{chunk.XOQKLUKE.js.map → chunk.5UM7HWIJ.js.map} +0 -0
  195. /package/dist/chunks/{chunk.TIZ7TBXR.js.map → chunk.62EBS3GI.js.map} +0 -0
  196. /package/dist/chunks/{chunk.DAQB7JE5.js.map → chunk.6CAMLQSC.js.map} +0 -0
  197. /package/dist/chunks/{chunk.OQ72PVRS.js.map → chunk.B7UA4FRG.js.map} +0 -0
  198. /package/dist/chunks/{chunk.24VV3YAD.js.map → chunk.BRWLHYC5.js.map} +0 -0
  199. /package/dist/chunks/{chunk.HZDJ5AOY.js.map → chunk.BUBQFHSV.js.map} +0 -0
  200. /package/dist/chunks/{chunk.YJO3VNKR.js.map → chunk.D3SWRAXW.js.map} +0 -0
  201. /package/dist/chunks/{chunk.L6ENEGDU.js.map → chunk.FTTKC5YD.js.map} +0 -0
  202. /package/dist/chunks/{chunk.P2PJU2JX.js.map → chunk.G5TO77WM.js.map} +0 -0
  203. /package/dist/chunks/{chunk.6QB26MQP.js.map → chunk.I2E3UJIK.js.map} +0 -0
  204. /package/dist/chunks/{chunk.MTUGTGK4.js.map → chunk.IQK6FVMW.js.map} +0 -0
  205. /package/dist/chunks/{chunk.5NLSHXNC.js.map → chunk.ISU5BF2G.js.map} +0 -0
  206. /package/dist/chunks/{chunk.TWO26WWF.js.map → chunk.JT32Q3RE.js.map} +0 -0
  207. /package/dist/chunks/{chunk.XOIRFMBL.js.map → chunk.KDY26CBL.js.map} +0 -0
  208. /package/dist/chunks/{chunk.NJPQTVZC.js.map → chunk.KNZNW4VS.js.map} +0 -0
  209. /package/dist/chunks/{chunk.WGHLFFPZ.js.map → chunk.MFHUNGFO.js.map} +0 -0
  210. /package/dist/chunks/{chunk.C5HHWDZB.js.map → chunk.MWXEDKNQ.js.map} +0 -0
  211. /package/dist/chunks/{chunk.HIBWKIA6.js.map → chunk.N3SVWIVG.js.map} +0 -0
  212. /package/dist/chunks/{chunk.RUEZLCM4.js.map → chunk.NOUFWET6.js.map} +0 -0
  213. /package/dist/chunks/{chunk.EK3YHGUC.js.map → chunk.NYY4POP7.js.map} +0 -0
  214. /package/dist/chunks/{chunk.KBQDYKZQ.js.map → chunk.PLIQ6RPD.js.map} +0 -0
  215. /package/dist/chunks/{chunk.42OELSP4.js.map → chunk.PQKD6OYF.js.map} +0 -0
  216. /package/dist/chunks/{chunk.27H5YFFI.js.map → chunk.QDYPBFX4.js.map} +0 -0
  217. /package/dist/chunks/{chunk.C64JGJO3.js.map → chunk.QXUPCXT5.js.map} +0 -0
  218. /package/dist/chunks/{chunk.RKCUJRKU.js.map → chunk.R6GYAHAZ.js.map} +0 -0
  219. /package/dist/chunks/{chunk.WJX2T5MU.js.map → chunk.SJCYCGUZ.js.map} +0 -0
  220. /package/dist/chunks/{chunk.CHESV63R.js.map → chunk.TYPMG2S4.js.map} +0 -0
  221. /package/dist/chunks/{chunk.3GR4ZUZH.js.map → chunk.W2GO4M3V.js.map} +0 -0
  222. /package/dist/chunks/{chunk.Q3LOBGRV.js.map → chunk.WMAUFYXR.js.map} +0 -0
  223. /package/dist/chunks/{chunk.JAHRZFQ6.js.map → chunk.WWMWREE4.js.map} +0 -0
  224. /package/dist/chunks/{chunk.5Q46XTEM.js.map → chunk.YGF5AV75.js.map} +0 -0
@@ -616,146 +616,6 @@
616
616
  }
617
617
  ]
618
618
  },
619
- {
620
- "kind": "javascript-module",
621
- "path": "components/button-group/button-group.js",
622
- "declarations": [
623
- {
624
- "kind": "class",
625
- "description": "",
626
- "name": "SynButtonGroup",
627
- "cssParts": [
628
- {
629
- "description": "The component's base wrapper.",
630
- "name": "base"
631
- }
632
- ],
633
- "slots": [
634
- {
635
- "description": "One or more `<syn-button>` elements to display in the button group.",
636
- "name": ""
637
- }
638
- ],
639
- "members": [
640
- {
641
- "kind": "field",
642
- "name": "defaultSlot",
643
- "type": {
644
- "text": "HTMLSlotElement"
645
- }
646
- },
647
- {
648
- "kind": "field",
649
- "name": "disableRole",
650
- "type": {
651
- "text": "boolean"
652
- },
653
- "default": "false"
654
- },
655
- {
656
- "kind": "field",
657
- "name": "label",
658
- "type": {
659
- "text": "string"
660
- },
661
- "default": "''",
662
- "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.",
663
- "attribute": "label"
664
- },
665
- {
666
- "kind": "method",
667
- "name": "handleFocus",
668
- "privacy": "private",
669
- "parameters": [
670
- {
671
- "name": "event",
672
- "type": {
673
- "text": "Event"
674
- }
675
- }
676
- ]
677
- },
678
- {
679
- "kind": "method",
680
- "name": "handleBlur",
681
- "privacy": "private",
682
- "parameters": [
683
- {
684
- "name": "event",
685
- "type": {
686
- "text": "Event"
687
- }
688
- }
689
- ]
690
- },
691
- {
692
- "kind": "method",
693
- "name": "handleMouseOver",
694
- "privacy": "private",
695
- "parameters": [
696
- {
697
- "name": "event",
698
- "type": {
699
- "text": "Event"
700
- }
701
- }
702
- ]
703
- },
704
- {
705
- "kind": "method",
706
- "name": "handleMouseOut",
707
- "privacy": "private",
708
- "parameters": [
709
- {
710
- "name": "event",
711
- "type": {
712
- "text": "Event"
713
- }
714
- }
715
- ]
716
- },
717
- {
718
- "kind": "method",
719
- "name": "handleSlotChange",
720
- "privacy": "private"
721
- }
722
- ],
723
- "attributes": [
724
- {
725
- "name": "label",
726
- "type": {
727
- "text": "string"
728
- },
729
- "default": "''",
730
- "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.",
731
- "fieldName": "label"
732
- }
733
- ],
734
- "superclass": {
735
- "name": "SynergyElement",
736
- "module": "/src/internal/synergy-element.js"
737
- },
738
- "summary": "Button groups can be used to group related buttons into sections.",
739
- "tagNameWithoutPrefix": "button-group",
740
- "tagName": "syn-button-group",
741
- "customElement": true,
742
- "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 */",
743
- "documentation": "https://synergy.style/components/button-group",
744
- "status": "stable",
745
- "since": "2.0"
746
- }
747
- ],
748
- "exports": [
749
- {
750
- "kind": "js",
751
- "name": "default",
752
- "declaration": {
753
- "name": "SynButtonGroup",
754
- "module": "components/button-group/button-group.js"
755
- }
756
- }
757
- ]
758
- },
759
619
  {
760
620
  "kind": "javascript-module",
761
621
  "path": "components/checkbox/checkbox.js",
@@ -1224,63 +1084,203 @@
1224
1084
  },
1225
1085
  {
1226
1086
  "kind": "javascript-module",
1227
- "path": "components/divider/divider.js",
1087
+ "path": "components/button-group/button-group.js",
1228
1088
  "declarations": [
1229
1089
  {
1230
1090
  "kind": "class",
1231
1091
  "description": "",
1232
- "name": "SynDivider",
1233
- "cssProperties": [
1234
- {
1235
- "description": "The color of the divider.",
1236
- "name": "--color"
1237
- },
1092
+ "name": "SynButtonGroup",
1093
+ "cssParts": [
1238
1094
  {
1239
- "description": "The width of the divider.",
1240
- "name": "--width"
1241
- },
1095
+ "description": "The component's base wrapper.",
1096
+ "name": "base"
1097
+ }
1098
+ ],
1099
+ "slots": [
1242
1100
  {
1243
- "description": "The spacing of the divider.",
1244
- "name": "--spacing"
1101
+ "description": "One or more `<syn-button>` elements to display in the button group.",
1102
+ "name": ""
1245
1103
  }
1246
1104
  ],
1247
1105
  "members": [
1248
1106
  {
1249
1107
  "kind": "field",
1250
- "name": "vertical",
1108
+ "name": "defaultSlot",
1109
+ "type": {
1110
+ "text": "HTMLSlotElement"
1111
+ }
1112
+ },
1113
+ {
1114
+ "kind": "field",
1115
+ "name": "disableRole",
1251
1116
  "type": {
1252
1117
  "text": "boolean"
1253
1118
  },
1254
- "default": "false",
1255
- "description": "Draws the divider in a vertical orientation.",
1256
- "attribute": "vertical",
1257
- "reflects": true
1119
+ "default": "false"
1120
+ },
1121
+ {
1122
+ "kind": "field",
1123
+ "name": "label",
1124
+ "type": {
1125
+ "text": "string"
1126
+ },
1127
+ "default": "''",
1128
+ "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.",
1129
+ "attribute": "label"
1258
1130
  },
1259
1131
  {
1260
1132
  "kind": "method",
1261
- "name": "handleVerticalChange"
1133
+ "name": "handleFocus",
1134
+ "privacy": "private",
1135
+ "parameters": [
1136
+ {
1137
+ "name": "event",
1138
+ "type": {
1139
+ "text": "Event"
1140
+ }
1141
+ }
1142
+ ]
1143
+ },
1144
+ {
1145
+ "kind": "method",
1146
+ "name": "handleBlur",
1147
+ "privacy": "private",
1148
+ "parameters": [
1149
+ {
1150
+ "name": "event",
1151
+ "type": {
1152
+ "text": "Event"
1153
+ }
1154
+ }
1155
+ ]
1156
+ },
1157
+ {
1158
+ "kind": "method",
1159
+ "name": "handleMouseOver",
1160
+ "privacy": "private",
1161
+ "parameters": [
1162
+ {
1163
+ "name": "event",
1164
+ "type": {
1165
+ "text": "Event"
1166
+ }
1167
+ }
1168
+ ]
1169
+ },
1170
+ {
1171
+ "kind": "method",
1172
+ "name": "handleMouseOut",
1173
+ "privacy": "private",
1174
+ "parameters": [
1175
+ {
1176
+ "name": "event",
1177
+ "type": {
1178
+ "text": "Event"
1179
+ }
1180
+ }
1181
+ ]
1182
+ },
1183
+ {
1184
+ "kind": "method",
1185
+ "name": "handleSlotChange",
1186
+ "privacy": "private"
1262
1187
  }
1263
1188
  ],
1264
1189
  "attributes": [
1265
1190
  {
1266
- "name": "vertical",
1191
+ "name": "label",
1267
1192
  "type": {
1268
- "text": "boolean"
1193
+ "text": "string"
1269
1194
  },
1270
- "default": "false",
1271
- "description": "Draws the divider in a vertical orientation.",
1272
- "fieldName": "vertical"
1195
+ "default": "''",
1196
+ "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.",
1197
+ "fieldName": "label"
1273
1198
  }
1274
1199
  ],
1275
1200
  "superclass": {
1276
1201
  "name": "SynergyElement",
1277
1202
  "module": "/src/internal/synergy-element.js"
1278
1203
  },
1279
- "summary": "Dividers are used to visually separate or group elements.",
1280
- "tagNameWithoutPrefix": "divider",
1281
- "tagName": "syn-divider",
1282
- "customElement": true,
1283
- "jsDoc": "/**\n * @summary Dividers are used to visually separate or group elements.\n * @documentation https://synergy.style/components/divider\n * @status stable\n * @since 2.0\n *\n * @cssproperty --color - The color of the divider.\n * @cssproperty --width - The width of the divider.\n * @cssproperty --spacing - The spacing of the divider.\n */",
1204
+ "summary": "Button groups can be used to group related buttons into sections.",
1205
+ "tagNameWithoutPrefix": "button-group",
1206
+ "tagName": "syn-button-group",
1207
+ "customElement": true,
1208
+ "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 */",
1209
+ "documentation": "https://synergy.style/components/button-group",
1210
+ "status": "stable",
1211
+ "since": "2.0"
1212
+ }
1213
+ ],
1214
+ "exports": [
1215
+ {
1216
+ "kind": "js",
1217
+ "name": "default",
1218
+ "declaration": {
1219
+ "name": "SynButtonGroup",
1220
+ "module": "components/button-group/button-group.js"
1221
+ }
1222
+ }
1223
+ ]
1224
+ },
1225
+ {
1226
+ "kind": "javascript-module",
1227
+ "path": "components/divider/divider.js",
1228
+ "declarations": [
1229
+ {
1230
+ "kind": "class",
1231
+ "description": "",
1232
+ "name": "SynDivider",
1233
+ "cssProperties": [
1234
+ {
1235
+ "description": "The color of the divider.",
1236
+ "name": "--color"
1237
+ },
1238
+ {
1239
+ "description": "The width of the divider.",
1240
+ "name": "--width"
1241
+ },
1242
+ {
1243
+ "description": "The spacing of the divider.",
1244
+ "name": "--spacing"
1245
+ }
1246
+ ],
1247
+ "members": [
1248
+ {
1249
+ "kind": "field",
1250
+ "name": "vertical",
1251
+ "type": {
1252
+ "text": "boolean"
1253
+ },
1254
+ "default": "false",
1255
+ "description": "Draws the divider in a vertical orientation.",
1256
+ "attribute": "vertical",
1257
+ "reflects": true
1258
+ },
1259
+ {
1260
+ "kind": "method",
1261
+ "name": "handleVerticalChange"
1262
+ }
1263
+ ],
1264
+ "attributes": [
1265
+ {
1266
+ "name": "vertical",
1267
+ "type": {
1268
+ "text": "boolean"
1269
+ },
1270
+ "default": "false",
1271
+ "description": "Draws the divider in a vertical orientation.",
1272
+ "fieldName": "vertical"
1273
+ }
1274
+ ],
1275
+ "superclass": {
1276
+ "name": "SynergyElement",
1277
+ "module": "/src/internal/synergy-element.js"
1278
+ },
1279
+ "summary": "Dividers are used to visually separate or group elements.",
1280
+ "tagNameWithoutPrefix": "divider",
1281
+ "tagName": "syn-divider",
1282
+ "customElement": true,
1283
+ "jsDoc": "/**\n * @summary Dividers are used to visually separate or group elements.\n * @documentation https://synergy.style/components/divider\n * @status stable\n * @since 2.0\n *\n * @cssproperty --color - The color of the divider.\n * @cssproperty --width - The width of the divider.\n * @cssproperty --spacing - The spacing of the divider.\n */",
1284
1284
  "documentation": "https://synergy.style/components/divider",
1285
1285
  "status": "stable",
1286
1286
  "since": "2.0"
@@ -1717,54 +1717,34 @@
1717
1717
  },
1718
1718
  {
1719
1719
  "kind": "javascript-module",
1720
- "path": "components/header/header.js",
1720
+ "path": "components/dropdown/dropdown.js",
1721
1721
  "declarations": [
1722
1722
  {
1723
1723
  "kind": "class",
1724
1724
  "description": "",
1725
- "name": "SynHeader",
1725
+ "name": "SynDropdown",
1726
1726
  "cssParts": [
1727
1727
  {
1728
1728
  "description": "The component's base wrapper.",
1729
1729
  "name": "base"
1730
1730
  },
1731
1731
  {
1732
- "description": "The wrapper most content items reside",
1733
- "name": "content"
1734
- },
1735
- {
1736
- "description": "The wrapper the application logo resides in",
1737
- "name": "logo"
1738
- },
1739
- {
1740
- "description": "The element wrapping the application name",
1741
- "name": "label"
1742
- },
1743
- {
1744
- "description": "The Item wrapping the optional application menu",
1745
- "name": "meta-navigation"
1732
+ "description": "The container that wraps the trigger.",
1733
+ "name": "trigger"
1746
1734
  },
1747
1735
  {
1748
- "description": "The wrapper that is holding the optional top navigation section",
1749
- "name": "navigation"
1736
+ "description": "The panel that gets shown when the dropdown is open.",
1737
+ "name": "panel"
1750
1738
  }
1751
1739
  ],
1752
1740
  "slots": [
1753
1741
  {
1754
- "description": "The label for the header.",
1742
+ "description": "The dropdown's main content.",
1755
1743
  "name": ""
1756
1744
  },
1757
1745
  {
1758
- "description": "The logo that should be displayed. Will fall back to the SICK logo if not provided.",
1759
- "name": "logo"
1760
- },
1761
- {
1762
- "description": "The meta-navigation is used to add various application toolbar icons. Best used with `<syn-icon-button />` and `<syn-drop-down />`",
1763
- "name": "meta-navigation"
1764
- },
1765
- {
1766
- "description": "This slot can be used to add an optional horizontal navigation",
1767
- "name": "navigation"
1746
+ "description": "The dropdown's trigger, usually a `<syn-button>` element.",
1747
+ "name": "trigger"
1768
1748
  }
1769
1749
  ],
1770
1750
  "members": [
@@ -1775,246 +1755,334 @@
1775
1755
  "text": "object"
1776
1756
  },
1777
1757
  "static": true,
1778
- "default": "{\n 'syn-icon': SynIcon,\n }"
1758
+ "default": "{ 'syn-popup': SynPopup }"
1779
1759
  },
1780
1760
  {
1781
1761
  "kind": "field",
1782
- "name": "hasSlotController",
1783
- "privacy": "private",
1784
- "readonly": true,
1785
- "default": "new HasSlotController(this, '[default]', 'logo', 'label', 'meta-navigation', 'navigation')"
1762
+ "name": "popup",
1763
+ "type": {
1764
+ "text": "SynPopup"
1765
+ }
1786
1766
  },
1787
1767
  {
1788
1768
  "kind": "field",
1789
- "name": "label",
1769
+ "name": "trigger",
1790
1770
  "type": {
1791
- "text": "string"
1792
- },
1793
- "default": "''",
1794
- "description": "The headers label. If you need to display HTML, use the `label` slot instead.",
1795
- "attribute": "label"
1796
- }
1797
- ],
1798
- "attributes": [
1771
+ "text": "HTMLSlotElement"
1772
+ }
1773
+ },
1799
1774
  {
1800
- "name": "label",
1775
+ "kind": "field",
1776
+ "name": "panel",
1801
1777
  "type": {
1802
- "text": "string"
1803
- },
1804
- "default": "''",
1805
- "description": "The headers label. If you need to display HTML, use the `label` slot instead.",
1806
- "fieldName": "label"
1807
- }
1808
- ],
1809
- "superclass": {
1810
- "name": "SynergyElement",
1811
- "module": "/src/internal/synergy-element.js"
1812
- },
1813
- "summary": "The <syn-header /> element provides a generic application header\nthat can be used to add applications name, toolbar and primary navigation.",
1814
- "tagNameWithoutPrefix": "header",
1815
- "tagName": "syn-header",
1816
- "customElement": true,
1817
- "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 */",
1818
- "documentation": "https://synergy-design-system.github.io/?path=/docs/components-syn-header--docs",
1819
- "status": "stable",
1820
- "since": "1.10.0"
1821
- }
1822
- ],
1823
- "exports": [
1824
- {
1825
- "kind": "js",
1826
- "name": "default",
1827
- "declaration": {
1828
- "name": "SynHeader",
1829
- "module": "components/header/header.js"
1830
- }
1831
- }
1832
- ]
1833
- },
1834
- {
1835
- "kind": "javascript-module",
1836
- "path": "components/icon/icon.js",
1837
- "declarations": [
1838
- {
1839
- "kind": "class",
1840
- "description": "",
1841
- "name": "SynIcon",
1842
- "cssParts": [
1843
- {
1844
- "description": "The internal SVG element.",
1845
- "name": "svg"
1778
+ "text": "HTMLSlotElement"
1779
+ }
1846
1780
  },
1847
1781
  {
1848
- "description": "The <use> element generated when using `spriteSheet: true`",
1849
- "name": "use"
1850
- }
1851
- ],
1852
- "members": [
1782
+ "kind": "field",
1783
+ "name": "localize",
1784
+ "privacy": "private",
1785
+ "readonly": true,
1786
+ "default": "new LocalizeController(this)"
1787
+ },
1853
1788
  {
1854
1789
  "kind": "field",
1855
- "name": "initialRender",
1790
+ "name": "closeWatcher",
1856
1791
  "type": {
1857
- "text": "boolean"
1792
+ "text": "CloseWatcher | null"
1858
1793
  },
1859
- "privacy": "private",
1860
- "default": "false"
1794
+ "privacy": "private"
1861
1795
  },
1862
1796
  {
1863
- "kind": "method",
1864
- "name": "resolveIcon",
1865
- "privacy": "private",
1866
- "return": {
1867
- "type": {
1868
- "text": "Promise<SVGResult>"
1869
- }
1797
+ "kind": "field",
1798
+ "name": "open",
1799
+ "type": {
1800
+ "text": "boolean"
1870
1801
  },
1871
- "parameters": [
1872
- {
1873
- "name": "url",
1874
- "type": {
1875
- "text": "string"
1876
- }
1877
- },
1878
- {
1879
- "name": "library",
1880
- "optional": true,
1881
- "type": {
1882
- "text": "IconLibrary"
1883
- }
1884
- }
1885
- ],
1886
- "description": "Given a URL, this function returns the resulting SVG element or an appropriate error symbol."
1802
+ "default": "false",
1803
+ "description": "Indicates whether or not the dropdown is open. You can toggle this attribute to show and hide the dropdown, or you\ncan use the `show()` and `hide()` methods and this attribute will reflect the dropdown's open state.",
1804
+ "attribute": "open",
1805
+ "reflects": true
1887
1806
  },
1888
1807
  {
1889
1808
  "kind": "field",
1890
- "name": "svg",
1809
+ "name": "placement",
1891
1810
  "type": {
1892
- "text": "SVGElement | HTMLTemplateResult | null"
1811
+ "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'"
1893
1812
  },
1894
- "privacy": "private",
1895
- "default": "null"
1813
+ "default": "'bottom-start'",
1814
+ "description": "The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\ninside of the viewport.",
1815
+ "attribute": "placement",
1816
+ "reflects": true
1896
1817
  },
1897
1818
  {
1898
1819
  "kind": "field",
1899
- "name": "name",
1820
+ "name": "disabled",
1900
1821
  "type": {
1901
- "text": "string | undefined"
1822
+ "text": "boolean"
1902
1823
  },
1903
- "description": "The name of the icon to draw. Available names depend on the icon library being used.",
1904
- "attribute": "name",
1824
+ "default": "false",
1825
+ "description": "Disables the dropdown so the panel will not open.",
1826
+ "attribute": "disabled",
1905
1827
  "reflects": true
1906
1828
  },
1907
1829
  {
1908
1830
  "kind": "field",
1909
- "name": "src",
1831
+ "name": "stayOpenOnSelect",
1910
1832
  "type": {
1911
- "text": "string | undefined"
1833
+ "text": "boolean"
1912
1834
  },
1913
- "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
1914
- "attribute": "src"
1835
+ "default": "false",
1836
+ "description": "By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\ndropdowns that allow for multiple interactions.",
1837
+ "attribute": "stay-open-on-select",
1838
+ "reflects": true
1915
1839
  },
1916
1840
  {
1917
1841
  "kind": "field",
1918
- "name": "label",
1842
+ "name": "containingElement",
1919
1843
  "type": {
1920
- "text": "string"
1844
+ "text": "HTMLElement | undefined"
1921
1845
  },
1922
- "default": "''",
1923
- "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
1924
- "attribute": "label"
1846
+ "description": "The dropdown will close when the user interacts outside of this element (e.g. clicking). Useful for composing other\ncomponents that use a dropdown internally."
1925
1847
  },
1926
1848
  {
1927
1849
  "kind": "field",
1928
- "name": "library",
1850
+ "name": "distance",
1929
1851
  "type": {
1930
- "text": "string"
1852
+ "text": "number"
1931
1853
  },
1932
- "default": "'default'",
1933
- "description": "The name of a registered custom icon library.",
1934
- "attribute": "library",
1935
- "reflects": true
1854
+ "default": "0",
1855
+ "description": "The distance in pixels from which to offset the panel away from its trigger.",
1856
+ "attribute": "distance"
1857
+ },
1858
+ {
1859
+ "kind": "field",
1860
+ "name": "skidding",
1861
+ "type": {
1862
+ "text": "number"
1863
+ },
1864
+ "default": "0",
1865
+ "description": "The distance in pixels from which to offset the panel along its trigger.",
1866
+ "attribute": "skidding"
1867
+ },
1868
+ {
1869
+ "kind": "field",
1870
+ "name": "hoist",
1871
+ "type": {
1872
+ "text": "boolean"
1873
+ },
1874
+ "default": "false",
1875
+ "description": "Enable this option to prevent the panel 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.",
1876
+ "attribute": "hoist"
1936
1877
  },
1937
1878
  {
1938
1879
  "kind": "method",
1939
- "name": "getIconSource",
1940
- "privacy": "private",
1941
- "return": {
1942
- "type": {
1943
- "text": "IconSource"
1880
+ "name": "focusOnTrigger"
1881
+ },
1882
+ {
1883
+ "kind": "method",
1884
+ "name": "getMenu"
1885
+ },
1886
+ {
1887
+ "kind": "field",
1888
+ "name": "handleKeyDown",
1889
+ "privacy": "private"
1890
+ },
1891
+ {
1892
+ "kind": "field",
1893
+ "name": "handleDocumentKeyDown",
1894
+ "privacy": "private"
1895
+ },
1896
+ {
1897
+ "kind": "field",
1898
+ "name": "handleDocumentMouseDown",
1899
+ "privacy": "private"
1900
+ },
1901
+ {
1902
+ "kind": "field",
1903
+ "name": "handlePanelSelect",
1904
+ "privacy": "private"
1905
+ },
1906
+ {
1907
+ "kind": "method",
1908
+ "name": "handleTriggerClick"
1909
+ },
1910
+ {
1911
+ "kind": "method",
1912
+ "name": "handleTriggerKeyDown",
1913
+ "parameters": [
1914
+ {
1915
+ "name": "event",
1916
+ "type": {
1917
+ "text": "KeyboardEvent"
1918
+ }
1944
1919
  }
1945
- }
1920
+ ]
1946
1921
  },
1947
1922
  {
1948
1923
  "kind": "method",
1949
- "name": "handleLabelChange"
1924
+ "name": "handleTriggerKeyUp",
1925
+ "parameters": [
1926
+ {
1927
+ "name": "event",
1928
+ "type": {
1929
+ "text": "KeyboardEvent"
1930
+ }
1931
+ }
1932
+ ]
1950
1933
  },
1951
1934
  {
1952
1935
  "kind": "method",
1953
- "name": "setIcon"
1936
+ "name": "handleTriggerSlotChange"
1937
+ },
1938
+ {
1939
+ "kind": "method",
1940
+ "name": "updateAccessibleTrigger"
1941
+ },
1942
+ {
1943
+ "kind": "method",
1944
+ "name": "show",
1945
+ "description": "Shows the dropdown panel."
1946
+ },
1947
+ {
1948
+ "kind": "method",
1949
+ "name": "hide",
1950
+ "description": "Hides the dropdown panel"
1951
+ },
1952
+ {
1953
+ "kind": "method",
1954
+ "name": "reposition",
1955
+ "description": "Instructs the dropdown menu to reposition. Useful when the position or size of the trigger changes when the menu\nis activated."
1956
+ },
1957
+ {
1958
+ "kind": "method",
1959
+ "name": "addOpenListeners"
1960
+ },
1961
+ {
1962
+ "kind": "method",
1963
+ "name": "removeOpenListeners"
1964
+ },
1965
+ {
1966
+ "kind": "method",
1967
+ "name": "handleOpenChange"
1954
1968
  }
1955
1969
  ],
1956
1970
  "events": [
1957
1971
  {
1958
- "description": "Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.",
1959
- "name": "syn-load",
1960
- "reactName": "onSynLoad",
1961
- "eventName": "SynLoadEvent"
1972
+ "description": "Emitted when the dropdown opens.",
1973
+ "name": "syn-show",
1974
+ "reactName": "onSynShow",
1975
+ "eventName": "SynShowEvent"
1962
1976
  },
1963
1977
  {
1964
- "description": "Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.",
1965
- "name": "syn-error",
1966
- "reactName": "onSynError",
1967
- "eventName": "SynErrorEvent"
1978
+ "description": "Emitted after the dropdown opens and all animations are complete.",
1979
+ "name": "syn-after-show",
1980
+ "reactName": "onSynAfterShow",
1981
+ "eventName": "SynAfterShowEvent"
1982
+ },
1983
+ {
1984
+ "description": "Emitted when the dropdown closes.",
1985
+ "name": "syn-hide",
1986
+ "reactName": "onSynHide",
1987
+ "eventName": "SynHideEvent"
1988
+ },
1989
+ {
1990
+ "description": "Emitted after the dropdown closes and all animations are complete.",
1991
+ "name": "syn-after-hide",
1992
+ "reactName": "onSynAfterHide",
1993
+ "eventName": "SynAfterHideEvent"
1968
1994
  }
1969
1995
  ],
1970
1996
  "attributes": [
1971
1997
  {
1972
- "name": "name",
1998
+ "name": "open",
1973
1999
  "type": {
1974
- "text": "string | undefined"
2000
+ "text": "boolean"
1975
2001
  },
1976
- "description": "The name of the icon to draw. Available names depend on the icon library being used.",
1977
- "fieldName": "name"
2002
+ "default": "false",
2003
+ "description": "Indicates whether or not the dropdown is open. You can toggle this attribute to show and hide the dropdown, or you\ncan use the `show()` and `hide()` methods and this attribute will reflect the dropdown's open state.",
2004
+ "fieldName": "open"
1978
2005
  },
1979
2006
  {
1980
- "name": "src",
2007
+ "name": "placement",
1981
2008
  "type": {
1982
- "text": "string | undefined"
2009
+ "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'"
1983
2010
  },
1984
- "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
1985
- "fieldName": "src"
2011
+ "default": "'bottom-start'",
2012
+ "description": "The preferred placement of the dropdown panel. Note that the actual placement may vary as needed to keep the panel\ninside of the viewport.",
2013
+ "fieldName": "placement"
1986
2014
  },
1987
2015
  {
1988
- "name": "label",
2016
+ "name": "disabled",
1989
2017
  "type": {
1990
- "text": "string"
2018
+ "text": "boolean"
1991
2019
  },
1992
- "default": "''",
1993
- "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
1994
- "fieldName": "label"
2020
+ "default": "false",
2021
+ "description": "Disables the dropdown so the panel will not open.",
2022
+ "fieldName": "disabled"
1995
2023
  },
1996
2024
  {
1997
- "name": "library",
2025
+ "name": "stay-open-on-select",
1998
2026
  "type": {
1999
- "text": "string"
2027
+ "text": "boolean"
2000
2028
  },
2001
- "default": "'default'",
2002
- "description": "The name of a registered custom icon library.",
2003
- "fieldName": "library"
2029
+ "default": "false",
2030
+ "description": "By default, the dropdown is closed when an item is selected. This attribute will keep it open instead. Useful for\ndropdowns that allow for multiple interactions.",
2031
+ "fieldName": "stayOpenOnSelect"
2032
+ },
2033
+ {
2034
+ "name": "distance",
2035
+ "type": {
2036
+ "text": "number"
2037
+ },
2038
+ "default": "0",
2039
+ "description": "The distance in pixels from which to offset the panel away from its trigger.",
2040
+ "fieldName": "distance"
2041
+ },
2042
+ {
2043
+ "name": "skidding",
2044
+ "type": {
2045
+ "text": "number"
2046
+ },
2047
+ "default": "0",
2048
+ "description": "The distance in pixels from which to offset the panel along its trigger.",
2049
+ "fieldName": "skidding"
2050
+ },
2051
+ {
2052
+ "name": "hoist",
2053
+ "type": {
2054
+ "text": "boolean"
2055
+ },
2056
+ "default": "false",
2057
+ "description": "Enable this option to prevent the panel 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.",
2058
+ "fieldName": "hoist"
2004
2059
  }
2005
2060
  ],
2006
2061
  "superclass": {
2007
2062
  "name": "SynergyElement",
2008
2063
  "module": "/src/internal/synergy-element.js"
2009
2064
  },
2010
- "summary": "Icons are symbols that can be used to represent various options within an application.",
2011
- "tagNameWithoutPrefix": "icon",
2012
- "tagName": "syn-icon",
2065
+ "summary": "Dropdowns expose additional content that \"drops down\" in a panel.",
2066
+ "tagNameWithoutPrefix": "dropdown",
2067
+ "tagName": "syn-dropdown",
2013
2068
  "customElement": true,
2014
- "jsDoc": "/**\n * @summary Icons are symbols that can be used to represent various options within an application.\n * @documentation https://synergy.style/components/icon\n * @status stable\n * @since 2.0\n *\n * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.\n * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.\n *\n * @csspart svg - The internal SVG element.\n * @csspart use - The <use> element generated when using `spriteSheet: true`\n */",
2015
- "documentation": "https://synergy.style/components/icon",
2069
+ "jsDoc": "/**\n * @summary Dropdowns expose additional content that \"drops down\" in a panel.\n * @documentation https://synergy.style/components/dropdown\n * @status stable\n * @since 2.0\n *\n * @dependency syn-popup\n *\n * @slot - The dropdown's main content.\n * @slot trigger - The dropdown's trigger, usually a `<syn-button>` element.\n *\n * @event syn-show - Emitted when the dropdown opens.\n * @event syn-after-show - Emitted after the dropdown opens and all animations are complete.\n * @event syn-hide - Emitted when the dropdown closes.\n * @event syn-after-hide - Emitted after the dropdown closes and all animations are complete.\n *\n * @csspart base - The component's base wrapper.\n * @csspart trigger - The container that wraps the trigger.\n * @csspart panel - The panel that gets shown when the dropdown is open.\n *\n * @animation dropdown.show - The animation to use when showing the dropdown.\n * @animation dropdown.hide - The animation to use when hiding the dropdown.\n */",
2070
+ "documentation": "https://synergy.style/components/dropdown",
2016
2071
  "status": "stable",
2017
- "since": "2.0"
2072
+ "since": "2.0",
2073
+ "dependencies": [
2074
+ "syn-popup"
2075
+ ],
2076
+ "animations": [
2077
+ {
2078
+ "name": "dropdown.show",
2079
+ "description": "The animation to use when showing the dropdown."
2080
+ },
2081
+ {
2082
+ "name": "dropdown.hide",
2083
+ "description": "The animation to use when hiding the dropdown."
2084
+ }
2085
+ ]
2018
2086
  }
2019
2087
  ],
2020
2088
  "exports": [
@@ -2022,24 +2090,62 @@
2022
2090
  "kind": "js",
2023
2091
  "name": "default",
2024
2092
  "declaration": {
2025
- "name": "SynIcon",
2026
- "module": "components/icon/icon.js"
2093
+ "name": "SynDropdown",
2094
+ "module": "components/dropdown/dropdown.js"
2027
2095
  }
2028
2096
  }
2029
2097
  ]
2030
2098
  },
2031
2099
  {
2032
2100
  "kind": "javascript-module",
2033
- "path": "components/icon-button/icon-button.js",
2101
+ "path": "components/header/header.js",
2034
2102
  "declarations": [
2035
2103
  {
2036
2104
  "kind": "class",
2037
2105
  "description": "",
2038
- "name": "SynIconButton",
2106
+ "name": "SynHeader",
2039
2107
  "cssParts": [
2040
2108
  {
2041
2109
  "description": "The component's base wrapper.",
2042
2110
  "name": "base"
2111
+ },
2112
+ {
2113
+ "description": "The wrapper most content items reside",
2114
+ "name": "content"
2115
+ },
2116
+ {
2117
+ "description": "The wrapper the application logo resides in",
2118
+ "name": "logo"
2119
+ },
2120
+ {
2121
+ "description": "The element wrapping the application name",
2122
+ "name": "label"
2123
+ },
2124
+ {
2125
+ "description": "The Item wrapping the optional application menu",
2126
+ "name": "meta-navigation"
2127
+ },
2128
+ {
2129
+ "description": "The wrapper that is holding the optional top navigation section",
2130
+ "name": "navigation"
2131
+ }
2132
+ ],
2133
+ "slots": [
2134
+ {
2135
+ "description": "The label for the header.",
2136
+ "name": ""
2137
+ },
2138
+ {
2139
+ "description": "The logo that should be displayed. Will fall back to the SICK logo if not provided.",
2140
+ "name": "logo"
2141
+ },
2142
+ {
2143
+ "description": "The meta-navigation is used to add various application toolbar icons. Best used with `<syn-icon-button />` and `<syn-drop-down />`",
2144
+ "name": "meta-navigation"
2145
+ },
2146
+ {
2147
+ "description": "This slot can be used to add an optional horizontal navigation",
2148
+ "name": "navigation"
2043
2149
  }
2044
2150
  ],
2045
2151
  "members": [
@@ -2050,77 +2156,143 @@
2050
2156
  "text": "object"
2051
2157
  },
2052
2158
  "static": true,
2053
- "default": "{ 'syn-icon': SynIcon }"
2159
+ "default": "{\n 'syn-icon': SynIcon,\n }"
2054
2160
  },
2055
2161
  {
2056
2162
  "kind": "field",
2057
- "name": "button",
2058
- "type": {
2059
- "text": "HTMLButtonElement | HTMLLinkElement"
2060
- }
2163
+ "name": "hasSlotController",
2164
+ "privacy": "private",
2165
+ "readonly": true,
2166
+ "default": "new HasSlotController(this, '[default]', 'logo', 'label', 'meta-navigation', 'navigation')"
2061
2167
  },
2062
2168
  {
2063
2169
  "kind": "field",
2064
- "name": "hasFocus",
2170
+ "name": "label",
2065
2171
  "type": {
2066
- "text": "boolean"
2172
+ "text": "string"
2067
2173
  },
2068
- "privacy": "private",
2069
- "default": "false"
2070
- },
2174
+ "default": "''",
2175
+ "description": "The headers label. If you need to display HTML, use the `label` slot instead.",
2176
+ "attribute": "label"
2177
+ }
2178
+ ],
2179
+ "attributes": [
2071
2180
  {
2072
- "kind": "field",
2073
- "name": "name",
2181
+ "name": "label",
2074
2182
  "type": {
2075
- "text": "string | undefined"
2183
+ "text": "string"
2076
2184
  },
2077
- "description": "The name of the icon to draw. Available names depend on the icon library being used.",
2078
- "attribute": "name"
2185
+ "default": "''",
2186
+ "description": "The headers label. If you need to display HTML, use the `label` slot instead.",
2187
+ "fieldName": "label"
2188
+ }
2189
+ ],
2190
+ "superclass": {
2191
+ "name": "SynergyElement",
2192
+ "module": "/src/internal/synergy-element.js"
2193
+ },
2194
+ "summary": "The <syn-header /> element provides a generic application header\nthat can be used to add applications name, toolbar and primary navigation.",
2195
+ "tagNameWithoutPrefix": "header",
2196
+ "tagName": "syn-header",
2197
+ "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 */",
2199
+ "documentation": "https://synergy-design-system.github.io/?path=/docs/components-syn-header--docs",
2200
+ "status": "stable",
2201
+ "since": "1.10.0"
2202
+ }
2203
+ ],
2204
+ "exports": [
2205
+ {
2206
+ "kind": "js",
2207
+ "name": "default",
2208
+ "declaration": {
2209
+ "name": "SynHeader",
2210
+ "module": "components/header/header.js"
2211
+ }
2212
+ }
2213
+ ]
2214
+ },
2215
+ {
2216
+ "kind": "javascript-module",
2217
+ "path": "components/icon/icon.js",
2218
+ "declarations": [
2219
+ {
2220
+ "kind": "class",
2221
+ "description": "",
2222
+ "name": "SynIcon",
2223
+ "cssParts": [
2224
+ {
2225
+ "description": "The internal SVG element.",
2226
+ "name": "svg"
2079
2227
  },
2228
+ {
2229
+ "description": "The <use> element generated when using `spriteSheet: true`",
2230
+ "name": "use"
2231
+ }
2232
+ ],
2233
+ "members": [
2080
2234
  {
2081
2235
  "kind": "field",
2082
- "name": "library",
2236
+ "name": "initialRender",
2083
2237
  "type": {
2084
- "text": "string | undefined"
2238
+ "text": "boolean"
2085
2239
  },
2086
- "description": "The name of a registered custom icon library.",
2087
- "attribute": "library"
2240
+ "privacy": "private",
2241
+ "default": "false"
2088
2242
  },
2089
2243
  {
2090
- "kind": "field",
2091
- "name": "src",
2092
- "type": {
2093
- "text": "string | undefined"
2244
+ "kind": "method",
2245
+ "name": "resolveIcon",
2246
+ "privacy": "private",
2247
+ "return": {
2248
+ "type": {
2249
+ "text": "Promise<SVGResult>"
2250
+ }
2094
2251
  },
2095
- "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
2096
- "attribute": "src"
2252
+ "parameters": [
2253
+ {
2254
+ "name": "url",
2255
+ "type": {
2256
+ "text": "string"
2257
+ }
2258
+ },
2259
+ {
2260
+ "name": "library",
2261
+ "optional": true,
2262
+ "type": {
2263
+ "text": "IconLibrary"
2264
+ }
2265
+ }
2266
+ ],
2267
+ "description": "Given a URL, this function returns the resulting SVG element or an appropriate error symbol."
2097
2268
  },
2098
2269
  {
2099
2270
  "kind": "field",
2100
- "name": "href",
2271
+ "name": "svg",
2101
2272
  "type": {
2102
- "text": "string | undefined"
2273
+ "text": "SVGElement | HTMLTemplateResult | null"
2103
2274
  },
2104
- "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
2105
- "attribute": "href"
2275
+ "privacy": "private",
2276
+ "default": "null"
2106
2277
  },
2107
2278
  {
2108
2279
  "kind": "field",
2109
- "name": "target",
2280
+ "name": "name",
2110
2281
  "type": {
2111
- "text": "'_blank' | '_parent' | '_self' | '_top' | undefined"
2282
+ "text": "string | undefined"
2112
2283
  },
2113
- "description": "Tells the browser where to open the link. Only used when `href` is set.",
2114
- "attribute": "target"
2284
+ "description": "The name of the icon to draw. Available names depend on the icon library being used.",
2285
+ "attribute": "name",
2286
+ "reflects": true
2115
2287
  },
2116
2288
  {
2117
2289
  "kind": "field",
2118
- "name": "download",
2290
+ "name": "src",
2119
2291
  "type": {
2120
2292
  "text": "string | undefined"
2121
2293
  },
2122
- "description": "Tells the browser to download the linked file as this filename. Only used when `href` is set.",
2123
- "attribute": "download"
2294
+ "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
2295
+ "attribute": "src"
2124
2296
  },
2125
2297
  {
2126
2298
  "kind": "field",
@@ -2129,102 +2301,51 @@
2129
2301
  "text": "string"
2130
2302
  },
2131
2303
  "default": "''",
2132
- "description": "A description that gets read by assistive devices. For optimal accessibility, you should always include a label\nthat describes what the icon button does.",
2304
+ "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
2133
2305
  "attribute": "label"
2134
2306
  },
2135
2307
  {
2136
2308
  "kind": "field",
2137
- "name": "size",
2138
- "type": {
2139
- "text": "'small' | 'medium' | 'large' | 'inherit'"
2140
- },
2141
- "default": "'inherit'",
2142
- "description": "The icon button's size.",
2143
- "attribute": "size",
2144
- "reflects": true
2145
- },
2146
- {
2147
- "kind": "field",
2148
- "name": "color",
2149
- "type": {
2150
- "text": "'currentColor' | 'primary' | 'neutral'"
2151
- },
2152
- "default": "'currentColor'",
2153
- "description": "The color of the icon button.\nThe default \"currentColor\" makes it possible to easily style the icon button from outside without any CSS variables.",
2154
- "attribute": "color",
2155
- "reflects": true
2156
- },
2157
- {
2158
- "kind": "field",
2159
- "name": "disabled",
2309
+ "name": "library",
2160
2310
  "type": {
2161
- "text": "boolean"
2311
+ "text": "string"
2162
2312
  },
2163
- "default": "false",
2164
- "description": "Disables the button.",
2165
- "attribute": "disabled",
2313
+ "default": "'default'",
2314
+ "description": "The name of a registered custom icon library.",
2315
+ "attribute": "library",
2166
2316
  "reflects": true
2167
2317
  },
2168
2318
  {
2169
2319
  "kind": "method",
2170
- "name": "handleBlur",
2171
- "privacy": "private"
2172
- },
2173
- {
2174
- "kind": "method",
2175
- "name": "handleFocus",
2176
- "privacy": "private"
2177
- },
2178
- {
2179
- "kind": "method",
2180
- "name": "handleClick",
2320
+ "name": "getIconSource",
2181
2321
  "privacy": "private",
2182
- "parameters": [
2183
- {
2184
- "name": "event",
2185
- "type": {
2186
- "text": "MouseEvent"
2187
- }
2322
+ "return": {
2323
+ "type": {
2324
+ "text": "IconSource"
2188
2325
  }
2189
- ]
2190
- },
2191
- {
2192
- "kind": "method",
2193
- "name": "click",
2194
- "description": "Simulates a click on the icon button."
2326
+ }
2195
2327
  },
2196
2328
  {
2197
2329
  "kind": "method",
2198
- "name": "focus",
2199
- "parameters": [
2200
- {
2201
- "name": "options",
2202
- "optional": true,
2203
- "type": {
2204
- "text": "FocusOptions"
2205
- }
2206
- }
2207
- ],
2208
- "description": "Sets focus on the icon button."
2330
+ "name": "handleLabelChange"
2209
2331
  },
2210
2332
  {
2211
2333
  "kind": "method",
2212
- "name": "blur",
2213
- "description": "Removes focus from the icon button."
2334
+ "name": "setIcon"
2214
2335
  }
2215
2336
  ],
2216
2337
  "events": [
2217
2338
  {
2218
- "description": "Emitted when the icon button loses focus.",
2219
- "name": "syn-blur",
2220
- "reactName": "onSynBlur",
2221
- "eventName": "SynBlurEvent"
2339
+ "description": "Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.",
2340
+ "name": "syn-load",
2341
+ "reactName": "onSynLoad",
2342
+ "eventName": "SynLoadEvent"
2222
2343
  },
2223
2344
  {
2224
- "description": "Emitted when the icon button gains focus.",
2225
- "name": "syn-focus",
2226
- "reactName": "onSynFocus",
2227
- "eventName": "SynFocusEvent"
2345
+ "description": "Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.",
2346
+ "name": "syn-error",
2347
+ "reactName": "onSynError",
2348
+ "eventName": "SynErrorEvent"
2228
2349
  }
2229
2350
  ],
2230
2351
  "attributes": [
@@ -2236,14 +2357,6 @@
2236
2357
  "description": "The name of the icon to draw. Available names depend on the icon library being used.",
2237
2358
  "fieldName": "name"
2238
2359
  },
2239
- {
2240
- "name": "library",
2241
- "type": {
2242
- "text": "string | undefined"
2243
- },
2244
- "description": "The name of a registered custom icon library.",
2245
- "fieldName": "library"
2246
- },
2247
2360
  {
2248
2361
  "name": "src",
2249
2362
  "type": {
@@ -2252,82 +2365,37 @@
2252
2365
  "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
2253
2366
  "fieldName": "src"
2254
2367
  },
2255
- {
2256
- "name": "href",
2257
- "type": {
2258
- "text": "string | undefined"
2259
- },
2260
- "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
2261
- "fieldName": "href"
2262
- },
2263
- {
2264
- "name": "target",
2265
- "type": {
2266
- "text": "'_blank' | '_parent' | '_self' | '_top' | undefined"
2267
- },
2268
- "description": "Tells the browser where to open the link. Only used when `href` is set.",
2269
- "fieldName": "target"
2270
- },
2271
- {
2272
- "name": "download",
2273
- "type": {
2274
- "text": "string | undefined"
2275
- },
2276
- "description": "Tells the browser to download the linked file as this filename. Only used when `href` is set.",
2277
- "fieldName": "download"
2278
- },
2279
2368
  {
2280
2369
  "name": "label",
2281
2370
  "type": {
2282
2371
  "text": "string"
2283
2372
  },
2284
2373
  "default": "''",
2285
- "description": "A description that gets read by assistive devices. For optimal accessibility, you should always include a label\nthat describes what the icon button does.",
2374
+ "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
2286
2375
  "fieldName": "label"
2287
2376
  },
2288
2377
  {
2289
- "name": "size",
2378
+ "name": "library",
2290
2379
  "type": {
2291
- "text": "'small' | 'medium' | 'large' | 'inherit'"
2380
+ "text": "string"
2292
2381
  },
2293
- "default": "'inherit'",
2294
- "description": "The icon button's size.",
2295
- "fieldName": "size"
2296
- },
2297
- {
2298
- "name": "color",
2299
- "type": {
2300
- "text": "'currentColor' | 'primary' | 'neutral'"
2301
- },
2302
- "default": "'currentColor'",
2303
- "description": "The color of the icon button.\nThe default \"currentColor\" makes it possible to easily style the icon button from outside without any CSS variables.",
2304
- "fieldName": "color"
2305
- },
2306
- {
2307
- "name": "disabled",
2308
- "type": {
2309
- "text": "boolean"
2310
- },
2311
- "default": "false",
2312
- "description": "Disables the button.",
2313
- "fieldName": "disabled"
2382
+ "default": "'default'",
2383
+ "description": "The name of a registered custom icon library.",
2384
+ "fieldName": "library"
2314
2385
  }
2315
2386
  ],
2316
2387
  "superclass": {
2317
2388
  "name": "SynergyElement",
2318
2389
  "module": "/src/internal/synergy-element.js"
2319
2390
  },
2320
- "summary": "Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.",
2321
- "tagNameWithoutPrefix": "icon-button",
2322
- "tagName": "syn-icon-button",
2391
+ "summary": "Icons are symbols that can be used to represent various options within an application.",
2392
+ "tagNameWithoutPrefix": "icon",
2393
+ "tagName": "syn-icon",
2323
2394
  "customElement": true,
2324
- "jsDoc": "/**\n * @summary Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.\n * @documentation https://synergy.style/components/icon-button\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n *\n * @event syn-blur - Emitted when the icon button loses focus.\n * @event syn-focus - Emitted when the icon button gains focus.\n *\n * @csspart base - The component's base wrapper.\n */",
2325
- "documentation": "https://synergy.style/components/icon-button",
2395
+ "jsDoc": "/**\n * @summary Icons are symbols that can be used to represent various options within an application.\n * @documentation https://synergy.style/components/icon\n * @status stable\n * @since 2.0\n *\n * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.\n * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.\n *\n * @csspart svg - The internal SVG element.\n * @csspart use - The <use> element generated when using `spriteSheet: true`\n */",
2396
+ "documentation": "https://synergy.style/components/icon",
2326
2397
  "status": "stable",
2327
- "since": "2.0",
2328
- "dependencies": [
2329
- "syn-icon"
2330
- ]
2398
+ "since": "2.0"
2331
2399
  }
2332
2400
  ],
2333
2401
  "exports": [
@@ -2335,114 +2403,24 @@
2335
2403
  "kind": "js",
2336
2404
  "name": "default",
2337
2405
  "declaration": {
2338
- "name": "SynIconButton",
2339
- "module": "components/icon-button/icon-button.js"
2406
+ "name": "SynIcon",
2407
+ "module": "components/icon/icon.js"
2340
2408
  }
2341
2409
  }
2342
2410
  ]
2343
2411
  },
2344
2412
  {
2345
2413
  "kind": "javascript-module",
2346
- "path": "components/input/input.js",
2414
+ "path": "components/icon-button/icon-button.js",
2347
2415
  "declarations": [
2348
2416
  {
2349
2417
  "kind": "class",
2350
2418
  "description": "",
2351
- "name": "SynInput",
2419
+ "name": "SynIconButton",
2352
2420
  "cssParts": [
2353
- {
2354
- "description": "The form control that wraps the label, input, and help text.",
2355
- "name": "form-control"
2356
- },
2357
- {
2358
- "description": "The label's wrapper.",
2359
- "name": "form-control-label"
2360
- },
2361
- {
2362
- "description": "The input's wrapper.",
2363
- "name": "form-control-input"
2364
- },
2365
- {
2366
- "description": "The help text's wrapper.",
2367
- "name": "form-control-help-text"
2368
- },
2369
2421
  {
2370
2422
  "description": "The component's base wrapper.",
2371
2423
  "name": "base"
2372
- },
2373
- {
2374
- "description": "The internal `<input>` control.",
2375
- "name": "input"
2376
- },
2377
- {
2378
- "description": "The container that wraps the prefix.",
2379
- "name": "prefix"
2380
- },
2381
- {
2382
- "description": "The clear button.",
2383
- "name": "clear-button"
2384
- },
2385
- {
2386
- "description": "The password toggle button.",
2387
- "name": "password-toggle-button"
2388
- },
2389
- {
2390
- "description": "The container that wraps the suffix.",
2391
- "name": "suffix"
2392
- },
2393
- {
2394
- "description": "The container that wraps the number stepper.",
2395
- "name": "stepper"
2396
- },
2397
- {
2398
- "description": "The decrement number stepper button.",
2399
- "name": "decrement-number-stepper"
2400
- },
2401
- {
2402
- "description": "The increment number stepper button.",
2403
- "name": "increment-number-stepper"
2404
- },
2405
- {
2406
- "description": "The divider between the increment and decrement number stepper buttons.",
2407
- "name": "divider"
2408
- }
2409
- ],
2410
- "slots": [
2411
- {
2412
- "description": "The input's label. Alternatively, you can use the `label` attribute.",
2413
- "name": "label"
2414
- },
2415
- {
2416
- "description": "Used to prepend a presentational icon or similar element to the input.",
2417
- "name": "prefix"
2418
- },
2419
- {
2420
- "description": "Used to append a presentational icon or similar element to the input.",
2421
- "name": "suffix"
2422
- },
2423
- {
2424
- "description": "An icon to use in lieu of the default clear icon.",
2425
- "name": "clear-icon"
2426
- },
2427
- {
2428
- "description": "An icon to use in lieu of the default show password icon.",
2429
- "name": "show-password-icon"
2430
- },
2431
- {
2432
- "description": "An icon to use in lieu of the default hide password icon.",
2433
- "name": "hide-password-icon"
2434
- },
2435
- {
2436
- "description": "Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.",
2437
- "name": "help-text"
2438
- },
2439
- {
2440
- "description": "An icon to use in lieu of the default increment number stepper icon.",
2441
- "name": "increment-number-stepper"
2442
- },
2443
- {
2444
- "description": "An icon to use in lieu of the default decrement number stepper icon.",
2445
- "name": "decrement-number-stepper"
2446
2424
  }
2447
2425
  ],
2448
2426
  "members": [
@@ -2453,34 +2431,13 @@
2453
2431
  "text": "object"
2454
2432
  },
2455
2433
  "static": true,
2456
- "default": "{\n\t\t'syn-icon': SynIcon,\n\t\t'syn-divider': SynDivider\n\t}"
2457
- },
2458
- {
2459
- "kind": "field",
2460
- "name": "formControlController",
2461
- "privacy": "private",
2462
- "readonly": true,
2463
- "default": "new FormControlController(this, {\n assumeInteractionOn: ['syn-blur', 'syn-input']\n })"
2464
- },
2465
- {
2466
- "kind": "field",
2467
- "name": "hasSlotController",
2468
- "privacy": "private",
2469
- "readonly": true,
2470
- "default": "new HasSlotController(this, 'help-text', 'label', 'prefix', 'suffix')"
2471
- },
2472
- {
2473
- "kind": "field",
2474
- "name": "localize",
2475
- "privacy": "private",
2476
- "readonly": true,
2477
- "default": "new LocalizeController(this)"
2434
+ "default": "{ 'syn-icon': SynIcon }"
2478
2435
  },
2479
2436
  {
2480
2437
  "kind": "field",
2481
- "name": "input",
2438
+ "name": "button",
2482
2439
  "type": {
2483
- "text": "HTMLInputElement"
2440
+ "text": "HTMLButtonElement | HTMLLinkElement"
2484
2441
  }
2485
2442
  },
2486
2443
  {
@@ -2494,73 +2451,57 @@
2494
2451
  },
2495
2452
  {
2496
2453
  "kind": "field",
2497
- "name": "title",
2454
+ "name": "name",
2498
2455
  "type": {
2499
- "text": "string"
2456
+ "text": "string | undefined"
2500
2457
  },
2501
- "default": "''",
2502
- "attribute": "title"
2503
- },
2504
- {
2505
- "kind": "field",
2506
- "name": "__numberInput",
2507
- "privacy": "private"
2508
- },
2509
- {
2510
- "kind": "field",
2511
- "name": "__dateInput",
2512
- "privacy": "private"
2458
+ "description": "The name of the icon to draw. Available names depend on the icon library being used.",
2459
+ "attribute": "name"
2513
2460
  },
2514
2461
  {
2515
2462
  "kind": "field",
2516
- "name": "type",
2463
+ "name": "library",
2517
2464
  "type": {
2518
- "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
2465
+ "text": "string | undefined"
2519
2466
  },
2520
- "default": "'text'",
2521
- "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
2522
- "attribute": "type",
2523
- "reflects": true
2467
+ "description": "The name of a registered custom icon library.",
2468
+ "attribute": "library"
2524
2469
  },
2525
2470
  {
2526
2471
  "kind": "field",
2527
- "name": "name",
2472
+ "name": "src",
2528
2473
  "type": {
2529
- "text": "string"
2474
+ "text": "string | undefined"
2530
2475
  },
2531
- "default": "''",
2532
- "description": "The name of the input, submitted as a name/value pair with form data.",
2533
- "attribute": "name"
2476
+ "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
2477
+ "attribute": "src"
2534
2478
  },
2535
2479
  {
2536
2480
  "kind": "field",
2537
- "name": "value",
2481
+ "name": "href",
2538
2482
  "type": {
2539
- "text": "string"
2483
+ "text": "string | undefined"
2540
2484
  },
2541
- "default": "''",
2542
- "description": "The current value of the input, submitted as a name/value pair with form data.",
2543
- "attribute": "value"
2485
+ "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
2486
+ "attribute": "href"
2544
2487
  },
2545
2488
  {
2546
2489
  "kind": "field",
2547
- "name": "defaultValue",
2490
+ "name": "target",
2548
2491
  "type": {
2549
- "text": "string"
2492
+ "text": "'_blank' | '_parent' | '_self' | '_top' | undefined"
2550
2493
  },
2551
- "default": "''",
2552
- "description": "The default value of the form control. Primarily used for resetting the form control."
2494
+ "description": "Tells the browser where to open the link. Only used when `href` is set.",
2495
+ "attribute": "target"
2553
2496
  },
2554
2497
  {
2555
2498
  "kind": "field",
2556
- "name": "size",
2499
+ "name": "download",
2557
2500
  "type": {
2558
- "text": "'small' | 'medium' | 'large'"
2501
+ "text": "string | undefined"
2559
2502
  },
2560
- "default": "'medium'",
2561
- "description": "The input's size.",
2562
- "attribute": "size",
2563
- "reflects": true
2503
+ "description": "Tells the browser to download the linked file as this filename. Only used when `href` is set.",
2504
+ "attribute": "download"
2564
2505
  },
2565
2506
  {
2566
2507
  "kind": "field",
@@ -2569,28 +2510,30 @@
2569
2510
  "text": "string"
2570
2511
  },
2571
2512
  "default": "''",
2572
- "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
2513
+ "description": "A description that gets read by assistive devices. For optimal accessibility, you should always include a label\nthat describes what the icon button does.",
2573
2514
  "attribute": "label"
2574
2515
  },
2575
2516
  {
2576
2517
  "kind": "field",
2577
- "name": "helpText",
2518
+ "name": "size",
2578
2519
  "type": {
2579
- "text": "string"
2520
+ "text": "'small' | 'medium' | 'large' | 'inherit'"
2580
2521
  },
2581
- "default": "''",
2582
- "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
2583
- "attribute": "help-text"
2522
+ "default": "'inherit'",
2523
+ "description": "The icon button's size.",
2524
+ "attribute": "size",
2525
+ "reflects": true
2584
2526
  },
2585
2527
  {
2586
2528
  "kind": "field",
2587
- "name": "clearable",
2529
+ "name": "color",
2588
2530
  "type": {
2589
- "text": "boolean"
2531
+ "text": "'currentColor' | 'primary' | 'neutral'"
2590
2532
  },
2591
- "default": "false",
2592
- "description": "Adds a clear button when the input is not empty.",
2593
- "attribute": "clearable"
2533
+ "default": "'currentColor'",
2534
+ "description": "The color of the icon button.\nThe default \"currentColor\" makes it possible to easily style the icon button from outside without any CSS variables.",
2535
+ "attribute": "color",
2536
+ "reflects": true
2594
2537
  },
2595
2538
  {
2596
2539
  "kind": "field",
@@ -2599,290 +2542,1243 @@
2599
2542
  "text": "boolean"
2600
2543
  },
2601
2544
  "default": "false",
2602
- "description": "Disables the input.",
2545
+ "description": "Disables the button.",
2603
2546
  "attribute": "disabled",
2604
2547
  "reflects": true
2605
2548
  },
2606
2549
  {
2607
- "kind": "field",
2608
- "name": "placeholder",
2609
- "type": {
2550
+ "kind": "method",
2551
+ "name": "handleBlur",
2552
+ "privacy": "private"
2553
+ },
2554
+ {
2555
+ "kind": "method",
2556
+ "name": "handleFocus",
2557
+ "privacy": "private"
2558
+ },
2559
+ {
2560
+ "kind": "method",
2561
+ "name": "handleClick",
2562
+ "privacy": "private",
2563
+ "parameters": [
2564
+ {
2565
+ "name": "event",
2566
+ "type": {
2567
+ "text": "MouseEvent"
2568
+ }
2569
+ }
2570
+ ]
2571
+ },
2572
+ {
2573
+ "kind": "method",
2574
+ "name": "click",
2575
+ "description": "Simulates a click on the icon button."
2576
+ },
2577
+ {
2578
+ "kind": "method",
2579
+ "name": "focus",
2580
+ "parameters": [
2581
+ {
2582
+ "name": "options",
2583
+ "optional": true,
2584
+ "type": {
2585
+ "text": "FocusOptions"
2586
+ }
2587
+ }
2588
+ ],
2589
+ "description": "Sets focus on the icon button."
2590
+ },
2591
+ {
2592
+ "kind": "method",
2593
+ "name": "blur",
2594
+ "description": "Removes focus from the icon button."
2595
+ }
2596
+ ],
2597
+ "events": [
2598
+ {
2599
+ "description": "Emitted when the icon button loses focus.",
2600
+ "name": "syn-blur",
2601
+ "reactName": "onSynBlur",
2602
+ "eventName": "SynBlurEvent"
2603
+ },
2604
+ {
2605
+ "description": "Emitted when the icon button gains focus.",
2606
+ "name": "syn-focus",
2607
+ "reactName": "onSynFocus",
2608
+ "eventName": "SynFocusEvent"
2609
+ }
2610
+ ],
2611
+ "attributes": [
2612
+ {
2613
+ "name": "name",
2614
+ "type": {
2615
+ "text": "string | undefined"
2616
+ },
2617
+ "description": "The name of the icon to draw. Available names depend on the icon library being used.",
2618
+ "fieldName": "name"
2619
+ },
2620
+ {
2621
+ "name": "library",
2622
+ "type": {
2623
+ "text": "string | undefined"
2624
+ },
2625
+ "description": "The name of a registered custom icon library.",
2626
+ "fieldName": "library"
2627
+ },
2628
+ {
2629
+ "name": "src",
2630
+ "type": {
2631
+ "text": "string | undefined"
2632
+ },
2633
+ "description": "An external URL of an SVG file. Be sure you trust the content you are including, as it will be executed as code and\ncan result in XSS attacks.",
2634
+ "fieldName": "src"
2635
+ },
2636
+ {
2637
+ "name": "href",
2638
+ "type": {
2639
+ "text": "string | undefined"
2640
+ },
2641
+ "description": "When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`.",
2642
+ "fieldName": "href"
2643
+ },
2644
+ {
2645
+ "name": "target",
2646
+ "type": {
2647
+ "text": "'_blank' | '_parent' | '_self' | '_top' | undefined"
2648
+ },
2649
+ "description": "Tells the browser where to open the link. Only used when `href` is set.",
2650
+ "fieldName": "target"
2651
+ },
2652
+ {
2653
+ "name": "download",
2654
+ "type": {
2655
+ "text": "string | undefined"
2656
+ },
2657
+ "description": "Tells the browser to download the linked file as this filename. Only used when `href` is set.",
2658
+ "fieldName": "download"
2659
+ },
2660
+ {
2661
+ "name": "label",
2662
+ "type": {
2663
+ "text": "string"
2664
+ },
2665
+ "default": "''",
2666
+ "description": "A description that gets read by assistive devices. For optimal accessibility, you should always include a label\nthat describes what the icon button does.",
2667
+ "fieldName": "label"
2668
+ },
2669
+ {
2670
+ "name": "size",
2671
+ "type": {
2672
+ "text": "'small' | 'medium' | 'large' | 'inherit'"
2673
+ },
2674
+ "default": "'inherit'",
2675
+ "description": "The icon button's size.",
2676
+ "fieldName": "size"
2677
+ },
2678
+ {
2679
+ "name": "color",
2680
+ "type": {
2681
+ "text": "'currentColor' | 'primary' | 'neutral'"
2682
+ },
2683
+ "default": "'currentColor'",
2684
+ "description": "The color of the icon button.\nThe default \"currentColor\" makes it possible to easily style the icon button from outside without any CSS variables.",
2685
+ "fieldName": "color"
2686
+ },
2687
+ {
2688
+ "name": "disabled",
2689
+ "type": {
2690
+ "text": "boolean"
2691
+ },
2692
+ "default": "false",
2693
+ "description": "Disables the button.",
2694
+ "fieldName": "disabled"
2695
+ }
2696
+ ],
2697
+ "superclass": {
2698
+ "name": "SynergyElement",
2699
+ "module": "/src/internal/synergy-element.js"
2700
+ },
2701
+ "summary": "Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.",
2702
+ "tagNameWithoutPrefix": "icon-button",
2703
+ "tagName": "syn-icon-button",
2704
+ "customElement": true,
2705
+ "jsDoc": "/**\n * @summary Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.\n * @documentation https://synergy.style/components/icon-button\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n *\n * @event syn-blur - Emitted when the icon button loses focus.\n * @event syn-focus - Emitted when the icon button gains focus.\n *\n * @csspart base - The component's base wrapper.\n */",
2706
+ "documentation": "https://synergy.style/components/icon-button",
2707
+ "status": "stable",
2708
+ "since": "2.0",
2709
+ "dependencies": [
2710
+ "syn-icon"
2711
+ ]
2712
+ }
2713
+ ],
2714
+ "exports": [
2715
+ {
2716
+ "kind": "js",
2717
+ "name": "default",
2718
+ "declaration": {
2719
+ "name": "SynIconButton",
2720
+ "module": "components/icon-button/icon-button.js"
2721
+ }
2722
+ }
2723
+ ]
2724
+ },
2725
+ {
2726
+ "kind": "javascript-module",
2727
+ "path": "components/input/input.js",
2728
+ "declarations": [
2729
+ {
2730
+ "kind": "class",
2731
+ "description": "",
2732
+ "name": "SynInput",
2733
+ "cssParts": [
2734
+ {
2735
+ "description": "The form control that wraps the label, input, and help text.",
2736
+ "name": "form-control"
2737
+ },
2738
+ {
2739
+ "description": "The label's wrapper.",
2740
+ "name": "form-control-label"
2741
+ },
2742
+ {
2743
+ "description": "The input's wrapper.",
2744
+ "name": "form-control-input"
2745
+ },
2746
+ {
2747
+ "description": "The help text's wrapper.",
2748
+ "name": "form-control-help-text"
2749
+ },
2750
+ {
2751
+ "description": "The component's base wrapper.",
2752
+ "name": "base"
2753
+ },
2754
+ {
2755
+ "description": "The internal `<input>` control.",
2756
+ "name": "input"
2757
+ },
2758
+ {
2759
+ "description": "The container that wraps the prefix.",
2760
+ "name": "prefix"
2761
+ },
2762
+ {
2763
+ "description": "The clear button.",
2764
+ "name": "clear-button"
2765
+ },
2766
+ {
2767
+ "description": "The password toggle button.",
2768
+ "name": "password-toggle-button"
2769
+ },
2770
+ {
2771
+ "description": "The container that wraps the suffix.",
2772
+ "name": "suffix"
2773
+ },
2774
+ {
2775
+ "description": "The container that wraps the number stepper.",
2776
+ "name": "stepper"
2777
+ },
2778
+ {
2779
+ "description": "The decrement number stepper button.",
2780
+ "name": "decrement-number-stepper"
2781
+ },
2782
+ {
2783
+ "description": "The increment number stepper button.",
2784
+ "name": "increment-number-stepper"
2785
+ },
2786
+ {
2787
+ "description": "The divider between the increment and decrement number stepper buttons.",
2788
+ "name": "divider"
2789
+ }
2790
+ ],
2791
+ "slots": [
2792
+ {
2793
+ "description": "The input's label. Alternatively, you can use the `label` attribute.",
2794
+ "name": "label"
2795
+ },
2796
+ {
2797
+ "description": "Used to prepend a presentational icon or similar element to the input.",
2798
+ "name": "prefix"
2799
+ },
2800
+ {
2801
+ "description": "Used to append a presentational icon or similar element to the input.",
2802
+ "name": "suffix"
2803
+ },
2804
+ {
2805
+ "description": "An icon to use in lieu of the default clear icon.",
2806
+ "name": "clear-icon"
2807
+ },
2808
+ {
2809
+ "description": "An icon to use in lieu of the default show password icon.",
2810
+ "name": "show-password-icon"
2811
+ },
2812
+ {
2813
+ "description": "An icon to use in lieu of the default hide password icon.",
2814
+ "name": "hide-password-icon"
2815
+ },
2816
+ {
2817
+ "description": "Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.",
2818
+ "name": "help-text"
2819
+ },
2820
+ {
2821
+ "description": "An icon to use in lieu of the default increment number stepper icon.",
2822
+ "name": "increment-number-stepper"
2823
+ },
2824
+ {
2825
+ "description": "An icon to use in lieu of the default decrement number stepper icon.",
2826
+ "name": "decrement-number-stepper"
2827
+ }
2828
+ ],
2829
+ "members": [
2830
+ {
2831
+ "kind": "field",
2832
+ "name": "dependencies",
2833
+ "type": {
2834
+ "text": "object"
2835
+ },
2836
+ "static": true,
2837
+ "default": "{\n\t\t'syn-icon': SynIcon,\n\t\t'syn-divider': SynDivider\n\t}"
2838
+ },
2839
+ {
2840
+ "kind": "field",
2841
+ "name": "formControlController",
2842
+ "privacy": "private",
2843
+ "readonly": true,
2844
+ "default": "new FormControlController(this, {\n assumeInteractionOn: ['syn-blur', 'syn-input']\n })"
2845
+ },
2846
+ {
2847
+ "kind": "field",
2848
+ "name": "hasSlotController",
2849
+ "privacy": "private",
2850
+ "readonly": true,
2851
+ "default": "new HasSlotController(this, 'help-text', 'label', 'prefix', 'suffix')"
2852
+ },
2853
+ {
2854
+ "kind": "field",
2855
+ "name": "localize",
2856
+ "privacy": "private",
2857
+ "readonly": true,
2858
+ "default": "new LocalizeController(this)"
2859
+ },
2860
+ {
2861
+ "kind": "field",
2862
+ "name": "input",
2863
+ "type": {
2864
+ "text": "HTMLInputElement"
2865
+ }
2866
+ },
2867
+ {
2868
+ "kind": "field",
2869
+ "name": "hasFocus",
2870
+ "type": {
2871
+ "text": "boolean"
2872
+ },
2873
+ "privacy": "private",
2874
+ "default": "false"
2875
+ },
2876
+ {
2877
+ "kind": "field",
2878
+ "name": "title",
2879
+ "type": {
2880
+ "text": "string"
2881
+ },
2882
+ "default": "''",
2883
+ "attribute": "title"
2884
+ },
2885
+ {
2886
+ "kind": "field",
2887
+ "name": "__numberInput",
2888
+ "privacy": "private"
2889
+ },
2890
+ {
2891
+ "kind": "field",
2892
+ "name": "__dateInput",
2893
+ "privacy": "private"
2894
+ },
2895
+ {
2896
+ "kind": "field",
2897
+ "name": "type",
2898
+ "type": {
2899
+ "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
2900
+ },
2901
+ "default": "'text'",
2902
+ "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
2903
+ "attribute": "type",
2904
+ "reflects": true
2905
+ },
2906
+ {
2907
+ "kind": "field",
2908
+ "name": "name",
2909
+ "type": {
2910
+ "text": "string"
2911
+ },
2912
+ "default": "''",
2913
+ "description": "The name of the input, submitted as a name/value pair with form data.",
2914
+ "attribute": "name"
2915
+ },
2916
+ {
2917
+ "kind": "field",
2918
+ "name": "value",
2919
+ "type": {
2920
+ "text": "string"
2921
+ },
2922
+ "default": "''",
2923
+ "description": "The current value of the input, submitted as a name/value pair with form data.",
2924
+ "attribute": "value"
2925
+ },
2926
+ {
2927
+ "kind": "field",
2928
+ "name": "defaultValue",
2929
+ "type": {
2930
+ "text": "string"
2931
+ },
2932
+ "default": "''",
2933
+ "description": "The default value of the form control. Primarily used for resetting the form control."
2934
+ },
2935
+ {
2936
+ "kind": "field",
2937
+ "name": "size",
2938
+ "type": {
2939
+ "text": "'small' | 'medium' | 'large'"
2940
+ },
2941
+ "default": "'medium'",
2942
+ "description": "The input's size.",
2943
+ "attribute": "size",
2944
+ "reflects": true
2945
+ },
2946
+ {
2947
+ "kind": "field",
2948
+ "name": "label",
2949
+ "type": {
2950
+ "text": "string"
2951
+ },
2952
+ "default": "''",
2953
+ "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
2954
+ "attribute": "label"
2955
+ },
2956
+ {
2957
+ "kind": "field",
2958
+ "name": "helpText",
2959
+ "type": {
2960
+ "text": "string"
2961
+ },
2962
+ "default": "''",
2963
+ "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
2964
+ "attribute": "help-text"
2965
+ },
2966
+ {
2967
+ "kind": "field",
2968
+ "name": "clearable",
2969
+ "type": {
2970
+ "text": "boolean"
2971
+ },
2972
+ "default": "false",
2973
+ "description": "Adds a clear button when the input is not empty.",
2974
+ "attribute": "clearable"
2975
+ },
2976
+ {
2977
+ "kind": "field",
2978
+ "name": "disabled",
2979
+ "type": {
2980
+ "text": "boolean"
2981
+ },
2982
+ "default": "false",
2983
+ "description": "Disables the input.",
2984
+ "attribute": "disabled",
2985
+ "reflects": true
2986
+ },
2987
+ {
2988
+ "kind": "field",
2989
+ "name": "placeholder",
2990
+ "type": {
2991
+ "text": "string"
2992
+ },
2993
+ "default": "''",
2994
+ "description": "Placeholder text to show as a hint when the input is empty.",
2995
+ "attribute": "placeholder"
2996
+ },
2997
+ {
2998
+ "kind": "field",
2999
+ "name": "readonly",
3000
+ "type": {
3001
+ "text": "boolean"
3002
+ },
3003
+ "default": "false",
3004
+ "description": "Makes the input readonly.",
3005
+ "attribute": "readonly",
3006
+ "reflects": true
3007
+ },
3008
+ {
3009
+ "kind": "field",
3010
+ "name": "passwordToggle",
3011
+ "type": {
3012
+ "text": "boolean"
3013
+ },
3014
+ "default": "false",
3015
+ "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
3016
+ "attribute": "password-toggle"
3017
+ },
3018
+ {
3019
+ "kind": "field",
3020
+ "name": "passwordVisible",
3021
+ "type": {
3022
+ "text": "boolean"
3023
+ },
3024
+ "default": "false",
3025
+ "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
3026
+ "attribute": "password-visible"
3027
+ },
3028
+ {
3029
+ "kind": "field",
3030
+ "name": "noSpinButtons",
3031
+ "type": {
3032
+ "text": "boolean"
3033
+ },
3034
+ "default": "false",
3035
+ "description": "Hides the increment/decrement spin buttons for number inputs.",
3036
+ "attribute": "no-spin-buttons"
3037
+ },
3038
+ {
3039
+ "kind": "field",
3040
+ "name": "form",
3041
+ "type": {
3042
+ "text": "string"
3043
+ },
3044
+ "default": "''",
3045
+ "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.",
3046
+ "attribute": "form",
3047
+ "reflects": true
3048
+ },
3049
+ {
3050
+ "kind": "field",
3051
+ "name": "required",
3052
+ "type": {
3053
+ "text": "boolean"
3054
+ },
3055
+ "default": "false",
3056
+ "description": "Makes the input a required field.",
3057
+ "attribute": "required",
3058
+ "reflects": true
3059
+ },
3060
+ {
3061
+ "kind": "field",
3062
+ "name": "pattern",
3063
+ "type": {
3064
+ "text": "string"
3065
+ },
3066
+ "description": "A regular expression pattern to validate input against.",
3067
+ "attribute": "pattern"
3068
+ },
3069
+ {
3070
+ "kind": "field",
3071
+ "name": "minlength",
3072
+ "type": {
3073
+ "text": "number"
3074
+ },
3075
+ "description": "The minimum length of input that will be considered valid.",
3076
+ "attribute": "minlength"
3077
+ },
3078
+ {
3079
+ "kind": "field",
3080
+ "name": "maxlength",
3081
+ "type": {
3082
+ "text": "number"
3083
+ },
3084
+ "description": "The maximum length of input that will be considered valid.",
3085
+ "attribute": "maxlength"
3086
+ },
3087
+ {
3088
+ "kind": "field",
3089
+ "name": "min",
3090
+ "type": {
3091
+ "text": "number | string"
3092
+ },
3093
+ "description": "The input's minimum value. Only applies to date and number input types.",
3094
+ "attribute": "min"
3095
+ },
3096
+ {
3097
+ "kind": "field",
3098
+ "name": "max",
3099
+ "type": {
3100
+ "text": "number | string"
3101
+ },
3102
+ "description": "The input's maximum value. Only applies to date and number input types.",
3103
+ "attribute": "max"
3104
+ },
3105
+ {
3106
+ "kind": "field",
3107
+ "name": "step",
3108
+ "type": {
3109
+ "text": "number | 'any'"
3110
+ },
3111
+ "description": "Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\nimplied, allowing any numeric value. Only applies to date and number input types.",
3112
+ "attribute": "step"
3113
+ },
3114
+ {
3115
+ "kind": "field",
3116
+ "name": "autocapitalize",
3117
+ "type": {
3118
+ "text": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
3119
+ },
3120
+ "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
3121
+ "attribute": "autocapitalize"
3122
+ },
3123
+ {
3124
+ "kind": "field",
3125
+ "name": "autocorrect",
3126
+ "type": {
3127
+ "text": "'off' | 'on'"
3128
+ },
3129
+ "description": "Indicates whether the browser's autocorrect feature is on or off.",
3130
+ "attribute": "autocorrect"
3131
+ },
3132
+ {
3133
+ "kind": "field",
3134
+ "name": "autocomplete",
3135
+ "type": {
3136
+ "text": "string"
3137
+ },
3138
+ "description": "Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.",
3139
+ "attribute": "autocomplete"
3140
+ },
3141
+ {
3142
+ "kind": "field",
3143
+ "name": "autofocus",
3144
+ "type": {
3145
+ "text": "boolean"
3146
+ },
3147
+ "description": "Indicates that the input should receive focus on page load.",
3148
+ "attribute": "autofocus"
3149
+ },
3150
+ {
3151
+ "kind": "field",
3152
+ "name": "enterkeyhint",
3153
+ "type": {
3154
+ "text": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
3155
+ },
3156
+ "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
3157
+ "attribute": "enterkeyhint"
3158
+ },
3159
+ {
3160
+ "kind": "field",
3161
+ "name": "spellcheck",
3162
+ "type": {
3163
+ "text": "boolean"
3164
+ },
3165
+ "default": "true",
3166
+ "description": "Enables spell checking on the input.",
3167
+ "attribute": "spellcheck"
3168
+ },
3169
+ {
3170
+ "kind": "field",
3171
+ "name": "inputmode",
3172
+ "type": {
3173
+ "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
3174
+ },
3175
+ "description": "Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\nkeyboard on supportive devices.",
3176
+ "attribute": "inputmode"
3177
+ },
3178
+ {
3179
+ "kind": "field",
3180
+ "name": "valueAsDate",
3181
+ "description": "Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted. This will use the native `<input type=\"{{type}}\">` implementation and may result in an error."
3182
+ },
3183
+ {
3184
+ "kind": "field",
3185
+ "name": "valueAsNumber",
3186
+ "description": "Gets or sets the current value as a number. Returns `NaN` if the value can't be converted."
3187
+ },
3188
+ {
3189
+ "kind": "field",
3190
+ "name": "validity",
3191
+ "description": "Gets the validity state object",
3192
+ "readonly": true
3193
+ },
3194
+ {
3195
+ "kind": "field",
3196
+ "name": "validationMessage",
3197
+ "description": "Gets the validation message",
3198
+ "readonly": true
3199
+ },
3200
+ {
3201
+ "kind": "method",
3202
+ "name": "handleBlur",
3203
+ "privacy": "private"
3204
+ },
3205
+ {
3206
+ "kind": "method",
3207
+ "name": "handleStep",
3208
+ "privacy": "private"
3209
+ },
3210
+ {
3211
+ "kind": "method",
3212
+ "name": "handleStepUp",
3213
+ "privacy": "private"
3214
+ },
3215
+ {
3216
+ "kind": "method",
3217
+ "name": "handleStepDown",
3218
+ "privacy": "private"
3219
+ },
3220
+ {
3221
+ "kind": "method",
3222
+ "name": "isDecrementDisabled",
3223
+ "privacy": "private"
3224
+ },
3225
+ {
3226
+ "kind": "method",
3227
+ "name": "isIncrementDisabled",
3228
+ "privacy": "private"
3229
+ },
3230
+ {
3231
+ "kind": "method",
3232
+ "name": "handleChange",
3233
+ "privacy": "private"
3234
+ },
3235
+ {
3236
+ "kind": "method",
3237
+ "name": "handleClearClick",
3238
+ "privacy": "private",
3239
+ "parameters": [
3240
+ {
3241
+ "name": "event",
3242
+ "type": {
3243
+ "text": "MouseEvent"
3244
+ }
3245
+ }
3246
+ ]
3247
+ },
3248
+ {
3249
+ "kind": "method",
3250
+ "name": "handleFocus",
3251
+ "privacy": "private"
3252
+ },
3253
+ {
3254
+ "kind": "method",
3255
+ "name": "handleInput",
3256
+ "privacy": "private"
3257
+ },
3258
+ {
3259
+ "kind": "method",
3260
+ "name": "handleInvalid",
3261
+ "privacy": "private",
3262
+ "parameters": [
3263
+ {
3264
+ "name": "event",
3265
+ "type": {
3266
+ "text": "Event"
3267
+ }
3268
+ }
3269
+ ]
3270
+ },
3271
+ {
3272
+ "kind": "method",
3273
+ "name": "handleKeyDown",
3274
+ "privacy": "private",
3275
+ "parameters": [
3276
+ {
3277
+ "name": "event",
3278
+ "type": {
3279
+ "text": "KeyboardEvent"
3280
+ }
3281
+ }
3282
+ ]
3283
+ },
3284
+ {
3285
+ "kind": "method",
3286
+ "name": "handlePasswordToggle",
3287
+ "privacy": "private"
3288
+ },
3289
+ {
3290
+ "kind": "method",
3291
+ "name": "handleDisabledChange"
3292
+ },
3293
+ {
3294
+ "kind": "method",
3295
+ "name": "handleStepChange"
3296
+ },
3297
+ {
3298
+ "kind": "method",
3299
+ "name": "handleValueChange"
3300
+ },
3301
+ {
3302
+ "kind": "method",
3303
+ "name": "focus",
3304
+ "parameters": [
3305
+ {
3306
+ "name": "options",
3307
+ "optional": true,
3308
+ "type": {
3309
+ "text": "FocusOptions"
3310
+ }
3311
+ }
3312
+ ],
3313
+ "description": "Sets focus on the input."
3314
+ },
3315
+ {
3316
+ "kind": "method",
3317
+ "name": "blur",
3318
+ "description": "Removes focus from the input."
3319
+ },
3320
+ {
3321
+ "kind": "method",
3322
+ "name": "select",
3323
+ "description": "Selects all the text in the input."
3324
+ },
3325
+ {
3326
+ "kind": "method",
3327
+ "name": "setSelectionRange",
3328
+ "parameters": [
3329
+ {
3330
+ "name": "selectionStart",
3331
+ "type": {
3332
+ "text": "number"
3333
+ }
3334
+ },
3335
+ {
3336
+ "name": "selectionEnd",
3337
+ "type": {
3338
+ "text": "number"
3339
+ }
3340
+ },
3341
+ {
3342
+ "name": "selectionDirection",
3343
+ "default": "'none'",
3344
+ "type": {
3345
+ "text": "'forward' | 'backward' | 'none'"
3346
+ }
3347
+ }
3348
+ ],
3349
+ "description": "Sets the start and end positions of the text selection (0-based)."
3350
+ },
3351
+ {
3352
+ "kind": "method",
3353
+ "name": "setRangeText",
3354
+ "parameters": [
3355
+ {
3356
+ "name": "replacement",
3357
+ "type": {
3358
+ "text": "string"
3359
+ }
3360
+ },
3361
+ {
3362
+ "name": "start",
3363
+ "optional": true,
3364
+ "type": {
3365
+ "text": "number"
3366
+ }
3367
+ },
3368
+ {
3369
+ "name": "end",
3370
+ "optional": true,
3371
+ "type": {
3372
+ "text": "number"
3373
+ }
3374
+ },
3375
+ {
3376
+ "name": "selectMode",
3377
+ "default": "'preserve'",
3378
+ "type": {
3379
+ "text": "'select' | 'start' | 'end' | 'preserve'"
3380
+ }
3381
+ }
3382
+ ],
3383
+ "description": "Replaces a range of text with a new string."
3384
+ },
3385
+ {
3386
+ "kind": "method",
3387
+ "name": "showPicker",
3388
+ "description": "Displays the browser picker for an input element (only works if the browser supports it for the input type)."
3389
+ },
3390
+ {
3391
+ "kind": "method",
3392
+ "name": "stepUp",
3393
+ "description": "Increments the value of a numeric input type by the value of the step attribute."
3394
+ },
3395
+ {
3396
+ "kind": "method",
3397
+ "name": "stepDown",
3398
+ "description": "Decrements the value of a numeric input type by the value of the step attribute."
3399
+ },
3400
+ {
3401
+ "kind": "method",
3402
+ "name": "checkValidity",
3403
+ "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid."
3404
+ },
3405
+ {
3406
+ "kind": "method",
3407
+ "name": "getForm",
3408
+ "return": {
3409
+ "type": {
3410
+ "text": "HTMLFormElement | null"
3411
+ }
3412
+ },
3413
+ "description": "Gets the associated form, if one exists."
3414
+ },
3415
+ {
3416
+ "kind": "method",
3417
+ "name": "reportValidity",
3418
+ "description": "Checks for validity and shows the browser's validation message if the control is invalid."
3419
+ },
3420
+ {
3421
+ "kind": "method",
3422
+ "name": "setCustomValidity",
3423
+ "parameters": [
3424
+ {
3425
+ "name": "message",
3426
+ "type": {
3427
+ "text": "string"
3428
+ }
3429
+ }
3430
+ ],
3431
+ "description": "Sets a custom validation message. Pass an empty string to restore validity."
3432
+ }
3433
+ ],
3434
+ "events": [
3435
+ {
3436
+ "description": "Emitted when the control loses focus.",
3437
+ "name": "syn-blur",
3438
+ "reactName": "onSynBlur",
3439
+ "eventName": "SynBlurEvent"
3440
+ },
3441
+ {
3442
+ "description": "Emitted when an alteration to the control's value is committed by the user.",
3443
+ "name": "syn-change",
3444
+ "reactName": "onSynChange",
3445
+ "eventName": "SynChangeEvent"
3446
+ },
3447
+ {
3448
+ "description": "Emitted when the clear button is activated.",
3449
+ "name": "syn-clear",
3450
+ "reactName": "onSynClear",
3451
+ "eventName": "SynClearEvent"
3452
+ },
3453
+ {
3454
+ "description": "Emitted when the control gains focus.",
3455
+ "name": "syn-focus",
3456
+ "reactName": "onSynFocus",
3457
+ "eventName": "SynFocusEvent"
3458
+ },
3459
+ {
3460
+ "description": "Emitted when the control receives input.",
3461
+ "name": "syn-input",
3462
+ "reactName": "onSynInput",
3463
+ "eventName": "SynInputEvent"
3464
+ },
3465
+ {
3466
+ "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied.",
3467
+ "name": "syn-invalid",
3468
+ "reactName": "onSynInvalid",
3469
+ "eventName": "SynInvalidEvent"
3470
+ }
3471
+ ],
3472
+ "attributes": [
3473
+ {
3474
+ "name": "title",
3475
+ "type": {
3476
+ "text": "string"
3477
+ },
3478
+ "default": "''",
3479
+ "fieldName": "title"
3480
+ },
3481
+ {
3482
+ "name": "type",
3483
+ "type": {
3484
+ "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
3485
+ },
3486
+ "default": "'text'",
3487
+ "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
3488
+ "fieldName": "type"
3489
+ },
3490
+ {
3491
+ "name": "name",
3492
+ "type": {
3493
+ "text": "string"
3494
+ },
3495
+ "default": "''",
3496
+ "description": "The name of the input, submitted as a name/value pair with form data.",
3497
+ "fieldName": "name"
3498
+ },
3499
+ {
3500
+ "name": "value",
3501
+ "type": {
3502
+ "text": "string"
3503
+ },
3504
+ "default": "''",
3505
+ "description": "The current value of the input, submitted as a name/value pair with form data.",
3506
+ "fieldName": "value"
3507
+ },
3508
+ {
3509
+ "name": "size",
3510
+ "type": {
3511
+ "text": "'small' | 'medium' | 'large'"
3512
+ },
3513
+ "default": "'medium'",
3514
+ "description": "The input's size.",
3515
+ "fieldName": "size"
3516
+ },
3517
+ {
3518
+ "name": "label",
3519
+ "type": {
3520
+ "text": "string"
3521
+ },
3522
+ "default": "''",
3523
+ "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
3524
+ "fieldName": "label"
3525
+ },
3526
+ {
3527
+ "name": "help-text",
3528
+ "type": {
3529
+ "text": "string"
3530
+ },
3531
+ "default": "''",
3532
+ "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
3533
+ "fieldName": "helpText"
3534
+ },
3535
+ {
3536
+ "name": "clearable",
3537
+ "type": {
3538
+ "text": "boolean"
3539
+ },
3540
+ "default": "false",
3541
+ "description": "Adds a clear button when the input is not empty.",
3542
+ "fieldName": "clearable"
3543
+ },
3544
+ {
3545
+ "name": "disabled",
3546
+ "type": {
3547
+ "text": "boolean"
3548
+ },
3549
+ "default": "false",
3550
+ "description": "Disables the input.",
3551
+ "fieldName": "disabled"
3552
+ },
3553
+ {
3554
+ "name": "placeholder",
3555
+ "type": {
2610
3556
  "text": "string"
2611
3557
  },
2612
3558
  "default": "''",
2613
3559
  "description": "Placeholder text to show as a hint when the input is empty.",
2614
- "attribute": "placeholder"
3560
+ "fieldName": "placeholder"
2615
3561
  },
2616
3562
  {
2617
- "kind": "field",
2618
3563
  "name": "readonly",
2619
3564
  "type": {
2620
3565
  "text": "boolean"
2621
3566
  },
2622
3567
  "default": "false",
2623
3568
  "description": "Makes the input readonly.",
2624
- "attribute": "readonly",
2625
- "reflects": true
3569
+ "fieldName": "readonly"
2626
3570
  },
2627
3571
  {
2628
- "kind": "field",
2629
- "name": "passwordToggle",
3572
+ "name": "password-toggle",
2630
3573
  "type": {
2631
3574
  "text": "boolean"
2632
3575
  },
2633
3576
  "default": "false",
2634
3577
  "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
2635
- "attribute": "password-toggle"
3578
+ "fieldName": "passwordToggle"
2636
3579
  },
2637
3580
  {
2638
- "kind": "field",
2639
- "name": "passwordVisible",
3581
+ "name": "password-visible",
2640
3582
  "type": {
2641
3583
  "text": "boolean"
2642
3584
  },
2643
3585
  "default": "false",
2644
3586
  "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
2645
- "attribute": "password-visible"
3587
+ "fieldName": "passwordVisible"
2646
3588
  },
2647
3589
  {
2648
- "kind": "field",
2649
- "name": "noSpinButtons",
3590
+ "name": "no-spin-buttons",
2650
3591
  "type": {
2651
3592
  "text": "boolean"
2652
3593
  },
2653
3594
  "default": "false",
2654
3595
  "description": "Hides the increment/decrement spin buttons for number inputs.",
2655
- "attribute": "no-spin-buttons"
3596
+ "fieldName": "noSpinButtons"
2656
3597
  },
2657
3598
  {
2658
- "kind": "field",
2659
3599
  "name": "form",
2660
3600
  "type": {
2661
3601
  "text": "string"
2662
3602
  },
2663
3603
  "default": "''",
2664
3604
  "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.",
2665
- "attribute": "form",
2666
- "reflects": true
3605
+ "fieldName": "form"
2667
3606
  },
2668
3607
  {
2669
- "kind": "field",
2670
3608
  "name": "required",
2671
3609
  "type": {
2672
3610
  "text": "boolean"
2673
3611
  },
2674
3612
  "default": "false",
2675
3613
  "description": "Makes the input a required field.",
2676
- "attribute": "required",
2677
- "reflects": true
3614
+ "fieldName": "required"
2678
3615
  },
2679
3616
  {
2680
- "kind": "field",
2681
3617
  "name": "pattern",
2682
3618
  "type": {
2683
3619
  "text": "string"
2684
3620
  },
2685
3621
  "description": "A regular expression pattern to validate input against.",
2686
- "attribute": "pattern"
3622
+ "fieldName": "pattern"
2687
3623
  },
2688
3624
  {
2689
- "kind": "field",
2690
3625
  "name": "minlength",
2691
3626
  "type": {
2692
3627
  "text": "number"
2693
3628
  },
2694
3629
  "description": "The minimum length of input that will be considered valid.",
2695
- "attribute": "minlength"
3630
+ "fieldName": "minlength"
2696
3631
  },
2697
3632
  {
2698
- "kind": "field",
2699
3633
  "name": "maxlength",
2700
3634
  "type": {
2701
3635
  "text": "number"
2702
3636
  },
2703
3637
  "description": "The maximum length of input that will be considered valid.",
2704
- "attribute": "maxlength"
3638
+ "fieldName": "maxlength"
2705
3639
  },
2706
3640
  {
2707
- "kind": "field",
2708
3641
  "name": "min",
2709
3642
  "type": {
2710
3643
  "text": "number | string"
2711
3644
  },
2712
3645
  "description": "The input's minimum value. Only applies to date and number input types.",
2713
- "attribute": "min"
3646
+ "fieldName": "min"
2714
3647
  },
2715
3648
  {
2716
- "kind": "field",
2717
3649
  "name": "max",
2718
3650
  "type": {
2719
3651
  "text": "number | string"
2720
3652
  },
2721
3653
  "description": "The input's maximum value. Only applies to date and number input types.",
2722
- "attribute": "max"
3654
+ "fieldName": "max"
2723
3655
  },
2724
3656
  {
2725
- "kind": "field",
2726
3657
  "name": "step",
2727
3658
  "type": {
2728
3659
  "text": "number | 'any'"
2729
3660
  },
2730
3661
  "description": "Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\nimplied, allowing any numeric value. Only applies to date and number input types.",
2731
- "attribute": "step"
3662
+ "fieldName": "step"
2732
3663
  },
2733
3664
  {
2734
- "kind": "field",
2735
3665
  "name": "autocapitalize",
2736
3666
  "type": {
2737
3667
  "text": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
2738
3668
  },
2739
3669
  "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
2740
- "attribute": "autocapitalize"
3670
+ "fieldName": "autocapitalize"
2741
3671
  },
2742
3672
  {
2743
- "kind": "field",
2744
3673
  "name": "autocorrect",
2745
3674
  "type": {
2746
3675
  "text": "'off' | 'on'"
2747
3676
  },
2748
3677
  "description": "Indicates whether the browser's autocorrect feature is on or off.",
2749
- "attribute": "autocorrect"
3678
+ "fieldName": "autocorrect"
2750
3679
  },
2751
3680
  {
2752
- "kind": "field",
2753
3681
  "name": "autocomplete",
2754
3682
  "type": {
2755
3683
  "text": "string"
2756
3684
  },
2757
3685
  "description": "Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.",
2758
- "attribute": "autocomplete"
3686
+ "fieldName": "autocomplete"
2759
3687
  },
2760
3688
  {
2761
- "kind": "field",
2762
3689
  "name": "autofocus",
2763
3690
  "type": {
2764
3691
  "text": "boolean"
2765
3692
  },
2766
3693
  "description": "Indicates that the input should receive focus on page load.",
2767
- "attribute": "autofocus"
3694
+ "fieldName": "autofocus"
2768
3695
  },
2769
3696
  {
2770
- "kind": "field",
2771
3697
  "name": "enterkeyhint",
2772
3698
  "type": {
2773
3699
  "text": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
2774
3700
  },
2775
3701
  "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
2776
- "attribute": "enterkeyhint"
3702
+ "fieldName": "enterkeyhint"
2777
3703
  },
2778
3704
  {
2779
- "kind": "field",
2780
3705
  "name": "spellcheck",
2781
3706
  "type": {
2782
3707
  "text": "boolean"
2783
3708
  },
2784
3709
  "default": "true",
2785
3710
  "description": "Enables spell checking on the input.",
2786
- "attribute": "spellcheck"
3711
+ "fieldName": "spellcheck"
2787
3712
  },
2788
3713
  {
2789
- "kind": "field",
2790
3714
  "name": "inputmode",
2791
3715
  "type": {
2792
3716
  "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
2793
3717
  },
2794
3718
  "description": "Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\nkeyboard on supportive devices.",
2795
- "attribute": "inputmode"
2796
- },
2797
- {
2798
- "kind": "field",
2799
- "name": "valueAsDate",
2800
- "description": "Gets or sets the current value as a `Date` object. Returns `null` if the value can't be converted. This will use the native `<input type=\"{{type}}\">` implementation and may result in an error."
2801
- },
2802
- {
2803
- "kind": "field",
2804
- "name": "valueAsNumber",
2805
- "description": "Gets or sets the current value as a number. Returns `NaN` if the value can't be converted."
2806
- },
3719
+ "fieldName": "inputmode"
3720
+ }
3721
+ ],
3722
+ "superclass": {
3723
+ "name": "SynergyElement",
3724
+ "module": "/src/internal/synergy-element.js"
3725
+ },
3726
+ "summary": "Inputs collect data from the user.",
3727
+ "tagNameWithoutPrefix": "input",
3728
+ "tagName": "syn-input",
3729
+ "customElement": true,
3730
+ "jsDoc": "/**\n * @summary Inputs collect data from the user.\n * @documentation https://synergy.style/components/input\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n * @dependency syn-divider\n *\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 input.\n * @slot suffix - Used to append a presentational icon or similar element to the input.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot show-password-icon - An icon to use in lieu of the default show password icon.\n * @slot hide-password-icon - An icon to use in lieu of the default hide password icon.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n * @slot increment-number-stepper - An icon to use in lieu of the default increment number stepper icon.\n * @slot decrement-number-stepper - An icon to use in lieu of the default decrement number stepper icon.\n *\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-change - Emitted when an alteration to the control's value is committed by the user.\n * @event syn-clear - Emitted when the clear button is activated.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-input - Emitted when the control receives input.\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 input's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart base - The component's base wrapper.\n * @csspart input - The internal `<input>` control.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart clear-button - The clear button.\n * @csspart password-toggle-button - The password toggle button.\n * @csspart suffix - The container that wraps the suffix.\n * @csspart stepper - The container that wraps the number stepper.\n * @csspart decrement-number-stepper - The decrement number stepper button.\n * @csspart increment-number-stepper - The increment number stepper button.\n * @csspart divider - The divider between the increment and decrement number stepper buttons.\n */",
3731
+ "documentation": "https://synergy.style/components/input",
3732
+ "status": "stable",
3733
+ "since": "2.0",
3734
+ "dependencies": [
3735
+ "syn-icon",
3736
+ "syn-divider"
3737
+ ]
3738
+ }
3739
+ ],
3740
+ "exports": [
3741
+ {
3742
+ "kind": "js",
3743
+ "name": "default",
3744
+ "declaration": {
3745
+ "name": "SynInput",
3746
+ "module": "components/input/input.js"
3747
+ }
3748
+ }
3749
+ ]
3750
+ },
3751
+ {
3752
+ "kind": "javascript-module",
3753
+ "path": "components/menu/menu.js",
3754
+ "declarations": [
3755
+ {
3756
+ "kind": "class",
3757
+ "description": "",
3758
+ "name": "SynMenu",
3759
+ "slots": [
2807
3760
  {
2808
- "kind": "field",
2809
- "name": "validity",
2810
- "description": "Gets the validity state object",
2811
- "readonly": true
2812
- },
3761
+ "description": "The menu's content, including menu items, menu labels, and dividers.",
3762
+ "name": ""
3763
+ }
3764
+ ],
3765
+ "members": [
2813
3766
  {
2814
3767
  "kind": "field",
2815
- "name": "validationMessage",
2816
- "description": "Gets the validation message",
2817
- "readonly": true
2818
- },
2819
- {
2820
- "kind": "method",
2821
- "name": "handleBlur",
2822
- "privacy": "private"
2823
- },
2824
- {
2825
- "kind": "method",
2826
- "name": "handleStep",
2827
- "privacy": "private"
2828
- },
2829
- {
2830
- "kind": "method",
2831
- "name": "handleStepUp",
2832
- "privacy": "private"
2833
- },
2834
- {
2835
- "kind": "method",
2836
- "name": "handleStepDown",
2837
- "privacy": "private"
2838
- },
2839
- {
2840
- "kind": "method",
2841
- "name": "isDecrementDisabled",
2842
- "privacy": "private"
2843
- },
2844
- {
2845
- "kind": "method",
2846
- "name": "isIncrementDisabled",
2847
- "privacy": "private"
2848
- },
2849
- {
2850
- "kind": "method",
2851
- "name": "handleChange",
2852
- "privacy": "private"
2853
- },
2854
- {
2855
- "kind": "method",
2856
- "name": "handleClearClick",
2857
- "privacy": "private",
2858
- "parameters": [
2859
- {
2860
- "name": "event",
2861
- "type": {
2862
- "text": "MouseEvent"
2863
- }
2864
- }
2865
- ]
2866
- },
2867
- {
2868
- "kind": "method",
2869
- "name": "handleFocus",
2870
- "privacy": "private"
2871
- },
2872
- {
2873
- "kind": "method",
2874
- "name": "handleInput",
2875
- "privacy": "private"
3768
+ "name": "defaultSlot",
3769
+ "type": {
3770
+ "text": "HTMLSlotElement"
3771
+ }
2876
3772
  },
2877
3773
  {
2878
3774
  "kind": "method",
2879
- "name": "handleInvalid",
3775
+ "name": "handleClick",
2880
3776
  "privacy": "private",
2881
3777
  "parameters": [
2882
3778
  {
2883
3779
  "name": "event",
2884
3780
  "type": {
2885
- "text": "Event"
3781
+ "text": "MouseEvent"
2886
3782
  }
2887
3783
  }
2888
3784
  ]
@@ -2902,456 +3798,419 @@
2902
3798
  },
2903
3799
  {
2904
3800
  "kind": "method",
2905
- "name": "handlePasswordToggle",
2906
- "privacy": "private"
2907
- },
2908
- {
2909
- "kind": "method",
2910
- "name": "handleDisabledChange"
2911
- },
2912
- {
2913
- "kind": "method",
2914
- "name": "handleStepChange"
2915
- },
2916
- {
2917
- "kind": "method",
2918
- "name": "handleValueChange"
2919
- },
2920
- {
2921
- "kind": "method",
2922
- "name": "focus",
3801
+ "name": "handleMouseDown",
3802
+ "privacy": "private",
2923
3803
  "parameters": [
2924
3804
  {
2925
- "name": "options",
2926
- "optional": true,
3805
+ "name": "event",
2927
3806
  "type": {
2928
- "text": "FocusOptions"
3807
+ "text": "MouseEvent"
2929
3808
  }
2930
3809
  }
2931
- ],
2932
- "description": "Sets focus on the input."
2933
- },
2934
- {
2935
- "kind": "method",
2936
- "name": "blur",
2937
- "description": "Removes focus from the input."
3810
+ ]
2938
3811
  },
2939
3812
  {
2940
3813
  "kind": "method",
2941
- "name": "select",
2942
- "description": "Selects all the text in the input."
3814
+ "name": "handleSlotChange",
3815
+ "privacy": "private"
2943
3816
  },
2944
3817
  {
2945
3818
  "kind": "method",
2946
- "name": "setSelectionRange",
3819
+ "name": "isMenuItem",
3820
+ "privacy": "private",
2947
3821
  "parameters": [
2948
3822
  {
2949
- "name": "selectionStart",
2950
- "type": {
2951
- "text": "number"
2952
- }
2953
- },
2954
- {
2955
- "name": "selectionEnd",
2956
- "type": {
2957
- "text": "number"
2958
- }
2959
- },
2960
- {
2961
- "name": "selectionDirection",
2962
- "default": "'none'",
3823
+ "name": "item",
2963
3824
  "type": {
2964
- "text": "'forward' | 'backward' | 'none'"
3825
+ "text": "HTMLElement"
2965
3826
  }
2966
3827
  }
2967
- ],
2968
- "description": "Sets the start and end positions of the text selection (0-based)."
2969
- },
3828
+ ]
3829
+ }
3830
+ ],
3831
+ "events": [
2970
3832
  {
2971
- "kind": "method",
2972
- "name": "setRangeText",
2973
- "parameters": [
2974
- {
2975
- "name": "replacement",
2976
- "type": {
2977
- "text": "string"
2978
- }
2979
- },
2980
- {
2981
- "name": "start",
2982
- "optional": true,
2983
- "type": {
2984
- "text": "number"
2985
- }
2986
- },
2987
- {
2988
- "name": "end",
2989
- "optional": true,
2990
- "type": {
2991
- "text": "number"
2992
- }
2993
- },
2994
- {
2995
- "name": "selectMode",
2996
- "default": "'preserve'",
2997
- "type": {
2998
- "text": "'select' | 'start' | 'end' | 'preserve'"
2999
- }
3000
- }
3001
- ],
3002
- "description": "Replaces a range of text with a new string."
3833
+ "type": {
3834
+ "text": "{ item: SynMenuItem }"
3835
+ },
3836
+ "description": "Emitted when a menu item is selected.",
3837
+ "name": "syn-select",
3838
+ "reactName": "onSynSelect",
3839
+ "eventName": "SynSelectEvent"
3840
+ }
3841
+ ],
3842
+ "superclass": {
3843
+ "name": "SynergyElement",
3844
+ "module": "/src/internal/synergy-element.js"
3845
+ },
3846
+ "summary": "Menus provide a list of options for the user to choose from.",
3847
+ "tagNameWithoutPrefix": "menu",
3848
+ "tagName": "syn-menu",
3849
+ "customElement": true,
3850
+ "jsDoc": "/**\n * @summary Menus provide a list of options for the user to choose from.\n * @documentation https://synergy.style/components/menu\n * @status stable\n * @since 2.0\n *\n * @slot - The menu's content, including menu items, menu labels, and dividers.\n *\n * @event {{ item: SynMenuItem }} syn-select - Emitted when a menu item is selected.\n */",
3851
+ "documentation": "https://synergy.style/components/menu",
3852
+ "status": "stable",
3853
+ "since": "2.0"
3854
+ }
3855
+ ],
3856
+ "exports": [
3857
+ {
3858
+ "kind": "js",
3859
+ "name": "default",
3860
+ "declaration": {
3861
+ "name": "SynMenu",
3862
+ "module": "components/menu/menu.js"
3863
+ }
3864
+ }
3865
+ ]
3866
+ },
3867
+ {
3868
+ "kind": "javascript-module",
3869
+ "path": "components/menu-item/menu-item.js",
3870
+ "declarations": [
3871
+ {
3872
+ "kind": "class",
3873
+ "description": "",
3874
+ "name": "SynMenuItem",
3875
+ "cssProperties": [
3876
+ {
3877
+ "description": "The distance submenus shift to overlap the parent menu.",
3878
+ "name": "--submenu-offset",
3879
+ "default": "-2px"
3880
+ }
3881
+ ],
3882
+ "cssParts": [
3883
+ {
3884
+ "description": "The component's base wrapper.",
3885
+ "name": "base"
3003
3886
  },
3004
3887
  {
3005
- "kind": "method",
3006
- "name": "showPicker",
3007
- "description": "Displays the browser picker for an input element (only works if the browser supports it for the input type)."
3888
+ "description": "The checked icon, which is only visible when the menu item is checked.",
3889
+ "name": "checked-icon"
3008
3890
  },
3009
3891
  {
3010
- "kind": "method",
3011
- "name": "stepUp",
3012
- "description": "Increments the value of a numeric input type by the value of the step attribute."
3892
+ "description": "The prefix container.",
3893
+ "name": "prefix"
3013
3894
  },
3014
3895
  {
3015
- "kind": "method",
3016
- "name": "stepDown",
3017
- "description": "Decrements the value of a numeric input type by the value of the step attribute."
3896
+ "description": "The menu item label.",
3897
+ "name": "label"
3018
3898
  },
3019
3899
  {
3020
- "kind": "method",
3021
- "name": "checkValidity",
3022
- "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid."
3900
+ "description": "The suffix container.",
3901
+ "name": "suffix"
3023
3902
  },
3024
3903
  {
3025
- "kind": "method",
3026
- "name": "getForm",
3027
- "return": {
3028
- "type": {
3029
- "text": "HTMLFormElement | null"
3030
- }
3031
- },
3032
- "description": "Gets the associated form, if one exists."
3904
+ "description": "The spinner that shows when the menu item is in the loading state.",
3905
+ "name": "spinner"
3033
3906
  },
3034
3907
  {
3035
- "kind": "method",
3036
- "name": "reportValidity",
3037
- "description": "Checks for validity and shows the browser's validation message if the control is invalid."
3908
+ "description": "The spinner's base part.",
3909
+ "name": "spinner__base"
3038
3910
  },
3039
3911
  {
3040
- "kind": "method",
3041
- "name": "setCustomValidity",
3042
- "parameters": [
3043
- {
3044
- "name": "message",
3045
- "type": {
3046
- "text": "string"
3047
- }
3048
- }
3049
- ],
3050
- "description": "Sets a custom validation message. Pass an empty string to restore validity."
3912
+ "description": "The submenu icon, visible only when the menu item has a submenu (not yet implemented).",
3913
+ "name": "submenu-icon"
3051
3914
  }
3052
3915
  ],
3053
- "events": [
3054
- {
3055
- "description": "Emitted when the control loses focus.",
3056
- "name": "syn-blur",
3057
- "reactName": "onSynBlur",
3058
- "eventName": "SynBlurEvent"
3059
- },
3060
- {
3061
- "description": "Emitted when an alteration to the control's value is committed by the user.",
3062
- "name": "syn-change",
3063
- "reactName": "onSynChange",
3064
- "eventName": "SynChangeEvent"
3065
- },
3916
+ "slots": [
3066
3917
  {
3067
- "description": "Emitted when the clear button is activated.",
3068
- "name": "syn-clear",
3069
- "reactName": "onSynClear",
3070
- "eventName": "SynClearEvent"
3918
+ "description": "The menu item's label.",
3919
+ "name": ""
3071
3920
  },
3072
3921
  {
3073
- "description": "Emitted when the control gains focus.",
3074
- "name": "syn-focus",
3075
- "reactName": "onSynFocus",
3076
- "eventName": "SynFocusEvent"
3922
+ "description": "Used to prepend an icon or similar element to the menu item.",
3923
+ "name": "prefix"
3077
3924
  },
3078
3925
  {
3079
- "description": "Emitted when the control receives input.",
3080
- "name": "syn-input",
3081
- "reactName": "onSynInput",
3082
- "eventName": "SynInputEvent"
3926
+ "description": "Used to append an icon or similar element to the menu item.",
3927
+ "name": "suffix"
3083
3928
  },
3084
3929
  {
3085
- "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied.",
3086
- "name": "syn-invalid",
3087
- "reactName": "onSynInvalid",
3088
- "eventName": "SynInvalidEvent"
3930
+ "description": "Used to denote a nested menu.",
3931
+ "name": "submenu"
3089
3932
  }
3090
3933
  ],
3091
- "attributes": [
3092
- {
3093
- "name": "title",
3094
- "type": {
3095
- "text": "string"
3096
- },
3097
- "default": "''",
3098
- "fieldName": "title"
3099
- },
3100
- {
3101
- "name": "type",
3102
- "type": {
3103
- "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
3104
- },
3105
- "default": "'text'",
3106
- "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
3107
- "fieldName": "type"
3108
- },
3934
+ "members": [
3109
3935
  {
3110
- "name": "name",
3936
+ "kind": "field",
3937
+ "name": "dependencies",
3111
3938
  "type": {
3112
- "text": "string"
3939
+ "text": "object"
3113
3940
  },
3114
- "default": "''",
3115
- "description": "The name of the input, submitted as a name/value pair with form data.",
3116
- "fieldName": "name"
3941
+ "static": true,
3942
+ "default": "{\n 'syn-icon': SynIcon,\n 'syn-popup': SynPopup,\n 'syn-spinner': SynSpinner\n }"
3117
3943
  },
3118
3944
  {
3119
- "name": "value",
3945
+ "kind": "field",
3946
+ "name": "cachedTextLabel",
3120
3947
  "type": {
3121
3948
  "text": "string"
3122
3949
  },
3123
- "default": "''",
3124
- "description": "The current value of the input, submitted as a name/value pair with form data.",
3125
- "fieldName": "value"
3126
- },
3127
- {
3128
- "name": "size",
3129
- "type": {
3130
- "text": "'small' | 'medium' | 'large'"
3131
- },
3132
- "default": "'medium'",
3133
- "description": "The input's size.",
3134
- "fieldName": "size"
3950
+ "privacy": "private"
3135
3951
  },
3136
3952
  {
3137
- "name": "label",
3953
+ "kind": "field",
3954
+ "name": "defaultSlot",
3138
3955
  "type": {
3139
- "text": "string"
3140
- },
3141
- "default": "''",
3142
- "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
3143
- "fieldName": "label"
3956
+ "text": "HTMLSlotElement"
3957
+ }
3144
3958
  },
3145
3959
  {
3146
- "name": "help-text",
3960
+ "kind": "field",
3961
+ "name": "menuItem",
3147
3962
  "type": {
3148
- "text": "string"
3149
- },
3150
- "default": "''",
3151
- "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
3152
- "fieldName": "helpText"
3963
+ "text": "HTMLElement"
3964
+ }
3153
3965
  },
3154
3966
  {
3155
- "name": "clearable",
3967
+ "kind": "field",
3968
+ "name": "type",
3156
3969
  "type": {
3157
- "text": "boolean"
3970
+ "text": "'normal' | 'checkbox'"
3158
3971
  },
3159
- "default": "false",
3160
- "description": "Adds a clear button when the input is not empty.",
3161
- "fieldName": "clearable"
3972
+ "default": "'normal'",
3973
+ "description": "The type of menu item to render. To use `checked`, this value must be set to `checkbox`.",
3974
+ "attribute": "type"
3162
3975
  },
3163
3976
  {
3164
- "name": "disabled",
3977
+ "kind": "field",
3978
+ "name": "checked",
3165
3979
  "type": {
3166
3980
  "text": "boolean"
3167
3981
  },
3168
3982
  "default": "false",
3169
- "description": "Disables the input.",
3170
- "fieldName": "disabled"
3983
+ "description": "Draws the item in a checked state.",
3984
+ "attribute": "checked",
3985
+ "reflects": true
3171
3986
  },
3172
3987
  {
3173
- "name": "placeholder",
3988
+ "kind": "field",
3989
+ "name": "value",
3174
3990
  "type": {
3175
3991
  "text": "string"
3176
3992
  },
3177
3993
  "default": "''",
3178
- "description": "Placeholder text to show as a hint when the input is empty.",
3179
- "fieldName": "placeholder"
3994
+ "description": "A unique value to store in the menu item. This can be used as a way to identify menu items when selected.",
3995
+ "attribute": "value"
3180
3996
  },
3181
3997
  {
3182
- "name": "readonly",
3998
+ "kind": "field",
3999
+ "name": "loading",
3183
4000
  "type": {
3184
4001
  "text": "boolean"
3185
4002
  },
3186
4003
  "default": "false",
3187
- "description": "Makes the input readonly.",
3188
- "fieldName": "readonly"
4004
+ "description": "Draws the menu item in a loading state.",
4005
+ "attribute": "loading",
4006
+ "reflects": true
3189
4007
  },
3190
4008
  {
3191
- "name": "password-toggle",
4009
+ "kind": "field",
4010
+ "name": "disabled",
3192
4011
  "type": {
3193
4012
  "text": "boolean"
3194
4013
  },
3195
4014
  "default": "false",
3196
- "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
3197
- "fieldName": "passwordToggle"
4015
+ "description": "Draws the menu item in a disabled state, preventing selection.",
4016
+ "attribute": "disabled",
4017
+ "reflects": true
3198
4018
  },
3199
4019
  {
3200
- "name": "password-visible",
3201
- "type": {
3202
- "text": "boolean"
3203
- },
3204
- "default": "false",
3205
- "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
3206
- "fieldName": "passwordVisible"
4020
+ "kind": "field",
4021
+ "name": "localize",
4022
+ "privacy": "private",
4023
+ "readonly": true,
4024
+ "default": "new LocalizeController(this)"
3207
4025
  },
3208
4026
  {
3209
- "name": "no-spin-buttons",
3210
- "type": {
3211
- "text": "boolean"
3212
- },
3213
- "default": "false",
3214
- "description": "Hides the increment/decrement spin buttons for number inputs.",
3215
- "fieldName": "noSpinButtons"
4027
+ "kind": "field",
4028
+ "name": "hasSlotController",
4029
+ "privacy": "private",
4030
+ "readonly": true,
4031
+ "default": "new HasSlotController(this, 'submenu')"
3216
4032
  },
3217
4033
  {
3218
- "name": "form",
4034
+ "kind": "field",
4035
+ "name": "submenuController",
3219
4036
  "type": {
3220
- "text": "string"
4037
+ "text": "SubmenuController"
3221
4038
  },
3222
- "default": "''",
3223
- "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.",
3224
- "fieldName": "form"
4039
+ "privacy": "private",
4040
+ "default": "new SubmenuController(this, this.hasSlotController, this.localize)"
3225
4041
  },
3226
4042
  {
3227
- "name": "required",
3228
- "type": {
3229
- "text": "boolean"
3230
- },
3231
- "default": "false",
3232
- "description": "Makes the input a required field.",
3233
- "fieldName": "required"
4043
+ "kind": "method",
4044
+ "name": "handleDefaultSlotChange",
4045
+ "privacy": "private"
3234
4046
  },
3235
4047
  {
3236
- "name": "pattern",
3237
- "type": {
3238
- "text": "string"
3239
- },
3240
- "description": "A regular expression pattern to validate input against.",
3241
- "fieldName": "pattern"
4048
+ "kind": "field",
4049
+ "name": "handleHostClick",
4050
+ "privacy": "private"
3242
4051
  },
3243
4052
  {
3244
- "name": "minlength",
3245
- "type": {
3246
- "text": "number"
3247
- },
3248
- "description": "The minimum length of input that will be considered valid.",
3249
- "fieldName": "minlength"
4053
+ "kind": "field",
4054
+ "name": "handleMouseOver",
4055
+ "privacy": "private"
3250
4056
  },
3251
4057
  {
3252
- "name": "maxlength",
3253
- "type": {
3254
- "text": "number"
3255
- },
3256
- "description": "The maximum length of input that will be considered valid.",
3257
- "fieldName": "maxlength"
4058
+ "kind": "method",
4059
+ "name": "handleCheckedChange"
3258
4060
  },
3259
4061
  {
3260
- "name": "min",
3261
- "type": {
3262
- "text": "number | string"
3263
- },
3264
- "description": "The input's minimum value. Only applies to date and number input types.",
3265
- "fieldName": "min"
4062
+ "kind": "method",
4063
+ "name": "handleDisabledChange"
3266
4064
  },
3267
4065
  {
3268
- "name": "max",
3269
- "type": {
3270
- "text": "number | string"
3271
- },
3272
- "description": "The input's maximum value. Only applies to date and number input types.",
3273
- "fieldName": "max"
4066
+ "kind": "method",
4067
+ "name": "handleTypeChange"
3274
4068
  },
3275
4069
  {
3276
- "name": "step",
3277
- "type": {
3278
- "text": "number | 'any'"
3279
- },
3280
- "description": "Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is\nimplied, allowing any numeric value. Only applies to date and number input types.",
3281
- "fieldName": "step"
4070
+ "kind": "method",
4071
+ "name": "getTextLabel",
4072
+ "description": "Returns a text label based on the contents of the menu item's default slot."
3282
4073
  },
3283
4074
  {
3284
- "name": "autocapitalize",
4075
+ "kind": "method",
4076
+ "name": "isSubmenu"
4077
+ }
4078
+ ],
4079
+ "attributes": [
4080
+ {
4081
+ "name": "type",
3285
4082
  "type": {
3286
- "text": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
4083
+ "text": "'normal' | 'checkbox'"
3287
4084
  },
3288
- "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
3289
- "fieldName": "autocapitalize"
4085
+ "default": "'normal'",
4086
+ "description": "The type of menu item to render. To use `checked`, this value must be set to `checkbox`.",
4087
+ "fieldName": "type"
3290
4088
  },
3291
4089
  {
3292
- "name": "autocorrect",
4090
+ "name": "checked",
3293
4091
  "type": {
3294
- "text": "'off' | 'on'"
4092
+ "text": "boolean"
3295
4093
  },
3296
- "description": "Indicates whether the browser's autocorrect feature is on or off.",
3297
- "fieldName": "autocorrect"
4094
+ "default": "false",
4095
+ "description": "Draws the item in a checked state.",
4096
+ "fieldName": "checked"
3298
4097
  },
3299
4098
  {
3300
- "name": "autocomplete",
4099
+ "name": "value",
3301
4100
  "type": {
3302
4101
  "text": "string"
3303
4102
  },
3304
- "description": "Specifies what permission the browser has to provide assistance in filling out form field values. Refer to\n[this page on MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) for available values.",
3305
- "fieldName": "autocomplete"
4103
+ "default": "''",
4104
+ "description": "A unique value to store in the menu item. This can be used as a way to identify menu items when selected.",
4105
+ "fieldName": "value"
3306
4106
  },
3307
4107
  {
3308
- "name": "autofocus",
4108
+ "name": "loading",
3309
4109
  "type": {
3310
4110
  "text": "boolean"
3311
4111
  },
3312
- "description": "Indicates that the input should receive focus on page load.",
3313
- "fieldName": "autofocus"
4112
+ "default": "false",
4113
+ "description": "Draws the menu item in a loading state.",
4114
+ "fieldName": "loading"
3314
4115
  },
3315
4116
  {
3316
- "name": "enterkeyhint",
4117
+ "name": "disabled",
3317
4118
  "type": {
3318
- "text": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
4119
+ "text": "boolean"
3319
4120
  },
3320
- "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
3321
- "fieldName": "enterkeyhint"
4121
+ "default": "false",
4122
+ "description": "Draws the menu item in a disabled state, preventing selection.",
4123
+ "fieldName": "disabled"
4124
+ }
4125
+ ],
4126
+ "superclass": {
4127
+ "name": "SynergyElement",
4128
+ "module": "/src/internal/synergy-element.js"
4129
+ },
4130
+ "summary": "Menu items provide options for the user to pick from in a menu.",
4131
+ "tagNameWithoutPrefix": "menu-item",
4132
+ "tagName": "syn-menu-item",
4133
+ "customElement": true,
4134
+ "jsDoc": "/**\n * @summary Menu items provide options for the user to pick from in a menu.\n * @documentation https://synergy.style/components/menu-item\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n * @dependency syn-popup\n * @dependency syn-spinner\n *\n * @slot - The menu item's label.\n * @slot prefix - Used to prepend an icon or similar element to the menu item.\n * @slot suffix - Used to append an icon or similar element to the menu item.\n * @slot submenu - Used to denote a nested menu.\n *\n * @csspart base - The component's base wrapper.\n * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked.\n * @csspart prefix - The prefix container.\n * @csspart label - The menu item label.\n * @csspart suffix - The suffix container.\n * @csspart spinner - The spinner that shows when the menu item is in the loading state.\n * @csspart spinner__base - The spinner's base part.\n * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented).\n *\n * @cssproperty [--submenu-offset=-2px] - The distance submenus shift to overlap the parent menu.\n */",
4135
+ "documentation": "https://synergy.style/components/menu-item",
4136
+ "status": "stable",
4137
+ "since": "2.0",
4138
+ "dependencies": [
4139
+ "syn-icon",
4140
+ "syn-popup",
4141
+ "syn-spinner"
4142
+ ]
4143
+ }
4144
+ ],
4145
+ "exports": [
4146
+ {
4147
+ "kind": "js",
4148
+ "name": "default",
4149
+ "declaration": {
4150
+ "name": "SynMenuItem",
4151
+ "module": "components/menu-item/menu-item.js"
4152
+ }
4153
+ }
4154
+ ]
4155
+ },
4156
+ {
4157
+ "kind": "javascript-module",
4158
+ "path": "components/menu-label/menu-label.js",
4159
+ "declarations": [
4160
+ {
4161
+ "kind": "class",
4162
+ "description": "",
4163
+ "name": "SynMenuLabel",
4164
+ "cssProperties": [
4165
+ {
4166
+ "description": "Display property of the divider. Defaults to \"block\"",
4167
+ "name": "--display-divider"
4168
+ }
4169
+ ],
4170
+ "cssParts": [
4171
+ {
4172
+ "description": "The component's base wrapper.",
4173
+ "name": "base"
3322
4174
  },
3323
4175
  {
3324
- "name": "spellcheck",
3325
- "type": {
3326
- "text": "boolean"
3327
- },
3328
- "default": "true",
3329
- "description": "Enables spell checking on the input.",
3330
- "fieldName": "spellcheck"
4176
+ "description": "The divider that is displayed above the content",
4177
+ "name": "divider"
3331
4178
  },
3332
4179
  {
3333
- "name": "inputmode",
4180
+ "description": "The label that is displayed below the divider",
4181
+ "name": "label"
4182
+ }
4183
+ ],
4184
+ "slots": [
4185
+ {
4186
+ "description": "The menu label's content.",
4187
+ "name": ""
4188
+ }
4189
+ ],
4190
+ "members": [
4191
+ {
4192
+ "kind": "field",
4193
+ "name": "dependencies",
3334
4194
  "type": {
3335
- "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
4195
+ "text": "object"
3336
4196
  },
3337
- "description": "Tells the browser what type of data will be entered by the user, allowing it to display the appropriate virtual\nkeyboard on supportive devices.",
3338
- "fieldName": "inputmode"
4197
+ "static": true,
4198
+ "default": "{\n 'syn-divider': SynDivider,\n }"
3339
4199
  }
3340
4200
  ],
3341
4201
  "superclass": {
3342
4202
  "name": "SynergyElement",
3343
4203
  "module": "/src/internal/synergy-element.js"
3344
4204
  },
3345
- "summary": "Inputs collect data from the user.",
3346
- "tagNameWithoutPrefix": "input",
3347
- "tagName": "syn-input",
4205
+ "summary": "Menu labels are used to describe a group of menu items.",
4206
+ "tagNameWithoutPrefix": "menu-label",
4207
+ "tagName": "syn-menu-label",
3348
4208
  "customElement": true,
3349
- "jsDoc": "/**\n * @summary Inputs collect data from the user.\n * @documentation https://synergy.style/components/input\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n * @dependency syn-divider\n *\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 input.\n * @slot suffix - Used to append a presentational icon or similar element to the input.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot show-password-icon - An icon to use in lieu of the default show password icon.\n * @slot hide-password-icon - An icon to use in lieu of the default hide password icon.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\n * @slot increment-number-stepper - An icon to use in lieu of the default increment number stepper icon.\n * @slot decrement-number-stepper - An icon to use in lieu of the default decrement number stepper icon.\n *\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-change - Emitted when an alteration to the control's value is committed by the user.\n * @event syn-clear - Emitted when the clear button is activated.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-input - Emitted when the control receives input.\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 input's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart base - The component's base wrapper.\n * @csspart input - The internal `<input>` control.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart clear-button - The clear button.\n * @csspart password-toggle-button - The password toggle button.\n * @csspart suffix - The container that wraps the suffix.\n * @csspart stepper - The container that wraps the number stepper.\n * @csspart decrement-number-stepper - The decrement number stepper button.\n * @csspart increment-number-stepper - The increment number stepper button.\n * @csspart divider - The divider between the increment and decrement number stepper buttons.\n */",
3350
- "documentation": "https://synergy.style/components/input",
4209
+ "jsDoc": "/**\n * @summary Menu labels are used to describe a group of menu items.\n * @documentation https://synergy.style/components/menu-label\n * @status stable\n * @since 2.0\n *\n * @dependency syn-divider\n *\n * @slot - The menu label's content.\n *\n * @csspart base - The component's base wrapper.\n * @csspart divider - The divider that is displayed above the content\n * @csspart label - The label that is displayed below the divider\n *\n * @cssproperty --display-divider - Display property of the divider. Defaults to \"block\"\n */",
4210
+ "documentation": "https://synergy.style/components/menu-label",
3351
4211
  "status": "stable",
3352
4212
  "since": "2.0",
3353
4213
  "dependencies": [
3354
- "syn-icon",
3355
4214
  "syn-divider"
3356
4215
  ]
3357
4216
  }
@@ -3361,8 +4220,8 @@
3361
4220
  "kind": "js",
3362
4221
  "name": "default",
3363
4222
  "declaration": {
3364
- "name": "SynInput",
3365
- "module": "components/input/input.js"
4223
+ "name": "SynMenuLabel",
4224
+ "module": "components/menu-label/menu-label.js"
3366
4225
  }
3367
4226
  }
3368
4227
  ]
@@ -7483,7 +8342,7 @@
7483
8342
  "package": {
7484
8343
  "name": "@synergy-design-system/components",
7485
8344
  "description": "",
7486
- "version": "1.11.0",
8345
+ "version": "1.12.0",
7487
8346
  "author": {
7488
8347
  "name": "SICK Global UX Foundation",
7489
8348
  "url": "https://www.sick.com"