@sky.ui/core 0.0.43 → 0.0.44

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.
@@ -746,166 +746,254 @@
746
746
  },
747
747
  {
748
748
  "kind": "javascript-module",
749
- "path": "src/sky-avatar/sky-avatar.ts",
749
+ "path": "src/sky-badge/sky-badge.ts",
750
750
  "declarations": [
751
751
  {
752
752
  "kind": "class",
753
753
  "description": "",
754
- "name": "SkyAvatar",
754
+ "name": "SkyBadge",
755
755
  "cssParts": [
756
756
  {
757
- "description": "The avatar container element.",
758
- "name": "avatar"
757
+ "description": "Wrapper around the slotted content and the badge.",
758
+ "name": "container"
759
759
  },
760
760
  {
761
- "description": "The loading overlay container (shown when `loading` is true).",
762
- "name": "loading-overlay"
761
+ "description": "The badge element. Use `badgeRef` for positioning (e.g. tooltip anchor).",
762
+ "name": "badge"
763
763
  },
764
764
  {
765
- "description": "The spinner element shown when loading.",
766
- "name": "spinner"
765
+ "description": "The icon element when `isIcon` is true.",
766
+ "name": "icon"
767
767
  }
768
768
  ],
769
769
  "slots": [
770
770
  {
771
- "description": "Fallback content (e.g., initials or an icon) rendered when `image` is empty.",
771
+ "description": "The content the badge attaches to.",
772
772
  "name": ""
773
+ },
774
+ {
775
+ "description": "Optional slot to override the badge content entirely.",
776
+ "name": "badge"
773
777
  }
774
778
  ],
775
779
  "members": [
776
780
  {
777
781
  "kind": "field",
778
- "name": "size",
782
+ "name": "dependencies",
779
783
  "type": {
780
- "text": "string"
784
+ "text": "Record<string, CustomElementConstructor>"
781
785
  },
782
- "default": "\"50px\"",
783
- "description": "Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).",
784
- "attribute": "size"
786
+ "static": true,
787
+ "default": "{ \"sky-icon\": SkyIcon, }"
785
788
  },
786
789
  {
787
790
  "kind": "field",
788
- "name": "image",
791
+ "name": "statusColor",
789
792
  "type": {
790
793
  "text": "string"
791
794
  },
792
- "default": "\"\"",
793
- "description": "Image URL; fallback slot is shown on load error.",
794
- "attribute": "image"
795
+ "default": "\"success\"",
796
+ "description": "Badge background token or CSS color.",
797
+ "attribute": "statusColor",
798
+ "reflects": true
795
799
  },
796
800
  {
797
801
  "kind": "field",
798
- "name": "fit",
802
+ "name": "textColor",
799
803
  "type": {
800
- "text": "SkyAvatarFit"
804
+ "text": "string"
801
805
  },
802
- "default": "\"cover\"",
803
- "description": "Image fill mode: `cover` (default) or `contain`.",
804
- "attribute": "fit",
806
+ "default": "\"default\"",
807
+ "description": "Text color token or CSS color.",
808
+ "attribute": "textColor",
805
809
  "reflects": true
806
810
  },
807
811
  {
808
812
  "kind": "field",
809
- "name": "radius",
813
+ "name": "iconColor",
810
814
  "type": {
811
815
  "text": "string"
812
816
  },
813
- "default": "\"md\"",
814
- "description": "Border radius token or CSS value.",
815
- "attribute": "radius"
817
+ "default": "\"\"",
818
+ "description": "Icon color token or CSS color; falls back to `textColor` when empty.",
819
+ "attribute": "iconColor",
820
+ "reflects": true
816
821
  },
817
822
  {
818
823
  "kind": "field",
819
- "name": "alt",
824
+ "name": "position",
825
+ "type": {
826
+ "text": "SkyBadgePosition"
827
+ },
828
+ "default": "\"default\"",
829
+ "description": "Layout mode: `default | floating | inline`.",
830
+ "attribute": "position",
831
+ "reflects": true
832
+ },
833
+ {
834
+ "kind": "field",
835
+ "name": "value",
820
836
  "type": {
821
837
  "text": "string"
822
838
  },
823
839
  "default": "\"\"",
824
- "description": "Accessible name when image content conveys meaning.",
825
- "attribute": "alt"
840
+ "description": "Badge text/count or icon name in icon mode.",
841
+ "attribute": "value"
826
842
  },
827
843
  {
828
844
  "kind": "field",
829
- "name": "color",
845
+ "name": "isIcon",
830
846
  "type": {
831
- "text": "string"
847
+ "text": "boolean"
832
848
  },
833
- "default": "\"dark\"",
834
- "description": "Token or CSS color applied to fallback slot content.",
835
- "attribute": "color"
849
+ "default": "false",
850
+ "description": "Renders icon mode when true.",
851
+ "attribute": "isIcon",
852
+ "reflects": true
836
853
  },
837
854
  {
838
855
  "kind": "field",
839
- "name": "outline",
856
+ "name": "size",
840
857
  "type": {
841
858
  "text": "string"
842
859
  },
843
860
  "default": "\"\"",
844
- "description": "CSS `outline` value.",
845
- "attribute": "outline"
861
+ "description": "Badge and icon size CSS length.",
862
+ "attribute": "size",
863
+ "reflects": true
846
864
  },
847
865
  {
848
866
  "kind": "field",
849
- "name": "outlineOffset",
867
+ "name": "shape",
850
868
  "type": {
851
- "text": "string"
869
+ "text": "SkyBadgeShape"
852
870
  },
853
- "default": "\"2px\"",
854
- "description": "CSS `outline-offset` value.",
855
- "attribute": "outlineOffset"
871
+ "default": "\"custom\"",
872
+ "description": "Badge shape: `circle | pill | custom`.",
873
+ "attribute": "shape",
874
+ "reflects": true
856
875
  },
857
876
  {
858
877
  "kind": "field",
859
- "name": "loading",
878
+ "name": "max",
879
+ "type": {
880
+ "text": "number"
881
+ },
882
+ "default": "99",
883
+ "description": "Maximum numeric count before rendering overflow label.",
884
+ "attribute": "max"
885
+ },
886
+ {
887
+ "kind": "field",
888
+ "name": "hideWhenZero",
860
889
  "type": {
861
890
  "text": "boolean"
862
891
  },
863
892
  "default": "false",
864
- "description": "Shows loading overlay when true.",
865
- "attribute": "loading",
866
- "reflects": true
893
+ "description": "Hides badge when value resolves to numeric zero.",
894
+ "attribute": "hideWhenZero"
867
895
  },
868
896
  {
869
897
  "kind": "field",
870
- "name": "disabled",
898
+ "name": "show",
871
899
  "type": {
872
900
  "text": "boolean"
873
901
  },
874
- "default": "false",
875
- "description": "Dims and disables pointer interactions.",
876
- "attribute": "disabled",
902
+ "default": "true",
903
+ "description": "Forces badge visibility independent of value.",
904
+ "attribute": "show",
877
905
  "reflects": true
878
906
  },
879
907
  {
880
908
  "kind": "field",
881
- "name": "interactive",
909
+ "name": "offsetX",
910
+ "type": {
911
+ "text": "string"
912
+ },
913
+ "default": "\"0px\"",
914
+ "description": "Horizontal offset CSS length.",
915
+ "attribute": "offsetX"
916
+ },
917
+ {
918
+ "kind": "field",
919
+ "name": "offsetY",
920
+ "type": {
921
+ "text": "string"
922
+ },
923
+ "default": "\"0px\"",
924
+ "description": "Vertical offset CSS length.",
925
+ "attribute": "offsetY"
926
+ },
927
+ {
928
+ "kind": "field",
929
+ "name": "ring",
882
930
  "type": {
883
931
  "text": "boolean"
884
932
  },
885
933
  "default": "false",
886
- "description": "Enables interactive behavior with keyboard/click activation.",
887
- "attribute": "interactive"
934
+ "description": "Enables visual ring around the badge.",
935
+ "attribute": "ring"
888
936
  },
889
937
  {
890
938
  "kind": "field",
891
- "name": "shadow",
939
+ "name": "ringColor",
940
+ "type": {
941
+ "text": "string"
942
+ },
943
+ "default": "\"primary\"",
944
+ "description": "Ring color token or CSS color.",
945
+ "attribute": "ringColor"
946
+ },
947
+ {
948
+ "kind": "field",
949
+ "name": "ringOffset",
950
+ "type": {
951
+ "text": "string"
952
+ },
953
+ "default": "\"1px\"",
954
+ "description": "Ring offset CSS length.",
955
+ "attribute": "ringOffset"
956
+ },
957
+ {
958
+ "kind": "field",
959
+ "name": "badgeLabel",
960
+ "type": {
961
+ "text": "string | null"
962
+ },
963
+ "default": "null",
964
+ "description": "ARIA label override.",
965
+ "attribute": "badgeLabel"
966
+ },
967
+ {
968
+ "kind": "field",
969
+ "name": "badgeAriaHidden",
892
970
  "type": {
893
971
  "text": "boolean"
894
972
  },
895
973
  "default": "false",
896
- "description": "When true, applies solid surface, border ring, and elevation; no backdrop blur.",
897
- "attribute": "shadow",
898
- "reflects": true
974
+ "description": "Hides badge from assistive technology when true.",
975
+ "attribute": "badgeAriaHidden"
899
976
  },
900
977
  {
901
978
  "kind": "field",
902
- "name": "_imageError",
979
+ "name": "interactive",
903
980
  "type": {
904
981
  "text": "boolean"
905
982
  },
906
- "privacy": "private",
907
983
  "default": "false",
908
- "description": "True when image failed to load; show slot instead."
984
+ "description": "Enables focus/activation and `badge-click` emission.",
985
+ "attribute": "interactive"
986
+ },
987
+ {
988
+ "kind": "field",
989
+ "name": "placement",
990
+ "type": {
991
+ "text": "SkyBadgePlacement"
992
+ },
993
+ "default": "\"custom\"",
994
+ "description": "Anchor placement preset for badge positioning.",
995
+ "attribute": "placement",
996
+ "reflects": true
909
997
  },
910
998
  {
911
999
  "kind": "field",
@@ -926,164 +1014,302 @@
926
1014
  },
927
1015
  {
928
1016
  "kind": "field",
929
- "name": "_onImageLoad",
930
- "privacy": "private",
931
- "description": "Marks image load success and keeps image rendering active."
1017
+ "name": "_badgeEl",
1018
+ "type": {
1019
+ "text": "HTMLSpanElement"
1020
+ },
1021
+ "privacy": "private"
932
1022
  },
933
1023
  {
934
1024
  "kind": "field",
935
- "name": "_onImageError",
936
- "privacy": "private",
937
- "description": "Marks image load failure and enables fallback slot rendering."
1025
+ "name": "badgeRef",
1026
+ "privacy": "public",
1027
+ "description": "Ref for the badge element (e.g. for tooltip anchor or positioning)."
1028
+ },
1029
+ {
1030
+ "kind": "field",
1031
+ "name": "shadowRootOptions",
1032
+ "type": {
1033
+ "text": "ShadowRootInit"
1034
+ },
1035
+ "static": true,
1036
+ "default": "{ mode: \"open\", delegatesFocus: true, }"
938
1037
  },
939
1038
  {
940
1039
  "kind": "method",
941
- "name": "_handleInteractiveClick",
942
- "privacy": "private",
1040
+ "name": "showBadge",
1041
+ "privacy": "public",
943
1042
  "return": {
944
1043
  "type": {
945
1044
  "text": "void"
946
1045
  }
947
1046
  },
948
- "parameters": [
949
- {
950
- "name": "e",
951
- "type": {
952
- "text": "Event"
953
- }
954
- }
955
- ],
956
- "description": "Re-dispatches click in interactive mode for host-level consumers."
1047
+ "description": "Forces badge visibility on."
957
1048
  },
958
1049
  {
959
1050
  "kind": "method",
960
- "name": "_handleInteractiveKeydown",
961
- "privacy": "private",
1051
+ "name": "hideBadge",
1052
+ "privacy": "public",
962
1053
  "return": {
963
1054
  "type": {
964
1055
  "text": "void"
965
1056
  }
966
1057
  },
967
- "parameters": [
968
- {
969
- "name": "e",
970
- "type": {
971
- "text": "KeyboardEvent"
1058
+ "description": "Forces badge visibility off."
1059
+ },
1060
+ {
1061
+ "kind": "method",
1062
+ "name": "setValue",
1063
+ "privacy": "public",
1064
+ "return": {
1065
+ "type": {
1066
+ "text": "void"
1067
+ }
1068
+ },
1069
+ "parameters": [
1070
+ {
1071
+ "name": "value",
1072
+ "type": {
1073
+ "text": "string"
1074
+ },
1075
+ "description": "Badge value or icon name."
1076
+ }
1077
+ ],
1078
+ "description": "Updates badge value for text/count or icon modes."
1079
+ },
1080
+ {
1081
+ "kind": "field",
1082
+ "name": "_onActivate",
1083
+ "privacy": "private",
1084
+ "description": "Emits `badge-click` for interactive activation."
1085
+ },
1086
+ {
1087
+ "kind": "field",
1088
+ "name": "_onKeydown",
1089
+ "privacy": "private",
1090
+ "description": "Handles keyboard activation with Enter and Space."
1091
+ },
1092
+ {
1093
+ "kind": "method",
1094
+ "name": "_computeAriaLabel",
1095
+ "privacy": "private",
1096
+ "return": {
1097
+ "type": {
1098
+ "text": "string | null"
1099
+ }
1100
+ },
1101
+ "parameters": [
1102
+ {
1103
+ "name": "displayValue",
1104
+ "type": {
1105
+ "text": "string | null"
972
1106
  }
973
1107
  }
974
1108
  ],
975
- "description": "Handles keyboard activation in interactive mode."
1109
+ "description": "Computes accessible badge label from current render state."
976
1110
  },
977
1111
  {
978
1112
  "kind": "method",
979
- "name": "adjustSpinnerSize",
1113
+ "name": "_computeAnchors",
980
1114
  "privacy": "private",
981
1115
  "return": {
982
1116
  "type": {
983
- "text": "void"
1117
+ "text": "{\r\n top: string;\r\n right: string;\r\n bottom: string;\r\n left: string;\r\n }"
984
1118
  }
985
1119
  },
986
- "description": "Derives spinner dimensions from current avatar size."
1120
+ "parameters": [
1121
+ {
1122
+ "name": "placement",
1123
+ "type": {
1124
+ "text": "SkyBadgePlacement"
1125
+ }
1126
+ }
1127
+ ],
1128
+ "description": "Resolves anchor edges from placement preset."
1129
+ },
1130
+ {
1131
+ "kind": "method",
1132
+ "name": "_resolveBadgeSurface",
1133
+ "privacy": "private",
1134
+ "return": {
1135
+ "type": {
1136
+ "text": "{\r\n bg: string;\r\n color: string;\r\n border: string;\r\n }"
1137
+ }
1138
+ },
1139
+ "description": "Maps semantic status tokens to soft badge surface colors."
987
1140
  }
988
1141
  ],
989
1142
  "events": [
990
1143
  {
991
- "name": "click",
992
1144
  "type": {
993
- "text": "Event"
994
- }
1145
+ "text": "CustomEvent<SkyBadgeClickEventDetail>"
1146
+ },
1147
+ "description": "Emitted when badge activation occurs via click, Enter, or Space while `interactive` is true.",
1148
+ "name": "badge-click"
995
1149
  }
996
1150
  ],
997
1151
  "attributes": [
998
1152
  {
999
- "name": "size",
1153
+ "name": "statusColor",
1000
1154
  "type": {
1001
1155
  "text": "string"
1002
1156
  },
1003
- "default": "\"50px\"",
1004
- "description": "Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).",
1005
- "fieldName": "size"
1157
+ "default": "\"success\"",
1158
+ "description": "Badge background token or CSS color.",
1159
+ "fieldName": "statusColor"
1006
1160
  },
1007
1161
  {
1008
- "name": "image",
1162
+ "name": "textColor",
1163
+ "type": {
1164
+ "text": "string"
1165
+ },
1166
+ "default": "\"default\"",
1167
+ "description": "Text color token or CSS color.",
1168
+ "fieldName": "textColor"
1169
+ },
1170
+ {
1171
+ "name": "iconColor",
1009
1172
  "type": {
1010
1173
  "text": "string"
1011
1174
  },
1012
1175
  "default": "\"\"",
1013
- "description": "Image URL; fallback slot is shown on load error.",
1014
- "fieldName": "image"
1176
+ "description": "Icon color token or CSS color; falls back to `textColor` when empty.",
1177
+ "fieldName": "iconColor"
1015
1178
  },
1016
1179
  {
1017
- "name": "fit",
1180
+ "name": "position",
1018
1181
  "type": {
1019
- "text": "SkyAvatarFit"
1182
+ "text": "SkyBadgePosition"
1020
1183
  },
1021
- "default": "\"cover\"",
1022
- "description": "Image fill mode: `cover` (default) or `contain`.",
1023
- "fieldName": "fit"
1184
+ "default": "\"default\"",
1185
+ "description": "Layout mode: `default | floating | inline`.",
1186
+ "fieldName": "position"
1024
1187
  },
1025
1188
  {
1026
- "name": "radius",
1189
+ "name": "value",
1027
1190
  "type": {
1028
1191
  "text": "string"
1029
1192
  },
1030
- "default": "\"md\"",
1031
- "description": "Border radius token or CSS value.",
1032
- "fieldName": "radius"
1193
+ "default": "\"\"",
1194
+ "description": "Badge text/count or icon name in icon mode.",
1195
+ "fieldName": "value"
1033
1196
  },
1034
1197
  {
1035
- "name": "alt",
1198
+ "name": "isIcon",
1199
+ "type": {
1200
+ "text": "boolean"
1201
+ },
1202
+ "default": "false",
1203
+ "description": "Renders icon mode when true.",
1204
+ "fieldName": "isIcon"
1205
+ },
1206
+ {
1207
+ "name": "size",
1036
1208
  "type": {
1037
1209
  "text": "string"
1038
1210
  },
1039
1211
  "default": "\"\"",
1040
- "description": "Accessible name when image content conveys meaning.",
1041
- "fieldName": "alt"
1212
+ "description": "Badge and icon size CSS length.",
1213
+ "fieldName": "size"
1042
1214
  },
1043
1215
  {
1044
- "name": "color",
1216
+ "name": "shape",
1045
1217
  "type": {
1046
- "text": "string"
1218
+ "text": "SkyBadgeShape"
1047
1219
  },
1048
- "default": "\"dark\"",
1049
- "description": "Token or CSS color applied to fallback slot content.",
1050
- "fieldName": "color"
1220
+ "default": "\"custom\"",
1221
+ "description": "Badge shape: `circle | pill | custom`.",
1222
+ "fieldName": "shape"
1051
1223
  },
1052
1224
  {
1053
- "name": "outline",
1225
+ "name": "max",
1226
+ "type": {
1227
+ "text": "number"
1228
+ },
1229
+ "default": "99",
1230
+ "description": "Maximum numeric count before rendering overflow label.",
1231
+ "fieldName": "max"
1232
+ },
1233
+ {
1234
+ "name": "hideWhenZero",
1235
+ "type": {
1236
+ "text": "boolean"
1237
+ },
1238
+ "default": "false",
1239
+ "description": "Hides badge when value resolves to numeric zero.",
1240
+ "fieldName": "hideWhenZero"
1241
+ },
1242
+ {
1243
+ "name": "show",
1244
+ "type": {
1245
+ "text": "boolean"
1246
+ },
1247
+ "default": "true",
1248
+ "description": "Forces badge visibility independent of value.",
1249
+ "fieldName": "show"
1250
+ },
1251
+ {
1252
+ "name": "offsetX",
1054
1253
  "type": {
1055
1254
  "text": "string"
1056
1255
  },
1057
- "default": "\"\"",
1058
- "description": "CSS `outline` value.",
1059
- "fieldName": "outline"
1256
+ "default": "\"0px\"",
1257
+ "description": "Horizontal offset CSS length.",
1258
+ "fieldName": "offsetX"
1060
1259
  },
1061
1260
  {
1062
- "name": "outlineOffset",
1261
+ "name": "offsetY",
1063
1262
  "type": {
1064
1263
  "text": "string"
1065
1264
  },
1066
- "default": "\"2px\"",
1067
- "description": "CSS `outline-offset` value.",
1068
- "fieldName": "outlineOffset"
1265
+ "default": "\"0px\"",
1266
+ "description": "Vertical offset CSS length.",
1267
+ "fieldName": "offsetY"
1069
1268
  },
1070
1269
  {
1071
- "name": "loading",
1270
+ "name": "ring",
1072
1271
  "type": {
1073
1272
  "text": "boolean"
1074
1273
  },
1075
1274
  "default": "false",
1076
- "description": "Shows loading overlay when true.",
1077
- "fieldName": "loading"
1275
+ "description": "Enables visual ring around the badge.",
1276
+ "fieldName": "ring"
1078
1277
  },
1079
1278
  {
1080
- "name": "disabled",
1279
+ "name": "ringColor",
1280
+ "type": {
1281
+ "text": "string"
1282
+ },
1283
+ "default": "\"primary\"",
1284
+ "description": "Ring color token or CSS color.",
1285
+ "fieldName": "ringColor"
1286
+ },
1287
+ {
1288
+ "name": "ringOffset",
1289
+ "type": {
1290
+ "text": "string"
1291
+ },
1292
+ "default": "\"1px\"",
1293
+ "description": "Ring offset CSS length.",
1294
+ "fieldName": "ringOffset"
1295
+ },
1296
+ {
1297
+ "name": "badgeLabel",
1298
+ "type": {
1299
+ "text": "string | null"
1300
+ },
1301
+ "default": "null",
1302
+ "description": "ARIA label override.",
1303
+ "fieldName": "badgeLabel"
1304
+ },
1305
+ {
1306
+ "name": "badgeAriaHidden",
1081
1307
  "type": {
1082
1308
  "text": "boolean"
1083
1309
  },
1084
1310
  "default": "false",
1085
- "description": "Dims and disables pointer interactions.",
1086
- "fieldName": "disabled"
1311
+ "description": "Hides badge from assistive technology when true.",
1312
+ "fieldName": "badgeAriaHidden"
1087
1313
  },
1088
1314
  {
1089
1315
  "name": "interactive",
@@ -1091,17 +1317,17 @@
1091
1317
  "text": "boolean"
1092
1318
  },
1093
1319
  "default": "false",
1094
- "description": "Enables interactive behavior with keyboard/click activation.",
1320
+ "description": "Enables focus/activation and `badge-click` emission.",
1095
1321
  "fieldName": "interactive"
1096
1322
  },
1097
1323
  {
1098
- "name": "shadow",
1324
+ "name": "placement",
1099
1325
  "type": {
1100
- "text": "boolean"
1326
+ "text": "SkyBadgePlacement"
1101
1327
  },
1102
- "default": "false",
1103
- "description": "When true, applies solid surface, border ring, and elevation; no backdrop blur.",
1104
- "fieldName": "shadow"
1328
+ "default": "\"custom\"",
1329
+ "description": "Anchor placement preset for badge positioning.",
1330
+ "fieldName": "placement"
1105
1331
  },
1106
1332
  {
1107
1333
  "name": "preset",
@@ -1117,60 +1343,60 @@
1117
1343
  "name": "LitElement",
1118
1344
  "package": "lit"
1119
1345
  },
1120
- "tagName": "sky-avatar",
1346
+ "tagName": "sky-badge",
1121
1347
  "customElement": true,
1122
- "summary": "Avatar that renders image content or fallback slot content with configurable size, radius, outline, and loading state."
1348
+ "summary": "Badge for status dots, counts, or icons anchored to slotted content."
1123
1349
  }
1124
1350
  ],
1125
1351
  "exports": [
1126
1352
  {
1127
1353
  "kind": "js",
1128
- "name": "SkyAvatar",
1354
+ "name": "SkyBadge",
1129
1355
  "declaration": {
1130
- "name": "SkyAvatar",
1131
- "module": "src/sky-avatar/sky-avatar.ts"
1356
+ "name": "SkyBadge",
1357
+ "module": "src/sky-badge/sky-badge.ts"
1132
1358
  }
1133
1359
  },
1134
1360
  {
1135
1361
  "kind": "custom-element-definition",
1136
- "name": "sky-avatar",
1362
+ "name": "sky-badge",
1137
1363
  "declaration": {
1138
- "name": "SkyAvatar",
1139
- "module": "src/sky-avatar/sky-avatar.ts"
1364
+ "name": "SkyBadge",
1365
+ "module": "src/sky-badge/sky-badge.ts"
1140
1366
  }
1141
1367
  }
1142
1368
  ]
1143
1369
  },
1144
1370
  {
1145
1371
  "kind": "javascript-module",
1146
- "path": "src/sky-badge/sky-badge.ts",
1372
+ "path": "src/sky-button/sky-button.ts",
1147
1373
  "declarations": [
1148
1374
  {
1149
1375
  "kind": "class",
1150
1376
  "description": "",
1151
- "name": "SkyBadge",
1377
+ "name": "SkyButton",
1152
1378
  "cssParts": [
1153
1379
  {
1154
- "description": "Wrapper around the slotted content and the badge.",
1155
- "name": "container"
1380
+ "description": "The native `<button>` element.",
1381
+ "name": "button"
1156
1382
  },
1157
1383
  {
1158
- "description": "The badge element. Use `badgeRef` for positioning (e.g. tooltip anchor).",
1159
- "name": "badge"
1384
+ "description": "The optional left/right icons.",
1385
+ "name": "icon"
1160
1386
  },
1161
1387
  {
1162
- "description": "The icon element when `isIcon` is true.",
1163
- "name": "icon"
1388
+ "description": "Overlay displayed when loading.",
1389
+ "name": "loading-overlay"
1390
+ },
1391
+ {
1392
+ "description": "Spinner displayed when loading.",
1393
+ "name": "spinner"
1164
1394
  }
1165
1395
  ],
1166
1396
  "slots": [
1167
1397
  {
1168
- "description": "The content the badge attaches to.",
1398
+ "description": "Default slot for the button label (replaces `label` property if used).",
1169
1399
  "name": ""
1170
- },
1171
- {
1172
- "description": "Optional slot to override the badge content entirely.",
1173
- "name": "badge"
1174
1400
  }
1175
1401
  ],
1176
1402
  "members": [
@@ -1185,68 +1411,61 @@
1185
1411
  },
1186
1412
  {
1187
1413
  "kind": "field",
1188
- "name": "statusColor",
1414
+ "name": "formAssociated",
1189
1415
  "type": {
1190
- "text": "string"
1416
+ "text": "boolean"
1191
1417
  },
1192
- "default": "\"success\"",
1193
- "description": "Badge background token or CSS color.",
1194
- "attribute": "statusColor",
1195
- "reflects": true
1418
+ "static": true,
1419
+ "default": "true"
1196
1420
  },
1197
1421
  {
1198
1422
  "kind": "field",
1199
- "name": "textColor",
1423
+ "name": "internals",
1200
1424
  "type": {
1201
- "text": "string"
1425
+ "text": "ElementInternals"
1202
1426
  },
1203
- "default": "\"default\"",
1204
- "description": "Text color token or CSS color.",
1205
- "attribute": "textColor",
1206
- "reflects": true
1427
+ "privacy": "private"
1207
1428
  },
1208
1429
  {
1209
1430
  "kind": "field",
1210
- "name": "iconColor",
1431
+ "name": "variant",
1211
1432
  "type": {
1212
- "text": "string"
1433
+ "text": "SkyButtonVariant"
1213
1434
  },
1214
- "default": "\"\"",
1215
- "description": "Icon color token or CSS color; falls back to `textColor` when empty.",
1216
- "attribute": "iconColor",
1435
+ "default": "\"solid\"",
1436
+ "description": "Visual variant of the button. Use `\"link\"` for text-only control with underline on hover. Default: `\"solid\"`.",
1437
+ "attribute": "variant",
1217
1438
  "reflects": true
1218
1439
  },
1219
1440
  {
1220
1441
  "kind": "field",
1221
- "name": "position",
1442
+ "name": "color",
1222
1443
  "type": {
1223
- "text": "SkyBadgePosition"
1444
+ "text": "string"
1224
1445
  },
1225
- "default": "\"default\"",
1226
- "description": "Layout mode: `default | floating | inline`.",
1227
- "attribute": "position",
1228
- "reflects": true
1446
+ "default": "\"primary\"",
1447
+ "description": "Base color token or custom CSS color. Default: `\"primary\"`.",
1448
+ "attribute": "color"
1229
1449
  },
1230
1450
  {
1231
1451
  "kind": "field",
1232
- "name": "value",
1452
+ "name": "type",
1233
1453
  "type": {
1234
- "text": "string"
1454
+ "text": "SkyButtonType"
1235
1455
  },
1236
- "default": "\"\"",
1237
- "description": "Badge text/count or icon name in icon mode.",
1238
- "attribute": "value"
1456
+ "default": "\"button\"",
1457
+ "description": "Button type attribute. Default: `\"button\"`.",
1458
+ "attribute": "type"
1239
1459
  },
1240
1460
  {
1241
1461
  "kind": "field",
1242
- "name": "isIcon",
1462
+ "name": "form",
1243
1463
  "type": {
1244
- "text": "boolean"
1464
+ "text": "string"
1245
1465
  },
1246
- "default": "false",
1247
- "description": "Renders icon mode when true.",
1248
- "attribute": "isIcon",
1249
- "reflects": true
1466
+ "default": "\"\"",
1467
+ "description": "Associated form ID for custom submit handling.",
1468
+ "attribute": "form"
1250
1469
  },
1251
1470
  {
1252
1471
  "kind": "field",
@@ -1254,477 +1473,495 @@
1254
1473
  "type": {
1255
1474
  "text": "string"
1256
1475
  },
1257
- "default": "\"\"",
1258
- "description": "Badge and icon size CSS length.",
1259
- "attribute": "size",
1260
- "reflects": true
1476
+ "default": "\"md\"",
1477
+ "description": "Preset size token (`xs…xl`) or CSS size (e.g., `\"15px\"`, `\"1rem\"`). Default: `\"md\"`.",
1478
+ "attribute": "size"
1261
1479
  },
1262
1480
  {
1263
1481
  "kind": "field",
1264
- "name": "shape",
1482
+ "name": "radius",
1265
1483
  "type": {
1266
- "text": "SkyBadgeShape"
1484
+ "text": "string"
1267
1485
  },
1268
- "default": "\"custom\"",
1269
- "description": "Badge shape: `circle | pill | custom`.",
1270
- "attribute": "shape",
1271
- "reflects": true
1486
+ "default": "\"md\"",
1487
+ "description": "Preset radius token (`none…full`) or CSS radius (e.g., `\"12px\"`). Default: `\"md\"`.",
1488
+ "attribute": "radius"
1272
1489
  },
1273
1490
  {
1274
1491
  "kind": "field",
1275
- "name": "max",
1492
+ "name": "label",
1276
1493
  "type": {
1277
- "text": "number"
1494
+ "text": "string"
1278
1495
  },
1279
- "default": "99",
1280
- "description": "Maximum numeric count before rendering overflow label.",
1281
- "attribute": "max"
1496
+ "default": "\"Button\"",
1497
+ "description": "Text label for the button. Ignored if default slot is used. Default: `\"Button\"`.",
1498
+ "attribute": "label"
1282
1499
  },
1283
1500
  {
1284
1501
  "kind": "field",
1285
- "name": "hideWhenZero",
1502
+ "name": "disabled",
1286
1503
  "type": {
1287
1504
  "text": "boolean"
1288
1505
  },
1289
1506
  "default": "false",
1290
- "description": "Hides badge when value resolves to numeric zero.",
1291
- "attribute": "hideWhenZero"
1507
+ "description": "Whether the button is disabled. Default: `false`.",
1508
+ "attribute": "disabled",
1509
+ "reflects": true
1292
1510
  },
1293
1511
  {
1294
1512
  "kind": "field",
1295
- "name": "show",
1513
+ "name": "loading",
1296
1514
  "type": {
1297
1515
  "text": "boolean"
1298
1516
  },
1299
- "default": "true",
1300
- "description": "Forces badge visibility independent of value.",
1301
- "attribute": "show",
1517
+ "default": "false",
1518
+ "description": "Shows a loading overlay when true. Default: `false`.",
1519
+ "attribute": "loading",
1302
1520
  "reflects": true
1303
1521
  },
1304
1522
  {
1305
1523
  "kind": "field",
1306
- "name": "offsetX",
1524
+ "name": "iconL",
1307
1525
  "type": {
1308
1526
  "text": "string"
1309
1527
  },
1310
- "default": "\"0px\"",
1311
- "description": "Horizontal offset CSS length.",
1312
- "attribute": "offsetX"
1528
+ "default": "\"\"",
1529
+ "description": "Optional left-side icon (Iconify name). Default: `\"\"`.",
1530
+ "attribute": "iconL"
1313
1531
  },
1314
1532
  {
1315
1533
  "kind": "field",
1316
- "name": "offsetY",
1534
+ "name": "iconR",
1317
1535
  "type": {
1318
1536
  "text": "string"
1319
1537
  },
1320
- "default": "\"0px\"",
1321
- "description": "Vertical offset CSS length.",
1322
- "attribute": "offsetY"
1538
+ "default": "\"\"",
1539
+ "description": "Optional right-side icon (Iconify name). Default: `\"\"`.",
1540
+ "attribute": "iconR"
1323
1541
  },
1324
1542
  {
1325
1543
  "kind": "field",
1326
- "name": "ring",
1544
+ "name": "iconOnly",
1327
1545
  "type": {
1328
1546
  "text": "boolean"
1329
1547
  },
1330
1548
  "default": "false",
1331
- "description": "Enables visual ring around the badge.",
1332
- "attribute": "ring"
1333
- },
1334
- {
1335
- "kind": "field",
1336
- "name": "ringColor",
1337
- "type": {
1338
- "text": "string"
1339
- },
1340
- "default": "\"primary\"",
1341
- "description": "Ring color token or CSS color.",
1342
- "attribute": "ringColor"
1549
+ "description": "Square padding for icon-only buttons; hides label text. Default: `false`.",
1550
+ "attribute": "iconOnly",
1551
+ "reflects": true
1343
1552
  },
1344
1553
  {
1345
1554
  "kind": "field",
1346
- "name": "ringOffset",
1555
+ "name": "colors",
1347
1556
  "type": {
1348
1557
  "text": "string"
1349
1558
  },
1350
- "default": "\"1px\"",
1351
- "description": "Ring offset CSS length.",
1352
- "attribute": "ringOffset"
1559
+ "default": "\"\"",
1560
+ "description": "Comma-separated color stops for gradient variant. Default: `\"\"`.",
1561
+ "attribute": "colors"
1353
1562
  },
1354
1563
  {
1355
1564
  "kind": "field",
1356
- "name": "badgeLabel",
1565
+ "name": "animation",
1357
1566
  "type": {
1358
- "text": "string | null"
1567
+ "text": "SkyButtonAnimation"
1359
1568
  },
1360
- "default": "null",
1361
- "description": "ARIA label override.",
1362
- "attribute": "badgeLabel"
1569
+ "default": "\"auto\"",
1570
+ "description": "Transform animation style. Default: `\"auto\"`.",
1571
+ "attribute": "animation",
1572
+ "reflects": true
1363
1573
  },
1364
1574
  {
1365
1575
  "kind": "field",
1366
- "name": "badgeAriaHidden",
1576
+ "name": "preset",
1367
1577
  "type": {
1368
- "text": "boolean"
1578
+ "text": "string"
1369
1579
  },
1370
- "default": "false",
1371
- "description": "Hides badge from assistive technology when true.",
1372
- "attribute": "badgeAriaHidden"
1580
+ "default": "\"\"",
1581
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
1582
+ "attribute": "preset",
1583
+ "reflects": true
1373
1584
  },
1374
1585
  {
1375
1586
  "kind": "field",
1376
- "name": "interactive",
1587
+ "name": "_hasMeaningfulSlot",
1377
1588
  "type": {
1378
1589
  "text": "boolean"
1379
1590
  },
1380
- "default": "false",
1381
- "description": "Enables focus/activation and `badge-click` emission.",
1382
- "attribute": "interactive"
1383
- },
1384
- {
1385
- "kind": "field",
1386
- "name": "placement",
1387
- "type": {
1388
- "text": "SkyBadgePlacement"
1389
- },
1390
- "default": "\"custom\"",
1391
- "description": "Anchor placement preset for badge positioning.",
1392
- "attribute": "placement",
1393
- "reflects": true
1591
+ "privacy": "private",
1592
+ "default": "false"
1394
1593
  },
1395
1594
  {
1396
1595
  "kind": "field",
1397
- "name": "preset",
1596
+ "name": "_styleVars",
1398
1597
  "type": {
1399
- "text": "string"
1598
+ "text": "Record<string, string>"
1400
1599
  },
1401
- "default": "\"\"",
1402
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
1403
- "attribute": "preset",
1404
- "reflects": true
1600
+ "privacy": "private",
1601
+ "default": "{}",
1602
+ "description": "Inline CSS variable cache."
1405
1603
  },
1406
1604
  {
1407
1605
  "kind": "field",
1408
1606
  "name": "_presets",
1409
1607
  "privacy": "private",
1410
- "default": "new PresetController(this)"
1608
+ "default": "new PresetController(this, { isPaused: () => this.inGroup, onChange: () => { this._styleDirty = true; }, })"
1411
1609
  },
1412
1610
  {
1413
1611
  "kind": "field",
1414
- "name": "_badgeEl",
1612
+ "name": "_lastPresetRevision",
1415
1613
  "type": {
1416
- "text": "HTMLSpanElement"
1614
+ "text": "number"
1417
1615
  },
1418
- "privacy": "private"
1419
- },
1420
- {
1421
- "kind": "field",
1422
- "name": "badgeRef",
1423
- "privacy": "public",
1424
- "description": "Ref for the badge element (e.g. for tooltip anchor or positioning)."
1616
+ "privacy": "private",
1617
+ "default": "-1"
1425
1618
  },
1426
1619
  {
1427
1620
  "kind": "field",
1428
- "name": "shadowRootOptions",
1621
+ "name": "_styleDirty",
1429
1622
  "type": {
1430
- "text": "ShadowRootInit"
1623
+ "text": "boolean"
1431
1624
  },
1432
- "static": true,
1433
- "default": "{ mode: \"open\", delegatesFocus: true, }"
1625
+ "privacy": "private",
1626
+ "default": "true",
1627
+ "description": "Set when presets change so `update()` rebuilds CSS vars after hostUpdate."
1434
1628
  },
1435
1629
  {
1436
1630
  "kind": "method",
1437
- "name": "showBadge",
1438
- "privacy": "public",
1631
+ "name": "_slotHasMeaningfulContent",
1632
+ "privacy": "private",
1439
1633
  "return": {
1440
1634
  "type": {
1441
- "text": "void"
1635
+ "text": "boolean"
1442
1636
  }
1443
1637
  },
1444
- "description": "Forces badge visibility on."
1445
- },
1638
+ "parameters": [
1639
+ {
1640
+ "name": "slotEl",
1641
+ "type": {
1642
+ "text": "HTMLSlotElement"
1643
+ }
1644
+ }
1645
+ ]
1646
+ },
1647
+ {
1648
+ "kind": "field",
1649
+ "name": "_onSlotChange",
1650
+ "privacy": "private"
1651
+ },
1446
1652
  {
1447
1653
  "kind": "method",
1448
- "name": "hideBadge",
1449
- "privacy": "public",
1654
+ "name": "_toSquarePadding",
1655
+ "privacy": "private",
1450
1656
  "return": {
1451
1657
  "type": {
1452
- "text": "void"
1658
+ "text": "string"
1453
1659
  }
1454
1660
  },
1455
- "description": "Forces badge visibility off."
1661
+ "parameters": [
1662
+ {
1663
+ "name": "padding",
1664
+ "type": {
1665
+ "text": "string"
1666
+ }
1667
+ }
1668
+ ],
1669
+ "description": "Uses vertical padding for equal sides (icon-only square control)."
1456
1670
  },
1457
1671
  {
1458
1672
  "kind": "method",
1459
- "name": "setValue",
1460
- "privacy": "public",
1673
+ "name": "_resolveSize",
1674
+ "privacy": "private",
1461
1675
  "return": {
1462
1676
  "type": {
1463
- "text": "void"
1677
+ "text": "{\r\n padding: string;\r\n fontSize: string;\r\n gap: string;\r\n icon: string;\r\n spinner: string;\r\n }"
1464
1678
  }
1465
1679
  },
1466
1680
  "parameters": [
1467
1681
  {
1468
- "name": "value",
1682
+ "name": "input",
1469
1683
  "type": {
1470
1684
  "text": "string"
1471
- },
1472
- "description": "Badge value or icon name."
1685
+ }
1473
1686
  }
1474
- ],
1475
- "description": "Updates badge value for text/count or icon modes."
1687
+ ]
1476
1688
  },
1477
1689
  {
1478
- "kind": "field",
1479
- "name": "_onActivate",
1690
+ "kind": "method",
1691
+ "name": "_isThemeBorderShorthand",
1480
1692
  "privacy": "private",
1481
- "description": "Emits `badge-click` for interactive activation."
1693
+ "return": {
1694
+ "type": {
1695
+ "text": "boolean"
1696
+ }
1697
+ },
1698
+ "parameters": [
1699
+ {
1700
+ "name": "border",
1701
+ "type": {
1702
+ "text": "string | undefined"
1703
+ }
1704
+ }
1705
+ ],
1706
+ "description": "Theme tokens like `var(--sky-border-primary)` are full border shorthands, not colors."
1482
1707
  },
1483
1708
  {
1484
- "kind": "field",
1485
- "name": "_onKeydown",
1709
+ "kind": "method",
1710
+ "name": "_borderColorFromShorthand",
1486
1711
  "privacy": "private",
1487
- "description": "Handles keyboard activation with Enter and Space."
1712
+ "return": {
1713
+ "type": {
1714
+ "text": "string"
1715
+ }
1716
+ },
1717
+ "parameters": [
1718
+ {
1719
+ "name": "border",
1720
+ "type": {
1721
+ "text": "string | undefined"
1722
+ }
1723
+ }
1724
+ ],
1725
+ "description": "Extracts the color token from a `Npx solid …` border shorthand."
1488
1726
  },
1489
1727
  {
1490
1728
  "kind": "method",
1491
- "name": "_computeAriaLabel",
1729
+ "name": "_rebuildStyleVars",
1492
1730
  "privacy": "private",
1493
1731
  "return": {
1494
1732
  "type": {
1495
- "text": "string | null"
1733
+ "text": "void"
1496
1734
  }
1497
1735
  },
1498
1736
  "parameters": [
1499
1737
  {
1500
- "name": "displayValue",
1738
+ "name": "changedProperties",
1501
1739
  "type": {
1502
- "text": "string | null"
1740
+ "text": "Map<string, unknown>"
1503
1741
  }
1504
1742
  }
1505
- ],
1506
- "description": "Computes accessible badge label from current render state."
1743
+ ]
1507
1744
  },
1508
1745
  {
1509
1746
  "kind": "method",
1510
- "name": "_computeAnchors",
1747
+ "name": "focusButton",
1748
+ "privacy": "public",
1749
+ "return": {
1750
+ "type": {
1751
+ "text": "void"
1752
+ }
1753
+ },
1754
+ "description": "Focuses the internal native button."
1755
+ },
1756
+ {
1757
+ "kind": "method",
1758
+ "name": "clickButton",
1759
+ "privacy": "public",
1760
+ "return": {
1761
+ "type": {
1762
+ "text": "void"
1763
+ }
1764
+ },
1765
+ "description": "Triggers a click on the internal native button when enabled."
1766
+ },
1767
+ {
1768
+ "kind": "method",
1769
+ "name": "_createRipple",
1511
1770
  "privacy": "private",
1512
1771
  "return": {
1513
1772
  "type": {
1514
- "text": "{\r\n top: string;\r\n right: string;\r\n bottom: string;\r\n left: string;\r\n }"
1773
+ "text": "void"
1515
1774
  }
1516
1775
  },
1517
1776
  "parameters": [
1518
1777
  {
1519
- "name": "placement",
1778
+ "name": "event",
1520
1779
  "type": {
1521
- "text": "SkyBadgePlacement"
1780
+ "text": "MouseEvent"
1522
1781
  }
1523
1782
  }
1524
- ],
1525
- "description": "Resolves anchor edges from placement preset."
1783
+ ]
1526
1784
  },
