@synergy-design-system/components 1.0.0-main.8 → 1.0.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 (212) hide show
  1. package/LICENSE +5 -24
  2. package/README.md +1 -1
  3. package/dist/chunks/chunk.23HTU3YE.js +189 -0
  4. package/dist/chunks/chunk.23HTU3YE.js.map +7 -0
  5. package/dist/chunks/chunk.2XZKXVMR.js +44 -0
  6. package/dist/chunks/chunk.2XZKXVMR.js.map +7 -0
  7. package/dist/chunks/chunk.3AQETYIY.js +12 -0
  8. package/dist/chunks/chunk.3AQETYIY.js.map +7 -0
  9. package/dist/chunks/chunk.45DBFNVM.js +12 -0
  10. package/dist/chunks/chunk.45DBFNVM.js.map +7 -0
  11. package/dist/chunks/chunk.4CBN5LPQ.js +137 -0
  12. package/dist/chunks/chunk.4CBN5LPQ.js.map +7 -0
  13. package/dist/chunks/chunk.4I6M5V6O.js +56 -0
  14. package/dist/chunks/chunk.4I6M5V6O.js.map +7 -0
  15. package/dist/chunks/{chunk.5OIEI73E.js → chunk.4XAK6MOQ.js} +2 -2
  16. package/dist/chunks/chunk.4ZURABYO.js +24 -0
  17. package/dist/chunks/{chunk.BREU4ILT.js.map → chunk.4ZURABYO.js.map} +3 -3
  18. package/dist/chunks/{chunk.5SUEJSIW.js → chunk.5ECUVPQI.js} +13 -31
  19. package/dist/chunks/{chunk.5SUEJSIW.js.map → chunk.5ECUVPQI.js.map} +3 -3
  20. package/dist/chunks/{chunk.53ZDJY4Q.js → chunk.6I3HJMNQ.js} +2 -2
  21. package/dist/chunks/{chunk.53ZDJY4Q.js.map → chunk.6I3HJMNQ.js.map} +1 -1
  22. package/dist/chunks/chunk.7CU3ERWO.js +86 -0
  23. package/dist/chunks/chunk.7CU3ERWO.js.map +7 -0
  24. package/dist/chunks/chunk.AFEABUNX.js +107 -0
  25. package/dist/chunks/chunk.AFEABUNX.js.map +7 -0
  26. package/dist/chunks/chunk.BP34OPXK.js +12 -0
  27. package/dist/chunks/chunk.BP34OPXK.js.map +7 -0
  28. package/dist/chunks/chunk.C6BQ2APJ.js +12 -0
  29. package/dist/chunks/chunk.C6BQ2APJ.js.map +7 -0
  30. package/dist/chunks/{chunk.G3PDKNFK.js → chunk.EMVM7VFZ.js} +15 -13
  31. package/dist/chunks/chunk.EMVM7VFZ.js.map +7 -0
  32. package/dist/chunks/chunk.F4MRQLNL.js +25 -0
  33. package/dist/chunks/chunk.F4MRQLNL.js.map +7 -0
  34. package/dist/chunks/chunk.FVSP4LXX.js +138 -0
  35. package/dist/chunks/chunk.FVSP4LXX.js.map +7 -0
  36. package/dist/chunks/chunk.GNAJOKCJ.js +32 -0
  37. package/dist/chunks/chunk.GNAJOKCJ.js.map +7 -0
  38. package/dist/chunks/{chunk.4SJKXOCV.js → chunk.HPTHXM7Q.js} +2 -2
  39. package/dist/chunks/chunk.HSZXAY7K.js +12 -0
  40. package/dist/chunks/chunk.HSZXAY7K.js.map +7 -0
  41. package/dist/chunks/{chunk.5ZMQBOV3.js → chunk.IV4DT254.js} +2 -2
  42. package/dist/chunks/{chunk.DI6S4YNU.js → chunk.J36DIOVR.js} +11 -38
  43. package/dist/chunks/{chunk.DI6S4YNU.js.map → chunk.J36DIOVR.js.map} +4 -4
  44. package/dist/chunks/chunk.JBYBQ5TQ.js +132 -0
  45. package/dist/chunks/chunk.JBYBQ5TQ.js.map +7 -0
  46. package/dist/chunks/chunk.JHXCBOUD.js +123 -0
  47. package/dist/chunks/chunk.JHXCBOUD.js.map +7 -0
  48. package/dist/chunks/{chunk.B7XEALID.js → chunk.KZT2HFEV.js} +2 -2
  49. package/dist/chunks/chunk.MNMITYTH.js +184 -0
  50. package/dist/chunks/chunk.MNMITYTH.js.map +7 -0
  51. package/dist/chunks/chunk.NKIYFJN2.js +1 -0
  52. package/dist/chunks/chunk.NKIYFJN2.js.map +7 -0
  53. package/dist/chunks/chunk.OVVMSN4D.js +37 -0
  54. package/dist/chunks/chunk.OVVMSN4D.js.map +7 -0
  55. package/dist/chunks/{chunk.Q77OTWF2.js → chunk.OXUFFH57.js} +6 -66
  56. package/dist/chunks/{chunk.Q77OTWF2.js.map → chunk.OXUFFH57.js.map} +4 -4
  57. package/dist/chunks/{chunk.WDCAHRYG.js → chunk.P2LNG2PZ.js} +4 -2
  58. package/dist/chunks/chunk.PBWBRVMW.js +111 -0
  59. package/dist/chunks/chunk.PBWBRVMW.js.map +7 -0
  60. package/dist/chunks/chunk.PJO6TM3T.js +10 -0
  61. package/dist/chunks/{chunk.ILONRPL4.js.map → chunk.PJO6TM3T.js.map} +2 -2
  62. package/dist/chunks/chunk.Q6AHDRN2.js +12 -0
  63. package/dist/chunks/chunk.Q6AHDRN2.js.map +7 -0
  64. package/dist/chunks/chunk.QBOOYQY4.js +360 -0
  65. package/dist/chunks/chunk.QBOOYQY4.js.map +7 -0
  66. package/dist/chunks/{chunk.BREU4ILT.js → chunk.RSONAU45.js} +6 -1
  67. package/dist/chunks/chunk.RSONAU45.js.map +7 -0
  68. package/dist/chunks/chunk.TPRFDNQ5.js +12 -0
  69. package/dist/chunks/chunk.TPRFDNQ5.js.map +7 -0
  70. package/dist/chunks/chunk.TS36BW77.js +224 -0
  71. package/dist/chunks/chunk.TS36BW77.js.map +7 -0
  72. package/dist/chunks/chunk.V6VND4OF.js +49 -0
  73. package/dist/chunks/chunk.V6VND4OF.js.map +7 -0
  74. package/dist/chunks/chunk.VZ7S7YYN.js +34 -0
  75. package/dist/chunks/chunk.VZ7S7YYN.js.map +7 -0
  76. package/dist/chunks/chunk.W46CFM2R.js +90 -0
  77. package/dist/chunks/chunk.W46CFM2R.js.map +7 -0
  78. package/dist/chunks/chunk.WFAJR3FN.js +25 -0
  79. package/dist/chunks/chunk.WFAJR3FN.js.map +7 -0
  80. package/dist/chunks/chunk.X6ZVJSXL.js +212 -0
  81. package/dist/chunks/chunk.X6ZVJSXL.js.map +7 -0
  82. package/dist/chunks/chunk.YBIBWRKC.js +19 -0
  83. package/dist/chunks/chunk.YBIBWRKC.js.map +7 -0
  84. package/dist/chunks/chunk.YBZOIKAS.js +127 -0
  85. package/dist/chunks/chunk.YBZOIKAS.js.map +7 -0
  86. package/dist/chunks/{chunk.P22LQI5J.js → chunk.YTS5TRJZ.js} +6 -6
  87. package/dist/chunks/chunk.YTS5TRJZ.js.map +7 -0
  88. package/dist/chunks/{chunk.WTCUSH7V.js → chunk.Z3RZUTQU.js} +2 -2
  89. package/dist/chunks/chunk.ZJHB2ZWN.js +351 -0
  90. package/dist/chunks/chunk.ZJHB2ZWN.js.map +7 -0
  91. package/dist/chunks/chunk.ZSHYGTD6.js +12 -0
  92. package/dist/chunks/chunk.ZSHYGTD6.js.map +7 -0
  93. package/dist/components/button/button.component.d.ts +1 -1
  94. package/dist/components/button/button.component.js +13 -11
  95. package/dist/components/button/button.custom.styles.js +1 -1
  96. package/dist/components/button/button.js +14 -12
  97. package/dist/components/button/button.styles.js +2 -2
  98. package/dist/components/button-group/button-group.component.d.ts +28 -0
  99. package/dist/components/button-group/button-group.component.js +11 -0
  100. package/dist/components/button-group/button-group.component.js.map +7 -0
  101. package/dist/components/button-group/button-group.d.ts +8 -0
  102. package/dist/components/button-group/button-group.js +12 -0
  103. package/dist/components/button-group/button-group.js.map +7 -0
  104. package/dist/components/button-group/button-group.styles.d.ts +2 -0
  105. package/dist/components/button-group/button-group.styles.js +9 -0
  106. package/dist/components/button-group/button-group.styles.js.map +7 -0
  107. package/dist/components/checkbox/checkbox.component.d.ts +93 -0
  108. package/dist/components/checkbox/checkbox.component.js +22 -0
  109. package/dist/components/checkbox/checkbox.component.js.map +7 -0
  110. package/dist/components/checkbox/checkbox.custom.styles.js +3 -6
  111. package/dist/components/checkbox/checkbox.custom.styles.js.map +3 -3
  112. package/dist/components/checkbox/checkbox.d.ts +8 -0
  113. package/dist/components/checkbox/checkbox.js +23 -0
  114. package/dist/components/checkbox/checkbox.js.map +7 -0
  115. package/dist/components/checkbox/checkbox.styles.d.ts +2 -0
  116. package/dist/components/checkbox/checkbox.styles.js +10 -0
  117. package/dist/components/checkbox/checkbox.styles.js.map +7 -0
  118. package/dist/components/icon/icon.component.js +7 -5
  119. package/dist/components/icon/icon.custom.styles.d.ts +2 -0
  120. package/dist/components/icon/icon.custom.styles.js +8 -0
  121. package/dist/components/icon/icon.custom.styles.js.map +7 -0
  122. package/dist/components/icon/icon.js +9 -10
  123. package/dist/components/icon/icon.js.map +3 -3
  124. package/dist/components/icon/icon.styles.js +2 -1
  125. package/dist/components/icon/library.js +2 -2
  126. package/dist/components/icon/library.system.js +1 -1
  127. package/dist/components/input/input.component.js +14 -10
  128. package/dist/components/input/input.custom.styles.js +1 -1
  129. package/dist/components/input/input.js +15 -11
  130. package/dist/components/input/input.styles.js +3 -2
  131. package/dist/components/radio/radio.component.d.ts +53 -0
  132. package/dist/components/radio/radio.component.js +20 -0
  133. package/dist/components/radio/radio.component.js.map +7 -0
  134. package/dist/components/radio/radio.custom.styles.d.ts +2 -0
  135. package/dist/components/radio/radio.custom.styles.js +8 -0
  136. package/dist/components/radio/radio.custom.styles.js.map +7 -0
  137. package/dist/components/radio/radio.d.ts +8 -0
  138. package/dist/components/radio/radio.js +21 -0
  139. package/dist/components/radio/radio.js.map +7 -0
  140. package/dist/components/radio/radio.styles.d.ts +2 -0
  141. package/dist/components/radio/radio.styles.js +10 -0
  142. package/dist/components/radio/radio.styles.js.map +7 -0
  143. package/dist/components/radio-button/radio-button.component.d.ts +53 -0
  144. package/dist/components/radio-button/radio-button.component.js +15 -0
  145. package/dist/components/radio-button/radio-button.component.js.map +7 -0
  146. package/dist/components/radio-button/radio-button.d.ts +8 -0
  147. package/dist/components/radio-button/radio-button.js +16 -0
  148. package/dist/components/radio-button/radio-button.js.map +7 -0
  149. package/dist/components/radio-button/radio-button.styles.d.ts +2 -0
  150. package/dist/components/radio-button/radio-button.styles.js +11 -0
  151. package/dist/components/radio-button/radio-button.styles.js.map +7 -0
  152. package/dist/components/radio-group/radio-group.component.d.ts +89 -0
  153. package/dist/components/radio-group/radio-group.component.js +18 -0
  154. package/dist/components/radio-group/radio-group.component.js.map +7 -0
  155. package/dist/components/radio-group/radio-group.custom.styles.d.ts +2 -0
  156. package/dist/components/radio-group/radio-group.custom.styles.js +8 -0
  157. package/dist/components/radio-group/radio-group.custom.styles.js.map +7 -0
  158. package/dist/components/radio-group/radio-group.d.ts +8 -0
  159. package/dist/components/radio-group/radio-group.js +19 -0
  160. package/dist/components/radio-group/radio-group.js.map +7 -0
  161. package/dist/components/radio-group/radio-group.styles.d.ts +2 -0
  162. package/dist/components/radio-group/radio-group.styles.js +11 -0
  163. package/dist/components/radio-group/radio-group.styles.js.map +7 -0
  164. package/dist/components/spinner/spinner.component.js +2 -2
  165. package/dist/components/switch/switch.component.d.ts +86 -0
  166. package/dist/components/switch/switch.component.js +15 -0
  167. package/dist/components/switch/switch.component.js.map +7 -0
  168. package/dist/components/switch/switch.custom.styles.d.ts +2 -0
  169. package/dist/components/switch/switch.custom.styles.js +8 -0
  170. package/dist/components/switch/switch.custom.styles.js.map +7 -0
  171. package/dist/components/switch/switch.d.ts +8 -0
  172. package/dist/components/switch/switch.js +16 -0
  173. package/dist/components/switch/switch.js.map +7 -0
  174. package/dist/components/switch/switch.styles.d.ts +2 -0
  175. package/dist/components/switch/switch.styles.js +10 -0
  176. package/dist/components/switch/switch.styles.js.map +7 -0
  177. package/dist/components/textarea/textarea.component.d.ts +131 -0
  178. package/dist/components/textarea/textarea.component.js +17 -0
  179. package/dist/components/textarea/textarea.component.js.map +7 -0
  180. package/dist/components/textarea/textarea.custom.styles.js +3 -6
  181. package/dist/components/textarea/textarea.custom.styles.js.map +3 -3
  182. package/dist/components/textarea/textarea.d.ts +8 -0
  183. package/dist/components/textarea/textarea.js +18 -0
  184. package/dist/components/textarea/textarea.js.map +7 -0
  185. package/dist/components/textarea/textarea.styles.d.ts +2 -0
  186. package/dist/components/textarea/textarea.styles.js +11 -0
  187. package/dist/components/textarea/textarea.styles.js.map +7 -0
  188. package/dist/custom-elements.json +3112 -520
  189. package/dist/internal/test.d.ts +28 -0
  190. package/dist/styles/form-control.custom.styles.d.ts +2 -0
  191. package/dist/synergy.d.ts +11 -1
  192. package/dist/synergy.js +87 -21
  193. package/dist/utilities/form.js +2 -2
  194. package/dist/utilities/icon-library.d.ts +1 -0
  195. package/dist/utilities/icon-library.js +14 -0
  196. package/dist/utilities/icon-library.js.map +7 -0
  197. package/dist/vscode.html-custom-data.json +390 -1
  198. package/dist/web-types.json +868 -10
  199. package/package.json +23 -16
  200. package/dist/chunks/chunk.DREO4ZTN.js +0 -10
  201. package/dist/chunks/chunk.DREO4ZTN.js.map +0 -7
  202. package/dist/chunks/chunk.G3PDKNFK.js.map +0 -7
  203. package/dist/chunks/chunk.ILONRPL4.js +0 -10
  204. package/dist/chunks/chunk.P22LQI5J.js.map +0 -7
  205. package/dist/chunks/chunk.U7ZJ22QM.js +0 -128
  206. package/dist/chunks/chunk.U7ZJ22QM.js.map +0 -7
  207. /package/dist/chunks/{chunk.5OIEI73E.js.map → chunk.4XAK6MOQ.js.map} +0 -0
  208. /package/dist/chunks/{chunk.4SJKXOCV.js.map → chunk.HPTHXM7Q.js.map} +0 -0
  209. /package/dist/chunks/{chunk.5ZMQBOV3.js.map → chunk.IV4DT254.js.map} +0 -0
  210. /package/dist/chunks/{chunk.B7XEALID.js.map → chunk.KZT2HFEV.js.map} +0 -0
  211. /package/dist/chunks/{chunk.WDCAHRYG.js.map → chunk.P2LNG2PZ.js.map} +0 -0
  212. /package/dist/chunks/{chunk.WTCUSH7V.js.map → chunk.Z3RZUTQU.js.map} +0 -0
@@ -118,9 +118,9 @@
118
118
  "kind": "field",
119
119
  "name": "variant",
120
120
  "type": {
121
- "text": "'default' | 'outline' | 'text'"
121
+ "text": "'filled' | 'outline' | 'text'"
122
122
  },
123
- "default": "'default'",
123
+ "default": "'outline'",
124
124
  "description": "The button's theme variant.",
125
125
  "attribute": "variant",
126
126
  "reflects": true
@@ -435,9 +435,9 @@
435
435
  {
436
436
  "name": "variant",
437
437
  "type": {
438
- "text": "'default' | 'outline' | 'text'"
438
+ "text": "'filled' | 'outline' | 'text'"
439
439
  },
440
- "default": "'default'",
440
+ "default": "'outline'",
441
441
  "description": "The button's theme variant.",
442
442
  "fieldName": "variant"
443
443
  },
@@ -618,85 +618,39 @@
618
618
  },
