@fluentui/web-components 3.0.0-rc.26 → 3.0.0-rc.27

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 (122) hide show
  1. package/CHANGELOG.md +12 -2
  2. package/README.md +26 -0
  3. package/custom-elements.json +49 -64
  4. package/dist/esm/accordion/accordion.styles.css +11 -7
  5. package/dist/esm/accordion/accordion.template.html +4 -3
  6. package/dist/esm/accordion-item/accordion-item.styles.css +174 -170
  7. package/dist/esm/accordion-item/accordion-item.template.html +38 -31
  8. package/dist/esm/anchor-button/anchor-button.styles.css +224 -223
  9. package/dist/esm/anchor-button/anchor-button.template.html +8 -11
  10. package/dist/esm/avatar/avatar.styles.css +475 -470
  11. package/dist/esm/avatar/avatar.template.html +10 -14
  12. package/dist/esm/badge/badge.styles.css +264 -266
  13. package/dist/esm/badge/badge.template.html +5 -2
  14. package/dist/esm/button/button.base.js +2 -0
  15. package/dist/esm/button/button.base.js.map +1 -1
  16. package/dist/esm/button/button.styles.css +260 -259
  17. package/dist/esm/button/button.template.html +8 -10
  18. package/dist/esm/checkbox/checkbox.base.js +2 -0
  19. package/dist/esm/checkbox/checkbox.base.js.map +1 -1
  20. package/dist/esm/checkbox/checkbox.styles.css +146 -142
  21. package/dist/esm/checkbox/checkbox.template.html +21 -16
  22. package/dist/esm/compound-button/compound-button.styles.css +363 -365
  23. package/dist/esm/compound-button/compound-button.template.html +9 -11
  24. package/dist/esm/counter-badge/counter-badge.styles.css +177 -177
  25. package/dist/esm/counter-badge/counter-badge.template.html +5 -2
  26. package/dist/esm/dialog/dialog.styles.css +65 -66
  27. package/dist/esm/dialog/dialog.template.html +18 -15
  28. package/dist/esm/dialog-body/dialog-body.styles.css +81 -76
  29. package/dist/esm/dialog-body/dialog-body.styles.js +1 -0
  30. package/dist/esm/dialog-body/dialog-body.styles.js.map +1 -1
  31. package/dist/esm/dialog-body/dialog-body.template.html +2 -1
  32. package/dist/esm/divider/divider.styles.css +105 -101
  33. package/dist/esm/divider/divider.template.html +6 -1
  34. package/dist/esm/drawer/drawer.styles.css +124 -119
  35. package/dist/esm/drawer/drawer.template.html +5 -2
  36. package/dist/esm/drawer-body/drawer-body.styles.css +29 -26
  37. package/dist/esm/drawer-body/drawer-body.template.html +5 -2
  38. package/dist/esm/dropdown/dropdown.base.d.ts +1 -1
  39. package/dist/esm/dropdown/dropdown.base.js +3 -1
  40. package/dist/esm/dropdown/dropdown.base.js.map +1 -1
  41. package/dist/esm/dropdown/dropdown.styles.css +192 -190
  42. package/dist/esm/dropdown/dropdown.styles.js +1 -0
  43. package/dist/esm/dropdown/dropdown.styles.js.map +1 -1
  44. package/dist/esm/dropdown/dropdown.template.html +26 -19
  45. package/dist/esm/field/field.styles.css +125 -121
  46. package/dist/esm/field/field.template.html +3 -2
  47. package/dist/esm/image/image.styles.css +49 -50
  48. package/dist/esm/image/image.template.html +6 -1
  49. package/dist/esm/label/label.styles.css +34 -30
  50. package/dist/esm/label/label.template.html +5 -2
  51. package/dist/esm/link/link.styles.css +58 -54
  52. package/dist/esm/link/link.template.html +4 -7
  53. package/dist/esm/listbox/listbox.styles.css +40 -36
  54. package/dist/esm/listbox/listbox.template.html +4 -6
  55. package/dist/esm/menu/menu.styles.css +56 -52
  56. package/dist/esm/menu/menu.template.html +6 -5
  57. package/dist/esm/menu-button/menu-button.styles.css +260 -259
  58. package/dist/esm/menu-button/menu-button.template.html +23 -14
  59. package/dist/esm/menu-item/menu-item.js +2 -0
  60. package/dist/esm/menu-item/menu-item.js.map +1 -1
  61. package/dist/esm/menu-item/menu-item.styles.css +141 -137
  62. package/dist/esm/menu-item/menu-item.template.html +48 -17
  63. package/dist/esm/menu-list/menu-list.styles.css +19 -15
  64. package/dist/esm/menu-list/menu-list.template.html +4 -3
  65. package/dist/esm/message-bar/message-bar.styles.css +83 -84
  66. package/dist/esm/message-bar/message-bar.template.html +7 -2
  67. package/dist/esm/option/option.styles.css +117 -114
  68. package/dist/esm/option/option.template.html +17 -14
  69. package/dist/esm/progress-bar/progress-bar.styles.css +83 -79
  70. package/dist/esm/progress-bar/progress-bar.template.html +4 -1
  71. package/dist/esm/radio/radio.styles.css +100 -96
  72. package/dist/esm/radio/radio.template.html +6 -9
  73. package/dist/esm/radio-group/radio-group.styles.css +45 -41
  74. package/dist/esm/radio-group/radio-group.template.html +11 -10
  75. package/dist/esm/rating-display/rating-display.styles.css +136 -134
  76. package/dist/esm/rating-display/rating-display.template.html +5 -2
  77. package/dist/esm/slider/slider.js +2 -0
  78. package/dist/esm/slider/slider.js.map +1 -1
  79. package/dist/esm/slider/slider.styles.css +186 -182
  80. package/dist/esm/slider/slider.template.html +13 -15
  81. package/dist/esm/spinner/spinner.styles.css +155 -151
  82. package/dist/esm/spinner/spinner.template.html +16 -11
  83. package/dist/esm/switch/switch.styles.css +112 -108
  84. package/dist/esm/switch/switch.template.html +9 -8
  85. package/dist/esm/tab/tab.js +2 -0
  86. package/dist/esm/tab/tab.js.map +1 -1
  87. package/dist/esm/tab/tab.styles.css +112 -108
  88. package/dist/esm/tab/tab.template.html +6 -5
  89. package/dist/esm/tablist/tablist.styles.css +194 -190
  90. package/dist/esm/tablist/tablist.template.html +2 -5
  91. package/dist/esm/text/text.styles.css +105 -101
  92. package/dist/esm/text/text.template.html +6 -1
  93. package/dist/esm/text-input/text-input.base.d.ts +0 -7
  94. package/dist/esm/text-input/text-input.base.js +3 -14
  95. package/dist/esm/text-input/text-input.base.js.map +1 -1
  96. package/dist/esm/text-input/text-input.styles.css +199 -195
  97. package/dist/esm/text-input/text-input.template.html +34 -35
  98. package/dist/esm/text-input/text-input.template.js +1 -4
  99. package/dist/esm/text-input/text-input.template.js.map +1 -1
  100. package/dist/esm/textarea/textarea.base.js +2 -0
  101. package/dist/esm/textarea/textarea.base.js.map +1 -1
  102. package/dist/esm/textarea/textarea.styles.css +254 -250
  103. package/dist/esm/textarea/textarea.template.html +28 -27
  104. package/dist/esm/toggle-button/toggle-button.styles.css +360 -357
  105. package/dist/esm/toggle-button/toggle-button.template.html +8 -10
  106. package/dist/esm/tooltip/tooltip.styles.css +81 -77
  107. package/dist/esm/tooltip/tooltip.template.html +6 -1
  108. package/dist/esm/tree/tree.styles.css +9 -5
  109. package/dist/esm/tree/tree.template.html +3 -2
  110. package/dist/esm/tree-item/tree-item.base.js +2 -0
  111. package/dist/esm/tree-item/tree-item.base.js.map +1 -1
  112. package/dist/esm/tree-item/tree-item.styles.css +157 -153
  113. package/dist/esm/tree-item/tree-item.template.html +8 -7
  114. package/dist/esm/utils/autofocus.d.ts +12 -0
  115. package/dist/esm/utils/autofocus.js +25 -0
  116. package/dist/esm/utils/autofocus.js.map +1 -0
  117. package/dist/web-components-all.js +23 -17
  118. package/dist/web-components-all.min.js +15 -15
  119. package/dist/web-components.d.ts +1 -8
  120. package/dist/web-components.js +23 -17
  121. package/dist/web-components.min.js +15 -15
  122. package/package.json +4 -5