1527
1785
  {
1528
1786
  "kind": "method",
1529
- "name": "_resolveBadgeSurface",
1530
- "privacy": "private",
1787
+ "name": "formDisabledCallback",
1531
1788
  "return": {
1532
1789
  "type": {
1533
- "text": "{\r\n bg: string;\r\n color: string;\r\n border: string;\r\n }"
1790
+ "text": "void"
1534
1791
  }
1535
1792
  },
1536
- "description": "Maps semantic status tokens to soft badge surface colors."
1537
- }
1538
- ],
1539
- "events": [
1793
+ "parameters": [
1794
+ {
1795
+ "name": "disabled",
1796
+ "type": {
1797
+ "text": "boolean"
1798
+ }
1799
+ }
1800
+ ]
1801
+ },
1540
1802
  {
1803
+ "kind": "field",
1804
+ "name": "formOwner",
1541
1805
  "type": {
1542
- "text": "CustomEvent<SkyBadgeClickEventDetail>"
1806
+ "text": "HTMLFormElement | null"
1543
1807
  },
1544
- "description": "Emitted when badge activation occurs via click, Enter, or Space while `interactive` is true.",
1545
- "name": "badge-click"
1808
+ "readonly": true
1809
+ },
1810
+ {
1811
+ "kind": "method",
1812
+ "name": "_handleClick",
1813
+ "privacy": "private",
1814
+ "return": {
1815
+ "type": {
1816
+ "text": "void"
1817
+ }
1818
+ },
1819
+ "parameters": [
1820
+ {
1821
+ "name": "event",
1822
+ "type": {
1823
+ "text": "MouseEvent"
1824
+ }
1825
+ }
1826
+ ]
1827
+ },
1828
+ {
1829
+ "kind": "method",
1830
+ "name": "_iconOnlyName",
1831
+ "privacy": "private",
1832
+ "return": {
1833
+ "type": {
1834
+ "text": "string"
1835
+ }
1836
+ }
1546
1837
  }
