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.
Files changed (93) hide show
  1. package/Acrylic/AcrylicSurface.scss +6 -6
  2. package/Acrylic/AcrylicSurface.svelte +26 -26
  3. package/AutoSuggestBox/AutoSuggestBox.scss +44 -44
  4. package/AutoSuggestBox/AutoSuggestBox.svelte +85 -85
  5. package/Button/Button.scss +94 -94
  6. package/Button/Button.svelte +25 -25
  7. package/CalendarDatePicker/CalendarDatePicker.scss +15 -15
  8. package/CalendarDatePicker/CalendarDatePicker.svelte +45 -45
  9. package/CalendarView/CalendarView.scss +156 -156
  10. package/CalendarView/CalendarView.svelte +269 -269
  11. package/CalendarView/CalendarViewItem.scss +130 -130
  12. package/CalendarView/CalendarViewItem.svelte +23 -23
  13. package/Checkbox/Checkbox.scss +117 -117
  14. package/Checkbox/Checkbox.svelte +52 -52
  15. package/ComboBox/ComboBox.scss +152 -152
  16. package/ComboBox/ComboBox.svelte +155 -155
  17. package/ComboBox/ComboBoxItem.scss +80 -80
  18. package/ComboBox/ComboBoxItem.svelte +17 -17
  19. package/ContentDialog/ContentDialog.scss +98 -98
  20. package/ContentDialog/ContentDialog.svelte +76 -76
  21. package/ContextMenu/ContextMenu.scss +11 -11
  22. package/ContextMenu/ContextMenu.svelte +37 -37
  23. package/ExpandMenu/ExpandMenu.svelte +9 -9
  24. package/Expander/Expander.scss +136 -136
  25. package/Expander/Expander.svelte +95 -95
  26. package/Flipper/Flipper.svelte +37 -37
  27. package/Flyout/FlyoutSurface.scss +14 -14
  28. package/Flyout/FlyoutSurface.svelte +7 -7
  29. package/Flyout/FlyoutWrapper.scss +86 -86
  30. package/Flyout/FlyoutWrapper.svelte +60 -60
  31. package/GridView/GridViewItem.scss +20 -20
  32. package/GridView/GridViewItem.svelte +33 -25
  33. package/IconButton/IconButton.scss +32 -32
  34. package/IconButton/IconButton.svelte +28 -28
  35. package/InfoBadge/InfoBadge.scss +39 -39
  36. package/InfoBadge/InfoBadge.svelte +59 -59
  37. package/InfoBar/InfoBar.scss +122 -122
  38. package/InfoBar/InfoBar.svelte +76 -76
  39. package/ListItem/ListItem.scss +76 -76
  40. package/ListItem/ListItem.svelte +49 -49
  41. package/MenuBar/MenuBar.scss +10 -10
  42. package/MenuBar/MenuBar.svelte +7 -7
  43. package/MenuBar/MenuBarItem.scss +38 -38
  44. package/MenuBar/MenuBarItem.svelte +38 -38
  45. package/MenuFlyout/MenuFlyoutDivider.scss +7 -7
  46. package/MenuFlyout/MenuFlyoutDivider.svelte +5 -5
  47. package/MenuFlyout/MenuFlyoutItem.scss +146 -146
  48. package/MenuFlyout/MenuFlyoutItem.svelte +136 -136
  49. package/MenuFlyout/MenuFlyoutSurface.scss +79 -79
  50. package/MenuFlyout/MenuFlyoutSurface.svelte +22 -22
  51. package/MenuFlyout/MenuFlyoutWrapper.scss +64 -64
  52. package/MenuFlyout/MenuFlyoutWrapper.svelte +37 -37
  53. package/NavigationView/NavigationView.svelte +29 -29
  54. package/NumberBox/NumberBox.scss +31 -31
  55. package/NumberBox/NumberBox.svelte +166 -166
  56. package/PersonPicture/PersonPicture.scss +35 -35
  57. package/PersonPicture/PersonPicture.svelte +37 -37
  58. package/ProgressBar/ProgressBar.scss +83 -83
  59. package/ProgressBar/ProgressBar.svelte +36 -36
  60. package/ProgressRing/ProgressRing.scss +37 -37
  61. package/ProgressRing/ProgressRing.svelte +37 -37
  62. package/README.md +19 -19
  63. package/RadioButton/RadioButton.scss +114 -114
  64. package/RadioButton/RadioButton.svelte +38 -38
  65. package/RangeSlider/RangeSlider.svelte +26 -26
  66. package/ScrollView/ScrollView.svelte +3 -3
  67. package/Slider/Slider.scss +281 -281
  68. package/Slider/Slider.svelte +121 -121
  69. package/TeachingTip/TeachingTipSurface.scss +14 -14
  70. package/TeachingTip/TeachingTipSurface.svelte +7 -7
  71. package/TeachingTip/TeachingTipWrapper.scss +181 -79
  72. package/TeachingTip/TeachingTipWrapper.svelte +196 -73
  73. package/TeachingTip/TeachingTipWrapper.svelte.d.ts +6 -0
  74. package/TextArea/TextArea.scss +115 -115
  75. package/TextArea/TextArea.svelte +65 -65
  76. package/TextBlock/TextBlock.scss +66 -66
  77. package/TextBlock/TextBlock.svelte +12 -12
  78. package/TextBox/TextBox.scss +108 -108
  79. package/TextBox/TextBox.svelte +121 -121
  80. package/TextBox/TextBox.svelte.d.ts +7 -0
  81. package/TextBox/TextBoxButton.scss +34 -34
  82. package/TextBox/TextBoxButton.svelte +13 -13
  83. package/ToggleSwitch/ToggleSwitch.scss +118 -118
  84. package/ToggleSwitch/ToggleSwitch.svelte +29 -29
  85. package/Tooltip/TooltipSurface.scss +16 -16
  86. package/Tooltip/TooltipSurface.svelte +13 -13
  87. package/Tooltip/TooltipWrapper.scss +66 -66
  88. package/Tooltip/TooltipWrapper.svelte +37 -37
  89. package/_mixins.scss +130 -130
  90. package/package.json +1 -1
  91. package/svelte-jsx.d.ts +14 -14
  92. package/switchable.css +401 -401
  93. package/theme.css +744 -744
