@govtechsg/sgds-web-component 3.15.1-rc.2 → 3.15.1-rc.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/components/ComboBox/index.umd.min.js.map +1 -1
  2. package/components/ComboBox/sgds-combo-box.d.ts +3 -3
  3. package/components/ComboBox/sgds-combo-box.js +1 -0
  4. package/components/ComboBox/sgds-combo-box.js.map +1 -1
  5. package/components/ComboBox/types.d.ts +3 -0
  6. package/components/FileUpload/index.umd.min.js.map +1 -1
  7. package/components/FileUpload/sgds-file-upload.d.ts +3 -0
  8. package/components/FileUpload/sgds-file-upload.js +1 -0
  9. package/components/FileUpload/sgds-file-upload.js.map +1 -1
  10. package/components/FileUpload/types.d.ts +1 -0
  11. package/components/Pagination/index.umd.min.js.map +1 -1
  12. package/components/Pagination/sgds-pagination.d.ts +3 -0
  13. package/components/Pagination/sgds-pagination.js +1 -0
  14. package/components/Pagination/sgds-pagination.js.map +1 -1
  15. package/components/Pagination/types.d.ts +3 -0
  16. package/components/Radio/index.umd.min.js.map +1 -1
  17. package/components/Radio/sgds-radio-group.d.ts +3 -0
  18. package/components/Radio/sgds-radio-group.js +1 -0
  19. package/components/Radio/sgds-radio-group.js.map +1 -1
  20. package/components/Radio/types.d.ts +3 -0
  21. package/components/Stepper/index.umd.min.js.map +1 -1
  22. package/components/Stepper/sgds-stepper.d.ts +2 -5
  23. package/components/Stepper/sgds-stepper.js.map +1 -1
  24. package/components/Stepper/types.d.ts +5 -0
  25. package/components/Switch/index.umd.min.js.map +1 -1
  26. package/components/Switch/sgds-switch.d.ts +3 -0
  27. package/components/Switch/sgds-switch.js +1 -0
  28. package/components/Switch/sgds-switch.js.map +1 -1
  29. package/components/Switch/types.d.ts +3 -0
  30. package/components/index.umd.min.js.map +1 -1
  31. package/custom-elements.json +26391 -0
  32. package/index.umd.min.js.map +1 -1
  33. package/package.json +5 -3
  34. package/react/components/ComboBox/sgds-combo-box.cjs.js +1 -0
  35. package/react/components/ComboBox/sgds-combo-box.cjs.js.map +1 -1
  36. package/react/components/ComboBox/sgds-combo-box.js +1 -0
  37. package/react/components/ComboBox/sgds-combo-box.js.map +1 -1
  38. package/react/components/FileUpload/sgds-file-upload.cjs.js +1 -0
  39. package/react/components/FileUpload/sgds-file-upload.cjs.js.map +1 -1
  40. package/react/components/FileUpload/sgds-file-upload.js +1 -0
  41. package/react/components/FileUpload/sgds-file-upload.js.map +1 -1
  42. package/react/components/Pagination/sgds-pagination.cjs.js +1 -0
  43. package/react/components/Pagination/sgds-pagination.cjs.js.map +1 -1
  44. package/react/components/Pagination/sgds-pagination.js +1 -0
  45. package/react/components/Pagination/sgds-pagination.js.map +1 -1
  46. package/react/components/Radio/sgds-radio-group.cjs.js +1 -0
  47. package/react/components/Radio/sgds-radio-group.cjs.js.map +1 -1
  48. package/react/components/Radio/sgds-radio-group.js +1 -0
  49. package/react/components/Radio/sgds-radio-group.js.map +1 -1
  50. package/react/components/Stepper/sgds-stepper.cjs.js.map +1 -1
  51. package/react/components/Stepper/sgds-stepper.js.map +1 -1
  52. package/react/components/Switch/sgds-switch.cjs.js +1 -0
  53. package/react/components/Switch/sgds-switch.cjs.js.map +1 -1
  54. package/react/components/Switch/sgds-switch.js +1 -0
  55. package/react/components/Switch/sgds-switch.js.map +1 -1
  56. package/types/react.d.ts +1623 -0