@@ -1,155 +1,159 @@
1
-
2
- :host([hidden]){display:none}:host{display:inline-flex}
3
-
4
- :host {
5
- --duration: 1.5s;
6
- --indicatorSize: var(--strokeWidthThicker);
7
- --size: 32px;
8
- height: var(--size);
9
- width: var(--size);
10
- contain: strict;
11
- content-visibility: auto;
12
- }
13
-
14
- :host([size='tiny']) {
15
- --indicatorSize: var(--strokeWidthThick);
16
- --size: 20px;
17
- }
18
- :host([size='extra-small']) {
19
- --indicatorSize: var(--strokeWidthThick);
20
- --size: 24px;
21
- }
22
- :host([size='small']) {
23
- --indicatorSize: var(--strokeWidthThick);
24
- --size: 28px;
25
- }
26
- :host([size='large']) {
27
- --indicatorSize: var(--strokeWidthThicker);
28
- --size: 36px;
29
- }
30
- :host([size='extra-large']) {
31
- --indicatorSize: var(--strokeWidthThicker);
32
- --size: 40px;
33
- }
34
- :host([size='huge']) {
35
- --indicatorSize: var(--strokeWidthThickest);
36
- --size: 44px;
37
- }
38
-
39
- .progress,
40
- .background,
41
- .spinner,
42
- .start,
43
- .end,
44
- .indicator {
45
- position: absolute;
46
- inset: 0;
47
- }
48
-
49
- .progress,
50
- .spinner,
51
- .indicator {
52
- animation: none var(--duration) infinite var(--curveEasyEase);
53
- }
54
-
55
- .progress {
56
- animation-timing-function: linear;
57
- animation-name: spin-linear;
58
- }
59
-
1
+ :host([hidden]) {
2
+ display: none;
3
+ }
4
+ :host {
5
+ display: inline-flex;
6
+ }
7
+
8
+ :host {
9
+ --duration: 1.5s;
10
+ --indicatorSize: var(--strokeWidthThicker);
11
+ --size: 32px;
12
+ height: var(--size);
13
+ width: var(--size);
14
+ contain: strict;
15
+ content-visibility: auto;
16
+ }
17
+
18
+ :host([size='tiny']) {
19
+ --indicatorSize: var(--strokeWidthThick);
20
+ --size: 20px;
21
+ }
22
+ :host([size='extra-small']) {
23
+ --indicatorSize: var(--strokeWidthThick);
24
+ --size: 24px;
25
+ }
26
+ :host([size='small']) {
27
+ --indicatorSize: var(--strokeWidthThick);
28
+ --size: 28px;
29
+ }
30
+ :host([size='large']) {
31
+ --indicatorSize: var(--strokeWidthThicker);
32
+ --size: 36px;
33
+ }
34
+ :host([size='extra-large']) {
35
+ --indicatorSize: var(--strokeWidthThicker);
36
+ --size: 40px;
37
+ }
38
+ :host([size='huge']) {
39
+ --indicatorSize: var(--strokeWidthThickest);
40
+ --size: 44px;
41
+ }
42
+
43
+ .progress,
44
+ .background,
45
+ .spinner,
46
+ .start,
47
+ .end,
48
+ .indicator {
49
+ position: absolute;
50
+ inset: 0;
51
+ }
52
+
53
+ .progress,
54
+ .spinner,
55
+ .indicator {
56
+ animation: none var(--duration) infinite var(--curveEasyEase);
57
+ }
58
+
59
+ .progress {
60
+ animation-timing-function: linear;
61
+ animation-name: spin-linear;
62
+ }
63
+
64
+ .background {
65
+ border: var(--indicatorSize) solid var(--colorBrandStroke2);
66
+ border-radius: 50%;
67
+ }
68
+
69
+ :host([appearance='inverted']) .background {
70
+ border-color: rgba(255, 255, 255, 0.2);
71
+ }
72
+
73
+ .spinner {
74
+ animation-name: spin-swing;
75
+ }
76
+
77
+ .start {
78
+ overflow: hidden;
79
+ right: 50%;
80
+ }
81
+
82
+ .end {
83
+ overflow: hidden;
84
+ left: 50%;
85
+ }
86
+
87
+ .indicator {
88
+ color: var(--colorBrandStroke1);
89
+ box-sizing: border-box;
90
+ border-radius: 50%;
91
+ border: var(--indicatorSize) solid transparent;
92
+ border-block-start-color: currentcolor;
93
+ border-right-color: currentcolor;
94
+ }
95
+
96
+ :host([appearance='inverted']) .indicator {
97
+ color: var(--colorNeutralStrokeOnBrand2);
98
+ }
99
+
100
+ .start .indicator {
101
+ rotate: 135deg; /* Starts 9 o'clock */
102
+ inset: 0 -100% 0 0;
103
+ animation-name: spin-start;
104
+ }
105
+
106
+ .end .indicator {
107
+ rotate: 135deg; /* Ends at 3 o'clock */
108
+ inset: 0 0 0 -100%;
109
+ animation-name: spin-end;
110
+ }
111
+
112
+ @keyframes spin-linear {
113
+ 100% {
114
+ transform: rotate(360deg);
115
+ }
116
+ }
117
+
118
+ @keyframes spin-swing {
119
+ 0% {
120
+ transform: rotate(-135deg);
121
+ }
122
+ 50% {
123
+ transform: rotate(0deg);
124
+ }
125
+ 100% {
126
+ transform: rotate(225deg);
127
+ }
128
+ }
129
+
130
+ @keyframes spin-start {
131
+ 0%,
132
+ 100% {
133
+ transform: rotate(0deg);
134
+ }
135
+ 50% {
136
+ transform: rotate(-80deg);
137
+ }
138
+ }
139
+
140
+ @keyframes spin-end {
141
+ 0%,
142
+ 100% {
143
+ transform: rotate(0deg);
144
+ }
145
+ 50% {
146
+ transform: rotate(70deg);
147
+ }
148
+ }
149
+
150
+ @media (forced-colors: active) {
60
151
  .background {
61
- border: var(--indicatorSize) solid var(--colorBrandStroke2);
62
- border-radius: 50%;
63
- }
64
-
65
- :host([appearance='inverted']) .background {
66
- border-color: rgba(255, 255, 255, 0.2);
67
- }
68
-
69
- .spinner {
70
- animation-name: spin-swing;
71
- }
72
-
73
- .start {
74
- overflow: hidden;
75
- right: 50%;
152
+ display: none;
76
153
  }
77
-
78
- .end {
79
- overflow: hidden;
80
- left: 50%;
81
- }
82
-
83
154
  .indicator {
84
- color: var(--colorBrandStroke1);
85
- box-sizing: border-box;
86
- border-radius: 50%;
87
- border: var(--indicatorSize) solid transparent;
88
- border-block-start-color: currentcolor;
89
- border-right-color: currentcolor;
90
- }
91
-
92
- :host([appearance='inverted']) .indicator {
93
- color: var(--colorNeutralStrokeOnBrand2);
94
- }
95
-
96
- .start .indicator {
97
- rotate: 135deg; /* Starts 9 o'clock */
98
- inset: 0 -100% 0 0;
99
- animation-name: spin-start;
100
- }
101
-
102
- .end .indicator {
103
- rotate: 135deg; /* Ends at 3 o'clock */
104
- inset: 0 0 0 -100%;
105
- animation-name: spin-end;
106
- }
107
-
108
- @keyframes spin-linear {
109
- 100% {
110
- transform: rotate(360deg);
111
- }
112
- }
113
-
114
- @keyframes spin-swing {
115
- 0% {
116
- transform: rotate(-135deg);
117
- }
118
- 50% {
119
- transform: rotate(0deg);
120
- }
121
- 100% {
122
- transform: rotate(225deg);
123
- }
124
- }
125
-
126
- @keyframes spin-start {
127
- 0%,
128
- 100% {
129
- transform: rotate(0deg);
130
- }
131
- 50% {
132
- transform: rotate(-80deg);
133
- }
134
- }
135
-
136
- @keyframes spin-end {
137
- 0%,
138
- 100% {
139
- transform: rotate(0deg);
140
- }
141
- 50% {
142
- transform: rotate(70deg);
143
- }
144
- }
145
-
146
- @media (forced-colors: active) {
147
- .background {
148
- display: none;
149
- }
150
- .indicator {
151
- border-color: Canvas;
152
- border-block-start-color: Highlight;
153
- border-right-color: Highlight;
154
- }
155
+ border-color: Canvas;
156
+ border-block-start-color: Highlight;
157
+ border-right-color: Highlight;
155
158
  }
159
+ }
@@ -1,13 +1,18 @@
1
- <f-template name="fluent-spinner" shadowrootmode="open"><template>{{styles}}<slot name="indicator">
2
- <div class="background"></div>
3
- <div class="progress">
4
- <div class="spinner">
5
- <div class="start">
6
- <div class="indicator"></div>
7
- </div>
8
- <div class="end">
9
- <div class="indicator"></div>
1
+ <f-template name="fluent-spinner" shadowrootmode="open">
2
+ <template>
3
+ {{styles}}
4
+ <slot name="indicator">
5
+ <div class="background"></div>
6
+ <div class="progress">
7
+ <div class="spinner">
8
+ <div class="start">
9
+ <div class="indicator"></div>
10
+ </div>
11
+ <div class="end">
12
+ <div class="indicator"></div>
13
+ </div>
10
14
  </div>