619
619
  {
620
620
  "kind": "javascript-module",
621
- "path": "components/icon/icon.js",
621
+ "path": "components/button-group/button-group.js",
622
622
  "declarations": [
623
623
  {
624
624
  "kind": "class",
625
625
  "description": "",
626
- "name": "SynIcon",
626
+ "name": "SynButtonGroup",
627
627
  "cssParts": [
628
628
  {
629
- "description": "The internal SVG element.",
630
- "name": "svg"
631
- },
629
+ "description": "The component's base wrapper.",
630
+ "name": "base"
631
+ }
632
+ ],
633
+ "slots": [
632
634
  {
633
- "description": "The <use> element generated when using `spriteSheet: true`",
634
- "name": "use"
635
+ "description": "One or more `<syn-button>` elements to display in the button group.",
636
+ "name": ""
635
637
  }
636
638
  ],
637
639
  "members": [
638
640
  {
639
641
  "kind": "field",
640
- "name": "initialRender",
641
- "type": {
642
- "text": "boolean"
643
- },
644
- "privacy": "private",
645
- "default": "false"
646
- },
647
- {
648
- "kind": "method",
649
- "name": "resolveIcon",
650
- "privacy": "private",
651
- "return": {
652
- "type": {
653
- "text": "Promise<SVGResult>"
654
- }
655
- },
656
- "parameters": [
657
- {
658
- "name": "url",
659
- "type": {
660
- "text": "string"
661
- }
662
- },
663
- {
664
- "name": "library",
665
- "optional": true,
666
- "type": {
667
- "text": "IconLibrary"
668
- }
669
- }
670
- ],
671
- "description": "Given a URL, this function returns the resulting SVG element or an appropriate error symbol."
672
- },
673
- {
674
- "kind": "field",
675
- "name": "svg",
676
- "type": {
677
- "text": "SVGElement | HTMLTemplateResult | null"
678
- },
679
- "privacy": "private",
680
- "default": "null"
681
- },
682
- {
683
- "kind": "field",
684
- "name": "name",
642
+ "name": "defaultSlot",
685
643
  "type": {
686
- "text": "string | undefined"
687
- },
688
- "description": "The name of the icon to draw. Available names depend on the icon library being used.",
689
- "attribute": "name",
690
- "reflects": true
644
+ "text": "HTMLSlotElement"
645
+ }
691
646
  },
692
647
  {
693
648
  "kind": "field",
694
- "name": "src",
649
+ "name": "disableRole",
695
650
  "type": {
696
- "text": "string | undefined"
651
+ "text": "boolean"
697
652
  },
698
- "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.",
699
- "attribute": "src"
653
+ "default": "false"
700
654
  },
701
655
  {
702
656
  "kind": "field",
@@ -705,99 +659,88 @@
705
659
  "text": "string"
706
660
  },
707
661
  "default": "''",
708
- "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
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.",
709
663
  "attribute": "label"
710
664
  },
711
665
  {
712
- "kind": "field",
713
- "name": "library",
714
- "type": {
715
- "text": "string"
716
- },
717
- "default": "'default'",
718
- "description": "The name of a registered custom icon library.",
719
- "attribute": "library",
720
- "reflects": true
666
+ "kind": "method",
667
+ "name": "handleFocus",
668
+ "privacy": "private",
669
+ "parameters": [
670
+ {
671
+ "name": "event",
672
+ "type": {
673
+ "text": "Event"
674
+ }
675
+ }
676
+ ]
721
677
  },
722
678
  {
723
679
  "kind": "method",
724
- "name": "getIconSource",
680
+ "name": "handleBlur",
725
681
  "privacy": "private",
726
- "return": {
727
- "type": {
728
- "text": "IconSource"
682
+ "parameters": [
683
+ {
684
+ "name": "event",
685
+ "type": {
686
+ "text": "Event"
687
+ }
729
688
  }
730
- }
689
+ ]
731
690
  },
732
691
  {
733
692
  "kind": "method",
734
- "name": "handleLabelChange"
693
+ "name": "handleMouseOver",
694
+ "privacy": "private",
695
+ "parameters": [
696
+ {
697
+ "name": "event",
698
+ "type": {
699
+ "text": "Event"
700
+ }
701
+ }
702
+ ]
735
703
  },
736
704
  {
737
705
  "kind": "method",
738
- "name": "setIcon"
739
- }
740
- ],
741
- "events": [
742
- {
743
- "description": "Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.",
744
- "name": "syn-load",
745
- "reactName": "onSynLoad",
746
- "eventName": "SynLoadEvent"
706
+ "name": "handleMouseOut",
707
+ "privacy": "private",
708
+ "parameters": [
709
+ {
710
+ "name": "event",
711
+ "type": {
712
+ "text": "Event"
713
+ }
714
+ }
715
+ ]
747
716
  },
748
717
  {
749
- "description": "Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.",
750
- "name": "syn-error",
751
- "reactName": "onSynError",
752
- "eventName": "SynErrorEvent"
718
+ "kind": "method",
719
+ "name": "handleSlotChange",
720
+ "privacy": "private"
753
721
  }
754
722
  ],
755
723
  "attributes": [
756
- {
757
- "name": "name",
758
- "type": {
759
- "text": "string | undefined"
760
- },
761
- "description": "The name of the icon to draw. Available names depend on the icon library being used.",
762
- "fieldName": "name"
763
- },
764
- {
765
- "name": "src",
766
- "type": {
767
- "text": "string | undefined"
768
- },
769
- "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.",
770
- "fieldName": "src"
771
- },
772
724
  {
773
725
  "name": "label",
774
726
  "type": {
775
727
  "text": "string"
776
728
  },
777
729
  "default": "''",
778
- "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
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.",
779
731
  "fieldName": "label"
780
- },
781
- {
782
- "name": "library",
783
- "type": {
784
- "text": "string"
785
- },
786
- "default": "'default'",
787
- "description": "The name of a registered custom icon library.",
788
- "fieldName": "library"
789
732
  }
790
733
  ],
791
734
  "superclass": {
792
735
  "name": "SynergyElement",
793
736
  "module": "/src/internal/synergy-element.js"
794
737
  },
795
- "summary": "Icons are symbols that can be used to represent various options within an application.",
796
- "tagNameWithoutPrefix": "icon",
797
- "tagName": "syn-icon",
738
+ "summary": "Button groups can be used to group related buttons into sections.",
739
+ "tagNameWithoutPrefix": "button-group",
740
+ "tagName": "syn-button-group",
798
741
  "customElement": true,
799
- "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 */",
800
- "documentation": "https://synergy.style/components/icon",
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",
801
744
  "status": "stable",
802
745
  "since": "2.0"
803
746
  }
@@ -807,90 +750,54 @@
807
750
  "kind": "js",
808
751
  "name": "default",
809
752
  "declaration": {
810
- "name": "SynIcon",
811
- "module": "components/icon/icon.js"
753
+ "name": "SynButtonGroup",
754
+ "module": "components/button-group/button-group.js"
812
755
  }
813
756
  }
814
757
  ]
815
758
  },
