@fluentui/web-components 3.0.0-beta.10 → 3.0.0-beta.11

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 (73) hide show
  1. package/CHANGELOG.md +11 -2
  2. package/dist/dts/index.d.ts +3 -0
  3. package/dist/dts/utils/behaviors/match-media-stylesheet-behavior.d.ts +124 -0
  4. package/dist/dts/utils/display.d.ts +17 -0
  5. package/dist/dts/utils/index.d.ts +2 -0
  6. package/dist/esm/accordion/accordion.styles.js +1 -1
  7. package/dist/esm/accordion/accordion.styles.js.map +1 -1
  8. package/dist/esm/accordion-item/accordion-item.styles.js +1 -1
  9. package/dist/esm/accordion-item/accordion-item.styles.js.map +1 -1
  10. package/dist/esm/avatar/avatar.styles.js +1 -1
  11. package/dist/esm/avatar/avatar.styles.js.map +1 -1
  12. package/dist/esm/button/button.styles.js +1 -1
  13. package/dist/esm/button/button.styles.js.map +1 -1
  14. package/dist/esm/checkbox/checkbox.styles.js +1 -1
  15. package/dist/esm/checkbox/checkbox.styles.js.map +1 -1
  16. package/dist/esm/dialog/dialog.styles.js +1 -1
  17. package/dist/esm/dialog/dialog.styles.js.map +1 -1
  18. package/dist/esm/divider/divider.styles.js +1 -1
  19. package/dist/esm/divider/divider.styles.js.map +1 -1
  20. package/dist/esm/index.js +3 -0
  21. package/dist/esm/index.js.map +1 -1
  22. package/dist/esm/label/label.styles.js +1 -1
  23. package/dist/esm/label/label.styles.js.map +1 -1
  24. package/dist/esm/menu-item/menu-item.styles.js +1 -1
  25. package/dist/esm/menu-item/menu-item.styles.js.map +1 -1
  26. package/dist/esm/menu-list/menu-list.styles.js +1 -1
  27. package/dist/esm/menu-list/menu-list.styles.js.map +1 -1
  28. package/dist/esm/progress-bar/progress-bar.styles.js +1 -1
  29. package/dist/esm/progress-bar/progress-bar.styles.js.map +1 -1
  30. package/dist/esm/radio/radio.styles.js +1 -1
  31. package/dist/esm/radio/radio.styles.js.map +1 -1
  32. package/dist/esm/radio-group/radio-group.styles.js +1 -1
  33. package/dist/esm/radio-group/radio-group.styles.js.map +1 -1
  34. package/dist/esm/slider/slider.styles.js +1 -1
  35. package/dist/esm/slider/slider.styles.js.map +1 -1
  36. package/dist/esm/spinner/spinner.styles.js +1 -1
  37. package/dist/esm/spinner/spinner.styles.js.map +1 -1
  38. package/dist/esm/styles/partials/badge.partials.js +1 -1
  39. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  40. package/dist/esm/switch/switch.styles.js +1 -1
  41. package/dist/esm/switch/switch.styles.js.map +1 -1
  42. package/dist/esm/tab/tab.styles.js +1 -1
  43. package/dist/esm/tab/tab.styles.js.map +1 -1
  44. package/dist/esm/tab-panel/tab-panel.styles.js +1 -1
  45. package/dist/esm/tab-panel/tab-panel.styles.js.map +1 -1
  46. package/dist/esm/tabs/tabs.styles.js +1 -1
  47. package/dist/esm/tabs/tabs.styles.js.map +1 -1
  48. package/dist/esm/text/text.styles.js +1 -1
  49. package/dist/esm/text/text.styles.js.map +1 -1
  50. package/dist/esm/text-input/text-input.styles.js +1 -1
  51. package/dist/esm/text-input/text-input.styles.js.map +1 -1
  52. package/dist/esm/toggle-button/toggle-button.styles.js +1 -1
  53. package/dist/esm/toggle-button/toggle-button.styles.js.map +1 -1
  54. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js +142 -0
  55. package/dist/esm/utils/behaviors/match-media-stylesheet-behavior.js.map +1 -0
  56. package/dist/esm/utils/display.js +15 -0
  57. package/dist/esm/utils/display.js.map +1 -0
  58. package/dist/esm/utils/index.js +2 -0
  59. package/dist/esm/utils/index.js.map +1 -1
  60. package/dist/fluent-web-components.api.json +773 -0
  61. package/dist/storybook/{284.0946b1fb.iframe.bundle.js → 289.703b1698.iframe.bundle.js} +2 -2
  62. package/dist/storybook/{284.0946b1fb.iframe.bundle.js.LICENSE.txt → 289.703b1698.iframe.bundle.js.LICENSE.txt} +1 -1
  63. package/dist/storybook/iframe.html +1 -1
  64. package/dist/storybook/main.81e47c59.iframe.bundle.js +2 -0
  65. package/dist/storybook/project.json +1 -1
  66. package/dist/web-components.d.ts +161 -0
  67. package/dist/web-components.js +490 -361
  68. package/dist/web-components.min.js +137 -137
  69. package/docs/api-report.md +46 -0
  70. package/package.json +2 -2
  71. package/tensile.config.js +0 -2
  72. package/dist/storybook/main.b9de79ac.iframe.bundle.js +0 -2
  73. /package/dist/storybook/{main.b9de79ac.iframe.bundle.js.LICENSE.txt → main.81e47c59.iframe.bundle.js.LICENSE.txt} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { display } from '@microsoft/fast-foundation/utilities.js';
