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

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 (88) hide show
  1. package/CHANGELOG.json +30 -1
  2. package/CHANGELOG.md +12 -2
  3. package/dist/dts/index.d.ts +4 -0
  4. package/dist/dts/menu-button/define.d.ts +1 -0
  5. package/dist/dts/menu-button/index.d.ts +5 -0
  6. package/dist/dts/menu-button/menu-button.d.ts +7 -0
  7. package/dist/dts/menu-button/menu-button.definition.d.ts +10 -0
  8. package/dist/dts/menu-button/menu-button.options.d.ts +46 -0
  9. package/dist/dts/menu-button/menu-button.template.d.ts +7 -0
  10. package/dist/dts/tab/define.d.ts +1 -0
  11. package/dist/dts/tab/index.d.ts +4 -0
  12. package/dist/dts/tab/tab.d.ts +8 -0
  13. package/dist/dts/tab/tab.definition.d.ts +2 -0
  14. package/dist/dts/tab/tab.styles.d.ts +1 -0
  15. package/dist/dts/tab/tab.template.d.ts +4 -0
  16. package/dist/dts/tab-panel/define.d.ts +1 -0
  17. package/dist/dts/tab-panel/index.d.ts +4 -0
  18. package/dist/dts/tab-panel/tab-panel.d.ts +3 -0
  19. package/dist/dts/tab-panel/tab-panel.definition.d.ts +2 -0
  20. package/dist/dts/tab-panel/tab-panel.styles.d.ts +1 -0
  21. package/dist/dts/tab-panel/tab-panel.template.d.ts +1 -0
  22. package/dist/dts/tabs/define.d.ts +1 -0
  23. package/dist/dts/tabs/index.d.ts +5 -0
  24. package/dist/dts/tabs/tabs.d.ts +88 -0
  25. package/dist/dts/tabs/tabs.definition.d.ts +2 -0
  26. package/dist/dts/tabs/tabs.options.d.ts +14 -0
  27. package/dist/dts/tabs/tabs.styles.d.ts +1 -0
  28. package/dist/dts/tabs/tabs.template.d.ts +1 -0
  29. package/dist/esm/button/button.styles.js +2 -0
  30. package/dist/esm/button/button.styles.js.map +1 -1
  31. package/dist/esm/index.js +4 -0
  32. package/dist/esm/index.js.map +1 -1
  33. package/dist/esm/menu-button/define.js +4 -0
  34. package/dist/esm/menu-button/define.js.map +1 -0
  35. package/dist/esm/menu-button/index.js +6 -0
  36. package/dist/esm/menu-button/index.js.map +1 -0
  37. package/dist/esm/menu-button/menu-button.definition.js +21 -0
  38. package/dist/esm/menu-button/menu-button.definition.js.map +1 -0
  39. package/dist/esm/menu-button/menu-button.js +8 -0
  40. package/dist/esm/menu-button/menu-button.js.map +1 -0
  41. package/dist/esm/menu-button/menu-button.options.js +17 -0
  42. package/dist/esm/menu-button/menu-button.options.js.map +1 -0
  43. package/dist/esm/menu-button/menu-button.template.js +10 -0
  44. package/dist/esm/menu-button/menu-button.template.js.map +1 -0
  45. package/dist/esm/tab/define.js +4 -0
  46. package/dist/esm/tab/define.js.map +1 -0
  47. package/dist/esm/tab/index.js +5 -0
  48. package/dist/esm/tab/index.js.map +1 -0
  49. package/dist/esm/tab/tab.definition.js +10 -0
  50. package/dist/esm/tab/tab.definition.js.map +1 -0
  51. package/dist/esm/tab/tab.js +20 -0
  52. package/dist/esm/tab/tab.js.map +1 -0
  53. package/dist/esm/tab/tab.styles.js +94 -0
  54. package/dist/esm/tab/tab.styles.js.map +1 -0
  55. package/dist/esm/tab/tab.template.js +13 -0
  56. package/dist/esm/tab/tab.template.js.map +1 -0
  57. package/dist/esm/tab-panel/define.js +4 -0
  58. package/dist/esm/tab-panel/define.js.map +1 -0
  59. package/dist/esm/tab-panel/index.js +5 -0
  60. package/dist/esm/tab-panel/index.js.map +1 -0
  61. package/dist/esm/tab-panel/tab-panel.definition.js +10 -0
  62. package/dist/esm/tab-panel/tab-panel.definition.js.map +1 -0
  63. package/dist/esm/tab-panel/tab-panel.js +4 -0
  64. package/dist/esm/tab-panel/tab-panel.js.map +1 -0
  65. package/dist/esm/tab-panel/tab-panel.styles.js +12 -0
  66. package/dist/esm/tab-panel/tab-panel.styles.js.map +1 -0
  67. package/dist/esm/tab-panel/tab-panel.template.js +3 -0
  68. package/dist/esm/tab-panel/tab-panel.template.js.map +1 -0
  69. package/dist/esm/tabs/define.js +4 -0
  70. package/dist/esm/tabs/define.js.map +1 -0
  71. package/dist/esm/tabs/index.js +6 -0
  72. package/dist/esm/tabs/index.js.map +1 -0
  73. package/dist/esm/tabs/tabs.definition.js +10 -0
  74. package/dist/esm/tabs/tabs.definition.js.map +1 -0
  75. package/dist/esm/tabs/tabs.js +158 -0
  76. package/dist/esm/tabs/tabs.js.map +1 -0
  77. package/dist/esm/tabs/tabs.options.js +12 -0
  78. package/dist/esm/tabs/tabs.options.js.map +1 -0
  79. package/dist/esm/tabs/tabs.styles.js +230 -0
  80. package/dist/esm/tabs/tabs.styles.js.map +1 -0
  81. package/dist/esm/tabs/tabs.template.js +3 -0
  82. package/dist/esm/tabs/tabs.template.js.map +1 -0
  83. package/dist/fluent-web-components.api.json +2082 -1054
  84. package/dist/web-components.d.ts +215 -2
  85. package/dist/web-components.js +636 -60
  86. package/dist/web-components.min.js +148 -136
  87. package/docs/api-report.md +121 -3
  88. package/package.json +8 -4