816
759
  {
817
760
  "kind": "javascript-module",
818
- "path": "components/input/input.js",
761
+ "path": "components/checkbox/checkbox.js",
819
762
  "declarations": [
820
763
  {
821
764
  "kind": "class",
822
765
  "description": "",
823
- "name": "SynInput",
766
+ "name": "SynCheckbox",
824
767
  "cssParts": [
825
- {
826
- "description": "The form control that wraps the label, input, and help text.",
827
- "name": "form-control"
828
- },
829
- {
830
- "description": "The label's wrapper.",
831
- "name": "form-control-label"
832
- },
833
- {
834
- "description": "The input's wrapper.",
835
- "name": "form-control-input"
836
- },
837
- {
838
- "description": "The help text's wrapper.",
839
- "name": "form-control-help-text"
840
- },
841
768
  {
842
769
  "description": "The component's base wrapper.",
843
770
  "name": "base"
844
771
  },
845
772
  {
846
- "description": "The internal `<input>` control.",
847
- "name": "input"
773
+ "description": "The square container that wraps the checkbox's checked state.",
774
+ "name": "control"
848
775
  },
849
776
  {
850
- "description": "The container that wraps the prefix.",
851
- "name": "prefix"
777
+ "description": "Matches the control part when the checkbox is checked.",
778
+ "name": "control--checked"
852
779
  },
853
780
  {
854
- "description": "The clear button.",
855
- "name": "clear-button"
781
+ "description": "Matches the control part when the checkbox is indeterminate.",
782
+ "name": "control--indeterminate"
856
783
  },
857
784
  {
858
- "description": "The password toggle button.",
859
- "name": "password-toggle-button"
785
+ "description": "The checked icon, an `<syn-icon>` element.",
786
+ "name": "checked-icon"
860
787
  },
861
788
  {
862
- "description": "The container that wraps the suffix.",
863
- "name": "suffix"
789
+ "description": "The indeterminate icon, an `<syn-icon>` element.",
790
+ "name": "indeterminate-icon"
791
+ },
792
+ {
793
+ "description": "The container that wraps the checkbox's label.",
794
+ "name": "label"
864
795
  }
865
796
  ],
866
797
  "slots": [
867
798
  {
868
- "description": "The input's label. Alternatively, you can use the `label` attribute.",
869
- "name": "label"
870
- },
871
- {
872
- "description": "Used to prepend a presentational icon or similar element to the input.",
873
- "name": "prefix"
874
- },
875
- {
876
- "description": "Used to append a presentational icon or similar element to the input.",
877
- "name": "suffix"
878
- },
879
- {
880
- "description": "An icon to use in lieu of the default clear icon.",
881
- "name": "clear-icon"
882
- },
883
- {
884
- "description": "An icon to use in lieu of the default show password icon.",
885
- "name": "show-password-icon"
886
- },
887
- {
888
- "description": "An icon to use in lieu of the default hide password icon.",
889
- "name": "hide-password-icon"
890
- },
891
- {
892
- "description": "Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.",
893
- "name": "help-text"
799
+ "description": "The checkbox's label.",
800
+ "name": ""
894
801
  }
895
802
  ],
896
803
  "members": [
@@ -908,21 +815,7 @@
908
815
  "name": "formControlController",
909
816
  "privacy": "private",
910
817
  "readonly": true,
911
- "default": "new FormControlController(this, {\n assumeInteractionOn: ['syn-blur', 'syn-input']\n })"
912
- },
913
- {
914
- "kind": "field",
915
- "name": "hasSlotController",
916
- "privacy": "private",
917
- "readonly": true,
918
- "default": "new HasSlotController(this, 'help-text', 'label', 'prefix', 'suffix')"
919
- },
920
- {
921
- "kind": "field",
922
- "name": "localize",
923
- "privacy": "private",
924
- "readonly": true,
925
- "default": "new LocalizeController(this)"
818
+ "default": "new FormControlController(this, {\n value: (control: SynCheckbox) => (control.checked ? control.value || 'on' : undefined),\n defaultValue: (control: SynCheckbox) => control.defaultChecked,\n setValue: (control: SynCheckbox, checked: boolean) => (control.checked = checked)\n })"
926
819
  },
927
820
  {
928
821
  "kind": "field",
@@ -951,53 +844,2965 @@
951
844
  },
952
845
  {
953
846
  "kind": "field",
954
- "name": "__numberInput",
955
- "privacy": "private"
847
+ "name": "name",
848
+ "type": {
849
+ "text": "string"
850
+ },
851
+ "default": "''",
852
+ "description": "The name of the checkbox, submitted as a name/value pair with form data.",
853
+ "attribute": "name"
956
854
  },
957
855
  {
958
856
  "kind": "field",
959
- "name": "__dateInput",
960
- "privacy": "private"
857
+ "name": "value",
858
+ "type": {
859
+ "text": "string"
860
+ },
861
+ "description": "The current value of the checkbox, submitted as a name/value pair with form data.",
862
+ "attribute": "value"
863
+ },
864
+ {
865
+ "kind": "field",
866
+ "name": "size",
867
+ "type": {
868
+ "text": "'small' | 'medium' | 'large'"
869
+ },
870
+ "default": "'medium'",
871
+ "description": "The checkbox's size.",
872
+ "attribute": "size",
873
+ "reflects": true
874
+ },
875
+ {
876
+ "kind": "field",
877
+ "name": "disabled",
878
+ "type": {
879
+ "text": "boolean"
880
+ },
881
+ "default": "false",
882
+ "description": "Disables the checkbox.",
883
+ "attribute": "disabled",
884
+ "reflects": true
885
+ },
886
+ {
887
+ "kind": "field",
888
+ "name": "checked",
889
+ "type": {
890
+ "text": "boolean"
891
+ },
892
+ "default": "false",
893
+ "description": "Draws the checkbox in a checked state.",
894
+ "attribute": "checked",
895
+ "reflects": true
896
+ },
897
+ {
898
+ "kind": "field",
899
+ "name": "indeterminate",
900
+ "type": {
901
+ "text": "boolean"
902
+ },
903
+ "default": "false",
904
+ "description": "Draws the checkbox in an indeterminate state. This is usually applied to checkboxes that represents a \"select\nall/none\" behavior when associated checkboxes have a mix of checked and unchecked states.",
905
+ "attribute": "indeterminate",
906
+ "reflects": true
907
+ },
908
+ {
909
+ "kind": "field",
910
+ "name": "defaultChecked",
911
+ "type": {
912
+ "text": "boolean"
913
+ },
914
+ "default": "false",
915
+ "description": "The default value of the form control. Primarily used for resetting the form control."
916
+ },
917
+ {
918
+ "kind": "field",
919
+ "name": "form",
920
+ "type": {
921
+ "text": "string"
922
+ },
923
+ "default": "''",
924
+ "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.",
925
+ "attribute": "form",
926
+ "reflects": true
927
+ },
928
+ {
929
+ "kind": "field",
930
+ "name": "required",
931
+ "type": {
932
+ "text": "boolean"
933
+ },
934
+ "default": "false",
935
+ "description": "Makes the checkbox a required field.",
936
+ "attribute": "required",
937
+ "reflects": true
938
+ },
939
+ {
940
+ "kind": "field",
941
+ "name": "validity",
942
+ "description": "Gets the validity state object",
943
+ "readonly": true
944
+ },
945
+ {
946
+ "kind": "field",
947
+ "name": "validationMessage",
948
+ "description": "Gets the validation message",
949
+ "readonly": true
950
+ },
951
+ {
952
+ "kind": "method",
953
+ "name": "handleClick",
954
+ "privacy": "private"
955
+ },
956
+ {
957
+ "kind": "method",
958
+ "name": "handleBlur",
959
+ "privacy": "private"
960
+ },
961
+ {
962
+ "kind": "method",
963
+ "name": "handleInput",
964
+ "privacy": "private"
965
+ },
966
+ {
967
+ "kind": "method",
968
+ "name": "handleInvalid",
969
+ "privacy": "private",
970
+ "parameters": [
971
+ {
972
+ "name": "event",
973
+ "type": {
974
+ "text": "Event"
975
+ }
976
+ }
977
+ ]
978
+ },
979
+ {
980
+ "kind": "method",
981
+ "name": "handleFocus",
982
+ "privacy": "private"
983
+ },
984
+ {
985
+ "kind": "method",
986
+ "name": "handleDisabledChange"
987
+ },
988
+ {
989
+ "kind": "method",
990
+ "name": "handleStateChange"
991
+ },
992
+ {
993
+ "kind": "method",
994
+ "name": "click",
995
+ "description": "Simulates a click on the checkbox."
996
+ },
997
+ {
998
+ "kind": "method",
999
+ "name": "focus",
1000
+ "parameters": [
1001
+ {
1002
+ "name": "options",
1003
+ "optional": true,
1004
+ "type": {
1005
+ "text": "FocusOptions"
1006
+ }
1007
+ }
1008
+ ],
1009
+ "description": "Sets focus on the checkbox."
1010
+ },
1011
+ {
1012
+ "kind": "method",
1013
+ "name": "blur",
1014
+ "description": "Removes focus from the checkbox."
1015
+ },
1016
+ {
1017
+ "kind": "method",
1018
+ "name": "checkValidity",
1019
+ "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid."
1020
+ },
1021
+ {
1022
+ "kind": "method",
1023
+ "name": "getForm",
1024
+ "return": {
1025
+ "type": {
1026
+ "text": "HTMLFormElement | null"
1027
+ }
1028
+ },
1029
+ "description": "Gets the associated form, if one exists."
1030
+ },
1031
+ {
1032
+ "kind": "method",
1033
+ "name": "reportValidity",
1034
+ "description": "Checks for validity and shows the browser's validation message if the control is invalid."
1035
+ },
1036
+ {
1037
+ "kind": "method",
1038
+ "name": "setCustomValidity",
1039
+ "parameters": [
1040
+ {
1041
+ "name": "message",
1042
+ "type": {
1043
+ "text": "string"
1044
+ }
1045
+ }
1046
+ ],
1047
+ "description": "Sets a custom validation message. The value provided will be shown to the user when the form is submitted. To clear\nthe custom validation message, call this method with an empty string."
1048
+ }
1049
+ ],
1050
+ "events": [
1051
+ {
1052
+ "description": "Emitted when the checkbox loses focus.",
1053
+ "name": "syn-blur",
1054
+ "reactName": "onSynBlur",
1055
+ "eventName": "SynBlurEvent"
1056
+ },
1057
+ {
1058
+ "description": "Emitted when the checked state changes.",
1059
+ "name": "syn-change",
1060
+ "reactName": "onSynChange",
1061
+ "eventName": "SynChangeEvent"
1062
+ },
1063
+ {
1064
+ "description": "Emitted when the checkbox gains focus.",
1065
+ "name": "syn-focus",
1066
+ "reactName": "onSynFocus",
1067
+ "eventName": "SynFocusEvent"
1068
+ },
1069
+ {
1070
+ "description": "Emitted when the checkbox receives input.",
1071
+ "name": "syn-input",
1072
+ "reactName": "onSynInput",
1073
+ "eventName": "SynInputEvent"
1074
+ },
1075
+ {
1076
+ "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied.",
1077
+ "name": "syn-invalid",
1078
+ "reactName": "onSynInvalid",
1079
+ "eventName": "SynInvalidEvent"
1080
+ }
1081
+ ],
1082
+ "attributes": [
1083
+ {
1084
+ "name": "title",
1085
+ "type": {
1086
+ "text": "string"
1087
+ },
1088
+ "default": "''",
1089
+ "fieldName": "title"
1090
+ },
1091
+ {
1092
+ "name": "name",
1093
+ "type": {
1094
+ "text": "string"
1095
+ },
1096
+ "default": "''",
1097
+ "description": "The name of the checkbox, submitted as a name/value pair with form data.",
1098
+ "fieldName": "name"
1099
+ },
1100
+ {
1101
+ "name": "value",
1102
+ "type": {
1103
+ "text": "string"
1104
+ },
1105
+ "description": "The current value of the checkbox, submitted as a name/value pair with form data.",
1106
+ "fieldName": "value"
1107
+ },
1108
+ {
1109
+ "name": "size",
1110
+ "type": {
1111
+ "text": "'small' | 'medium' | 'large'"
1112
+ },
1113
+ "default": "'medium'",
1114
+ "description": "The checkbox's size.",
1115
+ "fieldName": "size"
1116
+ },
1117
+ {
1118
+ "name": "disabled",
1119
+ "type": {
1120
+ "text": "boolean"
1121
+ },
1122
+ "default": "false",
1123
+ "description": "Disables the checkbox.",
1124
+ "fieldName": "disabled"
1125
+ },
1126
+ {
1127
+ "name": "checked",
1128
+ "type": {
1129
+ "text": "boolean"
1130
+ },
1131
+ "default": "false",
1132
+ "description": "Draws the checkbox in a checked state.",
1133
+ "fieldName": "checked"
1134
+ },
1135
+ {
1136
+ "name": "indeterminate",
1137
+ "type": {
1138
+ "text": "boolean"
1139
+ },
1140
+ "default": "false",
1141
+ "description": "Draws the checkbox in an indeterminate state. This is usually applied to checkboxes that represents a \"select\nall/none\" behavior when associated checkboxes have a mix of checked and unchecked states.",
1142
+ "fieldName": "indeterminate"
1143
+ },
1144
+ {
1145
+ "name": "form",
1146
+ "type": {
1147
+ "text": "string"
1148
+ },
1149
+ "default": "''",
1150
+ "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.",
1151
+ "fieldName": "form"
1152
+ },
1153
+ {
1154
+ "name": "required",
1155
+ "type": {
1156
+ "text": "boolean"
1157
+ },
1158
+ "default": "false",
1159
+ "description": "Makes the checkbox a required field.",
1160
+ "fieldName": "required"
1161
+ }
1162
+ ],
1163
+ "superclass": {
1164
+ "name": "SynergyElement",
1165
+ "module": "/src/internal/synergy-element.js"
1166
+ },
1167
+ "summary": "Checkboxes allow the user to toggle an option on or off.",
1168
+ "tagNameWithoutPrefix": "checkbox",
1169
+ "tagName": "syn-checkbox",
1170
+ "customElement": true,
1171
+ "jsDoc": "/**\n * @summary Checkboxes allow the user to toggle an option on or off.\n * @documentation https://synergy.style/components/checkbox\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n *\n * @slot - The checkbox's label.\n *\n * @event syn-blur - Emitted when the checkbox loses focus.\n * @event syn-change - Emitted when the checked state changes.\n * @event syn-focus - Emitted when the checkbox gains focus.\n * @event syn-input - Emitted when the checkbox 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 base - The component's base wrapper.\n * @csspart control - The square container that wraps the checkbox's checked state.\n * @csspart control--checked - Matches the control part when the checkbox is checked.\n * @csspart control--indeterminate - Matches the control part when the checkbox is indeterminate.\n * @csspart checked-icon - The checked icon, an `<syn-icon>` element.\n * @csspart indeterminate-icon - The indeterminate icon, an `<syn-icon>` element.\n * @csspart label - The container that wraps the checkbox's label.\n */",
1172
+ "documentation": "https://synergy.style/components/checkbox",
1173
+ "status": "stable",
1174
+ "since": "2.0",
1175
+ "dependencies": [
1176
+ "syn-icon"
1177
+ ]
1178
+ }
1179
+ ],
1180
+ "exports": [
1181
+ {
1182
+ "kind": "js",
1183
+ "name": "default",
1184
+ "declaration": {
1185
+ "name": "SynCheckbox",
1186
+ "module": "components/checkbox/checkbox.js"
1187
+ }
1188
+ }
1189
+ ]
1190
+ },
1191
+ {
1192
+ "kind": "javascript-module",
1193
+ "path": "components/icon/icon.js",
1194
+ "declarations": [
1195
+ {
1196
+ "kind": "class",
1197
+ "description": "",
1198
+ "name": "SynIcon",
1199
+ "cssParts": [
1200
+ {
1201
+ "description": "The internal SVG element.",
1202
+ "name": "svg"
1203
+ },
1204
+ {
1205
+ "description": "The <use> element generated when using `spriteSheet: true`",
1206
+ "name": "use"
1207
+ }
1208
+ ],
1209
+ "members": [
1210
+ {
1211
+ "kind": "field",
1212
+ "name": "initialRender",
1213
+ "type": {
1214
+ "text": "boolean"
1215
+ },
1216
+ "privacy": "private",
1217
+ "default": "false"
1218
+ },
1219
+ {
1220
+ "kind": "method",
1221
+ "name": "resolveIcon",
1222
+ "privacy": "private",
1223
+ "return": {
1224
+ "type": {
1225
+ "text": "Promise<SVGResult>"
1226
+ }
1227
+ },
1228
+ "parameters": [
1229
+ {
1230
+ "name": "url",
1231
+ "type": {
1232
+ "text": "string"
1233
+ }
1234
+ },
1235
+ {
1236
+ "name": "library",
1237
+ "optional": true,
1238
+ "type": {
1239
+ "text": "IconLibrary"
1240
+ }
1241
+ }
1242
+ ],
1243
+ "description": "Given a URL, this function returns the resulting SVG element or an appropriate error symbol."
1244
+ },
1245
+ {
1246
+ "kind": "field",
1247
+ "name": "svg",
1248
+ "type": {
1249
+ "text": "SVGElement | HTMLTemplateResult | null"
1250
+ },
1251
+ "privacy": "private",
1252
+ "default": "null"
1253
+ },
1254
+ {
1255
+ "kind": "field",
1256
+ "name": "name",
1257
+ "type": {
1258
+ "text": "string | undefined"
1259
+ },
1260
+ "description": "The name of the icon to draw. Available names depend on the icon library being used.",
1261
+ "attribute": "name",
1262
+ "reflects": true
1263
+ },
1264
+ {
1265
+ "kind": "field",
1266
+ "name": "src",
1267
+ "type": {
1268
+ "text": "string | undefined"
1269
+ },
1270
+ "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.",
1271
+ "attribute": "src"
1272
+ },
1273
+ {
1274
+ "kind": "field",
1275
+ "name": "label",
1276
+ "type": {
1277
+ "text": "string"
1278
+ },
1279
+ "default": "''",
1280
+ "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
1281
+ "attribute": "label"
1282
+ },
1283
+ {
1284
+ "kind": "field",
1285
+ "name": "library",
1286
+ "type": {
1287
+ "text": "string"
1288
+ },
1289
+ "default": "'default'",
1290
+ "description": "The name of a registered custom icon library.",
1291
+ "attribute": "library",
1292
+ "reflects": true
1293
+ },
1294
+ {
1295
+ "kind": "method",
1296
+ "name": "getIconSource",
1297
+ "privacy": "private",
1298
+ "return": {
1299
+ "type": {
1300
+ "text": "IconSource"
1301
+ }
1302
+ }
1303
+ },
1304
+ {
1305
+ "kind": "method",
1306
+ "name": "handleLabelChange"
1307
+ },
1308
+ {
1309
+ "kind": "method",
1310
+ "name": "setIcon"
1311
+ }
1312
+ ],
1313
+ "events": [
1314
+ {
1315
+ "description": "Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.",
1316
+ "name": "syn-load",
1317
+ "reactName": "onSynLoad",
1318
+ "eventName": "SynLoadEvent"
1319
+ },
1320
+ {
1321
+ "description": "Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.",
1322
+ "name": "syn-error",
1323
+ "reactName": "onSynError",
1324
+ "eventName": "SynErrorEvent"
1325
+ }
1326
+ ],
1327
+ "attributes": [
1328
+ {
1329
+ "name": "name",
1330
+ "type": {
1331
+ "text": "string | undefined"
1332
+ },
1333
+ "description": "The name of the icon to draw. Available names depend on the icon library being used.",
1334
+ "fieldName": "name"
1335
+ },
1336
+ {
1337
+ "name": "src",
1338
+ "type": {
1339
+ "text": "string | undefined"
1340
+ },
1341
+ "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.",
1342
+ "fieldName": "src"
1343
+ },
1344
+ {
1345
+ "name": "label",
1346
+ "type": {
1347
+ "text": "string"
1348
+ },
1349
+ "default": "''",
1350
+ "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
1351
+ "fieldName": "label"
1352
+ },
1353
+ {
1354
+ "name": "library",
1355
+ "type": {
1356
+ "text": "string"
1357
+ },
1358
+ "default": "'default'",
1359
+ "description": "The name of a registered custom icon library.",
1360
+ "fieldName": "library"
1361
+ }
1362
+ ],
1363
+ "superclass": {
1364
+ "name": "SynergyElement",
1365
+ "module": "/src/internal/synergy-element.js"
1366
+ },
1367
+ "summary": "Icons are symbols that can be used to represent various options within an application.",
1368
+ "tagNameWithoutPrefix": "icon",
1369
+ "tagName": "syn-icon",
1370
+ "customElement": true,
1371
+ "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 */",
1372
+ "documentation": "https://synergy.style/components/icon",
1373
+ "status": "stable",
1374
+ "since": "2.0"
1375
+ }
1376
+ ],
1377
+ "exports": [
1378
+ {
1379
+ "kind": "js",
1380
+ "name": "default",
1381
+ "declaration": {
1382
+ "name": "SynIcon",
1383
+ "module": "components/icon/icon.js"
1384
+ }
1385
+ }
1386
+ ]
1387
+ },
1388
+ {
1389
+ "kind": "javascript-module",
1390
+ "path": "components/input/input.js",
1391
+ "declarations": [
1392
+ {
1393
+ "kind": "class",
1394
+ "description": "",
1395
+ "name": "SynInput",
1396
+ "cssParts": [
1397
+ {
1398
+ "description": "The form control that wraps the label, input, and help text.",
1399
+ "name": "form-control"
1400
+ },
1401
+ {
1402
+ "description": "The label's wrapper.",
1403
+ "name": "form-control-label"
1404
+ },
1405
+ {
1406
+ "description": "The input's wrapper.",
1407
+ "name": "form-control-input"
1408
+ },
1409
+ {
1410
+ "description": "The help text's wrapper.",
1411
+ "name": "form-control-help-text"
1412
+ },
1413
+ {
1414
+ "description": "The component's base wrapper.",
1415
+ "name": "base"
1416
+ },
1417
+ {
1418
+ "description": "The internal `<input>` control.",
1419
+ "name": "input"
1420
+ },
1421
+ {
1422
+ "description": "The container that wraps the prefix.",
1423
+ "name": "prefix"
1424
+ },
1425
+ {
1426
+ "description": "The clear button.",
1427
+ "name": "clear-button"
1428
+ },
1429
+ {
1430
+ "description": "The password toggle button.",
1431
+ "name": "password-toggle-button"
1432
+ },
1433
+ {
1434
+ "description": "The container that wraps the suffix.",
1435
+ "name": "suffix"
1436
+ }
1437
+ ],
1438
+ "slots": [
1439
+ {
1440
+ "description": "The input's label. Alternatively, you can use the `label` attribute.",
1441
+ "name": "label"
1442
+ },
1443
+ {
1444
+ "description": "Used to prepend a presentational icon or similar element to the input.",
1445
+ "name": "prefix"
1446
+ },
1447
+ {
1448
+ "description": "Used to append a presentational icon or similar element to the input.",
1449
+ "name": "suffix"
1450
+ },
1451
+ {
1452
+ "description": "An icon to use in lieu of the default clear icon.",
1453
+ "name": "clear-icon"
1454
+ },
1455
+ {
1456
+ "description": "An icon to use in lieu of the default show password icon.",
1457
+ "name": "show-password-icon"
1458
+ },
1459
+ {
1460
+ "description": "An icon to use in lieu of the default hide password icon.",
1461
+ "name": "hide-password-icon"
1462
+ },
1463
+ {
1464
+ "description": "Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.",
1465
+ "name": "help-text"
1466
+ }
1467
+ ],
1468
+ "members": [
1469
+ {
1470
+ "kind": "field",
1471
+ "name": "dependencies",
1472
+ "type": {
1473
+ "text": "object"
1474
+ },
1475
+ "static": true,
1476
+ "default": "{ 'syn-icon': SynIcon }"
1477
+ },
1478
+ {
1479
+ "kind": "field",
1480
+ "name": "formControlController",
1481
+ "privacy": "private",
1482
+ "readonly": true,
1483
+ "default": "new FormControlController(this, {\n assumeInteractionOn: ['syn-blur', 'syn-input']\n })"
1484
+ },
1485
+ {
1486
+ "kind": "field",
1487
+ "name": "hasSlotController",
1488
+ "privacy": "private",
1489
+ "readonly": true,
1490
+ "default": "new HasSlotController(this, 'help-text', 'label', 'prefix', 'suffix')"
1491
+ },
1492
+ {
1493
+ "kind": "field",
1494
+ "name": "localize",
1495
+ "privacy": "private",
1496
+ "readonly": true,
1497
+ "default": "new LocalizeController(this)"
1498
+ },
1499
+ {
1500
+ "kind": "field",
1501
+ "name": "input",
1502
+ "type": {
1503
+ "text": "HTMLInputElement"
1504
+ }
1505
+ },
1506
+ {
1507
+ "kind": "field",
1508
+ "name": "hasFocus",
1509
+ "type": {
1510
+ "text": "boolean"
1511
+ },
1512
+ "privacy": "private",
1513
+ "default": "false"
1514
+ },
1515
+ {
1516
+ "kind": "field",
1517
+ "name": "title",
1518
+ "type": {
1519
+ "text": "string"
1520
+ },
1521
+ "default": "''",
1522
+ "attribute": "title"
1523
+ },
1524
+ {
1525
+ "kind": "field",
1526
+ "name": "__numberInput",
1527
+ "privacy": "private"
1528
+ },
1529
+ {
1530
+ "kind": "field",
1531
+ "name": "__dateInput",
1532
+ "privacy": "private"
1533
+ },
1534
+ {
1535
+ "kind": "field",
1536
+ "name": "type",
1537
+ "type": {
1538
+ "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
1539
+ },
1540
+ "default": "'text'",
1541
+ "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
1542
+ "attribute": "type",
1543
+ "reflects": true
1544
+ },
1545
+ {
1546
+ "kind": "field",
1547
+ "name": "name",
1548
+ "type": {
1549
+ "text": "string"
1550
+ },
1551
+ "default": "''",
1552
+ "description": "The name of the input, submitted as a name/value pair with form data.",
1553
+ "attribute": "name"
1554
+ },
1555
+ {
1556
+ "kind": "field",
1557
+ "name": "value",
1558
+ "type": {
1559
+ "text": "string"
1560
+ },
1561
+ "default": "''",
1562
+ "description": "The current value of the input, submitted as a name/value pair with form data.",
1563
+ "attribute": "value"
1564
+ },
1565
+ {
1566
+ "kind": "field",
1567
+ "name": "defaultValue",
1568
+ "type": {
1569
+ "text": "string"
1570
+ },
1571
+ "default": "''",
1572
+ "description": "The default value of the form control. Primarily used for resetting the form control."
1573
+ },
1574
+ {
1575
+ "kind": "field",
1576
+ "name": "size",
1577
+ "type": {
1578
+ "text": "'small' | 'medium' | 'large'"
1579
+ },
1580
+ "default": "'medium'",
1581
+ "description": "The input's size.",
1582
+ "attribute": "size",
1583
+ "reflects": true
1584
+ },
1585
+ {
1586
+ "kind": "field",
1587
+ "name": "label",
1588
+ "type": {
1589
+ "text": "string"
1590
+ },
1591
+ "default": "''",
1592
+ "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
1593
+ "attribute": "label"
1594
+ },
1595
+ {
1596
+ "kind": "field",
1597
+ "name": "helpText",
1598
+ "type": {
1599
+ "text": "string"
1600
+ },
1601
+ "default": "''",
1602
+ "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
1603
+ "attribute": "help-text"
1604
+ },
1605
+ {
1606
+ "kind": "field",
1607
+ "name": "clearable",
1608
+ "type": {
1609
+ "text": "boolean"
1610
+ },
1611
+ "default": "false",
1612
+ "description": "Adds a clear button when the input is not empty.",
1613
+ "attribute": "clearable"
1614
+ },
1615
+ {
1616
+ "kind": "field",
1617
+ "name": "disabled",
1618
+ "type": {
1619
+ "text": "boolean"
1620
+ },
1621
+ "default": "false",
1622
+ "description": "Disables the input.",
1623
+ "attribute": "disabled",
1624
+ "reflects": true
1625
+ },
1626
+ {
1627
+ "kind": "field",
1628
+ "name": "placeholder",
1629
+ "type": {
1630
+ "text": "string"
1631
+ },
1632
+ "default": "''",
1633
+ "description": "Placeholder text to show as a hint when the input is empty.",
1634
+ "attribute": "placeholder"
1635
+ },
1636
+ {
1637
+ "kind": "field",
1638
+ "name": "readonly",
1639
+ "type": {
1640
+ "text": "boolean"
1641
+ },
1642
+ "default": "false",
1643
+ "description": "Makes the input readonly.",
1644
+ "attribute": "readonly",
1645
+ "reflects": true
1646
+ },
1647
+ {
1648
+ "kind": "field",
1649
+ "name": "passwordToggle",
1650
+ "type": {
1651
+ "text": "boolean"
1652
+ },
1653
+ "default": "false",
1654
+ "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
1655
+ "attribute": "password-toggle"
1656
+ },
1657
+ {
1658
+ "kind": "field",
1659
+ "name": "passwordVisible",
1660
+ "type": {
1661
+ "text": "boolean"
1662
+ },
1663
+ "default": "false",
1664
+ "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
1665
+ "attribute": "password-visible"
1666
+ },
1667
+ {
1668
+ "kind": "field",
1669
+ "name": "noSpinButtons",
1670
+ "type": {
1671
+ "text": "boolean"
1672
+ },
1673
+ "default": "false",
1674
+ "description": "Hides the browser's built-in increment/decrement spin buttons for number inputs.",
1675
+ "attribute": "no-spin-buttons"
1676
+ },
1677
+ {
1678
+ "kind": "field",
1679
+ "name": "form",
1680
+ "type": {
1681
+ "text": "string"
1682
+ },
1683
+ "default": "''",
1684
+ "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.",
1685
+ "attribute": "form",
1686
+ "reflects": true
1687
+ },
1688
+ {
1689
+ "kind": "field",
1690
+ "name": "required",
1691
+ "type": {
1692
+ "text": "boolean"
1693
+ },
1694
+ "default": "false",
1695
+ "description": "Makes the input a required field.",
1696
+ "attribute": "required",
1697
+ "reflects": true
1698
+ },
1699
+ {
1700
+ "kind": "field",
1701
+ "name": "pattern",
1702
+ "type": {
1703
+ "text": "string"
1704
+ },
1705
+ "description": "A regular expression pattern to validate input against.",
1706
+ "attribute": "pattern"
1707
+ },
1708
+ {
1709
+ "kind": "field",
1710
+ "name": "minlength",
1711
+ "type": {
1712
+ "text": "number"
1713
+ },
1714
+ "description": "The minimum length of input that will be considered valid.",
1715
+ "attribute": "minlength"
1716
+ },
1717
+ {
1718
+ "kind": "field",
1719
+ "name": "maxlength",
1720
+ "type": {
1721
+ "text": "number"
1722
+ },
1723
+ "description": "The maximum length of input that will be considered valid.",
1724
+ "attribute": "maxlength"
1725
+ },
1726
+ {
1727
+ "kind": "field",
1728
+ "name": "min",
1729
+ "type": {
1730
+ "text": "number | string"
1731
+ },
1732
+ "description": "The input's minimum value. Only applies to date and number input types.",
1733
+ "attribute": "min"
1734
+ },
1735
+ {
1736
+ "kind": "field",
1737
+ "name": "max",
1738
+ "type": {
1739
+ "text": "number | string"
1740
+ },
1741
+ "description": "The input's maximum value. Only applies to date and number input types.",
1742
+ "attribute": "max"
1743
+ },
1744
+ {
1745
+ "kind": "field",
1746
+ "name": "step",
1747
+ "type": {
1748
+ "text": "number | 'any'"
1749
+ },
1750
+ "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.",
1751
+ "attribute": "step"
1752
+ },
1753
+ {
1754
+ "kind": "field",
1755
+ "name": "autocapitalize",
1756
+ "type": {
1757
+ "text": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
1758
+ },
1759
+ "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
1760
+ "attribute": "autocapitalize"
1761
+ },
1762
+ {
1763
+ "kind": "field",
1764
+ "name": "autocorrect",
1765
+ "type": {
1766
+ "text": "'off' | 'on'"
1767
+ },
1768
+ "description": "Indicates whether the browser's autocorrect feature is on or off.",
1769
+ "attribute": "autocorrect"
1770
+ },
1771
+ {
1772
+ "kind": "field",
1773
+ "name": "autocomplete",
1774
+ "type": {
1775
+ "text": "string"
1776
+ },
1777
+ "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.",
1778
+ "attribute": "autocomplete"
1779
+ },
1780
+ {
1781
+ "kind": "field",
1782
+ "name": "autofocus",
1783
+ "type": {
1784
+ "text": "boolean"
1785
+ },
1786
+ "description": "Indicates that the input should receive focus on page load.",
1787
+ "attribute": "autofocus"
1788
+ },
1789
+ {
1790
+ "kind": "field",
1791
+ "name": "enterkeyhint",
1792
+ "type": {
1793
+ "text": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
1794
+ },
1795
+ "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
1796
+ "attribute": "enterkeyhint"
1797
+ },
1798
+ {
1799
+ "kind": "field",
1800
+ "name": "spellcheck",
1801
+ "type": {
1802
+ "text": "boolean"
1803
+ },
1804
+ "default": "true",
1805
+ "description": "Enables spell checking on the input.",
1806
+ "attribute": "spellcheck"
1807
+ },
1808
+ {
1809
+ "kind": "field",
1810
+ "name": "inputmode",
1811
+ "type": {
1812
+ "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
1813
+ },
1814
+ "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.",
1815
+ "attribute": "inputmode"
1816
+ },
1817
+ {
1818
+ "kind": "field",
1819
+ "name": "valueAsDate",
1820
+ "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."
1821
+ },
1822
+ {
1823
+ "kind": "field",
1824
+ "name": "valueAsNumber",
1825
+ "description": "Gets or sets the current value as a number. Returns `NaN` if the value can't be converted."
1826
+ },
1827
+ {
1828
+ "kind": "field",
1829
+ "name": "validity",
1830
+ "description": "Gets the validity state object",
1831
+ "readonly": true
1832
+ },
1833
+ {
1834
+ "kind": "field",
1835
+ "name": "validationMessage",
1836
+ "description": "Gets the validation message",
1837
+ "readonly": true
1838
+ },
1839
+ {
1840
+ "kind": "method",
1841
+ "name": "handleBlur",
1842
+ "privacy": "private"
1843
+ },
1844
+ {
1845
+ "kind": "method",
1846
+ "name": "handleChange",
1847
+ "privacy": "private"
1848
+ },
1849
+ {
1850
+ "kind": "method",
1851
+ "name": "handleClearClick",
1852
+ "privacy": "private",
1853
+ "parameters": [
1854
+ {
1855
+ "name": "event",
1856
+ "type": {
1857
+ "text": "MouseEvent"
1858
+ }
1859
+ }
1860
+ ]
1861
+ },
1862
+ {
1863
+ "kind": "method",
1864
+ "name": "handleFocus",
1865
+ "privacy": "private"
1866
+ },
1867
+ {
1868
+ "kind": "method",
1869
+ "name": "handleInput",
1870
+ "privacy": "private"
1871
+ },
1872
+ {
1873
+ "kind": "method",
1874
+ "name": "handleInvalid",
1875
+ "privacy": "private",
1876
+ "parameters": [
1877
+ {
1878
+ "name": "event",
1879
+ "type": {
1880
+ "text": "Event"
1881
+ }
1882
+ }
1883
+ ]
1884
+ },
1885
+ {
1886
+ "kind": "method",
1887
+ "name": "handleKeyDown",
1888
+ "privacy": "private",
1889
+ "parameters": [
1890
+ {
1891
+ "name": "event",
1892
+ "type": {
1893
+ "text": "KeyboardEvent"
1894
+ }
1895
+ }
1896
+ ]
1897
+ },
1898
+ {
1899
+ "kind": "method",
1900
+ "name": "handlePasswordToggle",
1901
+ "privacy": "private"
1902
+ },
1903
+ {
1904
+ "kind": "method",
1905
+ "name": "handleDisabledChange"
1906
+ },
1907
+ {
1908
+ "kind": "method",
1909
+ "name": "handleStepChange"
1910
+ },
1911
+ {
1912
+ "kind": "method",
1913
+ "name": "handleValueChange"
1914
+ },
1915
+ {
1916
+ "kind": "method",
1917
+ "name": "focus",
1918
+ "parameters": [
1919
+ {
1920
+ "name": "options",
1921
+ "optional": true,
1922
+ "type": {
1923
+ "text": "FocusOptions"
1924
+ }
1925
+ }
1926
+ ],
1927
+ "description": "Sets focus on the input."
1928
+ },
1929
+ {
1930
+ "kind": "method",
1931
+ "name": "blur",
1932
+ "description": "Removes focus from the input."
1933
+ },
1934
+ {
1935
+ "kind": "method",
1936
+ "name": "select",
1937
+ "description": "Selects all the text in the input."
1938
+ },
1939
+ {
1940
+ "kind": "method",
1941
+ "name": "setSelectionRange",
1942
+ "parameters": [
1943
+ {
1944
+ "name": "selectionStart",
1945
+ "type": {
1946
+ "text": "number"
1947
+ }
1948
+ },
1949
+ {
1950
+ "name": "selectionEnd",
1951
+ "type": {
1952
+ "text": "number"
1953
+ }
1954
+ },
1955
+ {
1956
+ "name": "selectionDirection",
1957
+ "default": "'none'",
1958
+ "type": {
1959
+ "text": "'forward' | 'backward' | 'none'"
1960
+ }
1961
+ }
1962
+ ],
1963
+ "description": "Sets the start and end positions of the text selection (0-based)."
1964
+ },
1965
+ {
1966
+ "kind": "method",
1967
+ "name": "setRangeText",
1968
+ "parameters": [
1969
+ {
1970
+ "name": "replacement",
1971
+ "type": {
1972
+ "text": "string"
1973
+ }
1974
+ },
1975
+ {
1976
+ "name": "start",
1977
+ "optional": true,
1978
+ "type": {
1979
+ "text": "number"
1980
+ }
1981
+ },
1982
+ {
1983
+ "name": "end",
1984
+ "optional": true,
1985
+ "type": {
1986
+ "text": "number"
1987
+ }
1988
+ },
1989
+ {
1990
+ "name": "selectMode",
1991
+ "optional": true,
1992
+ "type": {
1993
+ "text": "'select' | 'start' | 'end' | 'preserve'"
1994
+ }
1995
+ }
1996
+ ],
1997
+ "description": "Replaces a range of text with a new string."
1998
+ },
1999
+ {
2000
+ "kind": "method",
2001
+ "name": "showPicker",
2002
+ "description": "Displays the browser picker for an input element (only works if the browser supports it for the input type)."
2003
+ },
2004
+ {
2005
+ "kind": "method",
2006
+ "name": "stepUp",
2007
+ "description": "Increments the value of a numeric input type by the value of the step attribute."
2008
+ },
2009
+ {
2010
+ "kind": "method",
2011
+ "name": "stepDown",
2012
+ "description": "Decrements the value of a numeric input type by the value of the step attribute."
2013
+ },
2014
+ {
2015
+ "kind": "method",
2016
+ "name": "checkValidity",
2017
+ "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid."
2018
+ },
2019
+ {
2020
+ "kind": "method",
2021
+ "name": "getForm",
2022
+ "return": {
2023
+ "type": {
2024
+ "text": "HTMLFormElement | null"
2025
+ }
2026
+ },
2027
+ "description": "Gets the associated form, if one exists."
2028
+ },
2029
+ {
2030
+ "kind": "method",
2031
+ "name": "reportValidity",
2032
+ "description": "Checks for validity and shows the browser's validation message if the control is invalid."
2033
+ },
2034
+ {
2035
+ "kind": "method",
2036
+ "name": "setCustomValidity",
2037
+ "parameters": [
2038
+ {
2039
+ "name": "message",
2040
+ "type": {
2041
+ "text": "string"
2042
+ }
2043
+ }
2044
+ ],
2045
+ "description": "Sets a custom validation message. Pass an empty string to restore validity."
2046
+ }
2047
+ ],
2048
+ "events": [
2049
+ {
2050
+ "description": "Emitted when the control loses focus.",
2051
+ "name": "syn-blur",
2052
+ "reactName": "onSynBlur",
2053
+ "eventName": "SynBlurEvent"
2054
+ },
2055
+ {
2056
+ "description": "Emitted when an alteration to the control's value is committed by the user.",
2057
+ "name": "syn-change",
2058
+ "reactName": "onSynChange",
2059
+ "eventName": "SynChangeEvent"
2060
+ },
2061
+ {
2062
+ "description": "Emitted when the clear button is activated.",
2063
+ "name": "syn-clear",
2064
+ "reactName": "onSynClear",
2065
+ "eventName": "SynClearEvent"
2066
+ },
2067
+ {
2068
+ "description": "Emitted when the control gains focus.",
2069
+ "name": "syn-focus",
2070
+ "reactName": "onSynFocus",
2071
+ "eventName": "SynFocusEvent"
2072
+ },
2073
+ {
2074
+ "description": "Emitted when the control receives input.",
2075
+ "name": "syn-input",
2076
+ "reactName": "onSynInput",
2077
+ "eventName": "SynInputEvent"
2078
+ },
2079
+ {
2080
+ "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied.",
2081
+ "name": "syn-invalid",
2082
+ "reactName": "onSynInvalid",
2083
+ "eventName": "SynInvalidEvent"
2084
+ }
2085
+ ],
2086
+ "attributes": [
2087
+ {
2088
+ "name": "title",
2089
+ "type": {
2090
+ "text": "string"
2091
+ },
2092
+ "default": "''",
2093
+ "fieldName": "title"
2094
+ },
2095
+ {
2096
+ "name": "type",
2097
+ "type": {
2098
+ "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
2099
+ },
2100
+ "default": "'text'",
2101
+ "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
2102
+ "fieldName": "type"
2103
+ },
2104
+ {
2105
+ "name": "name",
2106
+ "type": {
2107
+ "text": "string"
2108
+ },
2109
+ "default": "''",
2110
+ "description": "The name of the input, submitted as a name/value pair with form data.",
2111
+ "fieldName": "name"
2112
+ },
2113
+ {
2114
+ "name": "value",
2115
+ "type": {
2116
+ "text": "string"
2117
+ },
2118
+ "default": "''",
2119
+ "description": "The current value of the input, submitted as a name/value pair with form data.",
2120
+ "fieldName": "value"
2121
+ },
2122
+ {
2123
+ "name": "size",
2124
+ "type": {
2125
+ "text": "'small' | 'medium' | 'large'"
2126
+ },
2127
+ "default": "'medium'",
2128
+ "description": "The input's size.",
2129
+ "fieldName": "size"
2130
+ },
2131
+ {
2132
+ "name": "label",
2133
+ "type": {
2134
+ "text": "string"
2135
+ },
2136
+ "default": "''",
2137
+ "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
2138
+ "fieldName": "label"
2139
+ },
2140
+ {
2141
+ "name": "help-text",
2142
+ "type": {
2143
+ "text": "string"
2144
+ },
2145
+ "default": "''",
2146
+ "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
2147
+ "fieldName": "helpText"
2148
+ },
2149
+ {
2150
+ "name": "clearable",
2151
+ "type": {
2152
+ "text": "boolean"
2153
+ },
2154
+ "default": "false",
2155
+ "description": "Adds a clear button when the input is not empty.",
2156
+ "fieldName": "clearable"
2157
+ },
2158
+ {
2159
+ "name": "disabled",
2160
+ "type": {
2161
+ "text": "boolean"
2162
+ },
2163
+ "default": "false",
2164
+ "description": "Disables the input.",
2165
+ "fieldName": "disabled"
2166
+ },
2167
+ {
2168
+ "name": "placeholder",
2169
+ "type": {
2170
+ "text": "string"
2171
+ },
2172
+ "default": "''",
2173
+ "description": "Placeholder text to show as a hint when the input is empty.",
2174
+ "fieldName": "placeholder"
2175
+ },
2176
+ {
2177
+ "name": "readonly",
2178
+ "type": {
2179
+ "text": "boolean"
2180
+ },
2181
+ "default": "false",
2182
+ "description": "Makes the input readonly.",
2183
+ "fieldName": "readonly"
2184
+ },
2185
+ {
2186
+ "name": "password-toggle",
2187
+ "type": {
2188
+ "text": "boolean"
2189
+ },
2190
+ "default": "false",
2191
+ "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
2192
+ "fieldName": "passwordToggle"
2193
+ },
2194
+ {
2195
+ "name": "password-visible",
2196
+ "type": {
2197
+ "text": "boolean"
2198
+ },
2199
+ "default": "false",
2200
+ "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
2201
+ "fieldName": "passwordVisible"
2202
+ },
2203
+ {
2204
+ "name": "no-spin-buttons",
2205
+ "type": {
2206
+ "text": "boolean"
2207
+ },
2208
+ "default": "false",
2209
+ "description": "Hides the browser's built-in increment/decrement spin buttons for number inputs.",
2210
+ "fieldName": "noSpinButtons"
2211
+ },
2212
+ {
2213
+ "name": "form",
2214
+ "type": {
2215
+ "text": "string"
2216
+ },
2217
+ "default": "''",
2218
+ "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.",
2219
+ "fieldName": "form"
2220
+ },
2221
+ {
2222
+ "name": "required",
2223
+ "type": {
2224
+ "text": "boolean"
2225
+ },
2226
+ "default": "false",
2227
+ "description": "Makes the input a required field.",
2228
+ "fieldName": "required"
2229
+ },
2230
+ {
2231
+ "name": "pattern",
2232
+ "type": {
2233
+ "text": "string"
2234
+ },
2235
+ "description": "A regular expression pattern to validate input against.",
2236
+ "fieldName": "pattern"
2237
+ },
2238
+ {
2239
+ "name": "minlength",
2240
+ "type": {
2241
+ "text": "number"
2242
+ },
2243
+ "description": "The minimum length of input that will be considered valid.",
2244
+ "fieldName": "minlength"
2245
+ },
2246
+ {
2247
+ "name": "maxlength",
2248
+ "type": {
2249
+ "text": "number"
2250
+ },
2251
+ "description": "The maximum length of input that will be considered valid.",
2252
+ "fieldName": "maxlength"
2253
+ },
2254
+ {
2255
+ "name": "min",
2256
+ "type": {
2257
+ "text": "number | string"
2258
+ },
2259
+ "description": "The input's minimum value. Only applies to date and number input types.",
2260
+ "fieldName": "min"
2261
+ },
2262
+ {
2263
+ "name": "max",
2264
+ "type": {
2265
+ "text": "number | string"
2266
+ },
2267
+ "description": "The input's maximum value. Only applies to date and number input types.",
2268
+ "fieldName": "max"
2269
+ },
2270
+ {
2271
+ "name": "step",
2272
+ "type": {
2273
+ "text": "number | 'any'"
2274
+ },
2275
+ "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.",
2276
+ "fieldName": "step"
2277
+ },
2278
+ {
2279
+ "name": "autocapitalize",
2280
+ "type": {
2281
+ "text": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
2282
+ },
2283
+ "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
2284
+ "fieldName": "autocapitalize"
2285
+ },
2286
+ {
2287
+ "name": "autocorrect",
2288
+ "type": {
2289
+ "text": "'off' | 'on'"
2290
+ },
2291
+ "description": "Indicates whether the browser's autocorrect feature is on or off.",
2292
+ "fieldName": "autocorrect"
2293
+ },
2294
+ {
2295
+ "name": "autocomplete",
2296
+ "type": {
2297
+ "text": "string"
2298
+ },
2299
+ "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.",
2300
+ "fieldName": "autocomplete"
2301
+ },
2302
+ {
2303
+ "name": "autofocus",
2304
+ "type": {
2305
+ "text": "boolean"
2306
+ },
2307
+ "description": "Indicates that the input should receive focus on page load.",
2308
+ "fieldName": "autofocus"
2309
+ },
2310
+ {
2311
+ "name": "enterkeyhint",
2312
+ "type": {
2313
+ "text": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
2314
+ },
2315
+ "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
2316
+ "fieldName": "enterkeyhint"
2317
+ },
2318
+ {
2319
+ "name": "spellcheck",
2320
+ "type": {
2321
+ "text": "boolean"
2322
+ },
2323
+ "default": "true",
2324
+ "description": "Enables spell checking on the input.",
2325
+ "fieldName": "spellcheck"
2326
+ },
2327
+ {
2328
+ "name": "inputmode",
2329
+ "type": {
2330
+ "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
2331
+ },
2332
+ "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.",
2333
+ "fieldName": "inputmode"
2334
+ }
2335
+ ],
2336
+ "superclass": {
2337
+ "name": "SynergyElement",
2338
+ "module": "/src/internal/synergy-element.js"
2339
+ },
2340
+ "summary": "Inputs collect data from the user.",
2341
+ "tagNameWithoutPrefix": "input",
2342
+ "tagName": "syn-input",
2343
+ "customElement": true,
2344
+ "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 *\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 *\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 */",
2345
+ "documentation": "https://synergy.style/components/input",
2346
+ "status": "stable",
2347
+ "since": "2.0",
2348
+ "dependencies": [
2349
+ "syn-icon"
2350
+ ]
2351
+ }
2352
+ ],
2353
+ "exports": [
2354
+ {
2355
+ "kind": "js",
2356
+ "name": "default",
2357
+ "declaration": {
2358
+ "name": "SynInput",
2359
+ "module": "components/input/input.js"
2360
+ }
2361
+ }
2362
+ ]
2363
+ },
2364
+ {
2365
+ "kind": "javascript-module",
2366
+ "path": "components/radio/radio.js",
2367
+ "declarations": [
2368
+ {
2369
+ "kind": "class",
2370
+ "description": "",
2371
+ "name": "SynRadio",
2372
+ "cssParts": [
2373
+ {
2374
+ "description": "The component's base wrapper.",
2375
+ "name": "base"
2376
+ },
2377
+ {
2378
+ "description": "The circular container that wraps the radio's checked state.",
2379
+ "name": "control"
2380
+ },
2381
+ {
2382
+ "description": "The radio control when the radio is checked.",
2383
+ "name": "control--checked"
2384
+ },
2385
+ {
2386
+ "description": "The checked icon, an `<syn-icon>` element.",
2387
+ "name": "checked-icon"
2388
+ },
2389
+ {
2390
+ "description": "The container that wraps the radio's label.",
2391
+ "name": "label"
2392
+ }
2393
+ ],
2394
+ "slots": [
2395
+ {
2396
+ "description": "The radio's label.",
2397
+ "name": ""
2398
+ }
2399
+ ],
2400
+ "members": [
2401
+ {
2402
+ "kind": "field",
2403
+ "name": "dependencies",
2404
+ "type": {
2405
+ "text": "object"
2406
+ },
2407
+ "static": true,
2408
+ "default": "{ 'syn-icon': SynIcon }"
2409
+ },
2410
+ {
2411
+ "kind": "field",
2412
+ "name": "checked",
2413
+ "type": {
2414
+ "text": "boolean"
2415
+ },
2416
+ "default": "false"
2417
+ },
2418
+ {
2419
+ "kind": "field",
2420
+ "name": "hasFocus",
2421
+ "type": {
2422
+ "text": "boolean"
2423
+ },
2424
+ "privacy": "protected",
2425
+ "default": "false"
2426
+ },
2427
+ {
2428
+ "kind": "field",
2429
+ "name": "value",
2430
+ "type": {
2431
+ "text": "string"
2432
+ },
2433
+ "description": "The radio's value. When selected, the radio group will receive this value.",
2434
+ "attribute": "value"
2435
+ },
2436
+ {
2437
+ "kind": "field",
2438
+ "name": "size",
2439
+ "type": {
2440
+ "text": "'small' | 'medium' | 'large'"
2441
+ },
2442
+ "default": "'medium'",
2443
+ "description": "The radio's size. When used inside a radio group, the size will be determined by the radio group's size so this\nattribute can typically be omitted.",
2444
+ "attribute": "size",
2445
+ "reflects": true
2446
+ },
2447
+ {
2448
+ "kind": "field",
2449
+ "name": "disabled",
2450
+ "type": {
2451
+ "text": "boolean"
2452
+ },
2453
+ "default": "false",
2454
+ "description": "Disables the radio.",
2455
+ "attribute": "disabled",
2456
+ "reflects": true
2457
+ },
2458
+ {
2459
+ "kind": "field",
2460
+ "name": "handleBlur",
2461
+ "privacy": "private"
2462
+ },
2463
+ {
2464
+ "kind": "field",
2465
+ "name": "handleClick",
2466
+ "privacy": "private"
2467
+ },
2468
+ {
2469
+ "kind": "field",
2470
+ "name": "handleFocus",
2471
+ "privacy": "private"
2472
+ },
2473
+ {
2474
+ "kind": "method",
2475
+ "name": "setInitialAttributes",
2476
+ "privacy": "private"
2477
+ },
2478
+ {
2479
+ "kind": "method",
2480
+ "name": "handleCheckedChange"
2481
+ },
2482
+ {
2483
+ "kind": "method",
2484
+ "name": "handleDisabledChange"
2485
+ }
2486
+ ],
2487
+ "events": [
2488
+ {
2489
+ "description": "Emitted when the control loses focus.",
2490
+ "name": "syn-blur",
2491
+ "reactName": "onSynBlur",
2492
+ "eventName": "SynBlurEvent"
2493
+ },
2494
+ {
2495
+ "description": "Emitted when the control gains focus.",
2496
+ "name": "syn-focus",
2497
+ "reactName": "onSynFocus",
2498
+ "eventName": "SynFocusEvent"
2499
+ }
2500
+ ],
2501
+ "attributes": [
2502
+ {
2503
+ "name": "value",
2504
+ "type": {
2505
+ "text": "string"
2506
+ },
2507
+ "description": "The radio's value. When selected, the radio group will receive this value.",
2508
+ "fieldName": "value"
2509
+ },
2510
+ {
2511
+ "name": "size",
2512
+ "type": {
2513
+ "text": "'small' | 'medium' | 'large'"
2514
+ },
2515
+ "default": "'medium'",
2516
+ "description": "The radio's size. When used inside a radio group, the size will be determined by the radio group's size so this\nattribute can typically be omitted.",
2517
+ "fieldName": "size"
2518
+ },
2519
+ {
2520
+ "name": "disabled",
2521
+ "type": {
2522
+ "text": "boolean"
2523
+ },
2524
+ "default": "false",
2525
+ "description": "Disables the radio.",
2526
+ "fieldName": "disabled"
2527
+ }
2528
+ ],
2529
+ "superclass": {
2530
+ "name": "SynergyElement",
2531
+ "module": "/src/internal/synergy-element.js"
2532
+ },
2533
+ "summary": "Radios allow the user to select a single option from a group.",
2534
+ "tagNameWithoutPrefix": "radio",
2535
+ "tagName": "syn-radio",
2536
+ "customElement": true,
2537
+ "jsDoc": "/**\n * @summary Radios allow the user to select a single option from a group.\n * @documentation https://synergy.style/components/radio\n * @status stable\n * @since 2.0\n *\n * @dependency syn-icon\n *\n * @slot - The radio's label.\n *\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-focus - Emitted when the control gains focus.\n *\n * @csspart base - The component's base wrapper.\n * @csspart control - The circular container that wraps the radio's checked state.\n * @csspart control--checked - The radio control when the radio is checked.\n * @csspart checked-icon - The checked icon, an `<syn-icon>` element.\n * @csspart label - The container that wraps the radio's label.\n */",
2538
+ "documentation": "https://synergy.style/components/radio",
2539
+ "status": "stable",
2540
+ "since": "2.0",
2541
+ "dependencies": [
2542
+ "syn-icon"
2543
+ ]
2544
+ }
2545
+ ],
2546
+ "exports": [
2547
+ {
2548
+ "kind": "js",
2549
+ "name": "default",
2550
+ "declaration": {
2551
+ "name": "SynRadio",
2552
+ "module": "components/radio/radio.js"
2553
+ }
2554
+ }
2555
+ ]
2556
+ },
2557
+ {
2558
+ "kind": "javascript-module",
2559
+ "path": "components/radio-button/radio-button.js",
2560
+ "declarations": [
2561
+ {
2562
+ "kind": "class",
2563
+ "description": "",
2564
+ "name": "SynRadioButton",
2565
+ "cssParts": [
2566
+ {
2567
+ "description": "The component's base wrapper.",
2568
+ "name": "base"
2569
+ },
2570
+ {
2571
+ "description": "The internal `<button>` element.",
2572
+ "name": "button"
2573
+ },
2574
+ {
2575
+ "description": "The internal button element when the radio button is checked.",
2576
+ "name": "button--checked"
2577
+ },
2578
+ {
2579
+ "description": "The container that wraps the prefix.",
2580
+ "name": "prefix"
2581
+ },
2582
+ {
2583
+ "description": "The container that wraps the radio button's label.",
2584
+ "name": "label"
2585
+ },
2586
+ {
2587
+ "description": "The container that wraps the suffix.",
2588
+ "name": "suffix"
2589
+ }
2590
+ ],
2591
+ "slots": [
2592
+ {
2593
+ "description": "The radio button's label.",
2594
+ "name": ""
2595
+ },
2596
+ {
2597
+ "description": "A presentational prefix icon or similar element.",
2598
+ "name": "prefix"
2599
+ },
2600
+ {
2601
+ "description": "A presentational suffix icon or similar element.",
2602
+ "name": "suffix"
2603
+ }
2604
+ ],
2605
+ "members": [
2606
+ {
2607
+ "kind": "field",
2608
+ "name": "hasSlotController",
2609
+ "privacy": "private",
2610
+ "readonly": true,
2611
+ "default": "new HasSlotController(this, '[default]', 'prefix', 'suffix')"
2612
+ },
2613
+ {
2614
+ "kind": "field",
2615
+ "name": "input",
2616
+ "type": {
2617
+ "text": "HTMLInputElement"
2618
+ }
2619
+ },
2620
+ {
2621
+ "kind": "field",
2622
+ "name": "hiddenInput",
2623
+ "type": {
2624
+ "text": "HTMLInputElement"
2625
+ }
2626
+ },
2627
+ {
2628
+ "kind": "field",
2629
+ "name": "hasFocus",
2630
+ "type": {
2631
+ "text": "boolean"
2632
+ },
2633
+ "privacy": "protected",
2634
+ "default": "false"
2635
+ },
2636
+ {
2637
+ "kind": "field",
2638
+ "name": "value",
2639
+ "type": {
2640
+ "text": "string"
2641
+ },
2642
+ "description": "The radio's value. When selected, the radio group will receive this value.",
2643
+ "attribute": "value"
2644
+ },
2645
+ {
2646
+ "kind": "field",
2647
+ "name": "disabled",
2648
+ "type": {
2649
+ "text": "boolean"
2650
+ },
2651
+ "default": "false",
2652
+ "description": "Disables the radio button.",
2653
+ "attribute": "disabled",
2654
+ "reflects": true
2655
+ },
2656
+ {
2657
+ "kind": "field",
2658
+ "name": "size",
2659
+ "type": {
2660
+ "text": "'small' | 'medium' | 'large'"
2661
+ },
2662
+ "default": "'medium'",
2663
+ "description": "The radio button's size. When used inside a radio group, the size will be determined by the radio group's size so\nthis attribute can typically be omitted.",
2664
+ "attribute": "size",
2665
+ "reflects": true
2666
+ },
2667
+ {
2668
+ "kind": "method",
2669
+ "name": "handleBlur",
2670
+ "privacy": "private"
2671
+ },
2672
+ {
2673
+ "kind": "method",
2674
+ "name": "handleClick",
2675
+ "privacy": "private",
2676
+ "parameters": [
2677
+ {
2678
+ "name": "e",
2679
+ "type": {
2680
+ "text": "MouseEvent"
2681
+ }
2682
+ }
2683
+ ]
2684
+ },
2685
+ {
2686
+ "kind": "method",
2687
+ "name": "handleFocus",
2688
+ "privacy": "private"
2689
+ },
2690
+ {
2691
+ "kind": "method",
2692
+ "name": "handleDisabledChange"
2693
+ },
2694
+ {
2695
+ "kind": "method",
2696
+ "name": "focus",
2697
+ "parameters": [
2698
+ {
2699
+ "name": "options",
2700
+ "optional": true,
2701
+ "type": {
2702
+ "text": "FocusOptions"
2703
+ }
2704
+ }
2705
+ ],
2706
+ "description": "Sets focus on the radio button."
2707
+ },
2708
+ {
2709
+ "kind": "method",
2710
+ "name": "blur",
2711
+ "description": "Removes focus from the radio button."
2712
+ }
2713
+ ],
2714
+ "events": [
2715
+ {
2716
+ "description": "Emitted when the button loses focus.",
2717
+ "name": "syn-blur",
2718
+ "reactName": "onSynBlur",
2719
+ "eventName": "SynBlurEvent"
2720
+ },
2721
+ {
2722
+ "description": "Emitted when the button gains focus.",
2723
+ "name": "syn-focus",
2724
+ "reactName": "onSynFocus",
2725
+ "eventName": "SynFocusEvent"
2726
+ }
2727
+ ],
2728
+ "attributes": [
2729
+ {
2730
+ "name": "value",
2731
+ "type": {
2732
+ "text": "string"
2733
+ },
2734
+ "description": "The radio's value. When selected, the radio group will receive this value.",
2735
+ "fieldName": "value"
2736
+ },
2737
+ {
2738
+ "name": "disabled",
2739
+ "type": {
2740
+ "text": "boolean"
2741
+ },
2742
+ "default": "false",
2743
+ "description": "Disables the radio button.",
2744
+ "fieldName": "disabled"
2745
+ },
2746
+ {
2747
+ "name": "size",
2748
+ "type": {
2749
+ "text": "'small' | 'medium' | 'large'"
2750
+ },
2751
+ "default": "'medium'",
2752
+ "description": "The radio button's size. When used inside a radio group, the size will be determined by the radio group's size so\nthis attribute can typically be omitted.",
2753
+ "fieldName": "size"
2754
+ }
2755
+ ],
2756
+ "superclass": {
2757
+ "name": "SynergyElement",
2758
+ "module": "/src/internal/synergy-element.js"
2759
+ },
2760
+ "summary": "Radios buttons allow the user to select a single option from a group using a button-like control.",
2761
+ "tagNameWithoutPrefix": "radio-button",
2762
+ "tagName": "syn-radio-button",
2763
+ "customElement": true,
2764
+ "jsDoc": "/**\n * @summary Radios buttons allow the user to select a single option from a group using a button-like control.\n * @documentation https://synergy.style/components/radio-button\n * @status stable\n * @since 2.0\n *\n * @slot - The radio button's label.\n * @slot prefix - A presentational prefix icon or similar element.\n * @slot suffix - A presentational suffix icon or similar element.\n *\n * @event syn-blur - Emitted when the button loses focus.\n * @event syn-focus - Emitted when the button gains focus.\n *\n * @csspart base - The component's base wrapper.\n * @csspart button - The internal `<button>` element.\n * @csspart button--checked - The internal button element when the radio button is checked.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart label - The container that wraps the radio button's label.\n * @csspart suffix - The container that wraps the suffix.\n */",
2765
+ "documentation": "https://synergy.style/components/radio-button",
2766
+ "status": "stable",
2767
+ "since": "2.0"
2768
+ }
2769
+ ],
2770
+ "exports": [
2771
+ {
2772
+ "kind": "js",
2773
+ "name": "default",
2774
+ "declaration": {
2775
+ "name": "SynRadioButton",
2776
+ "module": "components/radio-button/radio-button.js"
2777
+ }
2778
+ }
2779
+ ]
2780
+ },
2781
+ {
2782
+ "kind": "javascript-module",
2783
+ "path": "components/radio-group/radio-group.js",
2784
+ "declarations": [
2785
+ {
2786
+ "kind": "class",
2787
+ "description": "",
2788
+ "name": "SynRadioGroup",
2789
+ "cssParts": [
2790
+ {
2791
+ "description": "The form control that wraps the label, input, and help text.",
2792
+ "name": "form-control"
2793
+ },
2794
+ {
2795
+ "description": "The label's wrapper.",
2796
+ "name": "form-control-label"
2797
+ },
2798
+ {
2799
+ "description": "The input's wrapper.",
2800
+ "name": "form-control-input"
2801
+ },
2802
+ {
2803
+ "description": "The help text's wrapper.",
2804
+ "name": "form-control-help-text"
2805
+ },
2806
+ {
2807
+ "description": "The button group that wraps radio buttons.",
2808
+ "name": "button-group"
2809
+ },
2810
+ {
2811
+ "description": "The button group's `base` part.",
2812
+ "name": "button-group__base"
2813
+ }
2814
+ ],
2815
+ "slots": [
2816
+ {
2817
+ "description": "The default slot where `<syn-radio>` or `<syn-radio-button>` elements are placed.",
2818
+ "name": ""
2819
+ },
2820
+ {
2821
+ "description": "The radio group's label. Required for proper accessibility. Alternatively, you can use the `label` attribute.",
2822
+ "name": "label"
2823
+ }
2824
+ ],
2825
+ "members": [
2826
+ {
2827
+ "kind": "field",
2828
+ "name": "dependencies",
2829
+ "type": {
2830
+ "text": "object"
2831
+ },
2832
+ "static": true,
2833
+ "default": "{ 'syn-button-group': SynButtonGroup }"
2834
+ },
2835
+ {
2836
+ "kind": "field",
2837
+ "name": "formControlController",
2838
+ "privacy": "protected",
2839
+ "readonly": true,
2840
+ "default": "new FormControlController(this)"
2841
+ },
2842
+ {
2843
+ "kind": "field",
2844
+ "name": "hasSlotController",
2845
+ "privacy": "private",
2846
+ "readonly": true,
2847
+ "default": "new HasSlotController(this, 'help-text', 'label')"
2848
+ },
2849
+ {
2850
+ "kind": "field",
2851
+ "name": "customValidityMessage",
2852
+ "type": {
2853
+ "text": "string"
2854
+ },
2855
+ "privacy": "private",
2856
+ "default": "''"
2857
+ },
2858
+ {
2859
+ "kind": "field",
2860
+ "name": "validationTimeout",
2861
+ "type": {
2862
+ "text": "number"
2863
+ },
2864
+ "privacy": "private"
2865
+ },
2866
+ {
2867
+ "kind": "field",
2868
+ "name": "defaultSlot",
2869
+ "type": {
2870
+ "text": "HTMLSlotElement"
2871
+ }
2872
+ },
2873
+ {
2874
+ "kind": "field",
2875
+ "name": "validationInput",
2876
+ "type": {
2877
+ "text": "HTMLInputElement"
2878
+ }
2879
+ },
2880
+ {
2881
+ "kind": "field",
2882
+ "name": "hasButtonGroup",
2883
+ "type": {
2884
+ "text": "boolean"
2885
+ },
2886
+ "privacy": "private",
2887
+ "default": "false"
2888
+ },
2889
+ {
2890
+ "kind": "field",
2891
+ "name": "errorMessage",
2892
+ "type": {
2893
+ "text": "string"
2894
+ },
2895
+ "privacy": "private",
2896
+ "default": "''"
2897
+ },
2898
+ {
2899
+ "kind": "field",
2900
+ "name": "defaultValue",
2901
+ "type": {
2902
+ "text": "string"
2903
+ },
2904
+ "default": "''"
2905
+ },
2906
+ {
2907
+ "kind": "field",
2908
+ "name": "label",
2909
+ "type": {
2910
+ "text": "string"
2911
+ },
2912
+ "default": "''",
2913
+ "description": "The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\ninstead.",
2914
+ "attribute": "label"
2915
+ },
2916
+ {
2917
+ "kind": "field",
2918
+ "name": "helpText",
2919
+ "type": {
2920
+ "text": "string"
2921
+ },
2922
+ "default": "''",
2923
+ "description": "The radio groups's help text. If you need to display HTML, use the `help-text` slot instead.",
2924
+ "attribute": "help-text"
2925
+ },
2926
+ {
2927
+ "kind": "field",
2928
+ "name": "name",
2929
+ "type": {
2930
+ "text": "string"
2931
+ },
2932
+ "default": "'option'",
2933
+ "description": "The name of the radio group, submitted as a name/value pair with form data.",
2934
+ "attribute": "name"
2935
+ },
2936
+ {
2937
+ "kind": "field",
2938
+ "name": "value",
2939
+ "type": {
2940
+ "text": "string"
2941
+ },
2942
+ "default": "''",
2943
+ "description": "The current value of the radio group, submitted as a name/value pair with form data.",
2944
+ "attribute": "value",
2945
+ "reflects": true
2946
+ },
2947
+ {
2948
+ "kind": "field",
2949
+ "name": "size",
2950
+ "type": {
2951
+ "text": "'small' | 'medium' | 'large'"
2952
+ },
2953
+ "default": "'medium'",
2954
+ "description": "The radio group's size. This size will be applied to all child radios and radio buttons.",
2955
+ "attribute": "size",
2956
+ "reflects": true
2957
+ },
2958
+ {
2959
+ "kind": "field",
2960
+ "name": "form",
2961
+ "type": {
2962
+ "text": "string"
2963
+ },
2964
+ "default": "''",
2965
+ "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.",
2966
+ "attribute": "form",
2967
+ "reflects": true
2968
+ },
2969
+ {
2970
+ "kind": "field",
2971
+ "name": "required",
2972
+ "type": {
2973
+ "text": "boolean"
2974
+ },
2975
+ "default": "false",
2976
+ "description": "Ensures a child radio is checked before allowing the containing form to submit.",
2977
+ "attribute": "required",
2978
+ "reflects": true
2979
+ },
2980
+ {
2981
+ "kind": "field",
2982
+ "name": "validity",
2983
+ "description": "Gets the validity state object",
2984
+ "readonly": true
2985
+ },
2986
+ {
2987
+ "kind": "field",
2988
+ "name": "validationMessage",
2989
+ "description": "Gets the validation message",
2990
+ "readonly": true
2991
+ },
2992
+ {
2993
+ "kind": "method",
2994
+ "name": "getAllRadios",
2995
+ "privacy": "private"
2996
+ },
2997
+ {
2998
+ "kind": "method",
2999
+ "name": "handleRadioClick",
3000
+ "privacy": "private",
3001
+ "parameters": [
3002
+ {
3003
+ "name": "event",
3004
+ "type": {
3005
+ "text": "MouseEvent"
3006
+ }
3007
+ }
3008
+ ]
3009
+ },
3010
+ {
3011
+ "kind": "method",
3012
+ "name": "handleKeyDown",
3013
+ "privacy": "private",
3014
+ "parameters": [
3015
+ {
3016
+ "name": "event",
3017
+ "type": {
3018
+ "text": "KeyboardEvent"
3019
+ }
3020
+ }
3021
+ ]
3022
+ },
3023
+ {
3024
+ "kind": "method",
3025
+ "name": "handleLabelClick",
3026
+ "privacy": "private"
3027
+ },
3028
+ {
3029
+ "kind": "method",
3030
+ "name": "handleInvalid",
3031
+ "privacy": "private",
3032
+ "parameters": [
3033
+ {
3034
+ "name": "event",
3035
+ "type": {
3036
+ "text": "Event"
3037
+ }
3038
+ }
3039
+ ]
3040
+ },
3041
+ {
3042
+ "kind": "method",
3043
+ "name": "syncRadioElements",
3044
+ "privacy": "private"
3045
+ },
3046
+ {
3047
+ "kind": "method",
3048
+ "name": "syncRadios",
3049
+ "privacy": "private"
3050
+ },
3051
+ {
3052
+ "kind": "method",
3053
+ "name": "updateCheckedRadio",
3054
+ "privacy": "private"
3055
+ },
3056
+ {
3057
+ "kind": "method",
3058
+ "name": "handleSizeChange"
3059
+ },
3060
+ {
3061
+ "kind": "method",
3062
+ "name": "handleValueChange"
3063
+ },
3064
+ {
3065
+ "kind": "method",
3066
+ "name": "checkValidity",
3067
+ "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid."
3068
+ },
3069
+ {
3070
+ "kind": "method",
3071
+ "name": "getForm",
3072
+ "return": {
3073
+ "type": {
3074
+ "text": "HTMLFormElement | null"
3075
+ }
3076
+ },
3077
+ "description": "Gets the associated form, if one exists."
3078
+ },
3079
+ {
3080
+ "kind": "method",
3081
+ "name": "reportValidity",
3082
+ "return": {
3083
+ "type": {
3084
+ "text": "boolean"
3085
+ }
3086
+ },
3087
+ "description": "Checks for validity and shows the browser's validation message if the control is invalid."
3088
+ },
3089
+ {
3090
+ "kind": "method",
3091
+ "name": "setCustomValidity",
3092
+ "parameters": [
3093
+ {
3094
+ "name": "message",
3095
+ "default": "''"
3096
+ }
3097
+ ],
3098
+ "description": "Sets a custom validation message. Pass an empty string to restore validity."
3099
+ }
3100
+ ],
3101
+ "events": [
3102
+ {
3103
+ "description": "Emitted when the radio group's selected value changes.",
3104
+ "name": "syn-change",
3105
+ "reactName": "onSynChange",
3106
+ "eventName": "SynChangeEvent"
3107
+ },
3108
+ {
3109
+ "description": "Emitted when the radio group receives user input.",
3110
+ "name": "syn-input",
3111
+ "reactName": "onSynInput",
3112
+ "eventName": "SynInputEvent"
3113
+ },
3114
+ {
3115
+ "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied.",
3116
+ "name": "syn-invalid",
3117
+ "reactName": "onSynInvalid",
3118
+ "eventName": "SynInvalidEvent"
3119
+ }
3120
+ ],
3121
+ "attributes": [
3122
+ {
3123
+ "name": "label",
3124
+ "type": {
3125
+ "text": "string"
3126
+ },
3127
+ "default": "''",
3128
+ "description": "The radio group's label. Required for proper accessibility. If you need to display HTML, use the `label` slot\ninstead.",
3129
+ "fieldName": "label"
3130
+ },
3131
+ {
3132
+ "name": "help-text",
3133
+ "type": {
3134
+ "text": "string"
3135
+ },
3136
+ "default": "''",
3137
+ "description": "The radio groups's help text. If you need to display HTML, use the `help-text` slot instead.",
3138
+ "fieldName": "helpText"
3139
+ },
3140
+ {
3141
+ "name": "name",
3142
+ "type": {
3143
+ "text": "string"
3144
+ },
3145
+ "default": "'option'",
3146
+ "description": "The name of the radio group, submitted as a name/value pair with form data.",
3147
+ "fieldName": "name"
3148
+ },
3149
+ {
3150
+ "name": "value",
3151
+ "type": {
3152
+ "text": "string"
3153
+ },
3154
+ "default": "''",
3155
+ "description": "The current value of the radio group, submitted as a name/value pair with form data.",
3156
+ "fieldName": "value"
3157
+ },
3158
+ {
3159
+ "name": "size",
3160
+ "type": {
3161
+ "text": "'small' | 'medium' | 'large'"
3162
+ },
3163
+ "default": "'medium'",
3164
+ "description": "The radio group's size. This size will be applied to all child radios and radio buttons.",
3165
+ "fieldName": "size"
3166
+ },
3167
+ {
3168
+ "name": "form",
3169
+ "type": {
3170
+ "text": "string"
3171
+ },
3172
+ "default": "''",
3173
+ "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.",
3174
+ "fieldName": "form"
3175
+ },
3176
+ {
3177
+ "name": "required",
3178
+ "type": {
3179
+ "text": "boolean"
3180
+ },
3181
+ "default": "false",
3182
+ "description": "Ensures a child radio is checked before allowing the containing form to submit.",
3183
+ "fieldName": "required"
3184
+ }
3185
+ ],
3186
+ "superclass": {
3187
+ "name": "SynergyElement",
3188
+ "module": "/src/internal/synergy-element.js"
3189
+ },
3190
+ "summary": "Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.",
3191
+ "tagNameWithoutPrefix": "radio-group",
3192
+ "tagName": "syn-radio-group",
3193
+ "customElement": true,
3194
+ "jsDoc": "/**\n * @summary Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.\n * @documentation https://synergy.style/components/radio-group\n * @status stable\n * @since 2.0\n *\n * @dependency syn-button-group\n *\n * @slot - The default slot where `<syn-radio>` or `<syn-radio-button>` elements are placed.\n * @slot label - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label`\n * attribute.\n *\n * @event syn-change - Emitted when the radio group's selected value changes.\n * @event syn-input - Emitted when the radio group receives user 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 button-group - The button group that wraps radio buttons.\n * @csspart button-group__base - The button group's `base` part.\n */",
3195
+ "documentation": "https://synergy.style/components/radio-group",
3196
+ "status": "stable",
3197
+ "since": "2.0",
3198
+ "dependencies": [
3199
+ "syn-button-group"
3200
+ ]
3201
+ }
3202
+ ],
3203
+ "exports": [
3204
+ {
3205
+ "kind": "js",
3206
+ "name": "default",
3207
+ "declaration": {
3208
+ "name": "SynRadioGroup",
3209
+ "module": "components/radio-group/radio-group.js"
3210
+ }
3211
+ }
3212
+ ]
3213
+ },
3214
+ {
3215
+ "kind": "javascript-module",
3216
+ "path": "components/spinner/spinner.js",
3217
+ "declarations": [
3218
+ {
3219
+ "kind": "class",
3220
+ "description": "",
3221
+ "name": "SynSpinner",
3222
+ "cssProperties": [
3223
+ {
3224
+ "description": "The width of the track.",
3225
+ "name": "--track-width"
3226
+ },
3227
+ {
3228
+ "description": "The color of the track.",
3229
+ "name": "--track-color"
3230
+ },
3231
+ {
3232
+ "description": "The color of the spinner's indicator.",
3233
+ "name": "--indicator-color"
3234
+ },
3235
+ {
3236
+ "description": "The time it takes for the spinner to complete one animation cycle.",
3237
+ "name": "--speed"
3238
+ }
3239
+ ],
3240
+ "cssParts": [
3241
+ {
3242
+ "description": "The component's base wrapper.",
3243
+ "name": "base"
3244
+ }
3245
+ ],
3246
+ "members": [
3247
+ {
3248
+ "kind": "field",
3249
+ "name": "localize",
3250
+ "privacy": "private",
3251
+ "readonly": true,
3252
+ "default": "new LocalizeController(this)"
3253
+ }
3254
+ ],
3255
+ "superclass": {
3256
+ "name": "SynergyElement",
3257
+ "module": "/src/internal/synergy-element.js"
3258
+ },
3259
+ "summary": "Spinners are used to show the progress of an indeterminate operation.",
3260
+ "tagNameWithoutPrefix": "spinner",
3261
+ "tagName": "syn-spinner",
3262
+ "customElement": true,
3263
+ "jsDoc": "/**\n * @summary Spinners are used to show the progress of an indeterminate operation.\n * @documentation https://synergy.style/components/spinner\n * @status stable\n * @since 2.0\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --track-width - The width of the track.\n * @cssproperty --track-color - The color of the track.\n * @cssproperty --indicator-color - The color of the spinner's indicator.\n * @cssproperty --speed - The time it takes for the spinner to complete one animation cycle.\n */",
3264
+ "documentation": "https://synergy.style/components/spinner",
3265
+ "status": "stable",
3266
+ "since": "2.0"
3267
+ }
3268
+ ],
3269
+ "exports": [
3270
+ {
3271
+ "kind": "js",
3272
+ "name": "default",
3273
+ "declaration": {
3274
+ "name": "SynSpinner",
3275
+ "module": "components/spinner/spinner.js"
3276
+ }
3277
+ }
3278
+ ]
3279
+ },
3280
+ {
3281
+ "kind": "javascript-module",
3282
+ "path": "components/switch/switch.js",
3283
+ "declarations": [
3284
+ {
3285
+ "kind": "class",
3286
+ "description": "",
3287
+ "name": "SynSwitch",
3288
+ "cssProperties": [
3289
+ {
3290
+ "description": "The width of the switch.",
3291
+ "name": "--width"
3292
+ },
3293
+ {
3294
+ "description": "The height of the switch.",
3295
+ "name": "--height"
3296
+ },
3297
+ {
3298
+ "description": "The size of the thumb.",
3299
+ "name": "--thumb-size"
3300
+ }
3301
+ ],
3302
+ "cssParts": [
3303
+ {
3304
+ "description": "The component's base wrapper.",
3305
+ "name": "base"
3306
+ },
3307
+ {
3308
+ "description": "The control that houses the switch's thumb.",
3309
+ "name": "control"
3310
+ },
3311
+ {
3312
+ "description": "The switch's thumb.",
3313
+ "name": "thumb"
3314
+ },
3315
+ {
3316
+ "description": "The switch's label.",
3317
+ "name": "label"
3318
+ }
3319
+ ],
3320
+ "slots": [
3321
+ {
3322
+ "description": "The switch's label.",
3323
+ "name": ""
3324
+ }
3325
+ ],
3326
+ "members": [
3327
+ {
3328
+ "kind": "field",
3329
+ "name": "formControlController",
3330
+ "privacy": "private",
3331
+ "readonly": true,
3332
+ "default": "new FormControlController(this, {\n value: (control: SynSwitch) => (control.checked ? control.value || 'on' : undefined),\n defaultValue: (control: SynSwitch) => control.defaultChecked,\n setValue: (control: SynSwitch, checked: boolean) => (control.checked = checked)\n })"
3333
+ },
3334
+ {
3335
+ "kind": "field",
3336
+ "name": "input",
3337
+ "type": {
3338
+ "text": "HTMLInputElement"
3339
+ }
3340
+ },
3341
+ {
3342
+ "kind": "field",
3343
+ "name": "hasFocus",
3344
+ "type": {
3345
+ "text": "boolean"
3346
+ },
3347
+ "privacy": "private",
3348
+ "default": "false"
3349
+ },
3350
+ {
3351
+ "kind": "field",
3352
+ "name": "title",
3353
+ "type": {
3354
+ "text": "string"
3355
+ },
3356
+ "default": "''",
3357
+ "attribute": "title"
3358
+ },
3359
+ {
3360
+ "kind": "field",
3361
+ "name": "name",
3362
+ "type": {
3363
+ "text": "string"
3364
+ },
3365
+ "default": "''",
3366
+ "description": "The name of the switch, submitted as a name/value pair with form data.",
3367
+ "attribute": "name"
3368
+ },
3369
+ {
3370
+ "kind": "field",
3371
+ "name": "value",
3372
+ "type": {
3373
+ "text": "string"
3374
+ },
3375
+ "description": "The current value of the switch, submitted as a name/value pair with form data.",
3376
+ "attribute": "value"
3377
+ },
3378
+ {
3379
+ "kind": "field",
3380
+ "name": "size",
3381
+ "type": {
3382
+ "text": "'small' | 'medium' | 'large'"
3383
+ },
3384
+ "default": "'medium'",
3385
+ "description": "The switch's size.",
3386
+ "attribute": "size",
3387
+ "reflects": true
3388
+ },
3389
+ {
3390
+ "kind": "field",
3391
+ "name": "disabled",
3392
+ "type": {
3393
+ "text": "boolean"
3394
+ },
3395
+ "default": "false",
3396
+ "description": "Disables the switch.",
3397
+ "attribute": "disabled",
3398
+ "reflects": true
3399
+ },
3400
+ {
3401
+ "kind": "field",
3402
+ "name": "checked",
3403
+ "type": {
3404
+ "text": "boolean"
3405
+ },
3406
+ "default": "false",
3407
+ "description": "Draws the switch in a checked state.",
3408
+ "attribute": "checked",
3409
+ "reflects": true
3410
+ },
3411
+ {
3412
+ "kind": "field",
3413
+ "name": "defaultChecked",
3414
+ "type": {
3415
+ "text": "boolean"
3416
+ },
3417
+ "default": "false",
3418
+ "description": "The default value of the form control. Primarily used for resetting the form control."
3419
+ },
3420
+ {
3421
+ "kind": "field",
3422
+ "name": "form",
3423
+ "type": {
3424
+ "text": "string"
3425
+ },
3426
+ "default": "''",
3427
+ "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.",
3428
+ "attribute": "form",
3429
+ "reflects": true
3430
+ },
3431
+ {
3432
+ "kind": "field",
3433
+ "name": "required",
3434
+ "type": {
3435
+ "text": "boolean"
3436
+ },
3437
+ "default": "false",
3438
+ "description": "Makes the switch a required field.",
3439
+ "attribute": "required",
3440
+ "reflects": true
3441
+ },
3442
+ {
3443
+ "kind": "field",
3444
+ "name": "validity",
3445
+ "description": "Gets the validity state object",
3446
+ "readonly": true
3447
+ },
3448
+ {
3449
+ "kind": "field",
3450
+ "name": "validationMessage",
3451
+ "description": "Gets the validation message",
3452
+ "readonly": true
3453
+ },
3454
+ {
3455
+ "kind": "method",
3456
+ "name": "handleBlur",
3457
+ "privacy": "private"
3458
+ },
3459
+ {
3460
+ "kind": "method",
3461
+ "name": "handleInput",
3462
+ "privacy": "private"
3463
+ },
3464
+ {
3465
+ "kind": "method",
3466
+ "name": "handleInvalid",
3467
+ "privacy": "private",
3468
+ "parameters": [
3469
+ {
3470
+ "name": "event",
3471
+ "type": {
3472
+ "text": "Event"
3473
+ }
3474
+ }
3475
+ ]
3476
+ },
3477
+ {
3478
+ "kind": "method",
3479
+ "name": "handleClick",
3480
+ "privacy": "private"
3481
+ },
3482
+ {
3483
+ "kind": "method",
3484
+ "name": "handleFocus",
3485
+ "privacy": "private"
3486
+ },
3487
+ {
3488
+ "kind": "method",
3489
+ "name": "handleKeyDown",
3490
+ "privacy": "private",
3491
+ "parameters": [
3492
+ {
3493
+ "name": "event",
3494
+ "type": {
3495
+ "text": "KeyboardEvent"
3496
+ }
3497
+ }
3498
+ ]
3499
+ },
3500
+ {
3501
+ "kind": "method",
3502
+ "name": "handleCheckedChange"
3503
+ },
3504
+ {
3505
+ "kind": "method",
3506
+ "name": "handleDisabledChange"
3507
+ },
3508
+ {
3509
+ "kind": "method",
3510
+ "name": "click",
3511
+ "description": "Simulates a click on the switch."
3512
+ },
3513
+ {
3514
+ "kind": "method",
3515
+ "name": "focus",
3516
+ "parameters": [
3517
+ {
3518
+ "name": "options",
3519
+ "optional": true,
3520
+ "type": {
3521
+ "text": "FocusOptions"
3522
+ }
3523
+ }
3524
+ ],
3525
+ "description": "Sets focus on the switch."
3526
+ },
3527
+ {
3528
+ "kind": "method",
3529
+ "name": "blur",
3530
+ "description": "Removes focus from the switch."
3531
+ },
3532
+ {
3533
+ "kind": "method",
3534
+ "name": "checkValidity",
3535
+ "description": "Checks for validity but does not show a validation message. Returns `true` when valid and `false` when invalid."
3536
+ },
3537
+ {
3538
+ "kind": "method",
3539
+ "name": "getForm",
3540
+ "return": {
3541
+ "type": {
3542
+ "text": "HTMLFormElement | null"
3543
+ }
3544
+ },
3545
+ "description": "Gets the associated form, if one exists."
3546
+ },
3547
+ {
3548
+ "kind": "method",
3549
+ "name": "reportValidity",
3550
+ "description": "Checks for validity and shows the browser's validation message if the control is invalid."
3551
+ },
3552
+ {
3553
+ "kind": "method",
3554
+ "name": "setCustomValidity",
3555
+ "parameters": [
3556
+ {
3557
+ "name": "message",
3558
+ "type": {
3559
+ "text": "string"
3560
+ }
3561
+ }
3562
+ ],
3563
+ "description": "Sets a custom validation message. Pass an empty string to restore validity."
3564
+ }
3565
+ ],
3566
+ "events": [
3567
+ {
3568
+ "description": "Emitted when the control loses focus.",
3569
+ "name": "syn-blur",
3570
+ "reactName": "onSynBlur",
3571
+ "eventName": "SynBlurEvent"
3572
+ },
3573
+ {
3574
+ "description": "Emitted when the control's checked state changes.",
3575
+ "name": "syn-change",
3576
+ "reactName": "onSynChange",
3577
+ "eventName": "SynChangeEvent"
3578
+ },
3579
+ {
3580
+ "description": "Emitted when the control receives input.",
3581
+ "name": "syn-input",
3582
+ "reactName": "onSynInput",
3583
+ "eventName": "SynInputEvent"
3584
+ },
3585
+ {
3586
+ "description": "Emitted when the control gains focus.",
3587
+ "name": "syn-focus",
3588
+ "reactName": "onSynFocus",
3589
+ "eventName": "SynFocusEvent"
3590
+ },
3591
+ {
3592
+ "description": "Emitted when the form control has been checked for validity and its constraints aren't satisfied.",
3593
+ "name": "syn-invalid",
3594
+ "reactName": "onSynInvalid",
3595
+ "eventName": "SynInvalidEvent"
3596
+ }
3597
+ ],
3598
+ "attributes": [
3599
+ {
3600
+ "name": "title",
3601
+ "type": {
3602
+ "text": "string"
3603
+ },
3604
+ "default": "''",
3605
+ "fieldName": "title"
3606
+ },
3607
+ {
3608
+ "name": "name",
3609
+ "type": {
3610
+ "text": "string"
3611
+ },
3612
+ "default": "''",
3613
+ "description": "The name of the switch, submitted as a name/value pair with form data.",
3614
+ "fieldName": "name"
3615
+ },
3616
+ {
3617
+ "name": "value",
3618
+ "type": {
3619
+ "text": "string"
3620
+ },
3621
+ "description": "The current value of the switch, submitted as a name/value pair with form data.",
3622
+ "fieldName": "value"
3623
+ },
3624
+ {
3625
+ "name": "size",
3626
+ "type": {
3627
+ "text": "'small' | 'medium' | 'large'"
3628
+ },
3629
+ "default": "'medium'",
3630
+ "description": "The switch's size.",
3631
+ "fieldName": "size"
3632
+ },
3633
+ {
3634
+ "name": "disabled",
3635
+ "type": {
3636
+ "text": "boolean"
3637
+ },
3638
+ "default": "false",
3639
+ "description": "Disables the switch.",
3640
+ "fieldName": "disabled"
3641
+ },
3642
+ {
3643
+ "name": "checked",
3644
+ "type": {
3645
+ "text": "boolean"
3646
+ },
3647
+ "default": "false",
3648
+ "description": "Draws the switch in a checked state.",
3649
+ "fieldName": "checked"
3650
+ },
3651
+ {
3652
+ "name": "form",
3653
+ "type": {
3654
+ "text": "string"
3655
+ },
3656
+ "default": "''",
3657
+ "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.",
3658
+ "fieldName": "form"
3659
+ },
3660
+ {
3661
+ "name": "required",
3662
+ "type": {
3663
+ "text": "boolean"
3664
+ },
3665
+ "default": "false",
3666
+ "description": "Makes the switch a required field.",
3667
+ "fieldName": "required"
3668
+ }
3669
+ ],
3670
+ "superclass": {
3671
+ "name": "SynergyElement",
3672
+ "module": "/src/internal/synergy-element.js"
3673
+ },
3674
+ "summary": "Switches allow the user to toggle an option on or off.",
3675
+ "tagNameWithoutPrefix": "switch",
3676
+ "tagName": "syn-switch",
3677
+ "customElement": true,
3678
+ "jsDoc": "/**\n * @summary Switches allow the user to toggle an option on or off.\n * @documentation https://synergy.style/components/switch\n * @status stable\n * @since 2.0\n *\n * @slot - The switch's label.\n *\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-change - Emitted when the control's checked state changes.\n * @event syn-input - Emitted when the control receives input.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n *\n * @csspart base - The component's base wrapper.\n * @csspart control - The control that houses the switch's thumb.\n * @csspart thumb - The switch's thumb.\n * @csspart label - The switch's label.\n *\n * @cssproperty --width - The width of the switch.\n * @cssproperty --height - The height of the switch.\n * @cssproperty --thumb-size - The size of the thumb.\n */",
3679
+ "documentation": "https://synergy.style/components/switch",
3680
+ "status": "stable",
3681
+ "since": "2.0"
3682
+ }
3683
+ ],
3684
+ "exports": [
3685
+ {
3686
+ "kind": "js",
3687
+ "name": "default",
3688
+ "declaration": {
3689
+ "name": "SynSwitch",
3690
+ "module": "components/switch/switch.js"
3691
+ }
3692
+ }
3693
+ ]
3694
+ },
3695
+ {
3696
+ "kind": "javascript-module",
3697
+ "path": "components/textarea/textarea.js",
3698
+ "declarations": [
3699
+ {
3700
+ "kind": "class",
3701
+ "description": "",
3702
+ "name": "SynTextarea",
3703
+ "cssParts": [
3704
+ {
3705
+ "description": "The form control that wraps the label, input, and help text.",
3706
+ "name": "form-control"
3707
+ },
3708
+ {
3709
+ "description": "The label's wrapper.",
3710
+ "name": "form-control-label"
3711
+ },
3712
+ {
3713
+ "description": "The input's wrapper.",
3714
+ "name": "form-control-input"
3715
+ },
3716
+ {
3717
+ "description": "The help text's wrapper.",
3718
+ "name": "form-control-help-text"
3719
+ },
3720
+ {
3721
+ "description": "The component's base wrapper.",
3722
+ "name": "base"
3723
+ },
3724
+ {
3725
+ "description": "The internal `<textarea>` control.",
3726
+ "name": "textarea"
3727
+ }
3728
+ ],
3729
+ "slots": [
3730
+ {
3731
+ "description": "The textarea's label. Alternatively, you can use the `label` attribute.",
3732
+ "name": "label"
3733
+ },
3734
+ {
3735
+ "description": "Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.",
3736
+ "name": "help-text"
3737
+ }
3738
+ ],
3739
+ "members": [
3740
+ {
3741
+ "kind": "field",
3742
+ "name": "formControlController",
3743
+ "privacy": "private",
3744
+ "readonly": true,
3745
+ "default": "new FormControlController(this, {\n assumeInteractionOn: ['syn-blur', 'syn-input']\n })"
961
3746
  },
962
3747
  {
963
3748
  "kind": "field",
964
- "name": "type",
3749
+ "name": "hasSlotController",
3750
+ "privacy": "private",
3751
+ "readonly": true,
3752
+ "default": "new HasSlotController(this, 'help-text', 'label', 'prefix', 'suffix')"
3753
+ },
3754
+ {
3755
+ "kind": "field",
3756
+ "name": "resizeObserver",
965
3757
  "type": {
966
- "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
3758
+ "text": "ResizeObserver"
967
3759
  },
968
- "default": "'text'",
969
- "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
970
- "attribute": "type",
971
- "reflects": true
3760
+ "privacy": "private"
972
3761
  },
973
3762
  {
974
3763
  "kind": "field",
975
- "name": "name",
3764
+ "name": "input",
3765
+ "type": {
3766
+ "text": "HTMLTextAreaElement"
3767
+ }
3768
+ },
3769
+ {
3770
+ "kind": "field",
3771
+ "name": "hasFocus",
3772
+ "type": {
3773
+ "text": "boolean"
3774
+ },
3775
+ "privacy": "private",
3776
+ "default": "false"
3777
+ },
3778
+ {
3779
+ "kind": "field",
3780
+ "name": "title",
976
3781
  "type": {
977
3782
  "text": "string"
978
3783
  },
979
3784
  "default": "''",
980
- "description": "The name of the input, submitted as a name/value pair with form data.",
981
- "attribute": "name"
3785
+ "attribute": "title"
982
3786
  },
983
3787
  {
984
3788
  "kind": "field",
985
- "name": "value",
3789
+ "name": "name",
986
3790
  "type": {
987
3791
  "text": "string"
988
3792
  },
989
3793
  "default": "''",
990
- "description": "The current value of the input, submitted as a name/value pair with form data.",
991
- "attribute": "value"
3794
+ "description": "The name of the textarea, submitted as a name/value pair with form data.",
3795
+ "attribute": "name"
992
3796
  },
993
3797
  {
994
3798
  "kind": "field",
995
- "name": "defaultValue",
3799
+ "name": "value",
996
3800
  "type": {
997
3801
  "text": "string"
998
3802
  },
999
3803
  "default": "''",
1000
- "description": "The default value of the form control. Primarily used for resetting the form control."
3804
+ "description": "The current value of the textarea, submitted as a name/value pair with form data.",
3805
+ "attribute": "value"
1001
3806
  },
1002
3807
  {
1003
3808
  "kind": "field",
@@ -1006,7 +3811,7 @@
1006
3811
  "text": "'small' | 'medium' | 'large'"
1007
3812
  },
1008
3813
  "default": "'medium'",
1009
- "description": "The input's size.",
3814
+ "description": "The textarea's size.",
1010
3815
  "attribute": "size",
1011
3816
  "reflects": true
1012
3817
  },
@@ -1017,7 +3822,7 @@
1017
3822
  "text": "string"
1018
3823
  },
1019
3824
  "default": "''",
1020
- "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
3825
+ "description": "The textarea's label. If you need to display HTML, use the `label` slot instead.",
1021
3826
  "attribute": "label"
1022
3827
  },
1023
3828
  {
@@ -1027,30 +3832,9 @@
1027
3832
  "text": "string"
1028
3833
  },
1029
3834
  "default": "''",
1030
- "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
3835
+ "description": "The textarea's help text. If you need to display HTML, use the `help-text` slot instead.",
1031
3836
  "attribute": "help-text"
1032
3837
  },
