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
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
@keyframes flyout-in {
|
|
2
|
-
0% {
|
|
3
|
-
opacity: 0;
|
|
4
|
-
transform: var(--flyout-transform) var(--flyout-transition-offset, translateY(12px));
|
|
5
|
-
}
|
|
6
|
-
100% {
|
|
7
|
-
opacity: 1;
|
|
8
|
-
transform: var(--flyout-transform);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.flyout- {
|
|
13
|
-
&wrapper {
|
|
14
|
-
display: inline-block;
|
|
15
|
-
inline-size: fit-content;
|
|
16
|
-
block-size: fit-content;
|
|
17
|
-
position: relative;
|
|
18
|
-
}
|
|
19
|
-
&backdrop {
|
|
20
|
-
position: fixed;
|
|
21
|
-
top: 0;
|
|
22
|
-
left: 0;
|
|
23
|
-
inline-size: 100%;
|
|
24
|
-
block-size: 100%;
|
|
25
|
-
z-index: 9999;
|
|
26
|
-
}
|
|
27
|
-
&anchor {
|
|
28
|
-
position: absolute;
|
|
29
|
-
z-index: 10000;
|
|
30
|
-
animation: flyout-in var(--control-normal-duration) var(--control-fast-out-slow-in-easing);
|
|
31
|
-
transform: var(--flyout-transform);
|
|
32
|
-
&.placement- {
|
|
33
|
-
--flyout-transform: translateX(0%);
|
|
34
|
-
&top {
|
|
35
|
-
bottom: calc(100% + var(--flyout-offset));
|
|
36
|
-
--flyout-transition-offset: translateY(12px);
|
|
37
|
-
}
|
|
38
|
-
&bottom {
|
|
39
|
-
top: calc(100% + var(--flyout-offset));
|
|
40
|
-
--flyout-transition-offset: translateY(-12px);
|
|
41
|
-
}
|
|
42
|
-
&left {
|
|
43
|
-
right: calc(100% + var(--flyout-offset));
|
|
44
|
-
--flyout-transition-offset: translateX(12px);
|
|
45
|
-
}
|
|
46
|
-
&right {
|
|
47
|
-
left: calc(100% + var(--flyout-offset));
|
|
48
|
-
--flyout-transition-offset: translateX(-12px);
|
|
49
|
-
}
|
|
50
|
-
&top,
|
|
51
|
-
&bottom {
|
|
52
|
-
&.alignment- {
|
|
53
|
-
&start {
|
|
54
|
-
inset-inline-start: 0;
|
|
55
|
-
--flyout-transform: translateX(0%);
|
|
56
|
-
}
|
|
57
|
-
&end {
|
|
58
|
-
inset-inline-end: 0;
|
|
59
|
-
--flyout-transform: translateX(0%);
|
|
60
|
-
}
|
|
61
|
-
¢er {
|
|
62
|
-
inset-inline-start: 50%;
|
|
63
|
-
--flyout-transform: translateX(-50%);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
&left,
|
|
68
|
-
&right {
|
|
69
|
-
&.alignment- {
|
|
70
|
-
&start {
|
|
71
|
-
inset-block-start: 0;
|
|
72
|
-
--flyout-transform: translateY(0%);
|
|
73
|
-
}
|
|
74
|
-
&end {
|
|
75
|
-
inset-block-end: 0;
|
|
76
|
-
--flyout-transform: translateY(0%);
|
|
77
|
-
}
|
|
78
|
-
¢er {
|
|
79
|
-
inset-block-start: 50%;
|
|
80
|
-
--flyout-transform: translateY(-50%);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
}
|
|
1
|
+
@keyframes flyout-in {
|
|
2
|
+
0% {
|
|
3
|
+
opacity: 0;
|
|
4
|
+
transform: var(--flyout-transform) var(--flyout-transition-offset, translateY(12px));
|
|
5
|
+
}
|
|
6
|
+
100% {
|
|
7
|
+
opacity: 1;
|
|
8
|
+
transform: var(--flyout-transform);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.flyout- {
|
|
13
|
+
&wrapper {
|
|
14
|
+
display: inline-block;
|
|
15
|
+
inline-size: fit-content;
|
|
16
|
+
block-size: fit-content;
|
|
17
|
+
position: relative;
|
|
18
|
+
}
|
|
19
|
+
&backdrop {
|
|
20
|
+
position: fixed;
|
|
21
|
+
top: 0;
|
|
22
|
+
left: 0;
|
|
23
|
+
inline-size: 100%;
|
|
24
|
+
block-size: 100%;
|
|
25
|
+
z-index: 9999;
|
|
26
|
+
}
|
|
27
|
+
&anchor {
|
|
28
|
+
position: absolute;
|
|
29
|
+
z-index: 10000;
|
|
30
|
+
animation: flyout-in var(--control-normal-duration) var(--control-fast-out-slow-in-easing);
|
|
31
|
+
transform: var(--flyout-transform);
|
|
32
|
+
&.placement- {
|
|
33
|
+
--flyout-transform: translateX(0%);
|
|
34
|
+
&top {
|
|
35
|
+
bottom: calc(100% + var(--flyout-offset));
|
|
36
|
+
--flyout-transition-offset: translateY(12px);
|
|
37
|
+
}
|
|
38
|
+
&bottom {
|
|
39
|
+
top: calc(100% + var(--flyout-offset));
|
|
40
|
+
--flyout-transition-offset: translateY(-12px);
|
|
41
|
+
}
|
|
42
|
+
&left {
|
|
43
|
+
right: calc(100% + var(--flyout-offset));
|
|
44
|
+
--flyout-transition-offset: translateX(12px);
|
|
45
|
+
}
|
|
46
|
+
&right {
|
|
47
|
+
left: calc(100% + var(--flyout-offset));
|
|
48
|
+
--flyout-transition-offset: translateX(-12px);
|
|
49
|
+
}
|
|
50
|
+
&top,
|
|
51
|
+
&bottom {
|
|
52
|
+
&.alignment- {
|
|
53
|
+
&start {
|
|
54
|
+
inset-inline-start: 0;
|
|
55
|
+
--flyout-transform: translateX(0%);
|
|
56
|
+
}
|
|
57
|
+
&end {
|
|
58
|
+
inset-inline-end: 0;
|
|
59
|
+
--flyout-transform: translateX(0%);
|
|
60
|
+
}
|
|
61
|
+
¢er {
|
|
62
|
+
inset-inline-start: 50%;
|
|
63
|
+
--flyout-transform: translateX(-50%);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
&left,
|
|
68
|
+
&right {
|
|
69
|
+
&.alignment- {
|
|
70
|
+
&start {
|
|
71
|
+
inset-block-start: 0;
|
|
72
|
+
--flyout-transform: translateY(0%);
|
|
73
|
+
}
|
|
74
|
+
&end {
|
|
75
|
+
inset-block-end: 0;
|
|
76
|
+
--flyout-transform: translateY(0%);
|
|
77
|
+
}
|
|
78
|
+
¢er {
|
|
79
|
+
inset-block-start: 50%;
|
|
80
|
+
--flyout-transform: translateY(-50%);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -51,63 +51,63 @@ function handleKeyDown(event) {
|
|
|
51
51
|
open = !open;
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
|
-
</script>
|
|
55
|
-
|
|
56
|
-
<!--
|
|
57
|
-
@component
|
|
58
|
-
Flyouts represent a control that displays lightweight UI that is either information, or requires user interaction. Unlike a dialog, a Flyout can be dismissed by clicking or tapping outside of it, or pressing the Esc key. [Docs](https://fluent-svelte.vercel.app/docs/components/flyout)
|
|
59
|
-
- Usage:
|
|
60
|
-
```tsx
|
|
61
|
-
<Flyout>
|
|
62
|
-
<Button>Trigger Button</Button>
|
|
63
|
-
<svelte:fragment slot="flyout">
|
|
64
|
-
Flyout Contents
|
|
65
|
-
</svelte:fragment>
|
|
66
|
-
</Flyout>
|
|
67
|
-
```
|
|
68
|
-
-->
|
|
69
|
-
|
|
70
|
-
<svelte:window on:keydown={handleEscapeKey} />
|
|
71
|
-
|
|
72
|
-
<div
|
|
73
|
-
class="flyout-wrapper {className}"
|
|
74
|
-
aria-expanded={open}
|
|
75
|
-
aria-haspopup={open}
|
|
76
|
-
aria-controls={menuId}
|
|
77
|
-
on:click={() => {
|
|
78
|
-
enableClick && (open = !open);
|
|
79
|
-
}}
|
|
80
|
-
on:keydown={handleKeyDown}
|
|
81
|
-
bind:this={wrapperElement}
|
|
82
|
-
>
|
|
83
|
-
<slot />
|
|
84
|
-
{#if open}
|
|
85
|
-
<div
|
|
86
|
-
id={menuId}
|
|
87
|
-
class="flyout-anchor placement-{placement} alignment-{alignment}"
|
|
88
|
-
style="--fds-flyout-offset: {offset}px;"
|
|
89
|
-
use:_focusTrap
|
|
90
|
-
out:fade|local={{
|
|
91
|
-
duration: getCSSDuration("--fds-control-faster-duration"),
|
|
92
|
-
easing: circOut
|
|
93
|
-
}}
|
|
94
|
-
bind:this={anchorElement}
|
|
95
|
-
on:click={e => e.stopPropagation()}
|
|
96
|
-
{...$$restProps}
|
|
97
|
-
>
|
|
98
|
-
<slot name="override">
|
|
99
|
-
<FlyoutSurface bind:element={menuElement}>
|
|
100
|
-
<slot name="flyout" />
|
|
101
|
-
</FlyoutSurface>
|
|
102
|
-
</slot>
|
|
103
|
-
</div>
|
|
104
|
-
<div
|
|
105
|
-
class="flyout-backdrop"
|
|
106
|
-
bind:this={backdropElement}
|
|
107
|
-
on:click={e => e.stopPropagation()}
|
|
108
|
-
on:mousedown={closeFlyout}
|
|
109
|
-
/>
|
|
110
|
-
{/if}
|
|
111
|
-
</div>
|
|
112
|
-
|
|
113
|
-
<style >@-webkit-keyframes flyout-in{0%{opacity:0;transform:var(--fds-flyout-transform) var(--fds-flyout-transition-offset,translateY(12px))}to{opacity:1;transform:var(--fds-flyout-transform)}}@keyframes flyout-in{0%{opacity:0;transform:var(--fds-flyout-transform) var(--fds-flyout-transition-offset,translateY(12px))}to{opacity:1;transform:var(--fds-flyout-transform)}}.flyout-wrapper{block-size:-webkit-fit-content;block-size:-moz-fit-content;block-size:fit-content;display:inline-block;inline-size:-webkit-fit-content;inline-size:-moz-fit-content;inline-size:fit-content;position:relative}.flyout-backdrop{block-size:100%;inline-size:100%;left:0;position:fixed;top:0;z-index:9999}.flyout-anchor{-webkit-animation:flyout-in var(--fds-control-normal-duration) var(--fds-control-fast-out-slow-in-easing);animation:flyout-in var(--fds-control-normal-duration) var(--fds-control-fast-out-slow-in-easing);position:absolute;transform:var(--fds-flyout-transform);z-index:10000}.flyout-anchor.placement-{--fds-flyout-transform:translateX(0%)}.flyout-anchor.placement-top{--fds-flyout-transition-offset:translateY(12px);bottom:calc(100% + var(--fds-flyout-offset))}.flyout-anchor.placement-bottom{--fds-flyout-transition-offset:translateY(-12px);top:calc(100% + var(--fds-flyout-offset))}.flyout-anchor.placement-left{--fds-flyout-transition-offset:translateX(12px);right:calc(100% + var(--fds-flyout-offset))}.flyout-anchor.placement-right{--fds-flyout-transition-offset:translateX(-12px);left:calc(100% + var(--fds-flyout-offset))}.flyout-anchor.placement-bottom.alignment-start,.flyout-anchor.placement-top.alignment-start{--fds-flyout-transform:translateX(0%);inset-inline-start:0}.flyout-anchor.placement-bottom.alignment-end,.flyout-anchor.placement-top.alignment-end{--fds-flyout-transform:translateX(0%);inset-inline-end:0}.flyout-anchor.placement-bottom.alignment-center,.flyout-anchor.placement-top.alignment-center{--fds-flyout-transform:translateX(-50%);inset-inline-start:50%}.flyout-anchor.placement-left.alignment-start,.flyout-anchor.placement-right.alignment-start{--fds-flyout-transform:translateY(0%);inset-block-start:0}.flyout-anchor.placement-left.alignment-end,.flyout-anchor.placement-right.alignment-end{--fds-flyout-transform:translateY(0%);inset-block-end:0}.flyout-anchor.placement-left.alignment-center,.flyout-anchor.placement-right.alignment-center{--fds-flyout-transform:translateY(-50%);inset-block-start:50%}</style>
|
|
54
|
+
</script>
|
|
55
|
+
|
|
56
|
+
<!--
|
|
57
|
+
@component
|
|
58
|
+
Flyouts represent a control that displays lightweight UI that is either information, or requires user interaction. Unlike a dialog, a Flyout can be dismissed by clicking or tapping outside of it, or pressing the Esc key. [Docs](https://fluent-svelte.vercel.app/docs/components/flyout)
|
|
59
|
+
- Usage:
|
|
60
|
+
```tsx
|
|
61
|
+
<Flyout>
|
|
62
|
+
<Button>Trigger Button</Button>
|
|
63
|
+
<svelte:fragment slot="flyout">
|
|
64
|
+
Flyout Contents
|
|
65
|
+
</svelte:fragment>
|
|
66
|
+
</Flyout>
|
|
67
|
+
```
|
|
68
|
+
-->
|
|
69
|
+
|
|
70
|
+
<svelte:window on:keydown={handleEscapeKey} />
|
|
71
|
+
|
|
72
|
+
<div
|
|
73
|
+
class="flyout-wrapper {className}"
|
|
74
|
+
aria-expanded={open}
|
|
75
|
+
aria-haspopup={open}
|
|
76
|
+
aria-controls={menuId}
|
|
77
|
+
on:click={() => {
|
|
78
|
+
enableClick && (open = !open);
|
|
79
|
+
}}
|
|
80
|
+
on:keydown={handleKeyDown}
|
|
81
|
+
bind:this={wrapperElement}
|
|
82
|
+
>
|
|
83
|
+
<slot />
|
|
84
|
+
{#if open}
|
|
85
|
+
<div
|
|
86
|
+
id={menuId}
|
|
87
|
+
class="flyout-anchor placement-{placement} alignment-{alignment}"
|
|
88
|
+
style="--fds-flyout-offset: {offset}px;"
|
|
89
|
+
use:_focusTrap
|
|
90
|
+
out:fade|local={{
|
|
91
|
+
duration: getCSSDuration("--fds-control-faster-duration"),
|
|
92
|
+
easing: circOut
|
|
93
|
+
}}
|
|
94
|
+
bind:this={anchorElement}
|
|
95
|
+
on:click={e => e.stopPropagation()}
|
|
96
|
+
{...$$restProps}
|
|
97
|
+
>
|
|
98
|
+
<slot name="override">
|
|
99
|
+
<FlyoutSurface bind:element={menuElement}>
|
|
100
|
+
<slot name="flyout" />
|
|
101
|
+
</FlyoutSurface>
|
|
102
|
+
</slot>
|
|
103
|
+
</div>
|
|
104
|
+
<div
|
|
105
|
+
class="flyout-backdrop"
|
|
106
|
+
bind:this={backdropElement}
|
|
107
|
+
on:click={e => e.stopPropagation()}
|
|
108
|
+
on:mousedown={closeFlyout}
|
|
109
|
+
/>
|
|
110
|
+
{/if}
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<style >@-webkit-keyframes flyout-in{0%{opacity:0;transform:var(--fds-flyout-transform) var(--fds-flyout-transition-offset,translateY(12px))}to{opacity:1;transform:var(--fds-flyout-transform)}}@keyframes flyout-in{0%{opacity:0;transform:var(--fds-flyout-transform) var(--fds-flyout-transition-offset,translateY(12px))}to{opacity:1;transform:var(--fds-flyout-transform)}}.flyout-wrapper{block-size:-webkit-fit-content;block-size:-moz-fit-content;block-size:fit-content;display:inline-block;inline-size:-webkit-fit-content;inline-size:-moz-fit-content;inline-size:fit-content;position:relative}.flyout-backdrop{block-size:100%;inline-size:100%;left:0;position:fixed;top:0;z-index:9999}.flyout-anchor{-webkit-animation:flyout-in var(--fds-control-normal-duration) var(--fds-control-fast-out-slow-in-easing);animation:flyout-in var(--fds-control-normal-duration) var(--fds-control-fast-out-slow-in-easing);position:absolute;transform:var(--fds-flyout-transform);z-index:10000}.flyout-anchor.placement-{--fds-flyout-transform:translateX(0%)}.flyout-anchor.placement-top{--fds-flyout-transition-offset:translateY(12px);bottom:calc(100% + var(--fds-flyout-offset))}.flyout-anchor.placement-bottom{--fds-flyout-transition-offset:translateY(-12px);top:calc(100% + var(--fds-flyout-offset))}.flyout-anchor.placement-left{--fds-flyout-transition-offset:translateX(12px);right:calc(100% + var(--fds-flyout-offset))}.flyout-anchor.placement-right{--fds-flyout-transition-offset:translateX(-12px);left:calc(100% + var(--fds-flyout-offset))}.flyout-anchor.placement-bottom.alignment-start,.flyout-anchor.placement-top.alignment-start{--fds-flyout-transform:translateX(0%);inset-inline-start:0}.flyout-anchor.placement-bottom.alignment-end,.flyout-anchor.placement-top.alignment-end{--fds-flyout-transform:translateX(0%);inset-inline-end:0}.flyout-anchor.placement-bottom.alignment-center,.flyout-anchor.placement-top.alignment-center{--fds-flyout-transform:translateX(-50%);inset-inline-start:50%}.flyout-anchor.placement-left.alignment-start,.flyout-anchor.placement-right.alignment-start{--fds-flyout-transform:translateY(0%);inset-block-start:0}.flyout-anchor.placement-left.alignment-end,.flyout-anchor.placement-right.alignment-end{--fds-flyout-transform:translateY(0%);inset-block-end:0}.flyout-anchor.placement-left.alignment-center,.flyout-anchor.placement-right.alignment-center{--fds-flyout-transform:translateY(-50%);inset-block-start:50%}</style>
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
.grid-view-item {
|
|
2
|
-
position: relative;
|
|
3
|
-
border-radius: var(--control-corner-radius);
|
|
4
|
-
transition: box-shadow var(--control-fast-duration);
|
|
5
|
-
width: fit-content;
|
|
6
|
-
user-select: none;
|
|
7
|
-
|
|
8
|
-
&.selected {
|
|
9
|
-
box-shadow: inset 0 0 0 2px var(--control-solid-fill-default),
|
|
10
|
-
0 0 0 3px var(--accent-default);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
& > .item-checkbox {
|
|
14
|
-
position: absolute;
|
|
15
|
-
top: 0;
|
|
16
|
-
right: 6px;
|
|
17
|
-
overflow: hidden;
|
|
18
|
-
z-index: 1;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
1
|
+
.grid-view-item {
|
|
2
|
+
position: relative;
|
|
3
|
+
border-radius: var(--control-corner-radius);
|
|
4
|
+
transition: box-shadow var(--control-fast-duration);
|
|
5
|
+
width: fit-content;
|
|
6
|
+
user-select: none;
|
|
7
|
+
|
|
8
|
+
&.selected {
|
|
9
|
+
box-shadow: inset 0 0 0 2px var(--control-solid-fill-default),
|
|
10
|
+
0 0 0 3px var(--accent-default);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
& > .item-checkbox {
|
|
14
|
+
position: absolute;
|
|
15
|
+
top: 0;
|
|
16
|
+
right: 6px;
|
|
17
|
+
overflow: hidden;
|
|
18
|
+
z-index: 1;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -34,28 +34,36 @@ if (group.length) {
|
|
|
34
34
|
});
|
|
35
35
|
setKey(`group:${group}`, getAvailableGroupItems);
|
|
36
36
|
}
|
|
37
|
-
</script>
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
class
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
on:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
37
|
+
</script>
|
|
38
|
+
|
|
39
|
+
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
|
|
40
|
+
<div
|
|
41
|
+
class="grid-view-item"
|
|
42
|
+
class:selected
|
|
43
|
+
{...$$restProps}
|
|
44
|
+
tabindex="0"
|
|
45
|
+
on:click={() => {
|
|
46
|
+
setSelected(!selected, false);
|
|
47
|
+
dispatch("change", { selected: selected });
|
|
48
|
+
}}
|
|
49
|
+
on:keydown={e => {
|
|
50
|
+
if (e.key !== "Enter") return;
|
|
51
|
+
setSelected(!selected, false);
|
|
52
|
+
dispatch("change", { selected: selected });
|
|
53
|
+
}}
|
|
54
|
+
>
|
|
55
|
+
{#if !singleSelect}
|
|
56
|
+
<div class="item-checkbox">
|
|
57
|
+
<Checkbox
|
|
58
|
+
tabindex="-1"
|
|
59
|
+
bind:checked={selected}
|
|
60
|
+
on:change={() => {
|
|
61
|
+
dispatch("change", { selected: !selected });
|
|
62
|
+
}}
|
|
63
|
+
/>
|
|
64
|
+
</div>
|
|
65
|
+
{/if}
|
|
66
|
+
<slot {setSelected} />
|
|
67
|
+
</div>
|
|
68
|
+
|
|
69
|
+
<style >.grid-view-item{border-radius:var(--fds-control-corner-radius);position:relative;transition:box-shadow var(--fds-control-fast-duration);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.grid-view-item.selected{box-shadow:inset 0 0 0 2px var(--fds-control-solid-fill-default),0 0 0 3px var(--fds-accent-default)}.grid-view-item>.item-checkbox{overflow:hidden;position:absolute;right:6px;top:0;z-index:1}</style>
|
|
@@ -1,32 +1,32 @@
|
|
|
1
|
-
@use "../mixins" as *;
|
|
2
|
-
|
|
3
|
-
.icon-button {
|
|
4
|
-
@include flex($inline: true, $align: center, $justify: center);
|
|
5
|
-
outline: none;
|
|
6
|
-
border: none;
|
|
7
|
-
box-sizing: border-box;
|
|
8
|
-
min-inline-size: 30px;
|
|
9
|
-
min-block-size: 30px;
|
|
10
|
-
padding: 8px;
|
|
11
|
-
color: var(--text-primary);
|
|
12
|
-
border-radius: var(--control-corner-radius);
|
|
13
|
-
background-color: var(--subtle-fill-transparent);
|
|
14
|
-
&:focus-visible {
|
|
15
|
-
box-shadow: var(--focus-stroke);
|
|
16
|
-
}
|
|
17
|
-
&:hover {
|
|
18
|
-
background-color: var(--subtle-fill-secondary);
|
|
19
|
-
}
|
|
20
|
-
&:active {
|
|
21
|
-
color: var(--text-secondary);
|
|
22
|
-
background-color: var(--subtle-fill-tertiary);
|
|
23
|
-
}
|
|
24
|
-
&:disabled,
|
|
25
|
-
&.disabled {
|
|
26
|
-
background-color: var(--subtle-fill-disabled);
|
|
27
|
-
color: var(--text-disabled);
|
|
28
|
-
}
|
|
29
|
-
:global(svg) {
|
|
30
|
-
@include icon($size: 16px);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.icon-button {
|
|
4
|
+
@include flex($inline: true, $align: center, $justify: center);
|
|
5
|
+
outline: none;
|
|
6
|
+
border: none;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
min-inline-size: 30px;
|
|
9
|
+
min-block-size: 30px;
|
|
10
|
+
padding: 8px;
|
|
11
|
+
color: var(--text-primary);
|
|
12
|
+
border-radius: var(--control-corner-radius);
|
|
13
|
+
background-color: var(--subtle-fill-transparent);
|
|
14
|
+
&:focus-visible {
|
|
15
|
+
box-shadow: var(--focus-stroke);
|
|
16
|
+
}
|
|
17
|
+
&:hover {
|
|
18
|
+
background-color: var(--subtle-fill-secondary);
|
|
19
|
+
}
|
|
20
|
+
&:active {
|
|
21
|
+
color: var(--text-secondary);
|
|
22
|
+
background-color: var(--subtle-fill-tertiary);
|
|
23
|
+
}
|
|
24
|
+
&:disabled,
|
|
25
|
+
&.disabled {
|
|
26
|
+
background-color: var(--subtle-fill-disabled);
|
|
27
|
+
color: var(--text-disabled);
|
|
28
|
+
}
|
|
29
|
+
:global(svg) {
|
|
30
|
+
@include icon($size: 16px);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -11,31 +11,31 @@ export { className as class };
|
|
|
11
11
|
/** Obtains a bound DOM reference to the button or anchor element. */
|
|
12
12
|
export let element = null;
|
|
13
13
|
const forwardEvents = createEventForwarder(get_current_component());
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
<!--
|
|
17
|
-
@component
|
|
18
|
-
An Icon Button is a clickable control that triggers an immediate action. Unlike the Button control, it serves the purpose of encapsulating an icon glyph as it’s content. [Docs](https://fluent-svelte.vercel.app/docs/components/iconbutton)
|
|
19
|
-
- Usage:
|
|
20
|
-
```tsx
|
|
21
|
-
<IconButton>
|
|
22
|
-
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
|
23
|
-
<path d="M8 14A6 6 0 108 2a6 6 0 000 12zm0-1A5 5 0 118 3a5 5 0 010 10z" />
|
|
24
|
-
</svg>
|
|
25
|
-
</IconButton>
|
|
26
|
-
```
|
|
27
|
-
-->
|
|
28
|
-
<svelte:element
|
|
29
|
-
this={href && !disabled ? "a" : "button"}
|
|
30
|
-
use:forwardEvents
|
|
31
|
-
bind:this={element}
|
|
32
|
-
role={href && !disabled ? "button" : undefined}
|
|
33
|
-
href={href && !disabled ? href : undefined}
|
|
34
|
-
class="icon-button {className}"
|
|
35
|
-
class:disabled
|
|
36
|
-
{...$$restProps}
|
|
37
|
-
>
|
|
38
|
-
<slot />
|
|
39
|
-
</svelte:element>
|
|
40
|
-
|
|
41
|
-
<style >.icon-button{align-items:center;background-color:var(--fds-subtle-fill-transparent);border:none;border-radius:var(--fds-control-corner-radius);box-sizing:border-box;color:var(--fds-text-primary);display:inline-flex;justify-content:center;min-block-size:30px;min-inline-size:30px;outline:none;padding:8px}.icon-button:focus-visible{box-shadow:var(--fds-focus-stroke)}.icon-button:hover{background-color:var(--fds-subtle-fill-secondary)}.icon-button:active{background-color:var(--fds-subtle-fill-tertiary);color:var(--fds-text-secondary)}.icon-button.disabled,.icon-button:disabled{background-color:var(--fds-subtle-fill-disabled);color:var(--fds-text-disabled)}.icon-button :global(svg){fill:currentColor;block-size:auto;inline-size:16px}</style>
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<!--
|
|
17
|
+
@component
|
|
18
|
+
An Icon Button is a clickable control that triggers an immediate action. Unlike the Button control, it serves the purpose of encapsulating an icon glyph as it’s content. [Docs](https://fluent-svelte.vercel.app/docs/components/iconbutton)
|
|
19
|
+
- Usage:
|
|
20
|
+
```tsx
|
|
21
|
+
<IconButton>
|
|
22
|
+
<svg width="16" height="16" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
|
|
23
|
+
<path d="M8 14A6 6 0 108 2a6 6 0 000 12zm0-1A5 5 0 118 3a5 5 0 010 10z" />
|
|
24
|
+
</svg>
|
|
25
|
+
</IconButton>
|
|
26
|
+
```
|
|
27
|
+
-->
|
|
28
|
+
<svelte:element
|
|
29
|
+
this={href && !disabled ? "a" : "button"}
|
|
30
|
+
use:forwardEvents
|
|
31
|
+
bind:this={element}
|
|
32
|
+
role={href && !disabled ? "button" : undefined}
|
|
33
|
+
href={href && !disabled ? href : undefined}
|
|
34
|
+
class="icon-button {className}"
|
|
35
|
+
class:disabled
|
|
36
|
+
{...$$restProps}
|
|
37
|
+
>
|
|
38
|
+
<slot />
|
|
39
|
+
</svelte:element>
|
|
40
|
+
|
|
41
|
+
<style >.icon-button{align-items:center;background-color:var(--fds-subtle-fill-transparent);border:none;border-radius:var(--fds-control-corner-radius);box-sizing:border-box;color:var(--fds-text-primary);display:inline-flex;justify-content:center;min-block-size:30px;min-inline-size:30px;outline:none;padding:8px}.icon-button:focus-visible{box-shadow:var(--fds-focus-stroke)}.icon-button:hover{background-color:var(--fds-subtle-fill-secondary)}.icon-button:active{background-color:var(--fds-subtle-fill-tertiary);color:var(--fds-text-secondary)}.icon-button.disabled,.icon-button:disabled{background-color:var(--fds-subtle-fill-disabled);color:var(--fds-text-disabled)}.icon-button :global(svg){fill:currentColor;block-size:auto;inline-size:16px}</style>
|
package/InfoBadge/InfoBadge.scss
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
@use "../mixins" as *;
|
|
2
|
-
|
|
3
|
-
.info-badge {
|
|
4
|
-
@include flex($inline: true, $align: center, $justify: center);
|
|
5
|
-
box-sizing: border-box;
|
|
6
|
-
user-select: none;
|
|
7
|
-
min-inline-size: 16px;
|
|
8
|
-
min-block-size: 16px;
|
|
9
|
-
border-radius: 16px;
|
|
10
|
-
padding: 2px 4px;
|
|
11
|
-
color: var(--text-on-accent-primary);
|
|
12
|
-
line-height: var(--caption-font-size);
|
|
13
|
-
font: {
|
|
14
|
-
family: var(--font-family-small);
|
|
15
|
-
size: var(--caption-font-size);
|
|
16
|
-
}
|
|
17
|
-
&.severity- {
|
|
18
|
-
&attention {
|
|
19
|
-
background-color: var(--system-attention);
|
|
20
|
-
}
|
|
21
|
-
&success {
|
|
22
|
-
background-color: var(--system-success);
|
|
23
|
-
}
|
|
24
|
-
&caution {
|
|
25
|
-
background-color: var(--system-caution);
|
|
26
|
-
}
|
|
27
|
-
&critical {
|
|
28
|
-
background-color: var(--system-critical);
|
|
29
|
-
}
|
|
30
|
-
&information {
|
|
31
|
-
background-color: var(--system-solid-neutral);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
:global(svg) {
|
|
35
|
-
inline-size: 8px;
|
|
36
|
-
block-size: 8px;
|
|
37
|
-
fill: currentColor;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
1
|
+
@use "../mixins" as *;
|
|
2
|
+
|
|
3
|
+
.info-badge {
|
|
4
|
+
@include flex($inline: true, $align: center, $justify: center);
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
user-select: none;
|
|
7
|
+
min-inline-size: 16px;
|
|
8
|
+
min-block-size: 16px;
|
|
9
|
+
border-radius: 16px;
|
|
10
|
+
padding: 2px 4px;
|
|
11
|
+
color: var(--text-on-accent-primary);
|
|
12
|
+
line-height: var(--caption-font-size);
|
|
13
|
+
font: {
|
|
14
|
+
family: var(--font-family-small);
|
|
15
|
+
size: var(--caption-font-size);
|
|
16
|
+
}
|
|
17
|
+
&.severity- {
|
|
18
|
+
&attention {
|
|
19
|
+
background-color: var(--system-attention);
|
|
20
|
+
}
|
|
21
|
+
&success {
|
|
22
|
+
background-color: var(--system-success);
|
|
23
|
+
}
|
|
24
|
+
&caution {
|
|
25
|
+
background-color: var(--system-caution);
|
|
26
|
+
}
|
|
27
|
+
&critical {
|
|
28
|
+
background-color: var(--system-critical);
|
|
29
|
+
}
|
|
30
|
+
&information {
|
|
31
|
+
background-color: var(--system-solid-neutral);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
:global(svg) {
|
|
35
|
+
inline-size: 8px;
|
|
36
|
+
block-size: 8px;
|
|
37
|
+
fill: currentColor;
|
|
38
|
+
}
|
|
39
|
+
}
|