2
+ import { display } from '../utils/index.js';
3
3
  import { borderRadiusMedium, colorCompoundBrandStroke, colorCompoundBrandStrokePressed, colorNeutralBackground1, colorNeutralBackground3, colorNeutralBackgroundInverted, colorNeutralForeground1, colorNeutralForeground3, colorNeutralForeground4, colorNeutralForegroundDisabled, colorNeutralForegroundInverted, colorNeutralStroke1, colorNeutralStroke1Hover, colorNeutralStroke1Pressed, colorNeutralStrokeAccessible, colorNeutralStrokeAccessibleHover, colorNeutralStrokeAccessiblePressed, colorNeutralStrokeDisabled, colorTransparentBackground, colorTransparentStroke, colorTransparentStrokeInteractive, curveAccelerateMid, curveDecelerateMid, durationNormal, durationUltraFast, fontFamilyBase, fontSizeBase200, fontSizeBase300, fontSizeBase400, fontSizeBase500, fontSizeBase600, fontWeightRegular, lineHeightBase200, lineHeightBase300, lineHeightBase400, shadow2, spacingHorizontalM, spacingHorizontalMNudge, spacingHorizontalS, spacingHorizontalSNudge, spacingHorizontalXS, spacingHorizontalXXS, spacingVerticalXS, strokeWidthThin, } from '../theme/design-tokens.js';