@@ -1,130 +1,130 @@
1
- @use "../mixins" as *;
2
-
3
- .calendar-view-item {
4
- @include flex($inline: true, $justify: center, $align: center);
5
- position: relative;
6
- user-select: none;
7
- text-align: center;
8
- box-sizing: border-box;
9
- padding: 0;
10
- border: 1px solid transparent;
11
- outline: none;
12
- background-color: var(--subtle-fill-transparent);
13
- color: var(--text-primary);
14
- border-radius: 50%;
15
- line-height: 20px;
16
- font: {
17
- family: var(--font-family-text);
18
- size: 14px;
19
- weight: 400;
20
- }
21
- &:focus-visible {
22
- box-shadow: var(--focus-stroke);
23
- }
24
- &:hover {
25
- background-color: var(--subtle-fill-secondary);
26
- }
27
- &:active {
28
- background-color: var(--subtle-fill-tertiary);
29
- color: var(--text-secondary);
30
- }
31
- &.out-of-range {
32
- color: var(--text-secondary);
33
- &:active {
34
- color: var(--text-tertiary);
35
- }
36
- }
37
- &.disabled {
38
- background-color: var(--subtle-fill-disabled);
39
- color: var(--text-disabled);
40
- &.blackout::after {
41
- content: none;
42
- }
43
- }
44
- &.blackout {
45
- pointer-events: none;
46
- &::after {
47
- content: "";
48
- transform-origin: center;
49
- inline-size: 26px;
50
- block-size: 1px;
51
- position: absolute;
52
- transform: matrix(-0.71, -0.71, -0.71, 0.71, 0, 0);
53
- border-block-start: 1px solid var(--control-strong-stroke-default);
54
- }
55
- }
56
- &.type- {
57
- &day {
58
- inline-size: 40px;
59
- block-size: 40px;
60
- small {
61
- inset-block-start: 2px;
62
- }
63
- }
64
- &month-year {
65
- inline-size: 56px;
66
- block-size: 56px;
67
- small {
68
- inset-block-start: 9.58px; // figma toolkit is weird idk
69
- }
70
- }
71
- }
72
- &.selected {
73
- color: var(--accent-text-primary);
74
- border: 1px solid var(--accent-default);
75
- &:hover {
76
- background-color: var(--subtle-fill-secondary);
77
- border-color: var(--accent-secondary);
78
- }
79
- &:active {
80
- background-color: var(--subtle-fill-tertiary);
81
- border-color: var(--accent-tertiary);
82
- }
83
- &.disabled {
84
- color: var(--accent-text-disabled);
85
- background-color: var(--subtle-fill-disabled);
86
- border-color: var(--accent-disabled);
87
- }
88
- &.current {
89
- box-shadow: inset 0 0 0 1px var(--text-on-accent-primary);
90
- &:focus-visible {
91
- box-shadow: inset 0 0 0 1px var(--text-on-accent-primary), var(--focus-stroke);
92
- }
93
- }
94
- &.blackout::after {
95
- border-block-start-color: var(--accent-tertiary);
96
- }
97
- }
98
- &.current {
99
- color: var(--text-on-accent-primary);
100
- background-color: var(--accent-default);
101
- &:hover {
102
- background-color: var(--accent-secondary);
103
- }
104
- &:active {
105
- background-color: var(--accent-tertiary);
106
- color: var(--text-on-accent-secondary);
107
- }
108
- &.disabled {
109
- background-color: var(--accent-disabled);
110
- }
111
- &.blackout::after {
112
- border-block-start-color: var(--text-on-accent-primary);
113
- }
114
- }
115
- small {
116
- pointer-events: none;
117
- position: absolute;
118
- inline-size: 100%;
119
- padding-inline: 1px;
120
- letter-spacing: 0.04em;
121
- text-align: center;
122
- color: inherit;
123
- line-height: 12px;
124
- font: {
125
- family: var(--font-family-small);
126
- weight: 400;
127
- size: 8px;
128
- }
129
- }
130
- }
1
+ @use "../mixins" as *;
2
+
3
+ .calendar-view-item {
4
+ @include flex($inline: true, $justify: center, $align: center);
5
+ position: relative;
6
+ user-select: none;
7
+ text-align: center;
8
+ box-sizing: border-box;
9
+ padding: 0;
10
+ border: 1px solid transparent;
11
+ outline: none;
12
+ background-color: var(--subtle-fill-transparent);
13
+ color: var(--text-primary);
14
+ border-radius: 50%;
15
+ line-height: 20px;
16
+ font: {
17
+ family: var(--font-family-text);
18
+ size: 14px;
19
+ weight: 400;
20
+ }
21
+ &:focus-visible {
22
+ box-shadow: var(--focus-stroke);
23
+ }
24
+ &:hover {
25
+ background-color: var(--subtle-fill-secondary);
26
+ }
27
+ &:active {
28
+ background-color: var(--subtle-fill-tertiary);
29
+ color: var(--text-secondary);
30
+ }
31
+ &.out-of-range {
32
+ color: var(--text-secondary);
33
+ &:active {
34
+ color: var(--text-tertiary);
35
+ }
36
+ }
37
+ &.disabled {
38
+ background-color: var(--subtle-fill-disabled);
39
+ color: var(--text-disabled);
40
+ &.blackout::after {
41
+ content: none;
42
+ }
43
+ }
44
+ &.blackout {
45
+ pointer-events: none;
46
+ &::after {
47
+ content: "";
48
+ transform-origin: center;
49
+ inline-size: 26px;
50
+ block-size: 1px;
51
+ position: absolute;
52
+ transform: matrix(-0.71, -0.71, -0.71, 0.71, 0, 0);
53
+ border-block-start: 1px solid var(--control-strong-stroke-default);
54
+ }
55
+ }
56
+ &.type- {
57
+ &day {
58
+ inline-size: 40px;
59
+ block-size: 40px;
60
+ small {
61
+ inset-block-start: 2px;
62
+ }
63
+ }
64
+ &month-year {
65
+ inline-size: 56px;
66
+ block-size: 56px;
67
+ small {
68
+ inset-block-start: 9.58px; // figma toolkit is weird idk
69
+ }
70
+ }
71
+ }
72
+ &.selected {
73
+ color: var(--accent-text-primary);
74
+ border: 1px solid var(--accent-default);
75
+ &:hover {
76
+ background-color: var(--subtle-fill-secondary);
77
+ border-color: var(--accent-secondary);
78
+ }
79
+ &:active {
80
+ background-color: var(--subtle-fill-tertiary);
81
+ border-color: var(--accent-tertiary);
82
+ }
83
+ &.disabled {
84
+ color: var(--accent-text-disabled);
85
+ background-color: var(--subtle-fill-disabled);
86
+ border-color: var(--accent-disabled);
87
+ }
88
+ &.current {
89
+ box-shadow: inset 0 0 0 1px var(--text-on-accent-primary);
90
+ &:focus-visible {
91
+ box-shadow: inset 0 0 0 1px var(--text-on-accent-primary), var(--focus-stroke);
92
+ }
93
+ }
94
+ &.blackout::after {
95
+ border-block-start-color: var(--accent-tertiary);
96
+ }
97
+ }
98
+ &.current {
99
+ color: var(--text-on-accent-primary);
100
+ background-color: var(--accent-default);
101
+ &:hover {
102
+ background-color: var(--accent-secondary);
103
+ }
104
+ &:active {
105
+ background-color: var(--accent-tertiary);
106
+ color: var(--text-on-accent-secondary);
107
+ }
108
+ &.disabled {
109
+ background-color: var(--accent-disabled);
110
+ }
111
+ &.blackout::after {
112
+ border-block-start-color: var(--text-on-accent-primary);
113
+ }
114
+ }
115
+ small {
116
+ pointer-events: none;
117
+ position: absolute;
118
+ inline-size: 100%;
119
+ padding-inline: 1px;
120
+ letter-spacing: 0.04em;
121
+ text-align: center;
122
+ color: inherit;
123
+ line-height: 12px;
124
+ font: {
125
+ family: var(--font-family-small);
126
+ weight: 400;
127
+ size: 8px;
128
+ }
129
+ }
130
+ }
@@ -5,26 +5,26 @@ export let current = false;
5
5
  export let outOfRange = false;