1033
- {
1034
- "kind": "field",
1035
- "name": "clearable",
1036
- "type": {
1037
- "text": "boolean"
1038
- },
1039
- "default": "false",
1040
- "description": "Adds a clear button when the input is not empty.",
1041
- "attribute": "clearable"
1042
- },
1043
- {
1044
- "kind": "field",
1045
- "name": "disabled",
1046
- "type": {
1047
- "text": "boolean"
1048
- },
1049
- "default": "false",
1050
- "description": "Disables the input.",
1051
- "attribute": "disabled",
1052
- "reflects": true
1053
- },
1054
3838
  {
1055
3839
  "kind": "field",
1056
3840
  "name": "placeholder",
@@ -1063,44 +3847,45 @@
1063
3847
  },
1064
3848
  {
1065
3849
  "kind": "field",
1066
- "name": "readonly",
3850
+ "name": "rows",
1067
3851
  "type": {
1068
- "text": "boolean"
3852
+ "text": "number"
1069
3853
  },
1070
- "default": "false",
1071
- "description": "Makes the input readonly.",
1072
- "attribute": "readonly",
1073
- "reflects": true
3854
+ "default": "4",
3855
+ "description": "The number of rows to display by default.",
3856
+ "attribute": "rows"
1074
3857
  },
1075
3858
  {
1076
3859
  "kind": "field",
1077
- "name": "passwordToggle",
3860
+ "name": "resize",
1078
3861
  "type": {
1079
- "text": "boolean"
3862
+ "text": "'none' | 'vertical' | 'auto'"
1080
3863
  },
1081
- "default": "false",
1082
- "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
1083
- "attribute": "password-toggle"
3864
+ "default": "'vertical'",
3865
+ "description": "Controls how the textarea can be resized.",
3866
+ "attribute": "resize"
1084
3867
  },
