From d2724df3c5fe7bdf316b914e3f9b2fbb56567ff8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 19:13:26 +0000 Subject: [PATCH] chore(deps-dev): bump markdownlint-cli2 from 0.10.0 to 0.11.0 (#4076) * chore(deps-dev): bump markdownlint-cli2 from 0.10.0 to 0.11.0 Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.10.0 to 0.11.0. - [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md) - [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.10.0...v0.11.0) --- updated-dependencies: - dependency-name: markdownlint-cli2 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore(deps-dev): bump markdownlint-cli2 from 0.10.0 to 0.11.0 Bumps [markdownlint-cli2](https://github.com/DavidAnson/markdownlint-cli2) from 0.10.0 to 0.11.0. - [Changelog](https://github.com/DavidAnson/markdownlint-cli2/blob/main/CHANGELOG.md) - [Commits](https://github.com/DavidAnson/markdownlint-cli2/compare/v0.10.0...v0.11.0) --- updated-dependencies: - dependency-name: markdownlint-cli2 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * chore: fix markdownlint violations --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Josh Black --- README.md | 10 +- .../adrs/adr-015-npm-workspaces.md | 2 +- contributor-docs/behaviors.md | 2 +- contributor-docs/testing.md | 2 - docs/content/anchoredPosition.mdx | 4 +- docs/content/focusTrap.mdx | 2 +- docs/content/focusZone.mdx | 72 +--------- package-lock.json | 128 ++++++++++++------ package.json | 2 +- 9 files changed, 107 insertions(+), 117 deletions(-) diff --git a/README.md b/README.md index 241a92b6f85..ba5eb7685fd 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@

- + Primer logo

Primer React

@@ -8,17 +8,17 @@

- + npm package - + contributors graph - - + license

diff --git a/contributor-docs/adrs/adr-015-npm-workspaces.md b/contributor-docs/adrs/adr-015-npm-workspaces.md index c45fd6aee6c..a6e304775b3 100644 --- a/contributor-docs/adrs/adr-015-npm-workspaces.md +++ b/contributor-docs/adrs/adr-015-npm-workspaces.md @@ -80,6 +80,6 @@ The current `@primer/react` package will move to the `packages/react` package. W - Performance from installing node modules for entire workspace - Find workarounds in cases where legacy-peer-deps is required as an option -### Looking forward +### Explorations - Exploration into https://nx.dev/ for build tooling as npm workspaces does not support topological script ordering diff --git a/contributor-docs/behaviors.md b/contributor-docs/behaviors.md index c6c15b8777e..c0f69b4fee2 100644 --- a/contributor-docs/behaviors.md +++ b/contributor-docs/behaviors.md @@ -53,7 +53,7 @@ Generic behaviors provide functionality that is not specific to any single compo Component behaviors specifically implement behaviors for components. Therefore, hooks that implement component behaviors should always return an object containing props objects to be spread across the elements that make up the component's JSX. While component behaviors do not necessarily have to be one-to-one, **a component may only use one component behavior**. Sometimes it makes sense to use the same component behavior on several components. For example: the Dialog, Popover, and PointerBox components may all use the `usePopover` component behavior. -### Examples +### Component behavior examples - `usePopover` - `useComboBox` diff --git a/contributor-docs/testing.md b/contributor-docs/testing.md index e9be59dbaf8..8d1745788a6 100644 --- a/contributor-docs/testing.md +++ b/contributor-docs/testing.md @@ -120,8 +120,6 @@ Storybook tests are authored within the components's source directory with the f ## Visual Regression Tests -### Overview - We use Playwright to run visual regression tests against our components along with automated accessibility checks. These tests are authored within the `e2e` directory and match the file pattern: `*-test.ts`. diff --git a/docs/content/anchoredPosition.mdx b/docs/content/anchoredPosition.mdx index c4fcff32a10..0ef3d862e8a 100644 --- a/docs/content/anchoredPosition.mdx +++ b/docs/content/anchoredPosition.mdx @@ -113,7 +113,7 @@ The `useAnchoredPosition` hook will return two refs for the anchor element and t Like other hooks such as `useCallback` and `useEffect`, this hook takes a dependencies array. If defined, the position will only be recalculated when one of the dependencies in this array changes. Otherwise, the position will be calculated when the component is first mounted, but never again. -### Usage +### useAnchoredPosition usage ```jsx export const AnchoredPositionExample = () => { @@ -138,7 +138,7 @@ export const AnchoredPositionExample = () => { } ``` -### useAnchoredPosition hook +### useAnchoredPosition | Name | Type | Default | Description | | :----------- | :----------------------------- | :-------: | :------------------------------------------------------------------------------------------------------------------- | diff --git a/docs/content/focusTrap.mdx b/docs/content/focusTrap.mdx index 68f19f5bb7b..ce05349a7b2 100644 --- a/docs/content/focusTrap.mdx +++ b/docs/content/focusTrap.mdx @@ -76,7 +76,7 @@ The `useFocusTrap` hook also has an additional setting, `restoreFocusOnCleanUp`. If you would like to use your own refs, you can pass them into the hook as part of the settings object (see the interface below). -### Usage +### useFocusTrap usage ```jsx export const FocusTrapExample = () => { diff --git a/docs/content/focusZone.mdx b/docs/content/focusZone.mdx index 661c44e4c60..191553b1f9c 100644 --- a/docs/content/focusZone.mdx +++ b/docs/content/focusZone.mdx @@ -78,68 +78,10 @@ The `focusZone` function takes the following arguments. `FocusZoneSettings` is an object with the following interface. All properties are optional and have default behaviors. -| Name | Type | Default | Description | -| :------------------------ | :-------------------------------------------- | :----------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| bindKeys | `FocusKeys` (numeric enum) | `FocusKeys.ArrowVertical │ FocusKeys.HomeAndEnd` | Bit flags that identify keys that will move focus around the focus zone. Each available key either moves focus to the "next", "previous", "start", or "end" element, so it is best to only bind the keys that make sense to move focus in your UI. Use the `FocusKeys` object to discover supported keys (listed in the "Supported keys" section above).

Use the bitwise "OR" operator (|) to combine key types. For example, `FocusKeys.WASD │ FocusKeys.HJKL` represents all of W, A, S, D, H, J, K, and L.

The default for this setting is `FocusKeys.ArrowVertical │ FocusKeys.HomeAndEnd`, unless `getNextFocusable` is provided, in which case `FocusKeys.ArrowAll │ FocusKeys.HomeAndEnd` is used as the default. | -| focusOutBehavior | `"stop" │ "wrap"` | `"stop"` | Choose the behavior applied in cases where focus is currently at either the first or last element of the container. `"stop"` - do nothing and keep focus where it was; `"wrap"` - wrap focus around to the first element from the last, or the last element from the first | -| focusInStrategy | `"first" │ "closest" │ "previous" │ Function` | `"previous"` | This option allows customization of the behavior that determines which of the focusable elements should be focused when focus enters the container via the Tab key.

When set to `"first"`, whenever focus enters the container via Tab, we will focus the first focusable element. When set to `"previous"`, the most recently focused element will be focused (fallback to first if there was no previous).

The "closest" strategy works like "first", except either the first or the last element of the container will be focused, depending on the direction from which focus comes.

If a function is provided, this function should return the `HTMLElement` intended to receive focus. This is useful if you want to focus the currently "selected" item or element. | -| getNextFocusable | `Function` | | This is a callback used to customize the next element to focus when a bound key is pressed. The function takes 3 arguments: `direction` (`"previous"`, `"next"`, `"start"`, or `"end"`), `from` (Element or `undefined`), and `event` (KeyboardEvent). The function should return the next element to focus, or `undefined`. If `undefined` is returned, the regular algorithm to select the next element to focus will be used. | -| focusableElementFilter | `Function` | | This is a callback used to cull focusable elements from participating in the focus zone. | -| abortSignal | `AbortSignal` | | If passed, the focus zone will be deactivated and all event listeners removed when this signal is aborted. If not passed, an `AbortSignal` will be returned by the `focusZone` function. | -| activeDescendantControl | `HTMLElement` | | If `activeDescendantControl` is supplied, do not move focus or alter `tabindex` on any element. Instead, manage `aria-activedescendant` according to the [ARIA best practices guidelines](https://www.w3.org/TR/wai-aria-practices-1.1/#kbd_focus_activedescendant).

The given `activeDescendantControl` will be given an `aria-controls` attribute that references the ID of the `container`. Additionally, it will be given an `aria-activedescendant` attribute that references the ID of the currently-active descendant.

This element will retain DOM focus as arrow keys are pressed. | -| onActiveDescendantChanged | `Function` | | This function is called each time the active descendant changes (only applicable if `activeDescendantControl` is given). The function takes two arguments: `newActiveDescendant` and `previousActiveDescendant`, both `HTMLElement`, either of which can be undefined (e.g. when an element in the container first becomes active, or when the controlling element becomes unfocused). | - -### Best practices - -We highly recommend reading [Section 6: Developing a Keyboard Interface](https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard) from the WAI-ARIA Authoring Practices document. - -## useFocusZone hook - -The `useFocusZone` hook is used to provide focus zone behavior to React components. The hook returns a ref that must be added to the container element. - -### Using your own refs - -If you would like to use your own refs, you can pass them into the hook as part of the settings object (see the interface below). - -### Hook dependencies - -Like other hooks such as `useCallback` and `useEffect`, this hook takes a dependencies array. If defined, the focus zone will be re-applied when a dependency changes (and the old one will be cleaned up). - -### Usage - -```jsx -export const FocusZoneExample = () => { - const {containerRef} = useFocusZone({bindKeys: FocusKeys.ArrowVertical | FocusKeys.HomeAndEnd}) - return ( -
- - - -
- ) -} -``` - -### useFocusZone hook - -| Name | Type | Default | Description | -| :----------- | :---------------------- | :-------: | :------------------------------------------------------------------ | -| settings | `FocusZoneHookSettings` | undefined | Optional settings to control how the focus zone behaves. See below. | -| dependencies | `React.DependencyList` | undefined | Dependencies to determine when to initialize the focus zone. | - -#### Return value - -| Name | Type | Description | -| :------------------------- | :----------------------------- | :---------------------------------------------------------------------------------------- | -| containerRef | `React.RefObject` | This ref must be added to the container's JSX. | -| activeDescendantControlRef | `React.RefObject` | If using active descendant focusing, this ref must be added to the control element's JSX. | - -### FocusZoneHookSettings interface - -`FocusZoneHookSettings` is an object with an interface that extends `FocusZoneSettings` (see above), however, the `activeDescendantControl` prop is omitted (instead see the `activeDescendantFocus` prop below). Additionally, it adds the following properties: - -| Name | Type | Default | Description | -| :-------------------- | :--------------------------------------- | :---------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| containerRef | `React.RefObject` | `undefined` | If provided, this will be the ref used to access the element that will become the container of the focus zone. Otherwise, this hook will create the ref for you and return it. In both cases, the ref must be provided to the container's JSX. | -| activeDescendantFocus | `boolean │ React.RefObject` | `false` | If false, the focus zone will apply normal DOM focusing (see **DOM Focus vs. Active Descendant** above). If true, or if a ref is provided, the focus zone will use "active descendant" focusing. If a ref is applied, it will be used as the control element for active descendant focus. If `true` is given, a ref will be created and returned by the hook. | -| disabled | `boolean` | `false` | Set to true to disable the focus zone and clean up listeners. Can be re-enabled at any time. | +| Name | Type | Default | Description | +| :--------------------- | :-------------------------------------------- | :----------------------------------------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| bindKeys | `FocusKeys` (numeric enum) | `FocusKeys.ArrowVertical │ FocusKeys.HomeAndEnd` | Bit flags that identify keys that will move focus around the focus zone. Each available key either moves focus to the "next", "previous", "start", or "end" element, so it is best to only bind the keys that make sense to move focus in your UI. Use the `FocusKeys` object to discover supported keys (listed in the "Supported keys" section above).

Use the bitwise "OR" operator (|) to combine key types. For example, `FocusKeys.WASD │ FocusKeys.HJKL` represents all of W, A, S, D, H, J, K, and L.

The default for this setting is `FocusKeys.ArrowVertical │ FocusKeys.HomeAndEnd`, unless `getNextFocusable` is provided, in which case `FocusKeys.ArrowAll │ FocusKeys.HomeAndEnd` is used as the default. | +| focusOutBehavior | `"stop" │ "wrap"` | `"stop"` | Choose the behavior applied in cases where focus is currently at either the first or last element of the container. `"stop"` - do nothing and keep focus where it was; `"wrap"` - wrap focus around to the first element from the last, or the last element from the first | +| focusInStrategy | `"first" │ "closest" │ "previous" │ Function` | `"previous"` | This option allows customization of the behavior that determines which of the focusable elements should be focused when focus enters the container via the Tab key.

When set to `"first"`, whenever focus enters the container via Tab, we will focus the first focusable element. When set to `"previous"`, the most recently focused element will be focused (fallback to first if there was no previous).

The "closest" strategy works like "first", except either the first or the last element of the container will be focused, depending on the direction from which focus comes.

If a function is provided, this function should return the `HTMLElement` intended to receive focus. This is useful if you want to focus the currently "selected" item or element. | +| getNextFocusable | `Function` | | This is a callback used to customize the next element to focus when a bound key is pressed. The function takes 3 arguments: `direction` (`"previous"`, `"next"`, `"start"`, or `"end"`), `from` (Element or `undefined`), and `event` (KeyboardEvent). The function should return the next element to focus, or `undefined`. If `undefined` is returned, the regular algorithm to select the next element to focus will be used. | +| focusableElementFilter | `Function` | | This is a callback used to cull focusable elements from participating in the focus zone. | diff --git a/package-lock.json b/package-lock.json index fc0bb2474ee..7963f0b1006 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@primer/react", - "version": "36.4.0", + "version": "36.5.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@primer/react", - "version": "36.4.0", + "version": "36.5.0", "license": "MIT", "dependencies": { "@github/combobox-nav": "^2.1.5", @@ -144,7 +144,7 @@ "lint-staged": "14.0.1", "lodash.groupby": "4.6.0", "lodash.keyby": "4.6.0", - "markdownlint-cli2": "^0.10.0", + "markdownlint-cli2": "^0.11.0", "markdownlint-cli2-formatter-pretty": "0.0.3", "mdast-util-from-markdown": "2.0.0", "mdast-util-frontmatter": "2.0.1", @@ -6973,6 +6973,18 @@ "integrity": "sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==", "dev": true }, + "node_modules/@sindresorhus/merge-streams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz", + "integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@sitespeed.io/tracium": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@sitespeed.io/tracium/-/tracium-0.3.3.tgz", @@ -28276,9 +28288,9 @@ "dev": true }, "node_modules/markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", "dev": true, "dependencies": { "argparse": "^2.0.1", @@ -28322,30 +28334,33 @@ } }, "node_modules/markdownlint": { - "version": "0.31.1", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.31.1.tgz", - "integrity": "sha512-CKMR2hgcIBrYlIUccDCOvi966PZ0kJExDrUi1R+oF9PvqQmCrTqjOsgIvf2403OmJ+CWomuzDoylr6KbuMyvHA==", + "version": "0.32.1", + "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.32.1.tgz", + "integrity": "sha512-3sx9xpi4xlHlokGyHO9k0g3gJbNY4DI6oNEeEYq5gQ4W7UkiJ90VDAnuDl2U+yyXOUa6BX+0gf69ZlTUGIBp6A==", "dev": true, "dependencies": { - "markdown-it": "13.0.1", + "markdown-it": "13.0.2", "markdownlint-micromark": "0.1.7" }, "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-cli2": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.10.0.tgz", - "integrity": "sha512-kVxjPyKFC+eW7iqcxiNI50RDzwugpXkEX5eQlDso/0IUs9M73jXYguLFHDzgi5KatcxU/57Fu8KoGtkFft9lfA==", + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/markdownlint-cli2/-/markdownlint-cli2-0.11.0.tgz", + "integrity": "sha512-RmFpr+My5in8KT+H/A6ozKIVYVzZtL5t9c8DYdv0YJdljl385z44CcCVBrclpHxCGMY2tr0hZ/ca+meGGvgdnQ==", "dev": true, "dependencies": { - "globby": "13.2.2", - "markdownlint": "0.31.1", + "globby": "14.0.0", + "markdownlint": "0.32.1", "markdownlint-cli2-formatter-default": "0.0.4", "micromatch": "4.0.5", "strip-json-comments": "5.0.1", - "yaml": "2.3.2" + "yaml": "2.3.4" }, "bin": { "markdownlint-cli2": "markdownlint-cli2.js", @@ -28353,7 +28368,10 @@ "markdownlint-cli2-fix": "markdownlint-cli2-fix.js" }, "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/DavidAnson" } }, "node_modules/markdownlint-cli2-formatter-default": { @@ -28433,29 +28451,46 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/markdownlint-cli2/node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "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" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/markdownlint-cli2/node_modules/globby": { - "version": "13.2.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", - "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz", + "integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==", "dev": true, "dependencies": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.3.0", + "@sindresorhus/merge-streams": "^1.0.0", + "fast-glob": "^3.3.2", "ignore": "^5.2.4", - "merge2": "^1.4.1", - "slash": "^4.0.0" + "path-type": "^5.0.0", + "slash": "^5.1.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/markdownlint-cli2/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "node_modules/markdownlint-cli2/node_modules/path-type": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz", + "integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==", "dev": true, "engines": { "node": ">=12" @@ -28464,10 +28499,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/markdownlint-cli2/node_modules/strip-json-comments": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", - "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", + "node_modules/markdownlint-cli2/node_modules/slash": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "engines": { "node": ">=14.16" @@ -28476,13 +28511,16 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/markdownlint-cli2/node_modules/yaml": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", - "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", + "node_modules/markdownlint-cli2/node_modules/strip-json-comments": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-5.0.1.tgz", + "integrity": "sha512-0fk9zBqO67Nq5M/m45qHCJxylV/DhBlIOVExqgOMiCCrzrhU6tCibRXNqE3jwJLftzE9SNuZtYbpzcO+i9FiKw==", "dev": true, "engines": { - "node": ">= 14" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/markdownlint-micromark": { @@ -38044,6 +38082,18 @@ "node": ">=4" } }, + "node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/unified": { "version": "10.1.2", "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", diff --git a/package.json b/package.json index 32b18c7a7e7..364a6005e0e 100644 --- a/package.json +++ b/package.json @@ -229,7 +229,7 @@ "lint-staged": "14.0.1", "lodash.groupby": "4.6.0", "lodash.keyby": "4.6.0", - "markdownlint-cli2": "^0.10.0", + "markdownlint-cli2": "^0.11.0", "markdownlint-cli2-formatter-pretty": "0.0.3", "mdast-util-from-markdown": "2.0.0", "mdast-util-frontmatter": "2.0.1",