@fluentui/web-components 1.6.3 → 2.1.0

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 (170) hide show
  1. package/CHANGELOG.json +103 -1
  2. package/CHANGELOG.md +40 -2
  3. package/dist/dts/calendar/calendar.stories.d.ts +86 -0
  4. package/dist/dts/calendar/calendar.styles.d.ts +7 -0
  5. package/dist/dts/calendar/index.d.ts +18 -0
  6. package/dist/dts/color/palette.d.ts +43 -1
  7. package/dist/dts/color/recipes/contrast-and-delta-swatch-set.d.ts +11 -0
  8. package/dist/dts/color/recipes/contrast-swatch.d.ts +12 -0
  9. package/dist/dts/color/recipes/delta-swatch-set.d.ts +36 -0
  10. package/dist/dts/color/recipes/{neutral-divider.d.ts → delta-swatch.d.ts} +3 -2
  11. package/dist/dts/color/recipes/focus-stroke.d.ts +2 -2
  12. package/dist/dts/color/recipes/foreground-on-accent.d.ts +6 -0
  13. package/dist/dts/color/recipes/gradient-shadow-stroke.d.ts +7 -0
  14. package/dist/dts/color/recipes/gradient-swatch.d.ts +36 -0
  15. package/dist/dts/color/recipes/neutral-layer-1.d.ts +4 -0
  16. package/dist/dts/color/recipes/neutral-layer-2.d.ts +1 -5
  17. package/dist/dts/color/recipes/neutral-layer-3.d.ts +1 -1
  18. package/dist/dts/color/recipes/neutral-layer-4.d.ts +1 -1
  19. package/dist/dts/color/recipes/neutral-layer-floating.d.ts +1 -1
  20. package/dist/dts/color/recipes/underline-stroke.d.ts +7 -0
  21. package/dist/dts/color/swatch.d.ts +7 -0
  22. package/dist/dts/color/utilities/base-layer-luminance.d.ts +2 -2
  23. package/dist/dts/combobox/index.d.ts +1 -2
  24. package/dist/dts/custom-elements.d.ts +4 -2
  25. package/dist/dts/data-grid/data-grid-row.styles.d.ts +1 -1
  26. package/dist/dts/data-grid/index.d.ts +1 -1
  27. package/dist/dts/design-system-provider/index.d.ts +14 -29
  28. package/dist/dts/design-tokens.d.ts +198 -82
  29. package/dist/dts/menu/index.d.ts +11 -6
  30. package/dist/dts/menu/menu.stories.d.ts +1 -1
  31. package/dist/dts/select/index.d.ts +1 -1
  32. package/dist/dts/select/select.stories.d.ts +8 -0
  33. package/dist/dts/select/select.styles.d.ts +1 -0
  34. package/dist/dts/skeleton/skeleton.stories.d.ts +1 -0
  35. package/dist/dts/styles/elevation.d.ts +44 -5
  36. package/dist/dts/styles/patterns/button.styles.d.ts +7 -6
  37. package/dist/dts/styles/patterns/index.d.ts +1 -1
  38. package/dist/dts/styles/patterns/input.styles.d.ts +22 -0
  39. package/dist/dts/text-area/text-area.stories.d.ts +1 -1
  40. package/dist/dts/tree-view/tree-view.stories.d.ts +0 -5
  41. package/dist/esm/accordion/accordion-item/accordion-item.styles.js +54 -17
  42. package/dist/esm/accordion/accordion-item/index.js +4 -22
  43. package/dist/esm/accordion/accordion.styles.js +4 -4
  44. package/dist/esm/anchor/anchor.stories.js +2 -2
  45. package/dist/esm/anchor/anchor.styles.js +8 -2
  46. package/dist/esm/badge/badge.styles.js +10 -2
  47. package/dist/esm/breadcrumb-item/breadcrumb-item.styles.js +44 -53
  48. package/dist/esm/breadcrumb-item/index.js +2 -4
  49. package/dist/esm/button/button.stories.js +1 -1
  50. package/dist/esm/button/button.styles.js +21 -71
  51. package/dist/esm/calendar/calendar.stories.js +115 -0
  52. package/dist/esm/calendar/calendar.styles.js +133 -0
  53. package/dist/esm/calendar/index.js +31 -0
  54. package/dist/esm/card/card.stories.js +14 -0
  55. package/dist/esm/card/card.styles.js +23 -32
  56. package/dist/esm/card/index.js +1 -1
  57. package/dist/esm/checkbox/checkbox.styles.js +58 -51
  58. package/dist/esm/checkbox/index.js +5 -13
  59. package/dist/esm/color/palette.js +174 -12
  60. package/dist/esm/color/recipes/contrast-and-delta-swatch-set.js +28 -0
  61. package/dist/esm/color/recipes/contrast-swatch.js +12 -0
  62. package/dist/esm/color/recipes/delta-swatch-set.js +53 -0
  63. package/dist/esm/color/recipes/{neutral-divider.js → delta-swatch.js} +3 -2
  64. package/dist/esm/color/recipes/focus-stroke.js +4 -3
  65. package/dist/esm/color/recipes/foreground-on-accent.js +14 -0
  66. package/dist/esm/color/recipes/gradient-shadow-stroke.js +54 -0
  67. package/dist/esm/color/recipes/gradient-swatch.js +36 -0
  68. package/dist/esm/color/recipes/neutral-layer-1.js +7 -1
  69. package/dist/esm/color/recipes/neutral-layer-2.js +3 -9
  70. package/dist/esm/color/recipes/neutral-layer-3.js +3 -3
  71. package/dist/esm/color/recipes/neutral-layer-4.js +3 -3
  72. package/dist/esm/color/recipes/neutral-layer-floating.js +3 -4
  73. package/dist/esm/color/recipes/underline-stroke.js +31 -0
  74. package/dist/esm/color/swatch.js +22 -2
  75. package/dist/esm/color/utilities/base-layer-luminance.js +2 -2
  76. package/dist/esm/combobox/combobox.stories.js +1 -0
  77. package/dist/esm/combobox/index.js +6 -9
  78. package/dist/esm/custom-elements.js +3 -1
  79. package/dist/esm/data-grid/data-grid-cell.styles.js +4 -4
  80. package/dist/esm/data-grid/data-grid-row.styles.js +3 -3
  81. package/dist/esm/design-system-provider/design-system-provider.vscode.definition.json +17 -9
  82. package/dist/esm/design-system-provider/index.js +24 -39
  83. package/dist/esm/design-tokens.js +303 -217
  84. package/dist/esm/dialog/dialog.styles.js +2 -3
  85. package/dist/esm/divider/divider.styles.js +1 -2
  86. package/dist/esm/flipper/flipper.styles.js +28 -65
  87. package/dist/esm/flipper/index.js +4 -8
  88. package/dist/esm/listbox/listbox.styles.js +8 -29
  89. package/dist/esm/listbox-option/listbox-option.styles.js +52 -35
  90. package/dist/esm/menu/index.js +16 -6
  91. package/dist/esm/menu/menu.stories.js +16 -2
  92. package/dist/esm/menu/menu.styles.js +38 -27
  93. package/dist/esm/menu-item/index.js +6 -33
  94. package/dist/esm/menu-item/menu-item.stories.js +1 -1
  95. package/dist/esm/menu-item/menu-item.styles.js +58 -84
  96. package/dist/esm/number-field/index.js +7 -3
  97. package/dist/esm/number-field/number-field.styles.js +30 -175
  98. package/dist/esm/progress/progress/index.js +1 -1
  99. package/dist/esm/progress/progress/progress.styles.js +13 -18
  100. package/dist/esm/progress/progress-ring/progress-ring.styles.js +65 -69
  101. package/dist/esm/radio/index.js +3 -1
  102. package/dist/esm/radio/radio.stories.js +3 -2
  103. package/dist/esm/radio/radio.styles.js +52 -42
  104. package/dist/esm/radio-group/radio-group.styles.js +0 -2
  105. package/dist/esm/select/index.js +6 -9
  106. package/dist/esm/select/select.stories.js +10 -2
  107. package/dist/esm/select/select.styles.js +100 -124
  108. package/dist/esm/select/select.vscode.definition.json +3 -0
  109. package/dist/esm/skeleton/skeleton.stories.js +3 -2
  110. package/dist/esm/skeleton/skeleton.styles.js +11 -6
  111. package/dist/esm/slider/slider.styles.js +54 -14
  112. package/dist/esm/slider-label/slider-label.styles.js +5 -6
  113. package/dist/esm/styles/direction.js +1 -1
  114. package/dist/esm/styles/elevation.js +54 -5
  115. package/dist/esm/styles/patterns/button.styles.js +274 -294
  116. package/dist/esm/styles/patterns/index.js +1 -1
  117. package/dist/esm/styles/patterns/input.styles.js +218 -0
  118. package/dist/esm/switch/index.js +3 -1
  119. package/dist/esm/switch/switch.stories.js +3 -3
  120. package/dist/esm/switch/switch.styles.js +79 -60
  121. package/dist/esm/tabs/tab/tab.styles.js +11 -14
  122. package/dist/esm/tabs/tabs.styles.js +9 -8
  123. package/dist/esm/text-area/text-area.stories.js +2 -2
  124. package/dist/esm/text-area/text-area.styles.js +16 -96
  125. package/dist/esm/text-field/text-field.stories.js +1 -1
  126. package/dist/esm/text-field/text-field.styles.js +16 -144
  127. package/dist/esm/toolbar/index.js +1 -0
  128. package/dist/esm/toolbar/toolbar.styles.js +56 -56
  129. package/dist/esm/tooltip/index.js +2 -4
  130. package/dist/esm/tooltip/tooltip.styles.js +14 -14
  131. package/dist/esm/tree-item/index.js +2 -8
  132. package/dist/esm/tree-item/tree-item.styles.js +45 -80
  133. package/dist/esm/tree-view/tree-view.stories.js +23 -11
  134. package/dist/fluent-web-components.api.json +4900 -2353
  135. package/dist/web-components.d.ts +397 -100
  136. package/dist/web-components.js +2240 -2175
  137. package/dist/web-components.min.js +158 -128
  138. package/docs/api-report.md +338 -80
  139. package/package.json +2 -5
  140. package/public/switches.ts +13 -14
  141. package/dist/dts/color/recipes/accent-fill.d.ts +0 -7
  142. package/dist/dts/color/recipes/accent-foreground.d.ts +0 -7
  143. package/dist/dts/color/recipes/neutral-fill-contrast.d.ts +0 -7
  144. package/dist/dts/color/recipes/neutral-fill-input.d.ts +0 -7
  145. package/dist/dts/color/recipes/neutral-fill-inverse.d.ts +0 -7
  146. package/dist/dts/color/recipes/neutral-fill-layer.d.ts +0 -6
  147. package/dist/dts/color/recipes/neutral-fill-stealth.d.ts +0 -7
  148. package/dist/dts/color/recipes/neutral-fill.d.ts +0 -14
  149. package/dist/dts/color/recipes/neutral-foreground-hint.d.ts +0 -10
  150. package/dist/dts/color/recipes/neutral-foreground.d.ts +0 -6
  151. package/dist/dts/color/recipes/neutral-layer-card-container.d.ts +0 -6
  152. package/dist/dts/color/recipes/neutral-stroke-strong.d.ts +0 -7
  153. package/dist/dts/color/recipes/neutral-stroke.d.ts +0 -7
  154. package/dist/dts/styles/patterns/input.d.ts +0 -4
  155. package/dist/dts/utilities/math.d.ts +0 -24
  156. package/dist/esm/color/recipes/accent-fill.js +0 -18
  157. package/dist/esm/color/recipes/accent-foreground.js +0 -31
  158. package/dist/esm/color/recipes/neutral-fill-contrast.js +0 -26
  159. package/dist/esm/color/recipes/neutral-fill-input.js +0 -14
  160. package/dist/esm/color/recipes/neutral-fill-inverse.js +0 -26
  161. package/dist/esm/color/recipes/neutral-fill-layer.js +0 -7
  162. package/dist/esm/color/recipes/neutral-fill-stealth.js +0 -14
  163. package/dist/esm/color/recipes/neutral-fill.js +0 -21
  164. package/dist/esm/color/recipes/neutral-foreground-hint.js +0 -10
  165. package/dist/esm/color/recipes/neutral-foreground.js +0 -6
  166. package/dist/esm/color/recipes/neutral-layer-card-container.js +0 -9
  167. package/dist/esm/color/recipes/neutral-stroke-strong.js +0 -15
  168. package/dist/esm/color/recipes/neutral-stroke.js +0 -18
  169. package/dist/esm/styles/patterns/input.js +0 -31
  170. package/dist/esm/utilities/math.js +0 -49
