@govtechsg/sgds-web-component 3.22.0 → 3.23.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/types/react.d.ts CHANGED
@@ -15,9 +15,9 @@
15
15
  * // ES import (tsconfig must include this file via `include` or `typeRoots`):
16
16
  * import "@govtechsg/sgds-web-component/sgds-types";
17
17
  *
18
- * Custom event handlers use the lowercase kebab-case `onsgds-*` form —
19
- * React 19 maps these directly to native addEventListener calls:
20
- * <sgds-input onsgds-change={handler} />
18
+ * Custom event handlers support both forms:
19
+ * - Kebab-case (React 19 intrinsic elements): <sgds-input onsgds-change={handler} />
20
+ * - CamelCase (@lit/react wrappers): <SgdsInput onSgdsChange={handler} />
21
21
  */
22
22
 
23
23
  export {};
@@ -107,9 +107,13 @@ export interface SgdsAccordionItemProps extends SgdsBaseProps {
107
107
  /** The aria-label attribute forwarded to the accordion item button. */
108
108
  ariaLabel?: string;
109
109
  "onsgds-show"?: SgdsEventHandler;
110
+ onSgdsShow?: SgdsEventHandler;
110
111
  "onsgds-after-show"?: SgdsEventHandler;
112
+ onSgdsAfterShow?: SgdsEventHandler;
111
113
  "onsgds-hide"?: SgdsEventHandler;
114
+ onSgdsHide?: SgdsEventHandler;
112
115
  "onsgds-after-hide"?: SgdsEventHandler;
116
+ onSgdsAfterHide?: SgdsEventHandler;
113
117
  }
114
118
 
115
119
  // ── Accordion ─────────────────────────────────────────────────────────────
@@ -146,46 +150,9 @@ export interface SgdsAlertProps extends SgdsBaseProps {
146
150
  /** The title of the alert. Only text is allowed */
147
151
  title?: string;
148
152
  "onsgds-show"?: SgdsEventHandler;
153
+ onSgdsShow?: SgdsEventHandler;
149
154
  "onsgds-hide"?: SgdsEventHandler;
150
- }
151
-
152
- // ── Card ─────────────────────────────────────────────────────────────
153
-
154
- export interface SgdsCardProps extends SgdsBaseProps {
155
- /** Sets the image position of the card. Available options: `before`, `after` */
156
- imagePosition?: CardImagePosition;
157
- /** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */
158
- imageAdjustment?: CardImageAdjustment;
159
- /** Used only for SSR to indicate the presence of the `image` slot. */
160
- hasImageSlot?: boolean;
161
- /** Used only for SSR to indicate the presence of the `icon` slot. */
162
- hasIconSlot?: boolean;
163
- /** Used only for SSR to indicate the presence of the `upper` slot. */
164
- hasUpperSlot?: boolean;
165
- /** Extends the link passed in either `footer` or `link`(deprecated) slot. */
166
- stretchedLink?: boolean;
167
- /** Disables the card */
168
- disabled?: boolean;
169
- /** When true, hides the default border of the card. */
170
- hideBorder?: boolean;
171
- /** When true, applies a tinted background color to the card. */
172
- tinted?: boolean;
173
- /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */
174
- orientation?: CardOrientation;
175
- }
176
-
177
- // ── BreadcrumbItem ─────────────────────────────────────────────────────────────
178
-
179
- export interface SgdsBreadcrumbItemProps extends SgdsBaseProps {
180
- /** Indicates the link matches the current location of the page. Programmatically handled by SgdsBreadcrumb to set this prop to true for the last breadcrumb item */
181
- active?: boolean;
182
- }
183
-
184
- // ── Breadcrumb ─────────────────────────────────────────────────────────────
185
-
186
- export interface SgdsBreadcrumbProps extends SgdsBaseProps {
187
- /** The aria-label of nav element within breadcrumb component. */
188
- ariaLabel?: string;
155
+ onSgdsHide?: SgdsEventHandler;
189
156
  }
190
157
 
191
158
  // ── Button ─────────────────────────────────────────────────────────────
@@ -239,7 +206,9 @@ value of this attribute must be an id of a form in the same document or shadow r
239
206
  /** When true, shows a loading spinner */
240
207
  loading?: boolean;
