@synergy-design-system/components 1.0.0-main.13 → 1.0.0-main.14

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 (127) hide show
  1. package/dist/chunks/{chunk.J44T4LO6.js → chunk.23HTU3YE.js} +4 -4
  2. package/dist/chunks/{chunk.FLF2E2W4.js → chunk.2MPTR6IQ.js} +7 -7
  3. package/dist/chunks/{chunk.MFFJYORB.js → chunk.4CBN5LPQ.js} +4 -4
  4. package/dist/chunks/{chunk.UFEBKPYW.js → chunk.4CPH57PN.js} +2 -2
  5. package/dist/chunks/{chunk.UFEBKPYW.js.map → chunk.4CPH57PN.js.map} +1 -1
  6. package/dist/chunks/chunk.4I6M5V6O.js +56 -0
  7. package/dist/chunks/chunk.4I6M5V6O.js.map +7 -0
  8. package/dist/chunks/{chunk.7QGGFKPO.js → chunk.4OPZ7M2M.js} +8 -8
  9. package/dist/chunks/chunk.4ZURABYO.js +24 -0
  10. package/dist/chunks/chunk.4ZURABYO.js.map +7 -0
  11. package/dist/chunks/{chunk.SQTGI355.js → chunk.7UOMTJPT.js} +8 -8
  12. package/dist/chunks/{chunk.MMNWMRST.js → chunk.AULPKG2K.js} +2 -2
  13. package/dist/chunks/chunk.F4MRQLNL.js +25 -0
  14. package/dist/chunks/chunk.F4MRQLNL.js.map +7 -0
  15. package/dist/chunks/chunk.FOASOAQU.js +12 -0
  16. package/dist/chunks/chunk.FOASOAQU.js.map +7 -0
  17. package/dist/chunks/chunk.FUY24CRJ.js +127 -0
  18. package/dist/chunks/chunk.FUY24CRJ.js.map +7 -0
  19. package/dist/chunks/chunk.FVF5BUAX.js +86 -0
  20. package/dist/chunks/chunk.FVF5BUAX.js.map +7 -0
  21. package/dist/chunks/{chunk.LJVC6UEV.js → chunk.JBK2MO2R.js} +7 -7
  22. package/dist/chunks/chunk.JBYBQ5TQ.js +132 -0
  23. package/dist/chunks/chunk.JBYBQ5TQ.js.map +7 -0
  24. package/dist/chunks/{chunk.VNC7HKGP.js → chunk.JHXCBOUD.js} +2 -2
  25. package/dist/chunks/{chunk.VNC7HKGP.js.map → chunk.JHXCBOUD.js.map} +1 -1
  26. package/dist/chunks/chunk.JVQAUENN.js +351 -0
  27. package/dist/chunks/chunk.JVQAUENN.js.map +7 -0
  28. package/dist/chunks/{chunk.FKB4BI2F.js → chunk.KWKQLGGC.js} +2 -2
  29. package/dist/chunks/{chunk.NXKZDAMQ.js → chunk.LWBUJBAK.js} +2 -2
  30. package/dist/chunks/{chunk.T5JJNDG6.js → chunk.N7RYRY7D.js} +2 -2
  31. package/dist/chunks/{chunk.HOGDOKQS.js → chunk.NUQ6NORO.js} +5 -5
  32. package/dist/chunks/chunk.OVVMSN4D.js +37 -0
  33. package/dist/chunks/chunk.OVVMSN4D.js.map +7 -0
  34. package/dist/chunks/{chunk.WANL6A7U.js → chunk.OXUFFH57.js} +4 -4
  35. package/dist/chunks/{chunk.WDCAHRYG.js → chunk.P2LNG2PZ.js} +4 -2
  36. package/dist/chunks/chunk.PS3OVBUX.js +111 -0
  37. package/dist/chunks/chunk.PS3OVBUX.js.map +7 -0
  38. package/dist/chunks/chunk.Q55ULCHV.js +12 -0
  39. package/dist/chunks/chunk.Q55ULCHV.js.map +7 -0
  40. package/dist/chunks/{chunk.KALIQJUH.js → chunk.USYEVNFG.js} +5 -5
  41. package/dist/chunks/chunk.UYGJ3ZOA.js +12 -0
  42. package/dist/chunks/chunk.UYGJ3ZOA.js.map +7 -0
  43. package/dist/chunks/chunk.V6VND4OF.js +49 -0
  44. package/dist/chunks/chunk.V6VND4OF.js.map +7 -0
  45. package/dist/chunks/{chunk.TKXG7VM3.js → chunk.X3XOXXN3.js} +2 -2
  46. package/dist/chunks/{chunk.WTCUSH7V.js → chunk.Z3RZUTQU.js} +2 -2
  47. package/dist/chunks/chunk.ZXJWGKP4.js +12 -0
  48. package/dist/chunks/chunk.ZXJWGKP4.js.map +7 -0
  49. package/dist/components/button/button.component.js +9 -9
  50. package/dist/components/button/button.js +10 -10
  51. package/dist/components/button-group/button-group.component.d.ts +28 -0
  52. package/dist/components/button-group/button-group.component.js +11 -0
  53. package/dist/components/button-group/button-group.component.js.map +7 -0
  54. package/dist/components/button-group/button-group.d.ts +8 -0
  55. package/dist/components/button-group/button-group.js +12 -0
  56. package/dist/components/button-group/button-group.js.map +7 -0
  57. package/dist/components/button-group/button-group.styles.d.ts +2 -0
  58. package/dist/components/button-group/button-group.styles.js +9 -0
  59. package/dist/components/button-group/button-group.styles.js.map +7 -0
  60. package/dist/components/checkbox/checkbox.component.js +7 -7
  61. package/dist/components/checkbox/checkbox.js +8 -8
  62. package/dist/components/checkbox/checkbox.styles.js +2 -2
  63. package/dist/components/icon/icon.component.js +3 -3
  64. package/dist/components/icon/icon.js +4 -4
  65. package/dist/components/input/input.component.js +8 -8
  66. package/dist/components/input/input.js +9 -9
  67. package/dist/components/input/input.styles.js +2 -2
  68. package/dist/components/radio/radio.component.d.ts +53 -0
  69. package/dist/components/radio/radio.component.js +19 -0
  70. package/dist/components/radio/radio.component.js.map +7 -0
  71. package/dist/components/radio/radio.custom.styles.d.ts +2 -0
  72. package/dist/components/radio/radio.custom.styles.js +8 -0
  73. package/dist/components/radio/radio.custom.styles.js.map +7 -0
  74. package/dist/components/radio/radio.d.ts +8 -0
  75. package/dist/components/radio/radio.js +20 -0
  76. package/dist/components/radio/radio.js.map +7 -0
  77. package/dist/components/radio/radio.styles.d.ts +2 -0
  78. package/dist/components/radio/radio.styles.js +10 -0
  79. package/dist/components/radio/radio.styles.js.map +7 -0
  80. package/dist/components/radio-button/radio-button.component.d.ts +53 -0
  81. package/dist/components/radio-button/radio-button.component.js +15 -0
  82. package/dist/components/radio-button/radio-button.component.js.map +7 -0
  83. package/dist/components/radio-button/radio-button.d.ts +8 -0
  84. package/dist/components/radio-button/radio-button.js +16 -0
  85. package/dist/components/radio-button/radio-button.js.map +7 -0
  86. package/dist/components/radio-button/radio-button.styles.d.ts +2 -0
  87. package/dist/components/radio-button/radio-button.styles.js +11 -0
  88. package/dist/components/radio-button/radio-button.styles.js.map +7 -0
  89. package/dist/components/radio-group/radio-group.component.d.ts +89 -0
  90. package/dist/components/radio-group/radio-group.component.js +18 -0
  91. package/dist/components/radio-group/radio-group.component.js.map +7 -0
  92. package/dist/components/radio-group/radio-group.custom.styles.d.ts +2 -0
  93. package/dist/components/radio-group/radio-group.custom.styles.js +8 -0
  94. package/dist/components/radio-group/radio-group.custom.styles.js.map +7 -0
  95. package/dist/components/radio-group/radio-group.d.ts +8 -0
  96. package/dist/components/radio-group/radio-group.js +19 -0
  97. package/dist/components/radio-group/radio-group.js.map +7 -0
  98. package/dist/components/radio-group/radio-group.styles.d.ts +2 -0
  99. package/dist/components/radio-group/radio-group.styles.js +11 -0
  100. package/dist/components/radio-group/radio-group.styles.js.map +7 -0
  101. package/dist/components/spinner/spinner.component.js +3 -3
  102. package/dist/components/textarea/textarea.component.js +6 -6
  103. package/dist/components/textarea/textarea.js +7 -7
  104. package/dist/components/textarea/textarea.styles.js +2 -2
  105. package/dist/custom-elements.json +1799 -809
  106. package/dist/synergy.d.ts +4 -0
  107. package/dist/synergy.js +53 -27
  108. package/dist/utilities/form.js +2 -2
  109. package/dist/vscode.html-custom-data.json +162 -32
  110. package/dist/web-types.json +363 -72
  111. package/package.json +2 -2
  112. /package/dist/chunks/{chunk.J44T4LO6.js.map → chunk.23HTU3YE.js.map} +0 -0
  113. /package/dist/chunks/{chunk.FLF2E2W4.js.map → chunk.2MPTR6IQ.js.map} +0 -0
  114. /package/dist/chunks/{chunk.MFFJYORB.js.map → chunk.4CBN5LPQ.js.map} +0 -0
  115. /package/dist/chunks/{chunk.7QGGFKPO.js.map → chunk.4OPZ7M2M.js.map} +0 -0
  116. /package/dist/chunks/{chunk.SQTGI355.js.map → chunk.7UOMTJPT.js.map} +0 -0
  117. /package/dist/chunks/{chunk.MMNWMRST.js.map → chunk.AULPKG2K.js.map} +0 -0
  118. /package/dist/chunks/{chunk.LJVC6UEV.js.map → chunk.JBK2MO2R.js.map} +0 -0
  119. /package/dist/chunks/{chunk.FKB4BI2F.js.map → chunk.KWKQLGGC.js.map} +0 -0
  120. /package/dist/chunks/{chunk.NXKZDAMQ.js.map → chunk.LWBUJBAK.js.map} +0 -0
  121. /package/dist/chunks/{chunk.T5JJNDG6.js.map → chunk.N7RYRY7D.js.map} +0 -0
  122. /package/dist/chunks/{chunk.HOGDOKQS.js.map → chunk.NUQ6NORO.js.map} +0 -0
  123. /package/dist/chunks/{chunk.WANL6A7U.js.map → chunk.OXUFFH57.js.map} +0 -0
  124. /package/dist/chunks/{chunk.WDCAHRYG.js.map → chunk.P2LNG2PZ.js.map} +0 -0
  125. /package/dist/chunks/{chunk.KALIQJUH.js.map → chunk.USYEVNFG.js.map} +0 -0
  126. /package/dist/chunks/{chunk.TKXG7VM3.js.map → chunk.X3XOXXN3.js.map} +0 -0
  127. /package/dist/chunks/{chunk.WTCUSH7V.js.map → chunk.Z3RZUTQU.js.map} +0 -0