6
6
  export let variant = "day";
7
7
  export let header = "";
8
- </script>
9
-
10
- <button
11
- on:click
12
- on:keydown
13
- type="button"
14
- class="calendar-view-item type-{variant === 'day' ? 'day' : 'month-year'}"
15
- class:selected
16
- class:current
17
- class:blackout
18
- class:disabled
19
- class:out-of-range={outOfRange}
20
- disabled={disabled || blackout}
21
- aria-selected={selected}
22
- {...$$restProps}
23
- >
24
- {#if header}
25
- <small>{header}</small>
26
- {/if}
27
- <slot />
28
- </button>
29
-
30
- <style >.calendar-view-item{align-items:center;background-color:var(--fds-subtle-fill-transparent);border:1px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--fds-text-primary);display:inline-flex;font-family:var(--fds-font-family-text);font-size:14px;font-weight:400;justify-content:center;line-height:20px;outline:none;padding:0;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.calendar-view-item:focus-visible{box-shadow:var(--fds-focus-stroke)}.calendar-view-item:hover{background-color:var(--fds-subtle-fill-secondary)}.calendar-view-item:active{background-color:var(--fds-subtle-fill-tertiary)}.calendar-view-item.out-of-range,.calendar-view-item:active{color:var(--fds-text-secondary)}.calendar-view-item.out-of-range:active{color:var(--fds-text-tertiary)}.calendar-view-item.disabled{background-color:var(--fds-subtle-fill-disabled);color:var(--fds-text-disabled)}.calendar-view-item.disabled.blackout:after{content:none}.calendar-view-item.blackout{pointer-events:none}.calendar-view-item.blackout:after{-webkit-border-before:1px solid var(--fds-control-strong-stroke-default);block-size:1px;border-block-start:1px solid var(--fds-control-strong-stroke-default);content:"";inline-size:26px;position:absolute;transform:matrix(-.71,-.71,-.71,.71,0,0);transform-origin:center}.calendar-view-item.type-day{block-size:40px;inline-size:40px}.calendar-view-item.type-day small{inset-block-start:2px}.calendar-view-item.type-month-year{block-size:56px;inline-size:56px}.calendar-view-item.type-month-year small{inset-block-start:9.58px}.calendar-view-item.selected{border:1px solid var(--fds-accent-default);color:var(--fds-accent-text-primary)}.calendar-view-item.selected:hover{background-color:var(--fds-subtle-fill-secondary);border-color:var(--fds-accent-secondary)}.calendar-view-item.selected:active{background-color:var(--fds-subtle-fill-tertiary);border-color:var(--fds-accent-tertiary)}.calendar-view-item.selected.disabled{background-color:var(--fds-subtle-fill-disabled);border-color:var(--fds-accent-disabled);color:var(--fds-accent-text-disabled)}.calendar-view-item.selected.current{box-shadow:inset 0 0 0 1px var(--fds-text-on-accent-primary)}.calendar-view-item.selected.current:focus-visible{box-shadow:inset 0 0 0 1px var(--fds-text-on-accent-primary),var(--fds-focus-stroke)}.calendar-view-item.selected.blackout:after{border-block-start-color:var(--fds-accent-tertiary)}.calendar-view-item.current{background-color:var(--fds-accent-default);color:var(--fds-text-on-accent-primary)}.calendar-view-item.current:hover{background-color:var(--fds-accent-secondary)}.calendar-view-item.current:active{background-color:var(--fds-accent-tertiary);color:var(--fds-text-on-accent-secondary)}.calendar-view-item.current.disabled{background-color:var(--fds-accent-disabled)}.calendar-view-item.current.blackout:after{border-block-start-color:var(--fds-text-on-accent-primary)}.calendar-view-item small{color:inherit;font-family:var(--fds-font-family-small);font-size:8px;font-weight:400;inline-size:100%;letter-spacing:.04em;line-height:12px;padding-inline:1px;pointer-events:none;position:absolute;text-align:center}</style>
8
+ </script>
9
+
10
+ <button
11
+ on:click
12
+ on:keydown
13
+ type="button"
14
+ class="calendar-view-item type-{variant === 'day' ? 'day' : 'month-year'}"
15
+ class:selected
16
+ class:current
17
+ class:blackout
18
+ class:disabled
19
+ class:out-of-range={outOfRange}
20
+ disabled={disabled || blackout}
21
+ aria-selected={selected}
22
+ {...$$restProps}
23
+ >
24
+ {#if header}
25
+ <small>{header}</small>
26
+ {/if}
27
+ <slot />
28
+ </button>
29
+
30
+ <style >.calendar-view-item{align-items:center;background-color:var(--fds-subtle-fill-transparent);border:1px solid transparent;border-radius:50%;box-sizing:border-box;color:var(--fds-text-primary);display:inline-flex;font-family:var(--fds-font-family-text);font-size:14px;font-weight:400;justify-content:center;line-height:20px;outline:none;padding:0;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.calendar-view-item:focus-visible{box-shadow:var(--fds-focus-stroke)}.calendar-view-item:hover{background-color:var(--fds-subtle-fill-secondary)}.calendar-view-item:active{background-color:var(--fds-subtle-fill-tertiary)}.calendar-view-item.out-of-range,.calendar-view-item:active{color:var(--fds-text-secondary)}.calendar-view-item.out-of-range:active{color:var(--fds-text-tertiary)}.calendar-view-item.disabled{background-color:var(--fds-subtle-fill-disabled);color:var(--fds-text-disabled)}.calendar-view-item.disabled.blackout:after{content:none}.calendar-view-item.blackout{pointer-events:none}.calendar-view-item.blackout:after{-webkit-border-before:1px solid var(--fds-control-strong-stroke-default);block-size:1px;border-block-start:1px solid var(--fds-control-strong-stroke-default);content:"";inline-size:26px;position:absolute;transform:matrix(-.71,-.71,-.71,.71,0,0);transform-origin:center}.calendar-view-item.type-day{block-size:40px;inline-size:40px}.calendar-view-item.type-day small{inset-block-start:2px}.calendar-view-item.type-month-year{block-size:56px;inline-size:56px}.calendar-view-item.type-month-year small{inset-block-start:9.58px}.calendar-view-item.selected{border:1px solid var(--fds-accent-default);color:var(--fds-accent-text-primary)}.calendar-view-item.selected:hover{background-color:var(--fds-subtle-fill-secondary);border-color:var(--fds-accent-secondary)}.calendar-view-item.selected:active{background-color:var(--fds-subtle-fill-tertiary);border-color:var(--fds-accent-tertiary)}.calendar-view-item.selected.disabled{background-color:var(--fds-subtle-fill-disabled);border-color:var(--fds-accent-disabled);color:var(--fds-accent-text-disabled)}.calendar-view-item.selected.current{box-shadow:inset 0 0 0 1px var(--fds-text-on-accent-primary)}.calendar-view-item.selected.current:focus-visible{box-shadow:inset 0 0 0 1px var(--fds-text-on-accent-primary),var(--fds-focus-stroke)}.calendar-view-item.selected.blackout:after{border-block-start-color:var(--fds-accent-tertiary)}.calendar-view-item.current{background-color:var(--fds-accent-default);color:var(--fds-text-on-accent-primary)}.calendar-view-item.current:hover{background-color:var(--fds-accent-secondary)}.calendar-view-item.current:active{background-color:var(--fds-accent-tertiary);color:var(--fds-text-on-accent-secondary)}.calendar-view-item.current.disabled{background-color:var(--fds-accent-disabled)}.calendar-view-item.current.blackout:after{border-block-start-color:var(--fds-text-on-accent-primary)}.calendar-view-item small{color:inherit;font-family:var(--fds-font-family-small);font-size:8px;font-weight:400;inline-size:100%;letter-spacing:.04em;line-height:12px;padding-inline:1px;pointer-events:none;position:absolute;text-align:center}</style>
@@ -1,117 +1,117 @@
1
- @use "../mixins" as *;
2
-
3
- .checkbox {
4
- @include typography-body;
5
-
6
- margin: 0;
7
- border: 1px solid var(--control-strong-stroke-default);
8
- border-radius: var(--control-corner-radius);
9
- outline: none;
10
- background-clip: padding-box;
11
- background-color: var(--control-alt-fill-secondary);
12
- appearance: none;
13
- inline-size: 20px;
14
- block-size: 20px;
15
-
16
- &:focus-visible {
17
- box-shadow: var(--focus-stroke);
18
- }
19
-
20
- &:hover {
21
- background-color: var(--control-alt-fill-tertiary);
22
- }
23
-
24
- &:active {
25
- border-color: var(--control-strong-stroke-disabled);
26
- background-color: var(--control-alt-fill-quarternary);
27
- + .checkbox-glyph {
28
- color: var(--text-on-accent-secondary);
29
- }
30
- }
31
-
32
- &:disabled {
33
- border-color: var(--control-strong-stroke-disabled);
34
- background-color: var(--control-alt-fill-disabled);
35
- pointer-events: none;
36
- }
37
-
38
- &:checked,
39
- &:indeterminate {
40
- border: none;
41
- background-color: var(--accent-default);
42
-
43
- &:hover {
44
- background-color: var(--accent-secondary);
45
- }
46
-
47
- &:active {
48
- background-color: var(--accent-tertiary);
49
- }
50
-
51
- &:disabled {
52
- border-color: var(--control-strong-stroke-disabled);
53
- background-color: var(--accent-disabled);
54
- + .checkbox-glyph {
55
- color: var(--text-on-accent-disabled);
56
- }
57
- }
58
-
59
- + .checkbox-glyph .path-checkmark {
60
- transition: var(--control-normal-duration) cubic-bezier(0.55, 0, 0, 1) stroke-dashoffset;
61
- stroke-dashoffset: 0;
62
- }
63
- }
64
-
65
- &-container {
66
- @include flex($inline: true, $align: center);
67
- @include typography-body;
68
-
69
- color: var(--text-primary);
70
- user-select: none;
71
- min-block-size: 32px;
72
-
73
- > span {
74
- padding-inline-start: 8px;
75
- }
76
-
77
- &.disabled > span {
78
- color: var(--text-disabled);
79
- }
80
- }
81
-
82
- &-inner {
83
- @include flex($align: center, $justify: center);
84
- position: relative;
85
- }
86
-
87
- &-glyph {
88
- position: absolute;
89
- color: inherit;
90
- color: var(--text-on-accent-primary);
91
- inline-size: 12px;
92
- block-size: 12px;
93
-
94
- path {
95
- transform-origin: center;
96
- }
97
-
98
- .path- {
99
- &checkmark {
100
- transform: scale(1.2);
101
- stroke: currentColor;
102
- stroke: {
103
- width: 2;
104
- linecap: round;
105
- linejoin: round;
106
- dasharray: 20.5;
107
- dashoffset: 20.5;
108
- }
109
- }
110
-
111
- &indeterminate {
112
- transform: scale(calc(2 / 3)) translateX(80px) translateY(240px);
113
- fill: currentColor;
114
- }
115
- }
116
- }
117
- }
1
+ @use "../mixins" as *;
2
+
3
+ .checkbox {
4
+ @include typography-body;
5
+
6
+ margin: 0;
7
+ border: 1px solid var(--control-strong-stroke-default);
8
+ border-radius: var(--control-corner-radius);
9
+ outline: none;
10
+ background-clip: padding-box;
11
+ background-color: var(--control-alt-fill-secondary);
12
+ appearance: none;
13
+ inline-size: 20px;
14
+ block-size: 20px;
15
+
16
+ &:focus-visible {
17
+ box-shadow: var(--focus-stroke);
18
+ }
19
+
20
+ &:hover {
21
+ background-color: var(--control-alt-fill-tertiary);
22
+ }
23
+
24
+ &:active {
25
+ border-color: var(--control-strong-stroke-disabled);
26
+ background-color: var(--control-alt-fill-quarternary);
27
+ + .checkbox-glyph {
28
+ color: var(--text-on-accent-secondary);
29
+ }
30
+ }
31
+
32
+ &:disabled {
33
+ border-color: var(--control-strong-stroke-disabled);
34
+ background-color: var(--control-alt-fill-disabled);
35
+ pointer-events: none;
36
+ }
37
+
38
+ &:checked,
39
+ &:indeterminate {
40
+ border: none;
41
+ background-color: var(--accent-default);
42
+
43
+ &:hover {
44
+ background-color: var(--accent-secondary);
45
+ }
46
+
47
+ &:active {
48
+ background-color: var(--accent-tertiary);
49
+ }
50
+
51
+ &:disabled {
52
+ border-color: var(--control-strong-stroke-disabled);
53
+ background-color: var(--accent-disabled);
54
+ + .checkbox-glyph {
55
+ color: var(--text-on-accent-disabled);
56
+ }
57
+ }
58
+
59
+ + .checkbox-glyph .path-checkmark {
60
+ transition: var(--control-normal-duration) cubic-bezier(0.55, 0, 0, 1) stroke-dashoffset;
61
+ stroke-dashoffset: 0;
62
+ }
63
+ }
64
+
65
+ &-container {
66
+ @include flex($inline: true, $align: center);
67
+ @include typography-body;
68
+
69
+ color: var(--text-primary);
70
+ user-select: none;
71
+ min-block-size: 32px;
72
+
73
+ > span {
74
+ padding-inline-start: 8px;
75
+ }
76
+
77
+ &.disabled > span {
78
+ color: var(--text-disabled);
79
+ }
80
+ }
81
+
82
+ &-inner {
83
+ @include flex($align: center, $justify: center);
84
+ position: relative;
85
+ }
86
+
87
+ &-glyph {
88
+ position: absolute;
89
+ color: inherit;
90
+ color: var(--text-on-accent-primary);
91
+ inline-size: 12px;
92
+ block-size: 12px;
93
+
94
+ path {
95
+ transform-origin: center;
96
+ }
97
+
98
+ .path- {
99
+ &checkmark {
100
+ transform: scale(1.2);
101
+ stroke: currentColor;
102
+ stroke: {
103
+ width: 2;
104
+ linecap: round;
105
+ linejoin: round;
106
+ dasharray: 20.5;
107
+ dashoffset: 20.5;
108
+ }
109
+ }
110
+
111
+ &indeterminate {
112
+ transform: scale(calc(2 / 3)) translateX(80px) translateY(240px);
113
+ fill: currentColor;
114
+ }
115
+ }
116
+ }
117
+ }
@@ -16,55 +16,55 @@ export let inputElement = null;
16
16
  /** Obtains a bound DOM reference to the checkbox's outer container element. */
17
17
  export let containerElement = null;
18
18
  const forwardEvents = createEventForwarder(get_current_component());
19
- </script>
20
-
21
- <!--
22
- @component
23
- Checkboxes represent a control that a user can select (check) or clear (uncheck). A Checkbox can also report its value as indeterminate. [Docs](https://fluent-svelte.vercel.app/docs/components/checkbox)
24
- - Usage:
25
- ```tsx
26
- <Checkbox bind:checked />
27
- ```
28
- -->
29
- <!-- svelte-ignore a11y-label-has-associated-control -->
30
- <!-- https://github.com/sveltejs/svelte/pull/5323 -->
31
- <label class="checkbox-container" class:disabled class:indeterminate bind:this={containerElement}>
32
- <div class="checkbox-inner">
33
- <input
34
- use:forwardEvents
35
- bind:checked
36
- bind:indeterminate
37
- bind:this={inputElement}
38
- type="checkbox"
39
- class="checkbox {className}"
40
- {value}
41
- {disabled}
42
- {...$$restProps}
43
- />
44
- <svg
45
- aria-hidden="true"
46
- class="checkbox-glyph"
47
- viewBox={indeterminate ? "171 470 683 85" : "0 0 24 24"}
48
- >
49
- {#if indeterminate}
50
- <path
51
- class="path-indeterminate"
52
- d="M213.5,554.5C207.5,554.5 201.917,553.417 196.75,551.25C191.583,549.083 187.083,546.083 183.25,542.25C179.417,538.417 176.333,533.917 174,528.75C171.667,523.583 170.5,518 170.5,512C170.5,506 171.667,500.417 174,495.25C176.333,490.083 179.417,485.583 183.25,481.75C187.083,477.917 191.583,474.917 196.75,472.75C201.917,470.583 207.5,469.5 213.5,469.5L810.5,469.5C816.5,469.5 822.083,470.583 827.25,472.75C832.417,474.917 836.917,477.917 840.75,481.75C844.583,485.583 847.667,490.083 850,495.25C852.333,500.417 853.5,506 853.5,512C853.5,518 852.333,523.583 850,528.75C847.667,533.917 844.583,538.417 840.75,542.25C836.917,546.083 832.417,549.083 827.25,551.25C822.083,553.417 816.5,554.5 810.5,554.5Z"
53
- />
54
- {:else}
55
- <path
56
- class="path-checkmark"
57
- d="M 4.5303 12.9697 L 8.5 16.9393 L 18.9697 6.4697"
58
- fill="none"
59
- />
60
- {/if}
61
- </svg>
62
- </div>
63
- {#if $$slots.default}
64
- <span>
65
- <slot />
66
- </span>
67
- {/if}
68
- </label>
69
-
70
- <style >.checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-clip:padding-box;background-color:var(--fds-control-alt-fill-secondary);block-size:20px;border:1px solid var(--fds-control-strong-stroke-default);border-radius:var(--fds-control-corner-radius);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;inline-size:20px;line-height:20px;margin:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox:focus-visible{box-shadow:var(--fds-focus-stroke)}.checkbox:hover{background-color:var(--fds-control-alt-fill-tertiary)}.checkbox:active{background-color:var(--fds-control-alt-fill-quarternary);border-color:var(--fds-control-strong-stroke-disabled)}.checkbox:active+.checkbox-glyph{color:var(--fds-text-on-accent-secondary)}.checkbox:disabled{background-color:var(--fds-control-alt-fill-disabled);border-color:var(--fds-control-strong-stroke-disabled);pointer-events:none}.checkbox:checked,.checkbox:indeterminate{background-color:var(--fds-accent-default);border:none}.checkbox:checked:hover,.checkbox:indeterminate:hover{background-color:var(--fds-accent-secondary)}.checkbox:checked:active,.checkbox:indeterminate:active{background-color:var(--fds-accent-tertiary)}.checkbox:checked:disabled,.checkbox:indeterminate:disabled{background-color:var(--fds-accent-disabled);border-color:var(--fds-control-strong-stroke-disabled)}.checkbox:checked:disabled+.checkbox-glyph,.checkbox:indeterminate:disabled+.checkbox-glyph{color:var(--fds-text-on-accent-disabled)}.checkbox:checked+.checkbox-glyph .path-checkmark,.checkbox:indeterminate+.checkbox-glyph .path-checkmark{stroke-dashoffset:0;transition:var(--fds-control-normal-duration) cubic-bezier(.55,0,0,1) stroke-dashoffset}.checkbox-container{align-items:center;color:var(--fds-text-primary);display:inline-flex;font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-block-size:32px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox-container>span{-webkit-padding-start:8px;padding-inline-start:8px}.checkbox-container.disabled>span{color:var(--fds-text-disabled)}.checkbox-inner{align-items:center;display:flex;justify-content:center;position:relative}.checkbox-glyph{block-size:12px;color:inherit;color:var(--fds-text-on-accent-primary);inline-size:12px;position:absolute}.checkbox-glyph path{transform-origin:center}.checkbox-glyph .path-checkmark{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20.5;stroke-dashoffset:20.5;transform:scale(1.2)}.checkbox-glyph .path-indeterminate{fill:currentColor;transform:scale(.6666666667) translateX(80px) translateY(240px)}</style>
19
+ </script>
20
+
21
+ <!--
22
+ @component
23
+ Checkboxes represent a control that a user can select (check) or clear (uncheck). A Checkbox can also report its value as indeterminate. [Docs](https://fluent-svelte.vercel.app/docs/components/checkbox)
24
+ - Usage:
25
+ ```tsx
26
+ <Checkbox bind:checked />
27
+ ```
28
+ -->
29
+ <!-- svelte-ignore a11y-label-has-associated-control -->
30
+ <!-- https://github.com/sveltejs/svelte/pull/5323 -->
31
+ <label class="checkbox-container" class:disabled class:indeterminate bind:this={containerElement}>
32
+ <div class="checkbox-inner">
33
+ <input
34
+ use:forwardEvents
35
+ bind:checked
36
+ bind:indeterminate
37
+ bind:this={inputElement}
38
+ type="checkbox"
39
+ class="checkbox {className}"
40
+ {value}
41
+ {disabled}
42
+ {...$$restProps}
43
+ />
44
+ <svg
45
+ aria-hidden="true"
46
+ class="checkbox-glyph"
47
+ viewBox={indeterminate ? "171 470 683 85" : "0 0 24 24"}
48
+ >
49
+ {#if indeterminate}
50
+ <path
51
+ class="path-indeterminate"
52
+ d="M213.5,554.5C207.5,554.5 201.917,553.417 196.75,551.25C191.583,549.083 187.083,546.083 183.25,542.25C179.417,538.417 176.333,533.917 174,528.75C171.667,523.583 170.5,518 170.5,512C170.5,506 171.667,500.417 174,495.25C176.333,490.083 179.417,485.583 183.25,481.75C187.083,477.917 191.583,474.917 196.75,472.75C201.917,470.583 207.5,469.5 213.5,469.5L810.5,469.5C816.5,469.5 822.083,470.583 827.25,472.75C832.417,474.917 836.917,477.917 840.75,481.75C844.583,485.583 847.667,490.083 850,495.25C852.333,500.417 853.5,506 853.5,512C853.5,518 852.333,523.583 850,528.75C847.667,533.917 844.583,538.417 840.75,542.25C836.917,546.083 832.417,549.083 827.25,551.25C822.083,553.417 816.5,554.5 810.5,554.5Z"
53
+ />
54
+ {:else}
55
+ <path
56
+ class="path-checkmark"
57
+ d="M 4.5303 12.9697 L 8.5 16.9393 L 18.9697 6.4697"
58
+ fill="none"
59
+ />
60
+ {/if}
61
+ </svg>
62
+ </div>
63
+ {#if $$slots.default}
64
+ <span>
65
+ <slot />
66
+ </span>
67
+ {/if}
68
+ </label>
69
+
70
+ <style >.checkbox{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-clip:padding-box;background-color:var(--fds-control-alt-fill-secondary);block-size:20px;border:1px solid var(--fds-control-strong-stroke-default);border-radius:var(--fds-control-corner-radius);font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;inline-size:20px;line-height:20px;margin:0;outline:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox:focus-visible{box-shadow:var(--fds-focus-stroke)}.checkbox:hover{background-color:var(--fds-control-alt-fill-tertiary)}.checkbox:active{background-color:var(--fds-control-alt-fill-quarternary);border-color:var(--fds-control-strong-stroke-disabled)}.checkbox:active+.checkbox-glyph{color:var(--fds-text-on-accent-secondary)}.checkbox:disabled{background-color:var(--fds-control-alt-fill-disabled);border-color:var(--fds-control-strong-stroke-disabled);pointer-events:none}.checkbox:checked,.checkbox:indeterminate{background-color:var(--fds-accent-default);border:none}.checkbox:checked:hover,.checkbox:indeterminate:hover{background-color:var(--fds-accent-secondary)}.checkbox:checked:active,.checkbox:indeterminate:active{background-color:var(--fds-accent-tertiary)}.checkbox:checked:disabled,.checkbox:indeterminate:disabled{background-color:var(--fds-accent-disabled);border-color:var(--fds-control-strong-stroke-disabled)}.checkbox:checked:disabled+.checkbox-glyph,.checkbox:indeterminate:disabled+.checkbox-glyph{color:var(--fds-text-on-accent-disabled)}.checkbox:checked+.checkbox-glyph .path-checkmark,.checkbox:indeterminate+.checkbox-glyph .path-checkmark{stroke-dashoffset:0;transition:var(--fds-control-normal-duration) cubic-bezier(.55,0,0,1) stroke-dashoffset}.checkbox-container{align-items:center;color:var(--fds-text-primary);display:inline-flex;font-family:var(--fds-font-family-text);font-size:var(--fds-body-font-size);font-weight:400;line-height:20px;min-block-size:32px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.checkbox-container>span{-webkit-padding-start:8px;padding-inline-start:8px}.checkbox-container.disabled>span{color:var(--fds-text-disabled)}.checkbox-inner{align-items:center;display:flex;justify-content:center;position:relative}.checkbox-glyph{block-size:12px;color:inherit;color:var(--fds-text-on-accent-primary);inline-size:12px;position:absolute}.checkbox-glyph path{transform-origin:center}.checkbox-glyph .path-checkmark{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20.5;stroke-dashoffset:20.5;transform:scale(1.2)}.checkbox-glyph .path-indeterminate{fill:currentColor;transform:scale(.6666666667) translateX(80px) translateY(240px)}</style>