@fluentui/web-components 3.0.0-beta.36 → 3.0.0-beta.38

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 (68) hide show
  1. package/CHANGELOG.md +24 -2
  2. package/dist/dts/index-rollup.d.ts +2 -0
  3. package/dist/dts/index.d.ts +1 -0
  4. package/dist/dts/message-bar/define.d.ts +1 -0
  5. package/dist/dts/message-bar/index.d.ts +5 -0
  6. package/dist/dts/message-bar/message-bar.bench.d.ts +3 -0
  7. package/dist/dts/message-bar/message-bar.d.ts +66 -0
  8. package/dist/dts/message-bar/message-bar.definition.d.ts +9 -0
  9. package/dist/dts/message-bar/message-bar.options.d.ts +30 -0
  10. package/dist/dts/message-bar/message-bar.styles.d.ts +7 -0
  11. package/dist/dts/message-bar/message-bar.template.d.ts +14 -0
  12. package/dist/dts/rating-display/define.d.ts +1 -0
  13. package/dist/dts/rating-display/index.d.ts +5 -0
  14. package/dist/dts/rating-display/rating-display.d.ts +94 -0
  15. package/dist/dts/rating-display/rating-display.definition.d.ts +9 -0
  16. package/dist/dts/rating-display/rating-display.options.d.ts +29 -0
  17. package/dist/dts/rating-display/rating-display.styles.d.ts +6 -0
  18. package/dist/dts/rating-display/rating-display.template.d.ts +14 -0
  19. package/dist/dts/styles/states/index.d.ts +20 -0
  20. package/dist/dts/theme/set-theme.bench.d.ts +3 -0
  21. package/dist/esm/index-rollup.js +2 -0
  22. package/dist/esm/index-rollup.js.map +1 -1
  23. package/dist/esm/index.js +1 -0
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/menu/menu.js +5 -1
  26. package/dist/esm/menu/menu.js.map +1 -1
  27. package/dist/esm/message-bar/define.js +4 -0
  28. package/dist/esm/message-bar/define.js.map +1 -0
  29. package/dist/esm/message-bar/index.js +6 -0
  30. package/dist/esm/message-bar/index.js.map +1 -0
  31. package/dist/esm/message-bar/message-bar.bench.js +56 -0
  32. package/dist/esm/message-bar/message-bar.bench.js.map +1 -0
  33. package/dist/esm/message-bar/message-bar.definition.js +20 -0
  34. package/dist/esm/message-bar/message-bar.definition.js.map +1 -0
  35. package/dist/esm/message-bar/message-bar.js +79 -0
  36. package/dist/esm/message-bar/message-bar.js.map +1 -0
  37. package/dist/esm/message-bar/message-bar.options.js +27 -0
  38. package/dist/esm/message-bar/message-bar.options.js.map +1 -0
  39. package/dist/esm/message-bar/message-bar.styles.js +108 -0
  40. package/dist/esm/message-bar/message-bar.styles.js.map +1 -0
  41. package/dist/esm/message-bar/message-bar.template.js +25 -0
  42. package/dist/esm/message-bar/message-bar.template.js.map +1 -0
  43. package/dist/esm/rating-display/define.js +4 -0
  44. package/dist/esm/rating-display/define.js.map +1 -0
  45. package/dist/esm/rating-display/index.js +6 -0
  46. package/dist/esm/rating-display/index.js.map +1 -0
  47. package/dist/esm/rating-display/rating-display.definition.js +17 -0
  48. package/dist/esm/rating-display/rating-display.definition.js.map +1 -0
  49. package/dist/esm/rating-display/rating-display.js +97 -0
  50. package/dist/esm/rating-display/rating-display.js.map +1 -0
  51. package/dist/esm/rating-display/rating-display.options.js +19 -0
  52. package/dist/esm/rating-display/rating-display.options.js.map +1 -0
  53. package/dist/esm/rating-display/rating-display.styles.js +120 -0
  54. package/dist/esm/rating-display/rating-display.styles.js.map +1 -0
  55. package/dist/esm/rating-display/rating-display.template.js +32 -0
  56. package/dist/esm/rating-display/rating-display.template.js.map +1 -0
  57. package/dist/esm/styles/partials/badge.partials.js +4 -5
  58. package/dist/esm/styles/partials/badge.partials.js.map +1 -1
  59. package/dist/esm/styles/states/index.js +20 -0
  60. package/dist/esm/styles/states/index.js.map +1 -1
  61. package/dist/esm/theme/set-theme.bench.js +23 -0
  62. package/dist/esm/theme/set-theme.bench.js.map +1 -0
  63. package/dist/esm/theme/set-theme.js +35 -19
  64. package/dist/esm/theme/set-theme.js.map +1 -1
  65. package/dist/web-components.d.ts +148 -0
  66. package/dist/web-components.js +609 -411
  67. package/dist/web-components.min.js +249 -243
  68. package/package.json +16 -3