@@ -1,25 +1,64 @@
1
+ import { DesignToken } from '@microsoft/fast-foundation';
2
+ import { Swatch } from '../color/swatch';
1
3
  /**
2
4
  * Define shadow algorithms.
3
5
  *
4
6
  * TODO: The --background-luminance will need to be derived from JavaScript. For now
5
7
  * this is hard-coded to a 1, the relative luminance of pure white.
6
8
  * https://github.com/microsoft/fast/issues/2778
9
+ * opacity was `calc(.11 * (2 - var(--background-luminance, 1)))`
7
10
  *
8
11
  * @internal
9
- * @deprecated Will be replaced
12
+ * @deprecated Use elevationShadow design token
10
13
  */
11
- export declare const ambientShadow = "0 0 calc((var(--elevation) * 0.225px) + 2px) rgba(0, 0, 0, calc(.11 * (2 - var(--background-luminance, 1))))";
14
+ export declare const ambientShadow = "0 0 2px rgba(0, 0, 0, 0.14)";
12
15
  /**
13
16
  * @internal
14
- * @deprecated Will be replaced
17
+ * @deprecated Use elevationShadow design token
15
18
  */
16
- export declare const directionalShadow = "0 calc(var(--elevation) * 0.4px) calc((var(--elevation) * 0.9px)) rgba(0, 0, 0, calc(.13 * (2 - var(--background-luminance, 1))))";
19
+ export declare const directionalShadow = "0 calc(var(--elevation) * 0.5px) calc((var(--elevation) * 1px)) rgba(0, 0, 0, 0.2)";
17
20
  /**
18
21
  * Applies the box-shadow CSS rule set to the elevation formula.
19
22
  * Control this formula with the --elevation CSS Custom Property
20
23
  * by setting --elevation to a number.
21
24
  *
22
25
  * @public
23
- * @deprecated Will be replaced
26
+ * @deprecated Use elevationShadow design token
24
27
  */