1085
3868
  {
1086
3869
  "kind": "field",
1087
- "name": "passwordVisible",
3870
+ "name": "disabled",
1088
3871
  "type": {
1089
3872
  "text": "boolean"
1090
3873
  },
1091
3874
  "default": "false",
1092
- "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
1093
- "attribute": "password-visible"
3875
+ "description": "Disables the textarea.",
3876
+ "attribute": "disabled",
3877
+ "reflects": true
1094
3878
  },
1095
3879
  {
1096
3880
  "kind": "field",
1097
- "name": "noSpinButtons",
3881
+ "name": "readonly",
1098
3882
  "type": {
1099
3883
  "text": "boolean"
1100
3884
  },
1101
3885
  "default": "false",
1102
- "description": "Hides the browser's built-in increment/decrement spin buttons for number inputs.",
1103
- "attribute": "no-spin-buttons"
3886
+ "description": "Makes the textarea readonly.",
3887
+ "attribute": "readonly",
3888
+ "reflects": true
1104
3889
  },
1105
3890
  {
1106
3891
  "kind": "field",
@@ -1120,19 +3905,10 @@
1120
3905
  "text": "boolean"
1121
3906
  },
1122
3907
  "default": "false",
1123
- "description": "Makes the input a required field.",
3908
+ "description": "Makes the textarea a required field.",
1124
3909
  "attribute": "required",
