@fluentui/web-components 3.0.0-beta.30 → 3.0.0-beta.32

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 (87) hide show
  1. package/CHANGELOG.md +28 -2
  2. package/dist/dts/anchor-button/anchor-button.d.ts +39 -4
  3. package/dist/dts/anchor-button/anchor-button.options.d.ts +0 -1
  4. package/dist/dts/badge/badge.d.ts +30 -0
  5. package/dist/dts/button/button.d.ts +25 -1
  6. package/dist/dts/button/button.options.d.ts +0 -1
  7. package/dist/dts/checkbox/checkbox.d.ts +13 -1
  8. package/dist/dts/compound-button/compound-button.options.d.ts +0 -5
  9. package/dist/dts/counter-badge/counter-badge.d.ts +36 -0
  10. package/dist/dts/divider/divider.d.ts +18 -0
  11. package/dist/dts/image/image.d.ts +36 -0
  12. package/dist/dts/label/label.d.ts +24 -0
  13. package/dist/dts/link/link.d.ts +12 -0
  14. package/dist/dts/menu-button/menu-button.options.d.ts +0 -1
  15. package/dist/dts/progress-bar/progress-bar.d.ts +18 -0
  16. package/dist/dts/spinner/spinner.d.ts +13 -1
  17. package/dist/dts/styles/states/index.d.ts +175 -0
  18. package/dist/dts/text-input/text-input.d.ts +12 -0
  19. package/dist/dts/toggle-button/toggle-button.options.d.ts +0 -1
  20. package/dist/esm/anchor-button/anchor-button.js +76 -8
  21. package/dist/esm/anchor-button/anchor-button.js.map +1 -1
  22. package/dist/esm/anchor-button/anchor-button.styles.js +8 -1
  23. package/dist/esm/anchor-button/anchor-button.styles.js.map +1 -1
  24. package/dist/esm/anchor-button/anchor-button.template.js +2 -2
  25. package/dist/esm/anchor-button/anchor-button.template.js.map +1 -1
  26. package/dist/esm/badge/badge.js +59 -0
  27. package/dist/esm/badge/badge.js.map +1 -1
  28. package/dist/esm/badge/badge.styles.js +6 -5
  29. package/dist/esm/badge/badge.styles.js.map +1 -1
  30. package/dist/esm/button/button.js +48 -0
  31. package/dist/esm/button/button.js.map +1 -1
  32. package/dist/esm/button/button.options.js +0 -1
  33. package/dist/esm/button/button.options.js.map +1 -1
  34. package/dist/esm/button/button.styles.js +40 -49
  35. package/dist/esm/button/button.styles.js.map +1 -1
  36. package/dist/esm/checkbox/checkbox.js +26 -0
  37. package/dist/esm/checkbox/checkbox.js.map +1 -1
  38. package/dist/esm/checkbox/checkbox.styles.js +6 -5
  39. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  40. package/dist/esm/compound-button/compound-button.styles.js +14 -15
  41. package/dist/esm/compound-button/compound-button.styles.js.map +1 -1
  42. package/dist/esm/counter-badge/counter-badge.js +67 -0
  43. package/dist/esm/counter-badge/counter-badge.js.map +1 -1
  44. package/dist/esm/counter-badge/counter-badge.styles.js +12 -6
  45. package/dist/esm/counter-badge/counter-badge.styles.js.map +1 -1
  46. package/dist/esm/divider/divider.js +47 -2
  47. package/dist/esm/divider/divider.js.map +1 -1
  48. package/dist/esm/divider/divider.styles.js +31 -30
  49. package/dist/esm/divider/divider.styles.js.map +1 -1
  50. package/dist/esm/image/image.js +68 -0
  51. package/dist/esm/image/image.js.map +1 -1
  52. package/dist/esm/image/image.styles.js +10 -9
  53. package/dist/esm/image/image.styles.js.map +1 -1
  54. package/dist/esm/label/label.js +41 -0
  55. package/dist/esm/label/label.js.map +1 -1
  56. package/dist/esm/label/label.styles.js +7 -6
  57. package/dist/esm/label/label.styles.js.map +1 -1
  58. package/dist/esm/link/link.js +22 -0
  59. package/dist/esm/link/link.js.map +1 -1
  60. package/dist/esm/link/link.styles.js +11 -4
  61. package/dist/esm/link/link.styles.js.map +1 -1
  62. package/dist/esm/link/link.template.js +2 -2
  63. package/dist/esm/link/link.template.js.map +1 -1
  64. package/dist/esm/progress-bar/progress-bar.js +40 -0
  65. package/dist/esm/progress-bar/progress-bar.js.map +1 -1
  66. package/dist/esm/progress-bar/progress-bar.styles.js +7 -6
  67. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  68. package/dist/esm/spinner/spinner.js +27 -0
  69. package/dist/esm/spinner/spinner.js.map +1 -1
  70. package/dist/esm/spinner/spinner.styles.js +9 -8
  71. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  72. package/dist/esm/styles/partials/badge.partials.js +43 -42
  73. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  74. package/dist/esm/styles/states/index.js +177 -0
  75. package/dist/esm/styles/states/index.js.map +1 -0
  76. package/dist/esm/text-input/text-input.js +27 -0
  77. package/dist/esm/text-input/text-input.js.map +1 -1
  78. package/dist/esm/text-input/text-input.styles.js +23 -22
  79. package/dist/esm/text-input/text-input.styles.js.map +1 -1
  80. package/dist/esm/toggle-button/toggle-button.js +2 -1
  81. package/dist/esm/toggle-button/toggle-button.js.map +1 -1
  82. package/dist/esm/toggle-button/toggle-button.styles.js +24 -23
  83. package/dist/esm/toggle-button/toggle-button.styles.js.map +1 -1
  84. package/dist/web-components.d.ts +276 -16
  85. package/dist/web-components.js +649 -94
  86. package/dist/web-components.min.js +341 -340
  87. package/package.json +3 -2