11
15
  </div>
12
- </div>
13
- </slot></template></f-template>
16
+ </slot>
17
+ </template>
18
+ </f-template>
@@ -1,121 +1,125 @@
1
+ :host([hidden]) {
2
+ display: none;
3
+ }
4
+ :host {
5
+ display: inline-flex;
6
+ }
1
7
 
2
- :host([hidden]){display:none}:host{display:inline-flex}
8
+ :host {
9
+ box-sizing: border-box;
10
+ align-items: center;
11
+ flex-direction: row;
12
+ outline: none;
13
+ user-select: none;
14
+ contain: content;
15
+ padding: 0 var(--spacingHorizontalXXS);
16
+ width: 40px;
17
+ height: 20px;
18
+ background-color: var(--colorTransparentBackground);
19
+ border: 1px solid var(--colorNeutralStrokeAccessible);
20
+ border-radius: var(--borderRadiusCircular);
21
+ }
3
22
 
4
- :host {
5
- box-sizing: border-box;
6
- align-items: center;
7
- flex-direction: row;
8
- outline: none;
9
- user-select: none;
10
- contain: content;
11
- padding: 0 var(--spacingHorizontalXXS);
12
- width: 40px;
13
- height: 20px;
14
- background-color: var(--colorTransparentBackground);
15
- border: 1px solid var(--colorNeutralStrokeAccessible);
16
- border-radius: var(--borderRadiusCircular);
17
- }
23
+ :host(:enabled) {
24
+ cursor: pointer;
25
+ }
18
26
 