1125
3910
  "reflects": true
1126
3911
  },
1127
- {
1128
- "kind": "field",
1129
- "name": "pattern",
1130
- "type": {
1131
- "text": "string"
1132
- },
1133
- "description": "A regular expression pattern to validate input against.",
1134
- "attribute": "pattern"
1135
- },
1136
3912
  {
1137
3913
  "kind": "field",
1138
3914
  "name": "minlength",
@@ -1140,43 +3916,16 @@
1140
3916
  "text": "number"
1141
3917
  },
1142
3918
  "description": "The minimum length of input that will be considered valid.",
1143
- "attribute": "minlength"
1144
- },
1145
- {
1146
- "kind": "field",
1147
- "name": "maxlength",
1148
- "type": {
1149
- "text": "number"
1150
- },
1151
- "description": "The maximum length of input that will be considered valid.",
1152
- "attribute": "maxlength"
1153
- },
1154
- {
1155
- "kind": "field",
1156
- "name": "min",
1157
- "type": {
1158
- "text": "number | string"
1159
- },
1160
- "description": "The input's minimum value. Only applies to date and number input types.",
1161
- "attribute": "min"
1162
- },
1163
- {
1164
- "kind": "field",
1165
- "name": "max",
1166
- "type": {
1167
- "text": "number | string"
1168
- },
1169
- "description": "The input's maximum value. Only applies to date and number input types.",
1170
- "attribute": "max"
3919
+ "attribute": "minlength"
1171
3920
  },