241
208
  "onsgds-blur"?: SgdsEventHandler;
209
+ onSgdsBlur?: SgdsEventHandler;
242
210
  "onsgds-focus"?: SgdsEventHandler;
211
+ onSgdsFocus?: SgdsEventHandler;
243
212
  }
244
213
 
245
214
  // ── Badge ─────────────────────────────────────────────────────────────
@@ -259,9 +228,52 @@ Variants include: `primary`, `accent`, `success`, `danger`, `warning`, `cyan`, `
259
228
  /** Manually enable full width */
260
229
  fullWidth?: boolean;
261
230
  "onsgds-show"?: SgdsEventHandler;
231
+ onSgdsShow?: SgdsEventHandler;
262
232
  "onsgds-hide"?: SgdsEventHandler;
233
+ onSgdsHide?: SgdsEventHandler;
263
234
  "onsgds-after-show"?: SgdsEventHandler;
235
+ onSgdsAfterShow?: SgdsEventHandler;
264
236
  "onsgds-after-hide"?: SgdsEventHandler;
237
+ onSgdsAfterHide?: SgdsEventHandler;
238
+ }
239
+
240
+ // ── Card ─────────────────────────────────────────────────────────────
241
+
242
+ export interface SgdsCardProps extends SgdsBaseProps {
243
+ /** Sets the image position of the card. Available options: `before`, `after` */
244
+ imagePosition?: CardImagePosition;
245
+ /** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */
246
+ imageAdjustment?: CardImageAdjustment;
247
+ /** Used only for SSR to indicate the presence of the `image` slot. */
248
+ hasImageSlot?: boolean;
249
+ /** Used only for SSR to indicate the presence of the `icon` slot. */
250
+ hasIconSlot?: boolean;
251
+ /** Used only for SSR to indicate the presence of the `upper` slot. */
252
+ hasUpperSlot?: boolean;
253
+ /** Extends the link passed in either `footer` or `link`(deprecated) slot. */
254
+ stretchedLink?: boolean;
255
+ /** Disables the card */
256
+ disabled?: boolean;
257
+ /** When true, hides the default border of the card. */
258
+ hideBorder?: boolean;
259
+ /** When true, applies a tinted background color to the card. */
260
+ tinted?: boolean;
261
+ /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */
262
+ orientation?: CardOrientation;
263
+ }
264
+
265
+ // ── BreadcrumbItem ─────────────────────────────────────────────────────────────
266
+
267
+ export interface SgdsBreadcrumbItemProps extends SgdsBaseProps {
268
+ /** Indicates the link matches the current location of the page. Programmatically handled by SgdsBreadcrumb to set this prop to true for the last breadcrumb item */
269
+ active?: boolean;
270
+ }
271
+
272
+ // ── Breadcrumb ─────────────────────────────────────────────────────────────
273
+
274
+ export interface SgdsBreadcrumbProps extends SgdsBaseProps {
275
+ /** The aria-label of nav element within breadcrumb component. */
276
+ ariaLabel?: string;
265
277
  }
266
278
 
267
279
  // ── CheckboxGroup ─────────────────────────────────────────────────────────────
@@ -291,6 +303,7 @@ export interface SgdsCheckboxGroupProps extends SgdsBaseProps {
291
303
  /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
292
304
  invalid?: boolean;
293
305
  "onsgds-change"?: SgdsEventHandler;
306
+ onSgdsChange?: SgdsEventHandler;
294
307
  }
295
308
 
296
309
  // ── Checkbox ─────────────────────────────────────────────────────────────
@@ -325,10 +338,15 @@ export interface SgdsCheckboxProps extends SgdsBaseProps {
325
338
  /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
326
339
  invalid?: boolean;
327
340
  "onsgds-change"?: SgdsEventHandler;
341
+ onSgdsChange?: SgdsEventHandler;
328
342
  "onsgds-blur"?: SgdsEventHandler;
343
+ onSgdsBlur?: SgdsEventHandler;
329
344
  "onsgds-focus"?: SgdsEventHandler;
345
+ onSgdsFocus?: SgdsEventHandler;
330
346
  "onsgds-check"?: SgdsEventHandler;
347
+ onSgdsCheck?: SgdsEventHandler;
331
348
  "onsgds-uncheck"?: SgdsEventHandler;
349
+ onSgdsUncheck?: SgdsEventHandler;
332
350
  }
333
351
 
334
352
  // ── CloseButton ─────────────────────────────────────────────────────────────
@@ -415,16 +433,27 @@ value: string;
415
433
  /** Makes the input readonly. */
416
434
  readonly?: boolean;
417
435
  "onsgds-select"?: SgdsEventHandler;
436
+ onSgdsSelect?: SgdsEventHandler;
418
437
  "onsgds-change"?: SgdsEventHandler;
438
+ onSgdsChange?: SgdsEventHandler;
419
439
  "onsgds-input"?: (event: CustomEvent<ISgdsComboBoxInputEventDetail>) => void;
440
+ onSgdsInput?: (event: CustomEvent<ISgdsComboBoxInputEventDetail>) => void;
420
441
  "onsgds-focus"?: SgdsEventHandler;
442
+ onSgdsFocus?: SgdsEventHandler;
421
443
  "onsgds-blur"?: SgdsEventHandler;
444
+ onSgdsBlur?: SgdsEventHandler;
422
445
  "onsgds-invalid"?: SgdsEventHandler;
446
+ onSgdsInvalid?: SgdsEventHandler;
423
447
  "onsgds-valid"?: SgdsEventHandler;
448
+ onSgdsValid?: SgdsEventHandler;
424
449
  "onsgds-show"?: SgdsEventHandler;
450
+ onSgdsShow?: SgdsEventHandler;
425
451
  "onsgds-after-show"?: SgdsEventHandler;
452
+ onSgdsAfterShow?: SgdsEventHandler;
426
453
  "onsgds-hide"?: SgdsEventHandler;
454
+ onSgdsHide?: SgdsEventHandler;
427
455
  "onsgds-after-hide"?: SgdsEventHandler;
456
+ onSgdsAfterHide?: SgdsEventHandler;
428
457
  }
429
458
 
430
459
  // ── Datepicker ─────────────────────────────────────────────────────────────
@@ -482,12 +511,19 @@ range mode as array of string. eg.'["22/12/2023"]' for single &
482
511
  /** Makes the input readonly. */
483
512
  readonly?: boolean;
484
513
  "onsgds-change-date"?: SgdsEventHandler;
514
+ onSgdsChangeDate?: SgdsEventHandler;
485
515
  "onsgds-invalid"?: SgdsEventHandler;
516
+ onSgdsInvalid?: SgdsEventHandler;
486
517
  "onsgds-valid"?: SgdsEventHandler;
518
+ onSgdsValid?: SgdsEventHandler;
487
519
  "onsgds-show"?: SgdsEventHandler;
520
+ onSgdsShow?: SgdsEventHandler;
488
521
  "onsgds-after-show"?: SgdsEventHandler;
522
+ onSgdsAfterShow?: SgdsEventHandler;
489
523
  "onsgds-hide"?: SgdsEventHandler;
524
+ onSgdsHide?: SgdsEventHandler;
490
525
  "onsgds-after-hide"?: SgdsEventHandler;
526
+ onSgdsAfterHide?: SgdsEventHandler;
491
527
  }
492
528
 
493
529
  // ── DescriptionListGroup ─────────────────────────────────────────────────────────────
@@ -540,11 +576,17 @@ Accepts `small`, `medium`, or `large`. Defaults to `small`. */
540
576
  its parent element, set this attribute and add `position: relative` to the parent. */
541
577
  contained?: boolean;
542
578
  "onsgds-show"?: SgdsEventHandler;
579
+ onSgdsShow?: SgdsEventHandler;
543
580
  "onsgds-after-show"?: SgdsEventHandler;
581
+ onSgdsAfterShow?: SgdsEventHandler;
544
582
  "onsgds-hide"?: SgdsEventHandler;
583
+ onSgdsHide?: SgdsEventHandler;
545
584
  "onsgds-after-hide"?: SgdsEventHandler;
585
+ onSgdsAfterHide?: SgdsEventHandler;
546
586
  "onsgds-initial-focus"?: SgdsEventHandler;
587
+ onSgdsInitialFocus?: SgdsEventHandler;
547
588
  "onsgds-request-close"?: SgdsEventHandler;
589
+ onSgdsRequestClose?: SgdsEventHandler;
548
590
  }
549
591
 
550
592
  // ── DropdownItem ─────────────────────────────────────────────────────────────
@@ -575,10 +617,15 @@ export interface SgdsDropdownProps extends SgdsBaseProps {
575
617
  /** Makes the input readonly. */
576
618
  readonly?: boolean;
577
619
  "onsgds-select"?: SgdsEventHandler;
620
+ onSgdsSelect?: SgdsEventHandler;
578
621
  "onsgds-show"?: SgdsEventHandler;
622
+ onSgdsShow?: SgdsEventHandler;
579
623
  "onsgds-after-show"?: SgdsEventHandler;
624
+ onSgdsAfterShow?: SgdsEventHandler;
580
625
  "onsgds-hide"?: SgdsEventHandler;
626
+ onSgdsHide?: SgdsEventHandler;
581
627
  "onsgds-after-hide"?: SgdsEventHandler;
628
+ onSgdsAfterHide?: SgdsEventHandler;
582
629
  }
583
630
 
584
631
  // ── FileUpload ─────────────────────────────────────────────────────────────
@@ -617,9 +664,13 @@ export interface SgdsFileUploadProps extends SgdsBaseProps {
617
664
  /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
618
665
  invalid?: boolean;
619
666
  "onsgds-files-selected"?: (event: CustomEvent<ISgdsFileUploadFilesSelectedEventDetail>) => void;
667
+ onSgdsFilesSelected?: (event: CustomEvent<ISgdsFileUploadFilesSelectedEventDetail>) => void;
620
668
  "onsgds-add-files"?: (event: CustomEvent<ISgdsFileUploadAddFilesEventDetail>) => void;
669
+ onSgdsAddFiles?: (event: CustomEvent<ISgdsFileUploadAddFilesEventDetail>) => void;
621
670
  "onsgds-remove-file"?: (event: CustomEvent<ISgdsFileUploadRemoveFileEventDetail>) => void;
671
+ onSgdsRemoveFile?: (event: CustomEvent<ISgdsFileUploadRemoveFileEventDetail>) => void;
622
672
  "onsgds-change"?: (event: CustomEvent<ISgdsFileUploadChangeEventDetail>) => void;
673
+ onSgdsChange?: (event: CustomEvent<ISgdsFileUploadChangeEventDetail>) => void;
623
674
  }
624
675
 
625
676
  // ── FooterItem ─────────────────────────────────────────────────────────────
@@ -697,7 +748,9 @@ export interface SgdsIconButtonProps extends SgdsBaseProps {
697
748
  /** When true, shows a loading spinner */
698
749
  loading?: boolean;
699
750
  "onsgds-blur"?: SgdsEventHandler;
751
+ onSgdsBlur?: SgdsEventHandler;
700
752
  "onsgds-focus"?: SgdsEventHandler;
753
+ onSgdsFocus?: SgdsEventHandler;
701
754
  }
702
755
 
703
756
  // ── IconCard ─────────────────────────────────────────────────────────────
@@ -815,11 +868,17 @@ implied, allowing any numeric value. Only applies to number input types. */
815
868
  /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
816
869
  invalid?: boolean;
817
870
  "onsgds-change"?: SgdsEventHandler;
871
+ onSgdsChange?: SgdsEventHandler;
818
872
  "onsgds-input"?: SgdsEventHandler;
873
+ onSgdsInput?: SgdsEventHandler;
819
874
  "onsgds-focus"?: SgdsEventHandler;
875
+ onSgdsFocus?: SgdsEventHandler;
820
876
  "onsgds-blur"?: SgdsEventHandler;
877
+ onSgdsBlur?: SgdsEventHandler;
821
878
  "onsgds-invalid"?: SgdsEventHandler;
879
+ onSgdsInvalid?: SgdsEventHandler;
822
880
  "onsgds-valid"?: SgdsEventHandler;
881
+ onSgdsValid?: SgdsEventHandler;
823
882
  }
824
883
 
825
884
  // ── Link ─────────────────────────────────────────────────────────────
@@ -867,9 +926,13 @@ export interface SgdsMainnavProps extends SgdsBaseProps {
867
926
  /** When true, removes max-width constraint to allow content to stretch full screen width */
868
927
  fluid?: boolean;
869
928
  "onsgds-show"?: SgdsEventHandler;
929
+ onSgdsShow?: SgdsEventHandler;
870
930
  "onsgds-after-show"?: SgdsEventHandler;
931
+ onSgdsAfterShow?: SgdsEventHandler;
871
932
  "onsgds-hide"?: SgdsEventHandler;
933
+ onSgdsHide?: SgdsEventHandler;
872
934
  "onsgds-after-hide"?: SgdsEventHandler;
935
+ onSgdsAfterHide?: SgdsEventHandler;
873
936
  }
874
937
 
875
938
  // ── Masthead ─────────────────────────────────────────────────────────────
@@ -893,10 +956,15 @@ export interface SgdsModalProps extends SgdsBaseProps {
893
956
  /** Removes the close button in the modal header. */
894
957
  noCloseButton?: boolean;
895
958
  "onsgds-close"?: SgdsEventHandler;
959
+ onSgdsClose?: SgdsEventHandler;
896
960
  "onsgds-show"?: SgdsEventHandler;
961
+ onSgdsShow?: SgdsEventHandler;
897
962
  "onsgds-hide"?: SgdsEventHandler;
963
+ onSgdsHide?: SgdsEventHandler;
898
964
  "onsgds-after-show"?: SgdsEventHandler;
965
+ onSgdsAfterShow?: SgdsEventHandler;
899
966
  "onsgds-after-hide"?: SgdsEventHandler;
967
+ onSgdsAfterHide?: SgdsEventHandler;
900
968
  }
901
969
 
902
970
  // ── OverflowMenu ─────────────────────────────────────────────────────────────
@@ -922,6 +990,7 @@ export interface SgdsPaginationProps extends SgdsBaseProps {
922
990
  /** Sets the size of all page items. */
923
991
  size?: "sm" | "md";
924
992
  "onsgds-page-change"?: (event: CustomEvent<ISgdsPaginationPageChangeEventDetail>) => void;
993
+ onSgdsPageChange?: (event: CustomEvent<ISgdsPaginationPageChangeEventDetail>) => void;
925
994
  }
926
995
 
927
996
  // ── ProgressBar ─────────────────────────────────────────────────────────────
@@ -980,7 +1049,9 @@ export interface SgdsQuantityToggleProps extends SgdsBaseProps {
980
1049
  /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
981
1050
  invalid?: boolean;
982
1051
  "onsgds-change"?: SgdsEventHandler;
1052
+ onSgdsChange?: SgdsEventHandler;
983
1053
  "onsgds-input"?: SgdsEventHandler;
1054
+ onSgdsInput?: SgdsEventHandler;
984
1055
  }
985
1056
 
986
1057
  // ── RadioGroup ─────────────────────────────────────────────────────────────
@@ -1011,6 +1082,7 @@ export interface SgdsRadioGroupProps extends SgdsBaseProps {
1011
1082
  /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
1012
1083
  invalid?: boolean;
1013
1084
  "onsgds-change"?: (event: CustomEvent<ISgdsRadioGroupChangeEventDetail>) => void;
1085
+ onSgdsChange?: (event: CustomEvent<ISgdsRadioGroupChangeEventDetail>) => void;
1014
1086
  }
1015
1087
 
1016
1088
  // ── Radio ─────────────────────────────────────────────────────────────
@@ -1027,7 +1099,9 @@ export interface SgdsRadioProps extends SgdsBaseProps {
1027
1099
  /** Automatically focuses the radio input when it becomes checked. */
1028
1100
  autofocus?: boolean;
1029
1101
  "onsgds-focus"?: SgdsEventHandler;
1102
+ onSgdsFocus?: SgdsEventHandler;
1030
1103
  "onsgds-blur"?: SgdsEventHandler;
1104
+ onSgdsBlur?: SgdsEventHandler;
1031
1105
  }
1032
1106
 
1033
1107
  // ── SelectOption ─────────────────────────────────────────────────────────────
@@ -1089,13 +1163,21 @@ value: string;
1089
1163
  /** Makes the input readonly. */
1090
1164
  readonly?: boolean;
1091
1165
  "onsgds-select"?: SgdsEventHandler;
1166
+ onSgdsSelect?: SgdsEventHandler;
1092
1167
  "onsgds-change"?: SgdsEventHandler;
1168
+ onSgdsChange?: SgdsEventHandler;
1093
1169
  "onsgds-focus"?: SgdsEventHandler;
1170
+ onSgdsFocus?: SgdsEventHandler;
1094
1171
  "onsgds-blur"?: SgdsEventHandler;
1172
+ onSgdsBlur?: SgdsEventHandler;
1095
1173
  "onsgds-show"?: SgdsEventHandler;
1174
+ onSgdsShow?: SgdsEventHandler;
1096
1175
  "onsgds-after-show"?: SgdsEventHandler;
1176
+ onSgdsAfterShow?: SgdsEventHandler;
1097
1177
  "onsgds-hide"?: SgdsEventHandler;
1178
+ onSgdsHide?: SgdsEventHandler;
1098
1179
  "onsgds-after-hide"?: SgdsEventHandler;
1180
+ onSgdsAfterHide?: SgdsEventHandler;
1099
1181
  }
1100
1182
 
1101
1183
  // ── SidebarGroup ─────────────────────────────────────────────────────────────
@@ -1185,11 +1267,18 @@ export interface SgdsSidenavItemProps extends SgdsBaseProps {
1185
1267
  active?: boolean;
1186
1268
  /** Disables the SgdsSidenavItem */
1187
1269
  disabled?: boolean;
1270
+ /** Accessible label for the sidenav item's menu button. Forwarded to the button's aria-label attribute. */
1271
+ ariaLabel?: string;
1188
1272
  "onsgds-toggle"?: SgdsEventHandler;
1273
+ onSgdsToggle?: SgdsEventHandler;
1189
1274
  "onsgds-show"?: SgdsEventHandler;
1275
+ onSgdsShow?: SgdsEventHandler;
1190
1276
  "onsgds-after-show"?: SgdsEventHandler;
1277
+ onSgdsAfterShow?: SgdsEventHandler;
1191
1278
  "onsgds-hide"?: SgdsEventHandler;
1279
+ onSgdsHide?: SgdsEventHandler;
1192
1280
  "onsgds-after-hide"?: SgdsEventHandler;
1281
+ onSgdsAfterHide?: SgdsEventHandler;
1193
1282
  }
1194
1283
 
1195
1284
  // ── SidenavLink ─────────────────────────────────────────────────────────────
@@ -1274,11 +1363,17 @@ export interface SgdsStepperProps extends SgdsBaseProps {
1274
1363
  /** When true, the stepper's steps can only be clicked in a linear manner */
1275
1364
  linear?: boolean;
1276
1365
  "onsgds-next-step"?: SgdsEventHandler;
1366
+ onSgdsNextStep?: SgdsEventHandler;
1277
1367
  "onsgds-previous-step"?: SgdsEventHandler;
1368
+ onSgdsPreviousStep?: SgdsEventHandler;
1278
1369
  "onsgds-last-step"?: SgdsEventHandler;
1370
+ onSgdsLastStep?: SgdsEventHandler;
1279
1371
  "onsgds-first-step"?: SgdsEventHandler;
1372
+ onSgdsFirstStep?: SgdsEventHandler;
1280
1373
  "onsgds-arrived"?: SgdsEventHandler;
1374
+ onSgdsArrived?: SgdsEventHandler;
1281
1375
  "onsgds-reset"?: SgdsEventHandler;
1376
+ onSgdsReset?: SgdsEventHandler;
1282
1377
  }
1283
1378
 
1284
1379
  // ── SubnavItem ─────────────────────────────────────────────────────────────
@@ -1296,9 +1391,13 @@ export interface SgdsSubnavProps extends SgdsBaseProps {
1296
1391
  /** Used only for SSR to indicate the presence of the `actions` slot. */
1297
1392
  hasActionsSlot?: boolean;
1298
1393
  "onsgds-show"?: SgdsEventHandler;
1394
+ onSgdsShow?: SgdsEventHandler;
1299
1395
  "onsgds-after-show"?: SgdsEventHandler;
1396
+ onSgdsAfterShow?: SgdsEventHandler;
1300
1397
  "onsgds-hide"?: SgdsEventHandler;
1398
+ onSgdsHide?: SgdsEventHandler;
1301
1399
  "onsgds-after-hide"?: SgdsEventHandler;
1400
+ onSgdsAfterHide?: SgdsEventHandler;
1302
1401
  }
1303
1402
 
1304
1403
  // ── Switch ─────────────────────────────────────────────────────────────
@@ -1317,6 +1416,7 @@ export interface SgdsSwitchProps extends SgdsBaseProps {
1317
1416
  /** Used only for SSR to indicate the presence of the `leftLabel` slot. */
1318
1417
  hasLeftLabelSlot?: boolean;
1319
1418
  "onsgds-change"?: (event: CustomEvent<ISgdsSwitchChangeEventDetail>) => void;
1419
+ onSgdsChange?: (event: CustomEvent<ISgdsSwitchChangeEventDetail>) => void;
1320
1420
  }
1321
1421
 
1322
1422
  // ── SystemBannerItem ─────────────────────────────────────────────────────────────
@@ -1327,6 +1427,7 @@ export interface SgdsSystemBannerItemProps extends SgdsBaseProps {
1327
1427
  /** Disables the action link that appears when text content is clamped */
1328
1428
  noClampAction?: boolean;
1329
1429
  "onsgds-show-more"?: SgdsEventHandler;
1430
+ onSgdsShowMore?: SgdsEventHandler;
1330
1431
  }
1331
1432
 
1332
1433
  // ── SystemBanner ─────────────────────────────────────────────────────────────
@@ -1341,7 +1442,9 @@ export interface SgdsSystemBannerProps extends SgdsBaseProps {
1341
1442
  /** When true, removes max-width constraint to allow content to stretch full screen width */
1342
1443
  fluid?: boolean;
1343
1444
  "onsgds-show"?: SgdsEventHandler;
1445
+ onSgdsShow?: SgdsEventHandler;
1344
1446
  "onsgds-hide"?: SgdsEventHandler;
1447
+ onSgdsHide?: SgdsEventHandler;
1345
1448
  }
1346
1449
 
1347
1450
  // ── TabGroup ─────────────────────────────────────────────────────────────
@@ -1354,7 +1457,9 @@ export interface SgdsTabGroupProps extends SgdsBaseProps {
1354
1457
  /** The density of tabs. Controls the density of all `sgds-tabs` in its slot. It also sets the density attribute of `sgds-tab` */
1355
1458
  density?: "compact" | "default";
1356
1459
  "onsgds-tab-show"?: SgdsEventHandler;
1460
+ onSgdsTabShow?: SgdsEventHandler;
1357
1461
  "onsgds-tab-hide"?: SgdsEventHandler;
1462
+ onSgdsTabHide?: SgdsEventHandler;
1358
1463
  }
1359
1464
 
1360
1465
  // ── TabPanel ─────────────────────────────────────────────────────────────
@@ -1486,11 +1591,17 @@ export interface SgdsTextareaProps extends SgdsBaseProps {
1486
1591
  /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
1487
1592
  invalid?: boolean;
1488
1593
  "onsgds-change"?: SgdsEventHandler;
1594
+ onSgdsChange?: SgdsEventHandler;
1489
1595
  "onsgds-input"?: SgdsEventHandler;
1596
+ onSgdsInput?: SgdsEventHandler;
1490
1597
  "onsgds-focus"?: SgdsEventHandler;
1598
+ onSgdsFocus?: SgdsEventHandler;
1491
1599
  "onsgds-blur"?: SgdsEventHandler;
1600
+ onSgdsBlur?: SgdsEventHandler;
1492
1601
  "onsgds-invalid"?: SgdsEventHandler;
1602
+ onSgdsInvalid?: SgdsEventHandler;
1493
1603
  "onsgds-valid"?: SgdsEventHandler;
1604
+ onSgdsValid?: SgdsEventHandler;
1494
1605
  }
1495
1606
 
1496
1607
  // ── ThumbnailCard ─────────────────────────────────────────────────────────────
@@ -1536,9 +1647,13 @@ export interface SgdsToastProps extends SgdsBaseProps {
1536
1647
  /** Controls whether or not the Toast is dismissible */
1537
1648
  dismissible?: boolean;
1538
1649
  "onsgds-show"?: SgdsEventHandler;
1650
+ onSgdsShow?: SgdsEventHandler;
1539
1651
  "onsgds-after-show"?: SgdsEventHandler;
1652
+ onSgdsAfterShow?: SgdsEventHandler;
1540
1653
  "onsgds-hide"?: SgdsEventHandler;
1654
+ onSgdsHide?: SgdsEventHandler;
1541
1655
  "onsgds-after-hide"?: SgdsEventHandler;
1656
+ onSgdsAfterHide?: SgdsEventHandler;
1542
1657
  }
1543
1658
 
1544
1659
  // ── Tooltip ─────────────────────────────────────────────────────────────
@@ -1551,9 +1666,13 @@ export interface SgdsTooltipProps extends SgdsBaseProps {
1551
1666
  /** The method to invoke the tooltip. `hover focus` is the default value which allows tooltip to be triggered via mouse hover and keyboard focus. Add `tabindex=0` for HTMLelements that are not tabbable. */
1552
1667
  trigger?: "click" | "hover" | "focus" | "hover focus";
1553
1668
  "onsgds-show"?: SgdsEventHandler;
1669
+ onSgdsShow?: SgdsEventHandler;
1554
1670
  "onsgds-after-show"?: SgdsEventHandler;
1671
+ onSgdsAfterShow?: SgdsEventHandler;
1555
1672
  "onsgds-hide"?: SgdsEventHandler;
1673
+ onSgdsHide?: SgdsEventHandler;
1556
1674
  "onsgds-after-hide"?: SgdsEventHandler;
1675
+ onSgdsAfterHide?: SgdsEventHandler;
1557
1676
  }
1558
1677
 
1559
1678
  // ---------------------------------------------------------------------------
@@ -1567,11 +1686,11 @@ declare module "react" {
1567
1686
  "sgds-accordion": React.DetailedHTMLProps<SgdsAccordionProps, HTMLElement>;
1568
1687
  "sgds-alert-link": React.DetailedHTMLProps<SgdsAlertLinkProps, HTMLElement>;
1569
1688
  "sgds-alert": React.DetailedHTMLProps<SgdsAlertProps, HTMLElement>;
1689
+ "sgds-button": React.DetailedHTMLProps<SgdsButtonProps, HTMLElement>;
1690
+ "sgds-badge": React.DetailedHTMLProps<SgdsBadgeProps, HTMLElement>;
1570
1691
  "sgds-card": React.DetailedHTMLProps<SgdsCardProps, HTMLElement>;
1571
1692
  "sgds-breadcrumb-item": React.DetailedHTMLProps<SgdsBreadcrumbItemProps, HTMLElement>;
1572
1693
  "sgds-breadcrumb": React.DetailedHTMLProps<SgdsBreadcrumbProps, HTMLElement>;
1573
- "sgds-button": React.DetailedHTMLProps<SgdsButtonProps, HTMLElement>;
1574
- "sgds-badge": React.DetailedHTMLProps<SgdsBadgeProps, HTMLElement>;
1575
1694
  "sgds-checkbox-group": React.DetailedHTMLProps<SgdsCheckboxGroupProps, HTMLElement>;
1576
1695
  "sgds-checkbox": React.DetailedHTMLProps<SgdsCheckboxProps, HTMLElement>;
1577
1696
  "sgds-close-button": React.DetailedHTMLProps<SgdsCloseButtonProps, HTMLElement>;
@@ -1650,11 +1769,11 @@ declare global {
1650
1769
  "sgds-accordion": HTMLElement;
1651
1770
  "sgds-alert-link": HTMLElement;
1652
1771
  "sgds-alert": HTMLElement;
1772
+ "sgds-button": HTMLElement;
1773
+ "sgds-badge": HTMLElement;
1653
1774
  "sgds-card": HTMLElement;
1654
1775
  "sgds-breadcrumb-item": HTMLElement;
1655
1776
  "sgds-breadcrumb": HTMLElement;
1656
- "sgds-button": HTMLElement;
1657
- "sgds-badge": HTMLElement;
1658
1777
  "sgds-checkbox-group": HTMLElement;
1659
1778
  "sgds-checkbox": HTMLElement;
1660
1779
  "sgds-close-button": HTMLElement;