1547
1838
  ],
1548
1839
  "attributes": [
1549
1840
  {
1550
- "name": "statusColor",
1841
+ "name": "variant",
1551
1842
  "type": {
1552
- "text": "string"
1843
+ "text": "SkyButtonVariant"
1553
1844
  },
1554
- "default": "\"success\"",
1555
- "description": "Badge background token or CSS color.",
1556
- "fieldName": "statusColor"
1845
+ "default": "\"solid\"",
1846
+ "description": "Visual variant of the button. Use `\"link\"` for text-only control with underline on hover. Default: `\"solid\"`.",
1847
+ "fieldName": "variant"
1557
1848
  },
1558
1849
  {
1559
- "name": "textColor",
1850
+ "name": "color",
1560
1851
  "type": {
1561
1852
  "text": "string"
1562
1853
  },
1563
- "default": "\"default\"",
1564
- "description": "Text color token or CSS color.",
1565
- "fieldName": "textColor"
1854
+ "default": "\"primary\"",
1855
+ "description": "Base color token or custom CSS color. Default: `\"primary\"`.",
1856
+ "fieldName": "color"
1566
1857
  },
1567
1858
  {
1568
- "name": "iconColor",
1859
+ "name": "type",
1569
1860
  "type": {
1570
- "text": "string"
1861
+ "text": "SkyButtonType"
1571
1862
  },
1572
- "default": "\"\"",
1573
- "description": "Icon color token or CSS color; falls back to `textColor` when empty.",
1574
- "fieldName": "iconColor"
1863
+ "default": "\"button\"",
1864
+ "description": "Button type attribute. Default: `\"button\"`.",
1865
+ "fieldName": "type"
1575
1866
  },
1576
1867
  {
1577
- "name": "position",
1868
+ "name": "form",
1578
1869
  "type": {
1579
- "text": "SkyBadgePosition"
1870
+ "text": "string"
1580
1871
  },
1581
- "default": "\"default\"",
1582
- "description": "Layout mode: `default | floating | inline`.",
1583
- "fieldName": "position"
1872
+ "default": "\"\"",
1873
+ "description": "Associated form ID for custom submit handling.",
1874
+ "fieldName": "form"
1584
1875
  },
1585
1876
  {
1586
- "name": "value",
1877
+ "name": "size",
1587
1878
  "type": {
1588
1879
  "text": "string"
1589
1880
  },
1590
- "default": "\"\"",
1591
- "description": "Badge text/count or icon name in icon mode.",
1592
- "fieldName": "value"
1881
+ "default": "\"md\"",
1882
+ "description": "Preset size token (`xs…xl`) or CSS size (e.g., `\"15px\"`, `\"1rem\"`). Default: `\"md\"`.",
1883
+ "fieldName": "size"
1593
1884
  },
1594
1885
  {
1595
- "name": "isIcon",
1886
+ "name": "radius",
1596
1887
  "type": {
1597
- "text": "boolean"
1888
+ "text": "string"
1598
1889
  },
1599
- "default": "false",
1600
- "description": "Renders icon mode when true.",
1601
- "fieldName": "isIcon"
1890
+ "default": "\"md\"",
1891
+ "description": "Preset radius token (`none…full`) or CSS radius (e.g., `\"12px\"`). Default: `\"md\"`.",
1892
+ "fieldName": "radius"
1602
1893
  },
1603
1894
  {
1604
- "name": "size",
1895
+ "name": "label",
1605
1896
  "type": {
1606
1897
  "text": "string"
1607
1898
  },
1608
- "default": "\"\"",
1609
- "description": "Badge and icon size CSS length.",
1610
- "fieldName": "size"
1899
+ "default": "\"Button\"",
1900
+ "description": "Text label for the button. Ignored if default slot is used. Default: `\"Button\"`.",
1901
+ "fieldName": "label"
1611
1902
  },
1612
1903
  {
1613
- "name": "shape",
1904
+ "name": "disabled",
1614
1905
  "type": {
1615
- "text": "SkyBadgeShape"
1906
+ "text": "boolean"
1616
1907
  },
1617
- "default": "\"custom\"",
1618
- "description": "Badge shape: `circle | pill | custom`.",
1619
- "fieldName": "shape"
1908
+ "default": "false",
1909
+ "description": "Whether the button is disabled. Default: `false`.",
1910
+ "fieldName": "disabled"
1620
1911
  },
1621
1912
  {
1622
- "name": "max",
1623
- "type": {
1624
- "text": "number"
1625
- },
1626
- "default": "99",
1627
- "description": "Maximum numeric count before rendering overflow label.",
1628
- "fieldName": "max"
1629
- },
1630
- {
1631
- "name": "hideWhenZero",
1913
+ "name": "loading",
1632
1914
  "type": {
1633
1915
  "text": "boolean"
1634
1916
  },
1635
1917
  "default": "false",
1636
- "description": "Hides badge when value resolves to numeric zero.",
1637
- "fieldName": "hideWhenZero"
1638
- },
1639
- {
1640
- "name": "show",
1641
- "type": {
1642
- "text": "boolean"
1643
- },
1644
- "default": "true",
1645
- "description": "Forces badge visibility independent of value.",
1646
- "fieldName": "show"
1918
+ "description": "Shows a loading overlay when true. Default: `false`.",
1919
+ "fieldName": "loading"
1647
1920
  },
1648
1921
  {
1649
- "name": "offsetX",
1922
+ "name": "iconL",
1650
1923
  "type": {
1651
1924
  "text": "string"
1652
1925
  },
1653
- "default": "\"0px\"",
1654
- "description": "Horizontal offset CSS length.",
1655
- "fieldName": "offsetX"
1926
+ "default": "\"\"",
1927
+ "description": "Optional left-side icon (Iconify name). Default: `\"\"`.",
1928
+ "fieldName": "iconL"
1656
1929
  },
1657
1930
  {
1658
- "name": "offsetY",
1931
+ "name": "iconR",
1659
1932
  "type": {
1660
1933
  "text": "string"
1661
1934
  },
1662
- "default": "\"0px\"",
1663
- "description": "Vertical offset CSS length.",
1664
- "fieldName": "offsetY"
1935
+ "default": "\"\"",
1936
+ "description": "Optional right-side icon (Iconify name). Default: `\"\"`.",
1937
+ "fieldName": "iconR"
1665
1938
  },
1666
1939
  {
1667
- "name": "ring",
1940
+ "name": "iconOnly",
1668
1941
  "type": {
1669
1942
  "text": "boolean"
1670
1943
  },
1671
1944
  "default": "false",
1672
- "description": "Enables visual ring around the badge.",
1673
- "fieldName": "ring"
1674
- },
1675
- {
1676
- "name": "ringColor",
1677
- "type": {
1678
- "text": "string"
1679
- },
1680
- "default": "\"primary\"",
1681
- "description": "Ring color token or CSS color.",
1682
- "fieldName": "ringColor"
1945
+ "description": "Square padding for icon-only buttons; hides label text. Default: `false`.",
1946
+ "fieldName": "iconOnly"
1683
1947
  },
1684
1948
  {
1685
- "name": "ringOffset",
1949
+ "name": "colors",
1686
1950
  "type": {
1687
1951
  "text": "string"
1688
1952
  },
1689
- "default": "\"1px\"",
1690
- "description": "Ring offset CSS length.",
1691
- "fieldName": "ringOffset"
1692
- },
1693
- {
1694
- "name": "badgeLabel",
1695
- "type": {
1696
- "text": "string | null"
1697
- },
1698
- "default": "null",
1699
- "description": "ARIA label override.",
1700
- "fieldName": "badgeLabel"
1701
- },
1702
- {
1703
- "name": "badgeAriaHidden",
1704
- "type": {
1705
- "text": "boolean"
1706
- },
1707
- "default": "false",
1708
- "description": "Hides badge from assistive technology when true.",
1709
- "fieldName": "badgeAriaHidden"
1710
- },
1711
- {
1712
- "name": "interactive",
1713
- "type": {
1714
- "text": "boolean"
1715
- },
1716
- "default": "false",
1717
- "description": "Enables focus/activation and `badge-click` emission.",
1718
- "fieldName": "interactive"
1953
+ "default": "\"\"",
1954
+ "description": "Comma-separated color stops for gradient variant. Default: `\"\"`.",
1955
+ "fieldName": "colors"
1719
1956
  },
1720
1957
  {
1721
- "name": "placement",
1958
+ "name": "animation",
1722
1959
  "type": {
1723
- "text": "SkyBadgePlacement"
1960
+ "text": "SkyButtonAnimation"
1724
1961
  },
1725
- "default": "\"custom\"",
1726
- "description": "Anchor placement preset for badge positioning.",
1727
- "fieldName": "placement"
1962
+ "default": "\"auto\"",
1963
+ "description": "Transform animation style. Default: `\"auto\"`.",
1964
+ "fieldName": "animation"
1728
1965
  },
1729
1966
  {
1730
1967
  "name": "preset",
@@ -1740,562 +1977,361 @@
1740
1977
  "name": "LitElement",
1741
1978
  "package": "lit"
1742
1979
  },
1743
- "tagName": "sky-badge",
1980
+ "tagName": "sky-button",
1744
1981
  "customElement": true,
1745
- "summary": "Badge for status dots, counts, or icons anchored to slotted content."
1982
+ "summary": "Styled button supporting variants, icons, loading state, ripple feedback, and form-associated behavior."
1746
1983
  }
1747
1984
  ],