@@ -0,0 +1,94 @@
1
+ import { css } from '@microsoft/fast-element';
2
+ import { display } from '@microsoft/fast-foundation';
3
+ import { borderRadiusCircular, borderRadiusMedium, borderRadiusSmall, colorCompoundBrandStroke, colorNeutralForeground1, colorNeutralForeground2, colorNeutralForegroundDisabled, colorNeutralStroke1Hover, colorStrokeFocus1, colorStrokeFocus2, fontFamilyBase, fontSizeBase300, fontWeightSemibold, lineHeightBase300, spacingHorizontalM, spacingHorizontalMNudge, } from '../theme/design-tokens.js';
4
+ export const styles = css `
5
+ ${display('inline-flex')}
6
+
7
+ :host {
8
+ position: relative;
9
+ flex-direction: column;
10
+ cursor: pointer;
11
+ box-sizing: border-box;
12
+ justify-content: center;
13
+ line-height: ${lineHeightBase300};
14
+ font-family: ${fontFamilyBase};
15
+ font-size: ${fontSizeBase300};
16
+ color: ${colorNeutralForeground2};
17
+ fill: currentcolor;
18
+ grid-row: 1;
19
+ padding: ${spacingHorizontalM} ${spacingHorizontalMNudge};
20
+ border-radius: ${borderRadiusMedium};
21
+ }
22
+ :host .tab-content {
23
+ display: inline-flex;
24
+ flex-direction: column;
25
+ padding: 0 2px;
26
+ }
27
+
28
+ :host([aria-selected='true']) {
29
+ color: ${colorNeutralForeground1};
30
+ font-weight: ${fontWeightSemibold};
31
+ }
32
+
33
+ /* adds hidden textContent to prevent shifting ui on bold / unbolding of text */
34
+ :host .tab-content::after {
35
+ content: var(--textContent);
36
+ visibility: hidden;
37
+ height: 0;
38
+ line-height: ${lineHeightBase300};
39
+ font-weight: ${fontWeightSemibold};
40
+ }
41
+
42
+ :host([aria-selected='true'])::after {
43
+ background-color: ${colorCompoundBrandStroke};
44
+ border-radius: ${borderRadiusCircular};
45
+ content: '';
46
+ inset: 0;
47
+ position: absolute;
48
+ z-index: 2;
49
+ }
50
+
51
+ :host([aria-selected='false']:hover)::after {
52
+ background-color: ${colorNeutralStroke1Hover};
53
+ border-radius: ${borderRadiusCircular};
54
+ content: '';
55
+ inset: 0;
56
+ position: absolute;
57
+ z-index: 1;
58
+ }
59
+
60
+ :host([aria-selected='true'][disabled])::after {
61
+ background-color: ${colorNeutralForegroundDisabled};
62
+ }
63
+
64
+ ::slotted([slot='start']),
65
+ ::slotted([slot='end']) {
66
+ display: flex;
67
+ }
68
+ ::slotted([slot='start']) {
69
+ margin-inline-end: 11px;
70
+ }
71
+ ::slotted([slot='end']) {
72
+ margin-inline-start: 11px;
73
+ }
74
+ :host([disabled]) {
75
+ cursor: not-allowed;
76
+ fill: ${colorNeutralForegroundDisabled};
77
+ color: ${colorNeutralForegroundDisabled};
78
+ }
79
+
80
+ :host([disabled]:hover)::after {
81
+ background-color: unset;
82
+ }
83
+
84
+ :host(:focus) {
85
+ outline: none;
86
+ }
87
+
88
+ :host(:focus-visible) {
89
+ border-radius: ${borderRadiusSmall};
90
+ box-shadow: 0 0 0 3px ${colorStrokeFocus2};
91
+ outline: 1px solid ${colorStrokeFocus1};
92
+ }
93
+ `;
94
+ //# sourceMappingURL=tab.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.styles.js","sourceRoot":"","sources":["../../../src/tab/tab.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,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,aAAa,CAAC;;;;;;;;mBAQP,iBAAiB;mBACjB,cAAc;iBAChB,eAAe;aACnB,uBAAuB;;;eAGrB,kBAAkB,IAAI,uBAAuB;qBACvC,kBAAkB;;;;;;;;;aAS1B,uBAAuB;mBACjB,kBAAkB;;;;;;;;mBAQlB,iBAAiB;mBACjB,kBAAkB;;;;wBAIb,wBAAwB;qBAC3B,oBAAoB;;;;;;;;wBAQjB,wBAAwB;qBAC3B,oBAAoB;;;;;;;;wBAQjB,8BAA8B;;;;;;;;;;;;;;;YAe1C,8BAA8B;aAC7B,8BAA8B;;;;;;;;;;;;qBAYtB,iBAAiB;4BACV,iBAAiB;yBACpB,iBAAiB;;CAEzC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { endSlotTemplate, startSlotTemplate } from '@microsoft/fast-foundation';
2
+ import { html } from '@microsoft/fast-element';
3
+ export function tabTemplate(options = {}) {
4
+ return html `
5
+ <template slot="tab" role="tab" aria-disabled="${x => x.disabled}">
6
+ ${startSlotTemplate(options)}
7
+ <span class="tab-content"><slot></slot></span>
8
+ ${endSlotTemplate(options)}
9
+ </template>
10
+ `;
11
+ }
12
+ export const template = tabTemplate({});
13
+ //# sourceMappingURL=tab.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab.template.js","sourceRoot":"","sources":["../../../src/tab/tab.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAW,iBAAiB,EAAc,MAAM,4BAA4B,CAAC;AACrG,OAAO,EAAuB,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,UAAU,WAAW,CAAoB,UAAsB,EAAE;IACrE,OAAO,IAAI,CAAG;qDACqC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ;QAC5D,iBAAiB,CAAC,OAAO,CAAC;;QAE1B,eAAe,CAAC,OAAO,CAAC;;GAE7B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FluentDesignSystem } from '../fluent-design-system.js';
2
+ import { definition } from './tab-panel.definition.js';
3
+ definition.define(FluentDesignSystem.registry);
4
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/tab-panel/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './tab-panel.js';
2
+ export { template as TabPanelTemplate } from './tab-panel.template.js';
3
+ export { styles as TabPanelStyles } from './tab-panel.styles.js';
4
+ export { definition as TabPanelDefinition } from './tab-panel.definition.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tab-panel/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,QAAQ,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { FluentDesignSystem } from '../fluent-design-system.js';
2
+ import { TabPanel } from './tab-panel.js';
3
+ import { template } from './tab-panel.template.js';
4
+ import { styles } from './tab-panel.styles.js';
5
+ export const definition = TabPanel.compose({
6
+ name: `${FluentDesignSystem.prefix}-tab-panel`,
7
+ template,
8
+ styles,
9
+ });
10
+ //# sourceMappingURL=tab-panel.definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-panel.definition.js","sourceRoot":"","sources":["../../../src/tab-panel/tab-panel.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC;IACzC,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,YAAY;IAC9C,QAAQ;IACR,MAAM;CACP,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FASTTabPanel } from '@microsoft/fast-foundation';
2
+ export class TabPanel extends FASTTabPanel {
3
+ }
4
+ //# sourceMappingURL=tab-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-panel.js","sourceRoot":"","sources":["../../../src/tab-panel/tab-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAE1D,MAAM,OAAO,QAAS,SAAQ,YAAY;CAAG"}
@@ -0,0 +1,12 @@
1
+ import { css } from '@microsoft/fast-element';
2
+ import { display } from '@microsoft/fast-foundation';
3
+ import { spacingHorizontalM, spacingHorizontalMNudge } from '../theme/design-tokens.js';
4
+ export const styles = css `
5
+ ${display('block')}
6
+
7
+ :host {
8
+ box-sizing: border-box;
9
+ padding: ${spacingHorizontalM} ${spacingHorizontalMNudge};
10
+ }
11
+ `;
12
+ //# sourceMappingURL=tab-panel.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-panel.styles.js","sourceRoot":"","sources":["../../../src/tab-panel/tab-panel.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAExF,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC;;;;eAIL,kBAAkB,IAAI,uBAAuB;;CAE3D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { tabPanelTemplate } from '@microsoft/fast-foundation';
2
+ export const template = tabPanelTemplate();
3
+ //# sourceMappingURL=tab-panel.template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-panel.template.js","sourceRoot":"","sources":["../../../src/tab-panel/tab-panel.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,MAAM,CAAC,MAAM,QAAQ,GAAG,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FluentDesignSystem } from '../fluent-design-system.js';
2
+ import { definition } from './tabs.definition.js';
3
+ definition.define(FluentDesignSystem.registry);
4
+ //# sourceMappingURL=define.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define.js","sourceRoot":"","sources":["../../../src/tabs/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,UAAU,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './tabs.js';
2
+ export * from './tabs.options.js';
3
+ export { template as TabsTemplate } from './tabs.template.js';
4
+ export { styles as TabsStyles } from './tabs.styles.js';
5
+ export { definition as TabsDefinition } from './tabs.definition.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tabs/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { FluentDesignSystem } from '../fluent-design-system.js';
2
+ import { Tabs } from './tabs.js';
3
+ import { template } from './tabs.template.js';
4
+ import { styles } from './tabs.styles.js';
5
+ export const definition = Tabs.compose({
6
+ name: `${FluentDesignSystem.prefix}-tabs`,
7
+ template,
8
+ styles,
9
+ });
10
+ //# sourceMappingURL=tabs.definition.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.definition.js","sourceRoot":"","sources":["../../../src/tabs/tabs.definition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC;IACrC,IAAI,EAAE,GAAG,kBAAkB,CAAC,MAAM,OAAO;IACzC,QAAQ;IACR,MAAM;CACP,CAAC,CAAC"}
@@ -0,0 +1,158 @@
1
+ import { __decorate } from "tslib";
2
+ import { attr, css } from '@microsoft/fast-element';
3
+ import { FASTTabs, TabsOrientation } from '@microsoft/fast-foundation';
4
+ import { TabsAppearance } from './tabs.options.js';
5
+ /**
6
+ * TabList extends FASTTabs and is used for constructing a fluent-tab-list custom html element.
7
+ *
8
+ * @class TabList component
9
+ * @public
10
+ */
11
+ export class Tabs extends FASTTabs {
12
+ constructor() {
13
+ super(...arguments);
14
+ /**
15
+ * activeTabData
16
+ * The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
17
+ */
18
+ this.activeTabData = { x: 0, y: 0, height: 0, width: 0 };
19
+ /**
20
+ * previousActiveTabData
21
+ * The positional coordinates and size dimensions of the active tab. Used for calculating the offset and scale of the tab active indicator.
22
+ */
23
+ this.previousActiveTabData = { x: 0, y: 0, height: 0, width: 0 };
24
+ /**
25
+ * activeTabOffset
26
+ * Used to position the active indicator for animations of the active indicator on active tab changes.
27
+ */
28
+ this.activeTabOffset = 0;
29
+ /**
30
+ * activeTabScale
31
+ * Used to scale the tab active indicator up or down as animations of the active indicator occur.
32
+ */
33
+ this.activeTabScale = 1;
34
+ /**
35
+ * appearance
36
+ * There are two modes of appearance: transparent and subtle.
37
+ */
38
+ this.appearance = TabsAppearance.transparent;
39
+ }
40
+ /**
41
+ * calculateAnimationProperties
42
+ *
43
+ * Recalculates the active tab offset and scale.
44
+ * These values will be applied to css variables that control the tab active indicator position animations
45
+ */
46
+ calculateAnimationProperties(tab) {
47
+ this.activeTabOffset = this.getTabPosition(tab);
48
+ this.activeTabScale = this.getTabScale(tab);
49
+ }
50
+ /**
51
+ * getSelectedTabPosition - gets the x or y coordinates of the tab
52
+ */
53
+ getTabPosition(tab) {
54
+ if (this.orientation === TabsOrientation.horizontal) {
55
+ return this.previousActiveTabData.x - (tab.getBoundingClientRect().x - this.getBoundingClientRect().x);
56
+ }
57
+ else
58
+ return this.previousActiveTabData.y - (tab.getBoundingClientRect().y - this.getBoundingClientRect().y);
59
+ }
60
+ /**
61
+ * getSelectedTabScale - gets the scale of the tab
62
+ */
63
+ getTabScale(tab) {
64
+ if (this.orientation === TabsOrientation.horizontal) {
65
+ return this.previousActiveTabData.width / tab.getBoundingClientRect().width;
66
+ }
67
+ else
68
+ return this.previousActiveTabData.height / tab.getBoundingClientRect().height;
69
+ }
70
+ /**
71
+ * applyUpdatedCSSValues
72
+ *
73
+ * calculates and applies updated values to CSS variables
74
+ * @param tab
75
+ */
76
+ applyUpdatedCSSValues(tab) {
77
+ this.calculateAnimationProperties(tab);
78
+ this.setTabScaleCSSVar();
79
+ this.setTabOffsetCSSVar();
80
+ }
81
+ /**
82
+ * animationLoop
83
+ * runs through all the operations required for setting the tab active indicator to its starting location, ending location, and applying the animated css class to the tab.
84
+ * @param tab
85
+ */
86
+ animationLoop(tab) {
87
+ // remove the animated class so nothing animates yet
88
+ tab.setAttribute('data-animate', 'false');
89
+ // animation start - this applyUpdeatedCSSValues sets the active indicator to the location of the previously selected tab
90
+ this.applyUpdatedCSSValues(tab);
91
+ // changing the previously active tab allows the applyUpdatedCSSValues method to calculate the correct end to the animation.
92
+ this.previousActiveTabData = this.activeTabData;
93
+ // calculate and apply updated css values for animation.
94
+ this.applyUpdatedCSSValues(tab);
95
+ // add the css class and active indicator will animate from the previous tab location to its tab location
96
+ tab.setAttribute('data-animate', 'true');
97
+ }
98
+ /**
99
+ * setTabData
100
+ * sets the data from the active tab onto the class. used for making all the animation calculations for the active tab indicator.
101
+ */
102
+ setTabData() {
103
+ var _a, _b, _c, _d;
104
+ if (this.tabs && this.tabs.length > 0) {
105
+ const tabs = this.tabs;
106
+ const activeTab = this.activetab || tabs[0];
107
+ const activeRect = activeTab === null || activeTab === void 0 ? void 0 : activeTab.getBoundingClientRect();
108
+ const parentRect = this.getBoundingClientRect();
109
+ this.activeTabData = {
110
+ x: activeRect.x - parentRect.x,
111
+ y: activeRect.y - parentRect.y,
112
+ height: activeRect.height,
113
+ width: activeRect.width,
114
+ };
115
+ if (((_a = this.previousActiveTabData) === null || _a === void 0 ? void 0 : _a.x) !== ((_b = this.activeTabData) === null || _b === void 0 ? void 0 : _b.x) &&
116
+ ((_c = this.previousActiveTabData) === null || _c === void 0 ? void 0 : _c.y) !== ((_d = this.activeTabData) === null || _d === void 0 ? void 0 : _d.y)) {
117
+ this.previousActiveTabData = this.activeTabData;
118
+ }
119
+ }
120
+ }
121
+ setTabOffsetCSSVar() {
122
+ this.styles = css /**css*/ `
123
+ :host {
124
+ --tabIndicatorOffset: ${this.activeTabOffset.toString()}px;
125
+ }
126
+ `;
127
+ this.$fastController.addStyles(this.styles);
128
+ }
129
+ setTabScaleCSSVar() {
130
+ this.styles = css /**css*/ `
131
+ :host {
132
+ --tabIndicatorScale: ${this.activeTabScale.toString()};
133
+ }
134
+ `;
135
+ this.$fastController.addStyles(this.styles);
136
+ }
137
+ activeidChanged(oldValue, newValue) {
138
+ super.activeidChanged(oldValue, newValue);
139
+ this.setTabData();
140
+ if (this.activetab) {
141
+ this.animationLoop(this.activetab);
142
+ }
143
+ }
144
+ tabsChanged() {
145
+ super.tabsChanged();
146
+ this.setTabData();
147
+ }
148
+ }
149
+ __decorate([
150
+ attr
151
+ ], Tabs.prototype, "appearance", void 0);
152
+ __decorate([
153
+ attr({ mode: 'boolean' })
154
+ ], Tabs.prototype, "disabled", void 0);
155
+ __decorate([
156
+ attr
157
+ ], Tabs.prototype, "size", void 0);
158
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sourceRoot":"","sources":["../../../src/tabs/tabs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { TabsOrientation } from '@microsoft/fast-foundation';
2
+ export const TabsAppearance = {
3
+ subtle: 'subtle',
4
+ transparent: 'transparent',
5
+ };
6
+ export const TabsSize = {
7
+ small: 'small',
8
+ medium: 'medium',
9
+ large: 'large',
10
+ };
11
+ export { TabsOrientation };
12
+ //# sourceMappingURL=tabs.options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.options.js","sourceRoot":"","sources":["../../../src/tabs/tabs.options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,aAAa;CAClB,CAAC;AAIX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,KAAK,EAAE,OAAO;IACd,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;CACN,CAAC;AAIX,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -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"}