@fluentui/web-components 3.0.0-alpha.13 → 3.0.0-alpha.15

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 (109) hide show
  1. package/CHANGELOG.json +45 -1
  2. package/CHANGELOG.md +21 -2
  3. package/dist/dts/index.d.ts +5 -0
  4. package/dist/dts/label/define.d.ts +1 -0
  5. package/dist/dts/label/index.d.ts +4 -0
  6. package/dist/dts/label/label.d.ts +42 -0
  7. package/dist/dts/label/label.definition.d.ts +10 -0
  8. package/dist/dts/label/label.options.d.ts +26 -0
  9. package/dist/dts/label/label.styles.d.ts +4 -0
  10. package/dist/dts/label/label.template.d.ts +8 -0
  11. package/dist/dts/menu-button/define.d.ts +1 -0
  12. package/dist/dts/menu-button/index.d.ts +5 -0
  13. package/dist/dts/menu-button/menu-button.d.ts +7 -0
  14. package/dist/dts/menu-button/menu-button.definition.d.ts +10 -0
  15. package/dist/dts/menu-button/menu-button.options.d.ts +46 -0
  16. package/dist/dts/menu-button/menu-button.template.d.ts +7 -0
  17. package/dist/dts/tab/define.d.ts +1 -0
  18. package/dist/dts/tab/index.d.ts +4 -0
  19. package/dist/dts/tab/tab.d.ts +8 -0
  20. package/dist/dts/tab/tab.definition.d.ts +2 -0
  21. package/dist/dts/tab/tab.styles.d.ts +1 -0
  22. package/dist/dts/tab/tab.template.d.ts +4 -0
  23. package/dist/dts/tab-panel/define.d.ts +1 -0
  24. package/dist/dts/tab-panel/index.d.ts +4 -0
  25. package/dist/dts/tab-panel/tab-panel.d.ts +3 -0
  26. package/dist/dts/tab-panel/tab-panel.definition.d.ts +2 -0
  27. package/dist/dts/tab-panel/tab-panel.styles.d.ts +1 -0
  28. package/dist/dts/tab-panel/tab-panel.template.d.ts +1 -0
  29. package/dist/dts/tabs/define.d.ts +1 -0
  30. package/dist/dts/tabs/index.d.ts +5 -0
  31. package/dist/dts/tabs/tabs.d.ts +88 -0
  32. package/dist/dts/tabs/tabs.definition.d.ts +2 -0
  33. package/dist/dts/tabs/tabs.options.d.ts +14 -0
  34. package/dist/dts/tabs/tabs.styles.d.ts +1 -0
  35. package/dist/dts/tabs/tabs.template.d.ts +1 -0
  36. package/dist/esm/button/button.styles.js +2 -0
  37. package/dist/esm/button/button.styles.js.map +1 -1
  38. package/dist/esm/index.js +5 -0
  39. package/dist/esm/index.js.map +1 -1
  40. package/dist/esm/label/define.js +4 -0
  41. package/dist/esm/label/define.js.map +1 -0
  42. package/dist/esm/label/index.js +5 -0
  43. package/dist/esm/label/index.js.map +1 -0
  44. package/dist/esm/label/label.definition.js +18 -0
  45. package/dist/esm/label/label.definition.js.map +1 -0
  46. package/dist/esm/label/label.js +40 -0
  47. package/dist/esm/label/label.js.map +1 -0
  48. package/dist/esm/label/label.options.js +16 -0
  49. package/dist/esm/label/label.options.js.map +1 -0
  50. package/dist/esm/label/label.styles.js +38 -0
  51. package/dist/esm/label/label.styles.js.map +1 -0
  52. package/dist/esm/label/label.template.js +13 -0
  53. package/dist/esm/label/label.template.js.map +1 -0
  54. package/dist/esm/menu-button/define.js +4 -0
  55. package/dist/esm/menu-button/define.js.map +1 -0
  56. package/dist/esm/menu-button/index.js +6 -0
  57. package/dist/esm/menu-button/index.js.map +1 -0
  58. package/dist/esm/menu-button/menu-button.definition.js +21 -0
  59. package/dist/esm/menu-button/menu-button.definition.js.map +1 -0
  60. package/dist/esm/menu-button/menu-button.js +8 -0
  61. package/dist/esm/menu-button/menu-button.js.map +1 -0
  62. package/dist/esm/menu-button/menu-button.options.js +17 -0
  63. package/dist/esm/menu-button/menu-button.options.js.map +1 -0
  64. package/dist/esm/menu-button/menu-button.template.js +10 -0
  65. package/dist/esm/menu-button/menu-button.template.js.map +1 -0
  66. package/dist/esm/tab/define.js +4 -0
  67. package/dist/esm/tab/define.js.map +1 -0
  68. package/dist/esm/tab/index.js +5 -0
  69. package/dist/esm/tab/index.js.map +1 -0
  70. package/dist/esm/tab/tab.definition.js +10 -0
  71. package/dist/esm/tab/tab.definition.js.map +1 -0
  72. package/dist/esm/tab/tab.js +20 -0
  73. package/dist/esm/tab/tab.js.map +1 -0
  74. package/dist/esm/tab/tab.styles.js +94 -0
  75. package/dist/esm/tab/tab.styles.js.map +1 -0
  76. package/dist/esm/tab/tab.template.js +13 -0
  77. package/dist/esm/tab/tab.template.js.map +1 -0
  78. package/dist/esm/tab-panel/define.js +4 -0
  79. package/dist/esm/tab-panel/define.js.map +1 -0
  80. package/dist/esm/tab-panel/index.js +5 -0
  81. package/dist/esm/tab-panel/index.js.map +1 -0
  82. package/dist/esm/tab-panel/tab-panel.definition.js +10 -0
  83. package/dist/esm/tab-panel/tab-panel.definition.js.map +1 -0
  84. package/dist/esm/tab-panel/tab-panel.js +4 -0
  85. package/dist/esm/tab-panel/tab-panel.js.map +1 -0
  86. package/dist/esm/tab-panel/tab-panel.styles.js +12 -0
  87. package/dist/esm/tab-panel/tab-panel.styles.js.map +1 -0
  88. package/dist/esm/tab-panel/tab-panel.template.js +3 -0
  89. package/dist/esm/tab-panel/tab-panel.template.js.map +1 -0
  90. package/dist/esm/tabs/define.js +4 -0
  91. package/dist/esm/tabs/define.js.map +1 -0
  92. package/dist/esm/tabs/index.js +6 -0
  93. package/dist/esm/tabs/index.js.map +1 -0
  94. package/dist/esm/tabs/tabs.definition.js +10 -0
  95. package/dist/esm/tabs/tabs.definition.js.map +1 -0
  96. package/dist/esm/tabs/tabs.js +158 -0
  97. package/dist/esm/tabs/tabs.js.map +1 -0
  98. package/dist/esm/tabs/tabs.options.js +12 -0
  99. package/dist/esm/tabs/tabs.options.js.map +1 -0
  100. package/dist/esm/tabs/tabs.styles.js +230 -0
  101. package/dist/esm/tabs/tabs.styles.js.map +1 -0
  102. package/dist/esm/tabs/tabs.template.js +3 -0
  103. package/dist/esm/tabs/tabs.template.js.map +1 -0
  104. package/dist/fluent-web-components.api.json +1318 -39
  105. package/dist/web-components.d.ts +302 -2
  106. package/dist/web-components.js +701 -60
  107. package/dist/web-components.min.js +151 -136
  108. package/docs/api-report.md +140 -3
  109. package/package.json +12 -4
