fluent-svelte-extra 1.9.5 → 1.9.6
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/Acrylic/AcrylicSurface.scss +6 -6
- package/Acrylic/AcrylicSurface.svelte +26 -26
- package/AutoSuggestBox/AutoSuggestBox.scss +44 -44
- package/AutoSuggestBox/AutoSuggestBox.svelte +85 -85
- package/Button/Button.scss +94 -94
- package/Button/Button.svelte +25 -25
- package/CalendarDatePicker/CalendarDatePicker.scss +15 -15
- package/CalendarDatePicker/CalendarDatePicker.svelte +45 -45
- package/CalendarView/CalendarView.scss +156 -156
- package/CalendarView/CalendarView.svelte +269 -269
- package/CalendarView/CalendarViewItem.scss +130 -130
- package/CalendarView/CalendarViewItem.svelte +23 -23
- package/Checkbox/Checkbox.scss +117 -117
- package/Checkbox/Checkbox.svelte +52 -52
- package/ComboBox/ComboBox.scss +152 -152
- package/ComboBox/ComboBox.svelte +155 -155
- package/ComboBox/ComboBoxItem.scss +80 -80
- package/ComboBox/ComboBoxItem.svelte +17 -17
- package/ContentDialog/ContentDialog.scss +98 -98
- package/ContentDialog/ContentDialog.svelte +76 -76
- package/ContextMenu/ContextMenu.scss +11 -11
- package/ContextMenu/ContextMenu.svelte +37 -37
- package/ExpandMenu/ExpandMenu.svelte +9 -9
- package/Expander/Expander.scss +136 -136
- package/Expander/Expander.svelte +95 -95
- package/Flipper/Flipper.svelte +37 -37
- package/Flyout/FlyoutSurface.scss +14 -14
- package/Flyout/FlyoutSurface.svelte +7 -7
- package/Flyout/FlyoutWrapper.scss +86 -86
- package/Flyout/FlyoutWrapper.svelte +60 -60
- package/GridView/GridViewItem.scss +20 -20
- package/GridView/GridViewItem.svelte +33 -25
- package/IconButton/IconButton.scss +32 -32
- package/IconButton/IconButton.svelte +28 -28
- package/InfoBadge/InfoBadge.scss +39 -39
- package/InfoBadge/InfoBadge.svelte +59 -59
- package/InfoBar/InfoBar.scss +122 -122
- package/InfoBar/InfoBar.svelte +76 -76
- package/ListItem/ListItem.scss +76 -76
- package/ListItem/ListItem.svelte +49 -49
- package/MenuBar/MenuBar.scss +10 -10
- package/MenuBar/MenuBar.svelte +7 -7
- package/MenuBar/MenuBarItem.scss +38 -38
- package/MenuBar/MenuBarItem.svelte +38 -38
- package/MenuFlyout/MenuFlyoutDivider.scss +7 -7
- package/MenuFlyout/MenuFlyoutDivider.svelte +5 -5
- package/MenuFlyout/MenuFlyoutItem.scss +146 -146
- package/MenuFlyout/MenuFlyoutItem.svelte +136 -136
- package/MenuFlyout/MenuFlyoutSurface.scss +79 -79
- package/MenuFlyout/MenuFlyoutSurface.svelte +22 -22
- package/MenuFlyout/MenuFlyoutWrapper.scss +64 -64
- package/MenuFlyout/MenuFlyoutWrapper.svelte +37 -37
- package/NavigationView/NavigationView.svelte +29 -29
- package/NumberBox/NumberBox.scss +31 -31
- package/NumberBox/NumberBox.svelte +166 -166
- package/PersonPicture/PersonPicture.scss +35 -35
- package/PersonPicture/PersonPicture.svelte +37 -37
- package/ProgressBar/ProgressBar.scss +83 -83
- package/ProgressBar/ProgressBar.svelte +36 -36
- package/ProgressRing/ProgressRing.scss +37 -37
- package/ProgressRing/ProgressRing.svelte +37 -37
- package/README.md +19 -19
- package/RadioButton/RadioButton.scss +114 -114
- package/RadioButton/RadioButton.svelte +38 -38
- package/RangeSlider/RangeSlider.svelte +26 -26
- package/ScrollView/ScrollView.svelte +3 -3
- package/Slider/Slider.scss +281 -281
- package/Slider/Slider.svelte +121 -121
- package/TeachingTip/TeachingTipSurface.scss +14 -14
- package/TeachingTip/TeachingTipSurface.svelte +7 -7
- package/TeachingTip/TeachingTipWrapper.scss +181 -79
- package/TeachingTip/TeachingTipWrapper.svelte +196 -73
- package/TeachingTip/TeachingTipWrapper.svelte.d.ts +6 -0
- package/TextArea/TextArea.scss +115 -115
- package/TextArea/TextArea.svelte +65 -65
- package/TextBlock/TextBlock.scss +66 -66
- package/TextBlock/TextBlock.svelte +12 -12
- package/TextBox/TextBox.scss +108 -108
- package/TextBox/TextBox.svelte +121 -121
- package/TextBox/TextBox.svelte.d.ts +7 -0
- package/TextBox/TextBoxButton.scss +34 -34
- package/TextBox/TextBoxButton.svelte +13 -13
- package/ToggleSwitch/ToggleSwitch.scss +118 -118
- package/ToggleSwitch/ToggleSwitch.svelte +29 -29
- package/Tooltip/TooltipSurface.scss +16 -16
- package/Tooltip/TooltipSurface.svelte +13 -13
- package/Tooltip/TooltipWrapper.scss +66 -66
- package/Tooltip/TooltipWrapper.svelte +37 -37
- package/_mixins.scss +130 -130
- package/package.json +1 -1
- package/svelte-jsx.d.ts +14 -14
- package/switchable.css +401 -401
- package/theme.css +744 -744
|
@@ -40,12 +40,12 @@ onMount(() => {
|
|
|
40
40
|
findText.classList.add("expand-menu-text");
|
|
41
41
|
}
|
|
42
42
|
});
|
|
43
|
-
</script>
|
|
44
|
-
|
|
45
|
-
<div class="glob">
|
|
46
|
-
<div role="list" class="expand-menu" bind:this={root} use:forwardEvents>
|
|
47
|
-
<slot />
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
|
|
51
|
-
<style>.expand-menu{background-color:var(--fds-solid-background-quarternary);display:flex;flex-direction:column;overflow:hidden;transition:width var(--fds-control-normal-duration) var(--fds-control-fast-out-slow-in-easing)}.glob :global(.expand-menu-closed){width:48px!important}.glob :global(.expand-menu-closed>li[role=listitem]){padding-inline:unset!important}.glob :global(.expand-menu-icon){-webkit-margin-end:unset!important;left:11px;margin-inline-end:unset!important;min-height:16px;min-width:16px;position:absolute}.glob :global(.expand-menu-text){left:45px;position:absolute;white-space:nowrap!important}:global(.fds-copy-calculation){display:block;left:-1000000000px;opacity:0;position:absolute}</style>
|
|
43
|
+
</script>
|
|
44
|
+
|
|
45
|
+
<div class="glob">
|
|
46
|
+
<div role="list" class="expand-menu" bind:this={root} use:forwardEvents>
|
|
47
|
+
<slot />
|
|
48
|
+
</div>
|
|
49
|
+
</div>
|
|
50
|
+
|
|
51
|
+
<style>.expand-menu{background-color:var(--fds-solid-background-quarternary);display:flex;flex-direction:column;overflow:hidden;transition:width var(--fds-control-normal-duration) var(--fds-control-fast-out-slow-in-easing)}.glob :global(.expand-menu-closed){width:48px!important}.glob :global(.expand-menu-closed>li[role=listitem]){padding-inline:unset!important}.glob :global(.expand-menu-icon){-webkit-margin-end:unset!important;left:11px;margin-inline-end:unset!important;min-height:16px;min-width:16px;position:absolute}.glob :global(.expand-menu-text){left:45px;position:absolute;white-space:nowrap!important}:global(.fds-copy-calculation){display:block;left:-1000000000px;opacity:0;position:absolute}</style>
|
package/Expander/Expander.scss
CHANGED
|
@@ -1,136 +1,136 @@
|
|
|
1
|
-
@use "../mixins" as *;
|
|
2
|
-
|
|
3
|
-
.expander {
|
|
4
|
-
@include flex($direction: column);
|
|
5
|
-
color: var(--text-primary);
|
|
6
|
-
border-radius: var(--control-corner-radius);
|
|
7
|
-
inline-size: 100%;
|
|
8
|
-
user-select: none;
|
|
9
|
-
.expander-header {
|
|
10
|
-
transition: var(--fds-control-faster-duration) ease background;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
&.expandable .expander-header {
|
|
14
|
-
&:hover {
|
|
15
|
-
background-color: var(--control-fill-secondary);
|
|
16
|
-
border: 1px solid var(--fds-control-stroke-default);
|
|
17
|
-
}
|
|
18
|
-
&:active {
|
|
19
|
-
background-color: var(--control-fill-tertiary);
|
|
20
|
-
border: 1px solid var(--fds-control-stroke-default);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
&.direction- {
|
|
25
|
-
&down {
|
|
26
|
-
.expander-content {
|
|
27
|
-
border-block-start: none;
|
|
28
|
-
border-radius: var(--control-corner-radius);
|
|
29
|
-
border-start-start-radius: 0 !important;
|
|
30
|
-
border-start-end-radius: 0 !important;
|
|
31
|
-
}
|
|
32
|
-
&.expanded .expander-header {
|
|
33
|
-
border-radius: var(--control-corner-radius);
|
|
34
|
-
border-end-start-radius: 0 !important;
|
|
35
|
-
border-end-end-radius: 0 !important;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
&up {
|
|
39
|
-
.expander-content {
|
|
40
|
-
border-bottom: none;
|
|
41
|
-
border-radius: var(--control-corner-radius);
|
|
42
|
-
border-end-start-radius: 0 !important;
|
|
43
|
-
border-end-end-radius: 0 !important;
|
|
44
|
-
&-anchor {
|
|
45
|
-
order: -1;
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
&.expanded .expander-header {
|
|
49
|
-
border-radius: var(--control-corner-radius);
|
|
50
|
-
border-start-start-radius: 0 !important;
|
|
51
|
-
border-start-end-radius: 0 !important;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
&.expanded {
|
|
56
|
-
.expander {
|
|
57
|
-
&-content {
|
|
58
|
-
transform: none;
|
|
59
|
-
}
|
|
60
|
-
&-chevron svg {
|
|
61
|
-
transform: rotate(180deg);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
> h3 {
|
|
66
|
-
display: contents;
|
|
67
|
-
}
|
|
68
|
-
&-icon {
|
|
69
|
-
flex: 0 0 auto;
|
|
70
|
-
color: var(--text-primary);
|
|
71
|
-
inline-size: 16px;
|
|
72
|
-
block-size: 16px;
|
|
73
|
-
margin-inline-end: 16px;
|
|
74
|
-
> :global(svg) {
|
|
75
|
-
@include icon($size: 16px);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
&-header {
|
|
79
|
-
@include flex($align: center);
|
|
80
|
-
@include typography-body;
|
|
81
|
-
text-align: start;
|
|
82
|
-
outline: none;
|
|
83
|
-
box-sizing: border-box;
|
|
84
|
-
min-height: 50px;
|
|
85
|
-
padding-inline-start: 16px;
|
|
86
|
-
padding: 8px;
|
|
87
|
-
background-clip: padding-box;
|
|
88
|
-
background-color: var(--card-background-default);
|
|
89
|
-
border: 1px solid var(--card-stroke-default);
|
|
90
|
-
border-radius: var(--control-corner-radius);
|
|
91
|
-
&-title {
|
|
92
|
-
flex: 1 1 auto;
|
|
93
|
-
}
|
|
94
|
-
&:focus-visible {
|
|
95
|
-
box-shadow: var(--focus-stroke);
|
|
96
|
-
}
|
|
97
|
-
&:active .expander-chevron {
|
|
98
|
-
color: var(--text-secondary);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
&-chevron {
|
|
102
|
-
@include flex($align: center, $justify: center);
|
|
103
|
-
flex: 0 0 auto;
|
|
104
|
-
inline-size: 32px;
|
|
105
|
-
block-size: 32px;
|
|
106
|
-
margin-inline-start: 20px;
|
|
107
|
-
border: none;
|
|
108
|
-
outline: none;
|
|
109
|
-
appearance: none;
|
|
110
|
-
color: var(--text-primary);
|
|
111
|
-
border-radius: var(--control-corner-radius);
|
|
112
|
-
background-color: var(--subtle-fill-transparent);
|
|
113
|
-
&:focus-visible {
|
|
114
|
-
box-shadow: var(--focus-stroke);
|
|
115
|
-
}
|
|
116
|
-
svg {
|
|
117
|
-
inline-size: 12px;
|
|
118
|
-
block-size: 12px;
|
|
119
|
-
fill: currentColor;
|
|
120
|
-
transition: calc(var(--control-fast-duration)) var(--control-fast-out-slow-in-easing)
|
|
121
|
-
transform var(--control-fast-duration);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
&-content {
|
|
125
|
-
@include typography-body;
|
|
126
|
-
background-clip: padding-box;
|
|
127
|
-
background-color: var(--card-background-secondary);
|
|
128
|
-
border: 1px solid var(--card-stroke-default);
|
|
129
|
-
padding: 16px;
|
|
130
|
-
transition: var(--control-fast-duration) cubic-bezier(1, 1, 0, 1) transform;
|
|
131
|
-
&-anchor {
|
|
132
|
-
position: relative;
|
|
133
|
-
max-block-size: 6.02e23vmax;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.expander {
|
|
4
|
+
@include flex($direction: column);
|
|
5
|
+
color: var(--text-primary);
|
|
6
|
+
border-radius: var(--control-corner-radius);
|
|
7
|
+
inline-size: 100%;
|
|
8
|
+
user-select: none;
|
|
9
|
+
.expander-header {
|
|
10
|
+
transition: var(--fds-control-faster-duration) ease background;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
&.expandable .expander-header {
|
|
14
|
+
&:hover {
|
|
15
|
+
background-color: var(--control-fill-secondary);
|
|
16
|
+
border: 1px solid var(--fds-control-stroke-default);
|
|
17
|
+
}
|
|
18
|
+
&:active {
|
|
19
|
+
background-color: var(--control-fill-tertiary);
|
|
20
|
+
border: 1px solid var(--fds-control-stroke-default);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&.direction- {
|
|
25
|
+
&down {
|
|
26
|
+
.expander-content {
|
|
27
|
+
border-block-start: none;
|
|
28
|
+
border-radius: var(--control-corner-radius);
|
|
29
|
+
border-start-start-radius: 0 !important;
|
|
30
|
+
border-start-end-radius: 0 !important;
|
|
31
|
+
}
|
|
32
|
+
&.expanded .expander-header {
|
|
33
|
+
border-radius: var(--control-corner-radius);
|
|
34
|
+
border-end-start-radius: 0 !important;
|
|
35
|
+
border-end-end-radius: 0 !important;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
&up {
|
|
39
|
+
.expander-content {
|
|
40
|
+
border-bottom: none;
|
|
41
|
+
border-radius: var(--control-corner-radius);
|
|
42
|
+
border-end-start-radius: 0 !important;
|
|
43
|
+
border-end-end-radius: 0 !important;
|
|
44
|
+
&-anchor {
|
|
45
|
+
order: -1;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
&.expanded .expander-header {
|
|
49
|
+
border-radius: var(--control-corner-radius);
|
|
50
|
+
border-start-start-radius: 0 !important;
|
|
51
|
+
border-start-end-radius: 0 !important;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
&.expanded {
|
|
56
|
+
.expander {
|
|
57
|
+
&-content {
|
|
58
|
+
transform: none;
|
|
59
|
+
}
|
|
60
|
+
&-chevron svg {
|
|
61
|
+
transform: rotate(180deg);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
> h3 {
|
|
66
|
+
display: contents;
|
|
67
|
+
}
|
|
68
|
+
&-icon {
|
|
69
|
+
flex: 0 0 auto;
|
|
70
|
+
color: var(--text-primary);
|
|
71
|
+
inline-size: 16px;
|
|
72
|
+
block-size: 16px;
|
|
73
|
+
margin-inline-end: 16px;
|
|
74
|
+
> :global(svg) {
|
|
75
|
+
@include icon($size: 16px);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
&-header {
|
|
79
|
+
@include flex($align: center);
|
|
80
|
+
@include typography-body;
|
|
81
|
+
text-align: start;
|
|
82
|
+
outline: none;
|
|
83
|
+
box-sizing: border-box;
|
|
84
|
+
min-height: 50px;
|
|
85
|
+
padding-inline-start: 16px;
|
|
86
|
+
padding: 8px;
|
|
87
|
+
background-clip: padding-box;
|
|
88
|
+
background-color: var(--card-background-default);
|
|
89
|
+
border: 1px solid var(--card-stroke-default);
|
|
90
|
+
border-radius: var(--control-corner-radius);
|
|
91
|
+
&-title {
|
|
92
|
+
flex: 1 1 auto;
|
|
93
|
+
}
|
|
94
|
+
&:focus-visible {
|
|
95
|
+
box-shadow: var(--focus-stroke);
|
|
96
|
+
}
|
|
97
|
+
&:active .expander-chevron {
|
|
98
|
+
color: var(--text-secondary);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
&-chevron {
|
|
102
|
+
@include flex($align: center, $justify: center);
|
|
103
|
+
flex: 0 0 auto;
|
|
104
|
+
inline-size: 32px;
|
|
105
|
+
block-size: 32px;
|
|
106
|
+
margin-inline-start: 20px;
|
|
107
|
+
border: none;
|
|
108
|
+
outline: none;
|
|
109
|
+
appearance: none;
|
|
110
|
+
color: var(--text-primary);
|
|
111
|
+
border-radius: var(--control-corner-radius);
|
|
112
|
+
background-color: var(--subtle-fill-transparent);
|
|
113
|
+
&:focus-visible {
|
|
114
|
+
box-shadow: var(--focus-stroke);
|
|
115
|
+
}
|
|
116
|
+
svg {
|
|
117
|
+
inline-size: 12px;
|
|
118
|
+
block-size: 12px;
|
|
119
|
+
fill: currentColor;
|
|
120
|
+
transition: calc(var(--control-fast-duration)) var(--control-fast-out-slow-in-easing)
|
|
121
|
+
transform var(--control-fast-duration);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
&-content {
|
|
125
|
+
@include typography-body;
|
|
126
|
+
background-clip: padding-box;
|
|
127
|
+
background-color: var(--card-background-secondary);
|
|
128
|
+
border: 1px solid var(--card-stroke-default);
|
|
129
|
+
padding: 16px;
|
|
130
|
+
transition: var(--control-fast-duration) cubic-bezier(1, 1, 0, 1) transform;
|
|
131
|
+
&-anchor {
|
|
132
|
+
position: relative;
|
|
133
|
+
max-block-size: 6.02e23vmax;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
package/Expander/Expander.svelte
CHANGED
|
@@ -43,101 +43,101 @@ function fadeSlide(node, options) {
|
|
|
43
43
|
return {
|
|
44
44
|
duration: options.duration,
|
|
45
45
|
easing: options.easing,
|
|
46
|
-
css: t => `
|
|
47
|
-
${slideTrans.css(t, options.duration)}
|
|
48
|
-
opacity: ${t};
|
|
46
|
+
css: t => `
|
|
47
|
+
${slideTrans.css(t, options.duration)}
|
|
48
|
+
opacity: ${t};
|
|
49
49
|
`
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
-
</script>
|
|
53
|
-
|
|
54
|
-
<!--
|
|
55
|
-
@component
|
|
56
|
-
Expanders are controls that display a header and a collapsable content area. The content area can be expanded clicking on the header. [Docs](https://fluent-svelte.vercel.app/docs/components/expander)
|
|
57
|
-
- Usage:
|
|
58
|
-
```tsx
|
|
59
|
-
<Expander>
|
|
60
|
-
Header
|
|
61
|
-
<svelte:fragment slot="content">
|
|
62
|
-
Content
|
|
63
|
-
</svelte:fragment>
|
|
64
|
-
</Expander>
|
|
65
|
-
```
|
|
66
|
-
-->
|
|
67
|
-
<div
|
|
68
|
-
use:forwardEvents
|
|
69
|
-
class="expander direction-{direction} {className}"
|
|
70
|
-
role="region"
|
|
71
|
-
bind:this={containerElement}
|
|
72
|
-
class:expanded
|
|
73
|
-
class:expandable
|
|
74
|
-
{...$$restProps}
|
|
75
|
-
>
|
|
76
|
-
<svelte:element this="h">
|
|
77
|
-
<div
|
|
78
|
-
role="button"
|
|
79
|
-
id={headerId}
|
|
80
|
-
aria-controls={contentId}
|
|
81
|
-
class="expander-header"
|
|
82
|
-
aria-expanded={expanded}
|
|
83
|
-
tabindex={expandable ? 0 : -1}
|
|
84
|
-
bind:this={headerElement}
|
|
85
|
-
on:keydown={handleKeydown}
|
|
86
|
-
on:click={() => {
|
|
87
|
-
if (expandable) {
|
|
88
|
-
expanded = !expanded;
|
|
89
|
-
}
|
|
90
|
-
}}
|
|
91
|
-
>
|
|
92
|
-
{#if $$slots.icon}
|
|
93
|
-
<div class="expander-icon">
|
|
94
|
-
<slot name="icon" />
|
|
95
|
-
</div>
|
|
96
|
-
{/if}
|
|
97
|
-
<span class="expander-header-title">
|
|
98
|
-
<slot />
|
|
99
|
-
</span>
|
|
100
|
-
|
|
101
|
-
{#if expandable}
|
|
102
|
-
<button
|
|
103
|
-
class="expander-chevron"
|
|
104
|
-
type="button"
|
|
105
|
-
tabindex="-1"
|
|
106
|
-
id={contentId}
|
|
107
|
-
aria-labelledby={headerId}
|
|
108
|
-
>
|
|
109
|
-
<svg
|
|
110
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
111
|
-
width="12"
|
|
112
|
-
height="12"
|
|
113
|
-
viewBox="0 0 12 12"
|
|
114
|
-
>
|
|
115
|
-
{#if direction === "down"}
|
|
116
|
-
<path
|
|
117
|
-
fill="currentColor"
|
|
118
|
-
d="M2.14645 4.64645C2.34171 4.45118 2.65829 4.45118 2.85355 4.64645L6 7.79289L9.14645 4.64645C9.34171 4.45118 9.65829 4.45118 9.85355 4.64645C10.0488 4.84171 10.0488 5.15829 9.85355 5.35355L6.35355 8.85355C6.15829 9.04882 5.84171 9.04882 5.64645 8.85355L2.14645 5.35355C1.95118 5.15829 1.95118 4.84171 2.14645 4.64645Z"
|
|
119
|
-
/>
|
|
120
|
-
{:else}
|
|
121
|
-
<path
|
|
122
|
-
fill="currentColor"
|
|
123
|
-
d="M2.14645 7.35355C2.34171 7.54882 2.65829 7.54882 2.85355 7.35355L6 4.20711L9.14645 7.35355C9.34171 7.54882 9.65829 7.54882 9.85355 7.35355C10.0488 7.15829 10.0488 6.84171 9.85355 6.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645L2.14645 6.64645C1.95118 6.84171 1.95118 7.15829 2.14645 7.35355Z"
|
|
124
|
-
/>
|
|
125
|
-
{/if}
|
|
126
|
-
</svg>
|
|
127
|
-
</button>
|
|
128
|
-
{/if}
|
|
129
|
-
</div>
|
|
130
|
-
</svelte:element>
|
|
131
|
-
{#if expanded}
|
|
132
|
-
<div
|
|
133
|
-
class="expander-content-anchor"
|
|
134
|
-
transition:fadeSlide={{ duration: 500, easing: expoOut }}
|
|
135
|
-
>
|
|
136
|
-
<div class="expander-content" bind:this={contentElement}>
|
|
137
|
-
<slot name="content" />
|
|
138
|
-
</div>
|
|
139
|
-
</div>
|
|
140
|
-
{/if}
|
|
141
|
-
</div>
|
|
142
|
-
|
|
143
|
-
<style >.expander{border-radius:var(--fds-control-corner-radius);color:var(--fds-text-primary);display:flex;flex-direction:column;inline-size:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander .expander-header{transition:var(--fds-control-faster-duration) ease background}.expander.expandable .expander-header:hover{background-color:var(--fds-control-fill-secondary);border:1px solid var(--fds-control-stroke-default)}.expander.expandable .expander-header:active{background-color:var(--fds-control-fill-tertiary);border:1px solid var(--fds-control-stroke-default)}.expander.direction-down .expander-content{-webkit-border-before:none;border-block-start:none;border-radius:var(--fds-control-corner-radius);border-start-end-radius:0!important;border-start-start-radius:0!important}.expander.direction-down.expanded .expander-header{border-end-end-radius:0!important;border-end-start-radius:0!important;border-radius:var(--fds-control-corner-radius)}.expander.direction-up .expander-content{border-bottom:none;border-end-end-radius:0!important;border-end-start-radius:0!important;border-radius:var(--fds-control-corner-radius)}.expander.direction-up .expander-content-anchor{order:-1}.expander.direction-up.expanded .expander-header{border-radius:var(--fds-control-corner-radius);border-start-end-radius:0!important;border-start-start-radius:0!important}.expander.expanded .expander-content{transform:none}.expander.expanded .expander-chevron svg{transform:rotate(180deg)}.expander>h3{display:contents}.expander-icon{-webkit-margin-end:16px;block-size:16px;color:var(--fds-text-primary);flex:0 0 auto;inline-size:16px;margin-inline-end:16px}.expander-icon>:global(svg){fill:currentColor;block-size:auto;inline-size:16px}.expander-header{-webkit-padding-start:16px;align-items:center;background-clip:padding-box;background-color:var(--fds-card-background-default);border:1px solid var(--fds-card-stroke-default);border-radius:var(--fds-control-corner-radius);box-sizing:border-box;display:flex;font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-height:50px;outline:none;padding:8px;padding-inline-start:16px;text-align:start;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander-header-title{flex:1 1 auto}.expander-header:focus-visible{box-shadow:var(--fds-focus-stroke)}.expander-header:active .expander-chevron{color:var(--fds-text-secondary)}.expander-chevron{-webkit-margin-start:20px;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--fds-subtle-fill-transparent);block-size:32px;border:none;border-radius:var(--fds-control-corner-radius);color:var(--fds-text-primary);display:flex;flex:0 0 auto;inline-size:32px;justify-content:center;margin-inline-start:20px;outline:none}.expander-chevron:focus-visible{box-shadow:var(--fds-focus-stroke)}.expander-chevron svg{fill:currentColor;block-size:12px;inline-size:12px;transition:calc(var(--fds-control-fast-duration)) var(--fds-control-fast-out-slow-in-easing) transform var(--fds-control-fast-duration)}.expander-content{background-clip:padding-box;background-color:var(--fds-card-background-secondary);border:1px solid var(--fds-card-stroke-default);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;padding:16px;transition:var(--fds-control-fast-duration) cubic-bezier(1,1,0,1) transform;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander-content-anchor{max-block-size:6.019999999999999e+23vmax;position:relative}</style>
|
|
52
|
+
</script>
|
|
53
|
+
|
|
54
|
+
<!--
|
|
55
|
+
@component
|
|
56
|
+
Expanders are controls that display a header and a collapsable content area. The content area can be expanded clicking on the header. [Docs](https://fluent-svelte.vercel.app/docs/components/expander)
|
|
57
|
+
- Usage:
|
|
58
|
+
```tsx
|
|
59
|
+
<Expander>
|
|
60
|
+
Header
|
|
61
|
+
<svelte:fragment slot="content">
|
|
62
|
+
Content
|
|
63
|
+
</svelte:fragment>
|
|
64
|
+
</Expander>
|
|
65
|
+
```
|
|
66
|
+
-->
|
|
67
|
+
<div
|
|
68
|
+
use:forwardEvents
|
|
69
|
+
class="expander direction-{direction} {className}"
|
|
70
|
+
role="region"
|
|
71
|
+
bind:this={containerElement}
|
|
72
|
+
class:expanded
|
|
73
|
+
class:expandable
|
|
74
|
+
{...$$restProps}
|
|
75
|
+
>
|
|
76
|
+
<svelte:element this="h">
|
|
77
|
+
<div
|
|
78
|
+
role="button"
|
|
79
|
+
id={headerId}
|
|
80
|
+
aria-controls={contentId}
|
|
81
|
+
class="expander-header"
|
|
82
|
+
aria-expanded={expanded}
|
|
83
|
+
tabindex={expandable ? 0 : -1}
|
|
84
|
+
bind:this={headerElement}
|
|
85
|
+
on:keydown={handleKeydown}
|
|
86
|
+
on:click={() => {
|
|
87
|
+
if (expandable) {
|
|
88
|
+
expanded = !expanded;
|
|
89
|
+
}
|
|
90
|
+
}}
|
|
91
|
+
>
|
|
92
|
+
{#if $$slots.icon}
|
|
93
|
+
<div class="expander-icon">
|
|
94
|
+
<slot name="icon" />
|
|
95
|
+
</div>
|
|
96
|
+
{/if}
|
|
97
|
+
<span class="expander-header-title">
|
|
98
|
+
<slot />
|
|
99
|
+
</span>
|
|
100
|
+
|
|
101
|
+
{#if expandable}
|
|
102
|
+
<button
|
|
103
|
+
class="expander-chevron"
|
|
104
|
+
type="button"
|
|
105
|
+
tabindex="-1"
|
|
106
|
+
id={contentId}
|
|
107
|
+
aria-labelledby={headerId}
|
|
108
|
+
>
|
|
109
|
+
<svg
|
|
110
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
111
|
+
width="12"
|
|
112
|
+
height="12"
|
|
113
|
+
viewBox="0 0 12 12"
|
|
114
|
+
>
|
|
115
|
+
{#if direction === "down"}
|
|
116
|
+
<path
|
|
117
|
+
fill="currentColor"
|
|
118
|
+
d="M2.14645 4.64645C2.34171 4.45118 2.65829 4.45118 2.85355 4.64645L6 7.79289L9.14645 4.64645C9.34171 4.45118 9.65829 4.45118 9.85355 4.64645C10.0488 4.84171 10.0488 5.15829 9.85355 5.35355L6.35355 8.85355C6.15829 9.04882 5.84171 9.04882 5.64645 8.85355L2.14645 5.35355C1.95118 5.15829 1.95118 4.84171 2.14645 4.64645Z"
|
|
119
|
+
/>
|
|
120
|
+
{:else}
|
|
121
|
+
<path
|
|
122
|
+
fill="currentColor"
|
|
123
|
+
d="M2.14645 7.35355C2.34171 7.54882 2.65829 7.54882 2.85355 7.35355L6 4.20711L9.14645 7.35355C9.34171 7.54882 9.65829 7.54882 9.85355 7.35355C10.0488 7.15829 10.0488 6.84171 9.85355 6.64645L6.35355 3.14645C6.15829 2.95118 5.84171 2.95118 5.64645 3.14645L2.14645 6.64645C1.95118 6.84171 1.95118 7.15829 2.14645 7.35355Z"
|
|
124
|
+
/>
|
|
125
|
+
{/if}
|
|
126
|
+
</svg>
|
|
127
|
+
</button>
|
|
128
|
+
{/if}
|
|
129
|
+
</div>
|
|
130
|
+
</svelte:element>
|
|
131
|
+
{#if expanded}
|
|
132
|
+
<div
|
|
133
|
+
class="expander-content-anchor"
|
|
134
|
+
transition:fadeSlide={{ duration: 500, easing: expoOut }}
|
|
135
|
+
>
|
|
136
|
+
<div class="expander-content" bind:this={contentElement}>
|
|
137
|
+
<slot name="content" />
|
|
138
|
+
</div>
|
|
139
|
+
</div>
|
|
140
|
+
{/if}
|
|
141
|
+
</div>
|
|
142
|
+
|
|
143
|
+
<style >.expander{border-radius:var(--fds-control-corner-radius);color:var(--fds-text-primary);display:flex;flex-direction:column;inline-size:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander .expander-header{transition:var(--fds-control-faster-duration) ease background}.expander.expandable .expander-header:hover{background-color:var(--fds-control-fill-secondary);border:1px solid var(--fds-control-stroke-default)}.expander.expandable .expander-header:active{background-color:var(--fds-control-fill-tertiary);border:1px solid var(--fds-control-stroke-default)}.expander.direction-down .expander-content{-webkit-border-before:none;border-block-start:none;border-radius:var(--fds-control-corner-radius);border-start-end-radius:0!important;border-start-start-radius:0!important}.expander.direction-down.expanded .expander-header{border-end-end-radius:0!important;border-end-start-radius:0!important;border-radius:var(--fds-control-corner-radius)}.expander.direction-up .expander-content{border-bottom:none;border-end-end-radius:0!important;border-end-start-radius:0!important;border-radius:var(--fds-control-corner-radius)}.expander.direction-up .expander-content-anchor{order:-1}.expander.direction-up.expanded .expander-header{border-radius:var(--fds-control-corner-radius);border-start-end-radius:0!important;border-start-start-radius:0!important}.expander.expanded .expander-content{transform:none}.expander.expanded .expander-chevron svg{transform:rotate(180deg)}.expander>h3{display:contents}.expander-icon{-webkit-margin-end:16px;block-size:16px;color:var(--fds-text-primary);flex:0 0 auto;inline-size:16px;margin-inline-end:16px}.expander-icon>:global(svg){fill:currentColor;block-size:auto;inline-size:16px}.expander-header{-webkit-padding-start:16px;align-items:center;background-clip:padding-box;background-color:var(--fds-card-background-default);border:1px solid var(--fds-card-stroke-default);border-radius:var(--fds-control-corner-radius);box-sizing:border-box;display:flex;font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-height:50px;outline:none;padding:8px;padding-inline-start:16px;text-align:start;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander-header-title{flex:1 1 auto}.expander-header:focus-visible{box-shadow:var(--fds-focus-stroke)}.expander-header:active .expander-chevron{color:var(--fds-text-secondary)}.expander-chevron{-webkit-margin-start:20px;align-items:center;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--fds-subtle-fill-transparent);block-size:32px;border:none;border-radius:var(--fds-control-corner-radius);color:var(--fds-text-primary);display:flex;flex:0 0 auto;inline-size:32px;justify-content:center;margin-inline-start:20px;outline:none}.expander-chevron:focus-visible{box-shadow:var(--fds-focus-stroke)}.expander-chevron svg{fill:currentColor;block-size:12px;inline-size:12px;transition:calc(var(--fds-control-fast-duration)) var(--fds-control-fast-out-slow-in-easing) transform var(--fds-control-fast-duration)}.expander-content{background-clip:padding-box;background-color:var(--fds-card-background-secondary);border:1px solid var(--fds-card-stroke-default);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;padding:16px;transition:var(--fds-control-fast-duration) cubic-bezier(1,1,0,1) transform;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.expander-content-anchor{max-block-size:6.019999999999999e+23vmax;position:relative}</style>
|
package/Flipper/Flipper.svelte
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
1
|
<script >export let direction;
|
|
2
2
|
let className = "";
|
|
3
3
|
export { className as class };
|
|
4
|
-
</script>
|
|
5
|
-
|
|
6
|
-
<button class="flipper {className}" on:click {...$$restProps}>
|
|
7
|
-
{#if direction === "right"}
|
|
8
|
-
<svg
|
|
9
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
-
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
11
|
-
width="16px"
|
|
12
|
-
height="16px"
|
|
13
|
-
viewBox="0 0 16 16"
|
|
14
|
-
version="1.1"
|
|
15
|
-
>
|
|
16
|
-
<g id="surface1">
|
|
17
|
-
<path
|
|
18
|
-
d="M 6 11.933594 C 6 12.644531 6.84375 13.03125 7.378906 12.558594 L 11.589844 8.878906 C 11.84375 8.65625 11.988281 8.339844 11.988281 8 C 11.988281 7.660156 11.84375 7.34375 11.589844 7.121094 L 7.378906 3.441406 C 6.84375 2.96875 6 3.355469 6 4.066406 Z M 6 11.933594 "
|
|
19
|
-
/>
|
|
20
|
-
</g>
|
|
21
|
-
</svg>
|
|
22
|
-
{:else if direction === "left"}
|
|
23
|
-
<svg
|
|
24
|
-
xmlns="http://www.w3.org/2000/svg"
|
|
25
|
-
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
26
|
-
width="16px"
|
|
27
|
-
height="16px"
|
|
28
|
-
viewBox="0 0 16 16"
|
|
29
|
-
version="1.1"
|
|
30
|
-
>
|
|
31
|
-
<g id="surface1">
|
|
32
|
-
<path
|
|
33
|
-
d="M 10 11.933594 C 10 12.648438 9.15625 13.03125 8.617188 12.558594 L 4.410156 8.878906 C 4.15625 8.65625 4.011719 8.335938 4.011719 8 C 4.011719 7.664062 4.15625 7.34375 4.410156 7.121094 L 8.617188 3.441406 C 9.15625 2.96875 10 3.351562 10 4.066406 Z M 10 11.933594 "
|
|
34
|
-
/>
|
|
35
|
-
</g>
|
|
36
|
-
</svg>
|
|
37
|
-
{/if}
|
|
38
|
-
</button>
|
|
39
|
-
|
|
40
|
-
<style>.flipper{fill:currentColor;align-items:center;-webkit-backdrop-filter:var(--fds-acrylic-blur-factor);backdrop-filter:var(--fds-acrylic-blur-factor);background-color:var(--fds-control-fill-default);border:1px solid var(--fds-control-border-default);border-radius:var(--fds-control-corner-radius);box-shadow:var(--fds-flyout-shadow);color:var(--fds-control-strong-fill-default);display:flex;height:35px;justify-content:center;padding:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.flipper>svg{transform:scale(.9)}.flipper:hover{color:var(--fds-text-primary)}.flipper:hover>svg{transform:scale(1)}.flipper:active>svg{transform:scale(.8)}</style>
|
|
4
|
+
</script>
|
|
5
|
+
|
|
6
|
+
<button class="flipper {className}" on:click {...$$restProps}>
|
|
7
|
+
{#if direction === "right"}
|
|
8
|
+
<svg
|
|
9
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
10
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
11
|
+
width="16px"
|
|
12
|
+
height="16px"
|
|
13
|
+
viewBox="0 0 16 16"
|
|
14
|
+
version="1.1"
|
|
15
|
+
>
|
|
16
|
+
<g id="surface1">
|
|
17
|
+
<path
|
|
18
|
+
d="M 6 11.933594 C 6 12.644531 6.84375 13.03125 7.378906 12.558594 L 11.589844 8.878906 C 11.84375 8.65625 11.988281 8.339844 11.988281 8 C 11.988281 7.660156 11.84375 7.34375 11.589844 7.121094 L 7.378906 3.441406 C 6.84375 2.96875 6 3.355469 6 4.066406 Z M 6 11.933594 "
|
|
19
|
+
/>
|
|
20
|
+
</g>
|
|
21
|
+
</svg>
|
|
22
|
+
{:else if direction === "left"}
|
|
23
|
+
<svg
|
|
24
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
25
|
+
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
26
|
+
width="16px"
|
|
27
|
+
height="16px"
|
|
28
|
+
viewBox="0 0 16 16"
|
|
29
|
+
version="1.1"
|
|
30
|
+
>
|
|
31
|
+
<g id="surface1">
|
|
32
|
+
<path
|
|
33
|
+
d="M 10 11.933594 C 10 12.648438 9.15625 13.03125 8.617188 12.558594 L 4.410156 8.878906 C 4.15625 8.65625 4.011719 8.335938 4.011719 8 C 4.011719 7.664062 4.15625 7.34375 4.410156 7.121094 L 8.617188 3.441406 C 9.15625 2.96875 10 3.351562 10 4.066406 Z M 10 11.933594 "
|
|
34
|
+
/>
|
|
35
|
+
</g>
|
|
36
|
+
</svg>
|
|
37
|
+
{/if}
|
|
38
|
+
</button>
|
|
39
|
+
|
|
40
|
+
<style>.flipper{fill:currentColor;align-items:center;-webkit-backdrop-filter:var(--fds-acrylic-blur-factor);backdrop-filter:var(--fds-acrylic-blur-factor);background-color:var(--fds-control-fill-default);border:1px solid var(--fds-control-border-default);border-radius:var(--fds-control-corner-radius);box-shadow:var(--fds-flyout-shadow);color:var(--fds-control-strong-fill-default);display:flex;height:35px;justify-content:center;padding:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.flipper>svg{transform:scale(.9)}.flipper:hover{color:var(--fds-text-primary)}.flipper:hover>svg{transform:scale(1)}.flipper:active>svg{transform:scale(.8)}</style>
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
@use "../mixins" as *;
|
|
2
|
-
|
|
3
|
-
.flyout {
|
|
4
|
-
@include typography-body;
|
|
5
|
-
padding: 16px;
|
|
6
|
-
min-inline-size: 320px;
|
|
7
|
-
box-sizing: border-box;
|
|
8
|
-
color: var(--text-primary);
|
|
9
|
-
border-radius: var(--overlay-corner-radius);
|
|
10
|
-
border: 1px solid var(--surface-stroke-flyout);
|
|
11
|
-
background-color: var(--solid-background-quarternary);
|
|
12
|
-
background-clip: padding-box;
|
|
13
|
-
box-shadow: var(--flyout-shadow);
|
|
14
|
-
}
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.flyout {
|
|
4
|
+
@include typography-body;
|
|
5
|
+
padding: 16px;
|
|
6
|
+
min-inline-size: 320px;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
color: var(--text-primary);
|
|
9
|
+
border-radius: var(--overlay-corner-radius);
|
|
10
|
+
border: 1px solid var(--surface-stroke-flyout);
|
|
11
|
+
background-color: var(--solid-background-quarternary);
|
|
12
|
+
background-clip: padding-box;
|
|
13
|
+
box-shadow: var(--flyout-shadow);
|
|
14
|
+
}
|
|
@@ -6,10 +6,10 @@ export { className as class };
|
|
|
6
6
|
/** Obtains a bound DOM reference to the surface element. */
|
|
7
7
|
export let element = null;
|
|
8
8
|
const forwardEvents = createEventForwarder(get_current_component());
|
|
9
|
-
</script>
|
|
10
|
-
|
|
11
|
-
<div class="flyout {className}" use:forwardEvents bind:this={element} {...$$restProps}>
|
|
12
|
-
<slot />
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<style >.flyout{background-clip:padding-box;background-color:var(--fds-solid-background-quarternary);border:1px solid var(--fds-surface-stroke-flyout);border-radius:var(--fds-overlay-corner-radius);box-shadow:var(--fds-flyout-shadow);box-sizing:border-box;color:var(--fds-text-primary);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-inline-size:320px;padding:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}</style>
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<div class="flyout {className}" use:forwardEvents bind:this={element} {...$$restProps}>
|
|
12
|
+
<slot />
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
<style >.flyout{background-clip:padding-box;background-color:var(--fds-solid-background-quarternary);border:1px solid var(--fds-surface-stroke-flyout);border-radius:var(--fds-overlay-corner-radius);box-shadow:var(--fds-flyout-shadow);box-sizing:border-box;color:var(--fds-text-primary);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-inline-size:320px;padding:16px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}</style>
|