19
- :host(:enabled) {
20
- cursor: pointer;
21
- }
27
+ :host(:hover) {
28
+ background: none;
29
+ border-color: var(--colorNeutralStrokeAccessibleHover);
30
+ }
31
+ :host(:active) {
32
+ border-color: var(--colorNeutralStrokeAccessiblePressed);
33
+ }
34
+ :host(:disabled),
35
+ :host([readonly]) {
36
+ border: 1px solid var(--colorNeutralStrokeDisabled);
37
+ background-color: none;
38
+ pointer: default;
39
+ }
40
+ :host(:state(checked)) {
41
+ background: var(--colorCompoundBrandBackground);
42
+ border-color: var(--colorCompoundBrandBackground);
43
+ }
44
+ :host(:state(checked):hover) {
45
+ background: var(--colorCompoundBrandBackgroundHover);
46
+ border-color: var(--colorCompoundBrandBackgroundHover);
47
+ }
48
+ :host(:state(checked):active) {
49
+ background: var(--colorCompoundBrandBackgroundPressed);
50
+ border-color: var(--colorCompoundBrandBackgroundPressed);
51
+ }
52
+ :host(:state(checked):disabled) {
53
+ background: var(--colorNeutralBackgroundDisabled);
54
+ border-color: var(--colorNeutralStrokeDisabled);
55
+ }
56
+ .checked-indicator {
57
+ height: 14px;
58
+ width: 14px;
59
+ border-radius: 50%;
60
+ margin-inline-start: 0;
61
+ background-color: var(--colorNeutralForeground3);
62
+ transition-duration: var(--durationNormal);
63
+ transition-timing-function: var(--curveEasyEase);
64
+ transition-property: margin-inline-start;
65
+ }
66
+ :host(:state(checked)) .checked-indicator {
67
+ background-color: var(--colorNeutralForegroundInverted);
68
+ margin-inline-start: calc(100% - 14px);
69
+ }
70
+ :host(:state(checked):hover) .checked-indicator {
71
+ background: var(--colorNeutralForegroundInvertedHover);
72
+ }
73
+ :host(:state(checked):active) .checked-indicator {
74
+ background: var(--colorNeutralForegroundInvertedPressed);
75
+ }
76
+ :host(:hover) .checked-indicator {
77
+ background-color: var(--colorNeutralForeground3Hover);
78
+ }
79
+ :host(:active) .checked-indicator {
80
+ background-color: var(--colorNeutralForeground3Pressed);
81
+ }
82
+ :host(:disabled) .checked-indicator,
83
+ :host([readonly]) .checked-indicator {
84
+ background: var(--colorNeutralForegroundDisabled);
85
+ }
86
+ :host(:state(checked):disabled) .checked-indicator {
87
+ background: var(--colorNeutralForegroundDisabled);
88
+ }
22
89
 