4
4
  /** TextInput styles
5
5
  * @public
@@ -1 +1 @@
1
- {"version":3,"file":"text-input.styles.js","sourceRoot":"","sources":["../../../src/text-input/text-input.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,yCAAyC,CAAC;AAClE,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,iCAAiC,EACjC,mCAAmC,EACnC,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,iCAAiC,EACjC,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC;;;mBAGD,cAAc;iBAChB,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;;aAKvB,uBAAuB;sBACd,iBAAiB;;0BAEb,mBAAmB;;;;;;;;;;;;;iBAa5B,uBAAuB;cAC1B,eAAe,UAAU,mBAAmB;2BAC/B,4BAA4B;qBAClC,kBAAkB;WAC5B,oBAAoB;;;;;;;;;uBASR,kBAAkB;yBAChB,kBAAkB,IAAI,kBAAkB;+BAClC,wBAAwB;;;;2BAI5B,iBAAiB;wBACpB,kBAAkB;;;;;;aAM7B,uBAAuB;qBACf,kBAAkB;kBACrB,0BAA0B;mBACzB,cAAc;mBACd,iBAAiB;iBACnB,eAAe;;;;;;;;;;aAUnB,uBAAuB;;;;;;;aAOvB,uBAAuB;iBACnB,eAAe;;;qBAGX,oBAAoB;;;oBAGrB,oBAAoB;WAC7B,mBAAmB;;;oBAGV,wBAAwB;2BACjB,iCAAiC;;;oBAGxC,0BAA0B;;;;;;;;;2BASnB,cAAc;wBACjB,kBAAkB;;;2BAGf,+BAA+B;;;cAG5C,eAAe,UAAU,mBAAmB;;;aAG7C,uBAAuB;;;kBAGlB,0BAA0B;cAC9B,eAAe,UAAU,0BAA0B;;;;;aAKpD,8BAA8B;;;aAG9B,8BAA8B;wBACnB,8BAA8B;;;iBAGrC,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;WAIzB,oBAAoB;iBACd,uBAAuB;;;;iBAIvB,eAAe;;;iBAGf,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;WAIzB,kBAAkB;iBACZ,kBAAkB;;;;iBAIlB,eAAe;;;kBAGd,0BAA0B;;;qBAGvB,eAAe,UAAU,4BAA4B;;;2BAG/C,iCAAiC;;;2BAGjC,mCAAmC;;;;2BAInC,mCAAmC;;;2BAGnC,0BAA0B;;;;cAIvC,eAAe,UAAU,sBAAsB;kBAC3C,OAAO;;;kBAGP,uBAAuB;;;kBAGvB,uBAAuB;;;;oBAIrB,iCAAiC;;;;oBAIjC,iCAAiC;kBACnC,uBAAuB;;CAExC,CAAC"}
1
+ {"version":3,"file":"text-input.styles.js","sourceRoot":"","sources":["../../../src/text-input/text-input.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,+BAA+B,EAC/B,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,8BAA8B,EAC9B,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,EAC5B,iCAAiC,EACjC,mCAAmC,EACnC,0BAA0B,EAC1B,0BAA0B,EAC1B,sBAAsB,EACtB,iCAAiC,EACjC,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,kBAAkB,EAClB,uBAAuB,EACvB,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,OAAO,CAAC,OAAO,CAAC;;;mBAGD,cAAc;iBAChB,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;;aAKvB,uBAAuB;sBACd,iBAAiB;;0BAEb,mBAAmB;;;;;;;;;;;;;iBAa5B,uBAAuB;cAC1B,eAAe,UAAU,mBAAmB;2BAC/B,4BAA4B;qBAClC,kBAAkB;WAC5B,oBAAoB;;;;;;;;;uBASR,kBAAkB;yBAChB,kBAAkB,IAAI,kBAAkB;+BAClC,wBAAwB;;;;2BAI5B,iBAAiB;wBACpB,kBAAkB;;;;;;aAM7B,uBAAuB;qBACf,kBAAkB;kBACrB,0BAA0B;mBACzB,cAAc;mBACd,iBAAiB;iBACnB,eAAe;;;;;;;;;;aAUnB,uBAAuB;;;;;;;aAOvB,uBAAuB;iBACnB,eAAe;;;qBAGX,oBAAoB;;;oBAGrB,oBAAoB;WAC7B,mBAAmB;;;oBAGV,wBAAwB;2BACjB,iCAAiC;;;oBAGxC,0BAA0B;;;;;;;;;2BASnB,cAAc;wBACjB,kBAAkB;;;2BAGf,+BAA+B;;;cAG5C,eAAe,UAAU,mBAAmB;;;aAG7C,uBAAuB;;;kBAGlB,0BAA0B;cAC9B,eAAe,UAAU,0BAA0B;;;;;aAKpD,8BAA8B;;;aAG9B,8BAA8B;wBACnB,8BAA8B;;;iBAGrC,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;WAIzB,oBAAoB;iBACd,uBAAuB;;;;iBAIvB,eAAe;;;iBAGf,eAAe;mBACb,iBAAiB;mBACjB,iBAAiB;;;;WAIzB,kBAAkB;iBACZ,kBAAkB;;;;iBAIlB,eAAe;;;kBAGd,0BAA0B;;;qBAGvB,eAAe,UAAU,4BAA4B;;;2BAG/C,iCAAiC;;;2BAGjC,mCAAmC;;;;2BAInC,mCAAmC;;;2BAGnC,0BAA0B;;;;cAIvC,eAAe,UAAU,sBAAsB;kBAC3C,OAAO;;;kBAGP,uBAAuB;;;kBAGvB,uBAAuB;;;;oBAIrB,iCAAiC;;;;oBAIjC,iCAAiC;kBACnC,uBAAuB;;CAExC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { css } from '@microsoft/fast-element';
2
- import { forcedColorsStylesheetBehavior } from '@microsoft/fast-foundation/utilities.js';
2
+ import { forcedColorsStylesheetBehavior } from '../utils/index.js';
3
3
  import { styles as ButtonStyles } from '../button/button.styles.js';
4
4
  import { colorBrandBackgroundHover, colorBrandBackgroundPressed, colorBrandBackgroundSelected, colorNeutralBackground1Hover, colorNeutralBackground1Pressed, colorNeutralBackground1Selected, colorNeutralForeground1, colorNeutralForeground2BrandHover, colorNeutralForeground2BrandPressed, colorNeutralForeground2BrandSelected, colorNeutralForeground2Hover, colorNeutralForeground2Pressed, colorNeutralForeground2Selected, colorNeutralForegroundOnBrand, colorNeutralStroke1, colorNeutralStroke1Hover, colorNeutralStroke1Pressed, colorSubtleBackgroundHover, colorSubtleBackgroundPressed, colorSubtleBackgroundSelected, colorTransparentBackgroundHover, colorTransparentBackgroundPressed, colorTransparentBackgroundSelected, strokeWidthThin, } from '../theme/design-tokens.js';
5
5
  // Need to support icon hover styles
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-button.styles.js","sourceRoot":"","sources":["../../../src/toggle-button/toggle-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,uBAAuB,EACvB,iCAAiC,EACjC,mCAAmC,EACnC,oCAAoC,EACpC,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,kCAAkC,EAClC,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC,oCAAoC;AACpC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,YAAY;;;oBAGI,mBAAmB;wBACf,+BAA+B;aAC1C,uBAAuB;oBAChB,eAAe;;;;oBAIf,wBAAwB;wBACpB,4BAA4B;;;;oBAIhC,0BAA0B;wBACtB,8BAA8B;;;;;wBAK9B,4BAA4B;aACvC,6BAA6B;;;;wBAIlB,yBAAyB;;;;wBAIzB,2BAA2B;;;;;wBAK3B,6BAA6B;aACxC,+BAA+B;;;;wBAIpB,0BAA0B;aACrC,4BAA4B;;;;wBAIjB,4BAA4B;aACvC,8BAA8B;;;;;wBAKnB,kCAAkC;;;;;wBAKlC,+BAA+B;;;;;wBAK/B,iCAAiC;;;;;aAK5C,oCAAoC;;;;aAIpC,iCAAiC;;;;aAIjC,mCAAmC;;CAE/C,CAAC,aAAa,CACb,8BAA8B,CAAC,GAAG,CAAA;;;;;;;;;;GAUjC,CAAC,CACH,CAAC"}
1
+ {"version":3,"file":"toggle-button.styles.js","sourceRoot":"","sources":["../../../src/toggle-button/toggle-button.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAC9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EACL,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,uBAAuB,EACvB,iCAAiC,EACjC,mCAAmC,EACnC,oCAAoC,EACpC,4BAA4B,EAC5B,8BAA8B,EAC9B,+BAA+B,EAC/B,6BAA6B,EAC7B,mBAAmB,EACnB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAC1B,4BAA4B,EAC5B,6BAA6B,EAC7B,+BAA+B,EAC/B,iCAAiC,EACjC,kCAAkC,EAClC,eAAe,GAChB,MAAM,2BAA2B,CAAC;AAEnC,oCAAoC;AACpC,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;IACrB,YAAY;;;oBAGI,mBAAmB;wBACf,+BAA+B;aAC1C,uBAAuB;oBAChB,eAAe;;;;oBAIf,wBAAwB;wBACpB,4BAA4B;;;;oBAIhC,0BAA0B;wBACtB,8BAA8B;;;;;wBAK9B,4BAA4B;aACvC,6BAA6B;;;;wBAIlB,yBAAyB;;;;wBAIzB,2BAA2B;;;;;wBAK3B,6BAA6B;aACxC,+BAA+B;;;;wBAIpB,0BAA0B;aACrC,4BAA4B;;;;wBAIjB,4BAA4B;aACvC,8BAA8B;;;;;wBAKnB,kCAAkC;;;;;wBAKlC,+BAA+B;;;;;wBAK/B,iCAAiC;;;;;aAK5C,oCAAoC;;;;aAIpC,iCAAiC;;;;aAIjC,mCAAmC;;CAE/C,CAAC,aAAa,CACb,8BAA8B,CAAC,GAAG,CAAA;;;;;;;;;;GAUjC,CAAC,CACH,CAAC"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * An abstract behavior to react to media queries. Implementations should implement
3
+ * the `constructListener` method to perform some action based on media query changes.
4
+ *
5
+ * @public
6
+ */
7
+ export class MatchMediaBehavior {
8
+ /**
9
+ *
10
+ * @param query - The media query to operate from.
11
+ */
12
+ constructor(query) {
13
+ /**
14
+ * The behavior needs to operate on element instances but elements might share a behavior instance.
15
+ * To ensure proper attachment / detachment per instance, we construct a listener for
16
+ * each bind invocation and cache the listeners by element reference.
17
+ */
18
+ this.listenerCache = new WeakMap();
19
+ this.query = query;
20
+ }
21
+ /**
22
+ * Binds the behavior to the element.
23
+ * @param controller - The host controller orchestrating this behavior.
24
+ */
25
+ connectedCallback(controller) {
26
+ const { query } = this;
27
+ let listener = this.listenerCache.get(controller);
28
+ if (!listener) {
29
+ listener = this.constructListener(controller);
30
+ this.listenerCache.set(controller, listener);
31
+ }
32
+ // Invoke immediately to add if the query currently matches
33
+ listener.bind(query)();
34
+ query.addEventListener('change', listener);
35
+ }
36
+ /**
37
+ * Unbinds the behavior from the element.
38
+ * @param controller - The host controller orchestrating this behavior.
39
+ */
40
+ disconnectedCallback(controller) {
41
+ const listener = this.listenerCache.get(controller);
42
+ if (listener) {
43
+ this.query.removeEventListener('change', listener);
44
+ }
45
+ }
46
+ }
47
+ /**
48
+ * A behavior to add or remove a stylesheet from an element based on a media query. The behavior ensures that
49
+ * styles are applied while the a query matches the environment and that styles are not applied if the query does
50
+ * not match the environment.
51
+ *
52
+ * @public
53
+ */
54
+ export class MatchMediaStyleSheetBehavior extends MatchMediaBehavior {
55
+ /**
56
+ * Constructs a {@link MatchMediaStyleSheetBehavior} instance.
57
+ * @param query - The media query to operate from.
58
+ * @param styles - The styles to coordinate with the query.
59
+ */
60
+ constructor(query, styles) {
61
+ super(query);
62
+ this.styles = styles;
63
+ }
64
+ /**
65
+ * Defines a function to construct {@link MatchMediaStyleSheetBehavior | MatchMediaStyleSheetBehaviors} for
66
+ * a provided query.
67
+ * @param query - The media query to operate from.
68
+ *
69
+ * @public
70
+ * @example
71
+ *
72
+ * ```ts
73
+ * import { css } from "@microsoft/fast-element";
74
+ * import { MatchMediaStyleSheetBehavior } from "@fluentui/web-components";
75
+ *
76
+ * const landscapeBehavior = MatchMediaStyleSheetBehavior.with(
77
+ * window.matchMedia("(orientation: landscape)")
78
+ * );
79
+ *
80
+ * const styles = css`
81
+ * :host {
82
+ * width: 200px;
83
+ * height: 400px;
84
+ * }
85
+ * `
86
+ * .withBehaviors(landscapeBehavior(css`
87
+ * :host {
88
+ * width: 400px;
89
+ * height: 200px;
90
+ * }
91
+ * `))
92
+ * ```
93
+ */
94
+ static with(query) {
95
+ return (styles) => {
96
+ return new MatchMediaStyleSheetBehavior(query, styles);
97
+ };
98
+ }
99
+ /**
100
+ * Constructs a match-media listener for a provided element.
101
+ * @param source - the element for which to attach or detach styles.
102
+ */
103
+ constructListener(controller) {
104
+ let attached = false;
105
+ const styles = this.styles;
106
+ return function listener() {
107
+ const { matches } = this;
108
+ if (matches && !attached) {
109
+ controller.addStyles(styles);
110
+ attached = matches;
111
+ }
112
+ else if (!matches && attached) {
113
+ controller.removeStyles(styles);
114
+ attached = matches;
115
+ }
116
+ };
117
+ }
118
+ /**
119
+ * Unbinds the behavior from the element.
120
+ * @param controller - The host controller orchestrating this behavior.
121
+ * @internal
122
+ */
123
+ removedCallback(controller) {
124
+ controller.removeStyles(this.styles);
125
+ }
126
+ }
127
+ /**
128
+ * This can be used to construct a behavior to apply a forced-colors only stylesheet.
129
+ * @public
130
+ */
131
+ export const forcedColorsStylesheetBehavior = MatchMediaStyleSheetBehavior.with(window.matchMedia('(forced-colors)'));
132
+ /**
133
+ * This can be used to construct a behavior to apply a prefers color scheme: dark only stylesheet.
134
+ * @public
135
+ */
136
+ export const darkModeStylesheetBehavior = MatchMediaStyleSheetBehavior.with(window.matchMedia('(prefers-color-scheme: dark)'));
137
+ /**
138
+ * This can be used to construct a behavior to apply a prefers color scheme: light only stylesheet.
139
+ * @public
140
+ */
141
+ export const lightModeStylesheetBehavior = MatchMediaStyleSheetBehavior.with(window.matchMedia('(prefers-color-scheme: light)'));
142
+ //# sourceMappingURL=match-media-stylesheet-behavior.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-media-stylesheet-behavior.js","sourceRoot":"","sources":["../../../../src/utils/behaviors/match-media-stylesheet-behavior.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,OAAgB,kBAAkB;IAatC;;;OAGG;IACH,YAAY,KAAqB;QAhBjC;;;;WAIG;QACK,kBAAa,GAAG,IAAI,OAAO,EAA0C,CAAC;QAY5E,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAQD;;;OAGG;IACH,iBAAiB,CAAC,UAA0B;QAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAElD,IAAI,CAAC,QAAQ,EAAE;YACb,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SAC9C;QAED,2DAA2D;QAC3D,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED;;;OAGG;IACH,oBAAoB,CAAC,UAA0B;QAC7C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;SACpD;IACH,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,4BAA6B,SAAQ,kBAAkB;IAWlE;;;;OAIG;IACH,YAAY,KAAqB,EAAE,MAAqB;QACtD,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACI,MAAM,CAAC,IAAI,CAAC,KAAqB;QACtC,OAAO,CAAC,MAAqB,EAAE,EAAE;YAC/B,OAAO,IAAI,4BAA4B,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzD,CAAC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACO,iBAAiB,CAAC,UAA0B;QACpD,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAE3B,OAAO,SAAS,QAAQ;YACtB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YAEzB,IAAI,OAAO,IAAI,CAAC,QAAQ,EAAE;gBACxB,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;gBAC7B,QAAQ,GAAG,OAAO,CAAC;aACpB;iBAAM,IAAI,CAAC,OAAO,IAAI,QAAQ,EAAE;gBAC/B,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAChC,QAAQ,GAAG,OAAO,CAAC;aACpB;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,eAAe,CAAC,UAA+B;QACpD,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,4BAA4B,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAEtH;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,4BAA4B,CAAC,IAAI,CACzE,MAAM,CAAC,UAAU,CAAC,8BAA8B,CAAC,CAClD,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,4BAA4B,CAAC,IAAI,CAC1E,MAAM,CAAC,UAAU,CAAC,+BAA+B,CAAC,CACnD,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * A CSS fragment to set `display: none;` when the host is hidden using the [hidden] attribute.
3
+ * @public
4
+ */
5
+ export const hidden = `:host([hidden]){display:none}`;
6
+ /**
7
+ * Applies a CSS display property.
8
+ * Also adds CSS rules to not display the element when the [hidden] attribute is applied to the element.
9
+ * @param display - The CSS display property value
10
+ * @public
11
+ */
12
+ export function display(displayValue) {
13
+ return `${hidden}:host{display:${displayValue}}`;
14
+ }
15
+ //# sourceMappingURL=display.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display.js","sourceRoot":"","sources":["../../../src/utils/display.ts"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,+BAA+B,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,YAAqC;IAC3D,OAAO,GAAG,MAAM,iBAAiB,YAAY,GAAG,CAAC;AACnD,CAAC"}
@@ -2,4 +2,6 @@ export * from './direction.js';
2
2
  export * from './typings.js';
3
3
  export * from './template-helpers.js';
4
4
  export * from './whitespace-filter.js';
5
+ export * from './display.js';
6
+ export * from './behaviors/match-media-stylesheet-behavior.js';
5
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,cAAc,CAAC;AAC7B,cAAc,gDAAgD,CAAC"}