@@ -616,203 +616,6 @@
616
616
  }
617
617
  ]
618
618
  },
619
- {
620
- "kind": "javascript-module",
621
- "path": "components/icon/icon.js",
622
- "declarations": [
623
- {
624
- "kind": "class",
625
- "description": "",
626
- "name": "SynIcon",
627
- "cssParts": [
628
- {
629
- "description": "The internal SVG element.",
630
- "name": "svg"
631
- },
632
- {
633
- "description": "The <use> element generated when using `spriteSheet: true`",
634
- "name": "use"
635
- }
636
- ],
637
- "members": [
638
- {
639
- "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",
685
- "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
691
- },
692
- {
693
- "kind": "field",
694
- "name": "src",
695
- "type": {
696
- "text": "string | undefined"
697
- },
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"
700
- },
701
- {
702
- "kind": "field",
703
- "name": "label",
704
- "type": {
705
- "text": "string"
706
- },
707
- "default": "''",
708
- "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
709
- "attribute": "label"
710
- },
711
- {
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
721
- },
722
- {
723
- "kind": "method",
724
- "name": "getIconSource",
725
- "privacy": "private",
726
- "return": {
727
- "type": {
728
- "text": "IconSource"
729
- }
730
- }
731
- },
732
- {
733
- "kind": "method",
734
- "name": "handleLabelChange"
735
- },
736
- {
737
- "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"
747
- },
748
- {
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"
753
- }
754
- ],
755
- "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
- {
773
- "name": "label",
774
- "type": {
775
- "text": "string"
776
- },
777
- "default": "''",
778
- "description": "An alternate description to use for assistive devices. If omitted, the icon will be considered presentational and\nignored by assistive devices.",
779
- "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
- }
790
- ],
791
- "superclass": {
792
- "name": "SynergyElement",
793
- "module": "/src/internal/synergy-element.js"
794
- },
795
- "summary": "Icons are symbols that can be used to represent various options within an application.",
796
- "tagNameWithoutPrefix": "icon",
797
- "tagName": "syn-icon",
798
- "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",
801
- "status": "stable",
802
- "since": "2.0"
803
- }
804
- ],
805
- "exports": [
806
- {
807
- "kind": "js",
808
- "name": "default",
809
- "declaration": {
810
- "name": "SynIcon",
811
- "module": "components/icon/icon.js"
812
- }
813
- }
814
- ]
815
- },
816
619
  {
817
620
  "kind": "javascript-module",
818
621
  "path": "components/checkbox/checkbox.js",
@@ -1247,118 +1050,1576 @@
1247
1050
  },