23
- :host(:hover) {
24
- background: none;
25
- border-color: var(--colorNeutralStrokeAccessibleHover);
26
- }
27
- :host(:active) {
28
- border-color: var(--colorNeutralStrokeAccessiblePressed);
29
- }
30
- :host(:disabled),
31
- :host([readonly]) {
32
- border: 1px solid var(--colorNeutralStrokeDisabled);
33
- background-color: none;
34
- pointer: default;
35
- }
36
- :host(:state(checked)) {
37
- background: var(--colorCompoundBrandBackground);
38
- border-color: var(--colorCompoundBrandBackground);
90
+ :host(:focus-visible) {
91
+ outline: none;
92
+ }
93
+
94
+ :host(:not([slot='input']):focus-visible) {
95
+ border-color: var(--colorTransparentStroke);
96
+ outline: var(--strokeWidthThick) solid var(--colorTransparentStroke);
97
+ outline-offset: 1px;
98
+ box-shadow: var(--shadow4), 0 0 0 2px var(--colorStrokeFocus2);
99
+ }
100
+
101
+ @media (forced-colors: active) {
102
+ :host {
103
+ border-color: InactiveBorder;
39
104
  }
105
+ :host(:state(checked)),
106
+ :host(:state(checked):active),
40
107
  :host(:state(checked):hover) {
41
- background: var(--colorCompoundBrandBackgroundHover);
42
- border-color: var(--colorCompoundBrandBackgroundHover);
43
- }
44
- :host(:state(checked):active) {
45
- background: var(--colorCompoundBrandBackgroundPressed);
46
- border-color: var(--colorCompoundBrandBackgroundPressed);
47
- }
48
- :host(:state(checked):disabled) {
49
- background: var(--colorNeutralBackgroundDisabled);
50
- border-color: var(--colorNeutralStrokeDisabled);
51
- }
52
- .checked-indicator {
53
- height: 14px;
54
- width: 14px;
55
- border-radius: 50%;
56
- margin-inline-start: 0;
57
- background-color: var(--colorNeutralForeground3);
58
- transition-duration: var(--durationNormal);
59
- transition-timing-function: var(--curveEasyEase);
60
- transition-property: margin-inline-start;
108
+ background: Highlight;
109
+ border-color: Highlight;
61
110
  }
62
- :host(:state(checked)) .checked-indicator {
63
- background-color: var(--colorNeutralForegroundInverted);
64
- margin-inline-start: calc(100% - 14px);
65
- }
66
- :host(:state(checked):hover) .checked-indicator {
67
- background: var(--colorNeutralForegroundInvertedHover);
111
+ .checked-indicator,
112
+ :host(:hover) .checked-indicator,
113
+ :host(:active) .checked-indicator {
114
+ background-color: ActiveCaption;
68
115
  }
116
+ :host(:state(checked)) .checked-indicator,
117
+ :host(:state(checked):hover) .checked-indicator,
69
118
  :host(:state(checked):active) .checked-indicator {
70
- background: var(--colorNeutralForegroundInvertedPressed);
71
- }
72
- :host(:hover) .checked-indicator {
73
- background-color: var(--colorNeutralForeground3Hover);
74
- }
75
- :host(:active) .checked-indicator {
76
- background-color: var(--colorNeutralForeground3Pressed);
119
+ background-color: ButtonFace;
77
120
  }
78
121
  :host(:disabled) .checked-indicator,
79
- :host([readonly]) .checked-indicator {
80
- background: var(--colorNeutralForegroundDisabled);
81
- }
82
122
  :host(:state(checked):disabled) .checked-indicator {
83
- background: var(--colorNeutralForegroundDisabled);
84
- }
85
-
86
- :host(:focus-visible) {
87
- outline: none;
88
- }
89
-
90
- :host(:not([slot='input']):focus-visible) {
91
- border-color: var(--colorTransparentStroke);
92
- outline: var(--strokeWidthThick) solid var(--colorTransparentStroke);
93
- outline-offset: 1px;
94
- box-shadow: var(--shadow4), 0 0 0 2px var(--colorStrokeFocus2);
95
- }
96
-
97
- @media (forced-colors: active) {
98
- :host {
99
- border-color: InactiveBorder;
100
- }
101
- :host(:state(checked)),
102
- :host(:state(checked):active),
103
- :host(:state(checked):hover) {
104
- background: Highlight;
105
- border-color: Highlight;
106
- }
107
- .checked-indicator,
108
- :host(:hover) .checked-indicator,
109
- :host(:active) .checked-indicator {
110
- background-color: ActiveCaption;
111
- }
112
- :host(:state(checked)) .checked-indicator,
113
- :host(:state(checked):hover) .checked-indicator,
114
- :host(:state(checked):active) .checked-indicator {
115
- background-color: ButtonFace;
116
- }
117
- :host(:disabled) .checked-indicator,
118
- :host(:state(checked):disabled) .checked-indicator {
119
- background-color: GrayText;
120
- }
123
+ background-color: GrayText;
121
124
  }
125
+ }
@@ -1,10 +1,11 @@
1
1
  <f-template name="fluent-switch" shadowrootmode="open">
2
- <template
3
- @click="{clickHandler($e)}"
4
- @input="{inputHandler($e)}"
5
- @keydown="{keydownHandler($e)}"
6
- @keyup="{keyupHandler($e)}"
7
- >{{styles}}
8
- <slot name="switch"><span class="checked-indicator" part="checked-indicator"></span></slot>
9
- </template>
2
+ <template
3
+ @click="{clickHandler($e)}"
4
+ @input="{inputHandler($e)}"
5
+ @keydown="{keydownHandler($e)}"
6
+ @keyup="{keyupHandler($e)}"
7
+ >
8
+ {{styles}}
9
+ <slot name="switch"><span class="checked-indicator" part="checked-indicator"></span></slot>
10
+ </template>
10
11
  </f-template>
@@ -2,6 +2,7 @@ import { __decorate } from "tslib";
2
2
  import { attr, css, FASTElement } from '@microsoft/fast-element';
3
3
  import { StartEnd } from '../patterns/start-end.js';
4
4
  import { applyMixins } from '../utils/apply-mixins.js';
5
+ import { maybeSetAutoFocus } from '../utils/autofocus.js';
5
6
  /**
6
7
  * Tab extends the FASTTab and is a child of the TabList
7
8
  *
@@ -34,6 +35,7 @@ export class Tab extends FASTElement {
34
35
  }
35
36
  `;
36
37
  this.$fastController.addStyles(this.styles);
38
+ maybeSetAutoFocus(this);
37
39
  }
38
40
  setDisabledSideEffect(disabled) {
39
41
  if (disabled) {
@@ -1 +1 @@
1
- {"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../src/tab/tab.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAsB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQvD;;;;GAIG;AACH,MAAM,OAAO,GAAI,SAAQ,WAAW;IASxB,eAAe,CAAC,IAAa,EAAE,IAAa;QACpD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAgBD;QACE,KAAK,EAAE,CAAC;QARV;;;;WAIG;QACI,qBAAgB,GAAqB,IAAI,CAAC,eAAe,EAAE,CAAC;QAKjE,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;QAEpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;;0BAEK,IAAI,CAAC,WAAqB;;KAE/C,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;IAEO,qBAAqB,CAAC,QAAiB;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AArDQ;IADN,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;qCACA;AAyD5B,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"tab.js","sourceRoot":"","sources":["../../../src/tab/tab.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAsB,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAErF,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQ1D;;;;GAIG;AACH,MAAM,OAAO,GAAI,SAAQ,WAAW;IASxB,eAAe,CAAC,IAAa,EAAE,IAAa;QACpD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAgBD;QACE,KAAK,EAAE,CAAC;QARV;;;;WAIG;QACI,qBAAgB,GAAqB,IAAI,CAAC,eAAe,EAAE,CAAC;QAKjE,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,KAAK,CAAC;IACrC,CAAC;IAED,iBAAiB;QACf,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC;QAEpB,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;;0BAEK,IAAI,CAAC,WAAqB;;KAE/C,CAAC;QAEF,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE5C,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAEO,qBAAqB,CAAC,QAAiB;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;QACxC,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrF,CAAC;CACF;AAvDQ;IADN,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;qCACA;AA2D5B,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC"}