Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions apps/vr-tests-web-components/.storybook/main.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ module.exports = /** @type {import('@storybook/react-webpack5').StorybookConfig}
config.resolve.plugins = config.resolve.plugins ?? [];

@github-actions github-actions Bot Jun 16, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🕵🏾‍♀️ visual changes to review in the Visual Change Report

vr-tests-react-components/CalendarCompat 4 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/CalendarCompat.multiDayView.default.chromium_1.png 489 Changed
vr-tests-react-components/CalendarCompat.multiDayView - Dark Mode.default.chromium.png 1093 Changed
vr-tests-react-components/CalendarCompat.multiDayView - High Contrast.default.chromium.png 1206 Changed
vr-tests-react-components/CalendarCompat.multiDayView - RTL.default.chromium.png 486 Changed
vr-tests-react-components/Menu Converged - submenuIndicator slotted content 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Menu Converged - submenuIndicator slotted content.default - RTL.submenus open.chromium.png 404 Changed
vr-tests-react-components/Positioning 2 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/Positioning.Positioning end.chromium.png 622 Changed
vr-tests-react-components/Positioning.Positioning end.updated 2 times.chromium.png 613 Changed
vr-tests-react-components/ProgressBar converged 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/ProgressBar converged.Indeterminate + thickness - Dark Mode.default.chromium.png 41 Changed
vr-tests-react-components/TagPicker 3 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests-react-components/TagPicker.disabled - High Contrast.disabled input hover.chromium.png 1319 Changed
vr-tests-react-components/TagPicker.disabled - Dark Mode.chromium.png 658 Changed
vr-tests-react-components/TagPicker.disabled - RTL.chromium.png 635 Changed
vr-tests/react-charting-LineChart 1 screenshots
Image Name Diff(in Pixels) Image Type
vr-tests/react-charting-LineChart.Events - Dark Mode.default.chromium.png 16 Changed

There were 4 duplicate changes discarded. Check the build logs for more information.

config.module = config.module ?? {};
config.plugins = config.plugins ?? [];
config.experiments = {
...(config.experiments ?? {}),
topLevelAwait: true,
};

config.resolve.extensionAlias = {
'.js': ['.js', '.ts', '.tsx'],
Expand All @@ -45,6 +49,7 @@ module.exports = /** @type {import('@storybook/react-webpack5').StorybookConfig}
config.module.rules.push(
{
test: /\.([cm]?ts|tsx)$/,
type: 'javascript/esm',
loader: 'ts-loader',
sideEffects: true,
options: {
Expand Down
2 changes: 1 addition & 1 deletion apps/vr-tests-web-components/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"html-react-parser": "4.0.0",
"@fluentui/tokens": ">=1.0.0-alpha",
"@fluentui/web-components": ">=3.0.0-alpha",
"@microsoft/fast-element": "^2.0.0",
"@microsoft/fast-element": "^3.0.0-rc.1",
"tslib": "^2.1.0"
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "Update FAST Element peer dependency to v3.",
"packageName": "@fluentui/chart-web-components",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "patch"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "Update FAST Element peer dependency to v3.",
"packageName": "@fluentui/web-components",
"email": "7559015+janechu@users.noreply.github.com",
"dependentChangeType": "patch"
}
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@
"@microsoft/api-extractor-model": "7.31.2",
"@microsoft/eslint-plugin-sdl": "1.0.1",
"@microsoft/fast-build": "0.7.0",
"@microsoft/fast-element": "2.10.4",
"@microsoft/fast-element": "3.0.0-rc.1",
"@microsoft/fast-html": "1.0.0-alpha.54",
"@microsoft/fast-test-harness": "0.3.1",
"@microsoft/focusgroup-polyfill": "1.5.0",
Expand Down
5 changes: 5 additions & 0 deletions packages/charts/chart-web-components/.storybook/main.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ module.exports =
previewUrl: process.env.DEPLOY_PATH,
},
viteFinal: async config => {
config.build = {
...(config.build || {}),
target: 'esnext',
};

// Configure path aliases
config.resolve = config.resolve || {};
config.resolve.alias = {
Expand Down
2 changes: 1 addition & 1 deletion packages/charts/chart-web-components/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
"tslib": "^2.1.0"
},
"peerDependencies": {
"@microsoft/fast-element": "^2.0.0"
"@microsoft/fast-element": "^3.0.0-rc.1"
},
"beachball": {
"disallowedChangeTypes": [
Expand Down
3 changes: 2 additions & 1 deletion packages/charts/chart-web-components/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,15 @@ export default [
{
file: 'dist/chart-web-components.min.js',
format: 'esm',
plugins: [minify()],
plugins: [minify({ target: 'es2022' })],
},
],
plugins: [
nodeResolve({ browser: true }),
commonJS(),
esbuild({
tsconfig: './tsconfig.lib.json',
target: 'es2022',
}),
transformTaggedTemplate({
tagsToProcess: ['css'],
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { template } from './donut-chart.template.js';
* @remarks
* HTML Element: `<fluent-donut-chart>`
*/
export const definition = DonutChart.compose({
export const definition = await DonutChart.compose({
name: `${FluentDesignSystem.prefix}-donut-chart`,
template,
styles,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { template } from './horizontal-bar-chart.template.js';
* @remarks
* HTML Element: `<fluent-textarea>`
*/
export const definition = HorizontalBarChart.compose({
export const definition = await HorizontalBarChart.compose({
name: `${FluentDesignSystem.prefix}-horizontal-bar-chart`,
template,
styles,
Expand Down
5 changes: 5 additions & 0 deletions packages/web-components/.storybook/main.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,11 @@ module.exports =
previewUrl: process.env.DEPLOY_PATH,
},
viteFinal: async config => {
config.build = {
...(config.build || {}),
target: 'esnext',
};

// Configure path aliases
config.resolve = config.resolve || {};
config.resolve.alias = {
Expand Down
8 changes: 4 additions & 4 deletions packages/web-components/docs/web-components.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -1200,7 +1200,7 @@ export const ButtonSize: {
export type ButtonSize = ValuesOf<typeof ButtonSize>;

// @public
export const ButtonTemplate: ElementViewTemplate<BaseButton>;
export const ButtonTemplate: ElementViewTemplate<Button>;

// @public
export const ButtonType: {
Expand Down Expand Up @@ -2850,7 +2850,7 @@ export type DropdownSize = ValuesOf<typeof DropdownSize>;
export const DropdownStyles: ElementStyles;

// @public
export const DropdownTemplate: ElementViewTemplate<BaseDropdown>;
export const DropdownTemplate: ElementViewTemplate<Dropdown>;

// @public
export const DropdownType: {
Expand Down Expand Up @@ -2892,7 +2892,7 @@ export type EndOptions<TSource = any, TParent = any> = {
};

// @public
export function endSlotTemplate<TSource extends StartEnd = StartEnd, TParent = any>(options: EndOptions<TSource, TParent>): CaptureType<TSource, TParent>;
export function endSlotTemplate<TSource extends StartEnd = StartEnd, TParent = any>(options: EndOptions<TSource, TParent>): CaptureType;

// @public
export class Field extends BaseField {
Expand Down Expand Up @@ -3907,7 +3907,7 @@ export type StartOptions<TSource = any, TParent = any> = {
};

// @public
export function startSlotTemplate<TSource extends Pick<StartEnd, 'start'> = StartEnd, TParent = any>(options: StartOptions<TSource, TParent>): CaptureType<TSource, TParent>;
export function startSlotTemplate<TSource extends Pick<StartEnd, 'start'> = StartEnd, TParent = any>(options: StartOptions<TSource, TParent>): CaptureType;

// @public
export const strokeWidthThick = "var(--strokeWidthThick)";
Expand Down
8 changes: 1 addition & 7 deletions packages/web-components/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -113,15 +113,9 @@
"tslib": "^2.1.0"
},
"peerDependencies": {
"@microsoft/fast-element": "^2.0.0",
"@microsoft/fast-html": "^1.0.0-alpha.53",
"@microsoft/fast-element": "^3.0.0-rc.1",
"@microsoft/focusgroup-polyfill": "^1.4.1"
},
"peerDependenciesMeta": {
"@microsoft/fast-html": {
"optional": true
}
},
"beachball": {
"disallowedChangeTypes": [
"major",
Expand Down
5 changes: 3 additions & 2 deletions packages/web-components/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ const plugins = [
commonJS(),
esbuild({
tsconfig: './tsconfig.lib.json',
target: 'es2022',
}),
fastTaggedTemplates(),
];
Expand All @@ -23,7 +24,7 @@ export default [
{
file: 'dist/web-components.min.js',
format: 'esm',
plugins: [minify()],
plugins: [minify({ target: 'es2022' })],
},
],
context: 'window',
Expand All @@ -39,7 +40,7 @@ export default [
{
file: 'dist/web-components-all.min.js',
format: 'esm',
plugins: [minify()],
plugins: [minify({ target: 'es2022' })],
},
],
context: 'window',
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { PartialFASTElementDefinition } from '@microsoft/fast-element';
import { declarativeTemplate } from '@microsoft/fast-element/declarative.js';
import { tagName } from './accordion-item.options.js';

/**
Expand All @@ -7,9 +8,9 @@ import { tagName } from './accordion-item.options.js';
* @public
* @remarks
* This is used in server-side rendering (SSR) scenarios where the template
* is provided as a deferred option to be hydrated later.
* is resolved from its SSR `<f-template>` by the declarative renderer.
*/
export const definition: PartialFASTElementDefinition = {
name: tagName,
templateOptions: 'defer-and-hydrate',
template: declarativeTemplate(),
};
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { template } from './accordion-item.template.js';
* @remarks
* HTML Element: \<fluent-accordion-item\>
*/
export const definition = AccordionItem.compose({
export const definition = await AccordionItem.compose({
name: tagName,
template,
styles,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { RenderableFASTElement } from '@microsoft/fast-html';
import { definition } from './accordion-item.definition-async.js';
import { AccordionItem } from './accordion-item.js';

RenderableFASTElement(AccordionItem).defineAsync(definition);
await AccordionItem.define(definition);
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { type PartialFASTElementDefinition } from '@microsoft/fast-element';
import { declarativeTemplate } from '@microsoft/fast-element/declarative.js';
import { tagName } from './accordion.options.js';

/**
Expand All @@ -7,9 +8,9 @@ import { tagName } from './accordion.options.js';
* @public
* @remarks
* This is used in server-side rendering (SSR) scenarios where the template
* is provided as a deferred option to be hydrated later.
* is resolved from its SSR `<f-template>` by the declarative renderer.
*/
export const declarativeDefinition: PartialFASTElementDefinition = {
name: tagName,
templateOptions: 'defer-and-hydrate',
template: declarativeTemplate(),
} as const;
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { template } from './accordion.template.js';
* @remarks
* HTML Element: \<fluent-accordion\>
*/
export const definition = Accordion.compose({
export const definition = await Accordion.compose({
name: tagName,
template,
styles,
Expand Down
3 changes: 1 addition & 2 deletions packages/web-components/src/accordion/define-async.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { RenderableFASTElement } from '@microsoft/fast-html';
import { declarativeDefinition } from './accordion.definition-async.js';
import { Accordion } from './accordion.js';

RenderableFASTElement(Accordion).defineAsync(declarativeDefinition);
await Accordion.define(declarativeDefinition);
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { PartialFASTElementDefinition } from '@microsoft/fast-element';
import { declarativeTemplate } from '@microsoft/fast-element/declarative.js';
import { tagName } from './anchor-button.options.js';

/**
Expand All @@ -7,9 +8,9 @@ import { tagName } from './anchor-button.options.js';
* @public
* @remarks
* This is used in server-side rendering (SSR) scenarios where the template
* is provided as a deferred option to be hydrated later.
* is resolved from its SSR `<f-template>` by the declarative renderer.
*/
export const definition: PartialFASTElementDefinition = {
name: tagName,
templateOptions: 'defer-and-hydrate',
template: declarativeTemplate(),
};
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { template } from './anchor-button.template.js';
* @remarks
* HTML Element: \<fluent-anchor-button\>
*/
export const definition = AnchorButton.compose({
export const definition = await AnchorButton.compose({
name: tagName,
template,
styles,
Expand Down
3 changes: 1 addition & 2 deletions packages/web-components/src/anchor-button/define-async.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { RenderableFASTElement } from '@microsoft/fast-html';
import { definition } from './anchor-button.definition-async.js';
import { AnchorButton } from './anchor-button.js';

RenderableFASTElement(AnchorButton).defineAsync(definition);
await AnchorButton.define(definition);
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { PartialFASTElementDefinition } from '@microsoft/fast-element';
import { declarativeTemplate } from '@microsoft/fast-element/declarative.js';
import { tagName } from './avatar.options.js';

/**
Expand All @@ -7,9 +8,9 @@ import { tagName } from './avatar.options.js';
* @public
* @remarks
* This is used in server-side rendering (SSR) scenarios where the template
* is provided as a deferred option to be hydrated later.
* is resolved from its SSR `<f-template>` by the declarative renderer.
*/
export const definition: PartialFASTElementDefinition = {
name: tagName,
templateOptions: 'defer-and-hydrate',
template: declarativeTemplate(),
};
2 changes: 1 addition & 1 deletion packages/web-components/src/avatar/avatar.definition.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { template } from './avatar.template.js';
* @remarks
* HTML Element: \<fluent-badge\>
*/
export const definition = Avatar.compose({
export const definition = await Avatar.compose({
name: tagName,
template,
styles,
Expand Down
3 changes: 1 addition & 2 deletions packages/web-components/src/avatar/define-async.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { RenderableFASTElement } from '@microsoft/fast-html';
import { definition } from './avatar.definition-async.js';
import { Avatar } from './avatar.js';

RenderableFASTElement(Avatar).defineAsync(definition);
await Avatar.define(definition);
5 changes: 3 additions & 2 deletions packages/web-components/src/badge/badge.definition-async.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { PartialFASTElementDefinition } from '@microsoft/fast-element';
import { declarativeTemplate } from '@microsoft/fast-element/declarative.js';
import { tagName } from './badge.options.js';

/**
Expand All @@ -7,9 +8,9 @@ import { tagName } from './badge.options.js';
* @public
* @remarks
* This is used in server-side rendering (SSR) scenarios where the template
* is provided as a deferred option to be hydrated later.
* is resolved from its SSR `<f-template>` by the declarative renderer.
*/
export const definition: PartialFASTElementDefinition = {
name: tagName,
templateOptions: 'defer-and-hydrate',
template: declarativeTemplate(),
};
2 changes: 1 addition & 1 deletion packages/web-components/src/badge/badge.definition.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import { template } from './badge.template.js';
* @remarks
* HTML Element: \<fluent-badge\>
*/
export const definition = Badge.compose({
export const definition = await Badge.compose({
name: tagName,
template,
styles,
Expand Down
3 changes: 1 addition & 2 deletions packages/web-components/src/badge/define-async.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { RenderableFASTElement } from '@microsoft/fast-html';
import { definition } from './badge.definition-async.js';
import { Badge } from './badge.js';

RenderableFASTElement(Badge).defineAsync(definition);
await Badge.define(definition);
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { PartialFASTElementDefinition } from '@microsoft/fast-element';
import { declarativeTemplate } from '@microsoft/fast-element/declarative.js';
import { tagName } from './button.options.js';

/**
Expand All @@ -7,9 +8,9 @@ import { tagName } from './button.options.js';
* @public
* @remarks
* This is used in server-side rendering (SSR) scenarios where the template
* is provided as a deferred option to be hydrated later.
* is resolved from its SSR `<f-template>` by the declarative renderer.
*/
export const definition: PartialFASTElementDefinition = {
name: tagName,
templateOptions: 'defer-and-hydrate',
template: declarativeTemplate(),
};
2 changes: 1 addition & 1 deletion packages/web-components/src/button/button.definition.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { template } from './button.template.js';
* @remarks
* HTML Element: `<fluent-button>`
*/
export const definition = Button.compose({
export const definition = await Button.compose({
name: tagName,
template,
styles,
Expand Down
Loading
Loading