1248
1051
  {
1249
1052
  "kind": "javascript-module",
1250
- "path": "components/input/input.js",
1053
+ "path": "components/button-group/button-group.js",
1251
1054
  "declarations": [
1252
1055
  {
1253
1056
  "kind": "class",
1254
1057
  "description": "",
1255
- "name": "SynInput",
1058
+ "name": "SynButtonGroup",
1256
1059
  "cssParts": [
1257
- {
1258
- "description": "The form control that wraps the label, input, and help text.",
1259
- "name": "form-control"
1260
- },
1261
- {
1262
- "description": "The label's wrapper.",
1263
- "name": "form-control-label"
1264
- },
1265
- {
1266
- "description": "The input's wrapper.",
1267
- "name": "form-control-input"
1268
- },
1269
- {
1270
- "description": "The help text's wrapper.",
1271
- "name": "form-control-help-text"
1272
- },
1273
1060
  {
1274
1061
  "description": "The component's base wrapper.",
1275
1062
  "name": "base"
1276
- },
1277
- {
1278
- "description": "The internal `<input>` control.",
1279
- "name": "input"
1280
- },
1281
- {
1282
- "description": "The container that wraps the prefix.",
1283
- "name": "prefix"
1284
- },
1285
- {
1286
- "description": "The clear button.",
1287
- "name": "clear-button"
1288
- },
1289
- {
1290
- "description": "The password toggle button.",
1291
- "name": "password-toggle-button"
1292
- },
1293
- {
1294
- "description": "The container that wraps the suffix.",
1295
- "name": "suffix"
1296
1063
  }
1297
1064
  ],
1298
1065
  "slots": [
1299
1066
  {
1300
- "description": "The input's label. Alternatively, you can use the `label` attribute.",
1301
- "name": "label"
1302
- },
1067
+ "description": "One or more `<syn-button>` elements to display in the button group.",
1068
+ "name": ""
1069
+ }
1070
+ ],
1071
+ "members": [
1303
1072
  {
1304
- "description": "Used to prepend a presentational icon or similar element to the input.",
1305
- "name": "prefix"
1073
+ "kind": "field",
1074
+ "name": "defaultSlot",
1075
+ "type": {
1076
+ "text": "HTMLSlotElement"
1077
+ }
1306
1078
  },
1307
1079
  {
1308
- "description": "Used to append a presentational icon or similar element to the input.",
1309
- "name": "suffix"
1080
+ "kind": "field",
1081
+ "name": "disableRole",
1082
+ "type": {
1083
+ "text": "boolean"
1084
+ },
1085
+ "default": "false"
1310
1086
  },
1311
1087
  {
1312
- "description": "An icon to use in lieu of the default clear icon.",
1313
- "name": "clear-icon"
1088
+ "kind": "field",
1089
+ "name": "label",
1090
+ "type": {
1091
+ "text": "string"
1092
+ },
1093
+ "default": "''",
1094
+ "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.",
1095
+ "attribute": "label"
1096
+ },
1097
+ {
1098
+ "kind": "method",
1099
+ "name": "handleFocus",
1100
+ "privacy": "private",
1101
+ "parameters": [
1102
+ {
1103
+ "name": "event",
1104
+ "type": {
1105
+ "text": "Event"
1106
+ }
1107
+ }
1108
+ ]
1109
+ },
1110
+ {
1111
+ "kind": "method",
1112
+ "name": "handleBlur",
1113
+ "privacy": "private",
1114
+ "parameters": [
1115
+ {
1116
+ "name": "event",
1117
+ "type": {
1118
+ "text": "Event"
1119
+ }
1120
+ }
1121
+ ]
1122
+ },
1123
+ {
1124
+ "kind": "method",
1125
+ "name": "handleMouseOver",
1126
+ "privacy": "private",
1127
+ "parameters": [
1128
+ {
1129
+ "name": "event",
1130
+ "type": {
1131
+ "text": "Event"
1132
+ }
1133
+ }
1134
+ ]
1135
+ },
1136
+ {
1137
+ "kind": "method",
1138
+ "name": "handleMouseOut",
1139
+ "privacy": "private",
1140
+ "parameters": [
1141
+ {
1142
+ "name": "event",
1143
+ "type": {
1144
+ "text": "Event"
1145
+ }
1146
+ }
1147
+ ]
1148
+ },
1149
+ {
1150
+ "kind": "method",
1151
+ "name": "handleSlotChange",
1152
+ "privacy": "private"
1153
+ }
1154
+ ],
1155
+ "attributes": [
1156
+ {
1157
+ "name": "label",
1158
+ "type": {
1159
+ "text": "string"
1160
+ },
1161
+ "default": "''",
1162
+ "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.",
1163
+ "fieldName": "label"
1164
+ }
1165
+ ],
1166
+ "superclass": {
1167
+ "name": "SynergyElement",
1168
+ "module": "/src/internal/synergy-element.js"
1169
+ },
1170
+ "summary": "Button groups can be used to group related buttons into sections.",
1171
+ "tagNameWithoutPrefix": "button-group",
1172
+ "tagName": "syn-button-group",
1173
+ "customElement": true,
1174
+ "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 */",
1175
+ "documentation": "https://synergy.style/components/button-group",
1176
+ "status": "stable",
1177
+ "since": "2.0"
1178
+ }
1179
+ ],
1180
+ "exports": [
1181
+ {
1182
+ "kind": "js",
1183
+ "name": "default",
1184
+ "declaration": {
1185
+ "name": "SynButtonGroup",
1186
+ "module": "components/button-group/button-group.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"
1314
2309
  },
1315
2310
  {
1316
- "description": "An icon to use in lieu of the default show password icon.",
1317
- "name": "show-password-icon"
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"
1318
2317
  },
1319
2318
  {
1320
- "description": "An icon to use in lieu of the default hide password icon.",
1321
- "name": "hide-password-icon"
2319
+ "name": "spellcheck",
2320
+ "type": {
2321
+ "text": "boolean"
2322
+ },
2323
+ "default": "true",
2324
+ "description": "Enables spell checking on the input.",
2325
+ "fieldName": "spellcheck"
1322
2326
  },
1323
2327
  {
1324
- "description": "Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.",
1325
- "name": "help-text"
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"
1326
2589
  }
1327
2590
  ],
1328
- "members": [
2591
+ "slots": [
1329
2592
  {
1330
- "kind": "field",
1331
- "name": "dependencies",
1332
- "type": {
1333
- "text": "object"
1334
- },
1335
- "static": true,
1336
- "default": "{ 'syn-icon': SynIcon }"
2593
+ "description": "The radio button's label.",
2594
+ "name": ""
1337
2595
  },
1338
2596
  {
1339
- "kind": "field",
1340
- "name": "formControlController",
1341
- "privacy": "private",
1342
- "readonly": true,
1343
- "default": "new FormControlController(this, {\n assumeInteractionOn: ['syn-blur', 'syn-input']\n })"
2597
+ "description": "A presentational prefix icon or similar element.",
2598
+ "name": "prefix"
1344
2599
  },
2600
+ {
2601
+ "description": "A presentational suffix icon or similar element.",
2602
+ "name": "suffix"
2603
+ }
2604
+ ],
2605
+ "members": [
1345
2606
  {
1346
2607
  "kind": "field",
1347
2608
  "name": "hasSlotController",
1348
2609
  "privacy": "private",
1349
2610
  "readonly": true,
1350
- "default": "new HasSlotController(this, 'help-text', 'label', 'prefix', 'suffix')"
2611
+ "default": "new HasSlotController(this, '[default]', 'prefix', 'suffix')"
1351
2612
  },
1352
2613
  {
1353
2614
  "kind": "field",
1354
- "name": "localize",
1355
- "privacy": "private",
1356
- "readonly": true,
1357
- "default": "new LocalizeController(this)"
2615
+ "name": "input",
2616
+ "type": {
2617
+ "text": "HTMLInputElement"
2618
+ }
1358
2619
  },
1359
2620
  {
1360
2621
  "kind": "field",
1361
- "name": "input",
2622
+ "name": "hiddenInput",
1362
2623
  "type": {
1363
2624
  "text": "HTMLInputElement"
1364
2625
  }
@@ -1369,67 +2630,28 @@
1369
2630
  "type": {
1370
2631
  "text": "boolean"
1371
2632
  },
1372
- "privacy": "private",
2633
+ "privacy": "protected",
1373
2634
  "default": "false"
1374
2635
  },
1375
- {
1376
- "kind": "field",
1377
- "name": "title",
1378
- "type": {
1379
- "text": "string"
1380
- },
1381
- "default": "''",
1382
- "attribute": "title"
1383
- },
1384
- {
1385
- "kind": "field",
1386
- "name": "__numberInput",
1387
- "privacy": "private"
1388
- },
1389
- {
1390
- "kind": "field",
1391
- "name": "__dateInput",
1392
- "privacy": "private"
1393
- },
1394
- {
1395
- "kind": "field",
1396
- "name": "type",
1397
- "type": {
1398
- "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
1399
- },
1400
- "default": "'text'",
1401
- "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
1402
- "attribute": "type",
1403
- "reflects": true
1404
- },
1405
- {
1406
- "kind": "field",
1407
- "name": "name",
1408
- "type": {
1409
- "text": "string"
1410
- },
1411
- "default": "''",
1412
- "description": "The name of the input, submitted as a name/value pair with form data.",
1413
- "attribute": "name"
1414
- },
1415
2636
  {
1416
2637
  "kind": "field",
1417
2638
  "name": "value",
1418
2639
  "type": {
1419
2640
  "text": "string"
1420
2641
  },
1421
- "default": "''",
1422
- "description": "The current value of the input, submitted as a name/value pair with form data.",
2642
+ "description": "The radio's value. When selected, the radio group will receive this value.",
1423
2643
  "attribute": "value"
1424
2644
  },
1425
2645
  {
1426
2646
  "kind": "field",
1427
- "name": "defaultValue",
2647
+ "name": "disabled",
1428
2648
  "type": {
1429
- "text": "string"
2649
+ "text": "boolean"
1430
2650
  },
1431
- "default": "''",
1432
- "description": "The default value of the form control. Primarily used for resetting the form control."
2651
+ "default": "false",
2652
+ "description": "Disables the radio button.",
2653
+ "attribute": "disabled",
2654
+ "reflects": true
1433
2655
  },
1434
2656
  {
1435
2657
  "kind": "field",
@@ -1438,251 +2660,322 @@
1438
2660
  "text": "'small' | 'medium' | 'large'"
1439
2661
  },
1440
2662
  "default": "'medium'",
1441
- "description": "The input's size.",
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.",
1442
2664
  "attribute": "size",
1443
2665
  "reflects": true
1444
2666
  },
1445
2667
  {
1446
- "kind": "field",
1447
- "name": "label",
1448
- "type": {
1449
- "text": "string"
1450
- },
1451
- "default": "''",
1452
- "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
1453
- "attribute": "label"
2668
+ "kind": "method",
2669
+ "name": "handleBlur",
2670
+ "privacy": "private"
1454
2671
  },
1455
2672
  {
1456
- "kind": "field",
1457
- "name": "helpText",
1458
- "type": {
1459
- "text": "string"
1460
- },
1461
- "default": "''",
1462
- "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
1463
- "attribute": "help-text"
2673
+ "kind": "method",
2674
+ "name": "handleClick",
2675
+ "privacy": "private",
2676
+ "parameters": [
2677
+ {
2678
+ "name": "e",
2679
+ "type": {
2680
+ "text": "MouseEvent"
2681
+ }
2682
+ }
2683
+ ]
1464
2684
  },
1465
2685
  {
1466
- "kind": "field",
1467
- "name": "clearable",
1468
- "type": {
1469
- "text": "boolean"
1470
- },
1471
- "default": "false",
1472
- "description": "Adds a clear button when the input is not empty.",
1473
- "attribute": "clearable"
2686
+ "kind": "method",
2687
+ "name": "handleFocus",
2688
+ "privacy": "private"
1474
2689
  },
1475
2690
  {
1476
- "kind": "field",
1477
- "name": "disabled",
1478
- "type": {
1479
- "text": "boolean"
1480
- },
1481
- "default": "false",
1482
- "description": "Disables the input.",
1483
- "attribute": "disabled",
1484
- "reflects": true
2691
+ "kind": "method",
2692
+ "name": "handleDisabledChange"
1485
2693
  },
1486
2694
  {
1487
- "kind": "field",
1488
- "name": "placeholder",
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",
1489
2731
  "type": {
1490
2732
  "text": "string"
1491
2733
  },
1492
- "default": "''",
1493
- "description": "Placeholder text to show as a hint when the input is empty.",
1494
- "attribute": "placeholder"
2734
+ "description": "The radio's value. When selected, the radio group will receive this value.",
2735
+ "fieldName": "value"
1495
2736
  },
1496
2737
  {
1497
- "kind": "field",
1498
- "name": "readonly",
2738
+ "name": "disabled",
1499
2739
  "type": {
1500
2740
  "text": "boolean"
1501
2741
  },
1502
2742
  "default": "false",
1503
- "description": "Makes the input readonly.",
1504
- "attribute": "readonly",
1505
- "reflects": true
2743
+ "description": "Disables the radio button.",
2744
+ "fieldName": "disabled"
1506
2745
  },
1507
2746
  {
1508
- "kind": "field",
1509
- "name": "passwordToggle",
2747
+ "name": "size",
1510
2748
  "type": {
1511
- "text": "boolean"
2749
+ "text": "'small' | 'medium' | 'large'"
1512
2750
  },
1513
- "default": "false",
1514
- "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
1515
- "attribute": "password-toggle"
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"
1516
2793
  },
1517
2794
  {
1518
- "kind": "field",
1519
- "name": "passwordVisible",
1520
- "type": {
1521
- "text": "boolean"
1522
- },
1523
- "default": "false",
1524
- "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
1525
- "attribute": "password-visible"
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": ""
1526
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": [
1527
2826
  {
1528
2827
  "kind": "field",
1529
- "name": "noSpinButtons",
2828
+ "name": "dependencies",
1530
2829
  "type": {
1531
- "text": "boolean"
2830
+ "text": "object"
1532
2831
  },
1533
- "default": "false",
1534
- "description": "Hides the browser's built-in increment/decrement spin buttons for number inputs.",
1535
- "attribute": "no-spin-buttons"
2832
+ "static": true,
2833
+ "default": "{ 'syn-button-group': SynButtonGroup }"
1536
2834
  },
1537
2835
  {
1538
2836
  "kind": "field",
1539
- "name": "form",
1540
- "type": {
1541
- "text": "string"
1542
- },
1543
- "default": "''",
1544
- "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.",
1545
- "attribute": "form",
1546
- "reflects": true
2837
+ "name": "formControlController",
2838
+ "privacy": "protected",
2839
+ "readonly": true,
2840
+ "default": "new FormControlController(this)"
1547
2841
  },
1548
2842
  {
1549
2843
  "kind": "field",
1550
- "name": "required",
1551
- "type": {
1552
- "text": "boolean"
1553
- },
1554
- "default": "false",
1555
- "description": "Makes the input a required field.",
1556
- "attribute": "required",
1557
- "reflects": true
2844
+ "name": "hasSlotController",
2845
+ "privacy": "private",
2846
+ "readonly": true,
2847
+ "default": "new HasSlotController(this, 'help-text', 'label')"
1558
2848
  },
1559
2849
  {
1560
2850
  "kind": "field",
1561
- "name": "pattern",
2851
+ "name": "customValidityMessage",
1562
2852
  "type": {
1563
2853
  "text": "string"
1564
2854
  },
1565
- "description": "A regular expression pattern to validate input against.",
1566
- "attribute": "pattern"
2855
+ "privacy": "private",
2856
+ "default": "''"
1567
2857
  },
1568
2858
  {
1569
2859
  "kind": "field",
1570
- "name": "minlength",
2860
+ "name": "validationTimeout",
1571
2861
  "type": {
1572
2862
  "text": "number"
1573
2863
  },
1574
- "description": "The minimum length of input that will be considered valid.",
1575
- "attribute": "minlength"
2864
+ "privacy": "private"
1576
2865
  },
1577
2866
  {
1578
2867
  "kind": "field",
1579
- "name": "maxlength",
2868
+ "name": "defaultSlot",
1580
2869
  "type": {
1581
- "text": "number"
1582
- },
1583
- "description": "The maximum length of input that will be considered valid.",
1584
- "attribute": "maxlength"
2870
+ "text": "HTMLSlotElement"
2871
+ }
1585
2872
  },
1586
2873
  {
1587
2874
  "kind": "field",
1588
- "name": "min",
2875
+ "name": "validationInput",
1589
2876
  "type": {
1590
- "text": "number | string"
1591
- },
1592
- "description": "The input's minimum value. Only applies to date and number input types.",
1593
- "attribute": "min"
2877
+ "text": "HTMLInputElement"
2878
+ }
1594
2879
  },
1595
2880
  {
1596
2881
  "kind": "field",
1597
- "name": "max",
2882
+ "name": "hasButtonGroup",
1598
2883
  "type": {
1599
- "text": "number | string"
2884
+ "text": "boolean"
1600
2885
  },
1601
- "description": "The input's maximum value. Only applies to date and number input types.",
1602
- "attribute": "max"
2886
+ "privacy": "private",
2887
+ "default": "false"
1603
2888
  },
1604
2889
  {
1605
2890
  "kind": "field",
1606
- "name": "step",
2891
+ "name": "errorMessage",
1607
2892
  "type": {
1608
- "text": "number | 'any'"
2893
+ "text": "string"
1609
2894
  },
1610
- "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.",
1611
- "attribute": "step"
2895
+ "privacy": "private",
2896
+ "default": "''"
1612
2897
  },
1613
2898
  {
1614
2899
  "kind": "field",
1615
- "name": "autocapitalize",
2900
+ "name": "defaultValue",
1616
2901
  "type": {
1617
- "text": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
2902
+ "text": "string"
1618
2903
  },
1619
- "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
1620
- "attribute": "autocapitalize"
2904
+ "default": "''"
1621
2905
  },
1622
2906
  {
1623
2907
  "kind": "field",
1624
- "name": "autocorrect",
2908
+ "name": "label",
1625
2909
  "type": {
1626
- "text": "'off' | 'on'"
2910
+ "text": "string"
1627
2911
  },
1628
- "description": "Indicates whether the browser's autocorrect feature is on or off.",
1629
- "attribute": "autocorrect"
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"
1630
2915
  },
1631
2916
  {
1632
2917
  "kind": "field",
1633
- "name": "autocomplete",
2918
+ "name": "helpText",
1634
2919
  "type": {
1635
2920
  "text": "string"
1636
2921
  },
1637
- "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.",
1638
- "attribute": "autocomplete"
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"
1639
2925
  },
1640
2926
  {
1641
2927
  "kind": "field",
1642
- "name": "autofocus",
2928
+ "name": "name",
1643
2929
  "type": {
1644
- "text": "boolean"
2930
+ "text": "string"
1645
2931
  },
1646
- "description": "Indicates that the input should receive focus on page load.",
1647
- "attribute": "autofocus"
2932
+ "default": "'option'",
2933
+ "description": "The name of the radio group, submitted as a name/value pair with form data.",
2934
+ "attribute": "name"
1648
2935
  },
1649
2936
  {
1650
2937
  "kind": "field",
1651
- "name": "enterkeyhint",
2938
+ "name": "value",
1652
2939
  "type": {
1653
- "text": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
2940
+ "text": "string"
1654
2941
  },
1655
- "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
1656
- "attribute": "enterkeyhint"
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
1657
2946
  },
1658
2947
  {
1659
2948
  "kind": "field",
1660
- "name": "spellcheck",
2949
+ "name": "size",
1661
2950
  "type": {
1662
- "text": "boolean"
2951
+ "text": "'small' | 'medium' | 'large'"
1663
2952
  },
1664
- "default": "true",
1665
- "description": "Enables spell checking on the input.",
1666
- "attribute": "spellcheck"
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
1667
2957
  },
1668
2958
  {
1669
2959
  "kind": "field",
1670
- "name": "inputmode",
2960
+ "name": "form",
1671
2961
  "type": {
1672
- "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
2962
+ "text": "string"
1673
2963
  },
1674
- "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.",
1675
- "attribute": "inputmode"
1676
- },
1677
- {
1678
- "kind": "field",
1679
- "name": "valueAsDate",
1680
- "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."
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
1681
2968
  },
1682
2969
  {
1683
2970
  "kind": "field",
1684
- "name": "valueAsNumber",
1685
- "description": "Gets or sets the current value as a number. Returns `NaN` if the value can't be converted."
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
1686
2979
  },
1687
2980
  {
1688
2981
  "kind": "field",
@@ -1698,17 +2991,12 @@
1698
2991
  },
1699
2992
  {
1700
2993
  "kind": "method",
1701
- "name": "handleBlur",
1702
- "privacy": "private"
1703
- },
1704
- {
1705
- "kind": "method",
1706
- "name": "handleChange",
2994
+ "name": "getAllRadios",
1707
2995
  "privacy": "private"
1708
2996
  },
1709
2997
  {
1710
2998
  "kind": "method",
1711
- "name": "handleClearClick",
2999
+ "name": "handleRadioClick",
1712
3000
  "privacy": "private",
1713
3001
  "parameters": [
1714
3002
  {
@@ -1719,29 +3007,6 @@
1719
3007
  }
1720
3008
  ]
1721
3009
  },
1722
- {
1723
- "kind": "method",
1724
- "name": "handleFocus",
1725
- "privacy": "private"
1726
- },
1727
- {
1728
- "kind": "method",
1729
- "name": "handleInput",
1730
- "privacy": "private"
1731
- },
1732
- {
1733
- "kind": "method",
1734
- "name": "handleInvalid",
1735
- "privacy": "private",
1736
- "parameters": [
1737
- {
1738
- "name": "event",
1739
- "type": {
1740
- "text": "Event"
1741
- }
1742
- }
1743
- ]
1744
- },
1745
3010
  {
1746
3011
  "kind": "method",
1747
3012
  "name": "handleKeyDown",
@@ -1757,119 +3022,44 @@
1757
3022
  },
1758
3023
  {
1759
3024
  "kind": "method",
1760
- "name": "handlePasswordToggle",
3025
+ "name": "handleLabelClick",
1761
3026
  "privacy": "private"
1762
3027
  },
1763
3028
  {
1764
3029
  "kind": "method",
1765
- "name": "handleDisabledChange"
1766
- },
1767
- {
1768
- "kind": "method",
1769
- "name": "handleStepChange"
1770
- },
1771
- {
1772
- "kind": "method",
1773
- "name": "handleValueChange"
1774
- },
1775
- {
1776
- "kind": "method",
1777
- "name": "focus",
1778
- "parameters": [
1779
- {
1780
- "name": "options",
1781
- "optional": true,
1782
- "type": {
1783
- "text": "FocusOptions"
1784
- }
1785
- }
1786
- ],
1787
- "description": "Sets focus on the input."
1788
- },
1789
- {
1790
- "kind": "method",
1791
- "name": "blur",
1792
- "description": "Removes focus from the input."
1793
- },
1794
- {
1795
- "kind": "method",
1796
- "name": "select",
1797
- "description": "Selects all the text in the input."
1798
- },
1799
- {
1800
- "kind": "method",
1801
- "name": "setSelectionRange",
1802
- "parameters": [
1803
- {
1804
- "name": "selectionStart",
1805
- "type": {
1806
- "text": "number"
1807
- }
1808
- },
1809
- {
1810
- "name": "selectionEnd",
1811
- "type": {
1812
- "text": "number"
1813
- }
1814
- },
1815
- {
1816
- "name": "selectionDirection",
1817
- "default": "'none'",
1818
- "type": {
1819
- "text": "'forward' | 'backward' | 'none'"
1820
- }
1821
- }
1822
- ],
1823
- "description": "Sets the start and end positions of the text selection (0-based)."
1824
- },
1825
- {
1826
- "kind": "method",
1827
- "name": "setRangeText",
3030
+ "name": "handleInvalid",
3031
+ "privacy": "private",
1828
3032
  "parameters": [
1829
3033
  {
1830
- "name": "replacement",
1831
- "type": {
1832
- "text": "string"
1833
- }
1834
- },
1835
- {
1836
- "name": "start",
1837
- "optional": true,
1838
- "type": {
1839
- "text": "number"
1840
- }
1841
- },
1842
- {
1843
- "name": "end",
1844
- "optional": true,
1845
- "type": {
1846
- "text": "number"
1847
- }
1848
- },
1849
- {
1850
- "name": "selectMode",
1851
- "optional": true,
3034
+ "name": "event",
1852
3035
  "type": {
1853
- "text": "'select' | 'start' | 'end' | 'preserve'"
3036
+ "text": "Event"
1854
3037
  }
1855
3038
  }
1856
- ],
1857
- "description": "Replaces a range of text with a new string."
3039
+ ]
1858
3040
  },
