@synergy-design-system/react 2.17.0 → 2.18.1

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.
@@ -0,0 +1,2773 @@
1
+ import type { DOMAttributes } from 'react';
2
+ import type { SynShowEvent, SynAfterShowEvent, SynHideEvent, SynAfterHideEvent, SynBlurEvent, SynFocusEvent, SynInvalidEvent, SynChangeEvent, SynInputEvent, SynClearEvent, SynErrorEvent, SynInitialFocusEvent, SynRequestCloseEvent, SynBurgerMenuClosedEvent, SynBurgerMenuHiddenEvent, SynBurgerMenuOpenEvent, SynLoadEvent, SynSelectEvent, SynRepositionEvent, SynMoveEvent, SynCloseEvent, SynTabShowEvent, SynTabHideEvent, SynRemoveEvent, SynAccordion, SynAlert, SynBadge, SynBreadcrumb, SynBreadcrumbItem, SynButton, SynButtonGroup, SynCard, SynCheckbox, SynCombobox, SynDetails, SynDialog, SynDivider, SynDrawer, SynDropdown, SynFile, SynHeader, SynIcon, SynIconButton, SynInput, SynMenu, SynMenuItem, SynMenuLabel, SynNavItem, SynOptgroup, SynOption, SynPopup, SynPrioNav, SynProgressBar, SynProgressRing, SynRadio, SynRadioButton, SynRadioGroup, SynRange, SynRangeTick, SynSelect, SynSideNav, SynSpinner, SynSwitch, SynTab, SynTabGroup, SynTabPanel, SynTag, SynTextarea, SynTooltip, SynValidate } from '@synergy-design-system/components';
3
+ /**
4
+ * Used core types
5
+ * @see https://coryrylan.com/blog/how-to-use-web-components-with-typescript-and-react
6
+ */
7
+ type SynEventTuple = [string, unknown];
8
+ type SynEventMap<T extends SynEventTuple[]> = {
9
+ [K in T[number] as `on${K[0]}`]: (event: K[1]) => void;
10
+ };
11
+ /**
12
+ * Synergy custom element type definition
13
+ * This type is used to define the custom elements in the Synergy Design System
14
+ */
15
+ export type SynCustomElement<SynElement extends HTMLElement, Events extends SynEventTuple[] = []> = Partial<SynElement & DOMAttributes<SynElement> & {
16
+ children?: any;
17
+ key?: any;
18
+ } & SynEventMap<Events>>;
19
+ /**
20
+ * @summary Accordions provide the ability to group a list of `<syn-details>`.
21
+ *
22
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-accordion--docs
23
+ * @status stable
24
+ * @since 1.23.0
25
+ *
26
+ * @slot - The accordion's main content. Must be `<syn-details />` elements.
27
+ *
28
+ * @csspart base - The component's base wrapper.
29
+ */ export type SynAccordionJSXElement = SynCustomElement<SynAccordion, []>;
30
+ /**
31
+ * @summary Alerts are used to display important messages inline or as toast notifications.
32
+ * @documentation https://synergy.style/components/alert
33
+ * @status stable
34
+ * @since 2.0
35
+ *
36
+ * @dependency syn-icon-button
37
+ *
38
+ * @slot - The alert's main content.
39
+ * @slot icon - An icon to show in the alert. Works best with `<syn-icon>`.
40
+ *
41
+ * @event syn-show - Emitted when the alert opens.
42
+ * @event syn-after-show - Emitted after the alert opens and all animations are complete.
43
+ * @event syn-hide - Emitted when the alert closes.
44
+ * @event syn-after-hide - Emitted after the alert closes and all animations are complete.
45
+ *
46
+ * @csspart base - The component's base wrapper.
47
+ * @csspart icon - The container that wraps the optional icon.
48
+ * @csspart message - The container that wraps the alert's main content.
49
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
50
+ * @csspart close-button__base - The close button's exported `base` part.
51
+ *
52
+ * @animation alert.show - The animation to use when showing the alert.
53
+ * @animation alert.hide - The animation to use when hiding the alert.
54
+ */ export type SynAlertJSXElement = SynCustomElement<SynAlert, [
55
+ [
56
+ 'syn-show',
57
+ SynShowEvent
58
+ ],
59
+ [
60
+ 'syn-after-show',
61
+ SynAfterShowEvent
62
+ ],
63
+ [
64
+ 'syn-hide',
65
+ SynHideEvent
66
+ ],
67
+ [
68
+ 'syn-after-hide',
69
+ SynAfterHideEvent
70
+ ]
71
+ ]>;
72
+ /**
73
+ * @summary Badges are used to draw attention and display statuses or counts.
74
+ * @documentation https://synergy.style/components/badge
75
+ * @status stable
76
+ * @since 2.0
77
+ *
78
+ * @slot - The badge's content.
79
+ *
80
+ * @csspart base - The component's base wrapper.
81
+ */ export type SynBadgeJSXElement = SynCustomElement<SynBadge, []>;
82
+ /**
83
+ * @summary Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.
84
+ * @documentation https://synergy.style/components/breadcrumb
85
+ * @status stable
86
+ * @since 2.0
87
+ *
88
+ * @slot - One or more breadcrumb items to display.
89
+ * @slot separator - The separator to use between breadcrumb items. Works best with `<syn-icon>`.
90
+ *
91
+ * @dependency syn-icon
92
+ *
93
+ * @csspart base - The component's base wrapper.
94
+ */ export type SynBreadcrumbJSXElement = SynCustomElement<SynBreadcrumb, []>;
95
+ /**
96
+ * @summary Breadcrumb Items are used inside [breadcrumbs](/components/breadcrumb) to represent different links.
97
+ * @documentation https://synergy.style/components/breadcrumb-item
98
+ * @status stable
99
+ * @since 2.0
100
+ *
101
+ * @slot - The breadcrumb item's label.
102
+ * @slot prefix - An optional prefix, usually an icon or icon button.
103
+ * @slot suffix - An optional suffix, usually an icon or icon button.
104
+ * @slot separator - The separator to use for the breadcrumb item. This will only change the separator for this item. If
105
+ * you want to change it for all items in the group, set the separator on `<syn-breadcrumb>` instead.
106
+ *
107
+ * @csspart base - The component's base wrapper.
108
+ * @csspart label - The breadcrumb item's label.
109
+ * @csspart prefix - The container that wraps the prefix.
110
+ * @csspart suffix - The container that wraps the suffix.
111
+ * @csspart separator - The container that wraps the separator.
112
+ */ export type SynBreadcrumbItemJSXElement = SynCustomElement<SynBreadcrumbItem, [
113
+ ]>;
114
+ /**
115
+ * @summary Buttons represent actions that are available to the user.
116
+ * @documentation https://synergy.style/components/button
117
+ * @status stable
118
+ * @since 2.0
119
+ *
120
+ * @dependency syn-icon
121
+ * @dependency syn-spinner
122
+ *
123
+ * @event syn-blur - Emitted when the button loses focus.
124
+ * @event syn-focus - Emitted when the button gains focus.
125
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
126
+ *
127
+ * @slot - The button's label.
128
+ * @slot prefix - A presentational prefix icon or similar element.
129
+ * @slot suffix - A presentational suffix icon or similar element.
130
+ *
131
+ * @csspart base - The component's base wrapper.
132
+ * @csspart prefix - The container that wraps the prefix.
133
+ * @csspart label - The button's label.
134
+ * @csspart suffix - The container that wraps the suffix.
135
+ * @csspart caret - The button's caret icon, an `<syn-icon>` element.
136
+ * @csspart spinner - The spinner that shows when the button is in the loading state.
137
+ */ export type SynButtonJSXElement = SynCustomElement<SynButton, [
138
+ [
139
+ 'syn-blur',
140
+ SynBlurEvent
141
+ ],
142
+ [
143
+ 'syn-focus',
144
+ SynFocusEvent
145
+ ],
146
+ [
147
+ 'syn-invalid',
148
+ SynInvalidEvent
149
+ ]
150
+ ]>;
151
+ /**
152
+ * @summary Button groups can be used to group related buttons into sections.
153
+ * @documentation https://synergy.style/components/button-group
154
+ * @status stable
155
+ * @since 2.0
156
+ *
157
+ * @slot - One or more `<syn-button>` elements to display in the button group.
158
+ *
159
+ * @csspart base - The component's base wrapper.
160
+ */ export type SynButtonGroupJSXElement = SynCustomElement<SynButtonGroup, []>;
161
+ /**
162
+ * @summary Cards can be used to group related subjects in a container.
163
+ * @documentation https://synergy.style/components/card
164
+ * @status stable
165
+ * @since 2.0
166
+ *
167
+ * @slot - The card's main content.
168
+ * @slot header - An optional header for the card.
169
+ * @slot footer - An optional footer for the card.
170
+ * @slot image - An optional image to render at the start of the card.
171
+ *
172
+ * @csspart base - The component's base wrapper.
173
+ * @csspart image - The container that wraps the card's image.
174
+ * @csspart header - The container that wraps the card's header.
175
+ * @csspart body - The container that wraps the card's main content.
176
+ * @csspart footer - The container that wraps the card's footer.
177
+ *
178
+ * @cssproperty --border-color - The card's border color, including borders that occur inside the card.
179
+ * @cssproperty --border-radius - The border radius for the card's edges.
180
+ * @cssproperty --border-width - The width of the card's borders.
181
+ * @cssproperty --padding - The padding to use for the card's sections.
182
+ */ export type SynCardJSXElement = SynCustomElement<SynCard, []>;
183
+ /**
184
+ * @summary Checkboxes allow the user to toggle an option on or off.
185
+ * @documentation https://synergy.style/components/checkbox
186
+ * @status stable
187
+ * @since 2.0
188
+ *
189
+ * @dependency syn-icon
190
+ *
191
+ * @slot - The checkbox's label.
192
+ * @slot help-text - Text that describes how to use the checkbox. Alternatively, you can use the `help-text` attribute.
193
+ *
194
+ * @event syn-blur - Emitted when the checkbox loses focus.
195
+ * @event syn-change - Emitted when the checked state changes.
196
+ * @event syn-focus - Emitted when the checkbox gains focus.
197
+ * @event syn-input - Emitted when the checkbox receives input.
198
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
199
+ *
200
+ * @csspart base - The component's base wrapper.
201
+ * @csspart control - The square container that wraps the checkbox's checked state.
202
+ * @csspart control--checked - Matches the control part when the checkbox is checked.
203
+ * @csspart control--indeterminate - Matches the control part when the checkbox is indeterminate.
204
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
205
+ * @csspart indeterminate-icon - The indeterminate icon, an `<syn-icon>` element.
206
+ * @csspart label - The container that wraps the checkbox's label.
207
+ * @csspart form-control-help-text - The help text's wrapper.
208
+ */ export type SynCheckboxJSXElement = SynCustomElement<SynCheckbox, [
209
+ [
210
+ 'syn-blur',
211
+ SynBlurEvent
212
+ ],
213
+ [
214
+ 'syn-change',
215
+ SynChangeEvent
216
+ ],
217
+ [
218
+ 'syn-focus',
219
+ SynFocusEvent
220
+ ],
221
+ [
222
+ 'syn-input',
223
+ SynInputEvent
224
+ ],
225
+ [
226
+ 'syn-invalid',
227
+ SynInvalidEvent
228
+ ]
229
+ ]>;
230
+ /**
231
+ * @summary Comboboxes allow you to choose items from a menu of predefined options.
232
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-combobox--docs
233
+ * @status stable
234
+ *
235
+ * @dependency syn-icon
236
+ * @dependency syn-popup
237
+ *
238
+ * @slot - The listbox options. Must be `<syn-option>` elements.
239
+ * You can use `<syn-optgroup>`'s to group items visually.
240
+ * @slot label - The combobox's label. Alternatively, you can use the `label` attribute.
241
+ * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.
242
+ * @slot suffix - Used to append a presentational icon or similar element to the combobox.
243
+ * @slot clear-icon - An icon to use in lieu of the default clear icon.
244
+ * @slot expand-icon - The icon to show when the control is expanded and collapsed.
245
+ * Rotates on open and close.
246
+ * @slot help-text - Text that describes how to use the combobox.
247
+ * Alternatively, you can use the `help-text` attribute.
248
+ *
249
+ * @event syn-change - Emitted when the control's value changes.
250
+ * @event syn-clear - Emitted when the control's value is cleared.
251
+ * @event syn-input - Emitted when the control receives input.
252
+ * @event syn-focus - Emitted when the control gains focus.
253
+ * @event syn-blur - Emitted when the control loses focus.
254
+ * @event syn-show - Emitted when the combobox's menu opens.
255
+ * @event syn-after-show - Emitted after the combobox's menu opens and all animations are complete.
256
+ * @event syn-hide - Emitted when the combobox's menu closes.
257
+ * @event syn-after-hide - Emitted after the combobox's menu closes and all animations are complete.
258
+ * @event syn-invalid - Emitted when the form control has been checked for validity
259
+ * and its constraints aren't satisfied.
260
+ * @event syn-error - Emitted when the combobox menu fails to open.
261
+ *
262
+ * @csspart form-control - The form control that wraps the label, combobox, and help text.
263
+ * @csspart form-control-label - The label's wrapper.
264
+ * @csspart form-control-input - The combobox's wrapper.
265
+ * @csspart form-control-help-text - The help text's wrapper.
266
+ * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.
267
+ * @csspart prefix - The container that wraps the prefix slot.
268
+ * @csspart suffix - The container that wraps the suffix slot.
269
+ * @csspart display-input - The element that displays the selected option's label,
270
+ * an `<input>` element.
271
+ * @csspart listbox - The listbox container where the options are slotted
272
+ * and the filtered options list exists.
273
+ * @csspart filtered-listbox - The container that wraps the filtered options.
274
+ * @csspart clear-button - The clear button.
275
+ * @csspart expand-icon - The container that wraps the expand icon.
276
+ *
277
+ * @animation combobox.show - The animation to use when showing the combobox.
278
+ * @animation combobox.hide - The animation to use when hiding the combobox.
279
+ */ export type SynComboboxJSXElement = SynCustomElement<SynCombobox, [
280
+ [
281
+ 'syn-change',
282
+ SynChangeEvent
283
+ ],
284
+ [
285
+ 'syn-clear',
286
+ SynClearEvent
287
+ ],
288
+ [
289
+ 'syn-input',
290
+ SynInputEvent
291
+ ],
292
+ [
293
+ 'syn-focus',
294
+ SynFocusEvent
295
+ ],
296
+ [
297
+ 'syn-blur',
298
+ SynBlurEvent
299
+ ],
300
+ [
301
+ 'syn-show',
302
+ SynShowEvent
303
+ ],
304
+ [
305
+ 'syn-after-show',
306
+ SynAfterShowEvent
307
+ ],
308
+ [
309
+ 'syn-hide',
310
+ SynHideEvent
311
+ ],
312
+ [
313
+ 'syn-after-hide',
314
+ SynAfterHideEvent
315
+ ],
316
+ [
317
+ 'syn-invalid',
318
+ SynInvalidEvent
319
+ ],
320
+ [
321
+ 'syn-error',
322
+ SynErrorEvent
323
+ ]
324
+ ]>;
325
+ /**
326
+ * @summary Details show a brief summary and expand to show additional content.
327
+ * @documentation https://synergy.style/components/details
328
+ * @status stable
329
+ * @since 2.0
330
+ *
331
+ * @dependency syn-icon
332
+ *
333
+ * @slot - The details' main content.
334
+ * @slot summary - The details' summary. Alternatively, you can use the `summary` attribute.
335
+ * @slot expand-icon - Optional expand icon to use instead of the default. Works best with `<syn-icon>`.
336
+ * @slot collapse-icon - Optional collapse icon to use instead of the default. Works best with `<syn-icon>`.
337
+ *
338
+ * @event syn-show - Emitted when the details opens.
339
+ * @event syn-after-show - Emitted after the details opens and all animations are complete.
340
+ * @event syn-hide - Emitted when the details closes.
341
+ * @event syn-after-hide - Emitted after the details closes and all animations are complete.
342
+ *
343
+ * @csspart base - The component's base wrapper.
344
+ * @csspart header - The header that wraps both the summary and the expand/collapse icon.
345
+ * @csspart summary - The container that wraps the summary.
346
+ * @csspart summary-icon - The container that wraps the expand/collapse icons.
347
+ * @csspart content - The details content.
348
+ *
349
+ * @animation details.show - The animation to use when showing details. You can use `height: auto` with this animation.
350
+ * @animation details.hide - The animation to use when hiding details. You can use `height: auto` with this animation.
351
+ */ export type SynDetailsJSXElement = SynCustomElement<SynDetails, [
352
+ [
353
+ 'syn-show',
354
+ SynShowEvent
355
+ ],
356
+ [
357
+ 'syn-after-show',
358
+ SynAfterShowEvent
359
+ ],
360
+ [
361
+ 'syn-hide',
362
+ SynHideEvent
363
+ ],
364
+ [
365
+ 'syn-after-hide',
366
+ SynAfterHideEvent
367
+ ]
368
+ ]>;
369
+ /**
370
+ * @summary Dialogs, sometimes called "modals", appear above the page and require the user's immediate attention.
371
+ * @documentation https://synergy.style/components/dialog
372
+ * @status stable
373
+ * @since 2.0
374
+ *
375
+ * @dependency syn-icon-button
376
+ *
377
+ * @slot - The dialog's main content.
378
+ * @slot label - The dialog's label. Alternatively, you can use the `label` attribute.
379
+ * @slot header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.
380
+ * @slot footer - The dialog's footer, usually one or more buttons representing various options.
381
+ *
382
+ * @event syn-show - Emitted when the dialog opens.
383
+ * @event syn-after-show - Emitted after the dialog opens and all animations are complete.
384
+ * @event syn-hide - Emitted when the dialog closes.
385
+ * @event syn-after-hide - Emitted after the dialog closes and all animations are complete.
386
+ * @event syn-initial-focus - Emitted when the dialog opens and is ready to receive focus. Calling
387
+ * `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.
388
+ * @event {{ source: 'close-button' | 'keyboard' | 'overlay' }} syn-request-close - Emitted when the user attempts to
389
+ * close the dialog by clicking the close button, clicking the overlay, or pressing escape. Calling
390
+ * `event.preventDefault()` will keep the dialog open. Avoid using this unless closing the dialog will result in
391
+ * destructive behavior such as data loss.
392
+ *
393
+ * @csspart base - The component's base wrapper.
394
+ * @csspart overlay - The overlay that covers the screen behind the dialog.
395
+ * @csspart panel - The dialog's panel (where the dialog and its content are rendered).
396
+ * @csspart header - The dialog's header. This element wraps the title and header actions.
397
+ * @csspart header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.
398
+ * @csspart title - The dialog's title.
399
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
400
+ * @csspart close-button__base - The close button's exported `base` part.
401
+ * @csspart body - The dialog's body.
402
+ * @csspart footer - The dialog's footer.
403
+ *
404
+ * @cssproperty --width - The preferred width of the dialog. Note that the dialog will shrink to accommodate smaller screens.
405
+ * @cssproperty --header-spacing - The amount of padding to use for the header.
406
+ * @cssproperty --body-spacing - The amount of padding to use for the body.
407
+ * @cssproperty --footer-spacing - The amount of padding to use for the footer.
408
+ *
409
+ * @animation dialog.show - The animation to use when showing the dialog.
410
+ * @animation dialog.hide - The animation to use when hiding the dialog.
411
+ * @animation dialog.denyClose - The animation to use when a request to close the dialog is denied.
412
+ * @animation dialog.overlay.show - The animation to use when showing the dialog's overlay.
413
+ * @animation dialog.overlay.hide - The animation to use when hiding the dialog's overlay.
414
+ *
415
+ * @property modal - Exposes the internal modal utility that controls focus trapping. To temporarily disable focus
416
+ * trapping and allow third-party modals spawned from an active Synergy modal, call `modal.activateExternal()` when
417
+ * the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Synergy's focus trapping.
418
+ */ export type SynDialogJSXElement = SynCustomElement<SynDialog, [
419
+ [
420
+ 'syn-show',
421
+ SynShowEvent
422
+ ],
423
+ [
424
+ 'syn-after-show',
425
+ SynAfterShowEvent
426
+ ],
427
+ [
428
+ 'syn-hide',
429
+ SynHideEvent
430
+ ],
431
+ [
432
+ 'syn-after-hide',
433
+ SynAfterHideEvent
434
+ ],
435
+ [
436
+ 'syn-initial-focus',
437
+ SynInitialFocusEvent
438
+ ],
439
+ [
440
+ 'syn-request-close',
441
+ SynRequestCloseEvent
442
+ ]
443
+ ]>;
444
+ /**
445
+ * @summary Dividers are used to visually separate or group elements.
446
+ * @documentation https://synergy.style/components/divider
447
+ * @status stable
448
+ * @since 2.0
449
+ *
450
+ * @cssproperty --color - The color of the divider.
451
+ * @cssproperty --width - The width of the divider.
452
+ * @cssproperty --spacing - The spacing of the divider.
453
+ */ export type SynDividerJSXElement = SynCustomElement<SynDivider, []>;
454
+ /**
455
+ * @summary Drawers slide in from a container to expose additional options and information.
456
+ * @documentation https://synergy.style/components/drawer
457
+ * @status stable
458
+ * @since 2.0
459
+ *
460
+ * @dependency syn-icon-button
461
+ *
462
+ * @slot - The drawer's main content.
463
+ * @slot label - The drawer's label. Alternatively, you can use the `label` attribute.
464
+ * @slot header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.
465
+ * @slot footer - The drawer's footer, usually one or more buttons representing various options.
466
+ *
467
+ * @event syn-show - Emitted when the drawer opens.
468
+ * @event syn-after-show - Emitted after the drawer opens and all animations are complete.
469
+ * @event syn-hide - Emitted when the drawer closes.
470
+ * @event syn-after-hide - Emitted after the drawer closes and all animations are complete.
471
+ * @event syn-initial-focus - Emitted when the drawer opens and is ready to receive focus. Calling
472
+ * `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.
473
+ * @event {{ source: 'close-button' | 'keyboard' | 'overlay' }} syn-request-close - Emitted when the user attempts to
474
+ * close the drawer by clicking the close button, clicking the overlay, or pressing escape. Calling
475
+ * `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in
476
+ * destructive behavior such as data loss.
477
+ *
478
+ * @csspart base - The component's base wrapper.
479
+ * @csspart overlay - The overlay that covers the screen behind the drawer.
480
+ * @csspart panel - The drawer's panel (where the drawer and its content are rendered).
481
+ * @csspart header - The drawer's header. This element wraps the title and header actions.
482
+ * @csspart header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.
483
+ * @csspart title - The drawer's title.
484
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
485
+ * @csspart close-button__base - The close button's exported `base` part.
486
+ * @csspart body - The drawer's body.
487
+ * @csspart footer - The drawer's footer.
488
+ *
489
+ * @cssproperty --size - The preferred size of the drawer. This will be applied to the drawer's width or height
490
+ * depending on its `placement`. Note that the drawer will shrink to accommodate smaller screens.
491
+ * @cssproperty --header-spacing - The amount of padding to use for the header.
492
+ * @cssproperty --body-spacing - The amount of padding to use for the body.
493
+ * @cssproperty --footer-spacing - The amount of padding to use for the footer.
494
+ *
495
+ * @animation drawer.showTop - The animation to use when showing a drawer with `top` placement.
496
+ * @animation drawer.showEnd - The animation to use when showing a drawer with `end` placement.
497
+ * @animation drawer.showBottom - The animation to use when showing a drawer with `bottom` placement.
498
+ * @animation drawer.showStart - The animation to use when showing a drawer with `start` placement.
499
+ * @animation drawer.hideTop - The animation to use when hiding a drawer with `top` placement.
500
+ * @animation drawer.hideEnd - The animation to use when hiding a drawer with `end` placement.
501
+ * @animation drawer.hideBottom - The animation to use when hiding a drawer with `bottom` placement.
502
+ * @animation drawer.hideStart - The animation to use when hiding a drawer with `start` placement.
503
+ * @animation drawer.denyClose - The animation to use when a request to close the drawer is denied.
504
+ * @animation drawer.overlay.show - The animation to use when showing the drawer's overlay.
505
+ * @animation drawer.overlay.hide - The animation to use when hiding the drawer's overlay.
506
+ *
507
+ * @property modal - Exposes the internal modal utility that controls focus trapping. To temporarily disable focus
508
+ * trapping and allow third-party modals spawned from an active Synergy modal, call `modal.activateExternal()` when
509
+ * the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Synergy's focus trapping.
510
+ */ export type SynDrawerJSXElement = SynCustomElement<SynDrawer, [
511
+ [
512
+ 'syn-show',
513
+ SynShowEvent
514
+ ],
515
+ [
516
+ 'syn-after-show',
517
+ SynAfterShowEvent
518
+ ],
519
+ [
520
+ 'syn-hide',
521
+ SynHideEvent
522
+ ],
523
+ [
524
+ 'syn-after-hide',
525
+ SynAfterHideEvent
526
+ ],
527
+ [
528
+ 'syn-initial-focus',
529
+ SynInitialFocusEvent
530
+ ],
531
+ [
532
+ 'syn-request-close',
533
+ SynRequestCloseEvent
534
+ ]
535
+ ]>;
536
+ /**
537
+ * @summary Dropdowns expose additional content that "drops down" in a panel.
538
+ * @documentation https://synergy.style/components/dropdown
539
+ * @status stable
540
+ * @since 2.0
541
+ *
542
+ * @dependency syn-popup
543
+ *
544
+ * @slot - The dropdown's main content.
545
+ * @slot trigger - The dropdown's trigger, usually a `<syn-button>` element.
546
+ *
547
+ * @event syn-show - Emitted when the dropdown opens.
548
+ * @event syn-after-show - Emitted after the dropdown opens and all animations are complete.
549
+ * @event syn-hide - Emitted when the dropdown closes.
550
+ * @event syn-after-hide - Emitted after the dropdown closes and all animations are complete.
551
+ *
552
+ * @csspart base - The component's base wrapper, an `<syn-popup>` element.
553
+ * @csspart base__popup - The popup's exported `popup` part. Use this to target the tooltip's popup container.
554
+ * @csspart trigger - The container that wraps the trigger.
555
+ * @csspart panel - The panel that gets shown when the dropdown is open.
556
+ *
557
+ * @animation dropdown.show - The animation to use when showing the dropdown.
558
+ * @animation dropdown.hide - The animation to use when hiding the dropdown.
559
+ */ export type SynDropdownJSXElement = SynCustomElement<SynDropdown, [
560
+ [
561
+ 'syn-show',
562
+ SynShowEvent
563
+ ],
564
+ [
565
+ 'syn-after-show',
566
+ SynAfterShowEvent
567
+ ],
568
+ [
569
+ 'syn-hide',
570
+ SynHideEvent
571
+ ],
572
+ [
573
+ 'syn-after-hide',
574
+ SynAfterHideEvent
575
+ ]
576
+ ]>;
577
+ /**
578
+ * @summary File controls allow selecting an arbitrary number of files for uploading.
579
+ * @status stable
580
+ *
581
+ * @dependency syn-button
582
+ * @dependency syn-icon
583
+ *
584
+ * @slot label - The file control's label. Alternatively, you can use the `label` attribute.
585
+ * @slot help-text - Text that describes how to use the file control.
586
+ * Alternatively, you can use the `help-text` attribute.
587
+ * @slot droparea-icon - Optional droparea icon to use instead of the default.
588
+ * Works best with `<syn-icon>`.
589
+ * @slot trigger - Optional content to be used as trigger instead of the default content.
590
+ * Opening the file dialog on click and as well as drag and drop will work for this content.
591
+ * Following attributes will no longer work: *label*, *droparea*, *help-text*, *size*,
592
+ * *hide-value*. Also if using the disabled attribute, the disabled styling will not be
593
+ * applied and must be taken care of yourself.
594
+ *
595
+ * @event syn-blur - Emitted when the control loses focus.
596
+ * @event syn-change - Emitted when an alteration to the control's value is committed by the user.
597
+ * @event syn-error - Emitted when multiple files are selected via drag and drop, without
598
+ * the `multiple` property being set.
599
+ * @event syn-focus - Emitted when the control gains focus.
600
+ * @event syn-input - Emitted when the control receives input.
601
+ *
602
+ * @csspart form-control - The form control that wraps the label, input, and help text.
603
+ * @csspart form-control-label - The label's wrapper.
604
+ * @csspart form-control-input - The input's wrapper.
605
+ * @csspart form-control-help-text - The help text's wrapper.
606
+ * @csspart button-wrapper - The wrapper around the button and text value.
607
+ * @csspart button - The syn-button acting as a file input.
608
+ * @csspart button__base - The syn-button's exported `base` part.
609
+ * @csspart value - The chosen files or placeholder text for the file input.
610
+ * @csspart droparea - The element wrapping the drop zone.
611
+ * @csspart droparea-background - The background of the drop zone.
612
+ * @csspart droparea-icon - The container that wraps the icon for the drop zone.
613
+ * @csspart droparea-value - The text for the drop zone.
614
+ * @csspart trigger - The container that wraps the trigger.
615
+ *
616
+ * @animation file.iconDrop - The animation to use for the file icon
617
+ * when a file is dropped
618
+ * @animation file.text.disappear - The disappear animation to use for the file placeholder text
619
+ * when a file is dropped
620
+ * @animation file.text.appear - The appear animation to use for the file placeholder text
621
+ * when a file is dropped
622
+ */ export type SynFileJSXElement = SynCustomElement<SynFile, [
623
+ [
624
+ 'syn-blur',
625
+ SynBlurEvent
626
+ ],
627
+ [
628
+ 'syn-change',
629
+ SynChangeEvent
630
+ ],
631
+ [
632
+ 'syn-error',
633
+ SynErrorEvent
634
+ ],
635
+ [
636
+ 'syn-focus',
637
+ SynFocusEvent
638
+ ],
639
+ [
640
+ 'syn-input',
641
+ SynInputEvent
642
+ ]
643
+ ]>;
644
+ /**
645
+ * @summary The <syn-header /> element provides a generic application header
646
+ * that can be used to add applications name, toolbar and primary navigation.
647
+ *
648
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-header--docs
649
+ * @status stable
650
+ * @since 1.10.0
651
+ *
652
+ * @slot label - The label for the header
653
+ * @slot logo - The logo that should be displayed. Will fall back to the SICK logo if not provided
654
+ * @slot meta-navigation - The meta-navigation is used to add various application toolbar icons
655
+ * Best used with `<syn-icon-button />` and `<syn-drop-down />`
656
+ * @slot navigation - This slot can be used to add an optional horizontal navigation
657
+ * @slot open-burger-menu-icon - An icon to use in lieu of the default burger-menu=open state.
658
+ * The default close icon is a 'x'.
659
+ * @slot closed-burger-menu-icon - An icon to use in lieu of the default burger-menu=closed state.
660
+ * The default open icon is a burger menu.
661
+ *
662
+ * @event syn-burger-menu-closed - Emitted when the burger menu is toggled to closed
663
+ * @event syn-burger-menu-hidden - Emitted when the burger menu is toggled to hidden
664
+ * @event syn-burger-menu-open - Emitted when the burger menu is toggled to open
665
+ *
666
+ * @csspart base - The component's base wrapper
667
+ * @csspart content - The wrapper most content items reside
668
+ * @csspart logo - The wrapper the application logo resides in
669
+ * @csspart label - The element wrapping the application name
670
+ * @csspart meta-navigation - The Item wrapping the optional application menu
671
+ * @csspart navigation - The wrapper that is holding the optional top navigation section
672
+ * @csspart burger-menu-toggle-button - The button that toggles the burger menu
673
+ */ export type SynHeaderJSXElement = SynCustomElement<SynHeader, [
674
+ [
675
+ 'syn-burger-menu-closed',
676
+ SynBurgerMenuClosedEvent
677
+ ],
678
+ [
679
+ 'syn-burger-menu-hidden',
680
+ SynBurgerMenuHiddenEvent
681
+ ],
682
+ [
683
+ 'syn-burger-menu-open',
684
+ SynBurgerMenuOpenEvent
685
+ ]
686
+ ]>;
687
+ /**
688
+ * @summary Icons are symbols that can be used to represent various options within an application.
689
+ * @documentation https://synergy.style/components/icon
690
+ * @status stable
691
+ * @since 2.0
692
+ *
693
+ * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.
694
+ * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.
695
+ *
696
+ * @csspart svg - The internal SVG element.
697
+ * @csspart use - The <use> element generated when using `spriteSheet: true`
698
+ */ export type SynIconJSXElement = SynCustomElement<SynIcon, [
699
+ ['syn-load', SynLoadEvent],
700
+ ['syn-error', SynErrorEvent]
701
+ ]>;
702
+ /**
703
+ * @summary Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.
704
+ * @documentation https://synergy.style/components/icon-button
705
+ * @status stable
706
+ * @since 2.0
707
+ *
708
+ * @dependency syn-icon
709
+ *
710
+ * @event syn-blur - Emitted when the icon button loses focus.
711
+ * @event syn-focus - Emitted when the icon button gains focus.
712
+ *
713
+ * @csspart base - The component's base wrapper.
714
+ */ export type SynIconButtonJSXElement = SynCustomElement<SynIconButton, [
715
+ ['syn-blur', SynBlurEvent],
716
+ ['syn-focus', SynFocusEvent]
717
+ ]>;
718
+ /**
719
+ * @summary Inputs collect data from the user.
720
+ * @documentation https://synergy.style/components/input
721
+ * @status stable
722
+ * @since 2.0
723
+ *
724
+ * @dependency syn-icon
725
+ * @dependency syn-divider
726
+ *
727
+ * @slot label - The input's label. Alternatively, you can use the `label` attribute.
728
+ * @slot prefix - Used to prepend a presentational icon or similar element to the input.
729
+ * @slot suffix - Used to append a presentational icon or similar element to the input.
730
+ * @slot clear-icon - An icon to use in lieu of the default clear icon.
731
+ * @slot show-password-icon - An icon to use in lieu of the default show password icon.
732
+ * @slot hide-password-icon - An icon to use in lieu of the default hide password icon.
733
+ * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
734
+ * @slot increment-number-stepper - An icon to use in lieu of the default increment number stepper icon.
735
+ * @slot decrement-number-stepper - An icon to use in lieu of the default decrement number stepper icon.
736
+ *
737
+ * @event syn-blur - Emitted when the control loses focus.
738
+ * @event syn-change - Emitted when an alteration to the control's value is committed by the user.
739
+ * @event syn-clear - Emitted when the clear button is activated.
740
+ * @event syn-focus - Emitted when the control gains focus.
741
+ * @event syn-input - Emitted when the control receives input.
742
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
743
+ *
744
+ * @csspart form-control - The form control that wraps the label, input, and help text.
745
+ * @csspart form-control-label - The label's wrapper.
746
+ * @csspart form-control-input - The input's wrapper.
747
+ * @csspart form-control-help-text - The help text's wrapper.
748
+ * @csspart base - The component's base wrapper.
749
+ * @csspart input - The internal `<input>` control.
750
+ * @csspart prefix - The container that wraps the prefix.
751
+ * @csspart clear-button - The clear button.
752
+ * @csspart password-toggle-button - The password toggle button.
753
+ * @csspart suffix - The container that wraps the suffix.
754
+ * @csspart stepper - The container that wraps the number stepper.
755
+ * @csspart decrement-number-stepper - The decrement number stepper button.
756
+ * @csspart increment-number-stepper - The increment number stepper button.
757
+ * @csspart divider - The divider between the increment and decrement number stepper buttons.
758
+ */ export type SynInputJSXElement = SynCustomElement<SynInput, [
759
+ [
760
+ 'syn-blur',
761
+ SynBlurEvent
762
+ ],
763
+ [
764
+ 'syn-change',
765
+ SynChangeEvent
766
+ ],
767
+ [
768
+ 'syn-clear',
769
+ SynClearEvent
770
+ ],
771
+ [
772
+ 'syn-focus',
773
+ SynFocusEvent
774
+ ],
775
+ [
776
+ 'syn-input',
777
+ SynInputEvent
778
+ ],
779
+ [
780
+ 'syn-invalid',
781
+ SynInvalidEvent
782
+ ]
783
+ ]>;
784
+ /**
785
+ * @summary Menus provide a list of options for the user to choose from.
786
+ * @documentation https://synergy.style/components/menu
787
+ * @status stable
788
+ * @since 2.0
789
+ *
790
+ * @slot - The menu's content, including menu items, menu labels, and dividers.
791
+ *
792
+ * @event {{ item: SynMenuItem }} syn-select - Emitted when a menu item is selected.
793
+ */ export type SynMenuJSXElement = SynCustomElement<SynMenu, [
794
+ ['syn-select', SynSelectEvent]
795
+ ]>;
796
+ /**
797
+ * @summary Menu items provide options for the user to pick from in a menu.
798
+ * @documentation https://synergy.style/components/menu-item
799
+ * @status stable
800
+ * @since 2.0
801
+ *
802
+ * @dependency syn-icon
803
+ * @dependency syn-popup
804
+ * @dependency syn-spinner
805
+ *
806
+ * @slot - The menu item's label.
807
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
808
+ * @slot suffix - Used to append an icon or similar element to the menu item.
809
+ * @slot submenu - Used to denote a nested menu.
810
+ *
811
+ * @csspart base - The component's base wrapper.
812
+ * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked.
813
+ * @csspart prefix - The prefix container.
814
+ * @csspart label - The menu item label.
815
+ * @csspart suffix - The suffix container.
816
+ * @csspart spinner - The spinner that shows when the menu item is in the loading state.
817
+ * @csspart spinner__base - The spinner's base part.
818
+ * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented).
819
+ *
820
+ * @cssproperty [--submenu-offset=-2px] - The distance submenus shift to overlap the parent menu.
821
+ */ export type SynMenuItemJSXElement = SynCustomElement<SynMenuItem, []>;
822
+ /**
823
+ * @summary Menu labels are used to describe a group of menu items.
824
+ * @documentation https://synergy.style/components/menu-label
825
+ * @status stable
826
+ * @since 2.0
827
+ *
828
+ * @dependency syn-divider
829
+ *
830
+ * @slot - The menu label's content.
831
+ *
832
+ * @csspart base - The component's base wrapper.
833
+ * @csspart divider - The divider that is displayed above the content
834
+ * @csspart label - The label that is displayed below the divider
835
+ *
836
+ * @cssproperty --display-divider - Display property of the divider. Defaults to "block"
837
+ */ export type SynMenuLabelJSXElement = SynCustomElement<SynMenuLabel, []>;
838
+ /**
839
+ * @summary Flexible button / link component that can be used to quickly build navigations.
840
+ * Takes one of 3 forms:
841
+ * - button (default),
842
+ * - link (overrides button if a 'href' is provided),
843
+ * - or accordion (overrides all other if 'children' slot is defined).
844
+ *
845
+ * @status stable
846
+ * @since 1.14.0
847
+ *
848
+ * @dependency syn-divider
849
+ *
850
+ * @event syn-show - Emitted when the navigation item:
851
+ * - has children,
852
+ * - and is clicked while HTML details are hidden.
853
+ *
854
+ * @event syn-hide - Emitted when the navigation item:
855
+ * - has children,
856
+ * - and is clicked while HTML details are shown.
857
+ *
858
+ * @event syn-blur - Emitted when the button loses focus.
859
+ * @event syn-focus - Emitted when the button gains focus.
860
+ *
861
+ * @slot - The navigation item's label.
862
+ * @slot prefix - A presentational prefix icon or similar element.
863
+ * @slot suffix - A presentational suffix icon or similar element.
864
+ * @slot children - Slot used to provide nested child navigation elements.
865
+ * If provided, details and summary elements will be used.
866
+ * A chevron will be shown on the right side regardless of the chevron property.
867
+ *
868
+ * @csspart base - The component's base wrapper including children.
869
+ * @csspart children - The wrapper that holds the children
870
+ * @csspart content-wrapper - The component's content wrapper.
871
+ * @csspart content - The component's content excluding children.
872
+ * @csspart current-indicator - The indicator used when current is set to true
873
+ * @csspart chevron - The container that wraps the chevron.
874
+ * @csspart details - The details element rendered when there are children available
875
+ * @csspart divider - The components optional top divider.
876
+ * @csspart prefix - The container that wraps the prefix.
877
+ * @csspart suffix - The container that wraps the suffix.
878
+ *
879
+ * @cssproperty --indentation - Numeric value, indicating the level the item is placed at.
880
+ * @cssproperty --indentation-stepping - The amount of pixels each level will indent.
881
+ * @cssproperty --display-children - Display property of the children. Defaults to "contents"
882
+ */ export type SynNavItemJSXElement = SynCustomElement<SynNavItem, [
883
+ [
884
+ 'syn-show',
885
+ SynShowEvent
886
+ ],
887
+ [
888
+ 'syn-hide',
889
+ SynHideEvent
890
+ ],
891
+ [
892
+ 'syn-blur',
893
+ SynBlurEvent
894
+ ],
895
+ [
896
+ 'syn-focus',
897
+ SynFocusEvent
898
+ ]
899
+ ]>;
900
+ /**
901
+ * @summary The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.
902
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs
903
+ * @status stable
904
+ * @since 1.3.0
905
+ *
906
+ * @dependency syn-divider
907
+ *
908
+ * @slot - The given options. Must be `<syn-option>` elements.
909
+ * @slot prefix - A presentational prefix icon or similar element.
910
+ * @slot label - The label for the optgroup
911
+ * @slot suffix - A presentational suffix icon or similar element.
912
+ *
913
+ * @csspart base - The component's base wrapper.
914
+ * @csspart label-container - The container that wraps prefix, label and base
915
+ * @csspart divider - The divider that is displayed above the content
916
+ * @csspart prefix - The container that wraps the prefix.
917
+ * @csspart suffix - The container that wraps the suffix.
918
+ * @csspart options - The container that wraps the <syn-option> elements.
919
+ *
920
+ * @cssproperty --display-divider - Display property of the divider. Defaults to "block"
921
+ */ export type SynOptgroupJSXElement = SynCustomElement<SynOptgroup, []>;
922
+ /**
923
+ * @summary Options define the selectable items within various form controls such as [select](/components/select).
924
+ * @documentation https://synergy.style/components/option
925
+ * @status stable
926
+ * @since 2.0
927
+ *
928
+ * @dependency syn-icon
929
+ *
930
+ * @slot - The option's label.
931
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
932
+ * @slot suffix - Used to append an icon or similar element to the menu item.
933
+ *
934
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
935
+ * @csspart base - The component's base wrapper.
936
+ * @csspart label - The option's label.
937
+ * @csspart prefix - The container that wraps the prefix.
938
+ * @csspart suffix - The container that wraps the suffix.
939
+ */ export type SynOptionJSXElement = SynCustomElement<SynOption, []>;
940
+ /**
941
+ * @summary Popup is a utility that lets you declaratively anchor "popup" containers to another element.
942
+ * @documentation https://synergy.style/components/popup
943
+ * @status stable
944
+ * @since 2.0
945
+ *
946
+ * @event syn-reposition - Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive
947
+ * operations in your listener or consider debouncing it.
948
+ *
949
+ * @slot - The popup's content.
950
+ * @slot anchor - The element the popup will be anchored to. If the anchor lives outside of the popup, you can use the
951
+ * `anchor` attribute or property instead.
952
+ *
953
+ * @csspart arrow - The arrow's container. Avoid setting `top|bottom|left|right` properties, as these values are
954
+ * assigned dynamically as the popup moves. This is most useful for applying a background color to match the popup, and
955
+ * maybe a border or box shadow.
956
+ * @csspart popup - The popup's container. Useful for setting a background color, box shadow, etc.
957
+ * @csspart hover-bridge - The hover bridge element. Only available when the `hover-bridge` option is enabled.
958
+ *
959
+ * @cssproperty [--arrow-size=6px] - The size of the arrow. Note that an arrow won't be shown unless the `arrow`
960
+ * attribute is used.
961
+ * @cssproperty [--arrow-color=var(--syn-color-neutral-0)] - The color of the arrow.
962
+ * @cssproperty [--auto-size-available-width] - A read-only custom property that determines the amount of width the
963
+ * popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only
964
+ * available when using `auto-size`.
965
+ * @cssproperty [--auto-size-available-height] - A read-only custom property that determines the amount of height the
966
+ * popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only
967
+ * available when using `auto-size`.
968
+ */ export type SynPopupJSXElement = SynCustomElement<SynPopup, [
969
+ ['syn-reposition', SynRepositionEvent]
970
+ ]>;
971
+ /**
972
+ * @summary The `<syn-prio-nav />` element provides a generic navigation bar
973
+ * that can be used to group multiple navigation items (usually horizontal `<syn-nav-item />`s)
974
+ * together. It will automatically group all items not visible in the viewport into a custom
975
+ * priority menu.
976
+ *
977
+ * @example
978
+ * <syn-prio-nav>
979
+ * <syn-nav-item current horizontal>Item 1</syn-nav-item>
980
+ * <button role="menuitem">Item 2 (custom)</button>
981
+ * <syn-nav-item horizontal>Item 3</syn-nav-item>
982
+ * </syn-prio-nav>
983
+ *
984
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-prio-nav--docs
985
+ * @status stable
986
+ * @since 1.14.0
987
+ *
988
+ * @dependency syn-dropdown
989
+ * @dependency syn-icon
990
+ * @dependency syn-menu
991
+ * @dependency syn-nav-item
992
+ *
993
+ * @slot - The given navigation items. Must be horizontal `<syn-nav-item>`s
994
+ * or have a role of "menuitem"
995
+ *
996
+ * @csspart base - The component's base wrapper.
997
+ * @csspart priority-menu - The wrapper around the priority menu
998
+ * @csspart priority-menu-nav-item - The navigation item for the priority menu
999
+ * @csspart priority-menu-label - The label for the priority menu
1000
+ * @csspart priority-menu-icon - The icon for the priority menu
1001
+ * @csspart priority-menu-container - The container for the shifted navigation items,
1002
+ * if there is not enough space.
1003
+ *
1004
+ */ export type SynPrioNavJSXElement = SynCustomElement<SynPrioNav, []>;
1005
+ /**
1006
+ * @summary Progress bars are used to show the status of an ongoing operation.
1007
+ * @documentation https://synergy.style/components/progress-bar
1008
+ * @status stable
1009
+ * @since 2.0
1010
+ *
1011
+ * @slot - A label to show inside the progress indicator.
1012
+ *
1013
+ * @csspart base - The component's base wrapper.
1014
+ * @csspart indicator - The progress bar's indicator.
1015
+ * @csspart label - The progress bar's label.
1016
+ *
1017
+ * @cssproperty --height - The progress bar's height.
1018
+ * @cssproperty --track-color - The color of the track.
1019
+ * @cssproperty --indicator-color - The color of the indicator.
1020
+ * @cssproperty --label-color - The color of the label.
1021
+ * @cssproperty --speed - The speed of the progress bar when in indeterminate state.
1022
+ */ export type SynProgressBarJSXElement = SynCustomElement<SynProgressBar, []>;
1023
+ /**
1024
+ * @summary Progress rings are used to show the progress of a determinate operation in a circular fashion.
1025
+ * @documentation https://synergy.style/components/progress-ring
1026
+ * @status stable
1027
+ * @since 2.0
1028
+ *
1029
+ * @slot - A label to show inside the ring.
1030
+ *
1031
+ * @csspart base - The component's base wrapper.
1032
+ * @csspart label - The progress ring label.
1033
+ *
1034
+ * @cssproperty --size - The diameter of the progress ring (cannot be a percentage).
1035
+ * @cssproperty --track-width - The width of the track.
1036
+ * @cssproperty --track-color - The color of the track.
1037
+ * @cssproperty --indicator-width - The width of the indicator. Defaults to the track width.
1038
+ * @cssproperty --indicator-color - The color of the indicator.
1039
+ * @cssproperty --indicator-transition-duration - The duration of the indicator's transition when the value changes.
1040
+ */ export type SynProgressRingJSXElement = SynCustomElement<SynProgressRing, [
1041
+ ]>;
1042
+ /**
1043
+ * @summary Radios allow the user to select a single option from a group.
1044
+ * @documentation https://synergy.style/components/radio
1045
+ * @status stable
1046
+ * @since 2.0
1047
+ *
1048
+ * @dependency syn-icon
1049
+ *
1050
+ * @slot - The radio's label.
1051
+ *
1052
+ * @event syn-blur - Emitted when the control loses focus.
1053
+ * @event syn-focus - Emitted when the control gains focus.
1054
+ *
1055
+ * @csspart base - The component's base wrapper.
1056
+ * @csspart control - The circular container that wraps the radio's checked state.
1057
+ * @csspart control--checked - The radio control when the radio is checked.
1058
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
1059
+ * @csspart label - The container that wraps the radio's label.
1060
+ */ export type SynRadioJSXElement = SynCustomElement<SynRadio, [
1061
+ ['syn-blur', SynBlurEvent],
1062
+ ['syn-focus', SynFocusEvent]
1063
+ ]>;
1064
+ /**
1065
+ * @summary Radios buttons allow the user to select a single option from a group using a button-like control.
1066
+ * @documentation https://synergy.style/components/radio-button
1067
+ * @status stable
1068
+ * @since 2.0
1069
+ *
1070
+ * @slot - The radio button's label.
1071
+ * @slot prefix - A presentational prefix icon or similar element.
1072
+ * @slot suffix - A presentational suffix icon or similar element.
1073
+ *
1074
+ * @event syn-blur - Emitted when the button loses focus.
1075
+ * @event syn-focus - Emitted when the button gains focus.
1076
+ *
1077
+ * @csspart base - The component's base wrapper.
1078
+ * @csspart button - The internal `<button>` element.
1079
+ * @csspart button--checked - The internal button element when the radio button is checked.
1080
+ * @csspart prefix - The container that wraps the prefix.
1081
+ * @csspart label - The container that wraps the radio button's label.
1082
+ * @csspart suffix - The container that wraps the suffix.
1083
+ */ export type SynRadioButtonJSXElement = SynCustomElement<SynRadioButton, [
1084
+ ['syn-blur', SynBlurEvent],
1085
+ ['syn-focus', SynFocusEvent]
1086
+ ]>;
1087
+ /**
1088
+ * @summary Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.
1089
+ * @documentation https://synergy.style/components/radio-group
1090
+ * @status stable
1091
+ * @since 2.0
1092
+ *
1093
+ * @dependency syn-button-group
1094
+ *
1095
+ * @slot - The default slot where `<syn-radio>` or `<syn-radio-button>` elements are placed.
1096
+ * @slot label - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label`
1097
+ * attribute.
1098
+ * @slot help-text - Text that describes how to use the radio group. Alternatively, you can use the `help-text` attribute.
1099
+ *
1100
+ * @event syn-change - Emitted when the radio group's selected value changes.
1101
+ * @event syn-input - Emitted when the radio group receives user input.
1102
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
1103
+ *
1104
+ * @csspart form-control - The form control that wraps the label, input, and help text.
1105
+ * @csspart form-control-label - The label's wrapper.
1106
+ * @csspart form-control-input - The input's wrapper.
1107
+ * @csspart form-control-help-text - The help text's wrapper.
1108
+ * @csspart button-group - The button group that wraps radio buttons.
1109
+ * @csspart button-group__base - The button group's `base` part.
1110
+ */ export type SynRadioGroupJSXElement = SynCustomElement<SynRadioGroup, [
1111
+ [
1112
+ 'syn-change',
1113
+ SynChangeEvent
1114
+ ],
1115
+ [
1116
+ 'syn-input',
1117
+ SynInputEvent
1118
+ ],
1119
+ [
1120
+ 'syn-invalid',
1121
+ SynInvalidEvent
1122
+ ]
1123
+ ]>;
1124
+ /**
1125
+ * @summary Ranges allow the user to select values within a given range using one or two thumbs.
1126
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-range--docs
1127
+ * @status stable
1128
+ *
1129
+ * @dependency syn-tooltip
1130
+ *
1131
+ * @slot label - The range's label. Alternatively, you can use the `label` attribute.
1132
+ * @slot prefix - Used to prepend a presentational icon or similar element to the range.
1133
+ * @slot suffix - Used to append a presentational icon or similar element to the range.
1134
+ * @slot help-text - Text that describes how to use the range.
1135
+ * Alternatively, you can use the `help-text` attribute.
1136
+ * @slot ticks - Used to display tick marks at specific intervals along the range.
1137
+ *
1138
+ * @event syn-blur - Emitted when the control loses focus.
1139
+ * @event syn-change - Emitted when an alteration to the control's value is committed by the user.
1140
+ * @event syn-focus - Emitted when the control gains focus.
1141
+ * @event syn-input - Emitted when the control receives input.
1142
+ * @event syn-invalid - Emitted when the form control has been checked for validity
1143
+ * and its constraints aren't satisfied.
1144
+ * @event syn-move - Emitted when the user moves a thumb, either via touch or keyboard.
1145
+ * Use `Event.preventDefault()` to prevent movement.
1146
+ *
1147
+ * @csspart form-control - The form control that wraps the label, input, and help text.
1148
+ * @csspart form-control-label - The label's wrapper.
1149
+ * @csspart form-control-help-text - The help text's wrapper.
1150
+ * @csspart base - The component's base wrapper.
1151
+ * @csspart input-wrapper - The container that wraps the input track and ticks.
1152
+ * @csspart track-wrapper - The wrapper for the track.
1153
+ * @csspart track - The inactive track.
1154
+ * @csspart active-track - The active track.
1155
+ * @csspart prefix - The container that wraps the prefix.
1156
+ * @csspart suffix - The container that wraps the suffix.
1157
+ * @csspart ticks - The container that wraps the tick marks.
1158
+ * @csspart thumb - The thumb(s) that the user can drag to change the range.
1159
+ *
1160
+ * @csspart tooltip__base - The base of the tooltip
1161
+ * @csspart tooltip__arrow - The arrow of the tooltip
1162
+ * @csspart tooltip__popup - The popup of the tooltip
1163
+ * @csspart tooltip__body - The body of the tooltip
1164
+ *
1165
+ * @cssproperty --thumb-size - The size of a thumb.
1166
+ * @cssproperty --thumb-hit-area-size - The clickable area around the thumb.
1167
+ * Per default this is set to 140% of the thumb size. Must be a scale css value (defaults to 1.4).
1168
+ * @cssproperty --track-hit-area-size - The clickable area around the track (top and left).
1169
+ * @cssproperty --track-color-active - Color of the track representing the current value.
1170
+ * @cssproperty --track-color-inactive - Color of the track that represents the remaining value.
1171
+ * @cssproperty --track-height - The height of the track.
1172
+ * @cssproperty --track-active-offset - The point of origin of the active track,
1173
+ * starting at the left side of the range.
1174
+ */ export type SynRangeJSXElement = SynCustomElement<SynRange, [
1175
+ [
1176
+ 'syn-blur',
1177
+ SynBlurEvent
1178
+ ],
1179
+ [
1180
+ 'syn-change',
1181
+ SynChangeEvent
1182
+ ],
1183
+ [
1184
+ 'syn-focus',
1185
+ SynFocusEvent
1186
+ ],
1187
+ [
1188
+ 'syn-input',
1189
+ SynInputEvent
1190
+ ],
1191
+ [
1192
+ 'syn-invalid',
1193
+ SynInvalidEvent
1194
+ ],
1195
+ [
1196
+ 'syn-move',
1197
+ SynMoveEvent
1198
+ ]
1199
+ ]>;
1200
+ /**
1201
+ * @summary Ticks visually improve positioning on range sliders.
1202
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-range--docs
1203
+ * @status stable
1204
+ *
1205
+ * @slot - The tick's label
1206
+ *
1207
+ * @csspart base - The component's base wrapper.
1208
+ * @csspart label - The component's label.
1209
+ * @csspart line - The component's tick line.
1210
+ *
1211
+ * @cssproperty --tick-height - The height of the tick marker.
1212
+ * @cssproperty --tick-label-top - The top offset of the tick label.
1213
+ */ export type SynRangeTickJSXElement = SynCustomElement<SynRangeTick, []>;
1214
+ /**
1215
+ * @summary Selects allow you to choose items from a menu of predefined options.
1216
+ * @documentation https://synergy.style/components/select
1217
+ * @status stable
1218
+ * @since 2.0
1219
+ *
1220
+ * @dependency syn-icon
1221
+ * @dependency syn-popup
1222
+ * @dependency syn-tag
1223
+ *
1224
+ * @slot - The listbox options. Must be `<syn-option>` elements. You can use `<syn-divider>` to group items visually.
1225
+ * @slot label - The input's label. Alternatively, you can use the `label` attribute.
1226
+ * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.
1227
+ * @slot suffix - Used to append a presentational icon or similar element to the combobox.
1228
+ * @slot clear-icon - An icon to use in lieu of the default clear icon.
1229
+ * @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.
1230
+ * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
1231
+ *
1232
+ * @event syn-change - Emitted when the control's value changes.
1233
+ * @event syn-clear - Emitted when the control's value is cleared.
1234
+ * @event syn-input - Emitted when the control receives input.
1235
+ * @event syn-focus - Emitted when the control gains focus.
1236
+ * @event syn-blur - Emitted when the control loses focus.
1237
+ * @event syn-show - Emitted when the select's menu opens.
1238
+ * @event syn-after-show - Emitted after the select's menu opens and all animations are complete.
1239
+ * @event syn-hide - Emitted when the select's menu closes.
1240
+ * @event syn-after-hide - Emitted after the select's menu closes and all animations are complete.
1241
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
1242
+ *
1243
+ * @csspart form-control - The form control that wraps the label, input, and help text.
1244
+ * @csspart form-control-label - The label's wrapper.
1245
+ * @csspart form-control-input - The select's wrapper.
1246
+ * @csspart form-control-help-text - The help text's wrapper.
1247
+ * @csspart combobox - The container the wraps the prefix, suffix, combobox, clear icon, and expand button.
1248
+ * @csspart prefix - The container that wraps the prefix slot.
1249
+ * @csspart suffix - The container that wraps the suffix slot.
1250
+ * @csspart display-input - The element that displays the selected option's label, an `<input>` element.
1251
+ * @csspart listbox - The listbox container where options are slotted.
1252
+ * @csspart tags - The container that houses option tags when `multiselect` is used.
1253
+ * @csspart tag - The individual tags that represent each multiselect option.
1254
+ * @csspart tag__base - The tag's base part.
1255
+ * @csspart tag__content - The tag's content part.
1256
+ * @csspart tag__remove-button - The tag's remove button.
1257
+ * @csspart tag__remove-button__base - The tag's remove button base part.
1258
+ * @csspart clear-button - The clear button.
1259
+ * @csspart expand-icon - The container that wraps the expand icon.
1260
+ */ export type SynSelectJSXElement = SynCustomElement<SynSelect, [
1261
+ [
1262
+ 'syn-change',
1263
+ SynChangeEvent
1264
+ ],
1265
+ [
1266
+ 'syn-clear',
1267
+ SynClearEvent
1268
+ ],
1269
+ [
1270
+ 'syn-input',
1271
+ SynInputEvent
1272
+ ],
1273
+ [
1274
+ 'syn-focus',
1275
+ SynFocusEvent
1276
+ ],
1277
+ [
1278
+ 'syn-blur',
1279
+ SynBlurEvent
1280
+ ],
1281
+ [
1282
+ 'syn-show',
1283
+ SynShowEvent
1284
+ ],
1285
+ [
1286
+ 'syn-after-show',
1287
+ SynAfterShowEvent
1288
+ ],
1289
+ [
1290
+ 'syn-hide',
1291
+ SynHideEvent
1292
+ ],
1293
+ [
1294
+ 'syn-after-hide',
1295
+ SynAfterHideEvent
1296
+ ],
1297
+ [
1298
+ 'syn-invalid',
1299
+ SynInvalidEvent
1300
+ ]
1301
+ ]>;
1302
+ /**
1303
+ * @summary The <syn-side-nav /> element contains secondary navigation and fits below the header.
1304
+ * It can be used to group multiple navigation items (<syn-nav-item />s) together.
1305
+ *
1306
+ * @example
1307
+ * <syn-side-nav open>
1308
+ * <syn-nav-item >Item 1</syn-nav-item>
1309
+ * <syn-nav-item divider>Item 2</syn-nav-item>
1310
+ * </syn-side-nav>
1311
+ *
1312
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-side-nav--docs
1313
+ * @status stable
1314
+ * @since 1.14.0
1315
+ *
1316
+ * @dependency syn-divider
1317
+ * @dependency syn-drawer
1318
+ *
1319
+ * @slot - The main content of the side-nav. Used for <syn-nav-item /> elements.
1320
+ * @slot footer - The footer content of the side-nav. Used for <syn-nav-item /> elements.
1321
+ * Please avoid having to many nav-items as it can massively influence the user experience.
1322
+ *
1323
+ * @event syn-show - Emitted when the side-nav opens.
1324
+ * @event syn-after-show - Emitted after the side-nav opens and all animations are complete.
1325
+ * @event syn-hide - Emitted when the side-nav closes.
1326
+ * @event syn-after-hide - Emitted after the side-nav closes and all animations are complete.
1327
+ *
1328
+ * @csspart base - The components base wrapper
1329
+ * @csspart drawer - The drawer that is used under the hood for creating the side-nav
1330
+ * @csspart content-container - The components main content container
1331
+ * @csspart content - The components main content
1332
+ * @csspart footer-container - The components footer content container
1333
+ (where the footer slot content is rendered)
1334
+ * @csspart footer-divider - The components footer divider
1335
+ * @csspart footer - The components footer content
1336
+ * @csspart overlay - The overlay that covers the screen behind the side-nav.
1337
+ * @csspart panel - The side-nav's panel (where the whole content is rendered).
1338
+ * @csspart body - The side-nav's body (where the default slot content is rendered)
1339
+ * @csspart drawer__base - The drawer's base wrapper
1340
+ *
1341
+ * @cssproperty --side-nav-open-width - The width of the side-nav if in open state
1342
+ *
1343
+ * @animation sideNav.showNonRail - The animation to use when showing the side-nav in non-rail mode.
1344
+ * @animation sideNav.showRail - The animation to use when showing the side-nav in rail mode.
1345
+ * @animation sideNav.hideNonRail - The animation to use when hiding the side-nav in non-rail mode.
1346
+ * @animation sideNav.hideRail - The animation to use when hiding the side-nav in rail mode.
1347
+ * @animation sideNav.overlay.show - The animation to use when showing the side-nav's overlay.
1348
+ * @animation sideNav.overlay.hide - The animation to use when hiding the side-nav's overlay.
1349
+ */ export type SynSideNavJSXElement = SynCustomElement<SynSideNav, [
1350
+ [
1351
+ 'syn-show',
1352
+ SynShowEvent
1353
+ ],
1354
+ [
1355
+ 'syn-after-show',
1356
+ SynAfterShowEvent
1357
+ ],
1358
+ [
1359
+ 'syn-hide',
1360
+ SynHideEvent
1361
+ ],
1362
+ [
1363
+ 'syn-after-hide',
1364
+ SynAfterHideEvent
1365
+ ]
1366
+ ]>;
1367
+ /**
1368
+ * @summary Spinners are used to show the progress of an indeterminate operation.
1369
+ * @documentation https://synergy.style/components/spinner
1370
+ * @status stable
1371
+ * @since 2.0
1372
+ *
1373
+ * @csspart base - The component's base wrapper.
1374
+ *
1375
+ * @cssproperty --track-width - The width of the track.
1376
+ * @cssproperty --indicator-color - The color of the spinner's indicator.
1377
+ * @cssproperty --speed - The time it takes for the spinner to complete one animation cycle.
1378
+ */ export type SynSpinnerJSXElement = SynCustomElement<SynSpinner, []>;
1379
+ /**
1380
+ * @summary Switches allow the user to toggle an option on or off.
1381
+ * @documentation https://synergy.style/components/switch
1382
+ * @status stable
1383
+ * @since 2.0
1384
+ *
1385
+ * @slot - The switch's label.
1386
+ * @slot help-text - Text that describes how to use the switch. Alternatively, you can use the `help-text` attribute.
1387
+ *
1388
+ * @event syn-blur - Emitted when the control loses focus.
1389
+ * @event syn-change - Emitted when the control's checked state changes.
1390
+ * @event syn-input - Emitted when the control receives input.
1391
+ * @event syn-focus - Emitted when the control gains focus.
1392
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
1393
+ *
1394
+ * @csspart base - The component's base wrapper.
1395
+ * @csspart control - The control that houses the switch's thumb.
1396
+ * @csspart thumb - The switch's thumb.
1397
+ * @csspart label - The switch's label.
1398
+ * @csspart form-control-help-text - The help text's wrapper.
1399
+ *
1400
+ * @cssproperty --width - The width of the switch.
1401
+ * @cssproperty --height - The height of the switch.
1402
+ * @cssproperty --thumb-size - The size of the thumb.
1403
+ */ export type SynSwitchJSXElement = SynCustomElement<SynSwitch, [
1404
+ [
1405
+ 'syn-blur',
1406
+ SynBlurEvent
1407
+ ],
1408
+ [
1409
+ 'syn-change',
1410
+ SynChangeEvent
1411
+ ],
1412
+ [
1413
+ 'syn-input',
1414
+ SynInputEvent
1415
+ ],
1416
+ [
1417
+ 'syn-focus',
1418
+ SynFocusEvent
1419
+ ],
1420
+ [
1421
+ 'syn-invalid',
1422
+ SynInvalidEvent
1423
+ ]
1424
+ ]>;
1425
+ /**
1426
+ * @summary Tabs are used inside [tab groups](/components/tab-group) to represent and activate [tab panels](/components/tab-panel).
1427
+ * @documentation https://synergy.style/components/tab
1428
+ * @status stable
1429
+ * @since 2.0
1430
+ *
1431
+ * @dependency syn-icon-button
1432
+ *
1433
+ * @slot - The tab's label.
1434
+ *
1435
+ * @event syn-close - Emitted when the tab is closable and the close button is activated.
1436
+ *
1437
+ * @csspart base - The component's base wrapper.
1438
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
1439
+ * @csspart close-button__base - The close button's exported `base` part.
1440
+ */ export type SynTabJSXElement = SynCustomElement<SynTab, [
1441
+ ['syn-close', SynCloseEvent]
1442
+ ]>;
1443
+ /**
1444
+ * @summary Tab groups organize content into a container that shows one section at a time.
1445
+ * @documentation https://synergy.style/components/tab-group
1446
+ * @status stable
1447
+ * @since 2.0
1448
+ *
1449
+ * @dependency syn-icon-button
1450
+ *
1451
+ * @slot - Used for grouping tab panels in the tab group. Must be `<syn-tab-panel>` elements.
1452
+ * @slot nav - Used for grouping tabs in the tab group. Must be `<syn-tab>` elements.
1453
+ *
1454
+ * @event {{ name: String }} syn-tab-show - Emitted when a tab is shown. The payload of the event returns the "panel" attribute of the shown tab.
1455
+ * @event {{ name: String }} syn-tab-hide - Emitted when a tab is hidden. The payload of the event returns the "panel" attribute of the hidden tab.
1456
+ *
1457
+ * @csspart base - The component's base wrapper.
1458
+ * @csspart nav - The tab group's navigation container where tabs are slotted in.
1459
+ * @csspart tabs - The container that wraps the tabs.
1460
+ * @csspart active-tab-indicator - The line that highlights the currently selected tab.
1461
+ * @csspart body - The tab group's body where tab panels are slotted in.
1462
+ * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<syn-icon-button>`.
1463
+ * @csspart scroll-button--start - The starting scroll button.
1464
+ * @csspart scroll-button--end - The ending scroll button.
1465
+ * @csspart scroll-button__base - The scroll button's exported `base` part.
1466
+ *
1467
+ * @cssproperty --indicator-color - The color of the active tab indicator.
1468
+ * @cssproperty --indicator-width - The width of the active tab indicator.
1469
+ * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).
1470
+ * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).
1471
+ */ export type SynTabGroupJSXElement = SynCustomElement<SynTabGroup, [
1472
+ ['syn-tab-show', SynTabShowEvent],
1473
+ ['syn-tab-hide', SynTabHideEvent]
1474
+ ]>;
1475
+ /**
1476
+ * @summary Tab panels are used inside [tab groups](/components/tab-group) to display tabbed content.
1477
+ * @documentation https://synergy.style/components/tab-panel
1478
+ * @status stable
1479
+ * @since 2.0
1480
+ *
1481
+ * @slot - The tab panel's content.
1482
+ *
1483
+ * @csspart base - The component's base wrapper.
1484
+ *
1485
+ * @cssproperty --padding - The tab panel's padding.
1486
+ */ export type SynTabPanelJSXElement = SynCustomElement<SynTabPanel, []>;
1487
+ /**
1488
+ * @summary Tags are used as labels to organize things or to indicate a selection.
1489
+ * @documentation https://synergy.style/components/tag
1490
+ * @status stable
1491
+ * @since 2.0
1492
+ *
1493
+ * @dependency syn-icon-button
1494
+ *
1495
+ * @slot - The tag's content.
1496
+ *
1497
+ * @event syn-remove - Emitted when the remove button is activated.
1498
+ *
1499
+ * @csspart base - The component's base wrapper.
1500
+ * @csspart content - The tag's content.
1501
+ * @csspart remove-button - The tag's remove button, an `<syn-icon-button>`.
1502
+ * @csspart remove-button__base - The remove button's exported `base` part.
1503
+ */ export type SynTagJSXElement = SynCustomElement<SynTag, [
1504
+ ['syn-remove', SynRemoveEvent]
1505
+ ]>;
1506
+ /**
1507
+ * @summary Textareas collect data from the user and allow multiple lines of text.
1508
+ * @documentation https://synergy.style/components/textarea
1509
+ * @status stable
1510
+ * @since 2.0
1511
+ *
1512
+ * @slot label - The textarea's label. Alternatively, you can use the `label` attribute.
1513
+ * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
1514
+ *
1515
+ * @event syn-blur - Emitted when the control loses focus.
1516
+ * @event syn-change - Emitted when an alteration to the control's value is committed by the user.
1517
+ * @event syn-focus - Emitted when the control gains focus.
1518
+ * @event syn-input - Emitted when the control receives input.
1519
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
1520
+ *
1521
+ * @csspart form-control - The form control that wraps the label, input, and help text.
1522
+ * @csspart form-control-label - The label's wrapper.
1523
+ * @csspart form-control-input - The input's wrapper.
1524
+ * @csspart form-control-help-text - The help text's wrapper.
1525
+ * @csspart base - The component's base wrapper.
1526
+ * @csspart textarea - The internal `<textarea>` control.
1527
+ */ export type SynTextareaJSXElement = SynCustomElement<SynTextarea, [
1528
+ [
1529
+ 'syn-blur',
1530
+ SynBlurEvent
1531
+ ],
1532
+ [
1533
+ 'syn-change',
1534
+ SynChangeEvent
1535
+ ],
1536
+ [
1537
+ 'syn-focus',
1538
+ SynFocusEvent
1539
+ ],
1540
+ [
1541
+ 'syn-input',
1542
+ SynInputEvent
1543
+ ],
1544
+ [
1545
+ 'syn-invalid',
1546
+ SynInvalidEvent
1547
+ ]
1548
+ ]>;
1549
+ /**
1550
+ * @summary Tooltips display additional information based on a specific action.
1551
+ * @documentation https://synergy.style/components/tooltip
1552
+ * @status stable
1553
+ * @since 2.0
1554
+ *
1555
+ * @dependency syn-popup
1556
+ *
1557
+ * @slot - The tooltip's target element. Avoid slotting in more than one element, as subsequent ones will be ignored.
1558
+ * @slot content - The content to render in the tooltip. Alternatively, you can use the `content` attribute.
1559
+ *
1560
+ * @event syn-show - Emitted when the tooltip begins to show.
1561
+ * @event syn-after-show - Emitted after the tooltip has shown and all animations are complete.
1562
+ * @event syn-hide - Emitted when the tooltip begins to hide.
1563
+ * @event syn-after-hide - Emitted after the tooltip has hidden and all animations are complete.
1564
+ *
1565
+ * @csspart base - The component's base wrapper, an `<syn-popup>` element.
1566
+ * @csspart base__popup - The popup's exported `popup` part. Use this to target the tooltip's popup container.
1567
+ * @csspart base__arrow - The popup's exported `arrow` part. Use this to target the tooltip's arrow.
1568
+ * @csspart body - The tooltip's body where its content is rendered.
1569
+ *
1570
+ * @cssproperty --max-width - The maximum width of the tooltip before its content will wrap.
1571
+ * @cssproperty --hide-delay - The amount of time to wait before hiding the tooltip when hovering.
1572
+ * @cssproperty --show-delay - The amount of time to wait before showing the tooltip when hovering.
1573
+ *
1574
+ * @animation tooltip.show - The animation to use when showing the tooltip.
1575
+ * @animation tooltip.hide - The animation to use when hiding the tooltip.
1576
+ */ export type SynTooltipJSXElement = SynCustomElement<SynTooltip, [
1577
+ [
1578
+ 'syn-show',
1579
+ SynShowEvent
1580
+ ],
1581
+ [
1582
+ 'syn-after-show',
1583
+ SynAfterShowEvent
1584
+ ],
1585
+ [
1586
+ 'syn-hide',
1587
+ SynHideEvent
1588
+ ],
1589
+ [
1590
+ 'syn-after-hide',
1591
+ SynAfterHideEvent
1592
+ ]
1593
+ ]>;
1594
+ /**
1595
+ * @summary Validate provides form field validation messages in a unified way.
1596
+ * It does this by using [the native browser validation](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation)
1597
+ * and showing the validation message in a consistent, user defined way.
1598
+ *
1599
+ * @dependency syn-alert
1600
+ *
1601
+ * @slot - The form field that should be validated.
1602
+ * Avoid slotting in more than one element, as subsequent ones will be ignored.
1603
+ *
1604
+ * @csspart base - The component's base wrapper.
1605
+ * @csspart input-wrapper - The container that wraps the form field.
1606
+ * @csspart alert - The syn-alert that is shown when the variant is set to "inline".
1607
+ * @csspart alert__base - The container that wraps the alert.
1608
+ * @csspart alert__message - The container that wraps the alert message.
1609
+ * @csspart alert__icon - The container that wraps the alert icon.
1610
+ */ export type SynValidateJSXElement = SynCustomElement<SynValidate, []>;
1611
+ declare module 'react' {
1612
+ namespace JSX {
1613
+ interface IntrinsicElements {
1614
+ /**
1615
+ * @summary Accordions provide the ability to group a list of `<syn-details>`.
1616
+ *
1617
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-accordion--docs
1618
+ * @status stable
1619
+ * @since 1.23.0
1620
+ *
1621
+ * @slot - The accordion's main content. Must be `<syn-details />` elements.
1622
+ *
1623
+ * @csspart base - The component's base wrapper.
1624
+ */ 'syn-accordion': SynAccordionJSXElement;
1625
+ /**
1626
+ * @summary Alerts are used to display important messages inline or as toast notifications.
1627
+ * @documentation https://synergy.style/components/alert
1628
+ * @status stable
1629
+ * @since 2.0
1630
+ *
1631
+ * @dependency syn-icon-button
1632
+ *
1633
+ * @slot - The alert's main content.
1634
+ * @slot icon - An icon to show in the alert. Works best with `<syn-icon>`.
1635
+ *
1636
+ * @event syn-show - Emitted when the alert opens.
1637
+ * @event syn-after-show - Emitted after the alert opens and all animations are complete.
1638
+ * @event syn-hide - Emitted when the alert closes.
1639
+ * @event syn-after-hide - Emitted after the alert closes and all animations are complete.
1640
+ *
1641
+ * @csspart base - The component's base wrapper.
1642
+ * @csspart icon - The container that wraps the optional icon.
1643
+ * @csspart message - The container that wraps the alert's main content.
1644
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
1645
+ * @csspart close-button__base - The close button's exported `base` part.
1646
+ *
1647
+ * @animation alert.show - The animation to use when showing the alert.
1648
+ * @animation alert.hide - The animation to use when hiding the alert.
1649
+ */ 'syn-alert': SynAlertJSXElement;
1650
+ /**
1651
+ * @summary Badges are used to draw attention and display statuses or counts.
1652
+ * @documentation https://synergy.style/components/badge
1653
+ * @status stable
1654
+ * @since 2.0
1655
+ *
1656
+ * @slot - The badge's content.
1657
+ *
1658
+ * @csspart base - The component's base wrapper.
1659
+ */ 'syn-badge': SynBadgeJSXElement;
1660
+ /**
1661
+ * @summary Breadcrumbs provide a group of links so users can easily navigate a website's hierarchy.
1662
+ * @documentation https://synergy.style/components/breadcrumb
1663
+ * @status stable
1664
+ * @since 2.0
1665
+ *
1666
+ * @slot - One or more breadcrumb items to display.
1667
+ * @slot separator - The separator to use between breadcrumb items. Works best with `<syn-icon>`.
1668
+ *
1669
+ * @dependency syn-icon
1670
+ *
1671
+ * @csspart base - The component's base wrapper.
1672
+ */ 'syn-breadcrumb': SynBreadcrumbJSXElement;
1673
+ /**
1674
+ * @summary Breadcrumb Items are used inside [breadcrumbs](/components/breadcrumb) to represent different links.
1675
+ * @documentation https://synergy.style/components/breadcrumb-item
1676
+ * @status stable
1677
+ * @since 2.0
1678
+ *
1679
+ * @slot - The breadcrumb item's label.
1680
+ * @slot prefix - An optional prefix, usually an icon or icon button.
1681
+ * @slot suffix - An optional suffix, usually an icon or icon button.
1682
+ * @slot separator - The separator to use for the breadcrumb item. This will only change the separator for this item. If
1683
+ * you want to change it for all items in the group, set the separator on `<syn-breadcrumb>` instead.
1684
+ *
1685
+ * @csspart base - The component's base wrapper.
1686
+ * @csspart label - The breadcrumb item's label.
1687
+ * @csspart prefix - The container that wraps the prefix.
1688
+ * @csspart suffix - The container that wraps the suffix.
1689
+ * @csspart separator - The container that wraps the separator.
1690
+ */ 'syn-breadcrumb-item': SynBreadcrumbItemJSXElement;
1691
+ /**
1692
+ * @summary Buttons represent actions that are available to the user.
1693
+ * @documentation https://synergy.style/components/button
1694
+ * @status stable
1695
+ * @since 2.0
1696
+ *
1697
+ * @dependency syn-icon
1698
+ * @dependency syn-spinner
1699
+ *
1700
+ * @event syn-blur - Emitted when the button loses focus.
1701
+ * @event syn-focus - Emitted when the button gains focus.
1702
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
1703
+ *
1704
+ * @slot - The button's label.
1705
+ * @slot prefix - A presentational prefix icon or similar element.
1706
+ * @slot suffix - A presentational suffix icon or similar element.
1707
+ *
1708
+ * @csspart base - The component's base wrapper.
1709
+ * @csspart prefix - The container that wraps the prefix.
1710
+ * @csspart label - The button's label.
1711
+ * @csspart suffix - The container that wraps the suffix.
1712
+ * @csspart caret - The button's caret icon, an `<syn-icon>` element.
1713
+ * @csspart spinner - The spinner that shows when the button is in the loading state.
1714
+ */ 'syn-button': SynButtonJSXElement;
1715
+ /**
1716
+ * @summary Button groups can be used to group related buttons into sections.
1717
+ * @documentation https://synergy.style/components/button-group
1718
+ * @status stable
1719
+ * @since 2.0
1720
+ *
1721
+ * @slot - One or more `<syn-button>` elements to display in the button group.
1722
+ *
1723
+ * @csspart base - The component's base wrapper.
1724
+ */ 'syn-button-group': SynButtonGroupJSXElement;
1725
+ /**
1726
+ * @summary Cards can be used to group related subjects in a container.
1727
+ * @documentation https://synergy.style/components/card
1728
+ * @status stable
1729
+ * @since 2.0
1730
+ *
1731
+ * @slot - The card's main content.
1732
+ * @slot header - An optional header for the card.
1733
+ * @slot footer - An optional footer for the card.
1734
+ * @slot image - An optional image to render at the start of the card.
1735
+ *
1736
+ * @csspart base - The component's base wrapper.
1737
+ * @csspart image - The container that wraps the card's image.
1738
+ * @csspart header - The container that wraps the card's header.
1739
+ * @csspart body - The container that wraps the card's main content.
1740
+ * @csspart footer - The container that wraps the card's footer.
1741
+ *
1742
+ * @cssproperty --border-color - The card's border color, including borders that occur inside the card.
1743
+ * @cssproperty --border-radius - The border radius for the card's edges.
1744
+ * @cssproperty --border-width - The width of the card's borders.
1745
+ * @cssproperty --padding - The padding to use for the card's sections.
1746
+ */ 'syn-card': SynCardJSXElement;
1747
+ /**
1748
+ * @summary Checkboxes allow the user to toggle an option on or off.
1749
+ * @documentation https://synergy.style/components/checkbox
1750
+ * @status stable
1751
+ * @since 2.0
1752
+ *
1753
+ * @dependency syn-icon
1754
+ *
1755
+ * @slot - The checkbox's label.
1756
+ * @slot help-text - Text that describes how to use the checkbox. Alternatively, you can use the `help-text` attribute.
1757
+ *
1758
+ * @event syn-blur - Emitted when the checkbox loses focus.
1759
+ * @event syn-change - Emitted when the checked state changes.
1760
+ * @event syn-focus - Emitted when the checkbox gains focus.
1761
+ * @event syn-input - Emitted when the checkbox receives input.
1762
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
1763
+ *
1764
+ * @csspart base - The component's base wrapper.
1765
+ * @csspart control - The square container that wraps the checkbox's checked state.
1766
+ * @csspart control--checked - Matches the control part when the checkbox is checked.
1767
+ * @csspart control--indeterminate - Matches the control part when the checkbox is indeterminate.
1768
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
1769
+ * @csspart indeterminate-icon - The indeterminate icon, an `<syn-icon>` element.
1770
+ * @csspart label - The container that wraps the checkbox's label.
1771
+ * @csspart form-control-help-text - The help text's wrapper.
1772
+ */ 'syn-checkbox': SynCheckboxJSXElement;
1773
+ /**
1774
+ * @summary Comboboxes allow you to choose items from a menu of predefined options.
1775
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-combobox--docs
1776
+ * @status stable
1777
+ *
1778
+ * @dependency syn-icon
1779
+ * @dependency syn-popup
1780
+ *
1781
+ * @slot - The listbox options. Must be `<syn-option>` elements.
1782
+ * You can use `<syn-optgroup>`'s to group items visually.
1783
+ * @slot label - The combobox's label. Alternatively, you can use the `label` attribute.
1784
+ * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.
1785
+ * @slot suffix - Used to append a presentational icon or similar element to the combobox.
1786
+ * @slot clear-icon - An icon to use in lieu of the default clear icon.
1787
+ * @slot expand-icon - The icon to show when the control is expanded and collapsed.
1788
+ * Rotates on open and close.
1789
+ * @slot help-text - Text that describes how to use the combobox.
1790
+ * Alternatively, you can use the `help-text` attribute.
1791
+ *
1792
+ * @event syn-change - Emitted when the control's value changes.
1793
+ * @event syn-clear - Emitted when the control's value is cleared.
1794
+ * @event syn-input - Emitted when the control receives input.
1795
+ * @event syn-focus - Emitted when the control gains focus.
1796
+ * @event syn-blur - Emitted when the control loses focus.
1797
+ * @event syn-show - Emitted when the combobox's menu opens.
1798
+ * @event syn-after-show - Emitted after the combobox's menu opens and all animations are complete.
1799
+ * @event syn-hide - Emitted when the combobox's menu closes.
1800
+ * @event syn-after-hide - Emitted after the combobox's menu closes and all animations are complete.
1801
+ * @event syn-invalid - Emitted when the form control has been checked for validity
1802
+ * and its constraints aren't satisfied.
1803
+ * @event syn-error - Emitted when the combobox menu fails to open.
1804
+ *
1805
+ * @csspart form-control - The form control that wraps the label, combobox, and help text.
1806
+ * @csspart form-control-label - The label's wrapper.
1807
+ * @csspart form-control-input - The combobox's wrapper.
1808
+ * @csspart form-control-help-text - The help text's wrapper.
1809
+ * @csspart combobox - The container the wraps the prefix, combobox, clear icon, and expand button.
1810
+ * @csspart prefix - The container that wraps the prefix slot.
1811
+ * @csspart suffix - The container that wraps the suffix slot.
1812
+ * @csspart display-input - The element that displays the selected option's label,
1813
+ * an `<input>` element.
1814
+ * @csspart listbox - The listbox container where the options are slotted
1815
+ * and the filtered options list exists.
1816
+ * @csspart filtered-listbox - The container that wraps the filtered options.
1817
+ * @csspart clear-button - The clear button.
1818
+ * @csspart expand-icon - The container that wraps the expand icon.
1819
+ *
1820
+ * @animation combobox.show - The animation to use when showing the combobox.
1821
+ * @animation combobox.hide - The animation to use when hiding the combobox.
1822
+ */ 'syn-combobox': SynComboboxJSXElement;
1823
+ /**
1824
+ * @summary Details show a brief summary and expand to show additional content.
1825
+ * @documentation https://synergy.style/components/details
1826
+ * @status stable
1827
+ * @since 2.0
1828
+ *
1829
+ * @dependency syn-icon
1830
+ *
1831
+ * @slot - The details' main content.
1832
+ * @slot summary - The details' summary. Alternatively, you can use the `summary` attribute.
1833
+ * @slot expand-icon - Optional expand icon to use instead of the default. Works best with `<syn-icon>`.
1834
+ * @slot collapse-icon - Optional collapse icon to use instead of the default. Works best with `<syn-icon>`.
1835
+ *
1836
+ * @event syn-show - Emitted when the details opens.
1837
+ * @event syn-after-show - Emitted after the details opens and all animations are complete.
1838
+ * @event syn-hide - Emitted when the details closes.
1839
+ * @event syn-after-hide - Emitted after the details closes and all animations are complete.
1840
+ *
1841
+ * @csspart base - The component's base wrapper.
1842
+ * @csspart header - The header that wraps both the summary and the expand/collapse icon.
1843
+ * @csspart summary - The container that wraps the summary.
1844
+ * @csspart summary-icon - The container that wraps the expand/collapse icons.
1845
+ * @csspart content - The details content.
1846
+ *
1847
+ * @animation details.show - The animation to use when showing details. You can use `height: auto` with this animation.
1848
+ * @animation details.hide - The animation to use when hiding details. You can use `height: auto` with this animation.
1849
+ */ 'syn-details': SynDetailsJSXElement;
1850
+ /**
1851
+ * @summary Dialogs, sometimes called "modals", appear above the page and require the user's immediate attention.
1852
+ * @documentation https://synergy.style/components/dialog
1853
+ * @status stable
1854
+ * @since 2.0
1855
+ *
1856
+ * @dependency syn-icon-button
1857
+ *
1858
+ * @slot - The dialog's main content.
1859
+ * @slot label - The dialog's label. Alternatively, you can use the `label` attribute.
1860
+ * @slot header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.
1861
+ * @slot footer - The dialog's footer, usually one or more buttons representing various options.
1862
+ *
1863
+ * @event syn-show - Emitted when the dialog opens.
1864
+ * @event syn-after-show - Emitted after the dialog opens and all animations are complete.
1865
+ * @event syn-hide - Emitted when the dialog closes.
1866
+ * @event syn-after-hide - Emitted after the dialog closes and all animations are complete.
1867
+ * @event syn-initial-focus - Emitted when the dialog opens and is ready to receive focus. Calling
1868
+ * `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.
1869
+ * @event {{ source: 'close-button' | 'keyboard' | 'overlay' }} syn-request-close - Emitted when the user attempts to
1870
+ * close the dialog by clicking the close button, clicking the overlay, or pressing escape. Calling
1871
+ * `event.preventDefault()` will keep the dialog open. Avoid using this unless closing the dialog will result in
1872
+ * destructive behavior such as data loss.
1873
+ *
1874
+ * @csspart base - The component's base wrapper.
1875
+ * @csspart overlay - The overlay that covers the screen behind the dialog.
1876
+ * @csspart panel - The dialog's panel (where the dialog and its content are rendered).
1877
+ * @csspart header - The dialog's header. This element wraps the title and header actions.
1878
+ * @csspart header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.
1879
+ * @csspart title - The dialog's title.
1880
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
1881
+ * @csspart close-button__base - The close button's exported `base` part.
1882
+ * @csspart body - The dialog's body.
1883
+ * @csspart footer - The dialog's footer.
1884
+ *
1885
+ * @cssproperty --width - The preferred width of the dialog. Note that the dialog will shrink to accommodate smaller screens.
1886
+ * @cssproperty --header-spacing - The amount of padding to use for the header.
1887
+ * @cssproperty --body-spacing - The amount of padding to use for the body.
1888
+ * @cssproperty --footer-spacing - The amount of padding to use for the footer.
1889
+ *
1890
+ * @animation dialog.show - The animation to use when showing the dialog.
1891
+ * @animation dialog.hide - The animation to use when hiding the dialog.
1892
+ * @animation dialog.denyClose - The animation to use when a request to close the dialog is denied.
1893
+ * @animation dialog.overlay.show - The animation to use when showing the dialog's overlay.
1894
+ * @animation dialog.overlay.hide - The animation to use when hiding the dialog's overlay.
1895
+ *
1896
+ * @property modal - Exposes the internal modal utility that controls focus trapping. To temporarily disable focus
1897
+ * trapping and allow third-party modals spawned from an active Synergy modal, call `modal.activateExternal()` when
1898
+ * the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Synergy's focus trapping.
1899
+ */ 'syn-dialog': SynDialogJSXElement;
1900
+ /**
1901
+ * @summary Dividers are used to visually separate or group elements.
1902
+ * @documentation https://synergy.style/components/divider
1903
+ * @status stable
1904
+ * @since 2.0
1905
+ *
1906
+ * @cssproperty --color - The color of the divider.
1907
+ * @cssproperty --width - The width of the divider.
1908
+ * @cssproperty --spacing - The spacing of the divider.
1909
+ */ 'syn-divider': SynDividerJSXElement;
1910
+ /**
1911
+ * @summary Drawers slide in from a container to expose additional options and information.
1912
+ * @documentation https://synergy.style/components/drawer
1913
+ * @status stable
1914
+ * @since 2.0
1915
+ *
1916
+ * @dependency syn-icon-button
1917
+ *
1918
+ * @slot - The drawer's main content.
1919
+ * @slot label - The drawer's label. Alternatively, you can use the `label` attribute.
1920
+ * @slot header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.
1921
+ * @slot footer - The drawer's footer, usually one or more buttons representing various options.
1922
+ *
1923
+ * @event syn-show - Emitted when the drawer opens.
1924
+ * @event syn-after-show - Emitted after the drawer opens and all animations are complete.
1925
+ * @event syn-hide - Emitted when the drawer closes.
1926
+ * @event syn-after-hide - Emitted after the drawer closes and all animations are complete.
1927
+ * @event syn-initial-focus - Emitted when the drawer opens and is ready to receive focus. Calling
1928
+ * `event.preventDefault()` will prevent focusing and allow you to set it on a different element, such as an input.
1929
+ * @event {{ source: 'close-button' | 'keyboard' | 'overlay' }} syn-request-close - Emitted when the user attempts to
1930
+ * close the drawer by clicking the close button, clicking the overlay, or pressing escape. Calling
1931
+ * `event.preventDefault()` will keep the drawer open. Avoid using this unless closing the drawer will result in
1932
+ * destructive behavior such as data loss.
1933
+ *
1934
+ * @csspart base - The component's base wrapper.
1935
+ * @csspart overlay - The overlay that covers the screen behind the drawer.
1936
+ * @csspart panel - The drawer's panel (where the drawer and its content are rendered).
1937
+ * @csspart header - The drawer's header. This element wraps the title and header actions.
1938
+ * @csspart header-actions - Optional actions to add to the header. Works best with `<syn-icon-button>`.
1939
+ * @csspart title - The drawer's title.
1940
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
1941
+ * @csspart close-button__base - The close button's exported `base` part.
1942
+ * @csspart body - The drawer's body.
1943
+ * @csspart footer - The drawer's footer.
1944
+ *
1945
+ * @cssproperty --size - The preferred size of the drawer. This will be applied to the drawer's width or height
1946
+ * depending on its `placement`. Note that the drawer will shrink to accommodate smaller screens.
1947
+ * @cssproperty --header-spacing - The amount of padding to use for the header.
1948
+ * @cssproperty --body-spacing - The amount of padding to use for the body.
1949
+ * @cssproperty --footer-spacing - The amount of padding to use for the footer.
1950
+ *
1951
+ * @animation drawer.showTop - The animation to use when showing a drawer with `top` placement.
1952
+ * @animation drawer.showEnd - The animation to use when showing a drawer with `end` placement.
1953
+ * @animation drawer.showBottom - The animation to use when showing a drawer with `bottom` placement.
1954
+ * @animation drawer.showStart - The animation to use when showing a drawer with `start` placement.
1955
+ * @animation drawer.hideTop - The animation to use when hiding a drawer with `top` placement.
1956
+ * @animation drawer.hideEnd - The animation to use when hiding a drawer with `end` placement.
1957
+ * @animation drawer.hideBottom - The animation to use when hiding a drawer with `bottom` placement.
1958
+ * @animation drawer.hideStart - The animation to use when hiding a drawer with `start` placement.
1959
+ * @animation drawer.denyClose - The animation to use when a request to close the drawer is denied.
1960
+ * @animation drawer.overlay.show - The animation to use when showing the drawer's overlay.
1961
+ * @animation drawer.overlay.hide - The animation to use when hiding the drawer's overlay.
1962
+ *
1963
+ * @property modal - Exposes the internal modal utility that controls focus trapping. To temporarily disable focus
1964
+ * trapping and allow third-party modals spawned from an active Synergy modal, call `modal.activateExternal()` when
1965
+ * the third-party modal opens. Upon closing, call `modal.deactivateExternal()` to restore Synergy's focus trapping.
1966
+ */ 'syn-drawer': SynDrawerJSXElement;
1967
+ /**
1968
+ * @summary Dropdowns expose additional content that "drops down" in a panel.
1969
+ * @documentation https://synergy.style/components/dropdown
1970
+ * @status stable
1971
+ * @since 2.0
1972
+ *
1973
+ * @dependency syn-popup
1974
+ *
1975
+ * @slot - The dropdown's main content.
1976
+ * @slot trigger - The dropdown's trigger, usually a `<syn-button>` element.
1977
+ *
1978
+ * @event syn-show - Emitted when the dropdown opens.
1979
+ * @event syn-after-show - Emitted after the dropdown opens and all animations are complete.
1980
+ * @event syn-hide - Emitted when the dropdown closes.
1981
+ * @event syn-after-hide - Emitted after the dropdown closes and all animations are complete.
1982
+ *
1983
+ * @csspart base - The component's base wrapper, an `<syn-popup>` element.
1984
+ * @csspart base__popup - The popup's exported `popup` part. Use this to target the tooltip's popup container.
1985
+ * @csspart trigger - The container that wraps the trigger.
1986
+ * @csspart panel - The panel that gets shown when the dropdown is open.
1987
+ *
1988
+ * @animation dropdown.show - The animation to use when showing the dropdown.
1989
+ * @animation dropdown.hide - The animation to use when hiding the dropdown.
1990
+ */ 'syn-dropdown': SynDropdownJSXElement;
1991
+ /**
1992
+ * @summary File controls allow selecting an arbitrary number of files for uploading.
1993
+ * @status stable
1994
+ *
1995
+ * @dependency syn-button
1996
+ * @dependency syn-icon
1997
+ *
1998
+ * @slot label - The file control's label. Alternatively, you can use the `label` attribute.
1999
+ * @slot help-text - Text that describes how to use the file control.
2000
+ * Alternatively, you can use the `help-text` attribute.
2001
+ * @slot droparea-icon - Optional droparea icon to use instead of the default.
2002
+ * Works best with `<syn-icon>`.
2003
+ * @slot trigger - Optional content to be used as trigger instead of the default content.
2004
+ * Opening the file dialog on click and as well as drag and drop will work for this content.
2005
+ * Following attributes will no longer work: *label*, *droparea*, *help-text*, *size*,
2006
+ * *hide-value*. Also if using the disabled attribute, the disabled styling will not be
2007
+ * applied and must be taken care of yourself.
2008
+ *
2009
+ * @event syn-blur - Emitted when the control loses focus.
2010
+ * @event syn-change - Emitted when an alteration to the control's value is committed by the user.
2011
+ * @event syn-error - Emitted when multiple files are selected via drag and drop, without
2012
+ * the `multiple` property being set.
2013
+ * @event syn-focus - Emitted when the control gains focus.
2014
+ * @event syn-input - Emitted when the control receives input.
2015
+ *
2016
+ * @csspart form-control - The form control that wraps the label, input, and help text.
2017
+ * @csspart form-control-label - The label's wrapper.
2018
+ * @csspart form-control-input - The input's wrapper.
2019
+ * @csspart form-control-help-text - The help text's wrapper.
2020
+ * @csspart button-wrapper - The wrapper around the button and text value.
2021
+ * @csspart button - The syn-button acting as a file input.
2022
+ * @csspart button__base - The syn-button's exported `base` part.
2023
+ * @csspart value - The chosen files or placeholder text for the file input.
2024
+ * @csspart droparea - The element wrapping the drop zone.
2025
+ * @csspart droparea-background - The background of the drop zone.
2026
+ * @csspart droparea-icon - The container that wraps the icon for the drop zone.
2027
+ * @csspart droparea-value - The text for the drop zone.
2028
+ * @csspart trigger - The container that wraps the trigger.
2029
+ *
2030
+ * @animation file.iconDrop - The animation to use for the file icon
2031
+ * when a file is dropped
2032
+ * @animation file.text.disappear - The disappear animation to use for the file placeholder text
2033
+ * when a file is dropped
2034
+ * @animation file.text.appear - The appear animation to use for the file placeholder text
2035
+ * when a file is dropped
2036
+ */ 'syn-file': SynFileJSXElement;
2037
+ /**
2038
+ * @summary The <syn-header /> element provides a generic application header
2039
+ * that can be used to add applications name, toolbar and primary navigation.
2040
+ *
2041
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-header--docs
2042
+ * @status stable
2043
+ * @since 1.10.0
2044
+ *
2045
+ * @slot label - The label for the header
2046
+ * @slot logo - The logo that should be displayed. Will fall back to the SICK logo if not provided
2047
+ * @slot meta-navigation - The meta-navigation is used to add various application toolbar icons
2048
+ * Best used with `<syn-icon-button />` and `<syn-drop-down />`
2049
+ * @slot navigation - This slot can be used to add an optional horizontal navigation
2050
+ * @slot open-burger-menu-icon - An icon to use in lieu of the default burger-menu=open state.
2051
+ * The default close icon is a 'x'.
2052
+ * @slot closed-burger-menu-icon - An icon to use in lieu of the default burger-menu=closed state.
2053
+ * The default open icon is a burger menu.
2054
+ *
2055
+ * @event syn-burger-menu-closed - Emitted when the burger menu is toggled to closed
2056
+ * @event syn-burger-menu-hidden - Emitted when the burger menu is toggled to hidden
2057
+ * @event syn-burger-menu-open - Emitted when the burger menu is toggled to open
2058
+ *
2059
+ * @csspart base - The component's base wrapper
2060
+ * @csspart content - The wrapper most content items reside
2061
+ * @csspart logo - The wrapper the application logo resides in
2062
+ * @csspart label - The element wrapping the application name
2063
+ * @csspart meta-navigation - The Item wrapping the optional application menu
2064
+ * @csspart navigation - The wrapper that is holding the optional top navigation section
2065
+ * @csspart burger-menu-toggle-button - The button that toggles the burger menu
2066
+ */ 'syn-header': SynHeaderJSXElement;
2067
+ /**
2068
+ * @summary Icons are symbols that can be used to represent various options within an application.
2069
+ * @documentation https://synergy.style/components/icon
2070
+ * @status stable
2071
+ * @since 2.0
2072
+ *
2073
+ * @event syn-load - Emitted when the icon has loaded. When using `spriteSheet: true` this will not emit.
2074
+ * @event syn-error - Emitted when the icon fails to load due to an error. When using `spriteSheet: true` this will not emit.
2075
+ *
2076
+ * @csspart svg - The internal SVG element.
2077
+ * @csspart use - The <use> element generated when using `spriteSheet: true`
2078
+ */ 'syn-icon': SynIconJSXElement;
2079
+ /**
2080
+ * @summary Icons buttons are simple, icon-only buttons that can be used for actions and in toolbars.
2081
+ * @documentation https://synergy.style/components/icon-button
2082
+ * @status stable
2083
+ * @since 2.0
2084
+ *
2085
+ * @dependency syn-icon
2086
+ *
2087
+ * @event syn-blur - Emitted when the icon button loses focus.
2088
+ * @event syn-focus - Emitted when the icon button gains focus.
2089
+ *
2090
+ * @csspart base - The component's base wrapper.
2091
+ */ 'syn-icon-button': SynIconButtonJSXElement;
2092
+ /**
2093
+ * @summary Inputs collect data from the user.
2094
+ * @documentation https://synergy.style/components/input
2095
+ * @status stable
2096
+ * @since 2.0
2097
+ *
2098
+ * @dependency syn-icon
2099
+ * @dependency syn-divider
2100
+ *
2101
+ * @slot label - The input's label. Alternatively, you can use the `label` attribute.
2102
+ * @slot prefix - Used to prepend a presentational icon or similar element to the input.
2103
+ * @slot suffix - Used to append a presentational icon or similar element to the input.
2104
+ * @slot clear-icon - An icon to use in lieu of the default clear icon.
2105
+ * @slot show-password-icon - An icon to use in lieu of the default show password icon.
2106
+ * @slot hide-password-icon - An icon to use in lieu of the default hide password icon.
2107
+ * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
2108
+ * @slot increment-number-stepper - An icon to use in lieu of the default increment number stepper icon.
2109
+ * @slot decrement-number-stepper - An icon to use in lieu of the default decrement number stepper icon.
2110
+ *
2111
+ * @event syn-blur - Emitted when the control loses focus.
2112
+ * @event syn-change - Emitted when an alteration to the control's value is committed by the user.
2113
+ * @event syn-clear - Emitted when the clear button is activated.
2114
+ * @event syn-focus - Emitted when the control gains focus.
2115
+ * @event syn-input - Emitted when the control receives input.
2116
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
2117
+ *
2118
+ * @csspart form-control - The form control that wraps the label, input, and help text.
2119
+ * @csspart form-control-label - The label's wrapper.
2120
+ * @csspart form-control-input - The input's wrapper.
2121
+ * @csspart form-control-help-text - The help text's wrapper.
2122
+ * @csspart base - The component's base wrapper.
2123
+ * @csspart input - The internal `<input>` control.
2124
+ * @csspart prefix - The container that wraps the prefix.
2125
+ * @csspart clear-button - The clear button.
2126
+ * @csspart password-toggle-button - The password toggle button.
2127
+ * @csspart suffix - The container that wraps the suffix.
2128
+ * @csspart stepper - The container that wraps the number stepper.
2129
+ * @csspart decrement-number-stepper - The decrement number stepper button.
2130
+ * @csspart increment-number-stepper - The increment number stepper button.
2131
+ * @csspart divider - The divider between the increment and decrement number stepper buttons.
2132
+ */ 'syn-input': SynInputJSXElement;
2133
+ /**
2134
+ * @summary Menus provide a list of options for the user to choose from.
2135
+ * @documentation https://synergy.style/components/menu
2136
+ * @status stable
2137
+ * @since 2.0
2138
+ *
2139
+ * @slot - The menu's content, including menu items, menu labels, and dividers.
2140
+ *
2141
+ * @event {{ item: SynMenuItem }} syn-select - Emitted when a menu item is selected.
2142
+ */ 'syn-menu': SynMenuJSXElement;
2143
+ /**
2144
+ * @summary Menu items provide options for the user to pick from in a menu.
2145
+ * @documentation https://synergy.style/components/menu-item
2146
+ * @status stable
2147
+ * @since 2.0
2148
+ *
2149
+ * @dependency syn-icon
2150
+ * @dependency syn-popup
2151
+ * @dependency syn-spinner
2152
+ *
2153
+ * @slot - The menu item's label.
2154
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
2155
+ * @slot suffix - Used to append an icon or similar element to the menu item.
2156
+ * @slot submenu - Used to denote a nested menu.
2157
+ *
2158
+ * @csspart base - The component's base wrapper.
2159
+ * @csspart checked-icon - The checked icon, which is only visible when the menu item is checked.
2160
+ * @csspart prefix - The prefix container.
2161
+ * @csspart label - The menu item label.
2162
+ * @csspart suffix - The suffix container.
2163
+ * @csspart spinner - The spinner that shows when the menu item is in the loading state.
2164
+ * @csspart spinner__base - The spinner's base part.
2165
+ * @csspart submenu-icon - The submenu icon, visible only when the menu item has a submenu (not yet implemented).
2166
+ *
2167
+ * @cssproperty [--submenu-offset=-2px] - The distance submenus shift to overlap the parent menu.
2168
+ */ 'syn-menu-item': SynMenuItemJSXElement;
2169
+ /**
2170
+ * @summary Menu labels are used to describe a group of menu items.
2171
+ * @documentation https://synergy.style/components/menu-label
2172
+ * @status stable
2173
+ * @since 2.0
2174
+ *
2175
+ * @dependency syn-divider
2176
+ *
2177
+ * @slot - The menu label's content.
2178
+ *
2179
+ * @csspart base - The component's base wrapper.
2180
+ * @csspart divider - The divider that is displayed above the content
2181
+ * @csspart label - The label that is displayed below the divider
2182
+ *
2183
+ * @cssproperty --display-divider - Display property of the divider. Defaults to "block"
2184
+ */ 'syn-menu-label': SynMenuLabelJSXElement;
2185
+ /**
2186
+ * @summary Flexible button / link component that can be used to quickly build navigations.
2187
+ * Takes one of 3 forms:
2188
+ * - button (default),
2189
+ * - link (overrides button if a 'href' is provided),
2190
+ * - or accordion (overrides all other if 'children' slot is defined).
2191
+ *
2192
+ * @status stable
2193
+ * @since 1.14.0
2194
+ *
2195
+ * @dependency syn-divider
2196
+ *
2197
+ * @event syn-show - Emitted when the navigation item:
2198
+ * - has children,
2199
+ * - and is clicked while HTML details are hidden.
2200
+ *
2201
+ * @event syn-hide - Emitted when the navigation item:
2202
+ * - has children,
2203
+ * - and is clicked while HTML details are shown.
2204
+ *
2205
+ * @event syn-blur - Emitted when the button loses focus.
2206
+ * @event syn-focus - Emitted when the button gains focus.
2207
+ *
2208
+ * @slot - The navigation item's label.
2209
+ * @slot prefix - A presentational prefix icon or similar element.
2210
+ * @slot suffix - A presentational suffix icon or similar element.
2211
+ * @slot children - Slot used to provide nested child navigation elements.
2212
+ * If provided, details and summary elements will be used.
2213
+ * A chevron will be shown on the right side regardless of the chevron property.
2214
+ *
2215
+ * @csspart base - The component's base wrapper including children.
2216
+ * @csspart children - The wrapper that holds the children
2217
+ * @csspart content-wrapper - The component's content wrapper.
2218
+ * @csspart content - The component's content excluding children.
2219
+ * @csspart current-indicator - The indicator used when current is set to true
2220
+ * @csspart chevron - The container that wraps the chevron.
2221
+ * @csspart details - The details element rendered when there are children available
2222
+ * @csspart divider - The components optional top divider.
2223
+ * @csspart prefix - The container that wraps the prefix.
2224
+ * @csspart suffix - The container that wraps the suffix.
2225
+ *
2226
+ * @cssproperty --indentation - Numeric value, indicating the level the item is placed at.
2227
+ * @cssproperty --indentation-stepping - The amount of pixels each level will indent.
2228
+ * @cssproperty --display-children - Display property of the children. Defaults to "contents"
2229
+ */ 'syn-nav-item': SynNavItemJSXElement;
2230
+ /**
2231
+ * @summary The <syn-optgroup> element creates a grouping for <syn-option>s within a <syn-select>.
2232
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-optgroup--docs
2233
+ * @status stable
2234
+ * @since 1.3.0
2235
+ *
2236
+ * @dependency syn-divider
2237
+ *
2238
+ * @slot - The given options. Must be `<syn-option>` elements.
2239
+ * @slot prefix - A presentational prefix icon or similar element.
2240
+ * @slot label - The label for the optgroup
2241
+ * @slot suffix - A presentational suffix icon or similar element.
2242
+ *
2243
+ * @csspart base - The component's base wrapper.
2244
+ * @csspart label-container - The container that wraps prefix, label and base
2245
+ * @csspart divider - The divider that is displayed above the content
2246
+ * @csspart prefix - The container that wraps the prefix.
2247
+ * @csspart suffix - The container that wraps the suffix.
2248
+ * @csspart options - The container that wraps the <syn-option> elements.
2249
+ *
2250
+ * @cssproperty --display-divider - Display property of the divider. Defaults to "block"
2251
+ */ 'syn-optgroup': SynOptgroupJSXElement;
2252
+ /**
2253
+ * @summary Options define the selectable items within various form controls such as [select](/components/select).
2254
+ * @documentation https://synergy.style/components/option
2255
+ * @status stable
2256
+ * @since 2.0
2257
+ *
2258
+ * @dependency syn-icon
2259
+ *
2260
+ * @slot - The option's label.
2261
+ * @slot prefix - Used to prepend an icon or similar element to the menu item.
2262
+ * @slot suffix - Used to append an icon or similar element to the menu item.
2263
+ *
2264
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
2265
+ * @csspart base - The component's base wrapper.
2266
+ * @csspart label - The option's label.
2267
+ * @csspart prefix - The container that wraps the prefix.
2268
+ * @csspart suffix - The container that wraps the suffix.
2269
+ */ 'syn-option': SynOptionJSXElement;
2270
+ /**
2271
+ * @summary Popup is a utility that lets you declaratively anchor "popup" containers to another element.
2272
+ * @documentation https://synergy.style/components/popup
2273
+ * @status stable
2274
+ * @since 2.0
2275
+ *
2276
+ * @event syn-reposition - Emitted when the popup is repositioned. This event can fire a lot, so avoid putting expensive
2277
+ * operations in your listener or consider debouncing it.
2278
+ *
2279
+ * @slot - The popup's content.
2280
+ * @slot anchor - The element the popup will be anchored to. If the anchor lives outside of the popup, you can use the
2281
+ * `anchor` attribute or property instead.
2282
+ *
2283
+ * @csspart arrow - The arrow's container. Avoid setting `top|bottom|left|right` properties, as these values are
2284
+ * assigned dynamically as the popup moves. This is most useful for applying a background color to match the popup, and
2285
+ * maybe a border or box shadow.
2286
+ * @csspart popup - The popup's container. Useful for setting a background color, box shadow, etc.
2287
+ * @csspart hover-bridge - The hover bridge element. Only available when the `hover-bridge` option is enabled.
2288
+ *
2289
+ * @cssproperty [--arrow-size=6px] - The size of the arrow. Note that an arrow won't be shown unless the `arrow`
2290
+ * attribute is used.
2291
+ * @cssproperty [--arrow-color=var(--syn-color-neutral-0)] - The color of the arrow.
2292
+ * @cssproperty [--auto-size-available-width] - A read-only custom property that determines the amount of width the
2293
+ * popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only
2294
+ * available when using `auto-size`.
2295
+ * @cssproperty [--auto-size-available-height] - A read-only custom property that determines the amount of height the
2296
+ * popup can be before overflowing. Useful for positioning child elements that need to overflow. This property is only
2297
+ * available when using `auto-size`.
2298
+ */ 'syn-popup': SynPopupJSXElement;
2299
+ /**
2300
+ * @summary The `<syn-prio-nav />` element provides a generic navigation bar
2301
+ * that can be used to group multiple navigation items (usually horizontal `<syn-nav-item />`s)
2302
+ * together. It will automatically group all items not visible in the viewport into a custom
2303
+ * priority menu.
2304
+ *
2305
+ * @example
2306
+ * <syn-prio-nav>
2307
+ * <syn-nav-item current horizontal>Item 1</syn-nav-item>
2308
+ * <button role="menuitem">Item 2 (custom)</button>
2309
+ * <syn-nav-item horizontal>Item 3</syn-nav-item>
2310
+ * </syn-prio-nav>
2311
+ *
2312
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-prio-nav--docs
2313
+ * @status stable
2314
+ * @since 1.14.0
2315
+ *
2316
+ * @dependency syn-dropdown
2317
+ * @dependency syn-icon
2318
+ * @dependency syn-menu
2319
+ * @dependency syn-nav-item
2320
+ *
2321
+ * @slot - The given navigation items. Must be horizontal `<syn-nav-item>`s
2322
+ * or have a role of "menuitem"
2323
+ *
2324
+ * @csspart base - The component's base wrapper.
2325
+ * @csspart priority-menu - The wrapper around the priority menu
2326
+ * @csspart priority-menu-nav-item - The navigation item for the priority menu
2327
+ * @csspart priority-menu-label - The label for the priority menu
2328
+ * @csspart priority-menu-icon - The icon for the priority menu
2329
+ * @csspart priority-menu-container - The container for the shifted navigation items,
2330
+ * if there is not enough space.
2331
+ *
2332
+ */ 'syn-prio-nav': SynPrioNavJSXElement;
2333
+ /**
2334
+ * @summary Progress bars are used to show the status of an ongoing operation.
2335
+ * @documentation https://synergy.style/components/progress-bar
2336
+ * @status stable
2337
+ * @since 2.0
2338
+ *
2339
+ * @slot - A label to show inside the progress indicator.
2340
+ *
2341
+ * @csspart base - The component's base wrapper.
2342
+ * @csspart indicator - The progress bar's indicator.
2343
+ * @csspart label - The progress bar's label.
2344
+ *
2345
+ * @cssproperty --height - The progress bar's height.
2346
+ * @cssproperty --track-color - The color of the track.
2347
+ * @cssproperty --indicator-color - The color of the indicator.
2348
+ * @cssproperty --label-color - The color of the label.
2349
+ * @cssproperty --speed - The speed of the progress bar when in indeterminate state.
2350
+ */ 'syn-progress-bar': SynProgressBarJSXElement;
2351
+ /**
2352
+ * @summary Progress rings are used to show the progress of a determinate operation in a circular fashion.
2353
+ * @documentation https://synergy.style/components/progress-ring
2354
+ * @status stable
2355
+ * @since 2.0
2356
+ *
2357
+ * @slot - A label to show inside the ring.
2358
+ *
2359
+ * @csspart base - The component's base wrapper.
2360
+ * @csspart label - The progress ring label.
2361
+ *
2362
+ * @cssproperty --size - The diameter of the progress ring (cannot be a percentage).
2363
+ * @cssproperty --track-width - The width of the track.
2364
+ * @cssproperty --track-color - The color of the track.
2365
+ * @cssproperty --indicator-width - The width of the indicator. Defaults to the track width.
2366
+ * @cssproperty --indicator-color - The color of the indicator.
2367
+ * @cssproperty --indicator-transition-duration - The duration of the indicator's transition when the value changes.
2368
+ */ 'syn-progress-ring': SynProgressRingJSXElement;
2369
+ /**
2370
+ * @summary Radios allow the user to select a single option from a group.
2371
+ * @documentation https://synergy.style/components/radio
2372
+ * @status stable
2373
+ * @since 2.0
2374
+ *
2375
+ * @dependency syn-icon
2376
+ *
2377
+ * @slot - The radio's label.
2378
+ *
2379
+ * @event syn-blur - Emitted when the control loses focus.
2380
+ * @event syn-focus - Emitted when the control gains focus.
2381
+ *
2382
+ * @csspart base - The component's base wrapper.
2383
+ * @csspart control - The circular container that wraps the radio's checked state.
2384
+ * @csspart control--checked - The radio control when the radio is checked.
2385
+ * @csspart checked-icon - The checked icon, an `<syn-icon>` element.
2386
+ * @csspart label - The container that wraps the radio's label.
2387
+ */ 'syn-radio': SynRadioJSXElement;
2388
+ /**
2389
+ * @summary Radios buttons allow the user to select a single option from a group using a button-like control.
2390
+ * @documentation https://synergy.style/components/radio-button
2391
+ * @status stable
2392
+ * @since 2.0
2393
+ *
2394
+ * @slot - The radio button's label.
2395
+ * @slot prefix - A presentational prefix icon or similar element.
2396
+ * @slot suffix - A presentational suffix icon or similar element.
2397
+ *
2398
+ * @event syn-blur - Emitted when the button loses focus.
2399
+ * @event syn-focus - Emitted when the button gains focus.
2400
+ *
2401
+ * @csspart base - The component's base wrapper.
2402
+ * @csspart button - The internal `<button>` element.
2403
+ * @csspart button--checked - The internal button element when the radio button is checked.
2404
+ * @csspart prefix - The container that wraps the prefix.
2405
+ * @csspart label - The container that wraps the radio button's label.
2406
+ * @csspart suffix - The container that wraps the suffix.
2407
+ */ 'syn-radio-button': SynRadioButtonJSXElement;
2408
+ /**
2409
+ * @summary Radio groups are used to group multiple [radios](/components/radio) or [radio buttons](/components/radio-button) so they function as a single form control.
2410
+ * @documentation https://synergy.style/components/radio-group
2411
+ * @status stable
2412
+ * @since 2.0
2413
+ *
2414
+ * @dependency syn-button-group
2415
+ *
2416
+ * @slot - The default slot where `<syn-radio>` or `<syn-radio-button>` elements are placed.
2417
+ * @slot label - The radio group's label. Required for proper accessibility. Alternatively, you can use the `label`
2418
+ * attribute.
2419
+ * @slot help-text - Text that describes how to use the radio group. Alternatively, you can use the `help-text` attribute.
2420
+ *
2421
+ * @event syn-change - Emitted when the radio group's selected value changes.
2422
+ * @event syn-input - Emitted when the radio group receives user input.
2423
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
2424
+ *
2425
+ * @csspart form-control - The form control that wraps the label, input, and help text.
2426
+ * @csspart form-control-label - The label's wrapper.
2427
+ * @csspart form-control-input - The input's wrapper.
2428
+ * @csspart form-control-help-text - The help text's wrapper.
2429
+ * @csspart button-group - The button group that wraps radio buttons.
2430
+ * @csspart button-group__base - The button group's `base` part.
2431
+ */ 'syn-radio-group': SynRadioGroupJSXElement;
2432
+ /**
2433
+ * @summary Ranges allow the user to select values within a given range using one or two thumbs.
2434
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-range--docs
2435
+ * @status stable
2436
+ *
2437
+ * @dependency syn-tooltip
2438
+ *
2439
+ * @slot label - The range's label. Alternatively, you can use the `label` attribute.
2440
+ * @slot prefix - Used to prepend a presentational icon or similar element to the range.
2441
+ * @slot suffix - Used to append a presentational icon or similar element to the range.
2442
+ * @slot help-text - Text that describes how to use the range.
2443
+ * Alternatively, you can use the `help-text` attribute.
2444
+ * @slot ticks - Used to display tick marks at specific intervals along the range.
2445
+ *
2446
+ * @event syn-blur - Emitted when the control loses focus.
2447
+ * @event syn-change - Emitted when an alteration to the control's value is committed by the user.
2448
+ * @event syn-focus - Emitted when the control gains focus.
2449
+ * @event syn-input - Emitted when the control receives input.
2450
+ * @event syn-invalid - Emitted when the form control has been checked for validity
2451
+ * and its constraints aren't satisfied.
2452
+ * @event syn-move - Emitted when the user moves a thumb, either via touch or keyboard.
2453
+ * Use `Event.preventDefault()` to prevent movement.
2454
+ *
2455
+ * @csspart form-control - The form control that wraps the label, input, and help text.
2456
+ * @csspart form-control-label - The label's wrapper.
2457
+ * @csspart form-control-help-text - The help text's wrapper.
2458
+ * @csspart base - The component's base wrapper.
2459
+ * @csspart input-wrapper - The container that wraps the input track and ticks.
2460
+ * @csspart track-wrapper - The wrapper for the track.
2461
+ * @csspart track - The inactive track.
2462
+ * @csspart active-track - The active track.
2463
+ * @csspart prefix - The container that wraps the prefix.
2464
+ * @csspart suffix - The container that wraps the suffix.
2465
+ * @csspart ticks - The container that wraps the tick marks.
2466
+ * @csspart thumb - The thumb(s) that the user can drag to change the range.
2467
+ *
2468
+ * @csspart tooltip__base - The base of the tooltip
2469
+ * @csspart tooltip__arrow - The arrow of the tooltip
2470
+ * @csspart tooltip__popup - The popup of the tooltip
2471
+ * @csspart tooltip__body - The body of the tooltip
2472
+ *
2473
+ * @cssproperty --thumb-size - The size of a thumb.
2474
+ * @cssproperty --thumb-hit-area-size - The clickable area around the thumb.
2475
+ * Per default this is set to 140% of the thumb size. Must be a scale css value (defaults to 1.4).
2476
+ * @cssproperty --track-hit-area-size - The clickable area around the track (top and left).
2477
+ * @cssproperty --track-color-active - Color of the track representing the current value.
2478
+ * @cssproperty --track-color-inactive - Color of the track that represents the remaining value.
2479
+ * @cssproperty --track-height - The height of the track.
2480
+ * @cssproperty --track-active-offset - The point of origin of the active track,
2481
+ * starting at the left side of the range.
2482
+ */ 'syn-range': SynRangeJSXElement;
2483
+ /**
2484
+ * @summary Ticks visually improve positioning on range sliders.
2485
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-range--docs
2486
+ * @status stable
2487
+ *
2488
+ * @slot - The tick's label
2489
+ *
2490
+ * @csspart base - The component's base wrapper.
2491
+ * @csspart label - The component's label.
2492
+ * @csspart line - The component's tick line.
2493
+ *
2494
+ * @cssproperty --tick-height - The height of the tick marker.
2495
+ * @cssproperty --tick-label-top - The top offset of the tick label.
2496
+ */ 'syn-range-tick': SynRangeTickJSXElement;
2497
+ /**
2498
+ * @summary Selects allow you to choose items from a menu of predefined options.
2499
+ * @documentation https://synergy.style/components/select
2500
+ * @status stable
2501
+ * @since 2.0
2502
+ *
2503
+ * @dependency syn-icon
2504
+ * @dependency syn-popup
2505
+ * @dependency syn-tag
2506
+ *
2507
+ * @slot - The listbox options. Must be `<syn-option>` elements. You can use `<syn-divider>` to group items visually.
2508
+ * @slot label - The input's label. Alternatively, you can use the `label` attribute.
2509
+ * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.
2510
+ * @slot suffix - Used to append a presentational icon or similar element to the combobox.
2511
+ * @slot clear-icon - An icon to use in lieu of the default clear icon.
2512
+ * @slot expand-icon - The icon to show when the control is expanded and collapsed. Rotates on open and close.
2513
+ * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
2514
+ *
2515
+ * @event syn-change - Emitted when the control's value changes.
2516
+ * @event syn-clear - Emitted when the control's value is cleared.
2517
+ * @event syn-input - Emitted when the control receives input.
2518
+ * @event syn-focus - Emitted when the control gains focus.
2519
+ * @event syn-blur - Emitted when the control loses focus.
2520
+ * @event syn-show - Emitted when the select's menu opens.
2521
+ * @event syn-after-show - Emitted after the select's menu opens and all animations are complete.
2522
+ * @event syn-hide - Emitted when the select's menu closes.
2523
+ * @event syn-after-hide - Emitted after the select's menu closes and all animations are complete.
2524
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
2525
+ *
2526
+ * @csspart form-control - The form control that wraps the label, input, and help text.
2527
+ * @csspart form-control-label - The label's wrapper.
2528
+ * @csspart form-control-input - The select's wrapper.
2529
+ * @csspart form-control-help-text - The help text's wrapper.
2530
+ * @csspart combobox - The container the wraps the prefix, suffix, combobox, clear icon, and expand button.
2531
+ * @csspart prefix - The container that wraps the prefix slot.
2532
+ * @csspart suffix - The container that wraps the suffix slot.
2533
+ * @csspart display-input - The element that displays the selected option's label, an `<input>` element.
2534
+ * @csspart listbox - The listbox container where options are slotted.
2535
+ * @csspart tags - The container that houses option tags when `multiselect` is used.
2536
+ * @csspart tag - The individual tags that represent each multiselect option.
2537
+ * @csspart tag__base - The tag's base part.
2538
+ * @csspart tag__content - The tag's content part.
2539
+ * @csspart tag__remove-button - The tag's remove button.
2540
+ * @csspart tag__remove-button__base - The tag's remove button base part.
2541
+ * @csspart clear-button - The clear button.
2542
+ * @csspart expand-icon - The container that wraps the expand icon.
2543
+ */ 'syn-select': SynSelectJSXElement;
2544
+ /**
2545
+ * @summary The <syn-side-nav /> element contains secondary navigation and fits below the header.
2546
+ * It can be used to group multiple navigation items (<syn-nav-item />s) together.
2547
+ *
2548
+ * @example
2549
+ * <syn-side-nav open>
2550
+ * <syn-nav-item >Item 1</syn-nav-item>
2551
+ * <syn-nav-item divider>Item 2</syn-nav-item>
2552
+ * </syn-side-nav>
2553
+ *
2554
+ * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-side-nav--docs
2555
+ * @status stable
2556
+ * @since 1.14.0
2557
+ *
2558
+ * @dependency syn-divider
2559
+ * @dependency syn-drawer
2560
+ *
2561
+ * @slot - The main content of the side-nav. Used for <syn-nav-item /> elements.
2562
+ * @slot footer - The footer content of the side-nav. Used for <syn-nav-item /> elements.
2563
+ * Please avoid having to many nav-items as it can massively influence the user experience.
2564
+ *
2565
+ * @event syn-show - Emitted when the side-nav opens.
2566
+ * @event syn-after-show - Emitted after the side-nav opens and all animations are complete.
2567
+ * @event syn-hide - Emitted when the side-nav closes.
2568
+ * @event syn-after-hide - Emitted after the side-nav closes and all animations are complete.
2569
+ *
2570
+ * @csspart base - The components base wrapper
2571
+ * @csspart drawer - The drawer that is used under the hood for creating the side-nav
2572
+ * @csspart content-container - The components main content container
2573
+ * @csspart content - The components main content
2574
+ * @csspart footer-container - The components footer content container
2575
+ (where the footer slot content is rendered)
2576
+ * @csspart footer-divider - The components footer divider
2577
+ * @csspart footer - The components footer content
2578
+ * @csspart overlay - The overlay that covers the screen behind the side-nav.
2579
+ * @csspart panel - The side-nav's panel (where the whole content is rendered).
2580
+ * @csspart body - The side-nav's body (where the default slot content is rendered)
2581
+ * @csspart drawer__base - The drawer's base wrapper
2582
+ *
2583
+ * @cssproperty --side-nav-open-width - The width of the side-nav if in open state
2584
+ *
2585
+ * @animation sideNav.showNonRail - The animation to use when showing the side-nav in non-rail mode.
2586
+ * @animation sideNav.showRail - The animation to use when showing the side-nav in rail mode.
2587
+ * @animation sideNav.hideNonRail - The animation to use when hiding the side-nav in non-rail mode.
2588
+ * @animation sideNav.hideRail - The animation to use when hiding the side-nav in rail mode.
2589
+ * @animation sideNav.overlay.show - The animation to use when showing the side-nav's overlay.
2590
+ * @animation sideNav.overlay.hide - The animation to use when hiding the side-nav's overlay.
2591
+ */ 'syn-side-nav': SynSideNavJSXElement;
2592
+ /**
2593
+ * @summary Spinners are used to show the progress of an indeterminate operation.
2594
+ * @documentation https://synergy.style/components/spinner
2595
+ * @status stable
2596
+ * @since 2.0
2597
+ *
2598
+ * @csspart base - The component's base wrapper.
2599
+ *
2600
+ * @cssproperty --track-width - The width of the track.
2601
+ * @cssproperty --indicator-color - The color of the spinner's indicator.
2602
+ * @cssproperty --speed - The time it takes for the spinner to complete one animation cycle.
2603
+ */ 'syn-spinner': SynSpinnerJSXElement;
2604
+ /**
2605
+ * @summary Switches allow the user to toggle an option on or off.
2606
+ * @documentation https://synergy.style/components/switch
2607
+ * @status stable
2608
+ * @since 2.0
2609
+ *
2610
+ * @slot - The switch's label.
2611
+ * @slot help-text - Text that describes how to use the switch. Alternatively, you can use the `help-text` attribute.
2612
+ *
2613
+ * @event syn-blur - Emitted when the control loses focus.
2614
+ * @event syn-change - Emitted when the control's checked state changes.
2615
+ * @event syn-input - Emitted when the control receives input.
2616
+ * @event syn-focus - Emitted when the control gains focus.
2617
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
2618
+ *
2619
+ * @csspart base - The component's base wrapper.
2620
+ * @csspart control - The control that houses the switch's thumb.
2621
+ * @csspart thumb - The switch's thumb.
2622
+ * @csspart label - The switch's label.
2623
+ * @csspart form-control-help-text - The help text's wrapper.
2624
+ *
2625
+ * @cssproperty --width - The width of the switch.
2626
+ * @cssproperty --height - The height of the switch.
2627
+ * @cssproperty --thumb-size - The size of the thumb.
2628
+ */ 'syn-switch': SynSwitchJSXElement;
2629
+ /**
2630
+ * @summary Tabs are used inside [tab groups](/components/tab-group) to represent and activate [tab panels](/components/tab-panel).
2631
+ * @documentation https://synergy.style/components/tab
2632
+ * @status stable
2633
+ * @since 2.0
2634
+ *
2635
+ * @dependency syn-icon-button
2636
+ *
2637
+ * @slot - The tab's label.
2638
+ *
2639
+ * @event syn-close - Emitted when the tab is closable and the close button is activated.
2640
+ *
2641
+ * @csspart base - The component's base wrapper.
2642
+ * @csspart close-button - The close button, an `<syn-icon-button>`.
2643
+ * @csspart close-button__base - The close button's exported `base` part.
2644
+ */ 'syn-tab': SynTabJSXElement;
2645
+ /**
2646
+ * @summary Tab groups organize content into a container that shows one section at a time.
2647
+ * @documentation https://synergy.style/components/tab-group
2648
+ * @status stable
2649
+ * @since 2.0
2650
+ *
2651
+ * @dependency syn-icon-button
2652
+ *
2653
+ * @slot - Used for grouping tab panels in the tab group. Must be `<syn-tab-panel>` elements.
2654
+ * @slot nav - Used for grouping tabs in the tab group. Must be `<syn-tab>` elements.
2655
+ *
2656
+ * @event {{ name: String }} syn-tab-show - Emitted when a tab is shown. The payload of the event returns the "panel" attribute of the shown tab.
2657
+ * @event {{ name: String }} syn-tab-hide - Emitted when a tab is hidden. The payload of the event returns the "panel" attribute of the hidden tab.
2658
+ *
2659
+ * @csspart base - The component's base wrapper.
2660
+ * @csspart nav - The tab group's navigation container where tabs are slotted in.
2661
+ * @csspart tabs - The container that wraps the tabs.
2662
+ * @csspart active-tab-indicator - The line that highlights the currently selected tab.
2663
+ * @csspart body - The tab group's body where tab panels are slotted in.
2664
+ * @csspart scroll-button - The previous/next scroll buttons that show when tabs are scrollable, an `<syn-icon-button>`.
2665
+ * @csspart scroll-button--start - The starting scroll button.
2666
+ * @csspart scroll-button--end - The ending scroll button.
2667
+ * @csspart scroll-button__base - The scroll button's exported `base` part.
2668
+ *
2669
+ * @cssproperty --indicator-color - The color of the active tab indicator.
2670
+ * @cssproperty --indicator-width - The width of the active tab indicator.
2671
+ * @cssproperty --track-color - The color of the indicator's track (the line that separates tabs from panels).
2672
+ * @cssproperty --track-width - The width of the indicator's track (the line that separates tabs from panels).
2673
+ */ 'syn-tab-group': SynTabGroupJSXElement;
2674
+ /**
2675
+ * @summary Tab panels are used inside [tab groups](/components/tab-group) to display tabbed content.
2676
+ * @documentation https://synergy.style/components/tab-panel
2677
+ * @status stable
2678
+ * @since 2.0
2679
+ *
2680
+ * @slot - The tab panel's content.
2681
+ *
2682
+ * @csspart base - The component's base wrapper.
2683
+ *
2684
+ * @cssproperty --padding - The tab panel's padding.
2685
+ */ 'syn-tab-panel': SynTabPanelJSXElement;
2686
+ /**
2687
+ * @summary Tags are used as labels to organize things or to indicate a selection.
2688
+ * @documentation https://synergy.style/components/tag
2689
+ * @status stable
2690
+ * @since 2.0
2691
+ *
2692
+ * @dependency syn-icon-button
2693
+ *
2694
+ * @slot - The tag's content.
2695
+ *
2696
+ * @event syn-remove - Emitted when the remove button is activated.
2697
+ *
2698
+ * @csspart base - The component's base wrapper.
2699
+ * @csspart content - The tag's content.
2700
+ * @csspart remove-button - The tag's remove button, an `<syn-icon-button>`.
2701
+ * @csspart remove-button__base - The remove button's exported `base` part.
2702
+ */ 'syn-tag': SynTagJSXElement;
2703
+ /**
2704
+ * @summary Textareas collect data from the user and allow multiple lines of text.
2705
+ * @documentation https://synergy.style/components/textarea
2706
+ * @status stable
2707
+ * @since 2.0
2708
+ *
2709
+ * @slot label - The textarea's label. Alternatively, you can use the `label` attribute.
2710
+ * @slot help-text - Text that describes how to use the input. Alternatively, you can use the `help-text` attribute.
2711
+ *
2712
+ * @event syn-blur - Emitted when the control loses focus.
2713
+ * @event syn-change - Emitted when an alteration to the control's value is committed by the user.
2714
+ * @event syn-focus - Emitted when the control gains focus.
2715
+ * @event syn-input - Emitted when the control receives input.
2716
+ * @event syn-invalid - Emitted when the form control has been checked for validity and its constraints aren't satisfied.
2717
+ *
2718
+ * @csspart form-control - The form control that wraps the label, input, and help text.
2719
+ * @csspart form-control-label - The label's wrapper.
2720
+ * @csspart form-control-input - The input's wrapper.
2721
+ * @csspart form-control-help-text - The help text's wrapper.
2722
+ * @csspart base - The component's base wrapper.
2723
+ * @csspart textarea - The internal `<textarea>` control.
2724
+ */ 'syn-textarea': SynTextareaJSXElement;
2725
+ /**
2726
+ * @summary Tooltips display additional information based on a specific action.
2727
+ * @documentation https://synergy.style/components/tooltip
2728
+ * @status stable
2729
+ * @since 2.0
2730
+ *
2731
+ * @dependency syn-popup
2732
+ *
2733
+ * @slot - The tooltip's target element. Avoid slotting in more than one element, as subsequent ones will be ignored.
2734
+ * @slot content - The content to render in the tooltip. Alternatively, you can use the `content` attribute.
2735
+ *
2736
+ * @event syn-show - Emitted when the tooltip begins to show.
2737
+ * @event syn-after-show - Emitted after the tooltip has shown and all animations are complete.
2738
+ * @event syn-hide - Emitted when the tooltip begins to hide.
2739
+ * @event syn-after-hide - Emitted after the tooltip has hidden and all animations are complete.
2740
+ *
2741
+ * @csspart base - The component's base wrapper, an `<syn-popup>` element.
2742
+ * @csspart base__popup - The popup's exported `popup` part. Use this to target the tooltip's popup container.
2743
+ * @csspart base__arrow - The popup's exported `arrow` part. Use this to target the tooltip's arrow.
2744
+ * @csspart body - The tooltip's body where its content is rendered.
2745
+ *
2746
+ * @cssproperty --max-width - The maximum width of the tooltip before its content will wrap.
2747
+ * @cssproperty --hide-delay - The amount of time to wait before hiding the tooltip when hovering.
2748
+ * @cssproperty --show-delay - The amount of time to wait before showing the tooltip when hovering.
2749
+ *
2750
+ * @animation tooltip.show - The animation to use when showing the tooltip.
2751
+ * @animation tooltip.hide - The animation to use when hiding the tooltip.
2752
+ */ 'syn-tooltip': SynTooltipJSXElement;
2753
+ /**
2754
+ * @summary Validate provides form field validation messages in a unified way.
2755
+ * It does this by using [the native browser validation](https://developer.mozilla.org/en-US/docs/Learn/Forms/Form_validation)
2756
+ * and showing the validation message in a consistent, user defined way.
2757
+ *
2758
+ * @dependency syn-alert
2759
+ *
2760
+ * @slot - The form field that should be validated.
2761
+ * Avoid slotting in more than one element, as subsequent ones will be ignored.
2762
+ *
2763
+ * @csspart base - The component's base wrapper.
2764
+ * @csspart input-wrapper - The container that wraps the form field.
2765
+ * @csspart alert - The syn-alert that is shown when the variant is set to "inline".
2766
+ * @csspart alert__base - The container that wraps the alert.
2767
+ * @csspart alert__message - The container that wraps the alert message.
2768
+ * @csspart alert__icon - The container that wraps the alert icon.
2769
+ */ 'syn-validate': SynValidateJSXElement;
2770
+ }
2771
+ }
2772
+ }
2773
+ export {};