Update npm Dependencies (major) #10

Open
notarock-s-renovate[bot] wants to merge 1 commit from renovate/major-npm-dependencies into main
notarock-s-renovate[bot] commented 2026-03-16 04:14:15 +00:00 (Migrated from github.com)

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
@eslint/js (source) devDependencies major ^9.39.4^10.0.0
@mantine/core (source) dependencies major ^8.3.18^9.0.0
@mantine/dates (source) dependencies major ^8.3.18^9.0.0
@mantine/form (source) dependencies major ^8.3.18^9.0.0
@mantine/hooks (source) dependencies major ^8.3.18^9.0.0
@mantine/notifications (source) dependencies major ^8.3.18^9.0.0
@types/node (source) devDependencies major ^24.12.0^25.0.0
eslint (source) devDependencies major ^9.39.4^10.0.0
i18next (source) dependencies major ^25.8.20^26.0.0
react-i18next dependencies major ^16.5.8^17.0.0
typescript (source) devDependencies major ~5.9.3~6.0.0

Release Notes

eslint/eslint (@​eslint/js)

v10.0.1

Compare Source

Bug Fixes
Documentation
  • 5b3dbce docs: add AI acknowledgement section to templates (#​20431) (루밀LuMir)
  • 6f23076 docs: toggle nav in no-JS mode (#​20476) (Tanuj Kanti)
  • b69cfb3 docs: Update README (GitHub Actions Bot)
Chores

v10.0.0

Compare Source

Breaking Changes
  • f9e54f4 feat!: estimate rule-tester failure location (#​20420) (ST-DDT)
  • a176319 feat!: replace chalk with styleText and add color to ResultsMeta (#​20227) (루밀LuMir)
  • c7046e6 feat!: enable JSX reference tracking (#​20152) (Pixel998)
  • fa31a60 feat!: add name to configs (#​20015) (Kirk Waiblinger)
  • 3383e7e fix!: remove deprecated SourceCode methods (#​20137) (Pixel998)
  • 501abd0 feat!: update dependency minimatch to v10 (#​20246) (renovate[bot])
  • ca4d3b4 fix!: stricter rule tester assertions for valid test cases (#​20125) (唯然)
  • 96512a6 fix!: Remove deprecated rule context methods (#​20086) (Nicholas C. Zakas)
  • c69fdac feat!: remove eslintrc support (#​20037) (Francesco Trotta)
  • 208b5cc feat!: Use ScopeManager#addGlobals() (#​20132) (Milos Djermanovic)
  • a2ee188 fix!: add uniqueItems: true in no-invalid-regexp option (#​20155) (Tanuj Kanti)
  • a89059d feat!: Program range span entire source text (#​20133) (Pixel998)
  • 39a6424 fix!: assert 'text' is a string across all RuleFixer methods (#​20082) (Pixel998)
  • f28fbf8 fix!: Deprecate "always" and "as-needed" options of the radix rule (#​20223) (Milos Djermanovic)
  • aa3fb2b fix!: tighten func-names schema (#​20119) (Pixel998)
  • f6c0ed0 feat!: report eslint-env comments as errors (#​20128) (Francesco Trotta)
  • 4bf739f fix!: remove deprecated LintMessage#nodeType and TestCaseError#type (#​20096) (Pixel998)
  • 523c076 feat!: drop support for jiti < 2.2.0 (#​20016) (michael faith)
  • 454a292 feat!: update eslint:recommended configuration (#​20210) (Pixel998)
  • 4f880ee feat!: remove v10_* and inactive unstable_* flags (#​20225) (sethamus)
  • f18115c feat!: no-shadow-restricted-names report globalThis by default (#​20027) (sethamus)
  • c6358c3 feat!: Require Node.js ^20.19.0 || ^22.13.0 || >=24 (#​20160) (Milos Djermanovic)
Features
  • bff9091 feat: handle Array.fromAsync in array-callback-return (#​20457) (Francesco Trotta)
  • 290c594 feat: add self to no-implied-eval rule (#​20468) (sethamus)
  • 43677de feat: fix handling of function and class expression names in no-shadow (#​20432) (Milos Djermanovic)
  • f0cafe5 feat: rule tester add assertion option requireData (#​20409) (fnx)
  • f7ab693 feat: output RuleTester test case failure index (#​19976) (ST-DDT)
  • 7cbcbf9 feat: add countThis option to max-params (#​20236) (Gerkin)
  • f148a5e feat: add error assertion options (#​20247) (ST-DDT)
  • 09e6654 feat: update error loc of require-yield and no-useless-constructor (#​20267) (Tanuj Kanti)
Bug Fixes
  • 436b82f fix: update eslint (#​20473) (renovate[bot])
  • 1d29d22 fix: detect default this binding in Array.fromAsync callbacks (#​20456) (Francesco Trotta)
  • 727451e fix: fix regression of global mode report range in strict rule (#​20462) (ntnyq)
  • e80485f fix: remove fake FlatESLint and LegacyESLint exports (#​20460) (Francesco Trotta)
  • 9eeff3b fix: update esquery (#​20423) (cryptnix)
  • b34b938 fix: use Error.prepareStackTrace to estimate failing test location (#​20436) (Francesco Trotta)
  • 51aab53 fix: update eslint (#​20443) (renovate[bot])
  • 23490b2 fix: handle space before colon in RuleTester location estimation (#​20433) (Francesco Trotta)
  • f244dbf fix: use MessagePlaceholderData type from @eslint/core (#​20348) (루밀LuMir)
  • d186f8c fix: update eslint (#​20427) (renovate[bot])
  • 2332262 fix: error location should not modify error message in RuleTester (#​20421) (Milos Djermanovic)
  • ab99b21 fix: ensure filename is passed as third argument to verifyAndFix() (#​20405) (루밀LuMir)
  • 8a60f3b fix: remove ecmaVersion and sourceType from ParserOptions type (#​20415) (Pixel998)
  • eafd727 fix: remove TDZ scope type (#​20231) (jaymarvelz)
  • 39d1f51 fix: correct Scope typings (#​20404) (sethamus)
  • 2bd0f13 fix: update verify and verifyAndFix types (#​20384) (Francesco Trotta)
  • ba6ebfa fix: correct typings for loadESLint() and shouldUseFlatConfig() (#​20393) (루밀LuMir)
  • e7673ae fix: correct RuleTester typings (#​20105) (Pixel998)
  • 53e9522 fix: strict removed formatters check (#​20241) (ntnyq)
  • b017f09 fix: correct no-restricted-import messages (#​20374) (Francesco Trotta)
Documentation
  • e978dda docs: Update README (GitHub Actions Bot)
  • 4cecf83 docs: Update README (GitHub Actions Bot)
  • c79f0ab docs: Update README (GitHub Actions Bot)
  • 773c052 docs: Update README (GitHub Actions Bot)
  • f2962e4 docs: document meta.docs.frozen property (#​20475) (Pixel998)
  • 8e94f58 docs: fix broken anchor links from gerund heading updates (#​20449) (Copilot)
  • 1495654 docs: Update README (GitHub Actions Bot)
  • 0b8ed5c docs: document support for :is selector alias (#​20454) (sethamus)
  • 1c4b33f docs: Document policies about ESM-only dependencies (#​20448) (Milos Djermanovic)
  • 3e5d38c docs: add missing indentation space in rule example (#​20446) (fnx)
  • 63a0c7c docs: Update README (GitHub Actions Bot)
  • 65ed0c9 docs: Update README (GitHub Actions Bot)
  • b0e4717 docs: [no-await-in-loop] Expand inapplicability (#​20363) (Niklas Hambüchen)
  • fca421f docs: Update README (GitHub Actions Bot)
  • d925c54 docs: update config syntax in no-lone-blocks (#​20413) (Pixel998)
  • 7d5c95f docs: remove redundant sourceType: "module" from rule examples (#​20412) (Pixel998)
  • 02e7e71 docs: correct .mts glob pattern in files with extensions example (#​20403) (Ali Essalihi)
  • 264b981 docs: Update README (GitHub Actions Bot)
  • 5a4324f docs: clarify "local" option of no-unused-vars (#​20385) (Milos Djermanovic)
  • e593aa0 docs: improve clarity, grammar, and wording in documentation site README (#​20370) (Aditya)
  • 3f5062e docs: Add messages property to rule meta documentation (#​20361) (Sabya Sachi)
  • 9e5a5c2 docs: remove Examples headings from rule docs (#​20364) (Milos Djermanovic)
  • 194f488 docs: Update README (GitHub Actions Bot)
  • 0f5a94a docs: [class-methods-use-this] explain purpose of rule (#​20008) (Kirk Waiblinger)
  • df5566f docs: add Options section to all rule docs (#​20296) (sethamus)
  • adf7a2b docs: no-unsafe-finally note for generator functions (#​20330) (Tom Pereira)
  • ef7028c docs: Update README (GitHub Actions Bot)
  • fbae5d1 docs: consistently use "v10.0.0" in migration guide (#​20328) (Pixel998)
  • 778aa2d docs: ignoring default file patterns (#​20312) (Tanuj Kanti)
  • 4b5dbcd docs: reorder v10 migration guide (#​20315) (Milos Djermanovic)
  • 5d84a73 docs: Update README (GitHub Actions Bot)
  • 37c8863 docs: fix incorrect anchor link in v10 migration guide (#​20299) (Pixel998)
  • 077ff02 docs: add migrate-to-10.0.0 doc (#​20143) (唯然)
  • 3822e1b docs: Update README (GitHub Actions Bot)
  • 9f08712 Build: changelog update for 10.0.0-rc.2 (Jenkins)
  • 1e2c449 Build: changelog update for 10.0.0-rc.1 (Jenkins)
  • c4c72a8 Build: changelog update for 10.0.0-rc.0 (Jenkins)
  • 7e4daf9 Build: changelog update for 10.0.0-beta.0 (Jenkins)
  • a126a2a build: add .scss files entry to knip (#​20389) (Francesco Trotta)
  • f5c0193 Build: changelog update for 10.0.0-alpha.1 (Jenkins)
  • 165326f Build: changelog update for 10.0.0-alpha.0 (Jenkins)
Chores
mantinedev/mantine (@​mantine/core)

v9.1.1

Compare Source

What's Changed
  • [@mantine/spotlight] Fix error thrown when listId is empty (#​8863)
  • [@mantine/schedule] Fix onEventClick not being passed down to MoreEvents in DayView and MonthView components (#​8862)
  • [@mantine/core] Tree: Add dnd handle and dnd lock support
  • [@mantine/schedule] Fix labels not propagating to custom schedule header and more events lists
  • [@mantine/modals] Add ModalsSettings type export
  • [@mantine/schedule] Fix renderEvent not working in MoreEvents
  • [@mantine/mcp-server] Update displayed version
  • [@mantine/core] Combobox: Fix keyboard events not triggering in Safari after click on the inout (#​7386)
  • [@mantine/hooks] use-focus-return: Fix incorrect logic when used with nested focus traps (#​8857)
  • [@mantine/core] ScrollArea: Fix scrollbar never visible with offsetScrollbars="present" (#​8844)
  • [@mantine/core] Fix incorrect renderOption type in Combobox-based components (#​8858)
  • [@mantine/hooks] use-mask: Fix stale mask partial remaining as input value on blur after input field was cleared
  • [@mantine/hooks] use-mask: Fix incorrect cursor position handling
  • [@mantine/hooks] use-mask: Fix part of the mask remaining as input value on blur
  • [@mantine/core] Radio: Fix icon not being centered on some low-density screens (#​8845)
  • [@mantine/core] Highlight: Fix wholeWord matching for non-ASCII characters
  • [@mantine/core] Card: Fix Card.Section not being handled correctly during server-side rendering of server components (#​8846))
  • [@mantine/core] Fix clearButtonProps={{ size: lg }} not working when passed to Select and other similar components (#​8855)
  • [@mantine/core] Fix Styles API defined for Input not being applied to Select and MultiSelect components (#​8851)
New Contributors

Full Changelog: https://github.com/mantinedev/mantine/compare/9.1.0...9.1.1

v9.1.0

Compare Source

View changelog with demos on mantine.dev website

Support Mantine development

You can now sponsor Mantine development with OpenCollective.
All funds are used to improve Mantine and create new features and components.

deduplicateInlineStyles

New deduplicateInlineStyles prop on MantineProvider enables
React 19 style tag deduplication for responsive style props.
When many components share the same responsive style prop values, only a single <style />
tag is generated and hoisted to <head /> instead of each component injecting its own:

import { MantineProvider } from '@&#8203;mantine/core';

function Demo() {
  return (
    <MantineProvider deduplicateInlineStyles>
      {/* Your app here */}
    </MantineProvider>
  );
}

This can significantly improve performance when rendering large lists of components
with identical responsive style props. See the
styles performance guide for more details.

use-mask hook

New use-mask hook attaches real-time input masking to any <input> element via
a ref callback. It formats user input against a defined pattern and exposes both the masked display
value and the raw unmasked value. The hook supports built-in and custom tokens, dynamic masks,
character transforms, optional segments, and regex array format:

import { TextInput, Text } from '@&#8203;mantine/core';
import { useMask } from '@&#8203;mantine/hooks';

function Demo() {
  const { ref, value, rawValue } = useMask({ mask: '(999) 999-9999' });

  return (
    <>
      <TextInput ref={ref} label="Phone number" placeholder="(___) ___-____" />
      <Text size="sm" mt="sm">Masked value: {value}</Text>
      <Text size="sm">Raw value: {rawValue}</Text>
    </>
  );
}
MaskInput component

New MaskInput component is a wrapper around use-mask hook
that provides all standard input props (label, description, error, etc.) and supports all mask options:

import { MaskInput } from '@&#8203;mantine/core';

function Demo() {
  return (
    <MaskInput
       variant="default" size="sm" radius="md" label="Input label" withAsterisk={false} description="Input description" error=""
      mask="(999) 999-9999"
      placeholder="(___) ___-____"
    />
  );
}
Treemap component

New Treemap component displays hierarchical data as a set of nested
rectangles. It is based on the Treemap recharts component:

// Demo.tsx
import { Treemap } from '@&#8203;mantine/charts';
import { data } from './data';

function Demo() {
  return <Treemap data={data} />;
}

// data.ts
export const data = [
  {
    name: 'Frontend',
    color: 'blue.8',
    children: [
      { name: 'React', value: 400 },
      { name: 'Vue', value: 200 },
      { name: 'Angular', value: 150 },
    ],
  },
  {
    name: 'Backend',
    color: 'teal.8',
    children: [
      { name: 'Node', value: 300 },
      { name: 'Python', value: 250 },
      { name: 'Go', value: 100 },
    ],
  },
  {
    name: 'Mobile',
    color: 'red.8',
    children: [
      { name: 'React Native', value: 200 },
      { name: 'Flutter', value: 180 },
    ],
  },
];
TimePicker duration type

TimePicker component now supports type="duration" prop that allows
entering durations that exceed 24 hours. In this mode, the hours field has no upper limit
and the input width adjusts dynamically based on the entered value:

import { TimePicker } from '@&#8203;mantine/dates';

function Demo() {
  return <TimePicker label="Enter duration" type="duration" withSeconds />;
}
Heatmap legend

Heatmap component now supports withLegend prop that displays
a color legend below the chart. Use legendLabels prop to customize labels
(default: ['Less', 'More']):

// Demo.tsx
import { Heatmap } from '@&#8203;mantine/charts';
import { data } from './data';

function Demo() {
  return (
    <Heatmap
      data={data}
      startDate="2024-02-16"
      endDate="2025-02-16"
      withMonthLabels
      withWeekdayLabels
      withLegend
    />
  );
}

// data.ts
export const data = ${JSON.stringify(data, null, 2)};
MonthPicker and YearPicker presets

MonthPicker and YearPicker components now support
presets prop that allows adding predefined values to pick from. Presets are also available
in MonthPickerInput and YearPickerInput
components:

import dayjs from 'dayjs';
import { MonthPicker } from '@&#8203;mantine/dates';

function Demo() {
  return (
    <MonthPicker
      presets={[
        { value: dayjs().startOf('month').format('YYYY-MM-DD'), label: 'This month' },
        { value: dayjs().add(1, 'month').startOf('month').format('YYYY-MM-DD'), label: 'Next month' },
        { value: dayjs().subtract(1, 'month').startOf('month').format('YYYY-MM-DD'), label: 'Last month' },
        { value: dayjs().add(6, 'month').startOf('month').format('YYYY-MM-DD'), label: 'In 6 months' },
        { value: dayjs().add(1, 'year').startOf('month').format('YYYY-MM-DD'), label: 'Next year' },
        { value: dayjs().subtract(1, 'year').startOf('month').format('YYYY-MM-DD'), label: 'Last year' },
      ]}
    />
  );
}
use-roving-index hook

New use-roving-index hook implements the
roving tabindex
keyboard navigation pattern. It manages tabIndex state for a group of focusable elements,
handles arrow key navigation with disabled item skipping, and supports both 1D lists and 2D grids:

import { Button, Group } from '@&#8203;mantine/core';
import { useRovingIndex } from '@&#8203;mantine/hooks';

const items = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'Code'];

function Demo() {
  const { getItemProps } = useRovingIndex({
    total: items.length,
    orientation: 'horizontal',
    loop: true,
  });

  return (
    <Group gap="xs">
      {items.map((item, index) => (
        <Button key={item} variant="default" {...getItemProps({ index })}>
          {item}
        </Button>
      ))}
    </Group>
  );
}
Tree drag and drop

Tree component now supports drag-and-drop reordering of nodes.
Provide onDragDrop callback to enable it, and use the moveTreeNode utility
to update data based on the result:

import { useState } from 'react';
import { CaretDownIcon } from '@&#8203;phosphor-icons/react';
import { Group, moveTreeNode, RenderTreeNodePayload, Tree, TreeNodeData } from '@&#8203;mantine/core';

const data: TreeNodeData[] = [
  {
    label: 'Pages',
    value: 'pages',
    children: [
      { label: 'index.tsx', value: 'pages/index.tsx' },
      { label: 'about.tsx', value: 'pages/about.tsx' },
      { label: 'contact.tsx', value: 'pages/contact.tsx' },
    ],
  },
  {
    label: 'Components',
    value: 'components',
    children: [
      { label: 'Header.tsx', value: 'components/Header.tsx' },
      { label: 'Footer.tsx', value: 'components/Footer.tsx' },
      { label: 'Sidebar.tsx', value: 'components/Sidebar.tsx' },
    ],
  },
  { label: 'package.json', value: 'package.json' },
  { label: 'tsconfig.json', value: 'tsconfig.json' },
];

function Leaf({ node, expanded, hasChildren, elementProps }: RenderTreeNodePayload) {
  return (
    <Group gap={5} {...elementProps}>
      {hasChildren && (
        <CaretDownIcon
          size={18}
          style={{ transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)' }}
        />
      )}
      <span>{node.label}</span>
    </Group>
  );
}

function Demo() {
  const [treeData, setTreeData] = useState(data);

  return (
    <Tree
      data={treeData}
      onDragDrop={(payload) =>
        setTreeData((current) => moveTreeNode(current, payload))
      }
      renderNode={(payload) => <Leaf {...payload} />}
    />
  );
}
Tree async loading

Tree now supports lazy loading of children. Set hasChildren: true
on a node without providing children – when the node is expanded for the first time,
onLoadChildren callback passed to useTree is called. Use mergeAsyncChildren
utility to splice loaded children into your data:

import { useState } from 'react';
import { CaretDownIcon, SpinnerIcon } from '@&#8203;phosphor-icons/react';
import {
  Group,
  mergeAsyncChildren,
  RenderTreeNodePayload,
  Tree,
  TreeNodeData,
  useTree,
} from '@&#8203;mantine/core';

const initialData: TreeNodeData[] = [
  { label: 'Documents', value: 'documents', hasChildren: true },
  { label: 'Photos', value: 'photos', hasChildren: true },
  { label: 'README.md', value: 'readme' },
];

// Simulates an API call to load children
async function fetchChildren(parentValue: string): Promise<TreeNodeData[]> {
  await new Promise((resolve) => setTimeout(resolve, 1000));
  return [
    { label: `${parentValue}/file-1.txt`, value: `${parentValue}/file-1.txt` },
    { label: `${parentValue}/file-2.txt`, value: `${parentValue}/file-2.txt` },
    {
      label: `${parentValue}/subfolder`,
      value: `${parentValue}/subfolder`,
      hasChildren: true,
    },
  ];
}

function Leaf({ node, expanded, hasChildren, elementProps, isLoading }: RenderTreeNodePayload) {
  return (
    <Group gap={5} wrap="nowrap" {...elementProps}>
      {isLoading ? (
        <SpinnerIcon size={18} style={{ animation: 'spin 1s linear infinite', flexShrink: 0 }} />
      ) : (
        hasChildren && (
          <CaretDownIcon
            size={18}
            style={{ transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)', flexShrink: 0 }}
          />
        )
      )}
      <span style={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}>
        {node.label}
      </span>
    </Group>
  );
}

function Demo() {
  const [data, setData] = useState(initialData);
  const tree = useTree({
    onLoadChildren: async (value) => {
      const children = await fetchChildren(value);
      setData((prev) => mergeAsyncChildren(prev, value, children));
    },
  });

  return (
    <Tree
      data={data}
      tree={tree}
      renderNode={(payload) => <Leaf {...payload} />}
    />
  );
}
Tree search and filtering

Tree now includes filterTreeData utility to filter tree data based on
a search query. Matching nodes and their ancestors are preserved in the result. You can
provide a custom filter function for advanced matching (for example, fuzzy search with fuse.js):

import { useMemo, useState } from 'react';
import {
  filterTreeData,
  getTreeExpandedState,
  TextInput,
  Tree,
  TreeNodeData,
  useTree,
} from '@&#8203;mantine/core';

const data: TreeNodeData[] = [
  {
    label: 'src',
    value: 'src',
    children: [
      {
        label: 'components',
        value: 'src/components',
        children: [
          { label: 'Accordion.tsx', value: 'src/components/Accordion.tsx' },
          { label: 'Tree.tsx', value: 'src/components/Tree.tsx' },
          { label: 'Button.tsx', value: 'src/components/Button.tsx' },
          { label: 'Input.tsx', value: 'src/components/Input.tsx' },
        ],
      },
      {
        label: 'hooks',
        value: 'src/hooks',
        children: [
          { label: 'use-debounce.ts', value: 'src/hooks/use-debounce.ts' },
          { label: 'use-media-query.ts', value: 'src/hooks/use-media-query.ts' },
        ],
      },
    ],
  },
  {
    label: 'public',
    value: 'public',
    children: [
      { label: 'favicon.ico', value: 'public/favicon.ico' },
      { label: 'logo.svg', value: 'public/logo.svg' },
    ],
  },
  { label: 'package.json', value: 'package.json' },
  { label: 'tsconfig.json', value: 'tsconfig.json' },
];

function Demo() {
  const [search, setSearch] = useState('');
  const tree = useTree();

  const filteredData = useMemo(
    () => filterTreeData(data, search),
    [search]
  );

  const handleSearchChange = (value: string) => {
    setSearch(value);
    if (value.trim()) {
      const next = filterTreeData(data, value);
      tree.setExpandedState(getTreeExpandedState(next, '*'));
    } else {
      tree.collapseAllNodes();
    }
  };

  return (
    <div>
      <TextInput
        placeholder="Search..."
        mb="sm"
        value={search}
        onChange={(event) => handleSearchChange(event.currentTarget.value)}
      />
      <Tree data={filteredData} tree={tree} />
    </div>
  );
}
Tree connecting lines

Tree now supports withLines prop to display connecting lines
showing parent-child relationships. Lines adapt to levelOffset spacing automatically:

import { getTreeExpandedState, Tree, useTree } from '@&#8203;mantine/core';
import { data } from './data';

function Demo() {
  const tree = useTree({
    initialExpandedState: getTreeExpandedState(data, '*'),
  });

  return <Tree data={data} tree={tree} withLines />;
}
Tree virtualization

Tree now provides flattenTreeData utility and FlatTreeNode component
for virtualized rendering of large trees. The component does not depend on any
virtualization library – you supply one yourself (e.g., @tanstack/react-virtual):

import { useMemo, useRef } from 'react';
import { useVirtualizer } from '@&#8203;tanstack/react-virtual';
import {
  FlatTreeNode,
  flattenTreeData,
  getTreeExpandedState,
  TreeNodeData,
  useTree,
} from '@&#8203;mantine/core';

const ITEM_HEIGHT = 30;

function generateTreeData(count: number): TreeNodeData[] {
  const result: TreeNodeData[] = [];
  let id = 0;

  function addChildren(
    parent: TreeNodeData[],
    depth: number,
    remaining: { count: number }
  ) {
    const childCount = depth === 0 ? 20 : Math.floor(Math.random() * 8) + 2;

    for (let i = 0; i < childCount && remaining.count > 0; i++) {
      id++;
      remaining.count--;
      const hasChild =
        depth < 3 && remaining.count > 0 && Math.random() > 0.3;
      const node: TreeNodeData = {
        label: `${hasChild ? 'Folder' : 'File'} ${id}`,
        value: `node-${id}`,
        children: hasChild ? [] : undefined,
      };

      if (hasChild) {
        addChildren(node.children!, depth + 1, remaining);
      }

      parent.push(node);
    }
  }

  addChildren(result, 0, { count });
  return result;
}

const largeData = generateTreeData(2000);
const initialExpandedState = getTreeExpandedState(largeData, '*');

function Demo() {
  const tree = useTree({
    initialExpandedState,
  });

  const flatList = useMemo(
    () => flattenTreeData(largeData, tree.expandedState),
    [tree.expandedState]
  );

  const scrollParentRef = useRef<HTMLDivElement>(null);

  const virtualizer = useVirtualizer({
    count: flatList.length,
    getScrollElement: () => scrollParentRef.current,
    estimateSize: () => ITEM_HEIGHT,
    overscan: 20,
  });

  return 

</details>

---

### Configuration

📅 **Schedule**: Branch creation - Between 01:00 AM and 07:59 AM, only on Tuesday ( * 1-7 * * 2 ) (UTC), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

 **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjc2LjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
> ℹ️ **Note** > > This PR body was truncated due to platform limits. This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [@eslint/js](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js)) | devDependencies | major | [`^9.39.4` → `^10.0.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.39.4/10.0.1) | | [@mantine/core](https://mantine.dev/) ([source](https://redirect.github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/core)) | dependencies | major | [`^8.3.18` → `^9.0.0`](https://renovatebot.com/diffs/npm/@mantine%2fcore/8.3.18/9.1.1) | | [@mantine/dates](https://mantine.dev/dates/getting-started/) ([source](https://redirect.github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/dates)) | dependencies | major | [`^8.3.18` → `^9.0.0`](https://renovatebot.com/diffs/npm/@mantine%2fdates/8.3.18/9.1.1) | | [@mantine/form](https://mantine.dev) ([source](https://redirect.github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/form)) | dependencies | major | [`^8.3.18` → `^9.0.0`](https://renovatebot.com/diffs/npm/@mantine%2fform/8.3.18/9.1.1) | | [@mantine/hooks](https://mantine.dev) ([source](https://redirect.github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/hooks)) | dependencies | major | [`^8.3.18` → `^9.0.0`](https://renovatebot.com/diffs/npm/@mantine%2fhooks/8.3.18/9.1.1) | | [@mantine/notifications](https://mantine.dev) ([source](https://redirect.github.com/mantinedev/mantine/tree/HEAD/packages/@mantine/notifications)) | dependencies | major | [`^8.3.18` → `^9.0.0`](https://renovatebot.com/diffs/npm/@mantine%2fnotifications/8.3.18/9.1.1) | | [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | major | [`^24.12.0` → `^25.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/24.12.2/25.6.2) | | [eslint](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint)) | devDependencies | major | [`^9.39.4` → `^10.0.0`](https://renovatebot.com/diffs/npm/eslint/9.39.4/10.3.0) | | [i18next](https://www.i18next.com) ([source](https://redirect.github.com/i18next/i18next)) | dependencies | major | [`^25.8.20` → `^26.0.0`](https://renovatebot.com/diffs/npm/i18next/25.10.10/26.0.10) | | [react-i18next](https://redirect.github.com/i18next/react-i18next) | dependencies | major | [`^16.5.8` → `^17.0.0`](https://renovatebot.com/diffs/npm/react-i18next/16.6.6/17.0.7) | | [typescript](https://www.typescriptlang.org/) ([source](https://redirect.github.com/microsoft/TypeScript)) | devDependencies | major | [`~5.9.3` → `~6.0.0`](https://renovatebot.com/diffs/npm/typescript/5.9.3/6.0.3) | --- ### Release Notes <details> <summary>eslint/eslint (@&#8203;eslint/js)</summary> ### [`v10.0.1`](https://redirect.github.com/eslint/eslint/releases/tag/v10.0.1) [Compare Source](https://redirect.github.com/eslint/eslint/compare/v10.0.0...v10.0.1) ##### Bug Fixes - [`c87d5bd`](https://redirect.github.com/eslint/eslint/commit/c87d5bded54c5cf491eb04c24c9d09bbbd42c23e) fix: update eslint ([#&#8203;20531](https://redirect.github.com/eslint/eslint/issues/20531)) (renovate\[bot]) - [`d841001`](https://redirect.github.com/eslint/eslint/commit/d84100115c14691691058f00779c94e74fca946a) fix: update `minimatch` to `10.2.1` to address security vulnerabilities ([#&#8203;20519](https://redirect.github.com/eslint/eslint/issues/20519)) (루밀LuMir) - [`04c2147`](https://redirect.github.com/eslint/eslint/commit/04c21475b3004904948f02049f2888b401d82c78) fix: update error message for unused suppressions ([#&#8203;20496](https://redirect.github.com/eslint/eslint/issues/20496)) (fnx) - [`38b089c`](https://redirect.github.com/eslint/eslint/commit/38b089c1726feac0e31a31d47941bd99e29ce003) fix: update dependency [@&#8203;eslint/config-array](https://redirect.github.com/eslint/config-array) to ^0.23.1 ([#&#8203;20484](https://redirect.github.com/eslint/eslint/issues/20484)) (renovate\[bot]) ##### Documentation - [`5b3dbce`](https://redirect.github.com/eslint/eslint/commit/5b3dbce50a1404a9f118afe810cefeee79388a2a) docs: add AI acknowledgement section to templates ([#&#8203;20431](https://redirect.github.com/eslint/eslint/issues/20431)) (루밀LuMir) - [`6f23076`](https://redirect.github.com/eslint/eslint/commit/6f23076037d5879f20fb3be2ef094293b1e8d38c) docs: toggle nav in no-JS mode ([#&#8203;20476](https://redirect.github.com/eslint/eslint/issues/20476)) (Tanuj Kanti) - [`b69cfb3`](https://redirect.github.com/eslint/eslint/commit/b69cfb32a16c5d5e9986390d484fae1d21e406f9) docs: Update README (GitHub Actions Bot) ##### Chores - [`e5c281f`](https://redirect.github.com/eslint/eslint/commit/e5c281ffd038a3a7a3e5364db0b9378e0ad83020) chore: updates for v9.39.3 release (Jenkins) - [`8c3832a`](https://redirect.github.com/eslint/eslint/commit/8c3832adb77cd993b4a24891900d5eeaaf093cdc) chore: update [@&#8203;typescript-eslint/parser](https://redirect.github.com/typescript-eslint/parser) to ^8.56.0 ([#&#8203;20514](https://redirect.github.com/eslint/eslint/issues/20514)) (Milos Djermanovic) - [`8330d23`](https://redirect.github.com/eslint/eslint/commit/8330d238ae6adb68bb6a1c9381e38cfedd990d94) test: add tests for config-api ([#&#8203;20493](https://redirect.github.com/eslint/eslint/issues/20493)) (Milos Djermanovic) - [`37d6e91`](https://redirect.github.com/eslint/eslint/commit/37d6e91e88fa6a2ca6d8726679096acff21ba6cc) chore: remove eslint v10 prereleases from eslint-config-eslint deps ([#&#8203;20494](https://redirect.github.com/eslint/eslint/issues/20494)) (Milos Djermanovic) - [`da7cd0e`](https://redirect.github.com/eslint/eslint/commit/da7cd0e79197ad16e17052eef99df141de6dbfb1) refactor: cleanup error message templates ([#&#8203;20479](https://redirect.github.com/eslint/eslint/issues/20479)) (Francesco Trotta) - [`84fb885`](https://redirect.github.com/eslint/eslint/commit/84fb885d49ac810e79a9491276b4828b53d913e5) chore: package.json update for [@&#8203;eslint/js](https://redirect.github.com/eslint/js) release (Jenkins) - [`1f66734`](https://redirect.github.com/eslint/eslint/commit/1f667344b57c4c09b548d94bcfac1f91b6e5c63d) chore: add `eslint` to `peerDependencies` of `@eslint/js` ([#&#8203;20467](https://redirect.github.com/eslint/eslint/issues/20467)) (Milos Djermanovic) ### [`v10.0.0`](https://redirect.github.com/eslint/eslint/releases/tag/v10.0.0) [Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.39.4...v10.0.0) ##### Breaking Changes - [`f9e54f4`](https://redirect.github.com/eslint/eslint/commit/f9e54f43a5e497cdfa179338b431093245cb787b) feat!: estimate rule-tester failure location ([#&#8203;20420](https://redirect.github.com/eslint/eslint/issues/20420)) (ST-DDT) - [`a176319`](https://redirect.github.com/eslint/eslint/commit/a176319d8ade1a7d9b2d7fb8f038f55a2662325f) feat!: replace `chalk` with `styleText` and add `color` to `ResultsMeta` ([#&#8203;20227](https://redirect.github.com/eslint/eslint/issues/20227)) (루밀LuMir) - [`c7046e6`](https://redirect.github.com/eslint/eslint/commit/c7046e6c1e03c4ca0eee4888a1f2eba4c6454f84) feat!: enable JSX reference tracking ([#&#8203;20152](https://redirect.github.com/eslint/eslint/issues/20152)) (Pixel998) - [`fa31a60`](https://redirect.github.com/eslint/eslint/commit/fa31a608901684fbcd9906d1907e66561d16e5aa) feat!: add `name` to configs ([#&#8203;20015](https://redirect.github.com/eslint/eslint/issues/20015)) (Kirk Waiblinger) - [`3383e7e`](https://redirect.github.com/eslint/eslint/commit/3383e7ec9028166cafc8ea7986c2f7498d0049f0) fix!: remove deprecated `SourceCode` methods ([#&#8203;20137](https://redirect.github.com/eslint/eslint/issues/20137)) (Pixel998) - [`501abd0`](https://redirect.github.com/eslint/eslint/commit/501abd0e916a35554c58b7c0365537f1fa3880ce) feat!: update dependency minimatch to v10 ([#&#8203;20246](https://redirect.github.com/eslint/eslint/issues/20246)) (renovate\[bot]) - [`ca4d3b4`](https://redirect.github.com/eslint/eslint/commit/ca4d3b40085de47561f89656a2207d09946ed45e) fix!: stricter rule tester assertions for valid test cases ([#&#8203;20125](https://redirect.github.com/eslint/eslint/issues/20125)) (唯然) - [`96512a6`](https://redirect.github.com/eslint/eslint/commit/96512a66c86402fb0538cdcb6cd30b9073f6bf3b) fix!: Remove deprecated rule context methods ([#&#8203;20086](https://redirect.github.com/eslint/eslint/issues/20086)) (Nicholas C. Zakas) - [`c69fdac`](https://redirect.github.com/eslint/eslint/commit/c69fdacdb2e886b9d965568a397aa8220db3fe90) feat!: remove eslintrc support ([#&#8203;20037](https://redirect.github.com/eslint/eslint/issues/20037)) (Francesco Trotta) - [`208b5cc`](https://redirect.github.com/eslint/eslint/commit/208b5cc34a8374ff81412b5bec2e0800eebfbd04) feat!: Use `ScopeManager#addGlobals()` ([#&#8203;20132](https://redirect.github.com/eslint/eslint/issues/20132)) (Milos Djermanovic) - [`a2ee188`](https://redirect.github.com/eslint/eslint/commit/a2ee188ea7a38a0c6155f3d39e2b00e1d0f36e14) fix!: add `uniqueItems: true` in `no-invalid-regexp` option ([#&#8203;20155](https://redirect.github.com/eslint/eslint/issues/20155)) (Tanuj Kanti) - [`a89059d`](https://redirect.github.com/eslint/eslint/commit/a89059dbf2832d417dd493ee81483227ec44e4ab) feat!: Program range span entire source text ([#&#8203;20133](https://redirect.github.com/eslint/eslint/issues/20133)) (Pixel998) - [`39a6424`](https://redirect.github.com/eslint/eslint/commit/39a6424373d915fa9de0d7b0caba9a4dc3da9b53) fix!: assert 'text' is a string across all RuleFixer methods ([#&#8203;20082](https://redirect.github.com/eslint/eslint/issues/20082)) (Pixel998) - [`f28fbf8`](https://redirect.github.com/eslint/eslint/commit/f28fbf846244e043c92b355b224d121b06140b44) fix!: Deprecate `"always"` and `"as-needed"` options of the `radix` rule ([#&#8203;20223](https://redirect.github.com/eslint/eslint/issues/20223)) (Milos Djermanovic) - [`aa3fb2b`](https://redirect.github.com/eslint/eslint/commit/aa3fb2b233e929b37220be940575f42c280e0b98) fix!: tighten `func-names` schema ([#&#8203;20119](https://redirect.github.com/eslint/eslint/issues/20119)) (Pixel998) - [`f6c0ed0`](https://redirect.github.com/eslint/eslint/commit/f6c0ed0311dcfee853367d5068c765d066e6b756) feat!: report `eslint-env` comments as errors ([#&#8203;20128](https://redirect.github.com/eslint/eslint/issues/20128)) (Francesco Trotta) - [`4bf739f`](https://redirect.github.com/eslint/eslint/commit/4bf739fb533e59f7f0a66b65f7bc80be0f37d8db) fix!: remove deprecated `LintMessage#nodeType` and `TestCaseError#type` ([#&#8203;20096](https://redirect.github.com/eslint/eslint/issues/20096)) (Pixel998) - [`523c076`](https://redirect.github.com/eslint/eslint/commit/523c076866400670fb2192a3f55dbf7ad3469247) feat!: drop support for jiti < 2.2.0 ([#&#8203;20016](https://redirect.github.com/eslint/eslint/issues/20016)) (michael faith) - [`454a292`](https://redirect.github.com/eslint/eslint/commit/454a292c95f34dad232411ddac06408e6383bb64) feat!: update `eslint:recommended` configuration ([#&#8203;20210](https://redirect.github.com/eslint/eslint/issues/20210)) (Pixel998) - [`4f880ee`](https://redirect.github.com/eslint/eslint/commit/4f880ee02992e1bf0e96ebaba679985e2d1295f1) feat!: remove `v10_*` and inactive `unstable_*` flags ([#&#8203;20225](https://redirect.github.com/eslint/eslint/issues/20225)) (sethamus) - [`f18115c`](https://redirect.github.com/eslint/eslint/commit/f18115c363a4ac7671a4c7f30ee13d57ebba330f) feat!: `no-shadow-restricted-names` report `globalThis` by default ([#&#8203;20027](https://redirect.github.com/eslint/eslint/issues/20027)) (sethamus) - [`c6358c3`](https://redirect.github.com/eslint/eslint/commit/c6358c31fbd3937b92d89be2618ffdf5a774604e) feat!: Require Node.js `^20.19.0 || ^22.13.0 || >=24` ([#&#8203;20160](https://redirect.github.com/eslint/eslint/issues/20160)) (Milos Djermanovic) ##### Features - [`bff9091`](https://redirect.github.com/eslint/eslint/commit/bff9091927811497dbf066b0e3b85ecb37d43822) feat: handle `Array.fromAsync` in `array-callback-return` ([#&#8203;20457](https://redirect.github.com/eslint/eslint/issues/20457)) (Francesco Trotta) - [`290c594`](https://redirect.github.com/eslint/eslint/commit/290c594bb50c439fb71bc75521ee5360daa8c222) feat: add `self` to `no-implied-eval` rule ([#&#8203;20468](https://redirect.github.com/eslint/eslint/issues/20468)) (sethamus) - [`43677de`](https://redirect.github.com/eslint/eslint/commit/43677de07ebd6e14bfac40a46ad749ba783c45f2) feat: fix handling of function and class expression names in `no-shadow` ([#&#8203;20432](https://redirect.github.com/eslint/eslint/issues/20432)) (Milos Djermanovic) - [`f0cafe5`](https://redirect.github.com/eslint/eslint/commit/f0cafe5f37e7765e9d8c2751b5f5d33107687009) feat: rule tester add assertion option `requireData` ([#&#8203;20409](https://redirect.github.com/eslint/eslint/issues/20409)) (fnx) - [`f7ab693`](https://redirect.github.com/eslint/eslint/commit/f7ab6937e63bc618d326710858f5861a68f80616) feat: output RuleTester test case failure index ([#&#8203;19976](https://redirect.github.com/eslint/eslint/issues/19976)) (ST-DDT) - [`7cbcbf9`](https://redirect.github.com/eslint/eslint/commit/7cbcbf9c3c2008deee7d143ae35e668e8ffbccb3) feat: add `countThis` option to `max-params` ([#&#8203;20236](https://redirect.github.com/eslint/eslint/issues/20236)) (Gerkin) - [`f148a5e`](https://redirect.github.com/eslint/eslint/commit/f148a5eaa1e89dd80ade62f0a690186b00b9f6e1) feat: add error assertion options ([#&#8203;20247](https://redirect.github.com/eslint/eslint/issues/20247)) (ST-DDT) - [`09e6654`](https://redirect.github.com/eslint/eslint/commit/09e66549ecada6dcb8c567a60faf044fce049188) feat: update error loc of `require-yield` and `no-useless-constructor` ([#&#8203;20267](https://redirect.github.com/eslint/eslint/issues/20267)) (Tanuj Kanti) ##### Bug Fixes - [`436b82f`](https://redirect.github.com/eslint/eslint/commit/436b82f3c0a8cfa2fdc17d173e95ea11d5d3ee03) fix: update eslint ([#&#8203;20473](https://redirect.github.com/eslint/eslint/issues/20473)) (renovate\[bot]) - [`1d29d22`](https://redirect.github.com/eslint/eslint/commit/1d29d22fe302443cec2a11da0816397f94af97ec) fix: detect default `this` binding in `Array.fromAsync` callbacks ([#&#8203;20456](https://redirect.github.com/eslint/eslint/issues/20456)) (Francesco Trotta) - [`727451e`](https://redirect.github.com/eslint/eslint/commit/727451eff55b35d853e0e443d0de58f4550762bf) fix: fix regression of global mode report range in `strict` rule ([#&#8203;20462](https://redirect.github.com/eslint/eslint/issues/20462)) (ntnyq) - [`e80485f`](https://redirect.github.com/eslint/eslint/commit/e80485fcd27196fa0b6f6b5c7ac8cf49ad4b079d) fix: remove fake `FlatESLint` and `LegacyESLint` exports ([#&#8203;20460](https://redirect.github.com/eslint/eslint/issues/20460)) (Francesco Trotta) - [`9eeff3b`](https://redirect.github.com/eslint/eslint/commit/9eeff3bc13813a786b8a4c3815def97c0fb646ef) fix: update esquery ([#&#8203;20423](https://redirect.github.com/eslint/eslint/issues/20423)) (cryptnix) - [`b34b938`](https://redirect.github.com/eslint/eslint/commit/b34b93852d014ebbcf3538d892b55e0216cdf681) fix: use `Error.prepareStackTrace` to estimate failing test location ([#&#8203;20436](https://redirect.github.com/eslint/eslint/issues/20436)) (Francesco Trotta) - [`51aab53`](https://redirect.github.com/eslint/eslint/commit/51aab5393b058f7cbed69041a9069b2bd106aabd) fix: update eslint ([#&#8203;20443](https://redirect.github.com/eslint/eslint/issues/20443)) (renovate\[bot]) - [`23490b2`](https://redirect.github.com/eslint/eslint/commit/23490b266276792896a0b7b43c49a1ce87bf8568) fix: handle space before colon in `RuleTester` location estimation ([#&#8203;20433](https://redirect.github.com/eslint/eslint/issues/20433)) (Francesco Trotta) - [`f244dbf`](https://redirect.github.com/eslint/eslint/commit/f244dbf2191267a4cafd08645243624baf3e8c83) fix: use `MessagePlaceholderData` type from `@eslint/core` ([#&#8203;20348](https://redirect.github.com/eslint/eslint/issues/20348)) (루밀LuMir) - [`d186f8c`](https://redirect.github.com/eslint/eslint/commit/d186f8c0747f14890e86a5a39708b052b391ddaf) fix: update eslint ([#&#8203;20427](https://redirect.github.com/eslint/eslint/issues/20427)) (renovate\[bot]) - [`2332262`](https://redirect.github.com/eslint/eslint/commit/2332262deb4ef3188b210595896bb0ff552a7e66) fix: error location should not modify error message in RuleTester ([#&#8203;20421](https://redirect.github.com/eslint/eslint/issues/20421)) (Milos Djermanovic) - [`ab99b21`](https://redirect.github.com/eslint/eslint/commit/ab99b21a6715dee1035d8f4e6d6841853eb5563f) fix: ensure `filename` is passed as third argument to `verifyAndFix()` ([#&#8203;20405](https://redirect.github.com/eslint/eslint/issues/20405)) (루밀LuMir) - [`8a60f3b`](https://redirect.github.com/eslint/eslint/commit/8a60f3bc80ad96c65feeb29886342623c630199c) fix: remove `ecmaVersion` and `sourceType` from `ParserOptions` type ([#&#8203;20415](https://redirect.github.com/eslint/eslint/issues/20415)) (Pixel998) - [`eafd727`](https://redirect.github.com/eslint/eslint/commit/eafd727a060131f7fc79b2eb5698d8d27683c3a2) fix: remove `TDZ` scope type ([#&#8203;20231](https://redirect.github.com/eslint/eslint/issues/20231)) (jaymarvelz) - [`39d1f51`](https://redirect.github.com/eslint/eslint/commit/39d1f51680d4fbade16b4d9c07ad61a87ee3b1ea) fix: correct `Scope` typings ([#&#8203;20404](https://redirect.github.com/eslint/eslint/issues/20404)) (sethamus) - [`2bd0f13`](https://redirect.github.com/eslint/eslint/commit/2bd0f13a92fb373827f16210aa4748d4885fddb1) fix: update `verify` and `verifyAndFix` types ([#&#8203;20384](https://redirect.github.com/eslint/eslint/issues/20384)) (Francesco Trotta) - [`ba6ebfa`](https://redirect.github.com/eslint/eslint/commit/ba6ebfa78de0b8522cea5ee80179887e92c6c935) fix: correct typings for `loadESLint()` and `shouldUseFlatConfig()` ([#&#8203;20393](https://redirect.github.com/eslint/eslint/issues/20393)) (루밀LuMir) - [`e7673ae`](https://redirect.github.com/eslint/eslint/commit/e7673ae096900330599680efe91f8a199a5c2e59) fix: correct RuleTester typings ([#&#8203;20105](https://redirect.github.com/eslint/eslint/issues/20105)) (Pixel998) - [`53e9522`](https://redirect.github.com/eslint/eslint/commit/53e95222af8561a8eed282fa9fd44b2f320a3c37) fix: strict removed formatters check ([#&#8203;20241](https://redirect.github.com/eslint/eslint/issues/20241)) (ntnyq) - [`b017f09`](https://redirect.github.com/eslint/eslint/commit/b017f094d4e53728f8d335b9cf8b16dc074afda3) fix: correct `no-restricted-import` messages ([#&#8203;20374](https://redirect.github.com/eslint/eslint/issues/20374)) (Francesco Trotta) ##### Documentation - [`e978dda`](https://redirect.github.com/eslint/eslint/commit/e978ddaab7e6a3c38b4a2afa721148a6ef38f29a) docs: Update README (GitHub Actions Bot) - [`4cecf83`](https://redirect.github.com/eslint/eslint/commit/4cecf8393ae9af18c4cfd50621115eb23b3d0cb6) docs: Update README (GitHub Actions Bot) - [`c79f0ab`](https://redirect.github.com/eslint/eslint/commit/c79f0ab2e2d242a93b08ff2f6a0712e2ef60b7b8) docs: Update README (GitHub Actions Bot) - [`773c052`](https://redirect.github.com/eslint/eslint/commit/773c0527c72c09fb5e63c2036b5cb9783f1f04d3) docs: Update README (GitHub Actions Bot) - [`f2962e4`](https://redirect.github.com/eslint/eslint/commit/f2962e46a0e8ee8e04d76e9d899f6a7c73a646f1) docs: document `meta.docs.frozen` property ([#&#8203;20475](https://redirect.github.com/eslint/eslint/issues/20475)) (Pixel998) - [`8e94f58`](https://redirect.github.com/eslint/eslint/commit/8e94f58bebfd854eed814a39e19dea4e3c3ee4a3) docs: fix broken anchor links from gerund heading updates ([#&#8203;20449](https://redirect.github.com/eslint/eslint/issues/20449)) (Copilot) - [`1495654`](https://redirect.github.com/eslint/eslint/commit/14956543d42ab542f72820f38941d0bcc39a1fbb) docs: Update README (GitHub Actions Bot) - [`0b8ed5c`](https://redirect.github.com/eslint/eslint/commit/0b8ed5c0aa4222a9b6b185c605cfedaef4662dcb) docs: document support for `:is` selector alias ([#&#8203;20454](https://redirect.github.com/eslint/eslint/issues/20454)) (sethamus) - [`1c4b33f`](https://redirect.github.com/eslint/eslint/commit/1c4b33fe8620dcaafbe6e8f4e9515b624476548c) docs: Document policies about ESM-only dependencies ([#&#8203;20448](https://redirect.github.com/eslint/eslint/issues/20448)) (Milos Djermanovic) - [`3e5d38c`](https://redirect.github.com/eslint/eslint/commit/3e5d38cdd5712bef50d440585b0f6669a2e9a9b9) docs: add missing indentation space in rule example ([#&#8203;20446](https://redirect.github.com/eslint/eslint/issues/20446)) (fnx) - [`63a0c7c`](https://redirect.github.com/eslint/eslint/commit/63a0c7c84bf5b12357893ea2bf0482aa3c855bac) docs: Update README (GitHub Actions Bot) - [`65ed0c9`](https://redirect.github.com/eslint/eslint/commit/65ed0c94e7cd1e3f882956113228311d8c7b3463) docs: Update README (GitHub Actions Bot) - [`b0e4717`](https://redirect.github.com/eslint/eslint/commit/b0e4717d6619ffd02913cf3633b44d8e6953d938) docs: \[no-await-in-loop] Expand inapplicability ([#&#8203;20363](https://redirect.github.com/eslint/eslint/issues/20363)) (Niklas Hambüchen) - [`fca421f`](https://redirect.github.com/eslint/eslint/commit/fca421f6a4eecd52f2a7ae5765bd9008f62f9994) docs: Update README (GitHub Actions Bot) - [`d925c54`](https://redirect.github.com/eslint/eslint/commit/d925c54f045b2230d3404e8aa18f4e2860a35e1d) docs: update config syntax in `no-lone-blocks` ([#&#8203;20413](https://redirect.github.com/eslint/eslint/issues/20413)) (Pixel998) - [`7d5c95f`](https://redirect.github.com/eslint/eslint/commit/7d5c95f281cb88868f4e09ca07fbbc6394d78c41) docs: remove redundant `sourceType: "module"` from rule examples ([#&#8203;20412](https://redirect.github.com/eslint/eslint/issues/20412)) (Pixel998) - [`02e7e71`](https://redirect.github.com/eslint/eslint/commit/02e7e7126366fc5eeffb713f865d80a759dc14b0) docs: correct `.mts` glob pattern in files with extensions example ([#&#8203;20403](https://redirect.github.com/eslint/eslint/issues/20403)) (Ali Essalihi) - [`264b981`](https://redirect.github.com/eslint/eslint/commit/264b981101a3cf0c12eba200ac64e5523186a89f) docs: Update README (GitHub Actions Bot) - [`5a4324f`](https://redirect.github.com/eslint/eslint/commit/5a4324f38e7ce370038351ef7412dcf8548c105e) docs: clarify `"local"` option of `no-unused-vars` ([#&#8203;20385](https://redirect.github.com/eslint/eslint/issues/20385)) (Milos Djermanovic) - [`e593aa0`](https://redirect.github.com/eslint/eslint/commit/e593aa0fd29f51edea787815ffc847aa723ef1f8) docs: improve clarity, grammar, and wording in documentation site README ([#&#8203;20370](https://redirect.github.com/eslint/eslint/issues/20370)) (Aditya) - [`3f5062e`](https://redirect.github.com/eslint/eslint/commit/3f5062ed5f27eb25414faced2478ae076906874e) docs: Add messages property to rule meta documentation ([#&#8203;20361](https://redirect.github.com/eslint/eslint/issues/20361)) (Sabya Sachi) - [`9e5a5c2`](https://redirect.github.com/eslint/eslint/commit/9e5a5c2b6b368cdacd678eabf36b441bd8bb726c) docs: remove `Examples` headings from rule docs ([#&#8203;20364](https://redirect.github.com/eslint/eslint/issues/20364)) (Milos Djermanovic) - [`194f488`](https://redirect.github.com/eslint/eslint/commit/194f488a8dc97850485afe704d2a64096582f96d) docs: Update README (GitHub Actions Bot) - [`0f5a94a`](https://redirect.github.com/eslint/eslint/commit/0f5a94a84beee19f376025c74f703f275d52c94b) docs: \[class-methods-use-this] explain purpose of rule ([#&#8203;20008](https://redirect.github.com/eslint/eslint/issues/20008)) (Kirk Waiblinger) - [`df5566f`](https://redirect.github.com/eslint/eslint/commit/df5566f826d9f5740546e473aa6876b1f7d2f12c) docs: add Options section to all rule docs ([#&#8203;20296](https://redirect.github.com/eslint/eslint/issues/20296)) (sethamus) - [`adf7a2b`](https://redirect.github.com/eslint/eslint/commit/adf7a2b202743a98edc454890574292dd2b34837) docs: no-unsafe-finally note for generator functions ([#&#8203;20330](https://redirect.github.com/eslint/eslint/issues/20330)) (Tom Pereira) - [`ef7028c`](https://redirect.github.com/eslint/eslint/commit/ef7028c9688dc931051a4217637eb971efcbd71b) docs: Update README (GitHub Actions Bot) - [`fbae5d1`](https://redirect.github.com/eslint/eslint/commit/fbae5d18854b30ea3b696672c7699cef3ec92140) docs: consistently use "v10.0.0" in migration guide ([#&#8203;20328](https://redirect.github.com/eslint/eslint/issues/20328)) (Pixel998) - [`778aa2d`](https://redirect.github.com/eslint/eslint/commit/778aa2d83e1ef1e2bd1577ee976c5a43472a3dbe) docs: ignoring default file patterns ([#&#8203;20312](https://redirect.github.com/eslint/eslint/issues/20312)) (Tanuj Kanti) - [`4b5dbcd`](https://redirect.github.com/eslint/eslint/commit/4b5dbcdae52c1c16293dc68028cab18ed2504841) docs: reorder v10 migration guide ([#&#8203;20315](https://redirect.github.com/eslint/eslint/issues/20315)) (Milos Djermanovic) - [`5d84a73`](https://redirect.github.com/eslint/eslint/commit/5d84a7371d01ead1b274600c055fe49150d487f1) docs: Update README (GitHub Actions Bot) - [`37c8863`](https://redirect.github.com/eslint/eslint/commit/37c8863088a2d7e845d019f68a329f53a3fe2c35) docs: fix incorrect anchor link in v10 migration guide ([#&#8203;20299](https://redirect.github.com/eslint/eslint/issues/20299)) (Pixel998) - [`077ff02`](https://redirect.github.com/eslint/eslint/commit/077ff028b6ce036da091d2f7ed8c606c9d017468) docs: add migrate-to-10.0.0 doc ([#&#8203;20143](https://redirect.github.com/eslint/eslint/issues/20143)) (唯然) - [`3822e1b`](https://redirect.github.com/eslint/eslint/commit/3822e1b768bb4a64b72b73b5657737a6ee5c8afe) docs: Update README (GitHub Actions Bot) ##### Build Related - [`9f08712`](https://redirect.github.com/eslint/eslint/commit/9f0871236e90ec78bcdbfa352cc1363b4bae5596) Build: changelog update for 10.0.0-rc.2 (Jenkins) - [`1e2c449`](https://redirect.github.com/eslint/eslint/commit/1e2c449701524b426022fde19144b1d22d8197b0) Build: changelog update for 10.0.0-rc.1 (Jenkins) - [`c4c72a8`](https://redirect.github.com/eslint/eslint/commit/c4c72a8d996dda629e85e78a6ef5417242594b5d) Build: changelog update for 10.0.0-rc.0 (Jenkins) - [`7e4daf9`](https://redirect.github.com/eslint/eslint/commit/7e4daf93d255ed343d68e999aad167bb20e5a96b) Build: changelog update for 10.0.0-beta.0 (Jenkins) - [`a126a2a`](https://redirect.github.com/eslint/eslint/commit/a126a2ab136406017f2dac2d7632114e37e62dc2) build: add .scss files entry to knip ([#&#8203;20389](https://redirect.github.com/eslint/eslint/issues/20389)) (Francesco Trotta) - [`f5c0193`](https://redirect.github.com/eslint/eslint/commit/f5c01932f69189b260646d60b28011c55870e65d) Build: changelog update for 10.0.0-alpha.1 (Jenkins) - [`165326f`](https://redirect.github.com/eslint/eslint/commit/165326f0469dd6a9b33598a6fceb66336bb2deb5) Build: changelog update for 10.0.0-alpha.0 (Jenkins) ##### Chores - [`1ece282`](https://redirect.github.com/eslint/eslint/commit/1ece282c2286b5dc187ece2a793dbd8798f20bd7) chore: ignore `/docs/v9.x` in link checker ([#&#8203;20452](https://redirect.github.com/eslint/eslint/issues/20452)) (Milos Djermanovic) - [`034e139`](https://redirect.github.com/eslint/eslint/commit/034e1397446205e83eb341354605380195c88633) ci: add type integration test for `@html-eslint/eslint-plugin` ([#&#8203;20345](https://redirect.github.com/eslint/eslint/issues/20345)) (sethamus) - [`f3fbc2f`](https://redirect.github.com/eslint/eslint/commit/f3fbc2f60cbe2c718364feb8c3fc0452c0df3c56) chore: set `@eslint/js` version to 10.0.0 to skip releasing it ([#&#8203;20466](https://redirect.github.com/eslint/eslint/issues/20466)) (Milos Djermanovic) - [`afc0681`](https://redirect.github.com/eslint/eslint/commit/afc06817bbd0625c7b0a46bdc81c38dab0c99441) chore: remove scopeManager.addGlobals patch for typescript-eslint parser ([#&#8203;20461](https://redirect.github.com/eslint/eslint/issues/20461)) (fnx) - [`3e5a173`](https://redirect.github.com/eslint/eslint/commit/3e5a173053fe0bb3d0f29aff12eb2c19ae21aa36) refactor: use types from `@eslint/plugin-kit` ([#&#8203;20435](https://redirect.github.com/eslint/eslint/issues/20435)) (Pixel998) - [`11644b1`](https://redirect.github.com/eslint/eslint/commit/11644b1dc2bdf4c4f3a97901932e5f25c9f60775) ci: rename workflows ([#&#8203;20463](https://redirect.github.com/eslint/eslint/issues/20463)) (Milos Djermanovic) - [`2d14173`](https://redirect.github.com/eslint/eslint/commit/2d14173729ae75fe562430dd5e37c457f44bc7ac) chore: fix typos in docs and comments ([#&#8203;20458](https://redirect.github.com/eslint/eslint/issues/20458)) (o-m12a) - [`6742f92`](https://redirect.github.com/eslint/eslint/commit/6742f927ba6afb1bce6f64b9b072a1a11dbf53c4) test: add endLine/endColumn to invalid test case in no-alert ([#&#8203;20441](https://redirect.github.com/eslint/eslint/issues/20441)) (경하) - [`3e22c82`](https://redirect.github.com/eslint/eslint/commit/3e22c82a87f44f7407ff75b17b26f1ceed3edd14) test: add missing location data to no-template-curly-in-string tests ([#&#8203;20440](https://redirect.github.com/eslint/eslint/issues/20440)) (Haeun Kim) - [`b4b3127`](https://redirect.github.com/eslint/eslint/commit/b4b3127f8542c599ce2dea804b6582ebc40c993d) chore: package.json update for [@&#8203;eslint/js](https://redirect.github.com/eslint/js) release (Jenkins) - [`f658419`](https://redirect.github.com/eslint/eslint/commit/f6584191cb5cabd62f6a197339a91e1f9b3f8432) refactor: remove `raw` parser option from JS language ([#&#8203;20416](https://redirect.github.com/eslint/eslint/issues/20416)) (Pixel998) - [`2c3efb7`](https://redirect.github.com/eslint/eslint/commit/2c3efb728b294b74a240ec24c7be8137a31cf5f0) chore: remove `category` from type test fixtures ([#&#8203;20417](https://redirect.github.com/eslint/eslint/issues/20417)) (Pixel998) - [`36193fd`](https://redirect.github.com/eslint/eslint/commit/36193fd9ad27764d8e4a24ce7c7bbeeaf5d4a6ba) chore: remove `category` from formatter test fixtures ([#&#8203;20418](https://redirect.github.com/eslint/eslint/issues/20418)) (Pixel998) - [`e8d203b`](https://redirect.github.com/eslint/eslint/commit/e8d203b0d9f66e55841863f90d215fd83b7eee0f) chore: add JSX language tag validation to `check-rule-examples` ([#&#8203;20414](https://redirect.github.com/eslint/eslint/issues/20414)) (Pixel998) - [`bc465a1`](https://redirect.github.com/eslint/eslint/commit/bc465a1e9d955b6e53a45d1b5da7c632dae77262) chore: pin dependencies ([#&#8203;20397](https://redirect.github.com/eslint/eslint/issues/20397)) (renovate\[bot]) - [`703f0f5`](https://redirect.github.com/eslint/eslint/commit/703f0f551daea28767e5a68a00e335928919a7ff) test: replace deprecated rules in `linter` tests ([#&#8203;20406](https://redirect.github.com/eslint/eslint/issues/20406)) (루밀LuMir) - [`ba71baa`](https://redirect.github.com/eslint/eslint/commit/ba71baa87265888b582f314163df1d727441e2f1) test: enable `strict` mode in type tests ([#&#8203;20398](https://redirect.github.com/eslint/eslint/issues/20398)) (루밀LuMir) - [`f9c4968`](https://redirect.github.com/eslint/eslint/commit/f9c49683a6d69ff0b5425803955fc226f7e05d76) refactor: remove `lib/linter/rules.js` ([#&#8203;20399](https://redirect.github.com/eslint/eslint/issues/20399)) (Francesco Trotta) - [`6f1c48e`](https://redirect.github.com/eslint/eslint/commit/6f1c48e5e7f8195f7796ea04e756841391ada927) chore: updates for v9.39.2 release (Jenkins) - [`54bf0a3`](https://redirect.github.com/eslint/eslint/commit/54bf0a3646265060f5f22faef71ec840d630c701) ci: create package manager test ([#&#8203;20392](https://redirect.github.com/eslint/eslint/issues/20392)) (루밀LuMir) - [`3115021`](https://redirect.github.com/eslint/eslint/commit/3115021439490d1ed12da5804902ebbf8a5e574b) refactor: simplify JSDoc comment detection logic ([#&#8203;20360](https://redirect.github.com/eslint/eslint/issues/20360)) (Pixel998) - [`4345b17`](https://redirect.github.com/eslint/eslint/commit/4345b172a81e1394579ec09df51ba460b956c3b5) chore: update `@eslint-community/regexpp` to `4.12.2` ([#&#8203;20366](https://redirect.github.com/eslint/eslint/issues/20366)) (루밀LuMir) - [`772c9ee`](https://redirect.github.com/eslint/eslint/commit/772c9ee9b65b6ad0be3e46462a7f93c37578cfa8) chore: update dependency [@&#8203;eslint/eslintrc](https://redirect.github.com/eslint/eslintrc) to ^3.3.3 ([#&#8203;20359](https://redirect.github.com/eslint/eslint/issues/20359)) (renovate\[bot]) - [`0b14059`](https://redirect.github.com/eslint/eslint/commit/0b14059491d830a49b3577931f4f68fbcfce6be5) chore: package.json update for [@&#8203;eslint/js](https://redirect.github.com/eslint/js) release (Jenkins) - [`d6e7bf3`](https://redirect.github.com/eslint/eslint/commit/d6e7bf3064be01d159d6856e3718672c6a97a8e1) ci: bump actions/checkout from 5 to 6 ([#&#8203;20350](https://redirect.github.com/eslint/eslint/issues/20350)) (dependabot\[bot]) - [`139d456`](https://redirect.github.com/eslint/eslint/commit/139d4567d4afe3f1e1cdae21769d5e868f90ef0d) chore: require mandatory headers in rule docs ([#&#8203;20347](https://redirect.github.com/eslint/eslint/issues/20347)) (Milos Djermanovic) - [`3b0289c`](https://redirect.github.com/eslint/eslint/commit/3b0289c7b605b2d94fe2d0c347d07eea4b6ba1d4) chore: remove unused `.eslintignore` and test fixtures ([#&#8203;20316](https://redirect.github.com/eslint/eslint/issues/20316)) (Pixel998) - [`a463e7b`](https://redirect.github.com/eslint/eslint/commit/a463e7bea0d18af55e5557e33691e4b0685d9523) chore: update dependency js-yaml to v4 \[security] ([#&#8203;20319](https://redirect.github.com/eslint/eslint/issues/20319)) (renovate\[bot]) - [`ebfe905`](https://redirect.github.com/eslint/eslint/commit/ebfe90533d07a7020a5c63b93763fe537120f61f) chore: remove redundant rules from eslint-config-eslint ([#&#8203;20327](https://redirect.github.com/eslint/eslint/issues/20327)) (Milos Djermanovic) - [`88dfdb2`](https://redirect.github.com/eslint/eslint/commit/88dfdb23ee541de4e9c3aa5d8a152c5980f6cc3f) test: add regression tests for message placeholder interpolation ([#&#8203;20318](https://redirect.github.com/eslint/eslint/issues/20318)) (fnx) - [`6ed0f75`](https://redirect.github.com/eslint/eslint/commit/6ed0f758ff460b7a182c8d16b0487ae707e43cc9) chore: skip type checking in `eslint-config-eslint` ([#&#8203;20323](https://redirect.github.com/eslint/eslint/issues/20323)) (Francesco Trotta) - [`1e2cad5`](https://redirect.github.com/eslint/eslint/commit/1e2cad5f6fa47ed6ed89d2a29798dda926d50990) chore: package.json update for [@&#8203;eslint/js](https://redirect.github.com/eslint/js) release (Jenkins) - [`9da2679`](https://redirect.github.com/eslint/eslint/commit/9da26798483270a2c3c490c41cbd8f0c28edf75a) chore: update `@eslint/*` dependencies ([#&#8203;20321](https://redirect.github.com/eslint/eslint/issues/20321)) (Milos Djermanovic) - [`0439794`](https://redirect.github.com/eslint/eslint/commit/043979418161e1c17becef31b1dd5c6e1b031e98) refactor: use types from [@&#8203;eslint/core](https://redirect.github.com/eslint/core) ([#&#8203;20235](https://redirect.github.com/eslint/eslint/issues/20235)) (jaymarvelz) - [`cb51ec2`](https://redirect.github.com/eslint/eslint/commit/cb51ec2d6d3b729bf02a5e6b58b236578c6cce42) test: cleanup `SourceCode#traverse` tests ([#&#8203;20289](https://redirect.github.com/eslint/eslint/issues/20289)) (Milos Djermanovic) - [`897a347`](https://redirect.github.com/eslint/eslint/commit/897a3471d6da073c1a179fa84f7a3fe72973ec45) chore: remove restriction for `type` in rule tests ([#&#8203;20305](https://redirect.github.com/eslint/eslint/issues/20305)) (Pixel998) - [`d972098`](https://redirect.github.com/eslint/eslint/commit/d9720988579734da7323fbacca4c67058651d6ff) chore: ignore prettier updates in renovate to keep in sync with trunk ([#&#8203;20304](https://redirect.github.com/eslint/eslint/issues/20304)) (Pixel998) - [`a086359`](https://redirect.github.com/eslint/eslint/commit/a0863593872fe01b5dd0e04c682450c26ae40ac8) chore: remove redundant `fast-glob` dev-dependency ([#&#8203;20301](https://redirect.github.com/eslint/eslint/issues/20301)) (루밀LuMir) - [`564b302`](https://redirect.github.com/eslint/eslint/commit/564b30215c3c1aba47bc29f948f11db5c824cacd) chore: install `prettier` as a dev dependency ([#&#8203;20302](https://redirect.github.com/eslint/eslint/issues/20302)) (michael faith) - [`8257b57`](https://redirect.github.com/eslint/eslint/commit/8257b5729d6a26f88b079aa389df4ecea4451a80) refactor: correct regex for `eslint-plugin/report-message-format` ([#&#8203;20300](https://redirect.github.com/eslint/eslint/issues/20300)) (루밀LuMir) - [`e251671`](https://redirect.github.com/eslint/eslint/commit/e2516713bc9ae62117da3f490d9cb6a9676f44fe) refactor: extract assertions in RuleTester ([#&#8203;20135](https://redirect.github.com/eslint/eslint/issues/20135)) (唯然) - [`2e7f25e`](https://redirect.github.com/eslint/eslint/commit/2e7f25e18908e66d9bd1a4dc016709e39e19a24d) chore: add `legacy-peer-deps` to `.npmrc` ([#&#8203;20281](https://redirect.github.com/eslint/eslint/issues/20281)) (Milos Djermanovic) - [`39c638a`](https://redirect.github.com/eslint/eslint/commit/39c638a9aeb7ddc353684d536bbf69d1d39380bd) chore: update eslint-config-eslint dependencies for v10 prereleases ([#&#8203;20278](https://redirect.github.com/eslint/eslint/issues/20278)) (Milos Djermanovic) - [`8533b3f`](https://redirect.github.com/eslint/eslint/commit/8533b3fa281e6ecc481083ee83e9c34cae22f31c) chore: update dependency [@&#8203;eslint/json](https://redirect.github.com/eslint/json) to ^0.14.0 ([#&#8203;20288](https://redirect.github.com/eslint/eslint/issues/20288)) (renovate\[bot]) - [`796ddf6`](https://redirect.github.com/eslint/eslint/commit/796ddf6db5c8fe3e098aa3198128f8ce3c58f8e0) chore: update dependency [@&#8203;eslint/js](https://redirect.github.com/eslint/js) to ^9.39.1 ([#&#8203;20285](https://redirect.github.com/eslint/eslint/issues/20285)) (renovate\[bot]) </details> <details> <summary>mantinedev/mantine (@&#8203;mantine/core)</summary> ### [`v9.1.1`](https://redirect.github.com/mantinedev/mantine/releases/tag/9.1.1) [Compare Source](https://redirect.github.com/mantinedev/mantine/compare/9.1.0...9.1.1) ##### What's Changed - `[@mantine/spotlight]` Fix error thrown when listId is empty ([#&#8203;8863](https://redirect.github.com/mantinedev/mantine/issues/8863)) - `[@mantine/schedule]` Fix `onEventClick` not being passed down to MoreEvents in DayView and MonthView components ([#&#8203;8862](https://redirect.github.com/mantinedev/mantine/issues/8862)) - `[@mantine/core]` Tree: Add dnd handle and dnd lock support - `[@mantine/schedule]` Fix `labels` not propagating to custom schedule header and more events lists - `[@mantine/modals]` Add ModalsSettings type export - `[@mantine/schedule]` Fix `renderEvent` not working in MoreEvents - `[@mantine/mcp-server]` Update displayed version - `[@mantine/core]` Combobox: Fix keyboard events not triggering in Safari after click on the inout ([#&#8203;7386](https://redirect.github.com/mantinedev/mantine/issues/7386)) - `[@mantine/hooks]` use-focus-return: Fix incorrect logic when used with nested focus traps ([#&#8203;8857](https://redirect.github.com/mantinedev/mantine/issues/8857)) - `[@mantine/core]` ScrollArea: Fix scrollbar never visible with `offsetScrollbars="present"` ([#&#8203;8844](https://redirect.github.com/mantinedev/mantine/issues/8844)) - `[@mantine/core]` Fix incorrect `renderOption` type in Combobox-based components ([#&#8203;8858](https://redirect.github.com/mantinedev/mantine/issues/8858)) - `[@mantine/hooks]` use-mask: Fix stale mask partial remaining as input value on blur after input field was cleared - `[@mantine/hooks]` use-mask: Fix incorrect cursor position handling - `[@mantine/hooks]` use-mask: Fix part of the mask remaining as input value on blur - `[@mantine/core]` Radio: Fix icon not being centered on some low-density screens ([#&#8203;8845](https://redirect.github.com/mantinedev/mantine/issues/8845)) - `[@mantine/core]` Highlight: Fix wholeWord matching for non-ASCII characters - `[@mantine/core]` Card: Fix Card.Section not being handled correctly during server-side rendering of server components ([#&#8203;8846](https://redirect.github.com/mantinedev/mantine/issues/8846))) - `[@mantine/core]` Fix `clearButtonProps={{ size: lg }}` not working when passed to Select and other similar components ([#&#8203;8855](https://redirect.github.com/mantinedev/mantine/issues/8855)) - `[@mantine/core]` Fix Styles API defined for Input not being applied to Select and MultiSelect components ([#&#8203;8851](https://redirect.github.com/mantinedev/mantine/issues/8851)) ##### New Contributors - [@&#8203;malekmimouna](https://redirect.github.com/malekmimouna) made their first contribution in [#&#8203;8856](https://redirect.github.com/mantinedev/mantine/pull/8856) - [@&#8203;dfedoryshchev](https://redirect.github.com/dfedoryshchev) made their first contribution in [#&#8203;8853](https://redirect.github.com/mantinedev/mantine/pull/8853) - [@&#8203;stasyzon](https://redirect.github.com/stasyzon) made their first contribution in [#&#8203;8845](https://redirect.github.com/mantinedev/mantine/pull/8845) - [@&#8203;atinary-ybouzonie](https://redirect.github.com/atinary-ybouzonie) made their first contribution in [#&#8203;8863](https://redirect.github.com/mantinedev/mantine/pull/8863) **Full Changelog**: <https://github.com/mantinedev/mantine/compare/9.1.0...9.1.1> ### [`v9.1.0`](https://redirect.github.com/mantinedev/mantine/releases/tag/9.1.0) [Compare Source](https://redirect.github.com/mantinedev/mantine/compare/9.0.2...9.1.0) [View changelog with demos on mantine.dev website](https://mantine.dev/changelog/9-1-0) ##### Support Mantine development You can now sponsor Mantine development with [OpenCollective](https://opencollective.com/mantinedev). All funds are used to improve Mantine and create new features and components. ##### deduplicateInlineStyles New `deduplicateInlineStyles` prop on [MantineProvider](https://mantine.dev/theming/mantine-provider) enables React 19 style tag deduplication for responsive [style props](https://mantine.dev/styles/style-props). When many components share the same responsive style prop values, only a single `<style />` tag is generated and hoisted to `<head />` instead of each component injecting its own: ```tsx import { MantineProvider } from '@&#8203;mantine/core'; function Demo() { return ( <MantineProvider deduplicateInlineStyles> {/* Your app here */} </MantineProvider> ); } ``` This can significantly improve performance when rendering large lists of components with identical responsive style props. See the [styles performance guide](https://mantine.dev/styles/styles-performance) for more details. ##### use-mask hook New [use-mask](https://mantine.dev/hooks/use-mask) hook attaches real-time input masking to any `<input>` element via a ref callback. It formats user input against a defined pattern and exposes both the masked display value and the raw unmasked value. The hook supports built-in and custom tokens, dynamic masks, character transforms, optional segments, and regex array format: ```tsx import { TextInput, Text } from '@&#8203;mantine/core'; import { useMask } from '@&#8203;mantine/hooks'; function Demo() { const { ref, value, rawValue } = useMask({ mask: '(999) 999-9999' }); return ( <> <TextInput ref={ref} label="Phone number" placeholder="(___) ___-____" /> <Text size="sm" mt="sm">Masked value: {value}</Text> <Text size="sm">Raw value: {rawValue}</Text> </> ); } ``` ##### MaskInput component New [MaskInput](https://mantine.dev/core/mask-input) component is a wrapper around [use-mask](https://mantine.dev/hooks/use-mask) hook that provides all standard input props (label, description, error, etc.) and supports all mask options: ```tsx import { MaskInput } from '@&#8203;mantine/core'; function Demo() { return ( <MaskInput variant="default" size="sm" radius="md" label="Input label" withAsterisk={false} description="Input description" error="" mask="(999) 999-9999" placeholder="(___) ___-____" /> ); } ``` ##### Treemap component New [Treemap](https://mantine.dev/charts/treemap) component displays hierarchical data as a set of nested rectangles. It is based on the [Treemap recharts component](https://recharts.org/en-US/api/Treemap): ```tsx // Demo.tsx import { Treemap } from '@&#8203;mantine/charts'; import { data } from './data'; function Demo() { return <Treemap data={data} />; } // data.ts export const data = [ { name: 'Frontend', color: 'blue.8', children: [ { name: 'React', value: 400 }, { name: 'Vue', value: 200 }, { name: 'Angular', value: 150 }, ], }, { name: 'Backend', color: 'teal.8', children: [ { name: 'Node', value: 300 }, { name: 'Python', value: 250 }, { name: 'Go', value: 100 }, ], }, { name: 'Mobile', color: 'red.8', children: [ { name: 'React Native', value: 200 }, { name: 'Flutter', value: 180 }, ], }, ]; ``` ##### TimePicker duration type [TimePicker](https://mantine.dev/dates/time-picker) component now supports `type="duration"` prop that allows entering durations that exceed 24 hours. In this mode, the hours field has no upper limit and the input width adjusts dynamically based on the entered value: ```tsx import { TimePicker } from '@&#8203;mantine/dates'; function Demo() { return <TimePicker label="Enter duration" type="duration" withSeconds />; } ``` ##### Heatmap legend [Heatmap](https://mantine.dev/charts/heatmap) component now supports `withLegend` prop that displays a color legend below the chart. Use `legendLabels` prop to customize labels (default: `['Less', 'More']`): ```tsx // Demo.tsx import { Heatmap } from '@&#8203;mantine/charts'; import { data } from './data'; function Demo() { return ( <Heatmap data={data} startDate="2024-02-16" endDate="2025-02-16" withMonthLabels withWeekdayLabels withLegend /> ); } // data.ts export const data = ${JSON.stringify(data, null, 2)}; ``` ##### MonthPicker and YearPicker presets [MonthPicker](https://mantine.dev/dates/month-picker) and [YearPicker](https://mantine.dev/dates/year-picker) components now support `presets` prop that allows adding predefined values to pick from. Presets are also available in [MonthPickerInput](https://mantine.dev/dates/month-picker-input) and [YearPickerInput](https://mantine.dev/dates/year-picker-input) components: ```tsx import dayjs from 'dayjs'; import { MonthPicker } from '@&#8203;mantine/dates'; function Demo() { return ( <MonthPicker presets={[ { value: dayjs().startOf('month').format('YYYY-MM-DD'), label: 'This month' }, { value: dayjs().add(1, 'month').startOf('month').format('YYYY-MM-DD'), label: 'Next month' }, { value: dayjs().subtract(1, 'month').startOf('month').format('YYYY-MM-DD'), label: 'Last month' }, { value: dayjs().add(6, 'month').startOf('month').format('YYYY-MM-DD'), label: 'In 6 months' }, { value: dayjs().add(1, 'year').startOf('month').format('YYYY-MM-DD'), label: 'Next year' }, { value: dayjs().subtract(1, 'year').startOf('month').format('YYYY-MM-DD'), label: 'Last year' }, ]} /> ); } ``` ##### use-roving-index hook New [use-roving-index](https://mantine.dev/hooks/use-roving-index) hook implements the [roving tabindex](https://www.w3.org/WAI/ARIA/apg/practices/keyboard-interface/#kbd_roving_tabindex) keyboard navigation pattern. It manages `tabIndex` state for a group of focusable elements, handles arrow key navigation with disabled item skipping, and supports both 1D lists and 2D grids: ```tsx import { Button, Group } from '@&#8203;mantine/core'; import { useRovingIndex } from '@&#8203;mantine/hooks'; const items = ['Bold', 'Italic', 'Underline', 'Strikethrough', 'Code']; function Demo() { const { getItemProps } = useRovingIndex({ total: items.length, orientation: 'horizontal', loop: true, }); return ( <Group gap="xs"> {items.map((item, index) => ( <Button key={item} variant="default" {...getItemProps({ index })}> {item} </Button> ))} </Group> ); } ``` ##### Tree drag and drop [Tree](https://mantine.dev/core/tree) component now supports drag-and-drop reordering of nodes. Provide `onDragDrop` callback to enable it, and use the `moveTreeNode` utility to update data based on the result: ```tsx import { useState } from 'react'; import { CaretDownIcon } from '@&#8203;phosphor-icons/react'; import { Group, moveTreeNode, RenderTreeNodePayload, Tree, TreeNodeData } from '@&#8203;mantine/core'; const data: TreeNodeData[] = [ { label: 'Pages', value: 'pages', children: [ { label: 'index.tsx', value: 'pages/index.tsx' }, { label: 'about.tsx', value: 'pages/about.tsx' }, { label: 'contact.tsx', value: 'pages/contact.tsx' }, ], }, { label: 'Components', value: 'components', children: [ { label: 'Header.tsx', value: 'components/Header.tsx' }, { label: 'Footer.tsx', value: 'components/Footer.tsx' }, { label: 'Sidebar.tsx', value: 'components/Sidebar.tsx' }, ], }, { label: 'package.json', value: 'package.json' }, { label: 'tsconfig.json', value: 'tsconfig.json' }, ]; function Leaf({ node, expanded, hasChildren, elementProps }: RenderTreeNodePayload) { return ( <Group gap={5} {...elementProps}> {hasChildren && ( <CaretDownIcon size={18} style={{ transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)' }} /> )} <span>{node.label}</span> </Group> ); } function Demo() { const [treeData, setTreeData] = useState(data); return ( <Tree data={treeData} onDragDrop={(payload) => setTreeData((current) => moveTreeNode(current, payload)) } renderNode={(payload) => <Leaf {...payload} />} /> ); } ``` ##### Tree async loading [Tree](https://mantine.dev/core/tree) now supports lazy loading of children. Set `hasChildren: true` on a node without providing `children` – when the node is expanded for the first time, `onLoadChildren` callback passed to `useTree` is called. Use `mergeAsyncChildren` utility to splice loaded children into your data: ```tsx import { useState } from 'react'; import { CaretDownIcon, SpinnerIcon } from '@&#8203;phosphor-icons/react'; import { Group, mergeAsyncChildren, RenderTreeNodePayload, Tree, TreeNodeData, useTree, } from '@&#8203;mantine/core'; const initialData: TreeNodeData[] = [ { label: 'Documents', value: 'documents', hasChildren: true }, { label: 'Photos', value: 'photos', hasChildren: true }, { label: 'README.md', value: 'readme' }, ]; // Simulates an API call to load children async function fetchChildren(parentValue: string): Promise<TreeNodeData[]> { await new Promise((resolve) => setTimeout(resolve, 1000)); return [ { label: `${parentValue}/file-1.txt`, value: `${parentValue}/file-1.txt` }, { label: `${parentValue}/file-2.txt`, value: `${parentValue}/file-2.txt` }, { label: `${parentValue}/subfolder`, value: `${parentValue}/subfolder`, hasChildren: true, }, ]; } function Leaf({ node, expanded, hasChildren, elementProps, isLoading }: RenderTreeNodePayload) { return ( <Group gap={5} wrap="nowrap" {...elementProps}> {isLoading ? ( <SpinnerIcon size={18} style={{ animation: 'spin 1s linear infinite', flexShrink: 0 }} /> ) : ( hasChildren && ( <CaretDownIcon size={18} style={{ transform: expanded ? 'rotate(180deg)' : 'rotate(0deg)', flexShrink: 0 }} /> ) )} <span style={{ overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' }}> {node.label} </span> </Group> ); } function Demo() { const [data, setData] = useState(initialData); const tree = useTree({ onLoadChildren: async (value) => { const children = await fetchChildren(value); setData((prev) => mergeAsyncChildren(prev, value, children)); }, }); return ( <Tree data={data} tree={tree} renderNode={(payload) => <Leaf {...payload} />} /> ); } ``` ##### Tree search and filtering [Tree](https://mantine.dev/core/tree) now includes `filterTreeData` utility to filter tree data based on a search query. Matching nodes and their ancestors are preserved in the result. You can provide a custom filter function for advanced matching (for example, fuzzy search with fuse.js): ```tsx import { useMemo, useState } from 'react'; import { filterTreeData, getTreeExpandedState, TextInput, Tree, TreeNodeData, useTree, } from '@&#8203;mantine/core'; const data: TreeNodeData[] = [ { label: 'src', value: 'src', children: [ { label: 'components', value: 'src/components', children: [ { label: 'Accordion.tsx', value: 'src/components/Accordion.tsx' }, { label: 'Tree.tsx', value: 'src/components/Tree.tsx' }, { label: 'Button.tsx', value: 'src/components/Button.tsx' }, { label: 'Input.tsx', value: 'src/components/Input.tsx' }, ], }, { label: 'hooks', value: 'src/hooks', children: [ { label: 'use-debounce.ts', value: 'src/hooks/use-debounce.ts' }, { label: 'use-media-query.ts', value: 'src/hooks/use-media-query.ts' }, ], }, ], }, { label: 'public', value: 'public', children: [ { label: 'favicon.ico', value: 'public/favicon.ico' }, { label: 'logo.svg', value: 'public/logo.svg' }, ], }, { label: 'package.json', value: 'package.json' }, { label: 'tsconfig.json', value: 'tsconfig.json' }, ]; function Demo() { const [search, setSearch] = useState(''); const tree = useTree(); const filteredData = useMemo( () => filterTreeData(data, search), [search] ); const handleSearchChange = (value: string) => { setSearch(value); if (value.trim()) { const next = filterTreeData(data, value); tree.setExpandedState(getTreeExpandedState(next, '*')); } else { tree.collapseAllNodes(); } }; return ( <div> <TextInput placeholder="Search..." mb="sm" value={search} onChange={(event) => handleSearchChange(event.currentTarget.value)} /> <Tree data={filteredData} tree={tree} /> </div> ); } ``` ##### Tree connecting lines [Tree](https://mantine.dev/core/tree) now supports `withLines` prop to display connecting lines showing parent-child relationships. Lines adapt to `levelOffset` spacing automatically: ```tsx import { getTreeExpandedState, Tree, useTree } from '@&#8203;mantine/core'; import { data } from './data'; function Demo() { const tree = useTree({ initialExpandedState: getTreeExpandedState(data, '*'), }); return <Tree data={data} tree={tree} withLines />; } ``` ##### Tree virtualization [Tree](https://mantine.dev/core/tree) now provides `flattenTreeData` utility and `FlatTreeNode` component for virtualized rendering of large trees. The component does not depend on any virtualization library – you supply one yourself (e.g., `@tanstack/react-virtual`): ```tsx import { useMemo, useRef } from 'react'; import { useVirtualizer } from '@&#8203;tanstack/react-virtual'; import { FlatTreeNode, flattenTreeData, getTreeExpandedState, TreeNodeData, useTree, } from '@&#8203;mantine/core'; const ITEM_HEIGHT = 30; function generateTreeData(count: number): TreeNodeData[] { const result: TreeNodeData[] = []; let id = 0; function addChildren( parent: TreeNodeData[], depth: number, remaining: { count: number } ) { const childCount = depth === 0 ? 20 : Math.floor(Math.random() * 8) + 2; for (let i = 0; i < childCount && remaining.count > 0; i++) { id++; remaining.count--; const hasChild = depth < 3 && remaining.count > 0 && Math.random() > 0.3; const node: TreeNodeData = { label: `${hasChild ? 'Folder' : 'File'} ${id}`, value: `node-${id}`, children: hasChild ? [] : undefined, }; if (hasChild) { addChildren(node.children!, depth + 1, remaining); } parent.push(node); } } addChildren(result, 0, { count }); return result; } const largeData = generateTreeData(2000); const initialExpandedState = getTreeExpandedState(largeData, '*'); function Demo() { const tree = useTree({ initialExpandedState, }); const flatList = useMemo( () => flattenTreeData(largeData, tree.expandedState), [tree.expandedState] ); const scrollParentRef = useRef<HTMLDivElement>(null); const virtualizer = useVirtualizer({ count: flatList.length, getScrollElement: () => scrollParentRef.current, estimateSize: () => ITEM_HEIGHT, overscan: 20, }); return </details> --- ### Configuration 📅 **Schedule**: Branch creation - Between 01:00 AM and 07:59 AM, only on Tuesday ( * 1-7 * * 2 ) (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://redirect.github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://redirect.github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjQzLjc2LjIiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbXX0=-->
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/major-npm-dependencies:renovate/major-npm-dependencies
git switch renovate/major-npm-dependencies

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff renovate/major-npm-dependencies
git switch renovate/major-npm-dependencies
git rebase main
git switch main
git merge --ff-only renovate/major-npm-dependencies
git switch renovate/major-npm-dependencies
git rebase main
git switch main
git merge --no-ff renovate/major-npm-dependencies
git switch main
git merge --squash renovate/major-npm-dependencies
git switch main
git merge --ff-only renovate/major-npm-dependencies
git switch main
git merge renovate/major-npm-dependencies
git push origin main
Sign in to join this conversation.
No description provided.