fluentui-svelte 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +201 -0
- package/dist/components/auto-suggest-box/auto-suggest-box.d.ts +2 -0
- package/dist/components/auto-suggest-box/auto-suggest-box.js +2 -0
- package/dist/components/auto-suggest-box/auto-suggest-box.svelte +457 -0
- package/dist/components/auto-suggest-box/auto-suggest-box.svelte.d.ts +4 -0
- package/dist/components/auto-suggest-box/docs/llms.md +73 -0
- package/dist/components/auto-suggest-box/option.svelte +82 -0
- package/dist/components/auto-suggest-box/option.svelte.d.ts +4 -0
- package/dist/components/auto-suggest-box/types.d.ts +140 -0
- package/dist/components/auto-suggest-box/types.js +1 -0
- package/dist/components/avatar/avatar.svelte +269 -0
- package/dist/components/avatar/avatar.svelte.d.ts +20 -0
- package/dist/components/avatar/docs/llms.md +92 -0
- package/dist/components/avatar/type.d.ts +63 -0
- package/dist/components/avatar/type.js +1 -0
- package/dist/components/badge/badge-icon.svelte +103 -0
- package/dist/components/badge/badge-icon.svelte.d.ts +25 -0
- package/dist/components/badge/badge.svelte +163 -0
- package/dist/components/badge/badge.svelte.d.ts +20 -0
- package/dist/components/badge/docs/llms.md +133 -0
- package/dist/components/badge/types.d.ts +70 -0
- package/dist/components/badge/types.js +1 -0
- package/dist/components/badge/utils.svelte.d.ts +16 -0
- package/dist/components/badge/utils.svelte.js +35 -0
- package/dist/components/button/button.svelte +203 -0
- package/dist/components/button/button.svelte.d.ts +38 -0
- package/dist/components/button/docs/llms.md +102 -0
- package/dist/components/button/split-button.svelte +66 -0
- package/dist/components/button/split-button.svelte.d.ts +4 -0
- package/dist/components/button/types.d.ts +84 -0
- package/dist/components/button/types.js +1 -0
- package/dist/components/calendar-date-picker/calendar-date-picker.svelte +119 -0
- package/dist/components/calendar-date-picker/calendar-date-picker.svelte.d.ts +4 -0
- package/dist/components/calendar-date-picker/docs/llms.md +33 -0
- package/dist/components/calendar-date-picker/types.d.ts +36 -0
- package/dist/components/calendar-date-picker/types.js +1 -0
- package/dist/components/calendar-view/calendar-view-controls.svelte +115 -0
- package/dist/components/calendar-view/calendar-view-controls.svelte.d.ts +3 -0
- package/dist/components/calendar-view/calendar-view-days.svelte +210 -0
- package/dist/components/calendar-view/calendar-view-days.svelte.d.ts +3 -0
- package/dist/components/calendar-view/calendar-view-grid.d.ts +38 -0
- package/dist/components/calendar-view/calendar-view-grid.js +140 -0
- package/dist/components/calendar-view/calendar-view-header.svelte +66 -0
- package/dist/components/calendar-view/calendar-view-header.svelte.d.ts +18 -0
- package/dist/components/calendar-view/calendar-view-item.svelte +181 -0
- package/dist/components/calendar-view/calendar-view-item.svelte.d.ts +4 -0
- package/dist/components/calendar-view/calendar-view-months.svelte +165 -0
- package/dist/components/calendar-view/calendar-view-months.svelte.d.ts +3 -0
- package/dist/components/calendar-view/calendar-view-years.svelte +161 -0
- package/dist/components/calendar-view/calendar-view-years.svelte.d.ts +3 -0
- package/dist/components/calendar-view/calendar-view.svelte +451 -0
- package/dist/components/calendar-view/calendar-view.svelte.d.ts +9 -0
- package/dist/components/calendar-view/calendar-view.svelte.js +196 -0
- package/dist/components/calendar-view/docs/llms.md +121 -0
- package/dist/components/calendar-view/index.d.ts +1 -0
- package/dist/components/calendar-view/index.js +1 -0
- package/dist/components/calendar-view/types.d.ts +174 -0
- package/dist/components/calendar-view/types.js +1 -0
- package/dist/components/checkbox/checkbox.svelte +171 -0
- package/dist/components/checkbox/checkbox.svelte.d.ts +40 -0
- package/dist/components/checkbox/docs/llms.md +78 -0
- package/dist/components/checkbox/types.d.ts +50 -0
- package/dist/components/checkbox/types.js +1 -0
- package/dist/components/date-picker/date-picker.svelte +381 -0
- package/dist/components/date-picker/date-picker.svelte.d.ts +4 -0
- package/dist/components/date-picker/docs/llms.md +52 -0
- package/dist/components/date-picker/index.d.ts +1 -0
- package/dist/components/date-picker/index.js +1 -0
- package/dist/components/date-picker/types.d.ts +74 -0
- package/dist/components/date-picker/types.js +1 -0
- package/dist/components/dialog/dialog-actions.svelte +37 -0
- package/dist/components/dialog/dialog-actions.svelte.d.ts +4 -0
- package/dist/components/dialog/dialog-content.svelte +17 -0
- package/dist/components/dialog/dialog-content.svelte.d.ts +4 -0
- package/dist/components/dialog/dialog-surface.svelte +95 -0
- package/dist/components/dialog/dialog-surface.svelte.d.ts +4 -0
- package/dist/components/dialog/dialog-title.svelte +33 -0
- package/dist/components/dialog/dialog-title.svelte.d.ts +25 -0
- package/dist/components/dialog/dialog-trigger.svelte +23 -0
- package/dist/components/dialog/dialog-trigger.svelte.d.ts +4 -0
- package/dist/components/dialog/dialog.svelte +64 -0
- package/dist/components/dialog/dialog.svelte.d.ts +7 -0
- package/dist/components/dialog/dialog.svelte.js +2 -0
- package/dist/components/dialog/docs/llms.md +131 -0
- package/dist/components/dialog/types.d.ts +92 -0
- package/dist/components/dialog/types.js +1 -0
- package/dist/components/divider/divider.svelte +120 -0
- package/dist/components/divider/divider.svelte.d.ts +39 -0
- package/dist/components/divider/docs/llms.md +83 -0
- package/dist/components/divider/types.d.ts +32 -0
- package/dist/components/divider/types.js +1 -0
- package/dist/components/dropdown/docs/llms.md +70 -0
- package/dist/components/dropdown/dropdown-context.d.ts +2 -0
- package/dist/components/dropdown/dropdown-context.js +2 -0
- package/dist/components/dropdown/dropdown-option.svelte +31 -0
- package/dist/components/dropdown/dropdown-option.svelte.d.ts +4 -0
- package/dist/components/dropdown/dropdown.svelte +309 -0
- package/dist/components/dropdown/dropdown.svelte.d.ts +4 -0
- package/dist/components/dropdown/types.d.ts +82 -0
- package/dist/components/dropdown/types.js +1 -0
- package/dist/components/dropdown-select/docs/llms.md +72 -0
- package/dist/components/dropdown-select/dropdown-select-option.svelte +87 -0
- package/dist/components/dropdown-select/dropdown-select-option.svelte.d.ts +4 -0
- package/dist/components/dropdown-select/dropdown-select.svelte +165 -0
- package/dist/components/dropdown-select/dropdown-select.svelte.d.ts +4 -0
- package/dist/components/dropdown-select/dropdown-select.svelte.js +48 -0
- package/dist/components/dropdown-select/index.d.ts +2 -0
- package/dist/components/dropdown-select/index.js +2 -0
- package/dist/components/dropdown-select/types.d.ts +46 -0
- package/dist/components/dropdown-select/types.js +1 -0
- package/dist/components/expander/docs/llms.md +88 -0
- package/dist/components/expander/expander.svelte +249 -0
- package/dist/components/expander/expander.svelte.d.ts +21 -0
- package/dist/components/expander/types.d.ts +47 -0
- package/dist/components/expander/types.js +1 -0
- package/dist/components/flyout/docs/llms.md +31 -0
- package/dist/components/flyout/flyout.svelte +148 -0
- package/dist/components/flyout/flyout.svelte.d.ts +19 -0
- package/dist/components/flyout/types.d.ts +36 -0
- package/dist/components/flyout/types.js +1 -0
- package/dist/components/hyperlink/docs/llms.md +33 -0
- package/dist/components/hyperlink/hyperlink.svelte +66 -0
- package/dist/components/hyperlink/hyperlink.svelte.d.ts +16 -0
- package/dist/components/hyperlink/types.d.ts +14 -0
- package/dist/components/hyperlink/types.js +1 -0
- package/dist/components/info-bar/docs/llms.md +81 -0
- package/dist/components/info-bar/info-bar.svelte +140 -0
- package/dist/components/info-bar/info-bar.svelte.d.ts +19 -0
- package/dist/components/info-bar/types.d.ts +27 -0
- package/dist/components/info-bar/types.js +1 -0
- package/dist/components/label/docs/llms.md +67 -0
- package/dist/components/label/label.svelte +95 -0
- package/dist/components/label/label.svelte.d.ts +4 -0
- package/dist/components/label/types.d.ts +32 -0
- package/dist/components/label/types.js +1 -0
- package/dist/components/list-view/docs/llms.md +110 -0
- package/dist/components/list-view/list-view-item.svelte +168 -0
- package/dist/components/list-view/list-view-item.svelte.d.ts +25 -0
- package/dist/components/list-view/list-view.svelte +137 -0
- package/dist/components/list-view/list-view.svelte.d.ts +25 -0
- package/dist/components/list-view/types.d.ts +95 -0
- package/dist/components/list-view/types.js +1 -0
- package/dist/components/list-view/utils.d.ts +6 -0
- package/dist/components/list-view/utils.js +12 -0
- package/dist/components/menu/context-menu-trigger.svelte +84 -0
- package/dist/components/menu/context-menu-trigger.svelte.d.ts +9 -0
- package/dist/components/menu/docs/llms.md +169 -0
- package/dist/components/menu/menu-divider.svelte +9 -0
- package/dist/components/menu/menu-divider.svelte.d.ts +26 -0
- package/dist/components/menu/menu-group.svelte +31 -0
- package/dist/components/menu/menu-group.svelte.d.ts +4 -0
- package/dist/components/menu/menu-item-checkbox.svelte +143 -0
- package/dist/components/menu/menu-item-checkbox.svelte.d.ts +15 -0
- package/dist/components/menu/menu-item-radio.svelte +147 -0
- package/dist/components/menu/menu-item-radio.svelte.d.ts +15 -0
- package/dist/components/menu/menu-item-switch.svelte +194 -0
- package/dist/components/menu/menu-item-switch.svelte.d.ts +15 -0
- package/dist/components/menu/menu-item.svelte +124 -0
- package/dist/components/menu/menu-item.svelte.d.ts +18 -0
- package/dist/components/menu/menu-list.svelte +38 -0
- package/dist/components/menu/menu-list.svelte.d.ts +5 -0
- package/dist/components/menu/menu-popover.svelte +125 -0
- package/dist/components/menu/menu-popover.svelte.d.ts +12 -0
- package/dist/components/menu/menu-trigger.svelte +121 -0
- package/dist/components/menu/menu-trigger.svelte.d.ts +4 -0
- package/dist/components/menu/menu.svelte +124 -0
- package/dist/components/menu/menu.svelte.d.ts +4 -0
- package/dist/components/menu/menu.svelte.js +77 -0
- package/dist/components/menu/types.d.ts +127 -0
- package/dist/components/menu/types.js +1 -0
- package/dist/components/number-box/docs/llms.md +37 -0
- package/dist/components/number-box/number-box.svelte +115 -0
- package/dist/components/number-box/number-box.svelte.d.ts +15 -0
- package/dist/components/number-box/types.d.ts +16 -0
- package/dist/components/number-box/types.js +1 -0
- package/dist/components/persona/docs/llms.md +107 -0
- package/dist/components/persona/persona.svelte +79 -0
- package/dist/components/persona/persona.svelte.d.ts +4 -0
- package/dist/components/persona/types.d.ts +42 -0
- package/dist/components/persona/types.js +1 -0
- package/dist/components/progress-bar/docs/llms.md +67 -0
- package/dist/components/progress-bar/progress-bar.svelte +167 -0
- package/dist/components/progress-bar/progress-bar.svelte.d.ts +15 -0
- package/dist/components/progress-bar/types.d.ts +39 -0
- package/dist/components/progress-bar/types.js +1 -0
- package/dist/components/progress-ring/docs/llms.md +76 -0
- package/dist/components/progress-ring/progress-ring.svelte +145 -0
- package/dist/components/progress-ring/progress-ring.svelte.d.ts +15 -0
- package/dist/components/progress-ring/types.d.ts +42 -0
- package/dist/components/progress-ring/types.js +1 -0
- package/dist/components/radio-button/docs/llms.md +64 -0
- package/dist/components/radio-button/radio-button.svelte +129 -0
- package/dist/components/radio-button/radio-button.svelte.d.ts +19 -0
- package/dist/components/radio-button/types.d.ts +24 -0
- package/dist/components/radio-button/types.js +1 -0
- package/dist/components/skeleton/docs/llms.md +67 -0
- package/dist/components/skeleton/skeleton.svelte +106 -0
- package/dist/components/skeleton/skeleton.svelte.d.ts +39 -0
- package/dist/components/skeleton/types.d.ts +24 -0
- package/dist/components/skeleton/types.js +1 -0
- package/dist/components/slider/docs/llms.md +75 -0
- package/dist/components/slider/slider.svelte +486 -0
- package/dist/components/slider/slider.svelte.d.ts +19 -0
- package/dist/components/slider/types.d.ts +102 -0
- package/dist/components/slider/types.js +1 -0
- package/dist/components/text-box/docs/llms.md +86 -0
- package/dist/components/text-box/text-box-button.svelte +65 -0
- package/dist/components/text-box/text-box-button.svelte.d.ts +9 -0
- package/dist/components/text-box/text-box.svelte +299 -0
- package/dist/components/text-box/text-box.svelte.d.ts +16 -0
- package/dist/components/text-box/types.d.ts +60 -0
- package/dist/components/text-box/types.js +1 -0
- package/dist/components/textarea/docs/llms.md +55 -0
- package/dist/components/textarea/textarea.svelte +151 -0
- package/dist/components/textarea/textarea.svelte.d.ts +17 -0
- package/dist/components/textarea/types.d.ts +33 -0
- package/dist/components/textarea/types.js +1 -0
- package/dist/components/time-picker/docs/llms.md +47 -0
- package/dist/components/time-picker/index.d.ts +1 -0
- package/dist/components/time-picker/index.js +1 -0
- package/dist/components/time-picker/time-picker.svelte +336 -0
- package/dist/components/time-picker/time-picker.svelte.d.ts +4 -0
- package/dist/components/time-picker/types.d.ts +54 -0
- package/dist/components/time-picker/types.js +1 -0
- package/dist/components/toggle-switch/docs/llms.md +39 -0
- package/dist/components/toggle-switch/toggle-switch.svelte +151 -0
- package/dist/components/toggle-switch/toggle-switch.svelte.d.ts +17 -0
- package/dist/components/toggle-switch/types.d.ts +20 -0
- package/dist/components/toggle-switch/types.js +1 -0
- package/dist/components/tooltip/docs/llms.md +74 -0
- package/dist/components/tooltip/tooltip.svelte +246 -0
- package/dist/components/tooltip/tooltip.svelte.d.ts +18 -0
- package/dist/components/tooltip/types.d.ts +67 -0
- package/dist/components/tooltip/types.js +1 -0
- package/dist/components/tree-view/docs/llms.md +117 -0
- package/dist/components/tree-view/tree-view-item-content.svelte +158 -0
- package/dist/components/tree-view/tree-view-item-content.svelte.d.ts +4 -0
- package/dist/components/tree-view/tree-view-item.svelte +197 -0
- package/dist/components/tree-view/tree-view-item.svelte.d.ts +4 -0
- package/dist/components/tree-view/tree-view.svelte +220 -0
- package/dist/components/tree-view/tree-view.svelte.d.ts +4 -0
- package/dist/components/tree-view/tree-view.svelte.js +111 -0
- package/dist/components/tree-view/types.d.ts +185 -0
- package/dist/components/tree-view/types.js +1 -0
- package/dist/css/class-darkmode.css +186 -0
- package/dist/css/media-darkmode.css +189 -0
- package/dist/css/reset.css +53 -0
- package/dist/css/theme.css +276 -0
- package/dist/css/typography.css +67 -0
- package/dist/css/utils.d.ts +1 -0
- package/dist/css/utils.js +153 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.js +129 -0
- package/dist/internal/components/dynamic-carousel/dynamic-carousel.svelte +449 -0
- package/dist/internal/components/dynamic-carousel/dynamic-carousel.svelte.d.ts +22 -0
- package/dist/internal/components/render-soc/render-soc.svelte +29 -0
- package/dist/internal/components/render-soc/render-soc.svelte.d.ts +30 -0
- package/dist/internal/constants.d.ts +26 -0
- package/dist/internal/constants.js +4036 -0
- package/dist/internal/context.d.ts +14 -0
- package/dist/internal/context.js +13 -0
- package/dist/internal/dom-utils.svelte.d.ts +6 -0
- package/dist/internal/dom-utils.svelte.js +46 -0
- package/dist/internal/floating-ui/floating.svelte.d.ts +15 -0
- package/dist/internal/floating-ui/floating.svelte.js +26 -0
- package/dist/internal/floating-ui/utils.d.ts +3 -0
- package/dist/internal/floating-ui/utils.js +30 -0
- package/dist/internal/index.d.ts +9 -0
- package/dist/internal/index.js +9 -0
- package/dist/internal/polyfills/expander.svelte.d.ts +21 -0
- package/dist/internal/polyfills/expander.svelte.js +96 -0
- package/dist/internal/transitions.d.ts +32 -0
- package/dist/internal/transitions.js +37 -0
- package/dist/internal/utils.d.ts +22 -0
- package/dist/internal/utils.js +63 -0
- package/dist/providers/fluentui-svelte/fluentui-svelte.d.ts +19 -0
- package/dist/providers/fluentui-svelte/fluentui-svelte.js +11 -0
- package/dist/providers/fluentui-svelte/fluentui-svelte.svelte +68 -0
- package/dist/providers/fluentui-svelte/fluentui-svelte.svelte.d.ts +9 -0
- package/dist/types/index.d.ts +117 -0
- package/dist/types/index.js +1 -0
- package/package.json +142 -0
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { PREFIX } from '../../internal/constants.js';
|
|
3
|
+
import type { ToggleSwitchProps } from './types.js';
|
|
4
|
+
|
|
5
|
+
const FALLBACK_ID = $props.id();
|
|
6
|
+
const COMPONENT_NAME = 'toggle-switch';
|
|
7
|
+
const ID = `${PREFIX}${COMPONENT_NAME}-${FALLBACK_ID}`;
|
|
8
|
+
|
|
9
|
+
let {
|
|
10
|
+
ref = $bindable(),
|
|
11
|
+
checked = $bindable(),
|
|
12
|
+
id = ID,
|
|
13
|
+
name = id,
|
|
14
|
+
label,
|
|
15
|
+
labelAttributes,
|
|
16
|
+
labelElement,
|
|
17
|
+
...attributes
|
|
18
|
+
}: ToggleSwitchProps = $props();
|
|
19
|
+
</script>
|
|
20
|
+
|
|
21
|
+
<!--
|
|
22
|
+
@component
|
|
23
|
+
|
|
24
|
+
This file contains the Svelte component implementation of a Fluent UI Toggle Switch.
|
|
25
|
+
The Fluent UI Toggle Switch is a customizable input element that allows users to switch between two states.
|
|
26
|
+
|
|
27
|
+
- Usage:
|
|
28
|
+
```tsx
|
|
29
|
+
<script>
|
|
30
|
+
import { ToggleSwitch } from 'fluentui-svelte';
|
|
31
|
+
</script>
|
|
32
|
+
|
|
33
|
+
<ToggleSwitch label="Toggle Switch" />
|
|
34
|
+
```
|
|
35
|
+
-->
|
|
36
|
+
<label class="fs-toggle-switch" {...labelAttributes} bind:this={labelElement}>
|
|
37
|
+
<input type="checkbox" role="switch" {id} {name} bind:checked bind:this={ref} {...attributes} />
|
|
38
|
+
{#if label}
|
|
39
|
+
<span>
|
|
40
|
+
{label}
|
|
41
|
+
</span>
|
|
42
|
+
{/if}
|
|
43
|
+
</label>
|
|
44
|
+
|
|
45
|
+
<style>
|
|
46
|
+
label {
|
|
47
|
+
display: flex;
|
|
48
|
+
align-items: center;
|
|
49
|
+
border-radius: 1.125rem;
|
|
50
|
+
outline: none;
|
|
51
|
+
cursor: pointer;
|
|
52
|
+
user-select: none;
|
|
53
|
+
&:has(input:focus-visible) {
|
|
54
|
+
outline: 0.125rem var(--fs-focus-stroke-outer) solid;
|
|
55
|
+
outline-offset: 0.125rem;
|
|
56
|
+
&:has(span) {
|
|
57
|
+
border-radius: 0.063rem;
|
|
58
|
+
outline-offset: 0.313rem;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
&:hover input {
|
|
62
|
+
background-color: var(--fs-control-alt-fill-tertiary);
|
|
63
|
+
&::after {
|
|
64
|
+
transform: translateX(0) scale(1.16);
|
|
65
|
+
}
|
|
66
|
+
&:checked::after {
|
|
67
|
+
transform: translateX(1.25rem) scale(1.16);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
&:active input {
|
|
71
|
+
background-color: var(--fs-control-alt-fill-quaternary);
|
|
72
|
+
&::after {
|
|
73
|
+
width: 1rem;
|
|
74
|
+
}
|
|
75
|
+
&:checked {
|
|
76
|
+
background-color: var(--fs-accent-fill-secondary);
|
|
77
|
+
border-color: var(--fs-control-fill-transparent);
|
|
78
|
+
&::after {
|
|
79
|
+
margin-left: calc(-0.25rem * 1.16);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
&:has(input:disabled) {
|
|
84
|
+
pointer-events: none;
|
|
85
|
+
color: var(--fs-text-disabled);
|
|
86
|
+
& input {
|
|
87
|
+
background-color: var(--fs-control-alt-fill-disabled);
|
|
88
|
+
border-color: var(--fs-control-strong-stroke-disabled);
|
|
89
|
+
&:checked {
|
|
90
|
+
background-clip: padding-box;
|
|
91
|
+
background-color: var(--fs-accent-fill-disabled);
|
|
92
|
+
border-color: var(--fs-accent-fill-disabled);
|
|
93
|
+
&::after {
|
|
94
|
+
background-color: var(--fs-text-on-accent-disabled);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
& input::after {
|
|
99
|
+
background-color: var(--fs-text-disabled);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
& input {
|
|
103
|
+
appearance: none;
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: center;
|
|
106
|
+
position: relative;
|
|
107
|
+
outline: none;
|
|
108
|
+
width: 2.5rem;
|
|
109
|
+
min-width: 2.5rem;
|
|
110
|
+
height: 1.25rem;
|
|
111
|
+
border: 0.063rem solid var(--fs-control-strong-stroke-default);
|
|
112
|
+
border-radius: 1.125rem;
|
|
113
|
+
background-color: var(--fs-control-alt-fill-secondary);
|
|
114
|
+
padding: 0.063rem;
|
|
115
|
+
cursor: pointer;
|
|
116
|
+
&::after {
|
|
117
|
+
content: '';
|
|
118
|
+
position: absolute;
|
|
119
|
+
left: 0.22rem;
|
|
120
|
+
width: 0.75rem;
|
|
121
|
+
height: 0.75rem;
|
|
122
|
+
border-radius: 0.75rem;
|
|
123
|
+
background-color: var(--fs-text-secondary);
|
|
124
|
+
transition:
|
|
125
|
+
transform var(--fs-fast-duration) var(--fs-point-to-point),
|
|
126
|
+
width var(--fs-fast-duration),
|
|
127
|
+
margin var(--fs-fast-duration);
|
|
128
|
+
}
|
|
129
|
+
/* Add effects support for Keyboard Events */
|
|
130
|
+
&:active::after {
|
|
131
|
+
width: 1rem;
|
|
132
|
+
}
|
|
133
|
+
&:checked {
|
|
134
|
+
background-color: var(--fs-accent-fill-default);
|
|
135
|
+
border-color: var(--fs-accent-fill-default);
|
|
136
|
+
&::after {
|
|
137
|
+
transform: translateX(1.25rem);
|
|
138
|
+
background-color: var(--fs-text-on-accent-primary);
|
|
139
|
+
}
|
|
140
|
+
&:active::after {
|
|
141
|
+
margin-left: calc(-0.25rem * 1.16);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
& span {
|
|
146
|
+
font-size: inherit;
|
|
147
|
+
color: inherit;
|
|
148
|
+
padding-inline: 0.8rem;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
</style>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ToggleSwitchProps } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* This file contains the Svelte component implementation of a Fluent UI Toggle Switch.
|
|
4
|
+
* The Fluent UI Toggle Switch is a customizable input element that allows users to switch between two states.
|
|
5
|
+
*
|
|
6
|
+
* - Usage:
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <script>
|
|
9
|
+
* import { ToggleSwitch } from 'fluentui-svelte';
|
|
10
|
+
* </script>
|
|
11
|
+
*
|
|
12
|
+
* <ToggleSwitch label="Toggle Switch" />
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
declare const ToggleSwitch: import("svelte").Component<ToggleSwitchProps, {}, "ref" | "checked">;
|
|
16
|
+
type ToggleSwitch = ReturnType<typeof ToggleSwitch>;
|
|
17
|
+
export default ToggleSwitch;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { HTMLLabelAttributes, SvelteHTMLElements } from 'svelte/elements';
|
|
2
|
+
/** @propsmith ToggleSwitchProps */
|
|
3
|
+
export type ToggleSwitchProps = {
|
|
4
|
+
/** Whether the switch is on.
|
|
5
|
+
* @bindable
|
|
6
|
+
*/
|
|
7
|
+
checked?: boolean;
|
|
8
|
+
/** The DOM reference of the input element.
|
|
9
|
+
* @bindable
|
|
10
|
+
*/
|
|
11
|
+
ref?: HTMLInputElement;
|
|
12
|
+
/** The label displayed next to the input element. */
|
|
13
|
+
label?: string;
|
|
14
|
+
/** The attributes to spread on the label wrapping the switch.
|
|
15
|
+
* @type HTMLLabelAttributes
|
|
16
|
+
*/
|
|
17
|
+
labelAttributes?: HTMLLabelAttributes;
|
|
18
|
+
/** The DOM reference of the label element. */
|
|
19
|
+
labelElement?: HTMLLabelElement;
|
|
20
|
+
} & SvelteHTMLElements['input'];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Tooltip
|
|
2
|
+
|
|
3
|
+
A tooltip displays additional information about another component. The information is displayed above and near the target component.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```svelte
|
|
8
|
+
<script>
|
|
9
|
+
import { Tooltip, Button } from 'fluentui-svelte';
|
|
10
|
+
</script>
|
|
11
|
+
|
|
12
|
+
<Tooltip content="Tooltip content" relationship="description" withArrow>
|
|
13
|
+
{#snippet children(attrs)}
|
|
14
|
+
<Button {...attrs}>Hover over me</Button>
|
|
15
|
+
{/snippet}
|
|
16
|
+
</Tooltip>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Component API
|
|
20
|
+
|
|
21
|
+
A brief explanation of the props that really need explaining. You can see the rest of the props in the Component Props table below.
|
|
22
|
+
|
|
23
|
+
### Content
|
|
24
|
+
|
|
25
|
+
The content prop specifies the content to be displayed in the tooltip when the user hovers over the target element. This can be a string, a Svelte component, or a Snippet.
|
|
26
|
+
|
|
27
|
+
### Position
|
|
28
|
+
|
|
29
|
+
The positionConfig prop allows you to specify your own custom position using Floating UI's position configuration. This gives you more control over the placement of the tooltip, allowing you to define custom offsets, middleware, and more.
|
|
30
|
+
|
|
31
|
+
### With Arrow
|
|
32
|
+
|
|
33
|
+
The withArrow prop is a boolean that, when set to true, adds an arrow to the tooltip pointing towards the target element. This can help visually connect the tooltip to the element it is describing.
|
|
34
|
+
|
|
35
|
+
```svelte
|
|
36
|
+
<Tooltip content="Tooltip with arrow" relationship="description" withArrow>
|
|
37
|
+
{#snippet children(attrs)}
|
|
38
|
+
<Button {...attrs}>With arrow</Button>
|
|
39
|
+
{/snippet}
|
|
40
|
+
</Tooltip>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### Delay
|
|
44
|
+
|
|
45
|
+
The openDelay and hideDelay props allow you to specify a delay, in milliseconds, before the tooltip is shown or hidden after the user hovers over the target element. This can help prevent the tooltip from appearing or disappearing too quickly.
|
|
46
|
+
|
|
47
|
+
```svelte
|
|
48
|
+
<Tooltip content="Delayed tooltip" openDelay={500} hideDelay={200}>
|
|
49
|
+
{#snippet children(attrs)}
|
|
50
|
+
<Button {...attrs}>Delayed</Button>
|
|
51
|
+
{/snippet}
|
|
52
|
+
</Tooltip>
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### onVisibleChange
|
|
56
|
+
|
|
57
|
+
The onVisibleChange prop is a callback function that is called whenever the visibility of the tooltip changes. This allows you to programmatically respond to the tooltip being shown or hidden.
|
|
58
|
+
|
|
59
|
+
### relationship
|
|
60
|
+
|
|
61
|
+
The relationship prop allows you to specify the relationship between the tooltip and the target element. This can be used for accessibility purposes, such as indicating that the tooltip is a description of the target element.
|
|
62
|
+
|
|
63
|
+
## Component Props
|
|
64
|
+
|
|
65
|
+
| Name | Type | Description |
|
|
66
|
+
| ------------------ | -------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
67
|
+
| `content` | `string \| Snippet \| Component` | The content to be displayed in the tooltip. This can be a string, a Svelte component, or a Snippet. |
|
|
68
|
+
| `positionConfig` | `Partial<ComputePositionConfig>` | The position configuration of the tooltip. This allows you to define custom offsets, middleware, and more. |
|
|
69
|
+
| `withArrow` | `boolean` | Whether the tooltip should display an arrow pointing towards the target element. |
|
|
70
|
+
| `openDelay` | `number` | The delay, in milliseconds, before the tooltip is shown after the user hovers over the target element. |
|
|
71
|
+
| `hideDelay` | `number` | The delay, in milliseconds, before the tooltip is hidden after the user stops hovering over the target element. |
|
|
72
|
+
| `onVisibleChange` | `(visible: boolean) => void` | A callback function that is called whenever the visibility of the tooltip changes. |
|
|
73
|
+
| `element` | `HTMLElement` | The DOM reference of the tooltip element. |
|
|
74
|
+
| Element Attributes | | All other attributes that can be applied to the tooltip element. |
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { on } from 'svelte/events';
|
|
3
|
+
import { useDebounce } from 'runed';
|
|
4
|
+
import { floating, roundByDPR, RenderSoC } from '../../internal/index.js';
|
|
5
|
+
import { Flyout } from '../../index.js';
|
|
6
|
+
import { PREFIX } from '../../internal/constants.js';
|
|
7
|
+
import { arrow, flip, hide, offset, shift, type ComputePositionReturn, type Side } from '@floating-ui/dom';
|
|
8
|
+
import type { Attachment } from 'svelte/attachments';
|
|
9
|
+
import type { TooltipProps } from './types.js';
|
|
10
|
+
|
|
11
|
+
const FALLBACK_ID = $props.id();
|
|
12
|
+
const COMPONENT_NAME = 'tooltip';
|
|
13
|
+
const ID = `${PREFIX}${COMPONENT_NAME}-${FALLBACK_ID}`;
|
|
14
|
+
|
|
15
|
+
let {
|
|
16
|
+
ref = $bindable(),
|
|
17
|
+
content = 'I am a tooltip',
|
|
18
|
+
placement,
|
|
19
|
+
target,
|
|
20
|
+
positionConfig: _config,
|
|
21
|
+
open = $bindable(false),
|
|
22
|
+
withArrow = false,
|
|
23
|
+
openDelay = 100,
|
|
24
|
+
hideDelay = 300,
|
|
25
|
+
preventClose = $bindable(false),
|
|
26
|
+
onVisibleChange,
|
|
27
|
+
animationFrame = false,
|
|
28
|
+
relationship = 'label',
|
|
29
|
+
class: classes,
|
|
30
|
+
id = ID,
|
|
31
|
+
children,
|
|
32
|
+
...attributes
|
|
33
|
+
}: TooltipProps = $props();
|
|
34
|
+
|
|
35
|
+
let anchor: HTMLElement | null = $state(null);
|
|
36
|
+
let explicitTrigger: HTMLElement | null = $state(null);
|
|
37
|
+
let arrowElement: HTMLElement | null = $state(null);
|
|
38
|
+
let hoveringTooltip = $state(false);
|
|
39
|
+
|
|
40
|
+
const childrenProps = $derived({
|
|
41
|
+
'aria-labelledby': relationship === 'label' ? id : undefined,
|
|
42
|
+
'aria-describedby': relationship === 'description' ? id : undefined
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
const handleOpen = useDebounce(
|
|
46
|
+
() => {
|
|
47
|
+
open = true;
|
|
48
|
+
onVisibleChange?.(true);
|
|
49
|
+
},
|
|
50
|
+
() => openDelay
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
const handleClose = useDebounce(
|
|
54
|
+
() => {
|
|
55
|
+
if (preventClose || hoveringTooltip) return;
|
|
56
|
+
open = false;
|
|
57
|
+
onVisibleChange?.(false);
|
|
58
|
+
},
|
|
59
|
+
() => hideDelay
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
const triggerRef: Attachment = (node) => {
|
|
63
|
+
explicitTrigger = node as HTMLElement;
|
|
64
|
+
return () => {
|
|
65
|
+
explicitTrigger = null;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
let triggerElement = $derived(
|
|
70
|
+
target ?? explicitTrigger ?? (anchor ? (anchor as HTMLElement).nextElementSibling : null)
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
let positionConfig = $derived({
|
|
74
|
+
..._config,
|
|
75
|
+
placement: placement ?? _config?.placement ?? 'top',
|
|
76
|
+
strategy: 'fixed' as const,
|
|
77
|
+
middleware: [
|
|
78
|
+
...(_config?.middleware ?? [offset(8), flip(), shift({ padding: 8 }), hide()]),
|
|
79
|
+
...(withArrow && arrowElement ? [arrow({ element: arrowElement })] : [])
|
|
80
|
+
]
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
const arrowComputeCallback = (data: ComputePositionReturn) => {
|
|
84
|
+
if (!arrowElement) return;
|
|
85
|
+
|
|
86
|
+
const { x, y } = data.middlewareData.arrow || {};
|
|
87
|
+
const { placement } = data;
|
|
88
|
+
|
|
89
|
+
const side = placement.split('-')[0] as Side;
|
|
90
|
+
|
|
91
|
+
// Invert the side of the arrow
|
|
92
|
+
const staticSide = {
|
|
93
|
+
top: 'bottom',
|
|
94
|
+
right: 'left',
|
|
95
|
+
bottom: 'top',
|
|
96
|
+
left: 'right'
|
|
97
|
+
}[side];
|
|
98
|
+
|
|
99
|
+
if (staticSide && arrowElement.style) {
|
|
100
|
+
Object.assign(arrowElement.style, {
|
|
101
|
+
left: x != null ? `${roundByDPR(x)}px` : '',
|
|
102
|
+
top: y != null ? `${roundByDPR(y)}px` : '',
|
|
103
|
+
[staticSide]: `${-(arrowElement.offsetWidth / 2) + 1}px`,
|
|
104
|
+
transform: 'rotate(45deg)'
|
|
105
|
+
});
|
|
106
|
+
arrowElement.style.setProperty(
|
|
107
|
+
'--fs-tooltip-mask-angle',
|
|
108
|
+
{
|
|
109
|
+
top: '135deg',
|
|
110
|
+
right: '-135deg',
|
|
111
|
+
bottom: '-45deg',
|
|
112
|
+
left: '45deg'
|
|
113
|
+
}[side]
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
$effect(() => {
|
|
119
|
+
if (!triggerElement) return;
|
|
120
|
+
|
|
121
|
+
const cleanups = [
|
|
122
|
+
on(triggerElement, 'mouseenter', () => handleOpen()),
|
|
123
|
+
on(triggerElement, 'mouseleave', () => handleClose()),
|
|
124
|
+
on(triggerElement, 'focusin', () => handleOpen()),
|
|
125
|
+
on(triggerElement, 'focusout', () => handleClose())
|
|
126
|
+
];
|
|
127
|
+
|
|
128
|
+
return () => cleanups.forEach((c) => c());
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
$effect(() => {
|
|
132
|
+
if (!ref || !open) return;
|
|
133
|
+
|
|
134
|
+
const cleanups = [
|
|
135
|
+
on(ref, 'mouseenter', () => {
|
|
136
|
+
hoveringTooltip = true;
|
|
137
|
+
}),
|
|
138
|
+
on(ref, 'mouseleave', () => {
|
|
139
|
+
hoveringTooltip = false;
|
|
140
|
+
handleClose();
|
|
141
|
+
})
|
|
142
|
+
];
|
|
143
|
+
|
|
144
|
+
return () => {
|
|
145
|
+
hoveringTooltip = false;
|
|
146
|
+
cleanups.forEach((c) => c());
|
|
147
|
+
};
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
$effect(() => {
|
|
151
|
+
if (!open) return;
|
|
152
|
+
|
|
153
|
+
return on(document, 'keydown', (e) => {
|
|
154
|
+
if (e.key === 'Escape') {
|
|
155
|
+
open = false;
|
|
156
|
+
onVisibleChange?.(false);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
</script>
|
|
161
|
+
|
|
162
|
+
<!-- @component
|
|
163
|
+
This is a implementation of Fluent UI tooltip component. The tooltip is a small pop-up box that appears when a user hovers over an element. It provides additional information about the element being hovered over.
|
|
164
|
+
|
|
165
|
+
- Usage:
|
|
166
|
+
```tsx
|
|
167
|
+
<script>
|
|
168
|
+
import { Tooltip } from 'fluentui-svelte';
|
|
169
|
+
</script>
|
|
170
|
+
|
|
171
|
+
<Tooltip>
|
|
172
|
+
<Button>Hover me!</Button>
|
|
173
|
+
</Tooltip>
|
|
174
|
+
```
|
|
175
|
+
-->
|
|
176
|
+
<Flyout
|
|
177
|
+
{id}
|
|
178
|
+
class={['fs-tooltip', !open && 'tooltip-hidden', classes]}
|
|
179
|
+
role="tooltip"
|
|
180
|
+
bind:ref
|
|
181
|
+
{...attributes}
|
|
182
|
+
{@attach triggerElement && open
|
|
183
|
+
? floating(triggerElement, positionConfig, {
|
|
184
|
+
onComputed: withArrow ? arrowComputeCallback : undefined,
|
|
185
|
+
animationFrame
|
|
186
|
+
})
|
|
187
|
+
: undefined}
|
|
188
|
+
>
|
|
189
|
+
{#if typeof content === 'string'}
|
|
190
|
+
{content}
|
|
191
|
+
{:else if typeof content === 'function'}
|
|
192
|
+
<RenderSoC SoC={content} />
|
|
193
|
+
{/if}
|
|
194
|
+
{#if withArrow}
|
|
195
|
+
<div class="fs-tooltip-arrow" aria-hidden="true" bind:this={arrowElement}></div>
|
|
196
|
+
{/if}
|
|
197
|
+
</Flyout>
|
|
198
|
+
|
|
199
|
+
{#if !explicitTrigger && !target}
|
|
200
|
+
<i hidden bind:this={anchor}></i>
|
|
201
|
+
{/if}
|
|
202
|
+
|
|
203
|
+
{@render children?.(childrenProps, triggerRef)}
|
|
204
|
+
|
|
205
|
+
<style>
|
|
206
|
+
:global(.fs-tooltip) {
|
|
207
|
+
position: fixed !important;
|
|
208
|
+
top: 0;
|
|
209
|
+
left: 0;
|
|
210
|
+
z-index: 50;
|
|
211
|
+
& .fs-tooltip-arrow {
|
|
212
|
+
position: absolute;
|
|
213
|
+
width: 16px;
|
|
214
|
+
height: 16px;
|
|
215
|
+
background: var(--fs-acrylic-background-default);
|
|
216
|
+
border-radius: var(--fs-control-border-radius);
|
|
217
|
+
border: 1px solid var(--fs-control-surface-stroke-flyout);
|
|
218
|
+
transform: rotate(45deg);
|
|
219
|
+
mask: linear-gradient(
|
|
220
|
+
var(--fs-tooltip-mask-angle, -45deg),
|
|
221
|
+
transparent 0%,
|
|
222
|
+
transparent 50%,
|
|
223
|
+
black 50%,
|
|
224
|
+
black 100%
|
|
225
|
+
);
|
|
226
|
+
&::before {
|
|
227
|
+
content: '';
|
|
228
|
+
border-radius: calc(var(--fs-control-overlay-border-radius) - 0.063rem);
|
|
229
|
+
width: 100%;
|
|
230
|
+
height: 100%;
|
|
231
|
+
position: absolute;
|
|
232
|
+
inset: 0;
|
|
233
|
+
background: var(--fs-acrilic-noise);
|
|
234
|
+
background-size: 2.5rem;
|
|
235
|
+
opacity: 0.1;
|
|
236
|
+
filter: grayscale(1);
|
|
237
|
+
z-index: 0;
|
|
238
|
+
pointer-events: none;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
&.tooltip-hidden {
|
|
242
|
+
visibility: hidden !important;
|
|
243
|
+
pointer-events: none;
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
</style>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TooltipProps } from './types.ts';
|
|
2
|
+
/**
|
|
3
|
+
* This is a implementation of Fluent UI tooltip component. The tooltip is a small pop-up box that appears when a user hovers over an element. It provides additional information about the element being hovered over.
|
|
4
|
+
*
|
|
5
|
+
* - Usage:
|
|
6
|
+
* ```tsx
|
|
7
|
+
* <script>
|
|
8
|
+
* import { Tooltip } from 'fluentui-svelte';
|
|
9
|
+
* </script>
|
|
10
|
+
*
|
|
11
|
+
* <Tooltip>
|
|
12
|
+
* <Button>Hover me!</Button>
|
|
13
|
+
* </Tooltip>
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
declare const Tooltip: import("svelte").Component<TooltipProps, {}, "ref" | "open" | "preventClose">;
|
|
17
|
+
type Tooltip = ReturnType<typeof Tooltip>;
|
|
18
|
+
export default Tooltip;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import type { ComputePositionConfig, Placement } from '@floating-ui/dom';
|
|
2
|
+
import type { Component, Snippet } from 'svelte';
|
|
3
|
+
import type { Attachment } from 'svelte/attachments';
|
|
4
|
+
import type { HTMLAttributes } from 'svelte/elements';
|
|
5
|
+
/** @propsmith TooltipProps */
|
|
6
|
+
export type TooltipProps = {
|
|
7
|
+
/** The content to display in the tooltip.
|
|
8
|
+
* @type string | Snippet | Component
|
|
9
|
+
* @default 'I am a tooltip'
|
|
10
|
+
*/
|
|
11
|
+
content?: string | Snippet | Component;
|
|
12
|
+
/** The class to apply to the tooltip. */
|
|
13
|
+
class?: string;
|
|
14
|
+
/** The DOM reference of the tooltip element.
|
|
15
|
+
* @bindable
|
|
16
|
+
*/
|
|
17
|
+
ref?: HTMLElement;
|
|
18
|
+
/** The element the tooltip is anchored to. Falls back to the rendered children. */
|
|
19
|
+
target?: HTMLElement;
|
|
20
|
+
/** Controls the open state of the tooltip.
|
|
21
|
+
* @default false
|
|
22
|
+
* @bindable
|
|
23
|
+
*/
|
|
24
|
+
open?: boolean;
|
|
25
|
+
/** Whether the tooltip has an arrow pointing at its target.
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
28
|
+
withArrow?: boolean;
|
|
29
|
+
/** The position configuration handed over to floating-ui.
|
|
30
|
+
* @type ComputePositionConfig
|
|
31
|
+
*/
|
|
32
|
+
positionConfig?: Partial<ComputePositionConfig>;
|
|
33
|
+
/** The delay in milliseconds before the tooltip is shown.
|
|
34
|
+
* @default 100
|
|
35
|
+
*/
|
|
36
|
+
openDelay?: number;
|
|
37
|
+
/** The delay in milliseconds before the tooltip is hidden.
|
|
38
|
+
* @default 300
|
|
39
|
+
*/
|
|
40
|
+
hideDelay?: number;
|
|
41
|
+
/** Callback function that is called when the visibility of the tooltip changes. */
|
|
42
|
+
onVisibleChange?: (visible: boolean) => void;
|
|
43
|
+
/** The relationship of the tooltip to its target, which decides how it is announced.
|
|
44
|
+
* @default 'label'
|
|
45
|
+
*/
|
|
46
|
+
relationship?: 'label' | 'description' | 'inaccessible';
|
|
47
|
+
/** Where the tooltip is placed relative to its target. */
|
|
48
|
+
placement?: Placement;
|
|
49
|
+
/** The id of the tooltip element, referenced by the target. Falls back to a generated id. */
|
|
50
|
+
id?: string;
|
|
51
|
+
/** Keeps the tooltip open until it is closed by hand.
|
|
52
|
+
* @default false
|
|
53
|
+
* @bindable
|
|
54
|
+
*/
|
|
55
|
+
preventClose?: boolean;
|
|
56
|
+
/** Repositions the tooltip on every animation frame, for a target that keeps moving.
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
animationFrame?: boolean;
|
|
60
|
+
/** The target of the tooltip. It receives the ARIA attributes and the attachment to spread on your element.
|
|
61
|
+
* @type Snippet
|
|
62
|
+
*/
|
|
63
|
+
children?: Snippet<[{
|
|
64
|
+
'aria-labelledby'?: string;
|
|
65
|
+
'aria-describedby'?: string;
|
|
66
|
+
}, Attachment]>;
|
|
67
|
+
} & Omit<HTMLAttributes<HTMLDivElement>, 'children'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|