@@ -1,5 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { attr, FASTElement } from '@microsoft/fast-element';
3
+ import { toggleState } from '../utils/element-internals.js';
3
4
  import { DividerOrientation, DividerRole } from './divider.options.js';
4
5
  /**
5
6
  * A Divider Custom HTML Element.
@@ -16,6 +17,46 @@ export class Divider extends FASTElement {
16
17
  * @internal
17
18
  */
18
19
  this.elementInternals = this.attachInternals();
20
+ /**
21
+ * @public
22
+ * @remarks
23
+ * Adds padding to the beginning and end of the divider.
24
+ */
25
+ this.inset = false;
26
+ }
27
+ /**
28
+ * Handles changes to align-content attribute custom states
29
+ * @param prev - the previous state
30
+ * @param next - the next state
31
+ */
32
+ alignContentChanged(prev, next) {
33
+ if (prev) {
34
+ toggleState(this.elementInternals, `align-${prev}`, false);
35
+ }
36
+ if (next) {
37
+ toggleState(this.elementInternals, `align-${next}`, true);
38
+ }
39
+ }
40
+ /**
41
+ * Handles changes to appearance attribute custom states
42
+ * @param prev - the previous state
43
+ * @param next - the next state
44
+ */
45
+ appearanceChanged(prev, next) {
46
+ if (prev) {
47
+ toggleState(this.elementInternals, `${prev}`, false);
48
+ }
49
+ if (next) {
50
+ toggleState(this.elementInternals, `${next}`, true);
51
+ }
52
+ }
53
+ /**
54
+ * Handles changes to inset custom states
55
+ * @param prev - the previous state
56
+ * @param next - the next state
57
+ */
58
+ insetChanged(prev, next) {
59
+ toggleState(this.elementInternals, 'inset', next);
19
60
  }