1859
3041
  {
1860
3042
  "kind": "method",
1861
- "name": "showPicker",
1862
- "description": "Displays the browser picker for an input element (only works if the browser supports it for the input type)."
3043
+ "name": "syncRadioElements",
3044
+ "privacy": "private"
1863
3045
  },
1864
3046
  {
1865
3047
  "kind": "method",
1866
- "name": "stepUp",
1867
- "description": "Increments the value of a numeric input type by the value of the step attribute."
3048
+ "name": "syncRadios",
3049
+ "privacy": "private"
1868
3050
  },
1869
3051
  {
1870
3052
  "kind": "method",
1871
- "name": "stepDown",
1872
- "description": "Decrements the value of a numeric input type by the value of the step attribute."
3053
+ "name": "updateCheckedRadio",
3054
+ "privacy": "private"
3055
+ },
3056
+ {
3057
+ "kind": "method",
3058
+ "name": "handleSizeChange"
3059
+ },
3060
+ {
3061
+ "kind": "method",
3062
+ "name": "handleValueChange"
1873
3063
  },
1874
3064
  {
1875
3065
  "kind": "method",
@@ -1889,6 +3079,11 @@
1889
3079
  {
1890
3080
  "kind": "method",
1891
3081
  "name": "reportValidity",
3082
+ "return": {
3083
+ "type": {
3084
+ "text": "boolean"
3085
+ }
3086
+ },
1892
3087
  "description": "Checks for validity and shows the browser's validation message if the control is invalid."
1893
3088
  },
1894
3089
  {
@@ -1897,9 +3092,7 @@
1897
3092
  "parameters": [
1898
3093
  {
1899
3094
  "name": "message",
1900
- "type": {
1901
- "text": "string"
1902
- }
3095
+ "default": "''"
1903
3096
  }
1904
3097
  ],
1905
3098
  "description": "Sets a custom validation message. Pass an empty string to restore validity."
@@ -1907,31 +3100,13 @@
1907
3100
  ],
1908
3101
  "events": [
1909
3102
  {
1910
- "description": "Emitted when the control loses focus.",
1911
- "name": "syn-blur",
1912
- "reactName": "onSynBlur",
1913
- "eventName": "SynBlurEvent"
1914
- },
1915
- {
1916
- "description": "Emitted when an alteration to the control's value is committed by the user.",
3103
+ "description": "Emitted when the radio group's selected value changes.",
1917
3104
  "name": "syn-change",
1918
3105
  "reactName": "onSynChange",
1919
3106
  "eventName": "SynChangeEvent"
1920
3107
  },
1921
3108
  {
1922
- "description": "Emitted when the clear button is activated.",
1923
- "name": "syn-clear",
1924
- "reactName": "onSynClear",
1925
- "eventName": "SynClearEvent"
1926
- },
1927
- {
1928
- "description": "Emitted when the control gains focus.",
1929
- "name": "syn-focus",
1930
- "reactName": "onSynFocus",
1931
- "eventName": "SynFocusEvent"
1932
- },
1933
- {
1934
- "description": "Emitted when the control receives input.",
3109
+ "description": "Emitted when the radio group receives user input.",
1935
3110
  "name": "syn-input",
1936
3111
  "reactName": "onSynInput",
1937
3112
  "eventName": "SynInputEvent"
@@ -1945,29 +3120,30 @@
1945
3120
  ],
1946
3121
  "attributes": [
1947
3122
  {
1948
- "name": "title",
3123
+ "name": "label",
1949
3124
  "type": {
1950
3125
  "text": "string"
1951
3126
  },
1952
3127
  "default": "''",
1953
- "fieldName": "title"
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"
1954
3130
  },
1955
3131
  {
1956
- "name": "type",
3132
+ "name": "help-text",
1957
3133
  "type": {
1958
- "text": "| 'date'\n | 'datetime-local'\n | 'email'\n | 'number'\n | 'password'\n | 'search'\n | 'tel'\n | 'text'\n | 'time'\n | 'url'"
3134
+ "text": "string"
1959
3135
  },
1960
- "default": "'text'",
1961
- "description": "The type of input. Works the same as a native `<input>` element, but only a subset of types are supported. Defaults\nto `text`.",
1962
- "fieldName": "type"
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"
1963
3139
  },
1964
3140
  {
1965
3141
  "name": "name",
1966
3142
  "type": {
1967
3143
  "text": "string"
1968
3144
  },
1969
- "default": "''",
1970
- "description": "The name of the input, submitted as a name/value pair with form data.",
3145
+ "default": "'option'",
3146
+ "description": "The name of the radio group, submitted as a name/value pair with form data.",
1971
3147
  "fieldName": "name"
1972
3148
  },
1973
3149
  {
@@ -1976,7 +3152,7 @@
1976
3152
  "text": "string"
1977
3153
  },
1978
3154
  "default": "''",
1979
- "description": "The current value of the input, submitted as a name/value pair with form data.",
3155
+ "description": "The current value of the radio group, submitted as a name/value pair with form data.",
1980
3156
  "fieldName": "value"
1981
3157
  },
1982
3158
  {
@@ -1985,90 +3161,9 @@
1985
3161
  "text": "'small' | 'medium' | 'large'"
1986
3162
  },
1987
3163
  "default": "'medium'",
1988
- "description": "The input's size.",
3164
+ "description": "The radio group's size. This size will be applied to all child radios and radio buttons.",
1989
3165
  "fieldName": "size"
1990
3166
  },
1991
- {
1992
- "name": "label",
1993
- "type": {
1994
- "text": "string"
1995
- },
1996
- "default": "''",
1997
- "description": "The input's label. If you need to display HTML, use the `label` slot instead.",
1998
- "fieldName": "label"
1999
- },
2000
- {
2001
- "name": "help-text",
2002
- "type": {
2003
- "text": "string"
2004
- },
2005
- "default": "''",
2006
- "description": "The input's help text. If you need to display HTML, use the `help-text` slot instead.",
2007
- "fieldName": "helpText"
2008
- },
2009
- {
2010
- "name": "clearable",
2011
- "type": {
2012
- "text": "boolean"
2013
- },
2014
- "default": "false",
2015
- "description": "Adds a clear button when the input is not empty.",
2016
- "fieldName": "clearable"
2017
- },
2018
- {
2019
- "name": "disabled",
2020
- "type": {
2021
- "text": "boolean"
2022
- },
2023
- "default": "false",
2024
- "description": "Disables the input.",
2025
- "fieldName": "disabled"
2026
- },
2027
- {
2028
- "name": "placeholder",
2029
- "type": {
2030
- "text": "string"
2031
- },
2032
- "default": "''",
2033
- "description": "Placeholder text to show as a hint when the input is empty.",
2034
- "fieldName": "placeholder"
2035
- },
2036
- {
2037
- "name": "readonly",
2038
- "type": {
2039
- "text": "boolean"
2040
- },
2041
- "default": "false",
2042
- "description": "Makes the input readonly.",
2043
- "fieldName": "readonly"
2044
- },
2045
- {
2046
- "name": "password-toggle",
2047
- "type": {
2048
- "text": "boolean"
2049
- },
2050
- "default": "false",
2051
- "description": "Adds a button to toggle the password's visibility. Only applies to password types.",
2052
- "fieldName": "passwordToggle"
2053
- },
2054
- {
2055
- "name": "password-visible",
2056
- "type": {
2057
- "text": "boolean"
2058
- },
2059
- "default": "false",
2060
- "description": "Determines whether or not the password is currently visible. Only applies to password input types.",
2061
- "fieldName": "passwordVisible"
2062
- },
2063
- {
2064
- "name": "no-spin-buttons",
2065
- "type": {
2066
- "text": "boolean"
2067
- },
2068
- "default": "false",
2069
- "description": "Hides the browser's built-in increment/decrement spin buttons for number inputs.",
2070
- "fieldName": "noSpinButtons"
2071
- },
2072
3167
  {
2073
3168
  "name": "form",
2074
3169
  "type": {
@@ -2084,129 +3179,24 @@
2084
3179
  "text": "boolean"
2085
3180
  },
2086
3181
  "default": "false",
2087
- "description": "Makes the input a required field.",
3182
+ "description": "Ensures a child radio is checked before allowing the containing form to submit.",
2088
3183
  "fieldName": "required"
2089
- },
2090
- {
2091
- "name": "pattern",
2092
- "type": {
2093
- "text": "string"
2094
- },
2095
- "description": "A regular expression pattern to validate input against.",
2096
- "fieldName": "pattern"
2097
- },
2098
- {
2099
- "name": "minlength",
2100
- "type": {
2101
- "text": "number"
2102
- },
2103
- "description": "The minimum length of input that will be considered valid.",
2104
- "fieldName": "minlength"
2105
- },
2106
- {
2107
- "name": "maxlength",
2108
- "type": {
2109
- "text": "number"
2110
- },
2111
- "description": "The maximum length of input that will be considered valid.",
2112
- "fieldName": "maxlength"
2113
- },
2114
- {
2115
- "name": "min",
2116
- "type": {
2117
- "text": "number | string"
2118
- },
2119
- "description": "The input's minimum value. Only applies to date and number input types.",
2120
- "fieldName": "min"
2121
- },
2122
- {
2123
- "name": "max",
2124
- "type": {
2125
- "text": "number | string"
2126
- },
2127
- "description": "The input's maximum value. Only applies to date and number input types.",
2128
- "fieldName": "max"
2129
- },
2130
- {
2131
- "name": "step",
2132
- "type": {
2133
- "text": "number | 'any'"
2134
- },
2135
- "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.",
2136
- "fieldName": "step"
2137
- },
2138
- {
2139
- "name": "autocapitalize",
2140
- "type": {
2141
- "text": "'off' | 'none' | 'on' | 'sentences' | 'words' | 'characters'"
2142
- },
2143
- "description": "Controls whether and how text input is automatically capitalized as it is entered by the user.",
2144
- "fieldName": "autocapitalize"
2145
- },
2146
- {
2147
- "name": "autocorrect",
2148
- "type": {
2149
- "text": "'off' | 'on'"
2150
- },
2151
- "description": "Indicates whether the browser's autocorrect feature is on or off.",
2152
- "fieldName": "autocorrect"
2153
- },
2154
- {
2155
- "name": "autocomplete",
2156
- "type": {
2157
- "text": "string"
2158
- },
2159
- "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.",
2160
- "fieldName": "autocomplete"
2161
- },
2162
- {
2163
- "name": "autofocus",
2164
- "type": {
2165
- "text": "boolean"
2166
- },
2167
- "description": "Indicates that the input should receive focus on page load.",
2168
- "fieldName": "autofocus"
2169
- },
2170
- {
2171
- "name": "enterkeyhint",
2172
- "type": {
2173
- "text": "'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'"
2174
- },
2175
- "description": "Used to customize the label or icon of the Enter key on virtual keyboards.",
2176
- "fieldName": "enterkeyhint"
2177
- },
2178
- {
2179
- "name": "spellcheck",
2180
- "type": {
2181
- "text": "boolean"
2182
- },
2183
- "default": "true",
2184
- "description": "Enables spell checking on the input.",
2185
- "fieldName": "spellcheck"
2186
- },
2187
- {
2188
- "name": "inputmode",
2189
- "type": {
2190
- "text": "'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'"
2191
- },
2192
- "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.",
2193
- "fieldName": "inputmode"
2194
3184
  }
2195
3185
  ],