25
28
  export declare const elevation: string;
29
+ /** @public */
30
+ export interface ElevationRecipe {
31
+ evaluate(element: HTMLElement, size: number, reference?: Swatch): string;
32
+ }
33
+ /**
34
+ * @public
35
+ */
36
+ export declare const elevationShadowRecipe: DesignToken<ElevationRecipe>;
37
+ /** @public */
38
+ export declare const elevationShadowCardRestSize: import("@microsoft/fast-foundation").CSSDesignToken<number>;
39
+ /** @public */
40
+ export declare const elevationShadowCardHoverSize: import("@microsoft/fast-foundation").CSSDesignToken<number>;
41
+ /** @public */
42
+ export declare const elevationShadowCardActiveSize: import("@microsoft/fast-foundation").CSSDesignToken<number>;
43
+ /** @public */
44
+ export declare const elevationShadowCardFocusSize: import("@microsoft/fast-foundation").CSSDesignToken<number>;
45
+ /** @public */
46
+ export declare const elevationShadowCardRest: import("@microsoft/fast-foundation").CSSDesignToken<string>;
47
+ /** @public */
48
+ export declare const elevationShadowCardHover: import("@microsoft/fast-foundation").CSSDesignToken<string>;
49
+ /** @public */
50
+ export declare const elevationShadowCardActive: import("@microsoft/fast-foundation").CSSDesignToken<string>;
51
+ /** @public */
52
+ export declare const elevationShadowCardFocus: import("@microsoft/fast-foundation").CSSDesignToken<string>;
53
+ /** @public */
54
+ export declare const elevationShadowTooltipSize: import("@microsoft/fast-foundation").CSSDesignToken<number>;
55
+ /** @public */
56
+ export declare const elevationShadowTooltip: import("@microsoft/fast-foundation").CSSDesignToken<string>;
57
+ /** @public */
58
+ export declare const elevationShadowFlyoutSize: import("@microsoft/fast-foundation").CSSDesignToken<number>;
59
+ /** @public */
60
+ export declare const elevationShadowFlyout: import("@microsoft/fast-foundation").CSSDesignToken<string>;
61
+ /** @public */
62
+ export declare const elevationShadowDialogSize: import("@microsoft/fast-foundation").CSSDesignToken<number>;
63
+ /** @public */
64
+ export declare const elevationShadowDialog: import("@microsoft/fast-foundation").CSSDesignToken<string>;
@@ -1,24 +1,25 @@
1
+ import { ElementDefinitionContext, FoundationElementDefinition } from '@microsoft/fast-foundation';
1
2
  /**
2
3
  * @internal
3
4
  */