1172
3921
  {
1173
3922
  "kind": "field",
1174
- "name": "step",
3923
+ "name": "maxlength",
1175
3924
  "type": {
1176
- "text": "number | 'any'"
3925
+ "text": "number"
1177
3926
  },
1178
- "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.",
1179
- "attribute": "step"
3927
+ "description": "The maximum length of input that will be considered valid.",
3928
+ "attribute": "maxlength"
1180
3929
  },
1181
3930
  {
1182
3931
  "kind": "field",
@@ -1191,7 +3940,7 @@
1191
3940
  "kind": "field",
1192
3941
  "name": "autocorrect",
1193
3942
  "type": {
1194
- "text": "'off' | 'on'"
3943
+ "text": "string"
1195
3944
  },
1196
3945
  "description": "Indicates whether the browser's autocorrect feature is on or off.",
1197
3946
  "attribute": "autocorrect"
@@ -1230,7 +3979,7 @@
1230
3979
  "text": "boolean"
1231
3980
  },
1232
3981
  "default": "true",
1233
- "description": "Enables spell checking on the input.",
3982
+ "description": "Enables spell checking on the textarea.",
1234
3983
  "attribute": "spellcheck"
1235
3984
  },
1236
3985
  {
@@ -1244,13 +3993,12 @@
1244
3993
  },