2196
3186
  "superclass": {
2197
3187
  "name": "SynergyElement",
2198
3188
  "module": "/src/internal/synergy-element.js"
2199
3189
  },
2200
- "summary": "Inputs collect data from the user.",
2201
- "tagNameWithoutPrefix": "input",
2202
- "tagName": "syn-input",
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",
2203
3193
  "customElement": true,
2204
- "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 */",
2205
- "documentation": "https://synergy.style/components/input",
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",
2206
3196
  "status": "stable",
2207
3197
  "since": "2.0",
2208
3198
  "dependencies": [
2209
- "syn-icon"
3199
+ "syn-button-group"
2210
3200
  ]
2211
3201
  }
2212
3202
  ],
@@ -2215,8 +3205,8 @@
2215
3205
  "kind": "js",
2216
3206
  "name": "default",
2217
3207
  "declaration": {
2218
- "name": "SynInput",
2219
- "module": "components/input/input.js"
3208
+ "name": "SynRadioGroup",
3209
+ "module": "components/radio-group/radio-group.js"
2220
3210
  }
2221
3211
  }
2222
3212
  ]
@@ -3046,7 +4036,7 @@
3046
4036
  "package": {
3047
4037
  "name": "@synergy-design-system/components",
3048
4038
  "description": "",
3049
- "version": "1.0.0-main.13",
4039
+ "version": "1.0.0-main.14",
3050
4040
  "author": {
3051
4041
  "name": "SICK Global UX Foundation",
3052
4042
  "url": "https://www.sick.com"