4
- export declare const baseButtonStyles: (context: any, definition: any) => import("@microsoft/fast-element").ElementStyles;
5
+ export declare const baseButtonStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, interactivitySelector?: string, nonInteractivitySelector?: string) => import("@microsoft/fast-element").ElementStyles;
5
6
  /**
6
7
  * @internal
7
8
  */
8
- export declare const AccentButtonStyles: import("@microsoft/fast-element").ElementStyles;
9
+ export declare const AccentButtonStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, interactivitySelector?: string, nonInteractivitySelector?: string) => import("@microsoft/fast-element").ElementStyles;
9
10
  /**
10
11
  * @internal
11
12
  */
12
- export declare const HypertextStyles: import("@microsoft/fast-element").ElementStyles;
13
+ export declare const HypertextStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, interactivitySelector?: string, nonInteractivitySelector?: string) => import("@microsoft/fast-element").ElementStyles;
13
14
  /**
14
15
  * @internal
15
16
  */
16
- export declare const LightweightButtonStyles: import("@microsoft/fast-element").ElementStyles;
17
+ export declare const LightweightButtonStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, interactivitySelector?: string, nonInteractivitySelector?: string) => import("@microsoft/fast-element").ElementStyles;
17
18
  /**
18
19
  * @internal
19
20
  */
20
- export declare const OutlineButtonStyles: import("@microsoft/fast-element").ElementStyles;
21
+ export declare const OutlineButtonStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, interactivitySelector?: string, nonInteractivitySelector?: string) => import("@microsoft/fast-element").ElementStyles;
21
22
  /**
22
23
  * @internal
23
24
  */
24
- export declare const StealthButtonStyles: import("@microsoft/fast-element").ElementStyles;
25
+ export declare const StealthButtonStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, interactivitySelector?: string, nonInteractivitySelector?: string) => import("@microsoft/fast-element").ElementStyles;
@@ -1,2 +1,2 @@
1
1
  export * from './button.styles';
2
- export * from './input';
2
+ export * from './input.styles';
@@ -0,0 +1,22 @@
1
+ import { ElementStyles } from '@microsoft/fast-element';
2
+ import { ElementDefinitionContext, FoundationElementDefinition } from '@microsoft/fast-foundation';
3
+ /**
4
+ * @internal
5
+ */
6
+ export declare const inputStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, rootSelector: string) => ElementStyles;
7
+ /**
8
+ * @internal
9
+ */
10
+ export declare const inputStateStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, rootSelector: string) => ElementStyles;
11
+ /**
12
+ * @internal
13
+ */
14
+ export declare const inputFilledStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, rootSelector: string) => ElementStyles;
15
+ /**
16
+ * @internal
17
+ */
18
+ export declare const inputForcedColorStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, rootSelector: string) => ElementStyles;
19
+ /**
20
+ * @internal
21
+ */
22
+ export declare const inputFilledForcedColorStyles: (context: ElementDefinitionContext, definition: FoundationElementDefinition, rootSelector: string) => ElementStyles;
@@ -3,8 +3,8 @@ declare const _default: {
3
3
  component: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<import("@microsoft/fast-foundation").FoundationElementDefinition> | undefined) => import("@microsoft/fast-foundation").FoundationElementRegistry<import("@microsoft/fast-foundation").FoundationElementDefinition, typeof import(".").TextArea>;