20
61
  connectedCallback() {
21
62
  var _a, _b;
@@ -48,8 +89,12 @@ export class Divider extends FASTElement {
48
89
  * @internal
49
90
  */
50
91
  orientationChanged(previous, next) {
51
- if (this.$fastController.isConnected) {
52
- this.elementInternals.ariaOrientation = this.role !== DividerRole.presentation ? next : null;
92
+ this.elementInternals.ariaOrientation = this.role !== DividerRole.presentation ? next : null;
93
+ if (previous) {
94
+ toggleState(this.elementInternals, `${previous}`, false);
95
+ }
96
+ if (next) {
97
+ toggleState(this.elementInternals, `${next}`, true);
53
98
  }
54
99
  }
55
100
  }
@@ -1 +1 @@
1
- {"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../src/divider/divider.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAA0C,kBAAkB,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE/G;;;;;GAKG;AACH,MAAM,OAAO,OAAQ,SAAQ,WAAW;IAAxC;;QACE;;;;WAIG;QACI,qBAAgB,GAAqB,IAAI,CAAC,eAAe,EAAE,CAAC;IAqFrE,CAAC;IAvCQ,iBAAiB;;QACtB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAE1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,MAAA,IAAI,CAAC,IAAI,mCAAI,WAAW,CAAC,SAAS,CAAC;QAEhE,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY,EAAE;YAC1C,IAAI,CAAC,gBAAgB,CAAC,eAAe,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,kBAAkB,CAAC,UAAU,CAAC;SAC3F;IACH,CAAC;IAED;;;;;;OAMG;IACI,WAAW,CAAC,QAAuB,EAAE,IAAmB;QAC7D,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,GAAG,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,WAAW,CAAC,SAAS,EAAE,CAAC;SACjE;QAED,IAAI,IAAI,KAAK,WAAW,CAAC,YAAY,EAAE;YACrC,IAAI,CAAC,gBAAgB,CAAC,eAAe,GAAG,IAAI,CAAC;SAC9C;IACH,CAAC;IAED;;;;;;OAMG;IACI,kBAAkB,CAAC,QAAuB,EAAE,IAAmB;QACpE,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE;YACpC,IAAI,CAAC,gBAAgB,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;SAC9F;IACH,CAAC;CACF;AA3EC;IADC,IAAI;qCACqB;AAU1B;IADC,IAAI;4CACmC;AAQxC;IADC,IAAI,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;6CACK;AAQ1C;IADC,IAAI;2CACiC;AAQtC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;sCACH"}
1
+ {"version":3,"file":"divider.js","sourceRoot":"","sources":["../../../src/divider/divider.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display, forcedColorsStylesheetBehavior } from '../utils/index.js';
3
3
  import { colorBrandForeground1, colorBrandStroke1, colorNeutralForeground1, colorNeutralForeground2, colorNeutralForeground3, colorNeutralStroke1, colorNeutralStroke2, colorNeutralStroke3, fontFamilyBase, fontSizeBase200, fontWeightRegular, strokeWidthThin, } from '../theme/design-tokens.js';
4
+ import { alignEndState, alignStartState, brandState, insetState, strongState, subtleState, verticalState, } from '../styles/states/index.js';
4
5
  /** Divider styles
5
6
  * @public
6
7
  */
@@ -22,7 +23,7 @@ export const styles = css `
22
23
  height: ${strokeWidthThin};
23
24
  }
24
25
 
25
- :host([inset]) {
26
+ :host(${insetState}) {
26
27
  padding: 0 12px;
27
28
  }
28
29
 
@@ -35,89 +36,89 @@ export const styles = css `
35
36
  padding: 0 12px;
36
37
  }
37
38
 
38
- :host([align-content='start'])::before,
39
- :host([align-content='end'])::after {
39
+ :host(${alignStartState})::before,
40
+ :host(${alignEndState})::after {
40
41
  flex-basis: 12px;
41
42
  flex-grow: 0;
42
43
  flex-shrink: 0;
43
44
  }
44
45
 
45
- :host([orientation='vertical']) {
46
+ :host(${verticalState}) {
46
47
  height: 100%;
47
48
  min-height: 84px;
48
49
  }
49
- :host([orientation='vertical']):empty {
50
+ :host(${verticalState}):empty {
50
51
  min-height: 20px;
51
52
  }
52
53
 
53
- :host([orientation='vertical']) {
54
+ :host(${verticalState}) {
54
55
  flex-direction: column;
55
56
  align-items: center;
56
57
  }
57
58
 
58
- :host([orientation='vertical'][inset])::before {
59
+ :host(${verticalState}${insetState})::before {
59
60
  margin-top: 12px;
60
61
  }
61
- :host([orientation='vertical'][inset])::after {
62
+ :host(${verticalState}${insetState})::after {
62
63
  margin-bottom: 12px;
63
64
  }
64
65
 
65
- :host([orientation='vertical']):empty::before,
66
- :host([orientation='vertical']):empty::after {
66
+ :host(${verticalState}):empty::before,
67
+ :host(${verticalState}):empty::after {
67
68
  height: 10px;
68
69
  min-height: 10px;
69
70
  flex-grow: 0;
70
71
  }
71
72
 
72
- :host([orientation='vertical'])::before,
73
- :host([orientation='vertical'])::after {
73
+ :host(${verticalState})::before,
74
+ :host(${verticalState})::after {
74
75
  width: ${strokeWidthThin};
75
76
  min-height: 20px;
76
77
  height: 100%;
77
78
  }
78
79
 
79
- :host([orientation='vertical']) ::slotted(*) {
80
+ :host(${verticalState}) ::slotted(*) {
80
81
  display: flex;
81
82
  flex-direction: column;
82
83
  padding: 12px 0;
83
84
  line-height: 20px;
84
85
  }
85
86
 
86
- :host([orientation='vertical'][align-content='start'])::before {
87
+ :host(${verticalState}${alignStartState})::before {
87
88
  min-height: 8px;
88
89
  }
89
- :host([orientation='vertical'][align-content='end'])::after {
90
+ :host(${verticalState}${alignEndState})::after {
90
91
  min-height: 8px;
91
92
  }
92
93
 
93
- :host([appearance='strong'])::before,
94
- :host([appearance='strong'])::after {
94
+ :host(${strongState})::before,
95
+ :host(${strongState})::after {
95
96
  background: ${colorNeutralStroke1};
96
97
  }
97
- :host([appearance='strong']) ::slotted(*) {
98
+ :host(${strongState}) ::slotted(*) {
98
99
  color: ${colorNeutralForeground1};
99
100
  }
100
- :host([appearance='brand'])::before,
101
- :host([appearance='brand'])::after {
101
+ :host(${brandState})::before,
102
+ :host(${brandState})::after {
102
103
  background: ${colorBrandStroke1};
103
104
  }
104
- :host([appearance='brand']) ::slotted(*) {
105
+ :host(${brandState}) ::slotted(*) {
105
106
  color: ${colorBrandForeground1};
106
107
  }
107
- :host([appearance='subtle'])::before,
108
- :host([appearance='subtle'])::after {
108
+ :host(${subtleState})::before,
109
+ :host(${subtleState})::after {
109
110
  background: ${colorNeutralStroke3};
110
111
  }
111
- :host([appearance='subtle']) ::slotted(*) {
112
+ :host(${subtleState}) ::slotted(*) {
112
113
  color: ${colorNeutralForeground3};
113
114
  }
114
115
  `.withBehaviors(forcedColorsStylesheetBehavior(css `
115
- :host([appearance='strong'])::before,
116
- :host([appearance='strong'])::after,
117
- :host([appearance='brand'])::before,
118
- :host([appearance='brand'])::after,
119
- :host([appearance='subtle'])::before,
120
- :host([appearance='subtle'])::after,
116
+ :host(${strongState})::before,
117
+ :host(${strongState})::after,
118
+ :host(${brandState})::before,
119
+ :host(${brandState})::after,
120
+ :host(${subtleState})::before,
121
+ :host(${subtleState})::after,
121
122
  :host::after,
122
123
  :host::before {
123
124
  background: WindowText;
@@ -1 +1 @@
1
- {"version":3,"file":"divider.styles.js","sourceRoot":"","sources":["../../../src/divider/divider.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,MAAM,CAAC;;;;;;;;;kBASD,mBAAmB;;;;;cAKvB,eAAe;;;;;;;;aAQhB,uBAAuB;mBACjB,cAAc;iBAChB,eAAe;mBACb,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAyCvB,eAAe;;;;;;;;;;;;;;;;;;;;;kBAqBV,mBAAmB;;;aAGxB,uBAAuB;;;;kBAIlB,iBAAiB;;;aAGtB,qBAAqB;;;;kBAIhB,mBAAmB;;;aAGxB,uBAAuB;;CAEnC,CAAC,aAAa,CACb,8BAA8B,CAAC,GAAG,CAAA;;;;;;;;;;;;GAYjC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"divider.styles.js","sourceRoot":"","sources":["../../../src/divider/divider.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EACb,eAAe,EACf,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,MAAM,CAAC;;;;;;;;;kBASD,mBAAmB;;;;;cAKvB,eAAe;;;UAGnB,UAAU;;;;;aAKP,uBAAuB;mBACjB,cAAc;iBAChB,eAAe;mBACb,iBAAiB;;;;;UAK1B,eAAe;UACf,aAAa;;;;;;UAMb,aAAa;;;;UAIb,aAAa;;;;UAIb,aAAa;;;;;UAKb,aAAa,GAAG,UAAU;;;UAG1B,aAAa,GAAG,UAAU;;;;UAI1B,aAAa;UACb,aAAa;;;;;;UAMb,aAAa;UACb,aAAa;aACV,eAAe;;;;;UAKlB,aAAa;;;;;;;UAOb,aAAa,GAAG,eAAe;;;UAG/B,aAAa,GAAG,aAAa;;;;UAI7B,WAAW;UACX,WAAW;kBACH,mBAAmB;;UAE3B,WAAW;aACR,uBAAuB;;UAE1B,UAAU;UACV,UAAU;kBACF,iBAAiB;;UAEzB,UAAU;aACP,qBAAqB;;UAExB,WAAW;UACX,WAAW;kBACH,mBAAmB;;UAE3B,WAAW;aACR,uBAAuB;;CAEnC,CAAC,aAAa,CACb,8BAA8B,CAAC,GAAG,CAAA;YACxB,WAAW;YACX,WAAW;YACX,UAAU;YACV,UAAU;YACV,WAAW;YACX,WAAW;;;;;;GAMpB,CAAC,CACH,CAAC"}
@@ -1,10 +1,78 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { attr, FASTElement } from '@microsoft/fast-element';
3
+ import { toggleState } from '../utils/element-internals.js';
3
4
  /**
4
5
  * The base class used for constucting a fluent image custom element
5
6
  * @public
6
7
  */
7
8
  export class Image extends FASTElement {
9
+ constructor() {
10
+ super(...arguments);
11
+ /**
12
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
13
+ *
14
+ * @internal
15
+ */
16
+ this.elementInternals = this.attachInternals();
17
+ /**
18
+ * Image layout
19
+ *
20
+ * @public
21
+ * @remarks
22
+ * HTML attribute: block.
23
+ */
24
+ this.block = false;
25
+ }
26
+ /**
27
+ * Handles changes to block custom states
28
+ * @param prev - the previous state
29
+ * @param next - the next state
30
+ */
31
+ blockChanged(prev, next) {
32
+ toggleState(this.elementInternals, 'block', next);
33
+ }
34
+ /**
35
+ * Handles changes to bordered custom states
36
+ * @param prev - the previous state
37
+ * @param next - the next state
38
+ */
39
+ borderedChanged(prev, next) {
40
+ toggleState(this.elementInternals, 'bordered', next);
41
+ }
42
+ /**
43
+ * Handles changes to shadow custom states
44
+ * @param prev - the previous state
45
+ * @param next - the next state
46
+ */
47
+ shadowChanged(prev, next) {
48
+ toggleState(this.elementInternals, 'shadow', next);
49
+ }
50
+ /**
51
+ * Handles changes to fit attribute custom states
52
+ * @param prev - the previous state
53
+ * @param next - the next state
54
+ */
55
+ fitChanged(prev, next) {
56
+ if (prev) {
57
+ toggleState(this.elementInternals, `fit-${prev}`, false);
58
+ }
59
+ if (next) {
60
+ toggleState(this.elementInternals, `fit-${next}`, true);
61
+ }
62
+ }
63
+ /**
64
+ * Handles changes to shape attribute custom states
65
+ * @param prev - the previous state
66
+ * @param next - the next state
67
+ */
68
+ shapeChanged(prev, next) {
69
+ if (prev) {
70
+ toggleState(this.elementInternals, `${prev}`, false);
71
+ }
72
+ if (next) {
73
+ toggleState(this.elementInternals, `${next}`, true);
74
+ }
75
+ }
8
76
  }
9
77
  __decorate([
10
78
  attr({ mode: 'boolean' })
@@ -1 +1 @@
1
- {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/image/image.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;CA8CrC;AArCC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;oCACH;AASvB;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;uCACA;AAS1B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;qCACF;AASxB;IADC,IAAI;kCACiB;AAStB;IADC,IAAI;oCACqB"}
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../src/image/image.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;IAAtC;;QACE;;;;WAIG;QACI,qBAAgB,GAAqB,IAAI,CAAC,eAAe,EAAE,CAAC;QAEnE;;;;;;WAMG;QAEI,UAAK,GAAa,KAAK,CAAC;IAgGjC,CAAC;IA9FC;;;;OAIG;IACI,YAAY,CAAC,IAAa,EAAE,IAAa;QAC9C,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACpD,CAAC;IAYD;;;;OAIG;IACI,eAAe,CAAC,IAAa,EAAE,IAAa;QACjD,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAYD;;;;OAIG;IACI,aAAa,CAAC,IAAa,EAAE,IAAa;QAC/C,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAYD;;;;OAIG;IACI,UAAU,CAAC,IAA0B,EAAE,IAA0B;QACtE,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SAC1D;QACD,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;SACzD;IACH,CAAC;IAYD;;;;OAIG;IACI,YAAY,CAAC,IAA4B,EAAE,IAA4B;QAC5E,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SACtD;QACD,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;SACrD;IACH,CAAC;CACF;AAhGC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;oCACK;AAmB/B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;uCACA;AAmB1B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;qCACF;AAmBxB;IADC,IAAI;kCACiB;AAwBtB;IADC,IAAI;oCACqB"}
@@ -1,5 +1,6 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { borderRadiusCircular, borderRadiusMedium, colorNeutralStroke2, shadow4, strokeWidthThin, } from '../theme/design-tokens.js';
3
+ import { circularState, roundedState } from '../styles/states/index.js';
3
4
  /** Image styles
4
5
  *
5
6
  * @public
@@ -15,44 +16,44 @@ export const styles = css `
15
16
  min-width: 8px;
16
17
  display: inline-block;
17
18
  }
18
- :host([block]) ::slotted(img) {
19
+ :host(:is([state--block], :state(block))) ::slotted(img) {
19
20
  width: 100%;
20
21
  height: auto;
21
22
  }
22
- :host([bordered]) ::slotted(img) {
23
+ :host(:is([state--bordered], :state(bordered))) ::slotted(img) {
23
24
  border: ${strokeWidthThin} solid ${colorNeutralStroke2};
24
25
  }
25
- :host([fit='none']) ::slotted(img) {
26
+ :host(:is([state--fit-none], :state(fit-none))) ::slotted(img) {
26
27
  object-fit: none;
27
28
  object-position: top left;
28
29
  height: 100%;
29
30
  width: 100%;
30
31
  }
31
- :host([fit='center']) ::slotted(img) {
32
+ :host(:is([state--fit-center], :state(fit-center))) ::slotted(img) {
32
33
  object-fit: none;
33
34
  object-position: center;
34
35
  height: 100%;
35
36
  width: 100%;
36
37
  }
37
- :host([fit='contain']) ::slotted(img) {
38
+ :host(:is([state--fit-contain], :state(fit-contain))) ::slotted(img) {
38
39
  object-fit: contain;
39
40
  object-position: center;
40
41
  height: 100%;
41
42
  width: 100%;
42
43
  }
43
- :host([fit='cover']) ::slotted(img) {
44
+ :host(:is([state--fit-cover], :state(fit-cover))) ::slotted(img) {
44
45
  object-fit: cover;
45
46
  object-position: center;
46
47
  height: 100%;
47
48
  width: 100%;
48
49
  }
49
- :host([shadow]) ::slotted(img) {
50
+ :host(:is([state--shadowed], :state(shadowed))) ::slotted(img) {
50
51
  box-shadow: ${shadow4};
51
52
  }
52
- :host([shape='circular']) ::slotted(img) {
53
+ :host(${circularState}) ::slotted(img) {
53
54
  border-radius: ${borderRadiusCircular};
54
55
  }
55
- :host([shape='rounded']) ::slotted(img) {
56
+ :host(${roundedState}) ::slotted(img) {
56
57
  border-radius: ${borderRadiusMedium};
57
58
  }
58
59
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"image.styles.js","sourceRoot":"","sources":["../../../src/image/image.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,OAAO,EACP,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;cAgBX,eAAe,UAAU,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2BxC,OAAO;;;qBAGJ,oBAAoB;;;qBAGpB,kBAAkB;;CAEtC,CAAC"}
1
+ {"version":3,"file":"image.styles.js","sourceRoot":"","sources":["../../../src/image/image.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,OAAO,EACP,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;cAgBX,eAAe,UAAU,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA2BxC,OAAO;;UAEf,aAAa;qBACF,oBAAoB;;UAE/B,YAAY;qBACD,kBAAkB;;CAEtC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { attr, FASTElement } from '@microsoft/fast-element';
3
+ import { toggleState } from '../utils/element-internals.js';
3
4
  /**
4
5
  * The base class used for constructing a fluent-label custom element
5
6
  * @public
@@ -7,6 +8,12 @@ import { attr, FASTElement } from '@microsoft/fast-element';
7
8
  export class Label extends FASTElement {
8
9
  constructor() {
9
10
  super(...arguments);
11
+ /**
12
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
13
+ *
14
+ * @internal
15
+ */
16
+ this.elementInternals = this.attachInternals();
10
17
  /**
11
18
  * Specifies styles for label when associated input is disabled
12
19
  *
@@ -24,6 +31,40 @@ export class Label extends FASTElement {
24
31
  */
25
32
  this.required = false;
26
33
  }
34
+ /**
35
+ * Handles changes to size attribute custom states
36
+ * @param prev - the previous state
37
+ * @param next - the next state
38
+ */
39
+ sizeChanged(prev, next) {
40
+ if (prev) {
41
+ toggleState(this.elementInternals, `${prev}`, false);
42
+ }
43
+ if (next) {
44
+ toggleState(this.elementInternals, `${next}`, true);
45
+ }
46
+ }
47
+ /**
48
+ * Handles changes to weight attribute custom states
49
+ * @param prev - the previous state
50
+ * @param next - the next state
51
+ */
52
+ weightChanged(prev, next) {
53
+ if (prev) {
54
+ toggleState(this.elementInternals, `${prev}`, false);
55
+ }
56
+ if (next) {
57
+ toggleState(this.elementInternals, `${next}`, true);
58
+ }
59
+ }
60
+ /**
61
+ * Handles changes to disabled attribute custom states
62
+ * @param prev - the previous state
63
+ * @param next - the next state
64
+ */
65
+ disabledChanged(prev, next) {
66
+ toggleState(this.elementInternals, 'disabled', next);
67
+ }
27
68
  }
28
69
  __decorate([
29
70
  attr
@@ -1 +1 @@
1
- {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/label/label.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;IAAtC;;QAqBE;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;QAEjC;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;IACnC,CAAC;CAAA;AA/BC;IADC,IAAI;mCACmB;AAUxB;IADC,IAAI;qCACuB;AAU5B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;uCACO;AAUjC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;uCACO"}
1
+ {"version":3,"file":"label.js","sourceRoot":"","sources":["../../../src/label/label.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D;;;GAGG;AACH,MAAM,OAAO,KAAM,SAAQ,WAAW;IAAtC;;QACE;;;;WAIG;QACI,qBAAgB,GAAqB,IAAI,CAAC,eAAe,EAAE,CAAC;QAkDnE;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;QAWjC;;;;;;WAMG;QAEI,aAAQ,GAAY,KAAK,CAAC;IACnC,CAAC;IAlEC;;;;OAIG;IACI,WAAW,CAAC,IAA2B,EAAE,IAA2B;QACzE,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SACtD;QACD,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;SACrD;IACH,CAAC;IAYD;;;;OAIG;IACI,aAAa,CAAC,IAA6B,EAAE,IAA6B;QAC/E,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SACtD;QACD,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;SACrD;IACH,CAAC;IAYD;;;;OAIG;IACI,eAAe,CAAC,IAAyB,EAAE,IAAyB;QACzE,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;CAWF;AApEC;IADC,IAAI;mCACmB;AAwBxB;IADC,IAAI;qCACuB;AAwB5B;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;uCACO;AAmBjC;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;uCACO"}
@@ -1,6 +1,7 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display } from '../utils/index.js';
3
3
  import { colorNeutralForeground1, colorNeutralForegroundDisabled, colorPaletteRedForeground1, fontFamilyBase, fontSizeBase200, fontSizeBase300, fontSizeBase400, fontWeightRegular, fontWeightSemibold, lineHeightBase200, lineHeightBase300, lineHeightBase400, spacingHorizontalXS, } from '../theme/design-tokens.js';
4
+ import { largeState, smallState } from '../styles/states/index.js';
4
5
  /** Label styles
5
6
  * @public
6
7
  */
@@ -22,23 +23,23 @@ export const styles = css `
22
23
  margin-inline-start: ${spacingHorizontalXS};
23
24
  }
24
25
 
25
- :host([size='small']) {
26
+ :host(${smallState}) {
26
27
  font-size: ${fontSizeBase200};
27
28
  line-height: ${lineHeightBase200};
28
29
  }
29
30
 
30
- :host([size='large']) {
31
+ :host(${largeState}) {
31
32
  font-size: ${fontSizeBase400};
32
33
  line-height: ${lineHeightBase400};
33
34
  }
34
35
 
35
- :host([size='large']),
36
- :host([weight='semibold']) {
36
+ :host(${largeState}),
37
+ :host(:is([state--semibold], :state(semibold))) {
37
38
  font-weight: ${fontWeightSemibold};
38
39
  }
39
40
 
40
- :host([disabled]),
41
- :host([disabled]) .asterisk {
41
+ :host(:is([state--disabled], :state(disabled))),
42
+ :host(:is([state--disabled], :state(disabled))) .asterisk {
42
43
  color: ${colorNeutralForegroundDisabled};
43
44
  }
44
45
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"label.styles.js","sourceRoot":"","sources":["../../../src/label/label.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,EAC1B,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,aAAa,CAAC;;;aAGb,uBAAuB;;mBAEjB,cAAc;iBAChB,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;;aAKvB,0BAA0B;2BACZ,mBAAmB;;;;iBAI7B,eAAe;mBACb,iBAAiB;;;;iBAInB,eAAe;mBACb,iBAAiB;;;;;mBAKjB,kBAAkB;;;;;aAKxB,8BAA8B;;CAE1C,CAAC"}
1
+ {"version":3,"file":"label.styles.js","sourceRoot":"","sources":["../../../src/label/label.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,uBAAuB,EACvB,8BAA8B,EAC9B,0BAA0B,EAC1B,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,aAAa,CAAC;;;aAGb,uBAAuB;;mBAEjB,cAAc;iBAChB,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;;aAKvB,0BAA0B;2BACZ,mBAAmB;;;UAGpC,UAAU;iBACH,eAAe;mBACb,iBAAiB;;;UAG1B,UAAU;iBACH,eAAe;mBACb,iBAAiB;;;UAG1B,UAAU;;mBAED,kBAAkB;;;;;aAKxB,8BAA8B;;CAE1C,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { __decorate } from "tslib";
2
2
  import { attr } from '@microsoft/fast-element';
3
3
  import { BaseAnchor } from '../anchor-button/anchor-button.js';
4
+ import { toggleState } from '../utils/element-internals.js';
4
5
  /**
5
6
  * An Anchor Custom HTML Element.
6
7
  * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | <a> element }.
@@ -26,6 +27,27 @@ export class Link extends BaseAnchor {
26
27
  */
27
28
  this.inline = false;
28
29
  }
30
+ /**
31
+ * Handles changes to appearance attribute custom states
32
+ * @param prev - the previous state
33
+ * @param next - the next state
34
+ */
35
+ appearanceChanged(prev, next) {
36
+ if (prev) {
37
+ toggleState(this.elementInternals, `${prev}`, false);
38
+ }
39
+ if (next) {
40
+ toggleState(this.elementInternals, `${next}`, true);
41
+ }
42
+ }
43
+ /**
44
+ * Handles changes to inline attribute custom states
45
+ * @param prev - the previous state
46
+ * @param next - the next state
47
+ */
48
+ inlineChanged(prev, next) {
49
+ toggleState(this.elementInternals, 'inline', next);
50
+ }
29
51
  }
30
52
  __decorate([
31
53
  attr
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/link/link.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAG/D;;;;;;;;;GASG;AACH,MAAM,OAAO,IAAK,SAAQ,UAAU;IAApC;;QAWE;;;;;;;;;WASG;QAEI,WAAM,GAAY,KAAK,CAAC;IACjC,CAAC;CAAA;AAdC;IADC,IAAI;wCAC0C;AAa/C;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;oCACK"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../src/link/link.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG5D;;;;;;;;;GASG;AACH,MAAM,OAAO,IAAK,SAAQ,UAAU;IAApC;;QAyBE;;;;;;;;;WASG;QAEI,WAAM,GAAY,KAAK,CAAC;IAUjC,CAAC;IAnCC;;;;OAIG;IACI,iBAAiB,CAAC,IAAgC,EAAE,IAAgC;QACzF,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SACtD;QACD,IAAI,IAAI,EAAE;YACR,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC;SACrD;IACH,CAAC;IAeD;;;;OAIG;IACI,aAAa,CAAC,IAAa,EAAE,IAAa;QAC/C,WAAW,CAAC,IAAI,CAAC,gBAAgB,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;CACF;AArCC;IADC,IAAI;wCAC0C;AA2B/C;IADC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;oCACK"}
@@ -1,10 +1,12 @@
1
1
  import { css } from '@microsoft/fast-element';
2
2
  import { display, forcedColorsStylesheetBehavior } from '../utils/index.js';
3
3
  import { colorBrandForegroundLink, colorBrandForegroundLinkHover, colorBrandForegroundLinkPressed, colorNeutralForeground2Link, colorNeutralForeground2LinkHover, colorNeutralForeground2LinkPressed, fontFamilyBase, fontSizeBase300, fontWeightRegular, strokeWidthThin, } from '../theme/design-tokens.js';
4
+ import { subtleState } from '../styles/states/index.js';
4
5
  export const styles = css `
5
6
  ${display('inline')}
6
7
 
7
8
  :host {
9
+ position: relative;
8
10
  box-sizing: border-box;
9
11
  background-color: transparent;
10
12
  color: ${colorBrandForegroundLink};
@@ -36,21 +38,21 @@ export const styles = css `
36
38
  color: ${colorBrandForegroundLinkPressed};
37
39
  }
38
40
 
39
- :host([appearance='subtle']:hover) {
41
+ :host(${subtleState}:hover) {
40
42
  color: ${colorNeutralForeground2LinkHover};
41
43
  }
42
44
 
43
- :host([appearance='subtle']:active) {
45
+ :host(${subtleState}:active) {
44
46
  color: ${colorNeutralForeground2LinkPressed};
45
47
  }
46
48
  }
47
49
 
48
- :host([appearance='subtle']) {
50
+ :host(${subtleState}) {
49
51
  color: ${colorNeutralForeground2Link};
50
52
  }
51
53
 
52
54
  :host-context(:is(h1, h2, h3, h4, h5, h6, p, fluent-text)),
53
- :host([inline]) {
55
+ :host(:is([state--inline], :state(inline))) {
54
56
  font: inherit;
55
57
  text-decoration: underline;
56
58
  }
@@ -59,6 +61,11 @@ export const styles = css `
59
61
  color: inherit;
60
62
  text-decoration: none;
61
63
  }
64
+
65
+ ::slotted(a) {
66
+ position: absolute;
67
+ inset: 0;
68
+ }
62
69
  `.withBehaviors(forcedColorsStylesheetBehavior(css `
63
70
  :host {
64
71
  color: LinkText;
@@ -1 +1 @@
1
- {"version":3,"file":"link.styles.js","sourceRoot":"","sources":["../../../src/link/link.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,gCAAgC,EAChC,kCAAkC,EAClC,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,QAAQ,CAAC;;;;;aAKR,wBAAwB;;mBAElB,cAAc;iBAChB,eAAe;mBACb,iBAAiB;;;;;;iCAMH,eAAe;;;;;;;;;;;;eAYjC,6BAA6B;;;;eAI7B,+BAA+B;;;;eAI/B,gCAAgC;;;;eAIhC,kCAAkC;;;;;aAKpC,2BAA2B;;;;;;;;;;;;;CAavC,CAAC,aAAa,CACb,8BAA8B,CAAC,GAAG,CAAA;;;;GAIjC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"link.styles.js","sourceRoot":"","sources":["../../../src/link/link.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EACL,wBAAwB,EACxB,6BAA6B,EAC7B,+BAA+B,EAC/B,2BAA2B,EAC3B,gCAAgC,EAChC,kCAAkC,EAClC,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,QAAQ,CAAC;;;;;;aAMR,wBAAwB;;mBAElB,cAAc;iBAChB,eAAe;mBACb,iBAAiB;;;;;;iCAMH,eAAe;;;;;;;;;;;;eAYjC,6BAA6B;;;;eAI7B,+BAA+B;;;YAGlC,WAAW;eACR,gCAAgC;;;YAGnC,WAAW;eACR,kCAAkC;;;;UAIvC,WAAW;aACR,2BAA2B;;;;;;;;;;;;;;;;;;CAkBvC,CAAC,aAAa,CACb,8BAA8B,CAAC,GAAG,CAAA;;;;GAIjC,CAAC,CACH,CAAC"}
@@ -7,8 +7,8 @@ export function anchorTemplate() {
7
7
  return html `
8
8
  <template
9
9
  tabindex="0"
10
- @click="${x => x.clickHandler()}"
11
- @keypress="${(x, c) => x.keypressHandler(c.event)}"
10
+ @click="${(x, c) => x.clickHandler(c.event)}"
11
+ @keydown="${(x, c) => x.keydownHandler(c.event)}"
12
12
  >
13
13
  <slot></slot>
14
14
  </template>
@@ -1 +1 @@
1
- {"version":3,"file":"link.template.js","sourceRoot":"","sources":["../../../src/link/link.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAgB,MAAM,yBAAyB,CAAC;AAGlF;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAG;;;gBAGA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE;mBAClB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAsB,CAAC;;;;GAIrE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA8B,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"link.template.js","sourceRoot":"","sources":["../../../src/link/link.template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,IAAI,EAAgB,MAAM,yBAAyB,CAAC;AAGlF;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,CAAG;;;gBAGA,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAqB,CAAC;kBAC/C,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAsB,CAAC;;;;GAInE,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAA8B,cAAc,EAAE,CAAC"}