@@ -149,6 +149,16 @@ export const importantState = css.partial `:is([state--important], :state(import
149
149
  * @public
150
150
  */
151
151
  export const informativeState = css.partial `:is([state--informative], :state(informative))`;
152
+ /**
153
+ * Selector for the `marigold` state.
154
+ * @public
155
+ */
156
+ export const marigoldState = css.partial `:is([state--marigold], :state(marigold))`;
157
+ /**
158
+ * Selector for the `neutral` state.
159
+ * @public
160
+ */
161
+ export const neutralState = css.partial `:is([state--neutral], :state(neutral))`;
152
162
  /**
153
163
  * Selector for the `severe` state.
154
164
  * @public
@@ -174,4 +184,14 @@ export const verticalState = css.partial `:is([state--vertical], :state(vertical
174
184
  * @public
175
185
  */
176
186
  export const horizontalState = css.partial `:is([state--horizontal], :state(horizontal))`;
187
+ /**
188
+ * Selector for the `singleline` state.
189
+ * @public
190
+ */
191
+ export const singleLineState = css.partial `:is([state--singleline], :state(singleline))`;
192
+ /**
193
+ * Selector for the `multiline` state.
194
+ * @public
195
+ */
196
+ export const multiLineState = css.partial `:is([state--multiline], :state(multiline))`;
177
197
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/styles/states/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/styles/states/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { measurePerformance } from '@tensile-perf/web-components';
2
+ import { teamsDarkTheme, teamsLightTheme, webDarkTheme, webLightTheme } from '@fluentui/tokens';
3
+ import { setTheme } from './set-theme.js';
4
+ const tests = {
5
+ mount: ({ onComplete }) => {
6
+ const { startMeasure, endMeasure } = measurePerformance();
7
+ startMeasure();
8
+ // Newly set themes
9
+ setTheme(webLightTheme);
10
+ setTheme(webDarkTheme);
11
+ setTheme(teamsDarkTheme);
12
+ setTheme(teamsLightTheme);
13
+ // Cached themes
14
+ setTheme(webLightTheme);
15
+ setTheme(webDarkTheme);
16
+ setTheme(teamsDarkTheme);
17
+ setTheme(teamsLightTheme);
18
+ endMeasure();
19
+ onComplete();
20
+ },
21
+ };
22
+ export { tests };
23
+ //# sourceMappingURL=set-theme.bench.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-theme.bench.js","sourceRoot":"","sources":["../../../src/theme/set-theme.bench.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAA2B,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEhG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,KAAK,GAAuC;IAChD,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE;QACxB,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,GAAG,kBAAkB,EAAE,CAAC;QAE1D,YAAY,EAAE,CAAC;QAEf,mBAAmB;QACnB,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxB,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvB,QAAQ,CAAC,cAAc,CAAC,CAAC;QACzB,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE1B,gBAAgB;QAChB,QAAQ,CAAC,aAAa,CAAC,CAAC;QACxB,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvB,QAAQ,CAAC,cAAc,CAAC,CAAC;QACzB,QAAQ,CAAC,eAAe,CAAC,CAAC;QAE1B,UAAU,EAAE,CAAC;QAEb,UAAU,EAAE,CAAC;IACf,CAAC;CACF,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -1,32 +1,48 @@
1
1
  import * as tokens from './design-tokens.js';
2
2
  const tokenNames = Object.keys(tokens);
3
+ const SUPPORTS_REGISTER_PROPERTY = 'registerProperty' in CSS;
4
+ const SUPPORTS_ADOPTED_STYLE_SHEETS = 'adoptedStyleSheets' in document;
5
+ const themeStyleSheet = new CSSStyleSheet();
6
+ const themeStyleTextMap = new Map();
3
7
  /**
4
8
  * Sets the theme tokens on defaultNode.
5
9
  * @param theme - Flat object of theme token values.
6
10
  * @internal
7
11
  */
8
12
  export const setTheme = (theme) => {
9
- for (const t of tokenNames) {
10
- let registered = false;
11
- if ('registerProperty' in CSS) {
12
- try {
13
- CSS.registerProperty({
14
- name: `--${t}`,
15
- inherits: true,
16
- initialValue: theme[t],
17
- });
18
- registered = true;
19
- }
20
- catch {
21
- // Do nothing.
13
+ // Fallback to setting token custom properties on `<html>` element’s `style`
14
+ // attribute, only checking the support of `document.adoptedStyleSheets`
15
+ // here because it has broader support than `CSS.registerProperty()`, which
16
+ // is checked later.
17
+ if (!SUPPORTS_ADOPTED_STYLE_SHEETS) {
18
+ setThemeFor(document.documentElement, theme);
19
+ return;
20
+ }
21
+ if (!themeStyleTextMap.has(theme)) {
22
+ const tokenDeclarations = [];
23
+ for (const t of tokenNames) {
24
+ if (SUPPORTS_REGISTER_PROPERTY) {
25
+ try {
26
+ CSS.registerProperty({
27
+ name: `--${t}`,
28
+ inherits: true,
29
+ initialValue: theme[t],
30
+ });
31
+ }
32
+ catch { }
22
33
  }
34
+ tokenDeclarations.push(`--${t}: ${theme[t]};`);
23
35
  }
24
- if (!registered) {
25
- // TODO: Find a better way to update the values. Current approach adds
26
- // lots of code to the `style` attribute on `<body>`. Maybe look into
27
- // `document.adoptedStyleSheets`.
28
- setThemeFor(document.body, theme);
29
- }
36
+ themeStyleTextMap.set(theme, `html{${tokenDeclarations.join('')}}`);
37
+ }
38
+ if (!document.adoptedStyleSheets.includes(themeStyleSheet)) {
39
+ document.adoptedStyleSheets.push(themeStyleSheet);
40
+ }
41
+ else {
42
+ // The very first call to `setTheme()` within a document doesn’t need to
43
+ // call `replaceSync()`, because `CSS.registerProperty()` above is
44
+ // sufficient to set the tokens.
45
+ themeStyleSheet.replaceSync(themeStyleTextMap.get(theme));
30
46
  }
31
47
  };
32
48
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"set-theme.js","sourceRoot":"","sources":["../../../src/theme/set-theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAoB,CAAC;AAE1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;IACvC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;QAC1B,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,IAAI,kBAAkB,IAAI,GAAG,EAAE;YAC7B,IAAI;gBACF,GAAG,CAAC,gBAAgB,CAAC;oBACnB,IAAI,EAAE,KAAK,CAAC,EAAE;oBACd,QAAQ,EAAE,IAAI;oBACd,YAAY,EAAE,KAAK,CAAC,CAAC,CAAW;iBACjC,CAAC,CAAC;gBACH,UAAU,GAAG,IAAI,CAAC;aACnB;YAAC,MAAM;gBACN,cAAc;aACf;SACF;QAED,IAAI,CAAC,UAAU,EAAE;YACf,sEAAsE;YACtE,qEAAqE;YACrE,iCAAiC;YACjC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SACnC;KACF;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAoB,EAAE,KAAY,EAAE,EAAE;IAChE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;KACzD;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"set-theme.js","sourceRoot":"","sources":["../../../src/theme/set-theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAE7C,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAoB,CAAC;AAE1D,MAAM,0BAA0B,GAAG,kBAAkB,IAAI,GAAG,CAAC;AAC7D,MAAM,6BAA6B,GAAG,oBAAoB,IAAI,QAAQ,CAAC;AACvE,MAAM,eAAe,GAAG,IAAI,aAAa,EAAE,CAAC;AAC5C,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAiB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAY,EAAE,EAAE;IACvC,4EAA4E;IAC5E,yEAAyE;IACzE,2EAA2E;IAC3E,oBAAoB;IACpB,IAAI,CAAC,6BAA6B,EAAE;QAClC,WAAW,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QAC7C,OAAO;KACR;IAED,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QACjC,MAAM,iBAAiB,GAAa,EAAE,CAAC;QAEvC,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC1B,IAAI,0BAA0B,EAAE;gBAC9B,IAAI;oBACF,GAAG,CAAC,gBAAgB,CAAC;wBACnB,IAAI,EAAE,KAAK,CAAC,EAAE;wBACd,QAAQ,EAAE,IAAI;wBACd,YAAY,EAAE,KAAK,CAAC,CAAC,CAAW;qBACjC,CAAC,CAAC;iBACJ;gBAAC,MAAM,GAAE;aACX;YACD,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAW,GAAG,CAAC,CAAC;SAC1D;QAED,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;KACrE;IAED,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;QAC1D,QAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACnD;SAAM;QACL,wEAAwE;QACxE,kEAAkE;QAClE,gCAAgC;QAChC,eAAe,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,CAAC;KAC5D;AACH,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,OAAoB,EAAE,KAAY,EAAE,EAAE;IAChE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAW,CAAC,CAAC;KACzD;AACH,CAAC,CAAC"}
@@ -6607,6 +6607,154 @@ export declare const RadioStyles: ElementStyles;
6607
6607
 
6608
6608
  export declare const RadioTemplate: ElementViewTemplate<Radio>;
6609
6609
 
6610
+ /**
6611
+ * The base class used for constructing a fluent-rating-display custom element
6612
+ * @public
6613
+ */
6614
+ export declare class RatingDisplay extends FASTElement {
6615
+ /**
6616
+ * The internal {@link https://developer.mozilla.org/docs/Web/API/ElementInternals | `ElementInternals`} instance for the component.
6617
+ *
6618
+ * @internal
6619
+ */
6620
+ elementInternals: ElementInternals;
6621
+ /**
6622
+ * The color of the rating display icons.
6623
+ *
6624
+ * @public
6625
+ * @default `marigold`
6626
+ * @remarks
6627
+ * HTML Attribute: `color`
6628
+ */
6629
+ color?: RatingDisplayColor;
6630
+ /**
6631
+ * Handles changes to the color attribute.
6632
+ *
6633
+ * @param prev - The previous state
6634
+ * @param next - The next state
6635
+ */
6636
+ colorChanged(prev: RatingDisplayColor | undefined, next: RatingDisplayColor | undefined): void;
6637
+ /**
6638
+ * Renders a single filled icon with a label next to it.
6639
+ *
6640
+ * @public
6641
+ * @remarks
6642
+ * HTML Attribute: `compact`
6643
+ */
6644
+ compact: boolean;
6645
+ /**
6646
+ * The number of ratings.
6647
+ *
6648
+ * @public
6649
+ * @remarks
6650
+ * HTML Attribute: `count`
6651
+ */
6652
+ count?: number;
6653
+ /**
6654
+ * The maximum possible value of the rating.
6655
+ * This attribute determines the number of icons displayed.
6656
+ * Must be a whole number greater than 1.
6657
+ *
6658
+ * @public
6659
+ * @remarks
6660
+ * HTML Attribute: `max`
6661
+ */
6662
+ max?: number;
6663
+ /**
6664
+ * The size of the component.
6665
+ *
6666
+ * @public
6667
+ * @default 'medium'
6668
+ * @remarks
6669
+ * HTML Attribute: `size`
6670
+ */
6671
+ size?: RatingDisplaySize;
6672
+ /**
6673
+ * Handles changes to the size attribute.
6674
+ *
6675
+ * @param prev - The previous state
6676
+ * @param next - The next state
6677
+ */
6678
+ sizeChanged(prev: RatingDisplaySize | undefined, next: RatingDisplaySize | undefined): void;
6679
+ /**
6680
+ * The value of the rating.
6681
+ *
6682
+ * @public
6683
+ * @remarks
6684
+ * HTML Attribute: `value`
6685
+ */
6686
+ value?: number;
6687
+ private intlNumberFormatter;
6688
+ constructor();
6689
+ /**
6690
+ * Returns "count" as string, formatted according to the locale.
6691
+ *
6692
+ * @internal
6693
+ */
6694
+ get formattedCount(): string;
6695
+ /**
6696
+ * Generates the icon SVG elements based on the "max" attribute.
6697
+ *
6698
+ * @internal
6699
+ */
6700
+ generateIcons(): string;
6701
+ }
6702
+
6703
+ /**
6704
+ * The color of the Rating Display items can be `neutral`, `brand`, or `marigold`.
6705
+ * @public
6706
+ */
6707
+ export declare const RatingDisplayColor: {
6708
+ readonly neutral: "neutral";
6709
+ readonly brand: "brand";
6710
+ readonly marigold: "marigold";
6711
+ };
6712
+
6713
+ /**
6714
+ * The Rating Display items can be one of several colors.
6715
+ * @public
6716
+ */
6717
+ export declare type RatingDisplayColor = ValuesOf<typeof RatingDisplayColor>;
6718
+
6719
+ /**
6720
+ * The definition for the Fluent Rating Display component.
6721
+ *
6722
+ * @public
6723
+ * @remarks
6724
+ * HTML Element: `<fluent-rating-display>`
6725
+ */
6726
+ export declare const RatingDisplayDefinition: FASTElementDefinition<typeof RatingDisplay>;
6727
+
6728
+ /**
6729
+ * The size of a Rating Display can be `small`, `medium`, or `large`.
6730
+ * @public
6731
+ */
6732
+ export declare const RatingDisplaySize: {
6733
+ readonly small: "small";
6734
+ readonly medium: "medium";
6735
+ readonly large: "large";
6736
+ };
6737
+
6738
+ /**
6739
+ * A Rating Display can be one of several preset sizes.
6740
+ * @public
6741
+ */
6742
+ export declare type RatingDisplaySize = ValuesOf<typeof RatingDisplaySize>;
6743
+
6744
+ /**
6745
+ * The styles for the Rating Display component.
6746
+ *
6747
+ * @public
6748
+ */
6749
+ export declare const RatingDisplayStyles: ElementStyles;
6750
+
6751
+ /**
6752
+ * The template for the Rating Display component.
6753
+ *
6754
+ * @public
6755
+ */
6756
+ export declare const RatingDisplayTemplate: ElementViewTemplate<RatingDisplay>;
6757
+
6610
6758
  /**
6611
6759
  * @internal
6612
6760
  */