1245
3994
  {
1246
3995
  "kind": "field",
1247
- "name": "valueAsDate",
1248
- "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."
1249
- },
1250
- {
1251
- "kind": "field",
1252
- "name": "valueAsNumber",
1253
- "description": "Gets or sets the current value as a number. Returns `NaN` if the value can't be converted."
3996
+ "name": "defaultValue",
3997
+ "type": {
3998
+ "text": "string"
3999
+ },
4000
+ "default": "''",
4001
+ "description": "The default value of the form control. Primarily used for resetting the form control."
1254
4002
  },
1255
4003
  {
1256
4004
  "kind": "field",
@@ -1274,19 +4022,6 @@
1274
4022
  "name": "handleChange",
1275
4023
  "privacy": "private"
1276
4024
  },
1277
- {
1278
- "kind": "method",
1279
- "name": "handleClearClick",
1280
- "privacy": "private",
1281
- "parameters": [
1282
- {
1283
- "name": "event",
1284
- "type": {
1285
- "text": "MouseEvent"
1286
- }
1287
- }
1288
- ]
1289
- },
1290
4025
  {
1291
4026
  "kind": "method",
1292
4027
  "name": "handleFocus",
@@ -1312,20 +4047,7 @@
1312
4047
  },
1313
4048
  {
1314
4049
  "kind": "method",
1315
- "name": "handleKeyDown",
1316
- "privacy": "private",
1317
- "parameters": [
1318
- {
1319
- "name": "event",
1320
- "type": {
1321
- "text": "KeyboardEvent"
1322
- }
1323
- }
1324
- ]
1325
- },
1326
- {
1327
- "kind": "method",
1328
- "name": "handlePasswordToggle",
4050
+ "name": "setTextareaHeight",
1329
4051
  "privacy": "private"
1330
4052
  },
1331
4053
  {
@@ -1334,7 +4056,7 @@
1334
4056
  },
1335
4057
  {
1336
4058
  "kind": "method",
1337
- "name": "handleStepChange"
4059
+ "name": "handleRowsChange"
1338
4060
  },
1339
4061
  {
1340
4062
  "kind": "method",
@@ -1352,17 +4074,36 @@
1352
4074
  }
1353
4075
  }
1354
4076
  ],
1355
- "description": "Sets focus on the input."
4077
+ "description": "Sets focus on the textarea."
1356
4078
  },
1357
4079
  {
1358
4080
  "kind": "method",
1359
4081
  "name": "blur",
1360
- "description": "Removes focus from the input."
4082
+ "description": "Removes focus from the textarea."
1361
4083
  },
1362
4084
  {
1363
4085
  "kind": "method",
1364
4086
  "name": "select",
1365
- "description": "Selects all the text in the input."
4087
+ "description": "Selects all the text in the textarea."
4088
+ },
4089
+ {
4090
+ "kind": "method",
4091
+ "name": "scrollPosition",
4092
+ "return": {
4093
+ "type": {
4094
+ "text": "{ top: number; left: number } | undefined"
4095
+ }
4096
+ },
4097
+ "parameters": [
4098
+ {
4099
+ "name": "position",
4100
+ "optional": true,
4101
+ "type": {
4102
+ "text": "{ top?: number; left?: number }"
4103
+ }
4104
+ }
4105
+ ],
4106
+ "description": "Gets or sets the textarea's scroll position."
1366
4107
  },
1367
4108
  {
1368
4109
  "kind": "method",
@@ -1424,21 +4165,6 @@
1424
4165
  ],
1425
4166
  "description": "Replaces a range of text with a new string."
1426
4167
  },
1427
- {
1428
- "kind": "method",
1429
- "name": "showPicker",
1430
- "description": "Displays the browser picker for an input element (only works if the browser supports it for the input type)."
1431
- },
1432
- {
1433
- "kind": "method",
1434
- "name": "stepUp",
1435
- "description": "Increments the value of a numeric input type by the value of the step attribute."
1436
- },
1437
- {
1438
- "kind": "method",
1439
- "name": "stepDown",
1440
- "description": "Decrements the value of a numeric input type by the value of the step attribute."
1441
- },
1442
4168
  {
1443
4169
  "kind": "method",
1444
4170
  "name": "checkValidity",
@@ -1486,12 +4212,6 @@
1486
4212
  "reactName": "onSynChange",
1487
4213
  "eventName": "SynChangeEvent"
1488
4214
  },
1489
- {
1490
- "description": "Emitted when the clear button is activated.",
1491
- "name": "syn-clear",
1492
- "reactName": "onSynClear",
1493
- "eventName": "SynClearEvent"
1494
- },
1495
4215
  {
1496
4216
  "description": "Emitted when the control gains focus.",
1497
4217
  "name": "syn-focus",
@@ -1520,22 +4240,13 @@
1520
4240
  "default": "''",
1521
4241
  "fieldName": "title"
1522
4242
  },
1523
- {
1524
- "name": "type",
1525
- "type": {
1526
- "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
1527
- },
1528
- "default": "'text'",
1529
- "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
1530
- "fieldName": "type"
1531
- },
1532
4243
  {
1533
4244
  "name": "name",
1534
4245
  "type": {
1535
4246
  "text": "string"
1536
4247
  },
1537
4248
  "default": "''",
1538
- "description": "The name of the input, submitted as a name/value pair with form data.",
4249
+ "description": "The name of the textarea, submitted as a name/value pair with form data.",
1539
4250
  "fieldName": "name"
1540
4251
  },
1541
4252
  {
@@ -1544,7 +4255,7 @@
1544
4255
  "text": "string"
1545
4256
  },
1546
4257
  "default": "''",
1547
- "description": "The current value of the input, submitted as a name/value pair with form data.",
4258
+ "description": "The current value of the textarea, submitted as a name/value pair with form data.",
1548
4259
  "fieldName": "value"
1549
4260
  },
1550
4261
  {
@@ -1553,7 +4264,7 @@
1553
4264
  "text": "'small' | 'medium' | 'large'"
1554
4265
  },
1555
4266
  "default": "'medium'",
1556
- "description": "The input's size.",
4267
+ "description": "The textarea's size.",
1557
4268
  "fieldName": "size"
1558
4269
  },
1559
4270
  {
@@ -1562,7 +4273,7 @@
1562
4273
  "text": "string"
1563
4274
  },
1564
4275
  "default": "''",
1565
- "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
4276
+ "description": "The textarea's label. If you need to display HTML, use the `label` slot instead.",
1566
4277
  "fieldName": "label"
1567
4278
  },
1568
4279
  {
@@ -1571,27 +4282,9 @@
1571
4282
  "text": "string"
1572
4283
  },
1573
4284
  "default": "''",
1574
- "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
4285
+ "description": "The textarea's help text. If you need to display HTML, use the `help-text` slot instead.",
1575
4286
  "fieldName": "helpText"
1576
4287
  },
1577
- {
1578
- "name": "clearable",
1579
- "type": {
1580
- "text": "boolean"
1581
- },
1582
- "default": "false",
1583
- "description": "Adds a clear button when the input is not empty.",
1584
- "fieldName": "clearable"
1585
- },
1586
- {
1587
- "name": "disabled",
1588
- "type": {
1589
- "text": "boolean"
1590
- },
1591
- "default": "false",
1592
- "description": "Disables the input.",
1593
- "fieldName": "disabled"
1594
- },
1595
4288
  {
1596
4289
  "name": "placeholder",
1597
4290
  "type": {
@@ -1602,40 +4295,40 @@
1602
4295
  "fieldName": "placeholder"
1603
4296
  },
1604
4297
  {
1605
- "name": "readonly",
4298
+ "name": "rows",
1606
4299
  "type": {
1607
- "text": "boolean"
4300
+ "text": "number"
1608
4301
  },
1609
- "default": "false",
1610
- "description": "Makes the input readonly.",
1611
- "fieldName": "readonly"
4302
+ "default": "4",
4303
+ "description": "The number of rows to display by default.",
4304
+ "fieldName": "rows"
1612
4305
  },
1613
4306
  {
1614
- "name": "password-toggle",
4307
+ "name": "resize",
1615
4308
  "type": {
1616
- "text": "boolean"
4309
+ "text": "'none' | 'vertical' | 'auto'"
1617
4310
  },
1618
- "default": "false",
1619
- "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
1620
- "fieldName": "passwordToggle"
4311
+ "default": "'vertical'",
4312
+ "description": "Controls how the textarea can be resized.",
4313
+ "fieldName": "resize"
1621
4314
  },
1622
4315
  {
1623
- "name": "password-visible",
4316
+ "name": "disabled",
1624
4317
  "type": {
1625
4318
  "text": "boolean"
1626
4319
  },
1627
4320
  "default": "false",
1628
- "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
1629
- "fieldName": "passwordVisible"
4321
+ "description": "Disables the textarea.",
4322
+ "fieldName": "disabled"
1630
4323
  },
1631
4324
  {
1632
- "name": "no-spin-buttons",
4325
+ "name": "readonly",
1633
4326
  "type": {
1634
4327
  "text": "boolean"
1635
4328
  },
1636
4329
  "default": "false",
1637
- "description": "Hides the browser's built-in increment/decrement spin buttons for number inputs.",
1638
- "fieldName": "noSpinButtons"
4330
+ "description": "Makes the textarea readonly.",
4331
+ "fieldName": "readonly"
1639
4332
  },
1640
4333
  {
1641
4334
  "name": "form",
@@ -1652,17 +4345,9 @@
1652
4345
  "text": "boolean"
1653
4346
  },
1654
4347
  "default": "false",
1655
- "description": "Makes the input a required field.",
4348
+ "description": "Makes the textarea a required field.",
1656
4349
  "fieldName": "required"
1657
4350
  },
1658
- {
1659
- "name": "pattern",
1660
- "type": {
1661
- "text": "string"
1662
- },
1663
- "description": "A regular expression pattern to validate input against.",
1664
- "fieldName": "pattern"
1665
- },
1666
4351
  {
1667
4352
  "name": "minlength",
1668
4353
  "type": {
@@ -1679,30 +4364,6 @@
1679
4364
  "description": "The maximum length of input that will be considered valid.",
1680
4365
  "fieldName": "maxlength"
1681
4366
  },
1682
- {
1683
- "name": "min",
1684
- "type": {
1685
- "text": "number | string"
1686
- },
1687
- "description": "The input's minimum value. Only applies to date and number input types.",
1688
- "fieldName": "min"
1689
- },
1690
- {
1691
- "name": "max",
1692
- "type": {
1693
- "text": "number | string"
1694
- },
1695
- "description": "The input's maximum value. Only applies to date and number input types.",
1696
- "fieldName": "max"
1697
- },
1698
- {
1699
- "name": "step",
1700
- "type": {
1701
- "text": "number | 'any'"
1702
- },
1703
- "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.",
1704
- "fieldName": "step"
1705
- },
1706
4367
  {
1707
4368
  "name": "autocapitalize",
1708
4369
  "type": {
@@ -1714,7 +4375,7 @@
1714
4375
  {
1715
4376
  "name": "autocorrect",
1716
4377
  "type": {
1717
- "text": "'off' | 'on'"
4378
+ "text": "string"
1718
4379
  },
1719
4380
  "description": "Indicates whether the browser's autocorrect feature is on or off.",
1720
4381
  "fieldName": "autocorrect"
@@ -1749,7 +4410,7 @@
1749
4410
  "text": "boolean"
1750
4411
  },
1751
4412
  "default": "true",
1752
- "description": "Enables spell checking on the input.",
4413
+ "description": "Enables spell checking on the textarea.",
1753
4414
  "fieldName": "spellcheck"
1754
4415
  },
1755
4416
  {
@@ -1765,81 +4426,12 @@
1765
4426
  "name": "SynergyElement",
1766
4427
  "module": "/src/internal/synergy-element.js"
1767
4428
  },
1768
- "summary": "Inputs collect data from the user.",
1769
- "tagNameWithoutPrefix": "input",
1770
- "tagName": "syn-input",
1771
- "customElement": true,
1772
- "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 *\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 *\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 */",
1773
- "documentation": "https://synergy.style/components/input",
1774
- "status": "stable",
1775
- "since": "2.0",
1776
- "dependencies": [
1777
- "syn-icon"
1778
- ]
1779
- }
1780
- ],
1781
- "exports": [
1782
- {
1783
- "kind": "js",
1784
- "name": "default",
1785
- "declaration": {
1786
- "name": "SynInput",
1787
- "module": "components/input/input.js"
1788
- }
1789
- }
1790
- ]
1791
- },
1792
- {
1793
- "kind": "javascript-module",
1794
- "path": "components/spinner/spinner.js",
1795
- "declarations": [
1796
- {
1797
- "kind": "class",
1798
- "description": "",
1799
- "name": "SynSpinner",
1800
- "cssProperties": [
1801
- {
1802
- "description": "The width of the track.",
1803
- "name": "--track-width"
1804
- },
1805
- {
1806
- "description": "The color of the track.",
1807
- "name": "--track-color"
1808
- },
1809
- {
1810
- "description": "The color of the spinner's indicator.",
1811
- "name": "--indicator-color"
1812
- },
1813
- {
1814
- "description": "The time it takes for the spinner to complete one animation cycle.",
1815
- "name": "--speed"
1816
- }
1817
- ],
1818
- "cssParts": [
1819
- {
1820
- "description": "The component's base wrapper.",
1821
- "name": "base"
1822
- }
1823
- ],
1824
- "members": [
1825
- {
1826
- "kind": "field",
1827
- "name": "localize",
1828
- "privacy": "private",
1829
- "readonly": true,
1830
- "default": "new LocalizeController(this)"
1831
- }
1832
- ],
1833
- "superclass": {
1834
- "name": "SynergyElement",
1835
- "module": "/src/internal/synergy-element.js"
1836
- },
1837
- "summary": "Spinners are used to show the progress of an indeterminate operation.",
1838
- "tagNameWithoutPrefix": "spinner",
1839
- "tagName": "syn-spinner",
4429
+ "summary": "Textareas collect data from the user and allow multiple lines of text.",
4430
+ "tagNameWithoutPrefix": "textarea",
4431
+ "tagName": "syn-textarea",
1840
4432
  "customElement": true,
1841
- "jsDoc": "/**\n * @summary Spinners are used to show the progress of an indeterminate operation.\n * @documentation https://synergy.style/components/spinner\n * @status stable\n * @since 2.0\n *\n * @csspart base - The component's base wrapper.\n *\n * @cssproperty --track-width - The width of the track.\n * @cssproperty --track-color - The color of the track.\n * @cssproperty --indicator-color - The color of the spinner's indicator.\n * @cssproperty --speed - The time it takes for the spinner to complete one animation cycle.\n */",
1842
- "documentation": "https://synergy.style/components/spinner",
4433
+ "jsDoc": "/**\n * @summary Textareas collect data from the user and allow multiple lines of text.\n * @documentation https://synergy.style/components/textarea\n * @status stable\n * @since 2.0\n *\n * @slot label - The textarea's label. Alternatively, you can use the `label` attribute.\n * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.\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-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 textarea - The internal `<textarea>` control.\n */",
4434
+ "documentation": "https://synergy.style/components/textarea",
1843
4435
  "status": "stable",
1844
4436
  "since": "2.0"
1845
4437
  }
@@ -1849,8 +4441,8 @@
1849
4441
  "kind": "js",
1850
4442
  "name": "default",
1851
4443
  "declaration": {
1852
- "name": "SynSpinner",
1853
- "module": "components/spinner/spinner.js"
4444
+ "name": "SynTextarea",
4445
+ "module": "components/textarea/textarea.js"
1854
4446
  }
1855
4447
  }
1856
4448
  ]
@@ -1859,12 +4451,12 @@
1859
4451
  "package": {
1860
4452
  "name": "@synergy-design-system/components",
1861
4453
  "description": "",
1862
- "version": "1.0.0-main.8",
4454
+ "version": "1.0.0",
1863
4455
  "author": {
1864
4456
  "name": "SICK Global UX Foundation",
1865
4457
  "url": "https://www.sick.com"
1866
4458
  },
1867
- "homepage": "https://github.com/SickDesignSystem/synergy/tree/main/packages/components",
1868
- "license": "ISC"
4459
+ "homepage": "https://github.com/synergy-design-system/synergy-design-system/tree/main/packages/components",
4460
+ "license": "MIT"
1869
4461
  }
1870
4462
  }