1748
1985
  "exports": [
1749
1986
  {
1750
1987
  "kind": "js",
1751
- "name": "SkyBadge",
1988
+ "name": "SkyButton",
1752
1989
  "declaration": {
1753
- "name": "SkyBadge",
1754
- "module": "src/sky-badge/sky-badge.ts"
1990
+ "name": "SkyButton",
1991
+ "module": "src/sky-button/sky-button.ts"
1755
1992
  }
1756
1993
  },
1757
1994
  {
1758
1995
  "kind": "custom-element-definition",
1759
- "name": "sky-badge",
1996
+ "name": "sky-button",
1760
1997
  "declaration": {
1761
- "name": "SkyBadge",
1762
- "module": "src/sky-badge/sky-badge.ts"
1998
+ "name": "SkyButton",
1999
+ "module": "src/sky-button/sky-button.ts"
1763
2000
  }
1764
2001
  }
1765
2002
  ]
1766
2003
  },
1767
2004
  {
1768
2005
  "kind": "javascript-module",
1769
- "path": "src/sky-button/sky-button.ts",
2006
+ "path": "src/sky-avatar/sky-avatar.ts",
1770
2007
  "declarations": [
1771
2008
  {
1772
2009
  "kind": "class",
1773
2010
  "description": "",
1774
- "name": "SkyButton",
2011
+ "name": "SkyAvatar",
1775
2012
  "cssParts": [
1776
2013
  {
1777
- "description": "The native `<button>` element.",
1778
- "name": "button"
1779
- },
1780
- {
1781
- "description": "The optional left/right icons.",
1782
- "name": "icon"
2014
+ "description": "The avatar container element.",
2015
+ "name": "avatar"
1783
2016
  },
1784
2017
  {
1785
- "description": "Overlay displayed when loading.",
2018
+ "description": "The loading overlay container (shown when `loading` is true).",
1786
2019
  "name": "loading-overlay"
1787
2020
  },
1788
2021
  {
1789
- "description": "Spinner displayed when loading.",
2022
+ "description": "The spinner element shown when loading.",
1790
2023
  "name": "spinner"
1791
2024
  }
1792
2025
  ],
1793
2026
  "slots": [
1794
2027
  {
1795
- "description": "Default slot for the button label (replaces `label` property if used).",
2028
+ "description": "Fallback content (e.g., initials or an icon) rendered when `image` is empty.",
1796
2029
  "name": ""
1797
2030
  }
1798
2031
  ],
1799
2032
  "members": [
1800
2033
  {
1801
2034
  "kind": "field",
1802
- "name": "dependencies",
2035
+ "name": "size",
1803
2036
  "type": {
1804
- "text": "Record<string, CustomElementConstructor>"
2037
+ "text": "string"
1805
2038
  },
1806
- "static": true,
1807
- "default": "{ \"sky-icon\": SkyIcon, }"
2039
+ "default": "\"50px\"",
2040
+ "description": "Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).",
2041
+ "attribute": "size"
1808
2042
  },
1809
2043
  {
1810
2044
  "kind": "field",
1811
- "name": "formAssociated",
2045
+ "name": "image",
1812
2046
  "type": {
1813
- "text": "boolean"
2047
+ "text": "string"
1814
2048
  },
1815
- "static": true,
1816
- "default": "true"
2049
+ "default": "\"\"",
2050
+ "description": "Image URL; fallback slot is shown on load error.",
2051
+ "attribute": "image"
1817
2052
  },
1818
2053
  {
1819
2054
  "kind": "field",
1820
- "name": "internals",
2055
+ "name": "fit",
1821
2056
  "type": {
1822
- "text": "ElementInternals"
2057
+ "text": "SkyAvatarFit"
1823
2058
  },
1824
- "privacy": "private"
2059
+ "default": "\"cover\"",
2060
+ "description": "Image fill mode: `cover` (default) or `contain`.",
2061
+ "attribute": "fit",
2062
+ "reflects": true
1825
2063
  },
1826
2064
  {
1827
2065
  "kind": "field",
1828
- "name": "variant",
2066
+ "name": "radius",
1829
2067
  "type": {
1830
- "text": "SkyButtonVariant"
2068
+ "text": "string"
1831
2069
  },
1832
- "default": "\"solid\"",
1833
- "description": "Visual variant of the button. Use `\"link\"` for text-only control with underline on hover. Default: `\"solid\"`.",
1834
- "attribute": "variant",
1835
- "reflects": true
2070
+ "default": "\"md\"",
2071
+ "description": "Border radius token or CSS value.",
2072
+ "attribute": "radius"
1836
2073
  },
1837
2074
  {
1838
2075
  "kind": "field",
1839
- "name": "color",
2076
+ "name": "alt",
1840
2077
  "type": {
1841
2078
  "text": "string"
1842
2079
  },
1843
- "default": "\"primary\"",
1844
- "description": "Base color token or custom CSS color. Default: `\"primary\"`.",
1845
- "attribute": "color"
2080
+ "default": "\"\"",
2081
+ "description": "Accessible name when image content conveys meaning.",
2082
+ "attribute": "alt"
1846
2083
  },
1847
2084
  {
1848
2085
  "kind": "field",
1849
- "name": "type",
2086
+ "name": "color",
1850
2087
  "type": {
1851
- "text": "SkyButtonType"
2088
+ "text": "string"
1852
2089
  },
1853
- "default": "\"button\"",
1854
- "description": "Button type attribute. Default: `\"button\"`.",
1855
- "attribute": "type"
2090
+ "default": "\"dark\"",
2091
+ "description": "Token or CSS color applied to fallback slot content.",
2092
+ "attribute": "color"
1856
2093
  },
1857
2094
  {
1858
2095
  "kind": "field",
1859
- "name": "form",
2096
+ "name": "outline",
1860
2097
  "type": {
1861
2098
  "text": "string"
1862
2099
  },
1863
2100
  "default": "\"\"",
1864
- "description": "Associated form ID for custom submit handling.",
1865
- "attribute": "form"
2101
+ "description": "CSS `outline` value.",
2102
+ "attribute": "outline"
1866
2103
  },
1867
2104
  {
1868
2105
  "kind": "field",
1869
- "name": "size",
2106
+ "name": "outlineOffset",
1870
2107
  "type": {
1871
2108
  "text": "string"
1872
2109
  },
1873
- "default": "\"md\"",
1874
- "description": "Preset size token (`xs…xl`) or CSS size (e.g., `\"15px\"`, `\"1rem\"`). Default: `\"md\"`.",
1875
- "attribute": "size"
2110
+ "default": "\"2px\"",
2111
+ "description": "CSS `outline-offset` value.",
2112
+ "attribute": "outlineOffset"
1876
2113
  },
1877
2114
  {
1878
2115
  "kind": "field",
1879
- "name": "radius",
2116
+ "name": "loading",
1880
2117
  "type": {
1881
- "text": "string"
2118
+ "text": "boolean"
1882
2119
  },
1883
- "default": "\"md\"",
1884
- "description": "Preset radius token (`none…full`) or CSS radius (e.g., `\"12px\"`). Default: `\"md\"`.",
1885
- "attribute": "radius"
2120
+ "default": "false",
2121
+ "description": "Shows loading overlay when true.",
2122
+ "attribute": "loading",
2123
+ "reflects": true
1886
2124
  },
1887
2125
  {
1888
2126
  "kind": "field",
1889
- "name": "label",
2127
+ "name": "disabled",
1890
2128
  "type": {
1891
- "text": "string"
2129
+ "text": "boolean"
1892
2130
  },
1893
- "default": "\"Button\"",
1894
- "description": "Text label for the button. Ignored if default slot is used. Default: `\"Button\"`.",
1895
- "attribute": "label"
2131
+ "default": "false",
2132
+ "description": "Dims and disables pointer interactions.",
2133
+ "attribute": "disabled",
2134
+ "reflects": true
1896
2135
  },
1897
2136
  {
1898
2137
  "kind": "field",
1899
- "name": "disabled",
2138
+ "name": "interactive",
1900
2139
  "type": {
1901
2140
  "text": "boolean"
1902
2141
  },
1903
2142
  "default": "false",
1904
- "description": "Whether the button is disabled. Default: `false`.",
1905
- "attribute": "disabled",
1906
- "reflects": true
2143
+ "description": "Enables interactive behavior with keyboard/click activation.",
2144
+ "attribute": "interactive"
1907
2145
  },
1908
2146
  {
1909
2147
  "kind": "field",
1910
- "name": "loading",
2148
+ "name": "shadow",
1911
2149
  "type": {
1912
2150
  "text": "boolean"
1913
2151
  },
1914
2152
  "default": "false",
1915
- "description": "Shows a loading overlay when true. Default: `false`.",
1916
- "attribute": "loading",
2153
+ "description": "When true, applies solid surface, border ring, and elevation; no backdrop blur.",
2154
+ "attribute": "shadow",
1917
2155
  "reflects": true
1918
2156
  },
1919
2157
  {
1920
2158
  "kind": "field",
1921
- "name": "iconL",
2159
+ "name": "_imageError",
1922
2160
  "type": {
1923
- "text": "string"
2161
+ "text": "boolean"
1924
2162
  },
1925
- "default": "\"\"",
1926
- "description": "Optional left-side icon (Iconify name). Default: `\"\"`.",
1927
- "attribute": "iconL"
2163
+ "privacy": "private",
2164
+ "default": "false",
2165
+ "description": "True when image failed to load; show slot instead."
1928
2166
  },
1929
2167
  {
1930
2168
  "kind": "field",
1931
- "name": "iconR",
2169
+ "name": "preset",
1932
2170
  "type": {
1933
2171
  "text": "string"
1934
2172
  },
1935
2173
  "default": "\"\"",
1936
- "description": "Optional right-side icon (Iconify name). Default: `\"\"`.",
1937
- "attribute": "iconR"
1938
- },
1939
- {
1940
- "kind": "field",
1941
- "name": "iconOnly",
1942
- "type": {
1943
- "text": "boolean"
1944
- },
1945
- "default": "false",
1946
- "description": "Square padding for icon-only buttons; hides label text. Default: `false`.",
1947
- "attribute": "iconOnly",
1948
- "reflects": true
1949
- },
1950
- {
1951
- "kind": "field",
1952
- "name": "colors",
1953
- "type": {
1954
- "text": "string"
1955
- },
1956
- "default": "\"\"",
1957
- "description": "Comma-separated color stops for gradient variant. Default: `\"\"`.",
1958
- "attribute": "colors"
1959
- },
1960
- {
1961
- "kind": "field",
1962
- "name": "animation",
1963
- "type": {
1964
- "text": "SkyButtonAnimation"
1965
- },
1966
- "default": "\"auto\"",
1967
- "description": "Transform animation style. Default: `\"auto\"`.",
1968
- "attribute": "animation",
1969
- "reflects": true
1970
- },
1971
- {
1972
- "kind": "field",
1973
- "name": "preset",
1974
- "type": {
1975
- "text": "string"
1976
- },
1977
- "default": "\"\"",
1978
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
1979
- "attribute": "preset",
1980
- "reflects": true
1981
- },
1982
- {
1983
- "kind": "field",
1984
- "name": "_hasMeaningfulSlot",
1985
- "type": {
1986
- "text": "boolean"
1987
- },
1988
- "privacy": "private",
1989
- "default": "false"
1990
- },
1991
- {
1992
- "kind": "field",
1993
- "name": "_styleVars",
1994
- "type": {
1995
- "text": "Record<string, string>"
1996
- },
1997
- "privacy": "private",
1998
- "default": "{}",
1999
- "description": "Inline CSS variable cache."
2174
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
2175
+ "attribute": "preset",
2176
+ "reflects": true
2000
2177
  },
2001
2178
  {
2002
2179
  "kind": "field",
2003
2180
  "name": "_presets",
2004
2181
  "privacy": "private",
2005
- "default": "new PresetController(this, { isPaused: () => this.inGroup, onChange: () => { this._styleDirty = true; }, })"
2182
+ "default": "new PresetController(this)"
2006
2183
  },
2007
2184
  {
2008
2185
  "kind": "field",
2009
- "name": "_lastPresetRevision",
2010
- "type": {
2011
- "text": "number"
2012
- },
2186
+ "name": "_onImageLoad",
2013
2187
  "privacy": "private",
2014
- "default": "-1"
2188
+ "description": "Marks image load success and keeps image rendering active."
2015
2189
  },
2016
2190
  {
2017
2191
  "kind": "field",
2018
- "name": "_styleDirty",
2019
- "type": {
2020
- "text": "boolean"
2021
- },
2192
+ "name": "_onImageError",
2022
2193
  "privacy": "private",
2023
- "default": "true",
2024
- "description": "Set when presets change so `update()` rebuilds CSS vars after hostUpdate."
2194
+ "description": "Marks image load failure and enables fallback slot rendering."
2025
2195
  },
2026
2196
  {
2027
2197
  "kind": "method",
2028
- "name": "_slotHasMeaningfulContent",
2198
+ "name": "_handleInteractiveClick",
2029
2199
  "privacy": "private",
2030
2200
  "return": {
2031
2201
  "type": {
2032
- "text": "boolean"
2202
+ "text": "void"
2033
2203
  }
2034
2204
  },
2035
2205
  "parameters": [
2036
2206
  {
2037
- "name": "slotEl",
2207
+ "name": "e",
2038
2208
  "type": {
2039
- "text": "HTMLSlotElement"
2209
+ "text": "Event"
2040
2210
  }
2041
2211
  }
2042
- ]
2043
- },
2044
- {
2045
- "kind": "field",
2046
- "name": "_onSlotChange",
2047
- "privacy": "private"
2212
+ ],
2213
+ "description": "Re-dispatches click in interactive mode for host-level consumers."
2048
2214
  },
2049
2215
  {
2050
2216
  "kind": "method",
2051
- "name": "_toSquarePadding",
2217
+ "name": "_handleInteractiveKeydown",
2052
2218
  "privacy": "private",
2053
2219
  "return": {
2054
2220
  "type": {
2055
- "text": "string"
2221
+ "text": "void"
2056
2222
  }
2057
2223
  },
2058
2224
  "parameters": [
2059
2225
  {
2060
- "name": "padding",
2226
+ "name": "e",
2061
2227
  "type": {
2062
- "text": "string"
2228
+ "text": "KeyboardEvent"
2063
2229
  }
2064
2230
  }
2065
2231
  ],
2066
- "description": "Uses vertical padding for equal sides (icon-only square control)."
2232
+ "description": "Handles keyboard activation in interactive mode."
2067
2233
  },
2068
2234
  {
2069
2235
  "kind": "method",
2070
- "name": "_resolveSize",
2236
+ "name": "adjustSpinnerSize",
2071
2237
  "privacy": "private",
2072
2238
  "return": {
2073
2239
  "type": {
2074
- "text": "{\r\n padding: string;\r\n fontSize: string;\r\n gap: string;\r\n icon: string;\r\n spinner: string;\r\n }"
2240
+ "text": "void"
2075
2241
  }
2076
2242
  },
2077
- "parameters": [
2078
- {
2079
- "name": "input",
2080
- "type": {
2081
- "text": "string"
2082
- }
2083
- }
2084
- ]
2085
- },
2243
+ "description": "Derives spinner dimensions from current avatar size."
2244
+ }
2245
+ ],
2246
+ "events": [
2086
2247
  {
2087
- "kind": "method",
2088
- "name": "_isThemeBorderShorthand",
2089
- "privacy": "private",
2090
- "return": {
2091
- "type": {
2092
- "text": "boolean"
2093
- }
2094
- },
2095
- "parameters": [
2096
- {
2097
- "name": "border",
2098
- "type": {
2099
- "text": "string | undefined"
2100
- }
2101
- }
2102
- ],
2103
- "description": "Theme tokens like `var(--sky-border-primary)` are full border shorthands, not colors."
2104
- },
2248
+ "name": "click",
2249
+ "type": {
2250
+ "text": "Event"
2251
+ }
2252
+ }
2253
+ ],
2254
+ "attributes": [
2105
2255
  {
2106
- "kind": "method",
2107
- "name": "_borderColorFromShorthand",
2108
- "privacy": "private",
2109
- "return": {
2110
- "type": {
2111
- "text": "string"
2112
- }
2256
+ "name": "size",
2257
+ "type": {
2258
+ "text": "string"
2113
2259
  },
2114
- "parameters": [
2115
- {
2116
- "name": "border",
2117
- "type": {
2118
- "text": "string | undefined"
2119
- }
2120
- }
2121
- ],
2122
- "description": "Extracts the color token from a `Npx solid …` border shorthand."
2260
+ "default": "\"50px\"",
2261
+ "description": "Avatar size: preset `sm` | `md` | `lg` or CSS length (for example `50px`).",
2262
+ "fieldName": "size"
2123
2263
  },
2124
2264
  {
2125
- "kind": "method",
2126
- "name": "_rebuildStyleVars",
2127
- "privacy": "private",
2128
- "return": {
2129
- "type": {
2130
- "text": "void"
2131
- }
2265
+ "name": "image",
2266
+ "type": {
2267
+ "text": "string"
2132
2268
  },
2133
- "parameters": [
2134
- {
2135
- "name": "changedProperties",
2136
- "type": {
2137
- "text": "Map<string, unknown>"
2138
- }
2139
- }
2140
- ]
2269
+ "default": "\"\"",
2270
+ "description": "Image URL; fallback slot is shown on load error.",
2271
+ "fieldName": "image"
2141
2272
  },
2142
2273
  {
2143
- "kind": "method",
2144
- "name": "focusButton",
2145
- "privacy": "public",
2146
- "return": {
2147
- "type": {
2148
- "text": "void"
2149
- }
2274
+ "name": "fit",
2275
+ "type": {
2276
+ "text": "SkyAvatarFit"
2150
2277
  },
2151
- "description": "Focuses the internal native button."
2278
+ "default": "\"cover\"",
2279
+ "description": "Image fill mode: `cover` (default) or `contain`.",
2280
+ "fieldName": "fit"
2152
2281
  },
2153
2282
  {
2154
- "kind": "method",
2155
- "name": "clickButton",
2156
- "privacy": "public",
2157
- "return": {
2158
- "type": {
2159
- "text": "void"
2160
- }
2283
+ "name": "radius",
2284
+ "type": {
2285
+ "text": "string"
2161
2286
  },
2162
- "description": "Triggers a click on the internal native button when enabled."
2287
+ "default": "\"md\"",
2288
+ "description": "Border radius token or CSS value.",
2289
+ "fieldName": "radius"
2163
2290
  },
2164
2291
  {
2165
- "kind": "method",
2166
- "name": "_createRipple",
2167
- "privacy": "private",
2168
- "return": {
2169
- "type": {
2170
- "text": "void"
2171
- }
2292
+ "name": "alt",
2293
+ "type": {
2294
+ "text": "string"
2172
2295
  },
2173
- "parameters": [
2174
- {
2175
- "name": "event",
2176
- "type": {
2177
- "text": "MouseEvent"
2178
- }
2179
- }
2180
- ]
2296
+ "default": "\"\"",
2297
+ "description": "Accessible name when image content conveys meaning.",
2298
+ "fieldName": "alt"
2181
2299
  },
2182
2300
  {
2183
- "kind": "method",
2184
- "name": "formDisabledCallback",
2185
- "return": {
2186
- "type": {
2187
- "text": "void"
2188
- }
2301
+ "name": "color",
2302
+ "type": {
2303
+ "text": "string"
2189
2304
  },
2190
- "parameters": [
2191
- {
2192
- "name": "disabled",
2193
- "type": {
2194
- "text": "boolean"
2195
- }
2196
- }
2197
- ]
2305
+ "default": "\"dark\"",
2306
+ "description": "Token or CSS color applied to fallback slot content.",
2307
+ "fieldName": "color"
2198
2308
  },
2199
2309
  {
2200
- "kind": "field",
2201
- "name": "formOwner",
2202
- "type": {
2203
- "text": "HTMLFormElement | null"
2204
- },
2205
- "readonly": true
2206
- },
2207
- {
2208
- "kind": "method",
2209
- "name": "_handleClick",
2210
- "privacy": "private",
2211
- "return": {
2212
- "type": {
2213
- "text": "void"
2214
- }
2215
- },
2216
- "parameters": [
2217
- {
2218
- "name": "event",
2219
- "type": {
2220
- "text": "MouseEvent"
2221
- }
2222
- }
2223
- ]
2224
- },
2225
- {
2226
- "kind": "method",
2227
- "name": "_iconOnlyName",
2228
- "privacy": "private",
2229
- "return": {
2230
- "type": {
2231
- "text": "string"
2232
- }
2233
- }
2234
- }
2235
- ],
2236
- "attributes": [
2237
- {
2238
- "name": "variant",
2239
- "type": {
2240
- "text": "SkyButtonVariant"
2241
- },
2242
- "default": "\"solid\"",
2243
- "description": "Visual variant of the button. Use `\"link\"` for text-only control with underline on hover. Default: `\"solid\"`.",
2244
- "fieldName": "variant"
2245
- },
2246
- {
2247
- "name": "color",
2248
- "type": {
2249
- "text": "string"
2250
- },
2251
- "default": "\"primary\"",
2252
- "description": "Base color token or custom CSS color. Default: `\"primary\"`.",
2253
- "fieldName": "color"
2254
- },
2255
- {
2256
- "name": "type",
2257
- "type": {
2258
- "text": "SkyButtonType"
2259
- },
2260
- "default": "\"button\"",
2261
- "description": "Button type attribute. Default: `\"button\"`.",
2262
- "fieldName": "type"
2263
- },
2264
- {
2265
- "name": "form",
2310
+ "name": "outline",
2266
2311
  "type": {
2267
2312
  "text": "string"
2268
2313
  },
2269
2314
  "default": "\"\"",
2270
- "description": "Associated form ID for custom submit handling.",
2271
- "fieldName": "form"
2272
- },
2273
- {
2274
- "name": "size",
2275
- "type": {
2276
- "text": "string"
2277
- },
2278
- "default": "\"md\"",
2279
- "description": "Preset size token (`xs…xl`) or CSS size (e.g., `\"15px\"`, `\"1rem\"`). Default: `\"md\"`.",
2280
- "fieldName": "size"
2315
+ "description": "CSS `outline` value.",
2316
+ "fieldName": "outline"
2281
2317
  },
2282
2318
  {
2283
- "name": "radius",
2319
+ "name": "outlineOffset",
2284
2320
  "type": {
2285
2321
  "text": "string"
2286
2322
  },
2287
- "default": "\"md\"",
2288
- "description": "Preset radius token (`none…full`) or CSS radius (e.g., `\"12px\"`). Default: `\"md\"`.",
2289
- "fieldName": "radius"
2323
+ "default": "\"2px\"",
2324
+ "description": "CSS `outline-offset` value.",
2325
+ "fieldName": "outlineOffset"
2290
2326
  },
2291
2327
  {
2292
- "name": "label",
2328
+ "name": "loading",
2293
2329
  "type": {
2294
- "text": "string"
2330
+ "text": "boolean"
2295
2331
  },
2296
- "default": "\"Button\"",
2297
- "description": "Text label for the button. Ignored if default slot is used. Default: `\"Button\"`.",
2298
- "fieldName": "label"
2332
+ "default": "false",
2333
+ "description": "Shows loading overlay when true.",
2334
+ "fieldName": "loading"
2299
2335
  },
2300
2336
  {
2301
2337
  "name": "disabled",
@@ -2303,62 +2339,26 @@
2303
2339
  "text": "boolean"
2304
2340
  },
2305
2341
  "default": "false",
2306
- "description": "Whether the button is disabled. Default: `false`.",
2342
+ "description": "Dims and disables pointer interactions.",
2307
2343
  "fieldName": "disabled"
2308
2344
  },
2309
2345
  {
2310
- "name": "loading",
2346
+ "name": "interactive",
2311
2347
  "type": {
2312
2348
  "text": "boolean"
2313
2349
  },
2314
2350
  "default": "false",
2315
- "description": "Shows a loading overlay when true. Default: `false`.",
2316
- "fieldName": "loading"
2317
- },
2318
- {
2319
- "name": "iconL",
2320
- "type": {
2321
- "text": "string"
2322
- },
2323
- "default": "\"\"",
2324
- "description": "Optional left-side icon (Iconify name). Default: `\"\"`.",
2325
- "fieldName": "iconL"
2326
- },
2327
- {
2328
- "name": "iconR",
2329
- "type": {
2330
- "text": "string"
2331
- },
2332
- "default": "\"\"",
2333
- "description": "Optional right-side icon (Iconify name). Default: `\"\"`.",
2334
- "fieldName": "iconR"
2351
+ "description": "Enables interactive behavior with keyboard/click activation.",
2352
+ "fieldName": "interactive"
2335
2353
  },
2336
2354
  {
2337
- "name": "iconOnly",
2355
+ "name": "shadow",
2338
2356
  "type": {
2339
2357
  "text": "boolean"
2340
2358
  },
2341
2359
  "default": "false",
2342
- "description": "Square padding for icon-only buttons; hides label text. Default: `false`.",
2343
- "fieldName": "iconOnly"
2344
- },
2345
- {
2346
- "name": "colors",
2347
- "type": {
2348
- "text": "string"
2349
- },
2350
- "default": "\"\"",
2351
- "description": "Comma-separated color stops for gradient variant. Default: `\"\"`.",
2352
- "fieldName": "colors"
2353
- },
2354
- {
2355
- "name": "animation",
2356
- "type": {
2357
- "text": "SkyButtonAnimation"
2358
- },
2359
- "default": "\"auto\"",
2360
- "description": "Transform animation style. Default: `\"auto\"`.",
2361
- "fieldName": "animation"
2360
+ "description": "When true, applies solid surface, border ring, and elevation; no backdrop blur.",
2361
+ "fieldName": "shadow"
2362
2362
  },
2363
2363
  {
2364
2364
  "name": "preset",
@@ -2374,26 +2374,26 @@
2374
2374
  "name": "LitElement",
2375
2375
  "package": "lit"
2376
2376
  },
2377
- "tagName": "sky-button",
2377
+ "tagName": "sky-avatar",
2378
2378
  "customElement": true,
2379
- "summary": "Styled button supporting variants, icons, loading state, ripple feedback, and form-associated behavior."
2379
+ "summary": "Avatar that renders image content or fallback slot content with configurable size, radius, outline, and loading state."
2380
2380
  }
2381
2381
  ],
2382
2382
  "exports": [
2383
2383
  {
2384
2384
  "kind": "js",
2385
- "name": "SkyButton",
2385
+ "name": "SkyAvatar",
2386
2386
  "declaration": {
2387
- "name": "SkyButton",
2388
- "module": "src/sky-button/sky-button.ts"
2387
+ "name": "SkyAvatar",
2388
+ "module": "src/sky-avatar/sky-avatar.ts"
2389
2389
  }
2390
2390
  },
2391
2391
  {
2392
2392
  "kind": "custom-element-definition",
2393
- "name": "sky-button",
2393
+ "name": "sky-avatar",
2394
2394
  "declaration": {
2395
- "name": "SkyButton",
2396
- "module": "src/sky-button/sky-button.ts"
2395
+ "name": "SkyAvatar",
2396
+ "module": "src/sky-avatar/sky-avatar.ts"
2397
2397
  }
2398
2398
  }
2399
2399
  ]
@@ -10053,747 +10053,401 @@
10053
10053
  },
10054
10054
  {
10055
10055
  "kind": "javascript-module",
10056
- "path": "src/sky-list/sky-list.ts",
10056
+ "path": "src/sky-input/sky-input.ts",
10057
10057
  "declarations": [
10058
10058
  {
10059
10059
  "kind": "class",
10060
10060
  "description": "",
10061
- "name": "SkyList",
10061
+ "name": "SkyInput",
10062
10062
  "cssParts": [
10063
10063
  {
10064
- "description": "The main container wrapping slotted list items.",
10065
- "name": "list-container"
10064
+ "description": "The outer container wrapping label and input wrapper.",
10065
+ "name": "input-container"
10066
+ },
10067
+ {
10068
+ "description": "The label element above the input.",
10069
+ "name": "label"
10070
+ },
10071
+ {
10072
+ "description": "The wrapper around input/textarea and icons.",
10073
+ "name": "input-wrapper"
10074
+ },
10075
+ {
10076
+ "description": "Base class for left/right icon slots.",
10077
+ "name": "icon-slot"
10078
+ },
10079
+ {
10080
+ "description": "Left icon slot.",
10081
+ "name": "icon-slot-left"
10082
+ },
10083
+ {
10084
+ "description": "Right icon slot.",
10085
+ "name": "icon-slot-right"
10086
+ },
10087
+ {
10088
+ "description": "The clear/reset button.",
10089
+ "name": "clear-button"
10090
+ },
10091
+ {
10092
+ "description": "The toggle icon for password visibility.",
10093
+ "name": "toggle-password"
10094
+ },
10095
+ {
10096
+ "description": "The spinner shown when loading.",
10097
+ "name": "loading-indicator"
10098
+ },
10099
+ {
10100
+ "description": "UL element containing validation errors.",
10101
+ "name": "error-list"
10102
+ },
10103
+ {
10104
+ "description": "Individual error message.",
10105
+ "name": "error"
10106
+ },
10107
+ {
10108
+ "description": "File count and size info below the file input.",
10109
+ "name": "file-info"
10110
+ },
10111
+ {
10112
+ "description": "Inline prefix fragment inside the field.",
10113
+ "name": "input-prefix"
10114
+ },
10115
+ {
10116
+ "description": "Inline suffix fragment inside the field.",
10117
+ "name": "input-suffix"
10066
10118
  }
10067
10119
  ],
10068
10120
  "slots": [
10069
10121
  {
10070
- "description": "Default slot for `<sky-listitem>` children.",
10071
- "name": ""
10122
+ "description": "Optional icon/content placed in the left slot.",
10123
+ "name": "icon-left"
10124
+ },
10125
+ {
10126
+ "description": "Optional icon/content placed in the right slot.",
10127
+ "name": "icon-right"
10072
10128
  }
10073
10129
  ],
10074
10130
  "members": [
10075
10131
  {
10076
10132
  "kind": "field",
10077
- "name": "preset",
10133
+ "name": "dependencies",
10078
10134
  "type": {
10079
- "text": "string"
10135
+ "text": "Record<string, CustomElementConstructor>"
10080
10136
  },
10081
- "default": "\"\"",
10082
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
10083
- "attribute": "preset",
10084
- "reflects": true
10137
+ "static": true,
10138
+ "default": "{ \"sky-icon\": SkyIcon, }"
10085
10139
  },
10086
10140
  {
10087
10141
  "kind": "field",
10088
- "name": "_presets",
10089
- "privacy": "private",
10090
- "default": "new PresetController(this)"
10142
+ "name": "value",
10143
+ "type": {
10144
+ "text": "SkyInputValue"
10145
+ },
10146
+ "default": "\"\"",
10147
+ "description": "Current input value.",
10148
+ "attribute": "value"
10091
10149
  },
10092
10150
  {
10093
10151
  "kind": "field",
10094
- "name": "selection",
10152
+ "name": "placeholder",
10095
10153
  "type": {
10096
- "text": "SkyListSelectionMode"
10154
+ "text": "string"
10097
10155
  },
10098
- "default": "\"none\"",
10099
- "description": "Selection mode (`none`, `single`, `multiple`).",
10100
- "attribute": "selection"
10156
+ "default": "\"\"",
10157
+ "description": "Placeholder text.",
10158
+ "attribute": "placeholder"
10101
10159
  },
10102
10160
  {
10103
10161
  "kind": "field",
10104
- "name": "_selectedValues",
10162
+ "name": "label",
10105
10163
  "type": {
10106
- "text": "string[]"
10164
+ "text": "string"
10107
10165
  },
10108
- "privacy": "private",
10109
- "default": "[]"
10166
+ "default": "\"\"",
10167
+ "description": "Label text. Above the field by default; on the border for `fieldset`; inside the field for `inside`.",
10168
+ "attribute": "label"
10110
10169
  },
10111
10170
  {
10112
10171
  "kind": "field",
10113
- "name": "selectedValues",
10172
+ "name": "type",
10114
10173
  "type": {
10115
- "text": "string[]"
10174
+ "text": "SkyInputType"
10116
10175
  },
10117
- "description": "Selected item `value`s (mirror for `v-model`; set each `<sky-listitem value=\"…\">`). Default: `[]`.",
10118
- "attribute": "selectedValues"
10176
+ "default": "\"text\"",
10177
+ "description": "Input type (`text`, `password`, `number`, `textarea`, `file`, etc.).",
10178
+ "attribute": "type"
10119
10179
  },
10120
10180
  {
10121
10181
  "kind": "field",
10122
- "name": "items",
10182
+ "name": "suffix",
10123
10183
  "type": {
10124
- "text": "SkyListitem[]"
10184
+ "text": "string"
10125
10185
  },
10126
- "privacy": "private"
10186
+ "default": "\"\"",
10187
+ "description": "Optional suffix label fragment.",
10188
+ "attribute": "suffix"
10127
10189
  },
10128
10190
  {
10129
10191
  "kind": "field",
10130
- "name": "currentIndex",
10192
+ "name": "prefix",
10131
10193
  "type": {
10132
- "text": "number"
10194
+ "text": "string"
10133
10195
  },
10134
- "privacy": "private",
10135
- "default": "0"
10196
+ "default": "\"\"",
10197
+ "description": "Optional prefix label fragment.",
10198
+ "attribute": "prefix"
10136
10199
  },
10137
10200
  {
10138
10201
  "kind": "field",
10139
- "name": "_syncingSelectedValues",
10202
+ "name": "prefixColor",
10140
10203
  "type": {
10141
- "text": "boolean"
10204
+ "text": "string"
10142
10205
  },
10143
- "privacy": "private",
10144
- "default": "false",
10145
- "description": "Avoid feedback when syncing selection from the `selectedValues` prop."
10206
+ "default": "\"\"",
10207
+ "description": "Prefix color override.",
10208
+ "attribute": "prefixColor"
10146
10209
  },
10147
10210
  {
10148
10211
  "kind": "field",
10149
- "name": "_onItemActivate",
10150
- "privacy": "private"
10212
+ "name": "suffixColor",
10213
+ "type": {
10214
+ "text": "string"
10215
+ },
10216
+ "default": "\"\"",
10217
+ "description": "Suffix color override.",
10218
+ "attribute": "suffixColor"
10151
10219
  },
10152
10220
  {
10153
10221
  "kind": "field",
10154
- "name": "_onSlotChange",
10155
- "privacy": "private"
10156
- },
10157
- {
10158
- "kind": "method",
10159
- "name": "syncAriaRole",
10160
- "privacy": "private",
10161
- "return": {
10162
- "type": {
10163
- "text": "void"
10164
- }
10165
- }
10222
+ "name": "color",
10223
+ "type": {
10224
+ "text": "string"
10225
+ },
10226
+ "default": "\"primary\"",
10227
+ "description": "Accent color token/value.",
10228
+ "attribute": "color"
10166
10229
  },
10167
10230
  {
10168
- "kind": "method",
10169
- "name": "navigableItems",
10231
+ "kind": "field",
10232
+ "name": "_validations",
10233
+ "type": {
10234
+ "text": "SkyInputValidation[]"
10235
+ },
10170
10236
  "privacy": "private",
10171
- "return": {
10172
- "type": {
10173
- "text": "SkyListitem[]"
10174
- }
10175
- }
10237
+ "default": "[]"
10176
10238
  },
10177
10239
  {
10178
- "kind": "method",
10179
- "name": "isNavigableItem",
10180
- "privacy": "private",
10181
- "return": {
10182
- "type": {
10183
- "text": "boolean"
10184
- }
10240
+ "kind": "field",
10241
+ "name": "validations",
10242
+ "type": {
10243
+ "text": "SkyInputValidation[]"
10185
10244
  },
10186
- "parameters": [
10187
- {
10188
- "name": "item",
10189
- "type": {
10190
- "text": "SkyListitem | undefined"
10191
- }
10192
- }
10193
- ]
10245
+ "description": "Validation functions.",
10246
+ "attribute": "validations"
10194
10247
  },
10195
10248
  {
10196
- "kind": "method",
10197
- "name": "itemIndex",
10198
- "privacy": "private",
10199
- "return": {
10200
- "type": {
10201
- "text": "number"
10202
- }
10249
+ "kind": "field",
10250
+ "name": "compact",
10251
+ "type": {
10252
+ "text": "boolean"
10203
10253
  },
10204
- "parameters": [
10205
- {
10206
- "name": "item",
10207
- "type": {
10208
- "text": "SkyListitem"
10209
- }
10210
- }
10211
- ]
10254
+ "default": "false",
10255
+ "description": "Compact display mode.",
10256
+ "attribute": "compact",
10257
+ "reflects": true
10212
10258
  },
10213
10259
  {
10214
- "kind": "method",
10215
- "name": "onItemActivate",
10216
- "privacy": "private",
10217
- "return": {
10218
- "type": {
10219
- "text": "void"
10220
- }
10260
+ "kind": "field",
10261
+ "name": "loading",
10262
+ "type": {
10263
+ "text": "boolean"
10221
10264
  },
10222
- "parameters": [
10223
- {
10224
- "name": "e",
10225
- "type": {
10226
- "text": "CustomEvent"
10227
- }
10228
- }
10229
- ]
10265
+ "default": "false",
10266
+ "description": "Loading state.",
10267
+ "attribute": "loading",
10268
+ "reflects": true
10230
10269
  },
10231
10270
  {
10232
- "kind": "method",
10233
- "name": "_applySelectedValuesFromProp",
10234
- "privacy": "private",
10235
- "return": {
10236
- "type": {
10237
- "text": "void"
10238
- }
10271
+ "kind": "field",
10272
+ "name": "showErrors",
10273
+ "type": {
10274
+ "text": "boolean"
10239
10275
  },
10240
- "description": "Applies `selectedValues` from the host to child items."
10276
+ "default": "false",
10277
+ "description": "Enables error rendering.",
10278
+ "attribute": "showErrors"
10241
10279
  },
10242
10280
  {
10243
- "kind": "method",
10244
- "name": "onKeydown",
10245
- "privacy": "private",
10246
- "return": {
10247
- "type": {
10248
- "text": "void"
10249
- }
10281
+ "kind": "field",
10282
+ "name": "clearable",
10283
+ "type": {
10284
+ "text": "boolean"
10250
10285
  },
10251
- "parameters": [
10252
- {
10253
- "name": "e",
10254
- "type": {
10255
- "text": "KeyboardEvent"
10256
- }
10257
- }
10258
- ]
10286
+ "default": "false",
10287
+ "description": "Enables clear button.",
10288
+ "attribute": "clearable",
10289
+ "reflects": true
10259
10290
  },
10260
10291
  {
10261
- "kind": "method",
10262
- "name": "focusStep",
10263
- "privacy": "private",
10264
- "return": {
10265
- "type": {
10266
- "text": "void"
10267
- }
10292
+ "kind": "field",
10293
+ "name": "errorDisplayMode",
10294
+ "type": {
10295
+ "text": "SkyInputErrorDisplayMode"
10268
10296
  },
10269
- "parameters": [
10270
- {
10271
- "name": "delta",
10272
- "type": {
10273
- "text": "number"
10274
- }
10275
- }
10276
- ]
10297
+ "default": "\"single\"",
10298
+ "description": "Error rendering mode.",
10299
+ "attribute": "errorDisplayMode"
10277
10300
  },
10278
10301
  {
10279
- "kind": "method",
10280
- "name": "_focusFirstNavigable",
10281
- "privacy": "private",
10282
- "return": {
10283
- "type": {
10284
- "text": "void"
10285
- }
10286
- }
10302
+ "kind": "field",
10303
+ "name": "required",
10304
+ "type": {
10305
+ "text": "boolean"
10306
+ },
10307
+ "default": "false",
10308
+ "attribute": "required",
10309
+ "reflects": true
10287
10310
  },
10288
10311
  {
10289
- "kind": "method",
10290
- "name": "focusItem",
10291
- "privacy": "private",
10292
- "return": {
10293
- "type": {
10294
- "text": "void"
10295
- }
10312
+ "kind": "field",
10313
+ "name": "step",
10314
+ "type": {
10315
+ "text": "string | null"
10296
10316
  },
10297
- "parameters": [
10298
- {
10299
- "name": "index",
10300
- "type": {
10301
- "text": "number"
10302
- }
10303
- }
10304
- ]
10317
+ "default": "null",
10318
+ "attribute": "step"
10305
10319
  },
10306
10320
  {
10307
- "kind": "method",
10308
- "name": "focusListItem",
10309
- "privacy": "public",
10310
- "return": {
10311
- "type": {
10312
- "text": "void"
10313
- }
10321
+ "kind": "field",
10322
+ "name": "min",
10323
+ "type": {
10324
+ "text": "string | null"
10314
10325
  },
10315
- "parameters": [
10316
- {
10317
- "name": "index",
10318
- "type": {
10319
- "text": "number"
10320
- }
10321
- }
10322
- ]
10326
+ "default": "null",
10327
+ "attribute": "min"
10323
10328
  },
10324
10329
  {
10325
- "kind": "method",
10326
- "name": "getItems",
10327
- "privacy": "public",
10328
- "return": {
10329
- "type": {
10330
- "text": "SkyListitem[]"
10331
- }
10332
- }
10333
- }
10334
- ],
10335
- "events": [
10336
- {
10337
- "name": "list-change",
10330
+ "kind": "field",
10331
+ "name": "max",
10338
10332
  "type": {
10339
- "text": "CustomEvent<SkyListChangeDetail>"
10333
+ "text": "string | null"
10340
10334
  },
10341
- "description": "Fired when selected items change."
10342
- }
10343
- ],
10344
- "attributes": [
10335
+ "default": "null",
10336
+ "attribute": "max"
10337
+ },
10345
10338
  {
10346
- "name": "preset",
10339
+ "kind": "field",
10340
+ "name": "autocapitalize",
10347
10341
  "type": {
10348
10342
  "text": "string"
10349
10343
  },
10350
- "default": "\"\"",
10351
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
10352
- "fieldName": "preset"
10344
+ "default": "\"off\"",
10345
+ "attribute": "autocapitalize"
10353
10346
  },
10354
10347
  {
10355
- "name": "selection",
10348
+ "kind": "field",
10349
+ "name": "autocomplete",
10356
10350
  "type": {
10357
- "text": "SkyListSelectionMode"
10351
+ "text": "string"
10358
10352
  },
10359
- "default": "\"none\"",
10360
- "description": "Selection mode (`none`, `single`, `multiple`).",
10361
- "fieldName": "selection"
10353
+ "default": "\"off\"",
10354
+ "attribute": "autocomplete"
10362
10355
  },
10363
10356
  {
10364
- "name": "selectedValues",
10357
+ "kind": "field",
10358
+ "name": "spellcheck",
10365
10359
  "type": {
10366
- "text": "string[]"
10360
+ "text": "boolean"
10367
10361
  },
10368
- "description": "Selected item `value`s (mirror for `v-model`; set each `<sky-listitem value=\"…\">`). Default: `[]`.",
10369
- "fieldName": "selectedValues"
10370
- }
10371
- ],
10372
- "superclass": {
10373
- "name": "LitElement",
10374
- "package": "lit"
10375
- },
10376
- "tagName": "sky-list",
10377
- "customElement": true,
10378
- "summary": "Styled list container for `sky-listitem` with selection modes and keyboard navigation."
10379
- }
10380
- ],
10381
- "exports": [
10382
- {
10383
- "kind": "js",
10384
- "name": "SkyList",
10385
- "declaration": {
10386
- "name": "SkyList",
10387
- "module": "src/sky-list/sky-list.ts"
10388
- }
10389
- },
10390
- {
10391
- "kind": "custom-element-definition",
10392
- "name": "sky-list",
10393
- "declaration": {
10394
- "name": "SkyList",
10395
- "module": "src/sky-list/sky-list.ts"
10396
- }
10397
- }
10398
- ]
10399
- },
10400
- {
10401
- "kind": "javascript-module",
10402
- "path": "src/sky-input/sky-input.ts",
10403
- "declarations": [
10404
- {
10405
- "kind": "class",
10406
- "description": "",
10407
- "name": "SkyInput",
10408
- "cssParts": [
10409
- {
10410
- "description": "The outer container wrapping label and input wrapper.",
10411
- "name": "input-container"
10412
- },
10413
- {
10414
- "description": "The label element above the input.",
10415
- "name": "label"
10416
- },
10417
- {
10418
- "description": "The wrapper around input/textarea and icons.",
10419
- "name": "input-wrapper"
10420
- },
10421
- {
10422
- "description": "Base class for left/right icon slots.",
10423
- "name": "icon-slot"
10424
- },
10425
- {
10426
- "description": "Left icon slot.",
10427
- "name": "icon-slot-left"
10428
- },
10429
- {
10430
- "description": "Right icon slot.",
10431
- "name": "icon-slot-right"
10432
- },
10433
- {
10434
- "description": "The clear/reset button.",
10435
- "name": "clear-button"
10436
- },
10437
- {
10438
- "description": "The toggle icon for password visibility.",
10439
- "name": "toggle-password"
10440
- },
10441
- {
10442
- "description": "The spinner shown when loading.",
10443
- "name": "loading-indicator"
10444
- },
10445
- {
10446
- "description": "UL element containing validation errors.",
10447
- "name": "error-list"
10448
- },
10449
- {
10450
- "description": "Individual error message.",
10451
- "name": "error"
10452
- },
10453
- {
10454
- "description": "File count and size info below the file input.",
10455
- "name": "file-info"
10456
- },
10457
- {
10458
- "description": "Inline prefix fragment inside the field.",
10459
- "name": "input-prefix"
10460
- },
10461
- {
10462
- "description": "Inline suffix fragment inside the field.",
10463
- "name": "input-suffix"
10464
- }
10465
- ],
10466
- "slots": [
10467
- {
10468
- "description": "Optional icon/content placed in the left slot.",
10469
- "name": "icon-left"
10362
+ "default": "false",
10363
+ "attribute": "spellcheck"
10470
10364
  },
10471
- {
10472
- "description": "Optional icon/content placed in the right slot.",
10473
- "name": "icon-right"
10474
- }
10475
- ],
10476
- "members": [
10477
10365
  {
10478
10366
  "kind": "field",
10479
- "name": "dependencies",
10367
+ "name": "dir",
10480
10368
  "type": {
10481
- "text": "Record<string, CustomElementConstructor>"
10369
+ "text": "string"
10482
10370
  },
10483
- "static": true,
10484
- "default": "{ \"sky-icon\": SkyIcon, }"
10371
+ "default": "\"ltr\"",
10372
+ "attribute": "dir"
10485
10373
  },
10486
10374
  {
10487
10375
  "kind": "field",
10488
- "name": "value",
10376
+ "name": "rows",
10489
10377
  "type": {
10490
- "text": "SkyInputValue"
10378
+ "text": "number"
10491
10379
  },
10492
- "default": "\"\"",
10493
- "description": "Current input value.",
10494
- "attribute": "value"
10380
+ "default": "6",
10381
+ "attribute": "rows"
10495
10382
  },
10496
10383
  {
10497
10384
  "kind": "field",
10498
- "name": "placeholder",
10385
+ "name": "resizable",
10499
10386
  "type": {
10500
10387
  "text": "string"
10501
10388
  },
10502
- "default": "\"\"",
10503
- "description": "Placeholder text.",
10504
- "attribute": "placeholder"
10389
+ "default": "\"none\"",
10390
+ "attribute": "resizable"
10505
10391
  },
10506
10392
  {
10507
10393
  "kind": "field",
10508
- "name": "label",
10394
+ "name": "accept",
10509
10395
  "type": {
10510
10396
  "text": "string"
10511
10397
  },
10512
10398
  "default": "\"\"",
10513
- "description": "Label text. Above the field by default; on the border for `fieldset`; inside the field for `inside`.",
10514
- "attribute": "label"
10399
+ "attribute": "accept"
10515
10400
  },
10516
10401
  {
10517
10402
  "kind": "field",
10518
- "name": "type",
10403
+ "name": "multiple",
10519
10404
  "type": {
10520
- "text": "SkyInputType"
10405
+ "text": "boolean"
10521
10406
  },
10522
- "default": "\"text\"",
10523
- "description": "Input type (`text`, `password`, `number`, `textarea`, `file`, etc.).",
10524
- "attribute": "type"
10407
+ "default": "false",
10408
+ "attribute": "multiple"
10525
10409
  },
10526
10410
  {
10527
10411
  "kind": "field",
10528
- "name": "suffix",
10412
+ "name": "inputmode",
10529
10413
  "type": {
10530
- "text": "string"
10414
+ "text": "string | null"
10531
10415
  },
10532
- "default": "\"\"",
10533
- "description": "Optional suffix label fragment.",
10534
- "attribute": "suffix"
10416
+ "default": "null",
10417
+ "attribute": "inputmode"
10535
10418
  },
10536
10419
  {
10537
10420
  "kind": "field",
10538
- "name": "prefix",
10421
+ "name": "enterkeyhint",
10539
10422
  "type": {
10540
- "text": "string"
10423
+ "text": "string | null"
10541
10424
  },
10542
- "default": "\"\"",
10543
- "description": "Optional prefix label fragment.",
10544
- "attribute": "prefix"
10425
+ "default": "null",
10426
+ "attribute": "enterkeyhint"
10545
10427
  },
10546
10428
  {
10547
10429
  "kind": "field",
10548
- "name": "prefixColor",
10430
+ "name": "pattern",
10549
10431
  "type": {
10550
- "text": "string"
10432
+ "text": "string | null"
10551
10433
  },
10552
- "default": "\"\"",
10553
- "description": "Prefix color override.",
10554
- "attribute": "prefixColor"
10434
+ "default": "null",
10435
+ "attribute": "pattern"
10555
10436
  },
10556
10437
  {
10557
10438
  "kind": "field",
10558
- "name": "suffixColor",
10439
+ "name": "minlength",
10559
10440
  "type": {
10560
- "text": "string"
10441
+ "text": "number | null"
10561
10442
  },
10562
- "default": "\"\"",
10563
- "description": "Suffix color override.",
10564
- "attribute": "suffixColor"
10443
+ "default": "null",
10444
+ "attribute": "minlength"
10565
10445
  },
10566
10446
  {
10567
10447
  "kind": "field",
10568
- "name": "color",
10448
+ "name": "maxlength",
10569
10449
  "type": {
10570
- "text": "string"
10571
- },
10572
- "default": "\"primary\"",
10573
- "description": "Accent color token/value.",
10574
- "attribute": "color"
10575
- },
10576
- {
10577
- "kind": "field",
10578
- "name": "_validations",
10579
- "type": {
10580
- "text": "SkyInputValidation[]"
10581
- },
10582
- "privacy": "private",
10583
- "default": "[]"
10584
- },
10585
- {
10586
- "kind": "field",
10587
- "name": "validations",
10588
- "type": {
10589
- "text": "SkyInputValidation[]"
10590
- },
10591
- "description": "Validation functions.",
10592
- "attribute": "validations"
10593
- },
10594
- {
10595
- "kind": "field",
10596
- "name": "compact",
10597
- "type": {
10598
- "text": "boolean"
10599
- },
10600
- "default": "false",
10601
- "description": "Compact display mode.",
10602
- "attribute": "compact",
10603
- "reflects": true
10604
- },
10605
- {
10606
- "kind": "field",
10607
- "name": "loading",
10608
- "type": {
10609
- "text": "boolean"
10610
- },
10611
- "default": "false",
10612
- "description": "Loading state.",
10613
- "attribute": "loading",
10614
- "reflects": true
10615
- },
10616
- {
10617
- "kind": "field",
10618
- "name": "showErrors",
10619
- "type": {
10620
- "text": "boolean"
10621
- },
10622
- "default": "false",
10623
- "description": "Enables error rendering.",
10624
- "attribute": "showErrors"
10625
- },
10626
- {
10627
- "kind": "field",
10628
- "name": "clearable",
10629
- "type": {
10630
- "text": "boolean"
10631
- },
10632
- "default": "false",
10633
- "description": "Enables clear button.",
10634
- "attribute": "clearable",
10635
- "reflects": true
10636
- },
10637
- {
10638
- "kind": "field",
10639
- "name": "errorDisplayMode",
10640
- "type": {
10641
- "text": "SkyInputErrorDisplayMode"
10642
- },
10643
- "default": "\"single\"",
10644
- "description": "Error rendering mode.",
10645
- "attribute": "errorDisplayMode"
10646
- },
10647
- {
10648
- "kind": "field",
10649
- "name": "required",
10650
- "type": {
10651
- "text": "boolean"
10652
- },
10653
- "default": "false",
10654
- "attribute": "required",
10655
- "reflects": true
10656
- },
10657
- {
10658
- "kind": "field",
10659
- "name": "step",
10660
- "type": {
10661
- "text": "string | null"
10662
- },
10663
- "default": "null",
10664
- "attribute": "step"
10665
- },
10666
- {
10667
- "kind": "field",
10668
- "name": "min",
10669
- "type": {
10670
- "text": "string | null"
10671
- },
10672
- "default": "null",
10673
- "attribute": "min"
10674
- },
10675
- {
10676
- "kind": "field",
10677
- "name": "max",
10678
- "type": {
10679
- "text": "string | null"
10680
- },
10681
- "default": "null",
10682
- "attribute": "max"
10683
- },
10684
- {
10685
- "kind": "field",
10686
- "name": "autocapitalize",
10687
- "type": {
10688
- "text": "string"
10689
- },
10690
- "default": "\"off\"",
10691
- "attribute": "autocapitalize"
10692
- },
10693
- {
10694
- "kind": "field",
10695
- "name": "autocomplete",
10696
- "type": {
10697
- "text": "string"
10698
- },
10699
- "default": "\"off\"",
10700
- "attribute": "autocomplete"
10701
- },
10702
- {
10703
- "kind": "field",
10704
- "name": "spellcheck",
10705
- "type": {
10706
- "text": "boolean"
10707
- },
10708
- "default": "false",
10709
- "attribute": "spellcheck"
10710
- },
10711
- {
10712
- "kind": "field",
10713
- "name": "dir",
10714
- "type": {
10715
- "text": "string"
10716
- },
10717
- "default": "\"ltr\"",
10718
- "attribute": "dir"
10719
- },
10720
- {
10721
- "kind": "field",
10722
- "name": "rows",
10723
- "type": {
10724
- "text": "number"
10725
- },
10726
- "default": "6",
10727
- "attribute": "rows"
10728
- },
10729
- {
10730
- "kind": "field",
10731
- "name": "resizable",
10732
- "type": {
10733
- "text": "string"
10734
- },
10735
- "default": "\"none\"",
10736
- "attribute": "resizable"
10737
- },
10738
- {
10739
- "kind": "field",
10740
- "name": "accept",
10741
- "type": {
10742
- "text": "string"
10743
- },
10744
- "default": "\"\"",
10745
- "attribute": "accept"
10746
- },
10747
- {
10748
- "kind": "field",
10749
- "name": "multiple",
10750
- "type": {
10751
- "text": "boolean"
10752
- },
10753
- "default": "false",
10754
- "attribute": "multiple"
10755
- },
10756
- {
10757
- "kind": "field",
10758
- "name": "inputmode",
10759
- "type": {
10760
- "text": "string | null"
10761
- },
10762
- "default": "null",
10763
- "attribute": "inputmode"
10764
- },
10765
- {
10766
- "kind": "field",
10767
- "name": "enterkeyhint",
10768
- "type": {
10769
- "text": "string | null"
10770
- },
10771
- "default": "null",
10772
- "attribute": "enterkeyhint"
10773
- },
10774
- {
10775
- "kind": "field",
10776
- "name": "pattern",
10777
- "type": {
10778
- "text": "string | null"
10779
- },
10780
- "default": "null",
10781
- "attribute": "pattern"
10782
- },
10783
- {
10784
- "kind": "field",
10785
- "name": "minlength",
10786
- "type": {
10787
- "text": "number | null"
10788
- },
10789
- "default": "null",
10790
- "attribute": "minlength"
10791
- },
10792
- {
10793
- "kind": "field",
10794
- "name": "maxlength",
10795
- "type": {
10796
- "text": "number | null"
10450
+ "text": "number | null"
10797
10451
  },
10798
10452
  "default": "null",
10799
10453
  "attribute": "maxlength"
@@ -12292,51 +11946,503 @@
12292
11946
  "default": "new PresetController(this)"
12293
11947
  },
12294
11948
  {
12295
- "kind": "method",
12296
- "name": "onClick",
12297
- "privacy": "private",
12298
- "return": {
12299
- "type": {
12300
- "text": "void"
12301
- }
12302
- }
11949
+ "kind": "method",
11950
+ "name": "onClick",
11951
+ "privacy": "private",
11952
+ "return": {
11953
+ "type": {
11954
+ "text": "void"
11955
+ }
11956
+ }
11957
+ },
11958
+ {
11959
+ "kind": "method",
11960
+ "name": "setSelected",
11961
+ "return": {
11962
+ "type": {
11963
+ "text": "void"
11964
+ }
11965
+ },
11966
+ "parameters": [
11967
+ {
11968
+ "name": "selected",
11969
+ "type": {
11970
+ "text": "boolean"
11971
+ }
11972
+ }
11973
+ ]
11974
+ }
11975
+ ],
11976
+ "events": [
11977
+ {
11978
+ "name": "item-activate",
11979
+ "type": {
11980
+ "text": "CustomEvent<SkyListitemActivateDetail>"
11981
+ },
11982
+ "description": "Fired when the item is activated."
11983
+ }
11984
+ ],
11985
+ "attributes": [
11986
+ {
11987
+ "name": "avatar",
11988
+ "type": {
11989
+ "text": "string"
11990
+ },
11991
+ "default": "\"\"",
11992
+ "description": "Optional avatar image URL.",
11993
+ "fieldName": "avatar"
11994
+ },
11995
+ {
11996
+ "name": "value",
11997
+ "type": {
11998
+ "text": "string"
11999
+ },
12000
+ "default": "\"\"",
12001
+ "description": "Stable id for selection (`sky-list` `selectedValues` / `list-change`). Default: `\"\"`.",
12002
+ "fieldName": "value"
12003
+ },
12004
+ {
12005
+ "name": "subheader",
12006
+ "type": {
12007
+ "text": "string"
12008
+ },
12009
+ "default": "\"\"",
12010
+ "description": "Subheader text; when set, item renders as a section header.",
12011
+ "fieldName": "subheader"
12012
+ },
12013
+ {
12014
+ "name": "selected",
12015
+ "type": {
12016
+ "text": "boolean"
12017
+ },
12018
+ "default": "false",
12019
+ "description": "Whether item is selected.",
12020
+ "fieldName": "selected"
12021
+ },
12022
+ {
12023
+ "name": "dense",
12024
+ "type": {
12025
+ "text": "boolean"
12026
+ },
12027
+ "default": "false",
12028
+ "description": "Whether compact spacing is used.",
12029
+ "fieldName": "dense"
12030
+ },
12031
+ {
12032
+ "name": "disabled",
12033
+ "type": {
12034
+ "text": "boolean"
12035
+ },
12036
+ "default": "false",
12037
+ "description": "Whether interaction is disabled.",
12038
+ "fieldName": "disabled"
12039
+ },
12040
+ {
12041
+ "name": "preset",
12042
+ "type": {
12043
+ "text": "string"
12044
+ },
12045
+ "default": "\"\"",
12046
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
12047
+ "fieldName": "preset"
12048
+ }
12049
+ ],
12050
+ "superclass": {
12051
+ "name": "LitElement",
12052
+ "package": "lit"
12053
+ },
12054
+ "tagName": "sky-listitem",
12055
+ "customElement": true,
12056
+ "summary": "List item with optional avatar, actions, subheader mode, and selectable state."
12057
+ }
12058
+ ],
12059
+ "exports": [
12060
+ {
12061
+ "kind": "js",
12062
+ "name": "SkyListitem",
12063
+ "declaration": {
12064
+ "name": "SkyListitem",
12065
+ "module": "src/sky-listitem/sky-listitem.ts"
12066
+ }
12067
+ },
12068
+ {
12069
+ "kind": "custom-element-definition",
12070
+ "name": "sky-listitem",
12071
+ "declaration": {
12072
+ "name": "SkyListitem",
12073
+ "module": "src/sky-listitem/sky-listitem.ts"
12074
+ }
12075
+ }
12076
+ ]
12077
+ },
12078
+ {
12079
+ "kind": "javascript-module",
12080
+ "path": "src/sky-radio/sky-radio.ts",
12081
+ "declarations": [
12082
+ {
12083
+ "kind": "class",
12084
+ "description": "",
12085
+ "name": "SkyRadio",
12086
+ "cssParts": [
12087
+ {
12088
+ "description": "The circular radio control element.",
12089
+ "name": "wrapper"
12090
+ },
12091
+ {
12092
+ "description": "The native hidden radio input element.",
12093
+ "name": "input"
12094
+ },
12095
+ {
12096
+ "description": "The text label element.",
12097
+ "name": "label"
12098
+ }
12099
+ ],
12100
+ "slots": [
12101
+ {
12102
+ "description": "Content to display instead of the label property.",
12103
+ "name": ""
12104
+ }
12105
+ ],
12106
+ "members": [
12107
+ {
12108
+ "kind": "field",
12109
+ "name": "label",
12110
+ "type": {
12111
+ "text": "string"
12112
+ },
12113
+ "default": "\"\"",
12114
+ "description": "Text label displayed beside the control.",
12115
+ "attribute": "label"
12116
+ },
12117
+ {
12118
+ "kind": "field",
12119
+ "name": "value",
12120
+ "type": {
12121
+ "text": "string"
12122
+ },
12123
+ "default": "\"\"",
12124
+ "description": "Option value used for selection and form value.",
12125
+ "attribute": "value"
12126
+ },
12127
+ {
12128
+ "kind": "field",
12129
+ "name": "checked",
12130
+ "type": {
12131
+ "text": "boolean"
12132
+ },
12133
+ "default": "false",
12134
+ "description": "Whether this option is selected.",
12135
+ "attribute": "checked",
12136
+ "reflects": true
12137
+ },
12138
+ {
12139
+ "kind": "field",
12140
+ "name": "color",
12141
+ "type": {
12142
+ "text": "string"
12143
+ },
12144
+ "default": "\"primary\"",
12145
+ "description": "Accent color used in checked state.",
12146
+ "attribute": "color"
12147
+ },
12148
+ {
12149
+ "kind": "field",
12150
+ "name": "compact",
12151
+ "type": {
12152
+ "text": "boolean"
12153
+ },
12154
+ "default": "false",
12155
+ "description": "Compact control size.",
12156
+ "attribute": "compact",
12157
+ "reflects": true
12158
+ },
12159
+ {
12160
+ "kind": "field",
12161
+ "name": "_hasMeaningfulSlot",
12162
+ "type": {
12163
+ "text": "boolean"
12164
+ },
12165
+ "privacy": "private",
12166
+ "default": "false"
12167
+ },
12168
+ {
12169
+ "kind": "method",
12170
+ "name": "syncStyleVars",
12171
+ "privacy": "private",
12172
+ "return": {
12173
+ "type": {
12174
+ "text": "void"
12175
+ }
12176
+ }
12177
+ },
12178
+ {
12179
+ "kind": "method",
12180
+ "name": "check",
12181
+ "privacy": "public",
12182
+ "return": {
12183
+ "type": {
12184
+ "text": "void"
12185
+ }
12186
+ }
12187
+ },
12188
+ {
12189
+ "kind": "method",
12190
+ "name": "focusRadio",
12191
+ "privacy": "public",
12192
+ "return": {
12193
+ "type": {
12194
+ "text": "void"
12195
+ }
12196
+ }
12197
+ },
12198
+ {
12199
+ "kind": "field",
12200
+ "name": "preset",
12201
+ "type": {
12202
+ "text": "string"
12203
+ },
12204
+ "default": "\"\"",
12205
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
12206
+ "attribute": "preset",
12207
+ "reflects": true
12208
+ },
12209
+ {
12210
+ "kind": "field",
12211
+ "name": "_presets",
12212
+ "privacy": "private",
12213
+ "default": "new PresetController(this)"
12214
+ },
12215
+ {
12216
+ "kind": "field",
12217
+ "name": "shadowRootOptions",
12218
+ "type": {
12219
+ "text": "object"
12220
+ },
12221
+ "static": true,
12222
+ "default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true, }"
12223
+ },
12224
+ {
12225
+ "kind": "method",
12226
+ "name": "_slotHasMeaningfulContent",
12227
+ "privacy": "private",
12228
+ "return": {
12229
+ "type": {
12230
+ "text": "boolean"
12231
+ }
12232
+ },
12233
+ "parameters": [
12234
+ {
12235
+ "name": "slotEl",
12236
+ "type": {
12237
+ "text": "HTMLSlotElement"
12238
+ }
12239
+ }
12240
+ ]
12241
+ },
12242
+ {
12243
+ "kind": "field",
12244
+ "name": "_onSlotChange",
12245
+ "privacy": "private"
12246
+ },
12247
+ {
12248
+ "kind": "field",
12249
+ "name": "onNativeChange",
12250
+ "privacy": "private"
12251
+ },
12252
+ {
12253
+ "kind": "field",
12254
+ "name": "handleKeydown",
12255
+ "privacy": "private"
12256
+ },
12257
+ {
12258
+ "kind": "method",
12259
+ "name": "getFormValue",
12260
+ "privacy": "protected",
12261
+ "return": {
12262
+ "type": {
12263
+ "text": "FormState"
12264
+ }
12265
+ },
12266
+ "description": "Get the current value for form submission"
12267
+ },
12268
+ {
12269
+ "kind": "method",
12270
+ "name": "setValueFromFormState",
12271
+ "privacy": "protected",
12272
+ "return": {
12273
+ "type": {
12274
+ "text": "void"
12275
+ }
12276
+ },
12277
+ "parameters": [
12278
+ {
12279
+ "name": "state",
12280
+ "type": {
12281
+ "text": "FormState"
12282
+ }
12283
+ }
12284
+ ],
12285
+ "description": "Set value from form state (e.g., form reset)"
12286
+ },
12287
+ {
12288
+ "kind": "method",
12289
+ "name": "getValidityAnchor",
12290
+ "privacy": "protected",
12291
+ "return": {
12292
+ "type": {
12293
+ "text": "HTMLElement | undefined"
12294
+ }
12295
+ },
12296
+ "description": "Get the validity anchor (the hidden input)"
12297
+ },
12298
+ {
12299
+ "kind": "method",
12300
+ "name": "isEmpty",
12301
+ "privacy": "protected",
12302
+ "return": {
12303
+ "type": {
12304
+ "text": "boolean"
12305
+ }
12306
+ },
12307
+ "description": "Check if empty (for required validation)"
12308
+ },
12309
+ {
12310
+ "kind": "method",
12311
+ "name": "getNativeControl",
12312
+ "privacy": "protected",
12313
+ "return": {
12314
+ "type": {
12315
+ "text": "HTMLElement | null"
12316
+ }
12317
+ },
12318
+ "description": "Get the native control (hidden radio input)"
12319
+ },
12320
+ {
12321
+ "kind": "method",
12322
+ "name": "onNativeValueMutated",
12323
+ "privacy": "protected",
12324
+ "return": {
12325
+ "type": {
12326
+ "text": "void"
12327
+ }
12328
+ },
12329
+ "parameters": [
12330
+ {
12331
+ "name": "_native",
12332
+ "type": {
12333
+ "text": "any"
12334
+ }
12335
+ }
12336
+ ],
12337
+ "description": "Handle native value mutation"
12338
+ },
12339
+ {
12340
+ "kind": "method",
12341
+ "name": "getCustomErrorMessage",
12342
+ "privacy": "protected",
12343
+ "return": {
12344
+ "type": {
12345
+ "text": "string"
12346
+ }
12347
+ },
12348
+ "description": "Override to provide custom error messages"
12349
+ },
12350
+ {
12351
+ "kind": "field",
12352
+ "name": "validationErrors",
12353
+ "type": {
12354
+ "text": "string[]"
12355
+ },
12356
+ "description": "Get current validation errors",
12357
+ "readonly": true
12358
+ },
12359
+ {
12360
+ "type": {
12361
+ "text": "string"
12362
+ },
12363
+ "description": "Radio name used for same-name exclusivity.",
12364
+ "name": "name",
12365
+ "kind": "field"
12366
+ },
12367
+ {
12368
+ "type": {
12369
+ "text": "boolean"
12370
+ },
12371
+ "description": "Disables user interaction.",
12372
+ "name": "disabled",
12373
+ "kind": "field"
12374
+ },
12375
+ {
12376
+ "type": {
12377
+ "text": "boolean"
12378
+ },
12379
+ "description": "Prevents selection changes while still allowing focus.",
12380
+ "name": "readonly",
12381
+ "kind": "field"
12382
+ },
12383
+ {
12384
+ "type": {
12385
+ "text": "boolean"
12386
+ },
12387
+ "description": "Enables required validation for standalone usage.",
12388
+ "name": "required",
12389
+ "kind": "field"
12390
+ },
12391
+ {
12392
+ "type": {
12393
+ "text": "string"
12394
+ },
12395
+ "description": "Error message for required validation failures.",
12396
+ "name": "requiredMessage",
12397
+ "kind": "field"
12398
+ }
12399
+ ],
12400
+ "events": [
12401
+ {
12402
+ "type": {
12403
+ "text": "CustomEvent<SkyRadioSelectDetail>"
12404
+ },
12405
+ "description": "Fired when the option becomes selected.",
12406
+ "name": "radio-select"
12407
+ },
12408
+ {
12409
+ "type": {
12410
+ "text": "Event"
12411
+ },
12412
+ "description": "Native change event for form compatibility.",
12413
+ "name": "change"
12414
+ },
12415
+ {
12416
+ "type": {
12417
+ "text": "Event"
12418
+ },
12419
+ "description": "Native input event for form compatibility.",
12420
+ "name": "input"
12303
12421
  },
12304
12422
  {
12305
- "kind": "method",
12306
- "name": "setSelected",
12307
- "return": {
12308
- "type": {
12309
- "text": "void"
12310
- }
12423
+ "type": {
12424
+ "text": "CustomEvent<SkyRadioValidationErrorDetail>"
12311
12425
  },
12312
- "parameters": [
12313
- {
12314
- "name": "selected",
12315
- "type": {
12316
- "text": "boolean"
12317
- }
12318
- }
12319
- ]
12320
- }
12321
- ],
12322
- "events": [
12426
+ "description": "Fired when validation errors occur.",
12427
+ "name": "validation-error"
12428
+ },
12323
12429
  {
12324
- "name": "item-activate",
12325
12430
  "type": {
12326
- "text": "CustomEvent<SkyListitemActivateDetail>"
12431
+ "text": "CustomEvent<SkyRadioValueClearedDetail>"
12327
12432
  },
12328
- "description": "Fired when the item is activated."
12433
+ "description": "Fired when selection is reset.",
12434
+ "name": "value-cleared"
12329
12435
  }
12330
12436
  ],
12331
12437
  "attributes": [
12332
12438
  {
12333
- "name": "avatar",
12439
+ "name": "label",
12334
12440
  "type": {
12335
12441
  "text": "string"
12336
12442
  },
12337
12443
  "default": "\"\"",
12338
- "description": "Optional avatar image URL.",
12339
- "fieldName": "avatar"
12444
+ "description": "Text label displayed beside the control.",
12445
+ "fieldName": "label"
12340
12446
  },
12341
12447
  {
12342
12448
  "name": "value",
@@ -12344,44 +12450,35 @@
12344
12450
  "text": "string"
12345
12451
  },
12346
12452
  "default": "\"\"",
12347
- "description": "Stable id for selection (`sky-list` `selectedValues` / `list-change`). Default: `\"\"`.",
12453
+ "description": "Option value used for selection and form value.",
12348
12454
  "fieldName": "value"
12349
12455
  },
12350
12456
  {
12351
- "name": "subheader",
12352
- "type": {
12353
- "text": "string"
12354
- },
12355
- "default": "\"\"",
12356
- "description": "Subheader text; when set, item renders as a section header.",
12357
- "fieldName": "subheader"
12358
- },
12359
- {
12360
- "name": "selected",
12457
+ "name": "checked",
12361
12458
  "type": {
12362
12459
  "text": "boolean"
12363
12460
  },
12364
12461
  "default": "false",
12365
- "description": "Whether item is selected.",
12366
- "fieldName": "selected"
12462
+ "description": "Whether this option is selected.",
12463
+ "fieldName": "checked"
12367
12464
  },
12368
12465
  {
12369
- "name": "dense",
12466
+ "name": "color",
12370
12467
  "type": {
12371
- "text": "boolean"
12468
+ "text": "string"
12372
12469
  },
12373
- "default": "false",
12374
- "description": "Whether compact spacing is used.",
12375
- "fieldName": "dense"
12470
+ "default": "\"primary\"",
12471
+ "description": "Accent color used in checked state.",
12472
+ "fieldName": "color"
12376
12473
  },
12377
12474
  {
12378
- "name": "disabled",
12475
+ "name": "compact",
12379
12476
  "type": {
12380
12477
  "text": "boolean"
12381
12478
  },
12382
12479
  "default": "false",
12383
- "description": "Whether interaction is disabled.",
12384
- "fieldName": "disabled"
12480
+ "description": "Compact control size.",
12481
+ "fieldName": "compact"
12385
12482
  },
12386
12483
  {
12387
12484
  "name": "preset",
@@ -12394,126 +12491,139 @@
12394
12491
  }
12395
12492
  ],
12396
12493
  "superclass": {
12397
- "name": "LitElement",
12398
- "package": "lit"
12494
+ "name": "FormControlBase",
12495
+ "module": "/src/helper/internals/form-control-base"
12399
12496
  },
12400
- "tagName": "sky-listitem",
12497
+ "tagName": "sky-radio",
12401
12498
  "customElement": true,
12402
- "summary": "List item with optional avatar, actions, subheader mode, and selectable state."
12499
+ "summary": "Single radio option for grouped or standalone selection."
12403
12500
  }
12404
12501
  ],
12405
12502
  "exports": [
12406
12503
  {
12407
12504
  "kind": "js",
12408
- "name": "SkyListitem",
12505
+ "name": "SkyRadio",
12409
12506
  "declaration": {
12410
- "name": "SkyListitem",
12411
- "module": "src/sky-listitem/sky-listitem.ts"
12507
+ "name": "SkyRadio",
12508
+ "module": "src/sky-radio/sky-radio.ts"
12412
12509
  }
12413
12510
  },
12414
12511
  {
12415
12512
  "kind": "custom-element-definition",
12416
- "name": "sky-listitem",
12513
+ "name": "sky-radio",
12417
12514
  "declaration": {
12418
- "name": "SkyListitem",
12419
- "module": "src/sky-listitem/sky-listitem.ts"
12515
+ "name": "SkyRadio",
12516
+ "module": "src/sky-radio/sky-radio.ts"
12420
12517
  }
12421
12518
  }
12422
12519
  ]
12423
12520
  },
12424
12521
  {
12425
12522
  "kind": "javascript-module",
12426
- "path": "src/sky-radio/sky-radio.ts",
12523
+ "path": "src/sky-list/sky-list.ts",
12427
12524
  "declarations": [
12428
12525
  {
12429
12526
  "kind": "class",
12430
12527
  "description": "",
12431
- "name": "SkyRadio",
12528
+ "name": "SkyList",
12432
12529
  "cssParts": [
12433
12530
  {
12434
- "description": "The circular radio control element.",
12435
- "name": "wrapper"
12436
- },
12437
- {
12438
- "description": "The native hidden radio input element.",
12439
- "name": "input"
12440
- },
12441
- {
12442
- "description": "The text label element.",
12443
- "name": "label"
12531
+ "description": "The main container wrapping slotted list items.",
12532
+ "name": "list-container"
12444
12533
  }
12445
12534
  ],
12446
12535
  "slots": [
12447
12536
  {
12448
- "description": "Content to display instead of the label property.",
12537
+ "description": "Default slot for `<sky-listitem>` children.",
12449
12538
  "name": ""
12450
12539
  }
12451
12540
  ],
12452
12541
  "members": [
12453
12542
  {
12454
12543
  "kind": "field",
12455
- "name": "label",
12544
+ "name": "preset",
12456
12545
  "type": {
12457
12546
  "text": "string"
12458
12547
  },
12459
12548
  "default": "\"\"",
12460
- "description": "Text label displayed beside the control.",
12461
- "attribute": "label"
12549
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
12550
+ "attribute": "preset",
12551
+ "reflects": true
12462
12552
  },
12463
12553
  {
12464
12554
  "kind": "field",
12465
- "name": "value",
12555
+ "name": "_presets",
12556
+ "privacy": "private",
12557
+ "default": "new PresetController(this)"
12558
+ },
12559
+ {
12560
+ "kind": "field",
12561
+ "name": "selection",
12466
12562
  "type": {
12467
- "text": "string"
12563
+ "text": "SkyListSelectionMode"
12468
12564
  },
12469
- "default": "\"\"",
12470
- "description": "Option value used for selection and form value.",
12471
- "attribute": "value"
12565
+ "default": "\"none\"",
12566
+ "description": "Selection mode (`none`, `single`, `multiple`).",
12567
+ "attribute": "selection"
12472
12568
  },
12473
12569
  {
12474
12570
  "kind": "field",
12475
- "name": "checked",
12571
+ "name": "_selectedValues",
12476
12572
  "type": {
12477
- "text": "boolean"
12573
+ "text": "string[]"
12478
12574
  },
12479
- "default": "false",
12480
- "description": "Whether this option is selected.",
12481
- "attribute": "checked",
12482
- "reflects": true
12575
+ "privacy": "private",
12576
+ "default": "[]"
12483
12577
  },
12484
12578
  {
12485
12579
  "kind": "field",
12486
- "name": "color",
12580
+ "name": "selectedValues",
12487
12581
  "type": {
12488
- "text": "string"
12582
+ "text": "string[]"
12489
12583
  },
12490
- "default": "\"primary\"",
12491
- "description": "Accent color used in checked state.",
12492
- "attribute": "color"
12584
+ "description": "Selected item `value`s (mirror for `v-model`; set each `<sky-listitem value=\"…\">`). Default: `[]`.",
12585
+ "attribute": "selectedValues"
12493
12586
  },
12494
12587
  {
12495
12588
  "kind": "field",
12496
- "name": "compact",
12589
+ "name": "items",
12497
12590
  "type": {
12498
- "text": "boolean"
12591
+ "text": "SkyListitem[]"
12499
12592
  },
12500
- "default": "false",
12501
- "description": "Compact control size.",
12502
- "attribute": "compact",
12503
- "reflects": true
12593
+ "privacy": "private"
12504
12594
  },
12505
12595
  {
12506
12596
  "kind": "field",
12507
- "name": "_hasMeaningfulSlot",
12597
+ "name": "currentIndex",
12598
+ "type": {
12599
+ "text": "number"
12600
+ },
12601
+ "privacy": "private",
12602
+ "default": "0"
12603
+ },
12604
+ {
12605
+ "kind": "field",
12606
+ "name": "_syncingSelectedValues",
12508
12607
  "type": {
12509
12608
  "text": "boolean"
12510
12609
  },
12511
12610
  "privacy": "private",
12512
- "default": "false"
12611
+ "default": "false",
12612
+ "description": "Avoid feedback when syncing selection from the `selectedValues` prop."
12613
+ },
12614
+ {
12615
+ "kind": "field",
12616
+ "name": "_onItemActivate",
12617
+ "privacy": "private"
12618
+ },
12619
+ {
12620
+ "kind": "field",
12621
+ "name": "_onSlotChange",
12622
+ "privacy": "private"
12513
12623
  },
12514
12624
  {
12515
12625
  "kind": "method",
12516
- "name": "syncStyleVars",
12626
+ "name": "syncAriaRole",
12517
12627
  "privacy": "private",
12518
12628
  "return": {
12519
12629
  "type": {
@@ -12523,98 +12633,83 @@
12523
12633
  },
12524
12634
  {
12525
12635
  "kind": "method",
12526
- "name": "check",
12527
- "privacy": "public",
12636
+ "name": "navigableItems",
12637
+ "privacy": "private",
12528
12638
  "return": {
12529
12639
  "type": {
12530
- "text": "void"
12640
+ "text": "SkyListitem[]"
12531
12641
  }
12532
12642
  }
12533
12643
  },
12534
12644
  {
12535
12645
  "kind": "method",
12536
- "name": "focusRadio",
12537
- "privacy": "public",
12646
+ "name": "isNavigableItem",
12647
+ "privacy": "private",
12538
12648
  "return": {
12539
12649
  "type": {
12540
- "text": "void"
12650
+ "text": "boolean"
12541
12651
  }
12542
- }
12543
- },
12544
- {
12545
- "kind": "field",
12546
- "name": "preset",
12547
- "type": {
12548
- "text": "string"
12549
12652
  },
12550
- "default": "\"\"",
12551
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
12552
- "attribute": "preset",
12553
- "reflects": true
12653
+ "parameters": [
12654
+ {
12655
+ "name": "item",
12656
+ "type": {
12657
+ "text": "SkyListitem | undefined"
12658
+ }
12659
+ }
12660
+ ]
12554
12661
  },
12555
12662
  {
12556
- "kind": "field",
12557
- "name": "_presets",
12663
+ "kind": "method",
12664
+ "name": "itemIndex",
12558
12665
  "privacy": "private",
12559
- "default": "new PresetController(this)"
12560
- },
12561
- {
12562
- "kind": "field",
12563
- "name": "shadowRootOptions",
12564
- "type": {
12565
- "text": "object"
12666
+ "return": {
12667
+ "type": {
12668
+ "text": "number"
12669
+ }
12566
12670
  },
12567
- "static": true,
12568
- "default": "{ ...LitElement.shadowRootOptions, delegatesFocus: true, }"
12671
+ "parameters": [
12672
+ {
12673
+ "name": "item",
12674
+ "type": {
12675
+ "text": "SkyListitem"
12676
+ }
12677
+ }
12678
+ ]
12569
12679
  },
12570
12680
  {
12571
12681
  "kind": "method",
12572
- "name": "_slotHasMeaningfulContent",
12682
+ "name": "onItemActivate",
12573
12683
  "privacy": "private",
12574
12684
  "return": {
12575
12685
  "type": {
12576
- "text": "boolean"
12686
+ "text": "void"
12577
12687
  }
12578
12688
  },
12579
12689
  "parameters": [
12580
12690
  {
12581
- "name": "slotEl",
12691
+ "name": "e",
12582
12692
  "type": {
12583
- "text": "HTMLSlotElement"
12693
+ "text": "CustomEvent"
12584
12694
  }
12585
12695
  }
12586
12696
  ]
12587
12697
  },
12588
- {
12589
- "kind": "field",
12590
- "name": "_onSlotChange",
12591
- "privacy": "private"
12592
- },
12593
- {
12594
- "kind": "field",
12595
- "name": "onNativeChange",
12596
- "privacy": "private"
12597
- },
12598
- {
12599
- "kind": "field",
12600
- "name": "handleKeydown",
12601
- "privacy": "private"
12602
- },
12603
12698
  {
12604
12699
  "kind": "method",
12605
- "name": "getFormValue",
12606
- "privacy": "protected",
12700
+ "name": "_applySelectedValuesFromProp",
12701
+ "privacy": "private",
12607
12702
  "return": {
12608
12703
  "type": {
12609
- "text": "FormState"
12704
+ "text": "void"
12610
12705
  }
12611
12706
  },
12612
- "description": "Get the current value for form submission"
12707
+ "description": "Applies `selectedValues` from the host to child items."
12613
12708
  },
12614
12709
  {
12615
12710
  "kind": "method",
12616
- "name": "setValueFromFormState",
12617
- "privacy": "protected",
12711
+ "name": "onKeydown",
12712
+ "privacy": "private",
12618
12713
  "return": {
12619
12714
  "type": {
12620
12715
  "text": "void"
@@ -12622,51 +12717,63 @@
12622
12717
  },
12623
12718
  "parameters": [
12624
12719
  {
12625
- "name": "state",
12720
+ "name": "e",
12626
12721
  "type": {
12627
- "text": "FormState"
12722
+ "text": "KeyboardEvent"
12628
12723
  }
12629
12724
  }
12630
- ],
12631
- "description": "Set value from form state (e.g., form reset)"
12725
+ ]
12632
12726
  },
12633
12727
  {
12634
12728
  "kind": "method",
12635
- "name": "getValidityAnchor",
12636
- "privacy": "protected",
12729
+ "name": "focusStep",
12730
+ "privacy": "private",
12637
12731
  "return": {
12638
12732
  "type": {
12639
- "text": "HTMLElement | undefined"
12733
+ "text": "void"
12640
12734
  }
12641
12735
  },
12642
- "description": "Get the validity anchor (the hidden input)"
12736
+ "parameters": [
12737
+ {
12738
+ "name": "delta",
12739
+ "type": {
12740
+ "text": "number"
12741
+ }
12742
+ }
12743
+ ]
12643
12744
  },
12644
12745
  {
12645
12746
  "kind": "method",
12646
- "name": "isEmpty",
12647
- "privacy": "protected",
12747
+ "name": "_focusFirstNavigable",
12748
+ "privacy": "private",
12648
12749
  "return": {
12649
12750
  "type": {
12650
- "text": "boolean"
12751
+ "text": "void"
12651
12752
  }
12652
- },
12653
- "description": "Check if empty (for required validation)"
12753
+ }
12654
12754
  },
12655
12755
  {
12656
12756
  "kind": "method",
12657
- "name": "getNativeControl",
12658
- "privacy": "protected",
12757
+ "name": "focusItem",
12758
+ "privacy": "private",
12659
12759
  "return": {
12660
12760
  "type": {
12661
- "text": "HTMLElement | null"
12761
+ "text": "void"
12662
12762
  }
12663
12763
  },
12664
- "description": "Get the native control (hidden radio input)"
12764
+ "parameters": [
12765
+ {
12766
+ "name": "index",
12767
+ "type": {
12768
+ "text": "number"
12769
+ }
12770
+ }
12771
+ ]
12665
12772
  },
12666
12773
  {
12667
12774
  "kind": "method",
12668
- "name": "onNativeValueMutated",
12669
- "privacy": "protected",
12775
+ "name": "focusListItem",
12776
+ "privacy": "public",
12670
12777
  "return": {
12671
12778
  "type": {
12672
12779
  "text": "void"
@@ -12674,192 +12781,85 @@
12674
12781
  },
12675
12782
  "parameters": [
12676
12783
  {
12677
- "name": "_native",
12784
+ "name": "index",
12678
12785
  "type": {
12679
- "text": "any"
12786
+ "text": "number"
12680
12787
  }
12681
12788
  }
12682
- ],
12683
- "description": "Handle native value mutation"
12789
+ ]
12684
12790
  },
12685
12791
  {
12686
12792
  "kind": "method",
12687
- "name": "getCustomErrorMessage",
12688
- "privacy": "protected",
12793
+ "name": "getItems",
12794
+ "privacy": "public",
12689
12795
  "return": {
12690
12796
  "type": {
12691
- "text": "string"
12797
+ "text": "SkyListitem[]"
12692
12798
  }
12693
- },
12694
- "description": "Override to provide custom error messages"
12695
- },
12696
- {
12697
- "kind": "field",
12698
- "name": "validationErrors",
12699
- "type": {
12700
- "text": "string[]"
12701
- },
12702
- "description": "Get current validation errors",
12703
- "readonly": true
12704
- },
12705
- {
12706
- "type": {
12707
- "text": "string"
12708
- },
12709
- "description": "Radio name used for same-name exclusivity.",
12710
- "name": "name",
12711
- "kind": "field"
12712
- },
12713
- {
12714
- "type": {
12715
- "text": "boolean"
12716
- },
12717
- "description": "Disables user interaction.",
12718
- "name": "disabled",
12719
- "kind": "field"
12720
- },
12721
- {
12722
- "type": {
12723
- "text": "boolean"
12724
- },
12725
- "description": "Prevents selection changes while still allowing focus.",
12726
- "name": "readonly",
12727
- "kind": "field"
12728
- },
12729
- {
12730
- "type": {
12731
- "text": "boolean"
12732
- },
12733
- "description": "Enables required validation for standalone usage.",
12734
- "name": "required",
12735
- "kind": "field"
12736
- },
12737
- {
12738
- "type": {
12739
- "text": "string"
12740
- },
12741
- "description": "Error message for required validation failures.",
12742
- "name": "requiredMessage",
12743
- "kind": "field"
12799
+ }
12744
12800
  }
12745
12801
  ],
12746
12802
  "events": [
12747
12803
  {
12804
+ "name": "list-change",
12748
12805
  "type": {
12749
- "text": "CustomEvent<SkyRadioSelectDetail>"
12750
- },
12751
- "description": "Fired when the option becomes selected.",
12752
- "name": "radio-select"
12753
- },
12754
- {
12755
- "type": {
12756
- "text": "Event"
12757
- },
12758
- "description": "Native change event for form compatibility.",
12759
- "name": "change"
12760
- },
12761
- {
12762
- "type": {
12763
- "text": "Event"
12764
- },
12765
- "description": "Native input event for form compatibility.",
12766
- "name": "input"
12767
- },
12768
- {
12769
- "type": {
12770
- "text": "CustomEvent<SkyRadioValidationErrorDetail>"
12771
- },
12772
- "description": "Fired when validation errors occur.",
12773
- "name": "validation-error"
12774
- },
12775
- {
12776
- "type": {
12777
- "text": "CustomEvent<SkyRadioValueClearedDetail>"
12806
+ "text": "CustomEvent<SkyListChangeDetail>"
12778
12807
  },
12779
- "description": "Fired when selection is reset.",
12780
- "name": "value-cleared"
12808
+ "description": "Fired when selected items change."
12781
12809
  }
12782
12810
  ],
12783
12811
  "attributes": [
12784
12812
  {
12785
- "name": "label",
12786
- "type": {
12787
- "text": "string"
12788
- },
12789
- "default": "\"\"",
12790
- "description": "Text label displayed beside the control.",
12791
- "fieldName": "label"
12792
- },
12793
- {
12794
- "name": "value",
12813
+ "name": "preset",
12795
12814
  "type": {
12796
12815
  "text": "string"
12797
12816
  },
12798
12817
  "default": "\"\"",
12799
- "description": "Option value used for selection and form value.",
12800
- "fieldName": "value"
12801
- },
12802
- {
12803
- "name": "checked",
12804
- "type": {
12805
- "text": "boolean"
12806
- },
12807
- "default": "false",
12808
- "description": "Whether this option is selected.",
12809
- "fieldName": "checked"
12810
- },
12811
- {
12812
- "name": "color",
12813
- "type": {
12814
- "text": "string"
12815
- },
12816
- "default": "\"primary\"",
12817
- "description": "Accent color used in checked state.",
12818
- "fieldName": "color"
12818
+ "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
12819
+ "fieldName": "preset"
12819
12820
  },
12820
12821
  {
12821
- "name": "compact",
12822
+ "name": "selection",
12822
12823
  "type": {
12823
- "text": "boolean"
12824
+ "text": "SkyListSelectionMode"
12824
12825
  },
12825
- "default": "false",
12826
- "description": "Compact control size.",
12827
- "fieldName": "compact"
12826
+ "default": "\"none\"",
12827
+ "description": "Selection mode (`none`, `single`, `multiple`).",
12828
+ "fieldName": "selection"
12828
12829
  },
12829
12830
  {
12830
- "name": "preset",
12831
+ "name": "selectedValues",
12831
12832
  "type": {
12832
- "text": "string"
12833
+ "text": "string[]"
12833
12834
  },
12834
- "default": "\"\"",
12835
- "description": "Named prop preset from nearest `sky-config-provider`. Default: `\"\"`.",
12836
- "fieldName": "preset"
12835
+ "description": "Selected item `value`s (mirror for `v-model`; set each `<sky-listitem value=\"…\">`). Default: `[]`.",
12836
+ "fieldName": "selectedValues"
12837
12837
  }
12838
12838
  ],
12839
12839
  "superclass": {
12840
- "name": "FormControlBase",
12841
- "module": "/src/helper/internals/form-control-base"
12840
+ "name": "LitElement",
12841
+ "package": "lit"
12842
12842
  },
12843
- "tagName": "sky-radio",
12843
+ "tagName": "sky-list",
12844
12844
  "customElement": true,
12845
- "summary": "Single radio option for grouped or standalone selection."
12845
+ "summary": "Styled list container for `sky-listitem` with selection modes and keyboard navigation."
12846
12846
  }
12847
12847
  ],
12848
12848
  "exports": [
12849
12849
  {
12850
12850
  "kind": "js",
12851
- "name": "SkyRadio",
12851
+ "name": "SkyList",
12852
12852
  "declaration": {
12853
- "name": "SkyRadio",
12854
- "module": "src/sky-radio/sky-radio.ts"
12853
+ "name": "SkyList",
12854
+ "module": "src/sky-list/sky-list.ts"
12855
12855
  }
12856
12856
  },
12857
12857
  {
12858
12858
  "kind": "custom-element-definition",
12859
- "name": "sky-radio",
12859
+ "name": "sky-list",
12860
12860
  "declaration": {
12861
- "name": "SkyRadio",
12862
- "module": "src/sky-radio/sky-radio.ts"
12861
+ "name": "SkyList",
12862
+ "module": "src/sky-list/sky-list.ts"
12863
12863
  }
12864
12864
  }
12865
12865
  ]