4
4
  argTypes: {
5
5
  appearance: {
6
- options: string[];
7
6
  defaultValue: string;
7
+ options: string[];
8
8
  control: {
9
9
  type: string;
10
10
  };
@@ -2,11 +2,6 @@ declare const _default: {
2
2
  title: string;
3
3
  component: (overrideDefinition?: import("@microsoft/fast-foundation").OverrideFoundationElementDefinition<import("@microsoft/fast-foundation").FoundationElementDefinition> | undefined) => import("@microsoft/fast-foundation").FoundationElementRegistry<import("@microsoft/fast-foundation").FoundationElementDefinition, typeof import("@microsoft/fast-foundation").TreeView>;
4
4
  argTypes: {
5
- disabled: {
6
- control: {
7
- type: string;
8
- };
9
- };
10
5
  renderCollapsedNodes: {
11
6
  control: {
12
7
  type: string;
@@ -1,27 +1,47 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
2
+ import { DesignToken, display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
3
3
  import { SystemColors } from '@microsoft/fast-web-utilities';
4
- import { accentFillRest, bodyFont, density, designUnit, focusStrokeOuter, focusStrokeWidth, neutralForegroundRest, neutralStrokeDividerRest, strokeWidth, typeRampMinus1FontSize, typeRampMinus1LineHeight, } from '../../design-tokens';
4
+ import { bodyFont, controlCornerRadius, designUnit, focusStrokeOuter, focusStrokeWidth, layerCornerRadius, neutralFillLayerAltRest, neutralFillLayerRecipe, neutralFillLayerRest, neutralFillStealthRecipe, neutralForegroundRest, neutralStrokeLayerRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../../design-tokens';
5
5
  import { heightNumber } from '../../styles/size';
6
+ const neutralFillStealthRestOnNeutralFillLayerRest = DesignToken.create('neutral-fill-stealth-rest-on-neutral-fill-layer-rest').withDefault((target) => {
7
+ const baseRecipe = neutralFillLayerRecipe.getValueFor(target);
8
+ const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);
9
+ return buttonRecipe.evaluate(target, baseRecipe.evaluate(target).rest).rest;
10
+ });
11
+ const neutralFillStealthHoverOnNeutralFillLayerRest = DesignToken.create('neutral-fill-stealth-hover-on-neutral-fill-layer-rest').withDefault((target) => {
12
+ const baseRecipe = neutralFillLayerRecipe.getValueFor(target);
13
+ const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);
14
+ return buttonRecipe.evaluate(target, baseRecipe.evaluate(target).rest).hover;
15
+ });
16
+ const neutralFillStealthActiveOnNeutralFillLayerRest = DesignToken.create('neutral-fill-stealth-active-on-neutral-fill-layer-rest').withDefault((target) => {
17
+ const baseRecipe = neutralFillLayerRecipe.getValueFor(target);
18
+ const buttonRecipe = neutralFillStealthRecipe.getValueFor(target);
19
+ return buttonRecipe.evaluate(target, baseRecipe.evaluate(target).rest).active;
20
+ });
6
21
  export const accordionItemStyles = (context, definition) => css `
7
22
  ${display('flex')} :host {
8
23
  box-sizing: border-box;
9
24
  font-family: ${bodyFont};
10
25
  flex-direction: column;
11
- font-size: ${typeRampMinus1FontSize};
12
- line-height: ${typeRampMinus1LineHeight};
13
- border-bottom: calc(${strokeWidth} * 1px) solid ${neutralStrokeDividerRest};
26
+ font-size: ${typeRampBaseFontSize};
27
+ line-height: ${typeRampBaseLineHeight};
28
+ background: ${neutralFillLayerRest};
29
+ color: ${neutralForegroundRest};
30
+ border: calc(${strokeWidth} * 1px) solid ${neutralStrokeLayerRest};
31
+ border-radius: calc(${layerCornerRadius} * 1px);
14
32
  }
15
33
 
16
34
  .region {
17
35
  display: none;
18
- padding: calc((6 + (${designUnit} * 2 * ${density})) * 1px);
36
+ padding: calc(${designUnit} * 2 * 1px);
37
+ background: ${neutralFillLayerAltRest};
19
38
  }
20
39
 
21
40
  .heading {
22
41
  display: grid;
23
42
  position: relative;
24
- grid-template-columns: auto 1fr auto calc(${heightNumber} * 1px);
43
+ grid-template-columns: auto 1fr auto auto;
44
+ align-items: center;
25
45
  z-index: 2;
26
46
  }
27
47
 
@@ -32,19 +52,14 @@ export const accordionItemStyles = (context, definition) => css `
32
52
  grid-column: 2;
33
53
  grid-row: 1;
34
54
  outline: none;
35
- padding: 0 calc((6 + (${designUnit} * 2 * ${density})) * 1px);
55
+ margin: calc(${designUnit} * 3 * 1px) 0;
56
+ padding: 0 calc(${designUnit} * 2 * 1px);
36
57
  text-align: left;
37
- height: calc(${heightNumber} * 1px);
38
- color: ${neutralForegroundRest};
58
+ color: inherit;
39
59
  cursor: pointer;
40
60
  font-family: inherit;
41
61
  }
42
62
 
43
- .button:hover,
44
- .button:active {
45
- color: ${neutralForegroundRest};
46
- }
47
-
48
63
  .button::before {
49
64
  content: '';
50
65
  position: absolute;
@@ -59,11 +74,20 @@ export const accordionItemStyles = (context, definition) => css `
59
74
  .button:${focusVisible}::before {
60
75
  outline: none;
61
76
  border: calc(${strokeWidth} * 1px) solid ${focusStrokeOuter};
77
+ border-radius: calc(${layerCornerRadius} * 1px);
62
78
  box-shadow: 0 0 0 calc((${focusStrokeWidth} - ${strokeWidth}) * 1px) ${focusStrokeOuter};
63
79
  }
64
80
 
81
+ :host(.expanded) .button:${focusVisible}::before {
82
+ border-bottom-left-radius: 0;
83
+ border-bottom-right-radius: 0;
84
+ }
85
+
65
86
  :host(.expanded) .region {
66
87
  display: block;
88
+ border-top: calc(${strokeWidth} * 1px) solid ${neutralStrokeLayerRest};
89
+ border-bottom-left-radius: calc((${layerCornerRadius} - ${strokeWidth}) * 1px);
90
+ border-bottom-right-radius: calc((${layerCornerRadius} - ${strokeWidth}) * 1px);
67
91
  }
68
92
 
69
93
  .icon {
@@ -73,7 +97,20 @@ export const accordionItemStyles = (context, definition) => css `
73
97
  grid-column: 4;
74
98
  z-index: 2;
75
99
  pointer-events: none;
76
- fill: ${accentFillRest};
100
+ background: ${neutralFillStealthRestOnNeutralFillLayerRest};
101
+ border-radius: calc(${controlCornerRadius} * 1px);
102
+ fill: currentcolor;
103
+ width: calc(${heightNumber} * 1px);
104
+ height: calc(${heightNumber} * 1px);
105
+ margin: calc(${designUnit} * 2 * 1px);
106
+ }
107
+
108
+ .heading:hover .icon {
109
+ background: ${neutralFillStealthHoverOnNeutralFillLayerRest};
110
+ }
111
+
112
+ .heading:active .icon {
113
+ background: ${neutralFillStealthActiveOnNeutralFillLayerRest};
77
114
  }
78
115
 
79
116
  slot[name='collapsed-icon'] {
@@ -95,7 +132,7 @@ export const accordionItemStyles = (context, definition) => css `
95
132
  .start {
96
133
  display: flex;
97
134
  align-items: center;
98
- padding-inline-start: calc(${designUnit} * 1px);
135
+ padding-inline-start: calc(${designUnit} * 2 * 1px);
99
136
  justify-content: center;
100
137
  grid-column: 1;
101
138
  z-index: 2;
@@ -14,31 +14,13 @@ export const fluentAccordionItem = AccordionItem.compose({
14
14
  template,
15
15
  styles,
16
16
  collapsedIcon: `
17
- <svg
18
- width="20"
19
- height="20"
20
- viewBox="0 0 20 20"
21
- xmlns="http://www.w3.org/2000/svg"
22
- >
23
- <path
24
- fill-rule="evenodd"
25
- clip-rule="evenodd"
26
- d="M16.22 3H3.78a.78.78 0 00-.78.78v12.44c0 .43.35.78.78.78h12.44c.43 0 .78-.35.78-.78V3.78a.78.78 0 00-.78-.78zM3.78 2h12.44C17.2 2 18 2.8 18 3.78v12.44c0 .98-.8 1.78-1.78 1.78H3.78C2.8 18 2 17.2 2 16.22V3.78C2 2.8 2.8 2 3.78 2zM11 9h3v2h-3v3H9v-3H6V9h3V6h2v3z"
27
- />
17
+ <svg width="12" height="12" xmlns="http://www.w3.org/2000/svg">
18
+ <path d="M2.15 4.65c.2-.2.5-.2.7 0L6 7.79l3.15-3.14a.5.5 0 11.7.7l-3.5 3.5a.5.5 0 01-.7 0l-3.5-3.5a.5.5 0 010-.7z"/>
28
19
  </svg>
29
20
  `,
30
21
  expandedIcon: `
31
- <svg
32
- width="20"
33
- height="20"
34
- viewBox="0 0 20 20"
35
- xmlns="http://www.w3.org/2000/svg"
36
- >
37
- <path
38
- fill-rule="evenodd"
39
- clip-rule="evenodd"
40
- d="M3.78 3h12.44c.43 0 .78.35.78.78v12.44c0 .43-.35.78-.78.78H3.78a.78.78 0 01-.78-.78V3.78c0-.43.35-.78.78-.78zm12.44-1H3.78C2.8 2 2 2.8 2 3.78v12.44C2 17.2 2.8 18 3.78 18h12.44c.98 0 1.78-.8 1.78-1.78V3.78C18 2.8 17.2 2 16.22 2zM14 9H6v2h8V9z"
41
- />
22
+ <svg width="12" height="12" xmlns="http://www.w3.org/2000/svg">
23
+ <path d="M2.15 7.35c.2.2.5.2.7 0L6 4.21l3.15 3.14a.5.5 0 10.7-.7l-3.5-3.5a.5.5 0 00-.7 0l-3.5 3.5a.5.5 0 000 .7z"/>
42
24
  </svg>
43
25
  `,
44
26
  });
@@ -1,14 +1,14 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display } from '@microsoft/fast-foundation';
3
- import { bodyFont, neutralForegroundRest, neutralStrokeDividerRest, strokeWidth, typeRampMinus1FontSize, typeRampMinus1LineHeight, } from '../design-tokens';
3
+ import { bodyFont, designUnit, neutralForegroundRest, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
4
4
  export const accordionStyles = (context, definition) => css `
5
5
  ${display('flex')} :host {
6
6
  box-sizing: border-box;
7
7
  flex-direction: column;
8
8
  font-family: ${bodyFont};
9
- font-size: ${typeRampMinus1FontSize};
10
- line-height: ${typeRampMinus1LineHeight};
9
+ font-size: ${typeRampBaseFontSize};
10
+ line-height: ${typeRampBaseLineHeight};
11
11
  color: ${neutralForegroundRest};
12
- border-top: calc(${strokeWidth} * 1px) solid ${neutralStrokeDividerRest};
12
+ gap: calc(${designUnit} * 1px);
13
13
  }
14
14
  `;
@@ -11,15 +11,15 @@ export default {
11
11
  };
12
12
  const AnchorTemplate = ({ appearance, label }) => `
13
13
  <fluent-anchor
14
+ href="javascript:void"
14
15
  ${appearance ? `appearance="${appearance}"` : ''}
15
- href="https://bing.com" target="_blank"
16
16
  >
17
17
  ${label}
18
18
  </fluent-anchor>
19
19
  `;
20
20
  export const Anchor = AnchorTemplate.bind({});
21
21
  const example = `
22
- <fluent-anchor href="https://bing.com" target="_blank" appearance="neutral">Anchor</fluent-anchor>
22
+ <fluent-anchor href="#" appearance="neutral">Anchor</fluent-anchor>
23
23
  `;
24
24
  Anchor.args = {
25
25
  label: 'Anchor',
@@ -1,6 +1,12 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { AccentButtonStyles, baseButtonStyles, HypertextStyles, LightweightButtonStyles, OutlineButtonStyles, StealthButtonStyles, } from '../styles/';
3
3
  import { appearanceBehavior } from '../utilities/behaviors';
4
+ const interactivitySelector = '[href]';
5
+ const nonInteractivitySelector = ':not([href])';
4
6
  export const anchorStyles = (context, definition) => css `
5
- ${baseButtonStyles(context, definition)}
6
- `.withBehaviors(appearanceBehavior('accent', AccentButtonStyles), appearanceBehavior('hypertext', HypertextStyles), appearanceBehavior('lightweight', LightweightButtonStyles), appearanceBehavior('outline', OutlineButtonStyles), appearanceBehavior('stealth', StealthButtonStyles));
7
+ :host .control:not([href]) {
8
+ cursor: default;
9
+ }
10
+
11
+ ${baseButtonStyles(context, definition, interactivitySelector, nonInteractivitySelector)}
12
+ `.withBehaviors(appearanceBehavior('accent', AccentButtonStyles(context, definition, interactivitySelector, nonInteractivitySelector)), appearanceBehavior('hypertext', HypertextStyles(context, definition, interactivitySelector, nonInteractivitySelector)), appearanceBehavior('lightweight', LightweightButtonStyles(context, definition, interactivitySelector, nonInteractivitySelector)), appearanceBehavior('outline', OutlineButtonStyles(context, definition, interactivitySelector, nonInteractivitySelector)), appearanceBehavior('stealth', StealthButtonStyles(context, definition, interactivitySelector, nonInteractivitySelector)));
@@ -1,6 +1,6 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display } from '@microsoft/fast-foundation';
3
- import { accentFillRest, bodyFont, controlCornerRadius, designUnit, foregroundOnAccentRest, neutralFillRest, neutralForegroundRest, strokeWidth, typeRampMinus1FontSize, typeRampMinus1LineHeight, } from '../design-tokens';
3
+ import { accentFillRest, bodyFont, controlCornerRadius, designUnit, foregroundOnAccentRest, neutralFillSecondaryRest, neutralForegroundRest, strokeWidth, typeRampMinus1FontSize, typeRampMinus1LineHeight, } from '../design-tokens';
4
4
  export const badgeStyles = (context, definition) => css `
5
5
  ${display('inline-block')} :host {
6
6
  box-sizing: border-box;
@@ -27,7 +27,15 @@ export const badgeStyles = (context, definition) => css `
27
27
  }
28
28
 
29
29
  :host(.neutral) .control {
30
- background: ${neutralFillRest};
30
+ background: ${neutralFillSecondaryRest};
31
31
  color: ${neutralForegroundRest};
32
32
  }
33
+
34
+ :host([circular]) .control {
35
+ border-radius: 100px;
36
+ min-width: calc(${typeRampMinus1LineHeight} - calc(${designUnit} * 1px));
37
+ display: flex;
38
+ align-items: center;
39
+ justify-content: center;
40
+ }
33
41
  `;
@@ -1,110 +1,101 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display, focusVisible, forcedColorsStylesheetBehavior, } from '@microsoft/fast-foundation';
3
3
  import { SystemColors } from '@microsoft/fast-web-utilities';
4
- import { accentForegroundActive, accentForegroundHover, accentForegroundRest, bodyFont, focusStrokeWidth, neutralForegroundRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
4
+ import { bodyFont, controlCornerRadius, focusStrokeOuter, focusStrokeWidth, neutralForegroundActive, neutralForegroundHover, neutralForegroundRest, strokeWidth, typeRampBaseFontSize, typeRampBaseLineHeight, } from '../design-tokens';
5
5
  import { heightNumber } from '../styles/index';
6
6
  export const breadcrumbItemStyles = (context, definition) => css `
7
7
  ${display('inline-flex')} :host {
8
8
  background: transparent;
9
- box-sizing: border-box;
9
+ color: ${neutralForegroundRest};
10
10
  fill: currentcolor;
11
+ box-sizing: border-box;
11
12
  font-family: ${bodyFont};
12
13
  font-size: ${typeRampBaseFontSize};
13
14
  line-height: ${typeRampBaseLineHeight};
14
15
  min-width: calc(${heightNumber} * 1px);
16
+ border-radius: calc(${controlCornerRadius} * 1px);
15
17
  outline: none;
16
18
  }
17
19
 
18
20
  .listitem {
19
- display: flex;
20
- align-items: center;
21
+ display: flex;
22
+ align-items: center;
23
+ border-radius: inherit;
21
24
  }
22
25
 
23
26
  .control {
27
+ position: relative;
24
28
  align-items: center;
25
29
  box-sizing: border-box;
26
- color: ${accentForegroundRest};
30
+ color: inherit;
31
+ fill: inherit;
27
32
  cursor: pointer;
28
33
  display: flex;
29
- fill: inherit;
30
34
  outline: none;
31
35
  text-decoration: none;
32
36
  white-space: nowrap;
33
- }
37
+ border-radius: inherit;
38
+ }
34
39
 
35
40
  .control:hover {
36
- color: ${accentForegroundHover};
41
+ color: ${neutralForegroundHover};
37
42
  }
38
43
 
39
44
  .control:active {
40
- color: ${accentForegroundActive};
41
- }
42
-
43
- .control .content {
44
- position: relative;
45
- }
46
-
47
- .control .content::before {
48
- content: "";
49
- display: block;
50
- height: calc(${strokeWidth} * 1px);
51
- left: 0;
52
- position: absolute;
53
- right: 0;
54
- top: calc(1em + 4px);
55
- width: 100%;
56
- }
57
-
58
- .control:hover .content::before {
59
- background: ${accentForegroundHover};
60
- }
61
-
62
- .control:active .content::before {
63
- background: ${accentForegroundActive};
45
+ color: ${neutralForegroundActive};
64
46
  }
65
47
 
66
- .control:${focusVisible} .content::before {
67
- background: ${neutralForegroundRest};
68
- height: calc(${focusStrokeWidth} * 1px);
48
+ .control:${focusVisible}::after {
49
+ content: '';
50
+ position: absolute;
51
+ inset: calc(${strokeWidth} * -1px);
52
+ box-shadow: 0 0 0 calc(${focusStrokeWidth} * 1px) ${focusStrokeOuter} inset;
53
+ border-radius: inherit;
69
54
  }
70
55
 
71
56
  :host(:not([href])),
72
- :host([aria-current]) .control {
73
- font-weight: 600;
74
- color: ${neutralForegroundRest};
75
- fill: currentcolor;
76
- cursor: default;
57
+ :host([aria-current]) .control {
58
+ color: ${neutralForegroundRest};
59
+ fill: currentcolor;
60
+ cursor: default;
77
61
  }
78
62
 
79
- :host([aria-current]) .control:hover .content::before {
80
- background: ${neutralForegroundRest};
81
- }
82
-
83
63
  .start {
84
- display: flex;
85
- margin-inline-end: 6px;
64
+ display: flex;
65
+ margin-inline-end: 6px;
86
66
  }
87
67
 
88
68
  .end {
89
- display: flex;
90
- margin-inline-start: 6px;
69
+ display: flex;
70
+ margin-inline-start: 6px;
91
71
  }
92
72
 
93
73
  .separator {
94
74
  display: flex;
95
- fill: ${neutralForegroundRest};
96
- margin: 0 6px;
97
75
  }
98
- `.withBehaviors(forcedColorsStylesheetBehavior(css `
76
+ `.withBehaviors(forcedColorsStylesheetBehavior(css `
99
77
  :host(:not([href])),
100
78
  .start,
101
79
  .end,
102
80
  .separator {
81
+ background: ${SystemColors.ButtonFace};
103
82
  color: ${SystemColors.ButtonText};
104
83
  fill: currentcolor;
105
84
  }
106
- .control:hover .content::before,
107
- .control:${focusVisible} .content::before {
85
+ .separator {
86
+ fill: ${SystemColors.ButtonText};
87
+ }
88
+ :host([href]) {
89
+ forced-color-adjust: none;
90
+ background: ${SystemColors.ButtonFace};
91
+ color: ${SystemColors.LinkText};
92
+ }
93
+ :host([href]) .control:hover {
108
94
  background: ${SystemColors.LinkText};
95
+ color: ${SystemColors.HighlightText};
96
+ fill: currentcolor;
97
+ }
98
+ :host([href]) .control:${focusVisible}::after {
99
+ box-shadow: 0 0 0 calc(${focusStrokeWidth} * 1px) ${SystemColors.LinkText} inset;
109
100
  }
110
101
  `));
@@ -17,10 +17,8 @@ export const fluentBreadcrumbItem = BreadcrumbItem.compose({
17
17
  delegatesFocus: true,
18
18
  },
19
19
  separator: `
20
- <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg%22%3E">
21
- <path
22
- d="M7.65 4.15c.2-.2.5-.2.7 0l5.49 5.46c.21.22.21.57 0 .78l-5.49 5.46a.5.5 0 01-.7-.7L12.8 10 7.65 4.85a.5.5 0 010-.7z"
23
- />
20
+ <svg width="12" height="12" xmlns="http://www.w3.org/2000/svg">
21
+ <path d="M4.65 2.15a.5.5 0 000 .7L7.79 6 4.65 9.15a.5.5 0 10.7.7l3.5-3.5a.5.5 0 000-.7l-3.5-3.5a.5.5 0 00-.7 0z"/>
24
22
  </svg>
25
23
  `,
26
24
  });
@@ -6,7 +6,7 @@ export default {
6
6
  appearance: {
7
7
  description: 'This controls the basic appearances',
8
8
  control: { type: 'select' },
9
- options: ['neutral', 'accent', 'lighweight', 'outline', 'stealth'],
9
+ options: ['neutral', 'accent', 'lightweight', 'outline', 'stealth'],
10
10
  default: 'neutral',
11
11
  },
12
12
  disabled: {