diff --git a/change/@fluentui-web-components-712d19ac-cecc-4674-a955-28e95a3fb602.json b/change/@fluentui-web-components-712d19ac-cecc-4674-a955-28e95a3fb602.json new file mode 100644 index 00000000000000..7d8cbeacb82f6e --- /dev/null +++ b/change/@fluentui-web-components-712d19ac-cecc-4674-a955-28e95a3fb602.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Added custom elements manifest to project and included it in published package", + "packageName": "@fluentui/web-components", + "email": "burtonsmith@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/package.json b/package.json index becc9306d7bb1c..8af6ce6c3623cb 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "@babel/types": "7.24.6", "@cactuslab/usepubsub": "^1.0.2", "@ctrl/tinycolor": "3.3.4", + "@custom-elements-manifest/analyzer": "^0.10.4", "@cypress/react": "8.0.0", "@cypress/webpack-dev-server": "1.8.3", "@dnd-kit/core": "^6.0.8", @@ -177,6 +178,10 @@ "@types/yargs": "13.0.11", "@types/yargs-unparser": "2.0.1", "@typescript-eslint/rule-tester": "8.19.1", + "@wc-toolkit/cem-inheritance": "^1.0.4", + "@wc-toolkit/cem-validator": "^1.0.2", + "@wc-toolkit/module-path-resolver": "^1.0.0", + "@wc-toolkit/type-parser": "^1.0.3", "@wojtekmaj/enzyme-adapter-react-17": "0.6.7", "ajv": "8.4.0", "autoprefixer": "10.2.1", diff --git a/packages/web-components/.gitignore b/packages/web-components/.gitignore index 51511d1f8f36f4..d107975da949ad 100644 --- a/packages/web-components/.gitignore +++ b/packages/web-components/.gitignore @@ -1 +1,2 @@ test-results/ +custom-elements.json \ No newline at end of file diff --git a/packages/web-components/README.md b/packages/web-components/README.md index c006fd4fca9752..ba4e754262b519 100644 --- a/packages/web-components/README.md +++ b/packages/web-components/README.md @@ -76,6 +76,14 @@ import { ButtonDefinition, FluentDesignSystem } from '@fluentui/web-components'; ButtonDefinition.define(FluentDesignSystem.registry); ``` +## Developer Experience + +For convenience we have included a [CEM (custom elements manifest)](https://github.com/webcomponents/custom-elements-manifest). + +```js +import CEM from '@fluentui/custom-elements.json'; +``` + ## Development To start the component development environment, run `yarn start`. diff --git a/packages/web-components/custom-elements-manifest.config.js b/packages/web-components/custom-elements-manifest.config.js new file mode 100644 index 00000000000000..4278b63c35c233 --- /dev/null +++ b/packages/web-components/custom-elements-manifest.config.js @@ -0,0 +1,56 @@ +import { modulePathResolverPlugin } from '@wc-toolkit/module-path-resolver'; +import { cemValidatorPlugin } from '@wc-toolkit/cem-validator'; +import { getTsProgram, typeParserPlugin } from '@wc-toolkit/type-parser'; +import { cemInheritancePlugin } from '@wc-toolkit/cem-inheritance'; + +export default { + /** Globs to analyze */ + globs: ['src/**/*.ts'], + /** Globs to exclude */ + exclude: [ + '_docs/**/*', + 'src/**/*.bench.ts', + 'src/**/*.definition.ts', + 'src/**/*.options.ts', + 'src/**/*.spec.ts', + 'src/**/*.stories.ts', + 'src/**/*.styles.ts', + 'src/**/*.template.ts', + 'src/**/define.ts', + 'src/**/index.ts', + ], + /** Enable special handling for fast */ + fast: true, + /** Provide custom plugins */ + plugins: [ + modulePathResolverPlugin({ + modulePathTemplate: (modulePath, name, tagName) => `./dist/esm/${getBaseTag(tagName)}/${getBaseTag(tagName)}.js`, + definitionPathTemplate: (modulePath, name, tagName) => `./dist/esm/${getBaseTag(tagName)}/define.js`, + typeDefinitionPathTemplate: (modulePath, name, tagName) => `./dist/dts/${getBaseTag(tagName)}/index.d.ts`, + }), + typeParserPlugin(), + cemInheritancePlugin(), + cemValidatorPlugin({ + rules: { + packageJson: { + main: 'off', + module: 'off', + types: 'off', + }, + manifest: { + schemaVersion: 'off', + }, + }, + }), + ], + + /** Overrides default module creation: */ + overrideModuleCreation({ ts, globs }) { + const program = getTsProgram(ts, globs, 'tsconfig.json'); + return program.getSourceFiles().filter(sf => globs.find(glob => sf.fileName.includes(glob))); + }, +}; + +function getBaseTag(tagName) { + return tagName?.replace('fluent-', ''); +} diff --git a/packages/web-components/package.json b/packages/web-components/package.json index d5c8a2daa54f19..9a1df839e26ace 100644 --- a/packages/web-components/package.json +++ b/packages/web-components/package.json @@ -23,7 +23,8 @@ "dist/dts/", "dist/esm/", "dist/*.js", - "dist/*.d.ts" + "dist/*.d.ts", + "custom-elements.json" ], "exports": { ".": { @@ -76,6 +77,7 @@ "./dist/web-components.min.js" ], "scripts": { + "analyze": "cem analyze", "verify-packaging": "node ./scripts/verify-packaging", "type-check": "node ./scripts/type-check", "benchmark": "yarn clean && yarn compile:benchmark && yarn compile && node ./scripts/run-benchmarks", @@ -83,7 +85,7 @@ "compile:benchmark": "rollup -c rollup.bench.js", "clean": "node ./scripts/clean dist", "generate-api": "api-extractor run --local", - "build": "yarn compile && yarn rollup -c && yarn generate-api", + "build": "yarn compile && yarn rollup -c && yarn generate-api && yarn analyze", "lint": "ESLINT_USE_FLAT_CONFIG=false eslint . --ext .ts", "lint:fix": "eslint . --ext .ts --fix", "format": "prettier -w src/**/*.{ts,html} --ignore-path ../../.prettierignore", @@ -96,11 +98,16 @@ "e2e:local": "node ./scripts/e2e.js --ui" }, "devDependencies": { + "@custom-elements-manifest/analyzer": "^0.10.4", "@fluentui/scripts-api-extractor": "*", "@microsoft/fast-element": "2.0.0", "@tensile-perf/web-components": "~0.2.0", "@storybook/html": "7.6.20", "@storybook/html-webpack5": "7.6.20", + "@wc-toolkit/cem-validator": "^1.0.2", + "@wc-toolkit/cem-inheritance": "^1.0.4", + "@wc-toolkit/module-path-resolver": "^1.0.0", + "@wc-toolkit/type-parser": "^1.0.3", "chromedriver": "^125.0.0" }, "dependencies": { @@ -119,5 +126,6 @@ "patch" ], "tag": "beta" - } + }, + "customElements": "./custom-elements.json" } diff --git a/packages/web-components/src/accordion-item/accordion-item.ts b/packages/web-components/src/accordion-item/accordion-item.ts index cb7d58cf182c76..4bf841198f53d7 100644 --- a/packages/web-components/src/accordion-item/accordion-item.ts +++ b/packages/web-components/src/accordion-item/accordion-item.ts @@ -20,7 +20,8 @@ export type AccordionItemOptions = StartEndOptions & { * An Accordion Item Custom HTML Element. * Based on BaseAccordionItem and includes style and layout specific attributes * - * @public + * @tag fluent-accordion-item + * */ export class AccordionItem extends BaseAccordionItem { /** diff --git a/packages/web-components/src/accordion/accordion.ts b/packages/web-components/src/accordion/accordion.ts index c70e060df9f7d3..4ec58ccd4476aa 100644 --- a/packages/web-components/src/accordion/accordion.ts +++ b/packages/web-components/src/accordion/accordion.ts @@ -7,6 +7,8 @@ import { AccordionExpandMode } from './accordion.options.js'; * An Accordion Custom HTML Element * Implements {@link https://www.w3.org/TR/wai-aria-practices-1.1/#accordion | ARIA Accordion}. * + * @tag fluent-accordion + * * @slot - The default slot for the accordion items * @fires change - Fires a custom 'change' event when the active item changes * diff --git a/packages/web-components/src/anchor-button/anchor-button.ts b/packages/web-components/src/anchor-button/anchor-button.ts index fe321d0175b8b9..fd281523c6b35d 100644 --- a/packages/web-components/src/anchor-button/anchor-button.ts +++ b/packages/web-components/src/anchor-button/anchor-button.ts @@ -16,7 +16,8 @@ export type AnchorOptions = StartEndOptions; * An Anchor Custom HTML Element. * Based on BaseAnchor and includes style and layout specific attributes * - * @public + * @tag fluent-anchor-button + * */ export class AnchorButton extends BaseAnchor { /** diff --git a/packages/web-components/src/avatar/avatar.ts b/packages/web-components/src/avatar/avatar.ts index 7feae188acd171..3368a9c978da74 100644 --- a/packages/web-components/src/avatar/avatar.ts +++ b/packages/web-components/src/avatar/avatar.ts @@ -14,7 +14,8 @@ import { * An Avatar Custom HTML Element. * Based on BaseAvatar and includes style and layout specific attributes * - * @public + * @tag fluent-avatar + * */ export class Avatar extends BaseAvatar { /** diff --git a/packages/web-components/src/badge/badge.ts b/packages/web-components/src/badge/badge.ts index 07b4e39b1e8cbc..7aff7d86c2e9ca 100644 --- a/packages/web-components/src/badge/badge.ts +++ b/packages/web-components/src/badge/badge.ts @@ -6,7 +6,9 @@ import { BadgeAppearance, BadgeColor, BadgeShape, BadgeSize } from './badge.opti /** * The base class used for constructing a fluent-badge custom element - * @public + * + * @tag fluent-badge + * */ export class Badge extends FASTElement { /** diff --git a/packages/web-components/src/button/button.base.ts b/packages/web-components/src/button/button.base.ts index 539a0b63eda43a..a4b89a2e283ae3 100644 --- a/packages/web-components/src/button/button.base.ts +++ b/packages/web-components/src/button/button.base.ts @@ -9,9 +9,9 @@ import { ButtonFormTarget, ButtonType } from './button.options.js'; * @slot start - Content which can be provided before the button content * @slot end - Content which can be provided after the button content * @slot - The default slot for button content + * * @csspart content - The button content container * - * @public */ export class BaseButton extends FASTElement { /** diff --git a/packages/web-components/src/button/button.ts b/packages/web-components/src/button/button.ts index 8d17182d8fba2a..373cb803b32908 100644 --- a/packages/web-components/src/button/button.ts +++ b/packages/web-components/src/button/button.ts @@ -9,7 +9,8 @@ import { ButtonAppearance, ButtonShape, ButtonSize } from './button.options.js'; * A Button Custom HTML Element. * Based on BaseButton and includes style and layout specific attributes * - * @public + * @tag fluent-button + * */ export class Button extends BaseButton { /** diff --git a/packages/web-components/src/checkbox/checkbox.ts b/packages/web-components/src/checkbox/checkbox.ts index a8cfa0fb484cbe..086ab110e737b4 100644 --- a/packages/web-components/src/checkbox/checkbox.ts +++ b/packages/web-components/src/checkbox/checkbox.ts @@ -7,12 +7,14 @@ import { CheckboxShape, CheckboxSize } from './checkbox.options.js'; * A Checkbox Custom HTML Element. * Implements the {@link https://w3c.github.io/aria/#checkbox | ARIA checkbox }. * + * @tag fluent-checkbox + * * @slot checked-indicator - The checked indicator * @slot indeterminate-indicator - The indeterminate indicator + * * @fires change - Emits a custom change event when the checked state changes * @fires input - Emits a custom input event when the checked state changes * - * @public */ export class Checkbox extends BaseCheckbox { /** diff --git a/packages/web-components/src/compound-button/compound-button.ts b/packages/web-components/src/compound-button/compound-button.ts index 6efd06e50ef06f..4bd1609cb08880 100644 --- a/packages/web-components/src/compound-button/compound-button.ts +++ b/packages/web-components/src/compound-button/compound-button.ts @@ -2,6 +2,8 @@ import { Button } from '../button/button.js'; /** * The base class used for constructing a fluent-compound-button custom element - * @public + * + * @tag fluent-compound-button + * */ export class CompoundButton extends Button {} diff --git a/packages/web-components/src/counter-badge/counter-badge.ts b/packages/web-components/src/counter-badge/counter-badge.ts index f3a6ff4fada783..c82c51843faecd 100644 --- a/packages/web-components/src/counter-badge/counter-badge.ts +++ b/packages/web-components/src/counter-badge/counter-badge.ts @@ -11,7 +11,9 @@ import { /** * The base class used for constructing a fluent-badge custom element - * @public + * + * @tag fluent-counter-badge + * */ export class CounterBadge extends FASTElement { /** diff --git a/packages/web-components/src/dialog-body/dialog-body.ts b/packages/web-components/src/dialog-body/dialog-body.ts index eeb70e03c5eae8..4ad201ab5952f7 100644 --- a/packages/web-components/src/dialog-body/dialog-body.ts +++ b/packages/web-components/src/dialog-body/dialog-body.ts @@ -2,8 +2,8 @@ import { attr, FASTElement } from '@microsoft/fast-element'; /** * Dialog Body component that extends the FASTElement class. * - * @public - * @extends FASTElement + * @tag fluent-dialog-body + * */ export class DialogBody extends FASTElement { /** diff --git a/packages/web-components/src/dialog/dialog.ts b/packages/web-components/src/dialog/dialog.ts index 9dcdaa89a4de46..f9aa3a69469bf1 100644 --- a/packages/web-components/src/dialog/dialog.ts +++ b/packages/web-components/src/dialog/dialog.ts @@ -4,7 +4,8 @@ import { DialogType } from './dialog.options.js'; /** * A Dialog Custom HTML Element. * - * @public + * @tag fluent-dialog + * */ export class Dialog extends FASTElement { /** diff --git a/packages/web-components/src/divider/divider.ts b/packages/web-components/src/divider/divider.ts index 2b1c75eeba1d45..991ee636c1dfc5 100644 --- a/packages/web-components/src/divider/divider.ts +++ b/packages/web-components/src/divider/divider.ts @@ -7,7 +7,8 @@ import { BaseDivider } from './divider.base.js'; * A Divider Custom HTML Element. * Based on BaseDivider and includes style and layout specific attributes * - * @public + * @tag fluent-divider + * */ export class Divider extends BaseDivider { /** diff --git a/packages/web-components/src/drawer-body/drawer-body.ts b/packages/web-components/src/drawer-body/drawer-body.ts index 85bda8861d751d..2272417f26d8cf 100644 --- a/packages/web-components/src/drawer-body/drawer-body.ts +++ b/packages/web-components/src/drawer-body/drawer-body.ts @@ -2,7 +2,8 @@ import { FASTElement } from '@microsoft/fast-element'; /** * A DrawerBody component to layout drawer content - * @extends FASTElement + * + * @tag fluent-drawer-body * * @slot title - The title slot * @slot close - The close button slot @@ -15,6 +16,5 @@ import { FASTElement } from '@microsoft/fast-element'; * * @summary A component that provides a drawer body for displaying content in a side panel. * - * @tag fluent-drawer-body */ export class DrawerBody extends FASTElement {} diff --git a/packages/web-components/src/drawer/drawer.ts b/packages/web-components/src/drawer/drawer.ts index e6b0332ab9ce7a..9c27a6941fd7be 100644 --- a/packages/web-components/src/drawer/drawer.ts +++ b/packages/web-components/src/drawer/drawer.ts @@ -5,11 +5,7 @@ import { DrawerPosition, DrawerSize, DrawerType } from './drawer.options.js'; * A Drawer component that allows content to be displayed in a side panel. It can be rendered as modal or non-modal. * @extends FASTElement * - * @attr {DrawerType} type - Determines whether the drawer should be displayed as modal, non-modal, or alert. - * @attr {DrawerPosition} position - Sets the position of the drawer (start/end). - * @attr {DrawerSize} size - Sets the size of the drawer (small/medium/large). - * @attr {string} ariaDescribedby - The ID of the element that describes the drawer. - * @attr {string} ariaLabelledby - The ID of the element that labels the drawer. + * @tag fluent-drawer * * @csspart dialog - The dialog element of the drawer. * @@ -18,15 +14,7 @@ import { DrawerPosition, DrawerSize, DrawerType } from './drawer.options.js'; * @fires toggle - Event emitted after the dialog's open state changes. * @fires beforetoggle - Event emitted before the dialog's open state changes. * - * @method show - Method to show the drawer. - * @method hide - Method to hide the drawer. - * @method clickHandler - Handles click events on the drawer. - * @method emitToggle - Emits an event after the dialog's open state changes. - * @method emitBeforeToggle - Emits an event before the dialog's open state changes. - * * @summary A component that provides a drawer for displaying content in a side panel. - * - * @tag fluent-drawer */ export class Drawer extends FASTElement { /** diff --git a/packages/web-components/src/dropdown/dropdown.ts b/packages/web-components/src/dropdown/dropdown.ts index 7af894889fcbb4..2990dc7e39dff3 100644 --- a/packages/web-components/src/dropdown/dropdown.ts +++ b/packages/web-components/src/dropdown/dropdown.ts @@ -6,11 +6,12 @@ import { DropdownAppearance, DropdownSize } from './dropdown.options.js'; /** * The Fluent Dropdown Element. Implements {@link @microsoft/fast-foundation#BaseDropdown}. * + * @tag fluent-dropdown + * * @slot - The default slot. Accepts a {@link (Listbox:class)} element. * @slot indicator - The indicator slot. * @slot control - The control slot. This slot is automatically populated and should not be manually manipulated. * - * @public */ export class Dropdown extends BaseDropdown { /** diff --git a/packages/web-components/src/field/field.ts b/packages/web-components/src/field/field.ts index 24e9449e432fac..f3e967d794cca0 100644 --- a/packages/web-components/src/field/field.ts +++ b/packages/web-components/src/field/field.ts @@ -6,7 +6,8 @@ import { LabelPosition } from './field.options.js'; * A Field Custom HTML Element. * Based on BaseField and includes style and layout specific attributes * - * @public + * @tag fluent-field + * */ export class Field extends BaseField { /** diff --git a/packages/web-components/src/image/image.ts b/packages/web-components/src/image/image.ts index deebde2647559e..f7fe35c91509b6 100644 --- a/packages/web-components/src/image/image.ts +++ b/packages/web-components/src/image/image.ts @@ -4,7 +4,9 @@ import { ImageFit, ImageShape } from './image.options.js'; /** * The base class used for constucting a fluent image custom element - * @public + * + * @tag fluent-image + * */ export class Image extends FASTElement { /** diff --git a/packages/web-components/src/label/label.ts b/packages/web-components/src/label/label.ts index a1276ad783ab37..bd8a47e98510a4 100644 --- a/packages/web-components/src/label/label.ts +++ b/packages/web-components/src/label/label.ts @@ -4,7 +4,9 @@ import { LabelSize, LabelWeight } from './label.options.js'; /** * The base class used for constructing a fluent-label custom element - * @public + * + * @tag fluent-label + * */ export class Label extends FASTElement { /** diff --git a/packages/web-components/src/link/link.ts b/packages/web-components/src/link/link.ts index a298eb98d246f6..9e4d9db34ea6dd 100644 --- a/packages/web-components/src/link/link.ts +++ b/packages/web-components/src/link/link.ts @@ -7,11 +7,12 @@ import { LinkAppearance } from './link.options.js'; * An Anchor Custom HTML Element. * Based largely on the {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a | element }. * + * @tag fluent-link + * * @slot start - Content which can be provided before the link content * @slot end - Content which can be provided after the link content * @slot - The default slot for link content * - * @public */ export class Link extends BaseAnchor { /** diff --git a/packages/web-components/src/listbox/listbox.ts b/packages/web-components/src/listbox/listbox.ts index 24e5204bfe6f75..97bb379b71591b 100644 --- a/packages/web-components/src/listbox/listbox.ts +++ b/packages/web-components/src/listbox/listbox.ts @@ -9,6 +9,8 @@ import { uniqueId } from '../utils/unique-id.js'; * A Listbox Custom HTML Element. * Implements the {@link https://w3c.github.io/aria/#listbox | ARIA listbox } role. * + * @tag fluent-listbox + * * @slot - The default slot for the options. * @emits connected - Dispatched when the element is connected to the DOM. * @@ -16,7 +18,6 @@ import { uniqueId } from '../utils/unique-id.js'; * The listbox component represents a list of options that can be selected. * It is intended to be used in conjunction with the {@link BaseDropdown | Dropdown} component. * - * @public */ export class Listbox extends FASTElement { /** diff --git a/packages/web-components/src/menu-button/menu-button.ts b/packages/web-components/src/menu-button/menu-button.ts index d708740acfd03a..86e2e7f0e6e1c7 100644 --- a/packages/web-components/src/menu-button/menu-button.ts +++ b/packages/web-components/src/menu-button/menu-button.ts @@ -2,6 +2,8 @@ import { Button } from '../button/button.js'; /** * The base class used for constructing a fluent-menu-button custom element - * @public + * + * @tag fluent-menu-button + * */ export class MenuButton extends Button {} diff --git a/packages/web-components/src/menu-item/menu-item.ts b/packages/web-components/src/menu-item/menu-item.ts index 4d051a4f1d36f1..93cf6800aea26b 100644 --- a/packages/web-components/src/menu-item/menu-item.ts +++ b/packages/web-components/src/menu-item/menu-item.ts @@ -24,16 +24,19 @@ export type MenuItemOptions = StartEndOptions & { * A Switch Custom HTML Element. * Implements {@link https://www.w3.org/TR/wai-aria-1.1/#menuitem | ARIA menuitem }, {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemcheckbox | ARIA menuitemcheckbox}, or {@link https://www.w3.org/TR/wai-aria-1.1/#menuitemradio | ARIA menuitemradio }. * + * @tag fluent-menu-item + * * @slot indicator - The checkbox or radio indicator * @slot start - Content which can be provided before the menu item content * @slot - The default slot for menu item content * @slot end - Content which can be provided after the menu item content * @slot submenu-glyph - The submenu expand/collapse indicator * @slot submenu - Used to nest menu's within menu items + * * @csspart content - The element wrapping the menu item content + * * @fires change - Fires a custom 'change' event when a non-submenu item with a role of `menuitemcheckbox`, `menuitemradio`, or `menuitem` is invoked * - * @public */ export class MenuItem extends FASTElement { /** diff --git a/packages/web-components/src/menu-list/menu-list.ts b/packages/web-components/src/menu-list/menu-list.ts index b3e60b04f9fac1..af9a60cc8ad6e7 100644 --- a/packages/web-components/src/menu-list/menu-list.ts +++ b/packages/web-components/src/menu-list/menu-list.ts @@ -8,9 +8,10 @@ import { MenuItemRole } from '../menu-item/menu-item.options.js'; * A Menu Custom HTML Element. * Implements the {@link https://www.w3.org/TR/wai-aria-1.1/#menu | ARIA menu }. * + * @tag fluent-menu-list + * * @slot - The default slot for the menu items * - * @public */ export class MenuList extends FASTElement { /** diff --git a/packages/web-components/src/menu/menu.ts b/packages/web-components/src/menu/menu.ts index 5a3da14a5ca2da..7aa1f7961b29de 100644 --- a/packages/web-components/src/menu/menu.ts +++ b/packages/web-components/src/menu/menu.ts @@ -6,14 +6,8 @@ import { MenuItemRole } from '../menu-item/menu-item.options.js'; /** * A Menu component that provides a customizable menu element. - * @class Menu - * @extends FASTElement * - * @attr open-on-hover - Determines if the menu should open on hover. - * @attr open-on-context - Determines if the menu should open on right click. - * @attr close-on-scroll - Determines if the menu should close on scroll. - * @attr persist-on-item-click - Determines if the menu open state should persist on click of menu item. - * @attr split - Determines if the menu is in split state. + * @tag fluent-menu * * @cssproperty --menu-max-height - The max-height of the menu. * @@ -21,29 +15,8 @@ import { MenuItemRole } from '../menu-item/menu-item.options.js'; * @slot trigger - Slot for the trigger elements. * @slot - Default slot for the menu list. * - * @method connectedCallback - Called when the element is connected to the DOM. Sets up the component. - * @method disconnectedCallback - Called when the element is disconnected from the DOM. Removes event listeners. - * @method setComponent - Sets the component state. - * @method toggleMenu - Toggles the open state of the menu. - * @method closeMenu - Closes the menu. - * @method openMenu - Opens the menu. - * @method focusMenuList - Focuses on the menu list. - * @method focusTrigger - Focuses on the menu trigger. - * @method openOnHoverChanged - Called whenever the 'openOnHover' property changes. - * @method persistOnItemClickChanged - Called whenever the 'persistOnItemClick' property changes. - * @method openOnContextChanged - Called whenever the 'openOnContext' property changes. - * @method closeOnScrollChanged - Called whenever the 'closeOnScroll' property changes. - * @method addListeners - Adds event listeners. - * @method removeListeners - Removes event listeners. - * @method menuKeydownHandler - Handles keyboard interaction for the menu. - * @method triggerKeydownHandler - Handles keyboard interaction for the trigger. - * @method documentClickHandler - Handles document click events to close the menu when a click occurs outside of the menu or the trigger. - * * @summary The Menu component functions as a customizable menu element. * - * @tag fluent-menu - * - * @public */ export class Menu extends FASTElement { /** diff --git a/packages/web-components/src/message-bar/message-bar.ts b/packages/web-components/src/message-bar/message-bar.ts index a712661309fb84..b0d91f86ba9357 100644 --- a/packages/web-components/src/message-bar/message-bar.ts +++ b/packages/web-components/src/message-bar/message-bar.ts @@ -5,10 +5,11 @@ import { MessageBarIntent, MessageBarLayout, MessageBarShape } from './message-b /** * A Message Bar Custom HTML Element. * + * @tag fluent-message-bar + * * @slot actions - Content that can be provided for the actions * @slot dismiss - Content that can be provided for the dismiss button * @slot - The default slot for the content - * @public */ export class MessageBar extends FASTElement { /** diff --git a/packages/web-components/src/option/option.ts b/packages/web-components/src/option/option.ts index 3d2c46cc3fc7cc..b9292e9cedcaae 100644 --- a/packages/web-components/src/option/option.ts +++ b/packages/web-components/src/option/option.ts @@ -7,6 +7,8 @@ import { uniqueId } from '../utils/unique-id.js'; * A DropdownOption Custom HTML Element. * Implements the {@link https://w3c.github.io/aria/#option | ARIA option } role. * + * @tag fluent-option + * * @slot - The default slot for the option's content. * @slot checked-indicator - The checked indicator. * @slot description - Optional description content. @@ -19,7 +21,6 @@ import { uniqueId } from '../utils/unique-id.js'; * This class is named `DropdownOption` to avoid conflicts with the native `Option` global. Related constructs are also * titled with `DropdownOption` to maintain consistency. * - * @public */ export class DropdownOption extends FASTElement implements Start { /** diff --git a/packages/web-components/src/progress-bar/progress-bar.ts b/packages/web-components/src/progress-bar/progress-bar.ts index 3cfc390acae73a..3080cbc689c3bb 100644 --- a/packages/web-components/src/progress-bar/progress-bar.ts +++ b/packages/web-components/src/progress-bar/progress-bar.ts @@ -7,7 +7,8 @@ import { ProgressBarShape, ProgressBarThickness } from './progress-bar.options.j * A Progress HTML Element. * Based on BaseProgressBar and includes style and layout specific attributes * - * @public + * @tag fluent-progress-bar + * */ export class ProgressBar extends BaseProgressBar { /** diff --git a/packages/web-components/src/radio-group/radio-group.ts b/packages/web-components/src/radio-group/radio-group.ts index 15bea46a099e0e..f86bc30970ebbc 100644 --- a/packages/web-components/src/radio-group/radio-group.ts +++ b/packages/web-components/src/radio-group/radio-group.ts @@ -9,7 +9,7 @@ import { RadioGroupOrientation } from './radio-group.options.js'; * A Radio Group Custom HTML Element. * Implements the {@link https://w3c.github.io/aria/#radiogroup | ARIA `radiogroup` role}. * - * @public + * @tag fluent-radio-group * * @slot - The default slot for the radio group */ diff --git a/packages/web-components/src/radio/radio.ts b/packages/web-components/src/radio/radio.ts index 10c05bcb5b24f2..3b30dc0564d06d 100644 --- a/packages/web-components/src/radio/radio.ts +++ b/packages/web-components/src/radio/radio.ts @@ -4,11 +4,12 @@ import { BaseCheckbox } from '../checkbox/checkbox.base.js'; * A Radio Custom HTML Element. * Implements the {@link https://w3c.github.io/aria/#radio | ARIA `radio` role}. * + * @tag fluent-radio + * * @slot checked-indicator - The checked indicator slot * @fires change - Emits a custom change event when the checked state changes * @fires input - Emits a custom input event when the checked state changes * - * @public */ export class Radio extends BaseCheckbox { connectedCallback() { diff --git a/packages/web-components/src/rating-display/rating-display.ts b/packages/web-components/src/rating-display/rating-display.ts index 8d91b61bab2aed..9bfb2b692bdddd 100644 --- a/packages/web-components/src/rating-display/rating-display.ts +++ b/packages/web-components/src/rating-display/rating-display.ts @@ -7,7 +7,8 @@ import { RatingDisplayColor, RatingDisplaySize } from './rating-display.options. * A Rating Display Custom HTML Element. * Based on BaseRatingDisplay and includes style and layout specific attributes * - * @public + * @tag fluent-rating-display + * */ export class RatingDisplay extends BaseRatingDisplay { /** diff --git a/packages/web-components/src/slider/slider.ts b/packages/web-components/src/slider/slider.ts index b3267a81a04d7f..5cc3d611bef565 100644 --- a/packages/web-components/src/slider/slider.ts +++ b/packages/web-components/src/slider/slider.ts @@ -20,12 +20,15 @@ import { convertPixelToPercent } from './slider-utilities.js'; /** * The base class used for constructing a fluent-slider custom element * + * @tag fluent-slider + * * @slot thumb - The slot for a custom thumb element. + * * @csspart thumb-container - The container element of the thumb. * @csspart track-container - The container element of the track. + * * @fires change - Fires a custom 'change' event when the value changes. * - * @public */ export class Slider extends FASTElement implements SliderConfiguration { /** diff --git a/packages/web-components/src/spinner/spinner.ts b/packages/web-components/src/spinner/spinner.ts index 419d2be29fa6a1..08d18250ba8ff0 100644 --- a/packages/web-components/src/spinner/spinner.ts +++ b/packages/web-components/src/spinner/spinner.ts @@ -7,7 +7,7 @@ import { SpinnerAppearance, SpinnerSize } from './spinner.options.js'; * A Spinner Custom HTML Element. * Based on BaseSpinner and includes style and layout specific attributes * - * @public + * @tag fluent-spinner */ export class Spinner extends BaseSpinner { /** diff --git a/packages/web-components/src/switch/switch.ts b/packages/web-components/src/switch/switch.ts index f3f5f6b5f36885..00ced77e484d61 100644 --- a/packages/web-components/src/switch/switch.ts +++ b/packages/web-components/src/switch/switch.ts @@ -5,6 +5,13 @@ export type SwitchOptions = { switch?: StaticallyComposableHTML; }; +/** + * A Switch Custom HTML Element. + * Implements the {@link https://w3c.github.io/aria/#switch | ARIA switch }. + * + * @tag fluent-switch + * + */ export class Switch extends BaseCheckbox { constructor() { super(); diff --git a/packages/web-components/src/tab-panel/tab-panel.ts b/packages/web-components/src/tab-panel/tab-panel.ts index f79b8435e73b39..0d75e6b4ec539f 100644 --- a/packages/web-components/src/tab-panel/tab-panel.ts +++ b/packages/web-components/src/tab-panel/tab-panel.ts @@ -1,3 +1,8 @@ import { FASTElement } from '@microsoft/fast-element'; +/** + * The tab panel is a container for tab content + * + * @tag fluent-tab-panel + */ export class TabPanel extends FASTElement {} diff --git a/packages/web-components/src/tab/tab.ts b/packages/web-components/src/tab/tab.ts index 49479a810f8c0b..d8368fa8840c83 100644 --- a/packages/web-components/src/tab/tab.ts +++ b/packages/web-components/src/tab/tab.ts @@ -11,6 +11,8 @@ export type TabOptions = StartEndOptions; /** * Tab extends the FASTTab and is a child of the TabList + * + * @tag fluent-tab */ export class Tab extends FASTElement { /** diff --git a/packages/web-components/src/tablist/tablist.ts b/packages/web-components/src/tablist/tablist.ts index 27ec7600b948e8..1e6bd67bdaa9a2 100644 --- a/packages/web-components/src/tablist/tablist.ts +++ b/packages/web-components/src/tablist/tablist.ts @@ -8,7 +8,8 @@ type TabData = Omit; /** * A BaseTablist component with extra logic for handling the styled active tab indicator. - * @public + * + * @tag fluent-tablist */ export class Tablist extends BaseTablist { /** diff --git a/packages/web-components/src/tabs/tabs.ts b/packages/web-components/src/tabs/tabs.ts index 1d8cf24c9c612c..983c9b7df68593 100644 --- a/packages/web-components/src/tabs/tabs.ts +++ b/packages/web-components/src/tabs/tabs.ts @@ -7,6 +7,13 @@ import { TabsAppearance, TabsOrientation, type TabsSize } from './tabs.options.j type TabData = Omit; +/** + * A Tabs Custom HTML Element. + * Based on BaseTabs and includes style and layout specific attributes + * + * @tag fluent-tabs + * + */ export class Tabs extends BaseTabs { /** * activeTabData diff --git a/packages/web-components/src/text-input/text-input.ts b/packages/web-components/src/text-input/text-input.ts index 75be8e2c6f5b4a..3eeb05c8bd4b5b 100644 --- a/packages/web-components/src/text-input/text-input.ts +++ b/packages/web-components/src/text-input/text-input.ts @@ -9,7 +9,7 @@ import { TextInputAppearance, TextInputControlSize } from './text-input.options. * A Text Input Custom HTML Element. * Based on BaseTextInput and includes style and layout specific attributes * - * @public + * @tag fluent-text-input */ export class TextInput extends BaseTextInput { /** diff --git a/packages/web-components/src/text/text.ts b/packages/web-components/src/text/text.ts index 4204e8716d05e9..8030be117cf953 100644 --- a/packages/web-components/src/text/text.ts +++ b/packages/web-components/src/text/text.ts @@ -4,7 +4,8 @@ import { TextAlign, TextFont, TextSize, TextWeight } from './text.options.js'; /** * The base class used for constructing a fluent-text custom element - * @public + * + * @tag fluent-text */ export class Text extends FASTElement { /** diff --git a/packages/web-components/src/textarea/textarea.ts b/packages/web-components/src/textarea/textarea.ts index 36dc68e5bda555..1da86388d7d85e 100644 --- a/packages/web-components/src/textarea/textarea.ts +++ b/packages/web-components/src/textarea/textarea.ts @@ -3,6 +3,13 @@ import { hasMatchingState, swapStates, toggleState } from '../utils/element-inte import { BaseTextArea } from './textarea.base.js'; import { TextAreaAppearance, TextAreaAppearancesForDisplayShadow, TextAreaSize } from './textarea.options.js'; +/** + * A TextArea Custom HTML Element. + * Based on BaseTextArea and includes style and layout specific attributes + * + * @tag fluent-text-area + * + */ export class TextArea extends BaseTextArea { protected labelSlottedNodesChanged() { super.labelSlottedNodesChanged(); diff --git a/packages/web-components/src/toggle-button/toggle-button.ts b/packages/web-components/src/toggle-button/toggle-button.ts index 9253efd49b7ce6..e0e9fa929c6ea1 100644 --- a/packages/web-components/src/toggle-button/toggle-button.ts +++ b/packages/web-components/src/toggle-button/toggle-button.ts @@ -5,7 +5,7 @@ import { toggleState } from '../utils/element-internals.js'; /** * The base class used for constructing a `` custom element. * - * @public + * @tag fluent-toggle-button */ export class ToggleButton extends Button { /** diff --git a/packages/web-components/src/tooltip/tooltip.ts b/packages/web-components/src/tooltip/tooltip.ts index ee0ecb2421bbfa..ed502ad244be62 100644 --- a/packages/web-components/src/tooltip/tooltip.ts +++ b/packages/web-components/src/tooltip/tooltip.ts @@ -6,7 +6,8 @@ import type { TooltipPositioningOption } from './tooltip.options.js'; /** * A Tooltip Custom HTML Element. * Based on ARIA APG Tooltip Pattern {@link https://www.w3.org/WAI/ARIA/apg/patterns/tooltip/ } - * @public + * + * @tag fluent-tooltip */ export class Tooltip extends FASTElement { /** diff --git a/packages/web-components/src/tree-item/tree-item.ts b/packages/web-components/src/tree-item/tree-item.ts index 19cd539405669a..5162263f3ed7db 100644 --- a/packages/web-components/src/tree-item/tree-item.ts +++ b/packages/web-components/src/tree-item/tree-item.ts @@ -2,6 +2,11 @@ import { attr } from '@microsoft/fast-element'; import { TreeItemAppearance, TreeItemSize } from './tree-item.options.js'; import { BaseTreeItem } from './tree-item.base'; +/** + * A Tree Item is a custom HTML Element used in the tree component that represents an item in a tree structure + * + * @tag fluent-tree-item + */ export class TreeItem extends BaseTreeItem { /** * The size of the tree item element diff --git a/packages/web-components/src/tree/tree.ts b/packages/web-components/src/tree/tree.ts index da5594467c9866..fa5efc17fef12f 100644 --- a/packages/web-components/src/tree/tree.ts +++ b/packages/web-components/src/tree/tree.ts @@ -3,6 +3,11 @@ import { TreeItemAppearance, TreeItemSize } from '../tree-item/tree-item.options import { TreeItem } from '../tree-item/tree-item'; import { BaseTree } from './tree.base'; +/** + * A Tree element that provides a way to represent a hierarchical structure + * + * @tag fluent-tree + */ export class Tree extends BaseTree { /** * The size of the tree item element diff --git a/packages/web-components/tsdoc.json b/packages/web-components/tsdoc.json index 0c30fee865df6f..7ccac19808ecbe 100644 --- a/packages/web-components/tsdoc.json +++ b/packages/web-components/tsdoc.json @@ -31,6 +31,11 @@ "tagName": "@fires", "syntaxKind": "block", "allowMultiple": true + }, + { + "tagName": "@tag", + "syntaxKind": "block", + "allowMultiple": false } ], "supportForTags": { @@ -39,6 +44,7 @@ "@cssprop": true, "@cssproperty": true, "@event": true, - "@fires": true + "@fires": true, + "@tag": true } } diff --git a/yarn.lock b/yarn.lock index a15008bc20c734..5654870e067869 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1488,6 +1488,29 @@ resolved "https://registry.yarnpkg.com/@ctrl/tinycolor/-/tinycolor-3.3.4.tgz#59691edd031eedc431bda1bdf601257c06289a40" integrity sha512-8vmPV/nIULFDWsnJalQJDqFLC2uTPx6A/ASA2t27QGp+7oXnbWWXCe0uV8xasIH2rGbI/XoB2vmkdP/94WvMrw== +"@custom-elements-manifest/analyzer@^0.10.4": + version "0.10.4" + resolved "https://registry.yarnpkg.com/@custom-elements-manifest/analyzer/-/analyzer-0.10.4.tgz#7bd063cd1249a75b13d5bcc6ed4302dd72dd1f88" + integrity sha512-hse8o20Jd82BwWank29/J9OC4PmSTwUoEmll3LEjDF3WLY/Lc8g3TUYSib/3GARCS8Q5myT2RPqEWfRa+6bkIg== + dependencies: + "@custom-elements-manifest/find-dependencies" "^0.0.5" + "@github/catalyst" "^1.6.0" + "@web/config-loader" "0.1.3" + chokidar "3.5.2" + command-line-args "5.1.2" + comment-parser "1.2.4" + custom-elements-manifest "1.0.0" + debounce "1.2.1" + globby "11.0.4" + typescript "~5.4.2" + +"@custom-elements-manifest/find-dependencies@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@custom-elements-manifest/find-dependencies/-/find-dependencies-0.0.5.tgz#ebc11672019de3d52bb8f29f76efe510b8401fbd" + integrity sha512-fKIMMZCDFSoL2ySUoz8knWgpV4jpb0lUXgLOvdZQMQFHxgxz1PqOJpUIypwvEVyKk3nEHRY4f10gNol02HjeCg== + dependencies: + es-module-lexer "^0.9.3" + "@cypress/react@8.0.0": version "8.0.0" resolved "https://registry.yarnpkg.com/@cypress/react/-/react-8.0.0.tgz#9ed7a04284d149e65ad7ae9dc35aa2a20c2c4e57" @@ -1991,6 +2014,11 @@ "@griffel/react" "^1.5.14" "@swc/helpers" "^0.5.1" +"@github/catalyst@^1.6.0": + version "1.7.0" + resolved "https://registry.yarnpkg.com/@github/catalyst/-/catalyst-1.7.0.tgz#12dd1097a66260f0dde1d1d1f5ebfe7d1f576a80" + integrity sha512-qOAxrDdRZz9+v4y2WoAfh11rpRY/x4FRofPNmJyZFzAjubtzE3sCa/tAycWWufmQGoYiwwzL/qJBBgyg7avxPw== + "@griffel/babel-preset@1.5.8", "@griffel/babel-preset@^1.5.8": version "1.5.8" resolved "https://registry.yarnpkg.com/@griffel/babel-preset/-/babel-preset-1.5.8.tgz#2ee5e404b34350fcb40a2506d73b0467f1a66be0" @@ -6288,6 +6316,33 @@ dependencies: tslib "^1.10.0" +"@wc-toolkit/cem-inheritance@^1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@wc-toolkit/cem-inheritance/-/cem-inheritance-1.0.4.tgz#eb50611bc07706e38d6db293bda7ebabb1cedcbe" + integrity sha512-jhw9MiGdbEIdwDUYbLHAZ7FadIbNXXtgNIkFFTfp6DHWe/XE9/ro1KEW6w/GYy86VOQLXYTU6pbMFRnXb9zXAQ== + dependencies: + "@wc-toolkit/jsdoc-tags" "^1.1.0" + +"@wc-toolkit/cem-validator@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@wc-toolkit/cem-validator/-/cem-validator-1.0.3.tgz#265f3e8f5f2a80e6892bf8afe85d6ea664594ad8" + integrity sha512-teKgwoyUaIUmJQCnYVjaxOLo6wOSNN/cCRh3jeeF84rNDuzyygl+zHfwgU5H8Z02hSvgvCJjKX+r7un9A70svw== + +"@wc-toolkit/jsdoc-tags@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@wc-toolkit/jsdoc-tags/-/jsdoc-tags-1.1.0.tgz#b2ff6ea7208057eaa8f451a27ec83764e446741d" + integrity sha512-7MHpQ3FtRNJBJONMChkfIWxOWy1rvDtwOJJ4ubeGJBUEj2hp8Xy/9G8GqqNvPGzp38haAfdMcmwx6rySu4AAqg== + +"@wc-toolkit/module-path-resolver@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@wc-toolkit/module-path-resolver/-/module-path-resolver-1.0.0.tgz#747cf297161a2ef4ac26269600d186daddf6e8cd" + integrity sha512-J8wFceraqTGiJTX+od+e3UkSk2zeklwcaNOwxCHfkzpPMV4TC7332jc9TNA2GNt5eDTy4pNUr3egXtM3HFpu0g== + +"@wc-toolkit/type-parser@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@wc-toolkit/type-parser/-/type-parser-1.0.3.tgz#0fc4372b3175c291b2c2ddbf07c189718f042f1a" + integrity sha512-Y3oiu4Z2pTF27A2hURDL/9hN7/tBl/sa+udwjWl3gZR92mpqpAtVgQB3oCD36JgknMZu+2J3RBEGORu1Fr7wwg== + "@wdio/logger@^8.6.6": version "8.28.0" resolved "https://registry.yarnpkg.com/@wdio/logger/-/logger-8.28.0.tgz#ab97ee1a9f6a30305e1a07ff2b67fa23e1281e73" @@ -6298,6 +6353,13 @@ loglevel-plugin-prefix "^0.8.4" strip-ansi "^7.1.0" +"@web/config-loader@0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@web/config-loader/-/config-loader-0.1.3.tgz#8325ea54f75ef2ee7166783e64e66936db25bff7" + integrity sha512-XVKH79pk4d3EHRhofete8eAnqto1e8mCRAqPV00KLNFzCWSe8sWmLnqKCqkPNARC6nksMaGrATnA5sPDRllMpQ== + dependencies: + semver "^7.3.4" + "@webassemblyjs/ast@1.14.1", "@webassemblyjs/ast@^1.12.1": version "1.14.1" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.14.1.tgz#a9f6a07f2b03c95c8d38c4536a1fdfb521ff55b6" @@ -6989,7 +7051,7 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-back@^3.0.1, array-back@^3.1.0: +array-back@^3.0.1: version "3.1.0" resolved "https://registry.yarnpkg.com/array-back/-/array-back-3.1.0.tgz#b8859d7a508871c9a7b2cf42f99428f65e96bfb0" integrity sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q== @@ -6999,7 +7061,7 @@ array-back@^4.0.1, array-back@^4.0.2: resolved "https://registry.yarnpkg.com/array-back/-/array-back-4.0.2.tgz#8004e999a6274586beeb27342168652fdb89fa1e" integrity sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg== -array-back@^6.2.2: +array-back@^6.1.2, array-back@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/array-back/-/array-back-6.2.2.tgz#f567d99e9af88a6d3d2f9dfcc21db6f9ba9fd157" integrity sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw== @@ -8347,6 +8409,21 @@ chokidar@3.3.0: optionalDependencies: fsevents "~2.1.1" +chokidar@3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + "chokidar@>=3.0.0 <4.0.0", chokidar@^3.3.1, chokidar@^3.5.2, chokidar@^3.5.3, chokidar@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.6.0.tgz#197c6cc669ef2a8dc5e7b4d97ee4e092c3eb0d5b" @@ -8826,12 +8903,12 @@ comma-separated-tokens@^2.0.0: resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== -command-line-args@^5.0.2: - version "5.2.1" - resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.2.1.tgz#c44c32e437a57d7c51157696893c5909e9cec42e" - integrity sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg== +command-line-args@5.1.2, command-line-args@^5.0.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-5.1.2.tgz#25908e573d2214bc23a8437e3df853b02dffa425" + integrity sha512-fytTsbndLbl+pPWtS0CxLV3BEWw9wJayB8NnU2cbQqVPsNdYezQeT+uIQv009m+GShnMNyuoBrRo8DTmuTfSCA== dependencies: - array-back "^3.1.0" + array-back "^6.1.2" find-replace "^3.0.0" lodash.camelcase "^4.3.0" typical "^4.0.0" @@ -8886,6 +8963,11 @@ commander@^8.3.0: resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +comment-parser@1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.2.4.tgz#489f3ee55dfd184a6e4bffb31baba284453cb760" + integrity sha512-pm0b+qv+CkWNriSTMsfnjChF9kH0kxz55y44Wo5le9qLxMj5xDQAaEd9ZN1ovSuk9CsrncWaFwgpOMg7ClJwkw== + comment-parser@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/comment-parser/-/comment-parser-1.4.1.tgz#bdafead37961ac079be11eb7ec65c4d021eaf9cc" @@ -9397,6 +9479,11 @@ csv-stringify@^6.2.0: resolved "https://registry.yarnpkg.com/csv-stringify/-/csv-stringify-6.4.6.tgz#9ccf87cb8b017c96673a9fa061768c8ba83e8b98" integrity sha512-h2V2XZ3uOTLilF5dPIptgUfN/o2ia/80Ie0Lly18LAnw5s8Eb7kt8rfxSUy24AztJZas9f6DPZpVlzDUtFt/ag== +custom-elements-manifest@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/custom-elements-manifest/-/custom-elements-manifest-1.0.0.tgz#b35c2129076a1dc9f95d720c6f7b5b71a857274b" + integrity sha512-j59k0ExGCKA8T6Mzaq+7axc+KVHwpEphEERU7VZ99260npu/p/9kd+Db+I3cGKxHkM5y6q5gnlXn00mzRQkX2A== + cypress-real-events@1.13.0: version "1.13.0" resolved "https://registry.yarnpkg.com/cypress-real-events/-/cypress-real-events-1.13.0.tgz#6b7cd32dcac172db1493608f97a2576c7d0bd5af" @@ -9723,7 +9810,7 @@ dayjs@^1.10.4: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.0.tgz#009bf7ef2e2ea2d5db2e6583d2d39a4b5061e805" integrity sha512-JLC809s6Y948/FuCZPm5IX8rRhQwOiyMb2TfVVQEixG7P8Lm/gt5S7yoQZmC8x1UehI9Pb7sksEt4xx14m+7Ug== -debounce@^1.2.1: +debounce@1.2.1, debounce@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.1.tgz#38881d8f4166a5c5848020c11827b834bcb3e0a5" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== @@ -10756,6 +10843,11 @@ es-iterator-helpers@^1.0.19, es-iterator-helpers@^1.2.1: iterator.prototype "^1.1.4" safe-array-concat "^1.1.3" +es-module-lexer@^0.9.3: + version "0.9.3" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" + integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== + es-module-lexer@^1.2.1, es-module-lexer@^1.3.1, es-module-lexer@^1.4.1, es-module-lexer@^1.5.3: version "1.5.4" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.5.4.tgz#a8efec3a3da991e60efa6b633a7cad6ab8d26b78" @@ -11786,16 +11878,16 @@ fast-glob@3.2.7: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.0.3, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== +fast-glob@^3.0.3, fast-glob@^3.1.1, fast-glob@^3.2.5, fast-glob@^3.2.9, fast-glob@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.3.tgz#d06d585ce8dba90a16b0505c543c3ccfb3aeb818" + integrity sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" glob-parent "^5.1.2" merge2 "^1.3.0" - micromatch "^4.0.4" + micromatch "^4.0.8" fast-json-parse@^1.0.3: version "1.0.3" @@ -13013,6 +13105,18 @@ globby@*, globby@11.1.0, globby@^11.0.0, globby@^11.0.1, globby@^11.0.2, globby@ merge2 "^1.4.1" slash "^3.0.0" +globby@11.0.4: + version "11.0.4" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.4.tgz#2cbaff77c2f2a62e71e9b2813a67b97a3a3001a5" + integrity sha512-9O4MVG9ioZJ08ffbcyVYyLOJLk5JQ688pJ4eMGLpdWLHq/Wr1D9BlriLQyL0E+jbkuePVZXYFj47QM/v093wHg== + dependencies: + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.1.1" + ignore "^5.1.4" + merge2 "^1.3.0" + slash "^3.0.0" + globby@^10.0.1: version "10.0.2" resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" @@ -13923,10 +14027,10 @@ ignore-not-found-export-webpack-plugin@1.0.2: resolved "https://registry.yarnpkg.com/ignore-not-found-export-webpack-plugin/-/ignore-not-found-export-webpack-plugin-1.0.2.tgz#53c14198a45f05be306af4cb273890a3edf145c8" integrity sha512-CeMqul+L7fEEc59NpQhzr5sh/LRjbMW4cYmMUJWdCm3dYyWF8Big6qea0YSBHQvajKfrnKTcARmwzd9rTp+50w== -ignore@^5.0.4, ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.1.tgz#5073e554cd42c5b33b394375f538b8593e34d4ef" - integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== +ignore@^5.0.4, ignore@^5.1.1, ignore@^5.1.4, ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.3.2.tgz#3cd40e729f3643fd87cb04e50bf0eb722bc596f5" + integrity sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g== immediate@~3.0.5: version "3.0.6" @@ -17462,7 +17566,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: +micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202" integrity "sha1-1m+hjzpHB2eJMgubGvMr2G2fogI= sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="