@@ -0,0 +1,1623 @@
1
+ /**
2
+ * SGDS Web Components – React TypeScript Type Definitions
3
+ *
4
+ * Auto-generated by scripts/generateSgdsTypes.mjs — do not edit by hand.
5
+ *
6
+ * Provides typed JSX intrinsic elements for all `sgds-*` custom elements so
7
+ * that React and Next.js TypeScript projects get IntelliSense and type-safety
8
+ * without importing the full library at runtime.
9
+ *
10
+ * Usage – add ONE of the following to your project's `types.d.ts`:
11
+ *
12
+ * // Triple-slash reference (works in any tsconfig):
13
+ * /// <reference path="node_modules/@govtechsg/sgds-web-component/sgds-types.d.ts" />
14
+ *
15
+ * // ES import (tsconfig must include this file via `include` or `typeRoots`):
16
+ * import "@govtechsg/sgds-web-component/sgds-types";
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} />
21
+ */
22
+
23
+ export {};
24
+
25
+ // ---------------------------------------------------------------------------
26
+ // Helpers
27
+ // ---------------------------------------------------------------------------
28
+
29
+ type SgdsEventHandler = (event: CustomEvent) => void;
30
+
31
+ /** Common props shared by every SGDS element */
32
+ interface SgdsBaseProps extends React.HTMLAttributes<HTMLElement> {
33
+ /** Override the CSS `class` attribute (use `className` in JSX for React) */
34
+ class?: string;
35
+ }
36
+
37
+ // ---------------------------------------------------------------------------
38
+ // Event detail interfaces (from per-component types.d.ts)
39
+ // ---------------------------------------------------------------------------
40
+
41
+ // ── Card ─────────────────────────────────────────────────────────────
42
+
43
+ type CardImageAdjustment = "default" | "padding around" | "aspect ratio";
44
+ type CardImagePosition = "before" | "after";
45
+ type CardOrientation = "vertical" | "horizontal";
46
+
47
+ // ── ComboBox ─────────────────────────────────────────────────────────────
48
+
49
+ interface ISgdsComboBoxInputEventDetail {
50
+ displayValue: string;
51
+ }
52
+
53
+ // ── Datepicker ─────────────────────────────────────────────────────────────
54
+
55
+ type ViewEnum = "days" | "months" | "years";
56
+
57
+ // ── FileUpload ─────────────────────────────────────────────────────────────
58
+
59
+ type ISgdsFileUploadFilesSelectedEventDetail = FileList;
60
+
61
+ // ── Pagination ─────────────────────────────────────────────────────────────
62
+
63
+ interface ISgdsPaginationPageChangeEventDetail {
64
+ currentPage: number;
65
+ }
66
+
67
+ // ── Radio ─────────────────────────────────────────────────────────────
68
+
69
+ interface ISgdsRadioGroupChangeEventDetail {
70
+ value: string;
71
+ }
72
+
73
+ // ── Stepper ─────────────────────────────────────────────────────────────
74
+
75
+ interface IStepMetaData {
76
+ component: unknown;
77
+ stepHeader: string;
78
+ iconName?: string;
79
+ }
80
+
81
+ // ── Switch ─────────────────────────────────────────────────────────────
82
+
83
+ interface ISgdsSwitchChangeEventDetail {
84
+ checked: boolean;
85
+ }
86
+
87
+ // ---------------------------------------------------------------------------
88
+ // Component prop interfaces
89
+ // ---------------------------------------------------------------------------
90
+
91
+ // ── AccordionItem ─────────────────────────────────────────────────────────────
92
+
93
+ interface SgdsAccordionItemProps extends SgdsBaseProps {
94
+ /** Controls whether accordion-item is open or close */
95
+ open?: boolean;
96
+ /** Disables the accordion item */
97
+ disabled?: boolean;
98
+ /** Controls the density of the individual accordion item. This value is controlled by sgds-accordion */
99
+ density?: AccordionDensity;
100
+ "onsgds-show"?: SgdsEventHandler;
101
+ "onsgds-after-show"?: SgdsEventHandler;
102
+ "onsgds-hide"?: SgdsEventHandler;
103
+ "onsgds-after-hide"?: SgdsEventHandler;
104
+ }
105
+
106
+ // ── Accordion ─────────────────────────────────────────────────────────────
107
+
108
+ interface SgdsAccordionProps extends SgdsBaseProps {
109
+ /** Allows multiple accordion items to be opened at the same time */
110
+ allowMultiple?: boolean;
111
+ /** The variant of accordion */
112
+ variant?: "default" | "border";
113
+ /** The density of accordion */
114
+ density?: "default" | "compact";
115
+ }
116
+
117
+ // ── AlertLink ─────────────────────────────────────────────────────────────
118
+
119
+ interface SgdsAlertLinkProps extends SgdsBaseProps {
120
+ /** Forwards to href attribute of anchor element */
121
+ href?: string;
122
+ /** Tells the browser where to open the link */
123
+ target?: "_blank" | "_parent" | "_self" | "_top";
124
+ }
125
+
126
+ // ── Alert ─────────────────────────────────────────────────────────────
127
+
128
+ interface SgdsAlertProps extends SgdsBaseProps {
129
+ /** Controls the appearance of the alert */
130
+ show?: boolean;
131
+ /** Enables a close button that allows the user to dismiss the alert. */
132
+ dismissible?: boolean;
133
+ /** The alert's theme variant. */
134
+ variant?: "info" | "success" | "danger" | "warning" | "neutral";
135
+ /** Controls the alert visual between a lighter outline and a solid darker variant. */
136
+ outlined?: boolean;
137
+ /** The title of the alert. Only text is allowed */
138
+ title?: string;
139
+ "onsgds-show"?: SgdsEventHandler;
140
+ "onsgds-hide"?: SgdsEventHandler;
141
+ }
142
+
143
+ // ── Badge ─────────────────────────────────────────────────────────────
144
+
145
+ interface SgdsBadgeProps extends SgdsBaseProps {
146
+ /** Controls the appearance of the dismissible badge. This prop only applies when dismissible is true */
147
+ show?: boolean;
148
+ /** One or more badge variant combinations.
149
+ Variants include: `primary`, `accent`, `success`, `danger`, `warning`, `cyan`, `purple`, `neutral`, `white`, `info`.
150
+
151
+ (@deprecated) The `info` variant is deprecated. Use `primary` instead. */
152
+ variant?: "primary" | "accent" | "success" | "danger" | "warning" | "cyan" | "purple" | "neutral" | "white" | "info";
153
+ /** Manually set the outlined state to false */
154
+ outlined?: boolean;
155
+ /** Manually set the dismissible state of the button to `false` */
156
+ dismissible?: boolean;
157
+ /** Manually enable full width */
158
+ fullWidth?: boolean;
159
+ "onsgds-show"?: SgdsEventHandler;
160
+ "onsgds-hide"?: SgdsEventHandler;
161
+ "onsgds-after-show"?: SgdsEventHandler;
162
+ "onsgds-after-hide"?: SgdsEventHandler;
163
+ }
164
+
165
+ // ── BreadcrumbItem ─────────────────────────────────────────────────────────────
166
+
167
+ interface SgdsBreadcrumbItemProps extends SgdsBaseProps {
168
+ /** 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 */
169
+ active?: boolean;
170
+ }
171
+
172
+ // ── Breadcrumb ─────────────────────────────────────────────────────────────
173
+
174
+ interface SgdsBreadcrumbProps extends SgdsBaseProps {
175
+ /** The aria-label of nav element within breadcrumb component. */
176
+ ariaLabel?: string;
177
+ }
178
+
179
+ // ── Button ─────────────────────────────────────────────────────────────
180
+
181
+ interface SgdsButtonProps extends SgdsBaseProps {
182
+ /** The behavior of the button with default as `type='button', `reset` resets all the controls to their initial values and `submit` submits the form data to the server */
183
+ type?: "button" | "submit" | "reset";
184
+ /** The "form owner" to associate the button with. If omitted, the closest containing form will be used instead. The
185
+ value of this attribute must be an id of a form in the same document or shadow root as the button. */
186
+ form?: string;
187
+ /** Used to override the form owner's `action` attribute. */
188
+ formAction?: string;
189
+ /** Used to override the form owner's `method` attribute. */
190
+ formMethod?: "post" | "get";
191
+ /** Used to override the form owner's `novalidate` attribute. */
192
+ formNoValidate?: boolean;
193
+ /** Used to override the form owner's `target` attribute. */
194
+ formTarget?: | "_self"
195
+ | "_blank"
196
+ | "_parent"
197
+ | "_top"
198
+ | string;
199
+ /** When set, the button will be in full width. */
200
+ fullWidth?: boolean;
201
+ /** Used only for SSR to indicate the presence of the `leftIcon` slot. */
202
+ hasLeftIconSlot?: boolean;
203
+ /** Used only for SSR to indicate the presence of the `rightIcon` slot. */
204
+ hasRightIconSlot?: boolean;
205
+ /** Sets the visual variants such as: `primary`, `outline`, `ghost`. `danger` is @deprecated since v3.5.6 */
206
+ variant?: "primary" | "outline" | "ghost" | "danger";
207
+ /** Sets the visual colour of the button: `brand`, `danger`, `fixed-light`, `neutral` */
208
+ tone?: "brand" | "danger" | "fixed-light" | "neutral";
209
+ /** Specifies a small, medium or large button, the size is medium by default. */
210
+ size?: "xs" | "sm" | "md" | "lg";
211
+ /** Manually set the visual state of the button to `:active` */
212
+ active?: boolean;
213
+ /** The disabled state of the button */
214
+ disabled?: boolean;
215
+ /** When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`. */
216
+ href?: string;
217
+ /** Where to display the linked URL, as the name for a browsing context. Forwards to the HTMLAnchor target attribute */
218
+ target?: "_blank" | "_parent" | "_self" | "_top";
219
+ /** Tells the browser to download the linked file as this filename. Only used when `href` is set. */
220
+ download?: string;
221
+ /** The aria-label attribute to passed to button element when necessary */
222
+ ariaLabel?: string;
223
+ /** When true, shows a loading spinner */
224
+ loading?: boolean;
225
+ "onsgds-blur"?: SgdsEventHandler;
226
+ "onsgds-focus"?: SgdsEventHandler;
227
+ }
228
+
229
+ // ── Card ─────────────────────────────────────────────────────────────
230
+
231
+ interface SgdsCardProps extends SgdsBaseProps {
232
+ /** Sets the image position of the card. Available options: `before`, `after` */
233
+ imagePosition?: CardImagePosition;
234
+ /** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */
235
+ imageAdjustment?: CardImageAdjustment;
236
+ /** Used only for SSR to indicate the presence of the `image` slot. */
237
+ hasImageSlot?: boolean;
238
+ /** Used only for SSR to indicate the presence of the `icon` slot. */
239
+ hasIconSlot?: boolean;
240
+ /** Used only for SSR to indicate the presence of the `upper` slot. */
241
+ hasUpperSlot?: boolean;
242
+ /** Extends the link passed in either `footer` or `link`(deprecated) slot. */
243
+ stretchedLink?: boolean;
244
+ /** Disables the card */
245
+ disabled?: boolean;
246
+ /** When true, hides the default border of the card. */
247
+ hideBorder?: boolean;
248
+ /** When true, applies a tinted background color to the card. */
249
+ tinted?: boolean;
250
+ /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */
251
+ orientation?: CardOrientation;
252
+ }
253
+
254
+ // ── CheckboxGroup ─────────────────────────────────────────────────────────────
255
+
256
+ interface SgdsCheckboxGroupProps extends SgdsBaseProps {
257
+ /** The checkbox group's label */
258
+ label?: string;
259
+ /** Feedback text for error state when validated */
260
+ invalidFeedback?: string;
261
+ /** Allows invalidFeedback, invalid styles to be visible. When SgdsCheckboxGroup is used, it overrides the value of hasFeedback on SgdsCheckbox with its own value. */
262
+ hasFeedback?: boolean;
263
+ /** The checkbox group's hint text */
264
+ hintText?: string;
265
+ /** Makes the checkbox group a required field. Only available for when multiselect is true */
266
+ required?: boolean;
267
+ /** Consolidates the values of its child checked checkboxes into a single string with semi-colon delimiter. Only available when required is true */
268
+ value?: string;
269
+ defaultValue?: string;
270
+ /** Returns the ValidityState object */
271
+ validity?: ValidityState;
272
+ /** Returns the validation message based on the ValidityState */
273
+ validationMessage?: unknown;
274
+ /** The input's name attribute */
275
+ name?: string;
276
+ /** Disables the input. */
277
+ disabled?: boolean;
278
+ /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
279
+ invalid?: boolean;
280
+ "onsgds-change"?: SgdsEventHandler;
281
+ }
282
+
283
+ // ── Checkbox ─────────────────────────────────────────────────────────────
284
+
285
+ interface SgdsCheckboxProps extends SgdsBaseProps {
286
+ /** Value of the HTML form control. Primarily used to differentiate a list of related checkboxes that have the same name. */
287
+ value?: string;
288
+ /** Draws the checkbox in a checked state. */
289
+ checked?: boolean;
290
+ /** Allows invalidFeedback, invalid and valid styles to be visible with the input */
291
+ hasFeedback?: "style" | "text" | "both";
292
+ /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */
293
+ defaultChecked?: boolean;
294
+ /** Marks the checkbox input as indeterminate , with indeterminate logo */
295
+ indeterminate?: boolean;
296
+ /** Makes the checkbox a required field. */
297
+ required?: boolean;
298
+ /** Feedback text for error state when validated */
299
+ invalidFeedback?: string;
300
+ /** Returns the ValidityState object */
301
+ validity?: ValidityState;
302
+ /** Returns the validation message based on the ValidityState */
303
+ validationMessage?: unknown;
304
+ /** The input's label */
305
+ label?: string;
306
+ /** The input's hint text */
307
+ hintText?: string;
308
+ /** The input's name attribute */
309
+ name?: string;
310
+ /** Disables the input. */
311
+ disabled?: boolean;
312
+ /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
313
+ invalid?: boolean;
314
+ "onsgds-change"?: SgdsEventHandler;
315
+ "onsgds-blur"?: SgdsEventHandler;
316
+ "onsgds-focus"?: SgdsEventHandler;
317
+ "onsgds-check"?: SgdsEventHandler;
318
+ "onsgds-uncheck"?: SgdsEventHandler;
319
+ }
320
+
321
+ // ── CloseButton ─────────────────────────────────────────────────────────────
322
+
323
+ interface SgdsCloseButtonProps extends SgdsBaseProps {
324
+ /** Specifies a large or small button */
325
+ size?: "sm" | "md";
326
+ /** The tone of the close button */
327
+ tone?: "default" | "fixed-dark" | "fixed-light";
328
+ }
329
+
330
+ // ── ComboBoxOption ─────────────────────────────────────────────────────────────
331
+
332
+ interface SgdsComboBoxOptionProps extends SgdsBaseProps {
333
+ /** Disables the Item */
334
+ disabled?: boolean;
335
+ /** The value of the option item */
336
+ value?: string;
337
+ }
338
+
339
+ // ── ComboBox ─────────────────────────────────────────────────────────────
340
+
341
+ interface SgdsComboBoxProps extends SgdsBaseProps {
342
+ /** If true, renders multiple checkbox selection items. If false, single-select. */
343
+ multiSelect?: boolean;
344
+ /** If true, renders badge that fills width of combobox */
345
+ badgeFullWidth?: boolean;
346
+ /** If true, a clear button will be enabled on focus */
347
+ clearable?: boolean;
348
+ /** Enables the asynchronous behaviour of a combo box. When true, filterFunction is ignored and filtering is done remotely. */
349
+ async?: boolean;
350
+ /** When filtering remotely and there are no results, set this to true to enable no options feedback on the menu. Applicable for async combo box only. */
351
+ emptyMenuAsync?: boolean;
352
+ /** The function used to filter the menu list, given the user's input value. */
353
+ filterFunction?: (inputValue: string, item: SgdsComboBoxOptionData) => boolean;
354
+ /** The input's label */
355
+ label?: string;
356
+ /** The input's hint text below the label */
357
+ hintText?: string;
358
+ /** The input's name attribute */
359
+ name?: string;
360
+ /** The input's placeholder text. */
361
+ placeholder?: string;
362
+ /** Autofocus the input */
363
+ autofocus?: boolean;
364
+ /** Disables the input. */
365
+ disabled?: boolean;
366
+ /** Makes the input a required field. */
367
+ required?: boolean;
368
+ /** Sets the loading state of the component */
369
+ loading?: boolean;
370
+ /** IMPORTANT:
371
+ We still expose `.value` externally, but this is now the underlying ID or data
372
+ (e.g. 1, 2, 'abc', ...), not the label that appears in the input box. */
373
+ value?: string;
374
+ displayValue?: string;
375
+ /** Allows invalidFeedback, invalid and valid styles to be visible with the input */
376
+ hasFeedback?: boolean;
377
+ /** Feedback text for error state when validated */
378
+ invalidFeedback?: string;
379
+ /** Marks the component as invalid. Replace the pseudo :invalid selector. */
380
+ invalid?: boolean;
381
+ /** The list of items to display in the dropdown.
382
+ `interface SgdsComboBoxItemData {
383
+ label: string;
384
+ value: string;
385
+ }` */
386
+ menuList?: SgdsOptionData[];
387
+ /** Returns the ValidityState object */
388
+ validity?: ValidityState;
389
+ /** Returns the validation message based on the ValidityState */
390
+ validationMessage?: string;
391
+ /** Additional configuration to pass to Floating UI. */
392
+ floatingOpts?: { placement?: Placement; middleware?: Array<Middleware> };
393
+ hidden?: boolean;
394
+ /** When true, dropdown menu shows on first load */
395
+ menuIsOpen?: boolean;
396
+ /** Makes the input readonly. */
397
+ readonly?: boolean;
398
+ "onsgds-select"?: SgdsEventHandler;
399
+ "onsgds-change"?: SgdsEventHandler;
400
+ "onsgds-input"?: (event: CustomEvent<ISgdsComboBoxInputEventDetail>) => void;
401
+ "onsgds-focus"?: SgdsEventHandler;
402
+ "onsgds-blur"?: SgdsEventHandler;
403
+ "onsgds-show"?: SgdsEventHandler;
404
+ "onsgds-after-show"?: SgdsEventHandler;
405
+ "onsgds-hide"?: SgdsEventHandler;
406
+ "onsgds-after-hide"?: SgdsEventHandler;
407
+ }
408
+
409
+ // ── Datepicker ─────────────────────────────────────────────────────────────
410
+
411
+ interface SgdsDatepickerProps extends SgdsBaseProps {
412
+ /** When true, adds required attribute to input element */
413
+ required?: boolean;
414
+ /** The datepicker input's name attribute */
415
+ name?: string;
416
+ /** When true, adds disabled attribute to input and button element */
417
+ disabled?: boolean;
418
+ /** Sets the initial value of the datepicker. Replaces deprecated `initialValue`.
419
+ Pass in dates in this format `dd/mm/yyyy` for single mode and `dd/mm/yyyy - dd/mm/yyyy` for range mode
420
+ For example, `value="22/12/2023"` for single mode or `value="22/12/2023 - 25/12/2023"` for range mode */
421
+ value?: string;
422
+ /** Deprecated since v3.3.0 in favour of `value`.
423
+ The initial value of DatePicker on first load for single &
424
+ range mode as array of string. eg.'["22/12/2023"]' for single &
425
+ '["22/12/2023","25/12/2023"]' for range respectively @deprecated */
426
+ initialValue?: string[];
427
+ /** ISO date string to set the lowest allowable date value. e.g. "2016-05-19T12:00:00.000Z" */
428
+ minDate?: string;
429
+ /** ISO date string to set the highest allowable date value. e.g. "2016-05-19T12:00:00.000Z" */
430
+ maxDate?: string;
431
+ /** Changes DatePicker to single date selection or range date selection */
432
+ mode?: "single" | "range";
433
+ /** Feedback text for error state when date input is invalid */
434
+ invalidFeedback?: string;
435
+ /** Allows invalidFeedback and invalid styles to be visible with the input */
436
+ hasFeedback?: boolean;
437
+ /** The datepicker input's label */
438
+ label?: string;
439
+ /** The datepicker input's hint text below the label */
440
+ hintText?: string;
441
+ /** Controls auto-flipping of menu */
442
+ noFlip?: boolean;
443
+ /** The drop position of menu relative to the toggle button */
444
+ drop?: "up" | "down";
445
+ /** Provides the date context for Calendar to present the appropriate view. Defaults to today's date */
446
+ displayDate?: Date;
447
+ /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */
448
+ defaultValue?: string;
449
+ /** Returns the ValidityState object */
450
+ validity?: ValidityState;
451
+ /** Returns the validation message based on the ValidityState */
452
+ validationMessage?: unknown;
453
+ /** Additional configuration to pass to Floating UI. */
454
+ floatingOpts?: { placement?: Placement; middleware?: Array<Middleware> };
455
+ /** When true, dropdown menu shows on first load */
456
+ menuIsOpen?: boolean;
457
+ /** Makes the input readonly. */
458
+ readonly?: boolean;
459
+ "onsgds-change-date"?: SgdsEventHandler;
460
+ "onsgds-show"?: SgdsEventHandler;
461
+ "onsgds-after-show"?: SgdsEventHandler;
462
+ "onsgds-hide"?: SgdsEventHandler;
463
+ "onsgds-after-hide"?: SgdsEventHandler;
464
+ }
465
+
466
+ // ── DescriptionListGroup ─────────────────────────────────────────────────────────────
467
+
468
+ interface SgdsDescriptionListGroupProps extends SgdsBaseProps {
469
+ /** When true, adds a border around the entire group. */
470
+ bordered?: boolean;
471
+ /** When true, the description lists are displayed in a stacked layout. */
472
+ stacked?: boolean;
473
+ /** Used only for SSR to indicate the presence of the `title` slot. */
474
+ hasTitleSlot?: boolean;
475
+ /** Used only for SSR to indicate the presence of the `description` slot. */
476
+ hasDescriptionSlot?: boolean;
477
+ }
478
+
479
+ // ── DescriptionList ─────────────────────────────────────────────────────────────
480
+
481
+ interface SgdsDescriptionListProps extends SgdsBaseProps {
482
+ /** Makes the label and the data stacked */
483
+ stacked?: boolean;
484
+ /** Changes the border bottom styles for bordered description list group */
485
+ bordered?: boolean;
486
+ }
487
+
488
+ // ── Divider ─────────────────────────────────────────────────────────────
489
+
490
+ interface SgdsDividerProps extends SgdsBaseProps {
491
+ /** Sets the orientation of divider to vertical. Defaults to horizontal */
492
+ orientation?: "horizontal" | "vertical";
493
+ /** Sets the orientation of divider to vertical. Defaults to false */
494
+ thickness?: "thin" | "thick" | "thicker";
495
+ }
496
+
497
+ // ── Drawer ─────────────────────────────────────────────────────────────
498
+
499
+ interface SgdsDrawerProps extends SgdsBaseProps {
500
+ /** Indicates whether or not the drawer is open. You can toggle this attribute to show and hide the drawer, or you can
501
+ use the `show()` and `hide()` methods and this attribute will reflect the drawer's open state. */
502
+ open?: boolean;
503
+ /** Defines the size of the drawer panel.
504
+ For drawers placed on the left or right (`start`/`end`), this controls the drawer's width.
505
+ For drawers placed on the top or bottom, this controls the drawer's height.
506
+ Accepts `small`, `medium`, or `large`. Defaults to `small`. */
507
+ size?: "sm" | "md" | "lg";
508
+ /** The direction from which the drawer will open. */
509
+ placement?: "top" | "end" | "bottom" | "start";
510
+ /** By default, the drawer slides out of its containing block (usually the viewport). To make the drawer slide out of
511
+ its parent element, set this attribute and add `position: relative` to the parent. */
512
+ contained?: boolean;
513
+ "onsgds-show"?: SgdsEventHandler;
514
+ "onsgds-after-show"?: SgdsEventHandler;
515
+ "onsgds-hide"?: SgdsEventHandler;
516
+ "onsgds-after-hide"?: SgdsEventHandler;
517
+ "onsgds-initial-focus"?: SgdsEventHandler;
518
+ "onsgds-request-close"?: SgdsEventHandler;
519
+ }
520
+
521
+ // ── DropdownItem ─────────────────────────────────────────────────────────────
522
+
523
+ interface SgdsDropdownItemProps extends SgdsBaseProps {
524
+ /** when true, sets the active stylings of dropdown item */
525
+ active?: boolean;
526
+ /** Disables the SgdsMainnavItem */
527
+ disabled?: boolean;
528
+ }
529
+
530
+ // ── Dropdown ─────────────────────────────────────────────────────────────
531
+
532
+ interface SgdsDropdownProps extends SgdsBaseProps {
533
+ /** Controls auto-flipping of menu */
534
+ noFlip?: boolean;
535
+ /** When true, aligns right edge of menu with right edge of button */
536
+ menuAlignRight?: boolean;
537
+ /** The drop position of menu relative to the toggle button */
538
+ drop?: "left" | "right" | "up" | "down";
539
+ hidden?: boolean;
540
+ /** Additional configuration to pass to Floating UI. */
541
+ floatingOpts?: { placement?: Placement; middleware?: Array<Middleware> };
542
+ /** When true, dropdown menu shows on first load */
543
+ menuIsOpen?: boolean;
544
+ /** Disables the dropdown toggle */
545
+ disabled?: boolean;
546
+ /** Makes the input readonly. */
547
+ readonly?: boolean;
548
+ "onsgds-select"?: SgdsEventHandler;
549
+ "onsgds-show"?: SgdsEventHandler;
550
+ "onsgds-after-show"?: SgdsEventHandler;
551
+ "onsgds-hide"?: SgdsEventHandler;
552
+ "onsgds-after-hide"?: SgdsEventHandler;
553
+ }
554
+
555
+ // ── FileUpload ─────────────────────────────────────────────────────────────
556
+
557
+ interface SgdsFileUploadProps extends SgdsBaseProps {
558
+ /** Allows multiple files to be listed for uploading */
559
+ multiple?: boolean;
560
+ /** Specify the acceptable file type */
561
+ accept?: string;
562
+ /** Allows invalidFeedback, invalid and valid styles to be visible with the input */
563
+ hasFeedback?: boolean;
564
+ /** Feedback text for error state when validated */
565
+ invalidFeedback?: string;
566
+ /** Makes the input as a required field. */
567
+ required?: boolean;
568
+ /** Returns the ValidityState object */
569
+ validity?: ValidityState;
570
+ /** Returns the validation message based on the ValidityState */
571
+ validationMessage?: string;
572
+ /** Returns files selected for upload */
573
+ files?: File[];
574
+ /** The input's label */
575
+ label?: string;
576
+ /** The input's hint text */
577
+ hintText?: string;
578
+ /** The input's name attribute */
579
+ name?: string;
580
+ /** Disables the input. */
581
+ disabled?: boolean;
582
+ /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
583
+ invalid?: boolean;
584
+ "onsgds-files-selected"?: (event: CustomEvent<ISgdsFileUploadFilesSelectedEventDetail>) => void;
585
+ }
586
+
587
+ // ── FooterItem ─────────────────────────────────────────────────────────────
588
+
589
+ interface SgdsFooterItemProps extends SgdsBaseProps {
590
+ }
591
+
592
+ // ── Footer ─────────────────────────────────────────────────────────────
593
+
594
+ interface SgdsFooterProps extends SgdsBaseProps {
595
+ /** Sets copyrightLiner of SgdsFooter */
596
+ copyrightLiner?: string;
597
+ /** href link for contacts */
598
+ contactHref?: string;
599
+ /** href link for feedback */
600
+ feedbackHref?: string;
601
+ /** href link for faq (optional) */
602
+ faqHref?: string;
603
+ /** href link for sitemap (optional) */
604
+ sitemapHref?: string;
605
+ /** href link for privacy statement */
606
+ privacyHref?: string;
607
+ /** href link for terms of use */
608
+ termsOfUseHref?: string;
609
+ /** Used only for SSR to indicate the presence of the `default` slot. */
610
+ hasDefaultSlot?: boolean;
611
+ /** Used only for SSR to indicate the presence of the `title` slot. */
612
+ hasTitleSlot?: boolean;
613
+ /** Used only for SSR to indicate the presence of the `description` slot. */
614
+ hasDescriptionSlot?: boolean;
615
+ /** Used only for SSR to indicate the presence of the `items` slot. */
616
+ hasItemsSlot?: boolean;
617
+ }
618
+
619
+ // ── Icon ─────────────────────────────────────────────────────────────
620
+
621
+ interface SgdsIconProps extends SgdsBaseProps {
622
+ /** The name of the icon from sgds icon library */
623
+ name?: string;
624
+ /** Specifies a small, medium or large icon, the size is medium by default. */
625
+ size?: "xs" | "sm" | "md" | "lg" | "xl" | "2-xl" | "3-xl";
626
+ }
627
+
628
+ // ── IconButton ─────────────────────────────────────────────────────────────
629
+
630
+ interface SgdsIconButtonProps extends SgdsBaseProps {
631
+ /** The name of the icon from sgds icon library */
632
+ name?: string;
633
+ /** Sets the visual variants such as: `primary`, `outline`, `ghost`. `danger` is @deprecated since v3.5.6 */
634
+ variant?: "primary" | "outline" | "ghost" | "danger";
635
+ /** Sets the visual colour of the button: `brand`, `danger`, `fixed-light`, `neutral` */
636
+ tone?: "brand" | "danger" | "fixed-light" | "neutral";
637
+ /** Specifies a small, medium or large button, the size is medium by default. */
638
+ size?: "xs" | "sm" | "md" | "lg";
639
+ /** Manually set the visual state of the button to `:active` */
640
+ active?: boolean;
641
+ /** The disabled state of the button */
642
+ disabled?: boolean;
643
+ /** When set, the underlying button will be rendered as an `<a>` with this `href` instead of a `<button>`. */
644
+ href?: string;
645
+ /** Where to display the linked URL, as the name for a browsing context. Forwards to the HTMLAnchor target attribute */
646
+ target?: "_blank" | "_parent" | "_self" | "_top";
647
+ /** Tells the browser to download the linked file as this filename. Only used when `href` is set. */
648
+ download?: string;
649
+ /** The aria-label attribute to passed to button element when necessary */
650
+ ariaLabel?: string;
651
+ /** When true, shows a loading spinner */
652
+ loading?: boolean;
653
+ "onsgds-blur"?: SgdsEventHandler;
654
+ "onsgds-focus"?: SgdsEventHandler;
655
+ }
656
+
657
+ // ── IconCard ─────────────────────────────────────────────────────────────
658
+
659
+ interface SgdsIconCardProps extends SgdsBaseProps {
660
+ /** Removes the card's internal padding when set to true. */
661
+ noPadding?: boolean;
662
+ /** Extends the link passed in either `footer` or `link`(deprecated) slot. */
663
+ stretchedLink?: boolean;
664
+ /** Disables the card */
665
+ disabled?: boolean;
666
+ /** When true, hides the default border of the card. */
667
+ hideBorder?: boolean;
668
+ /** When true, applies a tinted background color to the card. */
669
+ tinted?: boolean;
670
+ /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */
671
+ orientation?: CardOrientation;
672
+ }
673
+
674
+ // ── IconList ─────────────────────────────────────────────────────────────
675
+
676
+ interface SgdsIconListProps extends SgdsBaseProps {
677
+ /** Sets the aria-role of the sgds-icon-list */
678
+ role?: string;
679
+ /** The size of icon list. Changes the font-size the list items */
680
+ size?: "sm" | "md" | "lg";
681
+ }
682
+
683
+ // ── ImageCard ─────────────────────────────────────────────────────────────
684
+
685
+ interface SgdsImageCardProps extends SgdsBaseProps {
686
+ /** Removes the card's internal padding when set to true. */
687
+ noPadding?: boolean;
688
+ /** Sets the image position of the card. Available options: `before`, `after` */
689
+ imagePosition?: CardImagePosition;
690
+ /** Controls how the image is sized and aligned within the card. Available options: `default`, `padding around`, `aspect ratio` */
691
+ imageAdjustment?: CardImageAdjustment;
692
+ /** Extends the link passed in either `footer` or `link`(deprecated) slot. */
693
+ stretchedLink?: boolean;
694
+ /** Disables the card */
695
+ disabled?: boolean;
696
+ /** When true, hides the default border of the card. */
697
+ hideBorder?: boolean;
698
+ /** When true, applies a tinted background color to the card. */
699
+ tinted?: boolean;
700
+ /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */
701
+ orientation?: CardOrientation;
702
+ }
703
+
704
+ // ── Input ─────────────────────────────────────────────────────────────
705
+
706
+ interface SgdsInputProps extends SgdsBaseProps {
707
+ type?: | "email"
708
+ | "number"
709
+ | "password"
710
+ | "search"
711
+ | "tel"
712
+ | "text"
713
+ | "time"
714
+ | "url"
715
+ | "datetime-local";
716
+ /** The prefix of the input */
717
+ prefix?: string;
718
+ /** The suffix of the input */
719
+ suffix?: string;
720
+ /** Sets the minimum length of the input */
721
+ minlength?: number;
722
+ /** Sets the maximum length of the input */
723
+ maxlength?: number;
724
+ /** The input's minimum value. Only applies number input types. */
725
+ min?: number;
726
+ /** The input's maximum value. Only applies number input types. */
727
+ max?: number;
728
+ /** The input's placeholder text. */
729
+ placeholder?: string;
730
+ /** A pattern to validate input against. */
731
+ pattern?: string;
732
+ /** Autofocus the input */
733
+ autofocus?: boolean;
734
+ /** Makes the input readonly. */
735
+ readonly?: boolean;
736
+ /** Specifies the granularity that the value must adhere to, or the special value `any` which means no stepping is
737
+ implied, allowing any numeric value. Only applies to number input types. */
738
+ step?: number | "any";
739
+ /** Allows invalidFeedback, invalid and valid styles to be visible with the input */
740
+ hasFeedback?: "style" | "text" | "both";
741
+ /** Feedback text for error state when validated */
742
+ invalidFeedback?: string;
743
+ /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */
744
+ defaultValue?: string;
745
+ /** Marks the component as valid. */
746
+ valid?: boolean;
747
+ /** Marks the component as loading. */
748
+ loading?: boolean;
749
+ /** Makes the input a required field. */
750
+ required?: boolean;
751
+ /** Disables native and sgds validation for the input. */
752
+ noValidate?: boolean;
753
+ /** The input's value attribute. */
754
+ value?: string;
755
+ /** Returns the ValidityState object */
756
+ validity?: ValidityState;
757
+ /** Returns the validation message based on the ValidityState */
758
+ validationMessage?: unknown;
759
+ /** The input's label */
760
+ label?: string;
761
+ /** The input's hint text */
762
+ hintText?: string;
763
+ /** The input's name attribute */
764
+ name?: string;
765
+ /** Disables the input. */
766
+ disabled?: boolean;
767
+ /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
768
+ invalid?: boolean;
769
+ "onsgds-change"?: SgdsEventHandler;
770
+ "onsgds-input"?: SgdsEventHandler;
771
+ "onsgds-focus"?: SgdsEventHandler;
772
+ "onsgds-blur"?: SgdsEventHandler;
773
+ "onsgds-invalid"?: SgdsEventHandler;
774
+ "onsgds-valid"?: SgdsEventHandler;
775
+ }
776
+
777
+ // ── Link ─────────────────────────────────────────────────────────────
778
+
779
+ interface SgdsLinkProps extends SgdsBaseProps {
780
+ /** Determines the size of the link */
781
+ size?: "xs" | "sm" | "md" | "lg";
782
+ /** Sets the colour of the link @deprecated since 3.6.0 */
783
+ variant?: "primary" | "danger" | "neutral" | "light" | "dark";
784
+ /** Sets the colour of the link, replaces variant prop */
785
+ tone?: "primary" | "danger" | "neutral" | "fixed-light" | "fixed-dark";
786
+ /** When true, sets the active stylings of the link */
787
+ active?: boolean;
788
+ /** Disables the link */
789
+ disabled?: boolean;
790
+ }
791
+
792
+ // ── MainnavDropdown ─────────────────────────────────────────────────────────────
793
+
794
+ interface SgdsMainnavDropdownProps extends SgdsBaseProps {
795
+ /** When true, applies active styles on the dropdown button */
796
+ active?: boolean;
797
+ /** When true, applies active styles on the dropdown button */
798
+ disabled?: boolean;
799
+ }
800
+
801
+ // ── MainnavItem ─────────────────────────────────────────────────────────────
802
+
803
+ interface SgdsMainnavItemProps extends SgdsBaseProps {
804
+ /** when true, sets the active stylings of the navigation item */
805
+ active?: boolean;
806
+ /** Disables the SgdsMainnavItem */
807
+ disabled?: boolean;
808
+ }
809
+
810
+ // ── Mainnav ─────────────────────────────────────────────────────────────
811
+
812
+ interface SgdsMainnavProps extends SgdsBaseProps {
813
+ /** The href link for brand logo */
814
+ brandHref?: string;
815
+ /** The breakpoint, below which, the Navbar will collapse. When always the Navbar will always be expanded regardless of screen size. When never, the Navbar will always be collapsed */
816
+ expand?: "sm" | "md" | "lg" | "xl" | "xxl" | "always" | "never";
817
+ /** When true, removes max-width constraint to allow content to stretch full screen width */
818
+ fluid?: boolean;
819
+ "onsgds-show"?: SgdsEventHandler;
820
+ "onsgds-after-show"?: SgdsEventHandler;
821
+ "onsgds-hide"?: SgdsEventHandler;
822
+ "onsgds-after-hide"?: SgdsEventHandler;
823
+ }
824
+
825
+ // ── Masthead ─────────────────────────────────────────────────────────────
826
+
827
+ interface SgdsMastheadProps extends SgdsBaseProps {
828
+ /** When true, removes max-width constraint to allow content to stretch full screen width */
829
+ fluid?: boolean;
830
+ }
831
+
832
+ // ── Modal ─────────────────────────────────────────────────────────────
833
+
834
+ interface SgdsModalProps extends SgdsBaseProps {
835
+ /** Indicates whether or not the modal is open. You can use this in lieu of the show/hide methods. */
836
+ open?: boolean;
837
+ /** Removes the default animation when opening and closing of modal */
838
+ noAnimation?: boolean;
839
+ /** Specifies a small, medium, large or fullscreen modal, the size is medium by default. */
840
+ size?: "sm" | "md" | "lg" | "xl" | "fullscreen";
841
+ /** Used only for SSR to indicate the presence of the `footer` slot. */
842
+ hasFooterSlot?: boolean;
843
+ /** Removes the close button in the modal header. */
844
+ noCloseButton?: boolean;
845
+ "onsgds-close"?: SgdsEventHandler;
846
+ "onsgds-show"?: SgdsEventHandler;
847
+ "onsgds-hide"?: SgdsEventHandler;
848
+ "onsgds-after-show"?: SgdsEventHandler;
849
+ "onsgds-after-hide"?: SgdsEventHandler;
850
+ }
851
+
852
+ // ── OverflowMenu ─────────────────────────────────────────────────────────────
853
+
854
+ interface SgdsOverflowMenuProps extends SgdsBaseProps {
855
+ /** Specifies a large or small button */
856
+ size?: "sm" | "md";
857
+ }
858
+
859
+ // ── Pagination ─────────────────────────────────────────────────────────────
860
+
861
+ interface SgdsPaginationProps extends SgdsBaseProps {
862
+ /** Inserts the length value from a given sets of data objects */
863
+ dataLength?: number;
864
+ /** Sets the starting active page upon render */
865
+ currentPage?: number;
866
+ /** Sets the amount of data objects to be displayed per page */
867
+ itemsPerPage?: number;
868
+ /** Sets the variant of the pagination. */
869
+ variant?: "default" | "number" | "button" | "description";
870
+ /** Sets the page direction button to contain text and/or icon */
871
+ navigation?: "button" | "icon-button";
872
+ /** Sets the size of all page items. */
873
+ size?: "sm" | "md";
874
+ "onsgds-page-change"?: (event: CustomEvent<ISgdsPaginationPageChangeEventDetail>) => void;
875
+ }
876
+
877
+ // ── ProgressBar ─────────────────────────────────────────────────────────────
878
+
879
+ interface SgdsProgressBarProps extends SgdsBaseProps {
880
+ /** The background color of the progress bar. Available options: `primary`, `neutral` */
881
+ variant?: "primary" | "neutral";
882
+ /** The current progress as a percentage, from 0 to 100. */
883
+ value?: number;
884
+ /** Sets the minimun aria range for assistive devices.
885
+
886
+ The aria-valuemin attribute defines the minimun allowed value for a range widget. */
887
+ ariamin?: number;
888
+ /** Sets the maximum aria range for assistive devices.
889
+
890
+ The aria-valuemax attribute defines the maximum allowed value for a range widget. */
891
+ ariamax?: number;
892
+ /** Sets the aria label for assistive devices. */
893
+ arialabel?: string;
894
+ /** Add label on top of progress bar */
895
+ label?: string;
896
+ }
897
+
898
+ // ── QuantityToggle ─────────────────────────────────────────────────────────────
899
+
900
+ interface SgdsQuantityToggleProps extends SgdsBaseProps {
901
+ /** The input's value. Set to 0 by default */
902
+ value?: number;
903
+ /** Controls the incremental / decremental value of the input */
904
+ step?: number;
905
+ /** The input's minimum value. Only applies number input types. */
906
+ min?: number;
907
+ /** The input's maximum value. Only applies number input types. */
908
+ max?: number;
909
+ /** Allows invalidFeedback, invalid and valid styles to be visible with the input */
910
+ hasFeedback?: "style" | "text" | "both";
911
+ /** Feedback text for error state when validated */
912
+ invalidFeedback?: string;
913
+ /** Sets the quantity toggle as readonly */
914
+ readonly?: boolean;
915
+ /** Gets or sets the default value used to reset this element. The initial value corresponds to the one originally specified in the HTML that created this element. */
916
+ defaultValue?: number;
917
+ /** Returns the ValidityState object */
918
+ validity?: ValidityState;
919
+ /** Returns the validation message based on the ValidityState */
920
+ validationMessage?: unknown;
921
+ /** The input's label */
922
+ label?: string;
923
+ /** The input's hint text */
924
+ hintText?: string;
925
+ /** The input's name attribute */
926
+ name?: string;
927
+ /** Disables the input. */
928
+ disabled?: boolean;
929
+ /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
930
+ invalid?: boolean;
931
+ "onsgds-change"?: SgdsEventHandler;
932
+ "onsgds-input"?: SgdsEventHandler;
933
+ }
934
+
935
+ // ── RadioGroup ─────────────────────────────────────────────────────────────
936
+
937
+ interface SgdsRadioGroupProps extends SgdsBaseProps {
938
+ /** The selected value of the control. */
939
+ value?: string;
940
+ /** Feedback text for error state when validated */
941
+ invalidFeedback?: string;
942
+ /** Allows invalidFeedback, invalid and valid styles to be visible with the input */
943
+ hasFeedback?: boolean;
944
+ /** Makes the input as a required field. */
945
+ required?: boolean;
946
+ /** Returns the ValidityState object */
947
+ validity?: ValidityState;
948
+ /** Returns the validation message based on the ValidityState */
949
+ validationMessage?: unknown;
950
+ /** The input's label */
951
+ label?: string;
952
+ /** The input's hint text */
953
+ hintText?: string;
954
+ /** The input's name attribute */
955
+ name?: string;
956
+ /** Disables the input. */
957
+ disabled?: boolean;
958
+ /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
959
+ invalid?: boolean;
960
+ "onsgds-change"?: (event: CustomEvent<ISgdsRadioGroupChangeEventDetail>) => void;
961
+ }
962
+
963
+ // ── Radio ─────────────────────────────────────────────────────────────
964
+
965
+ interface SgdsRadioProps extends SgdsBaseProps {
966
+ /** Draws the radio in a checked state. When used with SgdsRadioGroup, the value prop of SgdsRadioGroup overrides the checked prop */
967
+ checked?: boolean;
968
+ /** The radio's value attribute. */
969
+ value?: string;
970
+ /** Disables the radio. */
971
+ disabled?: boolean;
972
+ /** Marks the radio input as invalid. Replace the pseudo :invalid selector for absent in custom elements */
973
+ invalid?: boolean;
974
+ "onsgds-focus"?: SgdsEventHandler;
975
+ "onsgds-blur"?: SgdsEventHandler;
976
+ }
977
+
978
+ // ── SelectOption ─────────────────────────────────────────────────────────────
979
+
980
+ interface SgdsSelectOptionProps extends SgdsBaseProps {
981
+ /** Disables the Item */
982
+ disabled?: boolean;
983
+ /** The value of the option item */
984
+ value?: string;
985
+ }
986
+
987
+ // ── Select ─────────────────────────────────────────────────────────────
988
+
989
+ interface SgdsSelectProps extends SgdsBaseProps {
990
+ /** The input's label */
991
+ label?: string;
992
+ /** The input's hint text below the label */
993
+ hintText?: string;
994
+ /** The input's name attribute */
995
+ name?: string;
996
+ /** The input's placeholder text. */
997
+ placeholder?: string;
998
+ /** Autofocus the input */
999
+ autofocus?: boolean;
1000
+ /** Disables the input. */
1001
+ disabled?: boolean;
1002
+ /** Makes the input a required field. */
1003
+ required?: boolean;
1004
+ /** Sets the loading state of the component */
1005
+ loading?: boolean;
1006
+ /** IMPORTANT:
1007
+ We still expose `.value` externally, but this is now the underlying ID or data
1008
+ (e.g. 1, 2, 'abc', ...), not the label that appears in the input box. */
1009
+ value?: string;
1010
+ displayValue?: string;
1011
+ /** Allows invalidFeedback, invalid and valid styles to be visible with the input */
1012
+ hasFeedback?: boolean;
1013
+ /** Feedback text for error state when validated */
1014
+ invalidFeedback?: string;
1015
+ /** Marks the component as invalid. Replace the pseudo :invalid selector. */
1016
+ invalid?: boolean;
1017
+ /** The list of items to display in the dropdown.
1018
+ `interface SgdsComboBoxItemData {
1019
+ label: string;
1020
+ value: string;
1021
+ }` */
1022
+ menuList?: SgdsOptionData[];
1023
+ /** Returns the ValidityState object */
1024
+ validity?: ValidityState;
1025
+ /** Returns the validation message based on the ValidityState */
1026
+ validationMessage?: string;
1027
+ /** Additional configuration to pass to Floating UI. */
1028
+ floatingOpts?: { placement?: Placement; middleware?: Array<Middleware> };
1029
+ hidden?: boolean;
1030
+ /** When true, dropdown menu shows on first load */
1031
+ menuIsOpen?: boolean;
1032
+ /** Makes the input readonly. */
1033
+ readonly?: boolean;
1034
+ "onsgds-select"?: SgdsEventHandler;
1035
+ "onsgds-change"?: SgdsEventHandler;
1036
+ "onsgds-focus"?: SgdsEventHandler;
1037
+ "onsgds-blur"?: SgdsEventHandler;
1038
+ "onsgds-show"?: SgdsEventHandler;
1039
+ "onsgds-after-show"?: SgdsEventHandler;
1040
+ "onsgds-hide"?: SgdsEventHandler;
1041
+ "onsgds-after-hide"?: SgdsEventHandler;
1042
+ }
1043
+
1044
+ // ── SidebarGroup ─────────────────────────────────────────────────────────────
1045
+
1046
+ interface SgdsSidebarGroupProps extends SgdsBaseProps {
1047
+ /** Reports the visibility state of the submenu for nested groups.
1048
+ Returns true when the submenu is displayed showing child items, false when hidden.
1049
+ Only applicable for nested groups (level 2+). Root-level groups use drawer overlay instead. */
1050
+ showMenu?: boolean;
1051
+ /** The display title/label for the sidebar element.
1052
+ Shown in the UI and used for accessibility labels (aria-label). */
1053
+ title?: string;
1054
+ /** The unique name identifier for the sidebar element.
1055
+ Used to identify selections in sgds-select events and manage active states.
1056
+ Should be unique among siblings in the same navigation level. */
1057
+ name?: string;
1058
+ }
1059
+
1060
+ // ── SidebarItem ─────────────────────────────────────────────────────────────
1061
+
1062
+ interface SgdsSidebarItemProps extends SgdsBaseProps {
1063
+ /** The display title/label for the sidebar element.
1064
+ Shown in the UI and used for accessibility labels (aria-label). */
1065
+ title?: string;
1066
+ /** The unique name identifier for the sidebar element.
1067
+ Used to identify selections in sgds-select events and manage active states.
1068
+ Should be unique among siblings in the same navigation level. */
1069
+ name?: string;
1070
+ }
1071
+
1072
+ // ── SidebarSection ─────────────────────────────────────────────────────────────
1073
+
1074
+ interface SgdsSidebarSectionProps extends SgdsBaseProps {
1075
+ /** The display title/label for the sidebar section header.
1076
+ Always visible in the sidebar, used to group related items. */
1077
+ title?: string;
1078
+ /** Controls whether the section content is expanded or collapsed.
1079
+ When true, the section content is hidden but the section header remains visible.
1080
+ Only applicable when the section is collapsible. */
1081
+ collapsed?: boolean;
1082
+ /** Enables a collapsible section header with expand/collapse toggle functionality.
1083
+ When true, users can click the header to toggle section visibility.
1084
+ When false, the section header is display-only and not interactive. */
1085
+ collapsible?: boolean;
1086
+ seperator?: boolean;
1087
+ /** The unique name identifier for the sidebar element.
1088
+ Used to identify selections in sgds-select events and manage active states.
1089
+ Should be unique among siblings in the same navigation level. */
1090
+ name?: string;
1091
+ }
1092
+
1093
+ // ── Sidebar ─────────────────────────────────────────────────────────────
1094
+
1095
+ interface SgdsSidebarProps extends SgdsBaseProps {
1096
+ /** Controls whether the sidebar is collapsed or expanded.
1097
+ When true, the sidebar is in collapsed state showing only icons.
1098
+ When false, the sidebar is expanded displaying full labels and content.
1099
+ Affects all child items by toggling visibility of labels and adjusting spacing. */
1100
+ collapsed?: boolean;
1101
+ /** The name of the currently active sidebar item or group.
1102
+ Reflects the selected item and allows external control of sidebar selection.
1103
+ Used to synchronize sidebar state with external navigation state or programmatic selection.
1104
+ When set, the corresponding item with matching `name` attribute will be highlighted as active. */
1105
+ active?: string;
1106
+ "onsgds-select"?: SgdsEventHandler;
1107
+ }
1108
+
1109
+ // ── SidenavItem ─────────────────────────────────────────────────────────────
1110
+
1111
+ interface SgdsSidenavItemProps extends SgdsBaseProps {
1112
+ body?: HTMLElement;
1113
+ /** when true, toggles the sidenav-item to open on first load and set the active stylings. */
1114
+ active?: boolean;
1115
+ /** Disables the SgdsSidenavItem */
1116
+ disabled?: boolean;
1117
+ "onsgds-toggle"?: SgdsEventHandler;
1118
+ "onsgds-show"?: SgdsEventHandler;
1119
+ "onsgds-after-show"?: SgdsEventHandler;
1120
+ "onsgds-hide"?: SgdsEventHandler;
1121
+ "onsgds-after-hide"?: SgdsEventHandler;
1122
+ }
1123
+
1124
+ // ── SidenavLink ─────────────────────────────────────────────────────────────
1125
+
1126
+ interface SgdsSidenavLinkProps extends SgdsBaseProps {
1127
+ /** when true, sets the active stylings of .nav-link */
1128
+ active?: boolean;
1129
+ /** Disables the SgdsMainnavItem */
1130
+ disabled?: boolean;
1131
+ }
1132
+
1133
+ // ── Sidenav ─────────────────────────────────────────────────────────────
1134
+
1135
+ interface SgdsSidenavProps extends SgdsBaseProps {
1136
+ /** Apply position sticky to the sidenav */
1137
+ sticky?: boolean;
1138
+ }
1139
+
1140
+ // ── Skeleton ─────────────────────────────────────────────────────────────
1141
+
1142
+ interface SgdsSkeletonProps extends SgdsBaseProps {
1143
+ /** Sets the width of skeleton. Pass value in string with length units like pixels or percentage. */
1144
+ width?: string;
1145
+ /** Sets the height of skeleton. Pass value in string with length units like pixels or percentage. */
1146
+ height?: string;
1147
+ /** Sets the border radius of skeleton. Pass value in string with length units like pixels and percentage
1148
+ When `row` is defined, the borderRadius is forwarded down to the border radius of each skeleton row */
1149
+ borderRadius?: string;
1150
+ /** Sets the number of rows within the given height of the skeleton.
1151
+ By default, the height of each row is auto-sized by taking the height of the skeleton divided by the number of rows and
1152
+ taking into account that there is a gap set by root css variable `--sgds-gap-xs` between each rows */
1153
+ rows?: number;
1154
+ /** Adds a sheening animated effect to the skeleton */
1155
+ sheen?: boolean;
1156
+ }
1157
+
1158
+ // ── Spinner ─────────────────────────────────────────────────────────────
1159
+
1160
+ interface SgdsSpinnerProps extends SgdsBaseProps {
1161
+ /** The variant of spinner. Deprecated in favor of `tone` @deprecated */
1162
+ variant?: "primary" | "neutral";
1163
+ /** The color tones of spinner, replaces variant prop */
1164
+ tone?: "brand" | "neutral" | "inverse" | "fixed-light" | "fixed-dark";
1165
+ /** Specifies a small, medium or large button, the size is medium by default. */
1166
+ size?: "xs" | "sm" | "md" | "lg" | "xl";
1167
+ /** Text label of the spinner */
1168
+ label?: string;
1169
+ /** Orientation of label relative to the spinner */
1170
+ orientation?: "horizontal" | "vertical";
1171
+ }
1172
+
1173
+ // ── Stepper ─────────────────────────────────────────────────────────────
1174
+
1175
+ interface SgdsStepperProps extends SgdsBaseProps {
1176
+ /** The metadata of stepper, type `IStepMetaData`, that consist of `stepHeader: string`, `component:unknown`, `iconName:string`. `stepHeader` is the name of the step and `component` is the content that should appear at the each step. `component` is set to `unknown` to allow users to pass in their desired component based on the framework of choice. e.g. pass in your own react/angular/vue component or it can also be a text content.
1177
+ It is required to populate this array to properly render the stepper. By default, stepper markers will render numbers. For icon stepper markers, pass the name of sgds icon via `iconName` key. `iconName` is optional. */
1178
+ steps?: IStepMetaData[];
1179
+ /** The current state of active step. Defaults to 0 */
1180
+ activeStep?: number;
1181
+ /** The orientation of stepper. By default, the stepper is of horizontal orientation */
1182
+ orientation?: "horizontal" | "vertical";
1183
+ /** When true, the stepper's steps will be clickable */
1184
+ clickable?: boolean;
1185
+ "onsgds-next-step"?: SgdsEventHandler;
1186
+ "onsgds-previous-step"?: SgdsEventHandler;
1187
+ "onsgds-last-step"?: SgdsEventHandler;
1188
+ "onsgds-first-step"?: SgdsEventHandler;
1189
+ "onsgds-arrived"?: SgdsEventHandler;
1190
+ "onsgds-reset"?: SgdsEventHandler;
1191
+ }
1192
+
1193
+ // ── SubnavItem ─────────────────────────────────────────────────────────────
1194
+
1195
+ interface SgdsSubnavItemProps extends SgdsBaseProps {
1196
+ /** when true, sets the active stylings of the navigation item */
1197
+ active?: boolean;
1198
+ /** Disables the SgdsSubnavItem */
1199
+ disabled?: boolean;
1200
+ }
1201
+
1202
+ // ── Subnav ─────────────────────────────────────────────────────────────
1203
+
1204
+ interface SgdsSubnavProps extends SgdsBaseProps {
1205
+ /** Used only for SSR to indicate the presence of the `actions` slot. */
1206
+ hasActionsSlot?: boolean;
1207
+ "onsgds-show"?: SgdsEventHandler;
1208
+ "onsgds-after-show"?: SgdsEventHandler;
1209
+ "onsgds-hide"?: SgdsEventHandler;
1210
+ "onsgds-after-hide"?: SgdsEventHandler;
1211
+ }
1212
+
1213
+ // ── Switch ─────────────────────────────────────────────────────────────
1214
+
1215
+ interface SgdsSwitchProps extends SgdsBaseProps {
1216
+ /** The size of the switch. By default, it is small size */
1217
+ size?: "sm" | "md" | "lg";
1218
+ /** When enabled, icon appears in the switch */
1219
+ icon?: boolean;
1220
+ /** Draws the switch in a checked state. */
1221
+ checked?: boolean;
1222
+ /** Disables the switch (so the user can't check / uncheck it). */
1223
+ disabled?: boolean;
1224
+ /** Used only for SSR to indicate the presence of the `default` slot. */
1225
+ hasDefaultSlot?: boolean;
1226
+ /** Used only for SSR to indicate the presence of the `leftLabel` slot. */
1227
+ hasLeftLabelSlot?: boolean;
1228
+ "onsgds-change"?: (event: CustomEvent<ISgdsSwitchChangeEventDetail>) => void;
1229
+ }
1230
+
1231
+ // ── SystemBannerItem ─────────────────────────────────────────────────────────────
1232
+
1233
+ interface SgdsSystemBannerItemProps extends SgdsBaseProps {
1234
+ /** Used only for SSR to indicate the presence of the `action` slot. */
1235
+ hasActionSlot?: boolean;
1236
+ /** Disables the action link that appears when text content is clamped */
1237
+ noClampAction?: boolean;
1238
+ "onsgds-show-more"?: SgdsEventHandler;
1239
+ }
1240
+
1241
+ // ── SystemBanner ─────────────────────────────────────────────────────────────
1242
+
1243
+ interface SgdsSystemBannerProps extends SgdsBaseProps {
1244
+ /** Controls the appearance of the alert */
1245
+ show?: boolean;
1246
+ /** Enables a close button that allows the user to dismiss the alert. */
1247
+ dismissible?: boolean;
1248
+ /** Disables the action link that appears when text content is clamped */
1249
+ noClampAction?: boolean;
1250
+ /** When true, removes max-width constraint to allow content to stretch full screen width */
1251
+ fluid?: boolean;
1252
+ "onsgds-show"?: SgdsEventHandler;
1253
+ "onsgds-hide"?: SgdsEventHandler;
1254
+ }
1255
+
1256
+ // ── TabGroup ─────────────────────────────────────────────────────────────
1257
+
1258
+ interface SgdsTabGroupProps extends SgdsBaseProps {
1259
+ /** The variant of tabs. Controls the visual styles of all `sgds-tabs` in its slot. It also sets the variant atttribute of `sgds-tab` */
1260
+ variant?: "underlined" | "solid";
1261
+ /** The orientation of tabs. Controls the orientation of all `sgds-tabs` in its slot. It also sets the orientation attribute of `sgds-tab` */
1262
+ orientation?: "horizontal" | "vertical";
1263
+ /** The density of tabs. Controls the density of all `sgds-tabs` in its slot. It also sets the density attribute of `sgds-tab` */
1264
+ density?: "compact" | "default";
1265
+ "onsgds-tab-show"?: SgdsEventHandler;
1266
+ "onsgds-tab-hide"?: SgdsEventHandler;
1267
+ }
1268
+
1269
+ // ── TabPanel ─────────────────────────────────────────────────────────────
1270
+
1271
+ interface SgdsTabPanelProps extends SgdsBaseProps {
1272
+ /** The tab panel's name. */
1273
+ name?: string;
1274
+ /** When true, the tab panel will be shown. When used with tab-group, this property is already being managed */
1275
+ active?: boolean;
1276
+ }
1277
+
1278
+ // ── Tab ─────────────────────────────────────────────────────────────
1279
+
1280
+ interface SgdsTabProps extends SgdsBaseProps {
1281
+ /** The name of the tab panel this tab is associated with. The panel must be located in the same tab group. */
1282
+ panel?: string;
1283
+ /** Draws the tab in an active state. When used with tab group, this state is already managed. Use it to set the initial active tab on first load of page */
1284
+ active?: boolean;
1285
+ /** When true, sets tab to disabled state */
1286
+ disabled?: boolean;
1287
+ }
1288
+
1289
+ // ── TableCell ─────────────────────────────────────────────────────────────
1290
+
1291
+ interface SgdsTableCellProps extends SgdsBaseProps {
1292
+ }
1293
+
1294
+ // ── TableHead ─────────────────────────────────────────────────────────────
1295
+
1296
+ interface SgdsTableHeadProps extends SgdsBaseProps {
1297
+ }
1298
+
1299
+ // ── TableRow ─────────────────────────────────────────────────────────────
1300
+
1301
+ interface SgdsTableRowProps extends SgdsBaseProps {
1302
+ }
1303
+
1304
+ // ── Table ─────────────────────────────────────────────────────────────
1305
+
1306
+ interface SgdsTableProps extends SgdsBaseProps {
1307
+ /** Specifies the responsive breakpoint for the table.
1308
+ Use "sm", "md", "lg", or "xl" to create responsive tables up to a particular breakpoint.
1309
+ From that breakpoint and up, the table will behave normally and not scroll horizontally.
1310
+ Use "always" to make the table always responsive.
1311
+
1312
+ (@deprecated) Deprecated since 3.9.0 legacy from v2 */
1313
+ responsive?: "sm" | "md" | "lg" | "xl" | "always";
1314
+ /** Array of strings to populate row header cells. */
1315
+ rowHeader?: string[];
1316
+ /** Array of strings to populate column header cells.
1317
+ Only used when `headerPosition` is set to "vertical" or "both". */
1318
+ columnHeader?: string[];
1319
+ /** Two-dimensional array of strings or numbers to populate table data cells. */
1320
+ tableData?: Array<(string | number)[]>;
1321
+ /** Defines the placement of headers in the table.
1322
+ Use "horizontal" for top headers only, "vertical" for left headers only,
1323
+ or "both" for both row and column headers. */
1324
+ headerPosition?: "horizontal" | "vertical" | "both";
1325
+ /** Enables background styling on horizontal header rows.
1326
+ When true, applies background color to header cells for better visual distinction. */
1327
+ headerBackground?: boolean;
1328
+ /** Enables borders around table cells.
1329
+ When true, displays visible borders between all table cells. */
1330
+ tableBorder?: boolean;
1331
+ }
1332
+
1333
+ // ── TableOfContents ─────────────────────────────────────────────────────────────
1334
+
1335
+ interface SgdsTableOfContentsProps extends SgdsBaseProps {
1336
+ }
1337
+
1338
+ // ── Textarea ─────────────────────────────────────────────────────────────
1339
+
1340
+ interface SgdsTextareaProps extends SgdsBaseProps {
1341
+ /** The textarea's name attribute */
1342
+ name?: string;
1343
+ /** The textarea's value attribute. */
1344
+ value?: string;
1345
+ /** Sets the minimum length of the textarea */
1346
+ minlength?: number;
1347
+ /** Sets the maximum length of the textarea. When maxlength is defined, a word count appears on bottom right of the input */
1348
+ maxlength?: number;
1349
+ /** Enables spell checking on the textarea */
1350
+ spellcheck?: boolean;
1351
+ /** The number of rows to display by default. */
1352
+ rows?: number;
1353
+ /** The textarea's placeholder text. */
1354
+ placeholder?: string;
1355
+ /** Custom feedback text for error state when validated */
1356
+ invalidFeedback?: string;
1357
+ /** Autofocus the textarea */
1358
+ autofocus?: boolean;
1359
+ /** Makes the textarea readonly. */
1360
+ readonly?: boolean;
1361
+ /** Controls how the textarea can be resized. */
1362
+ resize?: "none" | "vertical" | "auto";
1363
+ /** The native textarea's inputmode attribute. It hints at the type of data that might be entered by the user while editing the element or its contents. This allows a browser to display an appropriate virtual keyboard. */
1364
+ inputmode?: | "none"
1365
+ | "text"
1366
+ | "decimal"
1367
+ | "numeric"
1368
+ | "tel"
1369
+ | "search"
1370
+ | "email"
1371
+ | "url";
1372
+ /** The native textarea's autocorrect attribute. */
1373
+ autocorrect?: boolean;
1374
+ /** Allows invalidFeedback, invalid and valid styles to be visible with the input */
1375
+ hasFeedback?: boolean;
1376
+ /** Makes the textarea as a required field. */
1377
+ required?: boolean;
1378
+ /** Disables native and sgds validation for the textarea. */
1379
+ noValidate?: boolean;
1380
+ /** The textarea's hint text */
1381
+ hintText?: string;
1382
+ /** Returns the ValidityState object */
1383
+ validity?: ValidityState;
1384
+ /** Returns the validation message based on the ValidityState */
1385
+ validationMessage?: unknown;
1386
+ /** The input's label */
1387
+ label?: string;
1388
+ /** Disables the input. */
1389
+ disabled?: boolean;
1390
+ /** Marks the component as invalid. Replace the pseudo :invalid selector for absent in custom elements */
1391
+ invalid?: boolean;
1392
+ "onsgds-change"?: SgdsEventHandler;
1393
+ "onsgds-input"?: SgdsEventHandler;
1394
+ "onsgds-focus"?: SgdsEventHandler;
1395
+ "onsgds-blur"?: SgdsEventHandler;
1396
+ }
1397
+
1398
+ // ── ThumbnailCard ─────────────────────────────────────────────────────────────
1399
+
1400
+ interface SgdsThumbnailCardProps extends SgdsBaseProps {
1401
+ /** Removes the card's internal padding when set to true. */
1402
+ noPadding?: boolean;
1403
+ /** Extends the link passed in either `footer` or `link`(deprecated) slot. */
1404
+ stretchedLink?: boolean;
1405
+ /** Disables the card */
1406
+ disabled?: boolean;
1407
+ /** When true, hides the default border of the card. */
1408
+ hideBorder?: boolean;
1409
+ /** When true, applies a tinted background color to the card. */
1410
+ tinted?: boolean;
1411
+ /** Sets the orientation of the card. Available options: `vertical`, `horizontal` */
1412
+ orientation?: CardOrientation;
1413
+ }
1414
+
1415
+ // ── ToastContainer ─────────────────────────────────────────────────────────────
1416
+
1417
+ interface SgdsToastContainerProps extends SgdsBaseProps {
1418
+ /** Controls the position of `sgds-toast` within itself.
1419
+ Since 3.7.1, the positions "top-start", "middle-start", "middle-center", and "middle-end" are deprecated. */
1420
+ position?: "top-start" | "top-center" | "top-end" | "middle-start" | "middle-center" | "middle-end" | "bottom-start" | "bottom-center" | "bottom-end";
1421
+ }
1422
+
1423
+ // ── Toast ─────────────────────────────────────────────────────────────
1424
+
1425
+ interface SgdsToastProps extends SgdsBaseProps {
1426
+ /** Controls the appearance of toast */
1427
+ show?: boolean;
1428
+ /** The header title of toast. It is required to assign a title to toast */
1429
+ title?: string;
1430
+ /** Controls whether the toast has fade animation during its appearance/disappearance */
1431
+ noAnimation?: boolean;
1432
+ /** Controls if the toast will hide itself after the delay time. Works with delay property */
1433
+ autohide?: boolean;
1434
+ /** The amount of time taken in miliseconds for toast to disappear after its first render. It takes effect only when autohide is set to true. Defaults to 5000ms */
1435
+ delay?: number;
1436
+ /** The variant styles of toast */
1437
+ variant?: "success" | "warning" | "danger" | "info";
1438
+ /** Controls whether or not the Toast is dismissible */
1439
+ dismissible?: boolean;
1440
+ "onsgds-show"?: SgdsEventHandler;
1441
+ "onsgds-after-show"?: SgdsEventHandler;
1442
+ "onsgds-hide"?: SgdsEventHandler;
1443
+ "onsgds-after-hide"?: SgdsEventHandler;
1444
+ }
1445
+
1446
+ // ── Tooltip ─────────────────────────────────────────────────────────────
1447
+
1448
+ interface SgdsTooltipProps extends SgdsBaseProps {
1449
+ /** The tooltip's content. Must be text */
1450
+ content?: string;
1451
+ /** The placement of tooltip relative to its target */
1452
+ placement?: "top" | "bottom" | "left" | "right";
1453
+ /** 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. */
1454
+ trigger?: "click" | "hover" | "focus" | "hover focus";
1455
+ "onsgds-show"?: SgdsEventHandler;
1456
+ "onsgds-after-show"?: SgdsEventHandler;
1457
+ "onsgds-hide"?: SgdsEventHandler;
1458
+ "onsgds-after-hide"?: SgdsEventHandler;
1459
+ }
1460
+
1461
+ // ---------------------------------------------------------------------------
1462
+ // React JSX intrinsic element registrations
1463
+ // ---------------------------------------------------------------------------
1464
+
1465
+ declare module "react" {
1466
+ namespace JSX {
1467
+ interface IntrinsicElements {
1468
+ "sgds-accordion-item": SgdsAccordionItemProps;
1469
+ "sgds-accordion": SgdsAccordionProps;
1470
+ "sgds-alert-link": SgdsAlertLinkProps;
1471
+ "sgds-alert": SgdsAlertProps;
1472
+ "sgds-badge": SgdsBadgeProps;
1473
+ "sgds-breadcrumb-item": SgdsBreadcrumbItemProps;
1474
+ "sgds-breadcrumb": SgdsBreadcrumbProps;
1475
+ "sgds-button": SgdsButtonProps;
1476
+ "sgds-card": SgdsCardProps;
1477
+ "sgds-checkbox-group": SgdsCheckboxGroupProps;
1478
+ "sgds-checkbox": SgdsCheckboxProps;
1479
+ "sgds-close-button": SgdsCloseButtonProps;
1480
+ "sgds-combo-box-option": SgdsComboBoxOptionProps;
1481
+ "sgds-combo-box": SgdsComboBoxProps;
1482
+ "sgds-datepicker": SgdsDatepickerProps;
1483
+ "sgds-description-list-group": SgdsDescriptionListGroupProps;
1484
+ "sgds-description-list": SgdsDescriptionListProps;
1485
+ "sgds-divider": SgdsDividerProps;
1486
+ "sgds-drawer": SgdsDrawerProps;
1487
+ "sgds-dropdown-item": SgdsDropdownItemProps;
1488
+ "sgds-dropdown": SgdsDropdownProps;
1489
+ "sgds-file-upload": SgdsFileUploadProps;
1490
+ "sgds-footer-item": SgdsFooterItemProps;
1491
+ "sgds-footer": SgdsFooterProps;
1492
+ "sgds-icon": SgdsIconProps;
1493
+ "sgds-icon-button": SgdsIconButtonProps;
1494
+ "sgds-icon-card": SgdsIconCardProps;
1495
+ "sgds-icon-list": SgdsIconListProps;
1496
+ "sgds-image-card": SgdsImageCardProps;
1497
+ "sgds-input": SgdsInputProps;
1498
+ "sgds-link": SgdsLinkProps;
1499
+ "sgds-mainnav-dropdown": SgdsMainnavDropdownProps;
1500
+ "sgds-mainnav-item": SgdsMainnavItemProps;
1501
+ "sgds-mainnav": SgdsMainnavProps;
1502
+ "sgds-masthead": SgdsMastheadProps;
1503
+ "sgds-modal": SgdsModalProps;
1504
+ "sgds-overflow-menu": SgdsOverflowMenuProps;
1505
+ "sgds-pagination": SgdsPaginationProps;
1506
+ "sgds-progress-bar": SgdsProgressBarProps;
1507
+ "sgds-quantity-toggle": SgdsQuantityToggleProps;
1508
+ "sgds-radio-group": SgdsRadioGroupProps;
1509
+ "sgds-radio": SgdsRadioProps;
1510
+ "sgds-select-option": SgdsSelectOptionProps;
1511
+ "sgds-select": SgdsSelectProps;
1512
+ "sgds-sidebar-group": SgdsSidebarGroupProps;
1513
+ "sgds-sidebar-item": SgdsSidebarItemProps;
1514
+ "sgds-sidebar-section": SgdsSidebarSectionProps;
1515
+ "sgds-sidebar": SgdsSidebarProps;
1516
+ "sgds-sidenav-item": SgdsSidenavItemProps;
1517
+ "sgds-sidenav-link": SgdsSidenavLinkProps;
1518
+ "sgds-sidenav": SgdsSidenavProps;
1519
+ "sgds-skeleton": SgdsSkeletonProps;
1520
+ "sgds-spinner": SgdsSpinnerProps;
1521
+ "sgds-stepper": SgdsStepperProps;
1522
+ "sgds-subnav-item": SgdsSubnavItemProps;
1523
+ "sgds-subnav": SgdsSubnavProps;
1524
+ "sgds-switch": SgdsSwitchProps;
1525
+ "sgds-system-banner-item": SgdsSystemBannerItemProps;
1526
+ "sgds-system-banner": SgdsSystemBannerProps;
1527
+ "sgds-tab-group": SgdsTabGroupProps;
1528
+ "sgds-tab-panel": SgdsTabPanelProps;
1529
+ "sgds-tab": SgdsTabProps;
1530
+ "sgds-table-cell": SgdsTableCellProps;
1531
+ "sgds-table-head": SgdsTableHeadProps;
1532
+ "sgds-table-row": SgdsTableRowProps;
1533
+ "sgds-table": SgdsTableProps;
1534
+ "sgds-table-of-contents": SgdsTableOfContentsProps;
1535
+ "sgds-textarea": SgdsTextareaProps;
1536
+ "sgds-thumbnail-card": SgdsThumbnailCardProps;
1537
+ "sgds-toast-container": SgdsToastContainerProps;
1538
+ "sgds-toast": SgdsToastProps;
1539
+ "sgds-tooltip": SgdsTooltipProps;
1540
+ }
1541
+ }
1542
+ }
1543
+
1544
+ // ---------------------------------------------------------------------------
1545
+ // Global HTMLElementTagNameMap augmentation (vanilla TypeScript / non-React)
1546
+ // ---------------------------------------------------------------------------
1547
+
1548
+ declare global {
1549
+ interface HTMLElementTagNameMap {
1550
+ "sgds-accordion-item": HTMLElement;
1551
+ "sgds-accordion": HTMLElement;
1552
+ "sgds-alert-link": HTMLElement;
1553
+ "sgds-alert": HTMLElement;
1554
+ "sgds-badge": HTMLElement;
1555
+ "sgds-breadcrumb-item": HTMLElement;
1556
+ "sgds-breadcrumb": HTMLElement;
1557
+ "sgds-button": HTMLElement;
1558
+ "sgds-card": HTMLElement;
1559
+ "sgds-checkbox-group": HTMLElement;
1560
+ "sgds-checkbox": HTMLElement;
1561
+ "sgds-close-button": HTMLElement;
1562
+ "sgds-combo-box-option": HTMLElement;
1563
+ "sgds-combo-box": HTMLElement;
1564
+ "sgds-datepicker": HTMLElement;
1565
+ "sgds-description-list-group": HTMLElement;
1566
+ "sgds-description-list": HTMLElement;
1567
+ "sgds-divider": HTMLElement;
1568
+ "sgds-drawer": HTMLElement;
1569
+ "sgds-dropdown-item": HTMLElement;
1570
+ "sgds-dropdown": HTMLElement;
1571
+ "sgds-file-upload": HTMLElement;
1572
+ "sgds-footer-item": HTMLElement;
1573
+ "sgds-footer": HTMLElement;
1574
+ "sgds-icon": HTMLElement;
1575
+ "sgds-icon-button": HTMLElement;
1576
+ "sgds-icon-card": HTMLElement;
1577
+ "sgds-icon-list": HTMLElement;
1578
+ "sgds-image-card": HTMLElement;
1579
+ "sgds-input": HTMLElement;
1580
+ "sgds-link": HTMLElement;
1581
+ "sgds-mainnav-dropdown": HTMLElement;
1582
+ "sgds-mainnav-item": HTMLElement;
1583
+ "sgds-mainnav": HTMLElement;
1584
+ "sgds-masthead": HTMLElement;
1585
+ "sgds-modal": HTMLElement;
1586
+ "sgds-overflow-menu": HTMLElement;
1587
+ "sgds-pagination": HTMLElement;
1588
+ "sgds-progress-bar": HTMLElement;
1589
+ "sgds-quantity-toggle": HTMLElement;
1590
+ "sgds-radio-group": HTMLElement;
1591
+ "sgds-radio": HTMLElement;
1592
+ "sgds-select-option": HTMLElement;
1593
+ "sgds-select": HTMLElement;
1594
+ "sgds-sidebar-group": HTMLElement;
1595
+ "sgds-sidebar-item": HTMLElement;
1596
+ "sgds-sidebar-section": HTMLElement;
1597
+ "sgds-sidebar": HTMLElement;
1598
+ "sgds-sidenav-item": HTMLElement;
1599
+ "sgds-sidenav-link": HTMLElement;
1600
+ "sgds-sidenav": HTMLElement;
1601
+ "sgds-skeleton": HTMLElement;
1602
+ "sgds-spinner": HTMLElement;
1603
+ "sgds-stepper": HTMLElement;
1604
+ "sgds-subnav-item": HTMLElement;
1605
+ "sgds-subnav": HTMLElement;
1606
+ "sgds-switch": HTMLElement;
1607
+ "sgds-system-banner-item": HTMLElement;
1608
+ "sgds-system-banner": HTMLElement;
1609
+ "sgds-tab-group": HTMLElement;
1610
+ "sgds-tab-panel": HTMLElement;
1611
+ "sgds-tab": HTMLElement;
1612
+ "sgds-table-cell": HTMLElement;
1613
+ "sgds-table-head": HTMLElement;
1614
+ "sgds-table-row": HTMLElement;
1615
+ "sgds-table": HTMLElement;
1616
+ "sgds-table-of-contents": HTMLElement;
1617
+ "sgds-textarea": HTMLElement;
1618
+ "sgds-thumbnail-card": HTMLElement;
1619
+ "sgds-toast-container": HTMLElement;
1620
+ "sgds-toast": HTMLElement;
1621
+ "sgds-tooltip": HTMLElement;
1622
+ }
1623
+ }