@@ -0,0 +1,230 @@
1
+ import { css } from '@microsoft/fast-element';
2
+ import { display } from '@microsoft/fast-foundation';
3
+ import { borderRadiusCircular, borderRadiusMedium, colorCompoundBrandForeground1Hover, colorNeutralForeground1, colorNeutralForeground1Hover, colorNeutralForeground2, colorNeutralForegroundDisabled, colorSubtleBackgroundHover, colorSubtleBackgroundPressed, curveDecelerateMax, durationSlow, fontFamilyBase, fontSizeBase300, fontSizeBase400, lineHeightBase300, lineHeightBase400, spacingHorizontalMNudge, spacingHorizontalSNudge, spacingVerticalL, spacingVerticalMNudge, spacingVerticalS, spacingVerticalSNudge, spacingVerticalXXS, strokeWidthThicker, } from '../theme/design-tokens.js';
4
+ export const styles = css `
5
+ ${display('grid')}
6
+
7
+ :host {
8
+ box-sizing: border-box;
9
+ font-family: ${fontFamilyBase};
10
+ font-size: ${fontSizeBase300};
11
+ line-height: ${lineHeightBase300};
12
+ color: ${colorNeutralForeground2};
13
+ grid-template-columns: auto 1fr auto;
14
+ grid-template-rows: auto 1fr;
15
+ }
16
+
17
+ :host([disabled]) {
18
+ cursor: not-allowed;
19
+ color: ${colorNeutralForegroundDisabled};
20
+ }
21
+
22
+ :host([disabled]) ::slotted(fluent-tab) {
23
+ pointer-events: none;
24
+ cursor: not-allowed;
25
+ color: ${colorNeutralForegroundDisabled};
26
+ }
27
+ :host([disabled]) ::slotted(fluent-tab:after) {
28
+ background-color: ${colorNeutralForegroundDisabled};
29
+ }
30
+ :host([disabled]) ::slotted(fluent-tab[aria-selected='true'])::after {
31
+ background-color: ${colorNeutralForegroundDisabled};
32
+ }
33
+ :host([disabled]) ::slotted(fluent-tab:hover):before {
34
+ content: unset;
35
+ }
36
+
37
+ :host ::slotted(fluent-tab) {
38
+ border-radius: ${borderRadiusMedium};
39
+ }
40
+
41
+ :host ::slotted(fluent-tab[aria-selected='true'])::before {
42
+ background-color: ${colorNeutralForegroundDisabled};
43
+ }
44
+
45
+ .tablist {
46
+ display: grid;
47
+ grid-template-rows: auto auto;
48
+ grid-template-columns: auto;
49
+ position: relative;
50
+ width: max-content;
51
+ align-self: end;
52
+ box-sizing: border-box;
53
+ }
54
+ ::slotted([slot='start']),
55
+ ::slotted([slot='end']) {
56
+ display: flex;
57
+ align-self: center;
58
+ }
59
+ ::slotted([slot='start']) {
60
+ margin-inline-end: 11px;
61
+ }
62
+ ::slotted([slot='end']) {
63
+ margin-inline-start: 11px;
64
+ }
65
+
66
+ .tabpanel {
67
+ grid-row: 2;
68
+ grid-column-start: 1;
69
+ grid-column-end: 4;
70
+ position: relative;
71
+ }
72
+ :host([orientation='vertical']) {
73
+ grid-template-rows: auto 1fr auto;
74
+ grid-template-columns: auto 1fr;
75
+ }
76
+ :host([orientation='vertical']) .tablist {
77
+ grid-row-start: 2;
78
+ grid-row-end: 2;
79
+ display: grid;
80
+ grid-template-rows: auto;
81
+ grid-template-columns: auto 1fr;
82
+ position: relative;
83
+ width: max-content;
84
+ justify-self: end;
85
+ align-self: flex-start;
86
+ width: 100%;
87
+ }
88
+ :host([orientation='vertical']) .tabpanel {
89
+ grid-column: 2;
90
+ grid-row-start: 1;
91
+ grid-row-end: 4;
92
+ }
93
+ :host([orientation='vertical']) ::slotted([slot='end']) {
94
+ grid-row: 3;
95
+ }
96
+
97
+ :host([appearance='subtle']) ::slotted(fluent-tab:hover) {
98
+ background-color: ${colorSubtleBackgroundHover};
99
+ color: ${colorNeutralForeground1Hover};
100
+ fill: ${colorCompoundBrandForeground1Hover};
101
+ }
102
+
103
+ :host([appearance='subtle']) ::slotted(fluent-tab:active) {
104
+ background-color: ${colorSubtleBackgroundPressed};
105
+ fill: ${colorSubtleBackgroundPressed};
106
+ color: ${colorNeutralForeground1};
107
+ }
108
+
109
+ :host([size='small']) ::slotted(fluent-tab) {
110
+ font-size: ${fontSizeBase300};
111
+ line-height: ${lineHeightBase300};
112
+ padding: ${spacingVerticalSNudge} ${spacingHorizontalSNudge};
113
+ }
114
+
115
+ :host([size='large']) ::slotted(fluent-tab) {
116
+ font-size: ${fontSizeBase400};
117
+ line-height: ${lineHeightBase400};
118
+ padding: ${spacingVerticalL} ${spacingHorizontalMNudge};
119
+ }
120
+
121
+ /* indicator animation */
122
+ :host ::slotted(fluent-tab[data-animate='true'])::after {
123
+ transition-property: transform;
124
+ transition-duration: ${durationSlow};
125
+ transition-timing-function: ${curveDecelerateMax};
126
+ }
127
+ :host ::slotted(fluent-tab)::after {
128
+ height: ${strokeWidthThicker};
129
+ margin-top: auto;
130
+ transform-origin: left;
131
+ transform: translateX(var(--tabIndicatorOffset)) scaleX(var(--tabIndicatorScale));
132
+ }
133
+ :host([orientation='vertical']) ::slotted(fluent-tab)::after {
134
+ width: ${strokeWidthThicker};
135
+ height: unset;
136
+ margin-top: unset;
137
+ transform-origin: top;
138
+ transform: translateY(var(--tabIndicatorOffset)) scaleY(var(--tabIndicatorScale));
139
+ }
140
+
141
+ /* ::before adds a secondary indicator placeholder that appears right after click on the active tab */
142
+ :host ::slotted(fluent-tab)::before {
143
+ height: ${strokeWidthThicker};
144
+ border-radius: ${borderRadiusCircular};
145
+ content: '';
146
+ inset: 0;
147
+ position: absolute;
148
+ margin-top: auto;
149
+ }
150
+ :host([orientation='vertical']) ::slotted(fluent-tab)::before {
151
+ height: unset;
152
+ width: ${strokeWidthThicker};
153
+ margin-inline-end: auto;
154
+ transform-origin: top;
155
+ }
156
+
157
+ :host ::slotted(fluent-tab[aria-selected='false']:hover)::after {
158
+ height: ${strokeWidthThicker};
159
+ margin-top: auto;
160
+ transform-origin: left;
161
+ }
162
+ :host([orientation='vertical']) ::slotted(fluent-tab[aria-selected='false']:hover)::after {
163
+ height: unset;
164
+ margin-inline-end: auto;
165
+ transform-origin: top;
166
+ width: ${strokeWidthThicker};
167
+ }
168
+
169
+ :host([orientation='vertical']) ::slotted(fluent-tab) {
170
+ align-items: flex-start;
171
+ grid-column: 2;
172
+ padding-top: ${spacingVerticalSNudge};
173
+ padding-bottom: ${spacingVerticalSNudge};
174
+ }
175
+ :host([orientation='vertical'][size='small']) ::slotted(fluent-tab) {
176
+ padding-top: ${spacingVerticalXXS};
177
+ padding-bottom: ${spacingVerticalXXS};
178
+ }
179
+ :host([orientation='vertical'][size='large']) ::slotted(fluent-tab) {
180
+ padding-top: ${spacingVerticalS};
181
+ padding-bottom: ${spacingVerticalS};
182
+ }
183
+
184
+ /* horizontal spacing for indicator */
185
+ :host([size='small']) ::slotted(fluent-tab)::after,
186
+ :host([size='small']) ::slotted(fluent-tab)::before,
187
+ :host([size='small']) ::slotted(fluent-tab:hover)::after {
188
+ right: ${spacingHorizontalSNudge};
189
+ left: ${spacingHorizontalSNudge};
190
+ }
191
+ :host ::slotted(fluent-tab)::after,
192
+ :host ::slotted(fluent-tab)::before,
193
+ :host ::slotted(fluent-tab:hover)::after {
194
+ right: ${spacingHorizontalMNudge};
195
+ left: ${spacingHorizontalMNudge};
196
+ }
197
+ :host([size='large']) ::slotted(fluent-tab)::after,
198
+ :host([size='large']) ::slotted(fluent-tab)::before,
199
+ :host([size='large']) ::slotted(fluent-tab:hover)::after {
200
+ right: ${spacingHorizontalMNudge};
201
+ left: ${spacingHorizontalMNudge};
202
+ }
203
+
204
+ /* vertical spacing for indicator */
205
+ :host([orientation='vertical'][size='small']) ::slotted(fluent-tab)::after,
206
+ :host([orientation='vertical'][size='small']) ::slotted(fluent-tab)::before,
207
+ :host([orientation='vertical'][size='small']) ::slotted(fluent-tab:hover)::after {
208
+ right: 0;
209
+ left: 0;
210
+ top: ${spacingVerticalSNudge};
211
+ bottom: ${spacingVerticalSNudge};
212
+ }
213
+ :host([orientation='vertical']) ::slotted(fluent-tab)::after,
214
+ :host([orientation='vertical']) ::slotted(fluent-tab)::before,
215
+ :host([orientation='vertical']) ::slotted(fluent-tab:hover)::after {
216
+ right: 0;
217
+ left: 0;
218
+ top: ${spacingVerticalS};
219
+ bottom: ${spacingVerticalS};
220
+ }
221
+ :host([orientation='vertical'][size='large']) ::slotted(fluent-tab)::after,
222
+ :host([orientation='vertical'][size='large']) ::slotted(fluent-tab)::before,
223
+ :host([orientation='vertical'][size='large']) ::slotted(fluent-tab:hover)::after {
224
+ right: 0;
225
+ left: 0;
226
+ top: ${spacingVerticalMNudge};
227
+ bottom: ${spacingVerticalMNudge};
228
+ }
229
+ `;
230
+ //# sourceMappingURL=tabs.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.styles.js","sourceRoot":"","sources":["../../../src/tabs/tabs.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,kCAAkC,EAClC,uBAAuB,EACvB,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,EAC1B,4BAA4B,EAC5B,kBAAkB,EAClB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,MAAM,CAAC;;;;mBAIA,cAAc;iBAChB,eAAe;mBACb,iBAAiB;aACvB,uBAAuB;;;;;;;aAOvB,8BAA8B;;;;;;aAM9B,8BAA8B;;;wBAGnB,8BAA8B;;;wBAG9B,8BAA8B;;;;;;;qBAOjC,kBAAkB;;;;wBAIf,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAwD9B,0BAA0B;aACrC,4BAA4B;YAC7B,kCAAkC;;;;wBAItB,4BAA4B;YACxC,4BAA4B;aAC3B,uBAAuB;;;;iBAInB,eAAe;mBACb,iBAAiB;eACrB,qBAAqB,IAAI,uBAAuB;;;;iBAI9C,eAAe;mBACb,iBAAiB;eACrB,gBAAgB,IAAI,uBAAuB;;;;;;2BAM/B,YAAY;kCACL,kBAAkB;;;cAGtC,kBAAkB;;;;;;aAMnB,kBAAkB;;;;;;;;;cASjB,kBAAkB;qBACX,oBAAoB;;;;;;;;aAQ5B,kBAAkB;;;;;;cAMjB,kBAAkB;;;;;;;;aAQnB,kBAAkB;;;;;;mBAMZ,qBAAqB;sBAClB,qBAAqB;;;mBAGxB,kBAAkB;sBACf,kBAAkB;;;mBAGrB,gBAAgB;sBACb,gBAAgB;;;;;;;aAOzB,uBAAuB;YACxB,uBAAuB;;;;;aAKtB,uBAAuB;YACxB,uBAAuB;;;;;aAKtB,uBAAuB;YACxB,uBAAuB;;;;;;;;;WASxB,qBAAqB;cAClB,qBAAqB;;;;;;;WAOxB,gBAAgB;cACb,gBAAgB;;;;;;;WAOnB,qBAAqB;cAClB,qBAAqB;;CAElC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { tabsTemplate } from '@microsoft/fast-foundation';
2
+ export const template = tabsTemplate({});
3
+ //# sourceMappingURL=tabs.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.template.js","sourceRoot":"","sources":["../../../src/tabs/tabs.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC"}